363 lines
2.2 MiB
Plaintext
363 lines
2.2 MiB
Plaintext
import{c as OB,g as ZP}from"../lodash-D3kF6u-c.js";import{r as jP}from"./chat-AC2Y2r2A.js";import{r as XP}from"../rtc-detect-Chu-fZvE.js";function zP(c){throw new Error('Could not dynamically require "'+c+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var XG={exports:{}},zG={exports:{}},WT={exports:{}},$P=WT.exports,pK;function AV(){return pK||(pK=1,(function(c,G){(function(f,eA){c.exports=eA()})($P,(function(){function f(A,e){return e.forEach((function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach((function(i){if(i!=="default"&&!(i in A)){var o=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(A,i,o.get?o:{enumerable:!0,get:function(){return t[i]}})}}))})),Object.freeze(A)}var eA=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof OB<"u"?OB:typeof self<"u"?self:{};function x(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var RA=function(A){return A&&A.Math===Math&&A},z=RA(typeof globalThis=="object"&&globalThis)||RA(typeof window=="object"&&window)||RA(typeof self=="object"&&self)||RA(typeof eA=="object"&&eA)||RA(typeof eA=="object"&&eA)||(function(){return this})()||Function("return this")(),FA={},rA=function(A){try{return!!A()}catch{return!0}},MA=!rA((function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})),sA=!rA((function(){var A=(function(){}).bind();return typeof A!="function"||A.hasOwnProperty("prototype")})),oA=sA,$A=Function.prototype.call,KA=oA?$A.bind($A):function(){return $A.apply($A,arguments)},Qe={},zA={}.propertyIsEnumerable,SA=Object.getOwnPropertyDescriptor,HA=SA&&!zA.call({1:2},1);Qe.f=HA?function(A){var e=SA(this,A);return!!e&&e.enumerable}:zA;var At,we,Ue=function(A,e){return{enumerable:!(1&A),configurable:!(2&A),writable:!(4&A),value:e}},Ve=sA,ce=Function.prototype,ii=ce.call,Yt=Ve&&ce.bind.bind(ii,ii),_e=Ve?Yt:function(A){return function(){return ii.apply(A,arguments)}},$t=_e,rt=$t({}.toString),qt=$t("".slice),Mt=function(A){return qt(rt(A),8,-1)},wt=rA,qo=Mt,ki=Object,_g=_e("".split),Lg=wt((function(){return!ki("z").propertyIsEnumerable(0)}))?function(A){return qo(A)==="String"?_g(A,""):ki(A)}:ki,Ro=function(A){return A==null},lg=Ro,Tn=TypeError,mi=function(A){if(lg(A))throw new Tn("Can't call method on "+A);return A},Ja=Lg,or=mi,bg=function(A){return Ja(or(A))},St=typeof document=="object"&&document.all,Bt=St===void 0&&St!==void 0?function(A){return typeof A=="function"||A===St}:function(A){return typeof A=="function"},ao=Bt,oi=function(A){return typeof A=="object"?A!==null:ao(A)},Yg=z,Qi=Bt,Gt=function(A,e){return arguments.length<2?(t=Yg[A],Qi(t)?t:void 0):Yg[A]&&Yg[A][e];var t},vi=_e({}.isPrototypeOf),qs=z.navigator,ug=qs&&qs.userAgent,Vi=ug?String(ug):"",ui=z,uI=Vi,Jg=ui.process,at=ui.Deno,gr=Jg&&Jg.versions||at&&at.version,Je=gr&&gr.v8;Je&&(we=(At=Je.split("."))[0]>0&&At[0]<4?1:+(At[0]+At[1])),!we&&uI&&(!(At=uI.match(/Edge\/(\d+)/))||At[1]>=74)&&(At=uI.match(/Chrome\/(\d+)/))&&(we=+At[1]);var xt=we,Io=xt,dI=rA,vr=z.String,gi=!!Object.getOwnPropertySymbols&&!dI((function(){var A=Symbol("symbol detection");return!vr(A)||!(Object(A)instanceof Symbol)||!Symbol.sham&&Io&&Io<41})),xg=gi&&!Symbol.sham&&typeof Symbol.iterator=="symbol",Ps=Gt,PB=Bt,DI=vi,ri=Object,rr=xg?function(A){return typeof A=="symbol"}:function(A){var e=Ps("Symbol");return PB(e)&&DI(e.prototype,ri(A))},tg=String,ar=function(A){try{return tg(A)}catch{return"Object"}},sa=Bt,xa=ar,ig=TypeError,Se=function(A){if(sa(A))return A;throw new ig(xa(A)+" is not a function")},Ka=Se,Un=Ro,Ht=function(A,e){var t=A[e];return Un(t)?void 0:Ka(t)},jt=KA,Wi=Bt,Ha=oi,Tr=TypeError,mo={exports:{}},Ur=z,_r=Object.defineProperty,Lo=function(A,e){try{_r(Ur,A,{value:e,configurable:!0,writable:!0})}catch{Ur[A]=e}return e},pI=z,og=Lo,dg="__core-js_shared__",Vs=mo.exports=pI[dg]||og(dg,{});(Vs.versions||(Vs.versions=[])).push({version:"3.40.0",mode:"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.40.0/LICENSE",source:"https://github.com/zloirock/core-js"});var Ft=mo.exports,yI=Ft,Ot=function(A,e){return yI[A]||(yI[A]=e||{})},Kg=mi,Ei=Object,Po=function(A){return Ei(Kg(A))},VB=Po,Vo=_e({}.hasOwnProperty),ci=Object.hasOwn||function(A,e){return Vo(VB(A),e)},Ea=_e,RI=0,Dg=Math.random(),mI=Ea(1 .toString),fI=function(A){return"Symbol("+(A===void 0?"":A)+")_"+mI(++RI+Dg,36)},Ao=Ot,Ws=ci,gg=fI,Oa=gi,wI=xg,pg=z.Symbol,_n=Ao("wks"),WB=wI?pg.for||pg:pg&&pg.withoutSetter||gg,Pt=function(A){return Ws(_n,A)||(_n[A]=Oa&&Ws(pg,A)?pg[A]:WB("Symbol."+A)),_n[A]},Zs=KA,bo=oi,Ln=rr,js=Ht,Hg=function(A,e){var t,i;if(e==="string"&&Wi(t=A.toString)&&!Ha(i=jt(t,A))||Wi(t=A.valueOf)&&!Ha(i=jt(t,A))||e!=="string"&&Wi(t=A.toString)&&!Ha(i=jt(t,A)))return i;throw new Tr("Can't convert object to primitive value")},Ba=TypeError,bn=Pt("toPrimitive"),W=function(A,e){if(!bo(A)||Ln(A))return A;var t,i=js(A,bn);if(i){if(e===void 0&&(e="default"),t=Zs(i,A,e),!bo(t)||Ln(t))return t;throw new Ba("Can't convert object to primitive value")}return e===void 0&&(e="number"),Hg(A,e)},O=W,QA=rr,vA=function(A){var e=O(A,"string");return QA(e)?e:e+""},LA=oi,Ae=z.document,Be=LA(Ae)&&LA(Ae.createElement),ae=function(A){return Be?Ae.createElement(A):{}},De=ae,Re=!MA&&!rA((function(){return Object.defineProperty(De("div"),"a",{get:function(){return 7}}).a!==7})),Ye=MA,Ct=KA,It=Qe,Ge=Ue,je=bg,Si=vA,Bi=ci,no=Re,vt=Object.getOwnPropertyDescriptor;FA.f=Ye?vt:function(A,e){if(A=je(A),e=Si(e),no)try{return vt(A,e)}catch{}if(Bi(A,e))return Ge(!Ct(It.f,A,e),A[e])};var Ai={},Xs=MA&&rA((function(){return Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype!==42})),Og=oi,Ca=String,Lr=TypeError,so=function(A){if(Og(A))return A;throw new Lr(Ca(A)+" is not an object")},Ti=MA,Nc=Re,nR=Xs,di=so,Fc=vA,Ou=TypeError,ZB=Object.defineProperty,qu=Object.getOwnPropertyDescriptor,qa="enumerable",vc="configurable",yg="writable";Ai.f=Ti?nR?function(A,e,t){if(di(A),e=Fc(e),di(t),typeof A=="function"&&e==="prototype"&&"value"in t&&yg in t&&!t[yg]){var i=qu(A,e);i&&i[yg]&&(A[e]=t.value,t={configurable:vc in t?t[vc]:i[vc],enumerable:qa in t?t[qa]:i[qa],writable:!1})}return ZB(A,e,t)}:ZB:function(A,e,t){if(di(A),e=Fc(e),di(t),Nc)try{return ZB(A,e,t)}catch{}if("get"in t||"set"in t)throw new Ou("Accessors not supported");return"value"in t&&(A[e]=t.value),A};var sR=Ai,Tc=Ue,Qa=MA?function(A,e,t){return sR.f(A,e,Tc(1,t))}:function(A,e,t){return A[e]=t,A},ca={exports:{}},SI=MA,Uc=ci,Xt=Function.prototype,Pu=SI&&Object.getOwnPropertyDescriptor,jB=Uc(Xt,"name"),GI={PROPER:jB&&(function(){}).name==="something",CONFIGURABLE:jB&&(!SI||SI&&Pu(Xt,"name").configurable)},ER=Bt,_c=Ft,BR=_e(Function.toString);ER(_c.inspectSource)||(_c.inspectSource=function(A){return BR(A)});var Yn,Ir,Jn,XB=_c.inspectSource,zs=Bt,Lc=z.WeakMap,zB=zs(Lc)&&/native code/.test(String(Lc)),Vu=fI,MI=Ot("keys"),$B=function(A){return MI[A]||(MI[A]=Vu(A))},$s={},CR=zB,nr=z,xn=oi,bc=Qa,Yc=ci,AE=Ft,QR=$B,cR=$s,Jc="Object already initialized",Ki=nr.TypeError,Wu=nr.WeakMap;if(CR||AE.state){var br=AE.state||(AE.state=new Wu);br.get=br.get,br.has=br.has,br.set=br.set,Yn=function(A,e){if(br.has(A))throw new Ki(Jc);return e.facade=A,br.set(A,e),e},Ir=function(A){return br.get(A)||{}},Jn=function(A){return br.has(A)}}else{var Kn=QR("state");cR[Kn]=!0,Yn=function(A,e){if(Yc(A,Kn))throw new Ki(Jc);return e.facade=A,bc(A,Kn,e),e},Ir=function(A){return Yc(A,Kn)?A[Kn]:{}},Jn=function(A){return Yc(A,Kn)}}var Wo={set:Yn,get:Ir,has:Jn,enforce:function(A){return Jn(A)?Ir(A):Yn(A,{})},getterFor:function(A){return function(e){var t;if(!xn(e)||(t=Ir(e)).type!==A)throw new Ki("Incompatible receiver, "+A+" required");return t}}},Zi=_e,hR=rA,lR=Bt,eE=ci,kI=MA,tE=GI.CONFIGURABLE,uR=XB,xc=Wo.enforce,dR=Wo.get,AC=String,Hn=Object.defineProperty,Kc=Zi("".slice),DR=Zi("".replace),iE=Zi([].join),Yr=kI&&!hR((function(){return Hn((function(){}),"length",{value:8}).length!==8})),eC=String(String).split("String"),pR=ca.exports=function(A,e,t){Kc(AC(e),0,7)==="Symbol("&&(e="["+DR(AC(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),t&&t.getter&&(e="get "+e),t&&t.setter&&(e="set "+e),(!eE(A,"name")||tE&&A.name!==e)&&(kI?Hn(A,"name",{value:e,configurable:!0}):A.name=e),Yr&&t&&eE(t,"arity")&&A.length!==t.arity&&Hn(A,"length",{value:t.arity});try{t&&eE(t,"constructor")&&t.constructor?kI&&Hn(A,"prototype",{writable:!1}):A.prototype&&(A.prototype=void 0)}catch{}var i=xc(A);return eE(i,"source")||(i.source=iE(eC,typeof e=="string"?e:"")),A};Function.prototype.toString=pR((function(){return lR(this)&&dR(this).source||uR(this)}),"toString");var tC=ca.exports,yR=Bt,Zu=Ai,Hc=tC,iC=Lo,Hi=function(A,e,t,i){i||(i={});var o=i.enumerable,g=i.name!==void 0?i.name:e;if(yR(t)&&Hc(t,g,i),i.global)o?A[e]=t:iC(e,t);else{try{i.unsafe?A[e]&&(o=!0):delete A[e]}catch{}o?A[e]=t:Zu.f(A,e,{value:t,enumerable:!1,configurable:!i.nonConfigurable,writable:!i.nonWritable})}return A},oC={},Oc=Math.ceil,RR=Math.floor,gC=Math.trunc||function(A){var e=+A;return(e>0?RR:Oc)(e)},On=gC,sr=function(A){var e=+A;return e!=e||e===0?0:On(e)},ha=sr,mR=Math.max,rC=Math.min,oE=function(A,e){var t=ha(A);return t<0?mR(t+e,0):rC(t,e)},fR=sr,ju=Math.min,Jr=function(A){var e=fR(A);return e>0?ju(e,9007199254740991):0},gE=Jr,xr=function(A){return gE(A.length)},aC=bg,qc=oE,Xu=xr,qn=function(A){return function(e,t,i){var o=aC(e),g=Xu(o);if(g===0)return!A&&-1;var r,n=qc(i,g);if(A&&t!=t){for(;g>n;)if((r=o[n++])!=r)return!0}else for(;g>n;n++)if((A||n in o)&&o[n]===t)return A||n||0;return!A&&-1}},rE={includes:qn(!0),indexOf:qn(!1)},IC=ci,nC=bg,Pc=rE.indexOf,aE=$s,zu=_e([].push),Er=function(A,e){var t,i=nC(A),o=0,g=[];for(t in i)!IC(aE,t)&&IC(i,t)&&zu(g,t);for(;e.length>o;)IC(i,t=e[o++])&&(~Pc(g,t)||zu(g,t));return g},Pa=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],fo=Er,Vc=Pa.concat("length","prototype");oC.f=Object.getOwnPropertyNames||function(A){return fo(A,Vc)};var Wc={};Wc.f=Object.getOwnPropertySymbols;var wR=Gt,NI=oC,IE=Wc,SR=so,GR=_e([].concat),MR=wR("Reflect","ownKeys")||function(A){var e=NI.f(SR(A)),t=IE.f;return t?GR(e,t(A)):e},sC=ci,EC=MR,nE=FA,Zc=Ai,Pn=function(A,e,t){for(var i=EC(e),o=Zc.f,g=nE.f,r=0;r<i.length;r++){var n=i[r];sC(A,n)||t&&sC(t,n)||o(A,n,g(e,n))}},BC=rA,$u=Bt,kR=/#|\.prototype\./,sE=function(A,e){var t=FR[NR(A)];return t===CC||t!==vR&&($u(e)?BC(e):!!e)},NR=sE.normalize=function(A){return String(A).replace(kR,".").toLowerCase()},FR=sE.data={},vR=sE.NATIVE="N",CC=sE.POLYFILL="P",Eo=sE,qg=z,Ad=FA.f,ed=Qa,td=Hi,id=Lo,Kr=Pn,od=Eo,Di=function(A,e){var t,i,o,g,r,n=A.target,I=A.global,C=A.stat;if(t=I?qg:C?qg[n]||id(n,{}):qg[n]&&qg[n].prototype)for(i in e){if(g=e[i],o=A.dontCallGetSet?(r=Ad(t,i))&&r.value:t[i],!od(I?i:n+(C?".":"#")+i,A.forced)&&o!==void 0){if(typeof g==typeof o)continue;Kr(g,o)}(A.sham||o&&o.sham)&&ed(g,"sham",!0),td(t,i,g,A)}},gd={};gd[Pt("toStringTag")]="z";var FI=String(gd)==="[object z]",TR=Bt,QC=Mt,Br=Pt("toStringTag"),jc=Object,Rg=QC((function(){return arguments})())==="Arguments",la=FI?QC:function(A){var e,t,i;return A===void 0?"Undefined":A===null?"Null":typeof(t=(function(o,g){try{return o[g]}catch{}})(e=jc(A),Br))=="string"?t:Rg?QC(e):(i=QC(e))==="Object"&&TR(e.callee)?"Arguments":i},rd=la,ad=String,rg=function(A){if(rd(A)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return ad(A)},vI=tC,EE=Ai,TI=function(A,e,t){return t.get&&vI(t.get,e,{getter:!0}),t.set&&vI(t.set,e,{setter:!0}),EE.f(A,e,t)},UR=Di,BE=MA,Vn=_e,Xc=ci,zc=Bt,_R=vi,Id=rg,CE=TI,LR=Pn,Hr=z.Symbol,UI=Hr&&Hr.prototype;if(BE&&zc(Hr)&&(!("description"in UI)||Hr().description!==void 0)){var nd={},We=function(){var A=arguments.length<1||arguments[0]===void 0?void 0:Id(arguments[0]),e=_R(UI,this)?new Hr(A):A===void 0?Hr():Hr(A);return A===""&&(nd[e]=!0),e};LR(We,Hr),We.prototype=UI,UI.constructor=We;var sd=String(Hr("description detection"))==="Symbol(description detection)",$c=Vn(UI.valueOf),bR=Vn(UI.toString),YR=/^Symbol\((.*)\)[^)]+$/,JR=Vn("".replace),Ah=Vn("".slice);CE(UI,"description",{configurable:!0,get:function(){var A=$c(this);if(Xc(nd,A))return"";var e=bR(A),t=sd?Ah(e,7,-1):JR(e,YR,"$1");return t===""?void 0:t}}),UR({global:!0,constructor:!0,forced:!0},{Symbol:We})}var Ed={},Bd=Er,Cd=Pa,_I=Object.keys||function(A){return Bd(A,Cd)},Qd=MA,LI=Xs,cd=Ai,hd=so,Wn=bg,QE=_I;Ed.f=Qd&&!LI?Object.defineProperties:function(A,e){hd(A);for(var t,i=Wn(e),o=QE(e),g=o.length,r=0;g>r;)cd.f(A,t=o[r++],i[t]);return A};var cE,eh=Gt("document","documentElement"),ld=so,ud=Ed,th=Pa,dd=$s,Ze=eh,ih=ae,Or="prototype",bI="script",Dd=$B("IE_PROTO"),YI=function(){},cC=function(A){return"<"+bI+">"+A+"</"+bI+">"},hE=function(A){A.write(cC("")),A.close();var e=A.parentWindow.Object;return A=null,e},hC=function(){try{cE=new ActiveXObject("htmlfile")}catch{}hC=typeof document<"u"?document.domain&&cE?hE(cE):(function(){var e,t=ih("iframe"),i="java"+bI+":";return t.style.display="none",Ze.appendChild(t),t.src=String(i),(e=t.contentWindow.document).open(),e.write(cC("document.F=Object")),e.close(),e.F})():hE(cE);for(var A=th.length;A--;)delete hC[Or][th[A]];return hC()};dd[Dd]=!0;var ag=Object.create||function(A,e){var t;return A!==null?(YI[Or]=ld(A),t=new YI,YI[Or]=null,t[Dd]=A):t=hC(),e===void 0?t:ud.f(t,e)},xR=Pt,KR=ag,wo=Ai.f,Zn=xR("unscopables"),oh=Array.prototype;oh[Zn]===void 0&&wo(oh,Zn,{configurable:!0,value:KR(null)});var pd=function(A){oh[Zn][A]=!0},lC=rE.includes,HR=pd;Di({target:"Array",proto:!0,forced:rA((function(){return!Array(1).includes()}))},{includes:function(A){return lC(this,A,arguments.length>1?arguments[1]:void 0)}}),HR("includes");var Va,jn,gh,lE={},uC=!rA((function(){function A(){}return A.prototype.constructor=null,Object.getPrototypeOf(new A)!==A.prototype})),uE=ci,rh=Bt,yd=Po,OR=uC,dC=$B("IE_PROTO"),ah=Object,Ih=ah.prototype,ua=OR?ah.getPrototypeOf:function(A){var e=yd(A);if(uE(e,dC))return e[dC];var t=e.constructor;return rh(t)&&e instanceof t?t.prototype:e instanceof ah?Ih:null},Jt=rA,nh=Bt,Rd=oi,DC=ua,sh=Hi,da=Pt("iterator"),dE=!1;[].keys&&("next"in(gh=[].keys())?(jn=DC(DC(gh)))!==Object.prototype&&(Va=jn):dE=!0);var So=!Rd(Va)||Jt((function(){var A={};return Va[da].call(A)!==A}));So&&(Va={}),nh(Va[da])||sh(Va,da,(function(){return this}));var DE={IteratorPrototype:Va,BUGGY_SAFARI_ITERATORS:dE},Cr=Ai.f,pC=ci,yC=Pt("toStringTag"),qr=function(A,e,t){A&&!t&&(A=A.prototype),A&&!pC(A,yC)&&Cr(A,yC,{configurable:!0,value:e})},pE=DE.IteratorPrototype,yE=ag,md=Ue,RE=qr,eo=lE,JI=function(){return this},fd=function(A,e,t,i){var o=e+" Iterator";return A.prototype=yE(pE,{next:md(+!i,t)}),RE(A,o,!1),eo[o]=JI,A},Eh=_e,mE=Se,qR=oi,Bh=function(A){return qR(A)||A===null},Ch=String,Qh=TypeError,PR=function(A,e,t){try{return Eh(mE(Object.getOwnPropertyDescriptor(A,e)[t]))}catch{}},VR=oi,fE=mi,ch=function(A){if(Bh(A))return A;throw new Qh("Can't set "+Ch(A)+" as a prototype")},Xn=Object.setPrototypeOf||("__proto__"in{}?(function(){var A,e=!1,t={};try{(A=PR(Object.prototype,"__proto__","set"))(t,[]),e=t instanceof Array}catch{}return function(i,o){return fE(i),ch(o),VR(i)&&(e?A(i,o):i.__proto__=o),i}})():void 0),wd=Di,Da=KA,Sd=Bt,Yo=fd,Bo=ua,Qr=Xn,hh=qr,mg=Qa,pa=Hi,ya=lE,zn=GI.PROPER,Gd=GI.CONFIGURABLE,lh=DE.IteratorPrototype,$n=DE.BUGGY_SAFARI_ITERATORS,As=Pt("iterator"),uh="keys",xI="values",RC="entries",mC=function(){return this},Go=function(A,e,t,i,o,g,r){Yo(t,e,i);var n,I,C,u=function(TA){if(TA===o&&gA)return gA;if(!$n&&TA&&TA in L)return L[TA];switch(TA){case uh:case xI:case RC:return function(){return new t(this,TA)}}return function(){return new t(this)}},R=e+" Iterator",M=!1,L=A.prototype,H=L[As]||L["@@iterator"]||o&&L[o],gA=!$n&&H||u(o),EA=e==="Array"&&L.entries||H;if(EA&&(n=Bo(EA.call(new A)))!==Object.prototype&&n.next&&(Bo(n)!==lh&&(Qr?Qr(n,lh):Sd(n[As])||pa(n,As,mC)),hh(n,R,!0)),zn&&o===xI&&H&&H.name!==xI&&(Gd?mg(L,"name",xI):(M=!0,gA=function(){return Da(H,this)})),o)if(I={values:u(xI),keys:g?gA:u(uh),entries:u(RC)},r)for(C in I)($n||M||!(C in L))&&pa(L,C,I[C]);else wd({target:e,proto:!0,forced:$n||M},I);return L[As]!==gA&&pa(L,As,gA,{name:o}),ya[e]=gA,I},Pr=function(A,e){return{value:A,done:e}},wE=bg,KI=pd,fC=lE,dh=Wo,WR=Ai.f,Md=Go,wC=Pr,kd=MA,SC="Array Iterator",Ui=dh.set,HI=dh.getterFor(SC),ZR=Md(Array,"Array",(function(A,e){Ui(this,{type:SC,target:wE(A),index:0,kind:e})}),(function(){var A=HI(this),e=A.target,t=A.index++;if(!e||t>=e.length)return A.target=null,wC(void 0,!0);switch(A.kind){case"keys":return wC(t,!1);case"values":return wC(e[t],!1)}return wC([t,e[t]],!1)}),"values"),Dh=fC.Arguments=fC.Array;if(KI("keys"),KI("values"),KI("entries"),kd&&Dh.name!=="values")try{WR(Dh,"name",{value:"values"})}catch{}var Nd=Se,SE=Po,ph=Lg,Wa=xr,Zo=TypeError,es="Reduce of empty array with no initial value",OI=function(A){return function(e,t,i,o){var g=SE(e),r=ph(g),n=Wa(g);if(Nd(t),n===0&&i<2)throw new Zo(es);var I=A?n-1:0,C=A?-1:1;if(i<2)for(;;){if(I in r){o=r[I],I+=C;break}if(I+=C,A?I<0:n<=I)throw new Zo(es)}for(;A?I>=0:n>I;I+=C)I in r&&(o=t(o,r[I],I,g));return o}},ts={left:OI(!1),right:OI(!0)},Fd=rA,Vr=function(A,e){var t=[][A];return!!t&&Fd((function(){t.call(null,e||function(){return 1},1)}))},Wr=z,vd=Vi,to=Mt,qI=function(A){return vd.slice(0,A.length)===A},PI=qI("Bun/")?"BUN":qI("Cloudflare-Workers")?"CLOUDFLARE":qI("Deno/")?"DENO":qI("Node.js/")?"NODE":Wr.Bun&&typeof Bun.version=="string"?"BUN":Wr.Deno&&typeof Deno.version=="object"?"DENO":to(Wr.process)==="process"?"NODE":Wr.window&&Wr.document?"BROWSER":"REST",Ra=PI==="NODE",GC=ts.left;Di({target:"Array",proto:!0,forced:!Ra&&xt>79&&xt<83||!Vr("reduce")},{reduce:function(A){var e=arguments.length;return GC(this,A,e,e>1?arguments[1]:void 0)}});var Td=ts.right;Di({target:"Array",proto:!0,forced:!Ra&&xt>79&&xt<83||!Vr("reduceRight")},{reduceRight:function(A){return Td(this,A,arguments.length,arguments.length>1?arguments[1]:void 0)}});var is=Mt,be=Array.isArray||function(A){return is(A)==="Array"},Ud=Di,MC=be,_d=_e([].reverse),h=[1,2];Ud({target:"Array",proto:!0,forced:String(h)===String(h.reverse())},{reverse:function(){return MC(this)&&(this.length=this.length),_d(this)}});var B=ar,D=TypeError,E=_e([].slice),Q=E,p=Math.floor,m=function(A,e){var t=A.length;if(t<8)for(var i,o,g=1;g<t;){for(o=g,i=A[g];o&&e(A[o-1],i)>0;)A[o]=A[--o];o!==g++&&(A[o]=i)}else for(var r=p(t/2),n=m(Q(A,0,r),e),I=m(Q(A,r),e),C=n.length,u=I.length,R=0,M=0;R<C||M<u;)A[R+M]=R<C&&M<u?e(n[R],I[M])<=0?n[R++]:I[M++]:R<C?n[R++]:I[M++];return A},T=m,Y=Vi.match(/firefox\/(\d+)/i),_=!!Y&&+Y[1],b=/MSIE|Trident/.test(Vi),AA=Vi.match(/AppleWebKit\/(\d+)\./),nA=!!AA&&+AA[1],fA=Di,dA=_e,YA=Se,UA=Po,lA=xr,Ce=function(A,e){if(!delete A[e])throw new D("Cannot delete property "+B(e)+" of "+B(A))},xe=rg,Qt=rA,Le=T,Ne=Vr,Vt=_,si=b,ji=xt,cr=nA,Jo=[],os=dA(Jo.sort),Pg=dA(Jo.push),GE=Qt((function(){Jo.sort(void 0)})),io=Qt((function(){Jo.sort(null)})),VI=Ne("sort"),hr=!Qt((function(){if(ji)return ji<70;if(!(Vt&&Vt>3)){if(si)return!0;if(cr)return cr<603;var A,e,t,i,o="";for(A=65;A<76;A++){switch(e=String.fromCharCode(A),A){case 66:case 69:case 70:case 72:t=3;break;case 68:case 71:t=4;break;default:t=2}for(i=0;i<47;i++)Jo.push({k:e+i,v:t})}for(Jo.sort((function(g,r){return r.v-g.v})),i=0;i<Jo.length;i++)e=Jo[i].k.charAt(0),o.charAt(o.length-1)!==e&&(o+=e);return o!=="DGBEFHACIJK"}}));fA({target:"Array",proto:!0,forced:GE||!io||!VI||!hr},{sort:function(A){A!==void 0&&YA(A);var e=UA(this);if(hr)return A===void 0?os(e):os(e,A);var t,i,o=[],g=lA(e);for(i=0;i<g;i++)i in e&&Pg(o,e[i]);for(Le(o,(function(r){return function(n,I){return I===void 0?-1:n===void 0?1:r!==void 0?+r(n,I)||0:xe(n)>xe(I)?1:-1}})(A)),t=lA(o),i=0;i<t;)e[i]=o[i++];for(;i<g;)Ce(e,i++);return e}});var oo=typeof ArrayBuffer<"u"&&typeof DataView<"u",gs=Hi,Zr=function(A,e,t){for(var i in e)gs(A,i,e[i],t);return A},ME=vi,Tt=TypeError,jr=function(A,e){if(ME(e,A))return A;throw new Tt("Incorrect invocation")},Xr=sr,lr=Jr,WI=RangeError,kE=function(A){if(A===void 0)return 0;var e=Xr(A),t=lr(e);if(e!==t)throw new WI("Wrong length or index");return t},kC=Math.sign||function(A){var e=+A;return e===0||e!=e?e:e<0?-1:1},NC=4503599627370496,yh=kC,Ld=function(A){return A+NC-NC},bd=Math.abs,NE=function(A,e,t,i){var o=+A,g=bd(o),r=yh(o);if(g<i)return r*Ld(g/i/e)*i*e;var n=(1+e/2220446049250313e-31)*g,I=n-(n-g);return I>t||I!=I?1/0*r:r*I},Rh=Math.fround||function(A){return NE(A,11920928955078125e-23,34028234663852886e22,11754943508222875e-54)},rs=Array,FC=Math.abs,Ig=Math.pow,vC=Math.floor,TC=Math.log,Yd=Math.LN2,jR={pack:function(A,e,t){var i,o,g,r=rs(t),n=8*t-e-1,I=(1<<n)-1,C=I>>1,u=e===23?Ig(2,-24)-Ig(2,-77):0,R=A<0||A===0&&1/A<0?1:0,M=0;for((A=FC(A))!=A||A===1/0?(o=A!=A?1:0,i=I):(i=vC(TC(A)/Yd),A*(g=Ig(2,-i))<1&&(i--,g*=2),(A+=i+C>=1?u/g:u*Ig(2,1-C))*g>=2&&(i++,g/=2),i+C>=I?(o=0,i=I):i+C>=1?(o=(A*g-1)*Ig(2,e),i+=C):(o=A*Ig(2,C-1)*Ig(2,e),i=0));e>=8;)r[M++]=255&o,o/=256,e-=8;for(i=i<<e|o,n+=e;n>0;)r[M++]=255&i,i/=256,n-=8;return r[M-1]|=128*R,r},unpack:function(A,e){var t,i=A.length,o=8*i-e-1,g=(1<<o)-1,r=g>>1,n=o-7,I=i-1,C=A[I--],u=127&C;for(C>>=7;n>0;)u=256*u+A[I--],n-=8;for(t=u&(1<<-n)-1,u>>=-n,n+=e;n>0;)t=256*t+A[I--],n-=8;if(u===0)u=1-r;else{if(u===g)return t?NaN:C?-1/0:1/0;t+=Ig(2,e),u-=r}return(C?-1:1)*t*Ig(2,u-e)}},UC=Po,Jd=oE,xd=xr,Kd=function(A){for(var e=UC(this),t=xd(e),i=arguments.length,o=Jd(i>1?arguments[1]:void 0,t),g=i>2?arguments[2]:void 0,r=g===void 0?t:Jd(g,t);r>o;)e[o++]=A;return e},mh=Bt,FE=oi,_C=Xn,ur=function(A,e,t){var i,o;return _C&&mh(i=e.constructor)&&i!==t&&FE(o=i.prototype)&&o!==t.prototype&&_C(A,o),A},ZI=z,LC=_e,vE=MA,Za=oo,TE=Qa,UE=TI,fh=Zr,_E=rA,as=jr,wh=sr,Sh=Jr,jo=kE,Gh=Rh,ma=jR,Hd=ua,bC=Xn,LE=Kd,YC=E,jI=ur,Od=Pn,JC=qr,XI=Wo,XR=GI.PROPER,xC=GI.CONFIGURABLE,zI="ArrayBuffer",KC="DataView",Is="prototype",qd="Wrong index",Pd=XI.getterFor(zI),bE=XI.getterFor(KC),ns=XI.set,fg=ZI[zI],Co=fg,dr=Co&&Co[Is],Dr=ZI[KC],$I=Dr&&Dr[Is],YE=Object.prototype,Mh=ZI.Array,Xo=ZI.RangeError,kh=LC(LE),Vd=LC([].reverse),pr=ma.pack,HC=ma.unpack,JE=function(A){return[255&A]},Z=function(A){return[255&A,A>>8&255]},q=function(A){return[255&A,A>>8&255,A>>16&255,A>>24&255]},uA=function(A){return A[3]<<24|A[2]<<16|A[1]<<8|A[0]},bA=function(A){return pr(Gh(A),23,4)},VA=function(A){return pr(A,52,8)},XA=function(A,e,t){UE(A[Is],e,{configurable:!0,get:function(){return t(this)[e]}})},re=function(A,e,t,i){var o=bE(A),g=jo(t),r=!!i;if(g+e>o.byteLength)throw new Xo(qd);var n=o.bytes,I=g+o.byteOffset,C=YC(n,I,I+e);return r?C:Vd(C)},se=function(A,e,t,i,o,g){var r=bE(A),n=jo(t),I=i(+o),C=!!g;if(n+e>r.byteLength)throw new Xo(qd);for(var u=r.bytes,R=n+r.byteOffset,M=0;M<e;M++)u[R+M]=I[C?M:e-M-1]};if(Za){var me=XR&&fg.name!==zI;_E((function(){fg(1)}))&&_E((function(){new fg(-1)}))&&!_E((function(){return new fg,new fg(1.5),new fg(NaN),fg.length!==1||me&&!xC}))?me&&xC&&TE(fg,"name",zI):((Co=function(A){return as(this,dr),jI(new fg(jo(A)),this,Co)})[Is]=dr,dr.constructor=Co,Od(Co,fg)),bC&&Hd($I)!==YE&&bC($I,YE);var pe=new Dr(new Co(2)),ve=LC($I.setInt8);pe.setInt8(0,2147483648),pe.setInt8(1,2147483649),!pe.getInt8(0)&&pe.getInt8(1)||fh($I,{setInt8:function(A,e){ve(this,A,e<<24>>24)},setUint8:function(A,e){ve(this,A,e<<24>>24)}},{unsafe:!0})}else dr=(Co=function(A){as(this,dr);var e=jo(A);ns(this,{type:zI,bytes:kh(Mh(e),0),byteLength:e}),vE||(this.byteLength=e,this.detached=!1)})[Is],$I=(Dr=function(A,e,t){as(this,$I),as(A,dr);var i=Pd(A),o=i.byteLength,g=wh(e);if(g<0||g>o)throw new Xo("Wrong offset");if(g+(t=t===void 0?o-g:Sh(t))>o)throw new Xo("Wrong length");ns(this,{type:KC,buffer:A,byteLength:t,byteOffset:g,bytes:i.bytes}),vE||(this.buffer=A,this.byteLength=t,this.byteOffset=g)})[Is],vE&&(XA(Co,"byteLength",Pd),XA(Dr,"buffer",bE),XA(Dr,"byteLength",bE),XA(Dr,"byteOffset",bE)),fh($I,{getInt8:function(A){return re(this,1,A)[0]<<24>>24},getUint8:function(A){return re(this,1,A)[0]},getInt16:function(A){var e=re(this,2,A,arguments.length>1&&arguments[1]);return(e[1]<<8|e[0])<<16>>16},getUint16:function(A){var e=re(this,2,A,arguments.length>1&&arguments[1]);return e[1]<<8|e[0]},getInt32:function(A){return uA(re(this,4,A,arguments.length>1&&arguments[1]))},getUint32:function(A){return uA(re(this,4,A,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(A){return HC(re(this,4,A,arguments.length>1&&arguments[1]),23)},getFloat64:function(A){return HC(re(this,8,A,arguments.length>1&&arguments[1]),52)},setInt8:function(A,e){se(this,1,A,JE,e)},setUint8:function(A,e){se(this,1,A,JE,e)},setInt16:function(A,e){se(this,2,A,Z,e,arguments.length>2&&arguments[2])},setUint16:function(A,e){se(this,2,A,Z,e,arguments.length>2&&arguments[2])},setInt32:function(A,e){se(this,4,A,q,e,arguments.length>2&&arguments[2])},setUint32:function(A,e){se(this,4,A,q,e,arguments.length>2&&arguments[2])},setFloat32:function(A,e){se(this,4,A,bA,e,arguments.length>2&&arguments[2])},setFloat64:function(A,e){se(this,8,A,VA,e,arguments.length>2&&arguments[2])}});JC(Co,zI),JC(Dr,KC);var ze={ArrayBuffer:Co,DataView:Dr},st=Gt,Et=TI,et=MA,hi=Pt("species"),pi=function(A){var e=st(A);et&&e&&!e[hi]&&Et(e,hi,{configurable:!0,get:function(){return this}})},Kt=pi,Xi="ArrayBuffer",Qo=ze[Xi];Di({global:!0,constructor:!0,forced:z[Xi]!==Qo},{ArrayBuffer:Qo}),Kt(Xi);var OC=Mt,Wd=_e,xE=function(A){if(OC(A)==="Function")return Wd(A)},An=Di,Nh=xE,zR=rA,i0=so,o0=oE,g0=Jr,$R=ze.ArrayBuffer,Am=ze.DataView,r0=Am.prototype,Zd=Nh($R.prototype.slice),zT=Nh(r0.getUint8),$T=Nh(r0.setUint8);An({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:zR((function(){return!new $R(2).slice(1,void 0).byteLength}))},{slice:function(A,e){if(Zd&&e===void 0)return Zd(i0(this),A);for(var t=i0(this).byteLength,i=o0(A,t),o=o0(e===void 0?t:e,t),g=new $R(g0(o-i)),r=new Am(this),n=new Am(g),I=0;i<o;)$T(n,I++,zT(r,i++));return g}});var AU=_e,Fh=rA,a0=Bt,eU=la,tU=XB,I0=function(){},n0=Gt("Reflect","construct"),em=/^\s*(?:class|function)\b/,s0=AU(em.exec),E0=!em.test(I0),vh=function(A){if(!a0(A))return!1;try{return n0(I0,[],A),!0}catch{return!1}},B0=function(A){if(!a0(A))return!1;switch(eU(A)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return E0||!!s0(em,tU(A))}catch{return!0}};B0.sham=!0;var Th,KE,C0,tm,im=!n0||Fh((function(){var A;return vh(vh.call)||!vh(Object)||!vh((function(){A=!0}))||A}))?B0:vh,jd=im,iU=ar,om=TypeError,Q0=function(A){if(jd(A))return A;throw new om(iU(A)+" is not a constructor")},c0=so,oU=Q0,gm=Ro,rm=Pt("species"),ss=function(A,e){var t,i=c0(A).constructor;return i===void 0||gm(t=c0(i)[rm])?e:oU(t)},h0=sA,am=Function.prototype,Uh=am.apply,qC=am.call,Xd=typeof Reflect=="object"&&Reflect.apply||(h0?qC.bind(Uh):function(){return qC.apply(Uh,arguments)}),gU=Se,rU=sA,aU=xE(xE.bind),Es=function(A,e){return gU(A),e===void 0?A:rU?aU(A,e):function(){return A.apply(e,arguments)}},l0=TypeError,PC=function(A,e){if(A<e)throw new l0("Not enough arguments");return A},u0=/(?:ipad|iphone|ipod).*applewebkit/i.test(Vi),zo=z,IU=Xd,nU=Es,d0=Bt,D0=ci,p0=rA,zd=eh,y0=E,R0=ae,Im=PC,sU=u0,EU=Ra,nm=zo.setImmediate,sm=zo.clearImmediate,BU=zo.process,Em=zo.Dispatch,CU=zo.Function,m0=zo.MessageChannel,QU=zo.String,Bm=0,_h={},f0="onreadystatechange";p0((function(){Th=zo.location}));var Cm=function(A){if(D0(_h,A)){var e=_h[A];delete _h[A],e()}},Qm=function(A){return function(){Cm(A)}},w0=function(A){Cm(A.data)},S0=function(A){zo.postMessage(QU(A),Th.protocol+"//"+Th.host)};nm&&sm||(nm=function(A){Im(arguments.length,1);var e=d0(A)?A:CU(A),t=y0(arguments,1);return _h[++Bm]=function(){IU(e,void 0,t)},KE(Bm),Bm},sm=function(A){delete _h[A]},EU?KE=function(A){BU.nextTick(Qm(A))}:Em&&Em.now?KE=function(A){Em.now(Qm(A))}:m0&&!sU?(tm=(C0=new m0).port2,C0.port1.onmessage=w0,KE=nU(tm.postMessage,tm)):zo.addEventListener&&d0(zo.postMessage)&&!zo.importScripts&&Th&&Th.protocol!=="file:"&&!p0(S0)?(KE=S0,zo.addEventListener("message",w0,!1)):KE=f0 in R0("script")?function(A){zd.appendChild(R0("script"))[f0]=function(){zd.removeChild(this),Cm(A)}}:function(A){setTimeout(Qm(A),0)});var en={set:nm,clear:sm},G0=z,cU=MA,hU=Object.getOwnPropertyDescriptor,M0=function(A){if(!cU)return G0[A];var e=hU(G0,A);return e&&e.value},cm=function(){this.head=null,this.tail=null};cm.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)return(this.head=A.next)===null&&(this.tail=null),A.item}};var HE,hm,lm,Lh,k0,N0=cm,lU=/ipad|iphone|ipod/i.test(Vi)&&typeof Pebble<"u",F0=/web0s(?!.*chrome)/i.test(Vi),tn=z,bh=M0,um=Es,OE=en.set,v0=N0,uU=u0,dm=lU,Dm=F0,pm=Ra,$d=tn.MutationObserver||tn.WebKitMutationObserver,ym=tn.document,Rm=tn.process,AD=tn.Promise,mm=bh("queueMicrotask");if(!mm){var qE=new v0,eD=function(){var A,e;for(pm&&(A=Rm.domain)&&A.exit();e=qE.get();)try{e()}catch(t){throw qE.head&&HE(),t}A&&A.enter()};uU||pm||Dm||!$d||!ym?!dm&&AD&&AD.resolve?((Lh=AD.resolve(void 0)).constructor=AD,k0=um(Lh.then,Lh),HE=function(){k0(eD)}):pm?HE=function(){Rm.nextTick(eD)}:(OE=um(OE,tn),HE=function(){OE(eD)}):(hm=!0,lm=ym.createTextNode(""),new $d(eD).observe(lm,{characterData:!0}),HE=function(){lm.data=hm=!hm}),mm=function(A){qE.head||HE(),qE.add(A)}}var T0=mm,fm=function(A){try{return{error:!1,value:A()}}catch(e){return{error:!0,value:e}}},Yh=z.Promise,U0=z,VC=Yh,dU=Bt,_0=Eo,DU=XB,pU=Pt,L0=PI,wm=xt;VC&&VC.prototype;var yU=pU("species"),Sm=!1,b0=dU(U0.PromiseRejectionEvent),Y0=_0("Promise",(function(){var A=DU(VC),e=A!==String(VC);if(!e&&wm===66)return!0;if(!wm||wm<51||!/native code/.test(A)){var t=new VC((function(o){o(1)})),i=function(o){o((function(){}),(function(){}))};if((t.constructor={})[yU]=i,!(Sm=t.then((function(){}))instanceof i))return!0}return!(e||L0!=="BROWSER"&&L0!=="DENO"||b0)})),PE={CONSTRUCTOR:Y0,REJECTION_EVENT:b0,SUBCLASSING:Sm},WC={},J0=Se,RU=TypeError,mU=function(A){var e,t;this.promise=new A((function(i,o){if(e!==void 0||t!==void 0)throw new RU("Bad Promise constructor");e=i,t=o})),this.resolve=J0(e),this.reject=J0(t)};WC.f=function(A){return new mU(A)};var ja,Gm,Bs,fU=Di,tD=Ra,Cs=z,Vg=KA,iD=Hi,x0=Xn,wU=qr,SU=pi,GU=Se,oD=Bt,MU=oi,kU=jr,NU=ss,K0=en.set,gD=T0,FU=function(A,e){try{arguments.length===1?console.error(A):console.error(A,e)}catch{}},vU=fm,H0=N0,O0=Wo,ZC=Yh,Mm=WC,Jh="Promise",q0=PE.CONSTRUCTOR,TU=PE.REJECTION_EVENT,UU=PE.SUBCLASSING,km=O0.getterFor(Jh),P0=O0.set,Xa=ZC&&ZC.prototype,jC=ZC,xh=Xa,V0=Cs.TypeError,Nm=Cs.document,Kh=Cs.process,rD=Mm.f,_U=rD,LU=!!(Nm&&Nm.createEvent&&Cs.dispatchEvent),W0="unhandledrejection",Fm=function(A){var e;return!(!MU(A)||!oD(e=A.then))&&e},Z0=function(A,e){var t,i,o,g=e.value,r=e.state===1,n=r?A.ok:A.fail,I=A.resolve,C=A.reject,u=A.domain;try{n?(r||(e.rejection===2&&bU(e),e.rejection=1),n===!0?t=g:(u&&u.enter(),t=n(g),u&&(u.exit(),o=!0)),t===A.promise?C(new V0("Promise-chain cycle")):(i=Fm(t))?Vg(i,t,I,C):I(t)):C(g)}catch(R){u&&!o&&u.exit(),C(R)}},j0=function(A,e){A.notified||(A.notified=!0,gD((function(){for(var t,i=A.reactions;t=i.get();)Z0(t,A);A.notified=!1,e&&!A.rejection&&X0(A)})))},vm=function(A,e,t){var i,o;LU?((i=Nm.createEvent("Event")).promise=e,i.reason=t,i.initEvent(A,!1,!0),Cs.dispatchEvent(i)):i={promise:e,reason:t},!TU&&(o=Cs["on"+A])?o(i):A===W0&&FU("Unhandled promise rejection",t)},X0=function(A){Vg(K0,Cs,(function(){var e,t=A.facade,i=A.value;if(Tm(A)&&(e=vU((function(){tD?Kh.emit("unhandledRejection",i,t):vm(W0,t,i)})),A.rejection=tD||Tm(A)?2:1,e.error))throw e.value}))},Tm=function(A){return A.rejection!==1&&!A.parent},bU=function(A){Vg(K0,Cs,(function(){var e=A.facade;tD?Kh.emit("rejectionHandled",e):vm("rejectionhandled",e,A.value)}))},VE=function(A,e,t){return function(i){A(e,i,t)}},XC=function(A,e,t){A.done||(A.done=!0,t&&(A=t),A.value=e,A.state=2,j0(A,!0))},Um=function(A,e,t){if(!A.done){A.done=!0,t&&(A=t);try{if(A.facade===e)throw new V0("Promise can't be resolved itself");var i=Fm(e);i?gD((function(){var o={done:!1};try{Vg(i,e,VE(Um,o,A),VE(XC,o,A))}catch(g){XC(o,g,A)}})):(A.value=e,A.state=1,j0(A,!1))}catch(o){XC({done:!1},o,A)}}};if(q0&&(xh=(jC=function(A){kU(this,xh),GU(A),Vg(ja,this);var e=km(this);try{A(VE(Um,e),VE(XC,e))}catch(t){XC(e,t)}}).prototype,(ja=function(A){P0(this,{type:Jh,done:!1,notified:!1,parent:!1,reactions:new H0,rejection:!1,state:0,value:null})}).prototype=iD(xh,"then",(function(A,e){var t=km(this),i=rD(NU(this,jC));return t.parent=!0,i.ok=!oD(A)||A,i.fail=oD(e)&&e,i.domain=tD?Kh.domain:void 0,t.state===0?t.reactions.add(i):gD((function(){Z0(i,t)})),i.promise})),Gm=function(){var A=new ja,e=km(A);this.promise=A,this.resolve=VE(Um,e),this.reject=VE(XC,e)},Mm.f=rD=function(A){return A===jC||A===void 0?new Gm(A):_U(A)},oD(ZC)&&Xa!==Object.prototype)){Bs=Xa.then,UU||iD(Xa,"then",(function(A,e){var t=this;return new jC((function(i,o){Vg(Bs,t,i,o)})).then(A,e)}),{unsafe:!0});try{delete Xa.constructor}catch{}x0&&x0(Xa,xh)}fU({global:!0,constructor:!0,wrap:!0,forced:q0},{Promise:jC}),wU(jC,Jh,!1),SU(Jh);var YU=lE,z0=Pt("iterator"),JU=Array.prototype,_m=function(A){return A!==void 0&&(YU.Array===A||JU[z0]===A)},xU=la,$0=Ht,KU=Ro,HU=lE,aD=Pt("iterator"),za=function(A){if(!KU(A))return $0(A,aD)||$0(A,"@@iterator")||HU[xU(A)]},Lm=KA,OU=Se,qU=so,ID=ar,PU=za,bm=TypeError,WE=function(A,e){var t=arguments.length<2?PU(A):e;if(OU(t))return qU(Lm(t,A));throw new bm(ID(A)+" is not iterable")},VU=KA,Ym=so,WU=Ht,AM=function(A,e,t){var i,o;Ym(A);try{if(!(i=WU(A,"return"))){if(e==="throw")throw t;return t}i=VU(i,A)}catch(g){o=!0,i=g}if(e==="throw")throw t;if(o)throw i;return Ym(i),t},eM=Es,ZU=KA,jU=so,tM=ar,XU=_m,zU=xr,iM=vi,$U=WE,oM=za,zC=AM,gM=TypeError,Hh=function(A,e){this.stopped=A,this.result=e},Jm=Hh.prototype,rM=function(A,e,t){var i,o,g,r,n,I,C,u=t&&t.that,R=!(!t||!t.AS_ENTRIES),M=!(!t||!t.IS_RECORD),L=!(!t||!t.IS_ITERATOR),H=!(!t||!t.INTERRUPTED),gA=eM(e,u),EA=function(hA){return i&&zC(i,"normal",hA),new Hh(!0,hA)},TA=function(hA){return R?(jU(hA),H?gA(hA[0],hA[1],EA):gA(hA[0],hA[1])):H?gA(hA,EA):gA(hA)};if(M)i=A.iterator;else if(L)i=A;else{if(!(o=oM(A)))throw new gM(tM(A)+" is not iterable");if(XU(o)){for(g=0,r=zU(A);r>g;g++)if((n=TA(A[g]))&&iM(Jm,n))return n;return new Hh(!1)}i=$U(A,o)}for(I=M?A.next:i.next;!(C=ZU(I,i)).done;){try{n=TA(C.value)}catch(hA){zC(i,"throw",hA)}if(typeof n=="object"&&n&&iM(Jm,n))return n}return new Hh(!1)},xm=Pt("iterator"),$C=!1;try{var AQ=0,Km={next:function(){return{done:!!AQ++}},return:function(){$C=!0}};Km[xm]=function(){return this},Array.from(Km,(function(){throw 2}))}catch{}var nD=function(A,e){try{if(!e&&!$C)return!1}catch{return!1}var t=!1;try{var i={};i[xm]=function(){return{next:function(){return{done:t=!0}}}},A(i)}catch{}return t},Oh=Yh,aM=PE.CONSTRUCTOR||!nD((function(A){Oh.all(A).then(void 0,(function(){}))})),A_=KA,sD=Se,Hm=WC,Om=fm,e_=rM;Di({target:"Promise",stat:!0,forced:aM},{all:function(A){var e=this,t=Hm.f(e),i=t.resolve,o=t.reject,g=Om((function(){var r=sD(e.resolve),n=[],I=0,C=1;e_(A,(function(u){var R=I++,M=!1;C++,A_(r,e,u).then((function(L){M||(M=!0,n[R]=L,--C||i(n))}),o)})),--C||i(n)}));return g.error&&o(g.value),t.promise}});var t_=Di,i_=PE.CONSTRUCTOR,ED=Yh,qh=Gt,o_=Bt,g_=Hi,eQ=ED&&ED.prototype;if(t_({target:"Promise",proto:!0,forced:i_,real:!0},{catch:function(A){return this.then(void 0,A)}}),o_(ED)){var IM=qh("Promise").prototype.catch;eQ.catch!==IM&&g_(eQ,"catch",IM,{unsafe:!0})}var r_=KA,a_=Se,nM=WC,sM=fm,I_=rM;Di({target:"Promise",stat:!0,forced:aM},{race:function(A){var e=this,t=nM.f(e),i=t.reject,o=sM((function(){var g=a_(e.resolve);I_(A,(function(r){r_(g,e,r).then(t.resolve,i)}))}));return o.error&&i(o.value),t.promise}});var n_=WC;Di({target:"Promise",stat:!0,forced:PE.CONSTRUCTOR},{reject:function(A){var e=n_.f(this);return(0,e.reject)(A),e.promise}});var s_=so,E_=oi,EM=WC,qm=function(A,e){if(s_(A),E_(e)&&e.constructor===A)return e;var t=EM.f(A);return(0,t.resolve)(e),t.promise},yr=Di,B_=PE.CONSTRUCTOR,C_=qm;Gt("Promise"),yr({target:"Promise",stat:!0,forced:B_},{resolve:function(A){return C_(this,A)}});var BM=Di,BD=Yh,CM=rA,Pm=Gt,QM=Bt,cM=ss,hM=qm,Q_=Hi,Vm=BD&&BD.prototype;if(BM({target:"Promise",proto:!0,real:!0,forced:!!BD&&CM((function(){Vm.finally.call({then:function(){}},(function(){}))}))},{finally:function(A){var e=cM(this,Pm("Promise")),t=QM(A);return this.then(t?function(i){return hM(e,A()).then((function(){return i}))}:A,t?function(i){return hM(e,A()).then((function(){throw i}))}:A)}}),QM(BD)){var CD=Pm("Promise").prototype.finally;Vm.finally!==CD&&Q_(Vm,"finally",CD,{unsafe:!0})}var lM=oi,c_=Mt,Wm=Pt("match"),uM=function(A){var e;return lM(A)&&((e=A[Wm])!==void 0?!!e:c_(A)==="RegExp")},dM=so,DM=function(){var A=dM(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},Zm=KA,Ph=ci,pM=vi,jm=DM,QD=RegExp.prototype,Xm=function(A){var e=A.flags;return e!==void 0||"flags"in QD||Ph(A,"flags")||!pM(QD,A)?e:Zm(jm,A)},cD=rA,hD=z.RegExp,lD=cD((function(){var A=hD("a","y");return A.lastIndex=2,A.exec("abcd")!==null})),h_=lD||cD((function(){return!hD("a","y").sticky})),l_=lD||cD((function(){var A=hD("^r","gy");return A.lastIndex=2,A.exec("str")!==null})),zm={BROKEN_CARET:l_,MISSED_STICKY:h_,UNSUPPORTED_Y:lD},tQ=Ai.f,$m=rA,Af=z.RegExp,uD=$m((function(){var A=Af(".","s");return!(A.dotAll&&A.test(`
|
||
`)&&A.flags==="s")})),yM=rA,RM=z.RegExp,mM=yM((function(){var A=RM("(?<a>b)","g");return A.exec("b").groups.a!=="b"||"b".replace(A,"$<a>c")!=="bc"})),u_=MA,Qs=z,Vh=_e,fM=Eo,ef=ur,d_=Qa,D_=ag,p_=oC.f,wM=vi,tf=uM,of=rg,SM=Xm,gf=zm,dD=function(A,e,t){t in A||tQ(A,t,{configurable:!0,get:function(){return e[t]},set:function(i){e[t]=i}})},rf=Hi,DD=rA,pD=ci,y_=Wo.enforce,af=pi,Wh=uD,GM=mM,Zh=Pt("match"),cs=Qs.RegExp,iQ=cs.prototype,R_=Qs.SyntaxError,m_=Vh(iQ.exec),jh=Vh("".charAt),yD=Vh("".replace),MM=Vh("".indexOf),If=Vh("".slice),kM=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,ZE=/a/g,on=/a/g,oQ=new cs(ZE)!==ZE,nf=gf.MISSED_STICKY,f_=gf.UNSUPPORTED_Y,w_=u_&&(!oQ||nf||Wh||GM||DD((function(){return on[Zh]=!1,cs(ZE)!==ZE||cs(on)===on||String(cs(ZE,"i"))!=="/a/i"})));if(fM("RegExp",w_)){for(var gn=function(A,e){var t,i,o,g,r,n,I=wM(iQ,this),C=tf(A),u=e===void 0,R=[],M=A;if(!I&&C&&u&&A.constructor===gn)return A;if((C||wM(iQ,A))&&(A=A.source,u&&(e=SM(M))),A=A===void 0?"":of(A),e=e===void 0?"":of(e),M=A,Wh&&"dotAll"in ZE&&(i=!!e&&MM(e,"s")>-1)&&(e=yD(e,/s/g,"")),t=e,nf&&"sticky"in ZE&&(o=!!e&&MM(e,"y")>-1)&&f_&&(e=yD(e,/y/g,"")),GM&&(g=(function(L){for(var H,gA=L.length,EA=0,TA="",hA=[],ZA=D_(null),BA=!1,xA=!1,ie=0,ge="";EA<=gA;EA++){if((H=jh(L,EA))==="\\")H+=jh(L,++EA);else if(H==="]")BA=!1;else if(!BA)switch(!0){case H==="[":BA=!0;break;case H==="(":if(TA+=H,If(L,EA+1,EA+3)==="?:")continue;m_(kM,If(L,EA+1))&&(EA+=2,xA=!0),ie++;continue;case(H===">"&&xA):if(ge===""||pD(ZA,ge))throw new R_("Invalid capture group name");ZA[ge]=!0,hA[hA.length]=[ge,ie],xA=!1,ge="";continue}xA?ge+=H:TA+=H}return[TA,hA]})(A),A=g[0],R=g[1]),r=ef(cs(A,e),I?this:iQ,gn),(i||o||R.length)&&(n=y_(r),i&&(n.dotAll=!0,n.raw=gn((function(L){for(var H,gA=L.length,EA=0,TA="",hA=!1;EA<=gA;EA++)(H=jh(L,EA))!=="\\"?hA||H!=="."?(H==="["?hA=!0:H==="]"&&(hA=!1),TA+=H):TA+="[\\s\\S]":TA+=H+jh(L,++EA);return TA})(A),t)),o&&(n.sticky=!0),R.length&&(n.groups=R)),A!==M)try{d_(r,"source",M===""?"(?:)":M)}catch{}return r},sf=p_(cs),Ef=0;sf.length>Ef;)dD(gn,cs,sf[Ef++]);iQ.constructor=gn,gn.prototype=iQ,rf(Qs,"RegExp",gn,{constructor:!0})}af("RegExp");var jE=KA,RD=_e,mD=rg,hs=DM,S_=zm,gQ=ag,NM=Wo.get,FM=uD,G_=mM,M_=Ot("native-string-replace",String.prototype.replace),fD=RegExp.prototype.exec,rQ=fD,k_=RD("".charAt),N_=RD("".indexOf),F_=RD("".replace),wD=RD("".slice),Xh=(function(){var A=/a/,e=/b*/g;return jE(fD,A,"a"),jE(fD,e,"a"),A.lastIndex!==0||e.lastIndex!==0})(),vM=S_.BROKEN_CARET,Bf=/()??/.exec("")[1]!==void 0;(Xh||Bf||vM||FM||G_)&&(rQ=function(A){var e,t,i,o,g,r,n,I=this,C=NM(I),u=mD(A),R=C.raw;if(R)return R.lastIndex=I.lastIndex,e=jE(rQ,R,u),I.lastIndex=R.lastIndex,e;var M=C.groups,L=vM&&I.sticky,H=jE(hs,I),gA=I.source,EA=0,TA=u;if(L&&(H=F_(H,"y",""),N_(H,"g")===-1&&(H+="g"),TA=wD(u,I.lastIndex),I.lastIndex>0&&(!I.multiline||I.multiline&&k_(u,I.lastIndex-1)!==`
|
||
`)&&(gA="(?: "+gA+")",TA=" "+TA,EA++),t=new RegExp("^(?:"+gA+")",H)),Bf&&(t=new RegExp("^"+gA+"$(?!\\s)",H)),Xh&&(i=I.lastIndex),o=jE(fD,L?t:I,TA),L?o?(o.input=wD(o.input,EA),o[0]=wD(o[0],EA),o.index=I.lastIndex,I.lastIndex+=o[0].length):I.lastIndex=0:Xh&&o&&(I.lastIndex=I.global?o.index+o[0].length:i),Bf&&o&&o.length>1&&jE(M_,o[0],t,(function(){for(g=1;g<arguments.length-2;g++)arguments[g]===void 0&&(o[g]=void 0)})),o&&M)for(o.groups=r=gQ(null),g=0;g<M.length;g++)r[(n=M[g])[0]]=o[n[1]];return o});var SD=rQ;Di({target:"RegExp",proto:!0,forced:/./.exec!==SD},{exec:SD});var TM=sr,GD=rg,UM=mi,MD=RangeError,Cf=_e,v_=Jr,_M=rg,Qf=function(A){var e=GD(UM(this)),t="",i=TM(A);if(i<0||i===1/0)throw new MD("Wrong number of repetitions");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(t+=e);return t},T_=mi,aQ=Cf(Qf),IQ=Cf("".slice),kD=Math.ceil,LM=function(A){return function(e,t,i){var o,g,r=_M(T_(e)),n=v_(t),I=r.length,C=i===void 0?" ":_M(i);return n<=I||C===""?r:((g=aQ(C,kD((o=n-I)/C.length))).length>o&&(g=IQ(g,0,o)),A?r+g:g+r)}},cf={start:LM(!1)},hf=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(Vi),lf=cf.start;Di({target:"String",proto:!0,forced:hf},{padStart:function(A){return lf(this,A,arguments.length>1?arguments[1]:void 0)}});var bM=KA,YM=Hi,JM=SD,uf=rA,df=Pt,xM=df("species"),Df=RegExp.prototype,pf=_e,KM=sr,U_=rg,nQ=mi,sQ=pf("".charAt),ND=pf("".charCodeAt),__=pf("".slice),HM=function(A){return function(e,t){var i,o,g=U_(nQ(e)),r=KM(t),n=g.length;return r<0||r>=n?A?"":void 0:(i=ND(g,r))<55296||i>56319||r+1===n||(o=ND(g,r+1))<56320||o>57343?A?sQ(g,r):i:A?__(g,r,r+2):o-56320+(i-55296<<10)+65536}},yf={codeAt:HM(!1),charAt:HM(!0)},OM=yf.charAt,Rf=_e,qM=Po,L_=Math.floor,mf=Rf("".charAt),b_=Rf("".replace),zh=Rf("".slice),Y_=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,J_=/\$([$&'`]|\d{1,2})/g,PM=function(A,e,t,i,o,g){var r=t+A.length,n=i.length,I=J_;return o!==void 0&&(o=qM(o),I=Y_),b_(g,I,(function(C,u){var R;switch(mf(u,0)){case"$":return"$";case"&":return A;case"`":return zh(e,0,t);case"'":return zh(e,r);case"<":R=o[zh(u,1,-1)];break;default:var M=+u;if(M===0)return C;if(M>n){var L=L_(M/10);return L===0?C:L<=n?i[L-1]===void 0?mf(u,1):i[L-1]+mf(u,1):C}R=i[M-1]}return R===void 0?"":R}))},VM=KA,x_=so,K_=Bt,WM=Mt,H_=SD,ZM=TypeError,O_=Xd,jM=KA,FD=_e,q_=function(A,e,t,i){var o=df(A),g=!uf((function(){var C={};return C[o]=function(){return 7},""[A](C)!==7})),r=g&&!uf((function(){var C=!1,u=/a/;return A==="split"&&((u={}).constructor={},u.constructor[xM]=function(){return u},u.flags="",u[o]=/./[o]),u.exec=function(){return C=!0,null},u[o](""),!C}));if(!g||!r||t){var n=/./[o],I=e(o,""[A],(function(C,u,R,M,L){var H=u.exec;return H===JM||H===Df.exec?g&&!L?{done:!0,value:bM(n,u,R,M)}:{done:!0,value:bM(C,R,u,M)}:{done:!1}}));YM(String.prototype,A,I[0]),YM(Df,o,I[1])}},P_=rA,V_=so,W_=Bt,XM=Ro,Z_=sr,j_=Jr,XE=rg,X_=mi,vD=function(A,e,t){return e+(t?OM(A,e).length:1)},zM=Ht,TD=PM,$M=function(A,e){var t=A.exec;if(K_(t)){var i=VM(t,A,e);return i!==null&&x_(i),i}if(WM(A)==="RegExp")return VM(H_,A,e);throw new ZM("RegExp#exec called on incompatible receiver")},UD=Pt("replace"),z_=Math.max,Ak=Math.min,ff=FD([].concat),wf=FD([].push),Sf=FD("".indexOf),ek=FD("".slice),$_=function(A){return A===void 0?A:String(A)},AL="a".replace(/./,"$0")==="$0",tk=!!/./[UD]&&/./[UD]("a","$0")==="",eL=!P_((function(){var A=/./;return A.exec=function(){var e=[];return e.groups={a:"7"},e},"".replace(A,"$<a>")!=="7"}));q_("replace",(function(A,e,t){var i=tk?"$":"$0";return[function(o,g){var r=X_(this),n=XM(o)?void 0:zM(o,UD);return n?jM(n,o,r,g):jM(e,XE(r),o,g)},function(o,g){var r=V_(this),n=XE(o);if(typeof g=="string"&&Sf(g,i)===-1&&Sf(g,"$<")===-1){var I=t(e,r,n,g);if(I.done)return I.value}var C=W_(g);C||(g=XE(g));var u,R=r.global;R&&(u=r.unicode,r.lastIndex=0);for(var M,L=[];(M=$M(r,n))!==null&&(wf(L,M),R);)XE(M[0])===""&&(r.lastIndex=vD(n,j_(r.lastIndex),u));for(var H="",gA=0,EA=0;EA<L.length;EA++){for(var TA,hA=XE((M=L[EA])[0]),ZA=z_(Ak(Z_(M.index),n.length),0),BA=[],xA=1;xA<M.length;xA++)wf(BA,$_(M[xA]));var ie=M.groups;if(C){var ge=ff([hA],BA,ZA,n);ie!==void 0&&wf(ge,ie),TA=XE(O_(g,void 0,ge))}else TA=TD(hA,n,ZA,BA,ie,g);ZA>=gA&&(H+=ek(n,gA,ZA)+TA,gA=ZA+hA.length)}return H+ek(n,gA)}]}),!eL||!AL||tk);var ik=`
|
||
\v\f\r \u2028\u2029\uFEFF`,tL=mi,Gf=rg,Mf=ik,ok=_e("".replace),iL=RegExp("^["+Mf+"]+"),gk=RegExp("(^|[^"+Mf+"])["+Mf+"]+$"),rk=function(A){return function(e){var t=Gf(tL(e));return 1&A&&(t=ok(t,iL,"")),2&A&&(t=ok(t,gk,"$1")),t}},oL={trim:rk(3)},gL=GI.PROPER,rL=rA,ak=ik,aL=oL.trim;Di({target:"String",proto:!0,forced:(function(A){return rL((function(){return!!ak[A]()||"
"[A]()!=="
"||gL&&ak[A].name!==A}))})("trim")},{trim:function(){return aL(this)}});var Wg,EQ,_D,kf={exports:{}},IL=oo,Nf=MA,wg=z,Ik=Bt,nk=oi,$h=ci,sk=la,Ek=ar,Ff=Qa,Al=Hi,vf=TI,nL=vi,LD=ua,BQ=Xn,sL=Pt,Bk=fI,Ck=Wo.enforce,bD=wg.Int8Array,YD=bD&&bD.prototype,zE=wg.Uint8ClampedArray,el=zE&&zE.prototype,$a=bD&&LD(bD),fa=YD&&LD(YD),EL=Object.prototype,Tf=wg.TypeError,Qk=sL("toStringTag"),Uf=Bk("TYPED_ARRAY_TAG"),ck="TypedArrayConstructor",rn=IL&&!!BQ&&sk(wg.opera)!=="Opera",tl=!1,AI={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},hk={BigInt64Array:8,BigUint64Array:8},lk=function(A){if(!nk(A))return!1;var e=sk(A);return $h(AI,e)||$h(hk,e)};for(Wg in AI)(_D=(EQ=wg[Wg])&&EQ.prototype)?Ck(_D)[ck]=EQ:rn=!1;for(Wg in hk)(_D=(EQ=wg[Wg])&&EQ.prototype)&&(Ck(_D)[ck]=EQ);if((!rn||!Ik($a)||$a===Function.prototype)&&($a=function(){throw new Tf("Incorrect invocation")},rn))for(Wg in AI)wg[Wg]&&BQ(wg[Wg],$a);if((!rn||!fa||fa===EL)&&(fa=$a.prototype,rn))for(Wg in AI)wg[Wg]&&BQ(wg[Wg].prototype,fa);if(rn&&LD(el)!==fa&&BQ(el,fa),Nf&&!$h(fa,Qk))for(Wg in tl=!0,vf(fa,Qk,{configurable:!0,get:function(){return nk(this)?this[Uf]:void 0}}),AI)wg[Wg]&&Ff(wg[Wg],Uf,Wg);var an={NATIVE_ARRAY_BUFFER_VIEWS:rn,TYPED_ARRAY_TAG:tl&&Uf,aTypedArray:function(A){if(lk(A))return A;throw new Tf("Target is not a typed array")},aTypedArrayConstructor:function(A){if(Ik(A)&&(!BQ||nL($a,A)))return A;throw new Tf(Ek(A)+" is not a typed array constructor")},exportTypedArrayMethod:function(A,e,t,i){if(Nf){if(t)for(var o in AI){var g=wg[o];if(g&&$h(g.prototype,A))try{delete g.prototype[A]}catch{try{g.prototype[A]=e}catch{}}}fa[A]&&!t||Al(fa,A,t?e:rn&&YD[A]||e,i)}},exportTypedArrayStaticMethod:function(A,e,t){var i,o;if(Nf){if(BQ){if(t){for(i in AI)if((o=wg[i])&&$h(o,A))try{delete o[A]}catch{}}if($a[A]&&!t)return;try{return Al($a,A,t?e:rn&&$a[A]||e)}catch{}}for(i in AI)!(o=wg[i])||o[A]&&!t||Al(o,A,e)}},isTypedArray:lk,TypedArray:$a,TypedArrayPrototype:fa},JD=z,il=rA,uk=nD,_f=an.NATIVE_ARRAY_BUFFER_VIEWS,xD=JD.ArrayBuffer,$E=JD.Int8Array,Lf=!_f||!il((function(){$E(1)}))||!il((function(){new $E(-1)}))||!uk((function(A){new $E,new $E(null),new $E(1.5),new $E(A)}),!0)||il((function(){return new $E(new xD(2),1,void 0).length!==1})),BL=oi,CL=Math.floor,QL=Number.isInteger||function(A){return!BL(A)&&isFinite(A)&&CL(A)===A},cL=sr,dk=RangeError,hL=function(A){var e=cL(A);if(e<0)throw new dk("The argument can't be less than 0");return e},lL=RangeError,ol=function(A,e){var t=hL(A);if(t%e)throw new lL("Wrong offset");return t},uL=Math.round,dL=la,DL=W,Dk=TypeError,pk=function(A){var e=DL(A,"number");if(typeof e=="number")throw new Dk("Can't convert number to bigint");return BigInt(e)},pL=Es,bf=KA,yk=Q0,Rk=Po,yL=xr,RL=WE,mk=za,fk=_m,mL=function(A){var e=dL(A);return e==="BigInt64Array"||e==="BigUint64Array"},wk=an.aTypedArrayConstructor,Sk=pk,Gk=function(A){var e,t,i,o,g,r,n,I,C=yk(this),u=Rk(A),R=arguments.length,M=R>1?arguments[1]:void 0,L=M!==void 0,H=mk(u);if(H&&!fk(H))for(I=(n=RL(u,H)).next,u=[];!(r=bf(I,n)).done;)u.push(r.value);for(L&&R>2&&(M=pL(M,arguments[2])),t=yL(u),i=new(wk(C))(t),o=mL(i),e=0;t>e;e++)g=L?M(u[e],e):u[e],i[e]=o?Sk(g):+g;return i},Mk=be,Yf=im,kk=oi,Jf=Pt("species"),Nk=Array,fL=function(A){var e;return Mk(A)&&(e=A.constructor,(Yf(e)&&(e===Nk||Mk(e.prototype))||kk(e)&&(e=e[Jf])===null)&&(e=void 0)),e===void 0?Nk:e},wL=Es,SL=Lg,Fk=Po,GL=xr,ML=function(A,e){return new(fL(A))(e===0?0:e)},xf=_e([].push),kL=function(A){var e=A===1,t=A===2,i=A===3,o=A===4,g=A===6,r=A===7,n=A===5||g;return function(I,C,u,R){for(var M,L,H=Fk(I),gA=SL(H),EA=GL(gA),TA=wL(C,u),hA=0,ZA=R||ML,BA=e?ZA(I,EA):t||r?ZA(I,0):void 0;EA>hA;hA++)if((n||hA in gA)&&(L=TA(M=gA[hA],hA,H),A))if(e)BA[hA]=L;else if(L)switch(A){case 3:return!0;case 5:return M;case 6:return hA;case 2:xf(BA,M)}else switch(A){case 4:return!1;case 7:xf(BA,M)}return g?-1:i||o?o:BA}},Kf={forEach:kL(0)},vk=xr,Tk=Di,Uk=z,_k=KA,NL=MA,FL=Lf,CQ=an,Lk=ze,bk=jr,vL=Ue,gl=Qa,TL=QL,KD=Jr,Yk=kE,Hf=ol,UL=function(A){var e=uL(A);return e<0?0:e>255?255:255&e},Jk=vA,QQ=ci,xk=la,rl=oi,_L=rr,LL=ag,Of=vi,HD=Xn,qf=oC.f,Kk=Gk,bL=Kf.forEach,YL=pi,Hk=TI,al=Ai,Ok=FA,qk=function(A,e,t){for(var i=0,o=arguments.length>2?t:vk(e),g=new A(o);o>i;)g[i]=e[i++];return g},JL=ur,Pf=Wo.get,xL=Wo.set,KL=Wo.enforce,Pk=al.f,AB=Ok.f,Vf=Uk.RangeError,Vk=Lk.ArrayBuffer,HL=Vk.prototype,OL=Lk.DataView,OD=CQ.NATIVE_ARRAY_BUFFER_VIEWS,Wk=CQ.TYPED_ARRAY_TAG,qD=CQ.TypedArray,Il=CQ.TypedArrayPrototype,Wf=CQ.isTypedArray,PD="BYTES_PER_ELEMENT",nl="Wrong length",eB=function(A,e){Hk(A,e,{configurable:!0,get:function(){return Pf(this)[e]}})},Zf=function(A){var e;return Of(HL,A)||(e=xk(A))==="ArrayBuffer"||e==="SharedArrayBuffer"},Zk=function(A,e){return Wf(A)&&!_L(e)&&e in A&&TL(+e)&&e>=0},jk=function(A,e){return e=Jk(e),Zk(A,e)?vL(2,A[e]):AB(A,e)},jf=function(A,e,t){return e=Jk(e),!(Zk(A,e)&&rl(t)&&QQ(t,"value"))||QQ(t,"get")||QQ(t,"set")||t.configurable||QQ(t,"writable")&&!t.writable||QQ(t,"enumerable")&&!t.enumerable?Pk(A,e,t):(A[e]=t.value,A)};NL?(OD||(Ok.f=jk,al.f=jf,eB(Il,"buffer"),eB(Il,"byteOffset"),eB(Il,"byteLength"),eB(Il,"length")),Tk({target:"Object",stat:!0,forced:!OD},{getOwnPropertyDescriptor:jk,defineProperty:jf}),kf.exports=function(A,e,t){var i=A.match(/\d+/)[0]/8,o=A+(t?"Clamped":"")+"Array",g="get"+A,r="set"+A,n=Uk[o],I=n,C=I&&I.prototype,u={},R=function(L,H){Pk(L,H,{get:function(){return(function(gA,EA){var TA=Pf(gA);return TA.view[g](EA*i+TA.byteOffset,!0)})(this,H)},set:function(gA){return(function(EA,TA,hA){var ZA=Pf(EA);ZA.view[r](TA*i+ZA.byteOffset,t?UL(hA):hA,!0)})(this,H,gA)},enumerable:!0})};OD?FL&&(I=e((function(L,H,gA,EA){return bk(L,C),JL(rl(H)?Zf(H)?EA!==void 0?new n(H,Hf(gA,i),EA):gA!==void 0?new n(H,Hf(gA,i)):new n(H):Wf(H)?qk(I,H):_k(Kk,I,H):new n(Yk(H)),L,I)})),HD&&HD(I,qD),bL(qf(n),(function(L){L in I||gl(I,L,n[L])})),I.prototype=C):(I=e((function(L,H,gA,EA){bk(L,C);var TA,hA,ZA,BA=0,xA=0;if(rl(H)){if(!Zf(H))return Wf(H)?qk(I,H):_k(Kk,I,H);TA=H,xA=Hf(gA,i);var ie=H.byteLength;if(EA===void 0){if(ie%i)throw new Vf(nl);if((hA=ie-xA)<0)throw new Vf(nl)}else if((hA=KD(EA)*i)+xA>ie)throw new Vf(nl);ZA=hA/i}else ZA=Yk(H),TA=new Vk(hA=ZA*i);for(xL(L,{buffer:TA,byteOffset:xA,byteLength:hA,length:ZA,view:new OL(TA)});BA<ZA;)R(L,BA++)})),HD&&HD(I,qD),C=I.prototype=LL(Il)),C.constructor!==I&&gl(C,"constructor",I),KL(C).TypedArrayConstructor=I,Wk&&gl(C,Wk,o);var M=I!==n;u[o]=I,Tk({global:!0,constructor:!0,forced:M,sham:!OD},u),PD in I||gl(I,PD,i),PD in C||gl(C,PD,i),YL(o)}):kf.exports=function(){};var VD=kf.exports;VD("Float32",(function(A){return function(e,t,i){return A(this,e,t,i)}})),VD("Uint8",(function(A){return function(e,t,i){return A(this,e,t,i)}}));var qL=Kd,PL=pk,VL=la,Xk=KA,WL=rA,ZL=an.aTypedArray,zk=an.exportTypedArrayMethod,jL=_e("".slice);zk("fill",(function(A){var e=arguments.length;ZL(this);var t=jL(VL(this),0,3)==="Big"?PL(A):+A;return Xk(qL,this,t,e>1?arguments[1]:void 0,e>2?arguments[2]:void 0)}),WL((function(){var A=0;return new Int8Array(2).fill({valueOf:function(){return A++}}),A!==1}))),(0,an.exportTypedArrayStaticMethod)("from",Gk,Lf);var Xf=z,$k=KA,zf=an,XL=xr,zL=ol,AN=Po,eN=rA,$L=Xf.RangeError,$f=Xf.Int8Array,tN=$f&&$f.prototype,iN=tN&&tN.set,oN=zf.aTypedArray,gN=zf.exportTypedArrayMethod,sl=!eN((function(){var A=new Uint8ClampedArray(2);return $k(iN,A,{length:1,0:3},1),A[1]!==3})),rN=sl&&zf.NATIVE_ARRAY_BUFFER_VIEWS&&eN((function(){var A=new $f(2);return A.set(1),A.set("2",1),A[0]!==0||A[1]!==2}));gN("set",(function(A){oN(this);var e=zL(arguments.length>1?arguments[1]:void 0,1),t=AN(A);if(sl)return $k(iN,this,t,e);var i=this.length,o=XL(t),g=0;if(o+e>i)throw new $L("Wrong length");for(;g<o;)this[e+g]=t[g++]}),!sl||rN);var aN=xE,WD=rA,IN=Se,Ab=T,ZD=_,eb=b,Aw=xt,jD=nA,nN=an.aTypedArray,sN=an.exportTypedArrayMethod,El=z.Uint16Array,eI=El&&aN(El.prototype.sort),EN=!(!eI||WD((function(){eI(new El(2),null)}))&&WD((function(){eI(new El(2),{})}))),BN=!!eI&&!WD((function(){if(Aw)return Aw<74;if(ZD)return ZD<67;if(eb)return!0;if(jD)return jD<602;var A,e,t=new El(516),i=Array(516);for(A=0;A<516;A++)e=A%4,t[A]=515-A,i[A]=A-2*e+3;for(eI(t,(function(o,g){return(o/4|0)-(g/4|0)})),A=0;A<516;A++)if(t[A]!==i[A])return!0}));sN("sort",(function(A){return A!==void 0&&IN(A),BN?eI(this,A):Ab(nN(this),(function(e){return function(t,i){return e!==void 0?+e(t,i)||0:i!=i?-1:t!=t?1:t===0&&i===0?1/t>0&&1/i<0?1:-1:t>i}})(A))}),!BN||EN);var ew=Di,tw=KA,XD=_e,zD=mi,iw=Bt,ow=Ro,tb=uM,cQ=rg,ib=Ht,ob=Xm,Bl=PM,CN=Pt("replace"),gb=TypeError,$D=XD("".indexOf);XD("".replace);var In=XD("".slice),Ap=Math.max;ew({target:"String",proto:!0},{replaceAll:function(A,e){var t,i,o,g,r,n,I,C,u,R=zD(this),M=0,L="";if(!ow(A)){if(tb(A)&&(t=cQ(zD(ob(A))),!~$D(t,"g")))throw new gb("`.replaceAll` does not allow non-global regexes");if(i=ib(A,CN))return tw(i,A,R,e)}for(o=cQ(R),g=cQ(A),(r=iw(e))||(e=cQ(e)),n=g.length,I=Ap(1,n),C=$D(o,g);C!==-1;)u=r?cQ(e(g,C,o)):Bl(g,o,C,[],void 0,e),L+=In(o,M,C)+u,M=C+n,C=C+I>o.length?-1:$D(o,g,C+I);return M<o.length&&(L+=In(o,M)),L}});var QN={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},ep=ae("span").classList,cN=ep&&ep.constructor&&ep.constructor.prototype,hN=cN===Object.prototype?void 0:cN,rb=Kf.forEach,ab=Vr("forEach")?[].forEach:function(A){return rb(this,A,arguments.length>1?arguments[1]:void 0)},lN=z,gw=QN,Ib=hN,tp=ab,nb=Qa,uN=function(A){if(A&&A.forEach!==tp)try{nb(A,"forEach",tp)}catch{A.forEach=tp}};for(var rw in gw)gw[rw]&&uN(lN[rw]&&lN[rw].prototype);uN(Ib);var dN=z,DN=QN,sb=hN,Cl=ZR,pN=Qa,Eb=qr,Ql=Pt("iterator"),aw=Cl.values,yN=function(A,e){if(A){if(A[Ql]!==aw)try{pN(A,Ql,aw)}catch{A[Ql]=aw}if(Eb(A,e,!0),DN[e]){for(var t in Cl)if(A[t]!==Cl[t])try{pN(A,t,Cl[t])}catch{A[t]=Cl[t]}}}};for(var Iw in DN)yN(dN[Iw]&&dN[Iw].prototype,Iw);yN(sb,"DOMTokenList");var cl=en.clear;Di({global:!0,bind:!0,enumerable:!0,forced:z.clearImmediate!==cl},{clearImmediate:cl});var RN=z,Bb=Xd,Cb=Bt,Qb=PI,cb=Vi,mN=E,ip=PC,hb=RN.Function,lb=/MSIE .\./.test(cb)||Qb==="BUN"&&(function(){var A=RN.Bun.version.split(".");return A.length<3||A[0]==="0"&&(A[1]<3||A[1]==="3"&&A[2]==="0")})(),ub=Di,fN=z,wN=en.set,db=function(A,e){var t=1;return lb?function(i,o){var g=ip(arguments.length,1)>t,r=Cb(i)?i:hb(i),n=g?mN(arguments,t):[],I=g?function(){Bb(r,this,n)}:r;return A(I)}:A},op=fN.setImmediate?db(wN):wN;ub({global:!0,bind:!0,enumerable:!0,forced:fN.setImmediate!==op},{setImmediate:op});var Db=yf.charAt,SN=rg,GN=Wo,nw=Go,MN=Pr,sw="String Iterator",nn=GN.set,pb=GN.getterFor(sw);nw(String,"String",(function(A){nn(this,{type:sw,string:SN(A),index:0})}),(function(){var A,e=pb(this),t=e.string,i=e.index;return i>=t.length?MN(void 0,!0):(A=Db(t,i),e.index+=A.length,MN(A,!1))}));var Ew=rA,yb=MA,Rb=Pt("iterator"),kN=!Ew((function(){var A=new URL("b?a=1&b=2&c=3","https://a"),e=A.searchParams,t=new URLSearchParams("a=1&a=2&b=3"),i="";return A.pathname="c%20d",e.forEach((function(o,g){e.delete("b"),i+=g+o})),t.delete("a",2),t.delete("b",void 0),!e.size&&!yb||!e.sort||A.href!=="https://a/c%20d?a=1&c=3"||e.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!e[Rb]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("https://тест").host!=="xn--e1aybc"||new URL("https://a#б").hash!=="#%D0%B1"||i!=="a1c3"||new URL("https://x",void 0).host!=="x"})),NN=MA,FN=_e,mb=KA,fb=rA,Bw=_I,wb=Wc,Sb=Qe,Gb=Po,Cw=Lg,ls=Object.assign,vN=Object.defineProperty,Mb=FN([].concat),kb=!ls||fb((function(){if(NN&&ls({b:1},ls(vN({},"a",{enumerable:!0,get:function(){vN(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var A={},e={},t=Symbol("assign detection"),i="abcdefghijklmnopqrst";return A[t]=7,i.split("").forEach((function(o){e[o]=o})),ls({},A)[t]!==7||Bw(ls({},e)).join("")!==i}))?function(A,e){for(var t=Gb(A),i=arguments.length,o=1,g=wb.f,r=Sb.f;i>o;)for(var n,I=Cw(arguments[o++]),C=g?Mb(Bw(I),g(I)):Bw(I),u=C.length,R=0;u>R;)n=C[R++],NN&&!mb(r,I,n)||(t[n]=I[n]);return t}:ls,Nb=so,TN=AM,UN=MA,Fb=Ai,_N=Ue,vb=Es,Tb=KA,Ub=Po,_b=function(A,e,t,i){try{return i?e(Nb(t)[0],t[1]):e(t)}catch(o){TN(A,"throw",o)}},Lb=_m,LN=im,bb=xr,hQ=function(A,e,t){UN?Fb.f(A,e,_N(0,t)):A[e]=t},bN=WE,YN=za,gp=Array,tB=_e,Qw=2147483647,rp=/[^\0-\u007E]/,ap=/[.\u3002\uFF0E\uFF61]/g,JN="Overflow: input needs wider integers to process",xN=RangeError,KN=tB(ap.exec),lQ=Math.floor,Ip=String.fromCharCode,cw=tB("".charCodeAt),HN=tB([].join),us=tB([].push),Yb=tB("".replace),hw=tB("".split),ON=tB("".toLowerCase),np=function(A){return A+22+75*(A<26)},zr=function(A,e,t){var i=0;for(A=t?lQ(A/700):A>>1,A+=lQ(A/e);A>455;)A=lQ(A/35),i+=36;return lQ(i+36*A/(A+38))},Jb=function(A){var e=[];A=(function(TA){for(var hA=[],ZA=0,BA=TA.length;ZA<BA;){var xA=cw(TA,ZA++);if(xA>=55296&&xA<=56319&&ZA<BA){var ie=cw(TA,ZA++);(64512&ie)==56320?us(hA,((1023&xA)<<10)+(1023&ie)+65536):(us(hA,xA),ZA--)}else us(hA,xA)}return hA})(A);var t,i,o=A.length,g=128,r=0,n=72;for(t=0;t<A.length;t++)(i=A[t])<128&&us(e,Ip(i));var I=e.length,C=I;for(I&&us(e,"-");C<o;){var u=Qw;for(t=0;t<A.length;t++)(i=A[t])>=g&&i<u&&(u=i);var R=C+1;if(u-g>lQ((Qw-r)/R))throw new xN(JN);for(r+=(u-g)*R,g=u,t=0;t<A.length;t++){if((i=A[t])<g&&++r>Qw)throw new xN(JN);if(i===g){for(var M=r,L=36;;){var H=L<=n?1:L>=n+26?26:L-n;if(M<H)break;var gA=M-H,EA=36-H;us(e,Ip(np(H+gA%EA))),M=lQ(gA/EA),L+=36}us(e,Ip(np(M))),n=zr(r,R,C===I),r=0,C++}}r++,g++}return HN(e,"")},_i=Di,qN=_e,xb=oE,Kb=RangeError,sp=String.fromCharCode,PN=String.fromCodePoint,I2=qN([].join);_i({target:"String",stat:!0,arity:1,forced:!!PN&&PN.length!==1},{fromCodePoint:function(A){for(var e,t=[],i=arguments.length,o=0;i>o;){if(e=+arguments[o++],xb(e,1114111)!==e)throw new Kb(e+" is not a valid code point");t[o]=e<65536?sp(e):sp(55296+((e-=65536)>>10),e%1024+56320)}return I2(t,"")}});var Ep=Di,VN=z,lw=M0,ds=Gt,iB=KA,Sg=_e,sn=MA,uQ=kN,dQ=Hi,uw=TI,kt=Zr,dw=qr,WN=fd,Bp=Wo,ZN=jr,Dw=Bt,Hb=ci,Ob=Es,qb=la,pw=so,jN=oi,Gg=rg,Pb=ag,XN=Ue,zN=WE,Vb=za,Cp=Pr,oB=PC,Wb=T,Zb=Pt("iterator"),DQ="URLSearchParams",$N=DQ+"Iterator",AF=Bp.set,$r=Bp.getterFor(DQ),jb=Bp.getterFor($N),eF=lw("fetch"),hl=lw("Request"),pQ=lw("Headers"),yw=hl&&hl.prototype,gB=pQ&&pQ.prototype,En=VN.TypeError,Xb=VN.encodeURIComponent,Rw=String.fromCharCode,zb=ds("String","fromCodePoint"),$b=parseInt,Qp=Sg("".charAt),mw=Sg([].join),Ds=Sg([].push),tF=Sg("".replace),AY=Sg([].shift),iF=Sg([].splice),oF=Sg("".split),cp=Sg("".slice),gF=Sg(/./.exec),eY=/\+/g,tY=/^[0-9a-f]+$/i,rF=function(A,e){var t=cp(A,e,e+2);return gF(tY,t)?$b(t,16):NaN},iY=function(A){for(var e=0,t=128;t>0&&A&t;t>>=1)e++;return e},oY=function(A){var e=null;switch(A.length){case 1:e=A[0];break;case 2:e=(31&A[0])<<6|63&A[1];break;case 3:e=(15&A[0])<<12|(63&A[1])<<6|63&A[2];break;case 4:e=(7&A[0])<<18|(63&A[1])<<12|(63&A[2])<<6|63&A[3]}return e>1114111?null:e},hp=function(A){for(var e=(A=tF(A,eY," ")).length,t="",i=0;i<e;){var o=Qp(A,i);if(o==="%"){if(Qp(A,i+1)==="%"||i+3>e){t+="%",i++;continue}var g=rF(A,i+1);if(g!=g){t+=o,i++;continue}i+=2;var r=iY(g);if(r===0)o=Rw(g);else{if(r===1||r>4){t+="�",i++;continue}for(var n=[g],I=1;I<r&&!(++i+3>e||Qp(A,i)!=="%");){var C=rF(A,i+1);if(C!=C){i+=3;break}if(C>191||C<128)break;Ds(n,C),i+=2,I++}if(n.length!==r){t+="�";continue}var u=oY(n);u===null?t+="�":o=zb(u)}}t+=o,i++}return t},aF=/[!'()~]|%20/g,gY={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},rY=function(A){return gY[A]},IF=function(A){return tF(Xb(A),aF,rY)},fw=WN((function(A,e){AF(this,{type:$N,target:$r(A).entries,index:0,kind:e})}),DQ,(function(){var A=jb(this),e=A.target,t=A.index++;if(!e||t>=e.length)return A.target=null,Cp(void 0,!0);var i=e[t];switch(A.kind){case"keys":return Cp(i.key,!1);case"values":return Cp(i.value,!1)}return Cp([i.key,i.value],!1)}),!0),nF=function(A){this.entries=[],this.url=null,A!==void 0&&(jN(A)?this.parseObject(A):this.parseQuery(typeof A=="string"?Qp(A,0)==="?"?cp(A,1):A:Gg(A)))};nF.prototype={type:DQ,bindURL:function(A){this.url=A,this.update()},parseObject:function(A){var e,t,i,o,g,r,n,I=this.entries,C=Vb(A);if(C)for(t=(e=zN(A,C)).next;!(i=iB(t,e)).done;){if(g=(o=zN(pw(i.value))).next,(r=iB(g,o)).done||(n=iB(g,o)).done||!iB(g,o).done)throw new En("Expected sequence with length 2");Ds(I,{key:Gg(r.value),value:Gg(n.value)})}else for(var u in A)Hb(A,u)&&Ds(I,{key:u,value:Gg(A[u])})},parseQuery:function(A){if(A)for(var e,t,i=this.entries,o=oF(A,"&"),g=0;g<o.length;)(e=o[g++]).length&&(t=oF(e,"="),Ds(i,{key:hp(AY(t)),value:hp(mw(t,"="))}))},serialize:function(){for(var A,e=this.entries,t=[],i=0;i<e.length;)A=e[i++],Ds(t,IF(A.key)+"="+IF(A.value));return mw(t,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var lp=function(){ZN(this,yQ);var A=AF(this,new nF(arguments.length>0?arguments[0]:void 0));sn||(this.size=A.entries.length)},yQ=lp.prototype;if(kt(yQ,{append:function(A,e){var t=$r(this);oB(arguments.length,2),Ds(t.entries,{key:Gg(A),value:Gg(e)}),sn||this.length++,t.updateURL()},delete:function(A){for(var e=$r(this),t=oB(arguments.length,1),i=e.entries,o=Gg(A),g=t<2?void 0:arguments[1],r=g===void 0?g:Gg(g),n=0;n<i.length;){var I=i[n];if(I.key!==o||r!==void 0&&I.value!==r)n++;else if(iF(i,n,1),r!==void 0)break}sn||(this.size=i.length),e.updateURL()},get:function(A){var e=$r(this).entries;oB(arguments.length,1);for(var t=Gg(A),i=0;i<e.length;i++)if(e[i].key===t)return e[i].value;return null},getAll:function(A){var e=$r(this).entries;oB(arguments.length,1);for(var t=Gg(A),i=[],o=0;o<e.length;o++)e[o].key===t&&Ds(i,e[o].value);return i},has:function(A){for(var e=$r(this).entries,t=oB(arguments.length,1),i=Gg(A),o=t<2?void 0:arguments[1],g=o===void 0?o:Gg(o),r=0;r<e.length;){var n=e[r++];if(n.key===i&&(g===void 0||n.value===g))return!0}return!1},set:function(A,e){var t=$r(this);oB(arguments.length,1);for(var i,o=t.entries,g=!1,r=Gg(A),n=Gg(e),I=0;I<o.length;I++)(i=o[I]).key===r&&(g?iF(o,I--,1):(g=!0,i.value=n));g||Ds(o,{key:r,value:n}),sn||(this.size=o.length),t.updateURL()},sort:function(){var A=$r(this);Wb(A.entries,(function(e,t){return e.key>t.key?1:-1})),A.updateURL()},forEach:function(A){for(var e,t=$r(this).entries,i=Ob(A,arguments.length>1?arguments[1]:void 0),o=0;o<t.length;)i((e=t[o++]).value,e.key,this)},keys:function(){return new fw(this,"keys")},values:function(){return new fw(this,"values")},entries:function(){return new fw(this,"entries")}},{enumerable:!0}),dQ(yQ,Zb,yQ.entries,{name:"entries"}),dQ(yQ,"toString",(function(){return $r(this).serialize()}),{enumerable:!0}),sn&&uw(yQ,"size",{get:function(){return $r(this).entries.length},configurable:!0,enumerable:!0}),dw(lp,DQ),Ep({global:!0,constructor:!0,forced:!uQ},{URLSearchParams:lp}),!uQ&&Dw(pQ)){var aY=Sg(gB.has),IY=Sg(gB.set),sF=function(A){if(jN(A)){var e,t=A.body;if(qb(t)===DQ)return e=A.headers?new pQ(A.headers):new pQ,aY(e,"content-type")||IY(e,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),Pb(A,{body:XN(0,Gg(t)),headers:XN(0,e)})}return A};if(Dw(eF)&&Ep({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(A){return eF(A,arguments.length>1?sF(arguments[1]):{})}}),Dw(hl)){var ww=function(A){return ZN(this,yw),new hl(A,arguments.length>1?sF(arguments[1]):{})};yw.constructor=ww,ww.prototype=yw,Ep({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:ww})}}var Zg,EF=Di,Sw=MA,Gw=kN,Mw=z,BF=Es,Rr=_e,up=Hi,Aa=TI,CF=jr,kw=ci,Nw=kb,RQ=function(A){var e=Ub(A),t=LN(this),i=arguments.length,o=i>1?arguments[1]:void 0,g=o!==void 0;g&&(o=vb(o,i>2?arguments[2]:void 0));var r,n,I,C,u,R,M=YN(e),L=0;if(!M||this===gp&&Lb(M))for(r=bb(e),n=t?new this(r):gp(r);r>L;L++)R=g?o(e[L],L):e[L],hQ(n,L,R);else for(n=t?new this:[],u=(C=bN(e,M)).next;!(I=Tb(u,C)).done;L++)R=g?_b(C,o,[I.value,L],!0):I.value,hQ(n,L,R);return n.length=L,n},wa=E,nY=yf.codeAt,sY=function(A){var e,t,i=[],o=hw(Yb(ON(A),ap,"."),".");for(e=0;e<o.length;e++)t=o[e],us(i,KN(rp,t)?"xn--"+Jb(t):t);return HN(i,".")},Bn=rg,Fw=qr,EY=PC,dp={URLSearchParams:lp,getState:$r},QF=Wo,BY=QF.set,Dp=QF.getterFor("URL"),cF=dp.URLSearchParams,CY=dp.getState,mQ=Mw.URL,vw=Mw.TypeError,pp=Mw.parseInt,QY=Math.floor,hF=Math.pow,mr=Rr("".charAt),Sa=Rr(/./.exec),ll=Rr([].join),Cn=Rr(1 .toString),cY=Rr([].pop),fQ=Rr([].push),Tw=Rr("".replace),hY=Rr([].shift),lY=Rr("".split),wQ=Rr("".slice),yp=Rr("".toLowerCase),lF=Rr([].unshift),SQ="Invalid scheme",Qn="Invalid host",Rp="Invalid port",uF=/[a-z]/i,uY=/[\d+-.a-z]/i,Uw=/\d/,dF=/^0x/i,_w=/^[0-7]+$/,mp=/^\d+$/,DF=/^[\da-f]+$/i,dY=/[\0\t\n\r #%/:<>?@[\\\]^|]/,fp=/[\0\t\n\r #/:<>?@[\\\]^|]/,DY=/^[\u0000-\u0020]+/,pF=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,pY=/[\t\n\r]/g,GQ=function(A){var e,t,i,o;if(typeof A=="number"){for(e=[],t=0;t<4;t++)lF(e,A%256),A=QY(A/256);return ll(e,".")}if(typeof A=="object"){for(e="",i=(function(g){for(var r=null,n=1,I=null,C=0,u=0;u<8;u++)g[u]!==0?(C>n&&(r=I,n=C),I=null,C=0):(I===null&&(I=u),++C);return C>n?I:r})(A),t=0;t<8;t++)o&&A[t]===0||(o&&(o=!1),i===t?(e+=t?":":"::",o=!0):(e+=Cn(A[t],16),t<7&&(e+=":")));return"["+e+"]"}return A},wp={},yF=Nw({},wp,{" ":1,'"':1,"<":1,">":1,"`":1}),RF=Nw({},yF,{"#":1,"?":1,"{":1,"}":1}),Lw=Nw({},RF,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),cn=function(A,e){var t=nY(A,0);return t>32&&t<127&&!kw(e,A)?A:encodeURIComponent(A)},MQ={ftp:21,file:null,http:80,https:443,ws:80,wss:443},ul=function(A,e){var t;return A.length===2&&Sa(uF,mr(A,0))&&((t=mr(A,1))===":"||!e&&t==="|")},bw=function(A){var e;return A.length>1&&ul(wQ(A,0,2))&&(A.length===2||(e=mr(A,2))==="/"||e==="\\"||e==="?"||e==="#")},kQ=function(A){return A==="."||yp(A)==="%2e"},NQ={},rB={},Sp={},Yw={},FQ={},Gp={},ea={},jg={},hn={},ta={},ln={},Mp={},Jw={},vQ={},mF={},xw={},aB={},Ga={},Kw={},ps={},tI={},kp=function(A,e,t){var i,o,g,r=Bn(A);if(e){if(o=this.parse(r))throw new vw(o);this.searchParams=null}else{if(t!==void 0&&(i=new kp(t,!0)),o=this.parse(r,null,i))throw new vw(o);(g=CY(new cF)).bindURL(this),this.searchParams=g}};kp.prototype={type:"URL",parse:function(A,e,t){var i,o,g,r,n,I=this,C=e||NQ,u=0,R="",M=!1,L=!1,H=!1;for(A=Bn(A),e||(I.scheme="",I.username="",I.password="",I.host=null,I.port=null,I.path=[],I.query=null,I.fragment=null,I.cannotBeABaseURL=!1,A=Tw(A,DY,""),A=Tw(A,pF,"$1")),A=Tw(A,pY,""),i=RQ(A);u<=i.length;){switch(o=i[u],C){case NQ:if(!o||!Sa(uF,o)){if(e)return SQ;C=Sp;continue}R+=yp(o),C=rB;break;case rB:if(o&&(Sa(uY,o)||o==="+"||o==="-"||o==="."))R+=yp(o);else{if(o!==":"){if(e)return SQ;R="",C=Sp,u=0;continue}if(e&&(I.isSpecial()!==kw(MQ,R)||R==="file"&&(I.includesCredentials()||I.port!==null)||I.scheme==="file"&&!I.host))return;if(I.scheme=R,e)return void(I.isSpecial()&&MQ[I.scheme]===I.port&&(I.port=null));R="",I.scheme==="file"?C=vQ:I.isSpecial()&&t&&t.scheme===I.scheme?C=Yw:I.isSpecial()?C=jg:i[u+1]==="/"?(C=FQ,u++):(I.cannotBeABaseURL=!0,fQ(I.path,""),C=Kw)}break;case Sp:if(!t||t.cannotBeABaseURL&&o!=="#")return SQ;if(t.cannotBeABaseURL&&o==="#"){I.scheme=t.scheme,I.path=wa(t.path),I.query=t.query,I.fragment="",I.cannotBeABaseURL=!0,C=tI;break}C=t.scheme==="file"?vQ:Gp;continue;case Yw:if(o!=="/"||i[u+1]!=="/"){C=Gp;continue}C=hn,u++;break;case FQ:if(o==="/"){C=ta;break}C=Ga;continue;case Gp:if(I.scheme=t.scheme,o===Zg)I.username=t.username,I.password=t.password,I.host=t.host,I.port=t.port,I.path=wa(t.path),I.query=t.query;else if(o==="/"||o==="\\"&&I.isSpecial())C=ea;else if(o==="?")I.username=t.username,I.password=t.password,I.host=t.host,I.port=t.port,I.path=wa(t.path),I.query="",C=ps;else{if(o!=="#"){I.username=t.username,I.password=t.password,I.host=t.host,I.port=t.port,I.path=wa(t.path),I.path.length--,C=Ga;continue}I.username=t.username,I.password=t.password,I.host=t.host,I.port=t.port,I.path=wa(t.path),I.query=t.query,I.fragment="",C=tI}break;case ea:if(!I.isSpecial()||o!=="/"&&o!=="\\"){if(o!=="/"){I.username=t.username,I.password=t.password,I.host=t.host,I.port=t.port,C=Ga;continue}C=ta}else C=hn;break;case jg:if(C=hn,o!=="/"||mr(R,u+1)!=="/")continue;u++;break;case hn:if(o!=="/"&&o!=="\\"){C=ta;continue}break;case ta:if(o==="@"){M&&(R="%40"+R),M=!0,g=RQ(R);for(var gA=0;gA<g.length;gA++){var EA=g[gA];if(EA!==":"||H){var TA=cn(EA,Lw);H?I.password+=TA:I.username+=TA}else H=!0}R=""}else if(o===Zg||o==="/"||o==="?"||o==="#"||o==="\\"&&I.isSpecial()){if(M&&R==="")return"Invalid authority";u-=RQ(R).length+1,R="",C=ln}else R+=o;break;case ln:case Mp:if(e&&I.scheme==="file"){C=xw;continue}if(o!==":"||L){if(o===Zg||o==="/"||o==="?"||o==="#"||o==="\\"&&I.isSpecial()){if(I.isSpecial()&&R==="")return Qn;if(e&&R===""&&(I.includesCredentials()||I.port!==null))return;if(r=I.parseHost(R))return r;if(R="",C=aB,e)return;continue}o==="["?L=!0:o==="]"&&(L=!1),R+=o}else{if(R==="")return Qn;if(r=I.parseHost(R))return r;if(R="",C=Jw,e===Mp)return}break;case Jw:if(!Sa(Uw,o)){if(o===Zg||o==="/"||o==="?"||o==="#"||o==="\\"&&I.isSpecial()||e){if(R!==""){var hA=pp(R,10);if(hA>65535)return Rp;I.port=I.isSpecial()&&hA===MQ[I.scheme]?null:hA,R=""}if(e)return;C=aB;continue}return Rp}R+=o;break;case vQ:if(I.scheme="file",o==="/"||o==="\\")C=mF;else{if(!t||t.scheme!=="file"){C=Ga;continue}switch(o){case Zg:I.host=t.host,I.path=wa(t.path),I.query=t.query;break;case"?":I.host=t.host,I.path=wa(t.path),I.query="",C=ps;break;case"#":I.host=t.host,I.path=wa(t.path),I.query=t.query,I.fragment="",C=tI;break;default:bw(ll(wa(i,u),""))||(I.host=t.host,I.path=wa(t.path),I.shortenPath()),C=Ga;continue}}break;case mF:if(o==="/"||o==="\\"){C=xw;break}t&&t.scheme==="file"&&!bw(ll(wa(i,u),""))&&(ul(t.path[0],!0)?fQ(I.path,t.path[0]):I.host=t.host),C=Ga;continue;case xw:if(o===Zg||o==="/"||o==="\\"||o==="?"||o==="#"){if(!e&&ul(R))C=Ga;else if(R===""){if(I.host="",e)return;C=aB}else{if(r=I.parseHost(R))return r;if(I.host==="localhost"&&(I.host=""),e)return;R="",C=aB}continue}R+=o;break;case aB:if(I.isSpecial()){if(C=Ga,o!=="/"&&o!=="\\")continue}else if(e||o!=="?")if(e||o!=="#"){if(o!==Zg&&(C=Ga,o!=="/"))continue}else I.fragment="",C=tI;else I.query="",C=ps;break;case Ga:if(o===Zg||o==="/"||o==="\\"&&I.isSpecial()||!e&&(o==="?"||o==="#")){if((n=yp(n=R))===".."||n==="%2e."||n===".%2e"||n==="%2e%2e"?(I.shortenPath(),o==="/"||o==="\\"&&I.isSpecial()||fQ(I.path,"")):kQ(R)?o==="/"||o==="\\"&&I.isSpecial()||fQ(I.path,""):(I.scheme==="file"&&!I.path.length&&ul(R)&&(I.host&&(I.host=""),R=mr(R,0)+":"),fQ(I.path,R)),R="",I.scheme==="file"&&(o===Zg||o==="?"||o==="#"))for(;I.path.length>1&&I.path[0]==="";)hY(I.path);o==="?"?(I.query="",C=ps):o==="#"&&(I.fragment="",C=tI)}else R+=cn(o,RF);break;case Kw:o==="?"?(I.query="",C=ps):o==="#"?(I.fragment="",C=tI):o!==Zg&&(I.path[0]+=cn(o,wp));break;case ps:e||o!=="#"?o!==Zg&&(o==="'"&&I.isSpecial()?I.query+="%27":I.query+=o==="#"?"%23":cn(o,wp)):(I.fragment="",C=tI);break;case tI:o!==Zg&&(I.fragment+=cn(o,yF))}u++}},parseHost:function(A){var e,t,i;if(mr(A,0)==="["){if(mr(A,A.length-1)!=="]"||(e=(function(o){var g,r,n,I,C,u,R,M=[0,0,0,0,0,0,0,0],L=0,H=null,gA=0,EA=function(){return mr(o,gA)};if(EA()===":"){if(mr(o,1)!==":")return;gA+=2,H=++L}for(;EA();){if(L===8)return;if(EA()!==":"){for(g=r=0;r<4&&Sa(DF,EA());)g=16*g+pp(EA(),16),gA++,r++;if(EA()==="."){if(r===0||(gA-=r,L>6))return;for(n=0;EA();){if(I=null,n>0){if(!(EA()==="."&&n<4))return;gA++}if(!Sa(Uw,EA()))return;for(;Sa(Uw,EA());){if(C=pp(EA(),10),I===null)I=C;else{if(I===0)return;I=10*I+C}if(I>255)return;gA++}M[L]=256*M[L]+I,++n!=2&&n!==4||L++}if(n!==4)return;break}if(EA()===":"){if(gA++,!EA())return}else if(EA())return;M[L++]=g}else{if(H!==null)return;gA++,H=++L}}if(H!==null)for(u=L-H,L=7;L!==0&&u>0;)R=M[L],M[L--]=M[H+u-1],M[H+--u]=R;else if(L!==8)return;return M})(wQ(A,1,-1)),!e))return Qn;this.host=e}else if(this.isSpecial()){if(A=sY(A),Sa(dY,A)||(e=(function(o){var g,r,n,I,C,u,R,M=lY(o,".");if(M.length&&M[M.length-1]===""&&M.length--,(g=M.length)>4)return o;for(r=[],n=0;n<g;n++){if((I=M[n])==="")return o;if(C=10,I.length>1&&mr(I,0)==="0"&&(C=Sa(dF,I)?16:8,I=wQ(I,C===8?1:2)),I==="")u=0;else{if(!Sa(C===10?mp:C===8?_w:DF,I))return o;u=pp(I,C)}fQ(r,u)}for(n=0;n<g;n++)if(u=r[n],n===g-1){if(u>=hF(256,5-g))return null}else if(u>255)return null;for(R=cY(r),n=0;n<r.length;n++)R+=r[n]*hF(256,3-n);return R})(A),e===null))return Qn;this.host=e}else{if(Sa(fp,A))return Qn;for(e="",t=RQ(A),i=0;i<t.length;i++)e+=cn(t[i],wp);this.host=e}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||this.scheme==="file"},includesCredentials:function(){return this.username!==""||this.password!==""},isSpecial:function(){return kw(MQ,this.scheme)},shortenPath:function(){var A=this.path,e=A.length;!e||this.scheme==="file"&&e===1&&ul(A[0],!0)||A.length--},serialize:function(){var A=this,e=A.scheme,t=A.username,i=A.password,o=A.host,g=A.port,r=A.path,n=A.query,I=A.fragment,C=e+":";return o!==null?(C+="//",A.includesCredentials()&&(C+=t+(i?":"+i:"")+"@"),C+=GQ(o),g!==null&&(C+=":"+g)):e==="file"&&(C+="//"),C+=A.cannotBeABaseURL?r[0]:r.length?"/"+ll(r,"/"):"",n!==null&&(C+="?"+n),I!==null&&(C+="#"+I),C},setHref:function(A){var e=this.parse(A);if(e)throw new vw(e);this.searchParams.update()},getOrigin:function(){var A=this.scheme,e=this.port;if(A==="blob")try{return new TQ(A.path[0]).origin}catch{return"null"}return A!=="file"&&this.isSpecial()?A+"://"+GQ(this.host)+(e!==null?":"+e:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(A){this.parse(Bn(A)+":",NQ)},getUsername:function(){return this.username},setUsername:function(A){var e=RQ(Bn(A));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var t=0;t<e.length;t++)this.username+=cn(e[t],Lw)}},getPassword:function(){return this.password},setPassword:function(A){var e=RQ(Bn(A));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var t=0;t<e.length;t++)this.password+=cn(e[t],Lw)}},getHost:function(){var A=this.host,e=this.port;return A===null?"":e===null?GQ(A):GQ(A)+":"+e},setHost:function(A){this.cannotBeABaseURL||this.parse(A,ln)},getHostname:function(){var A=this.host;return A===null?"":GQ(A)},setHostname:function(A){this.cannotBeABaseURL||this.parse(A,Mp)},getPort:function(){var A=this.port;return A===null?"":Bn(A)},setPort:function(A){this.cannotHaveUsernamePasswordPort()||((A=Bn(A))===""?this.port=null:this.parse(A,Jw))},getPathname:function(){var A=this.path;return this.cannotBeABaseURL?A[0]:A.length?"/"+ll(A,"/"):""},setPathname:function(A){this.cannotBeABaseURL||(this.path=[],this.parse(A,aB))},getSearch:function(){var A=this.query;return A?"?"+A:""},setSearch:function(A){(A=Bn(A))===""?this.query=null:(mr(A,0)==="?"&&(A=wQ(A,1)),this.query="",this.parse(A,ps)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var A=this.fragment;return A?"#"+A:""},setHash:function(A){(A=Bn(A))!==""?(mr(A,0)==="#"&&(A=wQ(A,1)),this.fragment="",this.parse(A,tI)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var TQ=function(A){var e=CF(this,Mg),t=EY(arguments.length,1)>1?arguments[1]:void 0,i=BY(e,new kp(A,!1,t));Sw||(e.href=i.serialize(),e.origin=i.getOrigin(),e.protocol=i.getProtocol(),e.username=i.getUsername(),e.password=i.getPassword(),e.host=i.getHost(),e.hostname=i.getHostname(),e.port=i.getPort(),e.pathname=i.getPathname(),e.search=i.getSearch(),e.searchParams=i.getSearchParams(),e.hash=i.getHash())},Mg=TQ.prototype,kg=function(A,e){return{get:function(){return Dp(this)[A]()},set:e&&function(t){return Dp(this)[e](t)},configurable:!0,enumerable:!0}};if(Sw&&(Aa(Mg,"href",kg("serialize","setHref")),Aa(Mg,"origin",kg("getOrigin")),Aa(Mg,"protocol",kg("getProtocol","setProtocol")),Aa(Mg,"username",kg("getUsername","setUsername")),Aa(Mg,"password",kg("getPassword","setPassword")),Aa(Mg,"host",kg("getHost","setHost")),Aa(Mg,"hostname",kg("getHostname","setHostname")),Aa(Mg,"port",kg("getPort","setPort")),Aa(Mg,"pathname",kg("getPathname","setPathname")),Aa(Mg,"search",kg("getSearch","setSearch")),Aa(Mg,"searchParams",kg("getSearchParams")),Aa(Mg,"hash",kg("getHash","setHash"))),up(Mg,"toJSON",(function(){return Dp(this).serialize()}),{enumerable:!0}),up(Mg,"toString",(function(){return Dp(this).serialize()}),{enumerable:!0}),mQ){var un=mQ.createObjectURL,dn=mQ.revokeObjectURL;un&&up(TQ,"createObjectURL",BF(un,mQ)),dn&&up(TQ,"revokeObjectURL",BF(dn,mQ))}Fw(TQ,"URL"),EF({global:!0,constructor:!0,forced:!Gw,sham:!Sw},{URL:TQ});var fF=KA;Di({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return fF(URL.prototype.toString,this)}});let dl=!0,Hw=!0;function ys(A,e,t){const i=A.match(e);return i&&i.length>=t&&parseInt(i[t],10)}function IB(A,e,t){if(!A.RTCPeerConnection)return;const i=A.RTCPeerConnection.prototype,o=i.addEventListener;i.addEventListener=function(r,n){if(r!==e)return o.apply(this,arguments);const I=C=>{const u=t(C);u&&(n.handleEvent?n.handleEvent(u):n(u))};return this._eventMap=this._eventMap||{},this._eventMap[e]||(this._eventMap[e]=new Map),this._eventMap[e].set(n,I),o.apply(this,[r,I])};const g=i.removeEventListener;i.removeEventListener=function(r,n){if(r!==e||!this._eventMap||!this._eventMap[e])return g.apply(this,arguments);if(!this._eventMap[e].has(n))return g.apply(this,arguments);const I=this._eventMap[e].get(n);return this._eventMap[e].delete(n),this._eventMap[e].size===0&&delete this._eventMap[e],Object.keys(this._eventMap).length===0&&delete this._eventMap,g.apply(this,[r,I])},Object.defineProperty(i,"on"+e,{get(){return this["_on"+e]},set(r){this["_on"+e]&&(this.removeEventListener(e,this["_on"+e]),delete this["_on"+e]),r&&this.addEventListener(e,this["_on"+e]=r)},enumerable:!0,configurable:!0})}function Ow(A){return typeof A!="boolean"?new Error("Argument type: "+typeof A+". Please use a boolean."):(dl=A,A?"adapter.js logging disabled":"adapter.js logging enabled")}function wF(A){return typeof A!="boolean"?new Error("Argument type: "+typeof A+". Please use a boolean."):(Hw=!A,"adapter.js deprecation warnings "+(A?"disabled":"enabled"))}function SF(){if(typeof window=="object"){if(dl)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function Dl(A,e){Hw&&console.warn(A+" is deprecated, please use "+e+" instead.")}function GF(A){return Object.prototype.toString.call(A)==="[object Object]"}function qw(A){return GF(A)?Object.keys(A).reduce((function(e,t){const i=GF(A[t]),o=i?qw(A[t]):A[t],g=i&&!Object.keys(o).length;return o===void 0||g?e:Object.assign(e,{[t]:o})}),{}):A}function Np(A,e,t){e&&!t.has(e.id)&&(t.set(e.id,e),Object.keys(e).forEach((i=>{i.endsWith("Id")?Np(A,A.get(e[i]),t):i.endsWith("Ids")&&e[i].forEach((o=>{Np(A,A.get(o),t)}))})))}function MF(A,e,t){const i=t?"outbound-rtp":"inbound-rtp",o=new Map;if(e===null)return o;const g=[];return A.forEach((r=>{r.type==="track"&&r.trackIdentifier===e.id&&g.push(r)})),g.forEach((r=>{A.forEach((n=>{n.type===i&&n.trackId===r.id&&Np(A,n,o)}))})),o}const Fp=SF;function vp(A,e){const t=A&&A.navigator;if(!t.mediaDevices)return;const i=function(r){if(typeof r!="object"||r.mandatory||r.optional)return r;const n={};return Object.keys(r).forEach((I=>{if(I==="require"||I==="advanced"||I==="mediaSource")return;const C=typeof r[I]=="object"?r[I]:{ideal:r[I]};C.exact!==void 0&&typeof C.exact=="number"&&(C.min=C.max=C.exact);const u=function(R,M){return R?R+M.charAt(0).toUpperCase()+M.slice(1):M==="deviceId"?"sourceId":M};if(C.ideal!==void 0){n.optional=n.optional||[];let R={};typeof C.ideal=="number"?(R[u("min",I)]=C.ideal,n.optional.push(R),R={},R[u("max",I)]=C.ideal,n.optional.push(R)):(R[u("",I)]=C.ideal,n.optional.push(R))}C.exact!==void 0&&typeof C.exact!="number"?(n.mandatory=n.mandatory||{},n.mandatory[u("",I)]=C.exact):["min","max"].forEach((R=>{C[R]!==void 0&&(n.mandatory=n.mandatory||{},n.mandatory[u(R,I)]=C[R])}))})),r.advanced&&(n.optional=(n.optional||[]).concat(r.advanced)),n},o=function(r,n){if(e.version>=61)return n(r);if((r=JSON.parse(JSON.stringify(r)))&&typeof r.audio=="object"){const I=function(C,u,R){u in C&&!(R in C)&&(C[R]=C[u],delete C[u])};I((r=JSON.parse(JSON.stringify(r))).audio,"autoGainControl","googAutoGainControl"),I(r.audio,"noiseSuppression","googNoiseSuppression"),r.audio=i(r.audio)}if(r&&typeof r.video=="object"){let I=r.video.facingMode;I=I&&(typeof I=="object"?I:{ideal:I});const C=e.version<66;if(I&&(I.exact==="user"||I.exact==="environment"||I.ideal==="user"||I.ideal==="environment")&&(!t.mediaDevices.getSupportedConstraints||!t.mediaDevices.getSupportedConstraints().facingMode||C)){let u;if(delete r.video.facingMode,I.exact==="environment"||I.ideal==="environment"?u=["back","rear"]:I.exact!=="user"&&I.ideal!=="user"||(u=["front"]),u)return t.mediaDevices.enumerateDevices().then((R=>{R=R.filter((L=>L.kind==="videoinput"));let M=R.find((L=>u.some((H=>L.label.toLowerCase().includes(H)))));return!M&&R.length&&u.includes("back")&&(M=R[R.length-1]),M&&(r.video.deviceId=I.exact?{exact:M.deviceId}:{ideal:M.deviceId}),r.video=i(r.video),Fp("chrome: "+JSON.stringify(r)),n(r)}))}r.video=i(r.video)}return Fp("chrome: "+JSON.stringify(r)),n(r)},g=function(r){return e.version>=64?r:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[r.name]||r.name,message:r.message,constraint:r.constraint||r.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(t.getUserMedia=(function(r,n,I){o(r,(C=>{t.webkitGetUserMedia(C,n,(u=>{I&&I(g(u))}))}))}).bind(t),t.mediaDevices.getUserMedia){const r=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(n){return o(n,(I=>r(I).then((C=>{if(I.audio&&!C.getAudioTracks().length||I.video&&!C.getVideoTracks().length)throw C.getTracks().forEach((u=>{u.stop()})),new DOMException("","NotFoundError");return C}),(C=>Promise.reject(g(C))))))}}}function Pw(A){A.MediaStream=A.MediaStream||A.webkitMediaStream}function Vw(A){if(typeof A=="object"&&A.RTCPeerConnection&&!("ontrack"in A.RTCPeerConnection.prototype)){Object.defineProperty(A.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(t){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=t)},enumerable:!0,configurable:!0});const e=A.RTCPeerConnection.prototype.setRemoteDescription;A.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=t=>{t.stream.addEventListener("addtrack",(i=>{let o;o=A.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((r=>r.track&&r.track.id===i.track.id)):{track:i.track};const g=new Event("track");g.track=i.track,g.receiver=o,g.transceiver={receiver:o},g.streams=[t.stream],this.dispatchEvent(g)})),t.stream.getTracks().forEach((i=>{let o;o=A.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((r=>r.track&&r.track.id===i.id)):{track:i};const g=new Event("track");g.track=i,g.receiver=o,g.transceiver={receiver:o},g.streams=[t.stream],this.dispatchEvent(g)}))},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else IB(A,"track",(e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e)))}function kF(A){if(typeof A=="object"&&A.RTCPeerConnection&&!("getSenders"in A.RTCPeerConnection.prototype)&&"createDTMFSender"in A.RTCPeerConnection.prototype){const e=function(o,g){return{track:g,get dtmf(){return this._dtmf===void 0&&(g.kind==="audio"?this._dtmf=o.createDTMFSender(g):this._dtmf=null),this._dtmf},_pc:o}};if(!A.RTCPeerConnection.prototype.getSenders){A.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const o=A.RTCPeerConnection.prototype.addTrack;A.RTCPeerConnection.prototype.addTrack=function(r,n){let I=o.apply(this,arguments);return I||(I=e(this,r),this._senders.push(I)),I};const g=A.RTCPeerConnection.prototype.removeTrack;A.RTCPeerConnection.prototype.removeTrack=function(r){g.apply(this,arguments);const n=this._senders.indexOf(r);n!==-1&&this._senders.splice(n,1)}}const t=A.RTCPeerConnection.prototype.addStream;A.RTCPeerConnection.prototype.addStream=function(o){this._senders=this._senders||[],t.apply(this,[o]),o.getTracks().forEach((g=>{this._senders.push(e(this,g))}))};const i=A.RTCPeerConnection.prototype.removeStream;A.RTCPeerConnection.prototype.removeStream=function(o){this._senders=this._senders||[],i.apply(this,[o]),o.getTracks().forEach((g=>{const r=this._senders.find((n=>n.track===g));r&&this._senders.splice(this._senders.indexOf(r),1)}))}}else if(typeof A=="object"&&A.RTCPeerConnection&&"getSenders"in A.RTCPeerConnection.prototype&&"createDTMFSender"in A.RTCPeerConnection.prototype&&A.RTCRtpSender&&!("dtmf"in A.RTCRtpSender.prototype)){const e=A.RTCPeerConnection.prototype.getSenders;A.RTCPeerConnection.prototype.getSenders=function(){const t=e.apply(this,[]);return t.forEach((i=>i._pc=this)),t},Object.defineProperty(A.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function NF(A){if(!A.RTCPeerConnection)return;const e=A.RTCPeerConnection.prototype.getStats;A.RTCPeerConnection.prototype.getStats=function(){const[t,i,o]=arguments;if(arguments.length>0&&typeof t=="function")return e.apply(this,arguments);if(e.length===0&&(arguments.length===0||typeof t!="function"))return e.apply(this,[]);const g=function(n){const I={};return n.result().forEach((C=>{const u={id:C.id,timestamp:C.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[C.type]||C.type};C.names().forEach((R=>{u[R]=C.stat(R)})),I[u.id]=u})),I},r=function(n){return new Map(Object.keys(n).map((I=>[I,n[I]])))};if(arguments.length>=2){const n=function(I){i(r(g(I)))};return e.apply(this,[n,t])}return new Promise(((n,I)=>{e.apply(this,[function(C){n(r(g(C)))},I])})).then(i,o)}}function Ww(A){if(!(typeof A=="object"&&A.RTCPeerConnection&&A.RTCRtpSender&&A.RTCRtpReceiver))return;if(!("getStats"in A.RTCRtpSender.prototype)){const t=A.RTCPeerConnection.prototype.getSenders;t&&(A.RTCPeerConnection.prototype.getSenders=function(){const o=t.apply(this,[]);return o.forEach((g=>g._pc=this)),o});const i=A.RTCPeerConnection.prototype.addTrack;i&&(A.RTCPeerConnection.prototype.addTrack=function(){const o=i.apply(this,arguments);return o._pc=this,o}),A.RTCRtpSender.prototype.getStats=function(){const o=this;return this._pc.getStats().then((g=>MF(g,o.track,!0)))}}if(!("getStats"in A.RTCRtpReceiver.prototype)){const t=A.RTCPeerConnection.prototype.getReceivers;t&&(A.RTCPeerConnection.prototype.getReceivers=function(){const i=t.apply(this,[]);return i.forEach((o=>o._pc=this)),i}),IB(A,"track",(i=>(i.receiver._pc=i.srcElement,i))),A.RTCRtpReceiver.prototype.getStats=function(){const i=this;return this._pc.getStats().then((o=>MF(o,i.track,!1)))}}if(!("getStats"in A.RTCRtpSender.prototype)||!("getStats"in A.RTCRtpReceiver.prototype))return;const e=A.RTCPeerConnection.prototype.getStats;A.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof A.MediaStreamTrack){const t=arguments[0];let i,o,g;return this.getSenders().forEach((r=>{r.track===t&&(i?g=!0:i=r)})),this.getReceivers().forEach((r=>(r.track===t&&(o?g=!0:o=r),r.track===t))),g||i&&o?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):i?i.getStats():o?o.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return e.apply(this,arguments)}}function FF(A){A.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map((g=>this._shimmedLocalStreams[g][0]))};const e=A.RTCPeerConnection.prototype.addTrack;A.RTCPeerConnection.prototype.addTrack=function(g,r){if(!r)return e.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const n=e.apply(this,arguments);return this._shimmedLocalStreams[r.id]?this._shimmedLocalStreams[r.id].indexOf(n)===-1&&this._shimmedLocalStreams[r.id].push(n):this._shimmedLocalStreams[r.id]=[r,n],n};const t=A.RTCPeerConnection.prototype.addStream;A.RTCPeerConnection.prototype.addStream=function(g){this._shimmedLocalStreams=this._shimmedLocalStreams||{},g.getTracks().forEach((I=>{if(this.getSenders().find((C=>C.track===I)))throw new DOMException("Track already exists.","InvalidAccessError")}));const r=this.getSenders();t.apply(this,arguments);const n=this.getSenders().filter((I=>r.indexOf(I)===-1));this._shimmedLocalStreams[g.id]=[g].concat(n)};const i=A.RTCPeerConnection.prototype.removeStream;A.RTCPeerConnection.prototype.removeStream=function(g){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[g.id],i.apply(this,arguments)};const o=A.RTCPeerConnection.prototype.removeTrack;A.RTCPeerConnection.prototype.removeTrack=function(g){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},g&&Object.keys(this._shimmedLocalStreams).forEach((r=>{const n=this._shimmedLocalStreams[r].indexOf(g);n!==-1&&this._shimmedLocalStreams[r].splice(n,1),this._shimmedLocalStreams[r].length===1&&delete this._shimmedLocalStreams[r]})),o.apply(this,arguments)}}function vF(A,e){if(!A.RTCPeerConnection)return;if(A.RTCPeerConnection.prototype.addTrack&&e.version>=65)return FF(A);const t=A.RTCPeerConnection.prototype.getLocalStreams;A.RTCPeerConnection.prototype.getLocalStreams=function(){const I=t.apply(this);return this._reverseStreams=this._reverseStreams||{},I.map((C=>this._reverseStreams[C.id]))};const i=A.RTCPeerConnection.prototype.addStream;A.RTCPeerConnection.prototype.addStream=function(I){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},I.getTracks().forEach((C=>{if(this.getSenders().find((u=>u.track===C)))throw new DOMException("Track already exists.","InvalidAccessError")})),!this._reverseStreams[I.id]){const C=new A.MediaStream(I.getTracks());this._streams[I.id]=C,this._reverseStreams[C.id]=I,I=C}i.apply(this,[I])};const o=A.RTCPeerConnection.prototype.removeStream;function g(I,C){let u=C.sdp;return Object.keys(I._reverseStreams||[]).forEach((R=>{const M=I._reverseStreams[R],L=I._streams[M.id];u=u.replace(new RegExp(L.id,"g"),M.id)})),new RTCSessionDescription({type:C.type,sdp:u})}A.RTCPeerConnection.prototype.removeStream=function(I){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},o.apply(this,[this._streams[I.id]||I]),delete this._reverseStreams[this._streams[I.id]?this._streams[I.id].id:I.id],delete this._streams[I.id]},A.RTCPeerConnection.prototype.addTrack=function(I,C){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const u=[].slice.call(arguments,1);if(u.length!==1||!u[0].getTracks().find((M=>M===I)))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find((M=>M.track===I)))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const R=this._streams[C.id];if(R)R.addTrack(I),Promise.resolve().then((()=>{this.dispatchEvent(new Event("negotiationneeded"))}));else{const M=new A.MediaStream([I]);this._streams[C.id]=M,this._reverseStreams[M.id]=C,this.addStream(M)}return this.getSenders().find((M=>M.track===I))},["createOffer","createAnswer"].forEach((function(I){const C=A.RTCPeerConnection.prototype[I],u={[I](){const R=arguments;return arguments.length&&typeof arguments[0]=="function"?C.apply(this,[M=>{const L=g(this,M);R[0].apply(null,[L])},M=>{R[1]&&R[1].apply(null,M)},arguments[2]]):C.apply(this,arguments).then((M=>g(this,M)))}};A.RTCPeerConnection.prototype[I]=u[I]}));const r=A.RTCPeerConnection.prototype.setLocalDescription;A.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=(function(I,C){let u=C.sdp;return Object.keys(I._reverseStreams||[]).forEach((R=>{const M=I._reverseStreams[R],L=I._streams[M.id];u=u.replace(new RegExp(M.id,"g"),L.id)})),new RTCSessionDescription({type:C.type,sdp:u})})(this,arguments[0]),r.apply(this,arguments)):r.apply(this,arguments)};const n=Object.getOwnPropertyDescriptor(A.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(A.RTCPeerConnection.prototype,"localDescription",{get(){const I=n.get.apply(this);return I.type===""?I:g(this,I)}}),A.RTCPeerConnection.prototype.removeTrack=function(I){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!I._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(I._pc!==this)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let C;this._streams=this._streams||{},Object.keys(this._streams).forEach((u=>{this._streams[u].getTracks().find((R=>I.track===R))&&(C=this._streams[u])})),C&&(C.getTracks().length===1?this.removeStream(this._reverseStreams[C.id]):C.removeTrack(I.track),this.dispatchEvent(new Event("negotiationneeded")))}}function Zw(A,e){!A.RTCPeerConnection&&A.webkitRTCPeerConnection&&(A.RTCPeerConnection=A.webkitRTCPeerConnection),A.RTCPeerConnection&&e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach((function(t){const i=A.RTCPeerConnection.prototype[t],o={[t](){return arguments[0]=new(t==="addIceCandidate"?A.RTCIceCandidate:A.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}};A.RTCPeerConnection.prototype[t]=o[t]}))}function jw(A,e){IB(A,"negotiationneeded",(t=>{const i=t.target;if(!(e.version<72||i.getConfiguration&&i.getConfiguration().sdpSemantics==="plan-b")||i.signalingState==="stable")return t}))}var TF=Object.freeze({__proto__:null,shimMediaStream:Pw,shimOnTrack:Vw,shimGetSendersWithDtmf:kF,shimGetStats:NF,shimSenderReceiverGetStats:Ww,shimAddTrackRemoveTrackWithNative:FF,shimAddTrackRemoveTrack:vF,shimPeerConnection:Zw,fixNegotiationNeeded:jw,shimGetUserMedia:vp,shimGetDisplayMedia:function(A,e){A.navigator.mediaDevices&&"getDisplayMedia"in A.navigator.mediaDevices||A.navigator.mediaDevices&&(typeof e=="function"?A.navigator.mediaDevices.getDisplayMedia=function(t){return e(t).then((i=>{const o=t.video&&t.video.width,g=t.video&&t.video.height,r=t.video&&t.video.frameRate;return t.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:i,maxFrameRate:r||3}},o&&(t.video.mandatory.maxWidth=o),g&&(t.video.mandatory.maxHeight=g),A.navigator.mediaDevices.getUserMedia(t)}))}:console.error("shimGetDisplayMedia: getSourceId argument is not a function"))}});function Xw(A,e){const t=A&&A.navigator,i=A&&A.MediaStreamTrack;if(t.getUserMedia=function(o,g,r){Dl("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),t.mediaDevices.getUserMedia(o).then(g,r)},!(e.version>55&&"autoGainControl"in t.mediaDevices.getSupportedConstraints())){const o=function(r,n,I){n in r&&!(I in r)&&(r[I]=r[n],delete r[n])},g=t.mediaDevices.getUserMedia.bind(t.mediaDevices);if(t.mediaDevices.getUserMedia=function(r){return typeof r=="object"&&typeof r.audio=="object"&&(r=JSON.parse(JSON.stringify(r)),o(r.audio,"autoGainControl","mozAutoGainControl"),o(r.audio,"noiseSuppression","mozNoiseSuppression")),g(r)},i&&i.prototype.getSettings){const r=i.prototype.getSettings;i.prototype.getSettings=function(){const n=r.apply(this,arguments);return o(n,"mozAutoGainControl","autoGainControl"),o(n,"mozNoiseSuppression","noiseSuppression"),n}}if(i&&i.prototype.applyConstraints){const r=i.prototype.applyConstraints;i.prototype.applyConstraints=function(n){return this.kind==="audio"&&typeof n=="object"&&(n=JSON.parse(JSON.stringify(n)),o(n,"autoGainControl","mozAutoGainControl"),o(n,"noiseSuppression","mozNoiseSuppression")),r.apply(this,[n])}}}}function UF(A){typeof A=="object"&&A.RTCTrackEvent&&"receiver"in A.RTCTrackEvent.prototype&&!("transceiver"in A.RTCTrackEvent.prototype)&&Object.defineProperty(A.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function zw(A,e){if(typeof A!="object"||!A.RTCPeerConnection&&!A.mozRTCPeerConnection)return;!A.RTCPeerConnection&&A.mozRTCPeerConnection&&(A.RTCPeerConnection=A.mozRTCPeerConnection),e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach((function(o){const g=A.RTCPeerConnection.prototype[o],r={[o](){return arguments[0]=new(o==="addIceCandidate"?A.RTCIceCandidate:A.RTCSessionDescription)(arguments[0]),g.apply(this,arguments)}};A.RTCPeerConnection.prototype[o]=r[o]}));const t={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},i=A.RTCPeerConnection.prototype.getStats;A.RTCPeerConnection.prototype.getStats=function(){const[o,g,r]=arguments;return i.apply(this,[o||null]).then((n=>{if(e.version<53&&!g)try{n.forEach((I=>{I.type=t[I.type]||I.type}))}catch(I){if(I.name!=="TypeError")throw I;n.forEach(((C,u)=>{n.set(u,Object.assign({},C,{type:t[C.type]||C.type}))}))}return n})).then(g,r)}}function Tp(A){if(typeof A!="object"||!A.RTCPeerConnection||!A.RTCRtpSender||A.RTCRtpSender&&"getStats"in A.RTCRtpSender.prototype)return;const e=A.RTCPeerConnection.prototype.getSenders;e&&(A.RTCPeerConnection.prototype.getSenders=function(){const i=e.apply(this,[]);return i.forEach((o=>o._pc=this)),i});const t=A.RTCPeerConnection.prototype.addTrack;t&&(A.RTCPeerConnection.prototype.addTrack=function(){const i=t.apply(this,arguments);return i._pc=this,i}),A.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function _F(A){if(typeof A!="object"||!A.RTCPeerConnection||!A.RTCRtpSender||A.RTCRtpSender&&"getStats"in A.RTCRtpReceiver.prototype)return;const e=A.RTCPeerConnection.prototype.getReceivers;e&&(A.RTCPeerConnection.prototype.getReceivers=function(){const t=e.apply(this,[]);return t.forEach((i=>i._pc=this)),t}),IB(A,"track",(t=>(t.receiver._pc=t.srcElement,t))),A.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function $w(A){A.RTCPeerConnection&&!("removeStream"in A.RTCPeerConnection.prototype)&&(A.RTCPeerConnection.prototype.removeStream=function(e){Dl("removeStream","removeTrack"),this.getSenders().forEach((t=>{t.track&&e.getTracks().includes(t.track)&&this.removeTrack(t)}))})}function LF(A){A.DataChannel&&!A.RTCDataChannel&&(A.RTCDataChannel=A.DataChannel)}function bF(A){if(typeof A!="object"||!A.RTCPeerConnection)return;const e=A.RTCPeerConnection.prototype.addTransceiver;e&&(A.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let t=arguments[1]&&arguments[1].sendEncodings;t===void 0&&(t=[]),t=[...t];const i=t.length>0;i&&t.forEach((g=>{if("rid"in g&&!/^[a-z0-9]{0,16}$/i.test(g.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in g&&!(parseFloat(g.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in g&&!(parseFloat(g.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")}));const o=e.apply(this,arguments);if(i){const{sender:g}=o,r=g.getParameters();(!("encodings"in r)||r.encodings.length===1&&Object.keys(r.encodings[0]).length===0)&&(r.encodings=t,g.sendEncodings=t,this.setParametersPromises.push(g.setParameters(r).then((()=>{delete g.sendEncodings})).catch((()=>{delete g.sendEncodings}))))}return o})}function AS(A){if(typeof A!="object"||!A.RTCRtpSender)return;const e=A.RTCRtpSender.prototype.getParameters;e&&(A.RTCRtpSender.prototype.getParameters=function(){const t=e.apply(this,arguments);return"encodings"in t||(t.encodings=[].concat(this.sendEncodings||[{}])),t})}function YF(A){if(typeof A!="object"||!A.RTCPeerConnection)return;const e=A.RTCPeerConnection.prototype.createOffer;A.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then((()=>e.apply(this,arguments))).finally((()=>{this.setParametersPromises=[]})):e.apply(this,arguments)}}function eS(A){if(typeof A!="object"||!A.RTCPeerConnection)return;const e=A.RTCPeerConnection.prototype.createAnswer;A.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then((()=>e.apply(this,arguments))).finally((()=>{this.setParametersPromises=[]})):e.apply(this,arguments)}}var JF=Object.freeze({__proto__:null,shimOnTrack:UF,shimPeerConnection:zw,shimSenderGetStats:Tp,shimReceiverGetStats:_F,shimRemoveStream:$w,shimRTCDataChannel:LF,shimAddTransceiver:bF,shimGetParameters:AS,shimCreateOffer:YF,shimCreateAnswer:eS,shimGetUserMedia:Xw,shimGetDisplayMedia:function(A,e){A.navigator.mediaDevices&&"getDisplayMedia"in A.navigator.mediaDevices||A.navigator.mediaDevices&&(A.navigator.mediaDevices.getDisplayMedia=function(t){if(!t||!t.video){const i=new DOMException("getDisplayMedia without video constraints is undefined");return i.name="NotFoundError",i.code=8,Promise.reject(i)}return t.video===!0?t.video={mediaSource:e}:t.video.mediaSource=e,A.navigator.mediaDevices.getUserMedia(t)})}});function tS(A){if(typeof A=="object"&&A.RTCPeerConnection){if("getLocalStreams"in A.RTCPeerConnection.prototype||(A.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in A.RTCPeerConnection.prototype)){const e=A.RTCPeerConnection.prototype.addTrack;A.RTCPeerConnection.prototype.addStream=function(t){this._localStreams||(this._localStreams=[]),this._localStreams.includes(t)||this._localStreams.push(t),t.getAudioTracks().forEach((i=>e.call(this,i,t))),t.getVideoTracks().forEach((i=>e.call(this,i,t)))},A.RTCPeerConnection.prototype.addTrack=function(t,...i){return i&&i.forEach((o=>{this._localStreams?this._localStreams.includes(o)||this._localStreams.push(o):this._localStreams=[o]})),e.apply(this,arguments)}}"removeStream"in A.RTCPeerConnection.prototype||(A.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);const t=this._localStreams.indexOf(e);if(t===-1)return;this._localStreams.splice(t,1);const i=e.getTracks();this.getSenders().forEach((o=>{i.includes(o.track)&&this.removeTrack(o)}))})}}function xF(A){if(typeof A=="object"&&A.RTCPeerConnection&&("getRemoteStreams"in A.RTCPeerConnection.prototype||(A.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in A.RTCPeerConnection.prototype))){Object.defineProperty(A.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(t){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=t),this.addEventListener("track",this._onaddstreampoly=i=>{i.streams.forEach((o=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(o))return;this._remoteStreams.push(o);const g=new Event("addstream");g.stream=o,this.dispatchEvent(g)}))})}});const e=A.RTCPeerConnection.prototype.setRemoteDescription;A.RTCPeerConnection.prototype.setRemoteDescription=function(){const t=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(i){i.streams.forEach((o=>{if(t._remoteStreams||(t._remoteStreams=[]),t._remoteStreams.indexOf(o)>=0)return;t._remoteStreams.push(o);const g=new Event("addstream");g.stream=o,t.dispatchEvent(g)}))}),e.apply(t,arguments)}}}function KF(A){if(typeof A!="object"||!A.RTCPeerConnection)return;const e=A.RTCPeerConnection.prototype,t=e.createOffer,i=e.createAnswer,o=e.setLocalDescription,g=e.setRemoteDescription,r=e.addIceCandidate;e.createOffer=function(I,C){const u=arguments.length>=2?arguments[2]:arguments[0],R=t.apply(this,[u]);return C?(R.then(I,C),Promise.resolve()):R},e.createAnswer=function(I,C){const u=arguments.length>=2?arguments[2]:arguments[0],R=i.apply(this,[u]);return C?(R.then(I,C),Promise.resolve()):R};let n=function(I,C,u){const R=o.apply(this,[I]);return u?(R.then(C,u),Promise.resolve()):R};e.setLocalDescription=n,n=function(I,C,u){const R=g.apply(this,[I]);return u?(R.then(C,u),Promise.resolve()):R},e.setRemoteDescription=n,n=function(I,C,u){const R=r.apply(this,[I]);return u?(R.then(C,u),Promise.resolve()):R},e.addIceCandidate=n}function HF(A){const e=A&&A.navigator;if(e.mediaDevices&&e.mediaDevices.getUserMedia){const t=e.mediaDevices,i=t.getUserMedia.bind(t);e.mediaDevices.getUserMedia=o=>i(OF(o))}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=(function(t,i,o){e.mediaDevices.getUserMedia(t).then(i,o)}).bind(e))}function OF(A){return A&&A.video!==void 0?Object.assign({},A,{video:qw(A.video)}):A}function qF(A){if(!A.RTCPeerConnection)return;const e=A.RTCPeerConnection;A.RTCPeerConnection=function(t,i){if(t&&t.iceServers){const o=[];for(let g=0;g<t.iceServers.length;g++){let r=t.iceServers[g];r.urls===void 0&&r.url?(Dl("RTCIceServer.url","RTCIceServer.urls"),r=JSON.parse(JSON.stringify(r)),r.urls=r.url,delete r.url,o.push(r)):o.push(t.iceServers[g])}t.iceServers=o}return new e(t,i)},A.RTCPeerConnection.prototype=e.prototype,"generateCertificate"in e&&Object.defineProperty(A.RTCPeerConnection,"generateCertificate",{get:()=>e.generateCertificate})}function PF(A){typeof A=="object"&&A.RTCTrackEvent&&"receiver"in A.RTCTrackEvent.prototype&&!("transceiver"in A.RTCTrackEvent.prototype)&&Object.defineProperty(A.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function VF(A){const e=A.RTCPeerConnection.prototype.createOffer;A.RTCPeerConnection.prototype.createOffer=function(t){if(t){t.offerToReceiveAudio!==void 0&&(t.offerToReceiveAudio=!!t.offerToReceiveAudio);const i=this.getTransceivers().find((g=>g.receiver.track.kind==="audio"));t.offerToReceiveAudio===!1&&i?i.direction==="sendrecv"?i.setDirection?i.setDirection("sendonly"):i.direction="sendonly":i.direction==="recvonly"&&(i.setDirection?i.setDirection("inactive"):i.direction="inactive"):t.offerToReceiveAudio!==!0||i||this.addTransceiver("audio",{direction:"recvonly"}),t.offerToReceiveVideo!==void 0&&(t.offerToReceiveVideo=!!t.offerToReceiveVideo);const o=this.getTransceivers().find((g=>g.receiver.track.kind==="video"));t.offerToReceiveVideo===!1&&o?o.direction==="sendrecv"?o.setDirection?o.setDirection("sendonly"):o.direction="sendonly":o.direction==="recvonly"&&(o.setDirection?o.setDirection("inactive"):o.direction="inactive"):t.offerToReceiveVideo!==!0||o||this.addTransceiver("video",{direction:"recvonly"})}return e.apply(this,arguments)}}function iS(A){typeof A!="object"||A.AudioContext||(A.AudioContext=A.webkitAudioContext)}var oS=Object.freeze({__proto__:null,shimLocalStreamsAPI:tS,shimRemoteStreamsAPI:xF,shimCallbacksAPI:KF,shimGetUserMedia:HF,shimConstraints:OF,shimRTCIceServerUrls:qF,shimTrackEventTransceiver:PF,shimCreateOfferLegacy:VF,shimAudioContext:iS}),WF={exports:{}};(function(A){const e={generateIdentifier:function(){return Math.random().toString(36).substring(2,12)}};e.localCName=e.generateIdentifier(),e.splitLines=function(t){return t.trim().split(`
|
||
`).map((i=>i.trim()))},e.splitSections=function(t){return t.split(`
|
||
m=`).map(((i,o)=>(o>0?"m="+i:i).trim()+`\r
|
||
`))},e.getDescription=function(t){const i=e.splitSections(t);return i&&i[0]},e.getMediaSections=function(t){const i=e.splitSections(t);return i.shift(),i},e.matchPrefix=function(t,i){return e.splitLines(t).filter((o=>o.indexOf(i)===0))},e.parseCandidate=function(t){let i;i=t.indexOf("a=candidate:")===0?t.substring(12).split(" "):t.substring(10).split(" ");const o={foundation:i[0],component:{1:"rtp",2:"rtcp"}[i[1]]||i[1],protocol:i[2].toLowerCase(),priority:parseInt(i[3],10),ip:i[4],address:i[4],port:parseInt(i[5],10),type:i[7]};for(let g=8;g<i.length;g+=2)switch(i[g]){case"raddr":o.relatedAddress=i[g+1];break;case"rport":o.relatedPort=parseInt(i[g+1],10);break;case"tcptype":o.tcpType=i[g+1];break;case"ufrag":o.ufrag=i[g+1],o.usernameFragment=i[g+1];break;default:o[i[g]]===void 0&&(o[i[g]]=i[g+1])}return o},e.writeCandidate=function(t){const i=[];i.push(t.foundation);const o=t.component;o==="rtp"?i.push(1):o==="rtcp"?i.push(2):i.push(o),i.push(t.protocol.toUpperCase()),i.push(t.priority),i.push(t.address||t.ip),i.push(t.port);const g=t.type;return i.push("typ"),i.push(g),g!=="host"&&t.relatedAddress&&t.relatedPort&&(i.push("raddr"),i.push(t.relatedAddress),i.push("rport"),i.push(t.relatedPort)),t.tcpType&&t.protocol.toLowerCase()==="tcp"&&(i.push("tcptype"),i.push(t.tcpType)),(t.usernameFragment||t.ufrag)&&(i.push("ufrag"),i.push(t.usernameFragment||t.ufrag)),"candidate:"+i.join(" ")},e.parseIceOptions=function(t){return t.substring(14).split(" ")},e.parseRtpMap=function(t){let i=t.substring(9).split(" ");const o={payloadType:parseInt(i.shift(),10)};return i=i[0].split("/"),o.name=i[0],o.clockRate=parseInt(i[1],10),o.channels=i.length===3?parseInt(i[2],10):1,o.numChannels=o.channels,o},e.writeRtpMap=function(t){let i=t.payloadType;t.preferredPayloadType!==void 0&&(i=t.preferredPayloadType);const o=t.channels||t.numChannels||1;return"a=rtpmap:"+i+" "+t.name+"/"+t.clockRate+(o!==1?"/"+o:"")+`\r
|
||
`},e.parseExtmap=function(t){const i=t.substring(9).split(" ");return{id:parseInt(i[0],10),direction:i[0].indexOf("/")>0?i[0].split("/")[1]:"sendrecv",uri:i[1],attributes:i.slice(2).join(" ")}},e.writeExtmap=function(t){return"a=extmap:"+(t.id||t.preferredId)+(t.direction&&t.direction!=="sendrecv"?"/"+t.direction:"")+" "+t.uri+(t.attributes?" "+t.attributes:"")+`\r
|
||
`},e.parseFmtp=function(t){const i={};let o;const g=t.substring(t.indexOf(" ")+1).split(";");for(let r=0;r<g.length;r++)o=g[r].trim().split("="),i[o[0].trim()]=o[1];return i},e.writeFmtp=function(t){let i="",o=t.payloadType;if(t.preferredPayloadType!==void 0&&(o=t.preferredPayloadType),t.parameters&&Object.keys(t.parameters).length){const g=[];Object.keys(t.parameters).forEach((r=>{t.parameters[r]!==void 0?g.push(r+"="+t.parameters[r]):g.push(r)})),i+="a=fmtp:"+o+" "+g.join(";")+`\r
|
||
`}return i},e.parseRtcpFb=function(t){const i=t.substring(t.indexOf(" ")+1).split(" ");return{type:i.shift(),parameter:i.join(" ")}},e.writeRtcpFb=function(t){let i="",o=t.payloadType;return t.preferredPayloadType!==void 0&&(o=t.preferredPayloadType),t.rtcpFeedback&&t.rtcpFeedback.length&&t.rtcpFeedback.forEach((g=>{i+="a=rtcp-fb:"+o+" "+g.type+(g.parameter&&g.parameter.length?" "+g.parameter:"")+`\r
|
||
`})),i},e.parseSsrcMedia=function(t){const i=t.indexOf(" "),o={ssrc:parseInt(t.substring(7,i),10)},g=t.indexOf(":",i);return g>-1?(o.attribute=t.substring(i+1,g),o.value=t.substring(g+1)):o.attribute=t.substring(i+1),o},e.parseSsrcGroup=function(t){const i=t.substring(13).split(" ");return{semantics:i.shift(),ssrcs:i.map((o=>parseInt(o,10)))}},e.getMid=function(t){const i=e.matchPrefix(t,"a=mid:")[0];if(i)return i.substring(6)},e.parseFingerprint=function(t){const i=t.substring(14).split(" ");return{algorithm:i[0].toLowerCase(),value:i[1].toUpperCase()}},e.getDtlsParameters=function(t,i){return{role:"auto",fingerprints:e.matchPrefix(t+i,"a=fingerprint:").map(e.parseFingerprint)}},e.writeDtlsParameters=function(t,i){let o="a=setup:"+i+`\r
|
||
`;return t.fingerprints.forEach((g=>{o+="a=fingerprint:"+g.algorithm+" "+g.value+`\r
|
||
`})),o},e.parseCryptoLine=function(t){const i=t.substring(9).split(" ");return{tag:parseInt(i[0],10),cryptoSuite:i[1],keyParams:i[2],sessionParams:i.slice(3)}},e.writeCryptoLine=function(t){return"a=crypto:"+t.tag+" "+t.cryptoSuite+" "+(typeof t.keyParams=="object"?e.writeCryptoKeyParams(t.keyParams):t.keyParams)+(t.sessionParams?" "+t.sessionParams.join(" "):"")+`\r
|
||
`},e.parseCryptoKeyParams=function(t){if(t.indexOf("inline:")!==0)return null;const i=t.substring(7).split("|");return{keyMethod:"inline",keySalt:i[0],lifeTime:i[1],mkiValue:i[2]?i[2].split(":")[0]:void 0,mkiLength:i[2]?i[2].split(":")[1]:void 0}},e.writeCryptoKeyParams=function(t){return t.keyMethod+":"+t.keySalt+(t.lifeTime?"|"+t.lifeTime:"")+(t.mkiValue&&t.mkiLength?"|"+t.mkiValue+":"+t.mkiLength:"")},e.getCryptoParameters=function(t,i){return e.matchPrefix(t+i,"a=crypto:").map(e.parseCryptoLine)},e.getIceParameters=function(t,i){const o=e.matchPrefix(t+i,"a=ice-ufrag:")[0],g=e.matchPrefix(t+i,"a=ice-pwd:")[0];return o&&g?{usernameFragment:o.substring(12),password:g.substring(10)}:null},e.writeIceParameters=function(t){let i="a=ice-ufrag:"+t.usernameFragment+`\r
|
||
a=ice-pwd:`+t.password+`\r
|
||
`;return t.iceLite&&(i+=`a=ice-lite\r
|
||
`),i},e.parseRtpParameters=function(t){const i={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},o=e.splitLines(t)[0].split(" ");i.profile=o[2];for(let r=3;r<o.length;r++){const n=o[r],I=e.matchPrefix(t,"a=rtpmap:"+n+" ")[0];if(I){const C=e.parseRtpMap(I),u=e.matchPrefix(t,"a=fmtp:"+n+" ");switch(C.parameters=u.length?e.parseFmtp(u[0]):{},C.rtcpFeedback=e.matchPrefix(t,"a=rtcp-fb:"+n+" ").map(e.parseRtcpFb),i.codecs.push(C),C.name.toUpperCase()){case"RED":case"ULPFEC":i.fecMechanisms.push(C.name.toUpperCase())}}}e.matchPrefix(t,"a=extmap:").forEach((r=>{i.headerExtensions.push(e.parseExtmap(r))}));const g=e.matchPrefix(t,"a=rtcp-fb:* ").map(e.parseRtcpFb);return i.codecs.forEach((r=>{g.forEach((n=>{r.rtcpFeedback.find((I=>I.type===n.type&&I.parameter===n.parameter))||r.rtcpFeedback.push(n)}))})),i},e.writeRtpDescription=function(t,i){let o="";o+="m="+t+" ",o+=i.codecs.length>0?"9":"0",o+=" "+(i.profile||"UDP/TLS/RTP/SAVPF")+" ",o+=i.codecs.map((r=>r.preferredPayloadType!==void 0?r.preferredPayloadType:r.payloadType)).join(" ")+`\r
|
||
`,o+=`c=IN IP4 0.0.0.0\r
|
||
`,o+=`a=rtcp:9 IN IP4 0.0.0.0\r
|
||
`,i.codecs.forEach((r=>{o+=e.writeRtpMap(r),o+=e.writeFmtp(r),o+=e.writeRtcpFb(r)}));let g=0;return i.codecs.forEach((r=>{r.maxptime>g&&(g=r.maxptime)})),g>0&&(o+="a=maxptime:"+g+`\r
|
||
`),i.headerExtensions&&i.headerExtensions.forEach((r=>{o+=e.writeExtmap(r)})),o},e.parseRtpEncodingParameters=function(t){const i=[],o=e.parseRtpParameters(t),g=o.fecMechanisms.indexOf("RED")!==-1,r=o.fecMechanisms.indexOf("ULPFEC")!==-1,n=e.matchPrefix(t,"a=ssrc:").map((M=>e.parseSsrcMedia(M))).filter((M=>M.attribute==="cname")),I=n.length>0&&n[0].ssrc;let C;const u=e.matchPrefix(t,"a=ssrc-group:FID").map((M=>M.substring(17).split(" ").map((L=>parseInt(L,10)))));u.length>0&&u[0].length>1&&u[0][0]===I&&(C=u[0][1]),o.codecs.forEach((M=>{if(M.name.toUpperCase()==="RTX"&&M.parameters.apt){let L={ssrc:I,codecPayloadType:parseInt(M.parameters.apt,10)};I&&C&&(L.rtx={ssrc:C}),i.push(L),g&&(L=JSON.parse(JSON.stringify(L)),L.fec={ssrc:I,mechanism:r?"red+ulpfec":"red"},i.push(L))}})),i.length===0&&I&&i.push({ssrc:I});let R=e.matchPrefix(t,"b=");return R.length&&(R=R[0].indexOf("b=TIAS:")===0?parseInt(R[0].substring(7),10):R[0].indexOf("b=AS:")===0?1e3*parseInt(R[0].substring(5),10)*.95-16e3:void 0,i.forEach((M=>{M.maxBitrate=R}))),i},e.parseRtcpParameters=function(t){const i={},o=e.matchPrefix(t,"a=ssrc:").map((n=>e.parseSsrcMedia(n))).filter((n=>n.attribute==="cname"))[0];o&&(i.cname=o.value,i.ssrc=o.ssrc);const g=e.matchPrefix(t,"a=rtcp-rsize");i.reducedSize=g.length>0,i.compound=g.length===0;const r=e.matchPrefix(t,"a=rtcp-mux");return i.mux=r.length>0,i},e.writeRtcpParameters=function(t){let i="";return t.reducedSize&&(i+=`a=rtcp-rsize\r
|
||
`),t.mux&&(i+=`a=rtcp-mux\r
|
||
`),t.ssrc!==void 0&&t.cname&&(i+="a=ssrc:"+t.ssrc+" cname:"+t.cname+`\r
|
||
`),i},e.parseMsid=function(t){let i;const o=e.matchPrefix(t,"a=msid:");if(o.length===1)return i=o[0].substring(7).split(" "),{stream:i[0],track:i[1]};const g=e.matchPrefix(t,"a=ssrc:").map((r=>e.parseSsrcMedia(r))).filter((r=>r.attribute==="msid"));return g.length>0?(i=g[0].value.split(" "),{stream:i[0],track:i[1]}):void 0},e.parseSctpDescription=function(t){const i=e.parseMLine(t),o=e.matchPrefix(t,"a=max-message-size:");let g;o.length>0&&(g=parseInt(o[0].substring(19),10)),isNaN(g)&&(g=65536);const r=e.matchPrefix(t,"a=sctp-port:");if(r.length>0)return{port:parseInt(r[0].substring(12),10),protocol:i.fmt,maxMessageSize:g};const n=e.matchPrefix(t,"a=sctpmap:");if(n.length>0){const I=n[0].substring(10).split(" ");return{port:parseInt(I[0],10),protocol:I[1],maxMessageSize:g}}},e.writeSctpDescription=function(t,i){let o=[];return o=t.protocol!=="DTLS/SCTP"?["m="+t.kind+" 9 "+t.protocol+" "+i.protocol+`\r
|
||
`,`c=IN IP4 0.0.0.0\r
|
||
`,"a=sctp-port:"+i.port+`\r
|
||
`]:["m="+t.kind+" 9 "+t.protocol+" "+i.port+`\r
|
||
`,`c=IN IP4 0.0.0.0\r
|
||
`,"a=sctpmap:"+i.port+" "+i.protocol+` 65535\r
|
||
`],i.maxMessageSize!==void 0&&o.push("a=max-message-size:"+i.maxMessageSize+`\r
|
||
`),o.join("")},e.generateSessionId=function(){return Math.random().toString().substr(2,22)},e.writeSessionBoilerplate=function(t,i,o){let g;const r=i!==void 0?i:2;return g=t||e.generateSessionId(),`v=0\r
|
||
o=`+(o||"thisisadapterortc")+" "+g+" "+r+` IN IP4 127.0.0.1\r
|
||
s=-\r
|
||
t=0 0\r
|
||
`},e.getDirection=function(t,i){const o=e.splitLines(t);for(let g=0;g<o.length;g++)switch(o[g]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return o[g].substring(2)}return i?e.getDirection(i):"sendrecv"},e.getKind=function(t){return e.splitLines(t)[0].split(" ")[0].substring(2)},e.isRejected=function(t){return t.split(" ",2)[1]==="0"},e.parseMLine=function(t){const i=e.splitLines(t)[0].substring(2).split(" ");return{kind:i[0],port:parseInt(i[1],10),protocol:i[2],fmt:i.slice(3).join(" ")}},e.parseOLine=function(t){const i=e.matchPrefix(t,"o=")[0].substring(2).split(" ");return{username:i[0],sessionId:i[1],sessionVersion:parseInt(i[2],10),netType:i[3],addressType:i[4],address:i[5]}},e.isValidSDP=function(t){if(typeof t!="string"||t.length===0)return!1;const i=e.splitLines(t);for(let o=0;o<i.length;o++)if(i[o].length<2||i[o].charAt(1)!=="=")return!1;return!0},A.exports=e})(WF);var ZF=WF.exports,UQ=x(ZF),gS=f({__proto__:null,default:UQ},[ZF]);function Up(A){if(!A.RTCIceCandidate||A.RTCIceCandidate&&"foundation"in A.RTCIceCandidate.prototype)return;const e=A.RTCIceCandidate;A.RTCIceCandidate=function(t){if(typeof t=="object"&&t.candidate&&t.candidate.indexOf("a=")===0&&((t=JSON.parse(JSON.stringify(t))).candidate=t.candidate.substring(2)),t.candidate&&t.candidate.length){const i=new e(t),o=UQ.parseCandidate(t.candidate);for(const g in o)g in i||Object.defineProperty(i,g,{value:o[g]});return i.toJSON=function(){return{candidate:i.candidate,sdpMid:i.sdpMid,sdpMLineIndex:i.sdpMLineIndex,usernameFragment:i.usernameFragment}},i}return new e(t)},A.RTCIceCandidate.prototype=e.prototype,IB(A,"icecandidate",(t=>(t.candidate&&Object.defineProperty(t,"candidate",{value:new A.RTCIceCandidate(t.candidate),writable:"false"}),t)))}function rS(A){!A.RTCIceCandidate||A.RTCIceCandidate&&"relayProtocol"in A.RTCIceCandidate.prototype||IB(A,"icecandidate",(e=>{if(e.candidate){const t=UQ.parseCandidate(e.candidate.candidate);t.type==="relay"&&(e.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[t.priority>>24])}return e}))}function _p(A,e){if(!A.RTCPeerConnection)return;"sctp"in A.RTCPeerConnection.prototype||Object.defineProperty(A.RTCPeerConnection.prototype,"sctp",{get(){return this._sctp===void 0?null:this._sctp}});const t=A.RTCPeerConnection.prototype.setRemoteDescription;A.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,e.browser==="chrome"&&e.version>=76){const{sdpSemantics:i}=this.getConfiguration();i==="plan-b"&&Object.defineProperty(this,"sctp",{get(){return this._sctp===void 0?null:this._sctp},enumerable:!0,configurable:!0})}if((function(i){if(!i||!i.sdp)return!1;const o=UQ.splitSections(i.sdp);return o.shift(),o.some((g=>{const r=UQ.parseMLine(g);return r&&r.kind==="application"&&r.protocol.indexOf("SCTP")!==-1}))})(arguments[0])){const i=(function(I){const C=I.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(C===null||C.length<2)return-1;const u=parseInt(C[1],10);return u!=u?-1:u})(arguments[0]),o=(function(I){let C=65536;return e.browser==="firefox"&&(C=e.version<57?I===-1?16384:2147483637:e.version<60?e.version===57?65535:65536:2147483637),C})(i),g=(function(I,C){let u=65536;e.browser==="firefox"&&e.version===57&&(u=65535);const R=UQ.matchPrefix(I.sdp,"a=max-message-size:");return R.length>0?u=parseInt(R[0].substring(19),10):e.browser==="firefox"&&C!==-1&&(u=2147483637),u})(arguments[0],i);let r;r=o===0&&g===0?Number.POSITIVE_INFINITY:o===0||g===0?Math.max(o,g):Math.min(o,g);const n={};Object.defineProperty(n,"maxMessageSize",{get:()=>r}),this._sctp=n}return t.apply(this,arguments)}}function Lp(A){if(!A.RTCPeerConnection||!("createDataChannel"in A.RTCPeerConnection.prototype))return;function e(i,o){const g=i.send;i.send=function(){const r=arguments[0],n=r.length||r.size||r.byteLength;if(i.readyState==="open"&&o.sctp&&n>o.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+o.sctp.maxMessageSize+" bytes)");return g.apply(i,arguments)}}const t=A.RTCPeerConnection.prototype.createDataChannel;A.RTCPeerConnection.prototype.createDataChannel=function(){const i=t.apply(this,arguments);return e(i,this),i},IB(A,"datachannel",(i=>(e(i.channel,i.target),i)))}function Rs(A){if(!A.RTCPeerConnection||"connectionState"in A.RTCPeerConnection.prototype)return;const e=A.RTCPeerConnection.prototype;Object.defineProperty(e,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(e,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(t){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),t&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=t)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach((t=>{const i=e[t];e[t]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=o=>{const g=o.target;if(g._lastConnectionState!==g.connectionState){g._lastConnectionState=g.connectionState;const r=new Event("connectionstatechange",o);g.dispatchEvent(r)}return o},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),i.apply(this,arguments)}}))}function bp(A,e){if(!A.RTCPeerConnection||e.browser==="chrome"&&e.version>=71||e.browser==="safari"&&e.version>=605)return;const t=A.RTCPeerConnection.prototype.setRemoteDescription;A.RTCPeerConnection.prototype.setRemoteDescription=function(i){if(i&&i.sdp&&i.sdp.indexOf(`
|
||
a=extmap-allow-mixed`)!==-1){const o=i.sdp.split(`
|
||
`).filter((g=>g.trim()!=="a=extmap-allow-mixed")).join(`
|
||
`);A.RTCSessionDescription&&i instanceof A.RTCSessionDescription?arguments[0]=new A.RTCSessionDescription({type:i.type,sdp:o}):i.sdp=o}return t.apply(this,arguments)}}function Yp(A,e){if(!A.RTCPeerConnection||!A.RTCPeerConnection.prototype)return;const t=A.RTCPeerConnection.prototype.addIceCandidate;t&&t.length!==0&&(A.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(e.browser==="chrome"&&e.version<78||e.browser==="firefox"&&e.version<68||e.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Promise.resolve():t.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function Jp(A,e){if(!A.RTCPeerConnection||!A.RTCPeerConnection.prototype)return;const t=A.RTCPeerConnection.prototype.setLocalDescription;t&&t.length!==0&&(A.RTCPeerConnection.prototype.setLocalDescription=function(){let i=arguments[0]||{};if(typeof i!="object"||i.type&&i.sdp)return t.apply(this,arguments);if(i={type:i.type,sdp:i.sdp},!i.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":i.type="offer";break;default:i.type="answer"}return i.sdp||i.type!=="offer"&&i.type!=="answer"?t.apply(this,[i]):(i.type==="offer"?this.createOffer:this.createAnswer).apply(this).then((o=>t.apply(this,[o])))})}var jF=Object.freeze({__proto__:null,shimRTCIceCandidate:Up,shimRTCIceCandidateRelayProtocol:rS,shimMaxMessageSize:_p,shimSendThrowTypeError:Lp,shimConnectionState:Rs,removeExtmapAllowMixed:bp,shimAddIceCandidateNullOrEmpty:Yp,shimParameterlessSetLocalDescription:Jp});(function({window:A}={},e={shimChrome:!0,shimFirefox:!0,shimSafari:!0}){const t=SF,i=(function(g){const r={browser:null,version:null};if(g===void 0||!g.navigator||!g.navigator.userAgent)return r.browser="Not a browser.",r;const{navigator:n}=g;if(n.mozGetUserMedia)r.browser="firefox",r.version=ys(n.userAgent,/Firefox\/(\d+)\./,1);else if(n.webkitGetUserMedia||g.isSecureContext===!1&&g.webkitRTCPeerConnection)r.browser="chrome",r.version=ys(n.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else{if(!g.RTCPeerConnection||!n.userAgent.match(/AppleWebKit\/(\d+)\./))return r.browser="Not a supported browser.",r;r.browser="safari",r.version=ys(n.userAgent,/AppleWebKit\/(\d+)\./,1),r.supportsUnifiedPlan=g.RTCRtpTransceiver&&"currentDirection"in g.RTCRtpTransceiver.prototype}return r})(A),o={browserDetails:i,commonShim:jF,extractVersion:ys,disableLog:Ow,disableWarnings:wF,sdp:gS};switch(i.browser){case"chrome":if(!TF||!Zw||!e.shimChrome)return t("Chrome shim is not included in this adapter release."),o;if(i.version===null)return t("Chrome shim can not determine version, not shimming."),o;t("adapter.js shimming chrome."),o.browserShim=TF,Yp(A,i),Jp(A),vp(A,i),Pw(A),Zw(A,i),Vw(A),vF(A,i),kF(A),NF(A),Ww(A),jw(A,i),Up(A),rS(A),Rs(A),_p(A,i),Lp(A),bp(A,i);break;case"firefox":if(!JF||!zw||!e.shimFirefox)return t("Firefox shim is not included in this adapter release."),o;t("adapter.js shimming firefox."),o.browserShim=JF,Yp(A,i),Jp(A),Xw(A,i),zw(A,i),UF(A),$w(A),Tp(A),_F(A),LF(A),bF(A),AS(A),YF(A),eS(A),Up(A),Rs(A),_p(A,i),Lp(A);break;case"safari":if(!oS||!e.shimSafari)return t("Safari shim is not included in this adapter release."),o;t("adapter.js shimming safari."),o.browserShim=oS,Yp(A,i),Jp(A),qF(A),VF(A),KF(A),tS(A),xF(A),PF(A),HF(A),iS(A),Up(A),rS(A),_p(A,i),Lp(A),bp(A,i);break;default:t("Unsupported browser!")}})({window:typeof window>"u"?void 0:window});var Me,yY=Object.create,_Q=Object.defineProperty,RY=Object.defineProperties,XF=Object.getOwnPropertyDescriptor,mY=Object.getOwnPropertyDescriptors,zF=Object.getOwnPropertyNames,pl=Object.getOwnPropertySymbols,$F=Object.getPrototypeOf,aS=Object.prototype.hasOwnProperty,xp=Object.prototype.propertyIsEnumerable,yl=Reflect.get,Rl=Math.pow,IS=(A,e,t)=>e in A?_Q(A,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):A[e]=t,le=(A,e)=>{for(var t in e||(e={}))aS.call(e,t)&&IS(A,t,e[t]);if(pl)for(var t of pl(e))xp.call(e,t)&&IS(A,t,e[t]);return A},tt=(A,e)=>RY(A,mY(e)),Av=(A,e)=>{var t={};for(var i in A)aS.call(A,i)&&e.indexOf(i)<0&&(t[i]=A[i]);if(A!=null&&pl)for(var i of pl(A))e.indexOf(i)<0&&xp.call(A,i)&&(t[i]=A[i]);return t},iI=(A,e)=>()=>(e||A((e={exports:{}}).exports,e),e.exports),Dn=(A,e)=>{for(var t in e)_Q(A,t,{get:e[t],enumerable:!0})},Mo=(A,e,t)=>(t=A!=null?yY($F(A)):{},((i,o,g,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of zF(o))!aS.call(i,n)&&n!==g&&_Q(i,n,{get:()=>o[n],enumerable:!(r=XF(o,n))||r.enumerable});return i})(!e&&A&&A.__esModule?t:_Q(t,"default",{value:A,enumerable:!0}),A)),ne=(A,e,t,i)=>{for(var o,g=XF(e,t),r=A.length-1;r>=0;r--)(o=A[r])&&(g=o(e,t,g)||g);return g&&_Q(e,t,g),g},l=(A,e,t)=>IS(A,typeof e!="symbol"?e+"":e,t),Xg=(A,e,t)=>yl($F(A),t,e),X=(A,e,t)=>new Promise(((i,o)=>{var g=I=>{try{n(t.next(I))}catch(C){o(C)}},r=I=>{try{n(t.throw(I))}catch(C){o(C)}},n=I=>I.done?i(I.value):Promise.resolve(I.value).then(g,r);n((t=t.apply(A,e)).next())})),Ng=iI(((A,e)=>{var t=Object.prototype.hasOwnProperty,i="~";function o(){}function g(C,u,R){this.fn=C,this.context=u,this.once=R||!1}function r(C,u,R,M,L){if(typeof R!="function")throw new TypeError("The listener must be a function");var H=new g(R,M||C,L),gA=i?i+u:u;return C._events[gA]?C._events[gA].fn?C._events[gA]=[C._events[gA],H]:C._events[gA].push(H):(C._events[gA]=H,C._eventsCount++),C}function n(C,u){--C._eventsCount==0?C._events=new o:delete C._events[u]}function I(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),new o().__proto__||(i=!1)),I.prototype.eventNames=function(){var C,u,R=[];if(this._eventsCount===0)return R;for(u in C=this._events)t.call(C,u)&&R.push(i?u.slice(1):u);return Object.getOwnPropertySymbols?R.concat(Object.getOwnPropertySymbols(C)):R},I.prototype.listeners=function(C){var u=i?i+C:C,R=this._events[u];if(!R)return[];if(R.fn)return[R.fn];for(var M=0,L=R.length,H=new Array(L);M<L;M++)H[M]=R[M].fn;return H},I.prototype.listenerCount=function(C){var u=i?i+C:C,R=this._events[u];return R?R.fn?1:R.length:0},I.prototype.emit=function(C,u,R,M,L,H){var gA=i?i+C:C;if(!this._events[gA])return!1;var EA,TA,hA=this._events[gA],ZA=arguments.length;if(hA.fn){switch(hA.once&&this.removeListener(C,hA.fn,void 0,!0),ZA){case 1:return hA.fn.call(hA.context),!0;case 2:return hA.fn.call(hA.context,u),!0;case 3:return hA.fn.call(hA.context,u,R),!0;case 4:return hA.fn.call(hA.context,u,R,M),!0;case 5:return hA.fn.call(hA.context,u,R,M,L),!0;case 6:return hA.fn.call(hA.context,u,R,M,L,H),!0}for(TA=1,EA=new Array(ZA-1);TA<ZA;TA++)EA[TA-1]=arguments[TA];hA.fn.apply(hA.context,EA)}else{var BA,xA=hA.length;for(TA=0;TA<xA;TA++)switch(hA[TA].once&&this.removeListener(C,hA[TA].fn,void 0,!0),ZA){case 1:hA[TA].fn.call(hA[TA].context);break;case 2:hA[TA].fn.call(hA[TA].context,u);break;case 3:hA[TA].fn.call(hA[TA].context,u,R);break;case 4:hA[TA].fn.call(hA[TA].context,u,R,M);break;default:if(!EA)for(BA=1,EA=new Array(ZA-1);BA<ZA;BA++)EA[BA-1]=arguments[BA];hA[TA].fn.apply(hA[TA].context,EA)}}return!0},I.prototype.on=function(C,u,R){return r(this,C,u,R,!1)},I.prototype.once=function(C,u,R){return r(this,C,u,R,!0)},I.prototype.removeListener=function(C,u,R,M){var L=i?i+C:C;if(!this._events[L])return this;if(!u)return n(this,L),this;var H=this._events[L];if(H.fn)H.fn===u&&(!M||H.once)&&(!R||H.context===R)&&n(this,L);else{for(var gA=0,EA=[],TA=H.length;gA<TA;gA++)(H[gA].fn!==u||M&&!H[gA].once||R&&H[gA].context!==R)&&EA.push(H[gA]);EA.length?this._events[L]=EA.length===1?EA[0]:EA:n(this,L)}return this},I.prototype.removeAllListeners=function(C){var u;return C?(u=i?i+C:C,this._events[u]&&n(this,u)):(this._events=new o,this._eventsCount=0),this},I.prototype.off=I.prototype.removeListener,I.prototype.addListener=I.prototype.on,I.prefixed=i,I.EventEmitter=I,e!==void 0&&(e.exports=I)})),nS=iI(((A,e)=>{var t=e.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(i){return i.encoding?"rtpmap:%d %s/%s/%s":i.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(i){return i.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(i){return i.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(i){return"extmap:%d"+(i.direction?"/%s":"%v")+(i["encrypt-uri"]?" %s":"%v")+" %s"+(i.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(i){return i.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(i){var o="candidate:%s %d %s %d %s %d typ %s";return o+=i.raddr!=null?" raddr %s rport %d":"%v%v",o+=i.tcptype!=null?" tcptype %s":"%v",i.generation!=null&&(o+=" generation %d"),o+=i["network-id"]!=null?" network-id %d":"%v",o+=i["network-cost"]!=null?" network-cost %d":"%v"}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(i){var o="ssrc:%d";return i.attribute!=null&&(o+=" %s",i.value!=null&&(o+=":%s")),o}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(i){return i.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(i){return i.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(i){return"imageattr:%s %s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(i){return"simulcast:%s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(i){return"ts-refclk:%s"+(i.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(i){var o="mediaclk:";return o+=i.id!=null?"id=%s %s":"%v%s",o+=i.mediaClockValue!=null?"=%s":"",o+=i.rateNumerator!=null?" rate=%s":"",o+=i.rateDenominator!=null?"/%s":""}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(t).forEach((function(i){t[i].forEach((function(o){o.reg||(o.reg=/(.*)/),o.format||(o.format="%s")}))}))})),fY=iI((A=>{var e=function(r){return String(Number(r))===r?Number(r):r},t=function(r,n,I){var C=r.name&&r.names;r.push&&!n[r.push]?n[r.push]=[]:C&&!n[r.name]&&(n[r.name]={});var u=r.push?{}:C?n[r.name]:n;(function(R,M,L,H){if(H&&!L)M[H]=e(R[1]);else for(var gA=0;gA<L.length;gA+=1)R[gA+1]!=null&&(M[L[gA]]=e(R[gA+1]))})(I.match(r.reg),u,r.names,r.name),r.push&&n[r.push].push(u)},i=nS(),o=RegExp.prototype.test.bind(/^([a-z])=(.*)/);A.parse=function(r){var n={},I=[],C=n;return r.split(/(\r\n|\r|\n)/).filter(o).forEach((function(u){var R=u[0],M=u.slice(2);R==="m"&&(I.push({rtp:[],fmtp:[]}),C=I[I.length-1]);for(var L=0;L<(i[R]||[]).length;L+=1){var H=i[R][L];if(H.reg.test(M))return t(H,C,M)}})),n.media=I,n};var g=function(r,n){var I=n.split(/=(.+)/,2);return I.length===2?r[I[0]]=e(I[1]):I.length===1&&n.length>1&&(r[I[0]]=void 0),r};A.parseParams=function(r){return r.split(/;\s?/).reduce(g,{})},A.parseFmtpConfig=A.parseParams,A.parsePayloads=function(r){return r.toString().split(" ").map(Number)},A.parseRemoteCandidates=function(r){for(var n=[],I=r.split(" ").map(e),C=0;C<I.length;C+=3)n.push({component:I[C],ip:I[C+1],port:I[C+2]});return n},A.parseImageAttributes=function(r){return r.split(" ").map((function(n){return n.substring(1,n.length-1).split(",").reduce(g,{})}))},A.parseSimulcastStreamList=function(r){return r.split(";").map((function(n){return n.split(",").map((function(I){var C,u=!1;return I[0]!=="~"?C=e(I):(C=e(I.substring(1,I.length)),u=!0),{scid:C,paused:u}}))}))}})),wY=iI(((A,e)=>{var t=nS(),i=/%[sdv%]/g,o=function(I){var C=1,u=arguments,R=u.length;return I.replace(i,(function(M){if(C>=R)return M;var L=u[C];switch(C+=1,M){case"%%":return"%";case"%s":return String(L);case"%d":return Number(L);case"%v":return""}}))},g=function(I,C,u){var R=[I+"="+(C.format instanceof Function?C.format(C.push?u:u[C.name]):C.format)];if(C.names)for(var M=0;M<C.names.length;M+=1){var L=C.names[M];C.name?R.push(u[C.name][L]):R.push(u[C.names[M]])}else R.push(u[C.name]);return o.apply(null,R)},r=["v","o","s","i","u","e","p","c","b","t","r","z","a"],n=["i","c","b","a"];e.exports=function(I,C){C=C||{},I.version==null&&(I.version=0),I.name==null&&(I.name=" "),I.media.forEach((function(L){L.payloads==null&&(L.payloads="")}));var u=C.outerOrder||r,R=C.innerOrder||n,M=[];return u.forEach((function(L){t[L].forEach((function(H){H.name in I&&I[H.name]!=null?M.push(g(L,H,I)):H.push in I&&I[H.push]!=null&&I[H.push].forEach((function(gA){M.push(g(L,H,gA))}))}))})),I.media.forEach((function(L){M.push(g("m",t.m[0],L)),R.forEach((function(H){t[H].forEach((function(gA){gA.name in L&&L[gA.name]!=null?M.push(g(H,gA,L)):gA.push in L&&L[gA.push]!=null&&L[gA.push].forEach((function(EA){M.push(g(H,gA,EA))}))}))}))})),M.join(`\r
|
||
`)+`\r
|
||
`}})),ev=iI((A=>{var e=fY(),t=wY(),i=nS();A.grammar=i,A.write=t,A.parse=e.parse,A.parseParams=e.parseParams,A.parseFmtpConfig=e.parseFmtpConfig,A.parsePayloads=e.parsePayloads,A.parseRemoteCandidates=e.parseRemoteCandidates,A.parseImageAttributes=e.parseImageAttributes,A.parseSimulcastStreamList=e.parseSimulcastStreamList})),sS=iI(((A,e)=>{var t=e.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(i){return i.encoding?"rtpmap:%d %s/%s/%s":i.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(i){return i.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(i){return i.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(i){return"extmap:%d"+(i.direction?"/%s":"%v")+(i["encrypt-uri"]?" %s":"%v")+" %s"+(i.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(i){return i.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(i){var o="candidate:%s %d %s %d %s %d typ %s";return o+=i.raddr!=null?" raddr %s rport %d":"%v%v",o+=i.tcptype!=null?" tcptype %s":"%v",i.generation!=null&&(o+=" generation %d"),o+=i["network-id"]!=null?" network-id %d":"%v",o+=i["network-cost"]!=null?" network-cost %d":"%v"}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(i){var o="ssrc:%d";return i.attribute!=null&&(o+=" %s",i.value!=null&&(o+=":%s")),o}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(i){return i.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(i){return i.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(i){return"imageattr:%s %s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(i){return"simulcast:%s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(i){return"ts-refclk:%s"+(i.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(i){var o="mediaclk:";return o+=i.id!=null?"id=%s %s":"%v%s",o+=i.mediaClockValue!=null?"=%s":"",o+=i.rateNumerator!=null?" rate=%s":"",o+=i.rateDenominator!=null?"/%s":""}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(t).forEach((function(i){t[i].forEach((function(o){o.reg||(o.reg=/(.*)/),o.format||(o.format="%s")}))}))})),SY=iI((A=>{var e=function(r){return String(Number(r))===r?Number(r):r},t=function(r,n,I){var C=r.name&&r.names;r.push&&!n[r.push]?n[r.push]=[]:C&&!n[r.name]&&(n[r.name]={});var u=r.push?{}:C?n[r.name]:n;(function(R,M,L,H){if(H&&!L)M[H]=e(R[1]);else for(var gA=0;gA<L.length;gA+=1)R[gA+1]!=null&&(M[L[gA]]=e(R[gA+1]))})(I.match(r.reg),u,r.names,r.name),r.push&&n[r.push].push(u)},i=sS(),o=RegExp.prototype.test.bind(/^([a-z])=(.*)/);A.parse=function(r){var n={},I=[],C=n;return r.split(/(\r\n|\r|\n)/).filter(o).forEach((function(u){var R=u[0],M=u.slice(2);R==="m"&&(I.push({rtp:[],fmtp:[]}),C=I[I.length-1]);for(var L=0;L<(i[R]||[]).length;L+=1){var H=i[R][L];if(H.reg.test(M))return t(H,C,M)}})),n.media=I,n};var g=function(r,n){var I=n.split(/=(.+)/,2);return I.length===2?r[I[0]]=e(I[1]):I.length===1&&n.length>1&&(r[I[0]]=void 0),r};A.parseParams=function(r){return r.split(/;\s?/).reduce(g,{})},A.parseFmtpConfig=A.parseParams,A.parsePayloads=function(r){return r.toString().split(" ").map(Number)},A.parseRemoteCandidates=function(r){for(var n=[],I=r.split(" ").map(e),C=0;C<I.length;C+=3)n.push({component:I[C],ip:I[C+1],port:I[C+2]});return n},A.parseImageAttributes=function(r){return r.split(" ").map((function(n){return n.substring(1,n.length-1).split(",").reduce(g,{})}))},A.parseSimulcastStreamList=function(r){return r.split(";").map((function(n){return n.split(",").map((function(I){var C,u=!1;return I[0]!=="~"?C=e(I):(C=e(I.substring(1,I.length)),u=!0),{scid:C,paused:u}}))}))}})),ms=iI(((A,e)=>{var t=sS(),i=/%[sdv%]/g,o=function(I){var C=1,u=arguments,R=u.length;return I.replace(i,(function(M){if(C>=R)return M;var L=u[C];switch(C+=1,M){case"%%":return"%";case"%s":return String(L);case"%d":return Number(L);case"%v":return""}}))},g=function(I,C,u){var R=[I+"="+(C.format instanceof Function?C.format(C.push?u:u[C.name]):C.format)];if(C.names)for(var M=0;M<C.names.length;M+=1){var L=C.names[M];C.name?R.push(u[C.name][L]):R.push(u[C.names[M]])}else R.push(u[C.name]);return o.apply(null,R)},r=["v","o","s","i","u","e","p","c","b","t","r","z","a"],n=["i","c","b","a"];e.exports=function(I,C){C=C||{},I.version==null&&(I.version=0),I.name==null&&(I.name=" "),I.media.forEach((function(L){L.payloads==null&&(L.payloads="")}));var u=C.outerOrder||r,R=C.innerOrder||n,M=[];return u.forEach((function(L){t[L].forEach((function(H){H.name in I&&I[H.name]!=null?M.push(g(L,H,I)):H.push in I&&I[H.push]!=null&&I[H.push].forEach((function(gA){M.push(g(L,H,gA))}))}))})),I.media.forEach((function(L){M.push(g("m",t.m[0],L)),R.forEach((function(H){t[H].forEach((function(gA){gA.name in L&&L[gA.name]!=null?M.push(g(H,gA,L)):gA.push in L&&L[gA.push]!=null&&L[gA.push].forEach((function(EA){M.push(g(H,gA,EA))}))}))}))})),M.join(`\r
|
||
`)+`\r
|
||
`}})),nB=iI((A=>{var e=SY(),t=ms();A.write=t,A.parse=e.parse,A.parseParams=e.parseParams,A.parseFmtpConfig=e.parseFmtpConfig,A.parsePayloads=e.parsePayloads,A.parseRemoteCandidates=e.parseRemoteCandidates,A.parseImageAttributes=e.parseImageAttributes,A.parseSimulcastStreamList=e.parseSimulcastStreamList})),GY=Mo(Ng()),tv=((Me=tv||{})[Me.INVALID_PARAMETER=4096]="INVALID_PARAMETER",Me[Me.INVALID_OPERATION=4097]="INVALID_OPERATION",Me[Me.NOT_SUPPORTED=4098]="NOT_SUPPORTED",Me[Me.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",Me[Me.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",Me[Me.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",Me[Me.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",Me[Me.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",Me[Me.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",Me[Me.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",Me[Me.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",Me[Me.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",Me[Me.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",Me[Me.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",Me[Me.CLIENT_BANNED=16448]="CLIENT_BANNED",Me[Me.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",Me[Me.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",Me[Me.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",Me[Me.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",Me[Me.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",Me[Me.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",Me[Me.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",Me[Me.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",Me[Me.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",Me[Me.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",Me[Me.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",Me[Me.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",Me[Me.API_CALL_ABORTED=16461]="API_CALL_ABORTED",Me[Me.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",Me[Me.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",Me[Me.SWITCH_ROOM_FAILED=16464]="SWITCH_ROOM_FAILED",Me[Me.VIDEO_ENCODE_FAILED=16465]="VIDEO_ENCODE_FAILED",Me[Me.AUDIO_ENCODE_FAILED=16466]="AUDIO_ENCODE_FAILED",Me[Me.UNKNOWN=65535]="UNKNOWN",Me),OA=tv,ES=class extends Error{constructor(A){let{name:e="RtcError",message:t,code:i=OA.UNKNOWN,extraCode:o=0,constraint:g}=A,r="<".concat((function(I){for(let C in OA)if(OA[C]===I)return C;return"UNKNOWN"})(i)," 0x").concat(i.toString(16),">"),n="".concat(t).concat(g?" constraint: ".concat(g):"").concat(t!=null&&t.includes(r)?"":" ".concat(r));super(n),l(this,"code"),l(this,"extraCode"),l(this,"message"),l(this,"originMessage"),l(this,"name"),l(this,"constraint"),this.code=i,this.extraCode=o,this.name=e,this.message=n,this.constraint=g,this.originMessage=t}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},oe=ES,Kp=0,iv=!0,fs=function(A){Kp=A;let e=new Date;e.setTime(e.getTime()+A),K[iv?"info":"debug"]("baseTime from server: ".concat(e," offset: ").concat(A)),iv=!1},BS=function(){return Kp},ml=function(){return Date.now()+Kp},CS=function(){let A=new Date;return A.setTime(ml()),A.toLocaleString()},QS=function(A){let e=String(A.getMilliseconds());return"padStart"in String.prototype&&(e=e.toString().padStart(3,"0")),"".concat(A.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1"),":").concat(e)},pn={};Dn(pn,{REPORT_TYPE:()=>tu,buildSSOPackage:()=>fn,bytes2ms:()=>TS,calculateScaleResolutionDownNumber:()=>eu,concatArrayBuffers:()=>Fs,convertObjectNumberToInt:()=>ey,copyProperties:()=>jp,deepClone:()=>PQ,deepCloneBasic:()=>iy,deepMerge:()=>mn,delay:()=>ra,fibonacci:()=>ks,formatedTime:()=>Nv,getConstructorName:()=>Xp,getContainerFromElement:()=>kv,getEnv:()=>dv,getFirst16Bits:()=>YS,getInternalVersion:()=>Gv,getLast16Bits:()=>VQ,getLoggerUrl:()=>uB,getMediaStreamTrackInfo:()=>Au,getMuteStateFromFlag:()=>dB,getNetworkType:()=>Wp,getNumNetworkType:()=>Pl,getReconnectionTimeout:()=>nI,getStringByteLength:()=>Ay,getTurnServer:()=>Mv,getUint32Version:()=>bS,getValueType:()=>ho,getViewListFromView:()=>Xl,glog:()=>_S,ipv4ToUint32:()=>jl,isArray:()=>lo,isAudioWorkletSupported:()=>fv,isBoolean:()=>fi,isConstructor:()=>Wl,isEmpty:()=>zp,isFunction:()=>Ni,isLangChinese:()=>II,isMediaStreamTrack:()=>Rv,isNumber:()=>Zt,isObject:()=>ka,isOverseaSdkAppId:()=>Rn,isPlainObject:()=>sg,isPortrait:()=>LS,isPromise:()=>Vl,isRemoteTrack:()=>mv,isRotate90Or270:()=>Ns,isSetSinkIdSupported:()=>wv,isString:()=>ai,isUndefined:()=>yA,loadImage:()=>zl,loadVideo:()=>Fv,ms2bytes:()=>yv,ms2samples:()=>qQ,normalizeUrl:()=>$l,performanceNow:()=>it,promiseAny:()=>Zl,samples2ms:()=>US,setNetworkTypeFromWebRTC:()=>Zp,stringify:()=>Na,stringifyIncludeValue:()=>$p,throttlePromise:()=>ty});var ws={};Dn(ws,{AUDIO_MUTE_BIT:()=>bQ,AUDIO_STAT_BIT:()=>BB,AUX_STAT_BIT:()=>Tl,AUX_STREAM_MSID:()=>dS,BACKEND_ENV:()=>yn,BASE_DOC_URL:()=>gI,BASE_HOST:()=>wl,CAPABILITIES_KEYS:()=>hB,CLASS_NAME:()=>KY,CLOUD_CONSOLE_URL:()=>kY,CROSS_ROOM_BIT:()=>CB,DATA_FREEZE_TIMING:()=>yS,DOC_BILLING_CN:()=>Op,DOC_BILLING_OVERSEA:()=>Sl,DOC_URL:()=>wr,DTLS_STATE_UNKNOWN:()=>Gs,ENV_NAME:()=>sB,EXCHANGE_SDP_TIMEOUT:()=>Cv,IS_WORKER:()=>fl,IS_WORKLET:()=>hS,KIBANA_EVENT:()=>ga,LOCAL_STREAM_PUBLISH_STATE:()=>Qv,LOGGER_CMD_TYPE:()=>Gl,LOGGER_DOMAIN:()=>LQ,LOGGER_DOMAIN_OVERSEA:()=>lS,LOG_LEVEL:()=>Ss,LOG_LEVEL_NAME:()=>hv,MAIN_STREAM_MSID:()=>Ul,MAX_RTT:()=>Kl,MICROPHONE_COMMUNICATIONS:()=>cv,MICROPHONE_DEFAULT:()=>bl,MUTE_ALL_BIT:()=>Iv,NAME:()=>V,NETWORK_TYPE:()=>EB,NOT_SUPPORTED_H264:()=>Pp,PAUSED_RETRY_COUNT:()=>JQ,PEERCONNECTION_CONNECTING_TIMEOUT:()=>RS,PEER_CONNECTION_STATE:()=>co,PEER_LEAVE_REASON:()=>mS,RECOVER_CAPTURE_INTERVAL:()=>xl,REMOTE_STREAM_TYPE_AUX:()=>ht,REMOTE_STREAM_TYPE_MAIN:()=>DS,RENDER_FREEZE_TIMING:()=>bY,SCHEDULE_DOMAIN:()=>Ms,SCHEDULE_TIMEOUT:()=>xY,SDP_SEMANTICS_PLAN_B:()=>Ll,SDP_SEMANTICS_UNIFIED_PLAN:()=>_l,SECOND_HOST:()=>Ma,SIGNAL_PING_PONG_INTERVAL:()=>qp,SIGNAL_PING_TIMEOUT:()=>NY,SIGNAL_RECONNECTION_COUNT:()=>_Y,SMALL_STAT_BIT:()=>vl,SPEAKER_DEFAULT:()=>Yl,STORAGE_EXPIRES_TIME:()=>av,STREAM_TYPE_BIG:()=>YY,STREAM_TYPE_SMALL:()=>JY,SUBSCRIBE_SMALL_RETRY_COUNT:()=>Jl,SYNC_USER_LIST_INTERVAL:()=>LY,Scene:()=>oa,THIRD_HOST:()=>gv,TRANSPORT_DIRECTION:()=>Wt,TRTC_ERROR_ASSISTANCE:()=>rv,TRTC_QUALITY_BAD:()=>TY,TRTC_QUALITY_DISCONNECTED:()=>UY,TRTC_QUALITY_EXCELLENT:()=>pS,TRTC_QUALITY_GOOD:()=>FY,TRTC_QUALITY_POOR:()=>vY,TRTC_QUALITY_UNKNOWN:()=>nv,TRTC_QUALITY_VERY_BAD:()=>QB,UPDATE_OFFER_TIMEOUT:()=>Bv,VIDEO_MUTE_BIT:()=>aI,VIDEO_STAT_BIT:()=>Fl,audioProfileMap:()=>uS,defaultBigVideoProfile:()=>Ml,defaultSmallVideoProfile:()=>kl,getRetryCount:()=>YQ,getScriptDir:()=>MY,innerVersion:()=>Hp,loggerProxy:()=>ng,screenProfileMap:()=>Nl,setLoggerProxy:()=>oI,setRetryCount:()=>Ev,setVersion:()=>ov,version:()=>ia,videoProfileMap:()=>rI});var Hp="4.15.00.1600",ia="5.0.0";function ov(A){ia=A;let[e,t,i]=A.split(".").map((o=>parseInt(o,10)));Hp="".concat(e,".").concat(Math.min(15,t),".").concat(Math.min(15,i),".").concat(t.toString().padStart(2,"0")).concat(i.toString().padStart(2,"0"))}var cS,fr,fl=typeof importScripts<"u",hS=typeof registerProcessor<"u",MY=()=>{let A=fl?self.location.href:document.currentScript.src;return A.substring(0,A.lastIndexOf("/")+1)},ng="",oI=A=>ng=A,wl="web.sdk.qcloud.com",Ma="web.sdk.tencent.cn",gv="web.sdk.cloud.tencent.cn",kY="https://console.cloud.tencent.com/trtc",gI="https://".concat(wl,"/trtc/webrtc/doc"),wr="".concat(gI,"/zh-cn/"),Op="https://cloud.tencent.com/document/product/647/85386",Sl="https://trtc.io/document/56025",LQ="https://yun.tim.qq.com",lS="https://apisgp.my-imcloud.com",rv="trtc_error_assistance",Gl={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},sB={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},Ss=((fr=Ss||{})[fr.TRACE=0]="TRACE",fr[fr.DEBUG=1]="DEBUG",fr[fr.INFO=2]="INFO",fr[fr.WARN=3]="WARN",fr[fr.ERROR=4]="ERROR",fr[fr.NONE=5]="NONE",fr),NY=18e3,qp=2e3,EB={unknown:0,wifi:1,"4g":2,"3g":3,"2g":4,wired:5,"5g":6},av=6048e5,uS={standard:{sampleRate:48e3,channelCount:1,bitrate:40},"standard-stereo":{sampleRate:48e3,channelCount:2,bitrate:64},high:{sampleRate:48e3,channelCount:1,bitrate:128},"high-stereo":{sampleRate:48e3,channelCount:2,bitrate:192}},rI={"120p":{width:160,height:120,frameRate:15,bitrate:200},"120p_2":{width:160,height:120,frameRate:15,bitrate:100},"180p":{width:320,height:180,frameRate:15,bitrate:350},"180p_2":{width:320,height:180,frameRate:15,bitrate:150},"240p":{width:320,height:240,frameRate:15,bitrate:400},"240p_2":{width:320,height:240,frameRate:15,bitrate:200},"360p":{width:640,height:360,frameRate:15,bitrate:800},"360p_2":{width:640,height:360,frameRate:15,bitrate:400},"480p":{width:640,height:480,frameRate:15,bitrate:900},"480p_2":{width:640,height:480,frameRate:15,bitrate:500},"720p":{width:1280,height:720,frameRate:15,bitrate:1500},"1080p":{width:1920,height:1080,frameRate:15,bitrate:2e3},"1440p":{width:2560,height:1440,frameRate:30,bitrate:4860},"4K":{width:3840,height:2160,frameRate:30,bitrate:9e3}},Ml=rI["480p_2"],kl=rI["120p_2"],Nl={"480p":{width:640,height:480,frameRate:5,bitrate:900},"480p_2":{width:640,height:480,frameRate:30,bitrate:1e3},"720p":{width:1280,height:720,frameRate:5,bitrate:1200},"720p_2":{width:1280,height:720,frameRate:30,bitrate:3e3},"1080p":{width:1920,height:1080,frameRate:5,bitrate:1600},"1080p_2":{width:1920,height:1080,frameRate:30,bitrate:4e3}},V={CANVAS:"canvas",AUDIO:"audio",VIDEO:"video",SCREEN:"screen",SMALL:"small",BIG:"big",AUXILIARY:"auxiliary",SMALL_VIDEO:"smallVideo",FACING_MODE_USER:"user",FACING_MODE_ENVIRONMENT:"environment",MUTE:"mute",UNMUTE:"unmute",ENDED:"ended",PLAYING:"playing",PAUSE:"pause",ERROR:"error",LOADSTART:"loadstart",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",AUDIO_INPUT:"audioinput",VIDEO_INPUT:"videoinput",DETAIL:"detail",TEXT:"text",MAIN:"main",BACKUP:"backup",BANNED:"banned",KICK:"kick",USER_TIME_OUT:"user_time_out",ROOM_DISBAND:"room_disband",SEI_MESSAGE:"sei-message",ADD:"add",REMOVE:"remove",REPLACE:"replace",TRACK:"track",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",TRANSCEIVER_DIRECTION_SENDONLY:"sendonly",TRANSCEIVER_DIRECTION_RECVONLY:"recvonly",ENTER_PICTURE_IN_PICTURE:"enterpictureinpicture",LEAVE_PICTURE_IN_PICTURE:"leavepictureinpicture",RESIZE:"resize",TIME_UPDATE:"timeupdate"},Wt={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},yn={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},oa=((cS=oa||{}).LIVE="live",cS.RTC="rtc",cS),Fl=1,vl=2,Tl=4,BB=8,bQ=64,aI=16,Iv=112,CB=128,Ul="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",dS="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",DS=V.MAIN,ht=V.AUXILIARY,nv=0,pS=1,FY=2,vY=3,TY=4,QB=5,UY=6,Gs="unknown",co={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},sv=1/0;function Ev(A){sv=A}function YQ(){return sv}var cB,_Y=30,ga={JOIN:"join",DELTA_JOIN:"delta-join",REJOIN:"rejoin",LEAVE:"leave",DELTA_LEAVE:"delta-leave",PUBLISH:"publish",DELTA_PUBLISH:"delta-publish",UNPUBLISH:"unpublish",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",UPLINK_CONNECTION:"uplink-connection",UPLINK_RECONNECTION:"uplink-reconnection",DOWNLINK_CONNECTION:"downlink-connection",DOWNLINK_RECONNECTION:"downlink-reconnection",ON_TRACK:"ontrack",ICE_CONNECTION_STATE:"iceConnectionState",LOCAL_STREAM_INITIALIZE:"stream-initialize",SIGNAL_CONNECTION:"websocketConnectionState",SIGNAL_RECONNECTION:"websocketReconnectionState",UPDATE_STREAM:"update-stream",RECOVER_LOCAL_AUDIO_TRACK:"recover-local-audio-track",RECOVER_LOCAL_VIDEO_TRACK:"recover-local-video-track",RECOVER_SUBSCRIPTION:"recover-subscription",START_MIX_TRANSCODE:"start-mix-transcode",STOP_MIX_TRANSCODE:"stop-mix-transcode",PLAYER_ERROR:"player-error",SCHEDULE:"schedule",LOAD_WORKLET:"load-worklet",VIDEO_FROZEN_COUNT:"videoFrozenCount",GET_USER_MEDIA_RETRY:"getUserMedia-retry",VIDEO_ENCODE_FAILED_DURING_CALL:"video-encode-failed-during-call",AUDIO_ENCODE_FAILED_DURING_CALL:"audio-encode-failed-during-call"},LY=1e4,Bv=1e4,Cv=1e4,_l="unified-plan",Ll="plan-b",Pp=1028,Qv=((cB=Qv||{})[cB.UNPUBLISH=-1]="UNPUBLISH",cB[cB.PUBLISHING=0]="PUBLISHING",cB[cB.PUBLISHED=1]="PUBLISHED",cB),yS=500,bY=1e3,YY=V.BIG,JY=V.SMALL,RS=1e4,Ms={MAIN:"schedule.cloud-rtc.com",BACKUP:"schedule.cloud-rtc.net",MAIN_OVERSEA:"schedule.rtc-web.com",BACKUP_OVERSEA:"schedule.rtc-web.io",MAIN_OVERSEA_BACKUP:"intl-schedule.cloud-rtc.com"},xY=2e3,KY={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},JQ=5,bl="default",Yl=bl,cv="communications",hv=Object.keys(Ss),mS=["normal leave","timeout leave","kick","role change"],Jl=10,xl=2e3,hB=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],Kl=1e4,lv=function(A,e,t,i){return new(t||(t=Promise))((function(o,g){function r(C){try{I(i.next(C))}catch(u){g(u)}}function n(C){try{I(i.throw(C))}catch(u){g(u)}}function I(C){C.done?o(C.value):(function(u){return u instanceof t?u:new t((function(R){R(u)}))})(C.value).then(r,n)}I((i=i.apply(A,[])).next())}))},fS=Symbol(32),lB=Symbol(16),wS=Symbol(8),xQ=class{constructor(A){this.g=A,this.consumed=0,A&&(this.need=A.next().value)}setG(A){this.g=A,this.demand(A.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(A,e){return e&&this.consume(),this.need=A,this.flush()}read(A){return lv(this,void 0,void 0,(function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise(((e,t)=>{var i;this.reject=t,this.resolve=o=>{delete this.lastReadPromise,delete this.resolve,delete this.need,e(o)},this.demand(A,!0)||(i=this.pull)===null||i===void 0||i.call(this,A)}))}))}readU32(){return this.read(fS)}readU16(){return this.read(lB)}readU8(){return this.read(wS)}close(){var A;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(A=this.reject)===null||A===void 0||A.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let A=null,e=this.buffer.subarray(this.consumed),t=0,i=o=>e.length<(t=o);if(typeof this.need=="number"){if(i(this.need))return;A=e.subarray(0,t)}else if(this.need===fS){if(i(4))return;A=e[0]<<24|e[1]<<16|e[2]<<8|e[3]}else if(this.need===lB){if(i(2))return;A=e[0]<<8|e[1]}else if(this.need===wS){if(i(1))return;A=e[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(i(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(e.subarray(0,t)),A=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(i(this.need.byteLength))return;new Uint8Array(this.need).set(e.subarray(0,t)),A=this.need}return this.consumed+=t,this.g?this.demand(this.g.next(A).value,!0):this.resolve&&this.resolve(A),A}write(A){if(A instanceof Uint8Array?this.malloc(A.length).set(A):"buffer"in A?this.malloc(A.byteLength).set(new Uint8Array(A.buffer,A.byteOffset,A.byteLength)):this.malloc(A.byteLength).set(new Uint8Array(A)),!this.g&&!this.resolve)return new Promise((e=>this.pull=e));this.flush()}writeU32(A){this.malloc(4).set([A>>24&255,A>>16&255,A>>8&255,255&A]),this.flush()}writeU16(A){this.malloc(2).set([A>>8&255,255&A]),this.flush()}writeU8(A){this.malloc(1)[0]=A,this.flush()}malloc(A){if(this.buffer){let e=this.buffer.length,t=e+A;if(t<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,t);else{let i=new Uint8Array(t);i.set(this.buffer),this.buffer=i}return this.buffer.subarray(e,t)}return this.buffer=new Uint8Array(A),this.buffer}};xQ.U32=fS,xQ.U16=lB,xQ.U8=wS;var uv=128;function Hl(A){let e=new xQ;for(;A>=128;)e.malloc(1)[0]=255&A|uv,A>>>=7;return e.malloc(1)[0]=255&A,e.buffer||new Uint8Array(0)}function SS(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=new xQ,i=e<<3;switch(typeof A){case"boolean":let o=t.malloc(2);o[0]=i,o[1]=A?1:0;break;case"number":t.malloc(1)[0]=i,t.write(Hl(A));break;case"string":t.malloc(1)[0]=2|i;let g=new TextEncoder().encode(A);t.write(Hl(g.length));let r=t.malloc(g.length);for(let I=0;I<g.length;I++)r[I]=g[I];break;case"object":let n=new xQ;if(Array.isArray(A))for(let I=0;I<A.length;I++){let C=SS(A[I],I+1);C&&n.write(C)}else{let I=1;for(let C in A){let u=SS(A[C],I++);u&&n.write(u)}}e===0?n.buffer&&t.write(n.buffer):(t.malloc(1)[0]=2|i,n.buffer&&(t.write(Hl(n.buffer.length)),t.write(n.buffer)))}return t.buffer||new Uint8Array(0)}var GS=class{constructor(){l(this,"buffer"),this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(A){this.buffer.push(A>>>24&255),this.buffer.push(A>>>16&255),this.buffer.push(A>>>8&255),this.buffer.push(255&A)}writeInt16(A){this.buffer.push(A>>>8&255),this.buffer.push(255&A)}writeByte(A){this.buffer.push(255&A)}writeBytes(A){for(let e=0;e<A.length;e++)this.buffer.push(A[e])}};function KQ(A,e,t){A[t]=e>>>24&255,A[t+1]=e>>>16&255,A[t+2]=e>>>8&255,A[t+3]=255&e}function zg(A,e){return A[e]<<24|A[e+1]<<16|A[e+2]<<8|A[e+3]}function Vp(A,e){return A[e]}function Ol(A,e,t){return new TextDecoder().decode((function(i,o,g){return i.slice(o,o+g)})(A,e,t))}var MS=0,kS=2654435769,HQ=16,ql=2,OQ=7;function HY(A,e){let t=new GS,i=(function(hA,ZA,BA){let xA=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"AVQualityReportSvc.C2S";return{version:arguments.length>4&&arguments[4]!==void 0?arguments[4]:2e3,encryption:arguments.length>5&&arguments[5]!==void 0?arguments[5]:2,d2:"",d2Len:0,uinType:arguments.length>6&&arguments[6]!==void 0?arguments[6]:30,uin:"",uinLen:0,reqHead:{seqNumber:BA,appId:hA,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:xA,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:ZA}})(e,A,MS);MS=MS+1&2147483647,t.writeInt32(0),t.writeInt32(i.version),t.writeByte(i.encryption);let o=new TextEncoder().encode(i.d2);t.writeInt32(o.length+4),o&&t.writeBytes(o),t.writeByte(i.uinType);let g=new TextEncoder().encode(i.uin);t.writeInt32(g.length+4),g.length&&t.writeBytes(g);let r=new GS;r.writeInt32(0),r.writeInt32(i.reqHead.seqNumber),r.writeInt32(i.reqHead.appId),r.writeByte(i.reqHead.appId>>>24&255),r.writeByte(i.reqHead.appId>>>16&255),r.writeByte(i.reqHead.appId>>>8&255),r.writeByte(255&i.reqHead.appId);for(let hA=4;hA<16;hA++)r.writeByte(0);let n=new TextEncoder().encode(i.reqHead.a2);r.writeInt32(n.length+4),n.length&&r.writeBytes(n);let I=new TextEncoder().encode(i.reqHead.serviceCmd);r.writeInt32(I.length+4),I.length&&r.writeBytes(I);let C=new TextEncoder().encode(i.reqHead.cookie);r.writeInt32(C.length+4),C.length&&r.writeBytes(C);let u=new TextEncoder().encode(i.reqHead.imei);r.writeInt32(u.length+4),u.length&&r.writeBytes(u);let R=new TextEncoder().encode(i.reqHead.ksid);r.writeInt32(R.length+4),R.length&&r.writeBytes(R);let M=new TextEncoder().encode(i.reqHead.clientVersionInfo);r.writeInt16(M.length+2),M.length&&r.writeBytes(M);let L=r.length;r.data[0]=L>>>24&255,r.data[1]=L>>>16&255,r.data[2]=L>>>8&255,r.data[3]=255&L,ai(A)&&(A=new TextEncoder().encode(A)),r.writeInt32(A.length+4),A.length&&r.writeBytes(A);let H=new Uint8Array(r.data),gA=null;i.encryption===1?gA=new TextEncoder().encode(i.uin):i.encryption===2&&(gA=new Uint8Array(16)),gA&&(H=(function(hA,ZA){let BA=hA.length,xA=(BA+1+ql+OQ)%8;xA&&(xA=8-xA);let ie=BA+1+ql+OQ+xA,ge=new Uint8Array(ie),qe=0,ct=new Uint8Array(8),Pe=new Uint8Array(8),Ji=new Uint8Array(8),mt=0;ct[0]=248&Math.floor(256*Math.random())|xA,mt=1;for(let To=0;To<xA;To++)ct[mt]=255&Math.floor(256*Math.random()),mt+=1;for(let To=0;To<ql;)if(mt<8&&(ct[mt]=255&Math.floor(256*Math.random()),mt+=1,To+=1),mt===8){NS(ct,ZA,Pe,Ji,ge,qe),qe+=8,mt=0;for(let xi=0;xi<8;xi++)Ji[xi]=ge[qe-8+xi]}let Mi=0;for(;Mi<BA;)if(mt<8&&(ct[mt]=hA[Mi],mt+=1,Mi+=1),mt===8){NS(ct,ZA,Pe,Ji,ge,qe),qe+=8,mt=0;for(let To=0;To<8;To++)Ji[To]=ge[qe-8+To]}for(let To=0;To<OQ;)if(mt<8&&(ct[mt]=0,mt+=1,To+=1),mt===8){NS(ct,ZA,Pe,Ji,ge,qe),qe+=8,mt=0;for(let xi=0;xi<8;xi++)Ji[xi]=ge[qe-8+xi]}return ge})(H,gA)),t.writeBytes(H);let EA=new Uint8Array(t.data),TA=EA.length;return EA[0]=TA>>>24&255,EA[1]=TA>>>16&255,EA[2]=TA>>>8&255,EA[3]=255&TA,EA}function NS(A,e,t,i,o,g){for(let r=0;r<8;r++)A[r]^=i[r];(function(r,n,I,C){let u=zg(r,0),R=zg(r,4),M=[];for(let H=0;H<4;H++)M[H]=zg(n,4*H);let L=0;for(let H=0;H<HQ;H++)L+=kS,L>>>=0,u+=(R<<4)+M[0]^R+L^(R>>>5)+M[1],u>>>=0,R+=(u<<4)+M[2]^u+L^(u>>>5)+M[3],R>>>=0;KQ(I,u,C),KQ(I,R,C+4)})(A,e,o,g);for(let r=0;r<8;r++)o[g+r]^=t[r];for(let r=0;r<8;r++)t[r]=A[r]}var dv=function(){return new URLSearchParams(location.search).get("trtc_env")||""},Rn=A=>Number(A)<14e8,uB=function(A,e){let t;t=ng||(Rn(A)?lS:LQ);let i=Math.floor(Math.random()*Rl(2,31));return"".concat(t,"/v5/AVQualityReportSvc/C2S?random=").concat(i,"&sdkappid=").concat(A,"&cmdtype=").concat(e)},FS="unknown";function Wp(){(function(){var g;Dv||(Dv=!0,(g=navigator.connection)==null||g.addEventListener("typechange",vS))})();let{userAgent:A,connection:e}=navigator,t=(A.match(/NetType\/\S+/)||[])[0]||"";t=t.toLowerCase().replace("nettype/",""),t==="3gnet"&&(t="3g");let i=e&&e.type&&e.type.toLowerCase(),o=e&&e.effectiveType&&e.effectiveType.toLowerCase();return o==="slow-2"&&(o="2g"),i?pv(i,o):FS}function vS(){K.warn("netType changed",Wp())}var Dv=!1;function pv(A,e){if(EB[A])return A;switch(A){case"cellular":case"wimax":return e||"unknown";case"ethernet":return"wired";default:return"unknown"}}function Zp(A){FS=pv(A)}function Pl(){return EB[Wp()]}function jp(A,e){for(let t of Reflect.ownKeys(e))if(t!=="constructor"&&t!=="prototype"&&t!=="name"){let i=Object.getOwnPropertyDescriptor(e,t)||"";Object.defineProperty(A,t,i)}return A}function TS(A){return US(A/4,arguments.length>1&&arguments[1]!==void 0?arguments[1]:48e3)}function US(A){return 1e3*A/(arguments.length>1&&arguments[1]!==void 0?arguments[1]:48e3)}function yv(A){return 4*qQ(A,arguments.length>1&&arguments[1]!==void 0?arguments[1]:48e3)}function qQ(A){return A*(arguments.length>1&&arguments[1]!==void 0?arguments[1]:48e3)/1e3}var _S=typeof window<"u"&&typeof window.glog=="function"?window.glog:()=>{},II=()=>{let A=navigator.language;return A=A.substring(0,2),A==="zh"},sg=function(A){if(!A||typeof A!="object"||Object.prototype.toString.call(A)!="[object Object]")return!1;let e=Object.getPrototypeOf(A);if(e===null)return!0;let t=Object.prototype.hasOwnProperty.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&Function.prototype.toString.call(t)===Function.prototype.toString.call(Object)};function ks(A){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;return A<=1?e:ks(A-1,e,(arguments.length>1&&arguments[1]!==void 0?arguments[1]:1)+e)}function nI(A){return A>8?3e4:1e3*ks(A)}function ho(A){return Reflect.apply(Object.prototype.toString,A,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var Ni=A=>typeof A=="function",yA=A=>A===void 0,ai=A=>typeof A=="string",Zt=A=>typeof A=="number",fi=A=>typeof A=="boolean",ka=A=>ho(A)==="object",lo=A=>ho(A)==="array",Rv=A=>ho(A)==="MediaStreamTrack".toLowerCase(),mv=A=>A.isRemote,Vl=A=>ho(A)==="promise",Wl=A=>Ni(A)&&A.prototype.constructor===A,Xp=A=>Wl(A)?A.prototype.constructor.name:"",fv=typeof AudioWorkletNode<"u",wv=typeof HTMLMediaElement<"u"&&"setSinkId"in HTMLMediaElement.prototype;function Zl(A){return new Promise(((e,t)=>{let i=[];A.forEach((o=>{o.then(e).catch((g=>{i.push(g),i.length===A.length&&t(i)}))}))}))}function it(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var Sv=A=>+A<10?"0".concat(A):A,Gv=A=>{let e=A.match(/^\d+\.\d+\.\d+/)[0];if(!e)return A;let t=e.split("."),i=Sv(t[1])+Sv(t[2]);return t[1]-15>0&&(t[1]="15"),t[2]-15>0&&(t[2]="15"),"".concat(t.join("."),".").concat(i)},OY=Object.prototype.hasOwnProperty;function zp(A){if(A==null)return!0;if(typeof A=="boolean")return!1;if(typeof A=="number")return A===0;if(typeof A=="string"||typeof A=="function"||Array.isArray(A))return A.length===0;if(A instanceof Error)return A.message==="";if(sg(A))switch(Object.prototype.toString.call(A)){case"[object File]":case"[object Map]":case"[object Set]":return A.size===0;case"[object Object]":for(let e in A)if(OY.call(A,e))return!1;return!0}return!1}function dB(A,e){return{userId:e,hasAudio:!!(A&BB),hasVideo:!!(A&Fl),hasAuxiliary:!!(A&Tl),hasSmall:!!(A&vl),audioMuted:!!(A&bQ),videoMuted:!!(A&aI),audioAvailable:!(!(A&BB)||A&bQ),videoAvailable:!(!(A&Fl)||A&aI)}}function Mv(A){let e={urls:A.url.startsWith("turn:")||A.url.startsWith("turns:")?A.url:"turn:".concat(A.url)};return!yA(A.username)&&!yA(A.credential)&&(e.username=A.username,e.credential=A.credential,e.credentialType="password",yA(A.credentialType)||(e.credentialType=A.credentialType)),e}function jl(A){let e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(!ai(A))return 0;let t=A.split(".");return e?(Number(t[0])<<24|Number(t[1])<<16|Number(t[2])<<8|Number(t[3]))>>>0:(Number(t[3])<<24|Number(t[2])<<16|Number(t[1])<<8|Number(t[0]))>>>0}var mn=function(A,e,t,i){if(!ka(A)||!ka(e))return 0;let o,g=0,r=Object.keys(e);for(let n=0,I=r.length;n<I;n++)if(o=r[n],!(yA(e[o])||t&&t.includes(o)))if(ka(A[o])&&ka(e[o]))g+=mn(A[o],e[o],t,i);else{if(i&&i.includes(e[o]))continue;A[o]!==e[o]&&(A[o]=PQ(e[o]),g+=1)}return g};function PQ(A){if(lo(A)){let e=[];return A.forEach(((t,i)=>{e[i]=PQ(t)})),e}if(ka(A)){let e={};return Object.keys(A).forEach((t=>{e[t]=PQ(A[t])})),e}return A}var Xl=A=>{let e=[];if(lo(A))e=[...A];else if(ai(A)){let t=document.getElementById(A);t&&e.push(t)}else A&&e.push(A);return e},kv=A=>ai(A)?document.getElementById(A):A,Nv=()=>(A=>{let e=I=>I<10?"0".concat(I):"".concat(I),t=A.getFullYear(),i=A.getMonth()+1,o=A.getDate(),g=e(A.getHours()),r=e(A.getMinutes()),n=e(A.getSeconds());return"".concat(t,"/").concat(i,"/").concat(o," ").concat(g,":").concat(r,":").concat(n)})(new Date);function Na(A,e){let{keysToInclude:t,keysToExclude:i}=e;try{if(lo(A))return"[".concat(A.map((n=>Na(n,{keysToInclude:t,keysToExclude:i}))).join(","),"]");if(!sg(A)||!lo(t)&&!lo(i))return JSON.stringify(A);let o={},g=new Set(t),r=new Set(i);return Object.keys(A).forEach((n=>{(r.size===0&&g.has(n)||g.size===0&&!r.has(n))&&(o[n]=sg(A[n])||lo(A[n])?JSON.parse(Na(A[n],{keysToExclude:i,keysToInclude:t})):A[n])})),JSON.stringify(o)}catch{return"{}"}}function $p(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1],t=[];return Object.keys(A).forEach((i=>{e===A[i]&&t.push(i)})),Na(A,{keysToInclude:t})}function Ay(A){return A.replace(/[\u4e00-\u9fa5]/g,"aa").length}var LS=()=>{var A,e,t,i;return(A=window.screen)!=null&&A.orientation?!((i=(t=(e=window.screen)==null?void 0:e.orientation)==null?void 0:t.type)==null||!i.includes("portrait")):window.orientation===0||window.orientation===180},zl=A=>X(void 0,null,(function*(){return new Promise(((e,t)=>{let i;if(ai(A))i=new Image,i.crossOrigin="anonymous",i.src=A;else if(i=A,i.complete)return void e(i);i.onload=()=>e(i),i.onerror=()=>{t(new oe({code:OA.INVALID_PARAMETER,message:"load image failed, url: ".concat(A)}))}}))})),bS=A=>{let e=A.split(".");return+e[0]<<24|+e[1]<<16|+e[2]<<8|+e[3]},ey=A=>(Object.keys(A).forEach((e=>{Zt(A[e])&&(e.startsWith("uint")||e.startsWith("int"))?A[e]=Math.floor(A[e]):(sg(A[e])||lo(A[e]))&&ey(A[e])})),A);function ra(A,e){return new Promise((t=>{let i=setTimeout(t,A);e&&e(i)}))}function ty(A,e){let t=null;return function(){for(var i=arguments.length,o=new Array(i),g=0;g<i;g++)o[g]=arguments[g];return t||(t=A.apply(e||this,o),t.finally((()=>t=null)),t)}}function $l(A){return A.replace(/(^|[^:])\/{2,}/g,"$1/")}function Au(A){var e;try{let{width:t,height:i,frameRate:o,sampleRate:g,sampleSize:r,channelCount:n}=(e=A.getSettings)==null?void 0:e.call(A),I=A.kind===V.AUDIO?"".concat(g,"x").concat(r,"@").concat(n):"".concat(t,"x").concat(i,"@").concat(o),C=A.stats?" stats: ".concat(JSON.stringify(A.stats).replaceAll('"',"")):"";return"".concat(A.id," ").concat(A.readyState," muted:").concat(A.muted," ").concat(A.kind," ").concat(A.label," ").concat(I).concat(C)}catch{return""}}function eu(A,e){return A.width*A.height==e.width*e.height?1:LS()&&e.width>e.height&&A.height>e.width?Math.max(A.width/e.height,A.height/e.width,1):Math.max(A.width/e.width,A.height/e.height,1)}function Ns(A){return A===90||A===270}function Fv(A){return X(this,null,(function*(){return new Promise(((e,t)=>{let i=document.createElement("video");i.crossOrigin="anonymous",i.src=A,i.muted=!0,i.loop=!0,i.playsInline=!0,i.play().then((()=>e(i))),i.onerror=()=>{t(i.error)}}))}))}function iy(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new WeakMap;if(typeof A!="object"||A===null)return A;if(e.has(A))return e.get(A);if(Array.isArray(A)){let t=[];return e.set(A,t),A.forEach(((i,o)=>{t[o]=iy(i,e)})),t}if(Object.prototype.toString.call(A)==="[object Object]"){let t={};return e.set(A,t),Reflect.ownKeys(A).forEach((i=>{t[i]=iy(A[i],e)})),t}return A}var tu=(A=>(A[A.END_REPORT=2001]="END_REPORT",A[A.LOG=2002]="LOG",A[A.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",A))(tu||{});function fn(A,e,t,i){try{let o=(function(g,r,n,I){let C={data:g,random:Math.floor(2147483648*Math.random()),sdkAppId:n};return yA(I)||(C=tt(le({},C),{gzip:+I})),{uint32_sdkappid:0,uint64_from_uin:0,uint32_timestamp:0,uint32_seq:0,msg_common_info:{msg_device_info:{enum_device_type:0,str_device_brand:"",str_device_model:"",str_device_board:"",str_device_cpu_abi:""},msg_system_info:{enum_os_type:0,str_os_version:"",msg_network_info:0},msg_network_info:{enum_network_type:0}},msg_report_content:{uint32_type:r,bytes_report_data:JSON.stringify(C)}}})(A,e,t,i);return HY(SS(o),t)}catch{return JSON.stringify(A)}}function Fs(A,e){let t=new Uint8Array(A.byteLength+e.byteLength);return t.set(new Uint8Array(A),0),t.set(new Uint8Array(e),A.byteLength),t.buffer}function VQ(A){return(65535&A)>>>0}function YS(A){return(4294901760&A)>>>0}function vv(A){let e=(function(t){try{let i={},o=0;i.totalLength=zg(t,o),o+=4,i.version=zg(t,o),o+=4,i.encryption=Vp(t,o),o+=1,i.uinType=Vp(t,o),o+=1,i.uinLength=zg(t,o),o+=4,i.uin=i.uinLength>4?Ol(t,o,i.uinLength-4):"",o+=i.uinLength-4;let g=t.slice(o);return i.encryption===2?(t=(function(r,n){let I=0,C=new Uint8Array(8).fill(0),u=new Uint8Array(r.slice(0,8)),R=Tv(u,n),M=7&R[0],L=r.length-1-M-ql-OQ,H=new Uint8Array(L),gA=0,EA=C,TA=r.slice(0,8);I=8;let hA=1;hA+=M;for(let BA=1;BA<=ql;)if(hA<8)hA++,BA++;else if(hA===8){let xA=JS(r,I,EA,TA,R,n);EA=xA.ivPreCrypt,TA=xA.ivCurCrypt,R=xA.debiBuf,I=xA.bufPos,hA=0}let ZA=L;for(;ZA>0;)if(hA<8)H[gA++]=R[hA]^EA[hA],hA++,ZA--;else if(hA===8){let BA=JS(r,I,EA,TA,R,n);EA=BA.ivPreCrypt,TA=BA.ivCurCrypt,R=BA.debiBuf,I=BA.bufPos,hA=0}for(let BA=1;BA<=OQ;)if(hA<8)R[hA],EA[hA],hA++,BA++;else if(hA===8){if(I>=r.length)break;let xA=JS(r,I,EA,TA,R,n);if(!xA.success)break;EA=xA.ivPreCrypt,TA=xA.ivCurCrypt,R=xA.debiBuf,I=xA.bufPos,hA=0}return H})(g,new Uint8Array(16).fill(0)),i.decrypted=!0,o=0):(t=g,o=0),i.rspHeadLength=zg(t,o),o+=4,i.seqNo=zg(t,o),o+=4,i.retCode=zg(t,o),o+=4,i.retStrLength=zg(t,o),o+=4,i.retStr=i.retStrLength?Ol(t,o,i.retStrLength-4):"",o+=i.retStrLength-4,i.serviceCmdLength=zg(t,o),o+=4,i.serviceCmd=i.serviceCmdLength?Ol(t,o,i.serviceCmdLength-4):"",o+=i.serviceCmdLength-4,i.cookieLength=zg(t,o),o+=4,i.cookie=i.cookieLength?Ol(t,o,i.cookieLength-4):"",o+=i.cookieLength-4,i.flag=zg(t,o),o+=4,i.busiBuffLength=zg(t,o),o+=4,i.busiBuff=i.busiBuffLength?Ol(t,o,i.busiBuffLength-4):"",o+=i.busiBuffLength-4,i}catch{}})(A);return e==null?void 0:e.busiBuff}function Tv(A,e){let t=A[0]<<24|A[1]<<16|A[2]<<8|A[3],i=A[4]<<24|A[5]<<16|A[6]<<8|A[7];t>>>=0,i>>>=0;let o=kS*HQ>>>0;for(let g=0;g<HQ;g++)i-=(t<<4)+e[2]^t+o^(t>>>5)+e[3],i>>>=0,t-=(i<<4)+e[0]^i+o^(i>>>5)+e[1],t>>>=0,o-=kS,o>>>=0;return new Uint8Array([t>>>24&255,t>>>16&255,t>>>8&255,255&t,i>>>24&255,i>>>16&255,i>>>8&255,255&i])}function JS(A,e,t,i,o,g){if(e+8>A.length)return{success:!1};let r=new Uint8Array(i),n=A.slice(e,e+8),I=new Uint8Array(8);for(let C=0;C<8;C++)I[C]=o[C]^n[C];return{success:!0,ivPreCrypt:r,ivCurCrypt:n,debiBuf:Tv(I,g),bufPos:e+8}}var Uv=typeof TextDecoder<"u"?new TextDecoder:void 0;function iu(A){let{url:e,body:t,method:i="POST",timeout:o,priority:g}=A;return new Promise(((r,n)=>{if("fetch"in window)return fetch(e,{method:i,body:t,priority:g}).then((C=>C.clone().json().then((u=>({data:u})),(()=>C.arrayBuffer().then((u=>({data:vv(new Uint8Array(u))||(Uv?Uv.decode(u):u)}))))))).then(r,n);let I=new XMLHttpRequest;I.onreadystatechange=()=>{if(I.readyState===4)if(I.status>=200&&I.status<300)try{let C=JSON.parse(I.response);r({data:C})}catch{r({data:I.response})}else n({status:I.status,statusText:I.statusText||"request failed!"})},I.timeout=o||5e3,I.open(i,e,!0),I.send(t)}))}function _v(A){return X(this,null,(function*(){let e=it(),t=JSON.stringify(A);try{if(!CompressionStream||t.length<=2800)return t;let i=new Blob([t],{type:"application/json"}).stream().pipeThrough(new CompressionStream("gzip")),o=yield(yield(yield new Response(i)).blob()).arrayBuffer();return K.debug("compressJSON ".concat(t.length," -> ").concat(o.byteLength," ").concat(it()-e,"ms")),o}catch{return t}}))}var qY=Object.prototype.hasOwnProperty,DB=A=>typeof A=="function",aa=A=>A===void 0,Lv=A=>typeof A=="boolean",bv=A=>A.isRemote,Yv=function(A){if(!A||typeof A!="object"||Object.prototype.toString.call(A)!="[object Object]")return!1;let e=Object.getPrototypeOf(A);if(e===null)return!0;let t=Object.prototype.hasOwnProperty.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&Function.prototype.toString.call(t)===Function.prototype.toString.call(Object)},ou=function(A){let{retryFunction:e,settings:t,onError:i,onRetrying:o,onRetryFailed:g,onRetrySuccess:r,context:n}=A;return function(){for(var I=arguments.length,C=new Array(I),u=0;u<I;u++)C[u]=arguments[u];let{retries:R=5,timeout:M=1e3}=t,L=0,H=-1,gA=0,EA=(TA,hA)=>X(this,null,(function*(){let ZA=n||this;try{let BA=yield e.apply(ZA,C);L>0&&r&&r.call(this,L),L=0,TA(BA)}catch(BA){let xA=()=>{clearTimeout(H),L=0,gA=2,hA(BA)},ie=()=>{gA!==2&&L<(DB(R)?R():R)?(L++,gA=1,DB(o)&&o.call(this,L,xA),H=window.setTimeout((()=>{H=-1,EA(TA,hA)}),DB(M)?M(L):M)):(xA(),DB(g)&&g.call(this,BA))};DB(i)?i.call(this,{error:BA,retry:ie,reject:hA,retryFuncArgs:C,retriedCount:L}):ie()}}));return new Promise(EA)}},xS=class GK{constructor(e){l(this,"_parentPath"),l(this,"userId"),l(this,"remoteUserId"),l(this,"id"),l(this,"sdkAppId"),l(this,"type"),l(this,"isLocal"),this.id=e.id,this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.remoteUserId=e.remoteUserId,this.isLocal=!Lv(e.isLocal)||e.isLocal,this.type=this.isLocal?"":e.type}getFullId(){return this._parentPath&&this.id?"".concat(this._parentPath,"-").concat(this.id):this._parentPath?this._parentPath:this.id}createChild(e){let t=new GK({id:e.id,userId:aa(e.userId)?this.userId:e.userId,sdkAppId:aa(e.sdkAppId)?this.sdkAppId:e.sdkAppId,type:aa(e.type)?this.type:e.type,isLocal:aa(e.isLocal)?this.isLocal:e.isLocal,remoteUserId:aa(e.remoteUserId)?this.remoteUserId:e.remoteUserId});return t.bindParent(this),t}bindParent(e){let t=e.getFullId();this._parentPath!==t&&(this.debug("bind logger parent: ".concat(e.id)),this._parentPath=t,this.userId=e.userId||this.userId,this.sdkAppId=e.sdkAppId||this.sdkAppId)}setUserId(e){this.userId=e}setSdkAppId(e){this.sdkAppId=e}log(e,t){let i=this.isLocal?this.userId:this.remoteUserId,o=this.getFullId();t.unshift("[".concat(this.isLocal?"↑":"↓").concat(this.type&&this.type!=="main"?"*":"").concat(o).concat(i?"|".concat(i):"","]")),K.log(e,t,aa(this.userId)||(function(g){if(g==null)return!0;if(typeof g=="boolean")return!1;if(typeof g=="number")return g===0;if(typeof g=="string"||typeof g=="function"||Array.isArray(g))return g.length===0;if(g instanceof Error)return g.message==="";if(Yv(g))switch(Object.prototype.toString.call(g)){case"[object File]":case"[object Map]":case"[object Set]":return g.size===0;case"[object Object]":for(let r in g)if(qY.call(g,r))return!1;return!0}return!1})(this.userId),this.userId,this.sdkAppId)}info(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(2,t)}debug(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(1,t)}warn(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(3,t)}error(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(4,t)}},KS={};Dn(KS,{ANDROID_VERSION:()=>gy,CHROME_MAJOR_VERSION:()=>Gr,CHROME_VERSION:()=>AG,EDGE_VERSION:()=>ry,EDG_MAJOR_VERSION:()=>ay,EDG_VERSION:()=>qS,ELECTRON_MAJOR_VERSION:()=>my,FIREFOX_MAJOR_VERSION:()=>jQ,FIREFOX_VERSION:()=>OS,HUAWEI_VERSION:()=>ly,IE_VERSION:()=>Hv,IOS_MAIN_VERSION:()=>va,IOS_VERSION:()=>Fa,IPADQQB_VERSION:()=>Cy,IS_ANDROID:()=>Oi,IS_ANDROID_WEBVIEW:()=>jY,IS_ANY_SAFARI:()=>fB,IS_CHROME:()=>Ry,IS_CHROME_OS:()=>mB,IS_CHROMIUM_BASE:()=>Fg,IS_DESKTOP_IOS_CHROME:()=>iG,IS_EDG:()=>gu,IS_EDGE:()=>yB,IS_ELECTRON:()=>qv,IS_FIREFOX:()=>ei,IS_HEADLESS_CHROME:()=>Eu,IS_HONOR:()=>Pv,IS_HUAWEI:()=>$S,IS_HUAWEIBROWSER:()=>hy,IS_IE:()=>Kv,IS_IE8:()=>jS,IS_IOS:()=>uo,IS_IOS_13_OR_14:()=>Wv,IS_IOS_15_1:()=>tG,IS_IOS_CHROME:()=>su,IS_IPAD:()=>WQ,IS_IPADQQB:()=>By,IS_IPAD_PRO:()=>HS,IS_IPHONE:()=>pB,IS_IPOD:()=>xv,IS_LINUX:()=>Iu,IS_LOCAL:()=>_s,IS_MAC:()=>Ts,IS_MACQQB:()=>sy,IS_MIBROWSER:()=>Qy,IS_MQQB:()=>ru,IS_NATIVE_ANDROID:()=>WY,IS_OLD_ANDROID:()=>VY,IS_OPENHARMONY:()=>nu,IS_OPPOBROWSER:()=>Us,IS_SAFARI:()=>ko,IS_SAFARI_15_1:()=>XY,IS_SAMSUNGBROWSER:()=>ec,IS_SOGOU:()=>ny,IS_SOGOUM:()=>Iy,IS_TBS:()=>sI,IS_UCBROWSER:()=>Ov,IS_VIVOBROWSER:()=>Dy,IS_WECHAT:()=>XQ,IS_WIN:()=>RB,IS_WQQB:()=>$Q,IS_WX:()=>Ac,IS_X5MQQB:()=>zQ,IS_XWEB:()=>vs,MACQQB_VERSION:()=>Ey,MI_VERSION:()=>cy,MQQB_VERSION:()=>au,OPENHARMONY_VERSION:()=>ZY,OPPO_VERSION:()=>dy,SAFARI_VERSION:()=>wB,SAMSUNG_VERSION:()=>uy,SOGOUM_VERSION:()=>PS,SOGOU_VERSION:()=>VS,TBS_VERSION:()=>WS,UA_DATA_STRING:()=>Ta,USER_AGENT:()=>Sr,VIVO_VERSION:()=>py,WECHAT_VERSION:()=>XS,WQQB_VERSION:()=>zS,XWEB_VERSION:()=>ZS,browserInfo:()=>wn,getBrowserCoreNumber:()=>a,getBrowserInfo:()=>oG,getChromeMajorVersion:()=>yy,getDeviceModel:()=>No,getDeviceModelFromUA:()=>tc,getGPUInfo:()=>Cu,getOSName:()=>rG,getOSNumber:()=>Ut,getOSString:()=>s,getOSType:()=>S,getTerminalType:()=>d,getUserAgentData:()=>Bu,isAMDGPU:()=>Zv,isLocalStorageEnabled:()=>SB,isMobile:()=>fy,isNvidiaGPU:()=>zY,isRealIOS:()=>ZQ,isVersionLargerThan:()=>Vv,isVersionSmallerThan:()=>eG});var Sr=typeof navigator>"u"?"":navigator.userAgent,dt=A=>new RegExp(A,"i").test(Sr),zi=A=>{if(dt(A)){let e=new RegExp("".concat(A,"\\/([\\d.]+)")),t=Sr.match(e);if(t&&t[1])return t[1]}return""},oy=A=>{if(dt(A)){let e=new RegExp("".concat(A,"\\/(\\d+)")),t=Sr.match(e);if(t&&t[1])return parseFloat(t[1])}return NaN},Jv=/AppleWebKit\/([\d.]+)/i.exec(Sr),PY=Jv?parseFloat(Jv[1]):NaN,WQ=dt("iPad"),HS=typeof navigator<"u"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&dt("Macintosh"),pB=dt("iPhone")&&!WQ,xv=dt("iPod"),uo=pB||WQ||xv||HS,ZQ=()=>{try{return uo&&navigator.maxTouchPoints>1&&navigator.vendor.includes("Apple")}catch{return uo}},Oi=dt("Android"),gy=(function(){if(Oi){let A=Sr.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(A){let e=A[1]&&parseFloat(A[1]),t=A[2]&&parseFloat(A[2]);if(e&&t)return parseFloat("".concat(A[1],".").concat(A[2]));if(e)return e}}return NaN})(),VY=Oi&&dt("webkit")&&gy<2.3,WY=Oi&&gy<5&&PY<537,ei=dt("Firefox"),OS=zi("Firefox"),jQ=oy("Firefox"),yB=dt("Edge"),ry=zi("Edge"),gu=dt("Edg"),qS=zi("Edg"),ay=oy("Edg"),Iy=dt("SogouMobileBrowser"),PS=zi("SogouMobileBrowser"),ny=dt("MetaSr\\s"),VS=zi("MetaSr\\s"),sI=dt("TBS"),WS=zi("TBS"),vs=dt("XWEB"),ZS=zi("XWEB"),jS=dt("MSIE\\s8\\.0"),Kv=dt("MSIE\\/\\d+"),Hv=(function(){if(Kv){let A=/MSIE\s(\d+)\.\d/.exec(Sr),e=A&&parseFloat(A[1]);return!e&&/Trident\/7.0/i.test(Sr)&&/rv:11.0/.test(Sr)&&(e=11),e}return NaN})(),XQ=dt("(micromessenger|webbrowser)"),XS=zi("MicroMessenger"),zQ=!sI&&dt("MQQBrowser")&&dt("COVC"),ru=!sI&&dt("MQQBrowser")&&!dt("COVC"),au=ru||zQ?zi("MQQBrowser"):"",$Q=!sI&&dt(" QQBrowser"),zS=zi(" QQBrowser"),sy=!sI&&dt("QQBrowserLite"),Ey=zi("QQBrowserLite"),By=!sI&&dt("MQBHD"),Cy=zi("MQBHD"),RB=dt("Windows"),Ts=!uo&&dt("MAC OS X"),Iu=!Oi&&dt("Linux"),mB=dt("CrOS"),Ac=dt("MicroMessenger"),Ov=dt("UCBrowser"),qv=dt("Electron"),Qy=dt("MiuiBrowser"),cy=zi("MiuiBrowser"),hy=dt("HuaweiBrowser"),$S=dt("Huawei")||dt("HUAWEI"),Pv=dt("Honor")||dt("HONOR"),ly=zi("HuaweiBrowser"),ec=dt("SamsungBrowser"),uy=zi("SamsungBrowser"),Us=dt("HeyTapBrowser"),dy=zi("HeyTapBrowser"),Dy=dt("VivoBrowser"),py=zi("VivoBrowser"),nu=dt("OpenHarmony"),ZY=zi("OpenHarmony"),yy=()=>oy("Chrome"),su=dt("CriOS"),Fg=dt("Chrome"),Ry=!yB&&!ny&&!Iy&&!sI&&!vs&&!gu&&!$Q&&!Qy&&!hy&&!ec&&!Us&&!Dy&&Fg,Eu=dt("HeadlessChrome"),Gr=yy(),AG=zi("Chrome"),my=oy("Electron"),ko=!Fg&&!ru&&!zQ&&!sy&&!By&&dt("Safari"),fB=ko||uo,wB=zi("Version"),jY=/Android.*(wv|.0.0.0)/.test(Sr),Fa=(()=>{if(HS)return wB;if(uo){let A=Sr.match(/OS (\d+)_(\d+)/i);if(A&&A[1]){let e=A[1];return A[2]&&(e+=".".concat(A[2])),e}}return""})();function eG(A,e){let t=A.split(".").map((o=>Number(o))),i=e.split(".").map((o=>Number(o)));for(let o=0;o<Math.max(t.length,i.length);o++){let g=t[o]||0,r=i[o]||0;if(g<r)return!0;if(g>r)return!1}return!1}function Vv(A,e){let t=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=A.split(".").map((g=>Number(g))),o=e.split(".").map((g=>Number(g)));for(let g=0;g<Math.max(i.length,o.length);g++){let r=i[g]||0,n=o[g]||0;if(r>n)return!0;if(r<n)return!1}return t}var va=Number(Fa.split(".")[0]),XY=wB==="15.1",tG=Fa==="15.1",Wv=(()=>{let A=Number(Fa.split(".")[0]);return A===14||A===13})(),iG=su&&wB==="11.1.1",_s=typeof location<"u"&&(location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1"),SB=(()=>{let A;return()=>{if(A===void 0)try{A=!!window.localStorage}catch{A=!1}return A}})(),wn=oG();function oG(){let A=new Map([[ei,["Firefox",OS]],[gu,["Edg",qS]],[Ry,["Chrome",AG]],[su,["ChiOS",zi("CriOS")]],[ko&&!su,["Safari",wB]],[sI,["TBS",WS]],[vs,["XWEB",ZS]],[XQ&&pB,["WeChat",XS]],[$Q,["QQ(Win)",zS]],[ru,["QQ(Mobile)",au]],[zQ,["QQ(Mobile X5)",au]],[sy,["QQ(Mac)",Ey]],[By,["QQ(iPad)",Cy]],[Qy,["MI",cy]],[hy,["HW",ly]],[ec,["Samsung",uy]],[Us,["OPPO",dy]],[Dy,["VIVO",py]],[yB,["EDGE",ry]],[Iy,["SogouMobile",PS]],[ny,["Sogou",VS]]]),e="unknown",t="unknown";return A.has(!0)&&([e,t]=A.get(!0)),{name:e,version:t}}var li=null;function fy(){return li&&typeof li.mobile=="boolean"?li.mobile:Oi||uo||pB||WQ||nu}var Ta="";function Bu(){return X(this,null,(function*(){if(li)return li;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return(li=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]))&&!Ta&&(Ta="UAData: ".concat(li.platform,"/").concat(li.platformVersion),li.architecture&&li.bitness&&(Ta+=" ".concat(li.architecture,"/").concat(li.bitness)),li.mobile&&(Ta+=" mobile"),li.model&&(Ta+=" model: ".concat(li.model.replace(/\s+/g,"/"))),li.fullVersionList&&(Ta+=" ".concat(li.fullVersionList.filter((A=>A.brand!=="Not/A)Brand")).map((A=>"".concat(A.brand,"/").concat(A.version))).join(",")))),li}catch{return null}}))}var gG="";function Cu(){try{if(gG)return gG;let A=document.createElement("canvas"),e=A.getContext("webgl")||A.getContext("experimental-webgl");if(!e)return"";let t=e.getExtension("WEBGL_debug_renderer_info");if(t){let i=e.getParameter(t.UNMASKED_VENDOR_WEBGL),o=e.getParameter(t.UNMASKED_RENDERER_WEBGL);return gG="".concat(i," ").concat(o)}return""}catch{return""}}function Zv(){try{let A=Cu();return A.includes("AMD")||A.includes("ATI")}catch{return!1}}function zY(){try{let A=Cu();return A.includes("NVIDIA")||A.includes("GeForce")}catch{return!1}}function No(){return(li==null?void 0:li.model)||tc()||""}function tc(){let A=Sr.match(/;\s*([^;)]+)\s+Build\//);return A!=null&&A[1]?A[1].trim():null}var Eg=new Map([[Oi,"Android"],[uo,"iOS"],[RB,"Windows"],[Ts,"MacOS"],[Iu,"Linux"],[mB,"ChromeOS"]]),rG=function(){return Eg.get(!0)?Eg.get(!0):li?li.platform:"unknown"};function Ut(){return RB?1:Oi?2:Ts?3:uo?4:Iu?5:mB?6:nu?7:0}function a(){return XQ||vs?4:Fg?1:ko?2:ei?3:0}var s=()=>{let A=rG();return li!=null&&li.platformVersion?A+="/".concat(li.platformVersion):uo?A+="/".concat(Fa):Oi&&(A+="/".concat(gy)),A+="/".concat(wn.name,"/").concat(ko&&!su?wn.version:wn.version.split(".")[0]),li!=null&&li.architecture&&(A+="/".concat(li.architecture)),A};function d(){return Oi?4:pB?2:WQ?3:Ts?12:RB?5:Iu?13:nu?22:1}function S(){return Oi?"Android":pB?"iPhone":WQ?"iPad":Ts?"Mac":RB?"Windows":Iu?"Linux":"unknown"}var k,N=new(Mo(Ng(),1)).default,$=((k=$||{}).ROOM_DESTROY="1",k.JOIN_START="21",k.JOIN_SCHEDULE_SUCCESS="22",k.JOIN_SIGNAL_CONNECTION_START="23",k.JOIN_SIGNAL_CONNECTION_END="24",k.JOIN_SEND_CMD="25",k.JOIN_RECEIVED_CMD_RES="26",k.JOIN_SUCCESS="27",k.JOIN_FAILED="28",k.LEAVE_START="51",k.LEAVE_SEND_CMD="52",k.LEAVE_SUCCESS="53",k.PUBLISH_START="61",k.SEND_FIRST_VIDEO_FRAME="62",k.PUBLISH_FAILED="63",k.SUBSCRIBE_START="81",k.SUBSCRIBE_SUCCESS="82",k.SUBSCRIBE_FAILED="84",k.UNSUBSCRIBE_SUCCESS="83",k.LOCAL_TRACK_CAPTURE_START="101",k.LOCAL_TRACK_CAPTURE_SUCCESS="102",k.LOCAL_TRACK_CAPTURE_FAILED="103",k.LOCAL_TRACK_PUBLISHED="104",k.LOCAL_TRACK_UNPUBLISHED="105",k.LOCAL_TRACK_REPLACED="106",k.SWITCH_DEVICE_SUCCESS="107",k.TRACK_MUTED="108",k.TRACK_UNMUTED="109",k.REMOTE_TRACK_SUBSCRIBED="110",k.REMOTE_TRACK_UNSUBSCRIBED="111",k.LOCAL_TRACK_RECAPTURE="112",k.LOCAL_AUDIO_STARTED="113",k.LOCAL_AUDIO_STOPPED="114",k.REMOTE_AUDIO_STARTED="115",k.REMOTE_AUDIO_STOPPED="116",k.PLAY_TRACK_START="151",k.PLAYER_STATE_CHANGED="152",k.VIDEO_LOADED_DATA="153",k.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",k.AUDIO_CONTEXT_LONG_SUSPENDED="155",k.REMOTE_VIDEO_PLAY_START="156",k.REMOTE_VIDEO_PLAY_FINISH="157",k.SIGNAL_CONNECTION_STATE_CHANGED="201",k.PEER_CONNECTION_STATE_CHANGED="202",k.SINGLE_CONNECTION_STAT="203",k.SPC_RECONNECTED="204",k.HEARTBEAT_REPORT="251",k.RECEIVED_PUBLISHED_USER_LIST="252",k.REMOTE_PUBLISH_STATE_CHANGED="253",k.AUDIO_LEVEL_INTERVAL="260",k.NETWORK_QUALITY="261",k.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",k.QUALITY_LIMITATION_CHANGED="263",k.LOG="264",k.AUDIO_PROCESSOR_DEBUG="265",k.SSO_SWITCH="266",k.SEI_MESSAGE="267",k.USER_PAUSE_IN_PIP="268",k.USER_RESUME_IN_PIP="269",k.ENTER_PICTURE_IN_PICTURE="270",k.LEAVE_PICTURE_IN_PICTURE="271",k.SWITCH_ROOM_START="401",k.SWITCH_ROOM_SUCCESS="407",k.SWITCH_ROOM_FAILED="408",k),v=$,P=new class{constructor(){l(this,"enable",!1),l(this,"ssoFailCount",0),N.on("22",(A=>{let{schedule:e}=A;var t;(t=e==null?void 0:e.config)!=null&&t.sso&&N.emit("266",{enable:!0})})),N.on("266",(A=>{let{enable:e}=A;this.enable=e}))}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&N.emit("266",{enable:!1})}},j=class MK{constructor(){l(this,"_isEnableUploadLog",!0),l(this,"_localJoinedUser",new Map),l(this,"_queue",[]),l(this,"_timeoutId",-1),l(this,"_logLevel",1),l(this,"_logLevelToUpload",2),!fl&&!hS&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){N.on(v.JOIN_SCHEDULE_SUCCESS,(e=>{let{schedule:t}=e;var i;(i=t==null?void 0:t.config)!=null&&i.logLevelToUpload&&Ss[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)})),N.on(v.JOIN_START,(e=>{let{params:t}=e;this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()})),N.on(v.LEAVE_SUCCESS,(e=>{let{room:t}=e;this.deleteJoinedUser(t.userId)}))}startUpload(){this._timeoutId===-1&&this.uploadInterval()}addJoinedUser(e){this._localJoinedUser.set(e.userId,e),this.startUpload()}deleteJoinedUser(e){this._localJoinedUser.delete(e)}uploadInterval(){this.upload().catch((()=>{})),this._timeoutId=window.setTimeout((()=>this.uploadInterval()),5e3)}getLogsToUpload(){let e={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&this._localJoinedUser.size===0)return e;let t=0;for(;t<this._queue.length&&t!==50;t++){let i=this._queue[t];if(i.forAllJoinedClients)this._localJoinedUser.forEach((o=>{let{userId:g,sdkAppId:r}=o;e.map.has(g)?e.map.get(g).logs.push(i):e.map.set(g,{userId:g,sdkAppId:r,logs:[i]})}));else if(ai(i.userId)&&Zt(i.sdkAppId)){let{userId:o,sdkAppId:g}=i;e.map.has(o)?e.map.get(o).logs.push(i):e.map.set(o,{userId:o,sdkAppId:g,logs:[i]})}}return e.map.size>0&&(e.splicedQueue=this._queue.splice(0,t)),e}upload(){return X(this,null,(function*(){if(this._queue.length===0||!this._isEnableUploadLog)return;let{map:e,splicedQueue:t}=this.getLogsToUpload();if(e.size===0)return;try{let o=[...e.values()];for(let g=0;g<o.length;g++){let{userId:r,sdkAppId:n,logs:I}=o[g],C={timestamp:CS(),sdkAppId:String(n),userId:r,version:ia,log:I.map((M=>M.log)).join(`
|
||
`)},u=JSON.stringify(C),R=P.enable?fn(C,2002,n):u;yield this.uploadLogWithRetry(R,n,R instanceof Uint8Array,u),I.forEach((M=>M.uploaded=!0))}}catch{}let i=t.filter((o=>!o.uploaded));i.length>0&&(this._queue=i.concat(this._queue))}))}uploadLogWithRetry(e,t,i,o){return ou({retryFunction:()=>iu({url:uB(t,Gl.LOG),body:e,timeout:5e3,priority:"low"}).then((g=>{i&&g.data!=="ok"&&(P.handleUploadFailed(),this.uploadLogWithRetry(o,t,!1,o))})),settings:{retries:3,timeout:2e3},onError:g=>{let{retry:r}=g;r()}})()}getPrefix(e){let t=new Date;return t.setTime(ml()),"[".concat(QS(t),"] <").concat(Ss[e],">")}getLogLevel(){return this._logLevel}setLogLevel(e){yA(Ss[e])||(this._logLevel!==e&&this.info("setLogLevel",e),this._logLevel=e)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(e){if(ai(e))return e;try{return e instanceof Error?e.toString():JSON.stringify(e)}catch{return""}}addLogToQueue(e,t){let i=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],o=arguments.length>3?arguments[3]:void 0,g=arguments.length>4?arguments[4]:void 0,r={log:t.reduce(((n,I)=>"".concat(n," ").concat(this.logChunkToString(I)).trim()),""),level:e,userId:o,sdkAppId:g,forAllJoinedClients:i};N.emit(v.LOG,{log:r}),this._isEnableUploadLog&&e>=this._logLevelToUpload&&this._queue.push(r)}log(e,t){let i=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],o=arguments.length>3?arguments[3]:void 0,g=arguments.length>4?arguments[4]:void 0;var r;if(t.unshift(this.getPrefix(e)),this.addLogToQueue(e,t,i,o,g),e<this._logLevel)return;let n=((r=Ss[e])==null?void 0:r.toLowerCase())||"info";MK.PRINT_LOG_TAG?console[n]("%cTRTC%c%s","padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;","display: inline",...t):console[n](...t)}debug(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(1,t)}info(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(2,t)}warn(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(3,t)}error(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(4,t)}createLogger(e){if(e.parent instanceof xS){let t=e,{parent:i}=t,o=Av(t,["parent"]),g=new xS(o);return g.bindParent(i),g}return new xS(e)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),t=e?Number(e):-1;Ss[t]&&(this._logLevelToUpload=t)}getQueue(){return this._queue}};l(j,"PRINT_LOG_TAG",!(uo||Oi||Eu));var K=new j,cA=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(A=>{let e=16*Math.random()|0;return(A=="x"?e:3&e|8).toString(16)}))},DA=new class{constructor(){l(this,"_prefix","TRTC"),l(this,"_queue",new Map)}getRealKey(A){return"".concat(this._prefix,"_").concat(A)}checkStorage(){SB()&&(setInterval(this.doFlush.bind(this),2e4),Object.keys(localStorage).filter((A=>{if(A.startsWith(this._prefix))try{let e=localStorage.getItem(A);if(!e)return!1;let t=JSON.parse(e);if(t&&t.expiresIn<Date.now())return!0}catch{return!1}return!1})).forEach((A=>localStorage.removeItem(A))))}doFlush(){if(SB())try{for(let[A,e]of this._queue)localStorage.setItem(A,JSON.stringify(e))}catch(A){K.warn(A)}}getItem(A){if(!SB())return null;try{let e=localStorage.getItem(this.getRealKey(A));if(!e)return null;let t=JSON.parse(e);return t&&t.expiresIn>=Date.now()?t.value:null}catch(e){K.warn(e)}}setItem(A,e){if(SB())try{let t={expiresIn:Date.now()+av,value:e};this._queue.set(this.getRealKey(A),t)}catch(t){K.warn(t)}}deleteItem(A){if(!SB())return!1;try{return A=this.getRealKey(A),this._queue.delete(A),localStorage.removeItem(A),!0}catch(e){return K.warn(e),!1}}clear(){if(SB())try{localStorage.clear()}catch(A){K.warn(A)}}},kA={};Dn(kA,{HTTPS_API:()=>gJ,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>gT,IS_GET_CAPABILITIES_SUPPORTED:()=>oT,IS_GET_SETTINGS_SUPPORTED:()=>cc,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>iT,IS_INSERTABLE_STREAM_SUPPORTED:()=>vB,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>mG,IS_RTC_RTP_SENDER_SUPPORTED:()=>pu,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>Jy,IS_SEI_SUPPORTED:()=>hc,IS_SPC_SUPPORTED:()=>yi,basis:()=>rT,capabilityCheck:()=>Ky,checkSystemRequirementsInternal:()=>Bc,decodeSupportStatus:()=>cG,detectVideoCodecCapabilities:()=>fG,detectVideoDecoderCapabilities:()=>IT,detectVideoEncoderCapabilities:()=>wG,encodeSupportStatus:()=>QG,getBrowserInfo:()=>eJ,getDisplayResolution:()=>hG,getH264ProfileLevelIds:()=>nT,isAddTransceiverSupported:()=>_a,isBrowserSupported:()=>CG,isCanvasCaptureStreamAPISupported:()=>uG,isCanvasSmallStreamSupported:()=>Ly,isGetReceiversSupported:()=>$g,isGetSendersSupported:()=>FB,isGetTransceiversSupported:()=>Cc,isGetUserMediaSupported:()=>lG,isMediaDevicesSupported:()=>BI,isMediaSessionSupported:()=>lc,isMediaStreamTrackGeneratorSupported:()=>tJ,isMediaStreamTrackProcessorSupported:()=>lu,isReplaceTrackSupported:()=>tT,isRequestVideoFrameCallbackSupported:()=>Gn,isSIMDSupported:()=>pG,isScaleResolutionDownBySupported:()=>by,isScreenCaptureApiAvailable:()=>_y,isSelectedCandidatePair:()=>vg,isSetParametersSupported:()=>Yy,isSetSinkIdSupported:()=>oJ,isSmallStreamSupported:()=>Du,isStopTransceiverSupported:()=>Qc,isTRTCSupported:()=>iJ,isUnifiedPlanDefault:()=>dG,isUsedInHttpProtocol:()=>NB,isWebAudioSupported:()=>du,isWebCodecSupported:()=>DG,isWebCodecsSupported:()=>Ty,isWebRTCSupported:()=>xy,isWebTransportSupported:()=>yu});var _A={};Dn(_A,{AUDIO_LEVEL_SCALE:()=>Ua,AlphaStitchingType:()=>EG,AudioCodecPipelineType:()=>Ny,AudioDecoderDowngradeState:()=>aG,AudioPlayerMode:()=>My,AudioType:()=>gc,BASIC_TYPE:()=>Ys,BannedReason:()=>MB,CONNECTION_CLOSED_REASON:()=>Ke,CheckPermissionType:()=>Sn,ClientEvent:()=>Fe,CodecType:()=>Fy,ConnectionEvent:()=>Ee,ConnectionState:()=>Ls,DECODE_FAILED_ERROR_CODE:()=>kB,DenoiserMode:()=>Cg,DeviceType:()=>EI,FacingMode:()=>Fo,FrameWorkType:()=>GA,LeaveReason:()=>ky,LocalTrackEvent:()=>Xe,MULTI_VIDEO_DATA_TYPE:()=>Bg,MediaType:()=>bs,MediaTypeLabel:()=>GB,MonitorEventId:()=>IG,MutedFlag:()=>xo,NetworkQualityValue:()=>Sy,PlayerState:()=>_t,ReceiveMode:()=>Gy,RemoteStreamType:()=>Mr,RemoteTrackEvent:()=>ot,RoomEvent:()=>zt,SMALL_MODE:()=>hu,SceneNumber:()=>ic,StreamEvent:()=>ke,StreamType:()=>$o,SubscribeMediaType:()=>ac,TIMER_TYPE:()=>sG,TRACK_ACTION:()=>Xv,TRACK_KIND:()=>jv,TrackEvent:()=>qi,UserRole:()=>oc,UserRoleNumber:()=>Qu,VideoCodec:()=>Ic,VideoCodecPipelineType:()=>cu,VideoContentHint:()=>Ii,VideoDecoderDowngradeState:()=>wy,VideoPlayerMode:()=>nG,VideoType:()=>rc});var WA,wA,tA,F,JA,mA,he,Ie,ye,fe,PA,GA=(A=>(A[A.WEBRTC=30]="WEBRTC",A[A.WASM=37]="WASM",A))(GA||{}),Ee=((PA=Ee||{}).TRACK_ADDED="track-added",PA.TRACK_UPDATED="track-updated",PA.TRACK_SUBSCRIBED="track-subscribed",PA.STREAM_ADDED="stream-added",PA.STREAM_REMOVED="stream-removed",PA.STREAM_UPDATED="stream-updated",PA.STREAM_PUBLISHED="stream-published",PA.STREAM_SUBSCRIBED="stream-subscribed",PA.STREAM_UNSUBSCRIBED="stream-unsubscribed",PA.STATE_CHANGED="state-changed",PA.ERROR="error",PA.CONNECTION_STATE_CHANGED="connection-state-changed",PA.FIREWALL_RESTRICTION="firewall-restriction",PA.SEI_MESSAGE="sei-message",PA.CLOSED="closed",PA),Ke=(A=>(A.REMOTE_LEAVE="remote user exitRoom",A.REMOTE_UNPUBLISH="remote user unpublished",A.LOCAL_LEAVE="you exitRoom",A.LOCAL_UNPUBLISH="you unpublished",A.LOCAL_UNSUBSCRIBE="you unsubscribed",A.SWITCH_ROLE="you switch role to audience",A))(Ke||{}),Fe=((fe=Fe||{}).STREAM_ADDED="stream-added",fe.STREAM_REMOVED="stream-removed",fe.STREAM_UPDATED="stream-updated",fe.STREAM_SUBSCRIBED="stream-subscribed",fe.CONNECTION_STATE_CHANGED="connection-state-changed",fe.PEER_JOIN="peer-join",fe.PEER_LEAVE="peer-leave",fe.MUTE_AUDIO="mute-audio",fe.MUTE_VIDEO="mute-video",fe.UNMUTE_AUDIO="unmute-audio",fe.UNMUTE_VIDEO="unmute-video",fe.CLIENT_BANNED="client-banned",fe.NETWORK_QUALITY="network-quality",fe.AUDIO_VOLUME="audio-volume",fe.SEI_MESSAGE="sei-message",fe.ERROR="error",fe),ke=((ye=ke||{}).PLAYER_STATE_CHANGED="player-state-changed",ye.SCREEN_SHARING_STOPPED="screen-sharing-stopped",ye.CONNECTION_STATE_CHANGED="connection-state-changed",ye.DEVICE_AUTO_RECOVERED="device-auto-recovered",ye.ERROR="error",ye),Xe=((Ie=Xe||{}).DEVICE_AUTO_RECOVERED="1",Ie.DEVICE_RECOVER_FAILED="5",Ie.DEVICE_CHANGED="2",Ie.ERROR="3",Ie.PUBLISH_STATE_CHANGED="4",Ie.ENCODE_FAILED="6",Ie.TRACK_ENDED="7",Ie.RENDER="render",Ie),_t=(A=>(A.PAUSED="PAUSED",A.PLAYING="PLAYING",A.STOPPED="STOPPED",A))(_t||{}),zt=((he=zt||{}).PEER_JOIN="peer-join",he.PEER_LEAVE="peer-leave",he.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",he.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",he.BANNED="banned",he.NETWORK_QUALITY="network-quality",he.AUDIO_VOLUME="audio-volume",he.SEI_MESSAGE="sei-message",he.ERROR="error",he.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",he.REMOTE_PUBLISHED="remote-published",he.REMOTE_UNPUBLISHED="remote-unpublished",he.FIREWALL_RESTRICTION="firewall-restriction",he.HEARTBEAT_REPORT="heartbeat-report",he.CUSTOM_MESSAGE="custom-message",he.LAYER_DATA="layerData",he.FIRST_VIDEO_FRAME="first-video-frame",he.DUMP="dump",he.AUDIO_FRAME="audio-frame",he.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",he.LOCAL_PUBLISH_FLAG_CHANGED="local-publish-flag-changed",he.NTP_TIME_UPDATED="ntp-time-updated",he),qi=(A=>(A.PLAYER_STATE_CHANGED="player-state-changed",A.MUTE="mute",A.UNMUTE="unmute",A.ERROR="error",A.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",A.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",A.FIRST_VIDEO_FRAME="first-video-frame",A.VIDEO_SIZE_CHANGED="video-size-changed",A))(qi||{}),ot=((mA=ot||{}).DECODE_FAILED="decode-failed",mA.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",mA.REMOTE_PUBLISH_CHANGED="remote-publish-changed",mA.AUDIO_FRAME_WITH_NTP="audio-frame-with-ntp",mA),xo=((JA=xo||{})[JA.VIDEO=1]="VIDEO",JA[JA.SMALL=2]="SMALL",JA[JA.AUX=4]="AUX",JA[JA.AUDIO=8]="AUDIO",JA[JA.VIDEO_MUTE=16]="VIDEO_MUTE",JA[JA.AUX_MUTE=32]="AUX_MUTE",JA[JA.AUDIO_MUTE=64]="AUDIO_MUTE",JA),ic=(A=>(A[A.RTC=1]="RTC",A[A.LIVE=2]="LIVE",A))(ic||{}),Qu=(A=>(A[A.ANCHOR=20]="ANCHOR",A[A.AUDIENCE=21]="AUDIENCE",A))(Qu||{}),oc=(A=>(A.ANCHOR="anchor",A.AUDIENCE="audience",A))(oc||{}),Ls=(A=>(A.CONNECTED="CONNECTED",A.DISCONNECTED="DISCONNECTED",A.CONNECTING="CONNECTING",A.RECONNECTED="RECONNECTED",A.RECONNECTING="RECONNECTING",A))(Ls||{}),aG=(A=>(A.INITIALIZED="INITIALIZED",A.STARTING="STARTING",A.STARTED="STARTED",A.FAILED="FAILED",A))(aG||{}),wy=(A=>(A.INITIALIZED="INITIALIZED",A.STARTING="STARTING",A.STARTED="STARTED",A.FAILED="FAILED",A))(wy||{}),jv=(A=>(A.AUDIO="audio",A.VIDEO="video",A.AUXILIARY="auxVideo",A))(jv||{}),Xv=(A=>(A.ADD="add",A.REMOVE="remove",A))(Xv||{}),bs=(A=>(A[A.NULL=0]="NULL",A[A.AUDIO=1]="AUDIO",A[A.AUX_VIDEO=2]="AUX_VIDEO",A[A.BIG_VIDEO=4]="BIG_VIDEO",A[A.SMALL_VIDEO=8]="SMALL_VIDEO",A))(bs||{}),GB={1:"audio",2:"auxVideo",4:"video"},gc=((F=gc||{})[F.opus=111]="opus",F),rc=(A=>(A[A.h264=100]="h264",A[A.vp8=101]="vp8",A))(rc||{}),$o=(A=>(A.Big="big",A.Small="small",A))($o||{}),Mr=(A=>(A.Main="main",A.Aux="auxiliary",A))(Mr||{}),Bg=(A=>(A[A.MULTI_DATA_AUDIO=1]="MULTI_DATA_AUDIO",A[A.MULTI_DATA_BIG_IMG=2]="MULTI_DATA_BIG_IMG",A[A.MULTI_DATA_SMALL_IMG=3]="MULTI_DATA_SMALL_IMG",A[A.MULTI_DATA_AUX_IMG=7]="MULTI_DATA_AUX_IMG",A[A.MULTI_DATA_TYPE_BUTT=12]="MULTI_DATA_TYPE_BUTT",A))(Bg||{}),IG=((tA=IG||{})[tA.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",tA[tA.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",tA[tA.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",tA[tA.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",tA[tA.MUTE_AUDIO=32772]="MUTE_AUDIO",tA[tA.MUTE_VIDEO=32773]="MUTE_VIDEO",tA[tA.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",tA[tA.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",tA[tA.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",tA[tA.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",tA[tA.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",tA[tA.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",tA[tA.SWITCH_CAMERA=32780]="SWITCH_CAMERA",tA[tA.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",tA[tA.REPLACE_VIDEO=32782]="REPLACE_VIDEO",tA[tA.REPLACE_AUDIO=32783]="REPLACE_AUDIO",tA[tA.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",tA[tA.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",tA[tA.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",tA[tA.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",tA[tA.JOIN=32788]="JOIN",tA[tA.LEAVE=32789]="LEAVE",tA[tA.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",tA[tA.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",tA[tA.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",tA[tA.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",tA[tA.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",tA[tA.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",tA[tA.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",tA[tA.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",tA[tA.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",tA[tA.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",tA[tA.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",tA[tA.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",tA[tA.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",tA[tA.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",tA[tA.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",tA[tA.PUBLISH_AUX=32805]="PUBLISH_AUX",tA[tA.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",tA[tA.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",tA[tA.VIDEO_ENCODER=4004]="VIDEO_ENCODER",tA[tA.VIDEO_DECODER=4005]="VIDEO_DECODER",tA),Sy=(A=>(A[A.UNKNOWN=0]="UNKNOWN",A[A.EXCELLENT=1]="EXCELLENT",A[A.GOOD=2]="GOOD",A[A.POOR=3]="POOR",A[A.BAD=4]="BAD",A[A.VERY_BAD=5]="VERY_BAD",A[A.DISCONNECTED=6]="DISCONNECTED",A))(Sy||{}),Gy=(A=>(A[A.MANUAL=0]="MANUAL",A[A.AUTO_AUDIO=1]="AUTO_AUDIO",A[A.AUTO_VIDEO=2]="AUTO_VIDEO",A[A.AUTO_ALL=3]="AUTO_ALL",A))(Gy||{}),Fo=(A=>(A.user="user",A.environment="environment",A))(Fo||{}),nG=(A=>(A[A.ELEMENT=0]="ELEMENT",A[A.CANVAS_FROM_ELEMENT=1]="CANVAS_FROM_ELEMENT",A[A.CANVAS_WITHOUT_ELEMENT=2]="CANVAS_WITHOUT_ELEMENT",A))(nG||{}),My=(A=>(A[A.ELEMENT=0]="ELEMENT",A[A.CONTEXT=1]="CONTEXT",A))(My||{}),MB=(A=>(A.BANNED="banned",A.KICK="kick",A.USER_TIME_OUT="user_time_out",A.ROOM_DISBAND="room_disband",A))(MB||{}),ky=((wA=ky||{})[wA.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",wA[wA.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",wA[wA.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",wA[wA.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",wA[wA.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",wA[wA.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",wA[wA.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",wA[wA.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",wA[wA.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",wA),Ua=1e8,Cg=(A=>(A[A.NORMAL=0]="NORMAL",A[A.FAR_FIELD_REDUCTION=1]="FAR_FIELD_REDUCTION",A))(Cg||{}),ac=class{constructor(){l(this,"mediaType",0)}set audio(A){A?this.mediaType|=1:this.mediaType&=-2}get audio(){return!!(1&this.mediaType)}set video(A){A?this.mediaType|=4:this.mediaType&=-5}get video(){return!!(4&this.mediaType)}set auxiliary(A){A?this.mediaType|=2:this.mediaType&=-3}get auxiliary(){return!!(2&this.mediaType)}set smallVideo(A){A?this.mediaType|=8:this.mediaType&=-9}get smallVideo(){return!!(8&this.mediaType)}},Ys=(A=>(A.String="string",A.Number="number",A.Boolean="boolean",A.Array="array",A.Object="object",A))(Ys||{}),Ic=(A=>(A.H264="h264",A.H265="h265",A.VP8="vp8",A.VP9="vp9",A.AV1="av1",A))(Ic||{}),cu=(A=>(A[A.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",A[A.DUMP=1]="DUMP",A[A.SEI=2]="SEI",A[A.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",A))(cu||{}),Ny=(A=>(A[A.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",A[A.NTP_TO_AUDIO_FRAME=1]="NTP_TO_AUDIO_FRAME",A[A.DUMP=2]="DUMP",A[A.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",A))(Ny||{}),Fy=(A=>(A.WebRTC="webrtc",A.WebCodecs="webcodecs",A.WebAssembly="webassembly",A))(Fy||{}),kB=((WA=kB||{})[WA.SUCCESS=0]="SUCCESS",WA[WA.FAILED=1]="FAILED",WA[WA.WEBCODEC_INIT=2]="WEBCODEC_INIT",WA[WA.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",WA[WA.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",WA[WA.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",WA[WA.WASM_INIT=6]="WASM_INIT",WA[WA.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",WA[WA.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",WA[WA.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",WA[WA.TEST=10]="TEST",WA[WA.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",WA),Ii=(A=>(A.NONE="",A.DETAIL="detail",A.MOTION="motion",A.TEXT="text",A))(Ii||{}),sG=(A=>(A.INTERVAL="interval",A.TIMEOUT="timeout",A.RAF="raf",A.RIC="ric",A.INTERVAL_IN_WORKER="intervalInWorker",A))(sG||{}),hu=(A=>(A.CANVAS="canvas",A.API="api",A))(hu||{}),Sn=(A=>(A[A.NONE=0]="NONE",A[A.MICROPHONE=1]="MICROPHONE",A[A.CAMERA=2]="CAMERA",A[A.BOTH=3]="BOTH",A))(Sn||{}),EI=(A=>(A.CAMERA="camera",A.MICROPHONE="microphone",A))(EI||{}),EG=(A=>(A[A.none=0]="none",A[A.horizontal=1]="horizontal",A[A.vertical=2]="vertical",A))(EG||{}),$e={AVOID_REPEATED_CALL:"AVOID_REPEATED_CALL",INVALID_PARAMETER_REQUIRED:"INVALID_PARAMETER_REQUIRED",INVALID_PARAMETER_TYPE:"INVALID_PARAMETER_TYPE",INVALID_PARAMETER_EMPTY:"INVALID_PARAMETER_EMPTY",INVALID_PARAMETER_INSTANCE:"INVALID_PARAMETER_INSTANCE",INVALID_PARAMETER_RANGE:"INVALID_PARAMETER_RANGE",INVALID_PARAMETER_MIN:"INVALID_PARAMETER_MIN",INVALID_PARAMETER_MAX:"INVALID_PARAMETER_MAX",INVALID_PARAMETER_STREAMTYPE:"INVALID_PARAMETER_STREAMTYPE",API_CALL_TIMEOUT:"API_CALL_TIMEOUT",SIGNAL_CHANNEL_RECONNECTION_FAILED:"SIGNAL_CHANNEL_RECONNECTION_FAILED",SIGNAL_CHANNEL_SETUP_FAILED:"SIGNAL_CHANNEL_SETUP_FAILED",ERROR_MESSAGE:"ERROR_MESSAGE",EXCHANGE_SDP_TIMEOUT:"EXCHANGE_SDP_TIMEOUT",DOWNLINK_RECONNECTION_FAILED:"DOWNLINK_RECONNECTION_FAILED",EXCHANGE_SDP_FAILED:"EXCHANGE_SDP_FAILED",UPDATE_OFFER_TIMEOUT:"UPDATE_OFFER_TIMEOUT",UPLINK_RECONNECTION_FAILED:"UPLINK_RECONNECTION_FAILED",INVALID_RECORDID:"INVALID_RECORDID",INVALID_PURE_AUDIO:"INVALID_PURE_AUDIO",INVALID_STREAMID:"INVALID_STREAMID",INVALID_USER_DEFINE_RECORDID:"INVALID_USER_DEFINE_RECORDID",INVALID_USER_DEFINE_PUSH_ARGS:"INVALID_USER_DEFINE_PUSH_ARGS",INVALID_PROXY:"INVALID_PROXY",INVALID_JOIN:"INVALID_JOIN",INVALID_ROOMID_STRING:"INVALID_ROOMID_STRING",INVALID_ROOMID_INTEGER:"INVALID_ROOMID_INTEGER",INVALID_SIGNAL_CHANNEL:"INVALID_SIGNAL_CHANNEL",JOIN_ROOM_TIMEOUT:"JOIN_ROOM_TIMEOUT",JOIN_ROOM_FAILED:"JOIN_ROOM_FAILED",REJOIN_ROOM_FAILED:"REJOIN_ROOM_FAILED",INVALID_DESTROY:"INVALID_DESTROY",INVALID_PUBLISH:"INVALID_PUBLISH",INVALID_UNPUBLISH:"INVALID_UNPUBLISH",INVALID_AUDIENCE:"INVALID_AUDIENCE",INVALID_INITIALIZE:"INVALID_INITIALIZE",INVALID_DUPLICATE_PUBLISHING:"INVALID_DUPLICATE_PUBLISHING",INVALID_SUBSCRIBE_UNDEFINED:"INVALID_SUBSCRIBE_UNDEFINED",INVALID_SUBSCRIBE_LOCAL:"INVALID_SUBSCRIBE_LOCAL",INVALID_REMOTE_STREAM:"INVALID_REMOTE_STREAM",SUBSCRIBE_FAILED:"SUBSCRIBE_FAILED",INVALID_ROLE:"INVALID_ROLE",INVALID_PARAMETER_SWITCH_ROLE:"INVALID_PARAMETER_SWITCH_ROLE",INVALID_OPERATION_SWITCH_ROLE:"INVALID_OPERATION_SWITCH_ROLE",SWITCH_ROLE_TIMEOUT:"SWITCH_ROLE_TIMEOUT",SWITCH_ROLE_FAILED:"SWITCH_ROLE_FAILED",CLIENT_BANNED:"CLIENT_BANNED",INVALID_OPERATION_START_PUBLISH_CDN:"INVALID_OPERATION_START_PUBLISH_CDN",INVALID_OPERATION_STOP_PUBLISH_CDN:"INVALID_OPERATION_STOP_PUBLISH_CDN",INVALID_STREAM_ID:"INVALID_STREAM_ID",START_PUBLISH_CDN_FAILED:"START_PUBLISH_CDN_FAILED",STOP_PUBLISH_CDN_FAILED:"STOP_PUBLISH_CDN_FAILED",START_MIX_TRANSCODE:"START_MIX_TRANSCODE",STOP_MIX_TRANSCODE:"STOP_MIX_TRANSCODE",INVALID_AUDIO_VOLUME:"INVALID_AUDIO_VOLUME",ENABLE_SMALL_STREAM_PUBLISHED:"ENABLE_SMALL_STREAM_PUBLISHED",DISABLE_SMALL_STREAM_PUBLISHED:"DISABLE_SMALL_STREAM_PUBLISHED",NOT_SUPPORTED_SMALL_STREAM:"NOT_SUPPORTED_SMALL_STREAM",INVALID_SMALL_STREAM_PROFILE:"INVALID_SMALL_STREAM_PROFILE",INVALID_PARAMETER_REMOTE_STREAM:"INVALID_PARAMETER_REMOTE_STREAM",INVALID_OPERATION_CHANGE_SMALL:"INVALID_OPERATION_CHANGE_SMALL",REMOTE_NOT_PUBLISH_SMALL_STREAM:"REMOTE_NOT_PUBLISH_SMALL_STREAM",INVALID_SWITCH_DEVICE:"INVALID_SWITCH_DEVICE",INVALID_SWITCH_DEVICE_PUBLISHING:"INVALID_SWITCH_DEVICE_PUBLISHING",INVALID_REPLACE_TRACK:"INVALID_REPLACE_TRACK",INVALID_INITIALIZE_LOCAL_STREAM:"INVALID_INITIALIZE_LOCAL_STREAM",INVALID_ADD_TRACK_REPETITIVE:"INVALID_ADD_TRACK_REPETITIVE",INVALID_ADD_TRACK_REMOVING:"INVALID_ADD_TRACK_REMOVING",INVALID_ADD_TRACK_PUBLISHING:"INVALID_ADD_TRACK_PUBLISHING",INVALID_STREAM_INITIALIZED:"INVALID_STREAM_INITIALIZED",INVALID_ADD_TRACK_NUMBER:"INVALID_ADD_TRACK_NUMBER",INVALID_REMOVE_AUDIO_TRACK:"INVALID_REMOVE_AUDIO_TRACK",INVALID_REMOVE_AUDIO_ADDING:"INVALID_REMOVE_AUDIO_ADDING",INVALID_REMOVE_AUDIO_ON:"INVALID_REMOVE_AUDIO_ON",INVALID_REMOVE_TRACK_PUBLISHING:"INVALID_REMOVE_TRACK_PUBLISHING",INVALID_REMOVE_TRACK_NOT_TRACK:"INVALID_REMOVE_TRACK_NOT_TRACK",INVALID_REMOVE_TRACK_NUMBER:"INVALID_REMOVE_TRACK_NUMBER",INVALID_REPLACE_TRACK_NO_TRACK:"INVALID_REPLACE_TRACK_NO_TRACK",REPEAT_JOIN:"REPEAT_JOIN",CLIENT_DESTROYED:"CLIENT_DESTROYED",NOT_BUG_PACKAGE:"NOT_BUG_PACKAGE",START_MIX_TRANSCODE_FAILED:"START_MIX_TRANSCODE_FAILED",STOP_MIX_TRANSCODE_FAILED:"STOP_MIX_TRANSCODE_FAILED",MIX_TRANSCODE_NOT_STARTED:"MIX_TRANSCODE_NOT_STARTED",CANNOT_LESS_THAN_ZERO:"CANNOT_LESS_THAN_ZERO",MIX_PARAMS_VIDEO_FRAMERATE:"MIX_PARAMS_VIDEO_FRAMERATE",MIX_PARAMS_VIDEO_GOP:"MIX_PARAMS_VIDEO_GOP",MIX_PARAMS_AUDIO_BITRATE:"MIX_PARAMS_AUDIO_BITRATE",MIX_PARAMS_USER_Z_ORDER:"MIX_PARAMS_USER_Z_ORDER",MIX_PARAMS_NOT_SELF:"MIX_PARAMS_NOT_SELF",MIX_PARAMS_USER_STREAM:"MIX_PARAMS_USER_STREAM",INVALID_PLAY:"INVALID_PLAY",INVALID_ELEMENT_ID:"INVALID_ELEMENT_ID",INVALID_ELEMENT_ID_TYPE:"INVALID_ELEMENT_ID_TYPE",PLAY_FAILED:"PLAY_FAILED",INVALID_USERID:"INVALID_USERID",INVALID_CREATE_STREAM_SOURCE:"INVALID_CREATE_STREAM_SOURCE",INVALID_CREATE_STREAM_SCREEN:"INVALID_CREATE_STREAM_SCREEN",INVALID_CREATE_STREAM_AUDIO:"INVALID_CREATE_STREAM_AUDIO",INVALID_CREATE_STREAM_SCREEN_AUDIO:"INVALID_CREATE_STREAM_SCREEN_AUDIO",NOT_SUPPORTED_HTTP:"NOT_SUPPORTED_HTTP",NOT_SUPPORTED_WEBRTC:"NOT_SUPPORTED_WEBRTC",NOT_SUPPORTED_PROFILE:"NOT_SUPPORTED_PROFILE",NOT_SUPPORTED_MEDIA:"NOT_SUPPORTED_MEDIA",NOT_SUPPORTED_H264ENCODE:"NOT_SUPPORTED_H264ENCODE",NOT_SUPPORTED_H264DECODE:"NOT_SUPPORTED_H264DECODE",NOT_SUPPORTED_TRACK:"NOT_SUPPORTED_TRACK",NOT_SUPPORTED_SWITCH_DEVICE:"NOT_SUPPORTED_SWITCH_DEVICE",NOT_SUPPORTED_CAPTURE:"NOT_SUPPORTED_CAPTURE",NOT_SUPPORTED_AUX:"NOT_SUPPORTED_AUX",MICROPHONE_NOT_FOUND:"MICROPHONE_NOT_FOUND",CAMERA_NOT_FOUND:"CAMERA_NOT_FOUND",SIGNAL_RESPONSE_FAILED:"SIGNAL_RESPONSE_FAILED",CATCH_HANDLER_ERROR:"CATCH_HANDLER_ERROR",API_NOT_EXIST:"API_NOT_EXIST",CONNECTION_CLOSED:"CONNECTION_CLOSED",SUBSCRIBE_ALL_FALSE:"SUBSCRIBE_ALL_FALSE",SEI_NOT_SUPPORT:"SEI_NOT_SUPPORT",SEI_DISABLED:"SEI_DISABLED",SEI_BEFORE_PUBLISH:"SEI_BEFORE_PUBLISH",SEI_NOT_VIDEO:"SEI_NOT_VIDEO",CALL_FREQUENCY_LIMIT:"CALL_FREQUENCY_LIMIT",CONNECTION_ABORTED:"CONNECTION_ABORTED",API_CALL_ABORTED:"API_CALL_ABORTED",DUPLICATE_AUX:"DUPLICATE_AUX"},kr={AVOID_REPEATED_CALL:A=>"previous ".concat(A.name,"() is ongoing, please avoid repeated calls."),INVALID_PARAMETER_REQUIRED(A){let{key:e,rule:t,fnName:i,value:o}=A;return"'".concat(e||t.name,"' is a required param when calling ").concat(i,"(), received: ").concat(o,".")},INVALID_PARAMETER_TYPE(A){let{key:e,rule:t,fnName:i,value:o}=A,g="".concat(e||t.name),r="";return r=Array.isArray(t.type)?t.type.join("|"):t.type,"'".concat(g,"' must be type of ").concat(r," when calling ").concat(i,"(), received type: ").concat(ho(o),".")},INVALID_PARAMETER_EMPTY(A){let{key:e,rule:t,fnName:i,value:o}=A;return"'".concat(e||t.name,"' cannot be '").concat(o,"' when calling ").concat(i,"().")},INVALID_PARAMETER_INSTANCE(A){let{key:e,rule:t,fnName:i,value:o}=A,g="".concat(e||t.name),r="".concat(t.instanceOf.name||t.instanceOf);return"'".concat(g,"' must be instanceof ").concat(r," when calling ").concat(i,"(), received type: ").concat(ho(o),".")},INVALID_PARAMETER_RANGE(A){let{key:e,rule:t,fnName:i,value:o}=A;return"'".concat(e||t.name,"' must be one of ").concat(t.values.join("|")," when calling ").concat(i,"(), received: ").concat(o,".")},INVALID_PARAMETER_MIN(A){let{key:e,rule:t,fnName:i,value:o}=A;return"the min value of ".concat(e||t.name," is ").concat(t.min,", received: ").concat(o,".")},INVALID_PARAMETER_MAX(A){let{key:e,rule:t,fnName:i,value:o}=A;return"the max value of ".concat(e||t.name," is ").concat(t.max,", received: ").concat(o,".")},API_CALL_TIMEOUT:A=>"".concat(A.commandDesc||A.command," timeout observed."),SIGNAL_CHANNEL_RECONNECTION_FAILED:"signal channel reconnection failed, please check your network.",SIGNAL_CHANNEL_SETUP_FAILED:A=>"SignalChannel setup failure: (errorCode: ".concat(A.errorCode,", errorMsg: ").concat(A.errorMsg," })."),ERROR_MESSAGE(A){let e="".concat(A.type," failed");return A.message&&(e="".concat(e,": ").concat(A.message,".")),e},EXCHANGE_SDP_TIMEOUT:"exchange sdp timeout.",DOWNLINK_RECONNECTION_FAILED:"downlink reconnection failed, please check your network and re-join room.",EXCHANGE_SDP_FAILED:A=>"exchange sdp failed ".concat(A.errMsg,"."),UPDATE_OFFER_TIMEOUT:"update offer timeout observed.",UPLINK_RECONNECTION_FAILED:"uplink reconnection failed, please check your network and publish again.",INVALID_RECORDID:"recordId must be an integer number.",INVALID_PURE_AUDIO:"pureAudioPushMode must be 1 or 2.",INVALID_STREAMID:"streamId must be a sting literal within 64 bytes, and not be empty.",INVALID_USER_DEFINE_RECORDID:"userDefineRecordId must be a sting literal contains (a-zA-Z),(0-9), underline and hyphen, within 64 bytes, and not be empty.",INVALID_USER_DEFINE_PUSH_ARGS:"userDefinePushArgs must be a sting literal within 256 bytes, and not be empty.",INVALID_PROXY:'proxy server url must start with "wss://".',INVALID_JOIN:"duplicate join() called.",INVALID_ROOMID_STRING:A=>"'".concat(A,"' must be validate string when useStringRoomId is true."),INVALID_ROOMID_INTEGER:A=>"'".concat(A,"' must be an integer between [1, 4294967294] when useStringRoomId is false."),INVALID_SIGNAL_CHANNEL:"SignalChannel is not ready yet.",JOIN_ROOM_TIMEOUT:"join room timeout.",JOIN_ROOM_FAILED(A){let{error:e,code:t}=A;return"Failed to join room - ".concat(e," code: ").concat(t)},REJOIN_ROOM_FAILED:A=>"reJoin room: ".concat(A.roomId," failed, please check your network."),INVALID_DESTROY:"please call leave() before destroy().",INVALID_PUBLISH:"please call join() before publish().",INVALID_UNPUBLISH:"stream has not been published yet.",INVALID_AUDIENCE:'no permission to publish() under live/audience, please call switchRole("anchor") firstly before publish().',INVALID_INITIALIZE:"cannot publish stream because stream is not initialized, is switching device, or has been closed.",INVALID_DUPLICATE_PUBLISHING:A=>"duplicate ".concat(A," stream publishing, please unpublish your prev ").concat(A," stream and then re-publish."),INVALID_SUBSCRIBE_UNDEFINED:"stream is undefined or null.",INVALID_SUBSCRIBE_LOCAL:"stream cannot be LocalStream.",INVALID_REMOTE_STREAM:"remoteStream does not exist because it has been unpublished by remote peer.",SUBSCRIBE_FAILED(A){let{message:e,userId:t,streamType:i}=A;return"failed to subscribe ".concat(t," ").concat(i," stream, reason: ").concat(e,".")},INVALID_ROLE:"switchRole can only be called in live mode.",INVALID_PARAMETER_SWITCH_ROLE:"role could only be set to a value as anchor or audience.",INVALID_OPERATION_SWITCH_ROLE:"please call join() before switchRole().",SWITCH_ROLE_TIMEOUT:"switchRole timeout.",SWITCH_ROLE_FAILED:A=>"switchRole failed, errCode: ".concat(A.code," errMsg: ").concat(A.message,"."),CLIENT_BANNED:A=>"client was banned because of ".concat(A.message,"."),INVALID_OPERATION_START_PUBLISH_CDN:"please call startPublishCDNStream() after join room and publish the local stream.",INVALID_OPERATION_STOP_PUBLISH_CDN:"please call startPublishCDNStream() before stopPublishCDNStream().",START_PUBLISH_CDN_FAILED:A=>"startPublishCDNStream failed, errMsg: ".concat(A.message,"."),STOP_PUBLISH_CDN_FAILED:A=>"stopPublishCDNStream failed, errMsg: ".concat(A.message,"."),INVALID_STREAM_ID:A=>"'".concat(A,"' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores."),START_MIX_TRANSCODE:"please call startMixTranscode() after join().",STOP_MIX_TRANSCODE:"please call stopMixTranscode() after startMixTranscode().",INVALID_AUDIO_VOLUME:"interval must be a number.",ENABLE_SMALL_STREAM_PUBLISHED:"Cannot enable small stream after localStream published.",DISABLE_SMALL_STREAM_PUBLISHED:"Cannot disable small stream after localStream published.",NOT_SUPPORTED_SMALL_STREAM:"your browser does not support opening small stream.",INVALID_SMALL_STREAM_PROFILE:"small stream profile is invalid.",INVALID_PARAMETER_REMOTE_STREAM:"remoteStream is invalid.",INVALID_OPERATION_CHANGE_SMALL:"cannot switch to the small stream without subscribing to the video of remoteStream.",REMOTE_NOT_PUBLISH_SMALL_STREAM:"remote peer does not publish small stream.",INVALID_SWITCH_DEVICE:"cannot switch device on current stream.",INVALID_SWITCH_DEVICE_PUBLISHING:"cannot switch device when publishing localStream.",INVALID_REPLACE_TRACK:"cannot replace track when publishing localStream.",INVALID_INITIALIZE_LOCAL_STREAM:"local stream has not initialized yet.",INVALID_ADD_TRACK_REPETITIVE:"previous addTrack is ongoing, please avoid repetitive execution.",INVALID_ADD_TRACK_REMOVING:"cannot add track when a track is removing.",INVALID_ADD_TRACK_PUBLISHING:"cannot add track when publishing localStream.",INVALID_STREAM_INITIALIZED:"your local stream haven't been initialized yet.",INVALID_ADD_TRACK_NUMBER:"a Stream has at most one audio track and one video track.",INVALID_REMOVE_AUDIO_TRACK:"remove audio track is not supported on your browser.",INVALID_REMOVE_AUDIO_ADDING:"cannot remove track when a track is adding.",INVALID_REMOVE_AUDIO_ON:"previous removeTrack is ongoing, please avoid repetitive execution.",INVALID_REMOVE_TRACK_PUBLISHING:"cannot remove track when publishing localStream.",INVALID_REMOVE_TRACK_NOT_TRACK:"localStream has not this track.",INVALID_REMOVE_TRACK_NUMBER:"remove the only video track is not supported, please use replaceTrack or muteVideo.",INVALID_REPLACE_TRACK_NO_TRACK:A=>"cannot replace ".concat(A.kind," track because stream has not ").concat(A.kind," track"),NOT_BUG_PACKAGE:"You need to buy packages, refer to tencent console.",START_MIX_TRANSCODE_FAILED:A=>"startMixTranscode failed, errMsg: ".concat(A.message,"."),STOP_MIX_TRANSCODE_FAILED:A=>"stopMixTranscode failed, errMsg: ".concat(A.message,"."),MIX_TRANSCODE_NOT_STARTED:"mixTranscode has not been started.",CANNOT_LESS_THAN_ZERO(A){let{key:e,rule:t,fnName:i,value:o}=A;return"'".concat(e||t.name,"' cannot be less than 0 when calling ").concat(i,"().")},MIX_PARAMS_VIDEO_FRAMERATE:"'config.videoFramerate' should be an integer between 0 and 30, excluding 0.",MIX_PARAMS_VIDEO_GOP:"'config.videoGOP' should be an integer between 1 and 8.",MIX_PARAMS_AUDIO_BITRATE:"'config.audioBitrate' should be an integer between 32 and 192.",MIX_PARAMS_USER_Z_ORDER:A=>"'".concat(A,"' is required and must be between 1 and 15."),MIX_PARAMS_NOT_SELF:"'config.mixUsers' must contain self.",MIX_PARAMS_USER_STREAM:"'config.videoWidth' and 'config.videoHeight' of output stream should be contain all mix stream.",INVALID_PLAY:"duplicate play() call observed, please stop() firstly.",INVALID_ELEMENT_ID:A=>{let{key:e,fnName:t}=A;return"'".concat(e,"' is not found in the document object when calling ").concat(t,"().")},INVALID_ELEMENT_ID_TYPE:A=>{let{key:e,fnName:t,type:i}=A;return"the element corresponding to '".concat(e,"' must be instanceof HTMLElement when calling ").concat(t,"(), received: ").concat(i,".")},PLAY_FAILED:A=>"".concat(A.media," play failed, browser exception: ").concat(A.error.toString()),INVALID_USERID:"userId cannot be all spaces.",INVALID_CREATE_STREAM_SOURCE:"LocalStream must be created by createStream() with either audio/video or audioSource/videoSource, but can not be mixed with audio/video and audioSource/videoSource.",INVALID_CREATE_STREAM_SCREEN:"screen/video cannot be both true.",INVALID_CREATE_STREAM_AUDIO:"audio/screenAudio cannot be both true.",INVALID_CREATE_STREAM_SCREEN_AUDIO:"when screen is true, screenAudio can be configured.",NOT_SUPPORTED_HTTP:"http protocol does not support the ability to capture microphone, camera and screen. please use https to deploy your page.",NOT_SUPPORTED_WEBRTC:"your browser or environment does not support full WebRTC capabilities.",NOT_SUPPORTED_PROFILE:"your browser does not support setVideoProfile.",NOT_SUPPORTED_MEDIA:"your browser or environment does not support navigator.mediaDevices.",NOT_SUPPORTED_H264ENCODE:"your device does not support H.264 encoding.",NOT_SUPPORTED_H264DECODE:"your device does not support H.264 decoding.",NOT_SUPPORTED_TRACK:A=>"".concat(A,"Track is not supported on your browser."),NOT_SUPPORTED_SWITCH_DEVICE:"switchDevice is not supported on your browser.",NOT_SUPPORTED_CAPTURE:"Your browser or environment does not support screen sharing, please check whether the browser version.",MICROPHONE_NOT_FOUND:"no microphone detected, please check your microphone.",CAMERA_NOT_FOUND:"no camera detected, please check your camera.",SIGNAL_RESPONSE_FAILED:A=>"".concat(A.signalResponse," failed, response code is ").concat(A.code," , errMsg: ").concat(A.message,"."),CATCH_HANDLER_ERROR(A){let{name:e,event:t}=A;return"an error was caught in ".concat(e,".on('").concat(t,"', handler), please check your code in 'handler'.")},API_NOT_EXIST(A){let{name:e}=A;return"experimental api ".concat(e," does not exist.")},REPEAT_JOIN:A=>"please avoid repeated join.",CONNECTION_CLOSED:"remoteStream has been unsubscribed or unpublished by remote user.",SUBSCRIBE_ALL_FALSE:"cannot subscribe when both audio & video are false, use client.unsubscribe() instead",CLIENT_DESTROYED(A){let{funName:e}=A;return"failed to call ".concat(e,"() because client was destroyed.")},SEI_NOT_SUPPORT:A=>"not support to sendSEIMessage".concat(A===!1?" without using h264 codec":""),SEI_DISABLED:"SEI is disabled",SEI_BEFORE_PUBLISH:"please call sendSEIMessage() after publish() success",SEI_NOT_VIDEO:"cannot send sei when localStream has not video.",CALL_FREQUENCY_LIMIT:A=>{let{isSize:e,name:t,timesInSecond:i,maxSizeInSecond:o}=A;return"api ".concat(t," call ").concat(e?"size":"times"," is over ").concat(e?"".concat(o," bytes"):i," in a second.")},CONNECTION_ABORTED:A=>"connection aborted due to: ".concat(A),API_CALL_ABORTED(A){let e;return e=A.message.includes("REMOTE_STREAM_NOT_EXIST")?"Subscribe ".concat(A.userId," ").concat(A.streamType," stream aborted, reason: remote user ").concat(A.userId," unpublished stream."):"API aborted, reason: ".concat(A.message),e},DUPLICATE_AUX:"only one auxiliary stream can be published in a room.",NOT_SUPPORTED_AUX:"publish auxiliary stream is not supported on your browser.",INVALID_PARAMETER_STREAMTYPE:A=>"'streamType' is required when 'userId' is not '*', calling ".concat(A,"()")},BG=(A,e)=>e?"".concat(gI,"/").concat(A,"/").concat(e):"".concat(gI,"/").concat(A,"/index.html"),zv=()=>{if(window.TRTC_ERROR_INFO&&window.TRTC_ERROR_LINK)return{TRTC_ERROR_INFO:window.TRTC_ERROR_INFO,TRTC_ERROR_LINK:window.TRTC_ERROR_LINK};let A=localStorage==null?void 0:localStorage.getItem(rv);if(A){A=JSON.parse(A);let e=document.createElement("script");e.type="text/javascript",e.text=A.message,document.body.appendChild(e);let t=window.TRTC_ERROR_INFO,i=window.TRTC_ERROR_LINK;return document.body.removeChild(e),{TRTC_ERROR_INFO:t,TRTC_ERROR_LINK:i}}return{}};function nt(A){let{key:e,data:t,link:i,addDocLink:o=!0}=A,g="",r="",n="";Ni(kr[e])?g=kr[e](t):ai(kr[e])&&(g=kr[e]);let{TRTC_ERROR_INFO:I,TRTC_ERROR_LINK:C}=zv();i?n="".concat(i.className,".html#").concat(i.fnName):C&&C[e]&&(Ni(C[e])?n=C[e](t):ai(C[e])&&(n=C[e]));let u=g;return II()&&(I&&I[e]&&(Ni(I[e])?r=I[e](t):ai(I[e])&&(r=I[e])),r&&(u=o?"".concat(r,`
|
||
请查看文档: `).concat(BG("zh-cn",n),`
|
||
|
||
`):"".concat(r,`
|
||
|
||
`),u+=g)),o&&(u+=`
|
||
Refer to: `.concat(BG("en",n),`
|
||
`)),u}var Lt,$v=Mo(ev(),1),AT=class{constructor(){let A=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];l(this,"countMap",new Map),l(this,"distributionMap",new Map),l(this,"version"),l(this,"log",K.createLogger({id:"kv"})),A&&(N.on("102",(e=>{let{track:t,cost:i}=e;this.addSuccessEvent({key:t.kind===V.AUDIO?501700:511700,cost:i})})),N.on("103",(e=>{let{track:t,error:i}=e;this.addFailedEvent({key:t.kind===V.AUDIO?501700:511700,error:i})})),N.on("266",(e=>{let{enable:t}=e;this.log.info("".concat(t?"enable":"disable"," sso")),t?this.addSuccessEvent({key:525701}):this.addFailedEvent({key:525701})})))}getReportData(A,e){let t={msg_sdk_basic_info:{uint32_sdk_version:bS(this.version||ia),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map((i=>{let[o,g]=i;return{uint32_key:o,uint32_count:g}})),stats_distribution:[...this.distributionMap.entries()].map((i=>{let[o,g]=i;return{uint32_key:o,distribution_items:[...g.entries()].map((r=>{let[n,I]=r;return{uint32_item_key:n,uint32_item_value:I}}))}})),str_user_sig:A,bytes_report_token:e};return this.countMap.clear(),this.distributionMap.clear(),t}clear(){this.countMap.clear(),this.distributionMap.clear()}isEnumKey(A){let e=+String(A).slice(-3);return e>=700&&e<799}isErrorCodeKey(A){let e=+String(A).slice(-3);return e>=600&&e<699}isCountKey(A){let e=+String(A).slice(-3);return e>=0&&e<599}isNumberKey(A){let e=+String(A).slice(-3);return e>=800&&e<899}addCount(A){let{key:e,useUV:t=!1}=A;this.isCountKey(e)?t&&this.countMap.has(e)||this.countMap.set(e,(this.countMap.get(e)||0)+1):this.log.debug("".concat(e," is not count key, last 3 number should be 0~599"))}addEnum(A){let{key:e,value:t,useUV:i=!0}=A;var o;if(!this.isEnumKey(e))return this.log.debug("".concat(e," is not enum key, last 3 number should be 700~799"));if(i&&this.countMap.has(e))return;this.countMap.set(e,(this.countMap.get(e)||0)+1);let g=((o=this.distributionMap)==null?void 0:o.get(e))||new Map;g.set(t,(g.get(t)||0)+1),this.distributionMap.set(e,g)}addNumber(A){let{key:e,value:t,split:i=100,useUV:o=!1,max:g=5e3}=A;var r;if(!this.isNumberKey(e))return this.log.debug("".concat(e," is not number key, last 3 number should be 800~899"));if(o&&this.countMap.has(e))return;t>g&&(t=g),this.countMap.set(e,(this.countMap.get(e)||0)+1);let n=((r=this.distributionMap)==null?void 0:r.get(e))||new Map,I=0;if(Zt(i))I=Math.floor(t/i);else for(let C=i.length-1;C>0;C--)if(t>i[C]){I=C;break}n.set(I,(n.get(I)||0)+1),this.distributionMap.set(e,n)}addSuccessEvent(A){let{key:e,cost:t,timeKey:i,split:o}=A;if(e&&(this.addEnum({key:e,value:1,useUV:!1}),t)){let g=+String(e).slice(-3);g<800&&g>=700?this.addNumber({key:i||e+100,value:t,split:o}):i||this.log.debug("time stat ignored, ".concat(e))}}addFailedEvent(A){let{key:e,error:t}=A;if(!e)return;let i=OA.UNKNOWN;t&&(Zt(t)?i=t:(!yA(t.extraCode)||!yA(t.code))&&(i=t.extraCode||t.code)),this.addEnum({key:e,value:0,useUV:!1}),this.addEnum({key:e,value:Math.abs(i),useUV:!1})}},nc=(A=>(A[A.enterRoom=500700]="enterRoom",A[A.exitRoom=500701]="exitRoom",A[A.switchRole=500702]="switchRole",A[A.destroy=500703]="destroy",A[A.startLocalAudio=500704]="startLocalAudio",A[A.updateLocalAudio=500705]="updateLocalAudio",A[A.stopLocalAudio=500706]="stopLocalAudio",A[A.startLocalVideo=500707]="startLocalVideo",A[A.updateLocalVideo=500708]="updateLocalVideo",A[A.stopLocalVideo=500709]="stopLocalVideo",A[A.startScreenShare=500710]="startScreenShare",A[A.updateScreenShare=500711]="updateScreenShare",A[A.stopScreenShare=500712]="stopScreenShare",A[A.startRemoteVideo=500713]="startRemoteVideo",A[A.updateRemoteVideo=500714]="updateRemoteVideo",A[A.stopRemoteVideo=500715]="stopRemoteVideo",A[A.muteRemoteAudio=500716]="muteRemoteAudio",A[A.setRemoteAudioVolume=500717]="setRemoteAudioVolume",A[A.use=500718]="use",A[A.switchRoom=500719]="switchRoom",A[A.sendSEIMessage=5e5]="sendSEIMessage",A[A.sendCustomMessage=500001]="sendCustomMessage",A))(nc||{}),vy=(A=>(A[A.AudioMixer=550700]="AudioMixer",A[A.AIDenoiser=551700]="AIDenoiser",A[A.VirtualBackground=570700]="VirtualBackground",A[A.Beauty=571700]="Beauty",A[A.Watermark=572700]="Watermark",A[A.BasicBeauty=574700]="BasicBeauty",A[A.CDNStreaming=590700]="CDNStreaming",A[A.DeviceDetector=591700]="DeviceDetector",A[A.Debug=592700]="Debug",A[A.SmallStreamAutoSwitcher=593700]="SmallStreamAutoSwitcher",A[A.VideoMixer=594700]="VideoMixer",A[A.AudioProcessor=595700]="AudioProcessor",A))(vy||{}),sc=(A=>(A[A.AudioMixer=550701]="AudioMixer",A[A.AIDenoiser=551701]="AIDenoiser",A[A.VirtualBackground=570701]="VirtualBackground",A[A.Beauty=571701]="Beauty",A[A.Watermark=572701]="Watermark",A[A.BasicBeauty=574701]="BasicBeauty",A[A.CDNStreaming=590701]="CDNStreaming",A[A.DeviceDetector=591701]="DeviceDetector",A[A.Debug=592701]="Debug",A[A.SmallStreamAutoSwitcher=593701]="SmallStreamAutoSwitcher",A[A.VideoMixer=594701]="VideoMixer",A[A.AudioProcessor=595701]="AudioProcessor",A))(sc||{}),eT=(A=>(A[A.AudioMixer=550702]="AudioMixer",A[A.AIDenoiser=551702]="AIDenoiser",A[A.VirtualBackground=570702]="VirtualBackground",A[A.Beauty=571702]="Beauty",A[A.Watermark=572702]="Watermark",A[A.BasicBeauty=574702]="BasicBeauty",A[A.CDNStreaming=590702]="CDNStreaming",A[A.DeviceDetector=591702]="DeviceDetector",A[A.Debug=592702]="Debug",A[A.SmallStreamAutoSwitcher=593702]="SmallStreamAutoSwitcher",A[A.VideoMixer=594702]="VideoMixer",A[A.AudioProcessor=595702]="AudioProcessor",A))(eT||{}),Ec=((Lt=Ec||{})[Lt.DECODER_TYPE=514700]="DECODER_TYPE",Lt[Lt.DECODER_HW_SW=514701]="DECODER_HW_SW",Lt[Lt.DECODE_RESULT=514702]="DECODE_RESULT",Lt[Lt.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",Lt[Lt.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",Lt[Lt.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",Lt[Lt.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",Lt[Lt.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",Lt[Lt.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",Lt[Lt.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",Lt[Lt.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",Lt[Lt.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",Lt[Lt.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",Lt[Lt.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",Lt[Lt.H264_PROFILE_LEVEL_ID_HIGH=514714]="H264_PROFILE_LEVEL_ID_HIGH",Lt[Lt.H264_PROFILE_LEVEL_ID_MAIN=514715]="H264_PROFILE_LEVEL_ID_MAIN",Lt[Lt.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",Lt[Lt.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",Lt[Lt.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",Lt),$Y=new AT(!0),Js=new AT(!1),ee=$Y,lt={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}},AJ=new Map([[ei,["Firefox",OS]],[gu,["Edg",qS]],[Ry,["Chrome",AG]],[ko,["Safari",wB]],[sI,["TBS",WS]],[vs,["XWEB",ZS]],[XQ&&pB,["WeChat",XS]],[$Q,["QQ(Win)",zS]],[ru,["QQ(Mobile)",au]],[zQ,["QQ(Mobile X5)",au]],[sy,["QQ(Mac)",Ey]],[By,["QQ(iPad)",Cy]],[Qy,["MI",cy]],[hy,["HW",ly]],[ec,["Samsung",uy]],[Us,["OPPO",dy]],[Dy,["VIVO",py]],[yB,["EDGE",ry]],[Iy,["SogouMobile",PS]],[ny,["Sogou",VS]]]);function eJ(){let A=AJ.get(!0);return{browserName:A?A[0]:"unknown",browserVersion:A?A[1]:"unknown"}}var CG=function(){return!(Ov||yB||gu&&ay<80||ei&&jQ<56)},Ty=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every((A=>A in window))},BI=function(){if(!navigator.mediaDevices)return NB()||K.error(kr.NOT_SUPPORTED_MEDIA),!1;let A=["getUserMedia","enumerateDevices"];return A.filter((e=>e in navigator.mediaDevices)).length===A.length},Uy=!1;function NB(){return location.protocol==="http:"&&!_s&&(Uy||K.error(nt({key:$e.NOT_SUPPORTED_HTTP})),Uy=!0,!0)}var lu=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},tJ=function(){return!(window==null||!window.MediaStreamTrackGenerator)},QG=function(){return X(this,null,(function*(){var A,e,t;if(lt.detail.isH264EncodeSupported&<.detail.isVp8EncodeSupported)return{isH264EncodeSupported:lt.detail.isH264EncodeSupported,isVp8EncodeSupported:lt.detail.isVp8EncodeSupported,isH265EncodeSupported:lt.detail.isH265EncodeSupported};let i,o=!1,g=!1,r=!1;try{let n=new RTCPeerConnection,I=document.createElement(V.CANVAS);I.getContext("2d");let C=I.captureStream(0);return n.addTrack(C.getVideoTracks()[0],C),i=yield n.createOffer(),o=((A=i.sdp)==null?void 0:A.toLowerCase().indexOf("h264"))!==-1,g=((e=i.sdp)==null?void 0:e.toLowerCase().indexOf("vp8"))!==-1,r=((t=i.sdp)==null?void 0:t.toLowerCase().indexOf("h265"))!==-1,n.close(),{isH264EncodeSupported:o,isVp8EncodeSupported:g,isH265EncodeSupported:r}}catch{return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1}}}))},cG=function(){return X(this,null,(function*(){var A;if(lt.detail.isH264DecodeSupported&<.detail.isVp8DecodeSupported)return{isH264DecodeSupported:lt.detail.isH264DecodeSupported,isVp8DecodeSupported:lt.detail.isVp8DecodeSupported,isH265DecodeSupported:lt.detail.isH265DecodeSupported};let e,t=!1,i=!1;try{let o=new RTCPeerConnection;_a()?(o.addTransceiver(V.VIDEO,{direction:"recvonly"}),e=yield o.createOffer()):e=yield o.createOffer({offerToReceiveVideo:!0}),e.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),e.sdp.toLowerCase().indexOf("vp8")!==-1&&(i=!0);let g=((A=e.sdp)==null?void 0:A.toLowerCase().indexOf("h265"))!==-1;return o.close(),{isH264DecodeSupported:t,isVp8DecodeSupported:i,isH265DecodeSupported:g}}catch{return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}}}))},Bc=ty((A=>X(void 0,null,(function*(){let e=Date.now(),t=xy(),i=BI(),o=Ty();if(lt.detail.isWebRTCSupported=t,lt.detail.isMediaDevicesSupported=i,lt.detail.isWebCodecsSupported=o,lt.detail.isScreenShareSupported=_y(),lt.detail.isSmallStreamSupported=Du(),A===37)return Object.assign(lt.detail,yield(function(){return X(this,null,(function*(){return uu||(uu=new Promise((H=>X(this,null,(function*(){let gA={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!Ty())return void H(gA);let EA=null,TA=null,hA=null,ZA=()=>{hA&&clearTimeout(hA),EA=null,TA=null};try{EA=document.createElement("canvas"),TA=EA.getContext("2d"),EA.width=320,EA.height=240;let BA=0,xA=()=>{!TA||!EA||(TA.fillStyle="hsl(".concat(BA%360,", 50%, 50%)"),TA.fillRect(0,0,EA.width,EA.height),TA.fillStyle="white",TA.font="20px Arial",TA.fillText("Frame ".concat(BA),10,30),BA++)};hA=setTimeout((()=>{ZA(),H(gA)}),5e3);let ie=[{type:"h264",encodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"},width:320,height:240,bitrate:1e6},decodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"}}},{type:"vp8",encodeConfig:{codec:"vp8",width:320,height:240,bitrate:1e6},decodeConfig:{codec:"vp8"}}];(yield Promise.all(ie.map((ge=>X(this,null,(function*(){let qe,ct={type:ge.type,encodeSupported:!1,decodeSupported:!1};try{qe=yield new Promise(((Pe,Ji)=>X(this,null,(function*(){try{let mt=new VideoEncoder({output:To=>{Pe(To),ct.encodeSupported=!0},error:Ji});mt.configure(ge.encodeConfig),xA();let Mi=new VideoFrame(EA,{timestamp:0});mt.encode(Mi,{keyFrame:!0}),Mi.close(),yield mt.flush(),mt.close()}catch(mt){Ji(mt)}}))))}catch(Pe){return K.warn("".concat(ge.type," encoder error:"),Pe),ct}try{yield new Promise(((Pe,Ji)=>X(this,null,(function*(){try{let mt=new VideoDecoder({output:Mi=>{ct.decodeSupported=!0,Pe(0),Mi.close()},error:Ji});mt.configure(ge.decodeConfig),mt.decode(qe),yield mt.flush(),mt.close()}catch(mt){Ji(mt)}}))))}catch(Pe){K.warn("".concat(ge.type," decoder error:"),Pe)}return ct})))))).forEach((ge=>{ge.type==="h264"?(gA.isH264EncodeSupported=ge.encodeSupported,gA.isH264DecodeSupported=ge.decodeSupported):ge.type==="vp8"&&(gA.isVp8EncodeSupported=ge.encodeSupported,gA.isVp8DecodeSupported=ge.decodeSupported)})),ZA(),H(gA)}catch(BA){ZA(),K.warn("detectWebCodecsSupported failed:",BA),H(gA)}})))),uu)}))})()),lt.detail.isBrowserSupported=o,lt.result=i&&o,lt.result||K.error("".concat(navigator.userAgent," ").concat($p(lt.detail,!1))),RG(A),ee.addNumber({key:523800,value:Date.now()-e}),lt;if(lt.result&<.detail.isH264EncodeSupported&<.detail.isVp8EncodeSupported&<.detail.isH265EncodeSupported&<.detail.isH264DecodeSupported&<.detail.isVp8DecodeSupported&<.detail.isH265DecodeSupported)return lt;let g=CG(),{encode:r,decode:n}=yield(function(){return X(this,null,(function*(){let[H,gA]=yield Promise.all([QG(),cG()]);return{encode:{h264:H.isH264EncodeSupported,vp8:H.isVp8EncodeSupported,h265:H.isH265EncodeSupported},decode:{h264:gA.isH264DecodeSupported,vp8:gA.isVp8DecodeSupported,h265:gA.isH265DecodeSupported}}}))})(),{h264:I,vp8:C}=r,{h264:u}=n,{h265:R}=r,{vp8:M,h265:L}=n;if(!I||!C){let H=yield QG();K.warn("detect encode again h264:".concat(I," vp8:").concat(C," result: ").concat(JSON.stringify(H))),I=H.isH264EncodeSupported,C=H.isVp8EncodeSupported}if(I&&u&&Oi&&Fg&&!vs&&!sI&&(!Us||Gr!==115)){let{encode:H,decode:gA}=yield(function(){return X(this,null,(function*(){return Ia||(Ia=new Promise((EA=>X(this,null,(function*(){let TA={encode:!1,decode:!1},hA=()=>{};try{let ZA=document.createElement("canvas"),BA=ZA.getContext("2d");ZA.width=640,ZA.height=480;let xA=setInterval((()=>{BA.fillText("test",Math.floor(640*Math.random()),Math.floor(480*Math.random()))}),66),ie=-1,ge=-1;hA=()=>{clearInterval(ie),clearInterval(xA),clearTimeout(ge),ct.close(),Pe.close(),qe.getTracks().forEach((xi=>xi.stop()))},ge=setTimeout((()=>{hA(),EA(TA)}),2e3);let qe=ZA.captureStream(),ct=new RTCPeerConnection({}),Pe=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});ct.addEventListener("icecandidate",(xi=>Pe.addIceCandidate(xi.candidate))),Pe.addEventListener("icecandidate",(xi=>ct.addIceCandidate(xi.candidate))),ct.addTrack(qe.getVideoTracks()[0],qe);let Ji=yield ct.createOffer();yield ct.setLocalDescription(Ji),yield Pe.setRemoteDescription(Ji);let mt=yield Pe.createAnswer(),Mi=$v.default.parse(mt.sdp),To=Mi.media[0].rtp.findIndex((xi=>xi.codec==="H264"));Mi.media[0].rtp=[Mi.media[0].rtp[To]],Mi.media[0].fmtp=Mi.media[0].fmtp.filter((xi=>xi.payload===Mi.media[0].rtp[0].payload)),Mi.media[0].rtcpFb&&(Mi.media[0].rtcpFb=Mi.media[0].rtcpFb.filter((xi=>xi.payload===Mi.media[0].rtp[0].payload))),mt.sdp=$v.default.write(Mi),yield Pe.setLocalDescription(mt),yield ct.setRemoteDescription(mt),ie=setInterval((()=>X(this,null,(function*(){TA.encode&&TA.decode&&(hA(),EA(TA));let[xi,oR]=yield Promise.all([ct.getSenders()[0].getStats(),Pe.getReceivers()[0].getStats()]);TA.encode||xi.forEach((cI=>{cI.type==="outbound-rtp"&&cI.mediaType===V.VIDEO&&cI.bytesSent>0&&(TA.encode=!0)})),TA.decode||oR.forEach((cI=>{cI.type==="inbound-rtp"&&cI.mediaType===V.VIDEO&&cI.bytesReceived>0&&(TA.decode=!0)}))}))),100)}catch(ZA){hA(),K.warn("detectH264Supported failed",ZA),EA({encode:!0,decode:!0})}})))).then((EA=>(EA.encode||(EA.decode=!0),(!EA.encode||!EA.decode)&&K.warn("detectH264Supported encode: ".concat(EA.encode," decode: ").concat(EA.decode," ").concat(Ta)),EA))),Ia)}))})();I=H,u=gA}return lt.result=g&&t&&i&&(I||C)&&(u||M),lt.detail.isBrowserSupported=g,lt.detail.isWebRTCSupported=t,lt.detail.isH264EncodeSupported=I,lt.detail.isVp8EncodeSupported=C,lt.detail.isH265EncodeSupported=R,lt.detail.isH264DecodeSupported=u,lt.detail.isVp8DecodeSupported=M,lt.detail.isH265DecodeSupported=L,lt.result||K.error("".concat(navigator.userAgent," ").concat($p(lt.detail,!1))),RG(),ee.addNumber({key:523800,value:Date.now()-e}),lt})))),iJ=function(){return lt.result},_y=function(){return!(!navigator.mediaDevices||!navigator.mediaDevices.getDisplayMedia)},oJ=typeof HTMLMediaElement<"u"&&"setSinkId"in HTMLMediaElement.prototype,Ia=null,uu=null,gJ=(A,e,t)=>{location.protocol==="http:"&&!_s&&(A[e]=()=>{throw new oe({code:OA.INVALID_OPERATION,message:kr.NOT_SUPPORTED_HTTP})})},vg=function(A){return!(A.type!=="candidate-pair"||!A.nominated||A.state!=="in-progress"&&A.state!=="succeeded")&&!(fi(A.selected)&&!A.selected)};function hG(){let A="";if(screen.width){let e=screen.width?screen.width*window.devicePixelRatio:"",t=screen.height?screen.height*window.devicePixelRatio:"";A+="".concat(e," * ").concat(t)}return A}function lG(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function du(){let A={isSupported:!1},e=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"];for(let t=0;t<e.length;t++)if(e[t]in window){A.isSupported=!0;break}return A.isSupported}function uG(){return"captureStream"in HTMLCanvasElement.prototype}function Ly(){return!(XQ||uo||Gr&&Gr<63)&&!(!CG()||!uG())}function by(){return!(Gr<74||yB||va<11||jQ<46)}function Du(){return Ly()||by()}var dG=function(){if(yA(window.RTCRtpTransceiver)||!_a()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let A=null,e=!1;try{A=new RTCPeerConnection({sdpSemantics:_l}),A.addTransceiver(V.AUDIO),e=!0}catch{}return A==null||A.close(),e};function $g(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function FB(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function Cc(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function _a(){return!(va===11&&!iG)&&"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var yi=!(!_a()||Fg&&Gr<86);function Qc(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var pu="RTCRtpSender"in window;function tT(){return pu&&"replaceTrack"in window.RTCRtpSender.prototype}function Yy(){return pu&&"setParameters"in window.RTCRtpSender.prototype&&FB()}var iT="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,cc=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,oT=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,gT=typeof InputDeviceInfo<"u"&&"getCapabilities"in InputDeviceInfo.prototype,vB=pu&&"createEncodedStreams"in window.RTCRtpSender.prototype&&yy()>=86,Jy="RTCRtpScriptTransform"in window,hc=pu&&(vB||Jy),xy=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter((A=>A in window)).length>0};function DG(){let A={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return yA(window.AudioDecoder)||(A.AudioDecoder=!0),yA(window.AudioEncoder)||(A.AudioEncoder=!0),yA(window.VideoDecoder)||(A.VideoDecoder=!0),yA(window.VideoEncoder)||(A.VideoEncoder=!0),yA(window.ImageDecoder)||(A.ImageDecoder=!0),A}function lc(){return"mediaSession"in navigator&&!yA(navigator.mediaSession.setActionHandler)}function yu(){return!yA(window.WebTransport)}function pG(){return typeof WebAssembly<"u"&&WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]))}function rT(){let A={browser:"".concat(wn.name,"/").concat(wn.version),os:rG(),displayResolution:hG(),isScreenShareSupported:_y(),isWebRTCSupported:xy(),isGetUserMediaSupported:lG(),isWebAudioSupported:du(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:DG(),isMediaSessionSupported:lc(),isWebTransportSupported:yu()};return navigator.userAgent.includes("miniProgram")&&(A.browser="mini/".concat(A.browser)),A}var yG="checkResult";function RG(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:30;DA.setItem(yG+A,{ua:navigator.userAgent,checkResult:lt})}function Ky(A){NB();let e=DA.getItem(yG+A);e&&e.ua===navigator.userAgent&&e.checkResult&&(function(t,i){return!!ka(t)&&Object.keys(i).every((o=>o in t))})(e.checkResult.detail,lt.detail)&&(lt=e.checkResult),Bc(A)}function Gn(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var mG="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function aT(A){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[A]}var Ru=!1;function fG(){return X(this,null,(function*(){var A;try{if(Ru||(A=navigator==null?void 0:navigator.mediaCapabilities)==null||!A.encodingInfo)return;let e=Ut(),t=a();if(e===0||t===0)return;Ru=!0;let i=["H264","VP8","VP9","AV1","H265"],[o,g]=yield Promise.all([wG(i),IT(i)]);o&&Object.keys(o).forEach((I=>{let C=aT(I.toLowerCase());ee.addEnum({key:513707,value:+"".concat(C).concat(+o[I].supported).concat(+o[I].powerEfficient).concat(e).concat(t),useUV:!1})})),g&&Object.keys(g).forEach((I=>{let C=aT(I.toLowerCase());ee.addEnum({key:514713,value:+"".concat(C).concat(+g[I].supported).concat(+g[I].powerEfficient).concat(e).concat(t),useUV:!1})}));let{sender:r,receiver:n}=nT();ee.addEnum({key:513708,value:+"".concat(e).concat(t).concat(+r.high),useUV:!1}),ee.addEnum({key:513709,value:+"".concat(e).concat(t).concat(+r.main),useUV:!1}),ee.addEnum({key:514714,value:+"".concat(e).concat(t).concat(+n.high),useUV:!1}),ee.addEnum({key:514715,value:+"".concat(e).concat(t).concat(+n.main),useUV:!1})}catch(e){K.info("detectVideoCodecCapabilities failed",e)}}))}function wG(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1920,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1080,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:30,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:3e3;return X(this,null,(function*(){let g={};try{for(let r of A){let n=yield navigator.mediaCapabilities.encodingInfo({type:"webrtc",video:{contentType:"video/".concat(r),width:e,height:t,bitrate:o,framerate:i}});g[r]=n}}catch{}return g}))}function IT(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1920,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1080,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:30,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:3e3;return X(this,null,(function*(){let g={};try{for(let r of A){let n=yield navigator.mediaCapabilities.decodingInfo({type:"webrtc",video:{contentType:"video/".concat(r),width:e,height:t,bitrate:o,framerate:i}});g[r]=n}}catch{}return g}))}function nT(){let A={sender:{base:!1,main:!1,high:!1},receiver:{base:!1,main:!1,high:!1}};try{if(RTCRtpSender&&typeof RTCRtpSender.getCapabilities=="function"){let e=RTCRtpSender.getCapabilities("video");e&&e.codecs&&e.codecs.filter((t=>t.mimeType.toLowerCase()==="video/h264")).forEach((t=>{if(t.sdpFmtpLine){let i=t.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(i&&i[1])switch(i[1].slice(0,2)){case"42":A.sender.base=!0;break;case"4d":A.sender.main=!0;break;case"64":A.sender.high=!0}}}))}if(RTCRtpReceiver&&typeof RTCRtpReceiver.getCapabilities=="function"){let e=RTCRtpReceiver.getCapabilities("video");e&&e.codecs&&e.codecs.filter((t=>t.mimeType.toLowerCase()==="video/h264")).forEach((t=>{if(t.sdpFmtpLine){let i=t.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(i&&i[1])switch(i[1].slice(0,2)){case"42":A.receiver.base=!0;break;case"4d":A.receiver.main=!0;break;case"64":A.receiver.high=!0}}}))}}catch(e){K.warn("get H264 profile levelId failed",e)}return A}var Hy=Mo(Ng(),1),SG=Symbol("instance"),La=Symbol("cacheResult"),Oy=class{constructor(A,e,t){this.oldState=A,this.newState=e,this.action=t,this.aborted=!1}abort(A){this.aborted=!0,mu.call(A,this.oldState,new Error("action '".concat(this.action,"' aborted")))}toString(){return"".concat(this.action,"ing")}},GG=class extends Error{constructor(A,e,t){super(e),this.state=A,this.message=e,this.cause=t}},uc=new Map;function go(A,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return(i,o,g)=>{let r=t.action||o;if(!t.context){let I=uc.get(i)||[];uc.has(i)||uc.set(i,I),I.push({from:A,to:e,action:r})}let n=g.value;g.value=function(){let I=this;for(var C=arguments.length,u=new Array(C),R=0;R<C;R++)u[R]=arguments[R];if(t.context&&(I=pt.get(typeof t.context=="function"?t.context.call(this,...u):t.context)),I.state===e)return t.sync?I[La]:Promise.resolve(I[La]);I.state instanceof Oy&&I.state.action==t.abortAction&&I.state.abort(I);let M=null;Array.isArray(A)?A.length==0?I.state instanceof Oy&&I.state.abort(I):(typeof I.state!="string"||!A.includes(I.state))&&(M=new GG(I._state,"".concat(I.name," ").concat(r," to ").concat(e," failed: current state ").concat(I._state," not from ").concat(A.join("|")))):A!==I.state&&(M=new GG(I._state,"".concat(I.name," ").concat(r," to ").concat(e," failed: current state ").concat(I._state," not from ").concat(A)));let L=hA=>{if(t.fail&&t.fail.call(this,hA),t.sync){if(t.ignoreError)return hA;throw hA}return t.ignoreError?Promise.resolve(hA):Promise.reject(hA)};if(M)return L(M);let H=I.state,gA=new Oy(H,e,r);mu.call(I,gA);let EA=hA=>{var ZA;return I[La]=hA,gA.aborted||(mu.call(I,e),(ZA=t.success)===null||ZA===void 0||ZA.call(this,I[La])),hA},TA=hA=>(mu.call(I,H,hA),L(hA));try{let hA=n.apply(this,u);return(function(ZA){return typeof ZA=="object"&&ZA&&"then"in ZA})(hA)?hA.then(EA).catch(TA):t.sync?EA(hA):Promise.resolve(EA(hA))}catch(hA){return TA(new GG(I._state,"".concat(I.name," ").concat(r," from ").concat(A," to ").concat(e," failed: ").concat(hA),hA instanceof Error?hA:new Error(String(hA))))}}}}var MG=typeof window<"u"&&window.__AFSM__?(A,e)=>{window.dispatchEvent(new CustomEvent(A,{detail:e}))}:typeof importScripts<"u"?(A,e)=>{postMessage({type:A,payload:e})}:()=>{};function mu(A,e){let t=this._state;this._state=A;let i=A.toString();A&&this.emit(i,t),this.emit(pt.STATECHANGED,A,t,e),this.updateDevTools({value:A,old:t,err:e instanceof Error?e.message:String(e)})}var pt=class hI extends Hy.default{constructor(e,t,i){super(),this.name=e,this.groupName=t,this._state=hI.INIT,e||(e=Date.now().toString(36)),i?Object.setPrototypeOf(this,i):i=Object.getPrototypeOf(this),t||(this.groupName=this.constructor.name);let o=i[SG];o?this.name=o.name+"-"+o.count++:i[SG]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let e=Object.getPrototypeOf(this),t=uc.get(e)||[],i=new Set,o=[],g=[],r=new Set,n=Object.getPrototypeOf(e);uc.has(n)&&(n.stateDiagram.forEach((C=>i.add(C))),n.allStates.forEach((C=>r.add(C)))),t.forEach((C=>{let{from:u,to:R,action:M}=C;typeof u=="string"?o.push({from:u,to:R,action:M}):u.length?u.forEach((L=>{o.push({from:L,to:R,action:M})})):g.push({to:R,action:M})})),o.forEach((C=>{let{from:u,to:R,action:M}=C;r.add(u),r.add(R),r.add(M+"ing"),i.add("".concat(u," --> ").concat(M,"ing : ").concat(M)),i.add("".concat(M,"ing --> ").concat(R," : ").concat(M," 🟢")),i.add("".concat(M,"ing --> ").concat(u," : ").concat(M," 🔴"))})),g.forEach((C=>{let{to:u,action:R}=C;i.add("".concat(R,"ing --> ").concat(u," : ").concat(R," 🟢")),r.forEach((M=>{M!==u&&i.add("".concat(M," --> ").concat(R,"ing : ").concat(R))}))}));let I=[...i];return Object.defineProperties(e,{stateDiagram:{value:I},allStates:{value:r}}),I}static get(e){let t;return typeof e=="string"?(t=hI.instances.get(e),t||hI.instances.set(e,t=new hI(e,void 0,Object.create(hI.prototype)))):(t=hI.instances2.get(e),t||hI.instances2.set(e,t=new hI(e.constructor.name,void 0,Object.create(hI.prototype)))),t}static getState(e){var t;return(t=hI.get(e))===null||t===void 0?void 0:t.state}updateDevTools(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};MG(hI.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},e))}get state(){return this._state}set state(e){mu.call(this,e)}};pt.STATECHANGED="stateChanged",pt.UPDATEAFSM="updateAFSM",pt.INIT="[*]",pt.ON="on",pt.OFF="off",pt.instances=new Map,pt.instances2=new WeakMap;var qy=typeof window<"u",Ko=qy&&window.requestIdleCallback||function(A){let e=Date.now();return setTimeout((()=>{A({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-e))})}),1e3)},fu=qy&&window.cancelIdleCallback||function(A){clearTimeout(A)},sT=qy&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),dc=class Fr{static generateTaskID(){return this.currentTaskID++}static run(e,t,i){i!=null&&i.fps&&(i.delay=i.delay||Number((1e3/i.fps).toFixed(2))),i=le(e==="interval"?{delay:2e3,count:0,backgroundTask:!0}:e==="ric"?{delay:1e4,count:0}:e==="raf"?{fps:60,delay:16.6,count:0,backgroundTask:!0}:{delay:2e3,count:0,backgroundTask:!0},i);let o=tt(le({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:e,callback:t},i),{delay:i.delay});return this.taskMap.set(o.taskID,o),this[e](o),o.taskID}static interval(e){return e.intervalID=setInterval((()=>{e.callback(),e.loopCount+=1,Fr.isBreakLoop(e)}),e.delay)}static intervalInWorker(e){Fr.sharedWorker||(Fr.sharedWorker=new Worker(URL.createObjectURL(new Blob([`
|
||
const timers = new Map();
|
||
self.onmessage = function(e) {
|
||
const { taskId, delay, type } = e.data;
|
||
if (type === 'start') {
|
||
timers.set(taskId, setInterval(() => {
|
||
self.postMessage({ type: 'tick', taskId });
|
||
}, delay));
|
||
} else if (type === 'stop') {
|
||
clearInterval(timers.get(taskId));
|
||
timers.delete(taskId);
|
||
}
|
||
};
|
||
`],{type:"application/javascript"}))),Fr.sharedWorker.onmessage=t=>{var i;if(t.data.type==="tick"){let o=Fr.workerTasks.get(t.data.taskId);o&&(Fr.isBreakLoop(o)?((i=Fr.sharedWorker)==null||i.postMessage({type:"stop",taskId:o.taskID}),Fr.workerTasks.delete(o.taskID)):(o.callback(),o.loopCount+=1))}}),Fr.workerTasks.set(e.taskID,e),Fr.sharedWorker.postMessage({taskId:e.taskID,delay:e.delay,type:"start"})}static timeout(e){let t=()=>{if(e.callback(),e.loopCount+=1,!Fr.isBreakLoop(e))return e.timeoutID=setTimeout(t,e.delay)};return e.timeoutID=setTimeout(t,e.delay)}static ric(e){let t,i=it(),o=()=>{if(t=it()-i,t>=e.delay&&(i=it()-Math.floor(t%e.delay),e.callback(),e.loopCount+=1),!Fr.isBreakLoop(e))return e.ricID=Ko(o,{timeout:e.delay})};return e.ricID=Ko(o,{timeout:e.delay})}static raf(e){let t,i=it(),o=()=>document.hidden&&e.backgroundTask?(t=it()-i,i=it(),e.callback(),e.loopCount+=1,Fr.isBreakLoop(e)?void 0:e.timeoutID=setTimeout(o,e.delay-Math.floor(t%e.delay))):(t=it()-i,t>=e.delay&&(i=it()-Math.floor(t%e.delay),e.callback(),e.loopCount+=1),Fr.isBreakLoop(e)?void 0:e.rafID=requestAnimationFrame(o));if(e.rafID=requestAnimationFrame(o),e.backgroundTask){let g=()=>{if(document.hidden){let r=it()-i;r>=e.delay?o():e.timeoutID=setTimeout(o,e.delay-r)}};document.addEventListener("visibilitychange",g),e.onVisibilitychange=g,document.hidden&&g()}return e.taskID}static hasTask(e){return this.taskMap.has(e)}static clearTask(e){if(!this.taskMap.has(e))return!0;let{intervalID:t,timeoutID:i,rafID:o,ricID:g,onVisibilitychange:r}=this.taskMap.get(e);return t&&clearInterval(t),i&&clearTimeout(i),o&&sT&&sT(o),g&&fu(g),r&&document.removeEventListener("visibilitychange",r),this.taskMap.delete(e),!0}static isBreakLoop(e){return!this.hasTask(e.taskID)||e.count!==0&&e.loopCount>=e.count&&(this.clearTask(e.taskID),!0)}};l(dc,"taskMap",new Map),l(dc,"currentTaskID",1),l(dc,"sharedWorker",null),l(dc,"workerTasks",new Map);var ti=dc,bt={LOAD_START:V.LOADSTART,LOADED_DATA:V.LOADEDDATA,LOADED_META_DATA:V.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",RESIZE:V.RESIZE,TIME_UPDATE:"time-update",LEAVE_PICTURE_IN_PICTURE:V.LEAVE_PICTURE_IN_PICTURE,ENTER_PICTURE_IN_PICTURE:V.ENTER_PICTURE_IN_PICTURE,USER_RESUME_IN_PIP:"user-resume-in-pip",USER_PAUSE_IN_PIP:"user-pause-in-pip"},Li={};Dn(Li,{create:()=>na,remove:()=>Tg});var Ar=new WeakMap;function na(A,e){Ar.has(A)||Ar.set(A,[]);let t=Ar.get(A),i={add:(o,g)=>("addEventListener"in e?(t.push(e.removeEventListener.bind(e,o,g)),e.addEventListener(o,g)):(t.push(e.off.bind(e,o,g)),e.on(o,g)),i)};return i}function Tg(A){let e=Ar.get(A);e&&(e.forEach((t=>t())),Ar.delete(A))}var wi=new class{constructor(){l(this,"_roomIdMap",new Map),l(this,"_configs"),typeof registerProcessor>"u"&&(this._configs={sdkAppId:"",userId:"",version:ia,env:sB.QCLOUD,browserVersion:wn.name+wn.version,ua:navigator.userAgent})}setConfig(A){let{sdkAppId:e,env:t,userId:i,roomId:o}=A;e!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(e)),this._configs.env=t,this._configs.userId=i,this._roomIdMap.set(i,String(o))}logSuccessEvent(A){_s||!K.isAbleToUpload||this._configs.env===sB.QCLOUD&&this.uploadEventToKibana(tt(le({},A),{result:"success"}))}logFailedEvent(A){if(_s||!K.isAbleToUpload)return;let{eventType:e,code:t,error:i,userId:o}=A,g={roomId:this._roomIdMap.get(o||this._configs.userId),userId:o,eventType:e,result:"failed",code:t||(i==null?void 0:i.extraCode)||(i==null?void 0:i.code)||OA.UNKNOWN};this._configs.env===sB.QCLOUD&&this.uploadEventToKibana(tt(le({},g),{error:i}))}uploadEventToKibana(A){let e="stat-".concat(A.eventType,"-").concat(A.result);(A.eventType==="delta-join"||A.eventType==="delta-leave"||A.eventType==="delta-publish")&&(e="".concat(A.eventType,":").concat(A.delta)),this.uploadEvent({log:e,userId:A.userId}),A.result==="failed"&&(e="stat-".concat(A.eventType,"-").concat(A.result,"-").concat(A.code),this.uploadEvent({log:e,userId:A.userId,error:A.error}))}uploadEvent(A){let{log:e,userId:t,error:i}=A,o={timestamp:CS(),sdkAppId:this._configs.sdkAppId,userId:t||this._configs.userId,version:ia,log:e};i&&(o.errorInfo=i.message,i.stack&&(o.errorInfo+=`
|
||
`.concat(i.stack)));let g=P.enable?fn(o,2002,Number(this._configs.sdkAppId)):JSON.stringify(o);this.sendRequest(uB(this._configs.sdkAppId,Gl.LOG),g)}sendRequest(A,e){setTimeout((()=>iu({url:A,body:e,priority:"low"}).catch((()=>{}))),2e3)}},CI=new WeakMap;function ba(A){let{settings:e={retries:5,timeout:2e3},onError:t,onRetrying:i,onRetryFailed:o}=A;return function(g,r,n){let I=ou({retryFunction:n.value,settings:e,onError(C){let{error:u,retry:R,reject:M,retryFuncArgs:L}=C;var H;t?t.call(this,u,(()=>{var gA;(gA=CI.get(g))!=null&&gA.has(r)?R():M(u)}),M,L):(H=CI.get(g))!=null&&H.has(r)?R():M(u)},onRetrying(C,u){var R;DB(i)&&i.call(this,C,u),(R=CI.get(g))!=null&&R.has(r)&&(CI.get(g).get(r).stopRetry=u)},onRetryFailed:o});return n.value=function(){let C=CI.get(g);for(var u=arguments.length,R=new Array(u),M=0;M<u;M++)R[M]=arguments[M];return C?C.set(r,{args:R}):CI.set(g,new Map([[r,{args:R}]])),I.apply(this,R).finally((()=>{var L;return(L=CI.get(g))==null?void 0:L.delete(r)}))},n}}function Py(A){let{fnName:e,callback:t,validateArgs:i=!0}=A;return function(o,g,r){let n=r.value;return r.value=function(){for(var I,C,u=arguments.length,R=new Array(u),M=0;M<u;M++)R[M]=arguments[M];if((I=CI.get(o))!=null&&I.has(e)){let{stopRetry:L,args:H}=CI.get(o).get(e),gA=!0;if(i){for(let EA of H)if(!R.find((TA=>TA===EA))){gA=!1;break}}gA&&(t&&t.apply(this,R),L&&L(),(C=CI.get(o))==null||C.delete(e))}return n.apply(this,R)},r}}var TB=class extends pt{constructor(A,e){super(A.id,"".concat(e,"-player")),this.options=A,this.kind=e,l(this,"id"),l(this,"element",null),l(this,"track"),l(this,"url"),l(this,"attr"),l(this,"mode"),l(this,"muted"),l(this,"_log"),l(this,"isPausedByUserCall",!1),l(this,"_pausedRetryCount"),l(this,"_isElementPlayingFired",!1),l(this,"_interval"),l(this,"_delayDestroyTimeoutId",0),l(this,"_playSuccessResolve"),l(this,"_isReplayByRecreateMediaStreamCalled",!1),l(this,"isPlayCalled",!1),l(this,"isInAutoPlayFailedState",!1),this.id=A.id,this._log=A.log,this.track=A.track,this.muted=A.muted,this._pausedRetryCount=JQ,this._state="STOPPED",this.bindTrackEvents(),this._log.info("create ".concat(e,"-player ").concat(this.id))}get isPlaying(){var A;return this._state==="PLAYING"&&((A=this.element)==null?void 0:A.paused)===!1}get isPaused(){var A;return this._state==="PAUSED"||((A=this.element)==null?void 0:A.paused)===!0}get isStopped(){return this._state==="STOPPED"}setAttr(A){this.attr=A}setUrl(A){this.track&&(this.unbindTrackEvents(),this.element&&(this.element.srcObject=null),this.track=null),A!==this.url&&(this.url=A,A!==null&&this.element&&(this.element.crossOrigin="anonymous",this.element.src=A))}play(){return X(this,null,(function*(){if(!this.isPlaying)try{this.isPlayCalled=!0,this._delayDestroyTimeoutId&&(clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0,this.bindTrackEvents(),this.bindElementEvents()),this.bindAutoPlayEvent(),yield new Promise(((A,e)=>{this._playSuccessResolve=A,this.element.play().then(A,e)}))}catch(A){let e=nt({key:$e.PLAY_FAILED,data:{media:this.kind,error:A}});if(this._log.warn(A),e.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new oe({code:OA.PLAY_NOT_ALLOWED,message:e})}}))}stop(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;var e;this.isPlayCalled=!1,this._isElementPlayingFired=!1,this.unbindEvents(),A>0&&!fB?this._delayDestroyTimeoutId||((e=this.element)==null||e.remove(),this._log.info("destroy element after 3 * ".concat(A)),this._delayDestroyTimeoutId=setTimeout((()=>this.destroyElement()),3*A)):this.destroyElement(),this.handleStopped(V.ENDED),this._interval>0&&ti.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.src="",this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){this._log.info("pause"),this.isPausedByUserCall=!0,this.doPause()}doPause(){var A;(A=this.element)==null||A.pause()}resume(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return this.isPausedByUserCall=!1,this.doResume(A)}doResume(){return this._log.info("resume"),this.isPausedByUserCall||this.isPlaying?Promise.resolve():tG?this.replay():this.play().catch((()=>{}))}setMuted(A){this.element&&(this.element.muted=A),this.muted=A}replay(){return this.stop(),this.play().catch((()=>{}))}bindElementEvents(){if(this.element){let A=this.handleElementEvent.bind(this);return na(this.element,this.element).add(V.PLAYING,A).add(V.ENDED,A).add(V.PAUSE,A).add(V.ERROR,A).add(V.LOADSTART,A).add(V.LOADEDDATA,A).add(V.LOADEDMETADATA,A)}}bindTrackEvents(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.track;if(A){let e=this.handleTrackEvent.bind(this);Li==null||Li.create(A,A).add(V.ENDED,e).add(V.MUTE,e).add(V.UNMUTE,e),A.readyState===V.ENDED&&this.handleTrackEvent({type:V.ENDED}),A.muted&&this.handleTrackEvent({type:V.MUTE})}}bindAutoPlayEvent(){N.on(v.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.track;A&&Tg(A)}unbindEvents(){this.element&&Tg(this.element),this.unbindTrackEvents(),N.off(v.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(A){switch(A.type){case V.PLAYING:Nt()||(this.isInAutoPlayFailedState=!1),this._isElementPlayingFired=!0,this._log.info("".concat(this.kind," player is playing")),this.handlePlaying(V.PLAYING),this._interval&&(ti.clearTask(this._interval),this._interval=-1);break;case V.ENDED:this._log.info("".concat(this.kind," player is ended")),this.handleStopped(V.ENDED);break;case V.PAUSE:this._log.info("".concat(this.kind," player is paused")),this.handlePaused(V.PAUSE);break;case V.ERROR:if(this.element&&this.element.error){this.handlePaused(V.ERROR);let{code:e,message:t}=this.element.error;this._log.error("".concat(this.kind," ").concat(this._log.isLocal?"local":"remote"," MediaError code: ").concat(e," message: ").concat(t," userAgent: ").concat(navigator.userAgent)),wi.uploadEvent({log:"stat-".concat(this.kind,"-").concat(ga.PLAYER_ERROR,"-").concat(e,"-").concat(navigator.userAgent),error:this.element.error}),Pv||$S?this.emit(bt.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case V.LOADEDDATA:this.kind===V.VIDEO&&this.emit(bt.LOADED_DATA);break;case V.LOADEDMETADATA:this.kind===V.VIDEO&&this.emit(bt.LOADED_META_DATA);break;case V.LOADSTART:this.emit(bt.LOAD_START)}}replayByRecreateMediaStream(A){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then((()=>{this._log.warn("replayByRecreateMediaStream success"),wi.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),ee.addSuccessEvent({key:this.kind===V.AUDIO?506700:516700})})).catch((()=>{var e;this._log.error("replayByRecreateMediaStream failed"),wi.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),ee.addFailedEvent({key:this.kind===V.AUDIO?506700:516700,error:(e=this.element)==null?void 0:e.error}),this.emit(bt.ERROR,A)}))}doReplayByRecreateMediaStream(A){return this._log.warn("delay ".concat(A,"ms to recreate mediaStream")),new Promise(((e,t)=>{ra(A).then((()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var i,o,g;this._log.warn("element onerror ".concat((o=(i=this.element)==null?void 0:i.error)==null?void 0:o.code," fired after recreated mediaStream")),t((g=this.element)==null?void 0:g.error)}),ra(5e3).then((()=>{var i,o;(!this.isPlaying||(i=this.element)!=null&&i.error)&&t((o=this.element)==null?void 0:o.error),e()}))}))})).finally((()=>{this.element&&(this.element.onerror=null)}))}handleTrackEvent(A){return X(this,null,(function*(){let e=A.type;switch(this.options.enableLogTrackState&&this._log[e===V.UNMUTE?"info":"warn"]("track ".concat(e)),e){case V.ENDED:this.handleStopped(V.ENDED);break;case V.MUTE:this.handlePaused(V.MUTE);break;case V.UNMUTE:this.mode>0?this.handlePlaying(this.mode.toString()):this.element&&(this.element.paused&&!this.isPausedByUserCall&&(this._log.warn("track unmuted and element is paused, resume"),yield this.doResume()),this.element&&!this.element.paused&&this._isElementPlayingFired&&this.handlePlaying(V.UNMUTE))}}))}handlePlaying(A){var e;return this._log.debug("handlePlaying",A),(e=this._playSuccessResolve)==null||e.call(this,A),A}handlePaused(A){return this._log.debug("handlePaused",A),A}handleStopped(A){return this._log.debug("handleStopped",A),A}getElement(){return this.element}};l(TB,"PlayerEvent",bt),ne([ba({settings:{retries:2,timeout:0},onError(A,e,t,i){i[0]=(i[0]||1e3)+1e3,e()}})],TB.prototype,"doReplayByRecreateMediaStream"),ne([go([],"PLAYING",{sync:!0,success(A){this.emit(bt.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:A})}})],TB.prototype,"handlePlaying"),ne([go("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(A){this.emit(bt.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:A})}})],TB.prototype,"handlePaused"),ne([go([],"STOPPED",{sync:!0,success(A){this.emit(bt.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:A})}})],TB.prototype,"handleStopped");var Mn="trtc_autoplay",Dc="".concat(Mn,"_mask"),UB="".concat(Mn,"_wrapper"),ET="".concat(Mn,"_header"),w="".concat(Mn,"_content"),y="".concat(Mn,"_action_wrapper"),U="".concat(Mn,"_question"),J="".concat(Mn,"_collapse"),iA="".concat(Mn,"_action_confirm"),aA="".concat(Mn,"_detail"),IA="#2473E8",CA="dialog",NA="".concat(CA,"-show"),pA="".concat(CA,"-1"),jA="".concat(CA,"-2"),ue=!1,de=!1,Nt=()=>de,Ri="".concat(gI,"/").concat(II()?"zh-cn":"en","/tutorial-21-advanced-auto-play-policy.html"),Do="<br><a href='".concat(Ri,"' target='_blank'>").concat(II()?"其他方案?":"Any other solution?","</a>"),er="".concat(II()?"浏览器自动播放策略:在用户与页面产生交互(点击、触摸)之前,浏览器禁止播放有声媒体。该弹窗用于帮助用户恢复音视频播放。".concat(Do):"Autoplay Policy: Before user interacts with the web page (clicking, touching), page will not be allowed to play media with sound. This Dialog is used to help users resume playback. ".concat(Do)),xs=class{constructor(){if(l(this,"content","音视频播放被浏览器拦截,请点击“恢复播放”。"),l(this,"_dialogNode",null),l(this,"_bodyPosition",""),l(this,"_showDetail",!1),l(this,"_isCollapseClicked",!1),l(this,"_isQuestionClicked",!1),II()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!ue){let A=document.createElement("style");A.innerHTML=".".concat(Dc,"{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,0.5);z-index:1500;}.").concat(Dc," div:not(.").concat(y,"){display:block !important;}.").concat(UB,"{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.").concat(UB," a{color:").concat(IA,";}.").concat(ET,"{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.").concat(w,"{margin:8px 0;}.").concat(y,"{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.").concat(J,"{margin-right:auto;cursor:pointer}.").concat(U,"{height:100%;line-height:16px;cursor:pointer;}.").concat(iA,"{margin-left:8px;color:#fff;background:").concat(IA,";padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.").concat(iA,":hover{opacity:0.9;}.").concat(J,",.").concat(iA,",.").concat(w,",.").concat(U,"{font-size:14px;}@media screen and (max-width:750px){.").concat(UB,"{width:80vw;}}"),document.head.appendChild(A),ue=!0}this.addDiaLog()}createDiaLog(){let A=document.createElement("template");A.innerHTML='<div class="'.concat(Dc,`"><div class='`).concat(UB,"'><div class='").concat(ET,"'>").concat(location.host,"</div><div class='").concat(w,"'>").concat(this.content,"</div><div class='").concat(aA,`' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">`).concat(er,"</div><div class='").concat(y,"'></div></div></div>").trim();let e=document.createElement("button");e.className=iA,e.innerText=II()?"恢复播放":"Resume",e.onclick=this.onConfirm.bind(this);let t=document.createElement("div");t.className=U,t.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
|
||
<svg class="icon" width="18" height="18" p-id="2030" t="1639646523624" version="1.1" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||
<path d="m464 784.35c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z" p-id="2031"/>
|
||
<path d="m512 960c-247.04 0-448-200.96-448-448s200.96-448 448-448 448 200.96 448 448-200.96 448-448 448zm0-831.71c-211.58 0-383.71 172.13-383.71 383.71 0 211.55 172.13 383.71 383.71 383.71 211.55 0 383.71-172.16 383.71-383.71 0-211.58-172.16-383.71-383.71-383.71z" p-id="2032"/>
|
||
<path d="m512 673.7c-17.665 0-32.001-14.336-32.001-31.999v-54.112c0-52.353 40-92.352 75.328-127.65 25.887-25.92 52.672-52.672 52.672-74.017 0-53.343-43.072-96.735-95.999-96.735-53.823 0-95.999 41.536-95.999 94.559 0 17.665-14.336 31.999-32.001 31.999s-32.001-14.336-32.001-31.999c0-87.424 71.775-158.56 160-158.56s160 72.095 160 160.74c0 47.904-36.32 84.192-71.424 119.3-27.84 27.776-56.576 56.512-56.576 82.336v54.112c0 17.665-14.336 32.032-32.001 32.032z" p-id="2033"/>
|
||
</svg>
|
||
`,t.onclick=this.onQuestionClick.bind(this);let i=document.createElement("div");i.className=J,i.innerText="".concat(II()?"详情 >":"Detail >"),i.onclick=this.onCollapseClick.bind(this);let o=A.content.firstChild,g=o.querySelector(".".concat(y));return g.appendChild(i),g.appendChild(t),g.appendChild(e),o}addDiaLog(){Nt()||(de=!0,this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(".".concat(UB)).onclick=A=>A.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",K.info("show autoplay dialog"),wi.uploadEvent({log:NA}))}deleteDialog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null,de=!1)}onConfirm(){K.warn("confirm clicked, try resume stream"),N.emit(v.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDialog()}onCollapseClick(){let A=this._dialogNode.querySelector(".".concat(aA));A.style.visibility="".concat(this._showDetail?"hidden":"visible"),A.style.height="".concat(this._showDetail?0:"fit-content"),this._showDetail=!this._showDetail,this._isCollapseClicked||wi.uploadEvent({log:pA}),this._isCollapseClicked=!0}onQuestionClick(){window.open(Ri,"_blank"),this._isQuestionClicked||wi.uploadEvent({log:jA}),this._isQuestionClicked=!0}},te=null;function gt(){te||(te=new xs)}var ro,Ci=class kK extends TB{constructor(e){super(e,V.VIDEO),l(this,"stat",{}),l(this,"_calculateTimeout",-1),l(this,"viewMirror",!1),l(this,"objectFit","cover"),l(this,"container"),l(this,"canvas"),l(this,"shouldRenderAlpha",!1),l(this,"_preSize",{width:0,height:0}),l(this,"posterImg"),l(this,"_originContainerPosition"),this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,yA(e.viewMirror)||(this.viewMirror=e.viewMirror),yA(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}get isPlaying(){var e;return!(this._state!=="PLAYING"||this.element&&this.element.paused)&&((e=this.track)==null?void 0:e.readyState)==="live"&&!this.track.muted}initializeElement(){var e;let t=document.createElement(V.VIDEO);this.track&&this.mode!==2&&(t.srcObject=new MediaStream([this.track])),t.muted=!0,t.setAttribute("id","video_".concat(this.id)),t.setAttribute("style",this.styleAttribute),this.canvas&&this.canvas.setAttribute("style",this.styleAttribute),t.setAttribute("autoplay","autoplay"),t.setAttribute("playsinline","playsinline"),this.element=t,Oi&&(t.poster="noposter"),(e=this.container)==null||e.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e="width:100%;height:100%;object-fit:".concat(this.objectFit,";").concat(this.shouldRenderAlpha?"":"background-color:black",";");return this.viewMirror&&(e+="transform:scaleX(-1);"),e}setContainer(e){var t;this.container=e,this.track&&this.elementToRender&&((t=this.container)==null||t.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(V.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(V.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent).add(V.RESIZE,this.handleElementEvent)}handleTrackEvent(e){var t;return e.type===V.MUTE&&(t=this.stat)!=null&&t.fps&&(this.stat.fps=0),super.handleTrackEvent(e)}handleElementEvent(e){var t,i,o,g,r,n;if(this.mode===2)return;super.handleElementEvent(e);let I=e.type,C=this.isPictureInPicture()&&e.isTrusted&&ko;if(I===V.PLAYING&&C&&(this._log.warn("user resume in pip"),this.emit(bt.USER_RESUME_IN_PIP)),I===V.PAUSE&&(C&&(this._log.warn("user pause in pip"),this.emit(bt.USER_PAUSE_IN_PIP)),this.container&&!this.container.isConnected&&(this._log.warn("".concat(this.kind," player has been remove, element ID: ").concat(this.container.id)),ra(500).then((()=>{var u;(u=this.container)!=null&&u.isConnected&&(this._pausedRetryCount=JQ,this._log.info("view container ".concat(this.container.id," is in dom, reset pausedRetryCount")))}))),this._pausedRetryCount>0&&!Nt()&&!this.isPausedByUserCall&&!C&&(this._log.info("[".concat(JQ-this._pausedRetryCount+1,"/").concat(JQ,"] ").concat(this.kind," player auto resume when paused")),this.doResume(),this._pausedRetryCount--),uo&&!C&&(this._interval=ti.run("timeout",(()=>{this.element&&this._state==="PAUSED"&&!this.isPausedByUserCall&&this.doResume()}),{delay:3e3})),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let u=this.element.style.transform;I===V.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=u.replace("scaleX(-1)",""):I===V.LEAVE_PICTURE_IN_PICTURE&&!u.includes("scaleX")&&(this.element.style.transform="".concat(u," scaleX(-1)"))}I===V.RESIZE&&(this._preSize.height!==((t=this.element)==null?void 0:t.videoHeight)||this._preSize.width!==((i=this.element)==null?void 0:i.videoWidth))&&(this._log.info("video size changed to ".concat((o=this.element)==null?void 0:o.videoWidth,"x").concat((g=this.element)==null?void 0:g.videoHeight)),this._preSize.height=((r=this.element)==null?void 0:r.videoHeight)||0,this._preSize.width=((n=this.element)==null?void 0:n.videoWidth)||0,this.emit(bt.RESIZE,{newWidth:this._preSize.width,newHeight:this._preSize.height})),I===V.LEAVE_PICTURE_IN_PICTURE&&(this._log.warn("exit pip"),this.isPaused&&!this.isPausedByUserCall&&(this._log.warn("resume after exit pip"),this.doResume()),Oi&&Fg&&Gr<143&&this.isPlayCalled&&this.element&&this.track&&(this._log.warn("reset srcObject for android chrome after exit pip"),this.element.srcObject=new MediaStream([this.track]),this.element.play().catch((u=>{this._log.warn("play failed after reset srcObject",u)}))),this.emit(bt.LEAVE_PICTURE_IN_PICTURE)),I===V.ENTER_PICTURE_IN_PICTURE&&(this._log.warn("enter pip"),this.emit(bt.ENTER_PICTURE_IN_PICTURE))}setCanvas(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;var i,o,g,r;this.canvas!==e&&((i=this.canvas)==null||i.remove(),e==null||e.setAttribute("style",this.styleAttribute),this.canvas=e,this.mode=e?t:0,this.mode===2&&this.setTrack(e.captureStream().getVideoTracks()[0]),e?((o=this.element)==null||o.remove(),(g=this.container)==null||g.appendChild(e)):this.element&&((r=this.container)==null||r.appendChild(this.element)))}setAttr(e){let t=Object.assign({autoplay:"autoplay",playsinline:"playsinline",muted:!0},e);t.style=Object.assign({width:"100%",height:"100%"},t.style),super.setAttr(t)}get mirror(){return this.viewMirror}setRect(e,t){this.elementToRender&&(this.elementToRender.style.width="".concat(e,"px"),this.elementToRender.style.height="".concat(t,"px"))}setViewMirror(e){this.elementToRender&&(this.elementToRender.style.transform=e?"scaleX(-1)":""),this.viewMirror=e}setObjectFit(e){this.elementToRender&&(this.elementToRender.style.objectFit="".concat(e)),this.objectFit=e}setPoster(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return new Promise((i=>{if(!this.element||(this._log.info("setPoster",e.slice(0,10)),e===""?this.element.removeAttribute("poster"):this.element.poster=e,!t||!ko&&!ei))return i();if(e==="")return this.removePosterImg(),i();if(this.posterImg)return i();let o=document.createElement("img");o.src=e;let g=window.getComputedStyle(this.element).objectFit||this.objectFit;o.style="position:absolute;top:0;left:0;width:100%;height:100%;object-fit:".concat(g,";"),o.onload=()=>X(this,null,(function*(){var r;try{o.decode&&(yield o.decode()),this.container&&window.getComputedStyle(this.container).position==="static"&&(this._originContainerPosition=this.container.style.position,this.container.style.position="relative"),this.posterImg=o,(r=this.container)==null||r.appendChild(o),ZQ()&&va<=17&&this.elementToRender&&(this.elementToRender.style.visibility="hidden")}catch(n){this._log.warn("decode poster image error",n)}return i()})),o.onerror=()=>(this._log.warn("load poster image error"),i())}))}removePosterImg(){this.posterImg&&(ZQ()&&va<=17&&this.elementToRender&&(this.elementToRender.style.visibility=""),this.posterImg.remove(),URL.revokeObjectURL(this.posterImg.src),this.container&&!yA(this._originContainerPosition)&&this.container.style.position==="relative"&&(this.container.style.position=this._originContainerPosition),delete this.posterImg)}get hasPoster(){var e;return!!this.posterImg||!((e=this.element)==null||!e.getAttribute("poster"))}pause(){let e=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];return X(this,null,(function*(){Xg(kK.prototype,this,"pause").call(this),!this.isPictureInPicture()&&!this.hasPoster&&(Fg&&Gr>=128||e&&(ei||ko))&&(yield this.setPoster(this.getVideoFrame(),!0))}))}resume(){let e=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return super.resume(e).then((()=>{var t;(this.posterImg||(t=this.element)!=null&&t.poster)&&this.setPoster("",!0)}))}doResume(){let e=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return this.isPaused&&e&&this.element&&this.track&&Fg&&Gr>=128&&this.track.kind==="video"&&(this.element.srcObject=new MediaStream([this.track])),super.doResume()}stop(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;var t;this.isPictureInPicture()&&this.exitPictureInPicture().catch((i=>{})),this.isFullscreen()&&this.exitFullscreen().catch((i=>{})),super.stop(e),(t=this.canvas)==null||t.remove(),this.removePosterImg()}play(){return this.element?this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender):this.initializeElement(),this.mode===2?Promise.resolve():super.play()}get elementToRender(){return this.canvas||this.element}setTrack(e){e!==this.track&&(this.unbindTrackEvents(),this.track=e,this.emit(bt.MEDIA_TRACK_CHANGED,e),e!==null&&(this.bindTrackEvents(),this.element&&this.mode!==2&&(this.element.srcObject=new MediaStream([e]),this.element.remove()),this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender)))}getVideoFrame(){if(this.canvas)return this.canvas.toDataURL("image/png");if(!this.element)return"";let e=document.createElement("canvas");return e.width=this.element.videoWidth,e.height=this.element.videoHeight,e.getContext("2d").drawImage(this.element,0,0),e.toDataURL("image/png")}getElement(){return this.element}calculateStat(){try{if(Gn()&&this.element&&this._calculateTimeout<0){let e=0,t=null,i=(o,g)=>{this.stat.width=g.width,this.stat.height=g.height,t&&(this.stat.fps=Math.round((g.presentedFrames-t.presentedFrames)/(o-e)*1e3)),e=o,t=g,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout((()=>{var r;return(r=this.element)==null?void 0:r.requestVideoFrameCallback(i)}),2e3))};this.element.requestVideoFrameCallback(i)}}catch(e){this._log.warn("init stat failed",e)}}enterFullscreen(){return X(this,null,(function*(){let e=this.elementToRender;if(!e)throw this._log.warn("no element to render, cannot enter fullscreen"),new Error("No element available for fullscreen");try{if(e.requestFullscreen)yield e.requestFullscreen();else if(e.webkitRequestFullscreen)yield e.webkitRequestFullscreen();else if(e.webkitEnterFullscreen)yield e.webkitEnterFullscreen();else if(e.mozRequestFullScreen)yield e.mozRequestFullScreen();else{if(!e.msRequestFullscreen)throw this._log.warn("fullscreen API not supported"),new Error("Fullscreen API not supported");yield e.msRequestFullscreen()}this._log.info("entered fullscreen mode")}catch(t){throw this._log.error("failed to enter fullscreen:",t),t}}))}exitFullscreen(){return X(this,null,(function*(){try{if(document.exitFullscreen)yield document.exitFullscreen();else if(document.webkitExitFullscreen)yield document.webkitExitFullscreen();else if(document.mozCancelFullScreen)yield document.mozCancelFullScreen();else{if(!document.msExitFullscreen)throw this._log.warn("exit fullscreen API not supported"),new Error("Exit fullscreen API not supported");yield document.msExitFullscreen()}this._log.info("exited fullscreen mode")}catch(e){throw this._log.error("failed to exit fullscreen:",e),e}}))}isFullscreen(){let e=this.elementToRender;return!!e&&(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)===e}toggleFullscreen(){return X(this,null,(function*(){this.isFullscreen()?yield this.exitFullscreen():yield this.enterFullscreen()}))}enterPictureInPicture(){return X(this,null,(function*(){var e;try{if(!this.element)throw new Error("No video element available for pip");if(this.canvas&&this.mode!==1)throw new Error("pip is not supported for canvas-only mode");let{element:t}=this;if(t.requestPictureInPicture){this._log.info("requestPictureInPicture");let i=yield t.requestPictureInPicture();return this._log.info("entered pip mode"),this.elementToRender===this.canvas&&(this.canvas.remove(),(e=this.container)==null||e.appendChild(this.element)),i}if(t.webkitSetPresentationMode)return this._log.info("webkitSetPresentationMode"),yield t.webkitSetPresentationMode("picture-in-picture"),this._log.info("entered picture-in-picture mode (webkit)"),{};throw new Error("Picture-in-picture API not supported")}catch(t){throw this._log.error("failed to enter picture-in-picture:",t.name,t.message),t}}))}exitPictureInPicture(){return X(this,null,(function*(){var e,t;try{if(document.pictureInPictureElement&&document.exitPictureInPicture)yield document.exitPictureInPicture(),this.elementToRender===this.canvas&&((e=this.element)==null||e.remove(),this._pausedRetryCount=JQ,(t=this.container)==null||t.appendChild(this.canvas)),this._log.info("exited pip mode");else{if(!this.element||!this.element.webkitSetPresentationMode)throw this._log.warn("exit picture-in-picture API not supported or not in PiP mode"),new Error("Exit picture-in-picture API not supported or not in PiP mode");yield this.element.webkitSetPresentationMode("inline"),this._log.info("exited picture-in-picture mode (webkit)")}}catch(i){throw this._log.error("failed to exit picture-in-picture:",i),i}}))}isPictureInPicture(){if(!this.element)return!1;let{element:e}=this;return document.pictureInPictureElement?document.pictureInPictureElement===e:!!e.webkitPresentationMode&&e.webkitPresentationMode==="picture-in-picture"}togglePictureInPicture(){return X(this,null,(function*(){this.isPictureInPicture()?yield this.exitPictureInPicture():yield this.enterPictureInPicture()}))}};function Ag(A,e){return X(this,null,(function*(){if(!A.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield A.audioWorklet.addModule(e),K.info("worklet addModule success")}catch(t){throw K.info("worklet addModule catch error. ".concat(t.message)),t}}))}typeof AudioContext<"u"?ro=AudioContext:typeof webkitAudioContext<"u"?ro=webkitAudioContext:typeof mozAudioContext<"u"&&(ro=mozAudioContext);var bi,Vy=1500,kn=-1,Qg=0,wu=-1,Su=!1,kG=0,n2=-1,s2=-1;(function A(){try{if(bi)return;(bi=new ro({sampleRate:48e3})).onstatechange=()=>{K.info("context state: ".concat(bi.state).concat(bi.state!=="running"?" visibilityState: ".concat(document.visibilityState):"")),Wy()},clearTimeout(kn)}catch(e){K.error("initAudioContext failed: ".concat(e," typeof AudioContextClass: ").concat(typeof ro)),kn=setTimeout(A,1e3)}})();var Wy=()=>{bi.state==="suspended"?(Qg=it(),wu===-1&&(wu=setTimeout((()=>{bi.state==="suspended"&&(Su=!0,N.emit("155",{isSuspended:!0}))}),Vy)),NG(),document.addEventListener("click",Wy)):bi.state==="interrupted"?NG():(Qg&&(ee.addNumber({key:507800,value:it()-Qg,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),Qg=0),wu!==-1&&(clearTimeout(wu),wu=-1,Su&&(Su=!1,N.emit("155",{isSuspended:!1}))),document.removeEventListener("visibilitychange",Wy),document.removeEventListener("click",Wy))},rJ=0,aJ=-1;function NG(){return new Promise(((A,e)=>{if(bi.state==="running")return A();Date.now()-rJ<1e3?(clearTimeout(aJ),aJ=setTimeout((()=>{rJ=Date.now(),bi.resume().then(A,e)}),1e3)):(clearTimeout(aJ),rJ=Date.now(),bi.resume().then(A,e))})).catch((A=>{K.warn("context resume failed: ".concat(A)),document.addEventListener("visibilitychange",Wy)}))}document.addEventListener("click",Wy);var Ug=A=>bi,tr=class{constructor(A){this.name=A,l(this,"node"),l(this,"node2"),l(this,"pre",new Set),l(this,"next",new Set),l(this,"context"),l(this,"connectedNodes",new Set),l(this,"nextInputChannelMap",new Map),l(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(A){this._channelCount=A,this.setChannelCount(this.node,A),this.setChannelCount(this.node2,A),this.next.forEach((e=>e.channelCount=A))}setChannelCount(A,e){!A||A instanceof ScriptProcessorNode||(A.channelCountMode="explicit",A.channelCount=e||this.channelCount||1)}setContext(A){this.context=A,this.node&&A.addMixWeight()}removeContext(){var A;this.node&&((A=this.context)==null||A.reduceMixWeight()),delete this.context}replaceNode(A){var e;if(A!==this.node)try{this.node?this._disconnect():(e=this.context)==null||e.addMixWeight(),this.node=A,this.setChannelCount(this.node),this.preNodeReconnect(),this.reconnect()}catch(t){K.error(t)}}setNode(A,e){var t;if(!this.node)try{(t=this.context)==null||t.addMixWeight(),this.node=A,this.setChannelCount(this.node),e&&(this.node2=e,this.setChannelCount(this.node2)),this.preNodeReconnect(),this.reconnect(),ee.addSuccessEvent({key:502701})}catch(i){K.error(i),ee.addFailedEvent({key:502701,error:i})}}deleteNode(){var A;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,(A=this.context)==null||A.reduceMixWeight(),this.preNodeReconnect(),ee.addSuccessEvent({key:502702})}catch(e){K.error(e),ee.addFailedEvent({key:502702,error:e})}}preNodeReconnect(){this.pre.forEach((A=>{A.node?A.reconnect():A.preNodeReconnect()}))}connectNext(A){this.next.forEach((e=>{let t=this.nextInputChannelMap.get(e);A._connect(e.node,t)||e.connectNext(A)}))}_connect(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return!(!this.node||!A)&&((this.node2||this.node).connect(A,0,e),this.connectedNodes.add(A),!0)}_disconnect(){this.connectedNodes.forEach((A=>{var e;return(e=this.node2||this.node)==null?void 0:e.disconnect(A)})),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return this.next.add(A),A.pre.add(this),this.nextInputChannelMap.set(A,e),A}},DH=class extends tr{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:256;super(),this.fftSize=A,l(this,"dataArray",new Uint8Array(0))}setNode(A){A.fftSize=this.fftSize,this.dataArray=new Uint8Array(A.frequencyBinCount),super.setNode(A)}getByteTimeDomainData(){var A;return(A=this.node)==null||A.getByteTimeDomainData(this.dataArray),this.dataArray}get level(){var A;return(A=this.node)==null||A.getByteTimeDomainData(this.dataArray),Math.max(...this.dataArray)/128-1}get timeDomainPathData(){let A=this.getByteTimeDomainData(),e=0,t=0,i="M".concat(e,",").concat(t);for(let o=0;o<A.length;o++)t=A[o]/128*100/2,i+="L".concat(e,",").concat(t),e+=1;return i}},E2=class{constructor(){l(this,"source",new tr),l(this,"gain",new tr),l(this,"destination",new tr)}get volume(){var A;return((A=this.gain.node)==null?void 0:A.gain.value)||1}setVolume(A){A!==1?(this.gain.node||this.gain.setNode(Ug().createGain()),this.gain.node.gain.value=A):this.gain.node&&this.gain.deleteNode()}replaceSource(A){let e=IJ(A);e&&this.source.replaceNode(e)}get track(){var A;return(A=this.stream)==null?void 0:A.getAudioTracks()[0]}get stream(){var A;return(A=this.destination.node)==null?void 0:A.stream}},B2=class extends E2{constructor(A){super(),this.context=A,l(this,"aec",new tr("aec")),l(this,"mixNode",new tr("mixNode")),l(this,"silentNode",new tr("silentNode")),l(this,"denoiser",new tr("denoiser")),l(this,"voiceChanger",new tr("voiceChanger")),this.source.pipeTo(this.aec).pipeTo(this.denoiser).pipeTo(this.voiceChanger).pipeTo(this.gain).pipeTo(this.destination),this.silentNode.pipeTo(this.mixNode).pipeTo(this.aec,1)}get isProcessEnabled(){return this.aec.node||this.denoiser.node||this.voiceChanger.node||this.gain.node}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.setContext(this.context),this.aec.setContext(this.context),this.silentNode.setContext(this.context),this.mixNode.setContext(this.context),this.denoiser.setContext(this.context),this.voiceChanger.setContext(this.context),this.gain.setContext(this.context),this.context.inputs.add(this))}disconnect(){this.context.inputs.has(this)&&(this.destination.deleteNode(),this.source.removeContext(),this.aec.removeContext(),this.silentNode.removeContext(),this.mixNode.removeContext(),this.denoiser.removeContext(),this.voiceChanger.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.deleteNode(),this.aec.deleteNode(),this.silentNode.deleteNode(),this.mixNode.deleteNode(),this.denoiser.deleteNode(),this.voiceChanger.deleteNode(),this.source.deleteNode(),this.disconnect()}setVolume(A){A!==1?(this.gain.node||this.gain.setNode(this.context.audioContext.createGain()),this.gain.node.gain.value=A):this.gain.node&&this.gain.deleteNode()}},pH=class{constructor(){l(this,"audioContext",Ug()),l(this,"destination",this.audioContext.createMediaStreamDestination()),l(this,"inputs",new Set),l(this,"mixWeight",0),this.destination.channelCount=1}addMixWeight(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;this.mixWeight+=A,this.mixWeight-1==A+1>>1&&this.mixOnChange()}reduceMixWeight(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;this.addMixWeight(-A)}close(){this.inputs.forEach((A=>A.remove()))}get mixTrack(){return this.destination.stream.getAudioTracks()[0]}},C2=new WeakMap;function IJ(A){try{let e=C2.get(A);if(e)return e;let t=Ug();if(A instanceof HTMLAudioElement)e=t.createMediaElementSource(A);else{if(!(A instanceof MediaStreamTrack))return A;e=t.createMediaStreamSource(new MediaStream([A]))}return C2.set(A,e),e}catch(e){if(!(ei&&e instanceof Error&&e.name==="NotSupportedError"))throw e;K.warn(e)}}var BT=class KB{constructor(e){l(this,"_volume",0),l(this,"_volumeDb",0),l(this,"_log"),l(this,"_scriptProcessorNode",null),l(this,"_audioWorkletNode",null),l(this,"_interval",200),l(this,"ready",this.preload());let{log:t}=e;this._log=t,N.on(v.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-KB.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!KB.workletReady){let e='class VolumeMeterWorklet extends AudioWorkletProcessor{constructor(){super(),this.volume=0,this.intervalTime=200,this.tick=200,this.isStop=!1,this.cache=[],this.sentFirstInfo1=!1,this.unmute=!1,this.port.onmessage=t=>{var e=t.data;switch(e.name){case"chunk":this.cache.push(...e.data),this.sentFirstInfo1||(this.port.postMessage({cl:e.data.length}),this.sentFirstInfo1=!0);break;case"setIntervalTime":this.intervalTime=e.intervalTime;break;case"unmute":this.unmute=!0;break;case"stop":this.isStop=!0}}}process(t,s){t=t[0],s=s[0];if(t||s){if(this.isStop)return!1;var i=s&&s[0]?s[0].length:0,h=this.cache.length,a=(i<h?(s[0].set(this.cache.slice(0,i)),this.cache=this.cache.slice(i)):this.unmute&&s[0].set(t[0]),(i<h?s:t)[0]);if(a){let e=0;for(let t=0;t<a.length;++t)e=Math.max(Math.abs(a[t]),e);s=a.reduce((t,e)=>t+e*e,0)/a.length;this.volume=e,this.tick-=a.length,this.tick<0&&(this.tick+=this.intervalTime/1e3*sampleRate,this.port.postMessage({volume:this.volume,volumeDb:Math.max(10*Math.log10(s)+100,0)/100,cacheLen:h,outputLen:i}))}}return!0}}registerProcessor("volume-meter",VolumeMeterWorklet);';KB.workletReady=Ag(KB.audioContext,URL.createObjectURL(new Blob([e],{type:"application/javascript"})))}return KB.workletReady.then((()=>this.initAudioWorklet())).catch((e=>(this._log.error("volumeMeter preload error: ".concat(e)),this.initScriptProcessor())))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(KB.audioContext,"volume-meter");let e=!1;this._audioWorkletNode.port.onmessage=t=>{KB.lastMessageTime=Date.now(),this._volume=t.data.volume||0,this._volumeDb=t.data.volumeDb||0,!e&&t.data.cacheLen&&t.data.outputLen&&(this._log.warn("worklet play success"),e=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch(e){this._log.error("volumeMeter init audio worklet error: ".concat(e)),wi.logFailedEvent({userId:this._log.userId,eventType:ga.LOAD_WORKLET,error:e}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=Ug().createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=e=>{KB.lastMessageTime=Date.now();let t=e.inputBuffer.getChannelData(0),i=0;for(let o=0;o<t.length;++o)i+=t[o]*t[o];this._volume=Math.sqrt(i/t.length)||0}}catch(e){this._log.error("volumeMeter init script processor error: ".concat(e))}}destroy(){this._scriptProcessorNode&&(this._scriptProcessorNode.onaudioprocess=null),this._audioWorkletNode&&(this._audioWorkletNode.port.postMessage({name:"stop"}),this._audioWorkletNode.port.onmessage=null),this._audioWorkletNode=null,this._scriptProcessorNode=null,N.off(v.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}getVolumeDb(){return Math.floor(100*this._volumeDb)}handleAudioLevelInterval(e){var t;let{interval:i}=e;this._interval=i,(t=this._audioWorkletNode)==null||t.port.postMessage({name:"setIntervalTime",intervalTime:i})}};l(BT,"lastMessageTime",0),l(BT,"audioContext",Ug()),l(BT,"workletReady");var Q2=BT,c2=class extends tr{constructor(A){super(),l(this,"_volumeMeter"),this._volumeMeter=new Q2(A)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return X(this,null,(function*(){yield this._volumeMeter.preload(),this.setNode(this._volumeMeter.node)}))}getCalculatedVolume(){return this._volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this._volumeMeter.getInternalAudioLevel()}getVolumeDb(){return this._volumeMeter.getVolumeDb()}write(A){if(this.node){let e=A.allocationSize({planeIndex:0}),t=new Float32Array(e>>2);A.copyTo(t,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:t},[t.buffer]),A.close()}}},CT=Q2,yH=Mo(Ng(),1),h2=A=>e=>e.deviceId===A,nJ=class{constructor(A,e){l(this,"kind"),l(this,"type"),l(this,"devices",[]),this.kind=A,this.type=e}update(A,e){let t=A.filter((i=>i.kind==="".concat(this.kind).concat(this.type.toLocaleLowerCase())));this.devices.length===1&&FG(this.devices[0])||e&&(t.forEach((i=>{if(i.deviceId&&!this.devices.find(h2(i.deviceId))){let o="".concat(this.kind).concat(this.type,"Added");K.warn("".concat(o,": ").concat(JSON.stringify(i))),e.emit(o,i)}})),this.devices.forEach((i=>{if(i.deviceId&&!t.find(h2(i.deviceId))){let o="".concat(this.kind).concat(this.type,"Removed");K.warn("".concat(o,": ").concat(JSON.stringify(i))),e.emit(o,i)}}))),this.devices=t}hasDevice(A){return!!this.devices.find((e=>e.deviceId===A))}},RH=class extends yH.EventEmitter{constructor(){super(),l(this,"audioInputs",new nJ(V.AUDIO,"Input")),l(this,"videoInputs",new nJ(V.VIDEO,"Input")),l(this,"audioOutputs",new nJ(V.AUDIO,"Output")),this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",(()=>this.update())),"ondevicechange"in navigator.mediaDevices||ti.run("interval",(()=>{this.update()}),{delay:1e4}))}init(){QT().then((A=>{this.audioInputs.update(A),this.videoInputs.update(A),this.audioOutputs.update(A)}))}update(){return X(this,arguments,(function(){var A=this;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return(function*(){let t=yield QT(e);return A.audioInputs.update(t,A),A.videoInputs.update(t,A),A.audioOutputs.update(t,A),A})()}))}hasBlueTooth(){var A;if(1e3*((A=Ug())==null?void 0:A.outputLatency)>150)return!0;let e=["bluetooth","air","wireless","bt","tws","buds","headset","headphone"];return this.audioOutputs.devices.some((t=>e.some((i=>t.label.toLowerCase().includes(i)))))||this.audioInputs.devices.some((t=>e.some((i=>t.label.toLowerCase().includes(i)))))}},Ho=hS||fl?null:new RH;function FG(A){return A.deviceId===A.groupId&&A.groupId===""}function QT(){return X(this,arguments,(function(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return(function*(){if(NB()||!BI())return[];let e=yield navigator.mediaDevices.enumerateDevices();if(A!==0){let t={audio:!1,video:!1};if(e.forEach((i=>{FG(i)&&(i.kind===V.AUDIO_INPUT?t.audio=!0:i.kind===V.VIDEO_INPUT&&(t.video=!0))})),A===2&&(t.audio=!1),A===1&&(t.video=!1),t.audio||t.video){let i;try{i=yield navigator.mediaDevices.getUserMedia(t),t.audio&&NG()}catch(o){K.debug("capture before getDevices failed: ",o)}e=yield navigator.mediaDevices.enumerateDevices(),i==null||i.getTracks().forEach((o=>o.stop()))}}return e.map(((t,i)=>{let o={kind:t.kind,deviceId:t.deviceId,groupId:t.groupId,label:t.label||"".concat(t.kind,"_").concat(i)};return t.deviceId.length>0&&sJ.add("".concat(t.deviceId,"_").concat(t.kind)),t.getCapabilities&&(o.getCapabilities=()=>t.getCapabilities()),o}))})()}))}function _B(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return Ho.update(A?1:0).then((e=>e.audioInputs.devices))}function LB(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return Ho.update(A?2:0).then((e=>e.videoInputs.devices))}var l2=!1;function Gu(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return X(this,null,(function*(){return(uo||ko)&&(A=!1),Ho.update(A?1:0).then((e=>e.audioOutputs.devices))}))}var sJ=new Set;function u2(A,e){return X(this,null,(function*(){let t=(yield _B()).find((i=>i.deviceId===bl));return!e&&(t==null?void 0:t.groupId)===A||(t==null?void 0:t.groupId)===A&&t.label===e}))}var cT,mH=class extends E2{constructor(A){super(),this.log=A,l(this,"volumeMeter"),l(this,"volumeMeterAfter3A"),l(this,"volumeDestination"),l(this,"analyser",new DH),this.volumeMeter=new c2({log:this.log}),this.volumeMeterAfter3A=new c2({log:this.log}),this.volumeDestination=new tr,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},EJ=class NK extends TB{constructor(e){super(e,V.AUDIO),l(this,"_outputDeviceId"),l(this,"_floatVolume",1),l(this,"_destination"),l(this,"pipeline"),l(this,"volumeMeterMode","worklet"),l(this,"enableVolumeControlInIOS"),this.enableVolumeControlInIOS=e.enableVolumeControlInIOS,this.mode=0,e.url&&(this.url=e.url),this.pipeline=new mH(this._log)}setTrack(e){}get duration(){var e;return Math.floor(1e3*(((e=this.element)==null?void 0:e.duration)||0))}get currentTime(){var e;return Math.floor(1e3*(((e=this.element)==null?void 0:e.currentTime)||0))}set currentTime(e){this.element&&(this.element.currentTime=e/1e3)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if((Fa==="15.2"||Fa==="15.3"||Fa==="15.4")&&this.muted)return void this._log.info("audioElement is muted.");let t=cT||new Audio;t.setAttribute("autoplay","autoplay"),t.srcObject=this.getMediaStream(),t.muted=this.muted,this.url&&(t.crossOrigin="anonymous",t.src=this.url),this.element=t,this.setVolume(Zt(e)?e/100:this._floatVolume),t===cT&&(cT=void 0),this.options.enableTimeupdateEvent&&(this.element.ontimeupdate=()=>this.emit(bt.TIME_UPDATE,this.currentTime)),this.bindElementEvents()}play(e){return X(this,null,(function*(){if(this.track||this.url)return!this.pipeline.source.node&&this.track&&this.pipeline.replaceSource(this.track),this.element||this.initializeElement(e==null?void 0:e.volume),this._outputDeviceId&&(yield this.setSinkId(this._outputDeviceId)),this.volumeMeterMode==="worklet"?(this.pipeline.volumeMeter.init(),this.pipeline.volumeMeterAfter3A.init()):this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(Ug().createAnalyser()),(function(){X(this,null,(function*(){try{l2||(l2=!0,K.info("speakers:".concat((yield Gu()).map((t=>" ".concat(t.deviceId.slice(0,8),": ").concat(t.label))))))}catch{}}))})(),Xg(NK.prototype,this,"play").call(this)}))}stop(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.pipeline.destroy(),super.stop(e)}setVolume(e){this._floatVolume=e,this.element&&(this.element.volume=e)}setSinkId(e){return X(this,null,(function*(){var t,i;this._outputDeviceId!==e&&(this._outputDeviceId=e),this.element&&this.element.sinkId!==e&&(yield(i=(t=this.element).setSinkId)==null?void 0:i.call(t,e))}))}get useDestination(){return!!this.pipeline.stream}setLoop(e){this.element&&(this.element.loop=e)}getAudioLevel(){return this.pipeline.volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this.pipeline.volumeMeter.getInternalAudioLevel()}getInternalAudioLevelAfter3A(){return this.pipeline.volumeMeterAfter3A.getInternalAudioLevel()}},fH=class extends EJ{setTrack(A){this.track!==A&&(this.unbindTrackEvents(),this.track=A,this.emit(bt.MEDIA_TRACK_CHANGED,A),A&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([A]))))}},d2=class extends EJ{constructor(A){super(A),l(this,"_sourceElement"),l(this,"_output",new tr),this.pipeline.source.pipeTo(this.pipeline.gain),this.pipeline.gain.pipeTo(this.pipeline.volumeMeter).pipeTo(this._output),this.pipeline.gain.pipeTo(this.pipeline.destination)}setOutput(){this.mode=1,this._output.setNode(Ug().destination)}write(A){this.pipeline.volumeMeter.write(A)}setTrack(A){var e,t,i;((t=(e=this.element)==null?void 0:e.error)==null?void 0:t.code)!==MediaError.MEDIA_ERR_DECODE&&this.track!==A&&(this.unbindTrackEvents(),this.track=A,this.emit(bt.MEDIA_TRACK_CHANGED,A),A?(this.bindTrackEvents(),this._sourceElement?this._sourceElement.srcObject=new MediaStream([A]):!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([A])),this.pipeline.source.channelCount=((i=A.getSettings())==null?void 0:i.channelCount)||1,this.pipeline.replaceSource(A)):this.pipeline.source.deleteNode())}setVolume(A){var e;let t=A<=1&&!ZQ();if(this._floatVolume!==A||!(t&&((e=this.element)==null?void 0:e.volume)===A||!t&&this.pipeline.volume===A))if(this._floatVolume=A,this.useDestination)this.pipeline.setVolume(A),this._log.info("set pipeline volume: ".concat(A));else if(t)this.element?(this._log.info("set element volume: ".concat(A)),this.element.volume=A):this._log.info("set element volume: no element");else{if(ZQ()){if(!this.enableVolumeControlInIOS)return;(function(){if(!uo||s2!==-1)return;let i=()=>{it()-kG<500||(bi&&bi.state==="running"&&bi.currentTime===n2&&(K.warn("context is fake running, auto resume"),bi.suspend().catch((o=>{K.warn("context suspend failed: ".concat(o))}))),n2=bi.currentTime,kG=it())};s2=setInterval((()=>{i()}),2e3),document.addEventListener("visibilitychange",(()=>{document.visibilityState==="visible"&&i()}))})()}if(ei&&!this.pipeline.source.node)return void this._log.warn("set pipeline volume failed: no source node");this._log.info("start set pipeline volume: ".concat(A)),this.pipeline.setVolume(A),this.element&&!this._sourceElement&&(this._destination||(this._destination=Ug().createMediaStreamDestination()),this.pipeline.destination.setNode(this._destination),Tg(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play().catch((i=>{this.emit(bt.AUTOPLAY_FAILED,i)})))}}stop(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.pipeline.destroy();let e=this._sourceElement||this.element;e&&fB&&(cT=e),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(A)}},BJ=class extends pt{constructor(A){let{userId:e,sdkAppId:t,mediaType:i,room:o,PlayerClass:g=i===1?d2:Ci}=A;var r;super(),l(this,"id",cA()),l(this,"userId",""),l(this,"isRemote"),l(this,"mediaType"),l(this,"room"),l(this,"user"),l(this,"_log"),l(this,"_inputTrack"),l(this,"_outputTrack"),l(this,"isPlayCalled"),l(this,"container",null),l(this,"player"),l(this,"subVideoPlayerMap"),l(this,"muted",!1),l(this,"abortCtrl"),l(this,"objectFit","cover"),l(this,"mirror"),l(this,"rotation"),l(this,"isScreen",!1),l(this,"manager"),l(this,"trackSettings"),l(this,"isFirstVideoFrameEmitted",!1),this.userId=e||"",this.mediaType=i,this._log=K.createLogger({parent:o==null?void 0:o.getLogger(),id:"".concat(this.kind[0],"t"),userId:(r=o||this.room)==null?void 0:r.userId,remoteUserId:this instanceof YG?void 0:this.userId,sdkAppId:t,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof YG}),this.player=new g({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log,enableVolumeControlInIOS:o==null?void 0:o.enableVolumeControlInIOS}),this.player.on(bt.PLAYER_STATE_CHANGED,(n=>{if(N.emit(v.PLAYER_STATE_CHANGED,le({track:this},n)),this.emit("player-state-changed",n),n.state==="PLAYING"&&this.room){let I=!0;for(let{remoteAudioTrack:C,remoteVideoTrack:u,remoteAuxiliaryTrack:R}of[...this.room.remotePublishedUserMap.values()])if(C.isAvailable&&!C.player.isPlaying||u.isAvailable&&!u.player.isPlaying||R.isAvailable&&!R.player.isPlaying){I=!1;break}I&&Nt()&&te&&(te.deleteDialog(),te=null)}})),this.kind===V.VIDEO&&(this.player.on(bt.LOADED_DATA,(()=>{this.emitFirstVideoFrameEvent(bt.LOADED_DATA),N.emit(v.VIDEO_LOADED_DATA,{track:this})})),this.player.on(bt.LOADED_META_DATA,(()=>{this.emitFirstVideoFrameEvent(bt.LOADED_META_DATA)})),this.player.on(bt.MEDIA_TRACK_CHANGED,(n=>{var I;(I=this.subVideoPlayerMap)==null||I.forEach((C=>C.setTrack(n)))})),this.player.on(bt.RESIZE,(n=>{this.emitFirstVideoFrameEvent(bt.RESIZE),this.emit("video-size-changed",le({userId:this.userId,streamType:this.mediaType===2?"auxiliary":"main"},n))}))),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(bt.ERROR,this.onPlayerError.bind(this)),this.player.on(bt.AUTOPLAY_FAILED,this.handleAutoPlayFailed,this)}get log(){return this._log||K}get kind(){return this.mediaType===1?V.AUDIO:V.VIDEO}get isAudio(){return this.kind===V.AUDIO}get strMediaType(){return this.mediaType===4?V.VIDEO:this.mediaType===2?V.SCREEN:V.AUDIO}get streamType(){return 2&this.mediaType?"auxiliary":"main"}get isMediaTrackActive(){return!!this.mediaTrack&&!this.mediaTrack.muted&&this.mediaTrack.readyState==="live"&&this.mediaTrack.enabled}play(A,e){return X(this,null,(function*(){let t=lo(A)?A[0]:A;if(this.isPlayCalled)return this.log.info("play update options: ".concat(JSON.stringify(e))),e&&!yA(e.muted)&&this.setPlayerMute(e.muted),e&&!yA(e.objectFit)&&(this.objectFit=e.objectFit),void(this.player instanceof Ci&&(this.player.setObjectFit(this.objectFit),this.container!==t&&t&&(this.container=t,this.player.setContainer(t)),lo(A)&&A.length>=1&&(yield this.playSubContainer(A.slice(1),e))));if(e&&!yA(e.muted)?this.setPlayerMute(e.muted):(!this.isRemote||this.kind===V.VIDEO)&&this.setPlayerMute(!0),e&&!yA(e.objectFit)&&(this.objectFit=e.objectFit),this.player instanceof Ci&&(this.player.setObjectFit(this.objectFit),e&&!yA(e.poster)&&this.player.setPoster(e.poster)),this.isPlayCalled=!0,t&&(this.container=t,this.player instanceof Ci&&this.player.setContainer(t)),N.emit(v.PLAY_TRACK_START,{track:this}),this._outputTrack){this._log.info("play with options: ".concat(JSON.stringify(e)));try{this.player.setTrack(this.playerMediaTrack),yield this.player.play(e),lo(A)&&A.length>1&&(yield this.playSubContainer(A.slice(1),e))}catch(i){throw this.handleAutoPlayFailed(i),i}}else this.log.info("play has not mediaTrack, abort")}))}setMirror(A,e){if(this.isScreen||this.kind!==V.VIDEO||yA(A)||A===this.mirror)return;this.mirror=A;let t=this.player;e&&(t=e);let i=this.manager;if(fi(this.mirror))return t.setViewMirror(this.mirror),void(!this.isRemote&&i&&(i.mirror=!1));switch(this.mirror){case"view":i&&(i.mirror=!1),t.setViewMirror(!0);break;case"publish":i&&(i.mirror=!0),t.setViewMirror(!0);break;case"both":i&&(i.mirror=!0),t.setViewMirror(!1)}}playSubContainer(A,e){return X(this,null,(function*(){if(!this._outputTrack||this.kind===V.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach(((i,o)=>{var g;A.find((r=>o===r))||(i.stop(),(g=this.subVideoPlayerMap)==null||g.delete(o))}));for(let[i,o]of A.entries()){let g=this.subVideoPlayerMap.get(o);g?e&&(yA(e.objectFit)||g.setObjectFit(e.objectFit)):this.subVideoPlayerMap.set(o,new Ci({id:this.userId||this.id,track:this.playerMediaTrack,container:o,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:"vp-sub".concat(i+1)})}))}let t=[...this.subVideoPlayerMap.values()];for(let i of t)i.setViewMirror(this.player.mirror),yield i.play()}))}setAudioOutput(A){return this.player.setSinkId(A)}setAudioVolume(A){this.player.setVolume(A)}getAudioLevel(){return this.player.getAudioLevel()||0}getInternalAudioLevel(){var A;return((A=this.player)==null?void 0:A.getInternalAudioLevel())||0}stop(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];this.isPlayCalled&&(this.isPlayCalled=!1,this.isFirstVideoFrameEmitted=!1,this.player&&(this.log.info("stop ".concat(this.kind," player")),this.player.stop(bv(this)&&!A?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach((e=>{e.stop()})),this.container=null)}resume(){return X(this,null,(function*(){var A;this.isPlayCalled&&(yield(A=this.player)==null?void 0:A.resume())}))}close(){this._toInitState(),this.log.info("close"),this.isPlayCalled&&this.stop(!0)}_toInitState(){}setMute(A){this.muted=A,this._inputTrack&&(this._inputTrack.enabled=!A),this._outputTrack&&(this._outputTrack.enabled=!A),this.emit(A?"mute":"unmute",this),N.emit(A?v.TRACK_MUTED:v.TRACK_UNMUTED,{track:this})}setPlayerMute(A){this.player.setMuted(A)}get mediaTrack(){return this._inputTrack||null}get outMediaTrack(){return this._outputTrack||null}get playerMediaTrack(){return this.outMediaTrack}installTrackEvent(A){na(A,A).add(V.MUTE,this.onTrackMuted).add(V.UNMUTE,this.onTrackUnmuted).add(V.ENDED,this.onTrackEnded),A.muted&&this.onTrackMuted(),A.readyState===V.ENDED&&this.onTrackEnded()}uninstallTrackEvent(A){Tg(A)}setInputMediaStreamTrack(A){var e;let t=this._inputTrack;if(A!==t)return this._inputTrack=A,this.trackSettings=(e=A.getSettings)==null?void 0:e.call(A),A.enabled=!this.muted,t&&this.uninstallTrackEvent(t),this.installTrackEvent(A),this.emit("input-media-track-changed",A||null,t||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(A)}setOutputMediaStreamTrack(A){var e;A!==this._outputTrack&&(this.isRemote?this.log.debug("setOutputMediaStreamTrack",A.label):this.log.info("setOutputMediaStreamTrack",(e=A.getSettings)==null?void 0:e.call(A).deviceId,A.label),this._outputTrack=A,this._inputTrack&&(this._outputTrack.contentHint=this._inputTrack.contentHint,this._outputTrack.enabled=this._inputTrack.enabled),this.updatePlayingState(!!A),this.emit("output-media-track-changed",A))}setMediaType(A){this.mediaType=A}updatePlayingState(A){if(this.isPlayCalled){if(A){if(this.player.setTrack(this.playerMediaTrack),this.player.isStopped)return this.player.play().catch((e=>this.handleAutoPlayFailed(e))),void this.log.info("playing state updated, play ".concat(this.kind))}else if(!this.player.isStopped)return this.player.stop(bv(this)?this.jitterBufferDelay:0),void this.log.info("playing state updated, stop ".concat(this.kind))}this.log.debug("updatePlayingState abort ".concat(this.isPlayCalled," ").concat(A," ").concat(this.player.isStopped))}handleAutoPlayFailed(A){return X(this,null,(function*(){var e;this.log.warn("handleAutoPlayFailed",A);let t=()=>{this.resume().then((()=>{document.removeEventListener("click",t,!0)}))};if(this.room&&this.room.enableAutoPlayDialog){if((vs||XQ)&&(yield ra(100),(e=this.player)!=null&&e.isPlaying))return;gt()}else document.addEventListener("click",t,!0);N.once(v.LOCAL_TRACK_CAPTURE_SUCCESS,(i=>{let{track:o}=i;o.kind==="audio"&&Nt()&&!this.player.isPlaying&&this.isRemote&&this.isAvailable&&t()})),this.emit("error",A)}))}getVideoFrame(){return this.player instanceof Ci?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(A){var e,t,i;if(this.isFirstVideoFrameEmitted)return;let o=(e=this.mediaTrack)==null?void 0:e.getSettings(),g=(o==null?void 0:o.width)||((t=this.player.element)==null?void 0:t.videoWidth)||0,r=(o==null?void 0:o.height)||((i=this.player.element)==null?void 0:i.videoHeight)||0;A===bt.RESIZE&&!g&&!r||A===bt.LOADED_META_DATA&&!g&&!r||(A===bt.LOADED_DATA&&!g&&!r&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,Ns(this.rotation)&&([g,r]=[r,g]),this.emit("first-video-frame",{width:g,height:r,streamType:this.streamType,userId:this.isRemote?this.userId:""}))}onTrackMuted(){this._log.warn("".concat(this.kind," track is unable to provide media output"))}onTrackUnmuted(){this._log.info("".concat(this.kind," track is able to provide media output"))}onTrackEnded(){this._log.warn("".concat(this.kind," track ended"))}};ne([go([],pt.INIT,{sync:!0})],BJ.prototype,"_toInitState");var wH=Object.prototype.hasOwnProperty,bB=function(A){if(A==null)return!0;if(typeof A=="boolean")return!1;if(typeof A=="number")return A===0;if(typeof A=="string"||typeof A=="function"||Array.isArray(A))return A.length===0;if(A instanceof Error)return A.message==="";if(sg(A))switch(Object.prototype.toString.call(A)){case"[object File]":case"[object Map]":case"[object Set]":return A.size===0;case"[object Object]":for(let e in A)if(wH.call(A,e))return!1;return!0}return!1},SH=ou({retryFunction:function(A){return X(this,null,(function*(){let e=(function(g){return{audio:GH(g),video:MH(g)}})(A);K.info("getUserMedia with constraints: ".concat(JSON.stringify(e)));let t=[],i=[],o=["label","deviceId","groupId"];if(e.audio&&(t=yield _B(),K.info("microphones: ".concat(Na(t.map((g=>tt(le({},g),{groupId:g.groupId.substring(0,8)}))),{keysToInclude:o})))),e.video&&(i=yield LB(),K.info("cameras: ".concat(Na(i,{keysToInclude:o}))),!fi(e.video)&&e.video.facingMode==="user"&&!e.video.deviceId)){let g=i.filter((r=>!r.label.includes("infrared"))).find((r=>r.label.includes("facing front")));g&&(e.video.deviceId=g.deviceId,K.info("exclude infrared camera: ".concat(JSON.stringify(e))))}try{let g=yield navigator.mediaDevices.getUserMedia(e);return oT&&g.getTracks().forEach((r=>{var n;let I=r.getCapabilities();K.info("".concat(r.kind," capabilities: ").concat(Na(I,{keysToInclude:hB}))),!yA(A.echoCancellation)&&((n=I.echoCancellation)==null?void 0:n.indexOf(A.echoCancellation))===-1&&K.warn("Invalid argument for 'echoCancellation'. Expected one of [".concat(JSON.stringify(I.echoCancellation),"], but received '").concat(A.echoCancellation,"'"))})),e.audio&&NG(),g}catch(g){let{message:r}=g;throw g.name==="NotFoundError"&&(A.video&&i&&i.length===0&&(r=nt({key:$e.CAMERA_NOT_FOUND})),A.audio&&t&&t.length===0&&(r=nt({key:$e.MICROPHONE_NOT_FOUND}))),new oe({code:OA.INITIALIZE_FAILED,name:g.name,message:r,constraint:g.constraint})}}))},settings:{retries:3,timeout:500},onError:A=>{let{error:e,retry:t,reject:i,retryFuncArgs:o,retriedCount:g}=A,r=g+1;e.name==="NotReadableError"||e.name==="OverconstrainedError"||e.name==="AbortError"?(r===1?(o[0].video&&(o[0].maxResolution=!1,(!ko||o[0].width*o[0].height<=2073600)&&o[0].frameRate&&(o[0].frameRate=o[0].frameRate>10?10:5)),o[0].retryWhenExactFailed&&o[0].useExactDeviceId&&(o[0].useExactDeviceId=!1)):r===2?o[0].useDeviceIdOnly=!0:r===3&&!o[0].useExactDeviceId&&(o[0].useTrueAsConstraint=!0),t()):i(e),o[0].microphoneId&&D2(o[0].microphoneId,!1),o[0].cameraId&&D2(o[0].cameraId,!0)},onRetrying:A=>{K.warn("getUserMedia NotReadableError observed, retrying [".concat(A,"/3]"))},onRetryFailed:A=>{wi.logFailedEvent({eventType:ga.GET_USER_MEDIA_RETRY,error:A})},onRetrySuccess:A=>{wi.logSuccessEvent({eventType:ga.GET_USER_MEDIA_RETRY}),wi.uploadEvent({log:"stat-".concat(ga.GET_USER_MEDIA_RETRY,"-success-").concat(A)})}});function D2(A,e){return X(this,null,(function*(){let t=(e?yield LB():yield _B()).find((i=>i.deviceId===A));t&&Ni(t.getCapabilities)&&K.warn(Na(t.getCapabilities(),{keysToInclude:hB}))}))}function GH(A){if(!A.audio)return!1;if(A.useTrueAsConstraint)return!0;let e={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:A.sampleRate};return!bB(A.microphoneId)&&(e.deviceId=A.useExactDeviceId?{exact:A.microphoneId}:A.microphoneId,A.useDeviceIdOnly)?e:(Zt(A.channelCount)&&(e.channelCount=A.channelCount),(fi(A.echoCancellation)||A.echoCancellation==="remote-only"||A.echoCancellation==="all")&&(e.echoCancellation=A.echoCancellation),fi(A.noiseSuppression)&&!A.noiseSuppression&&(e.noiseSuppression=!1),fi(A.autoGainControl)&&!A.autoGainControl&&(e.autoGainControl=!1),!!bB(e)||e)}function MH(A){if(!A.video)return!1;if(A.useTrueAsConstraint)return!0;let{maxResolution:e=!0}=A,t={};return A.cameraId?t.deviceId=A.useExactDeviceId?{exact:A.cameraId}:A.cameraId:A.facingMode&&(t.facingMode=A.facingMode),A.useDeviceIdOnly&&!bB(t)?t:(A.width&&(t.width={ideal:A.width},e&&!ei&&(t.width.max=A.width)),A.height&&(t.height={ideal:A.height},e&&!ei&&(t.height.max=A.height)),ei&&Ts&&A.width&&A.height&&A.width*A.height<101376&&(t.width=A.width,t.height=A.height),A.frameRate&&(t.frameRate=A.frameRate),!!bB(t)||t)}var kH=SH;function p2(A){return Gi(((e,t)=>function(){for(var i=arguments.length,o=new Array(i),g=0;g<i;g++)o[g]=arguments[g];return X(this,null,(function*(){return yield A.apply(this,o),e.apply(this,o)}))}))}function Mu(A){return Gi(((e,t)=>function(){for(var i=arguments.length,o=new Array(i),g=0;g<i;g++)o[g]=arguments[g];return X(this,null,(function*(){let r=yield e.apply(this,o);return yield A.call(this,...o),r}))}))}function y2(A){return Gi(((e,t)=>function(){for(var i=arguments.length,o=new Array(i),g=0;g<i;g++)o[g]=arguments[g];return X(this,null,(function*(){try{return yield e.apply(this,o)}catch(r){A.call(this,r)}}))}))}function Gi(A){return function(e,t,i){return i.value=A(i.value,t),i}}var NH=(()=>{let A=!1,e=document.visibilityState;return()=>{document.visibilityState!==e&&K.info("visibility change: ".concat(document.visibilityState)),!A&&(document.addEventListener("visibilitychange",(()=>{K.info("visibility change: ".concat(document.visibilityState)),e=document.visibilityState})),A=!0)}})(),FH=0,R2=class{constructor(A){l(this,"log"),l(this,"isRunning",!1),l(this,"queue",[]);let e="fq".concat(++FH);A&&(e+="|".concat(A)),this.log=K.createLogger({id:e})}get length(){return this.queue.length}get lastQueueItem(){return this.length===0?null:this.queue[this.length-1]}push(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1];var t,i;let o=le({},A),g=new Promise(((r,n)=>{o.resolve=r,o.reject=n}));return o.promise=g,e?this.length<=1?this.queue.push(o):(i=(t=this.lastQueueItem)==null?void 0:t.promise)==null||i.then(o.resolve,o.reject):this.queue.push(o),this.log.debug("push ".concat(this.length),A.funcName,A.args),this.isRunning||this.callNext(),g}shift(){let A=this.queue.shift();return this.log.debug("shift ".concat(this.length),A==null?void 0:A.funcName,A==null?void 0:A.args),A}callNext(){if(this.isRunning||this.length===0)return;let{fn:A,args:e,context:t,resolve:i,reject:o,funcName:g}=this.queue[0];this.log.debug("callNext",this.length,g,e),this.isRunning=!0,A.apply(t,e).then(i,o).finally((()=>{this.isRunning=!1,this.shift(),this.callNext()}))}},hT=new WeakMap,lT=new WeakMap;function vG(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return function(e,t,i){let o=i.value;return i.value=function(){let g=hT.get(this)||new R2;for(var r=arguments.length,n=new Array(r),I=0;I<r;I++)n[I]=arguments[I];return hT.set(this,g),g.push({fn:o,args:n,context:this,funcName:t},A)},i}}function m2(A){return function(e,t,i){let o=i.value;return i.value=function(){var g,r,n;let I=[];for(var C=arguments.length,u=new Array(C),R=0;R<C;R++)u[R]=arguments[R];return(r=(g=hT.get(this))==null?void 0:g.queue)==null||r.forEach((M=>I.push(M))),(n=lT.get(this))==null||n.forEach((M=>M==null?void 0:M.queue.forEach((L=>I.push(L))))),I.forEach((M=>{M.reject(new oe({code:OA.API_CALL_ABORTED,message:A}))})),hT.delete(this),lT.delete(this),o.apply(this,u)},i}}function pc(A,e){return function(t,i,o){let g=o.value,r=n=>A(...n);return o.value=function(){for(var n=arguments.length,I=new Array(n),C=0;C<n;C++)I[C]=arguments[C];let u=lT.get(this)||new Map,R=u.get(r(I))||new R2(e==null?void 0:e(...I));return u.set(r(I),R),lT.set(this,u),R.push({fn:g,args:I,context:this,funcName:i})},o}}function yc(A,e){return Gi(((t,i)=>function(){let o=A;try{for(var g=arguments.length,r=new Array(g),n=0;n<g;n++)r[n]=arguments[n];let I=t.apply(this,r),C=it();return Vl(I)?I.then((u=>(e?ee.addSuccessEvent({key:o,cost:it()-C}):ee.addSuccessEvent({key:o}),u))).catch((u=>{throw ee.addFailedEvent({key:o,error:u}),u})):(ee.addSuccessEvent({key:o}),I)}catch(I){throw ee.addFailedEvent({key:o,error:I}),I}}))}var f2={};function $i(){}Dn(f2,{Events:()=>vo,Inspect:()=>Rc,LastSink:()=>uT,Sink:()=>yt,Subscribe:()=>dT,TimeoutError:()=>G2,audit:()=>lO,bindCallback:()=>AO,bindNodeCallback:()=>eO,buffer:()=>KH,bufferCount:()=>xH,bufferTime:()=>JO,call:()=>w2,catchError:()=>V2,combineLatest:()=>N2,concat:()=>_H,concatMap:()=>kO,concatMapTo:()=>NO,count:()=>oO,create:()=>ni,debounce:()=>dO,debounceTime:()=>DO,defer:()=>F2,delay:()=>xO,deliver:()=>Rt,dispose:()=>CJ,elementAt:()=>pO,empty:()=>uJ,every:()=>wO,exhaustMap:()=>_O,exhaustMapTo:()=>LO,expand:()=>HO,filter:()=>ku,find:()=>yO,findIndex:()=>RO,first:()=>mO,fromAnimationFrame:()=>zH,fromArray:()=>PH,fromEvent:()=>Fi,fromEventPattern:()=>VH,fromFetch:()=>WH,fromIterable:()=>ZH,fromPromise:()=>_2,fromReadableStream:()=>XH,fromReader:()=>jH,groupBy:()=>bO,identity:()=>vH,ignoreElements:()=>IO,iif:()=>bH,inspect:()=>S2,interval:()=>U2,last:()=>fO,map:()=>DJ,mapTo:()=>GO,max:()=>gO,merge:()=>QJ,mergeMap:()=>vO,mergeMapTo:()=>TO,min:()=>rO,never:()=>tO,nothing:()=>$i,of:()=>qH,pairwise:()=>SO,pipe:()=>Yi,race:()=>k2,range:()=>$H,reduce:()=>L2,retry:()=>VO,scan:()=>J2,setAsapScheduler:()=>OH,share:()=>TG,shareReplay:()=>LH,skip:()=>EO,skipUntil:()=>BO,skipWhile:()=>dJ,startWith:()=>cJ,subject:()=>Ks,subscribe:()=>eg,sum:()=>aO,switchMap:()=>pT,switchMapTo:()=>RT,take:()=>jy,takeLast:()=>sO,takeUntil:()=>Nr,takeWhile:()=>nO,tap:()=>pJ,throttle:()=>cO,throwError:()=>iO,timeInterval:()=>YO,timeout:()=>PO,timer:()=>lJ,toPromise:()=>OO,toReadableStream:()=>qO,withLatestFrom:()=>JH,zip:()=>YH});var w2=A=>A(),vH=A=>A;function CJ(){this.dispose()}var S2=()=>typeof __FASTRX_DEVTOOLS__<"u",TH=1,Rc=class extends Function{toString(){return"".concat(this.name,"(").concat(this.args.length?[...this.args].join(", "):"",")")}subscribe(A){let e=new UH(A,this,this.streamId++);return vo.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},uT=class{constructor(){this.defers=new Set,this.disposed=!1}next(A){}complete(){this.dispose()}error(A){this.dispose()}get bindDispose(){return()=>this.dispose()}dispose(){this.disposed=!0,this.complete=$i,this.error=$i,this.next=$i,this.dispose=$i,this.subscribe=$i,this.doDefer()}subscribe(A){return A instanceof Rc?A.subscribe(this):A(this),this}get bindSubscribe(){return A=>this.subscribe(A)}doDefer(){this.defers.forEach(w2),this.defers.clear()}defer(A){this.defers.add(A)}removeDefer(A){this.defers.delete(A)}reset(){this.disposed=!1,delete this.complete,delete this.next,delete this.dispose,delete this.next,delete this.subscribe}resetNext(){delete this.next}resetComplete(){delete this.complete}resetError(){delete this.error}},yt=class extends uT{constructor(A){super(),this.sink=A,A.defer(this.bindDispose)}next(A){this.sink.next(A)}complete(){this.sink.complete()}error(A){this.sink.error(A)}},dT=class extends uT{constructor(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:$i,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:$i,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:$i;if(super(),this._next=e,this._error=t,this._complete=i,this.then=$i,A instanceof Rc){let o={toString:()=>"subscribe",id:0,source:A};this.defer((()=>{vo.defer(o,0)})),vo.create(o),vo.pipe(o),this.sourceId=o.id,this.subscribe(A),vo.subscribe({id:o.id,end:!0}),e==$i?this._next=g=>vo.next(o,0,g):this.next=g=>{vo.next(o,0,g),e(g)},i==$i?this._complete=()=>vo.complete(o,0):this.complete=()=>{this.dispose(),vo.complete(o,0),i()},t==$i?this._error=g=>vo.complete(o,0,g):this.error=g=>{this.dispose(),vo.complete(o,0,g),t(g)}}else this.subscribe(A)}next(A){this._next(A)}complete(){this.dispose(),this._complete()}error(A){this.dispose(),this._error(A)}};function Yi(A){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i<e;i++)t[i-1]=arguments[i];return t.reduce(((o,g)=>g(o)),A)}function ni(A,e,t){if(S2()){let i=Object.defineProperties(Object.setPrototypeOf(A,Rc.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:e,writable:!0,configurable:!0},args:{value:t,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});vo.create(i);for(let o=0;o<t.length;o++){let g=t[o];typeof g=="function"&&g instanceof Rc&&vo.addSource(i,g)}return i}return A}function Rt(A,e){return function(){for(var t=arguments.length,i=new Array(t),o=0;o<t;o++)i[o]=arguments[o];return g=>{if(g instanceof Rc){let r=ni((n=>{let I=new A(n,...i);I.sourceId=r.id,I.subscribe(g)}),e,arguments);return r.source=g,vo.pipe(r),r}return r=>g(new A(r,...i))}}}function mc(A,e){window.postMessage({source:"fastrx-devtools-backend",payload:{event:A,payload:e}})}var UH=class extends yt{constructor(A,e,t){super(A),this.source=e,this.id=t,this.sourceId=A.sourceId,this.defer((()=>{vo.defer(this.source,this.id)}))}next(A){vo.next(this.source,this.id,A),this.sink.next(A)}complete(){vo.complete(this.source,this.id),this.sink.complete()}error(A){vo.complete(this.source,this.id,A),this.sink.error(A)}},vo={addSource(A,e){mc("addSource",{id:A.id,name:A.toString(),source:{id:e.id,name:e.toString()}})},next(A,e,t){mc("next",{id:A.id,streamId:e,data:t&&t.toString()})},subscribe(A,e){let{id:t,end:i}=A;mc("subscribe",{id:t,end:i,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(A,e,t){mc("complete",{id:A.id,streamId:e,err:t?t.toString():null})},defer(A,e){mc("defer",{id:A.id,streamId:e})},pipe(A){mc("pipe",{name:A.toString(),id:A.id,source:{id:A.source.id,name:A.source.toString()}})},update(A){mc("update",{id:A.id,name:A.toString()})},create(A){A.id||(A.id=TH++),mc("create",{name:A.toString(),id:A.id})}},G2=class extends Error{constructor(A){super("timeout after ".concat(A,"ms")),this.timeout=A}},M2=class extends uT{constructor(A){super(),this.source=A,this.sinks=new Set}add(A){A.defer((()=>this.remove(A))),this.sinks.add(A).size===1&&(this.reset(),this.subscribe(this.source))}remove(A){this.sinks.delete(A),this.sinks.size===0&&this.dispose()}next(A){this.sinks.forEach((e=>e.next(A)))}complete(){this.sinks.forEach((A=>A.complete())),this.sinks.clear()}error(A){this.sinks.forEach((e=>e.error(A))),this.sinks.clear()}};function TG(){return A=>{let e=new M2(A);if(A instanceof Rc){let t=ni((i=>{e.add(i)}),"share",arguments);return e.sourceId=t.id,t.source=A,vo.pipe(t),t}return ni(e.add.bind(e),"share",arguments)}}function QJ(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return ni((i=>{let o=new yt(i),g=e.length;o.complete=()=>{--g==0&&i.complete()},e.forEach(o.bindSubscribe)}),"merge",arguments)}function k2(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return ni((i=>{let o=new Map;e.forEach((g=>{let r=new yt(i);o.set(g,r),r.complete=()=>{o.delete(g),o.size===0?i.complete():r.dispose()},r.next=n=>{o.delete(g),o.forEach((I=>I.dispose())),r.resetNext(),r.resetComplete(),r.next(n)}})),e.forEach((g=>o.get(g).subscribe(g)))}),"race",arguments)}function _H(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return ni((i=>{let o=0,g=e.length,r=new yt(i);r.complete=()=>{o<g&&!r.disposed?(r.doDefer(),r.subscribe(e[o++])):i.complete()},r.complete()}),"concat",arguments)}function LH(A){return e=>{let t=new M2(e),i=[];return t.next=function(o){i.push(o),i.length>A&&i.shift(),this.sinks.forEach((g=>g.next(o)))},ni((o=>{o.defer((()=>t.remove(o))),i.forEach((g=>o.next(g))),t.add(o)}),"shareReplay",arguments)}}function bH(A,e,t){return ni((i=>A()?e(i):t(i)),"iif",arguments)}function N2(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return ni((i=>{let o=e.length,g=o,r=o,n=new Array(o),I=()=>{--r==0&&i.complete()};e.forEach(((C,u)=>{let R=new yt(i);R.next=M=>{g--,R.next=L=>{n[u]=L,g===0&&i.next(n)},R.next(M)},R.complete=I,R.subscribe(C)}))}),"combineLatest",arguments)}function YH(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return ni((i=>{let o=e.length,g=o,r=new Array(o),n=()=>{--g==0&&i.complete()};e.forEach(((I,C)=>{let u=new yt(i),R=[];r[C]=R,u.next=M=>{R.push(M),r.every((L=>L.length))&&i.next(r.map((L=>L.shift())))},u.complete=n,u.subscribe(I)}))}),"zip",arguments)}function cJ(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return i=>ni((function(o){let g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length;for(;g<r&&!o.disposed;)o.next(e[g++]);o.disposed||o.subscribe(i)}),"startWith",arguments)}var JH=Rt(class extends yt{constructor(A){super(A);let e=new yt(this.sink);for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];e.next=g=>this.buffer=g,e.complete=$i,e.subscribe(N2(...i))}next(A){this.buffer&&this.sink.next([A,...this.buffer])}},"withLatestFrom"),xH=Rt(class extends yt{constructor(A,e,t){super(A),this.bufferSize=e,this.startBufferEvery=t,this.buffer=[],this.count=0,this.startBufferEvery&&(this.buffers=[[]])}next(A){this.startBufferEvery?(this.count++===this.startBufferEvery&&(this.buffers.push([]),this.count=1),this.buffers.forEach((e=>{e.push(A)})),this.buffers[0].length===this.bufferSize&&this.sink.next(this.buffers.shift())):(this.buffer.push(A),this.buffer.length===this.bufferSize&&(this.sink.next(this.buffer),this.buffer=[]))}complete(){this.buffer.length?this.sink.next(this.buffer):this.buffers.length&&this.buffers.forEach((A=>this.sink.next(A))),super.complete()}},"bufferCount"),KH=Rt(class extends yt{constructor(A,e){super(A),this.buffer=[];let t=new yt(A);t.next=i=>{A.next(this.buffer),this.buffer=[]},t.complete=$i,t.subscribe(e)}next(A){this.buffer.push(A)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},"buffer"),HH=function(A,e,t,i){return new(t||(t=Promise))((function(o,g){function r(C){try{I(i.next(C))}catch(u){g(u)}}function n(C){try{I(i.throw(C))}catch(u){g(u)}}function I(C){C.done?o(C.value):(function(u){return u instanceof t?u:new t((function(R){R(u)}))})(C.value).then(r,n)}I((i=i.apply(A,[])).next())}))};function Ks(A){let e=arguments,t=TG()(ni((i=>{t.next=o=>i.next(o),t.complete=()=>i.complete(),t.error=o=>i.error(o),A&&i.subscribe(A)}),"subject",e));return t.next=$i,t.complete=$i,t.error=$i,t}function F2(A){return ni((e=>e.subscribe(A())),"defer",arguments)}var Zy={promise:A=>{Promise.resolve().then(A)},setImmediate:typeof setImmediate<"u"?A=>setImmediate(A):null,setTimeout:A=>setTimeout(A,0)},hJ=typeof Promise<"u"?Zy.promise:Zy.setImmediate?Zy.setImmediate:Zy.setTimeout,v2=A=>e=>{hJ((()=>A(e)))},OH=A=>{typeof A=="function"?hJ=A:Zy[A]&&(hJ=Zy[A])},T2=A=>v2((e=>{for(let t=0;!e.disposed&&t<A.length;t++)e.next(A[t]);e.complete()}));function qH(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return ni(T2(e),"of",arguments)}function PH(A){return ni(T2(A),"fromArray",arguments)}function U2(A){return ni((e=>{let t=0,i=setInterval((()=>e.next(t++)),A);return e.defer((()=>{clearInterval(i)})),"interval"}),"interval",arguments)}function lJ(A,e){return ni((t=>{let i=0,o=setTimeout((()=>{if(t.removeDefer(g),t.next(i++),e){let r=setInterval((()=>t.next(i++)),e);t.defer((()=>{clearInterval(r)}))}else t.complete()}),A),g=()=>clearTimeout(o);t.defer(g)}),"timer",arguments)}function DT(A,e){return t=>{let i=o=>t.next(o);t.defer((()=>e(i))),A(i)}}function VH(A,e){return ni(DT(A,e),"fromEventPattern",arguments)}function Fi(A,e){if("on"in A&&"off"in A)return ni(DT((t=>A.on(e,t)),(t=>A.off(e,t))),"fromEvent",arguments);if("addListener"in A&&"removeListener"in A)return ni(DT((t=>A.addListener(e,t)),(t=>A.removeListener(e,t))),"fromEvent",arguments);if("addEventListener"in A)return ni(DT((t=>A.addEventListener(e,t)),(t=>A.removeEventListener(e,t))),"fromEvent",arguments);throw"target is not a EventDispachter"}function _2(A){return ni((e=>{A.then(e.next.bind(e),e.error.bind(e))}),"fromPromise",arguments)}function WH(A,e){return ni(F2((()=>_2(fetch(A,e)))),"fromFetch",arguments)}function ZH(A){return ni(v2((e=>{try{for(let t of A){if(e.disposed)return;e.next(t)}e.complete()}catch(t){e.error(t)}})),"fromIterable",arguments)}function jH(A){let e=t=>HH(this,void 0,void 0,(function*(){if(t.disposed)return;let{done:i,value:o}=yield A.read();i?t.complete():(t.next(o),e(t))}));return ni((t=>{e(t)}),"fromReader",arguments)}function XH(A){return ni((e=>{let t=new AbortController,i=t.signal;e.defer((()=>t.abort("cancelled"))),A.pipeTo(new WritableStream({write(o){e.next(o)},close(){e.complete()},abort(o){e.error(o)}}),{signal:i}).then((()=>e.complete()),(o=>e.error(o)))}),"fromReadableStream",arguments)}function zH(){return ni((A=>{let e=requestAnimationFrame((function t(i){A.disposed||(A.next(i),e=requestAnimationFrame(t))}));A.defer((()=>cancelAnimationFrame(e)))}),"fromAnimationFrame",arguments)}function $H(A,e){return ni((function(t){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:A,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e+A;for(;i<o&&!t.disposed;)t.next(i++);return t.complete(),"range"}),"range",arguments)}function AO(A,e){for(var t=arguments.length,i=new Array(t>2?t-2:0),o=2;o<t;o++)i[o-2]=arguments[o];return ni((g=>{let r=i.concat((n=>(g.next(n),g.complete())));A.apply(e,r)}),"bindCallback",arguments)}function eO(A,e){for(var t=arguments.length,i=new Array(t>2?t-2:0),o=2;o<t;o++)i[o-2]=arguments[o];return ni((g=>{let r=i.concat(((n,I)=>n?g.error(n):(g.next(I),g.complete())));A.apply(e,r)}),"bindNodeCallback",arguments)}function tO(){return ni((()=>{}),"never",arguments)}function iO(A){return ni((e=>e.error(A)),"throwError",arguments)}function uJ(){return ni((A=>A.complete()),"empty",arguments)}var UG=class extends yt{constructor(A,e,t){super(A),this.f=e;let i=()=>{this.sink.next(this.acc),this.sink.complete()};t===void 0?this.next=o=>{this.acc=o,this.complete=i,this.resetNext()}:(this.acc=t,this.complete=i)}next(A){this.acc=this.f(this.acc,A)}},L2=Rt(UG,"reduce"),oO=A=>Rt(UG,"count")(((e,t)=>A(t)?e+1:e),0),gO=()=>Rt(UG,"max")(Math.max),rO=()=>Rt(UG,"min")(Math.min),aO=()=>Rt(UG,"sum")(((A,e)=>A+e),0),ku=Rt(class extends yt{constructor(A,e,t){super(A),this.filter=e,this.thisArg=t}next(A){this.filter.call(this.thisArg,A)&&this.sink.next(A)}},"filter"),IO=Rt(class extends yt{next(A){}},"ignoreElements"),jy=Rt(class extends yt{constructor(A,e){super(A),this.count=e}next(A){this.sink.next(A),--this.count==0&&(this.doDefer(),this.complete())}},"take"),Nr=Rt(class extends yt{constructor(A,e){super(A);let t=new yt(A);t.next=()=>{t.doDefer(),A.complete()},t.complete=CJ,t.subscribe(e)}},"takeUntil"),nO=Rt(class extends yt{constructor(A,e){super(A),this.f=e}next(A){this.f(A)?this.sink.next(A):(this.doDefer(),this.complete())}},"takeWhile"),sO=A=>L2(((e,t)=>(e.push(t),e.length>A&&e.shift(),e)),[]),EO=Rt(class extends yt{constructor(A,e){super(A),this.count=e}next(A){--this.count==0&&(this.next=super.next)}},"skip"),BO=Rt(class extends yt{constructor(A,e){super(A),A.next=$i;let t=new yt(A);t.next=()=>{t.doDefer(),A.resetNext()},t.complete=CJ,t.subscribe(e)}},"skipUntil"),dJ=Rt(class extends yt{constructor(A,e){super(A),this.f=e}next(A){this.f(A)||(this.next=super.next,this.next(A))}},"skipWhile"),CO={leading:!0,trailing:!1},QO=class extends yt{constructor(A,e,t){super(A),this.durationSelector=e,this.trailing=t}cacheValue(A){this.last=A,this.disposed&&this.throttle(A)}send(A){this.sink.next(A),this.throttle(A)}throttle(A){this.reset(),this.subscribe(this.durationSelector(A))}next(){this.complete()}complete(){this.dispose(),this.trailing&&this.send(this.last)}},b2=class extends yt{constructor(A,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:CO;super(A),this.durationSelector=e,this.config=t,this._throttle=new QO(this.sink,this.durationSelector,this.config.trailing),this._throttle.dispose()}next(A){this._throttle.disposed&&this.config.leading?this._throttle.send(A):this._throttle.cacheValue(A)}complete(){this._throttle.throttle=$i,this._throttle.complete(),super.complete()}},cO=Rt(b2,"throttle"),hO={leading:!1,trailing:!0},lO=A=>Rt(b2,"audit")(A,hO),uO=class extends yt{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},Y2=class extends yt{constructor(A,e){super(A),this.durationSelector=e,this._debounce=new uO(this.sink),this._debounce.dispose()}next(A){this._debounce.dispose(),this._debounce.reset(),this._debounce.last=A,this._debounce.subscribe(this.durationSelector(A))}complete(){this._debounce.complete(),super.complete()}},dO=Rt(Y2,"debounce"),DO=A=>Rt(Y2,"debounceTime")((e=>lJ(A))),pO=Rt(class extends yt{constructor(A,e,t){super(A),this.count=e,this.defaultValue=t}next(A){this.count--==0&&(this.defaultValue=A,this.doDefer(),this.complete())}complete(){this.defaultValue!==void 0?(this.sink.next(this.defaultValue),super.complete()):this.error(new Error("not enough elements in sequence"))}},"elementAt"),yO=A=>e=>jy(1)(dJ((t=>!A(t)))(e)),RO=Rt(class extends yt{constructor(A,e){super(A),this.f=e,this.i=0}next(A){this.f(A)?(this.sink.next(this.i++),this.doDefer(),this.complete()):++this.i}},"findIndex"),mO=Rt(class extends yt{constructor(A,e,t){super(A),this.f=e,this.defaultValue=t,this.index=0}next(A){(!this.f||this.f(A,this.index++))&&(this.defaultValue=A,this.doDefer(),this.complete())}complete(){this.defaultValue!==void 0?(this.sink.next(this.defaultValue),super.complete()):this.error(new Error("no elements in sequence"))}},"first"),fO=Rt(class extends yt{constructor(A,e,t){super(A),this.f=e,this.defaultValue=t,this.index=0}next(A){(!this.f||this.f(A,this.index++))&&(this.defaultValue=A)}complete(){this.defaultValue!==void 0?(this.sink.next(this.defaultValue),super.complete()):this.error(new Error("no elements in sequence"))}},"last"),wO=Rt(class extends yt{constructor(A,e){super(A),this.predicate=e,this.index=0}next(A){this.predicate(A,this.index++)?this.result=!0:(this.result=!1,this.doDefer(),this.complete())}complete(){this.result!==void 0?(this.sink.next(this.result),super.complete()):this.error(new Error("no elements in sequence"))}},"every"),J2=Rt(class extends yt{constructor(A,e,t){super(A),this.f=e,t===void 0?this.next=i=>{this.acc=i,this.resetNext(),this.sink.next(this.acc)}:this.acc=t}next(A){this.sink.next(this.acc=this.f(this.acc,A))}},"scan"),SO=Rt(class extends yt{constructor(){super(...arguments),this.hasLast=!1}next(A){this.hasLast?this.sink.next([this.last,A]):this.hasLast=!0,this.last=A}},"pairwise"),x2=class extends yt{constructor(A,e,t){super(A),this.mapper=e,this.thisArg=t}next(A){super.next(this.mapper.call(this.thisArg,A))}},DJ=Rt(x2,"map"),GO=A=>Rt(x2,"mapTo")((e=>A)),_G=class extends yt{constructor(A,e,t){super(A),this.data=e,this.context=t}next(A){let e=this.context.combineResults;e?this.sink.next(e(this.data,A)):this.sink.next(A)}tryComplete(){this.context.resetComplete(),this.dispose()}},LG=class FK extends yt{constructor(e,t,i){super(e),this.makeSource=t,this.combineResults=i,this.index=0}subInner(e,t){let i=this.currentSink=new t(this.sink,e,this);this.complete===FK.prototype.complete&&(this.complete=this.tryComplete),i.complete=i.tryComplete,i.subscribe(this.makeSource(e,this.index++))}complete(){this.sink.complete()}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},K2=class extends _G{},H2=class extends LG{next(A){this.subInner(A,K2),this.next=e=>{this.currentSink.dispose(),this.subInner(e,K2)}}},pT=Rt(H2,"switchMap");function yT(A){return(e,t)=>A((()=>e),t)}var RT=yT(Rt(H2,"switchMapTo")),MO=class extends _G{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},O2=class extends LG{constructor(){super(...arguments),this.sources=[],this.next2=this.sources.push.bind(this.sources)}next(A){this.next2(A),this.subNext()}subNext(){this.next=this.next2,this.subInner(this.sources.shift(),MO),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},kO=Rt(O2,"concatMap"),NO=yT(Rt(O2,"concatMapTo")),FO=class extends _G{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},q2=class extends LG{constructor(){super(...arguments),this.inners=new Set}next(A){this.subInner(A,FO),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach((A=>A.resetComplete())):this.dispose()}},vO=Rt(q2,"mergeMap"),TO=yT(Rt(q2,"mergeMapTo")),UO=class extends _G{dispose(){this.context.resetNext(),super.dispose()}},P2=class extends LG{next(A){this.next=$i,this.subInner(A,UO)}},_O=Rt(P2,"exhaustMap"),LO=yT(Rt(P2,"exhaustMapTo")),bO=Rt(class extends yt{constructor(A,e){super(A),this.f=e,this.groups=new Map}next(A){let e=this.f(A),t=this.groups.get(e);t===void 0&&(t=Ks(),t.key=e,this.groups.set(e,t),super.next(t)),t.next(A)}complete(){this.groups.forEach((A=>A.complete())),super.complete()}error(A){this.groups.forEach((e=>e.error(A))),super.error(A)}},"groupBy"),YO=Rt(class extends yt{constructor(){super(...arguments),this.start=new Date}next(A){this.sink.next({value:A,interval:Number(new Date)-Number(this.start)}),this.start=new Date}},"timeInterval"),JO=Rt(class extends yt{constructor(A,e){super(A),this.miniseconds=e,this.buffer=[],this.id=setInterval((()=>{this.sink.next(this.buffer.concat()),this.buffer.length=0}),this.miniseconds)}next(A){this.buffer.push(A)}complete(){this.sink.next(this.buffer),super.complete()}dispose(){clearInterval(this.id),super.dispose()}},"bufferTime"),xO=Rt(class extends yt{constructor(A,e){super(A),this.buffer=[],this.delayTime=e}dispose(){clearTimeout(this.timeoutId),super.dispose()}delay(A){this.timeoutId=setTimeout((()=>{let e=this.buffer.shift();if(e){let{time:t,data:i}=e;super.next(i),this.buffer.length&&this.delay(Number(this.buffer[0].time)-Number(t))}}),A)}next(A){this.buffer.length||this.delay(this.delayTime),this.buffer.push({time:new Date,data:A})}complete(){this.timeoutId=setTimeout((()=>super.complete()),this.delayTime)}},"delay"),V2=Rt(class extends yt{constructor(A,e){super(A),this.selector=e}error(A){this.dispose(),this.selector(A)(this.sink)}},"catchError"),KO=class extends _G{tryComplete(){let A=this.context.inners.delete(this);super.dispose(),A&&this.context.checkComplete()}next(A){this.sink.next(A),this.context.expandValue(A)}},HO=Rt(class extends LG{constructor(A,e){super(A,e),this.project=e,this.inners=new Set,this.sourceCompleted=!1}next(A){this.sink.next(A),this.expandValue(A)}expandValue(A){let e=new KO(this.sink,A,this);this.currentSink=e,this.complete=this.tryComplete,e.complete=e.tryComplete,this.inners.add(e),e.subscribe(this.makeSource(A,this.index++))}complete(){this.sourceCompleted=!0,this.checkComplete()}checkComplete(){this.sourceCompleted&&this.inners.size===0&&(this.resetComplete(),super.complete())}tryComplete(){this.sourceCompleted=!0,this.checkComplete()}},"expand"),OO=()=>A=>new Promise(((e,t)=>{let i;new dT(A,(o=>i=o),t,(()=>e(i)))})),qO=()=>A=>{let e;return new ReadableStream({start(t){e=new dT(A,t.enqueue.bind(t),t.error.bind(t),t.close.bind(t))},cancel(){e.dispose()}})},eg=function(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:$i,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:$i,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:$i;return i=>new dT(i,A,e,t)},pJ=Rt(class extends yt{constructor(A,e){super(A),e instanceof Function?this.next=t=>{e(t),A.next(t)}:(e.next&&(this.next=t=>{e.next(t),A.next(t)}),e.complete&&(this.complete=()=>{e.complete(),A.complete()}),e.error&&(this.error=t=>{e.error(t),A.error(t)}))}},"tap"),PO=Rt(class extends yt{constructor(A,e){super(A),this.timeout=e,this.id=setTimeout((()=>this.error(new G2(this.timeout))),this.timeout)}next(A){super.next(A),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},"timeout"),VO=function(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1/0;return e=>{if(e instanceof Rc){let t=ni((i=>{let o=A,g=new yt(i);g.error=r=>{o-- >0?g.subscribe(e):i.error(r)},g.sourceId=t.id,g.subscribe(e)}),"retry",[A]);return t.source=e,vo.pipe(t),t}return t=>{let i=A,o=new yt(t);o.error=g=>{i-- >0?e(o):t.error(g)},e(o)}}},yJ=(A=>(A[A.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",A[A.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",A))(yJ||{}),bG=class vK extends BJ{constructor(e,t){super({mediaType:e,PlayerClass:t}),l(this,"isRemote",!1),l(this,"deviceId"),l(this,"groupId",""),l(this,"label",""),l(this,"sourceTrack"),l(this,"enableAutoSwitchWhenRecapturing",!0),l(this,"_isRecapturing",!1),l(this,"_lastRecaptureTime",0),l(this,"_onMuteTimeoutId",-1),l(this,"_encodeCheckTimeoutId",-1),l(this,"recaptureMode",0),l(this,"profile"),l(this,"retryEncodeFailed")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}get isUseCustomSource(){return this.sourceTrack&&this.mediaTrack&&this.sourceTrack!==this.mediaTrack}encodeFrame(e,t){throw new Error("Method not implemented.")}installTrackEvent(e){e.addEventListener(V.MUTE,this.onTrackMuted),e.addEventListener(V.UNMUTE,this.onTrackUnmuted),e.addEventListener(V.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===V.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){e.removeEventListener(V.MUTE,this.onTrackMuted),e.removeEventListener(V.UNMUTE,this.onTrackUnmuted),e.removeEventListener(V.ENDED,this.onTrackEnded)}setStateToReady(){}capture(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return X(this,null,(function*(){var i;let o=this.sourceTrack;try{let g,r=it();N.emit(v.LOCAL_TRACK_CAPTURE_START,{track:this}),e.customSource?(g=new MediaStream,g.addTrack(e.customSource)):(t||(i=this.sourceTrack)==null||i.stop(),g=yield kH(e));let n=g.getTracks()[0];return yield this.setInputMediaStreamTrack(n),e.customSource||(this.sourceTrack=n,this.updateDeviceIdInUse(),this.listenDeviceChange()),N.emit(v.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:it()-r}),g}catch(g){throw N.emit(v.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:g}),this.log.error("getUserMedia error observed ".concat(g)),g}finally{t&&(o==null||o.stop())}}))}setOutputMediaStreamTrack(e){var t;if(super.setOutputMediaStreamTrack(e),this.setStateToReady(),this.isPublishing||this.isPublished)return(t=this.room)==null?void 0:t.replaceTrack(this)}get hasFlag(){var e,t;let i=dB(((e=this.room)==null?void 0:e.localPublishFlag)||0,((t=this.room)==null?void 0:t.userId)||"");return this.mediaType===4&&i.hasVideo||this.mediaType===1&&i.hasAudio||this.mediaType===2&&i.hasAuxiliary}publish(e,t){return X(this,null,(function*(){return this.room=e,this.room.localTracks.add(this),this.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=e.userId,this._log.bindParent(e.getLogger()),yield t,this._checkPublishFlag(e)}))}_checkPublishFlag(e){return new Promise(((t,i)=>X(this,null,(function*(){var o,g,r,n;let I=()=>i(new oe({code:OA.API_CALL_ABORTED,message:"publish aborted"}));if(this.hasFlag||this.muted?t():((this.state===pt.INIT||this.state==="ready")&&I(),Yi(Fi(e,"local-publish-flag-changed"),ku((()=>this.hasFlag)),Nr(QJ(Fi(this,pt.INIT),Fi(this,"ready"))),eg(t,i,I))),(((g=(o=this.room)==null?void 0:o.networkQuality)==null?void 0:g.uplinkNetworkQuality)||0)>3)return t();let C=e.heartbeatCount,u=((n=(r=this.mediaTrack)==null?void 0:r.stats)==null?void 0:n.totalFrames)||0;this._encodeCheckTimeoutId=setTimeout((()=>X(this,null,(function*(){var R,M,L,H,gA,EA,TA;if((((M=(R=this.room)==null?void 0:R.networkQuality)==null?void 0:M.uplinkNetworkQuality)||0)>3||e.heartbeatCount-C<3)return t();if((this.isPublished||this.isPublishing)&&this.isMediaTrackActive){if((L=this.mediaTrack)!=null&&L.stats){let BA=this.mediaTrack.stats.totalFrames||0;BA-u==0&&this.log.warn("capture totalFrames is 0 during encode check, totalFrames",BA)}let hA=this.kind===V.AUDIO,ZA=this.stat.bytesSent>0;if(ee[ZA?"addSuccessEvent":"addFailedEvent"]({key:hA?503700:513702}),!hA){let BA={H264:513704,H265:513705,VP8:513706}[((gA=(H=this.room)==null?void 0:H.videoCodec)==null?void 0:gA.toUpperCase())||"H264"];BA&&ee[ZA?"addSuccessEvent":"addFailedEvent"]({key:BA})}if(!ZA){if(ee.addEnum({key:hA?503701:513703,value:Ut()}),wi.uploadEvent({log:"stat-encode-failed-".concat(this.kind,"-").concat(No()||s()),userId:this.userId}),this.log.warn(hA?"encode failed":"".concat((TA=(EA=this.room)==null?void 0:EA.videoCodec)==null?void 0:TA.toUpperCase()," encode failed")),this.retryEncodeFailed&&(this.log.warn("retry encode"),yield this.retryEncodeFailed(this),this.stat.bytesSent>0||this.hasFlag||(yield ra(5e3),this.stat.bytesSent>0||this.hasFlag)))return t();this.emit("6",this),i(new oe({message:"".concat(this.strMediaType," encode failed"),code:hA?OA.AUDIO_ENCODE_FAILED:OA.VIDEO_ENCODE_FAILED}))}}}))),1e4)}))))}unpublish(){this.room&&this.room.localTracks.delete(this),this.log.info("unpublish"),N.emit(v.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return X(this,null,(function*(){if(this.sourceTrack&&cc){let{deviceId:e,groupId:t}=this.sourceTrack.getSettings(),{label:i}=this.sourceTrack;(yield(function(o){return X(this,arguments,(function(g){let{newDeviceId:r,oldDeviceId:n,oldGroupId:I,oldLabel:C,kind:u}=g;return(function*(){return r===n&&(u!==V.AUDIO||r!==bl||(yield u2(I,C)))})()}))})({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=i,t&&(this.groupId=t),QT().then((o=>{let g=o.find((r=>{let n=r.deviceId===e;return t&&(n=n&&r.groupId===t),n}));g&&this.emit("2",g)})))}}))}setProfile(e){this.log.info("setProfile",e),Object.assign(this.profile,e)}isNeedToRecapture(){let e=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return!(!this.deviceId||!this.sourceTrack||this.kind===V.AUDIO&&!(function(t){if(t instanceof CanvasCaptureMediaStreamTrack||!(t instanceof MediaStreamTrack))return!1;let i=t.label.toLocaleLowerCase();if(i.includes("mic")||i.includes("麦克风"))return!0;let o="".concat(((t==null?void 0:t.getSettings())||{}).deviceId,"_").concat(V.AUDIO_INPUT);return!!sJ.has(o)})(this.sourceTrack)||this.kind===V.VIDEO&&!(function(t){if(t instanceof CanvasCaptureMediaStreamTrack||!(t instanceof MediaStreamTrack))return!1;let i=t.label.toLocaleLowerCase();if(i.includes("camera")||i.includes("webcam"))return!0;let o="".concat(((t==null?void 0:t.getSettings())||{}).deviceId,"_").concat(V.VIDEO_INPUT);return!!sJ.has(o)})(this.sourceTrack)||this._isRecapturing||e&&Ts&&ko)}onTrackMuted(){if(super.onTrackMuted(),NH(),this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<xl)return void setTimeout((()=>this.onTrackMuted()),xl);this._onMuteTimeoutId=setTimeout((()=>X(this,null,(function*(){var e;if((e=this.sourceTrack)!=null&&e.muted){if((uo||Oi)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}))),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return X(this,null,(function*(){if(Xg(vK.prototype,this,"onTrackEnded").call(this),this.isNeedToRecapture()&&this.recaptureMode===0){if(Date.now()-this._lastRecaptureTime<xl)return void setTimeout((()=>this.onTrackEnded()),xl);this.emit("7"),this.recapture(yield this.getRecoverCaptureDeviceId())}}))}recapture(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return X(this,null,(function*(){var i;if(this._isRecapturing||!this.sourceTrack)return;this.log.warn("recapture trying");let o=this.sourceTrack;t||(i=this.sourceTrack)==null||i.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let g={useExactDeviceId:!0};if(e==="user"||e==="environment")g.facingMode=e;else{let r;(this.kind==="audio"?yield _B():yield LB()).find((n=>n.deviceId===e))&&(r=e),g.deviceId=r}return this.capture(g,t).then((()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),N.emit(v.LOCAL_TRACK_RECAPTURE,{track:this})})).catch((r=>{this._isRecapturing=!1,this.log.warn("recapture failed ".concat(r.message)),this.emit("5",r),N.emit(v.LOCAL_TRACK_RECAPTURE,{track:this,error:r})})).finally((()=>{t&&(o==null||o.stop())}))}))}getRecoverCaptureDeviceId(){return X(this,null,(function*(){let e=this instanceof YB;if(e&&this.facingMode)return this.facingMode;let{deviceId:t}=this;if(t){let i=(JG.get(t)||0)+1;if(JG.set(t,i),i>=3&&this.enableAutoSwitchWhenRecapturing){let o=e?(yield LB()).find((g=>!JG.has(g.deviceId))):(yield _B()).find((g=>!JG.has(g.deviceId)));o&&(this.log.warn("".concat(t," capture fail ").concat(i," times, change new ").concat(o.deviceId)),t=o.deviceId)}}return t}))}stopCapture(){var e;this.sourceTrack&&(this.sourceTrack.stop(),this.uninstallTrackEvent(this.sourceTrack)),this._inputTrack&&this.uninstallTrackEvent(this._inputTrack),(e=this.manager)==null||e.removeInput(this)}close(){super.close(),this.stopCapture()}};ne([go(pt.INIT,"ready",{ignoreError:!0,sync:!0})],bG.prototype,"setStateToReady"),ne([vG()],bG.prototype,"capture"),ne([go("ready","publish",{ignoreError:!0,success(){N.emit(v.LOCAL_TRACK_PUBLISHED,{track:this,room:this.room}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"}),this.log.info("published")},fail(A){var e;(e=this.room)==null||e.localTracks.delete(this);let t="error",i=A instanceof oe?A:A.cause instanceof oe?A.cause:A,o=!1;i instanceof oe&&(i.message.includes("timeout")?t="timeout":i.code===OA.API_CALL_ABORTED&&(o=!0,t="api-call")),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:t,error:i}),this.log[o?"info":"error"]("publish failed",i)}}),yc(521714,!1)],bG.prototype,"publish"),ne([Gi((A=>function(){return X(this,null,(function*(){let e=this.state==="publish"?"started":"starting";A.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:e,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)}))})),go([],"ready",{sync:!0})],bG.prototype,"unpublish");var YG=bG,JG=new Map;N.on(v.SWITCH_DEVICE_SUCCESS,(A=>{A.track.deviceId&&JG.delete(A.track.deviceId)}));var Nu=class $G extends YG{constructor(e){super(1,fH),l(this,"mediaType",1),l(this,"volume",0),l(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40}),l(this,"playerMuted",!0),l(this,"pipeline"),l(this,"earMonitorGainNode",new tr),l(this,"_output",new tr),l(this,"codecPipeline",[]),l(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0}),l(this,"mixedAudioReferenceMap",new Map),l(this,"isAudioContextLongSuspended",!1),l(this,"after3aSilenceStartTime",0),this.manager=e,this.pipeline=new B2(e),this.pipeline.source.pipeTo(this.player.pipeline.volumeMeter),this.pipeline.gain.pipeTo(this.earMonitorGainNode).pipeTo(this._output),this.pipeline.gain.pipeTo(this.player.pipeline.volumeMeterAfter3A),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this),N.on(v.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this)}get dbVolume(){return CT.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}getAudioLevel(){let e=(this.volume||super.getAudioLevel())*this.captureVolume;return e>1?1:e}getInternalAudioLevelAfter3A(){if(this.pipeline.aec.node||this.pipeline.denoiser.node)return this.player.getInternalAudioLevelAfter3A()}updateAfter3aSilenceStartTime(e){yA(e)||(e!==0||this.after3aSilenceStartTime?e>0&&(this.after3aSilenceStartTime=0):this.after3aSilenceStartTime=it())}setInputMediaStreamTrack(e){return X(this,null,(function*(){let t=this.trackSettings||{};ee.addEnum({key:501701,value:t.channelCount||0,useUV:!1}),ee.addEnum({key:501702,value:t.sampleRate||0,useUV:!1}),ee.addEnum({key:502700,value:0});let{sampleRate:i,channelCount:o}=t;this._log.info("local audio track input ".concat(JSON.stringify({sampleRate:i,channelCount:o}))),this.pipeline.source.channelCount=o||1,this.pipeline.replaceSource(e),yield Xg($G.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)}))}capture(e){return X(this,arguments,(function(t){var i=this;let{deviceId:o,customSource:g,useExactDeviceId:r=!0,retryWhenExactFailed:n}=t,I=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return(function*(){let C=yield Xg($G.prototype,i,"capture").call(i,{video:!1,audio:!0,microphoneId:o,echoCancellation:i.profile.echoCancellation,autoGainControl:i.profile.autoGainControl,noiseSuppression:i.profile.noiseSuppression,sampleRate:i.profile.sampleRate,channelCount:i.profile.channelCount,useExactDeviceId:r,retryWhenExactFailed:n,customSource:g},I);return NG(),C})()}))}switchDevice(e){return X(this,null,(function*(){if(this.mediaTrack){if(this.deviceId===e&&!this.isUseCustomSource&&(e!==bl||(yield u2(this.groupId,this.label))))return;try{this.log.info("switchDevice audio to: ".concat(e)),this.sourceTrack&&this.sourceTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),N.emit(v.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch microphone success")}catch(t){throw this.log.error("switch microphone failed ".concat(t)),this.deviceId&&this.recapture(this.deviceId),t}}}))}listenDeviceChange(){Ho&&!Ho.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&Ho.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return X(this,null,(function*(){if(e.deviceId===this.deviceId){let t=this.recaptureMode===1;if(this.log.warn("RecaptureMode: ".concat(yJ[this.recaptureMode],". Current microphone is lost: ").concat(JSON.stringify(e))),this.recaptureMode===0){po(this.userId,{eventId:2003,param1:6,streamType:1});let i=yield _B();i[0]?this.recapture(i[0].deviceId):t=!0}t&&Ho.on("audioInputAdded",this.handleMicrophoneAdded,this)}}))}handleMicrophoneAdded(e){this.recaptureMode===1&&e.deviceId!==this.deviceId||(Ho.off("audioInputAdded",this.handleMicrophoneAdded,this),this.log.warn("microphone added: ".concat(JSON.stringify(e))),this.recapture(e.deviceId))}update3A(e){return X(this,arguments,(function(t){var i=this;let{echoCancellation:o,noiseSuppression:g,autoGainControl:r}=t;return(function*(){let n=i.sourceTrack||i.mediaTrack;if(!n)return;let I=n.getConstraints(),C=!1;!yA(o)&&o!==i.profile.echoCancellation&&(i.profile.echoCancellation=o,I.echoCancellation=o,C=!0),!yA(g)&&g!==i.profile.noiseSuppression&&(i.profile.noiseSuppression=g,I.noiseSuppression=g,C=!0),!yA(r)&&r!==i.profile.autoGainControl&&(i.profile.autoGainControl=r,I.autoGainControl=r,C=!0),C&&(ei||ko?yield n.applyConstraints(I).catch((u=>i._log.warn("update3A failed: ",u))):i.deviceId&&(yield i.recapture(i.deviceId,!0)))})()}))}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&ee.addEnum({key:502700,value:2})}setAudioVolume(e){super.setAudioVolume(0),uo&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(Ug().createGain()),this._output.setNode(Ug().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!ko&&!uo)return this.update3A({echoCancellation:e})}addDenoiser(e){var t;Gr<=92&&((t=this.trackSettings)==null?void 0:t.sampleRate)!==48e3?this._log.warn("denoiser only support sampleRate 48000 before chrome 93"):(ee.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.enableTrackANS(!1))}mixAudioReference(e,t){if(this.mixedAudioReferenceMap.has(t))return;this.log.info("mixAudioReference() => ".concat(t));let i=IJ(e);if(!i)return;let o=new tr,g=Ug().createGain();g.gain.value=1;let r=new tr;o.pipeTo(r).pipeTo(this.pipeline.mixNode),o.setNode(i),r.setNode(g),this.mixedAudioReferenceMap.set(t,[o,r])}unMixAudioReference(e){let[t,i]=this.mixedAudioReferenceMap.get(e)||[];t&&(this.log.info("unMixAudioReference() => ".concat(e)),t.deleteNode(),i==null||i.deleteNode(),this.mixedAudioReferenceMap.delete(e))}setAudioReferenceVolume(e,t){let[i,o]=this.mixedAudioReferenceMap.get(e)||[];o!=null&&o.node&&(o.node.gain.value=t/100,this.log.info("setAudioReferenceVolume() => ".concat(e," ").concat(o.node.gain.value)))}addAudioProcessor(e,t,i){this.pipeline.silentNode.setNode(i),this.pipeline.mixNode.setNode(t),this.pipeline.aec.setNode(e)}removeDenoiser(e){if(this.pipeline.denoiser.node===e)return this.pipeline.denoiser.deleteNode(),this.enableTrackANS(!0)}removeAudioProcessor(e){this.pipeline.aec.node===e&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode())}close(){this.mixedAudioReferenceMap.forEach((e=>{let[t,i]=e;t.deleteNode(),i.deleteNode()})),this.mixedAudioReferenceMap.clear(),this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),Ho.off("audioInputAdded",this.handleMicrophoneAdded,this),Ho.off("audioInputRemoved",this.handleMicrophoneRemoved,this),N.off(v.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this),super.close()}recapture(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return X(this,null,(function*(){try{yield Xg($G.prototype,this,"recapture").call(this,e,t)}catch(i){let o=(yield _B()).find((g=>g.deviceId!==e));if(!o)throw i;yield Xg($G.prototype,this,"recapture").call(this,o.deviceId)}}))}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight(((t,i)=>i?i({frame:t,ntp:ml()}):t),e):e}get enableEncodeFrame(){return!!this.manager&&this.manager.encodePipeline.some((e=>e))}get enableEncryptFrame(){return this.manager&&!!this.manager.encodePipeline[0]}handleAudioContextLongSuspended(e){let{isSuspended:t}=e;if(this.pipeline.isProcessEnabled)if(t){this.isAudioContextLongSuspended=!0,this.log.warn("context has suspended for ".concat(1.5," seconds, change to source audio").concat(fB?"":", non-Safari"));let i=this.sourceTrack||this.mediaTrack;i&&this.setOutputMediaStreamTrack(i)}else this.isAudioContextLongSuspended=!1,this.log.warn("context has resumed, change to processed audio"),this.pipeline.track&&this.setOutputMediaStreamTrack(this.pipeline.track)}setOutputMediaStreamTrack(e){if(this.isAudioContextLongSuspended){let t=this.sourceTrack||this.mediaTrack;t&&(e=t)}super.setOutputMediaStreamTrack(e)}};function W2(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1],t=new DataView(A),i=[],o=0;for(;o<t.byteLength;){let g=0;if(o+4<=t.byteLength&&t.getUint8(o)===0&&t.getUint8(o+1)===0&&t.getUint8(o+2)===0&&t.getUint8(o+3)===1)g=4;else{if(!(o+3<=t.byteLength&&t.getUint8(o)===0&&t.getUint8(o+1)===0&&t.getUint8(o+2)===1)){o+=1;continue}g=3}let r=-1;for(let R=o+g;R<t.byteLength;R+=1){if(R+4<=t.byteLength&&t.getUint8(R)===0&&t.getUint8(R+1)===0&&t.getUint8(R+2)===0&&t.getUint8(R+3)===1){r=R;break}if(R+3<=t.byteLength&&t.getUint8(R)===0&&t.getUint8(R+1)===0&&t.getUint8(R+2)===1){r=R;break}}let n=r===-1?t.byteLength:r,I=n-o,C=new ArrayBuffer(I),u=new DataView(C);for(let R=0;R<I;R+=1)u.setUint8(R,t.getUint8(o+R));i.push(new mT(u,e)),o=n}return i}var mT=class{constructor(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1];this.dataView=A,this.isSEI&&(e?this.addPreventionByte():this.removePreventionByte())}addPreventionByte(){let{seiPayloadStartIndex:A}=this,e=this.dataView.byteLength-2,t=[],i=0;for(let g=A;g<=e;g++){let r=this.dataView.getInt8(g);switch(r){case 0:case 1:case 2:case 3:i===2&&(t.push(3),i=0),r===0?i+=1:i=0,t.push(r);break;default:i=0,t.push(r)}}t.push(this.dataView.getInt8(this.dataView.byteLength-1));let o=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,A),...t]).buffer);this.dataView=o}removePreventionByte(){let{seiPayloadStartIndex:A}=this,e=this.dataView.byteLength-1,t=[],i=0;for(let g=A;g<=e;g++)switch(this.dataView.getInt8(g)){case 0:i++,t.push(this.dataView.getInt8(g));break;case 3:i!==2&&t.push(this.dataView.getInt8(g)),i=0;break;default:t.push(this.dataView.getInt8(g)),i=0}let o=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,A),...t]).buffer);this.dataView=o}get seiPayloadStartIndex(){let A=6;for(let e=6;e<this.dataView.buffer.byteLength&&(A+=1,this.dataView.getUint8(e)===255);e+=1);return A}get seiPayloadType(){return this.isSEI?this.dataView.getUint8(5):null}get seiPayload(){if(!this.isSEI)return null;let A=0,e=6;for(let g=6;g<this.dataView.buffer.byteLength;g+=1){let r=this.dataView.getUint8(g);if(e+=1,r!==255){A+=r;break}A+=255}let t=new ArrayBuffer(A),i=new DataView(t),o=e;for(let g=0;g<t.byteLength;g+=1)i.setInt8(g,this.dataView.getInt8(o+g));return i}get naluType(){let A=this.getStartCodeLength();return A>=this.dataView.byteLength?0:31&this.dataView.getUint8(A)}getStartCodeLength(){return this.dataView.byteLength>=4&&this.dataView.getUint8(0)===0&&this.dataView.getUint8(1)===0&&this.dataView.getUint8(2)===0&&this.dataView.getUint8(3)===1?4:this.dataView.byteLength>=3&&this.dataView.getUint8(0)===0&&this.dataView.getUint8(1)===0&&this.dataView.getUint8(2)===1?3:0}get isIDR(){return this.naluType===5}get isSPS(){return this.naluType===7}get isPPS(){return this.naluType===8}get isSEI(){return this.naluType===6}},WO=class{constructor(){l(this,"_seiMessageList",[]),l(this,"_smallSeiMessageList",[]),l(this,"_seiPayloadType",243)}encodeSEINalu(A){let e=A.byteLength,t=parseInt(String(e/255),10),i=e%255,o=[];o.push(0,0,0,1,6,this._seiPayloadType);for(let r=0;r<t;r++)o.push(255);o.push(i);let g=new DataView(A);return o.push(...new Uint8Array(g.buffer)),o.push(128),new mT(new DataView(new Uint8Array(o).buffer),!0)}sendSEI(A,e){e!=null&&e.seiPayloadType&&(this._seiPayloadType=e.seiPayloadType),this._seiMessageList.push(A),e!=null&&e.small&&this._smallSeiMessageList.push(A)}isEmpty(){return!this._seiMessageList.length}getNaluCount(A){let e=0,t=0,i=new DataView(A);for(let o=0;o<A.byteLength;o++)switch(i.getUint8(o)){case 0:e++;break;case 1:(e===2||e===3)&&t++,e=0;break;default:e=0}return t}encode(A,e){let t=e?this._smallSeiMessageList:this._seiMessageList;if(t.length>0&&A.data.byteLength>0){let i=9-this.getNaluCount(A.data);if(i<=0)return 0;let o=t.splice(0,i).reverse().map(this.encodeSEINalu.bind(this)),g=o.reduce(((u,R)=>u+R.dataView.byteLength),0),r=new ArrayBuffer(g+A.data.byteLength),n=new DataView(r),I=new DataView(A.data),C=0;for(let u=0;u<o.length;u++)for(let R=0;R<o[u].dataView.byteLength;R++)n.setInt8(C++,o[u].dataView.getInt8(R));for(let u=0;u<A.data.byteLength;u++)n.setInt8(C++,I.getInt8(u));return A.data=r,o.length}return 0}},Z2=class rR extends YG{constructor(e){super(arguments.length>1&&arguments[1]!==void 0?arguments[1]:4,Ci),l(this,"profile",le({},Ml)),l(this,"avoidCropping",!1),l(this,"_scaleResolutionDownBy"),l(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0,framesCaptured:0}),l(this,"small"),l(this,"isNeedToSetBandwidth"),l(this,"muteImage"),l(this,"manager"),l(this,"_seiCodec",new WO),this.manager=e;let t=()=>{var i;if(this.isAllowed2k4k(this.profile))this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1});else{let o=Rn(((i=this.room)==null?void 0:i.sdkAppId)||0)?Sl:Op;this.log.warn("Resolution is reset to 1080p, need to upgrade ability here ".concat(o)),this.setProfile(tt(le({},this.profile),{width:1920,height:1080})),this.applyProfile()}};this.on("input-media-track-changed",t),this.on("publish",t),this.handleCameraAdded=this.handleCameraAdded.bind(this),this.handleCameraRemoved=this.handleCameraRemoved.bind(this)}get facingMode(){if(cc&&this.mediaTrack)return this.mediaTrack.getSettings().facingMode}get contentHint(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)||""}get isQosClearFirst(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)==="detail"}get hasSmall(){var e;return!((e=this.manager)==null||!e.hasSmall)}setMute(e){return X(this,null,(function*(){var t,i,o;if(ai(e)){if(this.muteImage===e)return;yield(t=this.manager)==null?void 0:t.deleteWatermark("mute"),yield(i=this.manager)==null?void 0:i.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:e,fillVideo:!0}),this.muteImage=e,Xg(rR.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield(o=this.manager)==null?void 0:o.deleteWatermark("mute"),this.muteImage=void 0),Xg(rR.prototype,this,"setMute").call(this,e)}))}capture(e){return X(this,arguments,(function(t){var i=this;let{deviceId:o,facingMode:g,useExactDeviceId:r=!0,customSource:n,retryWhenExactFailed:I=!0}=t;return(function*(){let C={audio:!1,video:!0,facingMode:g||i.facingMode,cameraId:o,width:i.profile.width,height:i.profile.height,frameRate:i.profile.frameRate,useExactDeviceId:r,retryWhenExactFailed:I,customSource:n};if(C.facingMode==="environment"){let u=yield i.getDeviceIdWhenUsingBackCamera();u&&(C.cameraId=u)}return Xg(rR.prototype,i,"capture").call(i,C)})()}))}setProfile(e){var t;let i=this.fallbackProfile(e);if(i.bitrate&&(this.isNeedToSetBandwidth=i.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile))super.setProfile(i);else{let o=Rn(((t=this.room)==null?void 0:t.sdkAppId)||0)?Sl:Op;this.log.warn("Resolution is reset to 1080p, need to upgrade ability here ".concat(o)),super.setProfile(tt(le({},this.profile),{width:1920,height:1080}))}}applyProfile(){return X(this,null,(function*(){var e;if(!this.mediaTrack)return;let{width:t=0,height:i=0}=(this.sourceTrack||this.mediaTrack).getSettings(),o=t*i,g=this.settings,r=g.height!==this.profile.height||g.width!==this.profile.width||g.frameRate!==this.profile.frameRate;if(r&&(va===16&&this.deviceId?yield this.recapture(this.deviceId):(yield(e=this.sourceTrack||this.mediaTrack)==null?void 0:e.applyConstraints({width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate}),this.manager&&this.manager.changeInput(this)),this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1})),this.isNeedToSetBandwidth&&this.room&&this.room.setBandWidth){this.isNeedToSetBandwidth=!1;let{width:n=0,height:I=0}=(this.sourceTrack||this.mediaTrack).getSettings(),C=n*I;return r&&C&&o&&C===o?void this.log.warn("set bandwidth failed: resolution is not changed"):this.room.setBandWidth({bandwidth:this.profile.bitrate,type:V.VIDEO,videoType:V.BIG})}}))}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},t=this.sourceTrack||this.mediaTrack;return cc&&t&&Object.assign(e,t.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:eu(this.settings,this.profile)}isAllowed2k4k(e){var t;return!(this.room&&this.room.scheduleResult&&!this.isScreen&&!(e.height*e.width<3686400))||((t=this.room.scheduleResult.trtcAutoConf)==null?void 0:t["2k4k"])===1}isNeedToSwitchDevice(e){return!(!this.mediaTrack||this.deviceId===e||this.facingMode===e)}switchDevice(e){return X(this,null,(function*(){try{if(!this.isNeedToSwitchDevice(e)&&!this.isUseCustomSource)return;let t={useExactDeviceId:!0,retryWhenExactFailed:!1};e==="user"||e==="environment"?t.facingMode=e:t.deviceId=e,this.sourceTrack&&this.sourceTrack.stop(),yield this.capture(t),N.emit(v.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(t){throw this.log.error("switch camera failed ".concat(t)),this.deviceId&&this.recapture(this.deviceId),t}}))}getDeviceIdWhenUsingBackCamera(){return X(this,null,(function*(){let e;try{if($S&&!nu&&gT){let t=(yield LB(!0)).map((o=>{var g;return tt(le({},o),{capabilities:(g=o.getCapabilities)==null?void 0:g.call(o)})})).filter((o=>{var g,r;return(r=(g=o.capabilities)==null?void 0:g.facingMode)==null?void 0:r.includes("environment")})),i=t[0];t.forEach((o=>{var g,r,n,I;let{capabilities:C}=o;((g=C.width)!=null&&g.max&&(r=C.height)!=null&&r.max?C.width.max*C.height.max:0)>((n=i.capabilities.width)!=null&&n.max&&(I=i.capabilities.height)!=null&&I.max?i.capabilities.width.max*i.capabilities.height.max:0)&&(i=o)})),i!=null&&i.capabilities&&(this._log.info("use max resolution back camera",i),e=i.deviceId)}}catch(t){this._log.warn("get max res camera failed",t)}return e}))}updateSmallConfig(e){var t,i;this._log.info("update small stream config: ".concat(JSON.stringify(e)));let o=!this.small;this.small=this.fallbackProfile(e,!0),(t=this.manager)==null||t.update(),o&&((i=this.room)==null||i.enableSmall(!0)),this.log.info("update small stream config success")}fallbackProfile(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],i=e.width>e.height,o=le({},e);return e.width*e.height<=19200&&Oi&&Fg&&(this.log.warn("".concat(t?"small ":"","resolution is ").concat(e.width,"*").concat(e.height,", fallback to 240*180 for android chrome")),o.width=i?240:180,o.height=i?180:240,o.bitrate=Math.max(e.bitrate,150)),e.width*e.height>921600&&Wv&&(o.width=i?1280:720,o.height=i?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),eG(Fa,"14.3")&&Vv(Fa,"14.0",!0)&&this.on("7",(()=>{let g=this.profile.width>this.profile.height;this.profile.width*this.profile.height>307200?(this.profile.width=g?640:480,this.profile.height=g?480:640,this.log.warn("reduce the resolution to 480p on iOS 14.0 ~ 14.2")):this.profile.width*this.profile.height>230400&&(this.profile.width=g?640:360,this.profile.height=g?360:640,this.log.warn("reduce the resolution to 360p on iOS 14.0 ~ 14.2"))})),!t&&this.avoidCropping&&(Fg||ei)&&!fy()&&e.width*e.height<=230400&&e.width/e.height==16/9&&(this._scaleResolutionDownBy=1280/e.width,e.width=1280,e.height=720,this.log.warn("capture 720p, scale: ".concat(this._scaleResolutionDownBy))),o}stopSmall(){var e,t;this.small&&(delete this.small,(e=this.manager)==null||e.update(),(t=this.room)==null||t.enableSmall(!1))}listenDeviceChange(){Ho&&!Ho.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&Ho.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return X(this,null,(function*(){if(e.deviceId===this.deviceId){let t=this.recaptureMode===1;if(this.log.warn("RecaptureMode: ".concat(yJ[this.recaptureMode],". Current camera is lost: ").concat(JSON.stringify(e))),this.recaptureMode===0){po(this.userId,{eventId:2003,param1:7,streamType:2});let i=yield LB();i[0]?this.recapture(i[0].deviceId):t=!0}t&&Ho.on("videoInputAdded",this.handleCameraAdded,this)}}))}handleCameraAdded(e){return X(this,null,(function*(){this.recaptureMode===1&&e.deviceId!==this.deviceId||(Ho.off("videoInputAdded",this.handleCameraAdded,this),this.log.warn("camera added: ".concat(JSON.stringify(e))),this.recapture(e.deviceId))}))}encodeFrame(e,t){if(!this.manager)return e;let i=t?8:this.mediaType;return this.manager.encodePipeline.reduceRight(((o,g)=>g?g({frame:o,mediaType:i}):o),e)}get enableEncodeFrame(){return!!this.manager&&this.manager.encodePipeline.some((e=>e))}play(e,t){return yA(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,t)}close(){Ho.off("videoInputAdded",this.handleCameraAdded,this),Ho.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return X(this,null,(function*(){try{yield Xg(rR.prototype,this,"recapture").call(this,e)}catch(t){let i=(yield LB()).find((o=>o.deviceId!==e));if(!i)throw t;yield Xg(rR.prototype,this,"recapture").call(this,i.deviceId)}}))}setContentHint(e){this.mediaTrack&&"contentHint"in this.mediaTrack&&(this.mediaTrack.contentHint!==e&&(this.log.info("setContentHint ".concat(e)),this.mediaTrack.contentHint=e),this.outMediaTrack&&this.outMediaTrack.contentHint!==e&&(this.outMediaTrack.contentHint=e))}setRotation(e){this.manager&&(this.isScreen||yA(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};ne([Mu((function(A){this.setContentHint(A.contentHint||"motion")}))],Z2.prototype,"capture");var YB=Z2,j2={};Dn(j2,{REPORT_TYPE:()=>tu,buildSSOPackage:()=>fn,bytes2ms:()=>TS,calculateScaleResolutionDownNumber:()=>eu,concatArrayBuffers:()=>Fs,convertObjectNumberToInt:()=>ey,copyProperties:()=>jp,deepClone:()=>PQ,deepCloneBasic:()=>iy,deepMerge:()=>mn,delay:()=>ra,fibonacci:()=>ks,formatedTime:()=>Nv,getConstructorName:()=>Xp,getContainerFromElement:()=>kv,getEnv:()=>dv,getFirst16Bits:()=>YS,getInternalVersion:()=>Gv,getLast16Bits:()=>VQ,getLoggerUrl:()=>uB,getMediaStreamTrackInfo:()=>Au,getMuteStateFromFlag:()=>dB,getNetworkType:()=>Wp,getNumNetworkType:()=>Pl,getReconnectionTimeout:()=>nI,getStringByteLength:()=>Ay,getTurnServer:()=>Mv,getUint32Version:()=>bS,getValueType:()=>ho,getViewListFromView:()=>Xl,glog:()=>_S,ipv4ToUint32:()=>jl,isArray:()=>lo,isAudioWorkletSupported:()=>fv,isBoolean:()=>fi,isConstructor:()=>Wl,isEmpty:()=>zp,isFunction:()=>Ni,isLangChinese:()=>II,isMediaStreamTrack:()=>Rv,isNumber:()=>Zt,isObject:()=>ka,isOverseaSdkAppId:()=>Rn,isPlainObject:()=>sg,isPortrait:()=>LS,isPromise:()=>Vl,isRemoteTrack:()=>mv,isRotate90Or270:()=>Ns,isSetSinkIdSupported:()=>wv,isString:()=>ai,isUndefined:()=>yA,loadImage:()=>zl,loadVideo:()=>Fv,ms2bytes:()=>yv,ms2samples:()=>qQ,normalizeUrl:()=>$l,performanceNow:()=>it,promiseAny:()=>Zl,samples2ms:()=>US,setNetworkTypeFromWebRTC:()=>Zp,stringify:()=>Na,stringifyIncludeValue:()=>$p,throttlePromise:()=>ty});var ZO=[-1,-1,1,-1,-1,1,1,1],jO=[0,0,1,0,0,1,1,1],xG=class A2 extends pt{constructor(e,t){if(super(),this.context=e,l(this,"name"),l(this,"input"),l(this,"output"),l(this,"texture"),l(this,"ctx2d",null),l(this,"fbo"),l(this,"width",0),l(this,"height",0),l(this,"x",0),l(this,"y",0),l(this,"program"),l(this,"vertexShader"),l(this,"fragmentShader"),l(this,"totalFrames",0),l(this,"dropFrames",0),l(this,"matchInputSize",!0),l(this,"texCoordBuffer"),l(this,"positionBuffer"),l(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0}),l(this,"cost",0),l(this,"_canvas",null),l(this,"_image"),l(this,"log"),this.context.on("disconnect",this.close,this),this.name=t.name,this.log=t.logger,this.matchInputSize=t.matchInputSize!==!1,this.width=t.width||e.width,this.height=t.height||e.height,this._image=t.image,e instanceof Hs)e.ctx&&t.create2d&&(typeof OffscreenCanvas=="function"&&va!==16?this._canvas=new OffscreenCanvas(this.width,this.height):(this._canvas=document.createElement("canvas"),this._canvas.width=this.width,this._canvas.height=this.height),this.ctx2d=this._canvas.getContext("2d"),this._image=this._canvas);else try{let i=e.ctx;this.texCoordBuffer=this.createBuffer(jO),this.positionBuffer=this.createBuffer(ZO),t.createTexture!==!1&&(this.texture=i.createTexture(),this.useTexture(),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.pixelStorei(i.UNPACK_ALIGNMENT,1)),t.useFbo&&(this.fbo=i.createFramebuffer(),this.useBufferFrame(),this.useTexture(),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,this.width,this.height,0,i.RGBA,i.UNSIGNED_BYTE,null),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,this.texture,0)),t.useDefaultProgram?this.program=e.defaultProgam:(t.vertexShaderSource||t.fragmentShaderSource)&&(this.vertexShader=t.vertexShaderSource?e.createShader(i.VERTEX_SHADER,t.vertexShaderSource):e.defaultVShader,this.fragmentShader=t.fragmentShaderSource?e.createShader(i.FRAGMENT_SHADER,t.fragmentShaderSource):e.defaultFShader,this.program=e.createProgram(this.vertexShader,this.fragmentShader))}catch(i){this.context.destroy(new oe({code:OA.VIDEO_MANAGER_ERROR,extraCode:3,message:"create video node ".concat(this.name," error ").concat(i.message||i)}))}}get image(){return this._image}set image(e){this._image=e}createFramebuffer(e){let t=this.context.ctx,i=t.createFramebuffer();return t.bindFramebuffer(t.FRAMEBUFFER,i),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0),i}connect(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];return e.addInput(this,...i),this.output=e,e}addInput(e){this.input=e,this.matchInputSize&&e.width&&e.height&&this.resize(e.width,e.height)}requestFrame(e){let t=Date.now();return!!(this.context instanceof QI&&this.render(e)||this.context instanceof Hs&&this.render2d(e))&&(this.totalFrames++,this.cost=Date.now()-t,!0)}render2d(e){var t;return!((t=this.input)==null||!t.requestFrame(e))&&this.draw2d(this.input.image,0,0,this.width,this.height)}update(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;var t;(t=this.output)==null||t.update(e)}disconnect(){for(var e,t=arguments.length,i=new Array(t),o=0;o<t;o++)i[o]=arguments[o];(e=this.output)==null||e.removeInput(this,...i),delete this.output}removeInput(e){delete this.input}close(){var e,t;if(this.context.off("disconnect",this.close,this),(e=this.output)==null||e.removeInput(this),delete this.output,(t=this.input)==null||t.disconnect(),this.context instanceof QI){let i=this.context.ctx;i.deleteBuffer(this.texCoordBuffer),i.deleteBuffer(this.positionBuffer),this.fbo&&i.deleteFramebuffer(this.fbo),this.texture&&i.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&i.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&i.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&i.deleteProgram(this.program)}this._canvas&&(this._canvas.width=0,this._canvas.height=0,this.ctx2d=null),this.removeAllListeners()}useTexture(){this.useTextures(this.texture)}useInputTexture(){var e;this.useTextures((e=this.input)==null?void 0:e.texture)}useTextures(){let e=this.context.ctx;for(var t=arguments.length,i=new Array(t),o=0;o<t;o++)i[o]=arguments[o];i.forEach(((g,r)=>{g&&(e.activeTexture(e.TEXTURE0+r),e.bindTexture(e.TEXTURE_2D,g))}))}useProgram(){this.context.ctx.useProgram(this.program)}useBufferFrame(){let e=this.context.ctx;e.bindFramebuffer(e.FRAMEBUFFER,this.fbo||null)}createBuffer(e){let t=this.context.ctx,i=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,i),t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW),i}setTexBuffer(e){let t=this.context.ctx;t.bindBuffer(t.ARRAY_BUFFER,this.texCoordBuffer),t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW)}setPosBuffer(e){let t=this.context.ctx;t.bindBuffer(t.ARRAY_BUFFER,this.positionBuffer),t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW)}changeBufferData(e,t){let i=this.context.ctx;i.bindBuffer(i.ARRAY_BUFFER,e),i.bufferData(i.ARRAY_BUFFER,new Float32Array(t),i.STATIC_DRAW)}setAttributes(){let e=this.context.ctx;for(var t=arguments.length,i=new Array(t),o=0;o<t;o++)i[o]=arguments[o];i.forEach(((g,r)=>{e.enableVertexAttribArray(r),e.bindBuffer(e.ARRAY_BUFFER,g),e.vertexAttribPointer(r,2,e.FLOAT,!1,0,0)}))}getVertexPoint(e,t){return[e/this.width*2-1,t/this.height*2-1]}layout2texCoords(e){return[...this.getVertexPoint(e.x,e.y),...this.getVertexPoint(e.x+e.width,e.y),...this.getVertexPoint(e.x,e.y+e.height),...this.getVertexPoint(e.x+e.width,e.y+e.height)]}resize(e,t){if(this.width!==e||this.height!==t){if(this.width=e,this.height=t,this._canvas&&(this._canvas.width=e,this._canvas.height=t),this.texture&&this.fbo){this.useTexture();let i=this.context.ctx;i.texImage2D(i.TEXTURE_2D,0,i.RGBA,e,t,0,i.RGBA,i.UNSIGNED_BYTE,null)}this.output&&this.output.matchInputSize&&this.output.resize(e,t)}}draw(e,t){this.setAttributes(e||this.positionBuffer,t||this.texCoordBuffer);let i=this.context.ctx;i.drawArrays(i.TRIANGLE_STRIP,0,4)}draw2d(e,t,i,o,g,r,n,I,C){let u=!(yA(r)||yA(n)||yA(I)||yA(C));return!(!this.ctx2d||!e)&&(e instanceof ImageData?(u?this.ctx2d.putImageData(e,t,i,r,n,I,C):this.ctx2d.putImageData(e,t,i),this.emit(A2.RENDER,this.ctx2d.canvas)):(u?this.ctx2d.drawImage(e,r,n,I,C,t,i,o,g):this.ctx2d.drawImage(e,t,i,o,g),this.emit(A2.RENDER,e)),typeof VideoFrame<"u"&&e instanceof VideoFrame&&e.close(),!0)}drawBackGround2d(e){this.ctx2d&&(this.ctx2d.save(),this.ctx2d.fillStyle=e,this.ctx2d.fillRect(0,0,this.width,this.height),this.ctx2d.restore())}getInfo(){var e;let{totalFrames:t,x:i,y:o,width:g,height:r,name:n,cost:I}=this,C=Date.now(),u=(t-this.lastInfo.totalFrames)/((C-this.lastInfo.timestamp)/1e3)|0;return this.lastInfo={totalFrames:t,x:i,y:o,width:g,height:r,timestamp:C,fps:u,name:n,cost:I},le({parent:(e=this.input)==null?void 0:e.getInfo()},this.lastInfo)}createTexture(e){let t=this.context.ctx,i=t.createTexture();return this.useTextures(i),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.pixelStorei(t.UNPACK_ALIGNMENT,1),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),i}};l(xG,"RENDER","render"),ne([go(pt.INIT,"connected",{sync:!0})],xG.prototype,"connect"),ne([go("connected",pt.INIT,{ignoreError:!0,sync:!0})],xG.prototype,"disconnect"),ne([go([],"closed",{sync:!0})],xG.prototype,"close");var Nn=xG,XO=Yi(U2(250),DJ((()=>performance.now())),TG()),zO=[0,1,1,1,0,0,1,0],RJ=class extends Nn{constructor(A,e){super(A,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},e)),l(this,"_intervalId",0),l(this,"_sequence",0),l(this,"checkGLError",!1),l(this,"checkVisibilityChange"),A instanceof Hs?this.ctx2d=A.ctx||null:A.available&&e!=null&&e.mirrorUpAndDown&&this.setTexBuffer(zO)}start(A){this.log.info("".concat(this.name," start render ").concat(A," fps")),ti.clearTask(this._intervalId),this._intervalId=ti.run("intervalInWorker",(()=>{if(A!==this.context.frameRate&&(ti.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof QI){let e=this.context.ctx.getError();e&&this.context.destroy(new oe({code:OA.VIDEO_MANAGER_ERROR,extraCode:5,message:"".concat(this.name," req ").concat(this._sequence," render ").concat(this.totalFrames," faild ").concat(e)}))}}),{fps:this.context.frameRate})}render(A){var e;return!((e=this.input)==null||!e.requestFrame(A))&&(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),this.emit(Nn.RENDER,this.context._canvas),!0)}addInput(A){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i<e;i++)t[i-1]=arguments[i];super.addInput(A,...t),this.start(this.context.frameRate)}update(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.state!=="closed"&&(this._intervalId&&(ti.clearTask(this._intervalId),this._intervalId=0,A===1&&(this.log.info("".concat(this.name," use requestVideoFrameCallback")),this.checkVisibilityChange=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info("".concat(this.name," use timer")),document.removeEventListener("visibilitychange",this.checkVisibilityChange))},document.addEventListener("visibilitychange",this.checkVisibilityChange))),this.requestFrame(this._sequence++))}removeInput(A){super.removeInput(A),ti.clearTask(this._intervalId)}resize(A,e){super.resize(A,e),this.context.setSize(A,e)}close(){super.close(),ti.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},mJ=class extends RJ{constructor(A,e){super(A,e),l(this,"_videoTrack"),l(this,"_muteOb"),l(this,"_closedOb",Fi(this,"closed")),l(this,"_subscription"),l(this,"_canvasContainer"),Number(wB)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=A.canvas.captureStream().getVideoTracks(),this._muteOb=Fi(this._videoTrack,"mute"),Yi(Fi(this._videoTrack,"ended"),Nr(this._closedOb),eg((()=>{this.context.destroy(new oe({code:OA.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))})))}enableCheckMute(){var A;this._subscription=Yi(this._muteOb,Nr(this._closedOb),RT((A=5e3,e=>{let t=performance.now();Yi(XO,dJ((i=>i-t<A)),jy(1))(e)})),ku((()=>{var e;return!((e=this._videoTrack)==null||!e.muted||document.hidden)})),eg((()=>{this.context.destroy(new oe({code:OA.VIDEO_MANAGER_ERROR,extraCode:7,message:"video track muted"}))})))}disableCheckMute(){var A;(A=this._subscription)==null||A.dispose()}get videoTrack(){return this._videoTrack}putCanvasIntoDom(){!this.context._canvas||!this._canvasContainer||document.getElementById(this.context._canvas.id)||(this.log.info("".concat(this.name," put canvas to body")),document.body.appendChild(this._canvasContainer),this._canvasContainer.appendChild(this.context._canvas))}render(A){return this.putCanvasIntoDom(),super.render(A)}render2d(A){return this.putCanvasIntoDom(),super.render2d(A)}close(){var A,e;super.close(),(A=this._videoTrack)==null||A.stop(),delete this._videoTrack,(e=this._canvasContainer)==null||e.remove()}},$O=class extends mJ{render(A){var e;let t=!((e=this.input)==null||!e.requestFrame(A));if(this.context._canvas2d){let i=this.context._canvas2d.getContext("2d");i.clearRect(0,0,this.context._canvas2d.width,this.context._canvas2d.height),i.drawImage(this.context._canvas,0,0,this.context._canvas2d.width,this.context._canvas2d.height)}return t}},Aq=class extends mJ{constructor(A,e,t){super(A,{name:"smallDestination",logger:t}),this.resolution=e}resize(A,e){let t,i=A*e,o=this.resolution.width*this.resolution.height;this.log.info("big res: ".concat(A,"*").concat(e," small res: ").concat(this.resolution.width,"*").concat(this.resolution.height," ")),i>o?t=i/o:(this.log.warn("Small stream resolution is not smaller than big stream, which is invalid. big: ".concat(A," * ").concat(e," small: ").concat(this.resolution.width," * ").concat(this.resolution.height)),t=i/19200),super.resize(A/Math.sqrt(t),e/Math.sqrt(t))}},X2=class extends Nn{constructor(A,e){super(A,le({name:"imageSource"},e)),l(this,"_lastImage"),l(this,"_totalFrames",0),l(this,"_autoResize",!1),l(this,"_canvasRendered"),l(this,"videoCallbackId",0),l(this,"waitingFirstFrame",!0),l(this,"shouldUpdate",!0),this._autoResize=(e==null?void 0:e.autoResize)!==!1,va===16&&(this._canvasRendered=Ks(),Yi(this._canvasRendered,cJ(this._image),pT((t=>t instanceof HTMLCanvasElement?Fi(t,"rendered"):uJ())),Nr(Fi(this,"closed")),eg((()=>{this.update()}))))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let A=this.image;this.videoCallbackId&&A.cancelVideoFrameCallback(this.videoCallbackId),Gn()&&!document.hidden&&(this.videoCallbackId=A.requestVideoFrameCallback(((e,t)=>{this.waitingFirstFrame&&this.onFirstFrame(),document.hidden||(this._totalFrames=t.presentedFrames,this.update(1))})))}_render(A,e){var t;let{width:i,height:o}=this,{image:g}=this;if(g instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),{videoWidth:i,videoHeight:o}=g,!i||!o)return!1;g.width=i,g.height=o}else if(g instanceof HTMLImageElement||g instanceof ImageData||g instanceof ImageBitmap){if({width:i,height:o}=g,g!==this._lastImage)this._lastImage=g;else if(i===this.width&&o===this.height)return!0}else g instanceof HTMLCanvasElement||g instanceof OffscreenCanvas?({width:i,height:o}=g,this._lastImage=g):typeof VideoFrame<"u"&&g instanceof VideoFrame&&({displayWidth:i,displayHeight:o}=g,(t=this._lastImage)==null||t.close(),this._lastImage=g);if(!this._autoResize)return!0;if(this.width===i&&this.height===o&&this.totalFrames){if(e){this.useTexture();let r=this.context.ctx;r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,g)}}else{if(e){this.useTexture();let r=this.context.ctx;r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,g)}this.resize(i,o)}return!0}get image(){return this._image}set image(A){var e;(e=this._canvasRendered)==null||e.next(A),this._image=A}render(A){return this._render(A,!0)}render2d(A){return this._render(A,!1)}},z2=class extends X2{constructor(A,e,t){super(A,t),this._player=e,this.name="videoPlayerSource",Yi(Fi(this._player,bt.PLAYER_STATE_CHANGED),Nr(Fi(this,"closed")),ku((i=>{let{state:o}=i;return o==="PLAYING"})),eg((()=>{this.tryVideoFrameCallback()})))}get image(){return this._player.element}},Xy=class extends z2{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(A,e,t){super(A,new Ci({id:t.name,track:e,muted:!0,container:null,objectFit:"contain",log:t.logger}),t),this.name="videoTrackSource",this._player.play()}replaceTrack(A){this.waitingFirstFrame=!0,this._player.setTrack(A),this._player.play()}close(){super.close(),this._player.stop()}},eq=class extends Nn{constructor(A,e,t){super(A,tt(le({name:"textSource"},t),{create2d:!0})),l(this,"hasChange",!0),l(this,"content",""),this.ctx2d.textBaseline="top",this.content=e.content||"",e.font&&(this.font=e.font),e.color&&(this.color=e.color)}set font(A){this.ctx2d&&(this.ctx2d.font=A,this.hasChange=!0)}get font(){var A;return((A=this.ctx2d)==null?void 0:A.font)||""}set color(A){this.ctx2d&&(this.ctx2d.fillStyle=A,this.hasChange=!0)}get color(){var A;return((A=this.ctx2d)==null?void 0:A.fillStyle)||""}render2d(A){return!(!this.ctx2d||!this.hasChange)&&(this.ctx2d.clearRect(0,0,this.width,this.height),this.drawMultilineText(0,0),this.hasChange=!1,!0)}render(A){return!1}resize(A,e){if(!this.ctx2d)return;let{color:t,font:i}=this;super.resize(A,e),this.color=t,this.font=i}drawMultilineText(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1.2;if(!this.ctx2d)return;let i=this.ctx2d.measureText(this.content);e+=i.fontBoundingBoxAscent||i.actualBoundingBoxAscent||0;let o=this.font.match(/(\d+)px/),g=(o?parseInt(o[1],10):16)*t,r=this.content.split(`
|
||
`);for(let n=0;n<r.length;n++)this.ctx2d.fillText(r[n],A,e+n*g)}},KG=class extends pt{constructor(A){super(),l(this,"frameRate"),l(this,"_canvas"),l(this,"log"),l(this,"hasAlpha",!1),l(this,"name"),l(this,"error"),this.name=A.name,this.log=A.logger.createChild({id:"vc-".concat(this.name)}),this.frameRate=A.frameRate}get canvas(){return this._canvas}set width(A){this._canvas&&(this._canvas.width=A)}get width(){var A;return((A=this._canvas)==null?void 0:A.width)||0}set height(A){this._canvas&&(this._canvas.height=A)}get height(){var A;return((A=this._canvas)==null?void 0:A.height)||0}setSize(A,e){this._canvas&&(this._canvas.width=A,this._canvas.height=e)}createVideoTrackSource(A,e){return new Xy(this,A,{logger:this.log,name:e})}createVideoTrackDestination(A){return new mJ(this,A)}createVideoImageSource(A,e){return new X2(this,e?Object.assign(e,{logger:this.log,image:A}):{logger:this.log,image:A})}createVideoPlayerSource(A,e){return new z2(this,A,e?Object.assign(e,{logger:this.log}):{logger:this.log})}createTextSource(A,e){return new eq(this,A,e?Object.assign(e,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};l(KG,"_ids",0);var tq={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},HG=class extends KG{constructor(){super(...arguments),l(this,"defaultProgam"),l(this,"defaultVShader"),l(this,"defaultFShader"),l(this,"ctx"),l(this,"_canvas2d")}get canvas(){return this._canvas2d||this._canvas}create(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id="trtc_".concat(this.name,"_").concat(KG._ids++)),A&&(this._canvas2d=document.createElement("canvas")),this.ctx=this._canvas.getContext("webgl2",tq),!this.ctx)throw new oe({code:OA.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,`
|
||
// 顶点着色器
|
||
attribute vec4 a_position;
|
||
attribute vec2 a_texCoord;
|
||
varying vec2 v_texCoord;
|
||
|
||
void main() {
|
||
gl_Position = a_position;
|
||
v_texCoord = a_texCoord;
|
||
}
|
||
`),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,`
|
||
// 片元着色器
|
||
precision mediump float;
|
||
varying vec2 v_texCoord;
|
||
uniform sampler2D u_texture;
|
||
|
||
void main() {
|
||
gl_FragColor = texture2D(u_texture, v_texCoord);
|
||
} `),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",(()=>{this.destroy(new oe({code:OA.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))}))}destroy(A){let e="";return A&&(e=A.message,this.error=A,ee.addFailedEvent({key:512702,error:A})),this.disconnect(),this.log.info("video context destroy".concat(e)?": ".concat(e):""),this.ctx&&(this.ctx.deleteShader(this.defaultVShader),this.ctx.deleteShader(this.defaultFShader),this.ctx.deleteProgram(this.defaultProgam),delete this.ctx),A}set width(A){var e;(e=this.ctx)==null||e.viewport(0,0,A,this.height),super.width=A,this._canvas2d&&(this._canvas2d.width=A)}set height(A){var e;(e=this.ctx)==null||e.viewport(0,0,this.width,A),super.height=A,this._canvas2d&&(this._canvas2d.height=A)}setSize(A,e){var t;(t=this.ctx)==null||t.viewport(0,0,A,e),super.setSize(A,e),this._canvas2d&&(this._canvas2d.width=A,this._canvas2d.height=e)}createShader(A,e){let t=this.ctx,i=t.createShader(A);return t.shaderSource(i,e),t.compileShader(i),i}createProgram(A,e){let t=this.ctx,i=t.createProgram();return t.attachShader(i,A),t.attachShader(i,e),t.linkProgram(i),t.getProgramParameter(i,t.LINK_STATUS)||this.log.error(t.getProgramInfoLog(i)),i}};l(HG,"UNAVAILABLE","unavailable"),ne([go(pt.INIT,"created",{sync:!0,fail(A){this.log.error("video gl context create failed",A.cause),ee.addFailedEvent({key:512700,error:A.cause||A})},success(){this.log.info("video context created use webgl"),ee.addSuccessEvent({key:512700})}})],HG.prototype,"create"),ne([go("created",pt.INIT,{ignoreError:!0,sync:!0,success(A){A&&this.emit(HG.UNAVAILABLE,A),this.removeAllListeners()}})],HG.prototype,"destroy");var QI=HG,Hs=class extends KG{constructor(){super(...arguments),l(this,"ctx")}create(A){if(this.hasAlpha=A.alpha,this._canvas=document.createElement("canvas"),this._canvas.id="trtc_".concat(this.name,"_").concat(KG._ids++),this.ctx=this._canvas.getContext("2d",{alpha:A.alpha,willReadFrequently:A.willReadFrequently}),!this.ctx)throw new oe({code:OA.VIDEO_MANAGER_ERROR,extraCode:2,message:"2d context not supported"});this._canvas.addEventListener("contextlost",(()=>{this.log.error("2d context lost")})),this._canvas.addEventListener("contextrestored",(()=>{this.log.warn("2d context restored")}))}destroy(A){let e="";A&&(e=A.message,this.error=A,ee.addFailedEvent({key:512703,error:A})),this.disconnect(),this.log.info("video context destroy ".concat(e?": ".concat(e):"")),delete this.ctx,this._canvas&&(this._canvas.remove(),this._canvas.width=0,this._canvas.height=0,delete this._canvas),this.removeAllListeners(),ee.addSuccessEvent({key:512703})}};function iq(A,e,t,i,o){arguments.length>5&&arguments[5]!==void 0&&arguments[5]&&([t,i]=[i,t]);let g={sWidth:A,sHeight:e,dWidth:t,dHeight:i,sx:0,sy:0,dx:0,dy:0};if(A===0||e===0)return g;switch(o){case void 0:case"fill":break;case"contain":{let r=Math.min(t/A,i/e);g.dWidth=A*r,g.dHeight=e*r,g.dx=(t-g.dWidth)/2,g.dy=(i-g.dHeight)/2;break}case"cover":{let r=Math.max(t/A,i/e),n=t/r,I=i/r;g.sx=(A-n)/2,g.sy=(e-I)/2,g.sWidth=n,g.sHeight=I;break}}return g}ne([go(pt.INIT,"created",{sync:!0,fail(A){this.log.error("video 2d context create failed",A.cause),ee.addFailedEvent({key:512701,error:A.cause||A})},success(){this.log.info("video context created use 2d"),ee.addSuccessEvent({key:512701})}})],Hs.prototype,"create"),ne([go("created",pt.INIT,{ignoreError:!0,sync:!0})],Hs.prototype,"destroy");var oq=class{constructor(A,e){this.node=A,this.layout=e,l(this,"positionBuffer")}get x(){return this.layout.x||this.node.x}get y(){return this.layout.y||this.node.y}get width(){return this.layout.width||this.node.width}get height(){return this.layout.height||this.node.height}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get fillMode(){return this.layout.fillMode}get rotation(){return this.layout.rotation}get hidden(){return!!this.layout.hidden}},$2=class extends Nn{constructor(A,e){super(A,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:e}),l(this,"inputs",[]),l(this,"backgroundColor","black")}addInput(A,e){let t=0,i=this.inputs.length;for(;t<i;){let g=Math.floor((t+i)/2);if(this.inputs[g].layout.zIndex<e.zIndex)t=g+1;else{if(!(this.inputs[g].layout.zIndex>e.zIndex))throw new Error("input already exists at zIndex ".concat(e.zIndex));i=g}}let o=new oq(A,e);this.inputs.splice(t,0,o)}changeInputLayout(A,e){let t=this.inputs.findIndex((M=>M.node===A));if(t<0)return;let{x:i,y:o,width:g,height:r,zIndex:n,fillMode:I,rotation:C,hidden:u}=e;if(!yA(n)&&this.inputs.some((M=>M.layout.zIndex===n&&M.node!==A)))throw new Error("input already exists at zIndex ".concat(e.zIndex));let R=this.inputs[t];yA(i)||(R.layout.x=i),yA(o)||(R.layout.y=o),yA(g)||(R.layout.width=g),yA(r)||(R.layout.height=r),yA(C)||(R.layout.rotation=C),yA(u)||(R.layout.hidden=u),I&&(R.layout.fillMode=I),!yA(n)&&n!==R.layout.zIndex&&(R.layout.zIndex=n,this.inputs.sort(((M,L)=>M.layout.zIndex-L.layout.zIndex)))}hasInput(A){return this.inputs.some((e=>e.node===A))}hasNoInput(){return this.inputs.length===0}resize(A,e){if(!this.matchInputSize)return void super.resize(A,e);let t=this.inputs.reduce(((i,o)=>o?Object.assign(i,{width:Math.max(i.width,o.right),height:Math.max(i.height,o.bottom)}):i),{width:0,height:0});super.resize(t.width,t.height),this.context instanceof QI&&this.inputs.forEach((i=>{if(i){let o=this.layout2texCoords(i);i.positionBuffer?this.changeBufferData(i.positionBuffer,o):i.positionBuffer=this.createBuffer(o)}}))}connect(A){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i<e;i++)t[i-1]=arguments[i];return super.connect(A,...t),this.drawBackGround2d(this.backgroundColor),this.matchInputSize&&this.resize(0,0),A}removeInput(A){this.inputs=this.inputs.filter((e=>e.node!==A)),this.inputs.length===0&&this.drawBackGround2d(this.backgroundColor)}render(A){let e=this.context.ctx;if(e.clearColor(0,0,0,0),this.inputs.reduce(((t,i)=>i.node.requestFrame(A)||t),!1)&&e){this.useProgram(),e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA),this.useBufferFrame();for(let t=0;t<this.inputs.length;t++){let i=this.inputs[t];i&&(i.node.useTexture(),this.draw(i.positionBuffer))}return!0}return!1}render2d(A){if(this.inputs.forEach((e=>e.node.requestFrame(A))),this.ctx2d){this.drawBackGround2d(this.backgroundColor);for(let e=0;e<this.inputs.length;e++){let t=this.inputs[e];if(t.hidden)continue;let i=iq(t.node.width,t.node.height,t.width,t.height,t.fillMode,Ns(t.rotation));this.draw2d(t.node.image,t.x+i.dx,t.y+i.dy,i.dWidth,i.dHeight,i.sx,i.sy,i.sWidth,i.sHeight)}return!0}return!1}debugLayout(A,e,t,i){let o=arguments.length>4&&arguments[4]!==void 0&&arguments[4];this.ctx2d&&(o&&([t,i]=[i,t]),this.ctx2d.save(),this.ctx2d.strokeStyle="red",this.ctx2d.lineWidth=2,this.ctx2d.strokeRect(A,e,t,i),this.ctx2d.restore())}getInfo(){let{totalFrames:A,x:e,y:t,width:i,height:o,name:g}=this,r=Date.now(),n=(A-this.lastInfo.totalFrames)/((r-this.lastInfo.timestamp)/1e3)|0;return this.lastInfo={totalFrames:A,x:e,y:t,width:i,height:o,timestamp:r,fps:n,name:g},le({parent:this.inputs.filter((I=>I)).map((I=>I.node.getInfo()))},this.lastInfo)}removeAllInputs(){this.inputs.forEach((A=>{var e;if(A.node.disconnect(),A.positionBuffer&&this.context instanceof QI)try{(e=this.context.ctx)==null||e.deleteBuffer(A.positionBuffer)}catch{}}))}close(){super.close(),this.removeAllInputs()}},gq=[1,0,0,0,1,1,0,1],fc=class extends Nn{constructor(A,e,t,i){if(super(A,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:e}),l(this,"mirror",!1),l(this,"rotation",0),t&&(this.mirror=t),i&&(this.rotation=i),A instanceof QI)try{this.setTexBuffer(gq)}catch(o){A.destroy(new oe({code:OA.VIDEO_MANAGER_ERROR,extraCode:3,message:"create video node ".concat(this.name," error ").concat(o.message||o)}))}}draw2d(A,e,t,i,o){if(this.ctx2d){this.ctx2d.clearRect(0,0,this.width,this.height),this.ctx2d.save(),this.mirror&&(this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0)),this.rotation===90?(this.ctx2d.translate(i,0),this.ctx2d.rotate(Math.PI/2),this.ctx2d.scale(o/i,i/o)):this.rotation===180?(this.ctx2d.translate(this.width,this.height),this.ctx2d.rotate(Math.PI)):this.rotation===270&&(this.ctx2d.translate(0,o),this.ctx2d.rotate(3*Math.PI/2),this.ctx2d.scale(o/i,i/o));let g=super.draw2d(A,e,t,i,o);return this.ctx2d.restore(),g}return!1}render(A){var e;return!((e=this.input)==null||!e.requestFrame(A))&&(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0)}resize(A,e){Ns(this.rotation)&&([A,e]=[e,A]),super.resize(A,e)}},fJ=class extends YG{constructor(A){super(arguments.length>1&&arguments[1]!==void 0?arguments[1]:4,Ci),l(this,"inputLocalVideoTracks",new Map),l(this,"inputLocalScreenTracks",new Map),l(this,"cameraNodeMap",new Map),l(this,"screenNodeMap",new Map),l(this,"textNodeMap",new Map),l(this,"imageNodeMap",new Map),l(this,"videoNodeMap",new Map),l(this,"endedIds",new Set),l(this,"videoContext"),l(this,"mixNode"),l(this,"destination"),l(this,"manager"),l(this,"stat"),l(this,"_checkId",0),l(this,"autoSetFps",!0),this.manager=A,this.log.id+="mix",this.create2dVideoContext(),this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(Nn.RENDER,(e=>{this.emit("render",e)})),this.mixNode=new $2(this.videoContext,this.log),this.mixNode.matchInputSize=!1}listenDeviceChange(){throw new Error("Method not implemented.")}enablePrintDetail(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:2e3;this._checkId=ti.run("interval",(()=>{this.destination&&this.log.debug(this.destination.getInfo())}),{delay:A})}create2dVideoContext(){this.videoContext?this.videoContext.destroy():this.videoContext=new Hs({frameRate:15,logger:this.log,name:"mix-ctx"}),this.videoContext.create({alpha:!1})}setFps(A){this.autoSetFps=!1,this.videoContext.frameRate=A;for(let e of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])e.shouldUpdate=!1;setTimeout((()=>{var e;return(e=this.destination)==null?void 0:e.start(this.videoContext.frameRate)}),500)}setFpsAuto(){var A;if(!this.autoSetFps)return;for(let o of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])o.shouldUpdate=!1;let e=null,t=0,i=!0;for(let[o,g]of this.inputLocalVideoTracks)if(g.profile.frameRate>t){if(this.endedIds.has(o)){let r=this.cameraNodeMap.get(o);r&&r.image.cancelVideoFrameCallback(r.videoCallbackId);continue}t=g.profile.frameRate,e=o}for(let[o,g]of this.inputLocalScreenTracks)if(g.profile.frameRate>t){if(this.endedIds.has(o)){let r=this.screenNodeMap.get(o);r&&r.image.cancelVideoFrameCallback(r.videoCallbackId);continue}t=g.profile.frameRate,e=o,i=!1}if(e!==null){let o=i?this.cameraNodeMap.get(e):this.screenNodeMap.get(e);o&&(o.shouldUpdate=!0,o.tryVideoFrameCallback()),this.log.info("set mix fps: ",t)}else(A=this.destination)==null||A.start(this.videoContext.frameRate),this.log.info("fallback to timer, fps: ",this.videoContext.frameRate)}setMixBackground(A){this.mixNode&&(this.mixNode.backgroundColor=A)}resizeMixCanvas(A,e){var t;(t=this.mixNode)==null||t.resize(A,e)}startMix(){return X(this,null,(function*(){var A;if(!this.mixNode||!this.destination)throw new Error("can't mix without necessary conditions");this.mixNode.disconnect(),this.mixNode.connect(this.destination),fB&&this.player.setCanvas(this.videoContext._canvas),this.setOutputMediaStreamTrack(this.destination.videoTrack),(A=this.manager)==null||A.changeInput(this)}))}addCameraSource(A,e,t){if(this.inputLocalVideoTracks.has(A)||this.cameraNodeMap.has(A))throw new Error("There is already a cameraSource with the same ID: ".concat(A));let i,{mediaTrack:o}=e;if(!o)throw new Error("no mediaTrack, add cameraSource failed");e.recaptureMode=1,na(this,Ho).add("videoInputRemoved",(g=>{g.deviceId===e.deviceId&&(this.endedIds.add(A),this.setFpsAuto())})),e.on("output-media-track-changed",(()=>{this.endedIds.delete(A),this.updateCameraSource(A,t,e.mediaTrack)})),i=va===16&&o instanceof CanvasCaptureMediaStreamTrack?this.videoContext.createVideoImageSource(o.canvas,{name:"cameraCanvasSource",logger:this.log}):this.videoContext.createVideoTrackSource(o,"cameraNodeSource"),i.resize(e.settings.width,e.settings.height),i.shouldUpdate=!1,this._connectMix(i,t,"cover"),this.inputLocalVideoTracks.set(A,e),this.cameraNodeMap.set(A,i),this.setFpsAuto()}addScreenSource(A,e,t){if(this.inputLocalScreenTracks.has(A)||this.screenNodeMap.has(A))throw new Error("There is already a screenSource with the same ID: ".concat(A));let{mediaTrack:i}=e;if(!i)throw new Error("no mediaTrack, add cameraSource failed");let o=this.videoContext.createVideoTrackSource(i,"screenNodeSource");o.resize(e.settings.width,e.settings.height),o.shouldUpdate=!1,this._connectMix(o,t),this.inputLocalScreenTracks.set(A,e),this.screenNodeMap.set(A,o),this.setFpsAuto()}addTextSource(A){let{id:e,content:t="",font:i,color:o,layout:g}=A;if(this.textNodeMap.has(e))throw new Error("There is already a textSource with the same ID: ".concat(e));let r=this.videoContext.createTextSource({content:t,font:i,color:o});r.resize(g.width,g.height),this._connectMix(r,g),this.textNodeMap.set(e,r)}addImageSource(A,e,t){if(this.imageNodeMap.has(A))throw new Error("There is already a imageSource with the same ID: ".concat(A));let i=this.videoContext.createVideoImageSource(e,{autoResize:!1,logger:this.log});i.resize(e.width,e.height),this._connectMix(i,t),this.imageNodeMap.set(A,i)}addVideoSource(A,e,t){if(this.videoNodeMap.has(A))throw new Error("There is already a videoSource with the same ID: ".concat(A));let i=this.videoContext.createVideoImageSource(e,{autoResize:!1,logger:this.log});i.resize(e.videoWidth,e.videoHeight),i.shouldUpdate=!1,this._connectMix(i,t),this.videoNodeMap.set(A,i)}updateCameraSource(A,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,i=arguments.length>3?arguments[3]:void 0,o=this.cameraNodeMap.get(A);if(o){if(t){if(va===16&&t instanceof CanvasCaptureMediaStreamTrack)if(o instanceof Xy){let n=o.output;o.close(),o=this.videoContext.createVideoImageSource(t.canvas,{name:"cameraCanvasSource",logger:this.log}),o.connect(n),this.cameraNodeMap.set(A,o)}else o.image=t.canvas;else if(o instanceof Xy)o.replaceTrack(t);else{let n=o.output;o.close(),o=this.videoContext.createVideoTrackSource(t,"cameraNodeSource"),o.connect(n),this.cameraNodeMap.set(A,o)}let{width:g,height:r}=t.getSettings();g&&r&&o.resize(g,r)}i&&o.resize(i.width,i.height),(i||t)&&this.setFpsAuto(),this._changeMixLayout(o,e)}}updateScreenSource(A,e){let t=this.screenNodeMap.get(A);t&&this._changeMixLayout(t,e)}updateTextSource(A){let{id:e,content:t,font:i,color:o,layout:g}=A,r=this.textNodeMap.get(e);r&&(yA(t)||(r.content=t),yA(i)||(r.font=i),yA(o)||(r.color=o),r.resize(g.width,g.height),this._changeMixLayout(r,g))}updateImageSource(A,e,t){let i=this.imageNodeMap.get(A);i&&(t&&(i.image=t,i.resize(t.width,t.height)),this._changeMixLayout(i,e))}updateVideoSource(A,e,t){let i=this.videoNodeMap.get(A);if(i){if(t){let o=i.image;o instanceof HTMLVideoElement&&this.stopVideoElement(o),i.image=t,i.resize(t.videoWidth,t.videoHeight)}this._changeMixLayout(i,e)}}_connectMix(A,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"contain";if(!this.mixNode)return;let{mirror:i,rotation:o}=e;A.disconnect();let g=new fc(this.videoContext,this.log,i,o);g=A.connect(g),e.fillMode||(e.fillMode=t),g.connect(this.mixNode,e)}_changeMixLayout(A,e){if(!this.mixNode)return;let{mirror:t,rotation:i}=e,o=A.output||A;o instanceof fc&&(yA(t)||(o.mirror=t),yA(i)||(o.rotation=i),o.resize(A.width,A.height)),this.mixNode.changeInputLayout(o,e)}removeCameraSource(A){let e=this.inputLocalVideoTracks.get(A);if(!e)return;e.close(),this.inputLocalVideoTracks.delete(A);let t=this.cameraNodeMap.get(A);t&&(t.output instanceof fc&&t.output.close(),t.close(),this.cameraNodeMap.delete(A)),this.checkAfterRemove(!0)}removeScreenSource(A){let e=this.inputLocalScreenTracks.get(A);if(!e)return;e.close(),this.inputLocalScreenTracks.delete(A);let t=this.screenNodeMap.get(A);t&&(t.output instanceof fc&&t.output.close(),t.close(),this.screenNodeMap.delete(A)),this.checkAfterRemove(!0)}removeTextSource(A){let e=this.textNodeMap.get(A);e&&(e.output instanceof fc&&e.output.close(),e.close(),this.textNodeMap.delete(A)),this.checkAfterRemove()}removeImageSource(A){let e=this.imageNodeMap.get(A);e&&(e.output instanceof fc&&e.output.close(),e.close(),this.imageNodeMap.delete(A)),this.checkAfterRemove()}removeVideoSource(A){let e=this.videoNodeMap.get(A);e&&(e.output instanceof fc&&e.output.close(),e.image instanceof HTMLVideoElement&&this.stopVideoElement(e.image),e.close(),this.videoNodeMap.delete(A)),this.checkAfterRemove()}checkAfterRemove(){arguments.length>0&&arguments[0]!==void 0&&arguments[0]&&this.setFpsAuto()}stopVideoElement(A){A.pause(),A.src="",A.srcObject=null,A.remove()}close(){var A;super.close(),ti.clearTask(this._checkId),(A=this.videoContext)==null||A.destroy(),delete this.mixNode,delete this.destination;for(let e of[...this.inputLocalVideoTracks.values(),...this.inputLocalScreenTracks.values()])e.close();this.inputLocalVideoTracks.clear(),this.inputLocalScreenTracks.clear(),this.cameraNodeMap.clear(),this.screenNodeMap.clear(),this.textNodeMap.clear(),this.imageNodeMap.clear(),Tg(this);for(let e of this.videoNodeMap.values())e.image instanceof HTMLVideoElement&&this.stopVideoElement(e.image);this.videoNodeMap.clear(),this.log.info("localMixVideoTrack close, stop mix")}},wJ=cA();if(typeof navigator<"u"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:wJ,exposeOrigin:!0,permittedOrigins:["*"]})}catch{}var rq=function(A){return X(this,null,(function*(){let e=null,t=(function(g){let r={preferCurrentTab:g.preferDisplaySurface==="current-tab"||!!g.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},n={width:ko?{max:g.width}:{ideal:g.width,max:g.width},height:ko?{max:g.height}:{ideal:g.height,max:g.height},frameRate:g.frameRate,displaySurface:g.preferDisplaySurface||"monitor"};if(r.video=n,g.systemAudio){let{echoCancellation:I=!0,noiseSuppression:C=!1,autoGainControl:u=!1}=g;r.audio={echoCancellation:I,noiseSuppression:C,autoGainControl:u,sampleRate:48e3}}return r})(A);K.info("getDisplayMedia with constraints: ".concat(JSON.stringify(t)));let i=yield navigator.mediaDevices.getDisplayMedia(t);A.systemAudio&&i.getAudioTracks().length===0&&(Ry&&Gr<74||ko||ei)&&K.warn("Your browser not support capture system audio");let o=i.getVideoTracks()[0];if(o){if(A.frameRate)try{yield o.applyConstraints({frameRate:{min:A.frameRate,ideal:A.frameRate},width:A.width,height:A.height})}catch(g){K.warn("screen applyConstraints failed: ".concat(g))}A.captureElement&&(yield(function(g,r){return X(this,null,(function*(){var n;if("CropTarget"in window&&"fromElement"in CropTarget&&Ni(g.cropTo))try{if(((n=g.getCaptureHandle())==null?void 0:n.handle)!==wJ)return;let I=yield CropTarget.fromElement(r);yield g.cropTo(I)}catch(I){K.warn("cropTo target failed ".concat(I))}}))})(o,A.captureElement))}if(A.audio){let g=(function(r){let n={echoCancellation:r.echoCancellation,autoGainControl:r.autoGainControl,noiseSuppression:r.noiseSuppression,sampleRate:r.sampleRate,channelCount:r.channelCount};return yA(r.microphoneId)||(n.deviceId=r.microphoneId),{audio:n,video:!1}})(A);K.info("getUserMedia with constraints: ".concat(JSON.stringify(g))),e=yield navigator.mediaDevices.getUserMedia(g),i.addTrack(e.getAudioTracks()[0])}return i}))},Fu=class extends YB{constructor(A){super(A,2),l(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600}),l(this,"objectFit","contain"),l(this,"isScreen",!0),this._log.id="s-".concat(this._log.id)}get isShareCurrentTab(){var A,e;try{return wJ===((e=(A=this.mediaTrack)==null?void 0:A.getCaptureHandle())==null?void 0:e.handle)}catch{return}}capture(A){return X(this,arguments,(function(e){var t=this;let{systemAudio:i=!1,autoGainControl:o,echoCancellation:g,noiseSuppression:r,audioTrack:n,videoTrack:I,captureElement:C,preferDisplaySurface:u}=e;return(function*(){try{let R;return I||n?(R=new MediaStream,I&&R.addTrack(I),n&&R.addTrack(n)):(R=yield rq({audio:!1,systemAudio:i,width:t.profile.width,height:t.profile.height,frameRate:t.profile.frameRate,autoGainControl:o,echoCancellation:g,noiseSuppression:r,captureElement:C,preferDisplaySurface:u}),t.sourceTrack=R.getVideoTracks()[0]),yield t.setInputMediaStreamTrack(R.getVideoTracks()[0]),R}catch(R){throw t.log.error("getDisplayMedia error observed ".concat(R)),R instanceof oe?R:new oe({code:OA.INITIALIZE_FAILED,name:R.name,message:R.message})}})()}))}switchDevice(A){return X(this,null,(function*(){throw new Error("Method not implemented.")}))}};ne([Mu((function(A){this.setContentHint(A.contentHint||"detail")}))],Fu.prototype,"capture");var SJ,GJ=class extends Nu{constructor(A){super(A),this._log.id="s-".concat(this._log.id),this.isScreen=!0}addAudioProcessor(A,e,t){this.pipeline.silentNode.setNode(t),this.pipeline.mixNode.setNode(e),this.pipeline.aec.setNode(A),this.enableTrackAEC(!1)}removeAudioProcessor(A){this.pipeline.aec.node===A&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}};function MJ(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:48e3,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,i=arguments.length>3?arguments[3]:void 0;return X(this,null,(function*(){let o=Ug();SJ||(SJ=Ag(o,URL.createObjectURL(new Blob(['registerProcessor("dumper",class extends AudioWorkletProcessor{constructor(e){super(),this.sourceSampleRate=e.processorOptions.sourceSampleRate||48e3,this.targetSampleRate=e.processorOptions.targetSampleRate||48e3,this.port.onmessage=e=>{this.port2=e.data.port}}process(e){return(this.port2||this.port).postMessage(this.resampleAll(e,this.sourceSampleRate,this.targetSampleRate)),!0}resampleAll(r,s,a){if(s===a)return r;var o=[];for(let t=0;t<r.length;t++){o[t]=[];for(let e=0;e<r[t].length;e++)o[t][e]=this.resample(r[t][e],s,a)}return o}resample(t,e,r){if(e===r)return t;var s=Math.round(t.length*(this.targetSampleRate/this.sourceSampleRate)),a=new Float32Array(s),o=(t.length-1)/(s-1);a[0]=t[0];for(let e=1;e<s-1;e++){var l=e*o,p=Math.floor(l),h=Math.ceil(l);a[e]=t[p]+(t[h]-t[p])*(l-p)}return a[s-1]=t[t.length-1],a}});'],{type:"application/javascript"})))),yield SJ;let g=o.sampleRate,r=new AudioWorkletNode(o,"dumper",{numberOfInputs:A.length,numberOfOutputs:0,processorOptions:{sourceSampleRate:g,targetSampleRate:e}});return r.channelCountMode="explicit",r.channelCount=t,i&&r.port.postMessage({port:i},[i]),A.forEach(((n,I)=>n.connect(r,0,I))),new ReadableStream({start(n){r.port.onmessage=I=>{n.enqueue(I.data)}},cancel(){A.forEach((n=>n.disconnect(r))),r.port.close()}})}))}var aq=class extends pH{constructor(A){super(),this.room=A,l(this,"_localAudioTrack"),l(this,"_localScreenAudioTrack"),l(this,"log"),l(this,"denoiser"),l(this,"voiceChanger"),l(this,"mixChangedDebounce"),l(this,"audioProcessor"),l(this,"encodePipeline",[]),l(this,"decodePipeline",[]),l(this,"getPCMAbortCtrlMap",new Map),l(this,"audioFrameEventConfigMap",new Map),l(this,"audioReferenceMap",new Map),l(this,"isLocalAudioNeedAudioProcess",!1),l(this,"isScreenAudioNeedAudioProcess",!1),this.log=K.createLogger({parent:A==null?void 0:A.getLogger(),id:"am",userId:A==null?void 0:A.userId,sdkAppId:A==null?void 0:A.sdkAppId}),this.installEvent()}get localAudioTrack(){return this._localAudioTrack}get _localAudioPipline(){var A;return(A=this._localAudioTrack)==null?void 0:A.pipeline}get _localScreenAudioPipeline(){var A;return(A=this._localScreenAudioTrack)==null?void 0:A.pipeline}dump(A){var e,t;if(!this._localAudioTrack)return;let i=[],o=[];(e=this._localAudioPipline)!=null&&e.source.node&&(i.push(this._localAudioPipline.source.node),o.push("mic")),(t=this._localAudioPipline)!=null&&t.denoiser.node&&(i.push(this._localAudioPipline.denoiser.node),o.push("mic-processed")),this.mixWeight>1&&(i.push(this.audioContext.createMediaStreamSource(this._localAudioPipline.stream)),o.push("mix")),this.log.info("dump audio track ".concat(o,", duration: ").concat(A));let g=new AbortController,r=[],n=setTimeout((()=>{this.log.info('dump audio track complete please input "download()" to download.'),g.abort("timeout")}),1e3*A),I=()=>{for(let u=0;u<o.length;u++){let R=URL.createObjectURL(new Blob(r[u])),M=document.createElement("a");M.href=R,M.download="".concat(o[u],".pcm"),M.style.display="none",document.body.appendChild(M),M.click(),URL.revokeObjectURL(R),M.remove()}clearTimeout(n),g.abort("download")},C=MJ(i).then((u=>u.pipeTo(new WritableStream({write(R){R.forEach(((M,L)=>r[L]=r[L]?r[L].concat(M[0]):[M[0]]))}}),g).catch((R=>I))));return{then:C.then.bind(C),download:I}}getPCM(A,e){var t,i,o;if(typeof WritableStream>"u")return void this.log.warn("getPCM failed: browser not support WritableStream");let{enable:g,sampleRate:r=48e3,channelCount:n=1,port:I}=(e===""?this.audioFrameEventConfigMap.get(""):this.audioFrameEventConfigMap.get(e)||this.audioFrameEventConfigMap.get("*"))||{};if(!g)return;this.log.info("getPCM ".concat(e||"local"));let C,u,R=Math.floor(.04*r),M=new Float32Array(R),L=new Float32Array(R),H=0,gA=new AbortController,EA=e===""?(t=this._localAudioTrack)==null?void 0:t.mediaTrack:(o=(i=this.room)==null?void 0:i.remotePublishedUserMap.get(e))==null?void 0:o.remoteAudioTrack.mediaTrack;if(EA)return MJ([Ug().createMediaStreamSource(new MediaStream([EA]))],r,n,I).then((TA=>TA.pipeTo(new WritableStream({write(hA){hA[0][0]&&(H+hA[0][0].length>R?(M.set(hA[0][0].subarray(0,R-H),H),C=hA[0][0].subarray(R-H),hA[0][1]&&(L.set(hA[0][1].subarray(0,R-H),H),u=hA[0][1].subarray(R-H)),H+=R-H):(C&&(M.set(C,H),H+=C.length,C=void 0),u&&(L.set(u,H),u=void 0),M.set(hA[0][0],H),hA[0][1]&&L.set(hA[0][1],H),H+=hA[0][0].length),H>=R&&(H=0,A({userId:e,sampleRate:r,channelCount:n,data:n===1?M:[M,L]}),M=new Float32Array(R),L=new Float32Array(R)))}}),gA).catch((hA=>this.log.warn("stop getPCM reason:".concat(hA)))))),gA;this.log.info("getPCM failed: ".concat(e||"local"," has no audio track"))}get hasScreenAudioTrack(){return!yA(this._localScreenAudioTrack)}get hasAudioTrack(){return!yA(this._localAudioTrack)}changeInput(A){var e,t;return A instanceof GJ?(this._localScreenAudioTrack=A,this.isScreenAudioNeedAudioProcess&&(e=this.audioProcessor)!=null&&e.screenAudioWorkletNode&&(A.addAudioProcessor(this.audioProcessor.screenAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach(((i,o)=>{A.mixAudioReference(i,o)}))),A.pipeline.connect(),this.mixOnChange()):A instanceof Nu?(this._localAudioTrack=A,this.denoiser&&A.addDenoiser(this.denoiser),this.isLocalAudioNeedAudioProcess&&(t=this.audioProcessor)!=null&&t.localAudioWorkletNode&&(A.addAudioProcessor(this.audioProcessor.localAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach(((i,o)=>{A.mixAudioReference(i,o)}))),A.pipeline.connect(),this.mixOnChange()):A instanceof wT?A.setOutputMediaStreamTrack(A.mediaTrack):void 0}mixAudioReference(A,e){var t;(t=this._localAudioTrack)==null||t.mixAudioReference(A,e)}unMixAudioReference(A){var e;(e=this._localAudioTrack)==null||e.unMixAudioReference(A)}setAudioReferenceVolume(A,e){var t;(t=this._localAudioTrack)==null||t.setAudioReferenceVolume(A,e)}mixOnChange(){return this.mixChangedDebounce||(this.mixChangedDebounce=Promise.resolve().then((()=>{var A,e;return delete this.mixChangedDebounce,Promise.all([(A=this._localAudioTrack)==null?void 0:A.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localAudioTrack.mediaTrack),(e=this._localScreenAudioTrack)==null?void 0:e.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localScreenAudioTrack.mediaTrack)])}))),this.mixChangedDebounce}removeInput(A){A instanceof GJ?delete this._localScreenAudioTrack:A instanceof Nu&&delete this._localAudioTrack}addDenoiser(A){var e;this.denoiser=A,(e=this._localAudioTrack)==null||e.addDenoiser(A)}addAudioProcessor(A,e,t,i){var o;this.audioProcessor={localAudioWorkletNode:t,mixNode:A,silentNode:e,screenAudioWorkletNode:i},this.isLocalAudioNeedAudioProcess&&this._localAudioTrack&&t&&(this._localAudioTrack.addAudioProcessor(t,A,e),this.audioReferenceMap.forEach(((g,r)=>{var n;(n=this._localAudioTrack)==null||n.mixAudioReference(g,r)}))),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&i&&((o=this._localScreenAudioTrack)==null||o.addAudioProcessor(i,A,e),this.audioReferenceMap.forEach(((g,r)=>{var n;(n=this._localScreenAudioTrack)==null||n.mixAudioReference(g,r)})))}removeDenoiser(A){var e;return delete this.denoiser,(e=this._localAudioTrack)==null?void 0:e.removeDenoiser(A)}addVoiceChanger(A,e){var t;this.voiceChanger=[A,e],(t=this._localAudioTrack)==null||t.pipeline.voiceChanger.setNode(A,e)}removeVoiceChanger(){var A;delete this.voiceChanger,(A=this._localAudioTrack)==null||A.pipeline.voiceChanger.deleteNode()}removeAudioProcessor(A,e){var t,i;delete this.audioProcessor,(t=this._localAudioTrack)==null||t.removeAudioProcessor(A),(i=this._localScreenAudioTrack)==null||i.removeAudioProcessor(e)}destroy(){this.close(),this.audioReferenceMap.clear(),this.getPCMAbortCtrlMap.forEach((A=>A==null?void 0:A.abort("destroy"))),this.getPCMAbortCtrlMap.clear(),this.audioFrameEventConfigMap.clear(),this.uninstallEvent()}addEncodeProcessor(A){let{processor:e,type:t}=A;var i;this.encodePipeline.includes(e)||(this.encodePipeline[t]=e,(i=this.room)==null||i.enableInsertableStreams())}addDecodeProcessor(A){let{processor:e,type:t}=A;var i;this.decodePipeline.includes(e)||(this.decodePipeline[t]=e,(i=this.room)==null||i.enableInsertableStreams())}removeEncodeProcessor(A){let{type:e}=A;this.encodePipeline[e]=void 0}removeDecodeProcessor(A){let{type:e}=A;this.decodePipeline[e]=void 0}handleLocalTrackStarted(A){let{room:e,userId:t}=A;var i;if(e!==this.room||this.getPCMAbortCtrlMap.get(t))return;let o=this.getPCM((g=>{var r;(r=this.room)==null||r.emit("audio-frame",g)}),"");this.getPCMAbortCtrlMap.set(t,o),this.getPCMAbortCtrlMap.get(t)&&((i=this._localAudioTrack)==null||i.on("input-media-track-changed",(()=>{let g=this.getPCMAbortCtrlMap.get(t);g&&(g.abort("inputMediaTrackChanged"),g=this.getPCM((r=>{var n;(n=this.room)==null||n.emit("audio-frame",r)}),""),this.getPCMAbortCtrlMap.set(t,g))})))}handleLocalTrackStopped(A){let{room:e,userId:t}=A;if(e!==this.room)return;let i=this.getPCMAbortCtrlMap.get(t);i&&(i.abort("stopLocalAudio"),this.getPCMAbortCtrlMap.delete(t))}handleRemoteTrackStarted(A){let{room:e,userId:t}=A;if(e===this.room&&!this.getPCMAbortCtrlMap.get(t)){let i=this.room.audioManager.getPCM((o=>{var g;(g=this.room)==null||g.emit("audio-frame",o)}),t);this.getPCMAbortCtrlMap.set(t,i)}}handleRemoteTrackStopped(A){let{room:e,userId:t}=A;if(e!==this.room)return;let i=this.getPCMAbortCtrlMap.get(t);i&&(i.abort("stopRemoteAudio"),this.getPCMAbortCtrlMap.delete(t))}installEvent(){N.on("113",this.handleLocalTrackStarted,this),N.on("114",this.handleLocalTrackStopped,this),N.on("115",this.handleRemoteTrackStarted,this),N.on("116",this.handleRemoteTrackStopped,this)}uninstallEvent(){N.off("113",this.handleLocalTrackStarted),N.off("114",this.handleLocalTrackStopped),N.off("115",this.handleRemoteTrackStarted),N.off("116",this.handleRemoteTrackStopped)}updateAudioReference(A){let{type:e,audioReference:t,refId:i,volume:o}=A;if(e==="add"){if(this.audioReferenceMap.get(i)||!t||(this.audioReferenceMap.set(i,t),!this.audioProcessor))return;this.mixAudioReference(t,i)}else if(e==="remove")this.audioReferenceMap.get(i)&&(this.audioReferenceMap.delete(i),this.unMixAudioReference(i));else if(e==="updateVolume"){if(!this.audioProcessor||yA(o))return;this.setAudioReferenceVolume(i,o)}}};function fT(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:30,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2;return Gi(((t,i)=>function(){for(var o=arguments.length,g=new Array(o),r=0;r<o;r++)g[r]=arguments[r];return new Promise(((n,I)=>{let C=setTimeout((()=>{let u=new oe({code:OA.API_CALL_TIMEOUT,message:"checkPendingPromise ".concat(i,"() timeout ").concat(A,"s")});(this.log||this._log||K).warn(u),e===2?I(u):e===1&&n()}),1e3*A);this._checkPendingPromiseSet||(this._checkPendingPromiseSet=new Set),this._checkPendingPromiseSet.add(C),t.apply(this,g).then(n,I).finally((()=>{clearTimeout(C),this._checkPendingPromiseSet&&C&&this._checkPendingPromiseSet.delete(C)}))}))}))}var vu=class e2 extends BJ{constructor(e,t,i){super({userId:t.userId,sdkAppId:e.sdkAppId,mediaType:i,room:e}),this.room=e,this.user=t,l(this,"tinyId"),l(this,"isRemote",!0),l(this,"jitterBufferDelay",0),l(this,"availableState"),l(this,"remotePublishState"),l(this,"_triggerCheckDecodeSubject",Ks(Fi(this,e2.STATE_SUBSCRIBE))),l(this,"ignoreUpdatePlayingState"),this.tinyId=t.tinyId,this.availableState=new pt("".concat(t.userId,"-").concat(this.mediaType,"-available"),"remote-track-available"),this.remotePublishState=new pt("".concat(t.userId,"-").concat(this.mediaType,"-remote-publish"),"remote-track-publish"),Yi(QJ(Fi(this,pt.STATECHANGED),Fi(this.remotePublishState,pt.STATECHANGED)),DJ((()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing))),eg((n=>{this.availableState.state!==(n?pt.ON:pt.OFF)&&(this.availableState.state=n?pt.ON:pt.OFF),(!this.isRemotePublished||!this.ignoreUpdatePlayingState)&&this.updatePlayingState(n)})));let o=Yi(Fi(this.player,bt.ERROR),ku((n=>n.code===MediaError.MEDIA_ERR_DECODE))),g=Yi(lJ(5e3),ku((()=>!(this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived)&&(!this.player.isPlaying&&!(this.kind===V.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)||(this.reportDecodeResult(!0),!1))))),r=Yi(k2(o,g),Nr(Fi(this,pt.INIT)));Yi(this._triggerCheckDecodeSubject,ku((()=>!this.ignoreDecodeError)),RT(r),eg((n=>{this.reportDecodeResult(!1,n)})))}setMute(e){this.isRemotePublished&&super.setMute(e)}setInputMediaStreamTrack(e){super.setInputMediaStreamTrack(e),this.isRemotePublished&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}checkDecodeResult(){this._triggerCheckDecodeSubject.next(!0)}waitHasMediaTrack(){return new Promise((e=>{this.mediaTrack?e():this.once("input-media-track-changed",e)}))}get ignoreDecodeError(){var e,t;return(((t=(e=this.room)==null?void 0:e.networkQuality)==null?void 0:t.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===e2.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===pt.ON}get isNeedPlay(){return this.isAvailable&&this.isPlayCalled}subscribe(e){return e}unsubscribe(){this.streamType==="main"&&this.kind==="video"&&this.room.changeType(!1,this.user)}reportDecodeResult(e,t){var i,o;let g=this.kind===V.AUDIO;if(ee[e?"addSuccessEvent":"addFailedEvent"]({key:g?504700:514702}),!g){let r=((i=this.room)==null?void 0:i.downlinkVideoCodec.toUpperCase())||"H264";ee[e?"addSuccessEvent":"addFailedEvent"]({key:Ec["DECODE_".concat(r,"_RESULT")]}),e||this.log.warn("".concat((o=this.room)==null?void 0:o.downlinkVideoCodec," decode failed"))}e||(ee.addEnum({key:g?504701:514703,value:Ut()}),wi.uploadEvent({log:"stat-decode-failed-".concat(this.kind,"-").concat(No()||s()),userId:this.room.userId}),this._log.warn("decode failed: isPlaying: ".concat(this.player.isPlaying," ").concat(this.kind===V.AUDIO?"audioLevel: ".concat(this.getAudioLevel()):"framesDecoded: ".concat(this.stat.framesDecoded>0))),this.emit("decode-failed",{error:t}))}updatePlayingState(e){if(this.player.isPlayCalled&&this.player.setTrack(this.playerMediaTrack),this.isPlayCalled&&this.player.isStopped===e){if(e&&(!this.isSubscribed||!this.isRemotePublished||!this.outMediaTrack))return void this.log.info("abort play, isSubscribed: ".concat(this.isSubscribed," isAvailable: ").concat(this.isRemotePublished," hasTrack: ").concat(!!this.outMediaTrack," "));super.updatePlayingState(e)}}close(){super.close(),this.outMediaTrack&&this.uninstallTrackEvent(this.outMediaTrack)}onFlagChanged(){this.remotePublishState.state=this.isRemotePublished?pt.ON:pt.OFF,this.emit("remote-publish-changed",this.isRemotePublished)}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};l(vu,"STATE_SUBSCRIBE","subscribe"),ne([fT(5,1)],vu.prototype,"waitHasMediaTrack"),ne([go(pt.INIT,vu.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),N.emit(v.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),yc(521716,!1)],vu.prototype,"subscribe"),ne([go(vu.STATE_SUBSCRIBE,pt.INIT,{sync:!0,success(){this.log.info("unsubscribed"),N.emit(v.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],vu.prototype,"unsubscribe");var Ax=vu,wT=class extends Ax{constructor(A,e){super(A,e,1),l(this,"volume",0),l(this,"mediaType",1),l(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0}),this.manager=A.audioManager}get dbVolume(){return CT.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}onPlayerError(A){this.enableDecodeFrame&&(this._log.warn("use audio decoder"),this.room.enableInsertableStreams())}get enableDecodeFrame(){var A,e;return!!this.manager&&(this.manager.decodePipeline.some((t=>t))||((e=(A=this.player.element)==null?void 0:A.error)==null?void 0:e.code)===MediaError.MEDIA_ERR_DECODE&&DG().AudioDecoder&&vB)}get enableDecryptFrame(){return this.manager&&!!this.manager.decodePipeline[0]}decodeFrame(A){if(!this.manager)return A;let e=A;for(let[t,i]of this.manager.decodePipeline.entries()){if(!i)continue;let o={frame:A,track:this};if(t===1&&this.isAvailable&&this.room.role==="audience"&&(o.onAudioFrameNTPTime=g=>{let{ntp:r,frame:n,hasLeavingTag:I}=g;this.emit("audio-frame-with-ntp",{ntp:r,frame:n,hasLeavingTag:I})}),e=i(o),!e)return}return e}getAudioLevel(){let A=this.volume||super.getAudioLevel();return A>1?1:A}get isRemotePublished(){return this.user.muteState.audioAvailable}},Iq=class extends Nn{constructor(A,e,t,i,o){super(A,{useDefaultProgram:!0,useFbo:!0,name:"alpha",create2d:!0,logger:e}),this.setContainer=i,l(this,"initStat",{alphaStitchingType:1}),l(this,"end",Ks()),l(this,"minSize",320),l(this,"maxSize",1280),l(this,"draggable",!1),l(this,"startDragX",0),l(this,"startDragY",0),l(this,"left",0),l(this,"top",0),l(this,"baseWidth",320),l(this,"baseRatio"),l(this,"container"),this.initStat=o,this.draggable=t,this.bindDragEvents()}bindDragEvents(){let A=this.context._canvas;if(A)if(this.draggable){let e=Nr(this.end);Yi(Fi(A,"mousedown"),pJ(this.startDrag.bind(this)),pT((()=>Yi(Fi(window,"mousemove"),Nr(Fi(window,"mouseup"))))),e,eg(this.doDrag.bind(this))),Yi(Fi(A,"dblclick"),e,eg(this.resetPosition.bind(this))),Yi(Fi(A,"wheel"),e,eg(this.handleZoom.bind(this))),this.renderCanvas()}else{if(!this.container)return;this.container.style.removeProperty("left"),this.container.style.removeProperty("top"),this.end.next()}}render(A){var e;return!((e=this.input)==null||!e.requestFrame(A))&&(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0)}startDrag(A){A.preventDefault(),A.button===0&&(this.startDragX=A.clientX-this.left,this.startDragY=A.clientY-this.top)}renderCanvas(){let{container:A}=this;A||this.setContainer(),A&&this.baseRatio&&this.draggable&&(A.style.setProperty("width","".concat(this.baseWidth,"px")),A.style.setProperty("height","".concat(this.baseWidth/this.baseRatio,"px")),A.style.setProperty("position","fixed"),A.style.setProperty("left","".concat(this.left,"px")),A.style.setProperty("top","".concat(this.top,"px")))}doDrag(A){A.preventDefault(),this.left=A.clientX-this.startDragX,this.top=A.clientY-this.startDragY,this.renderCanvas()}handleZoom(A){A.preventDefault();let e=A.deltaY,t=this.context._canvas;t&&(this.baseWidth||(this.baseWidth=t.offsetWidth),this.baseWidth=e<0?Math.min(1.1*this.baseWidth,this.maxSize):Math.max(.9*this.baseWidth,this.minSize),this.renderCanvas())}resetPosition(){this.left=0,this.top=0,this.renderCanvas()}onRatioReset(){this.renderCanvas()}draw2d(A,e,t,i,o){var g;let{ctx2d:r}=this,n=this.context._canvas;if(!r||!n)return!1;let I=super.draw2d(A,e,t,i,o),C=r.getImageData(0,0,i,o),{data:u}=C,R=!1;if(this.initStat.alphaStitchingType===1){let M=Math.floor(i/2);for(let L=0;L<o;L++)for(let H=0;H<M;H++){let gA=4*(L*i+H),EA=4*(L*i+(H+M)),TA=u[EA];u[EA+3]=0;let hA=TA>=100;u[gA+3]=hA?255:0}R=super.draw2d(C,0,0,0,0,M,o),n.width=M}else if(this.initStat.alphaStitchingType===2){let M=Math.floor(o/2);for(let L=0;L<M;L++)for(let H=0;H<i;H++){let gA=4*(L*i+H),EA=4*((L+M)*i+H),TA=u[EA];u[EA+3]=0;let hA=TA>=100;u[gA+3]=hA?255:0}R=super.draw2d(C,0,0,0,0,i,M),n.height=M}return(g=this.context.ctx)==null||g.clearRect(0,0,i,o),I&&R}close(){this.baseRatio=void 0,this.end.next(),this.end.complete()}},OG=class extends Ax{constructor(A,e){super(A,e,arguments.length>2&&arguments[2]!==void 0?arguments[2]:4),l(this,"mediaType",4),l(this,"source"),l(this,"shouldRenderAlpha",!1),l(this,"alphaNode"),l(this,"shouldBeDraggable",!0),l(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,end2EndDelay:0,jitterBufferDelay:0}),this.manager=A.videoManager,this.on("first-video-frame",(t=>{this.room.emit("first-video-frame",t)}))}isAlphaSei(A){if(this.userId!==A.userId||A.seiPayloadType!==50)return!1;let e=new Uint8Array(A.data);return e.length%3==0&&e[0]===0&&e[1]===1&&e}play(A,e){return fi(e==null?void 0:e.canvasRender)&&e.canvasRender&&!this.source&&this.useCanvasPlayer(),super.play(A,e).then((()=>{this.player.calculateStat(),N.emit("156",{track:this,player:this.player})}))}updateAlphaRenderInfo(A){let e=this.isAlphaSei(A);if(e)if(this.alphaNode){let t=e[2];if(this.alphaNode.baseRatio&&this.alphaNode.initStat.alphaStitchingType===t)return;this.alphaNode.initStat={alphaStitchingType:t};let i=this.player.getElement();if(i){let o=i.videoWidth/i.videoHeight;o&&(this.alphaNode.baseRatio=o*(t===1?.5:2),this.alphaNode.onRatioReset())}this.player.canvas&&(this.player.canvas.id=this.generateAlphaCanvasName(t))}else this.shouldRenderAlpha=!0,this.player.shouldRenderAlpha=!0,this.useCanvasPlayer(e[2])}generateAlphaCanvasName(A){let e=EG[A];return"".concat("alpha","_").concat(e,"_").concat(this.userId)}useCanvasPlayer(A){if(this.log.info("useCanvasPlayer(), has element:".concat(!!this.player.element)),!this.player.element)return;let e=new Hs({frameRate:15,logger:this.log,name:this.shouldRenderAlpha&&A?this.generateAlphaCanvasName(A):this.userId});e.create({alpha:this.shouldRenderAlpha,willReadFrequently:this.shouldRenderAlpha});let t=new RJ(e,{name:"remotePlayer",logger:this.log});if(this.source=e.createVideoPlayerSource(this.player),this.player.setCanvas(e._canvas),this.shouldRenderAlpha&&A){let i=()=>{!this.player.container||!this.alphaNode||(this.alphaNode.container=this.player.container,this.alphaNode.renderCanvas())},o=new Iq(e,this.log,this.shouldBeDraggable,i,{alphaStitchingType:A});this.source.connect(o),o.connect(t),this.alphaNode=o}else this.source.connect(t);Gn()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(A){let e=this.decodeFPS,t=(i=e,[15,30,45,60].reduce(((o,g)=>Math.abs(g-i)<Math.abs(o-i)?g:o)));var i;!Zt(e)||e<=0?this.log.debug("updateCanvasPlayerFPS() ignore decoder: ".concat(e," ")):t!==A.frameRate?(this.log.info("updateCanvasPlayerFPS() decoder: ".concat(e,", closest: ").concat(t,", current: ").concat(A.frameRate)),A.frameRate=t):this.log.debug("updateCanvasPlayerFPS() ignore ClosestFPS ".concat(t," == ").concat(A.frameRate))}get decodeFPS(){var A;let{msg_video_status:e}=((A=this.room.heartbeatReport)==null?void 0:A.msg_down_stream_info.find((o=>o.msg_user_info.str_identifier===this.userId)))||{},t=this.mediaType===2?7:this.isSmall?3:2;if(!e||e.length===0)return 0;let i=e.find((o=>o.uint32_video_stream_type===t));return(i==null?void 0:i.uint32_video_dec_fps)||0}stop(){return this.room.off("heartbeat-report",this.updateCanvasPlayerFPS,this),N.emit("157",{track:this,player:this.player}),this.alphaNode&&this.alphaNode.close(),super.stop()}decodeFrame(A){if(!this.manager)return A;for(let e of this.manager.decodePipeline)if(e&&!(A=e({frame:A,track:this})))return;return A}get isBig(){return this.mediaType===4}get isSmall(){return this.mediaType===8}changeType(A){this.room.changeType(A,this.user)}get isRemotePublished(){return this.user.muteState.videoAvailable}setMirror(A){A==="publish"||A==="both"||super.setMirror(A)}setDraggable(A){this.shouldBeDraggable=A,this.alphaNode&&(this.alphaNode.draggable=A,this.alphaNode.bindDragEvents())}onDecodeDowngradeStateChanged(A){this.emit("decode-downgrade-state-changed",A)}},ex=class extends OG{constructor(A,e){super(A,e,2),l(this,"mediaType",2),l(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}},zy=new Map;function po(A,e){let t=tt(le({},e),{timestamp:ml()});zy.has(A)?zy.get(A).push(t):zy.set(A,[t])}function nq(A,e,t,i){try{if(lo(A))for(let o=0;o<A.length;o++)ST.call(this,{rule:A[o],value:e[o],key:A[o].name,fnName:t,className:i});else ST.call(this,{rule:A,value:e[0],key:A.name,fnName:t,className:i})}catch(o){throw K.error(o),o}}function ST(A){let{rule:e,value:t,key:i,fnName:o,className:g}=A;if(yA(t)){if(e.required)throw new oe({code:OA.INVALID_PARAMETER,message:nt({key:$e.INVALID_PARAMETER_REQUIRED,data:{key:i,rule:e,fnName:o,value:t},link:{className:g,fnName:o}})});if(yA(e.defaultValue))return;t=e.defaultValue}if(Array.isArray(e.type)){let I=!1;for(let C=0;C<e.type.length;C++)e.type[C]===null&&t===null&&(I=!0),Ni(e.type[C])&&t instanceof e.type[C]&&(I=!0),ai(e.type[C])&&ho(t)===e.type[C].toLowerCase()&&(I=!0);if(!I)throw new oe({code:OA.INVALID_PARAMETER,message:nt({key:$e.INVALID_PARAMETER_TYPE,data:{key:i,rule:{type:e.type.map((C=>Wl(C)?Xp(C):ai(C)?C:ho(C)))},fnName:o,value:t},link:{className:g,fnName:o}})})}else if(!yA(e.type)&&ho(t)!==e.type)throw new oe({code:OA.INVALID_PARAMETER,message:nt({key:$e.INVALID_PARAMETER_TYPE,data:{key:i,rule:e,fnName:o,value:t},link:{className:g,fnName:o}})});if(e.allowEmpty===!1){let I=Zt(t)&&(t===0||Number.isNaN(t)),C=ai(t)&&t.trim()==="";if(I||C)throw new oe({code:OA.INVALID_PARAMETER,message:nt({key:$e.INVALID_PARAMETER_EMPTY,data:{key:i,rule:e,fnName:o,value:t},link:{className:g,fnName:o}})})}if(e.notLessThanZero&&Zt(t)&&t<0)throw new oe({code:OA.INVALID_PARAMETER,message:nt({key:$e.CANNOT_LESS_THAN_ZERO,data:{key:i,rule:e,fnName:o,value:t},link:{className:g,fnName:o}})});if(!yA(e.min)&&Zt(t)&&t<e.min)throw new oe({code:OA.INVALID_PARAMETER,message:nt({key:$e.INVALID_PARAMETER_MIN,data:{key:i,rule:e,fnName:o,value:t},link:{className:g,fnName:o}})});if(!yA(e.max)&&Zt(t)&&t>e.max)throw new oe({code:OA.INVALID_PARAMETER,message:nt({key:$e.INVALID_PARAMETER_MAX,data:{key:i,rule:e,fnName:o,value:t},link:{className:g,fnName:o}})});if(ai(e.instanceOf)){if(!t||t._name!==e.instanceOf)throw new oe({code:OA.INVALID_PARAMETER,message:nt({key:$e.INVALID_PARAMETER_INSTANCE,data:{key:i,rule:e,fnName:o,value:t},link:{className:g,fnName:o}})})}else if(Ni(e.instanceOf)&&!(t instanceof e.instanceOf))throw new oe({code:OA.INVALID_PARAMETER,message:nt({key:$e.INVALID_PARAMETER_INSTANCE,data:{key:i,rule:e,fnName:o,value:t},link:{className:g,fnName:o}})});if(e.values&&!e.values.includes(t))throw new oe({code:OA.INVALID_PARAMETER,message:nt({key:$e.INVALID_PARAMETER_RANGE,data:{key:i,rule:e,fnName:o,value:t},link:{className:g,fnName:o}})});let{properties:r}=e;sg(r)&&ka(t)&&Object.keys(r).forEach((I=>{ST.call(this,{rule:r[I],value:t&&t[I],key:"".concat(i,".").concat(I),fnName:o,className:g})}));let{arrayItem:n}=e;sg(n)&&lo(t)&&t.forEach(((I,C)=>{ST.call(this,{rule:n,value:I,key:"".concat(i,"[").concat(C,"]"),fnName:o,className:g})})),Ni(e.validate)&&e.validate.call(this,t,i,o,g,this)}N.on(v.JOIN_SUCCESS,(A=>{let{room:e}=A;po(e.userId,{eventId:32788})})),N.on(v.LEAVE_START,(A=>{let{room:e}=A;po(e.userId,{eventId:32789})})),N.on(v.LOCAL_TRACK_PUBLISHED,(A=>{let{track:e}=A;if(e.room){let t=32769;e.mediaType===4?t=32768:e.mediaType===2&&(t=32805),po(e.room.userId,{eventId:t})}})),N.on(v.LOCAL_TRACK_UNPUBLISHED,(A=>{let{track:e}=A;if(e.room){let t=32771;e.mediaType===4?t=32770:e.mediaType===2&&(t=32806),po(e.room.userId,{eventId:t})}})),N.on(v.TRACK_MUTED,(A=>{let{track:e}=A;e.room&&(e.kind===V.AUDIO?po(e.room.userId,{eventId:e.isRemote?32785:32772,remoteUserId:e.isRemote?e.userId:void 0}):po(e.room.userId,{eventId:e.isRemote?32784:32773,remoteUserId:e.isRemote?e.userId:void 0}))})),N.on(v.TRACK_UNMUTED,(A=>{let{track:e}=A;e.room&&(e.kind===V.AUDIO?po(e.room.userId,{eventId:e.isRemote?32787:32774,remoteUserId:e.isRemote?e.userId:void 0}):po(e.room.userId,{eventId:e.isRemote?32786:32775,remoteUserId:e.isRemote?e.userId:void 0}))})),N.on(v.REMOTE_TRACK_SUBSCRIBED,(A=>{let{track:e}=A;e.room&&(e.mediaType===1&&po(e.room.userId,{eventId:32777,remoteUserId:e.userId}),e.mediaType===4&&po(e.room.userId,{eventId:32776,remoteUserId:e.userId}),e.mediaType===8&&po(e.room.userId,{eventId:32803,remoteUserId:e.userId}))})),N.on(v.REMOTE_TRACK_UNSUBSCRIBED,(A=>{let{track:e}=A;e.room&&(e.mediaType===1&&po(e.room.userId,{eventId:32779,remoteUserId:e.userId}),e.mediaType===4&&po(e.room.userId,{eventId:32778,remoteUserId:e.userId}),e.mediaType===8&&po(e.room.userId,{eventId:32804,remoteUserId:e.userId}))})),N.on(v.SWITCH_DEVICE_SUCCESS,(A=>{let{track:e}=A;e.room&&po(e.room.userId,{eventId:e.kind===V.VIDEO?32780:32781})})),N.on(v.LOCAL_TRACK_REPLACED,(A=>{let{track:e}=A;e.room&&po(e.room.userId,{eventId:e.kind===V.VIDEO?32782:32783})})),N.on(v.SIGNAL_CONNECTION_STATE_CHANGED,(A=>{let e,{room:t,prevState:i,state:o}=A;switch(o){case"CONNECTED":e=i==="RECONNECTING"?32795:32791;break;case"DISCONNECTED":e=i==="RECONNECTING"?32796:32790;break;case"RECONNECTING":e=32794}e&&po(t.userId,{eventId:e})})),N.on(v.PEER_CONNECTION_STATE_CHANGED,(A=>{let e,{room:t,prevState:i,state:o,remoteUserId:g}=A,r=!!g;switch(o){case"CONNECTED":e=i==="RECONNECTING"?r?32801:32798:r?32793:32792;break;case"DISCONNECTED":i==="RECONNECTING"&&(e=r?32802:32799);break;case"RECONNECTING":e=r?32800:32797}e&&po(t.userId,{eventId:e,remoteUserId:g})})),N.on(v.VIDEO_CODEC_IMPLEMENTATION_CHANGED,(A=>{let{implementation:e,userId:t,remoteUserId:i,codec:o,isHWCodec:g,prevImplementation:r,streamType:n}=A,I=g?1:0;r||(I=g?3:2);let C={H264:0,H265:1,VP8:2}[o.toUpperCase()],u={eventId:4004,param1:I,param2:C,streamType:n||2};i&&(u.remoteUserId=i,u.eventId=4005),po(t,u),ee.addEnum({key:i?514701:513701,value:I}),ee.addEnum({key:i?514700:513700,value:C})})),N.on(v.LOCAL_TRACK_RECAPTURE,(A=>{let{track:e,error:t}=A;if(e.userId){let i={eventId:2003,param1:0};e.kind===V.AUDIO?(i.streamType=1,t&&(i.param1=2)):(i.streamType=e.streamType==="auxiliary"?7:2,t&&(i.param1=8)),po(e.userId,i)}}));var sq=Mo(Ng(),1),Eq=class extends sq.EventEmitter{constructor(A,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"userId";super(),this.mySelfId=A,this._log=e,this.key=t,l(this,"userMap",new Map),l(this,"remotePublishedUserMap",new Map)}get hasRobotUser(){return!![...this.remotePublishedUserMap.values()].find((A=>A.isRobot))}getPublishedUser(A){return this.remotePublishedUserMap.get(A)}addUser(A){let e=A[this.key],{userId:t,tinyId:i,role:o}=A;if(this.userMap.has(e))return;let g={userId:t,tinyId:i,role:o===20?"anchor":"audience"};this.userMap.set(e,g),this.emit("1",g)}deleteUser(A,e){let t=this.userMap.get(A);if(!t)return;let i="peer leave [".concat(A,"]");yA(e)||(i+=":".concat(mS[e])),this._log.info(i);let o=this.remotePublishedUserMap.get(A);if(o){let g=o.muteState;o.flag=0,this.emit("5",o.userId),this.deleteRemotePublishedUser(A),this.emit("6",{prevMuteState:g,muteState:o.muteState,flag:0})}this.userMap.delete(A),this.emit("2",t.userId)}setUserList(A){this.userMap.forEach((e=>{A.findIndex((t=>t[this.key]===e[this.key]))<0&&this.deleteUser(e[this.key],0)})),A.forEach((e=>{!this.userMap.has(e[this.key])&&e[this.key]!==this.mySelfId&&this.addUser(e)}))}addRemotePublishedUser(A){this.remotePublishedUserMap.has(A[this.key])||this.remotePublishedUserMap.set(A[this.key],A)}deleteRemotePublishedUser(A){this.remotePublishedUserMap.has(A)&&this.remotePublishedUserMap.delete(A)}setRemotePublishedUserList(A){this.remotePublishedUserMap.forEach((e=>{let t=e[this.key];if(A.findIndex((i=>i[this.key]===e[this.key]))<0){this._log.info("remote [".concat(t,"] unpublish"));let i=e.muteState;e.flag=0,this.emit("5",e.userId),this.deleteRemotePublishedUser(t),this.emit("6",{prevMuteState:i,muteState:e.muteState,flag:0})}})),A.forEach((e=>{var t;let i=e[this.key];if(i===this.mySelfId)return void this.emit("7",e);let{flag:o,userId:g,tinyId:r}=e,n=dB(o,g),I=(t=this.remotePublishedUserMap.get(i))==null?void 0:t.muteState;if(I){let C=this.remotePublishedUserMap.get(i);C&&C.flag!==o&&(C.flag=o,this._log.info("remote publish updated: ".concat(JSON.stringify(C.muteState))),this.emit("6",{prevMuteState:I,muteState:n,flag:o}))}else this._log.info("remote publish. state: ".concat(JSON.stringify(n))),this.addUser({userId:g,tinyId:r,role:20}),this.emit("3",e),this.emit("6",{prevMuteState:dB(0,g),muteState:n,flag:o})}))}clear(){this.userMap.clear(),this.remotePublishedUserMap.clear()}};function tx(A){let{timesInSecond:e,maxSizeInSecond:t,getSize:i}=A;return Gi(((o,g)=>{let r=new WeakMap;return N.on(v.ROOM_DESTROY,(n=>{let{room:I}=n;return r.delete(I)})),function(){let n=r.get(this);for(var I=arguments.length,C=new Array(I),u=0;u<I;u++)C[u]=arguments[u];if(n||(n={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},r.set(this,n)),n.timestamp===0?n.timestamp=Date.now():Date.now()-n.timestamp>1e3&&(n.timestamp=Date.now(),n.callCountInSecond=0,n.totalSizeInSecond=0),i&&(n.totalSizeInSecond+=i(...C)),n.timestamp!==0&&Date.now()-n.timestamp<1e3&&(n.callCountInSecond>=e||n.totalSizeInSecond>t))throw new oe({code:OA.INVALID_OPERATION,message:nt({key:$e.CALL_FREQUENCY_LIMIT,data:{isTimes:n.callCountInSecond>=e,isSize:n.totalSizeInSecond>t,name:g,timesInSecond:e,maxSizeInSecond:t}})});n.callCountInSecond++,o.call(this,...C)}}))}var qA,ix=!0,qG={SCENE_LIVE:"live",SCENE_RTC:"rtc",ROLE_ANCHOR:"anchor",ROLE_AUDIENCE:"audience",STREAM_TYPE_MAIN:"main",STREAM_TYPE_SUB:"sub",AUDIO_PROFILE_STANDARD:"standard",AUDIO_PROFILE_STANDARD_STEREO:"standard-stereo",AUDIO_PROFILE_HIGH:"high",AUDIO_PROFILE_HIGH_STEREO:"high-stereo",QOS_PREFERENCE_SMOOTH:"smooth",QOS_PREFERENCE_CLEAR:"clear",SPEAKER:"Speakerphone",HEADSET:"Headset earpiece"},He={INVALID_PARAMETER:5e3,INVALID_OPERATION:5100,ENV_NOT_SUPPORTED:5200,DEVICE_ERROR:5300,SERVER_ERROR:5400,OPERATION_FAILED:5500,OPERATION_ABORT:5998,UNKNOWN_ERROR:5999},GT=((qA=GT||{})[qA.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",qA[qA.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",qA[qA.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",qA[qA.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",qA[qA.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",qA[qA.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",qA[qA.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",qA[qA.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",qA[qA.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",qA[qA.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",qA[qA.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",qA[qA.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",qA[qA.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",qA[qA.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",qA[qA.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",qA[qA.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",qA[qA.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",qA[qA.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",qA[qA.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",qA[qA.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",qA[qA.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",qA[qA.INVALID_OPERATION=5100]="INVALID_OPERATION",qA[qA.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",qA[qA.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",qA[qA.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",qA[qA.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",qA[qA.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",qA[qA.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",qA[qA.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",qA[qA.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",qA[qA.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",qA[qA.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",qA[qA.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",qA[qA.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",qA[qA.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",qA[qA.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",qA[qA.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",qA[qA.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",qA[qA.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",qA[qA.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",qA[qA.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",qA[qA.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",qA[qA.DEVICE_ERROR=5300]="DEVICE_ERROR",qA[qA.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",qA[qA.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",qA[qA.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",qA[qA.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",qA[qA.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",qA[qA.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",qA[qA.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",qA[qA.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",qA[qA.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",qA[qA.NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX=5310]="NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX",qA[qA.SERVER_ERROR=5400]="SERVER_ERROR",qA[qA.NEED_TO_BUY=5401]="NEED_TO_BUY",qA[qA.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",qA[qA.OPERATION_FAILED=5500]="OPERATION_FAILED",qA[qA.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",qA[qA.REJOIN_FAILED=5502]="REJOIN_FAILED",qA[qA.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",qA[qA.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",qA[qA.VIDEO_ENCODE_FAILED=5505]="VIDEO_ENCODE_FAILED",qA[qA.AUDIO_ENCODE_FAILED=5506]="AUDIO_ENCODE_FAILED",qA[qA.VIDEO_DECODE_FAILED=5507]="VIDEO_DECODE_FAILED",qA[qA.AUDIO_DECODE_FAILED=5508]="AUDIO_DECODE_FAILED",qA[qA.OPERATION_ABORT=5998]="OPERATION_ABORT",qA[qA.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",qA),ox=tt(le({},kr),{INVALID_PARAMETER(A){let{fnName:e}=A;return"the parameters of the '".concat(e,"' you called does not meet the requirements, please check the API documentation.")},INVALID_PARAMETER_REQUIRED(A){let{key:e,rule:t,fnName:i,value:o}=A;return"'".concat(e||t.name,"' is a required param when calling ").concat(i,"(), received: ").concat(o,".")},INVALID_PARAMETER_TYPE(A){let{key:e,rule:t,fnName:i,value:o}=A,g="".concat(e||t.name),r="";return r=Array.isArray(t.type)?t.type.join("|"):t.type,"'".concat(g,"' must be type of ").concat(r," when calling ").concat(i,"(), received type: ").concat(ho(o),".")},INVALID_PARAMETER_EMPTY(A){let{key:e,rule:t,fnName:i,value:o}=A;return"'".concat(e||t.name,"' cannot be '").concat(o,"' when calling ").concat(i,"().")},INVALID_PARAMETER_INSTANCE(A){let{key:e,rule:t,fnName:i,value:o}=A,g="".concat(e||t.name),r="".concat(t.instanceOf.name||t.instanceOf);return"'".concat(g,"' must be instanceof ").concat(r," when calling ").concat(i,"(), received type: ").concat(ho(o),".")},INVALID_PARAMETER_RANGE(A){let{key:e,rule:t,fnName:i,value:o}=A;return"'".concat(e||t.name,"' must be one of ").concat(t.values.join("|")," when calling ").concat(i,"(), received: ").concat(o,".")},INVALID_PARAMETER_LESS_THAN_ZERO(A){let{key:e,rule:t,fnName:i}=A;return"'".concat(e||t.name,"' cannot be less than 0 when calling ").concat(i,"().")},INVALID_PARAMETER_MIN(A){let{key:e,rule:t,value:i}=A;return"the min value of ".concat(e||t.name," is ").concat(t.min,", received: ").concat(i,".")},INVALID_PARAMETER_MAX(A){let{key:e,rule:t,value:i}=A;return"the max value of ".concat(e||t.name," is ").concat(t.max,", received: ").concat(i,".")},INVALID_ELEMENT_ID(A){let{key:e,fnName:t}=A;return"'".concat(e,"' is not found in the document object when calling ").concat(t,"().")},INVALID_ELEMENT_ID_TYPE(A){let{key:e,fnName:t,type:i}=A;return"the element corresponding to '".concat(e,"' must be instanceof HTMLElement when calling ").concat(t,"(), received: ").concat(i,".")},INVALID_STREAM_ID(A){let{key:e}=A;return"'".concat(e,"' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.")},INVALID_ROOM_ID_STRING(A){let{key:e}=A;return"'".concat(e,"' must be a valid string.")},INVALID_ROOM_ID_INTEGER(A){let{key:e}=A;return"'".concat(e,"' must be an integer between [1, 4294967294].")},INVALID_ROOM_ID_INTEGER_STRING(A){let{key:e}=A;return"'".concat(e,"' must be an integer but go a string, use 'parseInt' to convert it or use 'strRoomId' instead.")},INVALID_ROOM_ID_REQUIRED:()=>"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required.",INVALID_ROOM_ID_TYPE_MISMATCH(A){let{key:e}=A;return"The type of target roomId must match the current roomId. Current room is using '".concat(e,"', but received '").concat(e==="strRoomId"?"roomId":"strRoomId","'.")},INVALID_ROOM_ID_DUPLICATE(A){let{key:e}=A;return"the target '".concat(e,"' must not be the same as the current '").concat(e,"'.")},INVALID_STREAM_TYPE:A=>{let{fnName:e}=A;return"'streamType' is required when 'userId' is not '*', calling ".concat(e,"()")},INVALID_IMAGE_URL:"The 'src' param must be filled in when the background type is image.",INVALID_OPERATION(A){let{fnName:e}=A;return"the API '".concat(e,"' you called does not meet the requirements, please check the API documentation.")},INVALID_OPERATION_NOT_JOINED(A){let{fnName:e}=A;return"cannot ".concat(e," because you are not enter room yet.")},INVALID_OPERATION_REMOTE_USER_NOT_EXIST(A){let{fnName:e,value:t}=A;return"cannot ".concat(e," because remote user(userId: ").concat(t.userId,") does not publishing stream.")},INVALID_OPERATION_STREAM_TYPE_NOT_EXIST(A){let{fnName:e,value:t}=A;return"cannot ".concat(e," because remote user(userId: ").concat(t.userId,") does not publishing ").concat(t.streamType," video.")},INVALID_OPERATION_REPEAT_CALL(A){let{fnName:e}=A;return"you are already ".concat(e,"(), cannot repeated call '").concat(e,"'.")},INVALID_OPERATION_NEED_VIDEO(A){let{fnName:e}=A;return"cannot call '".concat(e,"' because the camera is not turned on.")},INVALID_OPERATION_NEED_AUDIO(A){let{fnName:e}=A;return"cannot call '".concat(e,"' because the microphone or screen share is not turned on.")},INVALID_BUFFER_EMPTY:A=>{let{key:e}=A;return"the buffer size of paramerter '".concat(e,"' cannot be empty")},INVALID_BUFFER_OVERSIZE:()=>"buffer size is over 1000 Bytes",INVALID_ROLE_AUDIENCE:()=>"role: 'audience' cannot call this api.",INVALID_NOT_ENABLE_SEI:()=>"you need to enable SEI in TRTC.create({ enableSEI: true })",INVALID_NEED_CALL_PUBLISHED:A=>{let{fnName:e}=A;return"you need to call ".concat(e,"() after publish stream.")},ENV_NOT_SUPPORTED(A){let{fnName:e}=A;return"the current browser does not support the capability of the function '".concat(e,"' you are calling, please check the API documentation.")},NOT_SUPPORTED_WEBRTC:"the current browser does not support WebRTC capability, please check the SDK documentation.",NOT_SUPPORTED_H264_ENCODE:"this browser does not support H264 encode.",NOT_SUPPORTED_H264_DECODE:"this browser does not support H264 decode.",NOT_SUPPORTED_SCREEN_SHARE:"this browser does not support screen share, please check the browser version.",NOT_SUPPORTED_SMALL_VIDEO:"this browser does not support small video, please check the browser version.",NOT_SUPPORTED_SEI:"this browser does not support SEI, please check the browser version.",NOT_SUPPORTED_WEBGL:"this browser does not support WebGL, please check the browser version.",NOT_SUPPORTED_CHROME_VERSION(A){let{fnName:e}=A;return"cannot call ".concat(e," because the browser version is too low, please upgrade to the latest version")},DEVICE_ERROR(A){let{fnName:e,error:t}=A;return"'".concat(e,"' got device exception").concat(t?", error: ".concat(t.toString(),"."):".")},DEVICE_NOT_FOUND_ERROR(A){let{fnName:e,deviceType:t=Tu(e),error:i}=A;return"NotFoundError, no ".concat(t," detected, please check your device and the configuration on '").concat(e,"'").concat(i?", error: ".concat(i.toString(),"."):".")},DEVICE_NOT_ALLOWED_ERROR(A){let{fnName:e,deviceType:t=Tu(e),error:i}=A;return"NotAllowedError, you have disabled ".concat(t," access, please allow the current application to use the ").concat(t).concat(i?", error: ".concat(i.toString(),"."):".")},DEVICE_NOT_READABLE_ERROR(A){let{fnName:e,deviceType:t=Tu(e),error:i}=A;return"NotReadableError, the ".concat(t," maybe in use by another APP, please check if the device is pre-occupied by another APP.")},DEVICE_OVERCONSTRAINED_ERROR(A){let{fnName:e,deviceType:t=Tu(e),error:i}=A;return"OverconstrainedError, the device ID is incorrect, please check whether the device ID passed in is correct".concat(i?", error: ".concat(i.toString(),"."):".")},DEVICE_INVALID_STATE_ERROR(A){let{fnName:e,deviceType:t=Tu(e),error:i}=A;return"InvalidStateError, after the user clicks and interacts with the page, turn on the ".concat(t).concat(i?", error: ".concat(i.toString(),"."):".")},DEVICE_SECURITY_ERROR(A){let{fnName:e,deviceType:t=Tu(e),error:i}=A;return"SecurityError, check whether the system security policy restricts the use of the ".concat(t,", and it is recommended to turn on the ").concat(t," after the user interacts with the page").concat(i?", error: ".concat(i.toString(),"."):".")},DEVICE_ABORT_ERROR(A){let{fnName:e,deviceType:t=Tu(e),error:i}=A;return"AbortError, an unknown exception in the system makes the device unusable, recommended to change the device or browser and re-check whether the device is normal".concat(i?" error: ".concat(i.toString(),"."):".")},CAMERA_RECOVER_FAILED(A){let{error:e}=A;return"camera recover capture failed ".concat((e==null?void 0:e.name)||"",": ").concat((e==null?void 0:e.originMessage)||(e==null?void 0:e.message))},MICROPHONE_RECOVER_FAILED(A){let{error:e}=A;return"microphone recover capture failed ".concat((e==null?void 0:e.name)||"",": ").concat((e==null?void 0:e.originMessage)||(e==null?void 0:e.message))},OPERATION_FAILED(A){let{fnName:e,error:t}=A;return"'".concat(e,"' failed, reason: ").concat(t==null?void 0:t.toString())},FIREWALL_RESTRICTION:()=>"media connection failure due to firewall restrictions, please try to change your network.",EVENT_HANDLER_ERROR(A){let{eventName:e}=A;return"an error was caught on trtc.on('".concat(e,"', handler), please check your code on 'handler'.")},VIDEO_CONTEXT_ERROR(A){let{reason:e,error:t}=A;return"video context error ".concat(e," ").concat((t==null?void 0:t.name)||""," ").concat((t==null?void 0:t.message)||"")},SERVER_ERROR(A){let{fnName:e,error:t}=A;return"'".concat(e,"' got server error: ").concat(t==null?void 0:t.toString(),", please check the SDK documentation.")},NEED_TO_BUY(A){let{value:e,url:t}=A;return"You need to buy packages for ".concat(e,". Refer to: ").concat(t)},ACCOUNT_NO_MONEY:A=>{let{fnParams:e}=A;return"your TRTC account run out of credit, please recharge.".concat(e.sdkAppId?" SDKAppId: ".concat(e.sdkAppId):"")},OPERATION_ABORT(A){let{fnName:e}=A;return"'".concat(e,"' abort")},UNKNOWN_ERROR(A){let{fnName:e,error:t}=A;return"'".concat(e,"' throw unknown exception").concat(t?", error: ".concat(t.toString(),"."):".")}});function Tu(A){if(!A)return"camera";let e=A.toLowerCase();return e.includes("screen")?"screen share":e.includes("audio")?"microphone":"camera"}var Bq=class ZT extends Error{constructor(e){let{code:t,extraCode:i,message:o="",messageParams:g,fnName:r="",originError:n,data:I}=e;var C;let u;u=o||(function(R){let M,{code:L,params:H,enableDocLink:gA=!1}=R,EA="",TA=GT[L];try{M=ox[TA]}catch{M=ox.UNKNOWN_ERROR}return Ni(M)?EA=M(H):ai(M)&&(EA=M),H.fnName&&!EA.includes(H.fnName)&&(EA[EA.length-1]!=="."&&(EA+="."),EA+=" thrown from ".concat(H.fnName,"()")),gA&&(EA+=" doc:"),EA})({code:t===He.SERVER_ERROR?t:i||t,params:le({fnName:r,error:n},g)}),super(u),l(this,"name","RtcError"),l(this,"code"),l(this,"extraCode"),l(this,"functionName"),l(this,"message"),l(this,"data"),l(this,"handler"),l(this,"originError"),this.name=GT[t],this.code=t,this.extraCode=i,this.functionName=r,this.originError=n,this.message=u,this.data=I,this.extraCode===5302&&(C=this.originError)!=null&&C.message.includes("system")&&(this.handler=()=>{let R=document.createElement("a");RB?R.href="ms-settings:privacy-".concat({startLocalVideo:"webcam",startLocalAudio:"microphone"}[this.functionName]):Ts&&(R.href="x-apple.systempreferences:com.apple.preference.security?Privacy_".concat({startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"}[this.functionName])),R.href.length>0&&R.click()})}static convertFrom(e,t,i){let o=e;if(e instanceof oe){let{stack:g}=e,r={code:He.UNKNOWN_ERROR,fnName:t,originError:e};switch(e.getCode()){case OA.INVALID_PARAMETER:r.code=He.INVALID_PARAMETER,r.message=e.message;break;case OA.INVALID_OPERATION:r.code=He.INVALID_OPERATION;break;case OA.NOT_SUPPORTED:case OA.NOT_SUPPORTED_H264:r.code=He.ENV_NOT_SUPPORTED,e.getCode()===OA.NOT_SUPPORTED_H264&&(r.extraCode=e.message.includes(kr.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case OA.JOIN_ROOM_FAILED:r.messageParams={fnParams:i};case OA.SERVER_TIMEOUT:case OA.SWITCH_ROLE_FAILED:case OA.SWITCH_ROOM_FAILED:r.code=He.SERVER_ERROR,r.extraCode=e.getExtraCode();break;case OA.API_CALL_ABORTED:r.code=He.OPERATION_ABORT;break;case OA.DEVICE_NOT_FOUND:case OA.DEVICE_AUTO_RECOVER_FAILED:case OA.INITIALIZE_FAILED:r.code=5300,e.name&&(r.extraCode=(function(n){let I;switch(n){case"NotFoundError":I=5301;break;case"NotAllowedError":I=5302;break;case"NotReadableError":I=5303;break;case"OverconstrainedError":I=5304;break;case"InvalidStateError":I=5305;break;case"SecurityError":I=5306;break;case"AbortError":I=5307;break;default:I=5300}return I})(e.name));break;case OA.VIDEO_ENCODE_FAILED:r.extraCode=5505;case OA.AUDIO_ENCODE_FAILED:r.extraCode=5506,r.code=He.OPERATION_FAILED;break;case OA.UNKNOWN:break;default:r.code=He.OPERATION_FAILED}o=new ZT(r),g&&(o.stack+=g.substr(g.indexOf(`
|
||
`)))}else{if(e instanceof ZT)return e;o=new ZT({code:He.UNKNOWN_ERROR,fnName:t,originError:e})}return o}},Oe=Bq;function JB(A){return A==="sub"?"auxiliary":A==="auxiliary"?"sub":"main"}function MT(A){return A===qG.QOS_PREFERENCE_CLEAR?"detail":A===qG.QOS_PREFERENCE_SMOOTH?"motion":""}function kT(A,e){let t=e?kl:Ml;return Yv(A)?le(le({},t),A):rI[A]?rI[A]:t}var gx={type:"object",properties:{cameraId:{type:"string"},useFrontCamera:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:["string","boolean"],values:[!0,!1,"view","publish","both"]},small:{type:["string","object","boolean"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},rx={type:"object",properties:{systemAudio:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},profile:{type:["string","object"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack},audioTrack:{instanceOf:MediaStreamTrack}}},$y={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(A,e,t){if(ai(A)&&!document.getElementById(A))throw new Oe({code:He.INVALID_PARAMETER,extraCode:5009,fnName:t,messageParams:{key:e}})}},ax={name:"userId",required:!0,type:"string"},Ix={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{type:["string","object"],properties:{bitrate:{type:"number"},channelCount:{type:"number"}}},echoCancellation:{values:[!0,!1,"remote-only","all"]},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function AR(A,e){if(!A)throw new Oe({code:He.INVALID_OPERATION,extraCode:5101,fnName:e})}function nx(A,e,t){if(!A)throw new Oe({code:He.INVALID_OPERATION,extraCode:5102,fnName:e,messageParams:{value:t}})}function sx(A,e,t){if(!(/^[1-9]\d*$/.test(String(A))&&A<4294967295))throw new Oe({code:He.INVALID_PARAMETER,extraCode:5013,fnName:e,messageParams:{key:t}})}function Ex(A,e,t){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(A))throw new Oe({code:He.INVALID_PARAMETER,extraCode:5012,fnName:e,messageParams:{key:t}})}function Bx(A){var e;if((e=A==null?void 0:A.option)==null||!e.small)return;if(!Du())return K.warn("small stream is not supported"),void delete A.option.small;let t=kT(A.option.profile),i=kT(A.option.small,!0);return((o,g)=>o.width*o.height>=g.width*g.height&&o.frameRate>=g.frameRate&&o.bitrate>=g.bitrate)(t,i)?void 0:(K.warn("small stream profile must be less than big stream profile. Big: ".concat(JSON.stringify(t),", Small: ").concat(JSON.stringify(i))),void delete A.option.small)}var Cq={create:[{name:"RoomConfig",instanceOf:Function},{name:"CreateConfig",type:"object",properties:{plugins:{type:"array",arrayItem:{instanceOf:Function}}}}],enterRoom:{name:"EnterRoomConfig",type:"object",required:!0,validate(A,e,t){if(this._room.isJoined)throw new Oe({code:He.INVALID_OPERATION,extraCode:5104,fnName:t});if(A.roomId){if(ai(A.roomId))throw new Oe({code:He.INVALID_PARAMETER,extraCode:5016,fnName:t,messageParams:{key:e}});sx(A.roomId,t,e)}else{if(!A.strRoomId)throw new Oe({code:He.INVALID_PARAMETER,extraCode:5015,fnName:t});Ex(A.strRoomId,t,e)}},properties:{sdkAppId:{required:!0,type:"number",allowEmpty:!1},userId:{required:!0,type:"string",allowEmpty:!1},userSig:{required:!0,type:"string",allowEmpty:!1},scene:{type:"string",values:["live","rtc"]},role:{type:"string",values:["audience","anchor"]},roomId:{type:["string","number"]},strRoomId:{type:"string"},proxy:{type:["object","string"],properties:{websocketProxy:{type:"string"},turnServer:{type:["object","array"],properties:{url:{required:!0,type:"string"},username:{type:"string"},credential:{type:"string"},credentialType:{type:"string",values:["password"]}}},loggerProxy:{type:"string"},webtransportProxy:{type:"string"}}},enableAutoPlayDialog:{type:"boolean"},userDefineRecordId:{type:"string"},latencyLevel:{type:"number"},playoutDelay:{type:"object",properties:{min:{type:"number",min:0,max:1e3},max:{type:"number",min:0,max:1e4}}}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:$y,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:gx},validate(A){var e,t;if(((e=A==null?void 0:A.option)==null||!e.videoTrack)&&NB())throw new Oe({code:He.ENV_NOT_SUPPORTED,extraCode:5201});(t=A==null?void 0:A.option)!=null&&t.small&&Bx(A)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:tt(le({},$y),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:gx},validate(A){var e;(e=A==null?void 0:A.option)!=null&&e.small&&Bx(A)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:Ix},validate(A){var e;if(((e=A==null?void 0:A.option)==null||!e.audioTrack)&&NB())throw new Oe({code:He.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:Ix}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:$y,publish:{type:"boolean"},option:rx},validate(A,e,t,i,o){var g;if((g=A==null?void 0:A.option)==null||!g.videoTrack){if(NB())throw new Oe({code:He.ENV_NOT_SUPPORTED,extraCode:5201});if(!_y())throw new Oe({code:He.ENV_NOT_SUPPORTED,fnName:t,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:$y,publish:{type:"boolean"},option:rx}},muteRemoteAudio:[ax,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[ax,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:$y,userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(A,e,t){AR(this._room.isJoined,t);let i=this._room.remotePublishedUserMap.get(A.userId);if(nx(!!i,t,A),i&&(A.streamType==="main"&&!i.muteState.videoAvailable||A.streamType==="sub"&&!i.muteState.hasAuxiliary))throw new Oe({code:He.INVALID_OPERATION,extraCode:5103,fnName:t,messageParams:{value:A}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:tt(le({},$y),{required:!1}),userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(A,e,t){AR(this._room.isJoined,t);let i=this._room.remotePublishedUserMap.get(A.userId);if(nx(!!i,t,A),i&&(A.streamType==="main"&&!i.muteState.videoAvailable||A.streamType==="sub"&&!i.muteState.hasAuxiliary))throw new Oe({code:He.INVALID_OPERATION,extraCode:5103,fnName:t,messageParams:{value:A}})}},stopRemoteVideo:{name:"stopRemoteVideoConfig",type:"object",required:!0,properties:{userId:{type:"string",required:!0},streamType:{values:["main","sub"]}},validate(A,e,t){if(A.userId!=="*"&&yA(A.streamType))throw new Oe({code:He.INVALID_PARAMETER,extraCode:5014,fnName:t})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(A,e,t){AR(this._room.isJoining||this._room.isJoined,t)}},enableAudioVolumeEvaluation:[{name:"interval",type:"number"},{name:"enableInBackground",type:"boolean"}],sendSEIMessage:[{name:"buffer",required:!0,instanceOf:ArrayBuffer,validate(A,e,t,i){if(!hc)throw new Oe({code:He.ENV_NOT_SUPPORTED,fnName:t,extraCode:5207});if(!this._room.enableSEI)throw new Oe({code:He.INVALID_OPERATION,fnName:t,extraCode:5108});if(A.byteLength>1e3)throw new Oe({code:He.INVALID_PARAMETER,extraCode:5018,fnName:t});if(A.byteLength===0)throw new Oe({code:He.INVALID_PARAMETER,extraCode:5017,messageParams:{key:e},fnName:t});AR(this._room.isJoined,t)}},{name:"options",type:"object",properties:{seiPayloadType:{type:"number",values:[5,243]},toSubStream:{type:"boolean",validate(A,e,t){if(!A&&!this._room.isMainStreamPublished||A&&!this._room.isAuxStreamPublished)throw new Oe({code:He.INVALID_OPERATION,extraCode:5109,messageParams:{key:e},fnName:t})}}}}],sendCustomMessage:{name:"message",required:!0,type:"object",properties:{cmdId:{type:"number",required:!0,min:1,max:10},data:{instanceOf:ArrayBuffer,required:!0,validate(A,e,t,i){if(A.byteLength>1e3)throw new Oe({code:He.INVALID_PARAMETER,extraCode:5018,fnName:t});if(A.byteLength===0)throw new Oe({code:He.INVALID_PARAMETER,extraCode:5017,fnName:t,messageParams:{key:e}})}}},validate(A,e,t){if(AR(this._room.isJoined,t),this._room.scene==="live"&&this._room.role==="audience")throw new Oe({code:He.INVALID_OPERATION,extraCode:5107,fnName:t,messageParams:{key:e}})}},switchRoom:{name:"switchRoomConfig",type:"object",required:!0,validate(A,e,t){if(AR(this._room.isJoined,t),this._room.useStringRoomId&&A.strRoomId===this._room.roomId||!this._room.useStringRoomId&&A.roomId===Number(this._room.roomId))throw new Oe({code:He.INVALID_PARAMETER,extraCode:5020,fnName:t,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(A.roomId&&this._room.useStringRoomId||!A.roomId&&A.strRoomId&&!this._room.useStringRoomId)throw new Oe({code:He.INVALID_PARAMETER,extraCode:5019,fnName:t,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(A.roomId)sx(A.roomId,t,e);else{if(!A.strRoomId)throw new Oe({code:He.INVALID_PARAMETER,extraCode:5015,fnName:t});Ex(A.strRoomId,t,e)}},properties:{roomId:{type:"number"},strRoomId:{type:"string"},privateMapKey:{type:"string"},userSig:{type:"string",required:!0},autoSubscribeCount:{type:"number",min:0,max:50}}}},cg={TRTC:Cq},Ya=class extends Error{};function Qq(A,e){let t=PQ(A);for(let i=0;i<e.length;i++)mn(t[i],e[i]);return t}function cq(A){this._resolve=Promise.resolve(A)}function hq(A){this._reject=Promise.reject(A)}var Cx=class aR{constructor(e,t){this.instance=e,this.group=t,l(this,"started",!1),l(this,"ops",[]),l(this,"startSame",(()=>!0)),l(this,"mergeUpdate",Qq);let i=aR.instances.get(e);i?i.set(t,this):aR.instances.set(e,new Map([[t,this]]))}static get(e,t){if(!t)return;let i=aR.instances.get(e);return i&&i.get(t)||new aR(e,t)}static gets(e,t){let i=aR.instances.get(e),o=[];return i&&i.forEach(((g,r)=>{t.test(r)&&o.push(g)})),o}action(e,t,i){let o=n=>{var I;return e===0?this.started=!0:e===3&&(this.started=!1),this.ops.shift(),(I=this.currentOp)==null||I.action(),n},g=n=>{var I,C;throw this.ops.shift(),e===0&&((I=this.currentOp)==null?void 0:I.type)===2&&this.ops.shift().reject(new Ya("start failed")),(C=this.currentOp)==null||C.action(),n},r={type:e,action:()=>t(...r.args).then(o,g),args:i,resolve:cq,reject:hq};try{switch(this.state){case 1:if(e===0)throw new Ya("already started");break;case 4:if(e===2)throw new Ya("not started");break;default:return this.cacheOp(r)}}catch(n){return Promise.reject(n)}return this.ops.push(r),r.promise=t(...r.args).then(o,g)}cacheOp(e){if(this.ops.length===1)switch(this.state){case 0:case 2:if(e.type===0)throw new Ya("already start");break;case 3:switch(e.type){case 2:throw new Ya("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new Ya("unknown state")}else switch(e.type){case 3:if(this.lastOpType===3)return this.lastOp.promise;{let i=new Ya("keep stop");if(this.ops.slice(1).forEach((o=>o.reject(i))),this.ops=this.ops.slice(0,1),this.state===3)return this.currentOp.promise}break;case 2:switch(this.lastOpType){case 2:return this.lastOp.args=this.mergeUpdate(this.lastOp.args,e.args),this.lastOp.promise;case 3:throw new Ya("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new Ya("start not allowed after update");case 0:throw new Ya("duplicate start");case 3:if(this.startSame(this.currentOp.args,e.args))throw this.ops.pop().reject(new Ya("keep start")),new Ya("already start")}}e.promise=new Promise(((i,o)=>{e._resolve?e._resolve.then(i):e.resolve=i,e._reject?e._reject.catch(o):e.reject=o}));let{action:t}=e;return e.action=()=>t().then(e.resolve,e.reject),this.ops.push(e),e.promise}get lastOp(){return this.ops[this.ops.length-1]}get lastOpType(){return this.lastOp.type}get currentOp(){return this.ops[0]}get state(){return this.currentOp?this.currentOp.type:this.started?1:4}};l(Cx,"instances",new WeakMap);var PG=Cx,NT=new WeakMap,FT=(A,e)=>{if(e instanceof Ya){let{stack:t}=e;e=new Oe({code:He.OPERATION_ABORT,message:"".concat(A," abort: ").concat(e.message),fnName:A}),t&&(e.stack+=t.substr(t.indexOf(`
|
||
`)))}throw e};function Uu(A,e){return Gi(((t,i)=>function(){for(var o=arguments.length,g=new Array(o),r=0;r<o;r++)g[r]=arguments[r];let n=PG.get(this,typeof A=="string"?A:A.call(this,...g));return n?(e&&(n.startSame=e.bind(this)),n.action(0,t.bind(this),g).catch(FT.bind(null,i))):t.apply(this,g)}))}function eR(A,e){let{merge:t,debounce:i}=e||{};return Gi(((o,g)=>function(){for(var r=arguments.length,n=new Array(r),I=0;I<r;I++)n[I]=arguments[I];let C=PG.get(this,typeof A=="string"?A:A.call(this,...n));if(!C)return o.apply(this,n);if(t&&(C.mergeUpdate=t.bind(this)),i&&i.isNeedToDebounce.apply(this,n)){let{delay:u,getKey:R}=i;return new Promise(((M,L)=>{var H,gA;let EA=(H=NT.get(this))==null?void 0:H.get(R(...n));if(EA){let{timeoutId:hA,resolve:ZA}=EA;clearTimeout(hA),ZA()}let TA=setTimeout((()=>{if(C.state===3||C.state===4)return M();C.action(2,o.bind(this),n).catch(FT.bind(null,g)).then(M,L)}),u);NT.has(this)?(gA=NT.get(this))==null||gA.set(R(...n),{timeoutId:TA,resolve:M}):NT.set(this,new Map([[R(...n),{timeoutId:TA,resolve:M}]]))}))}return C.action(2,o.bind(this),n).catch(FT.bind(null,g))}))}function _u(A){return Gi(((e,t)=>function(){for(var i=arguments.length,o=new Array(i),g=0;g<i;g++)o[g]=arguments[g];let r=typeof A=="function"?A.call(this,...o):A;if(r instanceof RegExp)return Promise.all(PG.gets(this,r).map((I=>I.action(3,(()=>Promise.resolve()),o)))).then((()=>e.call(this,...o)));let n=PG.get(this,r);return n?n.action(3,e.bind(this),o).catch(FT.bind(null,t)):e.apply(this,o)}))}function Lu(){return function(A,e,t){return A.prototype[e]=function(){let i=this._log||console,o='"'.concat(e,'" is a static method. Use TRTC.').concat(e,"() instead. See: ").concat(gI,"/en/TRTC.html#.").concat(e);i.warn(o)},t}}var Te={ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",KICKED_OUT:"kicked-out",REMOTE_USER_ENTER:"remote-user-enter",REMOTE_USER_EXIT:"remote-user-exit",REMOTE_AUDIO_AVAILABLE:"remote-audio-available",REMOTE_AUDIO_UNAVAILABLE:"remote-audio-unavailable",REMOTE_VIDEO_AVAILABLE:"remote-video-available",REMOTE_VIDEO_UNAVAILABLE:"remote-video-unavailable",AUDIO_VOLUME:"audio-volume",AUDIO_FRAME:"audio-frame",NETWORK_QUALITY:"network-quality",CONNECTION_STATE_CHANGED:"connection-state-changed",AUDIO_PLAY_STATE_CHANGED:"audio-play-state-changed",VIDEO_PLAY_STATE_CHANGED:"video-play-state-changed",SCREEN_SHARE_STOPPED:"screen-share-stopped",DEVICE_CHANGED:"device-changed",PUBLISH_STATE_CHANGED:"publish-state-changed",TRACK:"track",STATISTICS:"statistics",SEI_MESSAGE:"sei-message",CUSTOM_MESSAGE:"custom-message",VIDEO_DECODE_DOWNGRADE_STATE_CHANGED:"video-decode-downgrade-state-changed",LAYER_DATA:"layerData",FIRST_VIDEO_FRAME:"first-video-frame",PERMISSION_STATE_CHANGE:"permission-state-change",VIDEO_SIZE_CHANGED:"video-size-changed"},lq=new Set([Te.AUDIO_VOLUME,Te.AUDIO_FRAME,Te.NETWORK_QUALITY,Te.STATISTICS,Te.SEI_MESSAGE,Te.CUSTOM_MESSAGE,Te.LAYER_DATA]),Qx={};Dn(Qx,{ScheduleRequestType:()=>lx,getAbilityConfig:()=>dq,getScheduleDomain:()=>FJ,isNeedToSchedule:()=>vT,scheduleProxy:()=>wc,sendScheduleRequest:()=>hx,setIsNeedToSchedule:()=>Os,setScheduleProxy:()=>NJ});var kJ=null,cx=0,uq=1728e5,vT=!0;function Os(A){fi(A)&&A!==vT&&(vT=A,K.info("setIsNeedToSchedule ".concat(A)),A||(cx=Date.now()+uq))}function hx(A){return X(this,arguments,(function(e){let{userId:t,sdkAppId:i,useStringRoomId:o,roomId:g,userSig:r,version:n,frameWorkType:I,role:C,latencyLevel:u}=e;return(function*(){var R;if(!vT&&kJ&&cx>Date.now())return{isCached:!0,result:kJ};let M={delta:0,count:[1,1],msg:[],detail:[]};try{let L=new FormData;L.append("userId",String(t)),L.append("sdkAppId",String(i)),L.append("isStrGroupId",String(o)),L.append("groupId",String(g)),L.append("sdkVersion",n),L.append("userSig",String(r));let H=((R=yield Bu())==null?void 0:R.model)||tc();H&&L.append("model",H);let gA=s();gA&&L.append("osString",gA),C&&L.append("role",String(C)),u&&L.append("latencyLevel",String(u)),I&&L.append("frameWorkType",String(I));let EA=it(),TA=yield(function(ZA,BA,xA){return new Promise(((ie,ge)=>{let qe=null;Zl([ux((ct=>BA.count[0]=ct+1),(ct=>{let{error:Pe,retry:Ji,retriedCount:mt,retryFuncArgs:Mi}=ct;BA.msg[0]=Pe.message,qe||(mt>=1&&(Mi[0]=Sc(xA,"config",V.MAIN,!0)),Ji())}))(Sc(xA,"config",V.MAIN),ZA,{get timeout(){return 1e3*ks(2+BA.count[0])}}),ux((ct=>BA.count[1]=ct+1),(ct=>{let{error:Pe,retry:Ji,retriedCount:mt,retryFuncArgs:Mi}=ct;BA.msg[1]=Pe.message,qe||(mt>=2&&(Mi[0]=Sc(xA,"config",V.BACKUP,!0)),Ji())}))(Sc(xA,"config",V.BACKUP),ZA,{get timeout(){return 1e3*ks(2+BA.count[1])}})]).then((ct=>{qe=ct,ie(qe)})).catch(ge)}))})(L,M,i);TA.config&&(TA.config.loggerDomain&&oI(TA.config.loggerDomain),fi(TA.config.scheduleCache)&&Os(!TA.config.scheduleCache)),M.delta=it()-EA;let hA=(function(ZA,BA,xA){let ie={totalCost:0,local:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let ge=performance.getEntriesByType("resource"),qe=Sc(ZA,"config",V.MAIN),ct=Sc(ZA,"config",V.BACKUP);for(let Pe of ge)if(Pe.startTime>=xA&&(Pe.name===qe||Pe.name===ct)&&Pe.transferSize>0){let Ji=Pe.name===qe?V.MAIN:V.BACKUP,mt=Math.round(Pe.duration),Mi=Math.round(Pe.domainLookupStart-Pe.startTime),To=Pe.redirectStart>0?Math.round(Pe.redirectEnd-Pe.redirectStart):0,xi=Pe.fetchStart>0?Math.round(Pe.domainLookupStart-Pe.fetchStart):0,oR=Math.round(Pe.domainLookupEnd-Pe.domainLookupStart),cI=Math.round(Pe.requestStart-Pe.secureConnectionStart),uK=Math.round(Pe.secureConnectionStart-Pe.connectStart),dK=Math.round(Pe.responseStart-Pe.requestStart),DK=Math.round(Pe.responseEnd-Pe.responseStart),WP=[oR,cI,uK,dK,DK];wi.uploadEvent({log:"stat-schedule-net:".concat(mt,"(").concat(Mi,"(").concat(To,"->").concat(xi,")->").concat(WP.join("->"),") ").concat(Ji),userId:BA}),ie=tt(le({},ie),{totalCost:mt,local:Mi,dns:oR,tcp:uK,tls:cI,request:dK,response:DK});break}}catch(ge){K.error("getScheduleDetailCost error",ge)}return ie})(Number(i),t,EA);return kJ=TA,{isCached:!1,result:TA,detailCost:hA}}catch(L){let H=lo(L)?L[0]:L,gA=Zt(H.code)?H.code:0,EA="schedule failed".concat(H.message?": ".concat(H.message):""),TA=new oe({code:OA.SCHEDULE_FAILED,extraCode:gA,message:nt({key:$e.JOIN_ROOM_FAILED,data:{error:EA,code:gA}})});throw K.error(EA,gA),TA}})()}))}typeof document<"u"&&document.head.insertAdjacentHTML("beforeend",Object.values(Ms).map((A=>'<link rel="dns-prefetch" href="https://'.concat(A,'">'))).join(`\r
|
||
`)),N.on("28",(()=>Os(!0))),N.on("63",(()=>Os(!0))),N.on("84",(()=>Os(!0))),N.on("201",(A=>{A.state==="RECONNECTING"&&Os(!0)})),N.on("202",(A=>{A.state==="RECONNECTING"&&Os(!0)}));var wc={main:"",backup:""};function NJ(A){lo(A)?(wc.main=A[0],wc.backup=A[1]):wc.main=A}var lx=(A=>(A.CONFIG="config",A.TRTC_AUTO_CONF="trtcAutoConf",A.AUDIO_AI_AUTH="audioAiAuth",A))(lx||{});function Sc(A,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:V.MAIN,i=arguments.length>3&&arguments[3]!==void 0&&arguments[3];return"https://".concat(wc[t]||FJ(A,t,i),"/api/v1/").concat(e)}function dq(A,e,t){let i=Sc(A,e),o=Sc(A,e,V.BACKUP),g=new URLSearchParams(t).toString(),r=fetch("".concat(i,"?").concat(g)).then((I=>I.json())),n=fetch("".concat(o,"?").concat(g)).then((I=>I.json()));return Zl([r,n])}function FJ(A){let e,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:V.MAIN,i=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return e=Rn(A)?i?t===V.MAIN?Ms.MAIN_OVERSEA_BACKUP:Ms.BACKUP_OVERSEA:t===V.MAIN?Ms.MAIN_OVERSEA:Ms.BACKUP_OVERSEA:t===V.MAIN?Ms.MAIN:Ms.BACKUP,e}function Dq(A,e,t){return new Promise(((i,o)=>{iu({url:A,body:e,timeout:t.timeout,priority:"high"}).then((g=>{g.data.code===0?i(g.data.data):o({code:g.data.code,message:g.data.msg})})).catch(o)}))}var ux=(A,e)=>ou({retryFunction:Dq,settings:{retries:3,timeout:0},onError:e,onRetrying:A}),vJ=class{constructor(){l(this,"_log"),this._log=K.createLogger({id:"fd"})}download(A,e){return X(this,null,(function*(){let{type:t="blob"}=e||{};A=$l(A);try{let i,o=it();if(i=Ni(fetch)?yield this.downloadWithFetch(A,t):yield this.downloadWithXHR(A,t),!i||!i.data)throw new Error("data is empty");let g=it()-o;return this._log.info("downloaded: ".concat(A,", return type: ").concat(t,", cost: ").concat(g,"ms")),ee.addSuccessEvent({key:522700,cost:it()-o}),i.data}catch(i){throw this._log.error("failed to download: ".concat(A,", error: ").concat(i)),ee.addFailedEvent({key:522700,error:i}),i}}))}downloadWithFetch(A,e){return X(this,null,(function*(){this._log.info("download with fetch: ".concat(A,", return type: ").concat(e));try{let t,i=yield fetch(A);if(!i.ok){let o=new Error("network response was not ok: ".concat(i.status));throw o.status=i.status,o}return t=e==="arraybuffer"?yield i.arrayBuffer():yield i.blob(),{data:t}}catch(t){throw t}}))}downloadWithXHR(A,e){return this._log.info("download with xhr: ".concat(A,", return type: ").concat(e)),new Promise(((t,i)=>{let o=new XMLHttpRequest;o.open("GET",A,!0),o.responseType=e,o.onload=()=>{if(o.status===200||o.status===0&&o.response)t({data:o.response});else{let g=new Error("XHR failed, status: ".concat(o.status));g.status=o.status,i(g)}},o.onerror=i,o.send(null)}))}loadWasm(A,e){return X(this,null,(function*(){this._log.info("loadWasm ".concat(A,", importObject: ").concat(JSON.stringify(e)));let t=it(),i=null,o=null;if(Ni(WebAssembly.instantiateStreaming)&&!A.startsWith("data:application/octet-stream;base64,")&&!(g=>g.startsWith("file://"))(A)&&Ni(fetch))try{let g=fetch(A);i=(yield WebAssembly.instantiateStreaming(g,e)).instance}catch(g){o=g}if(!i)try{let g=yield this.download(A,{type:"arraybuffer"});i=(yield WebAssembly.instantiate(g,e)).instance}catch(g){o=g}if(i){let g=it()-t;return this._log.info("loadedWasm ".concat(A,", cost: ").concat(g,"ms")),ee.addSuccessEvent({key:522701,cost:g}),i}throw this._log.error("failed to loadWasm ".concat(A,", error: ").concat(o)),ee.addFailedEvent({key:522701,error:o}),o}))}loadScript(A){this._log.info("loadScript ".concat(A));let e=it();return new Promise(((t,i)=>{let o=document.createElement("script");o.type="text/javascript",o.onload=()=>{this._log.info("loadedScript ".concat(A,", cost: ").concat(it()-e,"ms")),ee.addSuccessEvent({key:522702,cost:it()-e,split:1e3}),t(o)},o.onerror=g=>{this._log.error("failed to loadScript ".concat(A,", error: ").concat((g==null?void 0:g.message)||JSON.stringify(g))),ee.addFailedEvent({key:522702}),i(g)},o.crossOrigin="anonymous",o.src=A,document.head.append?document.head.append(o):document.getElementsByTagName("head")[0].appendChild(o)}))}};ne([ba({settings:{timeout:0,retries:3},onError(A,e,t){var i;(A==null?void 0:A.status)===404||(i=A==null?void 0:A.message)!=null&&i.includes("404")?(this._log.warn("download 404, stop retry"),t(A)):e()},onRetrying(A){this._log.warn("download retrying: ".concat(A))}})],vJ.prototype,"download"),ne([ba({settings:{timeout:3e3,retries:3},onRetrying(A){this._log.warn("loadScript retrying: ".concat(A))}})],vJ.prototype,"loadScript");var TJ=new vJ;function dx(A){let[e,t]=A,i=t.byteLength,o=parseInt(String(i/255),10),g=i%255,r=[];r.push(0,0,0,1,6,e);for(let I=0;I<o;I++)r.push(255);r.push(g);let n=new DataView(t);return r.push(...new Uint8Array(n.buffer)),r.push(128),new mT(new DataView(new Uint8Array(r).buffer),!0)}function Dx(A){return A.type==="empty"||A.data.byteLength===0}function px(A){let e=new DataView(A),t=0;for(;t<e.byteLength;){let i=0;if(t+4<=e.byteLength&&e.getUint8(t)===0&&e.getUint8(t+1)===0&&e.getUint8(t+2)===0&&e.getUint8(t+3)===1)i=4;else{if(!(t+3<=e.byteLength&&e.getUint8(t)===0&&e.getUint8(t+1)===0&&e.getUint8(t+2)===1)){t+=1;continue}i=3}let o=t+i;if(o<e.byteLength&&(31&e.getUint8(o))==6)return!0;let g=-1;for(let r=t+i;r<e.byteLength;r+=1){if(r+4<=e.byteLength&&e.getUint8(r)===0&&e.getUint8(r+1)===0&&e.getUint8(r+2)===0&&e.getUint8(r+3)===1){g=r;break}if(r+3<=e.byteLength&&e.getUint8(r)===0&&e.getUint8(r+1)===0&&e.getUint8(r+2)===1){g=r;break}}t=g===-1?e.byteLength:g}return!1}function yx(A){let e=0,t=0,i=new DataView(A);for(let o=0;o<A.byteLength;o++)switch(i.getUint8(o)){case 0:e++;break;case 1:(e===2||e===3)&&t++,e=0;break;default:e=0}return t}function Rx(A){let{frame:e,seiMessageList:t}=A;if(!t||t.length===0||e.data.byteLength===0)return e;let i=9-yx(e.data);if(i<=0)return e;let o=t.splice(0,i).reverse().map(dx),g=o.reduce(((u,R)=>u+R.dataView.byteLength),0),r=new ArrayBuffer(g+e.data.byteLength),n=new DataView(r),I=new DataView(e.data),C=0;for(let u=0;u<o.length;u++)for(let R=0;R<o[u].dataView.byteLength;R++)n.setInt8(C++,o[u].dataView.getInt8(R));for(let u=0;u<e.data.byteLength;u++)n.setInt8(C++,I.getInt8(u));return e.data=r,e}function mx(A){let{frame:e,onSEI:t}=A;try{if(Dx(e)||!px(e.data))return e;let i=W2(e.data,!1).filter((o=>o.isSEI));t==null||t(i.reverse())}catch{}return e}function fx(A){let{seiMessageList:e,isAudio:t,getNtpTime:i,isMain:o}=A;return new TransformStream({transform(g,r){let n=g;t?audioEncodePipeline.forEach((I=>{n=I({frame:n,ntp:i()})})):videoEncodePipeline.forEach((I=>{n=I({frame:n,seiMessageList:e,onDump:()=>{self.postMessage({type:"dump",isAudio:t,data:n.data,userId:"",streamType:o?"main":"auxiliary"})}})})),r.enqueue(n)}})}function Sx(A){let{userId:e,streamType:t,isAudio:i}=A;return new TransformStream({transform(o,g){let r=o;i?(audioDecodePipeline.forEach((n=>{r=n({frame:r,onAudioFrameNTPTime:I=>{self.postMessage({type:"audio-ntp",data:I,userId:e,streamType:t})},onDump:()=>{self.postMessage({type:"dump",isAudio:i,data:r.data,userId:e,streamType:t})}})})),g.enqueue(r)):videoDecodePipeline.forEach((n=>{r=n({frame:r,onSEI:I=>{I.forEach((C=>{self.postMessage({type:"sei",seiPayloadType:C.seiPayloadType,data:C.seiPayload.buffer,userId:e,streamType:t})}))}})})),g.enqueue(r)}})}function Gx(A){let e=[mT],t=[yx,Dx,W2,px,dx,fx,Sx,VQ,Fs],i="const videoEncodePipeline=[".concat(A.videoEncodePipeline.toString(),`];
|
||
const videoDecodePipeline=[`).concat(A.videoDecodePipeline.toString(),`];
|
||
const audioEncodePipeline = [`).concat(A.audioEncodePipeline.toString(),`];
|
||
const audioDecodePipeline = [`).concat(A.audioDecodePipeline.toString(),"];"),o="(()=>{".concat(e.map((I=>"const ".concat(I.name,"=(()=>").concat(I.toString(),")()"))).join(`
|
||
`),`
|
||
`).concat(t.map((I=>I.toString())).join(`
|
||
`),";(").concat((()=>{let I=[],C=[],u=[],R=0;self.onmessage=M=>{switch(M.data.type){case"sei":M.data.isMain?(I.push(M.data.data),M.data.small&&u.push(M.data.data)):C.push(M.data.data);break;case"ntp-offset":R=M.data.data}},self.onrtctransform=M=>{let{options:L}=M.transformer,H=L.isReceiver?Sx({userId:L.userId,streamType:L.streamType,isAudio:L.isAudio}):fx({getNtpTime:()=>Date.now()+R,isAudio:L.isAudio,isMain:L.isMain,seiMessageList:L.isMain?L.small?u:I:C});M.transformer.readable.pipeThrough(H).pipeTo(M.transformer.writable)}}),")();").concat(i,"})()"),g=new Blob([o],{type:"text/javascript"}),r=URL.createObjectURL(g),n=new Worker(r);return URL.revokeObjectURL(r),n}function pq(A){var e=this;let{TRTC:t,room:i,errorModule:o,assetsPath:g}=A;return{TRTC:t,LocalMixVideoTrack:fJ,LocalVideoTrack:YB,LocalScreenTrack:Fu,room:i,assetsPath:g,fileDownloader:TJ,innerEmitter:N,INNER_EVENT:v,constants:ws,environment:KS,utils:j2,eventLogger:wi,log:this.room.getLogger(),loggerManager:K,errorModule:o,kvStatManager:ee,rtcDectection:kA,trtc:this,rx:f2,enums:_A,schedule:Qx,getDevices:QT,initVisionTaskRegistry:function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"/mediapipe/vision.js";return X(e,null,(function*(){window.VisionTaskRegistry||(yield TJ.loadScript("".concat(r,"/").concat(n).replace(/([^:]\/)\/+/g,"$1"))),yield(yield window.VisionTaskRegistry.getInstance(r)).preloadModels([window.VisionTaskType.ImageSegmenter])}))},audioContext:Ug(),deviceDetector:Ho,AudioPlayer:EJ,RemoteAudioPlayer:d2,VideoPlayer:Ci,showAutoPlayDialog:gt,Timer:ti,clearStarted:(r,n)=>{let I=r.getAlias(),C=PG.instances.get(this);if(C)if(n){let u=C.get(I+n);if(!u)return;u.started=!1}else C.forEach(((u,R)=>{R.startsWith(I)&&(u.started=!1)}))},startGetPCM:MJ,createAudioNode:IJ,getNetworkTimeOffset:BS,validateSourceNode:()=>{var r;if(ei&&((r=this.room.audioManager._localAudioPipline)==null||!r.source.node))throw new Oe({code:He.DEVICE_ERROR,extraCode:5310,message:"The audio processing plugin cannot be used due to the microphone's sampling rate is not 48KHz in Firefox. Please switch to another browser such as Chrome."})},createScriptTransformWorker:Gx}}var tR=new WeakMap,Mx="5.15.0-beta.25";function ir(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return Gi(((i,o)=>function(){for(var g=arguments.length,r=new Array(g),n=0;n<g;n++)r[n]=arguments[n];try{UJ.call(this,e,r,o,this._name)}catch(I){return Promise.reject(I)}return i.apply(this,r)}))}function kx(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return Gi(((i,o)=>function(){for(var g=arguments.length,r=new Array(g),n=0;n<g;n++)r[n]=arguments[n];try{UJ.call(this,e,r,o,this._name)}catch(I){throw I}return i.apply(this,r)}))}function UJ(A,e,t,i){if(lo(A))for(let o=0;o<A.length;o++)TT.call(this,{rule:A[o],value:e[o],key:A[o].name,fnName:t,className:i});else TT.call(this,{rule:A,value:e[0],key:A.name,fnName:t,className:i})}function TT(A){let{rule:e,value:t,key:i,fnName:o,className:g}=A;function r(C){return{code:He.INVALID_PARAMETER,extraCode:C,fnName:o,messageParams:{key:i,rule:e,value:t}}}if(yA(t)){if(e.required)throw new Oe(r(5001));if(yA(e.defaultValue))return void(Ni(e.validate)&&e.validate.call(this,t,i,o,g,this));t=e.defaultValue}if(Array.isArray(e.type)){let C=!1;for(let u=0;u<e.type.length;u++)e.type[u]===null&&t===null&&(C=!0),Ni(e.type[u])&&t instanceof e.type[u]&&(C=!0),ai(e.type[u])&&ho(t)===e.type[u].toLowerCase()&&(C=!0);if(!C)throw new Oe({code:He.INVALID_PARAMETER,extraCode:5002,fnName:o,messageParams:{key:i,rule:{type:e.type.map((u=>Wl(u)?Xp(u):ai(u)?u:ho(u)))},value:t}})}else if(!yA(e.type)&&ho(t)!==e.type)throw new Oe(r(5002));if(e.allowEmpty===!1){let C=Zt(t)&&(t===0||Number.isNaN(t)),u=ai(t)&&t.trim()==="";if(C||u)throw new Oe(r(5003))}if(e.notLessThanZero&&Zt(t)&&t<0)throw new Oe(r(5006));if(!yA(e.min)&&Zt(t)&&t<e.min)throw new Oe(r(5007));if(!yA(e.max)&&Zt(t)&&t>e.max)throw new Oe(r(5008));if(ai(e.instanceOf)){if(!t||t._name!==e.instanceOf)throw new Oe(r(5004))}else if(Ni(e.instanceOf)&&!(t instanceof e.instanceOf))throw new Oe(r(5004));if(Array.isArray(e.values)&&!e.values.includes(t))throw new Oe(r(5005));let{properties:n}=e;sg(n)&&ka(t)&&Object.keys(n).forEach((C=>{TT.call(this,{rule:n[C],value:t&&t[C],key:"".concat(C),fnName:o,className:g})}));let{arrayItem:I}=e;sg(I)&&lo(t)&&t.forEach(((C,u)=>{TT.call(this,{rule:I,value:C,key:"".concat(i,"[").concat(u,"]"),fnName:o,className:g})})),Ni(e.validate)&&e.validate.call(this,t,i,o,g,this)}var yq=0;function Pi(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{getRemoteId:e=()=>"",replaceArg:t,getKVReportKey:i,ignoreLog:o,ignoreErrorLog:g}=A;return Gi(((r,n)=>function(){for(var I=arguments.length,C=new Array(I),u=0;u<I;u++)C[u]=arguments[u];var R,M,L;function H(ZA,BA,xA){if(xA&&xA.includes(ZA))return"hided";if(t){let ie=t(...C);if(C[ie.argIndex]===BA)return ie.value}if(BA===C||ZA in C)return BA;try{return BA instanceof HTMLElement?"id: ".concat(BA.id," type:").concat(ho(BA)):BA instanceof MediaStreamTrack?Au(BA):(JSON.stringify(BA),BA)}catch{return"type:".concat(ho(BA))}}let gA=this._log||K,EA=++yq;if(o!=null&&o(...C))return r.apply(this,C);C.length>0?gA.info("".concat(n,"() ").concat(EA," ").concat(JSON.stringify(C,((ZA,BA)=>H(ZA,BA,["userSig","privateMapKey"]))))):gA.info("".concat(n,"() ").concat(EA));let TA=i?i(...C):nc[n],hA=(g==null?void 0:g(...C))||!1;try{let ZA=r.apply(this,C),BA=it();if(Vl(ZA)){let xA="".concat(n.includes("Plugin")?"".concat(((M=(R=C[0]).getName)==null?void 0:M.call(R))||""," "):" ");return ZA.then((ie=>(gA.info("".concat(n,"() success ").concat(EA," ").concat(xA).concat(e.call(this,...C))),ee.addSuccessEvent({key:TA,cost:it()-BA}),ie))).catch((ie=>{var ge;let qe=(ie=Oe.convertFrom.call(this,ie,n,C.length===1?C[0]:C)).extraCode||ie.code,ct=(ge=ie.message)!=null&&ge.includes(qe)?"":" code:".concat(qe),Pe=(ie==null?void 0:ie.code)===He.OPERATION_ABORT;throw hA||gA[Pe?"warn":"error"]("".concat(n,"() failed ").concat(EA," ").concat(xA).concat(e.call(this,...C)," ").concat(ie).concat(ct," params: ").concat(JSON.stringify(C,H))),ee.addFailedEvent({key:TA,error:ie}),ie}))}return ee.addSuccessEvent({key:TA}),ZA}catch(ZA){let BA=(ZA=Oe.convertFrom.call(this,ZA,n)).extraCode||ZA.code,xA=(L=ZA.message)!=null&&L.includes(BA)?"":" code:".concat(BA),ie=(ZA==null?void 0:ZA.code)===He.OPERATION_ABORT;throw hA||gA[ie?"warn":"error"]("".concat(n,"() failed ").concat(EA," ").concat(ZA).concat(xA," params: ").concat(JSON.stringify(C,H))),ee.addFailedEvent({key:TA,error:ZA}),ZA}}))}var _J,LJ=A=>Gi(((e,t)=>function(i,o){return X(this,null,(function*(){let g=this._plugins.get(i);if(!g)throw this._log.error("plugin ".concat(String(i)," is not found")),new Oe({code:He.OPERATION_ABORT,message:"plugin ".concat(String(i)," is not found"),fnName:t});if(Ni(g.constructor.isSupported)&&!g.constructor.isSupported())throw this._log.error("plugin ".concat(String(i)," is not supported")),new Oe({code:He.ENV_NOT_SUPPORTED,message:"plugin ".concat(String(i)," is not supported"),extraCode:5210,fnName:t});return UJ.call(this,g.getValidateRule(A),[o],t,"TRTC"),e.call(this,g,o)}))})),bJ=0,UT=class A0{constructor(e){this.core=e,l(this,"log"),l(this,"customAudioReferenceMap",new Map),l(this,"audioRefId",0),l(this,"audioContext",Ug()),l(this,"localAudioWorkletNode"),l(this,"screenAudioWorkletNode"),l(this,"mixNode"),l(this,"silentNode"),bJ+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(bJ)}),this.log.info("created id=".concat(this.getAlias()).concat(bJ)),this.installEvent()}static getStartValidateRule(e){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(t,i,o,g){if(!e.room.audioManager.hasAudioTrack&&!e.room.audioManager.hasScreenAudioTrack)throw new Oe({code:He.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(e){return _J||(_J=this.doPreload(e)),_J}doPreload(e){return X(this,null,(function*(){let t=yield this.core.fileDownloader.download(e,{type:"blob"}),i=URL.createObjectURL(t);try{yield Ag(this.audioContext,i)}catch(o){this.log.error("preload audioProcessor failed. ".concat(o))}finally{URL.revokeObjectURL(i)}}))}getName(){return A0.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(e){switch(e){case"start":return A0.getStartValidateRule(this.core);case"update":return A0.updateValidateRule;case"stop":return A0.stopValidateRule}}start(e){return X(this,null,(function*(){var t,i,o,g;let{room:r}=this.core,{sdkAppId:n,userId:I,userSig:C,assetsPath:u=this.core.assetsPath,audioReference:R,processLevel:M,enableDump:L,isLocalAudioNeedAudioProcess:H=!0,isScreenAudioNeedAudioProcess:gA=!1}=e;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=H,this.core.room.audioManager.isScreenAudioNeedAudioProcess=gA,!u)throw new Oe({code:He.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(this.core.validateSourceNode(),yield this.preload("".concat(u,"/audioProcessor-wasm.js")),H&&!this.localAudioWorkletNode){let{sign:EA,status:TA,timestamp:hA}=yield this.getAuthData(n,I,C);this.localAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.localAudioWorkletNode,"localAudio",n,I,hA,EA,TA,r)}if(gA&&!this.screenAudioWorkletNode){let{sign:EA,status:TA,timestamp:hA}=yield this.getAuthData(n,I,C);this.screenAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.screenAudioWorkletNode,"screenAudio",n,I,hA,EA,TA,r)}this.mixNode||(this.mixNode=this.audioContext.createGain(),this.mixNode.gain.value=1),this.silentNode||(this.silentNode=this.audioContext.createConstantSource(),this.silentNode.offset.setValueAtTime(0,this.audioContext.currentTime),this.silentNode.start()),(t=this.localAudioWorkletNode)==null||t.port.postMessage({type:"enable"}),(i=this.screenAudioWorkletNode)==null||i.port.postMessage({type:"enable"}),r.audioManager.addAudioProcessor(this.mixNode,this.silentNode,this.localAudioWorkletNode,this.screenAudioWorkletNode),yA(R)||R.forEach((EA=>{this.customAudioReferenceMap.set(EA,"o-".concat(this.audioRefId++)),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:EA,refId:"o-".concat(this.audioRefId++)})})),yA(M)||(o=this.localAudioWorkletNode)==null||o.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:M}}),yA(L)||(g=this.localAudioWorkletNode)==null||g.port.postMessage({type:"dump",data:{enable:L}})}))}update(e){return X(this,null,(function*(){var t,i,o;let{audioReference:g,enableDump:r,processLevel:n}=e;yA(g)||(this.customAudioReferenceMap.forEach(((I,C)=>{this.customAudioReferenceMap.delete(C),this.core.room.audioManager.updateAudioReference({type:"remove",refId:I})})),g.forEach((I=>{this.customAudioReferenceMap.set(I,"o-".concat(this.audioRefId++)),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:I,refId:"o-".concat(this.audioRefId++)})}))),yA(n)||(t=this.localAudioWorkletNode)==null||t.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:n}}),yA(r)||((i=this.localAudioWorkletNode)==null||i.port.postMessage({type:"dump",data:{enable:r}}),(o=this.screenAudioWorkletNode)==null||o.port.postMessage({type:"dump",data:{enable:r}}))}))}stop(){return X(this,null,(function*(){var e,t;let{room:i}=this.core;(e=this.localAudioWorkletNode)==null||e.port.postMessage({type:"disable"}),(t=this.screenAudioWorkletNode)==null||t.port.postMessage({type:"disable"}),yield i.audioManager.removeAudioProcessor(this.localAudioWorkletNode,this.screenAudioWorkletNode)}))}destroy(){this.localAudioWorkletNode&&(this.localAudioWorkletNode.port.onmessage=null),this.screenAudioWorkletNode&&(this.screenAudioWorkletNode.port.onmessage=null),this.uninstallEvent()}getAuthData(e,t,i){return X(this,null,(function*(){let o=String(Date.now()).slice(0,-3),{auth:g,sign:r,status:n,message:I}=yield(function(C){return X(this,arguments,(function(u){let{sdkAppId:R,userId:M,userSig:L,timestamp:H}=u;return(function*(){let gA="".concat((function(qe){let ct=arguments.length>1&&arguments[1]!==void 0?arguments[1]:V.MAIN;return"https://".concat(wc[ct]||FJ(qe,ct),"/api/v1/audioAiAuth")})(R),"?sdkAppId=").concat(R,"&userId=").concat(M,"&userSig=").concat(L,"×tamp=").concat(H),EA=yield fetch(gA),{data:{errCode:TA,errMsg:hA,sign:ZA,status:BA}}=yield EA.json();if(BA==="1")return{auth:!0,sign:ZA,status:BA,message:hA};let xA=Rn(R)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",ie="Init RTCAudioProcessor failed.",ge="";switch(TA){case 1:ge="Please check your params.";break;case 2:ge="You need to buy packages. Refer to: ".concat(xA);break;case 3:ge="Server is invalid. Please contact our engineer. ";break;case 4:ge="Your packages is not active. Refer to: ".concat(xA);break;case 5:ge="Your packages is expired. Refer to: ".concat(xA);break;case 6:ge="Your version is not supported."}return{auth:!1,status:BA,message:hA?"".concat(ie," Reason: ").concat(hA,". ").concat(ge):"".concat(ie,", ").concat(ge)}})()}))})({sdkAppId:e,userSig:i,userId:t,timestamp:o});if(!g)throw this.log.info("audioProcessor: ".concat(t," auth result: ").concat(g,". Message: ").concat(I)),new Oe({code:He.INVALID_PARAMETER,message:I});return{sign:r,status:n,timestamp:o}}))}initWorkletNode(e,t,i,o,g,r,n,I){e.port.postMessage({type:"init",data:{sdkAppId:String(i),userId:o,timestamp:g,sign:r,status:n}}),e.port.onmessage=C=>{var u;let{data:R}=C;switch(R.type){case"cost":let M=(R==null?void 0:R.value)>10?"info":"debug";return void this.log[M]("".concat(t==="localAudio"?"":"[".concat(t,"] "),"avg cost: ").concat(R.value," max: ").concat(R==null?void 0:R.max,"(").concat(QS(new Date(R==null?void 0:R.maxCostTimestamp)),") hist: ").concat((u=R==null?void 0:R.hist)==null?void 0:u.join(" ")));case"log":return void this.log[R.logLevel]("".concat(t==="localAudio"?"":"[".concat(t,"] ")).concat(R.value));case"dump":return void N.emit("265",{room:I,data:R.value,type:t==="localAudio"?"dump":"dump-screen-audio"})}}}handleLocalAudioStarted(e){return X(this,null,(function*(){var t;if(this.hitTest(e.room)&&((t=this.core.room.scheduleResult.config)==null?void 0:t.audioProcessor)===!0)try{yield this.core.trtc.startPlugin("AudioProcessor",{sdkAppId:this.core.room.sdkAppId,userId:this.core.room.userId,userSig:this.core.room.userSig}),this.log.warn("audio processor auto start success")}catch(i){this.log.warn("audio processor auto start failed, error: ".concat(i))}}))}handleLocalAudioStopped(e){return X(this,null,(function*(){var t;!this.hitTest(e.room)||((t=this.core.room.scheduleResult.config)==null?void 0:t.audioProcessor)!==!0||(yield this.core.trtc.stopPlugin("AudioProcessor"))}))}installEvent(){this.core.innerEmitter.on("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.on("114",this.handleLocalAudioStopped,this)}uninstallEvent(){this.core.innerEmitter.off("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.off("114",this.handleLocalAudioStopped,this)}hitTest(e){return e===this.core.room}};l(UT,"updateValidateRule",{type:"object"}),l(UT,"stopValidateRule",{type:"object"}),l(UT,"Name","AudioProcessor");var Rq=UT,YJ=0,mq=class{constructor(A,e){l(this,"audioObjectURL"),l(this,"player"),l(this,"publisher"),l(this,"mixInput"),this.mixInput=new B2(e),A.url?(this.player=new Audio(A.url),this.player.crossOrigin="anonymous",this.publisher=new Audio(A.url),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher)):this.mixInput.replaceSource(A.track),this.mixInput.connect()}updateSettings(A){this.player&&(yA(A.volume)||(this.volume=A.volume),yA(A.loop)||(this.loop=A.loop),yA(A.playbackRate)||(this.playbackRate=A.playbackRate))}updateListener(A){if(this.player){if(A.onDurationChange){let{onDurationChange:e}=A;this.player.ondurationchange=t=>{e(t.target.duration)}}if(A.onTimeUpdate){let e=A.onTimeUpdate,{player:t}=this;t.ontimeupdate=()=>{e(t.currentTime,t.duration)}}A.onEnded&&(this.player.onended=A.onEnded)}}reload(A){return X(this,null,(function*(){if(A.url){let e=yield TJ.download(A.url,{retries:3,type:"blob"});this.audioObjectURL&&URL.revokeObjectURL(this.audioObjectURL),this.audioObjectURL=URL.createObjectURL(e),this.player&&this.publisher?(this.player.src=this.audioObjectURL,this.publisher.src=this.audioObjectURL):(this.player=new Audio(this.audioObjectURL),this.player.crossOrigin="anonymous",this.publisher=new Audio(this.audioObjectURL),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher),this.updateListener(A),this.updateSettings(A))}else this.mixInput.replaceSource(A.track)}))}reset(){this.seek(0),this.mixInput.connect()}seek(A){this.player&&(A<0&&A>this.player.duration||(this.player.currentTime=A,this.publisher.currentTime=A))}play(){var A,e;return Promise.all([(A=this.player)==null?void 0:A.play(),(e=this.publisher)==null?void 0:e.play()])}pause(){var A,e;(A=this.player)==null||A.pause(),(e=this.publisher)==null||e.pause()}stop(){var A;(A=this.player)==null||A.pause(),this.mixInput.disconnect()}setOperation(A){A==="pause"&&this.pause(),A==="resume"&&(this.pause(),this.play()),A==="stop"&&(this.pause(),this.seek(0))}set volume(A){!this.player||!this.publisher||(this.player.volume=A,this.publisher.volume=A)}set loop(A){!this.player||!this.publisher||(this.player.loop=A,this.publisher.loop=A)}set playbackRate(A){!this.player||!this.publisher||(this.player.playbackRate=A,this.publisher.playbackRate=A)}};function iR(A,e){if(e&&typeof e!="function")throw new Oe({code:He.INVALID_PARAMETER,message:"start audioMixer plugin: param ".concat(A," should be a function.")})}var VG=class e0{constructor(e){this.core=e,l(this,"log"),l(this,"mixedMusicMap",new Map),l(this,"cacheMusicMap",new Map),YJ+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(YJ)}),this.log.info("created id=".concat(this.getAlias()).concat(YJ))}getName(){return e0.Name}getAlias(){return"ax"}getGroup(e){return e==null?void 0:e.id}getValidateRule(e){switch(e){case"start":return e0.startValidateRule;case"update":return e0.updateValidateRule;case"stop":return e0.stopValidateRule}}start(e){return X(this,null,(function*(){let{room:t}=this.core;this.core.validateSourceNode(),this.log.info("add music source, id: ".concat(e.id," url: ").concat(e.url,", track: ").concat(e.track));let{id:i,url:o}=e;if(this.mixedMusicMap.has(i))return;let g=this.cacheMusicMap.get(i);g?e.url?g.reset():(g.mixInput.replaceSource(e.track),g.mixInput.connect()):(g=new mq(e,t.audioManager),this.cacheMusicMap.set(i,g)),g.updateListener(e),g.updateSettings(e);try{yield g.play()}catch(r){yield this.handleAutoPlayFailed(g,e,r)}this.mixedMusicMap.set(i,g),g.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"add",audioReference:g.mixInput.source.node,refId:"ax-".concat(i)}),this.log.info("start mix audio track ".concat(i," success.")),ee.addEnum({key:502700,value:3}),this.kvUpload(e)}))}handleAutoPlayFailed(e,t,i){return X(this,null,(function*(){if(i.name==="NotSupportedError")this.log.error("play failed, try to reload source. error: ".concat(i)),yield e.reload(t),yield e.play();else{if(i.name!=="NotAllowedError")throw i;if(this.core.room.enableAutoPlayDialog){let o=()=>{var g;(g=e.play())==null||g.finally((()=>{N.off("154",o,this)}))};N.on("154",o,this),gt()}else this.core.trtc.emit(Te.AUTOPLAY_FAILED,{userId:"",mediaType:"audio",resume:()=>X(this,null,(function*(){return e.play()}))})}}))}update(e){return X(this,null,(function*(){let{id:t,operation:i,seekFrom:o,playbackRate:g}=e;this.log.info("update music source, ".concat(JSON.stringify(e)));let r=this.mixedMusicMap.get(t);r?(r.updateSettings(e),r.updateListener(e),yA(i)||r.setOperation(i),yA(o)||r.seek(o),this.kvUpload(e)):this.log.warn("update music source failed, music id: ".concat(t," not found."))}))}stop(e){return X(this,arguments,(function(t){var i=this;let{id:o}=t;return(function*(){if(i.mixedMusicMap.has(o)){i.log.info("remove music source, music id: ".concat(o));let g=i.mixedMusicMap.get(o);g!=null&&g.mixInput.source.node&&i.core.room.audioManager.updateAudioReference({type:"remove",audioReference:g.mixInput.source.node,refId:"ax-".concat(o)}),g==null||g.stop(),i.mixedMusicMap.delete(o)}o==="*"&&i.destroyAllMusic()})()}))}kvUpload(e){let{track:t,loop:i,volume:o,playbackRate:g,operation:r,seekFrom:n,onTimeUpdate:I,onDurationChange:C,onEnded:u}=e;t&&ee.addCount({key:502009}),i&&ee.addCount({key:502001}),o&&ee.addCount({key:502002}),g&&ee.addCount({key:502003}),r&&ee.addCount({key:502004}),n&&ee.addCount({key:502005}),typeof I!="function"&&ee.addCount({key:502007}),typeof u!="function"&&ee.addCount({key:502008}),typeof C!="function"&&ee.addCount({key:502006})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach(((e,t)=>{e!=null&&e.mixInput.track&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:e.mixInput.track,refId:t}),this.stop({id:t})}))}destroyAllCache(){this.log.info("destroy all music cache."),this.cacheMusicMap.clear()}destroy(){this.log.info("destroy audio mixer plugin."),this.destroyAllMusic(),this.destroyAllCache()}};l(VG,"startValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},url:{type:"string",required:!1},track:{required:!1},loop:{type:"boolean"},volume:{type:"number"}},validate(A,e,t){if(A.url&&A.url!=="*"){let i=A.url.split("?")[0],o=["mp3","ogg","wav","flac"],g=i.split(".").pop(),r=o.indexOf(g)>=0,n=i.startsWith("blob"),I=i.startsWith("data");if(!(r||n||I))throw new Oe({code:He.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:t})}if(!A.url&&!A.track)throw new Oe({code:He.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:t});iR("onTimeUpdate",A.onTimeUpdate),iR("onEnded",A.onEnded),iR("onDurationChange",A.onDurationChange)}}),l(VG,"updateValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},loop:{type:"boolean"},volume:{type:"number"},seekFrom:{type:"number"},operation:{type:"string",values:["pause","resume","stop"]}},validate(A,e,t){iR("onTimeUpdate",A.onTimeUpdate),iR("onEnded",A.onEnded),iR("onDurationChange",A.onDurationChange)}}),l(VG,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),l(VG,"Name","AudioMixer");var JJ,fq=VG,xJ=0,_T=class t0{constructor(e){this.core=e,l(this,"log"),l(this,"audioContext",Ug()),l(this,"workletNode"),l(this,"config",{enableFarFieldReduce:!1,farFieldReduceThreshold:.5}),xJ+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(xJ)}),this.log.info("created id=".concat(this.getAlias()).concat(xJ))}static startValidateRule(e){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0},mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}},validate(t,i,o,g){if(!e.room.audioManager.hasAudioTrack)throw new Oe({code:He.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(e){return JJ||(JJ=this.doPreload(e)),JJ}doPreload(e){return X(this,null,(function*(){let t=yield this.core.fileDownloader.download(e,{type:"blob"}),i=URL.createObjectURL(t);try{yield Ag(this.audioContext,i)}catch(o){throw this.log.error("load worklet failed",o),o}finally{URL.revokeObjectURL(i)}}))}getName(){return t0.Name}getAlias(){return"ad"}getGroup(){return"AIDenoiser"}getValidateRule(e){switch(e){case"start":return t0.startValidateRule(this.core);case"update":return t0.updateValidateRule;case"stop":return t0.stopValidateRule}}start(e){return X(this,null,(function*(){let{room:t,schedule:i}=this.core,{assetsPath:o=this.core.assetsPath}=e;if(!o)throw new Oe({code:He.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(this.core.validateSourceNode(),yield this.preload("".concat(o,"/denoiser-wasm").concat(pG()?"":"-nosimd",".js")),!this.workletNode){let g=String(Date.now()).slice(0,-3),{auth:r,sign:n,status:I,message:C}=yield(function(u,R){return X(this,arguments,(function(M,L){let{sdkAppId:H,userId:gA,userSig:EA,timestamp:TA}=L;return(function*(){try{let{data:{errCode:hA,errMsg:ZA,sign:BA,status:xA}}=yield M.getAbilityConfig(H,M.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:H,userId:gA,userSig:EA,timestamp:TA});if(xA==="1")return{auth:!0,sign:BA,status:xA,message:ZA};let ie=Rn(H)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",ge="Init RTCAIDenoiser failed.",qe="";switch(hA){case 1:qe="Please check your params.";break;case 2:qe="You need to buy packages. Refer to: ".concat(ie);break;case 3:qe="Server is invalid. Please contact our engineer. ";break;case 4:qe="Your packages is not active. Refer to: ".concat(ie);break;case 5:qe="Your packages is expired. Refer to: ".concat(ie);break;case 6:qe="Your version is not supported."}return{auth:!1,status:xA,message:ZA?"".concat(ge," Reason: ").concat(ZA,". ").concat(qe):"".concat(ge,", ").concat(qe)}}catch(hA){return{auth:!1,status:"0",message:"Init RTCAIDenoiser failed. All requests failed. ".concat(hA)}}})()}))})(i,tt(le({},e),{timestamp:g}));if(!r)throw this.log.info("RTCAIDenoiser: ".concat(e.userId," auth result: ").concat(r,". Message: ").concat(C)),new Oe({code:He.INVALID_PARAMETER,message:C});this.workletNode=new AudioWorkletNode(this.audioContext,"trtc-denoiser-processor",{numberOfInputs:1,numberOfOutputs:1}),this.workletNode.port.postMessage({type:"init",data:{sdkAppId:String(e.sdkAppId),userId:e.userId,timestamp:g,sign:n,status:I}}),this.workletNode.port.onmessage=u=>{var R;let{data:M}=u;if(M.type==="cost"){let L=(M==null?void 0:M.max)>20?"warn":(M==null?void 0:M.max)>10?"info":"debug";this.log[L]("avg cost: ".concat(M.value," max: ").concat(M==null?void 0:M.max,"(").concat(QS(new Date(M==null?void 0:M.maxCostTimestamp)),") hist: ").concat((R=M==null?void 0:M.hist)==null?void 0:R.join(" ")))}else M.type==="log"&&this.log[M.logLevel]("".concat(M.value))}}this.updateConfig(e),this.workletNode.port.postMessage({type:"enable"}),t.audioManager.addDenoiser(this.workletNode),t.sendAbilityStatus({ai_denoise:1})}))}update(e){return X(this,null,(function*(){this.updateConfig(e)}))}stop(){return X(this,null,(function*(){if(!this.workletNode)return;let{room:e}=this.core;this.workletNode.port.postMessage({type:"disable"}),yield e.audioManager.removeDenoiser(this.workletNode)}))}updateConfig(e){if(!this.workletNode)return;let t=!1;yA(e.mode)||(e.mode===0?this.config.enableFarFieldReduce=!1:e.mode===1&&(this.config.enableFarFieldReduce=!0),t=!0),yA(e.farFieldReduceThreshold)||(this.config.farFieldReduceThreshold=e.farFieldReduceThreshold,t=!0),t&&this.workletNode.port.postMessage({type:"setConfig",data:this.config})}destroy(){this.workletNode&&(this.workletNode.port.onmessage=null)}};l(_T,"updateValidateRule",{type:"object",properties:{mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}}}),l(_T,"stopValidateRule",{type:"object"}),l(_T,"Name","AIDenoiser");var wq=_T,Sq=Mo(Ng(),1),Gq=class extends Sq.EventEmitter{constructor(){super(),l(this,"observer"),l(this,"state","nominal"),this.onPressureChange=this.onPressureChange.bind(this)}get stateNum(){switch(this.state){case"nominal":return 1;case"fair":return 2;case"serious":return 3;case"critical":return 4}}start(){return X(this,null,(function*(){if(!this.observer)try{"PressureObserver"in window&&!Oi&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(A){wi.uploadEvent({log:"stat-pressure-detector-start-failed",error:A})}}))}onPressureChange(A){let e=this.stateNum,t=A[A.length-1];this.state=t.state,(this.stateNum>3||e>3)&&K.info("".concat(t.source,": ").concat(t.state)),this.emit("state-changed",{type:t.source,state:this.state})}destroy(){var A;try{(A=this.observer)==null||A.disconnect(),this.observer=null}catch(e){wi.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:e})}}},Nx=new Gq,KJ=0,HJ=class TK{constructor(e){this.core=e,l(this,"log"),l(this,"_seiMessageList",[]),l(this,"_smallSeiMessageList",[]),l(this,"_subStreamSeiMessageList",[]),KJ++,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(KJ)}),this.log.info("[sei] created id=".concat(this.getAlias()).concat(KJ)),this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode(e){let{frame:t,mediaType:i}=e;try{return Rx({frame:t,seiMessageList:i===8?this._smallSeiMessageList:i===2?this._subStreamSeiMessageList:this._seiMessageList})}catch(o){this.log.warn(o)}return t}decode(e){let{frame:t,track:i}=e;return mx({frame:t,onSEI:o=>{o.forEach((g=>{i!=null&&i.userId?this.core.trtc.emit(Te.SEI_MESSAGE,{seiPayloadType:g.seiPayloadType,data:g.seiPayload.buffer,userId:(i==null?void 0:i.userId)||"",streamType:(i==null?void 0:i.mediaType)===2?"sub":"main"}):this.core.innerEmitter.emit(this.core.INNER_EVENT.SEI_MESSAGE,{room:this.core.room,nalu:g})}))}})}destroy(){this.log.debug("destroy"),this.stop(),delete this.core}getValidateRule(e){switch(e){case"start":case"update":case"stop":return{type:"object"}}}start(){this.core.room.videoManager.addEncodeProcessor({processor:vB?this.encode:Rx,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:vB?this.decode:mx,type:2})}stop(){this.core.room.videoManager.removeEncodeProcessor({type:2}),this.core.room.videoManager.removeDecodeProcessor({type:2})}update(e){let{buffer:t,options:i}=e;var o;let g=[i.seiPayloadType,t],r=!!i.small;i.toSubStream?this._subStreamSeiMessageList.push(g):(this._seiMessageList.push(g),r&&this._smallSeiMessageList.push(g)),(o=this.core.room.scriptTransformWorker)==null||o.postMessage({type:"sei",data:g,isMain:!i.toSubStream,small:r})}getName(){return TK.Name}getAlias(){return"sei"}getGroup(){return"sei"}};l(HJ,"autoStart",!0),l(HJ,"Name","SEI");var Mq=HJ;function Fx(A){let{frame:e,onDump:t}=A;return t==null||t(),e}function vx(A){let{frame:e,onDump:t}=A;return t==null||t(),e}var LT,kq=0,OJ=class UK{constructor(e){this.core=e,l(this,"_core"),l(this,"log"),l(this,"dumpLocalVideoMap",{}),l(this,"dumpRemoteVideoMap",{}),l(this,"dialog"),this._core=e,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(++kq)}),this.log.info("created")}getName(){return UK.Name}getAlias(){return"dm"}getGroup(){return"dm"}getValidateRule(e){switch(e){case"start":return{name:"StartDebugOptions",required:!1};case"update":return{name:"UpdateDebugOptions",required:!1};case"stop":return{name:"StopDebugOptions",required:!1}}}start(){return X(this,null,(function*(){var e;!new URLSearchParams(location.search).has("trtcDebug")&&((e=window.sessionStorage)==null?void 0:e.getItem("TRTC_ENABLE_DEBUG_PLUGIN"))!=="true"||(yield this.openDebugDiaLog(),this.addVideoProcessor())}))}update(e){return X(this,arguments,(function(t){var i=this;let{visible:o}=t;return(function*(){o?(yield i.openDebugDiaLog(),i.addVideoProcessor()):(i.closeDebugDiaLog(),i.removeVideoProcessor())})()}))}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor()}destroy(){this.stop()}openDebugDiaLog(){return X(this,null,(function*(){var e;if(!this.dialog)try{if(LT)yield LT;else{let t=new URLSearchParams(location.search).get("trtcDebugDialogPath")||((e=window.sessionStorage)==null?void 0:e.getItem("TRTC_DEBUG_DIALOG_PATH"))||"https://unpkg.com/".concat("trtc-sdk-v5","@").concat(ia,"/assets/debug-dialog.js");LT=this._core.fileDownloader.loadScript(t),yield LT}this.dialog=new TRTCDebugDialog(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(t){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(t))}}))}closeDebugDiaLog(){this.dialog&&(this.dialog.closeDialog(),this.dialog=null)}addVideoProcessor(){this._core.room.videoManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeVideo.bind(this):Fx,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):vx,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo(e){let{frame:t,mediaType:i}=e;return Fx({frame:t,onDump:()=>{if(!i)return;let o=i===2?"sub":"main",g=this.dumpLocalVideoMap[o];g&&(g.data.push(t.data.slice(0)),g.duration>0&&Date.now()-g.startTimestamp>1e3*g.duration&&g.onDumpEnd())}})}decodeVideo(e){let{frame:t,track:i}=e;return vx({frame:t,onDump:()=>{if(!i)return;let o=this.dumpRemoteVideoMap["".concat(i.userId,"-").concat(i.streamType)];o&&(o.data.push(t.data.slice(0)),o.duration>0&&Date.now()-o.startTimestamp>1e3*o.duration&&o.onDumpEnd())}})}};l(OJ,"Name","Debug"),l(OJ,"autoStart",!0);var Nq=OJ,Tx=A=>{switch(A){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},Ux=class{constructor(A,e,t){l(this,"trackDoneOB"),l(this,"startOB"),l(this,"stopOB"),l(this,"inputFrameCount",0),l(this,"decodedFrameCount",0),l(this,"type","auto"),l(this,"config"),l(this,"decoder"),l(this,"_decodeSink");let{kvStatManager:i,trtc:o}=A;this.config=t.config,this.trackDoneOB=Fi(e,pt.INIT),this.stopOB=Ks(),this.startOB=Ks(),t.type==="auto"?this.type="webCodecs":this.type=t.type;let g=Ks();Yi(this.startOB,cJ(0),pT((r=>{let n=this.pipe(e);return g.next("STARTING"),e.log.info("decoder type: ".concat(this.type)),Yi(n,Nr(this.stopOB),eg((()=>{}),(I=>{e.log.error(I),i.addFailedEvent({key:Tx(this.type),error:I}),r>4?this.startOB.error(I):this.startOB.next(r+1)}))),Yi(n,jy(1),V2(uJ))})),Nr(this.stopOB),eg((()=>{e.player.setOutput(),g.next("STARTED")}),(r=>{g.next("FAILED")}),(()=>{i.addSuccessEvent({key:Tx(this.type)}),i.addSuccessEvent({key:504702})})))}mock(A){this._decodeSink?this._decodeSink.error(A):this.startOB.next(0)}close(A){this.stopOB.next(A)}pipe(A){return TG()((e=>X(this,null,(function*(){this._decodeSink=e,e.defer((()=>{var i;(i=this.decoder)==null||i.close()}));let{type:t}=this;try{t==="webCodecs"&&(this.decoder=new AudioDecoder({error:i=>{A.log.error(i),e.error(4)},output:i=>{this.decodedFrameCount++,e.next(i),A.player.write(i)}})),this.decoder.configure(this.config)}catch(i){A.log.error(i),e.error(t==="webCodecs"?2:6)}}))))}decodeFrame(A){var e;this.inputFrameCount++,((e=this.decoder)==null?void 0:e.state)==="configured"&&this.decoder.decode(new EncodedAudioChunk({data:A.data,timestamp:A.timestamp,type:"key"}))}},Fq={type:"object"},_x=class t2{constructor(e){this.core=e,l(this,"log"),l(this,"contextMap",new Map),l(this,"decodeProcessorMap",new WeakMap),this.log=e.log.createChild({id:"".concat(this.getAlias())})}getAlias(){return t2.Name}getGroup(e){return e.track.userId+e.track.streamType}getName(){return t2.Name}getValidateRule(e){return Fq}start(e){let{track:t}=e;this.decodeProcessorMap.set(t,this.decode(e)),this.core.room.audioManager.addDecodeProcessor({processor:i=>{let{frame:o,track:g}=i;return this.decodeProcessorMap.has(g)?this.decodeProcessorMap.get(g)({frame:o,track:g}):o},type:3})}decode(e){return t=>{let{frame:i,track:o}=t;if(o!==e.track)return i;if(this.contextMap.has(o))return this.contextMap.get(o).decodeFrame(i);let g=new Ux(this.core,o,e);return Yi(g.trackDoneOB,jy(1),eg((()=>{this.core.clearStarted(this,this.getGroup(e)),this.stop({track:o})}))),this.contextMap.set(o,g),g.decodeFrame(i)}}stop(e){let{track:t}=e,i=this.contextMap.get(t);i&&(i.close("stop"),this.contextMap.delete(t),this.contextMap.size===0&&this.core.room.audioManager.removeDecodeProcessor({type:3}))}update(e){let t=this.contextMap.get(e.track);if(t){if(e.type==="mock")return void t.mock(10);t.close("update"),this.contextMap.set(e.track,new Ux(this.core,e.track,e))}}};l(_x,"Name","TRTCAudioDecoder");var Lx=_x,bx=class{constructor(){l(this,"log"),this.log=K.createLogger({id:"exp"})}call(A,e){return X(this,null,(function*(){return Ni(this[A])?this[A](e):Promise.reject(new oe({code:OA.INVALID_PARAMETER,message:nt({key:$e.API_NOT_EXIST,data:{name:A}})}))}))}enableAudioFrameEvent(A){return X(this,null,(function*(){let{trtcInstance:e,enable:t,userId:i,sampleRate:o=48e3,channelCount:g=1,port:r}=A,{audioManager:n}=e.room,{getPCMAbortCtrlMap:I,audioFrameEventConfigMap:C}=n;if(C.set(i,{enable:t,sampleRate:o,channelCount:g,port:r}),t)if(i==="*")e.room.remotePublishedUserMap.forEach((u=>{if(u.remoteAudioTrack.isAvailable){if(I.get(u.userId))return;let R=n.getPCM((M=>{e.emit(Te.AUDIO_FRAME,M)}),u.userId);I.set(u.userId,R)}}));else{if(I.get(i))return;let u=n.getPCM((R=>{e.emit(Te.AUDIO_FRAME,R)}),i);I.set(i,u)}else if(i==="*")e.room.remotePublishedUserMap.forEach((u=>{if(u.remoteAudioTrack.isSubscribed){let{userId:R}=u,M=I.get(R);M==null||M.abort("disable"),I.delete(R)}}));else{let u=I.get(i);u==null||u.abort("disable"),I.delete(i)}}))}resumeRemotePlayer(A){return X(this,null,(function*(){if(A.userId==="*"){let t=[];return A.trtcInstance.room.remotePublishedUserMap.forEach((i=>{let{remoteAudioTrack:o,remoteVideoTrack:g,remoteAuxiliaryTrack:r}=i;A.streamType?A.streamType==="main"?(o.isAvailable&&t.push(o.player.resume()),g.isAvailable&&t.push(g.player.resume())):r.isAvailable&&t.push(r.player.resume()):(o.isAvailable&&t.push(o.player.resume()),g.isAvailable&&t.push(g.player.resume()),r.isAvailable&&t.push(r.player.resume()))})),Promise.all(t)}let e=A.trtcInstance.room.remotePublishedUserMap.get(A.userId);if(e)return A.streamType==="main"?Promise.all([e.remoteAudioTrack.player.resume(),e.remoteVideoTrack.player.resume()]):e.remoteAuxiliaryTrack.player.resume()}))}pauseRemotePlayer(A){if(A.userId==="*")A.trtcInstance.room.remotePublishedUserMap.forEach((e=>{let{remoteAudioTrack:t,remoteVideoTrack:i,remoteAuxiliaryTrack:o}=e;A.streamType?A.streamType==="main"?(t.isAvailable&&t.player.pause(),i.isAvailable&&i.player.pause(!1)):o.isAvailable&&o.player.pause(!1):(t.isAvailable&&t.player.pause(),i.isAvailable&&i.player.pause(!1),o.isAvailable&&o.player.pause(!1))}));else{let e=A.trtcInstance.room.remotePublishedUserMap.get(A.userId);e&&(A.streamType==="main"?(e.remoteAudioTrack.player.pause(),e.remoteVideoTrack.player.pause(!1)):e.remoteAuxiliaryTrack.player.pause(!1))}}};ne([(function(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return Gi(((i,o)=>function(){for(var g=arguments.length,r=new Array(g),n=0;n<g;n++)r[n]=arguments[n];return nq.call(this,e,r,o,this._name),i.apply(this,r)}))})({name:"options",type:"object",required:!0,properties:{enable:{required:!0,type:"boolean"},userId:{required:!0,type:"string"},sampleRate:{type:"number",values:[8e3,16e3,32e3,44100,48e3]},channelCount:{type:"number",values:[1,2]},port:{type:"messageport"}}})],bx.prototype,"enableAudioFrameEvent");var vq=new bx,Tq=Mo(Ng(),1),Uq=class extends Tq.EventEmitter{constructor(){super(),l(this,"states",{}),l(this,"permissionChangeHandler"),l(this,"log"),this.log=K.createLogger({id:"pm"}),this.permissionChangeHandler=()=>{var A,e;this.emit("permission-state-change",{camera:(A=this.states.camera)==null?void 0:A.state,microphone:(e=this.states.microphone)==null?void 0:e.state})}}request(A){return X(this,null,(function*(){if(this.log.info("request ".concat(A.join(", "))),A.length===0)return Promise.resolve();(yield navigator.mediaDevices.getUserMedia({video:A.includes("camera"),audio:A.includes("microphone")})).getTracks().forEach((e=>e.stop()))}))}get(A){return X(this,null,(function*(){try{return this.states[A]||(this.states[A]=yield navigator.permissions.query({name:A}),this.states[A].addEventListener("change",this.permissionChangeHandler)),this.log.info("get ".concat(A," permission state: ").concat(this.states[A].state)),this.states[A].state}catch(e){return this.log.error("get ".concat(A," permission failed, error: ").concat(e instanceof Error?e.message:e)),null}}))}destroy(){Object.values(this.states).forEach((A=>{A==null||A.removeEventListener("change",this.permissionChangeHandler)})),this.states={}}},bT=new Uq,Yx=0,WG=new Set,hg=null;ov(Mx),DA.checkStorage();var Dt=class HB extends GY.EventEmitter{constructor(e,t){super(),l(this,"_room"),l(this,"_eventListened",new Set),l(this,"_localVideoTrack",null),l(this,"_localAudioTrack",null),l(this,"_localScreenTrack",null),l(this,"_localScreenAudioTrack",null),l(this,"_localVideoConfig",null),l(this,"_localScreenConfig",null),l(this,"_localAudioConfig",null),l(this,"_remoteVideoConfigMap",new Map),l(this,"_remoteAudioConfigMap",new Map),l(this,"_remoteAudioVolumeMap",new Map),l(this,"_remoteAudioMuteMap",new Map),l(this,"_mediaTrackMap",new WeakMap),l(this,"_log",K.createLogger({id:"t".concat(++Yx)})),l(this,"_plugins",new Map),l(this,"_networkQuality",null),l(this,"_speakerId"),l(this,"enterRoomParams"),l(this,"_enableAutoSwitchWhenRecapturing",!0),this._room=new e(le({logger:this._log,frameWorkType:HB.frameWorkType},t)),this._room.videoDecodeFallbackType=t.videoDecodeFallback,fi(t.enableAutoSwitchWhenRecapturing)&&(this._enableAutoSwitchWhenRecapturing=t.enableAutoSwitchWhenRecapturing),this._log.info("create() ".concat(JSON.stringify(t,((i,o)=>i==="plugins"?o.map((g=>g.Name)):o)))),Object.defineProperties(this,{dumpAudio:{enumerable:!1,value(i){return this._room.audioManager.dump(i)}}}),t.plugins&&t.plugins.forEach((i=>{this._use(i,t.assetsPath)})),this._use(fq,t.assetsPath),this._use(Rq,t.assetsPath),this._use(wq,t.assetsPath),this._use(Lx,t.assetsPath),this._use(Nq),t.enableSEI&&hc&&this._use(Mq),this._room.on("audio-volume",(i=>{var o,g;!i.find((r=>r.userId===""))&&this._localAudioTrack&&i.push({userId:"",volume:Math.floor(100*((o=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?o:this._localAudioTrack.getAudioLevel())),floatVolume:(g=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?g:this._localAudioTrack.getInternalAudioLevel()}),t.volumeType===1&&i.forEach((r=>{var n;let I=r.userId===""?this._localAudioTrack:(n=this.room.remotePublishedUserMap.get(r.userId))==null?void 0:n.remoteAudioTrack;I&&(r.volume=I.dbVolume)})),t.enableDbVolume&&i.forEach((r=>{var n;let I=r.userId===""?this._localAudioTrack:(n=this.room.remotePublishedUserMap.get(r.userId))==null?void 0:n.remoteAudioTrack;I&&(r.volume=I.dbVolume)})),this.emit(Te.AUDIO_VOLUME,{result:i.sort(((r,n)=>n.volume-r.volume))})})),this._room.videoManager.on("error",(i=>{this._log.error(new Oe({code:He.OPERATION_FAILED,extraCode:5504,message:i.message,originError:i}))})),this._listenEvents(),this._initActiveSpeaker(),((i,o)=>{let{emit:g}=i;i.emit=function(){for(var r=arguments.length,n=new Array(r),I=0;I<r;I++)n[I]=arguments[I];try{return g.apply(i,n)}catch(C){let u=nt({key:$e.CATCH_HANDLER_ERROR,data:{name:o,event:n[0]},addDocLink:!1});return K.warn("".concat(u,`
|
||
|
||
`).concat(C.stack)),!1}}})(this,"trtc")}static create(e){}static _create(e,t){(function(){var o;if(ix){ix=!1,K.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info("* API Document: ".concat(gI,"/en/index.html")),console.info("* Changelog: ".concat(gI,"/en/tutorial-01-info-changelog.html")),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),K.info("TRTC Web SDK Version:",ia),_s||K.debug("Build Time:","2025-12-23 15:18:54");let g="UA: ".concat(navigator.userAgent,`
|
||
CPU core: `).concat(navigator.hardwareConcurrency,", GPU: ").concat(Cu()),r=navigator.deviceMemory;r&&(g+=", minRAM: ".concat(r,"GB")),K.info(g),K.info("URL: ".concat(location.href).concat(((o=self.frameElement)==null?void 0:o.tagName)==="IFRAME"?" in iframe":"")),Bu().then((n=>{n&&K.info(Ta)}))}})();let i=new HB(e,t||{});return WG.add(i),i.__v_skip=!0,i}get room(){return this._room}_listenEvents(){na(this,this._room).add("peer-join",(e=>{let{userId:t}=e;this.emit(Te.REMOTE_USER_ENTER,{userId:t})})).add("peer-leave",(e=>{this.emit(Te.REMOTE_USER_EXIT,{userId:e})})).add("banned",(e=>{Os(!0),this._exitRoom().finally((()=>{this.emit(Te.KICKED_OUT,{reason:e.reason})}))})).add("error",(e=>{this._exitRoom().finally((()=>{this.emit(Te.ERROR,Oe.convertFrom(e))}))})).add("signal-connection-state-changed",(e=>{this.emit(Te.CONNECTION_STATE_CHANGED,e)})).add("network-quality",(e=>{this._networkQuality=e;let t=tt(le({},e),{uplinkRTT:Math.min(e.uplinkRTT,Kl),downlinkRTT:Math.min(e.downlinkRTT,Kl)});this.emit(Te.NETWORK_QUALITY,t)})).add("remote-published",(e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach((t=>{na(t,t).add("player-state-changed",(i=>{let o=tt(le({},i),{userId:e.userId});t.kind===V.VIDEO&&(o.streamType=JB(t.streamType)),this.emit(t.kind===V.AUDIO?Te.AUDIO_PLAY_STATE_CHANGED:Te.VIDEO_PLAY_STATE_CHANGED,o)})).add("error",(i=>{i.getCode()===OA.PLAY_NOT_ALLOWED&&this.emit(Te.AUTOPLAY_FAILED,{userId:t.userId,mediaType:t.strMediaType,resume:()=>t.player.resume()})}))}))})).add("remote-unpublished",(e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach((t=>{Tg(t)}))})).add("remote-publish-state-changed",(e=>{let{prevMuteState:t,muteState:i}=e,{userId:o}=i,g=t.audioAvailable,r=t.videoAvailable,{audioAvailable:n,videoAvailable:I}=i;n||this._remoteAudioConfigMap.delete(o),I||this._removeRemoteVideoConfig(o,"main"),i.hasAuxiliary||this._removeRemoteVideoConfig(o,"sub"),r!==I&&(I?this._onVideoAvailable({userId:o,streamType:"main"}):this._onVideoUnavailable({userId:o,streamType:"main"}),this.emit(I?Te.REMOTE_VIDEO_AVAILABLE:Te.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"main"})),g!==n&&(n?this._onAudioAvailable({userId:o}):this._onAudioUnavailable({userId:o,muteState:i}),this.emit(n?Te.REMOTE_AUDIO_AVAILABLE:Te.REMOTE_AUDIO_UNAVAILABLE,{userId:o})),t.hasAuxiliary!==i.hasAuxiliary&&(i.hasAuxiliary?this._onVideoAvailable({userId:o,streamType:"sub"}):this._onVideoUnavailable({userId:o,streamType:"sub"}),this.emit(i.hasAuxiliary?Te.REMOTE_VIDEO_AVAILABLE:Te.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"sub"}))})).add("sei-message",(e=>{this.emit(Te.SEI_MESSAGE,tt(le({},e),{streamType:JB(e.streamType)}))})).add("firewall-restriction",(()=>{this.emit(Te.ERROR,new Oe({code:He.OPERATION_FAILED,extraCode:5501}))})).add("heartbeat-report",(e=>{var t,i,o,g,r,n,I;let C={2:"big",3:"small",7:"sub"},u={rtt:Math.min(e.msg_up_stream_info.msg_network_status.uint32_rtt||((t=e.msg_down_stream_info[0])==null?void 0:t.msg_network_status.uint32_rtt)||((i=this._networkQuality)==null?void 0:i.uplinkRTT)||((o=this._networkQuality)==null?void 0:o.downlinkRTT)||0,Kl),upLoss:((g=this._networkQuality)==null?void 0:g.uplinkLoss)||0,downLoss:((r=this._networkQuality)==null?void 0:r.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:(((n=e.msg_up_stream_info.msg_audio_status)==null?void 0:n.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((I=e.msg_up_stream_info.msg_audio_status)==null?void 0:I.uint32_audio_level)||0)/Ua},video:e.msg_up_stream_info.msg_video_status.filter((R=>C[R.uint32_video_stream_type])).map((R=>({bitrate:(R.uint32_video_codec_bitrate||0)/1e3,width:R.uint32_video_width,height:R.uint32_video_height,frameRate:R.uint32_video_enc_fps,videoType:C[R.uint32_video_stream_type]})))},remoteStatistics:e.msg_down_stream_info.map((R=>({userId:R.msg_user_info.str_identifier,audio:{bitrate:(R.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(R.msg_audio_status.uint32_audio_level||0)/Ua,point2pointDelay:(R.msg_audio_status.uint32_audio_p2p_delay||0)+(R.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:R.msg_audio_status.uint32_audio_cache_ms||0},video:R.msg_video_status.map((M=>({bitrate:(M.uint32_video_codec_bitrate||0)/1e3,width:M.uint32_video_width,height:M.uint32_video_height,frameRate:M.uint32_video_dec_fps,videoType:C[M.uint32_video_stream_type],point2pointDelay:(M.uint32_video_p2p_delay||0)+(M.uint32_video_cache_ms||0),jitterBufferDelay:M.uint32_video_cache_ms||0,codec:M.uint32_video_codec})))})))};this.emit(Te.STATISTICS,u)})).add("custom-message",(e=>{this.emit(Te.CUSTOM_MESSAGE,e)})).add("layerData",(e=>this.emit(Te.LAYER_DATA,e))).add("first-video-frame",(e=>{this.emit(Te.FIRST_VIDEO_FRAME,tt(le({},e),{streamType:JB(e.streamType)}))})).add("audio-frame",(e=>{this.emit(Te.AUDIO_FRAME,e)})),na(this,Ho).add("audioInputAdded",(e=>{this.emit(Te.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})})).add("audioInputRemoved",(e=>{this.emit(Te.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})})).add("videoInputAdded",(e=>{this.emit(Te.DEVICE_CHANGED,{type:"camera",action:"add",device:e})})).add("videoInputRemoved",(e=>{this.emit(Te.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})})).add("audioOutputAdded",(e=>X(this,null,(function*(){if(this.emit(Te.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),hg&&hg.deviceId===Yl){let t=(yield Gu()).find((i=>i.deviceId===Yl));t&&hg.groupId!==t.groupId&&(hg=t,this.emit(Te.DEVICE_CHANGED,{type:"speaker",action:"active",device:t}))}})))).add("audioOutputRemoved",(e=>X(this,null,(function*(){this.emit(Te.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let t=(yield Gu())[0];if(!t||!hg||hg.groupId===t.groupId)return;let i=hg.deviceId===e.deviceId,o=hg.deviceId===Yl&&hg.deviceId===t.deviceId;(i||o)&&(hg=t,this.emit(Te.DEVICE_CHANGED,{type:"speaker",action:"active",device:t}))})))),na(this,bT).add("permission-state-change",(e=>{this.emit(Te.PERMISSION_STATE_CHANGE,e)})),this.room.enableSEI&&this.on(Te.SEI_MESSAGE,(e=>{var t;let i=(t=this.room.remotePublishedUserMap.get(e.userId))==null?void 0:t.remoteVideoTrack;i&&i.updateAlphaRenderInfo(e)}))}getNetworkTime(){return ml()}use(e){let t,i;return"plugin"in e?(t=e.plugin,i=e.assetsPath):t=e,t.Name==="Chorus"&&(this.room.enableChorus=!0),this._use(t,i)}_use(e,t){let i=this._plugins.get(e.Name);if(i)return this._log.warn("duplicate install plugin",e.Name),i;let o=new e(pq.call(this,{TRTC:HB,room:this._room,assetsPath:t,errorModule:{RtcError:Oe,ErrorCode:He,CoreErrorCode:OA,ErrorCodeDictionary:GT}}));return this._plugins.set(e.Name,o),o.__v_skip=!0,e.autoStart&&this.startPlugin(e.Name),o}enterRoom(e){return X(this,null,(function*(){var t,i;this.enterRoomParams=e;let{scene:o="rtc",enableAutoPlayDialog:g=!0,autoReceiveAudio:r=!0,autoReceiveVideo:n=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!ai(e.proxy)&&e.proxy.turnServer&&((i=(t=this._room).setTurnServer)==null||i.call(t,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=g,this._room.autoReceiveAudio=r,this._room.autoReceiveVideo=n,fi(e.preferHW)&&(this._room.preferHW=e.preferHW),e.playoutDelay&&(this._room.playoutDelay=e.playoutDelay),e.jitterBufferDelay&&(this._room.jitterBufferDelay=e.jitterBufferDelay);let I={sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,privateMapKey:e.privateMapKey||null,latencyLevel:e.latencyLevel,role:e.role==="audience"?21:20,roomId:e.roomId||0,strRoomId:e.strRoomId||"",businessInfo:e.businessInfo||null,streamId:null,userDefineRecordId:e.userDefineRecordId||null,frameWorkType:e.frameWorkType,component:e.component,language:e.language,priority:e.priority,useVp8:e.useVp8,useH265:e.useH265||!1,keepAlive:e.keepAlive,videoProfileLevel:e.videoProfileLevel};e.strRoomId&&!e.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(I,o,HB.frameWorkType),this._checkTrackToPublish(),Nx.start()}))}exitRoom(){return X(this,null,(function*(){return yield this._exitRoom()}))}switchRoom(e){return X(this,null,(function*(){if(this.room.isSwitchRoomSupported())try{this._clearRemoteTracks(),yield this._room.switchRoom(e)}catch(t){if(!(t instanceof ES)||t.code!==OA.API_CALL_TIMEOUT&&t.code!==OA.SWITCH_ROOM_FAILED)throw t;this._log.warn("switchRoom ".concat(t.code===OA.API_CALL_TIMEOUT?"timeout":"failed",", fallback to exitRoom() and enterRoom()")),yield this._rejoinRoom(e)}else yield this._rejoinRoom(e)}))}_rejoinRoom(e){return X(this,null,(function*(){yield this.exitRoom();let t=le(le({},this.enterRoomParams),e);yield this.enterRoom(t)}))}_clearRemoteTracks(){new Set([...this._remoteAudioConfigMap.keys(),...this._remoteAudioMuteMap.keys()]).forEach((e=>{this._stopRemoteAudio({userId:e}).catch((()=>{}))})),[...this._remoteVideoConfigMap.keys()].forEach((e=>{let t=e.includes("main")?"main":"sub",i=e.split("_".concat(t))[0];i&&this._stopRemoteVideo({userId:i,streamType:t}).catch((()=>{}))})),this._remoteVideoConfigMap.clear(),this._remoteAudioConfigMap.clear(),this._remoteAudioMuteMap.clear(),(function(e){let t=tR.get(e);t&&(t.forEach((i=>clearTimeout(i))),tR.delete(e))})(this),this._room.remotePublishedUserMap.forEach((e=>{Tg(e.remoteAudioTrack),Tg(e.remoteVideoTrack),Tg(e.remoteAuxiliaryTrack)}))}switchRole(e,t){return X(this,null,(function*(){t!=null&&t.privateMapKey&&(this._room.privateMapKey=t.privateMapKey),t!=null&&t.latencyLevel&&(this._room.latencyLevel=t.latencyLevel),yield this._room.switchRole(e),e==="anchor"&&this._checkTrackToPublish()}))}destroy(){this._plugins.forEach((e=>{var t;return(t=e.destroy)==null?void 0:t.call(e)})),this._plugins.clear(),Tg(this),this.removeAllListeners(),this._room.destroy(),WG.delete(this),WG.size===0&&Nx.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),N.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return X(this,arguments,(function(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{publish:!0};return(function*(){if(e._localAudioTrack)return void e._log.warn("local audio is already started");let{publish:i=!0,mute:o,option:g}=t,r=new Nu(e._room.audioManager),n={},I={muted:!0};g&&(yA(g.microphoneId)?yA(g.audioTrack)||(n.customSource=g.audioTrack):n.deviceId=g.microphoneId,g&&Zt(g.captureVolume)&&r.setCaptureVolume(g.captureVolume),yA(g.profile)||(ai(g.profile)?uS[g.profile]&&r.setProfile(uS[g.profile]):r.setProfile(g.profile)),Zt(g.earMonitorVolume)&&(I.muted=!(g.earMonitorVolume>0),I.volume=g.earMonitorVolume),yA(g.echoCancellation)||(r.profile.echoCancellation=g.echoCancellation),yA(g.noiseSuppression)||(r.profile.noiseSuppression=g.noiseSuppression),yA(g.autoGainControl)||(r.profile.autoGainControl=g.autoGainControl),fi(e._enableAutoSwitchWhenRecapturing)&&(r.enableAutoSwitchWhenRecapturing=e._enableAutoSwitchWhenRecapturing)),r.on("5",(C=>{e.emit(Te.ERROR,new Oe({code:He.DEVICE_ERROR,extraCode:5309,messageParams:{error:C}}))})),r.on("2",(C=>{e.emit(Te.DEVICE_CHANGED,{type:"microphone",action:"active",device:C})})),r.on("4",(C=>{let u;C.error&&(u=Oe.convertFrom(C.error)),e.emit(Te.PUBLISH_STATE_CHANGED,tt(le({},C),{error:u}))})),r.on("6",(()=>{})),e._listenOutputTrackChanged(r),e._speakerId&&r.setAudioOutput(e._speakerId),yield r.capture(n),yA(o)||r.setMute(o),na(r,r).add("player-state-changed",(C=>{e.emit(Te.AUDIO_PLAY_STATE_CHANGED,tt(le({},C),{userId:""}))})),i&&e._room.isJoined&&e._room.publish(r).catch((()=>{})),e._localAudioTrack=r,e._localAudioConfig=tt(le({},t),{publish:i}),yield e._updateAudioPlayOption({playOption:I,track:r}),N.emit("113",{userId:"",room:e.room})})()}))}updateLocalAudio(e){return X(this,null,(function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:t,mute:i,option:o}=e,g={};o&&(o.microphoneId?yield this._localAudioTrack.switchDevice(o.microphoneId):yA(o.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(o.audioTrack)),yA(o.captureVolume)||this._localAudioTrack.setCaptureVolume(o.captureVolume),yA(o.earMonitorVolume)||(g.muted=!(o.earMonitorVolume>0),g.volume=o.earMonitorVolume),yield this._localAudioTrack.update3A(o)),this._room.isJoined&&!yA(t)&&(t&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch((()=>{})),this._localAudioConfig.publish&&!t&&this._room.unpublish(this._localAudioTrack).catch((()=>{}))),yA(i)||this._localAudioTrack.setMute(i),yield this._updateAudioPlayOption({playOption:g,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),mn(this._localAudioConfig,e)}))}stopLocalAudio(){return X(this,null,(function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch((()=>{}))),N.emit("114",{userId:"",room:this.room}),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),Tg(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null)}))}startLocalVideo(){return X(this,arguments,(function(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{publish:!0,view:null,capture:!0};return(function*(){var i;if(e._localVideoTrack)return void e._log.warn("local video is already started");let{view:o,publish:g=!0,capture:r=!0,mute:n,option:I}=t,C=new YB(e._room.videoManager),u={},R={};I&&(fi(I.avoidCropping)&&(C.avoidCropping=I.avoidCropping),I.cameraId?u.deviceId=I.cameraId:yA(I.useFrontCamera)?yA(I.videoTrack)||(u.customSource=I.videoTrack):u.facingMode=I.useFrontCamera?V.FACING_MODE_USER:V.FACING_MODE_ENVIRONMENT,yA(I.retryWhenExactFailed)||(u.retryWhenExactFailed=I.retryWhenExactFailed),I.qosPreference&&(u.contentHint=MT(I.qosPreference)),yA(I.profile)||(ai(I.profile)?rI[I.profile]&&C.setProfile(rI[I.profile]):C.setProfile(I.profile)),yA(I.fillMode)||(R.objectFit=I.fillMode),yA(I.mirror)||(R.mirror=I.mirror),yA(I.small)||(yA(I.smallMode)||(e._room.smallMode=I.smallMode),fi(I.small)&&I.small===!1?C.stopSmall():C.updateSmallConfig(kT(I.small,!0))),yA(I.rotation)||C.setRotation(I.rotation),fi(e._enableAutoSwitchWhenRecapturing)&&(C.enableAutoSwitchWhenRecapturing=e._enableAutoSwitchWhenRecapturing)),C.once("first-video-frame",(M=>{e.emit(Te.FIRST_VIDEO_FRAME,tt(le({},M),{streamType:JB(M.streamType)}))})),C.on("5",(M=>{e.emit(Te.ERROR,new Oe({code:He.DEVICE_ERROR,extraCode:5308,messageParams:{error:M}}))})),C.on("2",(M=>{e.emit(Te.DEVICE_CHANGED,{type:"camera",action:"active",device:M})})),C.on("4",(M=>{let L;M.error&&(L=Oe.convertFrom(M.error)),e.emit(Te.PUBLISH_STATE_CHANGED,tt(le({},M),{error:L}))})),C.on("6",(()=>{})),e._listenOutputTrackChanged(C),r?yield C.capture(u):(i=C.manager)==null||i.changeInput(C),yA(n)||(yield C.setMute(n)),na(C,C).add("player-state-changed",(M=>{e.emit(Te.VIDEO_PLAY_STATE_CHANGED,tt(le({},M),{userId:"",streamType:"main"}))})).add("video-size-changed",(M=>{e.emit(Te.VIDEO_SIZE_CHANGED,tt(le({},M),{streamType:JB(M.streamType)}))})),g&&e._room.isJoined&&e._room.publish(C).catch((()=>{})),e._localVideoTrack=C,e._localVideoConfig=tt(le({},t),{view:o,publish:g,capture:r}),yield e._updateVideoPlayOption({view:o,playOption:R,track:C})})()}))}updateLocalVideo(e){return X(this,null,(function*(){var t,i,o;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:g,publish:r,mute:n,capture:I,option:C}=e,u={};if(this._localVideoConfig.capture)I!==!1?C!=null&&C.cameraId?yield this._localVideoTrack.switchDevice(C==null?void 0:C.cameraId):yA(C==null?void 0:C.useFrontCamera)?yA(C==null?void 0:C.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(C==null?void 0:C.videoTrack)):yield this._localVideoTrack.switchDevice(C!=null&&C.useFrontCamera?V.FACING_MODE_USER:V.FACING_MODE_ENVIRONMENT):this._localVideoTrack.stopCapture();else if(I){let R={};R.deviceId=(C==null?void 0:C.cameraId)||((t=this._localVideoConfig.option)==null?void 0:t.cameraId),R.facingMode=C!=null&&C.useFrontCamera||(i=this._localVideoConfig.option)!=null&&i.useFrontCamera?V.FACING_MODE_USER:V.FACING_MODE_ENVIRONMENT,R.customSource=(C==null?void 0:C.videoTrack)||((o=this._localVideoConfig.option)==null?void 0:o.videoTrack),yield this._localVideoTrack.capture(R)}C&&(yA(C.profile)||(ai(C.profile)?rI[C.profile]&&this._localVideoTrack.setProfile(rI[C.profile]):this._localVideoTrack.setProfile(C.profile),(!C.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(C.cameraId))&&yA(C.useFrontCamera)&&(yield this._localVideoTrack.applyProfile())),yA(C.fillMode)||(u.objectFit=C.fillMode),yA(C.mirror)||(u.mirror=C.mirror),yA(C.rotation)||this._localVideoTrack.setRotation(C.rotation),C.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(MT(C.qosPreference)),yA(C.small)||(fi(C.small)&&!C.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(kT(C.small,!0)))),this._room.isJoined&&yA(r)&&this._localVideoConfig.publish&&I&&!this._localVideoConfig.capture&&this._room.publish(this._localVideoTrack).catch((()=>{})),this._room.isJoined&&(r??this._localVideoConfig.publish?this._room.publish(this._localVideoTrack).catch((()=>{})):this._room.unpublish(this._localVideoTrack).catch((()=>{}))),yA(n)||(yield this._localVideoTrack.setMute(n)),yield this._updateVideoPlayOption({view:g,playOption:u,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),mn(this._localVideoConfig,e)}))}stopLocalVideo(){return X(this,null,(function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch((()=>{}))),this._localVideoTrack.stop(),this._localVideoTrack.close(),Tg(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)}))}startScreenShare(){return X(this,arguments,(function(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{publish:!0,view:null};return(function*(){var i,o;if(e._localScreenTrack)return void e._log.warn("screen share is already started");let{view:g=null,publish:r=!0,muteSystemAudio:n,option:I}=t,C=new Fu(e._room.videoManager);C.on("4",(H=>{let gA;H.error&&(gA=Oe.convertFrom(H.error)),e.emit(Te.PUBLISH_STATE_CHANGED,tt(le({},H),{error:gA}))})),C.once("first-video-frame",(H=>{e.emit(Te.FIRST_VIDEO_FRAME,tt(le({},H),{streamType:JB(H.streamType)}))})),e._listenOutputTrackChanged(C),t.streamType==="main"&&(C.mediaType=4);let u=null,R={},M={};I&&(yA(I.profile)||(ai(I.profile)?Nl[I.profile]&&C.setProfile(Nl[I.profile]):C.setProfile(I.profile)),I.systemAudio&&(R.systemAudio=!0,R.echoCancellation=I.echoCancellation,R.noiseSuppression=I.noiseSuppression,R.autoGainControl=I.autoGainControl),yA(I.fillMode)||(M.objectFit=I.fillMode),I.videoTrack&&(R.videoTrack=I.videoTrack),I.audioTrack&&(R.audioTrack=I.audioTrack),I.captureElement&&(R.captureElement=I.captureElement),I.preferDisplaySurface&&(R.preferDisplaySurface=I.preferDisplaySurface),I.qosPreference&&(R.contentHint=MT(I.qosPreference)));let L=yield C.capture(R);if(C.mediaTrack.addEventListener(V.ENDED,(()=>{e._stopScreenShare(),e.emit(Te.SCREEN_SHARE_STOPPED)})),L.getAudioTracks()[0]){u=new GJ(e._room.audioManager);let H=L.getAudioTracks()[0];(i=t.option)!=null&&i.systemAudio&&!((o=t.option)!=null&&o.audioTrack)&&(u.sourceTrack=H),yield u.setInputMediaStreamTrack(H),fi(n)&&u.mediaTrack&&(u.mediaTrack.enabled=!n),e._speakerId&&u.setAudioOutput(e._speakerId)}if(na(C,C).add("player-state-changed",(H=>{e.emit(Te.VIDEO_PLAY_STATE_CHANGED,tt(le({},H),{userId:"",streamType:"sub"}))})),r&&e._room.isJoined){let H=[C];u&&(H.push(u),e._checkScreenAudioEchoCancellation(C,u)),H.forEach((gA=>e._room.publish(gA).catch((()=>{}))))}e._localScreenTrack=C,e._localScreenAudioTrack=u,e._localScreenConfig=tt(le({},t),{view:g,publish:r}),yield e._updateVideoPlayOption({view:g,playOption:M,track:C})})()}))}updateScreenShare(e){return X(this,null,(function*(){var t;if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:i,publish:o,muteSystemAudio:g,option:r}=e,n={};if(r&&(yA(r.fillMode)||(n.objectFit=r.fillMode),r.qosPreference)){let I=MT(r.qosPreference);this._localScreenTrack.setContentHint(I)}if(this._room.isJoined&&!yA(o)){if(o&&!this._localScreenConfig.publish){let I=[this._localScreenTrack];this._localScreenAudioTrack&&I.push(this._localScreenAudioTrack),I.forEach((C=>this._room.publish(C).catch((()=>{}))))}if(this._localScreenConfig.publish&&!o){let I=[this._localScreenTrack];this._localScreenAudioTrack&&I.push(this._localScreenAudioTrack),I.forEach((C=>this._room.unpublish(C).catch((()=>{}))))}}(t=this._localScreenAudioTrack)!=null&&t.mediaTrack&&fi(g)&&(this._localScreenAudioTrack.mediaTrack.enabled=!g),yield this._updateVideoPlayOption({view:i,playOption:n,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),mn(this._localScreenConfig,e)}))}stopScreenShare(){return X(this,null,(function*(){return yield this._stopScreenShare()}))}startRemoteVideo(e){return X(this,null,(function*(){let{view:t,userId:i,streamType:o,option:g}=e,r="".concat(i,"_").concat(o);if(this._remoteVideoConfigMap.has(r))return void this._log.warn("remote video has already started. userId:".concat(i,", streamType:").concat(o));let n=this._room.remotePublishedUserMap.get(i);if(!n)return;let I={},C=o==="main"?n.remoteVideoTrack:n.remoteAuxiliaryTrack;C.on("decode-failed",(u=>{this.emit(Te.ERROR,new Oe({code:He.OPERATION_FAILED,extraCode:5507,message:"video decode failed"}))})),C.on("video-size-changed",(u=>{this.emit(Te.VIDEO_SIZE_CHANGED,tt(le({},u),{streamType:JB(u.streamType)}))})),this._listenOutputTrackChanged(C),g&&(yA(g.fillMode)||(I.objectFit=g.fillMode),yA(g.mirror)||(I.mirror=g.mirror),yA(g.poster)||(I.poster=g.poster),I.canvasRender=g.canvasRender,o==="main"&&!yA(g.small)&&(!n.remoteVideoTrack.isSubscribing&&!n.remoteVideoTrack.isSubscribed&&n.remoteVideoTrack.setMediaType(g.small?8:4),this._room.changeType(g.small,C.user)),yA(g.draggable)||C.setDraggable(g.draggable)),yield this._room.subscribe(C),yield this._enableVideoDecodeFallback(C,o),yield this._updateVideoPlayOption({view:t,playOption:I,track:C}),this._emitTrackEvent(C),this._remoteVideoConfigMap.set(r,{config:e}),g&&!yA(g.receiveWhenViewVisible)&&this._observeView({remoteTrack:C,view:t,receiveWhenViewVisible:g.receiveWhenViewVisible,viewRoot:g==null?void 0:g.viewRoot})}))}updateRemoteVideo(e){return X(this,null,(function*(){var t,i;let{view:o,userId:g,streamType:r,option:n,mute:I}=e,C="".concat(g,"_").concat(r),u=this._remoteVideoConfigMap.get(C);if(!u||!this._room.remotePublishedUserMap.has(g))return;let R={};n&&(yA(n.fillMode)||(R.objectFit=n.fillMode),yA(n.mirror)||(R.mirror=n.mirror));let M=null,L=this._room.remotePublishedUserMap.get(g);if(r==="main"&&L!=null&&L.muteState.hasVideo&&(M=L.remoteVideoTrack),r==="sub"&&L!=null&&L.muteState.hasAuxiliary&&(M=L.remoteAuxiliaryTrack),!M)return;let{config:H}=u;r==="main"&&n&&!yA(n.small)&&this._room.changeType(n.small,M.user),n&&!yA(n.draggable)&&M.setDraggable(n.draggable),n&&(fi(n.pictureInPicture)&&(n.pictureInPicture?yield M.player.enterPictureInPicture():yield M.player.exitPictureInPicture()),fi(n.fullScreen)&&(n.fullScreen?yield M.player.enterFullscreen():yield M.player.exitFullscreen())),fi(I)&&(M.ignoreUpdatePlayingState=!0,I?(yield M.player.pause(),yield this.room.unsubscribe(M)):(yield this.room.subscribe(M),yield M.player.resume(!0))),yield this._updateVideoPlayOption({view:o,playOption:R,track:M,prevConfig:H}),mn(H,e);let gA=yA(n==null?void 0:n.receiveWhenViewVisible)?(t=H.option)==null?void 0:t.receiveWhenViewVisible:n.receiveWhenViewVisible,EA=yA(o)?H.view:o,TA=yA(n==null?void 0:n.viewRoot)?(i=H.option)==null?void 0:i.viewRoot:n.viewRoot;this._observeView({remoteTrack:M,view:EA,receiveWhenViewVisible:gA,viewRoot:TA})}))}stopRemoteVideo(e){return X(this,null,(function*(){return this._stopRemoteVideo(e)}))}_stopRemoteVideo(e){let t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return X(this,null,(function*(){let i=[],o=this._room.remotePublishedUserMap.get(e.userId);if(o){let{muteState:g,remoteVideoTrack:r,remoteAuxiliaryTrack:n}=o;e.streamType==="main"&&(r.stop(),g.hasVideo&&i.push(r)),e.streamType==="sub"&&(n.stop(),g.hasAuxiliary&&i.push(n))}for(let g of i)t&&(delete g.ignoreUpdatePlayingState,yield this._room.unsubscribe(g),this._mediaTrackMap.delete(g.outMediaTrack));this._removeRemoteVideoConfig(e.userId,e.streamType)}))}_removeRemoteVideoConfig(e,t){let i="".concat(e,"_").concat(t),o=this._remoteVideoConfigMap.get(i);o&&o.observer&&o.observer.disconnect(),this._remoteVideoConfigMap.delete(i)}muteRemoteAudio(e,t){return X(this,null,(function*(){this._remoteAudioMuteMap.set(e,t);try{if(e==="*")if(t)yield this._stopRemoteAudio({userId:e});else{let i=[...this._room.remotePublishedUserMap.values()];for(let o of i)o.muteState.hasAudio&&!this._remoteAudioConfigMap.has(o.userId)&&this.room.isJoined&&(yield this._startRemoteAudio({userId:o.userId}))}else t?yield this._stopRemoteAudio({userId:e}):!this._remoteAudioConfigMap.has(e)&&this.room.isJoined&&(yield this._startRemoteAudio({userId:e}))}catch(i){throw i.code!==He.OPERATION_ABORT&&this._remoteAudioMuteMap.delete(e),i}}))}setRemoteAudioVolume(e,t){if(e==="*"){this._remoteAudioVolumeMap.set("*",t),this._remoteAudioVolumeMap.forEach(((o,g)=>this._remoteAudioVolumeMap.set(g,t)));let i=[...this._room.remotePublishedUserMap.values()];for(let o of i)this._remoteAudioVolumeMap.set(o.userId,t),o.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:t},track:o.remoteAudioTrack})}else if(e){let i=this._room.remotePublishedUserMap.get(e);this._remoteAudioVolumeMap.set(e,t),i&&i.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:t},track:i.remoteAudioTrack})}}startPlugin(e,t){return X(this,null,(function*(){return e.start(t)}))}updatePlugin(e,t){return X(this,null,(function*(){return e.update(t)}))}stopPlugin(e,t){return X(this,null,(function*(){return e.stop(t)}))}enableAudioVolumeEvaluation(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:2e3,t=arguments.length>1&&arguments[1]!==void 0&&arguments[1];this._room.enableAudioVolumeEvaluation(e,t)}on(e,t,i){if(this.listeners(e).includes(t))return this;if(this._log.debug("on",e),super.on(e,t,i),this._eventListened.add(e),this.listeners(Te.AUDIO_FRAME).length>0){let{audioFrameEventConfigMap:o}=this.room.audioManager;o.get("")||o.set("",{enable:!0}),this._localAudioTrack&&this.room.audioManager.handleLocalTrackStarted({userId:"",room:this.room})}return this}emit(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];try{lq.has(e)||this._log.debug("emit ".concat(e," ").concat(JSON.stringify(i)))}catch{}return super.emit(e,...i)}off(e,t,i){if(this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners()):super.off(e,t,i),(e===HB.EVENT.AUDIO_FRAME||e==="*")&&this.listeners(HB.EVENT.AUDIO_FRAME).length===0){let{getPCMAbortCtrlMap:o}=this.room.audioManager;o.forEach((g=>{g==null||g.abort("off")})),o.clear()}return this}getAudioTrack(){let e,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{userId:"",streamType:"main"},i=null,o="main",g=!1;if(ai(t)?e=t:(e=t.userId,g=t.processed===!0,t.streamType&&(o=t.streamType)),e){let r=this._room.remotePublishedUserMap.get(e);r&&(i=r.remoteAudioTrack)}else i=o==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return i?g&&i.outMediaTrack&&i.outMediaTrack!==i.mediaTrack?i.outMediaTrack.clone():i.mediaTrack:null}getVideoTrack(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{userId:"",streamType:"main"},{userId:t="",streamType:i="main",processed:o=!1}=e,g=null;if(t==="")i==="main"&&this._localVideoTrack&&(g=this._localVideoTrack),i==="sub"&&this._localScreenTrack&&(g=this._localScreenTrack);else{let r=this._room.remotePublishedUserMap.get(t);r&&(g=i==="main"?r.remoteVideoTrack:r.remoteAuxiliaryTrack)}return g?o&&g.outMediaTrack&&g.outMediaTrack!==g.mediaTrack?g.outMediaTrack.clone():g.mediaTrack:null}getVideoSnapshot(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{userId:t,streamType:i="main"}=e;if(t){let o=this._room.remotePublishedUserMap.get(t);if(i==="main"&&o!=null&&o.muteState.hasVideo)return o.remoteVideoTrack.getVideoFrame();if(i==="sub"&&o!=null&&o.muteState.hasAuxiliary)return o.remoteAuxiliaryTrack.getVideoFrame()}else{if(i==="main"&&this._localVideoTrack)return this._localVideoTrack.getVideoFrame();if(i==="sub"&&this._localScreenTrack)return this._localScreenTrack.getVideoFrame()}return""}_setCurrentSpeaker(e){var t,i;this._speakerId=e,(t=this._localAudioTrack)==null||t.setAudioOutput(e),(i=this._localScreenAudioTrack)==null||i.setAudioOutput(e),this._room.remotePublishedUserMap.forEach((o=>o.remoteAudioTrack.setAudioOutput(e)))}setCurrentSpeaker(e){return X(this,null,(function*(){(yield Gu()).forEach((t=>{t.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(Te.DEVICE_CHANGED,{type:"speaker",action:"active",device:t}),hg=t)})),this._log.warn('the "setCurrentSpeaker" method of the instance will be deprecated in the future, please use "TRTC.setCurrentSpeaker" instead. For more information, please visit: '.concat(gI,"/en/TRTC.html#.setCurrentSpeaker"))}))}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return X(this,null,(function*(){var t;let{userId:i}=e;if(this._remoteAudioConfigMap.has(i))return void this._log.warn("remote audio has already started. userId:".concat(i));let o=this._room.remotePublishedUserMap.get(i);if(!o)return;let g={},r=o.remoteAudioTrack;r.on("decode-failed",(n=>{this.emit(Te.ERROR,new Oe({code:He.OPERATION_FAILED,extraCode:5508,message:"audio decode failed"}))})),this._listenOutputTrackChanged(r),this._speakerId&&r.setAudioOutput(this._speakerId);try{let n=(t=this._remoteAudioVolumeMap.get(i))!=null?t:this._remoteAudioVolumeMap.get("*"),I=Zt(n)?n:100;g.volume=I,this._remoteAudioConfigMap.set(i,e),yield this._room.subscribe(r),Yi(Fi(r,"decode-failed"),Nr(Fi(r,pt.INIT)),eg((()=>{this.startPlugin(Lx.Name,{track:r,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})}))),yield this._updateAudioPlayOption({playOption:g,track:r}),N.emit("115",{userId:i,room:this.room}),r.outMediaTrack&&this.room.audioManager.updateAudioReference({type:"add",audioReference:r.outMediaTrack,refId:"ra-".concat(i)})}catch(n){throw this._remoteAudioConfigMap.delete(i),n}this._emitTrackEvent(r)}))}_stopRemoteAudio(e){let t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return X(this,null,(function*(){let i=this._room.remotePublishedUserMap.get(e.userId);i&&(i.remoteAudioTrack.stop(),i.muteState.hasAudio&&t&&(yield this._room.unsubscribe(i.remoteAudioTrack)),this._mediaTrackMap.delete(i.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete("".concat(e.userId)),N.emit("116",{userId:e.userId,room:this.room}),this.room.audioManager.updateAudioReference({type:"remove",refId:"ra-".concat(e.userId)})}))}_enableVideoDecodeFallback(e,t){let i,o=this._room.videoDecodeFallbackType;o&&this._plugins.has("TRTCVideoDecoder")&&(e.log.debug("remote video will fall back when decode failed",e.id),Yi(Fi(e,"decode-failed"),Nr(Fi(e,pt.INIT)),pJ((()=>{this._room.downlinkVideoCodec!=="h265"&&this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})})),RT(Fi(e,"decode-downgrade-state-changed")),eg((g=>{i=g.state,this.emit(Te.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,tt(le({},g),{streamType:t,userId:e.userId}))}),(g=>{e.log.error("fallback",g)}),(()=>{i==="STARTED"&&e.log.info("fallback complete")}))))}_updateVideoPlayOption(e){return X(this,arguments,(function(t){let{view:i,playOption:o,track:g,prevConfig:r}=t;return(function*(){if(g.setMirror(o.mirror),yA(i)&&r&&r.view&&!zp(o)){let n=Xl(r.view);n.length>0&&(yield g.play(n,o))}if(!yA(i)){let n=Xl(i);n.length>0?yield g.play(n,o):g.stop()}})()}))}_updateAudioPlayOption(e){return X(this,arguments,(function(t){var i=this;let{playOption:o={},track:g,prevConfig:r}=t;return(function*(){if(!g.isPlayCalled)try{yield g.play(null,o)}catch{}if(yA(o.muted)||g.setPlayerMute(o.muted),yA(o.volume)||g.setAudioVolume(o.volume/100),g instanceof Nu&&g.mediaTrack){let n=o.muted===!1&&!yA(o.volume)&&o.volume>0?"add":"remove";i.room.audioManager.updateAudioReference({type:n,audioReference:g.mediaTrack,refId:"em"})}else if(g instanceof wT){let n=o.muted?0:o.volume;if(yA(n))return;i.room.audioManager.updateAudioReference({type:"updateVolume",refId:"ra-".concat(g.userId),volume:o.volume})}})()}))}_listenOutputTrackChanged(e){e.listeners("output-media-track-changed").length===0&&e.on("output-media-track-changed",(()=>this._emitTrackEvent(e,!1)))}_emitTrackEvent(e){let t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],i=e.isRemote?e.userId:"";e.outMediaTrack&&(t&&this._mediaTrackMap.get(e.outMediaTrack)===i||(this._mediaTrackMap.set(e.outMediaTrack,i),this.emit(Te.TRACK,{userId:i,streamType:JB(e.streamType),track:e.outMediaTrack,sourceTrack:e.mediaTrack})))}_checkTrackToPublish(){var e,t,i;let o=[];if((e=this._localAudioConfig)!=null&&e.publish&&this._localAudioTrack&&o.push(this._localAudioTrack),(t=this._localVideoConfig)!=null&&t.publish&&this._localVideoTrack&&o.push(this._localVideoTrack),(i=this._localScreenConfig)!=null&&i.publish&&(this._localScreenTrack&&o.push(this._localScreenTrack),this._localScreenAudioTrack&&o.push(this._localScreenAudioTrack),this._checkScreenAudioEchoCancellation(this._localScreenTrack,this._localScreenAudioTrack)),o.length!==0)return Promise.all(o.map((g=>this._room.publish(g).catch((()=>{})))))}_observeView(e){let{remoteTrack:t,view:i,receiveWhenViewVisible:o,viewRoot:g}=e;if(yA(i)||yA(o))return;let r=this._remoteVideoConfigMap.get("".concat(t.userId,"_").concat(JB(t.streamType)));if(!r)return;let n=r.observer||void 0;if(i===null||lo(i)&&i.length===0||!o)return n==null||n.disconnect(),void(t.isSubscribed||(this._log.info("_observeView observer disconnect, resubscribe",t.userId,t.strMediaType),this._room.subscribe(t).catch((()=>{}))));let I=r.visibleViewMap||new Map,C=-1;(!n||n.root!==g)&&(n==null||n.disconnect(),I.clear(),n=new IntersectionObserver((R=>{R.forEach((M=>{I.set(M.target,M.isIntersecting),t.log.info("view ".concat(M.target.id," is").concat(M.isIntersecting?"":" not"," visible"))})),clearTimeout(C),C=window.setTimeout((()=>{[...I.values()].find((M=>M))?t.isSubscribed||this._room.subscribe(t).catch((()=>{})):t.isSubscribed&&this._room.unsubscribe(t).catch((()=>{}))}),200)}),{root:g}));let u=new Set(Xl(i));I.forEach(((R,M)=>{u.has(M)||(n.unobserve(M),I.delete(M))})),u.forEach((R=>{I.set(R,!0),n.observe(R)})),n.takeRecords().forEach((R=>{I.set(R.target,R.isIntersecting)})),r.visibleViewMap=I,r.observer=n}_exitRoom(){return X(this,null,(function*(){this._room.isJoined&&(yield this._room.leave()),this._clearRemoteTracks()}))}_stopScreenShare(){return X(this,null,(function*(){var e;if(this._localScreenTrack){if(this._room.isJoined){let t=[this._localScreenTrack];this._localScreenAudioTrack&&t.push(this._localScreenAudioTrack),yield Promise.all(t.map((i=>this._room.unpublish(i).catch((()=>{})))))}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(((e=this._localScreenAudioTrack.trackSettings)==null?void 0:e.echoCancellation)===!1&&this.stopPlugin("AudioProcessor"),this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),Tg(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}}))}_checkScreenAudioEchoCancellation(e,t){return X(this,null,(function*(){var i,o;if(!e||!t)return;let g=(i=e.trackSettings)==null?void 0:i.displaySurface;if(((o=t.trackSettings)==null?void 0:o.echoCancellation)===!1&&(g==="monitor"||g==="browser"&&e.isShareCurrentTab)){this._log.warn("echoCancellation of screen audio track is disable. Try starting audioProcessor plugin");try{yield this.startPlugin("AudioProcessor",{sdkAppId:Number(this.room.sdkAppId),userId:this._room.userId,userSig:this.room.userSig,isScreenAudioNeedAudioProcess:!0,isLocalAudioNeedAudioProcess:!1})}catch(r){this._log.warn("start audioProcessor plugin failed: ",r)}}}))}_onLocalTrackCaptured(e){let{track:t}=e;t.kind==="audio"&&(!hg||FG(hg))&&(this._initActiveSpeaker(),N.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return X(this,null,(function*(){if(hg&&!FG(hg))this.emit(Te.DEVICE_CHANGED,{type:"speaker",action:"active",device:hg});else{let e=yield Gu();e[0]&&!FG(e[0])?(hg=e[0],this.emit(Te.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):N.on("102",this._onLocalTrackCaptured,this)}}))}_onAudioAvailable(e){let{userId:t}=e,i=this._remoteAudioMuteMap.has(t)?this._remoteAudioMuteMap.get(t):this._remoteAudioMuteMap.get("*");(i===!1||this._room.autoReceiveAudio&&!i)&&this._doStartRemoteAudio({userId:t}).catch((()=>{}))}_onVideoAvailable(e){let{userId:t,streamType:i}=e;if(!this._room.autoReceiveVideo)return;let o=this._room.remotePublishedUserMap.get(t);if(o){let g=i==="main"?o.remoteVideoTrack:o.remoteAuxiliaryTrack,r=[g];this._room.autoReceiveAudio&&o.remoteAudioTrack.isAvailable&&r.push(o.remoteAudioTrack),this._room.subscribe(...r).then((()=>{this._emitTrackEvent(g)})).catch((()=>{}))}}_onAudioUnavailable(e){let{userId:t,muteState:i}=e;i.hasAudio&&i.audioMuted||this._stopRemoteAudio({userId:t},!1).catch((()=>{}))}_onVideoUnavailable(e){let{userId:t,streamType:i}=e;this._stopRemoteVideo({userId:t,streamType:i},!1).catch((()=>{}))}sendSEIMessage(e,t){var i;let o=this._plugins.get("SEI");o&&(o.update({buffer:e,options:tt(le({seiPayloadType:243},t),{small:!((i=this._localVideoTrack)==null||!i.small)})}),ee.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var t,i;(i=(t=this._room).sendCustomMessage)==null||i.call(t,e),ee.addCount({key:500001,useUV:!0})}callExperimentalAPI(e,t){return X(this,null,(function*(){return this._log.info("callExperimentalAPI(".concat(e,", ").concat(JSON.stringify(t),")")),vq.call(e,le({trtcInstance:this},t))}))}static setLogLevel(e,t){K.setLogLevel(e),yA(t)||(t?K.enableUploadLog():K.disableUploadLog())}static isSupported(){return Bc(HB.frameWorkType)}static getPermissions(e){return X(this,arguments,(function(t){let{request:i=!0,types:o=["camera","microphone"]}=t;return(function*(){i&&(yield bT.request(o).catch((n=>{var I;return K.error("getPermissions request failed, error: ".concat((I=n==null?void 0:n.message)!=null?I:n))})));let[g,r]=yield Promise.all([bT.get("camera"),bT.get("microphone")]);return{camera:g,microphone:r}})()}))}static getCameraList(){return LB(!(arguments.length>0&&arguments[0]!==void 0)||arguments[0])}static getMicrophoneList(){return _B(!(arguments.length>0&&arguments[0]!==void 0)||arguments[0])}static getSpeakerList(){return Gu(!(arguments.length>0&&arguments[0]!==void 0)||arguments[0])}static setCurrentSpeaker(e){return X(this,null,(function*(){if(!Oi||e!==qG.SPEAKER&&e!==qG.HEADSET)(yield Gu()).forEach((t=>{t.deviceId===e&&(WG.forEach((i=>{i._setCurrentSpeaker(e),i.emit(Te.DEVICE_CHANGED,{type:"speaker",action:"active",device:t})})),hg=t)}));else{let t=yield HB.getMicrophoneList(),i="";if(t.forEach((o=>{o.label===e&&(i=o.deviceId)})),!i)return;WG.forEach((o=>X(this,null,(function*(){o._localAudioTrack&&(yield o.updateLocalAudio({option:{microphoneId:i}}))}))))}}))}static _addKVStat(e){let{type:t,key:i,value:o,base:g,useUV:r,version:n,max:I}=e;switch(n&&(Js.version=n),t){case"count":Js.addCount({key:i,useUV:r});break;case"enum":Js.addEnum({key:i,value:o,useUV:r});break;case"number":Js.addNumber({key:i,value:o,split:g,max:I})}}};l(Dt,"VERSION",Mx),l(Dt,"_loggerManager",K),l(Dt,"EVENT",Te),l(Dt,"ERROR_CODE",He),l(Dt,"TYPE",qG),l(Dt,"frameWorkType",30),ne([Pi({replaceArg:A=>({argIndex:0,value:{name:"plugin"in A?A.plugin.Name:A.Name,assetsPath:"assetsPath"in A?A==null?void 0:A.assetsPath:"default"}})})],Dt.prototype,"use"),ne([ir(cg.TRTC.enterRoom),Uu("room",((A,e)=>{let[t]=A,[i]=e;return(t.roomId||t.strRoomId)===(i.roomId||i.strRoomId)&&t.userId===i.userId&&t.sdkAppId===i.sdkAppId})),Gi((A=>function(e){return this._log.setUserId(e.userId),this._log.setSdkAppId(e.sdkAppId),A.call(this,e)})),Pi()],Dt.prototype,"enterRoom"),ne([Pi()],Dt.prototype,"exitRoom"),ne([ir(cg.TRTC.switchRoom),Pi(),vG()],Dt.prototype,"switchRoom"),ne([ir(cg.TRTC.switchRole),eR("room",{merge:(A,e)=>e}),Pi()],Dt.prototype,"switchRole"),ne([Pi()],Dt.prototype,"destroy"),ne([ir(cg.TRTC.startLocalAudio),Uu("audio",((A,e)=>{let[t]=A,[i]=e;var o,g;return((o=t==null?void 0:t.option)==null?void 0:o.microphoneId)===((g=i==null?void 0:i.option)==null?void 0:g.microphoneId)})),Pi()],Dt.prototype,"startLocalAudio"),ne([ir(cg.TRTC.updateLocalAudio),eR("audio",{debounce:{delay:200,getKey:()=>"".concat(Yx,"-localAudio"),isNeedToDebounce:A=>{var e;return!yA((e=A.option)==null?void 0:e.captureVolume)}}}),Pi()],Dt.prototype,"updateLocalAudio"),ne([_u("audio"),Pi()],Dt.prototype,"stopLocalAudio"),ne([ir(cg.TRTC.startLocalVideo),Uu("video",((A,e)=>{let[t]=A,[i]=e;var o,g;return((o=t==null?void 0:t.option)==null?void 0:o.cameraId)===((g=i==null?void 0:i.option)==null?void 0:g.cameraId)})),Pi()],Dt.prototype,"startLocalVideo"),ne([ir(cg.TRTC.updateLocalVideo),eR("video"),Pi()],Dt.prototype,"updateLocalVideo"),ne([_u("video"),Pi()],Dt.prototype,"stopLocalVideo"),ne([ir(cg.TRTC.startScreenShare),Uu("screen",(()=>!0)),Pi()],Dt.prototype,"startScreenShare"),ne([ir(cg.TRTC.updateScreenShare),eR("screen"),Pi()],Dt.prototype,"updateScreenShare"),ne([Pi()],Dt.prototype,"stopScreenShare"),ne([ir(cg.TRTC.startRemoteVideo),Uu((A=>"v".concat(A.userId).concat(A.streamType)),(()=>!0)),Pi({getRemoteId:A=>"".concat(A.userId,"_").concat(A.streamType)})],Dt.prototype,"startRemoteVideo"),ne([ir(cg.TRTC.updateRemoteVideo),eR((A=>"v".concat(A.userId).concat(A.streamType))),Pi({getRemoteId:A=>"".concat(A.userId,"_").concat(A.streamType)})],Dt.prototype,"updateRemoteVideo"),ne([ir(cg.TRTC.stopRemoteVideo),Gi((A=>function(e){return X(this,null,(function*(){if(e.userId==="*"){let t=[];return this._room.remotePublishedUserMap.forEach((i=>{this._remoteVideoConfigMap.has("".concat(i.userId,"_main"))&&t.push(this.stopRemoteVideo({streamType:"main",userId:i.userId}).catch((()=>{}))),this._remoteVideoConfigMap.has("".concat(i.userId,"_sub"))&&t.push(this.stopRemoteVideo({streamType:"sub",userId:i.userId}).catch((()=>{})))})),Promise.all(t)}return A.call(this,e)}))})),Pi({getRemoteId:A=>"".concat(A.userId,"_").concat(A.streamType)})],Dt.prototype,"stopRemoteVideo"),ne([_u((A=>"v".concat(A.userId).concat(A.streamType)))],Dt.prototype,"_stopRemoteVideo"),ne([ir(...cg.TRTC.muteRemoteAudio),Pi({getRemoteId:A=>A})],Dt.prototype,"muteRemoteAudio"),ne([kx(...cg.TRTC.setRemoteAudioVolume),(function(A,e){return Gi(((t,i)=>function(){for(var o=arguments.length,g=new Array(o),r=0;r<o;r++)g[r]=arguments[r];let n=tR.get(this);n||(n=new Map,tR.set(this,n));let I=e(...g),C=n.get(I);if(!C||C<=0){t.apply(this,g);let u=setTimeout((()=>{var R;(R=tR.get(this))==null||R.delete(I)}),A);n.set(I,u)}else{clearTimeout(C);let u=window.setTimeout((()=>{var R;t.apply(this,g),(R=tR.get(this))==null||R.delete(I)}),A);n.set(I,u)}}))})(200,(A=>A)),Pi({getRemoteId:A=>A})],Dt.prototype,"setRemoteAudioVolume"),ne([LJ("start"),Mu((A=>{var e;return(e=A.afterStart)==null?void 0:e.call(A)})),Uu(((A,e)=>A.disableRandomCall?null:A.getAlias()+A.getGroup(e))),Pi({replaceArg:A=>({argIndex:0,value:A.getName()}),getKVReportKey:A=>vy[A.getName()],ignoreLog:A=>A.getName()==="Debug",ignoreErrorLog:A=>A.getName()==="AudioProcessor"})],Dt.prototype,"startPlugin"),ne([LJ("update"),eR(((A,e)=>A.disableRandomCall?null:A.getAlias()+A.getGroup(e)),{merge:(A,e)=>(mn(A[1],e[1]),A)}),Pi({replaceArg:A=>({argIndex:0,value:A.getName()}),getKVReportKey:A=>sc[A.getName()]})],Dt.prototype,"updatePlugin"),ne([LJ("stop"),_u(((A,e)=>{if(A.disableRandomCall)return null;let t=A.getGroup(e),i=A.getAlias();return t==="*"?new RegExp("".concat(i,".*")):i+t})),Pi({replaceArg:A=>({argIndex:0,value:A.getName()}),getKVReportKey:A=>eT[A.getName()]})],Dt.prototype,"stopPlugin"),ne([kx(...cg.TRTC.enableAudioVolumeEvaluation)],Dt.prototype,"enableAudioVolumeEvaluation"),ne([Pi()],Dt.prototype,"getVideoSnapshot"),ne([Pi()],Dt.prototype,"_setCurrentSpeaker"),ne([Uu((A=>"a".concat(A.userId)),(()=>!0))],Dt.prototype,"_startRemoteAudio"),ne([Gi((A=>function(e){return X(this,null,(function*(){return e.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map((t=>this._stopRemoteAudio(tt(le({},e),{userId:t.userId})).catch((()=>{}))))):A.call(this,e)}))})),_u((A=>"a".concat(A.userId)))],Dt.prototype,"_stopRemoteAudio"),ne([_u("room")],Dt.prototype,"_exitRoom"),ne([_u("screen")],Dt.prototype,"_stopScreenShare"),ne([ir(...cg.TRTC.sendSEIMessage),tx({timesInSecond:30,maxSizeInSecond:8e3,getSize:function(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return e[0].byteLength}})],Dt.prototype,"sendSEIMessage"),ne([ir(cg.TRTC.sendCustomMessage),tx({timesInSecond:30,maxSizeInSecond:8e3,getSize:A=>A.data.byteLength})],Dt.prototype,"sendCustomMessage"),ne([Lu()],Dt,"create"),ne([ir(cg.TRTC.create)],Dt,"_create"),ne([Lu()],Dt,"setLogLevel"),ne([Lu()],Dt,"isSupported"),ne([Lu()],Dt,"getPermissions"),ne([Lu()],Dt,"getCameraList"),ne([Lu()],Dt,"getMicrophoneList"),ne([Lu()],Dt,"getSpeakerList");var YT=Dt,_q=class{constructor(){l(this,"_set",new Set),N.on(v.LEAVE_SUCCESS,this.delete,this),N.on(v.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess,this)}add(A){let{room:e,roomId:t}=A;if(e.scene==="rtc")return;let i=this.getKey(e.userId,t||e.roomId,e.sdkAppId,e.useStringRoomId);this._set.add(i)}delete(A){let{room:e,roomId:t}=A;if(e.scene==="rtc")return;let i=this.getKey(e.userId,e.roomId||t,e.sdkAppId,e.useStringRoomId);this._set.delete(i)}getKey(A,e,t,i){return"".concat(t,"_").concat(e,"_").concat(A,"_").concat(i)}isJoined(A){let{userId:e,roomId:t,sdkAppId:i,room:o}=A;return o.scene!=="rtc"&&this._set.has(this.getKey(e,t,i,o.useStringRoomId))}handleSwitchRoomSuccess(A){let{room:e,currentRoomId:t,targetRoomId:i}=A;e.scene!=="rtc"&&(this._set.delete(this.getKey(e.userId,t,e.sdkAppId,e.useStringRoomId)),this._set.add(this.getKey(e.userId,i,e.sdkAppId,e.useStringRoomId)))}};function Lq(){return X(this,null,(function*(){let A,e;try{let L=yield _B();A=L&&L.length}catch{}try{let L=yield LB();e=L&&L.length}catch{}let t={microphone:A,camera:e},{isH264EncodeSupported:i,isVp8EncodeSupported:o,isH264DecodeSupported:g,isVp8DecodeSupported:r,isH265EncodeSupported:n,isH265DecodeSupported:I}=this.checkSystemResult.detail,C=kA.basis(),u={webRTC:C.isWebRTCSupported,getUserMedia:C.isGetUserMediaSupported,webSocket:C.isWebSocketsSupported,screenShare:C.isScreenShareSupported,webAudio:C.isWebAudioSupported,h264Encode:i,h264Decode:g,vp8Encode:o,vp8Decode:r,h265Encode:n,h265Decode:I},R={browser:C.browser,os:C.os,trtc:u,devices:t},M={isWebCodecSupported:C.isWebCodecSupported,isMediaSessionSupported:C.isMediaSessionSupported,isWebTransportSupported:C.isWebTransportSupported};wi.uploadEvent({log:"trtcstats-".concat(JSON.stringify(R)),userId:this.userId}),this._log.info("TrtcStats-".concat(JSON.stringify(R))),wi.uploadEvent({log:"trtcadvancedstats-".concat(JSON.stringify(M)),userId:this.userId}),fG()}))}var bq=Mo(Ng()),Jx="1",qJ="2",ZG="3",Yq="4",JT="5",Jq="6",xT="7",xx="8",Fn={CLIENT_BANNED:9,CHANNEL_SETUP_RESULT:19,CHANNEL_RECONNECT_RESULT:514,JOIN_ROOM_RESULT:20,PEER_JOIN:4134,PEER_LEAVE:4135,STREAM_ADDED:16,STREAM_REMOVED:18,UPLINK_NETWORK_STATS:22,UPDATE_REMOTE_MUTE_STAT:23,PUBLISH_RESULT:4098,PUBLISH_STATE_CHANGE_RESULT:4112,UNPUBLISH_RESULT:4100,SUBSCRIBE_RESULT:4102,UNSUBSCRIBE_RESULT:4104,SUBSCRIBE_CHANGE_RESULT:4106,MUTE_RESULT:4108,UPDATE_OFFER_RESULT:4128,START_PUBLISH_TENCENT_CDN_RES:1286,STOP_PUBLISH_TENCENT_CDN_RES:1288,START_PUBLISH_GIVEN_CDN_RES:777,STOP_PUBLISH_GIVEN_CDN_RES:779,START_MIX_TRANSCODE_RES:781,STOP_MIX_TRANSCODE_RES:783,START_PUBLISH_CDN_STREAM_RES:8196,UPDATE_PUBLISH_CDN_STREAM_RES:8198,STOP_PUBLISH_CDN_STREAM_RES:8200,USER_LIST_RES:4137,SWITCH_ROLE_RES:4110,UPDATE_CONSTRAINT_CONFIG_RES:772,REBUILD_PEER_CONNECTION_RES:4150,SPC_PUBLISH_RESULT:4146,SPC_SUBSCRIBE_RESULT:4156,ABILITY_STATUS_REPORT_RESULT:4158,SERVER_FIRST_PACKAGE_RECEIVED:5e3,RECEIVE_CUSTOM_MSG:4140,FALLBACK_CODEC:66,SEND_SWITCH_ROOM_RES:4160,SEND_SWITCH_ROOM_SUBED_REQ:4161,UPDATE_NETWORK_TIME_RESULT:5001,CUSTOM_CMD_RES:8220},xq=[Fn.UPDATE_REMOTE_MUTE_STAT,Fn.UPLINK_NETWORK_STATS,Fn.USER_LIST_RES,Fn.MUTE_RESULT,Fn.SERVER_FIRST_PACKAGE_RECEIVED,Fn.RECEIVE_CUSTOM_MSG,Fn.UPDATE_NETWORK_TIME_RESULT],ut={CLIENT_BANNED:"client-banned",CHANNEL_SETUP_RESULT:"channel-setup-result",CHANNEL_RECONNECT_RESULT:"channel-reconnect-result",JOIN_ROOM_RESULT:"join-room-result",PEER_JOIN:"peer-join",PEER_LEAVE:"peer-leave",STREAM_ADDED:"stream-added",STREAM_REMOVED:"stream-removed",UPLINK_NETWORK_STATS:"uplink-network-stats",UPDATE_REMOTE_MUTE_STAT:"update-remote-mute-stat",PUBLISH_RESULT:"publish-result",PUBLISH_STATE_CHANGE_RESULT:"publish-state-change-result",UNPUBLISH_RESULT:"unpublish-result",SUBSCRIBE_RESULT:"subscribe-result",SUBSCRIBE_CHANGE_RESULT:"subscribe-change-result",UNSUBSCRIBE_RESULT:"unsubscribe-result",UPDATE_OFFER_RESULT:"update-offer-result",START_PUBLISH_TENCENT_CDN_RES:"start-publish-tencent-cdn-res",STOP_PUBLISH_TENCENT_CDN_RES:"stop-publish-tencent-cdn-res",START_PUBLISH_GIVEN_CDN_RES:"start-publish-given-cdn-res",STOP_PUBLISH_GIVEN_CDN_RES:"stop-publish-given-cdn-res",START_MIX_TRANSCODE_RES:"start-mix-transcode-res",STOP_MIX_TRANSCODE_RES:"stop-mix-transcode-res",START_PUBLISH_CDN_STREAM_RES:"start-publish-cdn-stream-res",UPDATE_PUBLISH_CDN_STREAM_RES:"update-publish-cdn-stream-res",STOP_PUBLISH_CDN_STREAM_RES:"stop-publish-cdn-stream-res",USER_LIST_RES:"user-list-res",SWITCH_ROLE_RES:"switch_role_res",MUTE_RESULT:"mute-result",UPDATE_CONSTRAINT_CONFIG_RES:"update-contraint-config-res",REBUILD_PEER_CONNECTION_RES:"rebuild-pc-res",SPC_PUBLISH_RESULT:"spc-publish-result",SPC_SUBSCRIBE_RESULT:"spc-subscribe-result",ABILITY_STATUS_REPORT_RESULT:"ability-status-report",SERVER_FIRST_PACKAGE_RECEIVED:"first-pkg-received",RECEIVE_CUSTOM_MSG:"receive-custom-msg",FALLBACK_CODEC:"fallback-codec",SEND_SWITCH_ROOM_RES:"send-switch-room-res",SEND_SWITCH_ROOM_SUBED_REQ:"send-switch-room-subed-res",UPDATE_NETWORK_TIME_RESULT:"update_network_time_result",CUSTOM_CMD_RES:"custom-cmd-res"},Kq="publish_change",Hq="join",Oq="leave",qq="quality_report",Kx="mute_uplink",Pq="publish",Hx="publish_state_change",PJ="unpublish",Vq="subscribe",Ox="unsubscribe",qx="subscribe_change",Wq="start_publishing",Zq="stop_publishing",jq="start_push_user_cdn",Xq="stop_push_user_cdn",zq="start_mcu_mix",$q="stop_mcu_mix",AP="start_publish_cdn_stream",eP="update_publish_cdn_stream",tP="stop_publish_cdn_stream",iP="get_user_list",oP="change_role",VJ="update_constraint_config",gP="rebuild_pc",rP="join/v2",aP="publish/v2",IP="subscribe/v3",nP="ability_status_report",sP="reconnect",EP="channel_msg",BP="switch_room",CP="update_network_time",KT=new Set,QP=["autoTest","relayInnerIp","relayOuterIp","mcd","newRelay","clientIp"],Px=class extends bq.default{constructor(A){var e,t,i;super(),l(this,"room"),l(this,"sdkAppId"),l(this,"userId"),l(this,"userSig"),l(this,"url"),l(this,"backupUrl"),l(this,"destroyed",!1),l(this,"_socketInUse"),l(this,"_socket"),l(this,"_backupSocket"),l(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0,bakRelayIps:[],reportToken:void 0}),l(this,"_currentState","DISCONNECTED"),l(this,"_isReconnecting",!1),l(this,"_seq",0),l(this,"_log"),l(this,"_lastMessageTime",-1),l(this,"_connectStartTime",-1),l(this,"_stopConnectRetry"),l(this,"_isFirstConnect",!0),l(this,"bytesSent",0),l(this,"bytesReceived",0),l(this,"keepAlive",!1),l(this,"signalDomainWhenUnifiedProxy"),l(this,"stopKeepAliveTimeout"),l(this,"rtt",0),this.room=A.room,this.sdkAppId=A.sdkAppId,this.userId=A.userId,this.userSig=A.userSig,this.signalDomainWhenUnifiedProxy=A.signalDomainWhenUnifiedProxy;let o=((t=(e=this.room.scheduleResult)==null?void 0:e.config)==null?void 0:t.keepAliveClient)||0;(i=this.room.joinParams)!=null&&i.keepAlive&&!o&&(o=1),o-KT.size>0&&this.room.enableSPC&&(this.keepAlive=!0,KT.add(this)),this.url=A.url,this.backupUrl=A.backupUrl,this._seq=0,this._log=K.createLogger({parent:this.room.getLogger(),id:"ws",userId:this.userId,sdkAppId:this.sdkAppId}),this.onmessage=this.onmessage.bind(this),this.onerror=this.onerror.bind(this),this.onclose=this.onclose.bind(this)}get race(){return this.room.enableSPC&&!this.room.proxy_ws}get urlParam(){let A="?sdkAppId=".concat(encodeURIComponent(this.sdkAppId),"&userId=").concat(encodeURIComponent(this.userId),"&userSig=").concat(encodeURIComponent(this.userSig),"&keepAlive=").concat(encodeURIComponent(Number(this.keepAlive)));this.signalDomainWhenUnifiedProxy&&(A+="&signalDomain=".concat(encodeURIComponent(this.signalDomainWhenUnifiedProxy)));let e=new URLSearchParams(location.search);return QP.forEach((t=>{let i=e.get("trtc_".concat(t));i&&(A+="&".concat(t,"=").concat(encodeURIComponent(i)))})),this.race?"".concat(A,"&race=1"):A}get _urlWithParam(){return"".concat(this.url).concat(this.race?"/v2/ws":"").concat(this.urlParam)}get _backupUrlWithParam(){return"".concat(this.backupUrl).concat(this.race?"/v2/ws":"").concat(this.urlParam)}get isConnected(){return this._currentState==="CONNECTED"}get isConnecting(){return this._currentState==="CONNECTING"}get isOnline(){return this._currentState==="CONNECTED"&&Date.now()-this._lastMessageTime<12e3}connect(){return X(this,arguments,(function(){var A=this;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1e4;return(function*(){if(A.isConnected)return Promise.resolve();A._log.info("connect to [".concat(A.url,", ").concat(A.backupUrl,"] ").concat(A.race?"race":"").concat(e?" timeout: ".concat(e):""," keepAlive: ").concat(Number(A.keepAlive))),A.emitConnectionStateChanged("CONNECTING"),A._connectStartTime=it();let t=[A.connectWS({url:A._urlWithParam,isMain:!0,timeout:e})];A.race&&A._backupUrlWithParam!==A._urlWithParam&&t.push(A.connectWS({url:A._backupUrlWithParam,isMain:!1,timeout:e})),A._socketInUse=yield Zl(t),A.unbindAndCloseSocket(A._socketInUse===A._socket?V.BACKUP:V.MAIN),A._isFirstConnect&&(ee.addSuccessEvent({key:521720}),A._isFirstConnect=!1),A.emitConnectionStateChanged("CONNECTED")})()}))}connectWS(A){let{url:e,timeout:t,isMain:i}=A,o=new WebSocket(e);this.bindSocket(o),i?this._socket=o:this._backupSocket=o;let g=-1;return new Promise(((r,n)=>{o.onclose=n,o.onerror=n,o.onopen=()=>r(o),t&&(g=setTimeout((()=>{this.unbindAndCloseSocket(i?V.MAIN:V.BACKUP),n(new oe({code:OA.SIGNAL_CHANNEL_SETUP_FAILED,message:"ws connect timeout"}))}),t))})).finally((()=>{o.onclose=null,o.onerror=null,o.onopen=null,clearTimeout(g)}))}bindSocket(A){A.addEventListener("close",this.onclose),A.addEventListener("error",this.onerror),A.addEventListener("message",this.onmessage)}unbindSocket(A){A.removeEventListener("close",this.onclose),A.removeEventListener("error",this.onerror),A.removeEventListener("message",this.onmessage)}unbindAndCloseSocket(A){if(A===V.MAIN){if(this._socket){this.unbindSocket(this._socket);try{this._socket.close(1e3)}catch{}this._socket=null}}else if(this._backupSocket){this.unbindSocket(this._backupSocket);try{this._backupSocket.close(1e3)}catch{}this._backupSocket=null}}onclose(A){A.target===this._socketInUse&&(this._log.warn("".concat(A.target===this._socket?"main":"backup"," is closed code:").concat(A.code," ").concat(A.reason)),this.emitConnectionStateChanged("DISCONNECTED"),(!A.wasClean||A.code!==1e3)&&this.startReconnection(),this.room.isJoining&&this.emit(JT,new oe({code:OA.SIGNAL_CHANNEL_SETUP_FAILED,message:"websocket onclose"})))}onerror(A){this._log.error("".concat(A.target===this._socket?"main":"backup"," error observed")),this.emitConnectionStateChanged("DISCONNECTED"),A.target===this._socketInUse&&(this.unbindAndCloseSocket(V.MAIN),this.unbindAndCloseSocket(V.BACKUP),this._socketInUse=null,this.reconnect()),this.room.isJoining&&this.emit(JT,new oe({code:OA.SIGNAL_CHANNEL_SETUP_FAILED,message:"websocket onerror"}))}onmessage(A){if(!this.isConnected)return;let{isOnline:e}=this;this._lastMessageTime=Date.now(),e||this.emit(xx),this.bytesReceived+=Ay(A.data);let t=JSON.parse(A.data),{cmd:i,data:o}=t,g=Object.values(Fn),r=Object.keys(Fn)[g.indexOf(i)],n=ut[r]||i;switch(xq.includes(i)||(this._log.debug("received ".concat(i," msg: ").concat(A.data)),n&&this._log.info("Received event: [ ".concat(n," ]"))),i){case Fn.CHANNEL_SETUP_RESULT:if(t.code===0)this._signalInfo.clientIp=o.clientIp,this._signalInfo.signalIp=o.signalInnerIp,o.svrTime&&fs(o.svrTime-new Date().getTime()),this._log.info("ChannelSetup Success ".concat(it()-this._connectStartTime)),ee.addSuccessEvent({key:521701,cost:it()-this._connectStartTime}),this._connectStartTime=-1,this.emit(Jx,{signalInfo:this._signalInfo});else{let I=new oe({code:OA.SIGNAL_CHANNEL_SETUP_FAILED,extraCode:t.code,message:nt({key:$e.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:t.code,errorMsg:t.message}})});this._log.error("".concat(t.code,", ").concat(t.message)),this.close(),ee.addFailedEvent({key:521701,error:I}),this.emit(JT,I)}break;case Fn.JOIN_ROOM_RESULT:t.code===0&&(this._signalInfo.relayIp=o.relayOuterIp,this._signalInfo.relayInnerIp=o.relayInnerIp,this._signalInfo.bakRelayIps=o.bakRelayIps,this._signalInfo.relayPort=o.relayPort,this._signalInfo.tinyId=t.tinyId,this._signalInfo.endReportExtend=o.endReportExtend,this._signalInfo.reportToken=o.reportToken,this._log.info("signalIp:".concat(this._signalInfo.signalIp," clientIp:").concat(this._signalInfo.clientIp," relayIp: ").concat(this._signalInfo.relayIp))),this.emit(n,{data:t});break;default:this.emit(String(n),{data:t})}}reGetSignalChannelUrl(){return X(this,null,(function*(){try{if(!this.room.joinParams)return;Os(!0),yield this.room.schedule(this.room.joinParams);let{mainUrl:A,backupUrl:e}=this.room.getSignalChannelUrl();this.url=A,this.backupUrl=e}catch{}}))}startReconnection(){if(!this._socketInUse)return;this._socketInUse.onclose=null,this._socketInUse.close(4011);let A=this._socketInUse===this._socket;this.unbindAndCloseSocket(A?V.MAIN:V.BACKUP),this._socketInUse=null,this.emitConnectionStateChanged("DISCONNECTED"),this.reconnect()}reconnect(){return X(this,null,(function*(){if(!this._isReconnecting){if(!this.room.isJoined&&this.keepAlive)return void this.close();this._isReconnecting=!0;try{this._log.warn("reconnect"),yield this.connect();let{roomId:A,useStringRoomId:e}=this.room,{relayIp:t,relayInnerIp:i,relayPort:o}=this._signalInfo,{data:g}=yield this.sendWaitForResponse({command:sP,data:{roomId:A,useStringRoomId:e,relayInnerIp:i,relayOuterIp:t,relayPort:o},responseCommand:ut.CHANNEL_RECONNECT_RESULT});g.code===0?(this._log.warn("reconnect success"),this.stopReconnection(),ee.addSuccessEvent({key:521702,cost:it()-this._connectStartTime}),this._connectStartTime=-1,this.room.syncUserList(),this.room.checkConnectionsToReconnect()):(ee.addFailedEvent({key:521702,error:g.code}),this._log.warn("reconnect failed, ".concat(g.code," ").concat(g.message)),this.room.reJoin())}catch(A){this._log.error(A),this.room.reJoin()}}}))}send(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.isConnected&&!this.room.isLeft){let t={cmd:A,data:e,userId:this.userId,tinyId:this._signalInfo.tinyId,seq:++this._seq},i=JSON.stringify(t);return this._socketInUse.send(i),this.bytesSent+=Ay(i),t.seq}}sendWaitForResponse(A){let{command:e,data:t,timeout:i=5e3,responseCommand:o,commandDesc:g,enableLog:r=!0,addReceiveTime:n=!1}=A;return new Promise(((I,C)=>{let u=()=>{clearTimeout(R),C(new oe({code:OA.API_CALL_ABORTED,message:"".concat(e," aborted due to connection closed")}))};this.once(xT,u);let R=setTimeout((()=>{this.off(o,M),this.off(xT,u);let H=new oe({code:OA.API_CALL_TIMEOUT,message:nt({key:$e.API_CALL_TIMEOUT,data:{commandDesc:g,command:e}})});r&&this._log.warn(H),C(H)}),i),M=H=>{H.data.seq===L&&(clearTimeout(R),this.off(o,M),this.off(xT,u),n&&(H.data.receiveTime=Date.now()),I(H))};this.on(o,M);let L=this.send(e,t)}))}sendWaitForResponseWithRetry(A){let{commandDesc:e,command:t,retries:i=0,retryTimeout:o=0}=A;return ou({retryFunction:this.sendWaitForResponse,onError:g=>{let{retry:r,reject:n,error:I}=g;!this.room.isJoined||this.destroyed||I.code===OA.API_CALL_ABORTED?n(I):this.isOnline?r():(this._log.warn("retry ".concat(t," when connected")),this.once(xx,r))},onRetrying:g=>{this._log.warn("".concat(e||t," timeout observed, retrying [").concat(g,"/").concat(i,"]"))},settings:{retries:i,timeout:o},context:this})(A)}getCurrentState(){return this._currentState}getSignalInfo(){return this._signalInfo}stopReconnection(){this._isReconnecting=!1,this._stopConnectRetry&&this._stopConnectRetry()}close(){this._log.info("closed"),clearTimeout(this.stopKeepAliveTimeout),KT.delete(this),this.stopReconnection(),this._signalInfo={tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,bakRelayIps:[],endReportExtend:void 0,reportToken:void 0},this._socketInUse=null,this.bytesSent=0,this.bytesReceived=0,this._stopConnectRetry&&this._stopConnectRetry(),this.unbindAndCloseSocket(V.MAIN),this.unbindAndCloseSocket(V.BACKUP),this.emitConnectionStateChanged("DISCONNECTED"),this.emit(xT)}destroy(){this.close(),this.destroyed=!0}getBackupRelayIpPair(){var A;let e=(A=this._signalInfo.bakRelayIps)==null?void 0:A.shift();return e&&(e.relayPort=e.relayPort||this._signalInfo.relayPort),e}clearBakRelayIps(){this._signalInfo.bakRelayIps=[]}stopKeepAliveIn(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:3600;if(this.keepAlive){this._log.info("stopKeepAlive in ".concat(A,"s")),this.stopKeepAliveTimeout=setTimeout((()=>{this.keepAlive=!1,this._log.info("close due to not used ".concat(A,"s")),this.close(),this.off(ut.JOIN_ROOM_RESULT,e)}),1e3*A);let e=t=>{t.data.code===0&&(this._log.info("stopKeepAlive clear timeout"),clearTimeout(this.stopKeepAliveTimeout),this.off(ut.JOIN_ROOM_RESULT,e))};this.on(ut.JOIN_ROOM_RESULT,e)}}emitConnectionStateChanged(A){A!==this._currentState&&(this._log.info("".concat(this._currentState," -> ").concat(A)),this.emit(qJ,{prevState:this._currentState,state:A}),this._currentState=A,A==="CONNECTED"?this.emit(ZG):A==="DISCONNECTED"&&this.emit(Jq))}};ne([ba({settings:{retries:1/0,timeout:2e3},onError(A,e){!this.room.isDestroyed&&!this.destroyed&&(this._isFirstConnect&&(ee.addFailedEvent({key:521720,error:A}),this._isFirstConnect=!1),e())},onRetrying(A,e){this._log.warn("retrying to connect ".concat(A)),A>=3&&A%3==0&&this.reGetSignalChannelUrl(),e&&(this._stopConnectRetry=e,(this.room.isDestroyed||this.destroyed)&&e())}})],Px.prototype,"connect");var cP=Mo(Ng()),WJ=0,ZJ=!1,HT=new Set,Vx=!1,xB=class{constructor(A){l(this,"userId"),l(this,"tinyId"),l(this,"_sdpSemantics"),l(this,"_isUplink"),l(this,"_room"),l(this,"_log"),l(this,"_signalChannel"),l(this,"_isErrorObserved",!1),l(this,"_waitForPeerConnectionConnectedPromise"),l(this,"_waitForPeerConnectionConnectedPromiseReject",null),l(this,"_peerConnection",null),l(this,"_emitter",new cP.default),l(this,"_currentState","DISCONNECTED"),l(this,"_isReconnecting",!1),l(this,"_reconnectionCount",0),l(this,"_reconnectionTimer",-1),l(this,"_isFirstConnection",!0),l(this,"_prevTime",-1),l(this,"_localAddress"),l(this,"_remoteAddress"),this.userId=A.userId,this.tinyId=A.tinyId,this._room=A.room,this._sdpSemantics=A.room.sdpSemantics,this._isUplink=A.isUplink,this._log=A.room.getLogger().createChild({id:"n-mpc",userId:this._room.userId,remoteUserId:this.userId,sdkAppId:this._room.sdkAppId,isLocal:this._isUplink}),this._signalChannel=A.signalChannel}beforeConnect(){this._prevTime<0&&(this._prevTime=it())}afterConnect(){try{this._isFirstConnection?(this._isFirstConnection=!1,ee.addSuccessEvent({key:521705,cost:Math.min(it()-this._prevTime,3e4)})):this._isReconnecting&&ee.addSuccessEvent({key:521706,cost:it()-this._prevTime}),this._prevTime=-1}catch(A){throw this._isFirstConnection?(this._isFirstConnection=!1,ee.addFailedEvent({key:521705,error:A})):this._isReconnecting&&this._reconnectionCount>=3&&ee.addFailedEvent({key:521706,error:A}),A}}initialize(){let A={iceServers:this._room.getIceServers(),iceTransportPolicy:this._room.getIceTransportPolicy(),sdpSemantics:this._sdpSemantics,bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"};this._peerConnection=new RTCPeerConnection(A),this._peerConnection.onconnectionstatechange=this.onConnectionStateChange.bind(this)}close(A){this._log.info("close connection"),this._emitter.emit("closed",A),this._isReconnecting&&this.stopReconnection(),this.closePeerConnection(),HT.delete(this)}closePeerConnection(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];this._peerConnection&&(this._log.info("close pc"),this._peerConnection.onconnectionstatechange=null,this._peerConnection.close(),this._peerConnection=null,A&&this.emitConnectionStateChangedEvent("DISCONNECTED")),this._waitForPeerConnectionConnectedPromiseReject&&this._waitForPeerConnectionConnectedPromiseReject(new oe({code:OA.API_CALL_ABORTED,message:"connection closed"}))}getDTLSTransportState(){if(!this._peerConnection)return Gs;let A=null;if(this._isUplink){if(!FB()||this._peerConnection.getSenders().length===0)return Gs;A=this._peerConnection.getSenders()[0].transport}else{if(!$g()||this._peerConnection.getReceivers().length===0)return Gs;A=this._peerConnection.getReceivers()[0].transport}return A?A.state:Gs}onConnectionStateChange(A){let e=this._peerConnection.iceConnectionState,t=this.getDTLSTransportState();if(this._log.info("connectionState: ".concat(A.target.connectionState,", ICE: ").concat(e,", DTLS: ").concat(t)),A.target.connectionState===co.CONNECTING&&this.emitConnectionStateChangedEvent("CONNECTING"),A.target.connectionState===co.FAILED||A.target.connectionState===co.CLOSED){let i="connection ".concat(A.target.connectionState,". ICE Transport state: ").concat(e,", DTLS Transport state: ").concat(t),o=new oe({message:i,code:OA.ICE_TRANSPORT_ERROR});this.emitConnectionStateChangedEvent("DISCONNECTED"),this.startReconnection(),this._isErrorObserved||this._emitter.emit("error",o)}(A.target.connectionState===co.CONNECTED||A.target.connectionState===co.COMPLETED)&&(this.logSelectedCandidate(),wi.logSuccessEvent({userId:this._room.userId,eventType:ga.ICE_CONNECTION_STATE}),this.emitConnectionStateChangedEvent("CONNECTED"))}emitConnectionStateChangedEvent(A){return A!==this._currentState&&(A==="CONNECTED"?(WJ=0,ZJ=!1,Vx=!0,HT.add(this)):HT.delete(this),N.emit(v.PEER_CONNECTION_STATE_CHANGED,{room:this._room,prevState:this._currentState,state:A,remoteUserId:this._isUplink?void 0:this.userId}),this._emitter.emit("connection-state-changed",{prevState:this._currentState,state:A}),this._currentState=A,!0)}getPeerConnection(){return this._peerConnection}getRoom(){return this._room}getUserId(){return this.userId}getTinyId(){return this.tinyId}logSelectedCandidate(){return X(this,null,(function*(){if(!this._peerConnection)return;let A=yield this._peerConnection.getStats();for(let[,e]of A)if(vg(e)){let t=A.get(e.localCandidateId),i=A.get(e.remoteCandidateId);t&&(this._log.info("local candidate: ".concat(t.candidateType," ").concat(t.protocol,":").concat(t.ip||t.address,":").concat(t.port," ").concat(t.networkType||""," ").concat(t.candidateType==="relay"?"relayProtocol:".concat(t.relayProtocol):"")),this._localAddress="".concat(t.ip||t.address,":").concat(t.port)),i&&(this._log.info("remote candidate: ".concat(i.candidateType," ").concat(i.protocol,":").concat(i.ip||i.address,":").concat(i.port)),this._remoteAddress="".concat(i.protocol,":").concat(i.ip||i.address));break}}))}getCurrentState(){return this._currentState}waitForPeerConnectionConnected(){return this._waitForPeerConnectionConnectedPromise||(this._waitForPeerConnectionConnectedPromise=new Promise(((A,e)=>{if(this._currentState==="CONNECTED")return A();this._waitForPeerConnectionConnectedPromiseReject=e;let t=r=>{r.state==="CONNECTED"&&(clearTimeout(g),o(),A())},i=r=>{let{room:n}=r;n===this._room&&(clearTimeout(g),o(),e(new oe({code:OA.API_CALL_ABORTED,message:nt({key:$e.CONNECTION_ABORTED,data:"leave room"})})))},o=()=>{N.off(v.LEAVE_SUCCESS,i,this),this._emitter.off("connection-state-changed",t,this)},g=setTimeout((()=>{o();let r=new oe({code:OA.API_CALL_TIMEOUT,message:"connection timeout"});var n;WJ+=1,n=this._signalChannel.isConnected,WJ>2&&!ZJ&&HT.size===0&&n&&(this._log.warn("firewall restriction"),ZJ=!0,this._emitter.emit("firewall-restriction")),e(r)}),RS);N.on(v.LEAVE_SUCCESS,i,this),this._emitter.on("connection-state-changed",t,this)})),this._waitForPeerConnectionConnectedPromise=this._waitForPeerConnectionConnectedPromise.finally((()=>{this._waitForPeerConnectionConnectedPromise=null,this._waitForPeerConnectionConnectedPromiseReject=null}))),this._waitForPeerConnectionConnectedPromise}getReconnectionCount(){return this._reconnectionCount}startReconnection(){this._isReconnecting=!0,this.reconnect()}clearReconnectionTimer(){this._reconnectionTimer!==-1&&(clearTimeout(this._reconnectionTimer),this._reconnectionTimer=-1)}stopReconnection(){this._log.info("stop reconnection"),this._isReconnecting=!1,this._reconnectionCount=0,this.clearReconnectionTimer(),this._signalChannel.off(ZG,this.reconnect,this)}beforeReconnect(){if(this._reconnectionTimer!==-1)return this._log.warn("reconnect() is reconnecting, ignore"),-1;if(this._reconnectionCount>=YQ()){this._log.warn("SDK has tried reconnect for ".concat(this._reconnectionCount," times, but all failed, please check your network")),this.stopReconnection();let A=new oe({code:this._isUplink?OA.UPLINK_RECONNECTION_FAILED:OA.DOWNLINK_RECONNECTION_FAILED,message:nt({key:this._isUplink?$e.UPLINK_RECONNECTION_FAILED:$e.DOWNLINK_RECONNECTION_FAILED})});return this.emitConnectionStateChangedEvent("DISCONNECTED"),this._emitter.emit("error",A),-1}return this._signalChannel.isConnected?(this._reconnectionCount+=1,this._log.warn("reconnect() trying [".concat(this._reconnectionCount,"]")),1):(this._log.warn("reconnect() signal channel is not connected, suspend reconnection until signal is connected"),this._signalChannel.once(ZG,this.reconnect,this),-1)}on(A,e,t){this._emitter.on(A,e,t)}off(A,e,t){this._emitter.off(A,e,t)}getIsReconnecting(){return this._isReconnecting}get isH264(){var A,e;return!((e=(A=this._peerConnection)==null?void 0:A.remoteDescription)==null||!e.sdp.includes("H264"))}setOffer(A){var e;return(e=this._peerConnection)==null?void 0:e.setLocalDescription(A)}setAnswer(A){var e;return(e=this._peerConnection)==null?void 0:e.setRemoteDescription(A)}};ne([yc(521712,!1)],xB.prototype,"setOffer"),ne([yc(521713,!1)],xB.prototype,"setAnswer");var Wx=Mo(nB()),Oo=function(A){return Wx.default.parse(A)},Gc=function(A){return Wx.default.write(A)},Zx=class{constructor(A){l(this,"remoteVideoTrack"),l(this,"remoteAudioTrack"),l(this,"log"),this.remoteVideoTrack=A.remoteVideoTrack,this.remoteAudioTrack=A.remoteAudioTrack,this.log=A.log.createChild({id:"pip"}),this.videoPlayer.on(bt.USER_RESUME_IN_PIP,this.handleUserResumeInPIP,this),this.videoPlayer.on(bt.USER_PAUSE_IN_PIP,this.handleUserPauseInPIP,this),this.videoPlayer.on(bt.LEAVE_PICTURE_IN_PICTURE,this.handleLeavePIP,this)}get audioPlayer(){return this.remoteAudioTrack.player}get videoPlayer(){return this.remoteVideoTrack.player}handleUserResumeInPIP(){this.audioPlayer.isPaused&&(this.log.warn("resume when in pip"),this.audioPlayer.doResume())}handleUserPauseInPIP(){this.audioPlayer.isPaused||(this.log.warn("pause when in pip"),this.audioPlayer.doPause())}handleLeavePIP(){this.audioPlayer.isPaused&&!this.audioPlayer.isPausedByUserCall&&(this.log.warn("resume after leave pip"),this.audioPlayer.doResume())}destroy(){this.videoPlayer.off(bt.USER_RESUME_IN_PIP,this.handleUserResumeInPIP,this),this.videoPlayer.off(bt.USER_PAUSE_IN_PIP,this.handleUserPauseInPIP,this),this.videoPlayer.off(bt.LEAVE_PICTURE_IN_PICTURE,this.handleLeavePIP,this)}};function jJ(A){return Object.keys(A).filter((e=>A[e]))}var OT=class _K extends xB{constructor(e){super(tt(le({},e),{isUplink:!1})),l(this,"_flag",0),l(this,"isRobot",!1),l(this,"role","anchor"),l(this,"remoteAudioTrack"),l(this,"remoteVideoTrack"),l(this,"remoteAuxiliaryTrack"),l(this,"pipSyncManager"),l(this,"ssrc",{audio:0,video:0,auxiliary:0}),l(this,"_isSDPExchanging",!1),l(this,"_videoCodec"),this.flag=e.flag,this.isRobot=e.isRobot||!1,this.remoteAudioTrack=e.remoteAudioTrack||new wT(this._room,this),this.remoteVideoTrack=e.remoteVideoTrack||new OG(this._room,this),this.remoteAuxiliaryTrack=e.remoteAuxiliaryTrack||new ex(this._room,this),this.pipSyncManager=new Zx({log:this._log,remoteVideoTrack:this.remoteVideoTrack,remoteAudioTrack:this.remoteAudioTrack})}get videoCodec(){var e,t;let i=(t=(e=this._peerConnection)==null?void 0:e.remoteDescription)==null?void 0:t.sdp;return i?i.includes("H264")?"h264":"vp8":this._videoCodec||"h264"}set videoCodec(e){this._videoCodec=e}get subscribeState(){let e={audio:!1,video:!1,auxiliary:!1,smallVideo:!1};return this.remoteVideoTrack.isSubscribed&&(8&this.remoteVideoTrack.mediaType?e.smallVideo=!0:e.video=!0),this.remoteAudioTrack.isSubscribed&&(e.audio=!0),this.remoteAuxiliaryTrack.isSubscribed&&(e.auxiliary=!0),e}get muteState(){return dB(this.flag,this.userId)}get flag(){return this._flag}set flag(e){var t,i,o;e!==this._flag&&(this._flag=e,(t=this.remoteAudioTrack)==null||t.onFlagChanged(),(i=this.remoteVideoTrack)==null||i.onFlagChanged(),(o=this.remoteAuxiliaryTrack)==null||o.onFlagChanged())}get hasMainStream(){return this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall}get hasAuxStream(){return this.muteState.hasAuxiliary}get isMainStreamSubscribed(){return(this.subscribeState.audio||this.subscribeState.video||this.subscribeState.smallVideo)&&(this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall)}get isAuxStreamSubscribed(){return this.subscribeState.auxiliary&&this.muteState.hasAuxiliary}get isSmallStreamSubscribed(){return this.subscribeState.smallVideo&&this.muteState.hasSmall}get isBigStreamSubscribed(){return this.subscribeState.video&&this.muteState.hasVideo}isStreamUnpublished(e){return e===V.MAIN?!this.muteState.hasAudio&&!this.muteState.hasVideo:!this.muteState.hasAuxiliary}initialize(){super.initialize(),this.installEvents(),this._peerConnection.ontrack=this.onTrack.bind(this)}close(e){super.close(e),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.remoteAudioTrack.close(),this.remoteVideoTrack.close(),this.remoteAuxiliaryTrack.close(),this.pipSyncManager.destroy(),this.uninstallEvents()}installEvents(){}uninstallEvents(){this._emitter.removeAllListeners()}emitConnectionStateChangedEvent(e){var t,i;let o=this._currentState,g=super.emitConnectionStateChangedEvent(e);return g&&o!==e&&((t=this.remoteVideoTrack)==null||t.emit("connection-state-changed",{prevState:o,state:e}),(i=this.remoteAuxiliaryTrack)==null||i.emit("connection-state-changed",{prevState:o,state:e})),g}onTrack(e){let t=e.streams[0],{track:i}=e,o=t.id===Ul?V.MAIN:V.AUXILIARY;this._log.debug("ontrack ".concat(o," ").concat(i.kind));let g=V.AUDIO;i.kind===V.VIDEO&&(g=o===V.MAIN?V.VIDEO:V.AUXILIARY);let r=this.remoteAudioTrack;g===V.VIDEO?r=this.remoteVideoTrack:g===V.AUXILIARY&&(r=this.remoteAuxiliaryTrack),r.setInputMediaStreamTrack(i)}addRRTRLine(e){let t=e.split(`\r
|
||
`),i=new Map;t.forEach(((g,r)=>{/^a=rtcp-fb:/.test(g)&&t[r+1]&&!/^a=rtcp-fb:/.test(t[r+1])&&i.set(r+1,"".concat(g.match(/^a=rtcp-fb:\d+/)[0]," rrtr"))}));let o=[...i];for(let g=0;g<o.length;g++){let[r,n]=o[g];t.splice(r+g,0,n)}return t.join(`\r
|
||
`)}addSPSDescription(e){let t=Oo(e);return t.media.forEach((i=>{i.type===V.VIDEO&&i.fmtp.forEach((o=>{o.config+=";sps-pps-idr-in-keyframe=1"}))})),Gc(t)}removeSDESDescription(e){let t=["urn:ietf:params:rtp-hdrext:sdes:mid","urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"],i=Oo(e);return i.media.forEach((o=>{o.ext&&(o.ext=o.ext.filter((g=>!t.includes(g.uri))))})),Gc(i)}isSubscriptionStateNotChanged(e){return JSON.stringify(e)===JSON.stringify(this.subscribeState)}subscribe(e,t){return X(this,null,(function*(){var i,o;try{if((((i=this._peerConnection)==null?void 0:i.connectionState)===co.NEW||((o=this._peerConnection)==null?void 0:o.connectionState)===co.CONNECTING)&&(yield this.waitForPeerConnectionConnected()),this.isSubscriptionStateNotChanged(e))return void(this._peerConnection||(this.initialize(),yield this.connect(e)));if(this._log.info("subscribe ".concat(t," ").concat(JSON.stringify(e))),this._peerConnection||this._isSDPExchanging){let g="subscribe_change";Object.values(e).find((r=>r===!0))||(g="unsubscribe"),yield this.sendSubscription(g,e)}else this.initialize(),yield this.connect(e)}catch(g){throw this._room.isJoined&&this.isStreamUnpublished(t)?(this._log.warn("".concat(g.message," ").concat(JSON.stringify(this.muteState))),new oe({code:OA.REMOTE_STREAM_NOT_EXIST,message:"remote user ".concat(this.userId," unpublished stream")})):g}}))}unsubscribe(e){return X(this,arguments,(function(t){var i=this;let{remoteTracks:o,streamType:g}=t;return(function*(){if(i._currentState==="CONNECTED"&&(g==="main"&&!i.isMainStreamSubscribed||g==="auxiliary"&&!i.isAuxStreamSubscribed))return void i._log.info("".concat(g," stream already unsubscribed"));let r=le({},i.subscribeState);o.forEach((I=>{switch(I.mediaType){case 1:r.audio=!1;break;case 4:r.video=!1;break;case 8:r.smallVideo=!1;break;case 2:r.auxiliary=!1}}));let n="subscribe_change";Object.values(r).find((I=>I===!0))||(n="unsubscribe"),i._log.info("".concat(n==="unsubscribe"?n:"subscribe"," ").concat(g," [").concat(jJ(r),"]")),yield i.sendSubscription(n,r),n==="unsubscribe"&&(i.closePeerConnection(),i.emitConnectionStateChangedEvent("DISCONNECTED"))})()}))}sendSubscription(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.subscribeState,i={srcTinyId:this.tinyId,srcUserId:this.userId},o=Ox,g=ut.UNSUBSCRIBE_RESULT;return e==="subscribe_change"&&(i={audio:t.audio,bigVideo:t.video,auxVideo:t.auxiliary,smallVideo:t.smallVideo,srcTinyId:this.tinyId},o=qx,g=ut.SUBSCRIBE_CHANGE_RESULT),this._signalChannel.sendWaitForResponse({command:o,data:i,responseCommand:g,timeout:1e4}).then((r=>{let{data:n}=r;if(n.code!==0){let I=new oe({code:n.code,message:nt({key:$e.ERROR_MESSAGE,data:{type:e,message:n.message}})});throw this._log.error(I),I}}))}connect(){return X(this,arguments,(function(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.subscribeState;return(function*(){try{yield e.exchangeSDP(t),yield e.waitForPeerConnectionConnected()}catch(i){throw e.closePeerConnection(!0),i}})()}))}exchangeSDP(e){return X(this,null,(function*(){try{this._isSDPExchanging=!0,yield this.createOffer(),this._log.info("createOffer success, sending offer");let{type:t,sdp:i}=this._peerConnection.localDescription,o={type:t,sdp:i,srcUserId:this.userId,srcTinyId:this.tinyId,audio:e.audio,bigVideo:e.video,auxVideo:e.auxiliary,smallVideo:e.smallVideo},g=yield this._signalChannel.sendWaitForResponse({command:Vq,commandDesc:"exchange sdp",data:o,responseCommand:ut.SUBSCRIBE_RESULT,timeout:Cv});if(!this._peerConnection){let r=new oe({code:OA.INVALID_OPERATION,message:nt({key:$e.CONNECTION_CLOSED})});throw this._log.warn(r),r}yield this.onSubscribeResult(g),this._isSDPExchanging=!1}catch(t){throw this._isSDPExchanging=!1,t}}))}createOffer(){return X(this,null,(function*(){let e={voiceActivityDetection:!1};_a()&&this._sdpSemantics===_l?(this._peerConnection.addTransceiver(V.AUDIO,{direction:Wt.RECVONLY}),this._peerConnection.addTransceiver(V.VIDEO,{direction:Wt.RECVONLY}),this._peerConnection.addTransceiver(V.VIDEO,{direction:Wt.RECVONLY})):(e.offerToReceiveAudio=!0,e.offerToReceiveVideo=!0);let t=yield this._peerConnection.createOffer(e);if(t.sdp){let{isH264DecodeSupported:i}=yield cG();i||(this._log.warn("remove h264 desc from sdp"),t.sdp=(function(o){let g=Oo(o);return g.media.forEach((r=>{var n,I;if(r.type===V.VIDEO){let C=new Set;r.rtp.forEach((R=>{let{payload:M,codec:L}=R;return L==="H264"&&C.add(M)})),r.fmtp.forEach((R=>{let{payload:M,config:L}=R,H=L.match(/apt=(\d+)/);H&&H[1]&&C.has(Number(H[1]))&&C.add(M)}));let u=R=>{let{payload:M}=R;return!C.has(M)};r.rtp=r.rtp.filter(u),r.rtcpFb=(n=r.rtcpFb)==null?void 0:n.filter(u),r.fmtp=r.fmtp.filter(u),r.payloads=(I=r.payloads)==null?void 0:I.split(" ").filter((R=>!C.has(Number(R)))).join(" ")}})),Gc(g)})(t.sdp)),t.sdp=this.addRRTRLine(t.sdp),t.sdp=this.addSPSDescription(t.sdp),t.sdp=(function(o){let g=Oo(o);return g.media.forEach((r=>{r.type===V.AUDIO&&r.fmtp.forEach((n=>{n.config+=";sprop-stereo=1;stereo=1"}))})),Gc(g)})(t.sdp),this._sdpSemantics===_l&&(t.sdp=this.removeSDESDescription(t.sdp))}yield this.setOffer(t)}))}onSubscribeResult(e){return X(this,null,(function*(){let{code:t,message:i=""}=e&&e.data||{},{type:o,sdp:g}=e&&e.data&&e.data.data||{};if(t===Pp)throw new oe({code:OA.NOT_SUPPORTED_H264,message:nt({key:$e.NOT_SUPPORTED_H264DECODE})});try{if(t!==0)throw new oe({code:t,message:nt({key:$e.EXCHANGE_SDP_FAILED,data:{errMsg:i}})});this._log.debug("accept remote answer: ".concat(g)),yield this.setAnswer({type:o,sdp:g}),this.updateSSRC(g)}catch(r){throw this._log.error(r),r}}))}updateSSRC(e){try{Oo(e).media.forEach((t=>{if(t.ssrcs)if(t.type===V.AUDIO){let i=t.ssrcs.find((o=>{var g;return(g=o.value)==null?void 0:g.includes(Ul)}));i&&(this.ssrc.audio=Number(i.id))}else{let i=t.ssrcs.find((g=>{var r;return(r=g.value)==null?void 0:r.includes(Ul)})),o=t.ssrcs.find((g=>{var r;return(r=g.value)==null?void 0:r.includes(dS)}));i&&(this.ssrc.video=Number(i.id)),o&&(this.ssrc.auxiliary=Number(o.id))}}))}catch{}}getMainStreamVideoTrackId(){return this.remoteVideoTrack&&this.remoteVideoTrack.mediaTrack?this.remoteVideoTrack.mediaTrack.id:""}getAuxStreamVideoTrackId(){return this.remoteAuxiliaryTrack&&this.remoteAuxiliaryTrack.mediaTrack?this.remoteAuxiliaryTrack.mediaTrack.id:""}reconnect(){return X(this,null,(function*(){if(!(Xg(_K.prototype,this,"beforeReconnect").call(this)<0))try{this.closePeerConnection(),this.initialize(),yield this.connect(),this.stopReconnection(),this._log.warn("reconnect() success")}catch{let t=nI(this._reconnectionCount);this._log.warn("reconnect() timeout, try again after ".concat(t/1e3,"s")),this._reconnectionTimer=setTimeout((()=>{this.clearReconnectionTimer(),this.reconnect()}),t)}}))}getIsReconnecting(){return this._isReconnecting}clearReconnectionTimer(){this._reconnectionTimer!==-1&&(clearTimeout(this._reconnectionTimer),this._reconnectionTimer=-1)}getCurrentState(){return this._currentState}setDelay(e){let{audioDelay:t,videoDelay:i}=e;this.remoteAudioTrack.stat.end2EndDelay=t,this.remoteVideoTrack.stat.end2EndDelay=i}get audioReceiver(){var e;return((e=this._peerConnection)==null?void 0:e.getReceivers()[0])||null}};ne([Gi((A=>function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return new Promise(((o,g)=>{let r=n=>{this._emitter.off("closed",r),g(new oe({code:OA.API_CALL_ABORTED,message:nt({key:$e.CONNECTION_ABORTED,data:n})}))};this._emitter.on("closed",r),A.apply(this,t).then(o,g).finally((()=>{this._emitter.off("closed",r)}))}))}))],OT.prototype,"subscribe"),ne([yc(521717,!1)],OT.prototype,"unsubscribe"),ne([Mu(xB.prototype.afterConnect),p2(xB.prototype.beforeConnect)],OT.prototype,"connect");var jx=OT,Xx={voiceActivityDetection:!1},qT=class LK extends xB{constructor(e){super(tt(le({},e),{isUplink:!0})),l(this,"localMainAudioTrack",null),l(this,"localMainVideoTrack",null),l(this,"localAuxAudioTrack",null),l(this,"localAuxVideoTrack",null),l(this,"ssrc",{audio:0,video:0,small:0,auxiliary:0}),l(this,"_isPublishingAux",!1),l(this,"_publishingLocalAudioTrack"),l(this,"_publishingLocalVideoTrack"),l(this,"_mediaSettings",{videoCodec:"",videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioCodec:"opus",audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0,auxVideoWidth:0,auxVideoHeight:0,auxVideoFps:0,auxVideoBps:0}),l(this,"flag",0)}get videoCodec(){return this._mediaSettings.videoCodec.toLowerCase()||"h264"}get isMainStreamPublished(){return!(!this.localMainAudioTrack&&!this.localMainVideoTrack)}get isAuxStreamPublished(){return!(!this.localAuxVideoTrack&&!this.localAuxAudioTrack)}initialize(){super.initialize(),this.installEvents()}reset(){this._isReconnecting&&this.stopReconnection(),this.closePeerConnection(),this.uninstallEvents()}close(e){super.close(e),this.reset(),this.emitConnectionStateChangedEvent("DISCONNECTED")}installEvents(){this._emitter.listeners("connection-state-changed").includes(this.handleConnectionStateChange)||this._emitter.on("connection-state-changed",this.handleConnectionStateChange,this)}uninstallEvents(){this._emitter.off("connection-state-changed",this.handleConnectionStateChange,this)}emitConnectionStateChangedEvent(e,t){var i,o,g;let r=this._currentState,n=super.emitConnectionStateChangedEvent(e);return n&&r!==e&&(t?t.emit("connection-state-changed",{prevState:r,state:e}):((i=this.localMainVideoTrack)==null||i.emit("connection-state-changed",{prevState:r,state:e}),(o=this.localAuxVideoTrack)==null||o.emit("connection-state-changed",{prevState:r,state:e}),(g=this._publishingLocalVideoTrack)==null||g.emit("connection-state-changed",{prevState:r,state:e}))),n}publish(e){return X(this,arguments,(function(t){var i=this;let{localAudioTrack:o,localVideoTrack:g,isAuxiliary:r}=t;return(function*(){let n;i._peerConnection||i.initialize(),o&&(i._publishingLocalAudioTrack=o),g&&(i._publishingLocalVideoTrack=g),i._isPublishingAux=r,g&&!r&&g.small&&(n=i._room.videoManager.smallTrack),i.sendMediaSettings(),_a()?yield i.publishByTransceiver({localAudioTrack:o,localVideoTrack:g,smallTrack:n,isAuxiliary:r}):yield i.publishByAddTrack({localAudioTrack:o,localVideoTrack:g,smallTrack:n}),i._publishingLocalAudioTrack=null,i._publishingLocalVideoTrack=null,i._isPublishingAux=!1,r?(g&&(i.localAuxVideoTrack=g),o&&(i.localAuxAudioTrack=o)):(g&&(i.localMainVideoTrack=g),o&&(i.localMainAudioTrack=o)),i.installTrackMuteEvents(o,g),i.sendMutedFlag()})()}))}publishByTransceiver(e){return X(this,arguments,(function(t){var i=this;let{localAudioTrack:o,localVideoTrack:g,smallTrack:r,isAuxiliary:n}=t;return(function*(){i._log.info("publish by transceiver");let I=new MediaStream,C=g==null?void 0:g.outMediaTrack,u=o==null?void 0:o.outMediaTrack;u&&I.addTrack(u),C&&I.addTrack(C);let R=i._peerConnection.getTransceivers();if(R.length===0)i._peerConnection.addTransceiver(u||V.AUDIO,{direction:Wt.SENDONLY,streams:[I]}),i._peerConnection.addTransceiver(n?V.VIDEO:C||V.VIDEO,{direction:Wt.SENDONLY,streams:[I]}),i._peerConnection.addTransceiver(r||V.VIDEO,{direction:Wt.SENDONLY,streams:[I]}),i._peerConnection.addTransceiver(n&&C||V.VIDEO,{direction:Wt.SENDONLY,streams:[I]}),yield i.connect();else{let M=[];if(u&&(R[0].sender.track||M.push(0),yield R[0].sender.replaceTrack(u),yield i.setBandwidth({bandwidth:(o==null?void 0:o.profile.bitrate)||40,type:V.AUDIO})),C){let L=n?3:1;yield R[L].sender.replaceTrack(C),yield i.setBandwidth({bandwidth:g.profile.bitrate,type:V.VIDEO,videoType:n?V.AUXILIARY:V.BIG}),M.push(L),r&&(yield R[2].sender.replaceTrack(r),yield i.setBandwidth({bandwidth:g.small.bitrate,type:V.VIDEO,videoType:V.SMALL}),M.push(2))}yield i.setTransceiverDirection(Wt.SENDONLY,M),yield i.doPublishChange(),g==null||g.emit("connection-state-changed",{prevState:"DISCONNECTED",state:"CONNECTING"}),g==null||g.emit("connection-state-changed",{prevState:"CONNECTING",state:"CONNECTED"})}})()}))}publishByAddTrack(e){return X(this,arguments,(function(t){var i=this;let{localAudioTrack:o,localVideoTrack:g,smallTrack:r}=t;return(function*(){i._log.info("publish by addtrack");let n=g==null?void 0:g.outMediaTrack,I=o==null?void 0:o.outMediaTrack;if(i._peerConnection&&i._peerConnection.connectionState!=="new")return o&&I&&(yield i.addTrack(o)),void(n&&(yield i.addTrack(g)));let C=new MediaStream;if(I&&C.addTrack(I),n&&C.addTrack(n),I&&i._peerConnection.addTrack(I,C),n&&(i._peerConnection.addTrack(n,C),r)){let u=new MediaStream;u.addTrack(r),i._peerConnection.addTrack(r,u)}yield i.connect()})()}))}enableSmall(e){return X(this,null,(function*(){let t=this._peerConnection.getTransceivers();e?this._room.videoManager.smallTrack&&(yield t[2].sender.replaceTrack(this._room.videoManager.smallTrack),yield this.setTransceiverDirection(Wt.SENDONLY,[2])):(yield t[2].sender.replaceTrack(null),yield this.setTransceiverDirection(Wt.INACTIVE,[2])),this.updateMediaSettings(),yield this.doPublishChange()}))}installTrackMuteEvents(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];t.forEach((o=>{o&&(o==null||o.on("mute",this.sendMutedFlag,this),o==null||o.on("unmute",this.sendMutedFlag,this))}))}uninstallTrackMuteEvents(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];t.forEach((o=>{o&&(o==null||o.off("mute",this.sendMutedFlag,this),o==null||o.off("unmute",this.sendMutedFlag,this))}))}unpublish(e){return X(this,arguments,(function(t){var i=this;let{localAudioTrack:o,localVideoTrack:g}=t;return(function*(){if(!Cc())return o&&o.outMediaTrack&&!g&&i.localMainVideoTrack?(yield i.removeTrack(o),void(i.localMainAudioTrack=null)):g&&g.outMediaTrack&&!o&&i.localMainAudioTrack?(yield i.removeTrack(g),void(i.localMainVideoTrack=null)):(yield i.doUnpublish(),i.uninstallTrackMuteEvents(o,g),void i.emitConnectionStateChangedEvent("DISCONNECTED",g));let r=g&&g===i.localAuxVideoTrack,n=g==null?void 0:g.outMediaTrack,I=i._peerConnection.getSenders(),C=[];o&&(r?i.localAuxAudioTrack=null:i.localMainAudioTrack=null,!i.localAuxAudioTrack&&!i.localMainAudioTrack&&(yield I[0].replaceTrack(null),C.push(0))),n&&(r?(yield I[3].replaceTrack(null),i.localAuxVideoTrack=null,i._mediaSettings=tt(le({},i._mediaSettings),{auxVideoBps:0,auxVideoFps:0,auxVideoWidth:0,auxVideoHeight:0}),C.push(3)):(yield I[1].replaceTrack(null),yield I[2].replaceTrack(null),i.localMainVideoTrack=null,i._mediaSettings=tt(le({},i._mediaSettings),{videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0}),C.push(1,2))),i.isMainStreamPublished||i.isAuxStreamPublished?(yield i.setTransceiverDirection(Wt.INACTIVE,C),yield i.doPublishChange(!1)):yield i.doUnpublish(),i.uninstallTrackMuteEvents(o,g),g==null||g.emit("connection-state-changed",{prevState:i._currentState,state:"DISCONNECTED"})})()}))}doPublishChange(){let e=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];return X(this,null,(function*(){let t={state:this._room.publishState,constraintConfig:this._mediaSettings},i=yield this._signalChannel.sendWaitForResponse({command:Hx,data:t,responseCommand:ut.PUBLISH_STATE_CHANGE_RESULT,enableLog:e});this.checkPublishResultCode(i.data.code,i.data.message)}))}doUnpublish(){let e=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return this._signalChannel.sendWaitForResponse({command:PJ,commandDesc:"unpublish",responseCommand:ut.UNPUBLISH_RESULT,enableLog:e}).catch((t=>{if(t.getCode()===OA.API_CALL_TIMEOUT)return Promise.resolve();throw t}))}updateMediaSettings(){let{detail:{isH264EncodeSupported:e,isVp8EncodeSupported:t}}=this._room.checkSystemResult;e?this._mediaSettings.videoCodec="H264":t&&(this._mediaSettings.videoCodec="VP8");let i=this._publishingLocalAudioTrack||this.localMainAudioTrack||this.localAuxAudioTrack,{localMainVideoTrack:o,localAuxVideoTrack:g}=this;if(this._publishingLocalVideoTrack&&(this._isPublishingAux?g=this._publishingLocalVideoTrack:o=this._publishingLocalVideoTrack),cc){if(i&&i.outMediaTrack){let r=i.outMediaTrack.getSettings();this._mediaSettings.audioChannel=r.channelCount||1,this._mediaSettings.audioBps=1e3*i.profile.bitrate,this._mediaSettings.audioFs=r.sampleRate||0}if(o&&o.outMediaTrack){let r=o.outMediaTrack.getSettings();this._mediaSettings.videoWidth=r.width||0,this._mediaSettings.videoHeight=r.height||0,this._mediaSettings.videoFps=r.frameRate||0,this._mediaSettings.videoBps=1e3*o.profile.bitrate,o.small&&(this._mediaSettings.smallVideoWidth=o.small.width,this._mediaSettings.smallVideoHeight=o.small.height,this._mediaSettings.smallVideoFps=o.small.frameRate,this._mediaSettings.smallVideoBps=1e3*o.small.bitrate)}if(g&&g.outMediaTrack){let r=g.outMediaTrack.getSettings();this._mediaSettings.auxVideoWidth=r.width||0,this._mediaSettings.auxVideoHeight=r.height||0,this._mediaSettings.auxVideoFps=r.frameRate||0,this._mediaSettings.auxVideoBps=1e3*g.profile.bitrate}}else i&&i.outMediaTrack&&(this._mediaSettings.audioChannel=i.profile.channelCount,this._mediaSettings.audioBps=1e3*i.profile.bitrate,this._mediaSettings.audioFs=i.profile.sampleRate),o&&o.outMediaTrack&&(this._mediaSettings.videoWidth=o.profile.width,this._mediaSettings.videoHeight=o.profile.height,this._mediaSettings.videoFps=o.profile.frameRate,this._mediaSettings.videoBps=1e3*o.profile.bitrate);this._log.info("updateMediaSettings: ".concat(JSON.stringify(this._mediaSettings)))}sendMediaSettings(){this.updateMediaSettings(),this._signalChannel.sendWaitForResponse({command:VJ,data:this._mediaSettings,responseCommand:ut.UPDATE_CONSTRAINT_CONFIG_RES}).then((e=>{e.data.code!==0&&this._log.warn(e.data.message)})).catch((()=>{}))}addTrack(e){return X(this,null,(function*(){if(!this._peerConnection)return;let t=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;this._log.info("is adding ".concat(e.kind," track to current published local ").concat(t?V.AUXILIARY:V.MAIN," stream")),_a()?yield this.addTrackByTransceiver(e,t):yield this.addTrackBySender(e)}))}addTrackByTransceiver(e,t){return X(this,null,(function*(){var i;if(!e.mediaTrack)return;let o=this._peerConnection.getTransceivers();if(e.kind===V.AUDIO)yield o[0].sender.replaceTrack(e.outMediaTrack);else{let g=t?3:1;yield o[g].sender.replaceTrack(e.outMediaTrack),g===1&&(i=this.localMainVideoTrack)!=null&&i.small&&(yield o[2].sender.replaceTrack(this._room.videoManager.smallTrack)),o[g].direction===Wt.INACTIVE&&(yield this.setTransceiverDirection(Wt.SENDONLY,[g]))}this.updateMediaSettings(),yield this.doPublishChange()}))}addTrackBySender(e){return X(this,null,(function*(){if(!e.outMediaTrack)return;let t=e.outMediaTrack;Cc()&&this._peerConnection.getTransceivers().findIndex((o=>o.direction==="stopped"))>=0&&(this._log.warn("transceiver is stopping, negotiate sdp first"),yield this.updateOffer("remove",t));let i=this._peerConnection.getSenders().find((o=>o.track&&o.track.kind===t.kind));if(i&&i.track){this._log.warn("sender already exists, remove sender first");let o=i.track;this.removeSender(i),yield this.updateOffer("remove",o)}if(t&&this._peerConnection.addTrack(t,new MediaStream([t])),t.kind===V.VIDEO&&e instanceof YB&&e.small){let o=new MediaStream,{smallTrack:g}=this._room.videoManager;o.addTrack(g),this._peerConnection.addTrack(g,o)}yield this.updateOffer("add",t)}))}isNeedToResetOfferOrder(){if(this._sdpSemantics===Ll||!this._peerConnection||!this._peerConnection.localDescription)return!1;let{sdp:e}=this._peerConnection.localDescription,t=Oo(e);for(let i=0;i<t.media.length;i++)if(Number(t.media[i].mid)===0&&t.media[i].type===V.VIDEO)return!0;return!1}removeSender(e){let t=null;Cc()&&(t=this._peerConnection.getTransceivers().find((i=>i.sender&&i.sender.track===e.track))),this._peerConnection.removeTrack(e),t&&Ni(t.stop)&&(this._log.info("stop transceiver"),t.stop())}removeTrack(e){return X(this,null,(function*(){if(!this._peerConnection)return;let t=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;this._log.info("is removing ".concat(e.kind," track from current published local ").concat(t?V.AUXILIARY:V.MAIN," stream")),_a()?yield this.removeTrackByTransceiver(e,t):yield this.removeTrackBySender(e)}))}removeTrackByTransceiver(e,t){return X(this,null,(function*(){if(!e.outMediaTrack)return;let i=this._peerConnection.getTransceivers();if(e.kind===V.AUDIO)yield i[0].sender.replaceTrack(null);else{let o=t?3:1;yield i[o].sender.replaceTrack(null),o===1&&e.small&&(yield i[2].sender.replaceTrack(null)),yield this.setTransceiverDirection(Wt.INACTIVE,[o])}this.updateMediaSettings(),yield this.doPublishChange()}))}setTransceiverDirection(e,t){return X(this,null,(function*(){if(!ei)return;let i=!1,o=!1;this._log.info("setting transceiver ".concat(t.join(",")," direction to ").concat(e));let g=this._peerConnection.getTransceivers();if(t.forEach((I=>{g[I].direction!==e&&(g[I].direction=e,i=!0)})),i){this._log.info("updating offer");let I=yield this._peerConnection.createOffer();yield this.setOffer(I)}let r=-1,n=this._peerConnection.remoteDescription.sdp.split(`\r
|
||
`).map((I=>{if(I.match(new RegExp("a=(".concat(Wt.INACTIVE,"|").concat(Wt.RECVONLY,"|").concat(Wt.SENDONLY,")")))&&r++,t.includes(r)){if(e===Wt.INACTIVE&&I.includes("a=".concat(Wt.RECVONLY)))return o=!0,"a=".concat(e);if(e===Wt.SENDONLY&&I.includes("a=".concat(Wt.INACTIVE)))return o=!0,"a=".concat(Wt.RECVONLY)}return I})).join(`\r
|
||
`);o&&(this._log.info("updating answer"),yield this.setAnswer({type:"answer",sdp:n}))}))}removeTrackBySender(e){return X(this,null,(function*(){if(!e.outMediaTrack)return;if(e.kind===V.VIDEO&&this.isNeedToResetOfferOrder()&&this.localMainAudioTrack)return this.reset(),this.initialize(),void(yield this.publish({localAudioTrack:this.localMainAudioTrack,isAuxiliary:!1}));let t=this._peerConnection.getSenders().find((i=>i.track===e.outMediaTrack));t&&(this.removeSender(t),e.kind===V.VIDEO&&e.small&&this._peerConnection.getSenders().forEach((i=>{i.track&&i.track.kind===V.VIDEO&&this.removeSender(i)}))),yield this.updateOffer("remove",e.outMediaTrack)}))}replaceTrack(e){return X(this,null,(function*(){var t;let i,o=(t=this._peerConnection)==null?void 0:t.getSenders();if(!o||o.length===0||!e.mediaTrack||(i=_a()?e.kind===V.AUDIO?o[0]:o[1]:o.find((r=>r.track&&r.track.kind===e.kind)),!i))return!1;let g=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;return this._log.info("is replacing ".concat(e.kind," track on ").concat(g?V.AUXILIARY:V.MAIN," stream")),e.kind===V.AUDIO?yield i.replaceTrack(e.outMediaTrack):e.kind===V.VIDEO&&(g?o[3]&&(yield o[3].replaceTrack(e.outMediaTrack)):yield i.replaceTrack(e.outMediaTrack)),!0}))}updateOffer(e,t){return X(this,null,(function*(){try{let i=yield this._peerConnection.createOffer(Xx);ei&&i.sdp&&(i.sdp=this.setSDPDirection(i.sdp,"sendrecv")),yield this.setOffer(i);let o=this.updateMediaSettings(),g={action:e,trackId:t.id,kind:t.kind===V.VIDEO?"bigVideo":t.kind,type:"offer",sdp:this._peerConnection.localDescription.sdp,constraintConfig:o,state:this._room.publishState};this._log.info("createOffer success, sending updated offer to remote server"),this._log.debug("updatedOffer: ".concat(g.sdp));let r=yield this._signalChannel.sendWaitForResponse({command:Kq,data:g,responseCommand:ut.UPDATE_OFFER_RESULT,timeout:Bv,commandDesc:"update offer"}),{code:n,message:I}=r.data;n!==0&&this.checkPublishResultCode(n,I),yield this.acceptAnswer(r.data.data),i.sdp&&this.updateSSRC(i.sdp)}catch(i){throw this._log.error(i),i}}))}setBandwidth(e){return X(this,arguments,(function(t){var i=this;let{bandwidth:o,type:g,videoType:r,sdp:n}=t;return(function*(){if(!Yy())return n?g===V.VIDEO?i.updateVideoBandwidthRestriction(n,o,r):i.updateAudioBandwidthRestriction(n,o):void 0;let I,C=i._peerConnection.getSenders();if(_a()){let u=0;g===V.VIDEO&&(u=r===V.SMALL?2:r===V.AUXILIARY?3:1),I=C[u]}else I=C.find((u=>u.track&&u.track.kind===g));if(I){let u=I.getParameters();(!u.encodings||u.encodings.length===0)&&(u.encodings=[{}]),u.encodings[0].maxBitrate=1e3*o;try{return yield I.setParameters(u),i._log.info("".concat(r||"").concat(g," bandwidth ").concat(o," kbps")),n}catch(R){if(i._log.info("failed to set bandwidth by setting maxBitrate: ".concat(R)),n)return g===V.VIDEO?i.updateVideoBandwidthRestriction(n,o,r):i.updateAudioBandwidthRestriction(n,o)}}return n})()}))}updateVideoBandwidthRestriction(e,t,i){let o="AS";ei&&(o="TIAS",t*=1e3);let g=0,r=-1;return i===V.SMALL?g=1:i===V.AUXILIARY&&(g=2),e=e.replace(/m=video (.*)\r\nc=IN (.*)\r\n/g,(n=>(r+=1,r===g?"".concat(n,"b=").concat(o,":").concat(t,`\r
|
||
`):n))),e}updateAudioBandwidthRestriction(e,t){let i="AS";return ei&&(i="TIAS",t*=1e3),e=e.replace(/m=audio (.*)\r\nc=IN (.*)\r\n/,`m=audio $1\r
|
||
c=IN $2\r
|
||
b=`.concat(i,":").concat(t,`\r
|
||
`))}removeBandwidthRestriction(e){return e.replace(/b=AS:.*\r\n/,"").replace(/b=TIAS:.*\r\n/,"")}removeVideoOrientation(e){return e.replace(/urn:3gpp:video-orientation/,"")}connect(){return X(this,null,(function*(){try{yield this.exchangeSDP(),yield this.waitForPeerConnectionConnected()}catch(e){throw this.closePeerConnection(!0),this.uninstallEvents(),e}}))}exchangeSDP(){return X(this,null,(function*(){try{yield this.createOffer(),this._log.info("createOffer success, sending offer to remote server"),yield this.doExchangeSDP()}catch(e){throw e}}))}createOffer(){return X(this,null,(function*(){try{let e=yield this._peerConnection.createOffer(Xx);yield this.setOffer(e),e.sdp&&this.updateSSRC(e.sdp)}catch(e){throw e}}))}doExchangeSDP(){let e={command:Pq,responseCommand:ut.PUBLISH_RESULT,data:{type:this._peerConnection.localDescription.type,sdp:this.removeVideoOrientation(this._peerConnection.localDescription.sdp),screen:this.localMainVideoTrack instanceof Fu||this.localAuxVideoTrack instanceof Fu,state:this._room.publishState,constraintConfig:this._mediaSettings},enableLog:!1};return this._log.debug("sending sdp offer: ".concat(e.data.sdp)),this._signalChannel.sendWaitForResponse(e).then((t=>{let{code:i,message:o,data:g}=t.data;return i===0?this.acceptAnswer(g):this.checkPublishResultCode(i,o)}))}setSDPDirection(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"all",o=Oo(e);return o.media.forEach((g=>{(i==="all"||g.type===i)&&(g.direction=t)})),Gc(o)}acceptAnswer(e){return X(this,null,(function*(){var t,i,o,g,r;try{let n;if(this._publishingLocalAudioTrack||this._publishingLocalVideoTrack||this.isMainStreamPublished){let C=((t=this._publishingLocalVideoTrack)==null?void 0:t.profile.bitrate)||((i=this.localMainVideoTrack)==null?void 0:i.profile.bitrate),u=((o=this._publishingLocalAudioTrack)==null?void 0:o.profile.bitrate)||((g=this.localMainAudioTrack)==null?void 0:g.profile.bitrate);if(C){let R=this._isPublishingAux?V.AUXILIARY:V.BIG;n=yield this.setBandwidth({bandwidth:C,type:V.VIDEO,sdp:n,videoType:R})}u&&(n=yield this.setBandwidth({bandwidth:u,type:V.AUDIO,sdp:n}))}if(n=this.removeVideoOrientation(e.sdp),(r=this._publishingLocalVideoTrack)!=null&&r.small){let{smallStreamConfig:C}=this._room;n=yield this.setBandwidth({bandwidth:this._publishingLocalVideoTrack.small.bitrate||C.bitrate,type:V.VIDEO,videoType:V.SMALL,sdp:n})}let I={type:e.type,sdp:n};yield this.setAnswer(I),this._log.debug("accepted answer: ".concat(n))}catch(n){throw this._log.error("failed to accept remote answer ".concat(n)),n}}))}sendMutedFlag(e){e===this.localAuxAudioTrack||e===this.localAuxVideoTrack||(this._log.info("send muted state: ".concat(JSON.stringify(this._room.muteState))),this._signalChannel.send(Kx,this._room.muteState))}getIsReconnecting(){return this._isReconnecting}reconnect(){return X(this,null,(function*(){if(!(Xg(LK.prototype,this,"beforeReconnect").call(this)<0))try{yield this._signalChannel.sendWaitForResponse({command:PJ,responseCommand:ut.UNPUBLISH_RESULT,enableLog:!1}),this.closePeerConnection(),this.initialize(),this.isMainStreamPublished&&(yield this.publish({localAudioTrack:this.localMainAudioTrack,localVideoTrack:this.localMainVideoTrack,isAuxiliary:!1})),this.isAuxStreamPublished&&(yield this.publish({localAudioTrack:this.localAuxAudioTrack,localVideoTrack:this.localAuxVideoTrack,isAuxiliary:!0})),this._log.warn("reconnect() uplink reconnect successfully"),this.stopReconnection()}catch{let t=nI(this._reconnectionCount);this._log.warn("reconnect() timeout, try again after ".concat(t/1e3,"s")),this._reconnectionTimer=setTimeout((()=>{this.clearReconnectionTimer(),this.reconnect()}),t)}}))}handleConnectionStateChange(e){e.state==="CONNECTED"&&(this.localMainVideoTrack||this._publishingLocalVideoTrack&&!this._isPublishingAux)&&N.emit(v.SEND_FIRST_VIDEO_FRAME,{room:this._room})}updateSSRC(e){try{Oo(e).media.forEach(((t,i)=>{if(t.type===V.AUDIO){let o=t.ssrcs&&t.ssrcs[0];o&&(this.ssrc.audio=Number(o.id))}else{if(this._sdpSemantics===Ll&&t.ssrcGroups)return void t.ssrcGroups.forEach(((g,r)=>{let n=Number(g.ssrcs.split(" ")[0]);r===0?this.ssrc.video=n:r===1&&(this.ssrc.small=n)}));let o=t.ssrcs&&t.ssrcs[0];if(!o)return;switch(i){case 1:this.ssrc.video=Number(o.id);break;case 2:this.ssrc.small=Number(o.id);break;case 3:this.ssrc.auxiliary=Number(o.id)}}}))}catch{}}getVideoTrackId(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:V.VIDEO;if(this._peerConnection){let t=this._peerConnection.getSenders();if(e===V.AUXILIARY&&t[3]&&t[3].track)return t[3].track.id;if(e===V.VIDEO&&t[1]&&t[1].track)return t[1].track.id}if(this.localMainVideoTrack&&e===V.VIDEO){let t=this.localMainVideoTrack.mediaTrack;if(t)return t.id}if(this.localAuxVideoTrack&&e===V.AUXILIARY){let t=this.localAuxVideoTrack.mediaTrack;if(t)return t.id}return""}getSSRC(){return this.ssrc}checkPublishResultCode(e,t){if(e!==0)throw e===Pp?(this._log.error(kr.NOT_SUPPORTED_H264ENCODE),new oe({code:OA.NOT_SUPPORTED_H264,message:nt({key:$e.NOT_SUPPORTED_H264ENCODE})})):new oe({code:OA.UNKNOWN,message:nt({key:$e.SIGNAL_RESPONSE_FAILED,data:{signalResponse:ut.PUBLISH_RESULT,code:e,message:t}})})}};ne([Gi((A=>function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return new Promise(((o,g)=>{let r=n=>{this._emitter.off("closed",r),g(new oe({code:OA.API_CALL_ABORTED,message:nt({key:$e.CONNECTION_ABORTED,data:n})}))};this._emitter.on("closed",r),A.apply(this,t).then(o,g).finally((()=>{this._emitter.off("closed",r)}))}))}))],qT.prototype,"publish"),ne([yc(521715,!1)],qT.prototype,"unpublish"),ne([Mu(xB.prototype.afterConnect),p2(xB.prototype.beforeConnect)],qT.prototype,"connect");var PT=qT,hP=class{constructor(A,e){this.room=A,l(this,"_log"),l(this,"_prevReportTime",0),l(this,"_prevReport",{}),l(this,"_prevStats",null),l(this,"_prevEncoderImplementation",""),l(this,"_prevAuxEncoderImpl",""),l(this,"_prevQualityLimitationReason",""),l(this,"_prevAuxQualityLimitationReason",""),l(this,"_prevDecoderImplementationMap",new Map),l(this,"_decodeMap",new Map),l(this,"_prevQpSum",0),l(this,"_prevAuxQpSum",0),l(this,"totalBytesSent",0),l(this,"totalBytesReceived",0),l(this,"_spcStats",null),this._log=e}get statInterval(){return this._prevReportTime===0?2:(Date.now()-this._prevReportTime)/1e3}getSenderStats(A){return X(this,null,(function*(){var e;let t={audio:{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0},video:{bytesSent:0,packetsSent:0,framesEncoded:0,frameWidth:0,frameHeight:0,framesSent:0,fpsCapture:0},small:{bytesSent:0,packetsSent:0,framesEncoded:0,frameWidth:0,frameHeight:0,framesSent:0,fpsCapture:0},auxiliary:{bytesSent:0,packetsSent:0,framesEncoded:0,frameWidth:0,frameHeight:0,framesSent:0,fpsCapture:0},rtt:0},i=A.getPeerConnection(),o=A.getSSRC();if(i)try{if((this._spcStats||(yield i.getStats())).forEach((g=>{var r,n,I,C,u,R,M,L,H,gA,EA,TA,hA;let ZA,BA;if(g.type==="outbound-rtp")if((g.mediaType||g.kind)===V.VIDEO){if(g.ssrc===o.video?(ZA=V.VIDEO,BA=A.localMainVideoTrack):g.ssrc===o.small?ZA=V.SMALL:g.ssrc===o.auxiliary&&(BA=A.localAuxVideoTrack,ZA=V.AUXILIARY),!ZA)return;t[ZA].bytesSent=g.bytesSent,t[ZA].packetsSent=g.packetsSent,t[ZA].framesEncoded=g.framesEncoded,yA(g.keyFramesEncoded)||(t[ZA].keyFramesEncoded=g.keyFramesEncoded),yA(g.nackCount)||(t[ZA].nackCount=g.nackCount),yA(g.pliCount)||(t[ZA].pliCount=g.pliCount),yA(g.retransmittedPacketsSent)||(t[ZA].retransmittedPacketsSent=g.retransmittedPacketsSent),yA(g.totalEncodeTime)||(t[ZA].totalEncodeTime=g.totalEncodeTime),yA(g.totalPacketSendDelay)||(t[ZA].totalPacketSendDelay=g.totalPacketSendDelay);let xA=0;if(!yA(g.qpSum)&&!yA(g.framesEncoded)&&g.framesEncoded>0){let ie=g.qpSum,ge=g.framesEncoded,qe=ZA===V.VIDEO?this._prevQpSum:this._prevAuxQpSum,ct=ZA===V.VIDEO?((n=(r=A.localMainVideoTrack)==null?void 0:r.stat)==null?void 0:n.framesEncoded)||0:((C=(I=A.localAuxVideoTrack)==null?void 0:I.stat)==null?void 0:C.framesEncoded)||0;if(ge>ct&&ie>qe){let Pe=ie-qe,Ji=ge-ct;xA=Math.round(Pe/Ji),xA>35&&this._log.warn("".concat(ZA===V.AUXILIARY?"aux ":"","video encoder QP is high: ").concat(xA,", resolution: ").concat(g.frameWidth,"x").concat(g.frameHeight,", codec: ").concat(A.videoCodec,", "))}ZA===V.VIDEO?this._prevQpSum=ie:ZA===V.AUXILIARY&&(this._prevAuxQpSum=ie)}if(!yA(g.encoderImplementation)&&(ZA===V.VIDEO&&this._prevEncoderImplementation!==g.encoderImplementation||ZA===V.AUXILIARY&&this._prevAuxEncoderImpl!==g.encoderImplementation)){let ie=2,ge=this._prevEncoderImplementation;ZA===V.AUXILIARY&&(ie=7,ge=this._prevAuxEncoderImpl),N.emit("262",{userId:A.userId,streamType:ie,prevImplementation:ge,implementation:g.encoderImplementation,codec:A.videoCodec,isHWCodec:g.powerEfficientEncoder}),this[ZA===V.VIDEO?"_prevEncoderImplementation":"_prevAuxEncoderImpl"]=g.encoderImplementation,this._log.info("".concat(ZA===V.AUXILIARY?"aux ":"","encoderImplementation change to ").concat(g.encoderImplementation,"(").concat(A.videoCodec,") HWEncoder: ").concat(g.powerEfficientEncoder))}g.ssrc===o.video?!yA(g.qualityLimitationReason)&&g.bytesSent!==0&&this._prevQualityLimitationReason!==g.qualityLimitationReason&&(this._log.info("qualityLimitationReason change to ".concat(g.qualityLimitationReason)),N.emit("263",{userId:A.userId,reason:g.qualityLimitationReason,prevReason:this._prevQualityLimitationReason,streamType:2,isQosClearFirst:(u=A.localMainVideoTrack)==null?void 0:u.isQosClearFirst}),this._prevQualityLimitationReason=g.qualityLimitationReason):g.ssrc===o.auxiliary&&!yA(g.qualityLimitationReason)&&g.bytesSent!==0&&this._prevAuxQualityLimitationReason!==g.qualityLimitationReason&&(this._log.info("aux qualityLimitationReason change to ".concat(g.qualityLimitationReason)),N.emit("263",{userId:A.userId,reason:g.qualityLimitationReason,prevReason:this._prevAuxQualityLimitationReason,streamType:7,isQosClearFirst:(R=A.localAuxVideoTrack)==null?void 0:R.isQosClearFirst}),this._prevAuxQualityLimitationReason=g.qualityLimitationReason)}else t.audio.bytesSent=g.bytesSent,t.audio.packetsSent=g.packetsSent;else if(g.type==="candidate-pair")vg(g)&&(this.totalBytesSent=g.bytesSent,Zt(g.currentRoundTripTime)&&(t.rtt=Math.floor(1e3*g.currentRoundTripTime)));else if(g.type==="media-source"){if(g.kind===V.AUDIO)t.audio.audioLevel=g.audioLevel||0,t.audio.totalAudioEnergy=g.totalAudioEnergy||0,g.echoReturnLoss,yA((H=(L=(M=A.localMainAudioTrack)==null?void 0:M.sourceTrack)==null?void 0:L.stats)==null?void 0:H.deliveredFramesDuration)?g.totalSamplesDuration&&(t.audio.totalSamplesDuration=g.totalSamplesDuration):t.audio.totalSamplesDuration=A.localMainAudioTrack.sourceTrack.stats.deliveredFramesDuration/1e3;else if(g.kind===V.VIDEO)if(g.trackIdentifier===A.getVideoTrackId(V.VIDEO))if((TA=(EA=(gA=A.localMainVideoTrack)==null?void 0:gA.sourceTrack)==null?void 0:EA.stats)!=null&&TA.deliveredFrames){let{deliveredFrames:xA}=A.localMainVideoTrack.sourceTrack.stats;t.video.framesCaptured=xA,A.localMainVideoTrack.stat.framesCaptured&&A.localMainVideoTrack.stat.framesCaptured>0&&xA>=A.localMainVideoTrack.stat.framesCaptured?t.video.fpsCapture=Math.floor((xA-A.localMainVideoTrack.stat.framesCaptured)/this.statInterval):t.video.fpsCapture=g.framesPerSecond}else t.video.fpsCapture=g.framesPerSecond;else g.trackIdentifier===A.getVideoTrackId(V.AUXILIARY)?t.auxiliary.fpsCapture=g.framesPerSecond:t.small.fpsCapture=g.framesPerSecond}if(!yA(g.audioLevel)&&(hA=A.localMainAudioTrack)!=null&&hA.mediaTrack&&g.trackIdentifier===A.localMainAudioTrack.mediaTrack.id&&(t.audio.audioLevel=g.audioLevel||0),!yA(g.frameWidth)){let xA=V.SMALL;g.trackIdentifier===A.getVideoTrackId(V.VIDEO)||g.ssrc===o.video?xA=V.VIDEO:(g.trackIdentifier===A.getVideoTrackId(V.AUXILIARY)||g.ssrc===o.auxiliary)&&(xA=V.AUXILIARY),t[xA].frameWidth=g.frameWidth,t[xA].frameHeight=g.frameHeight,t[xA].framesSent=g.framesSent}})),A.localMainAudioTrack){let g=A.localMainAudioTrack.getInternalAudioLevel(),r=A.localMainAudioTrack.getInternalAudioLevelAfter3A();t.audio.audioCaptureEnergyAfter3a=r,t.audio.micAudioLevel=g,t.audio.audioLevel===0&&(t.audio.audioLevel=g)}this.totalBytesSent||(this.totalBytesSent+=t.audio.bytesSent+t.video.bytesSent+t.auxiliary.bytesSent),Object.keys(t).forEach((g=>{g===V.AUDIO?(A.localMainAudioTrack&&(A.localMainAudioTrack.stat=t[g]),A.localAuxAudioTrack&&(A.localAuxAudioTrack.stat=t[g])):g===V.VIDEO?A.localMainVideoTrack&&(A.localMainVideoTrack.stat=t[g]):g===V.AUXILIARY&&A.localAuxVideoTrack&&(A.localAuxVideoTrack.stat=t[g])}))}catch(g){this._log.warn("failed to getStats on sender connection ".concat(g))}return t.rtt===0&&(t.rtt=((e=this.room.networkQuality)==null?void 0:e.uplinkRTT)||0),t}))}getReceiverStats(A){return X(this,null,(function*(){var e,t,i;let o={tinyId:A.tinyId,userId:A.userId,rtt:0,hasAudio:!1,hasVideo:!1,hasAuxiliary:!1,isSmallSubscribed:!1,audio:{bytesReceived:0,packetsReceived:0,packetsLost:0,p2pDelay:0,totalJitter:0,totalJitterCount:0,audioLevel:0,totalAudioEnergy:0,insertedSamplesForDeceleration:0,removedSamplesForAcceleration:0},video:{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,fpsDecoded:0,freezeCount:0,totalFreezesDuration:0,totalJitter:0,totalJitterCount:0,p2pDelay:0,codec:""},auxiliary:{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,fpsDecoded:0,totalJitter:0,totalJitterCount:0,p2pDelay:0,codec:""}},g=A.getPeerConnection();if(g)try{let{ssrc:r}=A,{muteState:n,subscribeState:I}=A;(this._spcStats||(yield g.getStats())).forEach((u=>{var R,M;if(u.type==="codec"&&this._decodeMap.set(u.id,u),u.type==="inbound-rtp"){let L=(u.mediaType||u.kind)===V.AUDIO;if(L){if(u.ssrc!==r.audio||!n.hasAudio)return;o.audio.packetsReceived=u.packetsReceived,o.audio.bytesReceived=u.bytesReceived,o.audio.packetsLost=u.packetsLost,u.insertedSamplesForDeceleration&&(o.audio.insertedSamplesForDeceleration=u.insertedSamplesForDeceleration),u.removedSamplesForAcceleration&&(o.audio.removedSamplesForAcceleration=u.removedSamplesForAcceleration),u.totalSamplesDuration&&(o.audio.totalSamplesDuration=u.totalSamplesDuration),u.totalSamplesReceived&&(o.audio.totalSamplesReceived=u.totalSamplesReceived),u.concealedSamples&&(o.audio.concealedSamples=u.concealedSamples),u.silentConcealedSamples&&(o.audio.silentConcealedSamples=u.silentConcealedSamples);let{remoteAudioTrack:H}=A;H.stat.packetsReceived=u.packetsReceived,H.stat.bytesReceived=u.bytesReceived,H.stat.packetsLost=u.packetsLost,o.audio.p2pDelay=H.stat.end2EndDelay,o.hasAudio=!0}else{if(ei&&u.bytesReceived===0)return;let H;u.ssrc===r.video&&n.hasVideo&&(o.video.packetsReceived=u.packetsReceived,o.video.bytesReceived=u.bytesReceived,o.video.packetsLost=u.packetsLost,o.video.framesReceived=u.framesReceived,o.video.framesDecoded=u.framesDecoded,o.video.fpsDecoded=u.framesPerSecond,o.hasVideo=!0,A.videoCodec=Ic[(R=this._decodeMap.get(u.codecId))==null?void 0:R.mimeType.split("/")[1]]||"h264",o.video.codec=A.videoCodec,H=A.remoteVideoTrack,n.hasSmall&&I.smallVideo&&(o.isSmallSubscribed=!0),u.decoderImplementation&&(!this._prevDecoderImplementationMap.has(o.userId)||this._prevDecoderImplementationMap.get(o.userId)!==u.decoderImplementation)&&(this._log.info("".concat(o.userId," decoderImplementation change to ").concat(u.decoderImplementation,"(").concat(A.videoCodec,") HWDecoder: ").concat(u.powerEfficientDecoder)),N.emit("262",{userId:this.room.userId,remoteUserId:o.userId,prevImplementation:this._prevDecoderImplementationMap.get(o.userId),implementation:u.decoderImplementation,codec:A.videoCodec,isHWCodec:u.powerEfficientDecoder}),this._prevDecoderImplementationMap.set(o.userId,u.decoderImplementation))),u.ssrc===r.auxiliary&&n.hasAuxiliary&&(o.auxiliary.packetsReceived=u.packetsReceived,o.auxiliary.bytesReceived=u.bytesReceived,o.auxiliary.packetsLost=u.packetsLost,o.auxiliary.framesReceived=u.framesReceived,o.auxiliary.framesDecoded=u.framesDecoded,o.auxiliary.fpsDecoded=u.framesPerSecond,H=A.remoteAuxiliaryTrack,o.auxiliary.p2pDelay=H.stat.end2EndDelay,o.hasAuxiliary=!0,o.video.codec=((M=this._decodeMap.get(u.codecId))==null?void 0:M.mimeType.split("/")[1].toLowerCase())||"h264"),H&&(H.stat.packetsReceived=u.packetsReceived,H.stat.bytesReceived=u.bytesReceived,H.stat.packetsLost=u.packetsLost,H.stat.framesReceived=u.framesReceived,H.stat.framesDecoded=u.framesDecoded,u.jitterBufferDelay&&(H.stat.jitterBufferDelay=Math.floor(u.jitterBufferDelay/u.jitterBufferEmittedCount*1e3)),o.video.p2pDelay=H.stat.end2EndDelay)}u.jitterBufferDelay&&(L?(o.audio.totalJitter=u.jitterBufferDelay,o.audio.totalJitterCount=u.jitterBufferEmittedCount,o.audio.estimatedPlayoutTimestamp=u.estimatedPlayoutTimestamp):u.ssrc===r.video&&n.hasVideo?(o.video.totalJitter=u.jitterBufferDelay,o.video.totalJitterCount=u.jitterBufferEmittedCount,o.video.estimatedPlayoutTimestamp=u.estimatedPlayoutTimestamp):u.ssrc===r.auxiliary&&n.hasAuxiliary&&(o.auxiliary.totalJitter=u.jitterBufferDelay,o.auxiliary.totalJitterCount=u.jitterBufferEmittedCount))}else u.type==="candidate-pair"&&vg(u)&&(this.totalBytesReceived=u.bytesReceived,Zt(u.currentRoundTripTime)&&(o.rtt=Math.floor(1e3*u.currentRoundTripTime)));yA(u.frameWidth)||((u.trackIdentifier===A.getMainStreamVideoTrackId()||u.ssrc===r.video)&&(o.video.frameWidth=u.frameWidth,o.video.frameHeight=u.frameHeight,A.remoteVideoTrack.stat.frameWidth=u.frameWidth,A.remoteVideoTrack.stat.frameHeight=u.frameHeight),(u.trackIdentifier===A.getAuxStreamVideoTrackId()||u.ssrc===r.auxiliary)&&(o.auxiliary.frameWidth=u.frameWidth,o.auxiliary.frameHeight=u.frameHeight,A.remoteAuxiliaryTrack.stat.frameWidth=u.frameWidth,A.remoteAuxiliaryTrack.stat.frameHeight=u.frameHeight)),!yA(u.audioLevel)&&A.muteState.audioAvailable&&A.remoteAudioTrack.mediaTrack&&u.trackIdentifier===A.remoteAudioTrack.mediaTrack.id&&(o.audio.audioLevel=u.audioLevel||0,o.audio.totalAudioEnergy=u.totalAudioEnergy||0)})),o.audio.audioLevel===0&&A.muteState.audioAvailable&&(o.audio.audioLevel=A.remoteAudioTrack.getInternalAudioLevel()||0),this.totalBytesReceived||(this.totalBytesReceived+=o.audio.bytesReceived+o.video.bytesReceived+o.auxiliary.bytesReceived),yA((e=A.remoteVideoTrack.player.stat)==null?void 0:e.fps)||(o.video.fpsRender=A.remoteVideoTrack.player.stat.fps),yA((t=A.remoteAuxiliaryTrack.player.stat)==null?void 0:t.fps)||(o.auxiliary.fpsRender=A.remoteAuxiliaryTrack.player.stat.fps);let C=(o.audio.estimatedPlayoutTimestamp||0)-(o.video.estimatedPlayoutTimestamp||0);Math.abs(C)>150&&this._log.warn("av sync delay",C)}catch(r){this._log.warn("failed to getStats on receiver connection ".concat(r))}return o.rtt===0&&(o.rtt=((i=this.room.networkQuality)==null?void 0:i.uplinkRTT)||0),o}))}getStats(A,e){return X(this,null,(function*(){let t,i={},o=[];if(this.room.singlePC){let g=this.room.singlePC.getPeerConnection();if(!g)return{senderStats:i,receiverStats:o};let r=it(),n=yield g.getStats(),I=it();I-r>2e3&&this._log.warn("getStats cost ".concat(I-r,"ms"));let C=[],u=new Set(["inbound-rtp","outbound-rtp","track","candidate-pair","media-source","codec","media-playout"]);n.forEach((R=>u.has(R.type)&&C.push(R))),this._spcStats=C}A&&(i=yield this.getSenderStats(A));for(let[g,r]of e){let n=yield this.getReceiverStats(r);o.push(n)}return e.size&&(t=this.getMediaPlayoutStats(this._spcStats)),{senderStats:i,receiverStats:o,mediaPlayoutStats:t}}))}getDifferenceValue(A,e){if(bB(A))return e;let t=e-A;return t<0?0:t}prepareReport(A){let{stats:e,report:t,freezeMap:i,uplinkConnection:o}=A;var g,r,n,I,C,u,R,M,L;if(!bB(e.senderStats)){let BA={uint32_audio_level:e.senderStats.audio.audioLevel*Ua,uint32_audio_energy:1e6*(e.senderStats.audio.totalAudioEnergy||0),uint32_audio_codec_bitrate:e.senderStats.audio.bytesSent};e.senderStats.audio.micAudioLevel&&(BA.uint32_mic_audio_level=e.senderStats.audio.micAudioLevel*Ua),yA(e.senderStats.audio.audioCaptureEnergyAfter3a)||(BA.uint32_audio_capture_energy_after3a=e.senderStats.audio.audioCaptureEnergyAfter3a*Ua),e.senderStats.audio.totalSamplesDuration&&(t.msg_device_info.uint32_audio_capture_cost=e.senderStats.audio.totalSamplesDuration);let xA=[];if(e.senderStats.video.bytesSent){let ge={uint32_video_stream_type:2,uint32_video_codec_fps:e.senderStats.video.framesSent,uint32_video_capture_fps:e.senderStats.video.fpsCapture,uint32_video_width:e.senderStats.video.frameWidth,uint32_video_height:e.senderStats.video.frameHeight,uint32_video_codec_bitrate:e.senderStats.video.bytesSent,uint32_video_enc_fps:e.senderStats.video.framesEncoded,uint32_key_frame_count:e.senderStats.video.keyFramesEncoded,uint32_nack_count:e.senderStats.video.nackCount,uint32_pli_count:e.senderStats.video.pliCount,uint32_encode_cost:1e3*(e.senderStats.video.totalEncodeTime||0),uint32_send_packet_cost:1e3*(e.senderStats.video.totalPacketSendDelay||0),uint32_video_arq_packets:e.senderStats.video.retransmittedPacketsSent};xA.push(ge)}if(e.senderStats.small.bytesSent){let ge={uint32_video_stream_type:3,uint32_video_codec_fps:e.senderStats.small.framesSent||0,uint32_video_capture_fps:e.senderStats.small.fpsCapture||0,uint32_video_width:e.senderStats.small.frameWidth||0,uint32_video_height:e.senderStats.small.frameHeight||0,uint32_video_codec_bitrate:e.senderStats.small.bytesSent,uint32_video_enc_fps:e.senderStats.small.framesEncoded||0,uint32_key_frame_count:e.senderStats.small.keyFramesEncoded,uint32_nack_count:e.senderStats.small.nackCount,uint32_pli_count:e.senderStats.small.pliCount,uint32_encode_cost:1e3*(e.senderStats.small.totalEncodeTime||0),uint32_send_packet_cost:1e3*(e.senderStats.small.totalPacketSendDelay||0),uint32_video_arq_packets:e.senderStats.small.retransmittedPacketsSent};xA.push(ge)}if(e.senderStats.auxiliary.bytesSent){let ge={uint32_video_stream_type:7,uint32_video_codec_fps:e.senderStats.auxiliary.framesSent||0,uint32_video_capture_fps:e.senderStats.auxiliary.fpsCapture||0,uint32_video_width:e.senderStats.auxiliary.frameWidth||0,uint32_video_height:e.senderStats.auxiliary.frameHeight||0,uint32_video_codec_bitrate:e.senderStats.auxiliary.bytesSent,uint32_video_enc_fps:e.senderStats.auxiliary.framesEncoded||0,uint32_key_frame_count:e.senderStats.auxiliary.keyFramesEncoded,uint32_nack_count:e.senderStats.auxiliary.nackCount,uint32_pli_count:e.senderStats.auxiliary.pliCount,uint32_encode_cost:1e3*(e.senderStats.auxiliary.totalEncodeTime||0),uint32_send_packet_cost:1e3*(e.senderStats.auxiliary.totalPacketSendDelay||0),uint32_video_arq_packets:e.senderStats.auxiliary.retransmittedPacketsSent};xA.push(ge)}let ie={uint32_bitrate:0,uint32_lost:0,uint32_rtt:e.senderStats.rtt};t.msg_up_stream_info={msg_audio_status:BA,msg_video_status:xA,msg_network_status:ie}}let{statInterval:H}=this;t.msg_down_stream_info=[],e.receiverStats.forEach((BA=>{let xA={msg_user_info:{str_identifier:BA.userId,uint64_tinyid:BA.tinyId},msg_network_status:{uint32_rtt:BA.rtt,uint32_bitrate:0,uint32_lost:0},msg_audio_status:{},msg_video_status:[]};if(BA.hasAudio){let ie={uint32_audio_p2p_delay:BA.audio.p2pDelay,uint32_audio_cache_ms:BA.audio.totalJitter,uint32_audio_cache_ms_count:BA.audio.totalJitterCount,uint32_audio_codec_bitrate:BA.audio.bytesReceived,uint32_audio_total_bitrate:BA.audio.bytesReceived,uint32_audio_level:1e8*BA.audio.audioLevel,uint32_audio_energy:1e6*BA.audio.totalAudioEnergy,uint32_audio_receive:BA.audio.packetsReceived,uint32_audio_origin_lost:BA.audio.packetsLost};xA.msg_audio_status=ie}if(BA.hasVideo){let ie=i.get("".concat(BA.userId,"_").concat(DS)),ge=ie?ie.duration:0,qe={uint32_video_stream_type:BA.isSmallSubscribed?3:2,uint32_video_receive_fps:BA.video.framesReceived,uint32_video_width:BA.video.frameWidth,uint32_video_height:BA.video.frameHeight,uint32_video_codec_bitrate:BA.video.bytesReceived,uint32_video_receive:BA.video.packetsReceived,uint32_video_origin_lost:BA.video.packetsLost,uint32_video_block_time:ge,uint32_video_dec_fps:BA.video.framesDecoded,uint32_video_codec_fps:BA.video.fpsRender,uint32_video_cache_ms:BA.video.totalJitter,uint32_video_cache_ms_count:BA.video.totalJitterCount,uint32_video_p2p_delay:BA.video.p2pDelay,uint32_video_codec:BA.video.codec};xA.msg_video_status.push(qe)}if(BA.hasAuxiliary){let ie=i.get("".concat(BA.userId,"_").concat(ht)),ge=ie?ie.duration:0,qe={uint32_video_stream_type:7,uint32_video_receive_fps:BA.auxiliary.framesReceived,uint32_video_width:BA.auxiliary.frameWidth,uint32_video_height:BA.auxiliary.frameHeight,uint32_video_codec_bitrate:BA.auxiliary.bytesReceived,uint32_video_receive:BA.auxiliary.packetsReceived+BA.auxiliary.packetsLost,uint32_video_origin_lost:BA.auxiliary.packetsLost,uint32_video_block_time:ge,uint32_video_dec_fps:BA.auxiliary.framesDecoded,uint32_video_codec_fps:BA.video.fpsRender,uint32_video_cache_ms:BA.auxiliary.totalJitter,uint32_video_cache_ms_count:BA.auxiliary.totalJitterCount,uint32_video_p2p_delay:BA.auxiliary.p2pDelay,uint32_video_codec:BA.video.codec};xA.msg_video_status.push(qe)}t.msg_down_stream_info.push(xA)})),e.mediaPlayoutStats&&!bB(e.mediaPlayoutStats)&&(e.mediaPlayoutStats.synthesizedSamplesDuration*=1e3,e.mediaPlayoutStats.totalSamplesDuration*=1e3);let gA=this._prevReport,EA=this._prevStats;if(this._prevReport=JSON.parse(JSON.stringify(t)),this._prevStats=JSON.parse(JSON.stringify(e)),t.msg_up_stream_info.msg_audio_status&&gA.msg_up_stream_info.msg_audio_status){let BA=gA.msg_up_stream_info.msg_audio_status,xA=t.msg_up_stream_info.msg_audio_status;if(BA.uint32_audio_codec_bitrate===0)xA.uint32_audio_codec_bitrate=0;else{let ie=this.getDifferenceValue(BA.uint32_audio_codec_bitrate,xA.uint32_audio_codec_bitrate);xA.uint32_audio_codec_bitrate=Math.round(8*ie/H),t.msg_up_stream_info.msg_network_status.uint32_bitrate+=xA.uint32_audio_codec_bitrate}(g=gA.msg_device_info)!=null&&g.uint32_audio_capture_cost?(t.msg_device_info.uint32_audio_capture_cost=2*Math.floor(1e3*this.getDifferenceValue(gA.msg_device_info.uint32_audio_capture_cost,t.msg_device_info.uint32_audio_capture_cost)/H),t.msg_device_info.uint32_audio_capture_cost>0&&((n=o==null?void 0:o.localMainAudioTrack)==null||n.updateAfter3aSilenceStartTime((r=e.senderStats.audio.audioCaptureEnergyAfter3a)!=null?r:e.senderStats.audio.micAudioLevel))):delete t.msg_device_info.uint32_audio_capture_cost}let TA=gA.msg_up_stream_info.msg_video_status;t.msg_up_stream_info.msg_video_status.forEach((BA=>{let xA=TA.find((Pe=>Pe.uint32_video_stream_type===BA.uint32_video_stream_type));if(!xA||xA.uint32_video_codec_bitrate===0)return BA.uint32_video_codec_bitrate=0,BA.uint32_video_enc_fps=0,void(BA.uint32_video_codec_fps=0);let ie=0,ge=0,qe=0;xA&&BA.uint32_video_codec_bitrate>=xA.uint32_video_codec_bitrate&&(ie=xA.uint32_video_codec_bitrate,ge=xA.uint32_video_enc_fps,qe=xA.uint32_video_codec_fps);let ct=this.getDifferenceValue(ie,BA.uint32_video_codec_bitrate);BA.uint32_video_codec_bitrate=Math.round(8*ct/H),t.msg_up_stream_info.msg_network_status.uint32_bitrate+=BA.uint32_video_codec_bitrate,BA.uint32_video_enc_fps=Math.round(this.getDifferenceValue(ge,BA.uint32_video_enc_fps)/H),BA.uint32_video_codec_fps=Math.round(this.getDifferenceValue(qe,BA.uint32_video_codec_fps)/H),xA.uint32_video_width===0&&xA.uint32_video_height===0&&xA.uint32_video_codec_fps===0&&(BA.uint32_video_codec_fps=BA.uint32_video_enc_fps),yA(xA.uint32_key_frame_count)||(BA.uint32_key_frame_count=Math.round(this.getDifferenceValue(xA.uint32_key_frame_count,BA.uint32_key_frame_count))),yA(xA.uint32_nack_count)||(BA.uint32_nack_count=Math.round(this.getDifferenceValue(xA.uint32_nack_count,BA.uint32_nack_count))),yA(xA.uint32_pli_count)||(BA.uint32_pli_count=Math.round(this.getDifferenceValue(xA.uint32_pli_count,BA.uint32_pli_count))),yA(xA.uint32_video_arq_packets)||(BA.uint32_video_arq_packets=Math.round(this.getDifferenceValue(xA.uint32_video_arq_packets,BA.uint32_video_arq_packets))),yA(xA.uint32_encode_cost)||(BA.uint32_encode_cost=Math.round(this.getDifferenceValue(xA.uint32_encode_cost,BA.uint32_encode_cost)/H)),yA(xA.uint32_send_packet_cost)||(BA.uint32_send_packet_cost=Math.round(this.getDifferenceValue(xA.uint32_send_packet_cost,BA.uint32_send_packet_cost)/H))}));let hA=gA.msg_down_stream_info;t.msg_down_stream_info=t.msg_down_stream_info.filter((BA=>hA.find((xA=>xA.msg_user_info.uint64_tinyid===BA.msg_user_info.uint64_tinyid))));let ZA=t.msg_down_stream_info;if(ZA.forEach((BA=>{let xA=hA.find((ie=>ie.msg_user_info.uint64_tinyid===BA.msg_user_info.uint64_tinyid));if(bB(BA.msg_audio_status)||bB(xA.msg_audio_status))BA.msg_audio_status={};else{let ie=BA.msg_audio_status,ge=xA.msg_audio_status,qe=this.getDifferenceValue(ge.uint32_audio_cache_ms_count,ie.uint32_audio_cache_ms_count);delete ie.uint32_audio_cache_ms_count,ie.uint32_audio_cache_ms=Math.floor(1e3*this.getDifferenceValue(ge.uint32_audio_cache_ms,ie.uint32_audio_cache_ms)/qe)||0;let ct=this.room.remotePublishedUserMap.get(BA.msg_user_info.str_identifier);ct&&(ct.remoteAudioTrack.stat.jitterBufferDelay=ie.uint32_audio_cache_ms),ie.uint32_audio_origin_lost=this.getDifferenceValue(ge.uint32_audio_origin_lost,ie.uint32_audio_origin_lost),ie.uint32_audio_receive=this.getDifferenceValue(ge.uint32_audio_receive,ie.uint32_audio_receive),ie.uint32_audio_receive+=ie.uint32_audio_origin_lost;let Pe=this.getDifferenceValue(ge.uint32_audio_codec_bitrate,ie.uint32_audio_codec_bitrate);ie.uint32_audio_codec_bitrate=Math.round(8*Pe/H),ie.uint32_audio_total_bitrate=Math.round(8*Pe/H)}if(BA.msg_video_status&&xA.msg_video_status){let ie=xA.msg_video_status;BA.msg_video_status=BA.msg_video_status.filter((ge=>ie.find((qe=>qe.uint32_video_stream_type===ge.uint32_video_stream_type)))),BA.msg_video_status.forEach((ge=>{let qe=ie.find((cI=>cI.uint32_video_stream_type===ge.uint32_video_stream_type)),ct=qe.uint32_video_receive,Pe=qe.uint32_video_origin_lost,Ji=qe.uint32_video_codec_bitrate,mt=qe.uint32_video_receive_fps,Mi=qe.uint32_video_dec_fps;ge.uint32_video_origin_lost=this.getDifferenceValue(Pe,ge.uint32_video_origin_lost),ge.uint32_video_receive=this.getDifferenceValue(ct,ge.uint32_video_receive)+ge.uint32_video_origin_lost;let To=this.getDifferenceValue(Ji,ge.uint32_video_codec_bitrate);ge.uint32_video_codec_bitrate=Math.round(8*To/H);let xi=this.getDifferenceValue(mt,ge.uint32_video_receive_fps);ge.uint32_video_receive_fps=Math.round(xi/H),ge.uint32_video_dec_fps=Math.round(this.getDifferenceValue(Mi,ge.uint32_video_dec_fps)/H);let oR=this.getDifferenceValue(qe.uint32_video_cache_ms_count,ge.uint32_video_cache_ms_count);delete ge.uint32_video_cache_ms_count,ge.uint32_video_cache_ms=Math.floor(1e3*this.getDifferenceValue(qe.uint32_video_cache_ms,ge.uint32_video_cache_ms)/oR)||0}))}})),!yA((I=EA==null?void 0:EA.mediaPlayoutStats)==null?void 0:I.totalSamplesDuration)&&!yA((C=e.mediaPlayoutStats)==null?void 0:C.totalSamplesDuration)){let BA=2*Math.floor(this.getDifferenceValue((u=EA==null?void 0:EA.mediaPlayoutStats)==null?void 0:u.synthesizedSamplesDuration,(R=e.mediaPlayoutStats)==null?void 0:R.synthesizedSamplesDuration)/H),xA=2*Math.floor(this.getDifferenceValue((M=EA==null?void 0:EA.mediaPlayoutStats)==null?void 0:M.totalSamplesDuration,(L=e.mediaPlayoutStats)==null?void 0:L.totalSamplesDuration)/H);t.msg_device_info.uint32_audio_play_cost=xA-BA}return EA&&e.receiverStats.forEach((BA=>{if(BA.audio.concealedSamples&&BA.audio.totalSamplesReceived){let xA=EA.receiverStats.find((ie=>ie.userId===BA.userId));if(xA&&xA.audio.concealedSamples&&xA.audio.totalSamplesReceived){let ie=(BA.audio.silentConcealedSamples||0)-(xA.audio.silentConcealedSamples||0),ge=BA.audio.concealedSamples-xA.audio.concealedSamples,qe=BA.audio.totalSamplesReceived-xA.audio.totalSamplesReceived,ct=Math.floor((ge-ie)/qe*1e3*H);if(ct>1e3*H/5){let Pe=ZA.find((Ji=>Ji.msg_user_info.str_identifier===BA.userId));Pe&&(Pe.msg_audio_status.uint32_audio_block_time=ct)}}}})),t.msg_down_stream_info.forEach((BA=>{BA.msg_video_status.forEach((xA=>{xA.uint32_video_codec_bitrate===0&&xA.uint32_video_receive_fps===0&&(xA.uint32_video_width=0,xA.uint32_video_height=0)}))})),t}getStatsReport(A){return X(this,arguments,(function(e){var t=this;let{uplinkConnection:i,downlinkConnections:o,freezeMap:g}=e;return(function*(){let r={msg_device_info:{},msg_up_stream_info:{msg_audio_status:{uint32_audio_format:11,uint32_audio_sample_rate:0,uint32_audio_codec_bitrate:0,uint32_audio_receive:0,uint32_audio_origin_lost:0,uint32_audio_level:0,uint32_audio_energy:0,uint32_audio_capture_energy_after3a:0},msg_video_status:[],msg_network_status:{uint32_bitrate:0,uint32_rtt:0,uint32_lost:0}},msg_down_stream_info:[{msg_user_info:{str_identifier:"",uint64_tinyid:0},msg_audio_status:{uint32_audio_cache_ms:0,uint32_audio_format:11,uint32_audio_sample_rate:0,uint32_audio_codec_bitrate:0,uint32_audio_total_bitrate:0,uint32_audio_level:0,uint32_audio_energy:0,uint32_audio_receive:0,uint32_audio_origin_lost:0,uint32_audio_final_lost:0},msg_video_status:[{uint32_video_cache_ms:0,uint32_video_stream_type:0,uint32_video_receive_fps:0,uint32_video_width:0,uint32_video_height:0,uint32_video_codec_bitrate:0,uint32_video_receive:0,uint32_video_origin_lost:0,uint32_video_block_time:0,uint32_video_dec_fps:0}],msg_network_status:{uint32_bitrate:0,uint32_rtt:0,uint32_lost:0}}]},n=yield t.getStats(i,o);return JSON.stringify(t._prevReport)==="{}"&&(t._prevReport=JSON.parse(JSON.stringify(r))),t.prepareReport({stats:n,report:r,freezeMap:g,uplinkConnection:i}),t._prevReportTime=Date.now(),r})()}))}getMediaPlayoutStats(A){let e;if(lo(A)){for(let t of A)if(t.type==="media-playout"){let{synthesizedSamplesDuration:i,totalSamplesDuration:o}=t;e={synthesizedSamplesDuration:i,totalSamplesDuration:o};break}return e}}reset(){var A;this._prevReportTime=0,this._prevReport={},this._prevEncoderImplementation="",this._prevQualityLimitationReason="",this._prevDecoderImplementationMap=new Map,(A=this.room.localMainVideoTrack)!=null&&A.stat&&(this.room.localMainVideoTrack.stat.framesCaptured=0)}},lP=Mo(Ng());function uP(A){return new Promise((e=>X(this,null,(function*(){let t=setTimeout((()=>{e({totalCost:1e4,local:0,dns:0,tcp:0,tls:0,request:0,response:0})}),1e4),i=Date.now(),o="https://".concat(A,"/?t=").concat(i);try{yield fetch(o)}catch{}clearTimeout(t);let g=(function(r){let n={totalCost:0,local:0,redirect:0,httpCache:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let I=performance.getEntriesByType("resource").reverse();for(let C of I)if(C.name===r){let u=Math.round(C.duration),R=Math.max(Math.round(C.domainLookupStart-C.startTime),0),M=C.redirectStart>0?Math.max(Math.round(C.redirectEnd-C.redirectStart),0):0,L=C.fetchStart>0?Math.max(Math.round(C.domainLookupStart-C.fetchStart),0):0,H=Math.round(C.domainLookupEnd-C.domainLookupStart),gA=Math.round(C.requestStart-C.secureConnectionStart),EA=Math.round(C.secureConnectionStart-C.connectStart),TA=Math.round(C.responseStart-C.requestStart),hA=Math.round(C.responseEnd-(C.responseStart||C.startTime));n=tt(le({},n),{totalCost:u,local:R,redirect:M,httpCache:L,dns:H,tcp:EA,tls:gA,request:TA,response:hA});break}}catch{}return n})(o);g.totalCost===0&&(g.totalCost=Date.now()-i),e(g)}))))}var XJ=class jT extends lP.default{constructor(e){let{signalChannel:t,room:i}=e;super(),l(this,"_room"),l(this,"_signalChannel"),l(this,"_log"),l(this,"uplinkRTT",0),l(this,"uplinkLoss",0),l(this,"downlinkRTT",0),l(this,"downlinkLoss",0),l(this,"pingResults",{}),l(this,"_downlinkPrevStatMap",new Map),l(this,"_downlinkLossAndRTTMap",new Map),l(this,"_interval",-1),l(this,"_uplinkNetworkQuality",0),l(this,"_downlinkNetworkQuality",0),this._room=i,this._signalChannel=t,this._log=K.createLogger({parent:i.getLogger(),id:"q",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),this.initialize()}get uplinkNetworkQuality(){return this._uplinkNetworkQuality}set uplinkNetworkQuality(e){e!==this._uplinkNetworkQuality&&this._log.info("uplink ".concat(this.uplinkNetworkQuality," -> ").concat(e,", rtt: ").concat(this.uplinkRTT,", loss: ").concat(this.uplinkLoss," ws-rtt: ").concat(this._signalChannel.rtt)),this._uplinkNetworkQuality=e}get downlinkNetworkQuality(){return this._downlinkNetworkQuality}set downlinkNetworkQuality(e){if(e!==this._downlinkNetworkQuality){let{rtt:t,loss:i}=this.getAverageLossAndRTT([...this._downlinkLossAndRTTMap.values()]);this._log.info("downlink ".concat(this.downlinkNetworkQuality," -> ").concat(e,", rtt: ").concat(t,", loss: ").concat(i," ws-rtt: ").concat(this._signalChannel.rtt))}this._downlinkNetworkQuality=e}initialize(){this._signalChannel.on(ut.UPLINK_NETWORK_STATS,(e=>{this.handleUplinkNetworkQuality(e)})),this._signalChannel.on(qJ,this.handleSignalConnectionStateChange.bind(this)),this.start()}handleUplinkNetworkQuality(e){var t,i;if(e.data.code!==0)return;let o=e.data.data;if(o.delay&&this.updateDelay(o.delay),this._room.signalChannel&&o.wsRtt&&(this._room.signalChannel.rtt=o.wsRtt),!this._room.uplinkConnection)return this.uplinkNetworkQuality=0,this.uplinkLoss=0,void(this.uplinkRTT=0);let g=(i=(t=this._room)==null?void 0:t.uplinkConnection)==null?void 0:i.getPeerConnection();if(g&&this.isPeerConnectionDisconnected(g))return this.uplinkNetworkQuality=6,this.uplinkLoss=0,void(this.uplinkRTT=0);let r=o.expectAudPkg+o.expectVidPkg,n=o.recvAudPkg+o.recvVidPkg,I=r-n;r===0&&n===0||(this.uplinkLoss=I<=0?0:Math.round(I/r*100),this.uplinkRTT=o.rtt,this.uplinkNetworkQuality=this.getNetworkQuality(this.uplinkLoss,this.uplinkRTT))}handleDownlinkNetworkQuality(){return X(this,null,(function*(){if(this._room.remotePublishedUserMap.size===0)return void(this.downlinkNetworkQuality=0);let e=[...this._room.remotePublishedUserMap.values()],t=e.filter((g=>{var r;return((r=g.getPeerConnection())==null?void 0:r.connectionState)===co.CONNECTED}));if(e.filter((g=>this.isPeerConnectionDisconnected(g.getPeerConnection()))).length===e.length)return void(this.downlinkNetworkQuality=6);for(let g=0;g<t.length;g++){let r=t[g].getPeerConnection();if(!r)return;let{rtt:n,totalPacketsLost:I,totalPacketsReceived:C}=yield this.getStat(r);if(!this._downlinkPrevStatMap.has(r)){this._downlinkPrevStatMap.set(r,{totalPacketsLost:I,totalPacketsReceived:C});continue}let u=0,R=this._downlinkPrevStatMap.get(r),M=I-R.totalPacketsLost,L=C-R.totalPacketsReceived;u=M<=0||L<0?0:Math.round(M/(M+L)*100),this._downlinkPrevStatMap.set(r,{totalPacketsLost:I,totalPacketsReceived:C}),this._downlinkLossAndRTTMap.set(r,{rtt:n,loss:u,userId:t[g].getUserId(),audioDelay:t[g].remoteAudioTrack.stat.end2EndDelay,videoDelay:t[g].remoteVideoTrack.stat.end2EndDelay})}if([...this._downlinkPrevStatMap.keys()].forEach((g=>{this.isPeerConnectionDisconnected(g)&&(this._downlinkPrevStatMap.delete(g),this._downlinkLossAndRTTMap.delete(g))})),this._downlinkLossAndRTTMap.size===0)return this.downlinkRTT=0,this.downlinkLoss=0,void(this.downlinkNetworkQuality=0);let{rtt:i,loss:o}=this.getAverageLossAndRTT([...this._downlinkLossAndRTTMap.values()]);this.downlinkRTT=i,this.downlinkLoss=o,this.downlinkNetworkQuality=this.getNetworkQuality(o,i)}))}getStat(e){return X(this,null,(function*(){let t={rtt:0,totalPacketsLost:0,totalPacketsReceived:0};if(!e||!$g())return t;let i=e.getReceivers();try{for(let o=0;o<i.length;o++)(yield i[o].getStats()).forEach((g=>{g.type==="candidate-pair"&&Zt(g.currentRoundTripTime)&&(t.rtt=Math.round(1e3*g.currentRoundTripTime)),g.type==="inbound-rtp"&&(g.mediaType===V.AUDIO||g.mediaType===V.VIDEO)&&(t.totalPacketsLost+=g.packetsLost,t.totalPacketsReceived+=g.packetsReceived)}));return t.rtt===0&&(t.rtt=this.uplinkRTT),t}catch{return t}}))}getAverageLossAndRTT(e){let t={rtt:0,loss:0};return Array.isArray(e)&&e.length>0&&(e.forEach((i=>{t.rtt+=i.rtt,t.loss+=i.loss})),Object.keys(t).forEach((i=>{t[i]=Math.round(t[i]/e.length)}))),t}getNetworkQuality(e,t){return e>50||t>500?5:e>30||t>350?4:e>20||t>200?3:e>10||t>100?2:e>=0||t>=0?1:0}handleSignalConnectionStateChange(e){e.state==="DISCONNECTED"?(this.uplinkRTT=0,this.uplinkLoss=0,this.uplinkNetworkQuality=6):e.state==="CONNECTED"&&this.uplinkNetworkQuality===6&&(this.uplinkNetworkQuality=5)}handleUplinkConnectionStateChange(e){let{state:t}=e;t==="DISCONNECTED"?(this.uplinkLoss=0,this.uplinkRTT=0,this.uplinkNetworkQuality=6):t==="CONNECTED"&&this.uplinkNetworkQuality===6&&(this.uplinkNetworkQuality=5)}isPeerConnectionDisconnected(e){return!(!e||e.connectionState!==co.DISCONNECTED&&e.connectionState!==co.FAILED&&e.connectionState!==co.CLOSED)}setUplinkConnection(e){this._room.uplinkConnection=e,this._room.uplinkConnection?this._room.uplinkConnection.on("connection-state-changed",this.handleUplinkConnectionStateChange.bind(this)):(this.uplinkNetworkQuality=0,this.uplinkRTT=0,this.uplinkLoss=0)}start(){this._interval===-1?(this._log.debug("start network quality calculating"),this._interval=ti.run("ric",(()=>{var e;this.handleDownlinkNetworkQuality();let t=[...this._downlinkLossAndRTTMap.values()];N.emit(v.NETWORK_QUALITY,{room:this._room,uplink:{rtt:this.uplinkRTT,loss:this.uplinkLoss},downlinks:t});let i=(e=this._room.scheduleResult.config)==null?void 0:e.pingDomainInfo,o={uplinkNetworkQuality:this.uplinkNetworkQuality,downlinkNetworkQuality:this.downlinkNetworkQuality,uplinkRTT:this.uplinkRTT,uplinkLoss:this.uplinkLoss,downlinkRTT:this.downlinkRTT,downlinkLoss:this.downlinkLoss};i&&(o=tt(le({},o),{pingResults:this.uplinkRTT>i.rttThreshold||this.downlinkRTT>i.rttThreshold?this.pingResults:{}})),this.emit(jT.EVENT_NETWORK_QUALITY,o);let g=Date.now();if(i&&(this.uplinkRTT>i.rttThreshold||this.downlinkRTT>i.rttThreshold)&&g-jT.lastPingTime>1e3*i.interval){jT.lastPingTime=Date.now();let r=i.domain.map((n=>uP(n).then((I=>({domain:n,cost:I.totalCost})))));Promise.all(r).then((n=>{this.pingResults.isPoorNetwork=n.some((I=>I.cost>700)),this.pingResults.timestamp=g,this.pingResults.data=n,n.forEach((I=>{ee.addSuccessEvent({key:521718,cost:I.cost})})),this._log.warn("All ping results: ".concat(JSON.stringify(n)))})).catch((n=>{this._log.warn("Error during pinging domains: ".concat(n))}))}}),{delay:2e3})):this._log.info("network quality calculating is already started")}stop(){this._log.debug("stopped"),this._interval!==-1&&(ti.clearTask(this._interval),this._interval=-1),this._downlinkLossAndRTTMap.clear(),this._downlinkPrevStatMap.clear()}updateDelay(e){let{tinyIdToUserIdMap:t}=this._room;e.forEach((i=>{let{srcTinyId:o,videoDelay:g,audioDelay:r}=i,n=t.get(o);if(n){let I=this._room.remotePublishedUserMap.get(n);I==null||I.setDelay({videoDelay:g,audioDelay:r})}}))}};l(XJ,"EVENT_NETWORK_QUALITY","0"),l(XJ,"lastPingTime",0);var zx=XJ,$x=class{constructor(A){l(this,"_frameWorkType"),l(this,"_component"),l(this,"_language"),l(this,"connectionType"),l(this,"_room"),l(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0,reportToken:void 0}),l(this,"_keyPrefix"),l(this,"_log"),l(this,"_intervalId"),l(this,"_firstPublishedUserList"),l(this,"_networkQuality"),l(this,"_basicInfo"),l(this,"_pathJoinRoom"),l(this,"_pathLeaveRoom"),l(this,"_pathMainVideoMap"),l(this,"_pathMainAudioMap"),l(this,"_pathAuxiliaryMap"),l(this,"_remoteStreamStatMap"),l(this,"_localStreamStat"),l(this,"_eventMap",new Map),l(this,"_captureCostSum",0),l(this,"_captureCostCount",0),l(this,"isDestroyed",!1),this._frameWorkType=A.frameWorkType||30,this._component=A.component||0,this.connectionType=A.connectionType||1,this._language=A.language||0,this._room=A.room,this._keyPrefix="key_point",this._log=K.createLogger({parent:this._room.getLogger(),id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach((e=>{e.startsWith("handle")&&Ni(this[e])&&(this[e]=(function(t){let{fn:i,context:o}=t;return function(){try{for(var g=arguments.length,r=new Array(g),n=0;n<g;n++)r[n]=arguments[n];let I=i.apply(o,r);return Vl(I)?I.catch((C=>K.error("".concat(i.name,"() error observed ").concat(C)))):I}catch(I){K.error("".concat(i.name,"() error observed ").concat(I))}}})({fn:this[e],context:this}))})),this.initData(),this.installEvents()}initData(){this._firstPublishedUserList=[],this._networkQuality={totalUplinkRTT:0,totalUplinkLoss:0,count:0,totalDownlinkRTTAndLossMap:new Map},this._basicInfo={string_sdk_version:ia,uint32_os_type:15,string_device_name:"",string_http_user_agent:navigator.userAgent,string_os_version:"",uint32_avg_rtt:0,uint32_avg_up_loss:0,uint32_scene:this._room.scene==="live"?1:0,uint32_joining_duration:0,uint32_networkType:0,uint32_framework:this._frameWorkType,uint32_component:this._component,uint32_connection_type:this.connectionType,uint32_caller_coding_language:this._language,string_domain:location.hostname},this._pathJoinRoom={uint64_start_time:0,uint64_send_request_acc_ip_cmd_start_time:0,uint64_send_request_acc_ip_cmd_end_time:0,uint64_send_request_enter_room_cmd_start_time:0,uint64_send_request_enter_room_cmd_end_time:0,uint64_send_first_video_frame_time:0,uint64_recv_userlist_time:0,uint64_end_time:0,int32_send_request_acc_ip_cmd_ret:0,int32_send_request_enter_room_cmd_ret:0,int32_end_ret:0},this._pathLeaveRoom={uint64_start_time:0,uint64_send_request_exit_room_cmd_start_time:0,uint64_send_request_exit_room_cmd_end_time:0,uint64_end_time:0,int32_send_request_exit_room_cmd_ret:0,int32_end_ret:0},this._localStreamStat={totalVideoBitrate:0,totalVideoFPS:0,totalVideoHeight:0,totalVideoWidth:0,totalAudioLevel:0,videoCount:0,audioLevelCount:0,publishStartTime:0,statsToReport:{uint32_audio_capture_db:0,uint32_video_big_capture_fps:0,uint32_video_big_bitrate:0,uint32_video_big_resolution:0,uint32_audio_capture_thread_health_zero_cnt:0,uint32_after3a_silence_duration:0}},this._pathMainVideoMap=new Map,this._pathMainAudioMap=new Map,this._pathAuxiliaryMap=new Map,this._remoteStreamStatMap=new Map,Bu().then((()=>{this._basicInfo.string_os_version=s(),this._basicInfo.string_device_name=No()||this._basicInfo.string_os_version}))}addEvent(A,e){return this._eventMap.set(A,e),N.on(A,e),this}installEvents(){this.handleUnload=this.handleUnload.bind(this),window.addEventListener("pagehide",this.handleUnload),this._room.once("banned",(()=>this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId}))),this.addEvent(v.JOIN_START,this.handleJoinStart).addEvent(v.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(v.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(v.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(v.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(v.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(v.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(v.JOIN_FAILED,this.handleJoinFailed).addEvent(v.LEAVE_START,this.handleLeaveStart).addEvent(v.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(v.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(v.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(v.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(v.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(v.PUBLISH_START,this.handlePublishStart).addEvent(v.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(v.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(v.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(v.PLAY_TRACK_START,this.handlePlayStart).addEvent(v.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(v.PLAYER_STATE_CHANGED,(A=>{let{track:e,state:t,type:i}=A;!e.isRemote||!this.hitTest(e.room)||t==="PLAYING"&&(i===V.AUDIO?this.handleAudioPlaying(e):this.handleVideoPlaying(e))})).addEvent(v.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(v.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(v.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(v.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(v.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(v.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(v.REMOTE_PUBLISH_STATE_CHANGED,(A=>{let{room:e,prevMuteState:t,muteState:i}=A;if(!this.hitTest(e))return;let o=t.hasAudio||t.hasVideo||t.hasSmall,g=t.hasAuxiliary,r=i.hasAudio||i.hasVideo||i.hasSmall,n=i.hasAuxiliary;!o&&r&&this.handleRemoteStreamAdded(i.userId,"main"),!g&&n&&this.handleRemoteStreamAdded(i.userId,"auxiliary")})).addEvent(v.SINGLE_CONNECTION_STAT,(A=>{let{room:e,stat:t}=A;this.hitTest(e)&&(this._pathJoinRoom.int32_ice_cost=t.ice,this._pathJoinRoom.int32_dtls_cost=t.dtls,this._pathJoinRoom.int32_peer_connection_cost=t.peerConnection)}))}uninstallEvents(){window.removeEventListener("pagehide",this.handleUnload),this._eventMap.forEach(((A,e)=>N.off(e,A))),this._eventMap.clear()}destroy(){this.uninstallEvents(),ti.clearTask(this._intervalId),this._pathJoinRoom.uint64_start_time===0&&(this._room=null),this.isDestroyed=!0}handleUnload(){this._room.isJoined&&this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})}handleJoinStart(A){this.hitTest(A.room)&&(this._pathJoinRoom.uint64_start_time===0&&(this._pathJoinRoom.uint64_start_time=Date.now()),A.params&&(yA(A.params.frameWorkType)||(this._frameWorkType=A.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),yA(A.params.component)||(this._component=A.params.component,this._basicInfo.uint32_component=this._component),yA(A.params.language)||(this._language=A.params.language,this._basicInfo.uint32_caller_coding_language=this._language)))}handleJoinScheduleSuccess(A){let{room:e,detailCost:t}=A;if(this.hitTest(e)&&t){let{totalCost:i,local:o,dns:g,tcp:r,tls:n,request:I,response:C}=t;this._pathJoinRoom.int32_schedule_cost=i,this._pathJoinRoom.int32_schedule_local=o,this._pathJoinRoom.int32_schedule_dns=g,this._pathJoinRoom.int32_schedule_tcp=r,this._pathJoinRoom.int32_schedule_tls=n,this._pathJoinRoom.int32_schedule_request=I,this._pathJoinRoom.int32_schedule_response=C}}handleSignalConnectionStart(A){let{room:e}=A;this.hitTest(e)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time=Date.now())}handleSignalConnectionEnd(A){let{room:e,error:t}=A;this.hitTest(e)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time=Date.now(),t&&(this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret=t instanceof oe?Number(t.getExtraCode()||t.getCode()):OA.UNKNOWN,this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret))}handleJoinSendCMD(A){this.hitTest(A.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=Date.now())}handleJoinReceivedCMDResponce(A){this.hitTest(A.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=Date.now(),this._pathJoinRoom.int32_send_request_enter_room_cmd_ret=A.code,A.code!==0&&(this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_enter_room_cmd_ret))}handleJoinSuccess(A){this.hitTest(A.room)&&this._pathJoinRoom.uint64_end_time===0&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret=0,this._signalInfo=A.room.getSignalInfo())}handleJoinFailed(A){let{room:e,error:t}=A;this.hitTest(e)&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret===0&&(this._pathJoinRoom.int32_end_ret=t.code||this._pathJoinRoom.int32_send_request_enter_room_cmd_ret||this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret),setTimeout((()=>{this.report()})))}handleReceivedPublishUserList(A){this.hitTest(A.room)&&this._pathJoinRoom.uint64_recv_userlist_time===0&&(this._pathJoinRoom.uint64_recv_userlist_time=Date.now(),this._firstPublishedUserList=A.publishedUserList||[])}handleSendFirstVideoFrame(A){let{room:e}=A;this.hitTest(e)&&this._pathJoinRoom.uint64_send_first_video_frame_time===0&&this._pathJoinRoom.uint64_start_time!==0&&(this._pathJoinRoom.uint64_send_first_video_frame_time=Date.now())}handleLeaveStart(A){this.hitTest(A.room)&&(this._pathLeaveRoom.uint64_start_time=Date.now())}handleLeaveSuccess(A){var e;if(this.hitTest(A.room)&&this._pathLeaveRoom.uint64_end_time===0){if(this._pathLeaveRoom.uint64_end_time=Date.now(),this._pathJoinRoom.uint64_end_time!==0){this._basicInfo.uint32_joining_duration=this._pathLeaveRoom.uint64_end_time-this._pathJoinRoom.uint64_end_time;let t=(e=this._room.audioManager.localAudioTrack)==null?void 0:e.after3aSilenceStartTime;t&&(this._localStreamStat.statsToReport.uint32_after3a_silence_duration=it()-t)}else this._log.warn("pathJoinRoom endTime is 0");this.report()}}handleLeaveSendCMD(A){this.hitTest(A.room)&&(this._pathLeaveRoom.uint64_send_request_exit_room_cmd_start_time=Date.now(),this._pathLeaveRoom.uint64_send_request_exit_room_cmd_end_time=Date.now())}handleSwitchRoomStart(A){if(this.hitTest(A.room)){let e=Date.now();this.report().then((()=>{this._pathJoinRoom.uint64_start_time=e,this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=e}))}}handleSwitchRoomSuccess(A){let{room:e}=A;if(this.hitTest(e)&&this._pathJoinRoom.uint64_end_time===0){let t=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=t,this._pathJoinRoom.uint64_end_time=t,this._pathJoinRoom.int32_end_ret}}handleSwitchRoomFailed(A){let{room:e,error:t}=A;if(this.hitTest(e)){let i=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=i,this._pathJoinRoom.uint64_end_time=i,t&&(this._pathJoinRoom.int32_end_ret=t instanceof oe?Number(t.getExtraCode()||t.getCode()):OA.UNKNOWN)}}handleRemoteStreamAdded(A,e){var t;let i="".concat(A,"_").concat(e);if(!this._remoteStreamStatMap.has(i)){let o={userId:A,totalVideoFPS:0,totalVideoBitrate:0,totalAudioLevel:0,totalAudioBitrate:0,totalLoss:0,audioCount:0,audioLevelCount:0,videoCount:0,networkQualityCount:0,streamAddedTime:Date.now(),subscribeStartTime:0,subscribedTime:0,playStreamTime:0,statsToReport:tt(le({},dP),{msg_user_info:new zJ({userId:A,tinyId:(t=this._room.remotePublishedUserMap.get(A))==null?void 0:t.tinyId,role:20})})};o.statsToReport.uint32_stream_type=e==="main"?2:7,this._remoteStreamStatMap.set(i,o)}}handleSubscribeStart(A){let{room:e,remotePublishedUser:t,streamType:i,subscribeState:o}=A;if(!this.hitTest(e))return;let{userId:g,tinyId:r,role:n}=t,I=new zJ({userId:g,tinyId:r,role:n==="anchor"?20:21}),C=Date.now(),u="".concat(g,"_").concat(i),R=this._remoteStreamStatMap.get(u);R&&R.subscribeStartTime===0&&(R.subscribeStartTime=C),i==="main"?(t.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(u)&&this._pathMainVideoMap.set(u,{statsToReport:{msg_user_info:I,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:g,sendSubscribeCMDTime:C}),t.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(u)&&this._pathMainAudioMap.set(u,{statsToReport:{msg_user_info:I,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:g,sendSubscribeCMDTime:C})):t.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(u)&&this._pathAuxiliaryMap.set(u,{sendSubscribeCMDTime:C})}handleSubscribed(A){let{room:e,remotePublishedUser:t,streamType:i}=A;if(this.hitTest(e)){let o="".concat(t.userId,"_").concat(i),g=this._remoteStreamStatMap.get(o);g&&g.subscribedTime===0&&(g.subscribedTime=Date.now())}}handlePlayStart(A){let{track:e}=A;if(!e.isRemote||!this.hitTest(e.room))return;let t="".concat(e.userId,"_").concat(e.streamType),i=this._remoteStreamStatMap.get(t);(i==null?void 0:i.playStreamTime)===0&&(i.playStreamTime=Date.now())}handleVideoLoadedData(A){let{track:e}=A;if(!e.isRemote||!this.hitTest(e.room))return;let t="".concat(e.userId,"_").concat(e.streamType),i=this._pathMainVideoMap.get(t);i&&i.statsToReport.uint64_combine_first_frame_time===0&&(i.statsToReport.uint64_combine_first_frame_time=Date.now())}handleVideoPlaying(A){let e="".concat(A.userId,"_").concat(A.streamType),t=Date.now(),i=this._pathMainVideoMap.get(e),o=this._remoteStreamStatMap.get(e);if(o){let{statsToReport:g}=o;if(g.uint32_video_render_first||A.streamType!=="main"?this.hasAuxFlag(A.userId):this.hasVideoFlag(A.userId)){let r=t-this._pathJoinRoom.uint64_start_time;g.uint32_video_render_first=r,ee.addNumber({key:516820,value:r})}}(i==null?void 0:i.statsToReport.uint64_render_first_frame_time)===0&&(i.statsToReport.uint64_render_first_frame_time=t)}handleAudioPlaying(A){let e="".concat(A.userId,"_").concat(A.streamType),t=this._pathMainAudioMap.get(e);t&&t.statsToReport.uint64_play_first_frame_time===0&&(t.statsToReport.uint64_play_first_frame_time=Date.now())}handleNetworkQuality(A){this.hitTest(A.room)&&(this._networkQuality.totalUplinkLoss+=A.uplink.loss,this._networkQuality.totalUplinkRTT+=A.uplink.rtt,this._networkQuality.count++,A.downlinks.forEach((e=>{let{rtt:t,loss:i,userId:o,videoDelay:g,audioDelay:r}=e,n=this._networkQuality.totalDownlinkRTTAndLossMap.get(o);if(n)n.totalRTT+=t,n.totalLoss+=i,g&&(n.totalVideoDelay=(n.totalVideoDelay||0)+g,n.videoDelayCount=(n.videoDelayCount||0)+1),r&&(n.totalAudioDelay=(n.totalAudioDelay||0)+r,n.audioDelayCount=(n.audioDelayCount||0)+1),n.count++;else{let I,C,u,R;g&&(C=g,u=1),r&&(I=r,R=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:t,totalLoss:i,count:1,totalAudioDelay:I,totalVideoDelay:C,audioDelayCount:R,videoDelayCount:u})}})))}handleHeartbeatStats(A){var e;if(this.hitTest(A.room)){let{msg_device_info:t,msg_up_stream_info:i,msg_down_stream_info:o}=A.report;if(i.msg_video_status[0]){let{uint32_video_codec_bitrate:g,uint32_video_enc_fps:r,uint32_video_width:n,uint32_video_height:I}=i.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=g,this._localStreamStat.totalVideoFPS+=r,this._localStreamStat.totalVideoWidth+=n,this._localStreamStat.totalVideoHeight+=I,this._localStreamStat.videoCount++}if(i.msg_audio_status){let{uint32_audio_level:g}=i.msg_audio_status;Math.floor(g/Ua*100)>0&&(this._localStreamStat.totalAudioLevel+=g/Ua,this._localStreamStat.audioLevelCount++)}o.forEach((g=>{let{msg_user_info:r,msg_audio_status:n,msg_video_status:I}=g,C=r.str_identifier,u=this._room.remotePublishedUserMap.get(C);if(I.forEach((R=>{let M=R.uint32_video_stream_type===2,L=R.uint32_video_stream_type===7,H="".concat(C,"_").concat(M?"main":"auxiliary"),gA=this._remoteStreamStatMap.get(H);if(gA&&(M&&u!=null&&u.remoteVideoTrack.isSubscribed||L&&u!=null&&u.remoteAuxiliaryTrack)){gA.totalVideoFPS+=R.uint32_video_receive_fps,gA.totalVideoBitrate+=R.uint32_video_codec_bitrate,gA.videoCount++,gA.statsToReport.uint32_video_width===0&&(gA.statsToReport.uint32_video_width=R.uint32_video_width),gA.statsToReport.uint32_video_height===0&&(gA.statsToReport.uint32_video_height=R.uint32_video_height);let EA=M?u.remoteVideoTrack:u.remoteAuxiliaryTrack;EA.stat.jitterBufferDelay&&(gA.videoJitterBufferDelay=EA.stat.jitterBufferDelay),EA.stat.framesReceived&&(gA.statsToReport.uint32_video_consume_render_rate=Math.floor(EA.stat.framesDecoded/EA.stat.framesReceived*Rl(10,6)))}})),!zp(n)){let R="".concat(C,"_main"),M=this._remoteStreamStatMap.get(R);this._remoteStreamStatMap.has(R)&&M&&u!=null&&u.remoteAudioTrack.isSubscribed&&(M.totalAudioBitrate+=n.uint32_audio_codec_bitrate,M.audioCount++,u.remoteAudioTrack.stat.jitterBufferDelay&&(M.audioJitterBufferDelay=u.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(n.uint32_audio_level/Ua*100)>0&&(M.totalAudioLevel+=n.uint32_audio_level/Ua,M.audioLevelCount++),n.uint32_audio_block_time&&(M.statsToReport.uint32_audio_block_time+=n.uint32_audio_block_time))}})),t.uint32_audio_capture_cost&&(this._captureCostSum+=t.uint32_audio_capture_cost,this._captureCostCount+=1,this._captureCostCount>=100&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0)),t.uint32_audio_capture_cost===0&&((e=this._room.audioManager.localAudioTrack)==null?void 0:e.muted)===!1&&(this._localStreamStat.statsToReport.uint32_audio_capture_thread_health_zero_cnt+=1)}}handlePublishStart(A){let{room:e}=A;this.hitTest(e)&&this._localStreamStat.publishStartTime===0&&(this._localStreamStat.publishStartTime=Date.now())}handleTrackCaptureStart(A){let{track:e}=A;e.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_start_time&&(this._pathJoinRoom.uint64_init_audio_start_time=Date.now()),e.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_start_time&&(this._pathJoinRoom.uint64_init_camera_start_time=Date.now())}handleTrackCaptureSuccess(A){let{track:e}=A;e.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=0,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),e.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=0,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}handleTrackCaptureFailed(A){let{track:e,error:t}=A,i={NotFoundError:1,NotAllowedError:2,NotReadableError:3,OverConstrainedError:4,AbortError:5,InvalidStateError:6,SecurityError:7,TypeError:8}[t.name]||(t instanceof oe?t.getExtraCode()||t.getCode():OA.UNKNOWN);e.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=i,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),e.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=i,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}hasVideoFlag(A){return this._firstPublishedUserList.findIndex((e=>e.userId===A&&e.flag&Fl))>=0}hasAudioFlag(A){return this._firstPublishedUserList.findIndex((e=>e.userId===A&&e.flag&BB))>=0}hasAuxFlag(A){return this._firstPublishedUserList.findIndex((e=>e.userId===A&&e.flag&Tl))>=0}hitTest(A){return A===this._room}prepareReport(){if(this._captureCostCount>0&&!this._basicInfo.uint32_audio_capture_cost&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0),this._networkQuality.count>0&&(this._basicInfo.uint32_avg_rtt=Math.floor(this._networkQuality.totalUplinkRTT/this._networkQuality.count),this._basicInfo.uint32_avg_up_loss=Math.floor(this._networkQuality.totalUplinkLoss/this._networkQuality.count)),this._localStreamStat.videoCount>0){this._localStreamStat.statsToReport.uint32_video_big_capture_fps=Math.floor(this._localStreamStat.totalVideoFPS/this._localStreamStat.videoCount),this._localStreamStat.statsToReport.uint32_video_big_bitrate=Math.floor(this._localStreamStat.totalVideoBitrate/this._localStreamStat.videoCount);let A=Math.floor(this._localStreamStat.totalVideoWidth/this._localStreamStat.videoCount),e=Math.floor(this._localStreamStat.totalVideoHeight/this._localStreamStat.videoCount);this._localStreamStat.statsToReport.uint32_video_big_resolution=A<<16|e}this._localStreamStat.audioLevelCount>0&&(this._localStreamStat.statsToReport.uint32_audio_capture_db=Math.floor(this._localStreamStat.totalAudioLevel/this._localStreamStat.audioLevelCount*100)),this._remoteStreamStatMap.forEach(((A,e)=>{let{userId:t}=A,i=this._networkQuality.totalDownlinkRTTAndLossMap.get(t);if(i){let{totalLoss:C,count:u,audioDelayCount:R,videoDelayCount:M,totalAudioDelay:L,totalVideoDelay:H}=i;A.statsToReport.uint32_avg_down_loss=Math.floor(C/u),R&&L&&(A.statsToReport.uint32_audio_network_p2p_delay=Math.floor(L/R),A.audioJitterBufferDelay&&(A.statsToReport.uint32_p2p_delay=Math.floor(A.statsToReport.uint32_audio_network_p2p_delay+A.audioJitterBufferDelay))),M&&H&&(A.statsToReport.uint32_video_network_p2p_delay=Math.floor(H/M))}A.videoCount>0&&(A.statsToReport.uint32_video_avg_fps=Math.floor(A.totalVideoFPS/A.videoCount),A.statsToReport.uint32_video_avg_bitrate=Math.floor(A.totalVideoBitrate/A.videoCount)),A.audioCount>0&&(A.statsToReport.uint32_audio_recv_bitrate=A.statsToReport.uint32_audio_bitrate=Math.floor(A.totalAudioBitrate/A.audioCount)),A.audioLevelCount>0&&(A.statsToReport.uint32_audio_play_db=Math.floor(A.totalAudioLevel/A.audioLevelCount*100));let{callDurationCalculator:o}=this._room;o&&(A.statsToReport.uint32_audio_play_time=o.getDuration(e,V.AUDIO),A.statsToReport.uint32_video_play_time=o.getDuration(e,V.VIDEO)),A.statsToReport.uint32_video_render_first&&(A.statsToReport.uint32_video_render_first=Math.min(A.statsToReport.uint32_video_render_first,bu));let{badCaseDetector:g}=this._room,{dataFreeze:r,count:n}=g.getDataFreezeDuration(e),{renderFreeze:I}=g.getRenderFreezeDuration(e);A.statsToReport.uint32_video_block_count=n,A.statsToReport.uint32_video_block_time=Math.min(r,A.statsToReport.uint32_video_play_time),A.statsToReport.uint32_video_external_block_time=Math.min(I,A.statsToReport.uint32_video_play_time),A.statsToReport.uint32_audio_block_time=Math.min(A.statsToReport.uint32_audio_block_time,A.statsToReport.uint32_audio_play_time),g.isBlackStream(e)&&A.statsToReport.uint32_video_avg_fps===0?A.statsToReport.uint32_video_black_screen_subjective=1:A.statsToReport.uint32_video_black_screen_subjective=0})),this._pathMainAudioMap.forEach(((A,e)=>{this.hasAudioFlag(A.userId)?A.statsToReport.uint64_play_first_frame_time-A.statsToReport.uint64_start_enter_time>bu&&(A.statsToReport.uint64_play_first_frame_time=A.statsToReport.uint64_start_enter_time+bu):this._pathMainAudioMap.delete(e)})),this._pathMainVideoMap.forEach(((A,e)=>{this.hasVideoFlag(A.userId)?A.statsToReport.uint64_render_first_frame_time-A.statsToReport.uint64_start_enter_time>bu&&(A.statsToReport.uint64_render_first_frame_time=A.statsToReport.uint64_start_enter_time+bu):this._pathMainVideoMap.delete(e)})),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>bu&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+bu)}getReportData(){this._basicInfo.uint32_networkType=Pl();let A={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new zJ({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:jl(this._signalInfo.relayIp),uint32_client_ip:jl(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*Rl(2,31)),msg_path_enter_room:this._pathJoinRoom,msg_path_exit_room:this._pathLeaveRoom,msg_path_recv_video:[...this._pathMainVideoMap.values()].map((e=>e.statsToReport)),msg_quality_statistics:[...this._remoteStreamStatMap.values()].map((e=>e.statsToReport)),str_room_name:String(this._room.roomId||0),msg_path_recv_audio:[...this._pathMainAudioMap.values()].map((e=>e.statsToReport)),uint32_info_client_ip:jl(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend,str_user_sig:this._room.userSig,bytes_report_token:this._signalInfo.reportToken};return ey(A),A}report(){return X(this,null,(function*(){try{this.prepareReport();let A=this.getReportData();yield this.upload(A),this.initData()}catch(A){this._log.warn(A)}finally{this.isDestroyed&&(this._room=null)}}))}upload(A){return X(this,null,(function*(){if(A.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),t=P.enable?fn(A,2001,e):yield _v(A),i=t instanceof ArrayBuffer,o="".concat(uB(e,Gl.KEY_POINT),"&gzip=").concat(+i),g=!1;navigator.sendBeacon&&(g=navigator.sendBeacon(o,t));let r=[this.uploadKVStat(ee),this.uploadKVStat(Js)];g||r.push(iu({url:o,body:t,priority:"low"})),yield Promise.all(r)}))}setConnectionType(A){this.connectionType=A,this._basicInfo.uint32_connection_type=A}uploadKVStat(A){return X(this,null,(function*(){let e=A.getReportData(this._room.userSig,this._signalInfo.reportToken);if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=tt(le({},e.msg_sdk_basic_info),{bytes_device_name:this._basicInfo.string_device_name||"",bytes_os_version:this._basicInfo.string_os_version||"",uint32_framework:this._frameWorkType,uint32_network_type:this._basicInfo.uint32_networkType||0}),this._log.debug(e);let t=P.enable?fn(e,2003,this._room.sdkAppId):yield _v(e),i=t instanceof ArrayBuffer,o="".concat(uB(+this._room.sdkAppId,Gl.KV_STAT),"&gzip=").concat(+i),g=!1;navigator.sendBeacon&&(g=navigator.sendBeacon(o,t)),g||iu({url:o,body:t})}))}};ne([ba({settings:{timeout:500,retries:3}})],$x.prototype,"upload");var bu=5e3,dP={msg_user_info:null,uint32_video_avg_fps:0,uint32_video_width:0,uint32_video_height:0,uint32_video_avg_bitrate:0,uint32_video_block_time:0,uint32_video_play_time:0,uint32_audio_block_time:0,uint32_audio_play_time:0,uint32_audio_play_db:0,uint32_avg_down_loss:0,uint32_stream_type:0,uint32_video_block_count:0,uint32_audio_block_count:0,uint32_audio_bitrate:0,uint32_video_black_screen_subjective:0,uint32_audio_recv_bitrate:0,uint32_video_external_block_time:0,uint32_video_consume_render_rate:0},zJ=class{constructor(A){l(this,"str_identifier"),l(this,"str_tinyid"),l(this,"uint32_role"),this.str_identifier=String(A.userId),this.str_tinyid=String(A.tinyId||0),this.uint32_role=A.role}},DP=$x,AK=class{constructor(){l(this,"_startTime"),l(this,"_endTime"),this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=it())}stop(){this._endTime===0&&(this._endTime=it())}getDuration(){return this._endTime===0?it()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},pP=class{constructor(A){l(this,"_room",null),l(this,"_durationMap"),l(this,"_eventMap",new Map),this._room=A.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(v.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(v.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(v.REMOTE_PUBLISH_STATE_CHANGED,(A=>{let{room:e,prevMuteState:t,muteState:i}=A;var o;let{userId:g}=i;if(!this.hitTest(e))return;t.hasAudio&&!i.hasAudio&&this.stopDurationItem("".concat(g,"_main"),V.AUDIO),t.hasVideo&&!i.hasVideo&&this.stopDurationItem("".concat(g,"_main"),V.VIDEO),t.hasAuxiliary&&!i.hasAuxiliary&&this.stopDurationItem("".concat(g,"_auxiliary"),V.VIDEO);let r=(o=this._room)==null?void 0:o.remotePublishedUserMap.get(g);r&&(!t.hasAudio&&i.hasAudio&&r.remoteAudioTrack.isSubscribed&&this.addDuractionItem(g,V.AUDIO,"main"),!t.hasVideo&&i.hasVideo&&r.remoteVideoTrack.isSubscribed&&this.addDuractionItem(g,V.VIDEO,"main"),!t.hasAuxiliary&&i.hasAuxiliary&&r.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(g,V.VIDEO,"auxiliary"))})),this._eventMap.forEach(((A,e)=>N.on(e,A,this)))}uninstallEvents(){this._eventMap.forEach(((A,e)=>N.off(e,A,this))),this._eventMap.clear()}handleSubscribed(A){let{track:e}=A;if(!this.hitTest(e.room))return;let{userId:t,streamType:i,kind:o}=e;e.isSubscribed?this.addDuractionItem(t,o,i):this.stopDurationItem("".concat(t,"_").concat(i),o)}handleUnsubscribed(A){let{track:e}=A;this.hitTest(e.room)&&this.stopDurationItem("".concat(e.userId,"_").concat(e.streamType),e.kind)}isRecording(A){return A.findIndex((e=>e.endTime===0))>=0}addDuractionItem(A,e,t){let i="".concat(A,"_").concat(t),o=new AK,g=this._durationMap.get(i);g?this.isRecording(g[e])||g[e].push(o):this._durationMap.set(i,{userId:A,type:t,audio:e===V.AUDIO?[o]:[],video:e===V.AUDIO?[]:[o]})}stopDurationItem(A,e){if(this._durationMap.has(A)){let t=this._durationMap.get(A)[e].find((i=>i.endTime===0));t&&t.stop()}}hitTest(A){return this._room===A}getDuration(A,e){return this._durationMap.has(A)?this._durationMap.get(A)[e].reduce(((t,i)=>t+i.getDuration()),0):0}getDurationMap(){return this._durationMap}reset(){this._durationMap.clear()}destroy(){this._room=null,this.uninstallEvents()}},yP=class{constructor(){l(this,"renderFreezeMap",new Map),l(this,"dataFreezeMap",new Map)}get(A,e){let t=this.renderFreezeMap.get(A),i=this.dataFreezeMap.get(A);return e?e==="data"?i:t:(ko||ei)&&t&&i&&t.duration>i.duration?t:i}set(A,e,t){t==="data"?this.dataFreezeMap.set(A,e):this.renderFreezeMap.set(A,e)}clear(){this.renderFreezeMap.clear(),this.dataFreezeMap.clear()}},RP=class{constructor(A){l(this,"_room"),l(this,"_renderFreezeMap",new Map),l(this,"_isVideoPlayingEventFiredMap",new Map),l(this,"_dataFreezeMap",new Map),l(this,"_monitorFreezeData",new yP),l(this,"_eventMap",new Map),l(this,"_videoEncodeFailedCount",0),l(this,"_audioEncodeFailedCount",0),l(this,"_encodeFailedThreshold",3),l(this,"eventListenerMap",new Map),this._room=A.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(v.LEAVE_SUCCESS,(A=>{let{room:e}=A;this.hitTest(e)&&this.stop()})).set(v.PLAY_TRACK_START,this.onPlayTrackStart).set(v.UNSUBSCRIBE_SUCCESS,(A=>{let{room:e,streamType:t,remotePublishedUser:i}=A;if(!this.hitTest(e))return;let{userId:o}=i,g="".concat(o,"_").concat(t);this.stopDataFreeze({key:g,userId:o,type:t})})).set(v.REMOTE_PUBLISH_STATE_CHANGED,(A=>{let{room:e,prevMuteState:t,muteState:i}=A;if(!this.hitTest(e))return;let{userId:o}=i;if(t.hasVideo&&!i.hasVideo){let g="main",r="".concat(i.userId,"_").concat(g);this.stopDataFreeze({key:r,userId:o,type:g})}if(t.hasAuxiliary&&!i.hasAuxiliary){let g="auxiliary",r="".concat(i.userId,"_").concat(g);this.stopDataFreeze({key:r,userId:o,type:g})}})).set(v.PLAYER_STATE_CHANGED,(A=>{let{track:e,state:t,reason:i,type:o}=A;if(e.isRemote&&e.room&&this.hitTest(e.room)&&o===V.VIDEO){if(t==="PLAYING"){let g="".concat(e.userId,"_").concat(e.streamType);this._isVideoPlayingEventFiredMap.set(g,!0)}i===V.MUTE?this.onVideoTrackMuted(e):i===V.UNMUTE&&this.onVideoTrackUnmuted(e)}})).set(v.HEARTBEAT_REPORT,this.onHearBeatReport).set(v.REMOTE_VIDEO_PLAY_START,this.onRemoteVideoPlayStart).set(v.REMOTE_VIDEO_PLAY_FINISH,this.onRemoteVideoPlayEnd),this._eventMap.forEach(((A,e)=>N.on(e,A,this)))}uninstallEvents(){this._eventMap.forEach(((A,e)=>N.off(e,A,this))),this._eventMap.clear()}stop(){this._renderFreezeMap.clear(),this._dataFreezeMap.clear(),this._isVideoPlayingEventFiredMap.clear()}onVideoTrackMuted(A){if(!A.isSubscribed)return;let{userId:e,streamType:t}=A,i="".concat(e,"_").concat(t),o=this._dataFreezeMap.get(i),g=new AK;o?o.durationItemList.push(g):this._dataFreezeMap.set(i,{userId:e,type:t,durationItemList:[g],isFreezing(){let r=this.durationItemList[this.durationItemList.length-1];return r&&r.endTime===0}})}onVideoTrackUnmuted(A){if(!A.isSubscribed)return;let{userId:e,streamType:t}=A,i="".concat(e,"_").concat(t);this.stopDataFreeze({key:i,userId:e,type:t})}onHearBeatReport(A){let{room:e,report:t}=A;if(this.hitTest(e)){if(t.msg_up_stream_info.msg_video_status){let i=t.msg_up_stream_info.msg_video_status,o=Array.from(this._room.localTracks).find((r=>r.kind==="video"&&!r.isScreen)),g=(o==null?void 0:o.stat.bytesSent)||0;if((o==null?void 0:o.isMediaTrackActive)===!1||g<=0||o!=null&&o.isUseCustomSource)return;i.forEach((r=>{r.uint32_video_stream_type===2&&(r.uint32_video_capture_fps!==0&&r.uint32_video_codec_bitrate===0&&r.uint32_video_enc_fps===0&&o!=null&&o.isPublished?(this._videoEncodeFailedCount+=1,this._videoEncodeFailedCount===this._encodeFailedThreshold&&wi.uploadEvent({userId:this._room.userId,log:"stat-".concat(ga.VIDEO_ENCODE_FAILED_DURING_CALL)})):this._videoEncodeFailedCount=0)}))}if(t.msg_up_stream_info.msg_audio_status){let i=t.msg_up_stream_info.msg_audio_status,o=Array.from(this._room.localTracks).find((r=>r.kind==="audio")),g=(o==null?void 0:o.stat.bytesSent)||0;if((o==null?void 0:o.isMediaTrackActive)===!1||g<=0)return;i.uint32_audio_codec_bitrate===0&&o!=null&&o.isPublished?(this._audioEncodeFailedCount+=1,this._audioEncodeFailedCount===this._encodeFailedThreshold&&wi.uploadEvent({userId:this._room.userId,log:"stat-".concat(ga.AUDIO_ENCODE_FAILED_DURING_CALL)})):this._audioEncodeFailedCount=0}}}stopDataFreeze(A){let{key:e,userId:t,type:i}=A,o=this._dataFreezeMap.get(e);if(!o||!o.isFreezing())return;let g=o.durationItemList[o.durationItemList.length-1];g.stop();let r=g.getDuration();if(r>yS){let n=this._monitorFreezeData.get(e,"data");this._monitorFreezeData.set(e,{userId:t,type:i,duration:n?n.duration+r:r},"data")}else o.durationItemList.pop()}getTotalDuration(A){return A.reduce(((e,t)=>{let i=t.getDuration();return e+Math.min(i,5e3)}),0)}onPlayTrackStart(A){let{track:e}=A;if(!e.isRemote||!this.hitTest(e.room)||e.kind!==V.VIDEO||!e.isRemotePublished)return;let t="".concat(e.userId,"_").concat(e.streamType);this._isVideoPlayingEventFiredMap.has(t)||this._isVideoPlayingEventFiredMap.set(t,!1)}getDataFreezeDuration(A){let e={dataFreeze:0,count:0},t=this._dataFreezeMap.get(A);if(t){if(t.isFreezing()){let i=t.durationItemList[t.durationItemList.length-1];i.stop(),i.getDuration()<yS&&t.durationItemList.pop()}e.dataFreeze=this.getTotalDuration(t.durationItemList),e.count=t.durationItemList.length}return e}getRenderFreezeDuration(A){let e={renderFreeze:0,count:0},t=this._renderFreezeMap.get(A);return t&&(e.renderFreeze=t.totalDuration,e.count=t.count),e}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(A){return!!this._isVideoPlayingEventFiredMap.has(A)&&!this._isVideoPlayingEventFiredMap.get(A)}onRemoteVideoPlayStart(A){let{track:e,player:t}=A;var i;if(!Gn())return;let o=0,g=()=>{document.hidden||(o=0)};document.addEventListener("visibilitychange",g);let r=(n,I)=>{var C;if(o){let u=e.decodeFPS,R=u>0&&u<=5?600+1e3/u:600,M=I.presentationTime-o;if(M>R){M=Math.min(M,5e3);let L="".concat(e.userId,"_").concat(e.streamType),H=this._monitorFreezeData.get(L,"render");H?H.duration+=M:this._monitorFreezeData.set(L,{userId:e.userId,type:e.streamType,duration:M},"render");let gA=this._renderFreezeMap.get(L);gA?(gA.totalDuration+=M,gA.count+=1):this._renderFreezeMap.set(L,{userId:e.userId,type:e.streamType,totalDuration:M,count:1})}}o=I.presentationTime,(C=t.element)==null||C.requestVideoFrameCallback(r)};(i=t.element)==null||i.requestVideoFrameCallback(r),this.eventListenerMap.set("".concat(e.userId,"_").concat(e.streamType),{onVisibilityChange:g})}onRemoteVideoPlayEnd(A){let{track:e,player:t}=A,i="".concat(e.userId,"_").concat(e.streamType),o=this.eventListenerMap.get(i);o&&document.removeEventListener("visibilitychange",o.onVisibilityChange)}resetMonitor(){this._monitorFreezeData.clear()}hitTest(A){return A===this._room}destroy(){this.uninstallEvents()}},mP=Mo(Ng(),1),fP=class{constructor(A,e,t,i,o){let g=arguments.length>5&&arguments[5]!==void 0?arguments[5]:1.3333333333333333;this.vbMode=A,this.faceDetectorHash=t,this.visionTaskRegistry=i,this.logger=o,l(this,"animationState"),l(this,"originalAspect"),l(this,"totalOffsetX",0),l(this,"totalOffsetY",0),l(this,"defaultScaleRatio",.1),l(this,"isRecovering",!1),l(this,"boundaryY",280),l(this,"lastActionTime",0),l(this,"restTime",400),this.animationState={current:null,target:null,animating:!1,debounceTimer:null,startTime:0,duration:3e3,debounceTime:150,movementThreshold:30,debounceThreshold:15},this.addEvent(this.vbMode,!!this.faceDetectorHash),this.originalAspect=g||4/3,this.visionTaskRegistry.setVideo(this.faceDetectorHash,e)}addEvent(A,e,t){let i=[{key:570704,error:t??(e?void 0:11)},{key:570705,error:t??(e?void 0:22)}][A-1];i&&(e?ee.addSuccessEvent({key:i.key}):ee.addFailedEvent({key:i.key,error:i.error}))}actionCentering(A){let e=Date.now();if(this.animation(),!this.faceDetectorHash||e-this.lastActionTime<this.restTime||this.animationState.animating)return;let{videoWidth:t,videoHeight:i}=A;this.animationState.debounceThreshold=t/30,this.animationState.movementThreshold=t/20,this.boundaryY=.6*i;try{let o=this.visionTaskRegistry.getResult(this.faceDetectorHash);if(o.detections.length<=0)return void(this.vbMode===1&&this.recoverOriginal(t,i));let g=o.detections[0].boundingBox,r=g.originX,n=g.originY,I=g.width,C=g.height;this.vbMode===1?this.dualStageCropping(t,i,r,n,I,C):this.vbMode===2&&this.movingPortrait(t,i,r,n,I,C)}catch(o){this.logger.error(o)}this.lastActionTime=e}calculateBoundary(A,e,t,i){let o,g;return A>e/2?(o=e-t-i,g=t-o):(o=t,g=0),{min:o,offset:g}}calculateTargetPosition(A,e,t,i,o,g){let r,n,I=arguments.length>6&&arguments[6]!==void 0?arguments[6]:.4,C=A+t/2,u=e+i/2,{min:R,offset:M}=this.calculateBoundary(C,o,A,t),{min:L,offset:H}=this.calculateBoundary(u,g,e,i);return r=2*R+t,n=2*L+i,r/n>this.originalAspect?(r=n*this.originalAspect,M=C-r/2):(n=r/this.originalAspect,H=u-n/2),t/o>I&&(M=0,H=0,r=o,n=g),M=Math.max(0,Math.min(M,o-r)),H=Math.max(0,Math.min(H,g-n)),{sx:M,sy:H,cropWidth:r,cropHeight:n,timestamp:Date.now()}}processFacePositionCrop(A,e,t){if(!this.animationState.current||!this.animationState.target){let r={sx:0,sy:0,cropWidth:e,cropHeight:t,timestamp:Date.now()};return this.animationState.current=r,void(this.animationState.target=r)}let i=this.positionDistance(this.animationState.target,A),o=this.positionDistance(this.animationState.current,A),g=this.animationState.current.cropWidth/e;i>this.animationState.debounceThreshold*g&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&o>this.animationState.movementThreshold*g&&(this.animationState.target=A,this.animationState.debounceTimer=setTimeout((()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0}),this.animationState.debounceTime))}processFacePositionPortrait(A){if(!this.animationState.current||!this.animationState.target)return this.animationState.current=le({},A),void(this.animationState.target=le({},A));let e=this.positionDistance(this.animationState.current,A),t=this.positionDistance(this.animationState.target,A);e>this.animationState.debounceThreshold&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&t>this.animationState.movementThreshold&&(this.animationState.current=A,this.animationState.debounceTimer=setTimeout((()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0}),this.animationState.debounceTime))}animation(){if(!this.animationState.animating)return;let A=Date.now()-this.animationState.startTime,e=Math.min(A/this.animationState.duration,1),t=i=>i<.5?2*i*i:(4-2*i)*i-1;if(this.animationState.current&&this.animationState.target){let i=(this.animationState.target.sx-this.animationState.current.sx)*t(e);this.animationState.current.sx+=i,this.totalOffsetX+=i;let o=(this.animationState.target.sy-this.animationState.current.sy)*t(e);if(this.animationState.current.sy+=o,this.totalOffsetY+=o,this.animationState.current.cropWidth+=(this.animationState.target.cropWidth-this.animationState.current.cropWidth)*t(e),this.animationState.current.cropHeight+=(this.animationState.target.cropHeight-this.animationState.current.cropHeight)*t(e),this.animationState.current.scaleRatio&&this.animationState.target.scaleRatio&&(this.animationState.current.scaleRatio+=(this.animationState.target.scaleRatio-this.animationState.current.scaleRatio)*t(e)),Zt(this.animationState.current.scaleOffsetX)&&Zt(this.animationState.target.scaleOffsetX)&&Zt(this.animationState.current.scaleOffsetY)&&Zt(this.animationState.target.scaleOffsetY)){let g=(this.animationState.target.scaleOffsetX-this.animationState.current.scaleOffsetX)*t(e);this.animationState.current.scaleOffsetX+=g;let r=(this.animationState.target.scaleOffsetY-this.animationState.current.scaleOffsetY)*t(e);this.animationState.current.scaleOffsetY+=r}}e>=1&&(this.animationState.animating=!1,this.animationState.current=this.animationState.target,this.isRecovering=!1)}positionDistance(A,e){return Math.sqrt(Rl(A.sx-e.sx,2)+Rl(A.sy-e.sy,2))}recoverOriginal(A,e){this.animationState.target={sx:0,sy:0,cropWidth:A,cropHeight:e,timestamp:Date.now()},this.animationState.animating=!0,this.animationState.startTime=Date.now(),this.isRecovering=!0}dualStageCropping(A,e,t,i,o,g){let r=arguments.length>6&&arguments[6]!==void 0?arguments[6]:.3;if(this.isRecovering)return;let n=this.calculateTargetPosition(t,i,o,g,A,e);this.processFacePositionCrop(n,A,e),o*g/n.cropWidth/n.cropHeight>r&&this.recoverOriginal(A,e)}movingPortrait(A,e,t,i,o,g){var r,n,I,C,u,R,M,L,H,gA,EA,TA;let hA={sx:t+o/2+this.totalOffsetX,sy:i+g/2+this.totalOffsetY,cropWidth:A,cropHeight:e,scaleRatio:(n=(r=this.animationState.current)==null?void 0:r.scaleRatio)!=null?n:1,scaleOffsetX:(C=(I=this.animationState.current)==null?void 0:I.scaleOffsetX)!=null?C:0,scaleOffsetY:(R=(u=this.animationState.current)==null?void 0:u.scaleOffsetY)!=null?R:0,timestamp:Date.now()};this.animationState.target={sx:A/2,sy:i+g/2,cropWidth:A,cropHeight:e,scaleRatio:(L=(M=this.animationState.target)==null?void 0:M.scaleRatio)!=null?L:1,scaleOffsetX:(gA=(H=this.animationState.target)==null?void 0:H.scaleOffsetX)!=null?gA:0,scaleOffsetY:(TA=(EA=this.animationState.target)==null?void 0:EA.scaleOffsetY)!=null?TA:0,timestamp:Date.now()},this.animationState.animating||(this.animationState.target.scaleRatio=Math.sqrt(o*g/A/e/this.defaultScaleRatio),this.animationState.target.scaleOffsetX=-this.animationState.target.scaleRatio/2+.5,this.animationState.target.scaleOffsetY=1-this.animationState.target.scaleRatio,(this.animationState.target.sy-this.animationState.target.scaleOffsetY*this.animationState.target.cropHeight)/this.animationState.target.scaleRatio<this.boundaryY&&(this.animationState.target.scaleOffsetY=(this.animationState.target.sy-this.boundaryY*this.animationState.target.scaleRatio)/this.animationState.target.cropHeight)),this.processFacePositionPortrait(hA)}set aspectRatio(A){this.originalAspect=A}get current(){return this.animationState.current}get offset(){return{offsetX:this.totalOffsetX,offsetY:this.totalOffsetY}}get targetCrop(){return this.animationState.target}},wP=class extends Xy{constructor(A,e){super(A,e.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,width:e.width,height:e.height,logger:A.log}),l(this,"_bgTexture"),l(this,"_waterMarkTexture"),l(this,"_lastMaskTexture"),l(this,"_lastMaskFbo"),l(this,"_textureValid",!1),l(this,"_selfieTextureValid",!1),l(this,"_selfieSegmentationHash"),l(this,"wasm"),l(this,"predictReady"),l(this,"_color"),l(this,"_prePrograme"),l(this,"_segmentationMask"),l(this,"_weixin",!1),l(this,"_centerFace"),l(this,"_textureMatrixLocation"),l(this,"_offsetMatrixLocation"),l(this,"_colorLocation"),l(this,"_enableFaceCentering",!1),l(this,"_enableEffectOptimization",!1),l(this,"_mat4"),l(this,"_postProcessing"),l(this,"_onAbort"),l(this,"_visionTaskRegistry"),l(this,"resolvePreditReady"),this.init(e).catch((t=>{A.log.error(t),A.destroy(new oe({code:OA.VIDEO_MANAGER_ERROR,extraCode:6,message:"init vb node error ".concat(t.message||t)})),this.resolvePreditReady()}))}init(A){return X(this,null,(function*(){var e,t,i;this.predictReady=new Promise((n=>{this.resolvePreditReady=n}));let o=A.Wasm,g=this.context.ctx;if(A.color&&(this._color=A.color),A.mat4&&(this._mat4=A.mat4),A.postProcessing&&(this._postProcessing=A.postProcessing),this._enableFaceCentering=(e=A.enableFaceCentering)!=null&&e,this._enableEffectOptimization=(t=A.enableEffectOptimization)!=null&&t,this.wasm=new o.AllIn1(g),this.wasm.blurRadius=A.blurRadius||3,this.wasm.mirror=!!A.mirror,this.wasm.rotation=A.rotation||0,this.wasm.vbMode=A.bg==="blur"?1:A.bg instanceof HTMLImageElement?2:A.bg==="color"?3:0,this._onAbort=A.onAbort,A.bg||this.resolvePreditReady(),A.waterMark){let{x:n,y:I,width:C,height:u}=A.waterMark;this.wasm.setWaterMark(n,I,C,u)}if(A.beautyParams){let{beauty:n,brightness:I,ruddy:C}=A.beautyParams;this.wasm.setBeauty(n,I,C,A==null?void 0:A.width,A==null?void 0:A.height)}this.program=this.wasm.init(),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),g.uniform1i(g.getUniformLocation(this.program,"mask"),1),A.bg instanceof HTMLImageElement&&(g.uniform1i(g.getUniformLocation(this.program,"bg"),2),this._bgTexture=this.createTexture(A.bg)),A.waterMark&&(g.uniform1i(g.getUniformLocation(this.program,"waterMark"),3),this._waterMarkTexture=this.createTexture(A.waterMark.image));let r=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);if(this._textureMatrixLocation=g.getUniformLocation(this.program,"u_textureMatrix"),g.uniformMatrix4fv(this._textureMatrixLocation,!1,r),this._offsetMatrixLocation=g.getUniformLocation(this.program,"u_offsetMatrix"),g.uniformMatrix4fv(this._offsetMatrixLocation,!1,r),this._colorLocation=g.getUniformLocation(this.program,"u_color"),g.uniform1i(g.getUniformLocation(this.program,"lastMask"),4),this._weixin){let n=this.context.createShader(g.FRAGMENT_SHADER,`#version 300 es
|
||
precision highp float;
|
||
uniform sampler2D u_texture;
|
||
uniform sampler2D mask;
|
||
|
||
in vec2 v_texCoord;
|
||
out vec4 outColor;
|
||
void main() {
|
||
outColor = vec4(texture(u_texture, v_texCoord).rgb, texture(mask, v_texCoord).a);
|
||
}`),I=this.context.createShader(g.VERTEX_SHADER,`#version 300 es
|
||
in vec2 a_position;
|
||
in vec2 a_texCoord;
|
||
out vec2 v_texCoord;
|
||
void main() {
|
||
gl_Position = vec4(a_position.x, a_position.y, 0, 1);
|
||
v_texCoord = a_texCoord;
|
||
}`);this._prePrograme=this.context.createProgram(I,n),g.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),g.uniform1i(g.getUniformLocation(this._prePrograme,"mask"),1)}!this._enableEffectOptimization||this.wasm.vbMode!==2&&this.wasm.vbMode!==3?this._postProcessing=void 0:fy()?(this._postProcessing=void 0,this.log.warn("Virtual background post-processing isn't allowed on mobile.")):(i=this._postProcessing)==null||i.init(g,this.positionBuffer,this.texCoordBuffer,4/3),yield this.initVisionTasks(A)}))}initVisionTasks(A){return X(this,null,(function*(){if(A.bg){if(this._visionTaskRegistry=yield window.VisionTaskRegistry.getInstance(),!window.VisionTaskRegistry||!this._visionTaskRegistry||!this._visionTaskRegistry.visionWasm)throw new Error("Virtual background assets not found. Please redeploy the assets of the npm package.");if(this._selfieSegmentationHash=yield this._visionTaskRegistry.register(window.VisionTaskType.ImageSegmenter,{canvas:this.context._canvas}),this._visionTaskRegistry.setVideo(this._selfieSegmentationHash,this.image),this._enableFaceCentering)try{this._visionTaskRegistry.models.has(window.VisionTaskType.FaceDetector)||(yield this._visionTaskRegistry.preloadModels([window.VisionTaskType.FaceDetector]));let e=yield this._visionTaskRegistry.register(window.VisionTaskType.FaceDetector);if(!e)return;this._centerFace=new fP(this.wasm.vbMode,this.image,e,this._visionTaskRegistry,this.context.log)}catch{this.log.error("Face detector model not found. Please redeploy the assets of the npm package.")}}}))}onPredict(A){let e=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture)));let t=this.getMaskTexture(A);if(!t)return;let i=t;this._postProcessing&&(this._postProcessing.ratio=this.image.videoWidth/this.image.videoHeight,i=this._postProcessing.postProcessing(t)),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),this.useTexture(),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,i||null),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,this._bgTexture||null),e.activeTexture(e.TEXTURE3),e.bindTexture(e.TEXTURE_2D,this._waterMarkTexture||null),this.wasm.vbMode===3&&e.uniform3fv(this._colorLocation,this._color),this.useBufferFrame(),this._segmentationMask=A,this.totalFrames++,this.centerFace(),Ns(this.wasm.rotation)&&this.resize(this.image.height,this.image.width),e.viewport(0,0,e.canvas.width,e.canvas.height),e.drawArrays(e.TRIANGLE_STRIP,0,4),A.close()}getMaskTexture(A){return A.confidenceMasks?A.confidenceMasks[0].getAsWebGLTexture():void 0}onFirstFrame(){this.waitingFirstFrame=!1;let A=this.context.ctx;this.useTexture(),A.texImage2D(A.TEXTURE_2D,0,A.RGBA,A.RGBA,A.UNSIGNED_BYTE,this.image)}render(A){let e=this.context.ctx,{image:t}=this;this.tryVideoFrameCallback();let{videoWidth:i,videoHeight:o}=t;if(Ns(this.wasm.rotation)&&!this._visionTaskRegistry&&([i,o]=[o,i]),i===0||o===0||!this.available)return!1;t.width=i,t.height=o;let g=!1;if(this.totalFrames)this.useTexture(),g=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(!this.program)return!1;this.useTexture(),g=this._textureValid,this._textureValid=!0}if(this.width===i&&this.height===o&&g?e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,t):(this.resize(i,o),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t)),this._weixin){if(e.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask){let r=this.getMaskTexture(this._segmentationMask);e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,r||null),e.bindFramebuffer(e.FRAMEBUFFER,this._lastMaskFbo||null)}e.drawArrays(e.TRIANGLE_STRIP,0,4),this.useTexture(),this._segmentationMask?e.copyTexSubImage2D(e.TEXTURE_2D,0,0,0,0,0,i,o):e.copyTexImage2D(e.TEXTURE_2D,0,e.RGBA,0,0,i,o,0)}try{if(this._selfieSegmentationHash&&this._visionTaskRegistry){let r=this._visionTaskRegistry.getResult(this._selfieSegmentationHash);this.totalFrames===1&&this.context._canvas&&this.resolvePreditReady(),this.onPredict(r)}}catch(r){this._onAbort&&this._onAbort(r)}return this.totalFrames||(e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,this._bgTexture||null),e.activeTexture(e.TEXTURE3),e.bindTexture(e.TEXTURE_2D,this._waterMarkTexture||null),e.drawArrays(e.TRIANGLE_STRIP,0,4)),this._visionTaskRegistry&&this._visionTaskRegistry.resetHashResults(),!1}centerFace(){if(!this._centerFace||!this._enableFaceCentering)return;let A=this.context.ctx;this._centerFace.aspectRatio=A.canvas.width/A.canvas.height,this._centerFace.actionCentering(this.image);let{current:e,offset:t}=this._centerFace;if(e&&(this.wasm.vbMode===1&&this.drawImage(e.sx,e.sy,e.cropWidth,e.cropHeight),t&&this.wasm.vbMode===2)){if(!this._mat4)return;let i=this._mat4.create(),{scaleRatio:o=1,scaleOffsetX:g=0,scaleOffsetY:r=0}=e;this._mat4.fromTranslation(i,[-t.offsetX/A.canvas.width+g,r,0]),this._mat4.scale(i,i,[o,o,1]),A.uniformMatrix4fv(this._offsetMatrixLocation,!1,i)}}drawImage(A,e,t,i){let o=this.context.ctx;if(!this._mat4)return;let{width:g,height:r}=o.canvas,n=this._mat4.create();this._mat4.fromTranslation(n,[A/g,1-(e+i)/r,0]),this._mat4.scale(n,n,[t/g,i/r,1]),o.uniformMatrix4fv(this._textureMatrixLocation,!1,n)}close(){var A;super.close();let e=this.context.ctx;this._bgTexture&&e.deleteTexture(this._bgTexture),this._waterMarkTexture&&e.deleteTexture(this._waterMarkTexture),this._lastMaskTexture&&e.deleteTexture(this._lastMaskTexture),this._lastMaskFbo&&e.deleteFramebuffer(this._lastMaskFbo),this._prePrograme&&e.deleteProgram(this._prePrograme),this._postProcessing&&this._postProcessing.close(),(A=this.wasm)==null||A.close()}},SP=class extends Nn{constructor(A){super(A,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:A.log,fragmentShaderSource:`
|
||
precision highp float;
|
||
uniform sampler2D ySampler;
|
||
uniform sampler2D uSampler;
|
||
uniform sampler2D vSampler;
|
||
varying highp vec2 textureCoord;
|
||
const mat4 YUV2RGB = mat4(
|
||
1.1643828125, 0, 1.59602734375, -.87078515625,
|
||
1.1643828125, -.39176171875, -.81296875, .52959375,
|
||
1.1643828125, 2.017234375, 0, -1.081390625,
|
||
0, 0, 0, 1);
|
||
void main() {
|
||
vec3 yuv;
|
||
yuv.r = texture2D(ySampler, textureCoord).r;
|
||
yuv.g = texture2D(uSampler, textureCoord).r;
|
||
yuv.b = texture2D(vSampler, textureCoord).r;
|
||
gl_FragColor = vec4(yuv,1) * YUV2RGB;
|
||
}
|
||
`,vertexShaderSource:`
|
||
attribute vec4 vertexPos;
|
||
attribute vec2 texturePos;
|
||
varying vec2 textureCoord;
|
||
void main() {
|
||
gl_Position = vertexPos;
|
||
textureCoord = texturePos;
|
||
}`}),l(this,"yTextureRef"),l(this,"uTextureRef"),l(this,"vTextureRef"),l(this,"Y"),l(this,"U"),l(this,"V"),this.useProgram();let e=this.context.ctx;e.pixelStorei(e.PACK_ALIGNMENT,1),e.pixelStorei(e.UNPACK_ALIGNMENT,1),this.setTexBuffer([0,1,1,1,0,0,1,0]),this.yTextureRef=this._initTexture("ySampler",0),this.uTextureRef=this._initTexture("uSampler",1),this.vTextureRef=this._initTexture("vSampler",2),this._canvas=A._canvas}_initTexture(A,e){let t=this.context.ctx,i=t.createTexture();return t.bindTexture(t.TEXTURE_2D,i),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.bindTexture(t.TEXTURE_2D,null),t.uniform1i(t.getUniformLocation(this.program,A),e),i}render(A){let e=this.context.ctx,t=this.width,i=this.height;return this.useProgram(),e.viewport(0,0,t,i),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this.yTextureRef),e.texSubImage2D(e.TEXTURE_2D,0,0,0,t,i,e.LUMINANCE,e.UNSIGNED_BYTE,this.Y),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,this.uTextureRef),e.texSubImage2D(e.TEXTURE_2D,0,0,0,t/2,i/2,e.LUMINANCE,e.UNSIGNED_BYTE,this.U),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,this.vTextureRef),e.texSubImage2D(e.TEXTURE_2D,0,0,0,t/2,i/2,e.LUMINANCE,e.UNSIGNED_BYTE,this.V),this.draw(),!0}resize(A,e){super.resize(A,e);let t=this.context.ctx;t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this.yTextureRef),t.texImage2D(t.TEXTURE_2D,0,t.LUMINANCE,A,e,0,t.LUMINANCE,t.UNSIGNED_BYTE,null),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,this.uTextureRef),t.texImage2D(t.TEXTURE_2D,0,t.LUMINANCE,A/2,e/2,0,t.LUMINANCE,t.UNSIGNED_BYTE,null),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,this.vTextureRef),t.texImage2D(t.TEXTURE_2D,0,t.LUMINANCE,A/2,e/2,0,t.LUMINANCE,t.UNSIGNED_BYTE,null)}},eK=(A,e)=>{switch(A){case"webCodecs":return e==="videoFrame"?514705:514706;case"wasm":return e==="webgl"?514707:e==="videoFrame"?514708:514709}throw new Error("decoder type not supported")},GP=0,MP=class{constructor(A){l(this,"id",GP++),l(this,"trackDoneOB"),l(this,"startOB"),l(this,"stopOB"),l(this,"decoder"),l(this,"videoContext"),l(this,"gop",0),l(this,"gop_helper",0),l(this,"waitFirstKeyFrame",!0),l(this,"startTimestamp",0),l(this,"startTime",0),l(this,"startPerformanceTime",0),l(this,"inputFrameCount",0),l(this,"decodedFrameCount",0),l(this,"decodeFrameCount",0),l(this,"downgradeLevel",0),l(this,"lastDowngradeTime",0),l(this,"lastFrameDiff",0),l(this,"lastDecodeFrameTimestamp",0),l(this,"config"),l(this,"gop_before_configure",[]),l(this,"videoElement"),l(this,"type","wasm"),l(this,"goodType"),l(this,"renderer","2d"),l(this,"wasmOption"),l(this,"createDecoder"),l(this,"_decodeSink"),l(this,"isReported",!1),l(this,"track"),l(this,"stateChangeOB"),l(this,"failedReason");let{track:e,createDecoder:t}=A;if(this.stateChangeOB=Ks(),this.track=e,this.createDecoder=t,this.wasmOption={yuvMode:A.renderer==="webgl",wasmPath:A.wasmPath,workerMode:A.workerMode,canvas:A.canvas},this.config=A.config,this.videoElement=A.videoElement,this.renderer=A.renderer,this.trackDoneOB=Fi(e.availableState,pt.OFF),this.stopOB=Ks(),A.type==="auto"){switch(A.fallback){case"wasm":this.type="wasm",this.renderer="webgl";break;case"wasm_2d":this.type="wasm",this.renderer="2d";break;case"wasm_video":this.type="wasm",this.renderer="videoFrame";break;default:this.type="webCodecs"}this.wasmOption.yuvMode=this.renderer==="webgl"}else this.type=A.type;this.changeRenderer(this.renderer),Yi(this.stateChangeOB,J2(((i,o)=>(i!==o&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:i,state:o}),o)),"INITIALIZED"),Nr(this.stopOB),eg()),this.start()}start(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let e=Yi(this.pipe(this.track),Nr(this.stopOB),TG());Yi(e,eg((()=>{this.track.stat.framesDecoded++}),(t=>{if(this.track.log.error("".concat(this.id," play failed: ").concat(t," retryCount: ").concat(A)),ee.addFailedEvent({key:eK(this.type,this.renderer),error:t}),A>4)this.failedReason=t,this.stateChangeOB.next("FAILED"),ee.addFailedEvent({key:514704});else{if(this.goodType)return void this.start(A);switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":this.renderer==="webgl"&&this.changeRenderer("videoFrame")}this.start(A+1)}}),(()=>{this.track.log.warn("".concat(this.id," decoderOB completed")),ee.addSuccessEvent({key:eK(this.type,this.renderer)}),ee.addSuccessEvent({key:514704})}))),Yi(e,jy(1),eg((()=>{this.track.player.handlePlaying("canvas"),this.goodType=this.type,this.stateChangeOB.next("STARTED")})))}mock(A){this._decodeSink?this._decodeSink.error(A):this.start()}close(A){this.stopOB.next(A)}changeRenderer(A){this.renderer=A,this.renderer==="videoFrame"&&!lu()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1];var t,i;if(this.failedReason)return;this.inputFrameCount++;let o=new Uint8Array(A.data);if((g=o)[0]!==0||g[1]!==0||g[2]!==0||g[3]!==1||o.length<5)return this.stateChangeOB.next("FAILED"),this.close("not h26x frame ".concat(o.subarray(0,5))),A;var g;let r=!1;switch(31&o[4]){case 5:case 7:r=!0}if(((t=this.decoder)==null?void 0:t.state)!=="configured")return this.track.log.debug("not configured ".concat(this.inputFrameCount)),r&&(this.gop_before_configure=[]),this.gop_before_configure.push({data:A.data,timestamp:A.timestamp,type:A.type}),A;this.gop_before_configure.length>0&&!e&&(this.gop_before_configure.forEach((I=>this.decode(I,!0))),this.gop_before_configure=[]);let{timestamp:n}=A;if(r?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame){if(!r)return void this.track.log.debug("wait first key frame ".concat(this.inputFrameCount," ").concat(o.subarray(0,5).join(" ")));this.waitFirstKeyFrame=!1,this.startTimestamp=n,this.startTime=Date.now(),this.startPerformanceTime=it()}switch(this.downgradeLevel){case 0:case 1:break;case 2:if(this.gop_helper>this.gop>>1)return;break;case 3:if(this.gop_helper>0)return;break;default:return}return(this.decodeFrameCount<10||this.decodeFrameCount%500==0)&&this.track.log.debug("decode ".concat(this.decodeFrameCount," gop: ").concat(this.gop," ").concat(n," ").concat((i=A.getMetadata)==null?void 0:i.call(A).rtpTimestamp)),this.decodeFrameCount++,this.lastDecodeFrameTimestamp=n,void this.decoder.decode({data:A.data,type:A.type,timestamp:this.lastDecodeFrameTimestamp})}return A}checkDowngradeByFrameDiff(){let A=this.downgradeLevel,e=this.decodeFrameCount-this.decodedFrameCount;e>this.lastFrameDiff?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):e<=this.lastFrameDiff&&this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==A&&this.track.log.debug("downgrade level ".concat(A," to ").concat(this.downgradeLevel," ").concat(this.decodeFrameCount," frameDiff: ").concat(e,", lastFrameDiff: ").concat(this.lastFrameDiff)),this.lastFrameDiff=e,this.lastDowngradeTime=Date.now()}checkDowngradeByTimestampDiff(A){let e=this.downgradeLevel;this.lastDecodeFrameTimestamp-A>9e4?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==e&&this.track.log.debug("downgrade level ".concat(e," to ").concat(this.downgradeLevel))}pipe(A){return e=>X(this,null,(function*(){this._decodeSink=e;let t,i=A.mediaTrack;e.defer((()=>{var r;i&&(A.player.setCanvas(),A.setInputMediaStreamTrack(i)),t==null||t.close(),(r=this.videoContext)==null||r.destroy(),delete this._decodeSink}));let{renderer:o,type:g}=this;A.log.info("decoder type: ".concat(this.type," renderer: ").concat(this.renderer));try{switch(g){case"wasm":t=this.createDecoder(g,this.wasmOption);break;case"webCodecs":t=this.createDecoder(g);break;default:throw new Error("not supported yet")}let r=0;if(t.on("videoFrame",(n=>{this.decodedFrameCount++,r++,(r<=10||r%500==0)&&A.log.debug("frame ".concat(r," ").concat(this.decodedFrameCount,"/").concat(this.decodeFrameCount," decoded ").concat(n.timestamp)),Date.now()-this.lastDowngradeTime>5e3&&(this.type==="webCodecs"?this.checkDowngradeByFrameDiff():this.type==="wasm"&&this.checkDowngradeByTimestampDiff(n.timestamp)),e.next(n)})),t.on("error",(n=>{A.log.error(n),e.error(g==="webCodecs"?4:8)})),yield t.initialize(this.videoElement),!this._decodeSink)return;if(t.configure(this.config),g==="wasm"&&o==="webgl"){this.videoContext=new QI({frameRate:15,logger:A.log,name:A.userId}),this.videoContext.create(),this.videoContext.on(QI.UNAVAILABLE,(I=>{A.log.error(I),e.error(7)}));let n=new SP(this.videoContext);t.on("videoCodecInfo",(I=>n.resize(I.width,I.height))),t.on("videoFrame",(I=>{({y:n.Y,u:n.U,v:n.V}=I),this.downgradeLevel===1?this.decodedFrameCount%2==0&&n.render(this.decodedFrameCount):n.render(this.decodedFrameCount)})),A.source=n,A.player.setCanvas(this.videoContext._canvas,2)}else if(o==="videoFrame"){A.player.setCanvas();let n=new MediaStreamTrackGenerator({kind:"video"}),I=n.writable.getWriter();A.setInputMediaStreamTrack(n),t.on("videoFrame",(C=>I.write(C)))}else{this.videoContext=new Hs({frameRate:15,logger:A.log,name:A.userId}),this.videoContext.create({alpha:!1});let n=this.videoContext.createVideoImageSource();t.on("videoFrame",(C=>{try{n.image=C,n.update()}catch(u){delete this.goodType,A.log.error(u),e.error(11)}}));let I=new RJ(this.videoContext,{name:"remotePlayer",logger:A.log});n.connect(I),A.source=n,A.player.setCanvas(this.videoContext._canvas,2)}this.decoder=t}catch(r){A.log.error(r),e.error(g==="webCodecs"?2:6)}}))}},tK=Promise.resolve(),iK=class extends mP.EventEmitter{constructor(A){super(),this.room=A,l(this,"videoContext"),l(this,"_glVideoContext"),l(this,"_2dVideoContext"),l(this,"destination"),l(this,"smallVideoContext"),l(this,"smallDestination"),l(this,"smallTrackSource"),l(this,"smallImageSource"),l(this,"_isMirror",!1),l(this,"_rotation",0),l(this,"cameraTrack"),l(this,"cameraNode"),l(this,"transformNode"),l(this,"mixNode"),l(this,"screenTrack"),l(this,"screenNode"),l(this,"selfModel",!1),l(this,"blurRadius",3),l(this,"arTrack"),l(this,"_enableFaceCentering",!1),l(this,"_enableEffectOptimization",!1),l(this,"onAbort"),l(this,"_color"),l(this,"Wasm"),l(this,"waterMarkNode"),l(this,"_waterMarkOption"),l(this,"watermarkImageList",[]),l(this,"_beautyParams"),l(this,"isUsingArTrack",!1),l(this,"mixTrack"),l(this,"_isMixScreen",!1),l(this,"_virtualBackground"),l(this,"_virtualBackgroundAbortCallback"),l(this,"virtualBackgroundInstance"),l(this,"_bgAssetPath"),l(this,"log"),l(this,"_mat4"),l(this,"_postProcessing"),l(this,"_checkId",0),l(this,"_use2d",!1),l(this,"_autoSwitchRenderMode",!0),l(this,"encodePipeline",[]),l(this,"decodePipeline",[]),l(this,"updated",tK),l(this,"_updateFlag",!1),this.log=K.createLogger({parent:A==null?void 0:A.getLogger(),id:"vm",userId:A==null?void 0:A.userId,sdkAppId:A==null?void 0:A.sdkAppId}),this.smallVideoContext=new Hs({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get smallMode(){var A;return((A=this.room)==null?void 0:A.smallMode)||"canvas"}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get _isRotate(){return this._rotation!==0}get _isTransform(){return this._isMirror||this._isRotate}get renderMode(){return this._autoSwitchRenderMode?"auto":this._use2d?"2d":"webgl"}set renderMode(A){if(this._autoSwitchRenderMode=A==="auto",this._autoSwitchRenderMode)return;let e=A==="2d";this._use2d!==e&&(this._use2d=e,this.clear(),this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.update())}get cameraResolution(){var A;let{width:e,height:t}=((A=this.cameraTrack)==null?void 0:A.settings)||{};return Ns(this._rotation)?{width:t,height:e}:{width:e,height:t}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new Hs({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(this._glVideoContext){if(this._glVideoContext.available)return this._glVideoContext}else this._glVideoContext=new QI({frameRate:15,logger:this.log,name:"m"});return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(my<=22),this._glVideoContext.on(QI.UNAVAILABLE,(A=>{var e;this.emit("error",A),this.log.warn("video context unavailable",A),(e=this._virtualBackgroundAbortCallback)==null||e.call(this,A),this.update().catch((t=>{this.log.error(t)}))}))}catch(A){this.emit("error",A)}}initVirtualBackground(A,e,t){this.onAbort=A,this._mat4=e,this._postProcessing=t}enablePrintDetail(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:2e3;this._checkId=ti.run("interval",(()=>{this.destination&&this.log.debug(this.destination.getInfo())}),{delay:A})}destroy(){var A,e;(A=this._2dVideoContext)==null||A.destroy(),(e=this._glVideoContext)==null||e.destroy(),this.smallVideoContext.destroy(),ti.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(fB||this._isMixScreen||this._isTransform||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(){let A=arguments.length>1?arguments[1]:void 0,e=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:"videoCtxGl")==="videoCtxGl"?512700:512701;A?ee.addFailedEvent({key:e,error:A}):ee.addSuccessEvent({key:e})}checkOrCreateVideoContext(){let A=this._use2d;if(this._autoSwitchRenderMode&&(this._use2d=!this._hasVirtualBg),this.videoContext)if(this.videoContext.available){let e=!this.videoContext.hasAlpha&&this.needAlpha;if(this._autoSwitchRenderMode&&A===this._hasVirtualBg)this.clear();else{if(!e||!this._use2d)return!0;this.clear()}}else{if(this._glVideoContext=new QI({frameRate:15,logger:this.log,name:"m"}),this.initializeGlVideoContext(),this._glVideoContext.available)return this.videoContext=this._glVideoContext,this.videoContext.available;this.log.warn("webgl is still not available"),this.clear(),this._use2d=!0}return this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.videoContext.available}get smallTrack(){var A;return(A=this.smallDestination)==null?void 0:A.videoTrack}get hasSmall(){return!!this.smallTrack}get initialTrack(){var A;return(A=this.cameraTrack)==null?void 0:A.mediaTrack}setSmallVideo(A,e){if(this.smallMode!=="api")if(A){if(!this.smallVideoContext.available){if(this.smallVideoContext.create({alpha:!1}),!this.smallVideoContext.available)return;this.smallDestination=new Aq(this.smallVideoContext,A,this.log),this.smallVideoContext.on(QI.UNAVAILABLE,(t=>{this.log.warn("small video context lost",t)}))}if(this.smallVideoContext.frameRate=A.frameRate,this.smallDestination.resolution=A,e)this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=e:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(e),this.smallImageSource.resize(e.width,e.height),this.smallImageSource.connect(this.smallDestination));else if(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource)this.smallTrackSource.replaceTrack(this.initialTrack);else{this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource");let{width:t,height:i}=this.cameraTrack.settings;this.smallTrackSource.resize(t,i),this.smallTrackSource.connect(this.smallDestination)}}else this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource)}_setMainOutput(A){var e;try{let t=this.cameraTrack,{small:i,player:o}=t;fB&&o.setCanvas(A);let g=A&&((e=this.destination)==null?void 0:e.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),g=this.arTrack),this.log.info("set main output ".concat(g?g.label:"no output track")),this.setSmallVideo(i,A),t.setOutputMediaStreamTrack(g)}catch(t){this.log.error("set main output failed",t)}}update(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return X(this,null,(function*(){var e;if(!this.cameraTrack||!this.initialTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:t,profile:i}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams)this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(Nn.RENDER,(o=>{var g;(g=this.cameraTrack)==null||g.emit("render",o)}))),va===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof Xy?(this.cameraNode.close(),delete this.cameraNode):this.cameraNode.image=this.initialTrack.canvas),this.cameraNode||(this.cameraNode=this.videoContext.createVideoImageSource(this.initialTrack.canvas,{name:"cameraCanvasSource",logger:this.log}))):(this.cameraNode&&(this.cameraNode instanceof Xy?this.cameraNode.replaceTrack(this.initialTrack):(this.cameraNode.close(),delete this.cameraNode)),this.cameraNode||(this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraTrackSource"))):this.cameraNode?this.cameraNode.replaceTrack(this.initialTrack):this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraNodeSource"),this.cameraNode.resize(t.width,t.height);else if(A&&this.cameraNode&&this.destination)this.cameraNode.replaceTrack(this.initialTrack);else{this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():(this.destination=new $O(this.videoContext,{name:"mainDestination",logger:this.log}),this.destination.on(Nn.RENDER,(n=>{var I;(I=this.cameraTrack)==null||I.emit("render",n)})));let{width:o,height:g}=this.cameraResolution,r=yield this.getWatermarkImage(o,g);this._waterMarkOption={x:0,y:0,width:r.width,height:r.height,image:r},this.cameraNode=new wP(this.videoContext,{input:this.initialTrack,width:o,height:g,mirror:this._isMirror,rotation:this._rotation,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,Wasm:this.Wasm,enableFaceCentering:this._enableFaceCentering,enableEffectOptimization:this._enableEffectOptimization,onAbort:this.onAbort,mat4:this._mat4,postProcessing:this._postProcessing,color:this._color}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute(),yield this.cameraNode.predictReady}if(this.videoContext.frameRate=i.frameRate,this._use2d){let o=this.cameraNode;if(o.disconnect(),this._isTransform&&(this.transformNode?(this.transformNode.mirror=this._isMirror,this.transformNode.rotation=this._rotation):this.transformNode=new fc(this.videoContext,this.log,this._isMirror,this._rotation),o=o.connect(this.transformNode),o.disconnect(),this.log.info("start mirror ".concat(this._isMirror," rotate ").concat(this.rotation))),this.mixNode&&this.mixNode.close(),delete this.mixNode,this._isMixScreen||this._hasWaterMark){if(this.mixNode=new $2(this.videoContext,this.log),o.connect(this.mixNode,{zIndex:1}),this._hasWaterMark&&!this.waterMarkNode&&this._waterMarkOption)this.waterMarkNode=this.videoContext.createVideoImageSource(this._waterMarkOption.image,{autoResize:!1,logger:this.log}),this.waterMarkNode.resize(this._waterMarkOption.width,this._waterMarkOption.height),this.waterMarkNode.x=this._waterMarkOption.x,this.waterMarkNode.y=this._waterMarkOption.y;else if(this.waterMarkNode){let{width:g,height:r}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(g,r),g&&r&&this.waterMarkNode.resize(g,r)}(e=this.waterMarkNode)==null||e.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&(this.screenNode||(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource"),this.screenNode.resize(this.screenTrack.settings.width,this.screenTrack.settings.height)),this.screenNode.shouldUpdate=!1,this.screenNode.connect(this.mixNode,{zIndex:0})),o=this.mixNode,this.log.info("start mix","".concat(this.mixNode.width,"x").concat(this.mixNode.height))}o.connect(this.destination)}return this.log.info("update ".concat(this._use2d?"2d":"webgl")),this._setMainOutput(this.videoContext.canvas)}))}clearLastFrame(){var A;this.destination&&((A=this.destination.ctx2d)==null||A.clearRect(0,0,this.destination.width,this.destination.height))}changeInput(A){var e,t,i,o,g;if(A instanceof Fu)return this.log.info("change screen input",(e=A.mediaTrack)==null?void 0:e.label),this.setScreenTrack(A);if(A instanceof YB)return this.log.info("change video input",(t=A.mediaTrack)==null?void 0:t.label),this.setCameraTrack(A);if(A instanceof OG){this.log.info("change remote input",(i=A.mediaTrack)==null?void 0:i.label);let r=A.mediaTrack;return A.setOutputMediaStreamTrack(r)}if(A instanceof fJ)return this.log.info("change mix input",(o=A.outMediaTrack)==null?void 0:o.label),this.setMixTrack(A);this.log.warn("change unknown input",(g=A.mediaTrack)==null?void 0:g.label)}removeInput(A){var e;A instanceof Fu?((e=this.screenNode)==null||e.close(),delete this.screenNode,delete this.screenTrack,this.update()):A instanceof YB?this._isMixScreen?(delete this.cameraNode,this.cameraTrack._inputTrack=null,this.update()):(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):A instanceof OG?A.source&&A.source.context.destroy():A instanceof fJ&&(delete this.mixTrack,this.update())}setMixTrack(A){this.mixTrack=A}setCameraTrack(A){return this.cameraTrack=A,this.update(!0)}setScreenTrack(A){return X(this,null,(function*(){return this.screenTrack=A,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(A.mediaTrack):yield this.update()),A.setOutputMediaStreamTrack(A.mediaTrack)}))}getWatermarkImage(A,e){return X(this,null,(function*(){let t=document.createElement("canvas");e&&A&&(t.height=e,t.width=A);let i=t.getContext("2d");if(!i)throw new oe({code:OA.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort(((o,g)=>o.zIndex-g.zIndex)),this.watermarkImageList.forEach((o=>{let{image:g,x:r,y:n,width:I,height:C,fillVideo:u}=o,R=u&&A||I,M=u&&e||C,L=u?0:r,H=u?0:n;i.drawImage(g,L,H,R,M)})),zl(t.toDataURL())}))}pushWaterMarkImageList(A){let{type:e}=A;this.watermarkImageList.some((t=>t.imageUrl===A.imageUrl&&t.height===A.height&&t.width===A.width&&t.x===A.x&&t.y===A.y&&t.type===A.type&&t.zIndex===A.zIndex&&t.fillVideo===A.fillVideo))||((e==="mute"||e==="watermark")&&(this.watermarkImageList=this.watermarkImageList.filter((t=>t.type!==e))),this.watermarkImageList.push(A))}setBeautyParams(A){return X(this,null,(function*(){this._beautyParams=A,this.update()}))}stopBeauty(){return X(this,null,(function*(){this._beautyParams=void 0,this.update()}))}setWatermark(A){return X(this,null,(function*(){let e;try{e=yield zl((A==null?void 0:A.imageElement)||A.imageUrl)}catch{throw new oe({code:OA.INVALID_PARAMETER,message:"load image failed, url: ".concat(A.imageUrl)})}let{x:t=0,y:i=0,width:o=e.width,height:g=e.height,type:r="watermark",zIndex:n=2,fillVideo:I=!1}=A;this.watermarkImageList.some((C=>C.type===r))?(this.watermarkImageList=this.watermarkImageList.filter((C=>C.type!==r)),this.pushWaterMarkImageList({x:t,y:i,width:o,height:g,image:e,zIndex:n,type:r,imageUrl:A.imageUrl,fillVideo:I}),e=yield this.getWatermarkImage(this.cameraResolution.width,this.cameraResolution.height),this._waterMarkOption={x:0,y:0,width:e.width,height:e.height,image:e},this.waterMarkNode?(this.waterMarkNode.x=0,this.waterMarkNode.y=0,this.waterMarkNode.resize(e.width,e.height),this.waterMarkNode.image=e):this.update()):(this.pushWaterMarkImageList({x:t,y:i,width:o,height:g,image:e,zIndex:n,type:r,imageUrl:A.imageUrl,fillVideo:I}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,((C,u)=>C==="imageUrl"?void 0:u)))}))}deleteWatermark(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"watermark";return X(this,null,(function*(){this.watermarkImageList=this.watermarkImageList.filter((e=>e.type!==A)),this.log.info("delete watermark",A,JSON.stringify(this.watermarkImageList,((e,t)=>e==="imageUrl"?void 0:t))),yield this.freshWatermark()}))}freshWatermark(){return X(this,null,(function*(){var A;(A=this.waterMarkNode)==null||A.close(),delete this.waterMarkNode,delete this._waterMarkOption;let{width:e,height:t}=this.cameraResolution,i=yield this.getWatermarkImage(e,t);this._waterMarkOption={x:0,y:0,width:i.width,height:i.height,image:i},this.update()}))}setVirtualBackground(A){return X(this,null,(function*(){var e,t,i;if(A){if(A.onAbort&&(this._virtualBackgroundAbortCallback=A.onAbort),this._use2d&&!this._autoSwitchRenderMode)return Promise.reject(new Error("not support virtual background in 2d mode"));this._bgAssetPath=A.assetPath,A.type==="image"?this._virtualBackground=yield zl(A.imageUrl):(this.blurRadius=A.blurLevel||this.blurRadius||3,this._virtualBackground=A.type),this._enableFaceCentering=(e=A.enableFaceCentering)!=null?e:this._enableFaceCentering,this._enableEffectOptimization=(t=A.enableEffectOptimization)!=null?t:this._enableEffectOptimization,this._color=(i=A.color)!=null?i:[0,1,0]}else delete this._virtualBackground,delete this._virtualBackgroundAbortCallback;if(this.log.info("".concat(this._virtualBackground?"start":"stop"," virtual background, ").concat((A==null?void 0:A.type)||"",", ").concat(this.blurRadius||"")),yield this.update(),this._virtualBackground&&!this._glVideoContext.available)throw new oe({code:OA.INVALID_OPERATION,message:"webgl context create failed, ".concat(this._glVideoContext.error)})}))}get mixScreen(){return this._isMixScreen}set mixScreen(A){var e;this._isMixScreen=A,this._isMixScreen||((e=this.screenNode)==null||e.close(),delete this.screenNode),this.update()}set mirror(A){var e;this._isMirror!==A&&(this._isMirror=A,this._isTransform||((e=this.transformNode)==null||e.close(),delete this.transformNode),this.update())}get mirror(){return this._isMirror}set rotation(A){var e;this._rotation!==A&&(this._rotation=A,this._isTransform||((e=this.transformNode)==null||e.close(),delete this.transformNode),this.update())}get rotation(){return this._rotation}enableAr(A){this.arTrack=A,this.isUsingArTrack=!0,this.update()}updateAr(){return X(this,null,(function*(){var A;(A=this.cameraTrack)!=null&&A.mediaTrack&&(yield this.virtualBackgroundInstance.ar.updateInputTrack(this.cameraTrack.mediaTrack.clone()))}))}disableAr(){var A;this.isUsingArTrack=!1,(A=this.arTrack)==null||A.stop(),this.arTrack=void 0,this.update()}createDecodeContext(A){return new MP(A)}clear(){var A,e;(A=this.videoContext)==null||A.disconnect(),(e=this.destination)==null||e.removeAllListeners(),delete this.destination,delete this.cameraNode,delete this.transformNode,delete this.screenNode,delete this.waterMarkNode}addEncodeProcessor(A){let{processor:e,type:t}=A;var i;this.encodePipeline.includes(e)||(this.encodePipeline[t]=e,(i=this.room)==null||i.enableInsertableStreams())}addDecodeProcessor(A){let{processor:e,type:t}=A;var i;this.decodePipeline.includes(e)||(this.decodePipeline[t]=e,(i=this.room)==null||i.enableInsertableStreams())}removeEncodeProcessor(A){let{type:e}=A;this.encodePipeline[e]=void 0}removeDecodeProcessor(A){let{type:e}=A;this.decodePipeline[e]=void 0}};ne([y2((function(A){this.log.error("update failed",A)})),Gi((A=>function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return X(this,null,(function*(){this._updateFlag||(this._updateFlag=!0,yield tK,this.updated=new Promise(((o,g)=>{A.apply(this,t).then(o,g),setTimeout(g,5e3,new oe({code:OA.API_CALL_TIMEOUT,message:"update timeout"}))})),this._updateFlag=!1,yield this.updated)}))}))],iK.prototype,"update");var kP=0,NP=class extends pt{constructor(A){super("room"),l(this,"seq",++kP),l(this,"sdkAppId"),l(this,"userId"),l(this,"userSig"),l(this,"privateMapKey"),l(this,"latencyLevel"),l(this,"tinyId"),l(this,"scene"),l(this,"roomId"),l(this,"useStringRoomId"),l(this,"role","anchor"),l(this,"joinParams",null),l(this,"localPublishFlag",0),l(this,"localTracks",new Set),l(this,"enableAutoPlayDialog",!0),l(this,"autoReceiveAudio",!0),l(this,"autoReceiveVideo",!0),l(this,"proxy_ws"),l(this,"proxy_wt"),l(this,"proxy_unified"),l(this,"checkSystemResult",{result:!0,detail:{isBrowserSupported:!0,isWebRTCSupported:!0,isWebCodecsSupported:!0,isMediaDevicesSupported:!0,isScreenShareSupported:!0,isSmallStreamSupported:!0,isH264EncodeSupported:!0,isVp8EncodeSupported:!0,isH264DecodeSupported:!0,isVp8DecodeSupported:!0,isH265EncodeSupported:!0,isH265DecodeSupported:!0}}),l(this,"keyPointManager"),l(this,"audioManager"),l(this,"videoManager"),l(this,"callDurationCalculator"),l(this,"badCaseDetector"),l(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null}),l(this,"videoDecodeFallbackType"),l(this,"smallMode","canvas"),l(this,"enableChorus",!1),l(this,"_isUsingCachedSchedule",!1),l(this,"_log"),l(this,"_joinedTimestamp",0),l(this,"_sdkType"),l(this,"heartbeatReport"),l(this,"heartbeatCount",0),l(this,"quality"),l(this,"enableSEI"),l(this,"isDestroyed",!1),this._log=K.createLogger({parent:A.logger,id:"r".concat(this.seq)}),this.useStringRoomId=!!A.useStringRoomId,fi(A.autoReceiveAudio)&&(this.autoReceiveAudio=A.autoReceiveAudio),fi(A.autoReceiveVideo)&&(this.autoReceiveVideo=A.autoReceiveVideo),fi(A.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=A.enableAutoPlayDialog),this._sdkType=A.sdkType,this.keyPointManager=new DP({room:this,frameWorkType:A.frameWorkType,component:A.component,language:A.language}),this.callDurationCalculator=new pP({room:this}),this.badCaseDetector=new RP({room:this}),this.audioManager=new aq(this),this.videoManager=new iK(this)}get videoCodec(){return"h264"}get scriptTransformWorker(){}get isMainStreamPublished(){for(let A of this.localTracks)if(4&A.mediaType)return!0;return!1}get isAuxStreamPublished(){for(let A of this.localTracks)if(2&A.mediaType)return!0;return!1}get hasAuxStream(){for(let A of this.remotePublishedUserMap.values())if(A.muteState.hasAuxiliary)return!0;return this.isAuxStreamPublished}get localMainAudioTrack(){for(let A of this.localTracks)if(1&A.mediaType)return A;return null}get localMainVideoTrack(){for(let A of this.localTracks)if(4&A.mediaType)return A;return null}get localAuxVideoTrack(){for(let A of this.localTracks)if(2&A.mediaType)return A;return null}get publishState(){let A={audio:!1,bigVideo:!1,smallVideo:!1,auxVideo:!1};return this.localTracks.forEach((e=>{if(e.isPublished||e.isPublishing)switch(e.mediaType){case 1:A.audio=!0;break;case 4:A.bigVideo=!0,A.smallVideo=e.hasSmall;break;case 2:A.auxVideo=!0}})),A}get muteState(){var A,e,t;return{audio:!((A=this.localMainAudioTrack)==null||!A.muted),bigVideo:!((e=this.localMainVideoTrack)==null||!e.muted),auxVideo:!((t=this.localAuxVideoTrack)==null||!t.muted)}}getLogger(){return this._log}get isJoining(){return this.state.toString()==="joining"}get isJoined(){return this.state==="joined"}get isLeft(){return this.state==="left"}addTrack(A){return X(this,null,(function*(){return this.publish(A)}))}removeTrack(A){return X(this,null,(function*(){return this.unpublish(A)}))}replaceTrack(A){return X(this,null,(function*(){}))}setEncodedDataProcessingListener(A){throw new Error("Method not implemented.")}enableAIVoice(A){throw new Error("Method not implemented.")}setProxyServer(A){if(ai(A))A.startsWith("wss://")?this.proxy_ws=A:A.startsWith("https://")&&(this.proxy_wt=A);else if(sg(A)){let{websocketProxy:e,webtransportProxy:t,loggerProxy:i,scheduleProxy:o,unifiedProxy:g}=A;this.proxy_ws=e,this.proxy_wt=t,this.proxy_unified=g,g?(NJ([g,g]),oI("https://".concat(g))):(i&&oI(i),o&&NJ(o))}N.once(v.JOIN_RECEIVED_CMD_RES,(()=>this.sendAbilityStatus({sched_domain:wc.main,sched_back_domain:wc.backup,signal_domain:this.proxy_ws||this.proxy_wt||""})))}getRemoteAudioStats(){return X(this,null,(function*(){let A={};return this.remotePublishedUserMap.forEach((e=>{A[e.userId]=e.remoteAudioTrack.stat})),A}))}getTransportStats(){return X(this,null,(function*(){var A;let e={rtt:((A=this.quality)==null?void 0:A.uplinkRTT)||0,downlinksRTT:{}};if(this.quality)for(let t of this.quality.downlinkInfo)e.downlinksRTT[t.userId]=t.rtt;return e}))}getRemoteVideoStats(){return X(this,arguments,(function(){var A=this;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"main";return(function*(){let t={};return A.remotePublishedUserMap.forEach((i=>{let o=e==="auxiliary"?i.remoteAuxiliaryTrack:i.remoteVideoTrack;t[i.userId]=o.stat})),t})()}))}checkDestroy(){if(this.isDestroyed)throw new oe({code:OA.INVALID_OPERATION,message:nt({key:$e.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(kr.INVALID_DESTROY),new oe({code:OA.INVALID_OPERATION,message:nt({key:$e.INVALID_DESTROY})});this._log.info("destroy room"),this.audioManager.destroy(),this.videoManager.destroy(),this.keyPointManager.destroy(),this.callDurationCalculator.destroy(),this.badCaseDetector.destroy(),this.isDestroyed=!0,N.emit(v.ROOM_DESTROY,{room:this})}schedule(A,e){return X(this,null,(function*(){var t,i,o,g;let r=it();try{let{isCached:n,result:I,detailCost:C}=yield hx({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?A.strRoomId:A.roomId,useStringRoomId:this.useStringRoomId,version:ia,userSig:this.userSig,role:this.scene==="live"?A.role:void 0,frameWorkType:e,latencyLevel:A.latencyLevel});this._isUsingCachedSchedule=n,this._log.info("schedule cache:".concat(+n," ").concat(Na(I,{keysToExclude:["username","credential"]}))),n&&N.once(v.JOIN_RECEIVED_CMD_RES,(()=>this.sendAbilityStatus({scheduleCache:1}))),this.scheduleResult=le(le({},this.scheduleResult),I),Zt((t=I.config)==null?void 0:t.retryCount)&&Ev(I.config.retryCount),ai((i=I.config)==null?void 0:i.loggerDomain)&&oI(I.config.loggerDomain),this.videoDecodeFallbackType=((o=I.config)==null?void 0:o.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=((g=I.config)==null?void 0:g.smallMode)||this.smallMode,N.emit(v.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:C}),ee.addSuccessEvent({key:521700,cost:it()-r})}catch(n){throw ee.addFailedEvent({key:521700,error:n}),n}}))}sendAbilityStatus(A){}enableInsertableStreams(){return Promise.resolve()}switchRoom(A){return Promise.reject()}isSwitchRoomSupported(){return!1}},FP=Mo(Ng()),oK=Mo(nB());function gK(A){var e;let t=[];for(let i=0;i<A.rtp.length;i++){if(["rtx","red","ulpfec"].includes(A.rtp[i].codec))continue;let o=A.fmtp.filter((g=>g.payload===A.rtp[i].payload))[0];t.push({payload:A.rtp[i].payload,codec:A.rtp[i].codec,fmtp:o?o.config:"",rate:A.rtp[i].rate,rtx:((e=A.rtp[i+1])==null?void 0:e.codec)==="rtx"?A.rtp[i+1].payload:0,rtcpfb:((A==null?void 0:A.rtcpFb)||[]).filter((g=>g.payload===A.rtp[i].payload)).map((g=>{let{type:r,subtype:n}=g;return{id:r,params:n?[n]:[]}}))})}return t}var vP=(A,e)=>X(void 0,null,(function*(){var t;let i=Oo(A),o={ice:{ufrag:"",password:""},dtls:{hash:"",fingerprint:"",setup:""},audio:{codecs:[],extensions:[]},video:{codecs:[],decoders:[],extensions:[]},useDataChannel:!1};o.ice.ufrag=String(i.media[0].iceUfrag),o.ice.password=i.media[0].icePwd||"",i.fingerprint&&(o.dtls.hash=i.fingerprint.type,o.dtls.fingerprint=i.fingerprint.hash,o.dtls.setup=i.setup||""),i.media[0].fingerprint&&(o.dtls.hash=i.media[0].fingerprint.type,o.dtls.fingerprint=i.media[0].fingerprint.hash),o.dtls.setup=i.media[0].setup||"";let g=i.media[0],r=i.media[1];g.ext&&(o.audio.extensions=g.ext.map((I=>({id:I.value,uri:I.uri})))),r.ext&&(o.video.extensions=r.ext.map((I=>({id:I.value,uri:I.uri}))));for(let I of g.rtp){if(I.codec!=="opus")continue;let C=g.fmtp.find((R=>R.payload===I.payload));if(!C)continue;let u={codec:I.codec,fmtp:C.config,payload:C.payload,rate:I.rate,channels:I.encoding,rtcpfb:[],rtx:0};(t=g.rtcpFb)==null||t.forEach((R=>{let{payload:M,type:L,subtype:H}=R;if(M===u.payload){let gA={id:L,params:[]};H&&gA.params.push(H),u.rtcpfb.push(gA)}})),o.audio.codecs.push(u);break}let n=["h264","vp8","h265"];return e&&n.shift(),o.video.codecs=[...gK(r)].filter((I=>n.includes(I.codec.toLocaleLowerCase()))),o.video.decoders=(yield(function(){return X(this,null,(function*(){let I=new RTCPeerConnection;I.addTransceiver(V.VIDEO,{direction:V.TRANSCEIVER_DIRECTION_RECVONLY});let C=yield I.createOffer();if(!C.sdp)return[];let u=gK(Oo(C.sdp).media[0]);return I.close(),u}))})()).filter((I=>["h264","vp8","h265"].includes(I.codec.toLocaleLowerCase()))),o})),TP=A=>{let{serverAbility:e,clientAbility:t,offerSDP:i,enableCustomMessage:o}=A,g=Oo(i),r={extmapAllowMixed:"extmap-allow-mixed",groups:g.groups,icelite:"ice-lite",media:[],msidSemantic:{semantic:"",token:"WMS"},name:"-",origin:{address:"127.0.0.1",username:"-",sessionId:String(Date.now()),sessionVersion:1,netType:"IN",ipVer:4},timing:{start:0,stop:0},version:0},n={candidates:e.candidates.map((I=>({component:1,foundation:"1",generation:0,ip:I.ip,port:I.port,priority:I.priority,transport:I.foundation,type:I.type}))),connection:{version:4,ip:"0.0.0.0"},direction:V.TRANSCEIVER_DIRECTION_RECVONLY,ext:e.audio.extensions.map((I=>({value:I.id,uri:I.uri}))),fingerprint:{type:e.dtls.hash,hash:e.dtls.fingerprint},fmtp:[{payload:e.audio.codecs[0].payload,config:e.audio.codecs[0].fmtp}],icePwd:e.ice.password,iceUfrag:e.ice.ufrag,mid:"0",payloads:String(e.audio.codecs[0].payload),port:g.media[0].port,protocol:g.media[0].protocol,type:V.AUDIO,setup:e.dtls.setup,rtcpFb:e.audio.codecs[0].rtcpfb.map((I=>({payload:e.audio.codecs[0].payload,type:I.id,subtype:I.params[0]}))),rtcpMux:"rtcp-mux",rtcpRsize:"rtcp-rsize",rtp:[{payload:e.audio.codecs[0].payload,codec:e.audio.codecs[0].codec,rate:e.audio.codecs[0].rate,encoding:e.audio.codecs[0].channels}]};return r.media.push(n),[1,2,3].forEach((I=>{r.media.push(rK({mid:I,serverAbility:e,clientAbility:t,parsedOffer:g}))})),o&&r.media.push(g.media.find((I=>I.mid==="dc"))),Gc(r)},rK=A=>{let{mid:e,serverAbility:t,clientAbility:i,parsedOffer:o,isDownlink:g=!1}=A,r={candidates:t.candidates.map((n=>({component:1,foundation:"1",generation:0,ip:n.ip,port:n.port,priority:n.priority,transport:n.foundation,type:n.type}))),connection:{version:4,ip:"0.0.0.0"},direction:V.TRANSCEIVER_DIRECTION_RECVONLY,ext:t.video.extensions.map((n=>({value:n.id,uri:n.uri}))),fingerprint:{type:t.dtls.hash,hash:t.dtls.fingerprint},fmtp:[],icePwd:t.ice.password,iceUfrag:t.ice.ufrag,mid:String(e),payloads:"",port:o.media[0].port,protocol:o.media[0].protocol,type:V.VIDEO,setup:t.dtls.setup,rtcpFb:[],rtcpMux:"rtcp-mux",rtcpRsize:"rtcp-rsize",rtp:[]};if(g){let n=t.video.decoders;(!n||n.length===0)&&(n=t.video.codecs),(!n||n.length===0)&&(n=i.video.decoders),n.forEach((I=>{Yu(r,I)}))}else{let n;n=t.useH265?t.video.codecs.findIndex((C=>C.codec.toLowerCase()==="h265")):t.video.codecs.findIndex((C=>C.codec.toLowerCase()===(t.useVp8?"vp8":"h264")));let I=t.video.codecs[n]||i.video.codecs[0];Yu(r,I)}return r},Yu=(A,e)=>{A.payloads="".concat(A.payloads," ").concat(e.payload).trim(),A.fmtp.push({payload:e.payload,config:e.fmtp}),A.rtcpFb=[...A.rtcpFb||[],...e.rtcpfb.map((t=>({payload:e.payload,type:t.id,subtype:t.params[0]})))],A.rtp.push({payload:e.payload,codec:e.codec.toUpperCase(),rate:e.rate}),e.rtx&&(A.payloads="".concat(A.payloads," ").concat(e.rtx),A.fmtp.push({payload:e.rtx,config:"apt=".concat(e.payload)}),A.rtp.push({payload:e.rtx,codec:"rtx",rate:e.rate}))},UP=(A,e,t)=>{let i=oK.default.parse(A);return i.media.forEach(((o,g)=>{var r;if((o.type===V.AUDIO||o.type===V.VIDEO)&&((function(n){if(!n.rtcpFb)return;let I=[];n.rtcpFb.forEach(((C,u)=>{var R;I.push(C),n.rtcpFb&&((R=n.rtcpFb[u+1])==null?void 0:R.payload)!==C.payload&&C.type!=="rrtr"&&I.push({payload:C.payload,type:"rrtr"})})),n.rtcpFb=I})(o),(function(n){n.type===V.VIDEO&&n.fmtp&&n.fmtp.forEach((I=>{I.config.includes("apt")||(I.config+=";sps-pps-idr-in-keyframe=1")}))})(o),(function(n){n.type===V.AUDIO&&n.fmtp&&n.fmtp.forEach((I=>{I.config+=";sprop-stereo=1;stereo=1"}))})(o),(function(n){let I=new Set(["urn:ietf:params:rtp-hdrext:sdes:mid","urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"]);n.ext&&(n.ext=n.ext.filter((C=>!I.has(C.uri))))})(o),o.type===V.VIDEO)){if(g<4)o.payloads="",o.fmtp=[],o.rtp=[],o.rtcpFb=[],e.video.codecs.forEach((n=>Yu(o,n)));else if(t){o.payloads="",o.fmtp=[],o.rtp=[],o.rtcpFb=[];let n=t.video.decoders;(!n||n.length===0)&&(n=t.video.codecs),(!n||n.length===0)&&(n=e.video.decoders),n.forEach((I=>Yu(o,I)))}}(r=o.payloads)!=null&&r.includes("datachannel")&&i.groups&&o.mid&&(i.groups[0].mids=i.groups[0].mids.replace(o.mid,"dc"),o.mid="dc")})),oK.default.write(i)},_P=Mo(Ng()),aK=class extends _P.EventEmitter{constructor(A){super(),this.room=A,l(this,"mainFpsHealth",1),l(this,"mainBitrateHealth",1),l(this,"badMainBitrateHealthCount",0),l(this,"lastEmitBadHealthTime",0),l(this,"log"),!Oi&&Fg&&N.on("262",this.onVideoCodecChanged,this),this.log=A.getLogger().createChild({id:"h-d"})}onVideoCodecChanged(A){let{remoteUserId:e,streamType:t,isHWCodec:i,codec:o}=A;if(!e&&t!==7&&o==="h264"){if(!i)return void this.room.off("heartbeat-report",this.onHeartbeatReport,this);this.room.listeners("heartbeat-report").includes(this.onHeartbeatReport)||this.room.on("heartbeat-report",this.onHeartbeatReport,this)}}onHeartbeatReport(A){Date.now()-this.lastEmitBadHealthTime<3e4||(A.msg_up_stream_info.msg_video_status.forEach((e=>{if(e.uint32_video_enc_fps&&e.uint32_video_capture_fps){let t=e.uint32_video_enc_fps/e.uint32_video_capture_fps;e.uint32_video_stream_type===2&&(this.mainFpsHealth=t)}if(e.uint32_video_codec_bitrate&&e.uint32_video_stream_type===2){let{localMainVideoTrack:t}=this.room;t&&(this.mainBitrateHealth=e.uint32_video_codec_bitrate/1e3/t.profile.bitrate)}})),this.log.debug("mainBitrateHealth: ".concat(this.mainBitrateHealth," mainFpsHealth: ").concat(this.mainFpsHealth)),this.mainBitrateHealth>.5&&(this.badMainBitrateHealthCount=0),this.mainFpsHealth>.9&&this.mainBitrateHealth<.5&&(this.badMainBitrateHealthCount++,this.badMainBitrateHealthCount>3&&(this.badMainBitrateHealthCount=0,this.lastEmitBadHealthTime=Date.now(),this.log.warn("bad main bitrate health: ".concat(this.mainBitrateHealth," fps health: ").concat(this.mainFpsHealth)),this.emit("1",{isAux:!1}))))}destroy(){N.off("262",this.onVideoCodecChanged,this),this.room.off("heartbeat-report",this.onHeartbeatReport,this)}};l(aK,"EVENT_BAD_HEALTH","bad_health");var LP=aK,Ju=(A=>(A.TRACK="track",A.DATA_CHANNEL_MESSAGE="data_channel_msg",A[A.CONNECTION_STATE_CHANGED="connection-state-changed"]="CONNECTION_STATE_CHANGED",A[A.FIREWALL_RESTRICTION="firewall-restriction"]="FIREWALL_RESTRICTION",A.RECONNECTED="spc-reconnected",A.RECONNECT_FAILED="spc-reconnect-failed",A.ERROR="error",A.SEI_MESSAGE="sei-message",A.DUMP="dump",A))(Ju||{}),IK=0,nK=!1,bP=new Set,YP=1,Mc=class extends FP.default{constructor(A){let{signalChannel:e,room:t,enableCustomMessage:i}=A;super(),l(this,"stat",{iceStartTime:0,iceEndTime:0,dtlsStartTime:0,dtlsEndTime:0,peerConnectionStartTime:0,peerConnectionEndTime:0}),l(this,"isDestroyed",!1),l(this,"currentState","DISCONNECTED"),l(this,"_room"),l(this,"_signalChannel"),l(this,"_peerConnection",null),l(this,"_datachannel",null),l(this,"_enableCustomMessage"),l(this,"_log"),l(this,"_downlinkMIDMap",new Map),l(this,"_downlinkMIDUserIDMap",new Map),l(this,"_reconnectionTimer",-1),l(this,"reconnectionCount",0),l(this,"clientAbility"),l(this,"_serverAbility",null),l(this,"addDownlinkQueue",new Set),l(this,"removeDownlinkQueue",new Set),l(this,"_parsedAnswer",null),l(this,"_updateSDPPromise",null),l(this,"_waitForPCConnectedPromise"),l(this,"clearWaitForConnectedPromise"),l(this,"clearConnectTimeout"),l(this,"_isSDPLogged",!1),l(this,"enableInsertableStreams",!1),l(this,"insertableStreamsAbortMap",new Map),l(this,"receiverRemoteTrackMap",new WeakMap),l(this,"scriptTransformWorker"),l(this,"_isRelayTried",!1),l(this,"_rttOverCount",0),l(this,"originOffer",null),l(this,"autoSubscribedSsrcGroups",new Map),l(this,"autoSubscribedUserMap",new Map),l(this,"_h265DecodeFailed",!1),this._room=t,this._enableCustomMessage=i,this._signalChannel=e,this._log=K.createLogger({parent:this._room.getLogger(),id:"spc".concat(YP++),userId:this._room.userId,sdkAppId:this._room.sdkAppId}),this._room.enableCodecPipeline&&(vB?this.enableInsertableStreams=!0:this.initScriptTransformWorker()),this._room.healthDetector.on("1",this.onBadHealth,this)}get isH264EncodeSupported(){let A=this._room.checkSystemResult.detail.isH264EncodeSupported;return this._serverAbility&&(A=A&&!!this._serverAbility.video.codecs.find((e=>e.codec.toLowerCase()==="h264"))),A}addAbortController(A,e){var t;(t=this.insertableStreamsAbortMap.get(A))==null||t.abort("destroy"),this.insertableStreamsAbortMap.set(A,e)}get isVP8EncodeSupported(){let A=this._room.checkSystemResult.detail.isVp8EncodeSupported;return this._serverAbility&&(A=A&&this._serverAbility.video.codecs.find((e=>e.codec.toLowerCase()==="vp8"))),A}get isH265EncodeSupported(){let A=this._room.checkSystemResult.detail.isH265EncodeSupported;return this._serverAbility&&(A=A&&!!this._serverAbility.video.codecs.find((e=>e.codec.toLowerCase()==="h265"))),A}get videoCodec(){var A,e,t;let i=(A=this._parsedAnswer)==null?void 0:A.media[1].rtp.find((o=>["h264","vp8","h265"].includes(o.codec.toLowerCase())));return i?i.codec.toLowerCase():(e=this._serverAbility)!=null&&e.useH265?"h265":(t=this._serverAbility)!=null&&t.useVp8?"vp8":"h264"}get downlinkVideoCodec(){var A,e,t;return(A=this._serverAbility)!=null&&A.useH265&&(e=this._serverAbility)!=null&&e.video.decoders.find((i=>i.codec.toLowerCase()==="h265"))&&!this._h265DecodeFailed?"h265":(t=this._serverAbility)!=null&&t.video.decoders.find((i=>i.codec.toLowerCase()==="h264"))?"h264":"vp8"}get isUsingH264(){return this.videoCodec==="h264"}get isUsingH265(){return this.videoCodec==="h265"}get isUsingVP8(){return this.videoCodec==="vp8"}get is42001fSupported(){return!!this.clientAbility&&!!this.clientAbility.video.codecs.find((A=>A.fmtp.includes("42001f")))}get uplinkSSRC(){return this._peerConnection&&this._peerConnection.localDescription?(A=>{let e=Oo(A),t={audioSsrc:0,audioRtxSsrc:0,bigVideoSsrc:0,bigVideoRtxSsrc:0,smallVideoSsrc:0,smallVideoRtxSsrc:0,auxVideoSsrc:0,auxVideoRtxSsrc:0};return e.media.forEach(((i,o)=>{var g;if(i.ssrcs&&!yA(i.ssrcs[0].id)){let r=Number(i.ssrcs[0].id),n=Number((g=i.ssrcs.filter((I=>I.attribute==="cname"))[1])==null?void 0:g.id);switch(o){case 0:t.audioSsrc=r;break;case 1:t.bigVideoSsrc=r,t.bigVideoRtxSsrc=n;break;case 2:t.smallVideoSsrc=r,t.smallVideoRtxSsrc=n;break;case 3:t.auxVideoSsrc=r,t.auxVideoRtxSsrc=n}}})),t})(this._peerConnection.localDescription.sdp):{audioSsrc:0,audioRtxSsrc:0,bigVideoSsrc:0,bigVideoRtxSsrc:0,smallVideoSsrc:0,smallVideoRtxSsrc:0,auxVideoSsrc:0,auxVideoRtxSsrc:0}}onBadHealth(A){}initScriptTransformWorker(){Jy&&(this.scriptTransformWorker=Gx({videoEncodePipeline:this._room.videoManager.encodePipeline,videoDecodePipeline:this._room.videoManager.decodePipeline,audioEncodePipeline:this._room.audioManager.encodePipeline,audioDecodePipeline:this._room.audioManager.decodePipeline}),this.scriptTransformWorker.onmessage=A=>{A.data.type==="sei"?this.emit("sei-message",A.data):A.data.type,A.data.type==="dump"&&this.emit("dump",A.data)},this.scriptTransformWorker.onerror=A=>{this._log.error("scriptTransformWorker error: ",A.message)})}get isReconnecting(){return this.currentState==="RECONNECTING"||this._reconnectionTimer>0||this.reconnectionCount>0}get dtlsTransport(){if(!this._peerConnection)return null;let A=this._peerConnection.getSenders();return A.length===0?null:A[0].transport}getPeerConnectionConfig(A){var e;let t={encodedInsertableStreams:this.enableInsertableStreams,offerExtmapAllowMixed:!0,iceServers:A,iceTransportPolicy:this._room.getIceTransportPolicy(),sdpSemantics:this._room.sdpSemantics,bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"},i=(e=this._peerConnection)==null?void 0:e.getConfiguration().encodedInsertableStreams;return Lv(i)&&(t.encodedInsertableStreams=i),this._log.debug("getPeerConnectionConfig",JSON.stringify(t)),t}initialize(A){return X(this,null,(function*(){var e;let t;try{return this._peerConnection=new RTCPeerConnection(this.getPeerConnectionConfig(A)),this._peerConnection.oniceconnectionstatechange=()=>{if(!this._peerConnection)return;let i=this._peerConnection.iceConnectionState;this._log.debug("ice state: ".concat(i)),i==="checking"&&this.stat.iceStartTime===0?this.stat.iceStartTime=Date.now():i==="connected"&&this.stat.iceEndTime===0?(this.stat.iceEndTime=Date.now(),this._signalChannel.clearBakRelayIps(),ee.addSuccessEvent({key:521711,cost:this.stat.iceEndTime-this.stat.iceStartTime})):i==="failed"&&ee.addFailedEvent({key:521711})},this._peerConnection.onsignalingstatechange=()=>{var i;let o=((i=this._peerConnection)==null?void 0:i.signalingState)||"";this._log[o==="closed"?"debug":"info"]("signaling state: ".concat(o))},this._peerConnection.onconnectionstatechange=this.onConnectionStateChange.bind(this),this._peerConnection.ontrack=i=>this.emit("track",i),this._enableCustomMessage&&(this._datachannel=this._peerConnection.createDataChannel("".concat(this._room.userId,"dc")),this._datachannel.binaryType="arraybuffer",this._datachannel.onopen=()=>{this._log.info("datachannel open")},this._datachannel.onclose=()=>{this._log.warn("datachannel close")},this._datachannel.onmessage=i=>{let o=new xP(i.data);this.emit("data_channel_msg",{data:o})},this._datachannel.onerror=i=>{this._log.warn("datachannel error",i)}),this._peerConnection.addTransceiver(V.AUDIO,{direction:V.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(V.VIDEO,{direction:V.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(V.VIDEO,{direction:V.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(V.VIDEO,{direction:V.TRANSCEIVER_DIRECTION_SENDONLY}),t=yield this._peerConnection.createOffer(),this.clientAbility=yield vP(t.sdp,((e=this._room.scheduleResult.config)==null?void 0:e.remove264FromSDP)||!1),this.originOffer=t,this.dtlsTransport&&(this.dtlsTransport.onstatechange=()=>{let{dtlsTransport:i}=this;i&&(this._log.debug("dtls state: ".concat(i.state)),i.state==="connecting"&&this.stat.dtlsStartTime===0?this.stat.dtlsStartTime=Date.now():i.state==="connected"&&this.stat.dtlsEndTime===0&&(this.stat.dtlsEndTime=Date.now()))}),ee.addSuccessEvent({key:521707}),this.clientAbility}catch(i){throw ee.addFailedEvent({key:521707,error:i}),this._log.error("initialize failed ".concat(i,`
|
||
offer: `).concat(t==null?void 0:t.sdp)),i}}))}setIceServers(A){return X(this,null,(function*(){var e;if(this._peerConnection&&A.length!==0)try{if(this._log.info("setIceServers",JSON.stringify(A,((t,i)=>t==="username"||t==="credential"?"hided":i))),this._peerConnection.setConfiguration(this.getPeerConnectionConfig(A)),(e=this._peerConnection)!=null&&e.localDescription||!this.originOffer)return void this._log.warn("setIceServers already has localDescription or no origin Offer");yield this.setOffer(this.originOffer)}catch(t){this._log.warn("setIceServers error ",t)}}))}setPriority(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"high";if(this._peerConnection)try{this._peerConnection.getSenders().forEach((e=>{let t=e.getParameters();t.encodings[0]&&(t.encodings[0].priority=A,t.encodings[0].networkPriority=A,e.setParameters(t).catch((i=>{this._log.warn("setPriority error ",i)})))}))}catch(e){this._log.warn("setPriority error ",e)}}connect(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return X(this,null,(function*(){var t,i,o,g;try{if(this.currentState==="CONNECTED")return;((t=this._peerConnection)==null||!t.localDescription)&&this.originOffer&&(yield this.setOffer(this.originOffer));let r=it();if(((i=this._room.joinParams)==null?void 0:i.videoProfileLevel)==="high"&&!Zv()){let C=this.clientAbility.video.codecs.find((u=>u.fmtp.includes("profile-level-id=64")));if(C){let u=A.video.codecs.findIndex((R=>R.codec.toLowerCase()===C.codec.toLowerCase()));A.video.codecs[u]=JSON.parse(JSON.stringify(C)),this._log.warn("set new profile level id",C)}}let n={type:"answer",sdp:TP({serverAbility:A,clientAbility:this.clientAbility,offerSDP:this._peerConnection.localDescription.sdp,enableCustomMessage:this._enableCustomMessage})};this._serverAbility=A,yield this.setAnswer(n),yield this.waitForPeerConnectionConnected();let I=((o=this._room.scheduleResult.config)==null?void 0:o.priority)||((g=this._room.joinParams)==null?void 0:g.priority)||new URLSearchParams(location.search).get("priority");I&&this.setPriority(I),e||ee.addSuccessEvent({key:521703,cost:it()-r})}catch(r){let n=r instanceof oe&&r.code===OA.API_CALL_ABORTED;throw n||this._log.error("connect failed: ".concat(r),A),this.reset(),!n&&!this.isReconnecting&&!this.isDestroyed&&(ee.addFailedEvent({key:521703,error:r}),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.startReconnection()),r}}))}reconnect(){return X(this,null,(function*(){if(this._reconnectionTimer===-1){if(!this._signalChannel.isConnected)return this._log.warn("reconnect() wait signal channel is connected"),void this._signalChannel.once(ZG,this.reconnect,this);try{this.reconnectionCount+=1,this._log.warn("reconnect() trying [".concat(this.reconnectionCount,"]")),this.reset();let A=this._signalChannel.getBackupRelayIpPair(),e=yield this.initialize(this._room.getIceServers(A!=null&&A.iceServer?[A.iceServer]:[])),t=le({ability:e},A),i=yield this._signalChannel.sendWaitForResponse({command:gP,responseCommand:ut.REBUILD_PEER_CONNECTION_RES,data:t,enableLog:!1});if(i.data.code!==0)throw new oe({code:i.data.code,message:i.data.message});yield this.connect(i.data.data.ability,!0),ee.addSuccessEvent({key:521704}),this._log.warn("reconnect() success"),this.stopReconnection(),N.emit(v.SPC_RECONNECTED,{room:this._room}),this.emit("spc-reconnected")}catch(A){if(!this.isReconnecting||this.isDestroyed)return;if(A!=null&&A.message.includes("timeout")){let e=nI(this.reconnectionCount);this._log.warn("reconnect() timeout, try again after ".concat(e/1e3,"s")),yield ra(e,(t=>{this._reconnectionTimer=t})),this.clearReconnectionTimer(),yield this.reconnect()}else this._log.error("reconnect() failed ".concat(A==null?void 0:A.code," ").concat(A)),ee.addFailedEvent({key:521704,error:A}),this.reconnectionCount>=YQ()&&this._log.warn("SDK has tried reconnect for ".concat(YQ()," times, but all failed, please check your network")),this.stopReconnection(),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.emit("error")}}else this._log.warn("reconnect() is reconnecting, ignore current reconnection")}))}getPeerConnection(){return this._peerConnection}startReconnection(){return X(this,null,(function*(){this.isReconnecting||(this._log.warn("start reconnect"),this._updateSDPPromise=null,this.emitConnectionStateChangedEvent("RECONNECTING"),yield this.reconnect())}))}stopReconnection(){var A;this.isReconnecting&&(this._log.info("stop reconnect"),this.reconnectionCount=0,this.clearReconnectionTimer(),(A=this.clearConnectTimeout)==null||A.call(this),this._signalChannel.off(ZG,this.reconnect,this),this.currentState==="RECONNECTING"&&this.emitConnectionStateChangedEvent("DISCONNECTED"))}checkPeerConnectionToReconnect(){var A;!this.isReconnecting&&((A=this._peerConnection)==null?void 0:A.connectionState)===co.CLOSED&&this.startReconnection()}clearReconnectionTimer(){this._reconnectionTimer!==-1&&(clearTimeout(this._reconnectionTimer),this._reconnectionTimer=-1)}onConnectionStateChange(A){var e;let t=((e=this._peerConnection)==null?void 0:e.iceConnectionState)||"closed",i=this.getDTLSTransportState();this._log.info("connectionState: ".concat(A.target.connectionState," ICE: ").concat(t," DTLS: ").concat(i)),A.target.connectionState===co.CONNECTING&&(this.stat.peerConnectionStartTime===0&&(this.stat.peerConnectionStartTime=Date.now()),this.emitConnectionStateChangedEvent("CONNECTING")),(A.target.connectionState===co.FAILED||A.target.connectionState===co.CLOSED)&&(this.emitConnectionStateChangedEvent("DISCONNECTED"),this._room.forceRelay?this.switchRelay(!1):this.startReconnection()),(A.target.connectionState===co.CONNECTED||A.target.connectionState===co.COMPLETED)&&(this.stat.peerConnectionEndTime===0&&(this.stat.peerConnectionEndTime=Date.now()),N.emit(v.SINGLE_CONNECTION_STAT,{room:this._room,stat:{ice:this.stat.iceEndTime-this.stat.iceStartTime,dtls:this.stat.dtlsEndTime-this.stat.dtlsStartTime,peerConnection:this.stat.peerConnectionEndTime-this.stat.peerConnectionStartTime}}),this.logSelectedCandidate(),this.emitConnectionStateChangedEvent("CONNECTED"))}getDTLSTransportState(){if(!this._peerConnection)return Gs;let A=null;return FB()&&this._peerConnection.getSenders().length!==0?(A=this._peerConnection.getSenders()[0].transport,$g()&&this._peerConnection.getReceivers().length!==0&&A?A.state:Gs):Gs}emitConnectionStateChangedEvent(A){A!==this.currentState&&(this.currentState==="RECONNECTING"&&A==="CONNECTING"||(this.emit(Ju.CONNECTION_STATE_CHANGED,{prevState:this.currentState,state:A}),this.currentState=A))}logSelectedCandidate(){return X(this,null,(function*(){if(!this._peerConnection)return;let A=yield this._peerConnection.getStats();for(let[e,t]of A)if(vg(t)){let i=A.get(t.localCandidateId),o=A.get(t.remoteCandidateId);i&&(this._log.info("local candidate: ".concat(i.candidateType," ").concat(i.protocol,":").concat(i.ip||i.address,":").concat(i.port," ").concat(i.networkType||""," ").concat(i.relayProtocol?"relayProtocol:".concat(i.relayProtocol," url: ").concat(i.url):"")),i.networkType&&Zp(i.networkType)),o&&this._log.info("remote candidate: ".concat(o.candidateType," ").concat(o.protocol,":").concat(o.ip||o.address,":").concat(o.port));break}}))}waitForPeerConnectionConnected(){return this._waitForPCConnectedPromise||(this._waitForPCConnectedPromise=new Promise(((A,e)=>{if(this.currentState==="CONNECTED")return A();let t=r=>{r.state==="CONNECTED"&&(clearTimeout(g),o(),A())},i=r=>{let{room:n}=r;n===this._room&&(clearTimeout(g),o(),e(new oe({code:OA.API_CALL_ABORTED,message:nt({key:$e.CONNECTION_ABORTED,data:"leave room"})})))},o=()=>{N.off(v.LEAVE_SUCCESS,i,this),this.off(Ju.CONNECTION_STATE_CHANGED,t,this)},g=setTimeout((()=>{o();let r=new oe({code:OA.API_CALL_TIMEOUT,message:"connection timeout"});var n;IK+=1,n=this._signalChannel.isConnected,IK>2&&!nK&&bP.size===0&&n&&(this._log.warn("firewall restriction"),nK=!0,this.emit(Ju.FIREWALL_RESTRICTION)),e(r)}),RS);this.clearConnectTimeout=()=>{o(),clearTimeout(g),delete this.clearConnectTimeout},this.clearWaitForConnectedPromise=()=>{this._waitForPCConnectedPromise=null,e(new oe({code:OA.API_CALL_TIMEOUT,message:"connection timeout"}))},N.on(v.LEAVE_SUCCESS,i,this),this.on(Ju.CONNECTION_STATE_CHANGED,t,this)})),this._waitForPCConnectedPromise=this._waitForPCConnectedPromise.finally((()=>{this._waitForPCConnectedPromise=null,delete this.clearConnectTimeout}))),this._waitForPCConnectedPromise}waitForReconnected(){return this.isReconnecting?new Promise(((A,e)=>{this.once("spc-reconnected",A),this.once("error",e)})):Promise.resolve()}addDownlink(A){return X(this,null,(function*(){if(this._log.info("addDownlink(".concat(A.userId,") trying")),this.isReconnecting&&(yield this.waitForReconnected()),this._updateSDPPromise&&(yield this._updateSDPPromise),this.updateLocalAndRemoteSDPConfig(A),this.addDownlinkQueue.size===0)try{yield this.updateSDP(),this._log.info("addDownlink(".concat(A.userId,") done"))}catch(e){this._log.error("addDownlink(".concat(A.userId,") failed ").concat(e)),yield this.startReconnection()}}))}updateLocalAndRemoteSDPConfig(A){let{ssrc:e,userId:t,tinyId:i}=A;if(!this._peerConnection)return;this._log.info("updateLocalAndRemoteSDPConfig ".concat(t," ").concat(JSON.stringify(e)));let o=this._peerConnection.getTransceivers().slice(4).filter((R=>R.direction==="inactive")).slice(0,3).map((R=>(R.direction=V.TRANSCEIVER_DIRECTION_RECVONLY,Number(R.mid))));this._parsedAnswer||(this._parsedAnswer=Oo(this._peerConnection.remoteDescription.sdp));let g,r,n,I=this._parsedAnswer.media.filter((R=>{var M;return(M=R.ssrcs)==null?void 0:M.find((L=>{var H;return(H=L.value)==null?void 0:H.includes(i)}))}));if(I.length===3)g=I[0],r=I[1],n=I[2];else if(o.length===3)g=this._parsedAnswer.media.find((R=>Number(R.mid)===Number(o[0]))),r=this._parsedAnswer.media.find((R=>Number(R.mid)===Number(o[1]))),n=this._parsedAnswer.media.find((R=>Number(R.mid)===Number(o[2])));else if(o.length===0){this._peerConnection.addTransceiver(V.AUDIO,{direction:V.TRANSCEIVER_DIRECTION_RECVONLY}),this._peerConnection.addTransceiver(V.VIDEO,{direction:V.TRANSCEIVER_DIRECTION_RECVONLY}),this._peerConnection.addTransceiver(V.VIDEO,{direction:V.TRANSCEIVER_DIRECTION_RECVONLY}),g=JSON.parse(JSON.stringify(this._parsedAnswer.media[0]));let R=rK({mid:1,serverAbility:this._serverAbility,clientAbility:this.clientAbility,parsedOffer:Oo(this._peerConnection.localDescription.sdp),isDownlink:!0});r=JSON.parse(JSON.stringify(R)),n=JSON.parse(JSON.stringify(R)),g.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(g),r.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(r),n.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(n)}g.direction=V.TRANSCEIVER_DIRECTION_SENDONLY;let C="".concat(i,"-").concat(e.audio);g.ssrcs=[{id:e.audio,attribute:"cname",value:"".concat(C)},{id:e.audio,attribute:"msid",value:"".concat(C,"-").concat(V.MAIN," ").concat(C,"-audio")}],r.direction=V.TRANSCEIVER_DIRECTION_SENDONLY,r.ssrcs=[{id:e.video,attribute:"cname",value:"".concat(C)},{id:e.video,attribute:"msid",value:"".concat(C,"-").concat(V.MAIN," ").concat(C,"-bigvideo")},{id:e.videoRtx,attribute:"cname",value:"".concat(C)},{id:e.videoRtx,attribute:"msid",value:"".concat(C,"-").concat(V.MAIN," ").concat(C,"-bigvideo")}],r.ssrcGroups=[{semantics:"FID",ssrcs:"".concat(e.video," ").concat(e.videoRtx)}],n.direction=V.TRANSCEIVER_DIRECTION_SENDONLY;let u="".concat(C,"-aux");n.ssrcs=[{id:e.auxiliary,attribute:"cname",value:u},{id:e.auxiliary,attribute:"msid",value:"".concat(u," ").concat(C,"-aux").concat(V.VIDEO)},{id:e.auxiliaryRtx,attribute:"cname",value:"".concat(u," ").concat(C,"-aux").concat(V.VIDEO)},{id:e.auxiliaryRtx,attribute:"msid",value:"".concat(u," ").concat(C,"-aux").concat(V.VIDEO)}],n.ssrcGroups=[{semantics:"FID",ssrcs:"".concat(e.auxiliary," ").concat(e.auxiliaryRtx)}],this._parsedAnswer.groups&&(this._parsedAnswer.groups[0].mids=this._parsedAnswer.media.map((R=>R.mid)).join(" ")),this._downlinkMIDMap.set(t,[g.mid,r.mid,n.mid]),this._downlinkMIDUserIDMap.set(g.mid,t),this._downlinkMIDUserIDMap.set(r.mid,t),this._downlinkMIDUserIDMap.set(n.mid,t)}removeDownlink(A){return X(this,null,(function*(){if(!this._downlinkMIDMap.has(A)||!this._peerConnection)return;this._log.info("removeDownlink(".concat(A,") trying")),this.isReconnecting&&(yield this.waitForReconnected()),this._updateSDPPromise&&(yield this._updateSDPPromise);let e=this._downlinkMIDMap.get(A),t=!1;this._peerConnection.getTransceivers().forEach((i=>{e!=null&&e.includes(Number(i.mid))&&(t=!0,i.direction="inactive")})),this._parsedAnswer||(this._parsedAnswer=Oo(this._peerConnection.remoteDescription.sdp)),this._parsedAnswer.media.forEach((i=>{e!=null&&e.includes(Number(i.mid))&&(t=!0,i.direction="inactive",i.ssrcs=[],i.ssrcGroups=[])})),this.removeDownlinkQueue.size===0&&t&&(yield this.updateSDP()),this._downlinkMIDMap.delete(A),e==null||e.forEach((i=>this._downlinkMIDUserIDMap.delete(i))),this._log.info("removeDownlink(".concat(A,") done"))}))}setBandwidth(A){return X(this,null,(function*(){if(!this._peerConnection)return;let{audio:e,bigVideo:t,smallVideo:i,auxVideo:o}=A;try{if(Yy()){let g=this._peerConnection.getSenders().slice(0,4);for(let n=0;n<g.length;n++){let I,C=g[n];n===0&&e?I=e:n===1&&t?I=t:n===2&&i?I=i:n===3&&o&&(I=o),I&&(yield this.setSenderMaxBitrate(C,I))}let r=!1;t&&g[1].track&&(r=this.setStartBitrate(1,t)),o&&g[3].track&&(r=this.setStartBitrate(3,o)||r),r&&(yield this.updateSDP())}else yield this.setBandwidthBySDP(A);this._log.info("setBandwidth ".concat(JSON.stringify(A)))}catch(g){this._log.error("failed to set bandwidth: ".concat(g))}}))}setStartBitrate(A,e){var t,i;return!((t=this._peerConnection)==null||!t.remoteDescription||(this._parsedAnswer||(this._parsedAnswer=Oo(this._peerConnection.remoteDescription.sdp)),(i=this._parsedAnswer.media[A])==null||!i.fmtp[0]))&&(this._parsedAnswer.media[A].fmtp[0].config+=";x-google-start-bitrate=".concat(e>5e3?5e3:e),!0)}setSenderMaxBitrate(A,e){let t=A.getParameters();if((!t.encodings||t.encodings.length===0)&&(t.encodings=[{}]),e==="unlimited")delete t.encodings[0].maxBitrate;else{if(t.encodings[0].maxBitrate===1e3*e)return;t.encodings[0].maxBitrate=1e3*e}return A.setParameters(t)}setBandwidthBySDP(A){let{audio:e,bigVideo:t,smallVideo:i,auxVideo:o}=A;if(!this._peerConnection||!this._peerConnection.localDescription)return;let g=Oo(this._peerConnection.localDescription.sdp);this._parsedAnswer||(this._parsedAnswer=Oo(this._peerConnection.remoteDescription.sdp));let r=ei?"TIAS":"AS";e&&(g.media[0].bandwidth=[{type:r,limit:ei?1e3*e:e}],this._parsedAnswer.media[0].bandwidth=[{type:r,limit:ei?1e3*e:e}]),t&&(g.media[1].bandwidth=[{type:r,limit:ei?1e3*t:t}],this._parsedAnswer.media[1].bandwidth=[{type:r,limit:ei?1e3*t:t}]),i&&(g.media[2].bandwidth=[{type:r,limit:ei?1e3*i:i}],this._parsedAnswer.media[2].bandwidth=[{type:r,limit:ei?1e3*i:i}]),o&&(g.media[3].bandwidth=[{type:r,limit:ei?1e3*o:o}],this._parsedAnswer.media[3].bandwidth=[{type:r,limit:ei?1e3*o:o}]);let n={type:"offer",sdp:Gc(g)};return this.updateSDP({localDescription:n})}setScaleResolutionDownBy(A,e,t){let i=A.getParameters();(!i.encodings||i.encodings.length===0)&&(i.encodings=[{}]);let o=i.encodings[0].scaleResolutionDownBy;if(yA(o)?e===1:e===o)return;let g="setScaleResolutionDownBy ".concat(t," ").concat(e);return o&&(g+=" prevScale: ".concat(o)),this._log.warn(g),i.encodings[0].scaleResolutionDownBy=e,A.setParameters(i)}setDegradationPreference(A,e,t){if(Fg&&Gr<83||uo&&eG(Fa,"12.1")||ei&&jQ<138)return;let i=A.getParameters(),o="balanced";if(e==="motion"?o="maintain-framerate":e==="detail"&&(o="maintain-resolution"),i.degradationPreference===o)return;let g="setDegradationPreference ".concat(t," ").concat(o);return this._log.info(g),i.degradationPreference=o,A.setParameters(i).catch((r=>this._log.warn("".concat(g," failed: ").concat(r))))}updateSDP(){let{localDescription:A}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this._parsedAnswer)return Promise.resolve();let e=Gc(this._parsedAnswer);return this._updateSDPPromise=new Promise(((t,i)=>X(this,null,(function*(){var o,g;try{!A&&this._peerConnection&&(this._log.info("creating offer"),A=yield this._peerConnection.createOffer()),A&&(yield this.setOffer(A)),yield this.setAnswer({type:"answer",sdp:e}),this._updateSDPPromise=null,t()}catch(r){this._log.error(r),!this._isSDPLogged&&this._peerConnection&&(this._log.warn("current offer: ".concat(this.filterSDPDirection((o=this._peerConnection.localDescription)==null?void 0:o.sdp),`
|
||
next offer: `).concat(this.filterSDPDirection(A==null?void 0:A.sdp))),this._log.warn("current answer: ".concat(this.filterSDPDirection((g=this._peerConnection.remoteDescription)==null?void 0:g.sdp),`
|
||
next answer: `).concat(this.filterSDPDirection(e))),this._log.warn("offer: ".concat(A==null?void 0:A.sdp)),this._log.warn("answer: ".concat(e)),this._log.warn("transceivers: ".concat(JSON.stringify(this._peerConnection.getTransceivers().map((n=>{let{mid:I,currentDirection:C,direction:u,stopped:R}=n;return{mid:I,currentDirection:C,direction:u,stopped:R}}))))),this._log.warn("parsedAnswer: ".concat(JSON.stringify(this._parsedAnswer))),this._isSDPLogged=!0),this._updateSDPPromise=null,i(r)}})))),this._updateSDPPromise}setTransceiverDirection(A,e){return X(this,null,(function*(){if(!ei||!this._peerConnection||!this._parsedAnswer)return;this._log.info("setting transceiver ".concat(e.join(",")," direction to ").concat(A));let t=this._peerConnection.getTransceivers();e.forEach((i=>{t[i].direction!==A&&(t[i].direction=A)}));for(let i of e){let o=this._parsedAnswer.media[i].direction;A===Wt.INACTIVE&&o===Wt.RECVONLY&&(this._parsedAnswer.media[i].direction=A),A===Wt.SENDONLY&&o===Wt.INACTIVE&&(this._parsedAnswer.media[i].direction=Wt.RECVONLY)}yield this.updateSDP()}))}filterSDPDirection(){return Oo(arguments.length>0&&arguments[0]!==void 0?arguments[0]:"").media.map((A=>A.direction))}setOffer(A){this._log.info("setting offer");let e=UP(A.sdp,this.clientAbility,this._serverAbility);return this._log.debug(e),this._peerConnection.setLocalDescription({type:"offer",sdp:e})}setAnswer(A){return this._log.info("setting answer"),this._log.debug(A.sdp),this._peerConnection.setRemoteDescription(A)}switchVideoEncoder(A){return X(this,null,(function*(){if(A==="h265"&&!this._parsedAnswer&&(this._parsedAnswer=Oo(this._peerConnection.remoteDescription.sdp)),!this._peerConnection||!this._parsedAnswer||!this._serverAbility)return;let e=!1;this._parsedAnswer.media.forEach((t=>{var i;if(t.type===V.VIDEO){let o=this._serverAbility.video.codecs.find((g=>g.codec.toLowerCase()===A));o&&((i=t.payloads)==null||!i.includes(String(o.payload)))&&(t.fmtp=[],t.payloads="",t.rtp=[],t.rtcpFb=[],Yu(t,o),e=!0)}})),e&&(this._log.warn("switch video encoder to ".concat(A)),yield this.updateSDP())}))}useHWEncoder(){let A=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0],e=arguments.length>1?arguments[1]:void 0;return X(this,null,(function*(){if(!this._peerConnection||!this._parsedAnswer||!this._serverAbility)return;let t=!1,i=[];yA(e)?i=this._parsedAnswer.media.slice(1,4):e===2?i.push(this._parsedAnswer.media[1]):e===3?i.push(this._parsedAnswer.media[2]):e===7&&i.push(this._parsedAnswer.media[3]),i.forEach((o=>{var g;if(o.type===V.VIDEO){let r;A&&this.is42001fSupported?r=this.clientAbility.video.codecs.find((n=>n.fmtp.includes("42001f"))):A||(r=this._serverAbility.video.codecs.find((n=>n.codec.toLowerCase()===(this._serverAbility.useVp8?"vp8":"h264")))),r&&((g=o.payloads)==null||!g.includes(String(r.payload)))&&(o.fmtp=[],o.payloads="",o.rtp=[],o.rtcpFb=[],Yu(o,r),t=!0)}})),t&&(this._log.warn("use ".concat(A?"hw":"sw"," encoder")),yield this.updateSDP())}))}setProfileLevelId(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"42e01f",e=arguments.length>1?arguments[1]:void 0;return X(this,null,(function*(){if(!this._peerConnection||!this._parsedAnswer||!this._serverAbility)return;let t=!1,i=[];yA(e)?i=this._parsedAnswer.media.slice(1,4):e===2?i.push(this._parsedAnswer.media[1]):e===3?i.push(this._parsedAnswer.media[2]):e===7&&i.push(this._parsedAnswer.media[3]),i.forEach((o=>{var g;if(o.type===V.VIDEO){let r;A&&(r=this.clientAbility.video.codecs.find((n=>n.fmtp.includes(A)))),r&&((g=o.payloads)==null||!g.includes(String(r.payload)))&&(o.fmtp=[],o.payloads="",o.rtp=[],o.rtcpFb=[],Yu(o,r),t=!0)}})),t&&(this._log.warn("use ".concat(A)),yield this.updateSDP())}))}sendDataChannelMessage(A){var e;(e=this._datachannel)==null||e.send(A)}reset(){var A;this._peerConnection&&(this._peerConnection.close(),this._peerConnection.removeEventListener("track",this._peerConnection._onaddstreampoly,this),this._peerConnection._onaddstreampoly=null,this._peerConnection=null),(A=this.clearWaitForConnectedPromise)==null||A.call(this),this._parsedAnswer=null,this.originOffer=null}close(){this._log.info("close pc"),this.isDestroyed=!0,this.removeRTCListener(),this.insertableStreamsAbortMap.forEach((A=>DB(A.abort)&&A.abort("destroy"))),this.insertableStreamsAbortMap.clear(),this.reset(),this.emitConnectionStateChangedEvent("DISCONNECTED"),this._downlinkMIDMap.clear(),this.stopReconnection(),this.removeAllListeners(),this._room.healthDetector.off("1",this.onBadHealth,this)}getReceiversByUserId(A){if(!this._peerConnection)return[];let e=this._peerConnection.getReceivers();return(this._downlinkMIDMap.get(A)||[]).map((t=>e[t]))}get isUsingRelay(){return this._room.getIceTransportPolicy()==="relay"}detectTCPAndUDP(A){let{uplinkRTT:e,downlinkRTT:t}=A;var i;if(this.currentState!=="CONNECTED"||this._isRelayTried&&!this._room.forceRelay||this._room.getIceServers().length===0)return;let o=this._signalChannel.rtt,g=Math.max(e,t),{rttRatioThreshold:r,rttThreshold:n}=((i=this._room.scheduleResult.config)==null?void 0:i.useTurnTcpInfo)||{};if(!(r&&n&&o&&g))return;let I=Math.floor(g/o),C=(this._isRelayTried||I>r)&&g>n;C?++this._rttOverCount<5||(this._log.warn("detectTCPAndUDP ws-rtt: ".concat(o," upRTT: ").concat(e," downRTT: ").concat(t," ratio: ").concat(I," over-count: ").concat(this._rttOverCount," isOver: ").concat(C," isRelayTried: ").concat(this._isRelayTried," force-relay: ").concat(this._room.forceRelay)),this.isUsingRelay||this._isRelayTried?this._room.forceRelay&&this.switchRelay(!1):(this._isRelayTried=!0,this._rttOverCount=0,this.switchRelay(!0))):this._rttOverCount=0}switchRelay(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return X(this,null,(function*(){if(this.isUsingRelay===A)return;let t=A?"relay":"udp",i=A?521709:521710;try{this._room.forceRelay=A,this._log.warn("switchRelay ".concat(t));let o=Date.now();yield this.doSwitchRelay(t),this._log.warn("switchRelay ".concat(t," success")),ee.addSuccessEvent({key:i,cost:Date.now()-o})}catch(o){this._log.warn("switchRelay ".concat(t," failed"),o),ee.addFailedEvent({key:i,error:o}),e?this._room.reJoin():yield this.switchRelay(!A,!0)}}))}doSwitchRelay(A){return new Promise(((e,t)=>{let i=setTimeout((()=>{this.stopReconnection(),t(new Error("switch ".concat(A," timeout")))}),1e4);this.startReconnection().then(e,t).finally((()=>clearTimeout(i)))}))}removeRTCListener(){this._peerConnection&&(this._peerConnection.oniceconnectionstatechange=null,this._peerConnection.onconnectionstatechange=null,this._peerConnection.onsignalingstatechange=null,this._peerConnection.ontrack=null),this.dtlsTransport&&(this.dtlsTransport.onstatechange=null)}requestRemoteFallbackToH264(){this._log.warn("H265 decode failed, remote need to fallback h264"),this._h265DecodeFailed=!0,this._signalChannel.sendWaitForResponse({command:VJ,data:{videoDecCodec:"h264"},responseCommand:ut.UPDATE_CONSTRAINT_CONFIG_RES}).then((A=>{A.data.code!==0&&this._log.warn(A.data.message)}))}};ne([m2("reconnect")],Mc.prototype,"startReconnection"),ne([pc((A=>A.userId))],Mc.prototype,"addDownlink"),ne([pc((A=>A))],Mc.prototype,"removeDownlink"),ne([vG(!0)],Mc.prototype,"updateSDP"),ne([yc(521712,!1),fT(10,0)],Mc.prototype,"setOffer"),ne([yc(521713,!1),fT(10,0)],Mc.prototype,"setAnswer"),ne([Gi(((A,e)=>function(){for(var t=arguments.length,i=new Array(t),o=0;o<t;o++)i[o]=arguments[o];return this._checkPendingPromiseSet&&(this._checkPendingPromiseSet.forEach((g=>clearTimeout(g))),this._checkPendingPromiseSet.clear()),A.apply(this,i)}))],Mc.prototype,"close");var JP=class{constructor(A){l(this,"tag"),l(this,"len"),l(this,"data");let e=new DataView(A);this.tag=e.getUint16(),this.len=e.getUint16(2),this.data=new Uint8Array(A).slice(4,4+this.len).buffer}},xP=class{constructor(A){l(this,"tinyId"),l(this,"data");let e=new DataView(A),t=0,i=[];for(;t<e.byteLength;){let o=e.getUint16(t+2),g=new JP(new Uint8Array(A).slice(t,t+2+2+o).buffer);i.push(g),t+=4+o}i.forEach((o=>{o.tag===1?this.tinyId=new TextDecoder().decode(o.data):o.tag===2&&(this.data=o.data)}))}},sK=new Set;function vn(){let A=Math.floor(4294967296*Math.random());return sK.has(A)?vn():(sK.add(A),A)}var KP=Mo(Ng()),EK=class extends KP.default{constructor(A){super(),l(this,"userId"),l(this,"tinyId"),l(this,"_sdpSemantics"),l(this,"_isUplink"),l(this,"_room"),l(this,"_log"),l(this,"_currentState","DISCONNECTED"),l(this,"_prevTime",-1),l(this,"_blackSmallVideoDetectionId"),this.userId=A.userId,this.tinyId=A.tinyId,this._room=A.room,this._sdpSemantics=A.room.sdpSemantics,this._isUplink=A.isUplink,this._log=K.createLogger({parent:this._room.getLogger(),id:"n",userId:this._room.userId,remoteUserId:this._isUplink?void 0:this.userId,sdkAppId:this._room.sdkAppId,isLocal:this._isUplink})}get _peerConnection(){var A;return((A=this.singlePC)==null?void 0:A.getPeerConnection())||null}get singlePC(){return this._room.singlePC}get _signalChannel(){return this._room.signalChannel}close(A){this._log.info("close connection"),this.emit("closed",A)}emitConnectionStateChangedEvent(A){return A!==this._currentState&&(N.emit(v.PEER_CONNECTION_STATE_CHANGED,{room:this._room,prevState:this._currentState,state:A,remoteUserId:this._isUplink?void 0:this.userId}),this.emit("connection-state-changed",{prevState:this._currentState,state:A}),this._currentState=A,!0)}getPeerConnection(){return this._peerConnection}getRoom(){return this._room}getUserId(){return this.userId}getTinyId(){return this.tinyId}getCurrentState(){return this._currentState}get isH264(){var A,e;return!((e=(A=this._peerConnection)==null?void 0:A.remoteDescription)==null||!e.sdp.includes("H264"))}},xu=new class{constructor(){l(this,"worker"),l(this,"callbacks",new Map),l(this,"_log"),l(this,"sleep",{}),l(this,"heartbeatListenerCleaner",new Map),l(this,"userIdMap",new Map),this._log=K.createLogger({id:"bvd"})}getWorker(){if(!this.worker){let A=new Blob([`
|
||
const tracks=new Map;let canvas,ctx;const log=(...t)=>postMessage({type:"log",message:"[worker] "+t.join(" ")});function startDetection(e,t,a){if(!tracks.has(e)){const c={reader:a.getReader(),blackCount:0,timeoutId:null,intervalId:null};tracks.set(e,c),c.timeoutId=setTimeout(()=>stopDetection(e,"timeout"),t),c.intervalId=setInterval(async()=>{try{await isFrameBlack(e)?(c.blackCount++,postMessage({type:"blackCount",trackId:e,count:c.blackCount}),3<=c.blackCount&&(postMessage({type:"black",trackId:e}),stopDetection(e,"black"))):c.blackCount=0}catch(t){log("check black video error:",t.message),stopDetection(e,"error")}},1e3)}}function stopDetection(t,e){var a=tracks.get(t);a&&(a.timeoutId&&clearTimeout(a.timeoutId),a.intervalId&&clearInterval(a.intervalId),a.reader&&a.reader.cancel(),tracks.delete(t),postMessage({type:e,trackId:t}))}async function isFrameBlack(t){t=tracks.get(t);if(!t)return!1;var t=t.reader,{done:t,value:e}=await t.read();if(!e||t)return!1;canvas||(canvas=new OffscreenCanvas(e.codedWidth,e.codedHeight),ctx=canvas.getContext("2d",{willReadFrequently:!0})),canvas.width===e.codedWidth&&canvas.height===e.codedHeight||(canvas.width=e.codedWidth,canvas.height=e.codedHeight,ctx=canvas.getContext("2d",{willReadFrequently:!0})),ctx.drawImage(e,0,0,canvas.width,canvas.height);t=getFrameBlackRatio(ctx.getImageData(0,0,canvas.width,canvas.height));return e.close(),1===t}function getFrameBlackRatio(t){var e=t.data;let a=0;for(let t=0;t<100;t++){var c=4*Math.floor(Math.random()*(e.length/4)),[c,r,n,o]=[e[c],e[1+c],e[2+c],e[3+c]];0<o&&0===c&&0===r&&0===n&&a++}return a/100}self.onmessage=t=>{var{type:t,trackId:e,timeout:a,readable:c}=t.data;"addTrack"===t&&startDetection(e,a,c),"removeTrack"===t&&stopDetection(e)};
|
||
`],{type:"application/javascript"}),e=URL.createObjectURL(A);this.worker=new Worker(e),URL.revokeObjectURL(e),this.worker.onerror=t=>this._log.warn("worker error:",t.message,t.filename||"unknown",t.lineno||"unknown"),this.worker.onmessage=t=>{var i;let{type:o,trackId:g,message:r,count:n}=t.data;if(o==="black")(i=this.callbacks.get(g))==null||i();else if(o==="log")this._log.warn(r);else if(o==="blackCount"){let I=this.userIdMap.get(g);this._log.warn("".concat(I||g," black count: ").concat(n))}}}return this.worker}start(A){let{track:e,isUplink:t,room:i,userId:o,onBlack:g}=A;if(this._log.debug("start detect black video",e.id),!lu()||!g||!e||typeof Worker>"u")return void this._log.warn("black video detector not supported");let r=n=>{var I,C,u,R;let M;if(t)M=(C=(I=n.msg_up_stream_info)==null?void 0:I.msg_video_status)==null?void 0:C.filter((L=>L.uint32_video_stream_type===3))[0];else{let L=(u=n.msg_down_stream_info)==null?void 0:u.filter((H=>{var gA;return((gA=H.msg_user_info)==null?void 0:gA.str_identifier)===o}))[0];M=(R=L==null?void 0:L.msg_video_status)==null?void 0:R.filter((H=>H.uint32_video_stream_type===3))[0]}if(M){let L=(M.uint32_video_codec_bitrate||0)/1e3;if(this.sleep[e.id]&&this.sleep[e.id]>0)return void(this.sleep[e.id]-=1);L>0&&L<10&&(this.sleep[e.id]=30,this._log.info("track bitrate",L,"start check"),this.checkOnce(e,3e4))}};return i.on("heartbeat-report",r),this.heartbeatListenerCleaner.set(e.id,(()=>i.off("heartbeat-report",r))),this.callbacks.set(e.id,g),this.userIdMap.set(e.id,o),e.id}checkOnce(A,e){try{let t=this.getWorker();if(!t)throw new Error("Worker not available");let i=new MediaStreamTrackProcessor({track:A});t.postMessage({type:"addTrack",trackId:A.id,timeout:e,readable:i.readable},[i.readable])}catch(t){this._log.warn("check error:",t),this.stop(A.id)}}stop(A){if(A){this.worker&&this.worker.postMessage({type:"removeTrack",trackId:A}),this.callbacks.delete(A),delete this.sleep[A];let e=this.heartbeatListenerCleaner.get(A);e&&e(),this.heartbeatListenerCleaner.delete(A),this.userIdMap.delete(A)}}destroy(){this.callbacks.forEach(((A,e)=>this.stop(e))),this.worker&&(this.worker.terminate(),this.worker=null)}},BK=class extends EK{constructor(A){super(tt(le({},A),{isUplink:!0})),l(this,"localMainAudioTrack",null),l(this,"localMainVideoTrack",null),l(this,"localAuxAudioTrack",null),l(this,"localAuxVideoTrack",null),l(this,"_isPublishingAux",!1),l(this,"_publishingLocalAudioTrack"),l(this,"_publishingLocalVideoTrack"),l(this,"_mediaSettings",{videoCodec:"",videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,videoDecCodec:"",audioCodec:"opus",audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0,auxVideoWidth:0,auxVideoHeight:0,auxVideoFps:0,auxVideoBps:0}),l(this,"_flag",0),l(this,"_checkPublishStateTimeoutId",-1),this.initialize()}get videoCodec(){var A;return((A=this.singlePC)==null?void 0:A.videoCodec)||"h264"}get ssrc(){if(!this.singlePC)return{audio:0,video:0,videoRtx:0,small:0,smallRtx:0,auxiliary:0,auxiliaryRtx:0};let{audioSsrc:A,bigVideoSsrc:e,bigVideoRtxSsrc:t,smallVideoSsrc:i,smallVideoRtxSsrc:o,auxVideoSsrc:g,auxVideoRtxSsrc:r}=this.singlePC.uplinkSSRC;return{audio:A||0,video:e||0,videoRtx:t||0,small:i||0,smallRtx:o||0,auxiliary:g||0,auxiliaryRtx:r||0}}get flag(){return this._flag}set flag(A){this._flag!==A&&(this._flag=A,this.checkPublishState())}checkPublishState(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];try{if(!A&&this._checkPublishStateTimeoutId>0)return;let{serverPublishState:e}=this,{publishState:t}=this._room,i=Object.keys(t).filter((o=>{if(t[o]!==e[o]&&t[o])switch(o){case"audio":return!(!this.localMainAudioTrack||!this.localMainAudioTrack.isMediaTrackActive);case"bigVideo":case"smallVideo":return!(!this.localMainVideoTrack||!this.localMainVideoTrack.isMediaTrackActive);case"auxVideo":return!(!this.localAuxVideoTrack||!this.localAuxVideoTrack.isMediaTrackActive)}return!1}));if(i.length>0){if(!A)return void(this._checkPublishStateTimeoutId=ti.run("timeout",(()=>this.checkPublishState(!0)),{delay:1e4,count:1}));ee.addCount({key:521e3}),i.forEach((o=>{this._log.warn("".concat(o," publish failed during call ").concat(s()," ").concat(No())),ee.addEnum({key:521719,value:CK[o]})})),ti.clearTask(this._checkPublishStateTimeoutId),this._checkPublishStateTimeoutId=-1}}catch(e){this._log.warn("checkPublishState failed",e)}}get isMainStreamPublished(){return!(!this.localMainAudioTrack&&!this.localMainVideoTrack)}get isAuxStreamPublished(){return!(!this.localAuxVideoTrack&&!this.localAuxAudioTrack)}get serverPublishState(){return{audio:!!(this.flag&BB),bigVideo:!!(this.flag&Fl),smallVideo:!!(this.flag&vl),auxVideo:!!(this.flag&Tl)}}initialize(){this.installEvents()}close(A){var e;let t=((e=this._peerConnection)==null?void 0:e.getSenders())||[];for(let i of t)i.replaceTrack(null);super.close(A),this.uninstallEvents(),this.uninstallTrackMuteEvents(this.localMainAudioTrack,this.localMainVideoTrack,this.localAuxVideoTrack),this.emitConnectionStateChangedEvent("DISCONNECTED")}installEvents(){this.listeners("connection-state-changed").includes(this.handleConnectionStateChange)||this.on("connection-state-changed",this.handleConnectionStateChange,this),this.installSPCEvents()}installSPCEvents(){var A,e;(A=this.singlePC)!=null&&A.listeners("spc-reconnected").includes(this.onSinglePCReconnected)||(e=this.singlePC)==null||e.on("spc-reconnected",this.onSinglePCReconnected,this)}uninstallSPCEvents(){var A;(A=this.singlePC)==null||A.off("spc-reconnected",this.onSinglePCReconnected,this)}uninstallEvents(){this.off("connection-state-changed",this.handleConnectionStateChange,this),this.uninstallSPCEvents()}emitConnectionStateChangedEvent(A,e){var t,i,o;let g=this._currentState,r=super.emitConnectionStateChangedEvent(A);return r&&g!==A&&(e?e.emit("connection-state-changed",{prevState:g,state:A}):((t=this.localMainVideoTrack)==null||t.emit("connection-state-changed",{prevState:g,state:A}),(i=this.localAuxVideoTrack)==null||i.emit("connection-state-changed",{prevState:g,state:A}),(o=this._publishingLocalVideoTrack)==null||o.emit("connection-state-changed",{prevState:g,state:A}))),r}onVideoEncodeFailed(A){return X(this,null,(function*(){if(!A||!A.isMediaTrackActive)return;let{videoCodec:e,singlePC:t}=this;if(!t)return;let i={h265:{supported:t.isH264EncodeSupported,target:"h264",log:"h265 encoder not working"},h264:{supported:t.isVP8EncodeSupported,target:"vp8",log:"h264 encoder not working"},vp8:{supported:!1,target:"vp8",log:"vp8 encoder not working, no fallback available"}};if(e==="vp9"||e==="av1")return;let o=i[e];this._log.warn(o.log),o!=null&&o.supported&&(yield t.switchVideoEncoder(o.target))}))}publish(A){return X(this,arguments,(function(e){var t=this;let{localAudioTrack:i,localVideoTrack:o,isAuxiliary:g}=e;return(function*(){var r,n,I,C,u,R,M;if(!t.singlePC)return;if(t.installEvents(),t.installTrackMuteEvents(i,o),o&&(o.retryEncodeFailed=t.onVideoEncodeFailed.bind(t)),yield t.singlePC.waitForPeerConnectionConnected(),i&&(t._publishingLocalAudioTrack=i),o){if(!t.singlePC.isH264EncodeSupported&&!t.singlePC.isVP8EncodeSupported)throw new oe({code:OA.NOT_SUPPORTED_H264,message:nt({key:$e.NOT_SUPPORTED_H264ENCODE})});t.singlePC.isUsingH264&&!t.singlePC.isH264EncodeSupported&&t.singlePC.isVP8EncodeSupported&&(t._log.warn("h264 encoder not supported"),yield t.singlePC.switchVideoEncoder("vp8")),Oi&&yy()===115&&o.profile.width*o.profile.height<=230400&&(t._log.warn("fallback video to defaultBigVideoProfile: ".concat(JSON.stringify(Ml))),o.setProfile(Ml),yield o.applyProfile()),t._publishingLocalVideoTrack=o}let L;if(t._isPublishingAux=g,o&&!g&&o.small&&(L=t._room.videoManager.smallTrack),yield t._signalChannel.sendWaitForResponseWithRetry({command:aP,responseCommand:ut.SPC_PUBLISH_RESULT,data:tt(le({},t.singlePC.uplinkSSRC),{state:t._room.publishState,muteState:t._room.muteState}),retries:3}),yield t.publishByTransceiver({localAudioTrack:i,localVideoTrack:o,smallTrack:L,isAuxiliary:g}),t._publishingLocalAudioTrack=null,t._publishingLocalVideoTrack=null,t._isPublishingAux=!1,o){t[g?"localAuxVideoTrack":"localMainVideoTrack"]=o,yield t.singlePC.setDegradationPreference(t._peerConnection.getSenders()[g?3:1],o.contentHint,o.streamType);let{scaleResolutionDownBy:gA}=o;yield t.singlePC.setScaleResolutionDownBy(t._peerConnection.getSenders()[g?3:1],gA,o.streamType)}i&&(t[g?"localAuxAudioTrack":"localMainAudioTrack"]=i),yield t.singlePC.setBandwidth({audio:((r=t.localMainAudioTrack)==null?void 0:r.profile.bitrate)||((n=t.localAuxAudioTrack)==null?void 0:n.profile.bitrate),bigVideo:(I=t.localMainVideoTrack)==null?void 0:I.profile.bitrate,smallVideo:(u=(C=t.localMainVideoTrack)==null?void 0:C.small)==null?void 0:u.bitrate,auxVideo:(R=t.localAuxVideoTrack)==null?void 0:R.profile.bitrate}),t.sendMediaSettings(),(t._room.preferHW||(M=t._room.scheduleResult.config)!=null&&M.preferHW)&&o&&o.profile.width*o.profile.height>=921600&&t.singlePC.useHWEncoder(!0,g?7:2);let H=new URLSearchParams(location.search).get("profileLevelId");H&&t.singlePC.setProfileLevelId(H)})()}))}publishByTransceiver(A){let{localAudioTrack:e,localVideoTrack:t,smallTrack:i,isAuxiliary:o}=A;if(!_a())return;this._log.info("publish by transceiver");let g=t==null?void 0:t.outMediaTrack,r=e==null?void 0:e.outMediaTrack,n=this._peerConnection.getTransceivers(),I=[],C=[],u=(M,L,H)=>{var gA;let EA=n[L].sender.replaceTrack(H);C.push(L),(gA=this.singlePC)!=null&&gA.enableInsertableStreams&&EA.then((()=>this.createEncodedStreams(n[L].sender,M))),this.initSenderTransform(n[L].sender,M),I.push(EA)};r&&u(e.mediaType,0,r),g&&u(t.mediaType,o?3:1,g),t!=null&&t.small&&I.push(this.publishSmall(this._room.videoManager.smallMode,t));let R=this.singlePC.setTransceiverDirection(Wt.SENDONLY,C);return I.push(R),Promise.all(I)}getTrackByMediaType(A){switch(A){case 1:return this.localMainAudioTrack||this._room.localMainAudioTrack;case 4:case 8:return this.localMainVideoTrack||this._room.localMainVideoTrack;case 2:return this.localAuxVideoTrack||this._room.localAuxVideoTrack;default:return null}}createEncodedStreams(A,e){var t,i;if(this.singlePC.insertableStreamsAbortMap.has(A))return;let o=A.createEncodedStreams(),g=new AbortController;(t=this.singlePC)==null||t.addAbortController(A,g),((i=this.getTrackByMediaType(e))!=null&&i.enableEncodeFrame?o.readable.pipeThrough(new TransformStream({transform:(r,n)=>{var I,C;let u=this.getTrackByMediaType(e);if(!u||!u.encodeFrame)return n.enqueue(r);u.isAudio?n.enqueue(u.enableEncodeFrame?u.encodeFrame(r):r):n.enqueue((I=this.singlePC)!=null&&I.isUsingH264||(C=this.singlePC)!=null&&C.isUsingH265?u.encodeFrame(r,e===8):r)}}),g):o.readable).pipeTo(o.writable,g).catch((r=>{this._log.debug("encoded stream error",r),r!=="destroy"&&this._log.warn(r)}))}initSenderTransform(A,e){if(!(this._peerConnection&&this.singlePC&&this.singlePC.scriptTransformWorker&&Jy))return;let t=e!==2,i=e===8;A.transform||(A.transform=new RTCRtpScriptTransform(this.singlePC.scriptTransformWorker,{isReceiver:!1,isAudio:e===1,isMain:t,isSmall:i}))}enableSmall(A){return X(this,null,(function*(){A?yield this.publishSmall(this._room.videoManager.smallMode):yield this.unpublishSmall()}))}publishSmall(A){return X(this,arguments,(function(e){var t=this;let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.localMainVideoTrack;return(function*(){var o;if(!t.singlePC)return;if(e==="canvas"&&!Ly())return void t._log.warn("canvas mode small stream is not supported");let g=t._peerConnection.getTransceivers(),{sender:r}=g[2],n=yield t.doPublishSmall(e,i),I=e==="canvas"?524700:524701;ee.addSuccessEvent({key:I}),n?((o=t.singlePC)!=null&&o.enableInsertableStreams&&t.createEncodedStreams(r,8),t.initSenderTransform(r,8),yield t.singlePC.setTransceiverDirection(Wt.SENDONLY,[2]),t.updateMediaSettings(),yield t.doPublishChange(),r.track&&(t._blackSmallVideoDetectionId=xu.start({track:r.track,room:t._room,isUplink:!0,userId:t.userId,onBlack:()=>{t._log.warn("small video is black");let C=e==="canvas"?524700:524701;ee.addFailedEvent({key:C,error:10002}),xu.stop(t._blackSmallVideoDetectionId),t._blackSmallVideoDetectionId=void 0}}))):ee.addFailedEvent({key:I,error:10001})})()}))}doPublishSmall(A){return X(this,arguments,(function(e){var t=this;let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.localMainVideoTrack;return(function*(){if(!t.singlePC)return null;t._log.info("publish small",e);let o=t._peerConnection.getTransceivers(),{sender:g}=o[2];if(e==="canvas"&&t._room.videoManager.smallTrack)return yield g.replaceTrack(t._room.videoManager.smallTrack),"canvas";if(e==="api"&&i!=null&&i.outMediaTrack&&i!=null&&i.small){yield g.replaceTrack(i==null?void 0:i.outMediaTrack);let r=g.getParameters(),n=eu(i==null?void 0:i.profile,i==null?void 0:i.small);return t._log.info("small scaleResolutionDownBy",n),r.encodings[0].scaleResolutionDownBy=n,g.setParameters(r),"api"}return t._log.warn("small track can not be enabled, smallMode: ".concat(t._room.videoManager.smallMode,", smallTrack: ").concat(!!t._room.videoManager.smallTrack,", bigVideoTrack: ").concat(!(i==null||!i.outMediaTrack))),null})()}))}unpublishSmall(){return X(this,null,(function*(){this.singlePC&&(this._log.info("unpublish small"),yield this._peerConnection.getTransceivers()[2].sender.replaceTrack(null),yield this.singlePC.setTransceiverDirection(Wt.INACTIVE,[2]),this.updateMediaSettings(),yield this.doPublishChange(),xu.stop(this._blackSmallVideoDetectionId),this._blackSmallVideoDetectionId=void 0)}))}installTrackMuteEvents(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];e.forEach((i=>{i&&(i==null||i.on("mute",this.sendMutedFlag,this),i==null||i.on("unmute",this.sendMutedFlag,this))}))}uninstallTrackMuteEvents(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];e.forEach((i=>{i&&(i==null||i.off("mute",this.sendMutedFlag,this),i==null||i.off("unmute",this.sendMutedFlag,this))}))}unpublish(A){return X(this,arguments,(function(e){var t=this;let{localAudioTrack:i,localVideoTrack:o}=e;return(function*(){var g;yield(g=t.singlePC)==null?void 0:g.waitForPeerConnectionConnected();let r=o&&o===t.localAuxVideoTrack||i&&i===t.localAuxAudioTrack,n=o==null?void 0:o.outMediaTrack,I=t._peerConnection.getSenders(),C=[];i&&(r?t.localAuxAudioTrack=null:t.localMainAudioTrack=null,!t.localMainAudioTrack&&!t.localAuxAudioTrack&&(yield I[0].replaceTrack(null),C.push(0))),n&&(r?(yield I[3].replaceTrack(null),t.localAuxVideoTrack=null,t._mediaSettings=tt(le({},t._mediaSettings),{auxVideoBps:0,auxVideoFps:0,auxVideoWidth:0,auxVideoHeight:0}),C.push(3)):(yield I[1].replaceTrack(null),yield I[2].replaceTrack(null),t.localMainVideoTrack=null,t._mediaSettings=tt(le({},t._mediaSettings),{videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0}),C.push(1,2))),t.isMainStreamPublished||t.isAuxStreamPublished?(yield t.singlePC.setTransceiverDirection(Wt.INACTIVE,C),yield t.doPublishChange(!1)):yield t.doUnpublish(),t.uninstallTrackMuteEvents(i,o),o==null||o.emit("connection-state-changed",{prevState:t._currentState,state:"DISCONNECTED"})})()}))}doPublishChange(){let A=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];return X(this,null,(function*(){let e={state:this._room.publishState,constraintConfig:this._mediaSettings},t=yield this._signalChannel.sendWaitForResponseWithRetry({command:Hx,data:e,responseCommand:ut.PUBLISH_STATE_CHANGE_RESULT,enableLog:A,retries:3});this.checkPublishResultCode(t.data.code,t.data.message)}))}doUnpublish(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return this._signalChannel.sendWaitForResponse({command:PJ,commandDesc:"unpublish",responseCommand:ut.UNPUBLISH_RESULT,enableLog:A}).catch((e=>{if(e.getCode()===OA.API_CALL_TIMEOUT||e.getCode()===OA.API_CALL_ABORTED)return Promise.resolve();throw e}))}updateMediaSettings(){var A,e;this._mediaSettings.videoCodec=((A=this.singlePC)==null?void 0:A.videoCodec)||"h264",this._mediaSettings.videoDecCodec=((e=this.singlePC)==null?void 0:e.downlinkVideoCodec)||"h264";let t=this._publishingLocalAudioTrack||this.localMainAudioTrack||this.localAuxAudioTrack,{localMainVideoTrack:i,localAuxVideoTrack:o}=this;if(this._publishingLocalVideoTrack&&(this._isPublishingAux?o=this._publishingLocalVideoTrack:i=this._publishingLocalVideoTrack),cc){if(t&&t.outMediaTrack){let g=t.outMediaTrack.getSettings();this._mediaSettings.audioChannel=g.channelCount||1,this._mediaSettings.audioBps=1e3*t.profile.bitrate,this._mediaSettings.audioFs=g.sampleRate||0}if(i&&i.outMediaTrack){let g=i.outMediaTrack.getSettings(),{scaleResolutionDownBy:r}=i;this._mediaSettings.videoWidth=(g.width||0)/r||0,this._mediaSettings.videoHeight=(g.height||0)/r||0,this._mediaSettings.videoFps=g.frameRate||0,this._mediaSettings.videoBps=1e3*i.profile.bitrate,i.small&&(this._mediaSettings.smallVideoWidth=i.small.width,this._mediaSettings.smallVideoHeight=i.small.height,this._mediaSettings.smallVideoFps=i.small.frameRate,this._mediaSettings.smallVideoBps=1e3*i.small.bitrate)}if(o&&o.outMediaTrack){let g=o.outMediaTrack.getSettings(),{scaleResolutionDownBy:r}=o;this._mediaSettings.auxVideoWidth=(g.width||0)/r||0,this._mediaSettings.auxVideoHeight=(g.height||0)/r||0,this._mediaSettings.auxVideoFps=g.frameRate||0,this._mediaSettings.auxVideoBps=1e3*o.profile.bitrate}}else t&&t.outMediaTrack&&(this._mediaSettings.audioChannel=t.profile.channelCount,this._mediaSettings.audioBps=1e3*t.profile.bitrate,this._mediaSettings.audioFs=t.profile.sampleRate),i&&i.outMediaTrack&&(this._mediaSettings.videoWidth=i.profile.width,this._mediaSettings.videoHeight=i.profile.height,this._mediaSettings.videoFps=i.profile.frameRate,this._mediaSettings.videoBps=1e3*i.profile.bitrate);this._log.info("updateMediaSettings: ".concat(JSON.stringify(this._mediaSettings)))}sendMediaSettings(){this.updateMediaSettings(),this._signalChannel.sendWaitForResponse({command:VJ,data:this._mediaSettings,responseCommand:ut.UPDATE_CONSTRAINT_CONFIG_RES}).then((A=>{A.data.code!==0&&this._log.warn(A.data.message)})).catch((()=>{}))}addTrack(A){return X(this,null,(function*(){if(!this._peerConnection)return;let e=A===this.localAuxAudioTrack||A===this.localAuxVideoTrack;this._log.info("is adding ".concat(A.kind," track to current published local ").concat(e?V.AUXILIARY:V.MAIN," stream")),Cc()&&(yield this.addTrackByTransceiver(A,e))}))}addTrackByTransceiver(A,e){return X(this,null,(function*(){var t;if(!A.mediaTrack)return;let i=this._peerConnection.getTransceivers();if(A.kind===V.AUDIO)yield i[0].sender.replaceTrack(A.outMediaTrack);else{let o=e?3:1;yield i[o].sender.replaceTrack(A.outMediaTrack),o===1&&(t=this.localMainVideoTrack)!=null&&t.small&&this._room.videoManager.smallTrack&&(yield i[2].sender.replaceTrack(this._room.videoManager.smallTrack)),i[o].direction===Wt.INACTIVE&&(yield this.singlePC.setTransceiverDirection(Wt.SENDONLY,[o]))}this.updateMediaSettings(),yield this.doPublishChange()}))}removeTrack(A){return X(this,null,(function*(){if(!this._peerConnection)return;let e=A===this.localAuxAudioTrack||A===this.localAuxVideoTrack;this._log.info("is removing ".concat(A.kind," track from current published local ").concat(e?V.AUXILIARY:V.MAIN," stream")),Cc()&&(yield this.removeTrackByTransceiver(A,e))}))}removeTrackByTransceiver(A,e){return X(this,null,(function*(){if(!A.mediaTrack)return;let t=this._peerConnection.getTransceivers();if(A.kind===V.AUDIO)yield t[0].sender.replaceTrack(null);else{let i=e?3:1;yield t[i].sender.replaceTrack(null),i===1&&this._room.videoManager.hasSmall&&(yield t[2].sender.replaceTrack(null)),yield this.singlePC.setTransceiverDirection(Wt.INACTIVE,[i])}this.updateMediaSettings(),yield this.doPublishChange()}))}replaceTrack(A){return X(this,null,(function*(){var e;let t=(e=this._peerConnection)==null?void 0:e.getSenders(),i=A.outMediaTrack||A.mediaTrack;if(!t||t.length===0||!i||t.find((g=>g.track===i)))return!1;let o=A.mediaType===2||A===this.localAuxAudioTrack||A===this.localAuxVideoTrack;return this._log.info("is replacing ".concat(i.kind," track ").concat(i.id," ").concat(i.label," on ").concat(o?V.AUXILIARY:V.MAIN," stream")),i.kind===V.AUDIO&&t[0]&&(yield t[0].replaceTrack(i)),i.kind===V.VIDEO&&(!o&&t[1]&&(yield t[1].replaceTrack(i)),o&&t[3]&&(yield t[3].replaceTrack(i))),!0}))}setBandwidth(A){return X(this,arguments,(function(e){var t=this;let{bandwidth:i,type:o,videoType:g}=e;return(function*(){if(t.singlePC){let r={};o===V.AUDIO?r.audio=i:g==="big"?r.bigVideo=i:g==="small"?r.smallVideo=i:r.auxVideo=i,yield t.singlePC.setBandwidth(r)}})()}))}sendMutedFlag(A){A===this.localAuxAudioTrack||A===this.localAuxVideoTrack||(this._log.info("send muted state: ".concat(JSON.stringify(this._room.muteState))),this._signalChannel.sendWaitForResponseWithRetry({command:Kx,responseCommand:ut.MUTE_RESULT,data:this._room.muteState,retries:3}).catch((()=>{})))}handleConnectionStateChange(A){A.state==="CONNECTED"&&(this.localMainVideoTrack||this._publishingLocalVideoTrack&&!this._isPublishingAux)&&N.emit(v.SEND_FIRST_VIDEO_FRAME,{room:this._room})}getVideoTrackId(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:V.VIDEO;if(this._peerConnection){let e=this._peerConnection.getSenders();if(A===V.AUXILIARY&&e[3]&&e[3].track)return e[3].track.id;if(A===V.VIDEO&&e[1]&&e[1].track)return e[1].track.id}if(this.localMainVideoTrack&&A===V.VIDEO){let e=this.localMainVideoTrack.mediaTrack;if(e)return e.id}if(this.localAuxVideoTrack&&A===V.AUXILIARY){let e=this.localAuxVideoTrack.mediaTrack;if(e)return e.id}return""}getSSRC(){return this.ssrc}checkPublishResultCode(A,e){if(A!==0)throw A===Pp?(this._log.error(kr.NOT_SUPPORTED_H264ENCODE),new oe({code:OA.NOT_SUPPORTED_H264,message:nt({key:$e.NOT_SUPPORTED_H264ENCODE})})):new oe({code:OA.UNKNOWN,message:nt({key:$e.SIGNAL_RESPONSE_FAILED,data:{signalResponse:ut.PUBLISH_RESULT,code:A,message:e}})})}onSinglePCReconnected(){return X(this,null,(function*(){this.isMainStreamPublished&&(this._log.warn("republish main stream"),yield this.publish({localAudioTrack:this.localMainAudioTrack,localVideoTrack:this.localMainVideoTrack,isAuxiliary:!1})),this.isAuxStreamPublished&&(this._log.warn("republish aux stream"),yield this.publish({localAudioTrack:this.localAuxAudioTrack,localVideoTrack:this.localAuxVideoTrack,isAuxiliary:!0}))}))}};ne([Mu((A=>{let{localVideoTrack:e}=A;e==null||delete e.retryEncodeFailed}))],BK.prototype,"unpublish");var CK=(A=>(A[A.audio=1]="audio",A[A.bigVideo=2]="bigVideo",A[A.smallVideo=3]="smallVideo",A[A.auxVideo=4]="auxVideo",A))(CK||{}),QK=BK;function cK(A){return Object.keys(A).filter((e=>A[e]))}var VT=class extends EK{constructor(A){super(tt(le({},A),{isUplink:!1})),l(this,"_flag",0),l(this,"isRobot",!1),l(this,"role","anchor"),l(this,"remoteAudioTrack"),l(this,"remoteVideoTrack"),l(this,"remoteAuxiliaryTrack"),l(this,"ssrc",{audio:0,video:0,videoRtx:0,auxiliary:0,auxiliaryRtx:0}),l(this,"jitterBufferTimeoutId",-1),l(this,"_videoCodec"),l(this,"pipSyncManager"),this.flag=A.flag,this.isRobot=A.isRobot||!1,this.remoteAudioTrack=new wT(this._room,this),this.remoteVideoTrack=new OG(this._room,this),this.remoteAuxiliaryTrack=new ex(this._room,this),this.pipSyncManager=new Zx({log:this._log,remoteVideoTrack:this.remoteVideoTrack,remoteAudioTrack:this.remoteAudioTrack}),this.initialize()}get videoCodec(){var A;return this._videoCodec||((A=this.singlePC)==null?void 0:A.downlinkVideoCodec)||"h264"}set videoCodec(A){this._videoCodec=A}get subscribeState(){return{audio:this.remoteAudioTrack.isSubscribed||this.remoteAudioTrack.isSubscribing,video:this.remoteVideoTrack.isBig&&(this.remoteVideoTrack.isSubscribed||this.remoteVideoTrack.isSubscribing),smallVideo:this.remoteVideoTrack.isSmall&&(this.remoteVideoTrack.isSubscribed||this.remoteVideoTrack.isSubscribing),auxiliary:this.remoteAuxiliaryTrack.isSubscribed||this.remoteAuxiliaryTrack.isSubscribing}}get muteState(){return dB(this.flag,this.userId)}get flag(){return this._flag}set flag(A){var e,t,i;A!==this._flag&&(this._flag=A,(e=this.remoteAudioTrack)==null||e.onFlagChanged(),(t=this.remoteVideoTrack)==null||t.onFlagChanged(),(i=this.remoteAuxiliaryTrack)==null||i.onFlagChanged())}get hasMainStream(){return this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall}get hasAuxStream(){return this.muteState.hasAuxiliary}get isMainStreamSubscribed(){return(this.subscribeState.audio||this.subscribeState.video||this.subscribeState.smallVideo)&&(this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall)}get isAuxStreamSubscribed(){return this.subscribeState.auxiliary&&this.muteState.hasAuxiliary}get isSmallStreamSubscribed(){return this.subscribeState.smallVideo&&this.muteState.hasSmall}get isBigStreamSubscribed(){return this.subscribeState.video&&this.muteState.hasVideo}isStreamUnpublished(A){return A===V.MAIN?!this.muteState.hasAudio&&!this.muteState.hasVideo:!this.muteState.hasAuxiliary}initialize(){this.installEvents()}close(A){clearTimeout(this.jitterBufferTimeoutId),super.close(A),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.remoteAudioTrack.close(),this.remoteVideoTrack.close(),this.remoteAuxiliaryTrack.close(),this.pipSyncManager.destroy(),this.uninstallEvents(),this.removeDownlink()}installEvents(){this.singlePC&&(this.listeners("track").includes(this.onTrack)||this.singlePC.on("track",this.onTrack,this),this.listeners("spc-reconnected").includes(this.onSinglePCReconnected)||this.singlePC.on("spc-reconnected",this.onSinglePCReconnected,this),this.remoteVideoTrack.on("decode-failed",this.onDecodeFailed,this))}uninstallEvents(){this.singlePC&&(this.singlePC.off("track",this.onTrack,this),this.singlePC.off("spc-reconnected",this.onSinglePCReconnected,this),this.remoteVideoTrack.off("decode-failed",this.onDecodeFailed,this))}emitConnectionStateChangedEvent(A){var e,t;let i=this._currentState,o=super.emitConnectionStateChangedEvent(A);return o&&i!==A&&((e=this.remoteVideoTrack)==null||e.emit("connection-state-changed",{prevState:i,state:A}),(t=this.remoteAuxiliaryTrack)==null||t.emit("connection-state-changed",{prevState:i,state:A})),o}onTrack(A){var e,t;let i=A.streams[0],{track:o,receiver:g}=A;if(!i.id.includes(this.tinyId))return;let r=i.id.includes("aux")?"auxiliary":"main";this._log.debug("ontrack ".concat(r," ").concat(o.kind));let n=V.AUDIO;o.kind===V.VIDEO&&(n=r===V.MAIN?V.VIDEO:V.AUXILIARY);let I=this.remoteAudioTrack;n===V.VIDEO?I=this.remoteVideoTrack:n===V.AUXILIARY&&(I=this.remoteAuxiliaryTrack),(e=this.singlePC)==null||e.receiverRemoteTrackMap.set(g,I),(t=this.singlePC)!=null&&t.scriptTransformWorker&&this.initReceiverTransform(g,r,o.kind===V.AUDIO),this.singlePC.enableInsertableStreams&&this.createEncodedStreams(g),I.setInputMediaStreamTrack(o)}createEncodedStreams(A){if(!this.singlePC.insertableStreamsAbortMap.has(A)){let e=A.createEncodedStreams(),t=new AbortController,i={abortController:t,enqueue:o=>{var g,r,n;let I=(g=this.singlePC)==null?void 0:g.receiverRemoteTrackMap.get(A);return I&&(I.kind!=="video"||(r=this.singlePC)!=null&&r.isUsingH264||(n=this.singlePC)!=null&&n.isUsingH265)?I.decodeFrame(o):o}};e.readable.pipeThrough(new TransformStream({transform:(o,g)=>{let r=i.enqueue(o);r&&g.enqueue(r)}})).pipeTo(e.writable,t).catch((o=>{o!=="destroy"&&this._log.warn(o)})),this.singlePC.addAbortController(A,t)}}initReceiverTransform(A,e,t){!this._peerConnection||!this.singlePC||!this.singlePC.scriptTransformWorker||A.transform||(A.transform=new RTCRtpScriptTransform(this.singlePC.scriptTransformWorker,{isReceiver:!0,isAudio:t,userId:this.userId,streamType:e}))}subscribe(A,e){return X(this,null,(function*(){var t,i;try{let o=!0;if(this._log.info("subscribe ".concat(e," ").concat(cK(A))),this.hasSSRC){let n="subscribe_change";Object.values(A).find((I=>I===!0))||(n="unsubscribe"),yield this.sendSubscription(n,A)}else{if(yield this._room.switchRoomSubedReq,(t=this.singlePC)!=null&&t.autoSubscribedUserMap.size){let n=this.singlePC.autoSubscribedUserMap.get(this.userId);if(n){this.singlePC.autoSubscribedUserMap.delete(this.userId);let I=(i=this.singlePC.autoSubscribedSsrcGroups.get(this._room.roomId))==null?void 0:i[n.groupIndex];I&&(this.ssrc={audio:I.audioSsrc,video:I.bigVideoSsrc,videoRtx:I.bigVideoRtxSsrc,auxiliary:I.auxVideoSsrc,auxiliaryRtx:I.auxVideoRtxSsrc},o=!1)}}yield this.doSubscribe(A,o),this.checkTrackEnded(A)}let{user:g,mediaTrack:r}=this.remoteVideoTrack;A.smallVideo&&r?(ee.addSuccessEvent({key:524702}),this._blackSmallVideoDetectionId=xu.start({track:r,isUplink:!1,room:this._room,userId:this.userId,onBlack:()=>{this._log.warn("small video is black, auto change to big"),this._room.changeType(!1,g),ee.addFailedEvent({key:524702}),xu.stop(this._blackSmallVideoDetectionId),this._blackSmallVideoDetectionId=void 0}})):(xu.stop(this._blackSmallVideoDetectionId),this._blackSmallVideoDetectionId=void 0)}catch(o){throw this._room.isJoined&&this.isStreamUnpublished(e)?(this._log.warn("".concat(o.message," ").concat(JSON.stringify(this.muteState))),new oe({code:OA.REMOTE_STREAM_NOT_EXIST,message:"remote user ".concat(this.userId," unpublished stream")})):o}}))}checkTrackEnded(A){var e,t,i;if((A.audio&&((e=this.remoteAudioTrack.mediaTrack)==null?void 0:e.readyState)==="ended"||A.video&&((t=this.remoteVideoTrack.mediaTrack)==null?void 0:t.readyState)==="ended"||A.auxiliary&&((i=this.remoteAuxiliaryTrack.mediaTrack)==null?void 0:i.readyState)==="ended")&&this.singlePC&&!this.singlePC.isReconnecting){if(this._log.warn("remote track ended start spc reconnect"),Fg&&Gr<92)return;this.singlePC.startReconnection()}}unsubscribe(A){return X(this,arguments,(function(e){var t=this;let{remoteTracks:i,streamType:o}=e;return(function*(){var g;if(o==="main"&&!t.isMainStreamSubscribed||o==="auxiliary"&&!t.isAuxStreamSubscribed)return void t._log.info("".concat(o," stream already unsubscribed"));let r=le({},t.subscribeState);i.forEach((I=>{switch(I.mediaType){case 1:r.audio=!1;break;case 4:r.video=!1;break;case 8:r.smallVideo=!1;break;case 2:r.auxiliary=!1}}));let n="subscribe_change";Object.values(r).find((I=>I===!0))||(n="unsubscribe"),t._log.info("".concat(n==="unsubscribe"?n:"subscribe"," ").concat(o," [").concat(cK(r),"]")),n==="unsubscribe"&&((g=t.singlePC)==null||g.removeDownlinkQueue.add(t.tinyId)),yield t.sendSubscription(n,r),o==="main"&&(xu.stop(t._blackSmallVideoDetectionId),t._blackSmallVideoDetectionId=void 0),n==="unsubscribe"&&(yield t.removeDownlink())})()}))}sendSubscription(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.subscribeState,t={srcTinyId:this.tinyId,srcUserId:this.userId},i=Ox,o=ut.UNSUBSCRIBE_RESULT;return A==="subscribe_change"&&(t={audio:e.audio,bigVideo:e.video,auxVideo:e.auxiliary,smallVideo:e.smallVideo,srcTinyId:this.tinyId},i=qx,o=ut.SUBSCRIBE_CHANGE_RESULT),this._signalChannel.sendWaitForResponseWithRetry({command:i,data:t,responseCommand:o,timeout:1e4,retries:3}).then((g=>{let{data:r}=g;if(r.code!==0){let n=new oe({code:r.code,message:nt({key:$e.ERROR_MESSAGE,data:{type:A,message:r.message}})});throw this._log.error(n),n}}))}getMainStreamVideoTrackId(){return this.remoteVideoTrack&&this.remoteVideoTrack.mediaTrack?this.remoteVideoTrack.mediaTrack.id:""}getAuxStreamVideoTrackId(){return this.remoteAuxiliaryTrack&&this.remoteAuxiliaryTrack.mediaTrack?this.remoteAuxiliaryTrack.mediaTrack.id:""}setDelay(A){let{audioDelay:e,videoDelay:t}=A;this.remoteAudioTrack.stat.end2EndDelay=e,this.remoteVideoTrack.stat.end2EndDelay=t}onSinglePCReconnected(){return X(this,null,(function*(){(this.ssrc.audio||this.ssrc.video||this.ssrc.auxiliary)&&(this._log.warn("resubscribe ".concat(JSON.stringify(this.subscribeState))),yield this.doSubscribe(this.subscribeState),this.remoteAudioTrack.checkDecodeResult(),this.remoteVideoTrack.checkDecodeResult(),this.remoteAuxiliaryTrack.checkDecodeResult())}))}get hasSSRC(){return this.ssrc.audio&&this.ssrc.video&&this.ssrc.auxiliary}doSubscribe(){return X(this,arguments,(function(){var A=this;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.subscribeState,t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return(function*(){if(A.singlePC){A.singlePC.addDownlinkQueue.add(A.tinyId),yield A.singlePC.waitForPeerConnectionConnected();try{if(t||!A.hasSSRC){let i={audioSsrc:vn(),bigVideoSsrc:vn(),bigVideoRtxSsrc:vn(),auxVideoSsrc:vn(),auxVideoRtxSsrc:vn()},{audioSsrc:o,bigVideoSsrc:g,bigVideoRtxSsrc:r,auxVideoSsrc:n,auxVideoRtxSsrc:I}=i;A.ssrc={audio:o,video:g,videoRtx:r,auxiliary:n,auxiliaryRtx:I},A.singlePC.addDownlinkQueue.delete(A.tinyId),yield A.singlePC.addDownlink({userId:A.userId,tinyId:A.tinyId,ssrc:A.ssrc});try{let C=yield A._signalChannel.sendWaitForResponseWithRetry({command:IP,responseCommand:ut.SPC_SUBSCRIBE_RESULT,data:{srcUserId:A.userId,srcTinyId:A.tinyId,audio:e.audio,bigVideo:e.video,auxVideo:e.auxiliary,smallVideo:e.smallVideo,customData:!1,ssrc:i},retries:3,retryTimeout:0});if(C.data.code!==0&&C.data.code!==-10036)throw new oe({code:C.data.code,message:C.data.message})}catch(C){throw yield A.removeDownlink(),C}return}A.singlePC.addDownlinkQueue.delete(A.tinyId),yield A.singlePC.addDownlink({userId:A.userId,tinyId:A.tinyId,ssrc:A.ssrc})}finally{if(!mG)return;let{main:i,aux:o}=A._room.jitterBufferDelay||{},{jitterDelay:g=i,jitterDelayAux:r=o}=A._room.scheduleResult.config||{};(Zt(g)||Zt(r))&&A.setJitterBufferDelay({mainDelay:g,auxDelay:r})}}})()}))}removeDownlink(){return X(this,null,(function*(){if(!this.singlePC)return;this.ssrc={audio:0,video:0,videoRtx:0,auxiliary:0,auxiliaryRtx:0},this.singlePC.removeDownlinkQueue.delete(this.tinyId);let A=this._room.scheduleResult.config;(A!=null&&A.jitterDelay||A!=null&&A.jitterDelayAux)&&this.setJitterBufferDelay({mainDelay:0,auxDelay:0}),yield this.singlePC.removeDownlink(this.userId)}))}setJitterBufferDelay(A){let{mainDelay:e,auxDelay:t}=A;if(!mG||!this.singlePC||!this._peerConnection||aa(e)&&aa(t))return Promise.resolve();this._log.info("set jitterBuffer main: ".concat(e," aux: ").concat(t));let i=this.singlePC.getReceiversByUserId(this.userId);return Zt(e)&&(this.remoteAudioTrack.jitterBufferDelay=e,this.remoteVideoTrack.jitterBufferDelay=e),Zt(t)&&(this.remoteAuxiliaryTrack.jitterBufferDelay=t,aa(e)&&(this.remoteAudioTrack.jitterBufferDelay=t)),new Promise((o=>{this.doSetJitterBufferDelay({mainDelay:e,auxDelay:t,receivers:i,resolve:o})}))}doSetJitterBufferDelay(A){let{mainDelay:e,auxDelay:t,receivers:i,resolve:o}=A;try{if(e===0&&t===0)return i.forEach((g=>g.jitterBufferTarget=0)),o();if(i.forEach((g=>{var r;let n=g.track===this.remoteAuxiliaryTrack.outMediaTrack||aa(e)&&g.track===this.remoteAudioTrack.outMediaTrack;if(n&&aa(t)||!n&&aa(e))return;let I=n?t||0:e,C=(g.jitterBufferTarget||0)+100;C>I||(g.jitterBufferTarget=C,this._log.debug("set ".concat(n?"aux ":"").concat((r=g==null?void 0:g.track)==null?void 0:r.kind," jitterBuffer delay ").concat(C," -> ").concat(I)))})),!i.find((g=>{let r=g.track===this.remoteAuxiliaryTrack.outMediaTrack?t||0:e;return g.jitterBufferTarget<r})))return this._log.info("set jitterBuffer main: ".concat(e," aux: ").concat(t," done")),o();this.jitterBufferTimeoutId=setTimeout((()=>{this.doSetJitterBufferDelay({mainDelay:e,auxDelay:t,receivers:i,resolve:o})}),1e3)}catch(g){this._log.warn("set jitterBuffer delay error: ".concat(g)),clearTimeout(this.jitterBufferTimeoutId),o()}}get audioReceiver(){var A;return((A=this.singlePC)==null?void 0:A.getReceiversByUserId(this.userId)[0])||null}onDecodeFailed(){this._room.downlinkVideoCodec==="h265"&&this._room.requestRemoteFallbackToH264()}};ne([vG(),Gi((A=>function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return new Promise(((o,g)=>{let r=n=>{this.off("closed",r),g(new oe({code:OA.API_CALL_ABORTED,message:nt({key:$e.CONNECTION_ABORTED,data:n})}))};this.on("closed",r),A.apply(this,t).then(o,g).finally((()=>{this.off("closed",r)}))}))}))],VT.prototype,"subscribe"),ne([vG()],VT.prototype,"unsubscribe"),ne([pc((()=>"jitter"))],VT.prototype,"setJitterBufferDelay");var HP=VT,OP=Mo(Ng()),hK=class bK extends OP.EventEmitter{constructor(e,t){super(),this.room=e,this.signalChannel=t,l(this,"log"),l(this,"cmdIdSeqMap",new Map),l(this,"messageMap",new Map),this.log=K.createLogger({parent:e.getLogger(),id:"cmm",userId:e.userId}),this.onReceiveMsg=this.onReceiveMsg.bind(this),t.on(ut.RECEIVE_CUSTOM_MSG,this.onReceiveMsg),this.room.on("peer-leave",(i=>{[...this.messageMap.keys()].forEach((o=>{o.split("_").slice(0,-1).join("_")===i&&this.messageMap.delete(o)}))}))}send(e){let{cmdId:t,data:i}=e,o=this.cmdIdSeqMap.get(t)||Math.floor(16383*Math.random()),g={cmdId:t,msg:btoa(String.fromCharCode(...new Uint8Array(i))),ordered:!0,reliable:!0,streamSeq:o};this.cmdIdSeqMap.set(t,o+1),this.signalChannel.send(EP,g),this.log.debug("send custom msg: ".concat(JSON.stringify(g)))}onReceiveMsg(e){let{data:t}=e.data,i=this.room.tinyIdToUserIdMap.get(t.srcTinyId);if(i){let o={userId:i,cmdId:t.cmdId,seq:t.streamSeq,data:Uint8Array.from(atob(t.msg),(g=>g.charCodeAt(0))).buffer};if(t.ordered){let g="".concat(i,"_").concat(o.cmdId),r=this.messageMap.get(g);if(r&&r.lastSeq!==0)if(Math.abs(r.lastSeq-o.seq)>bK.SEQ_INTERVAL)this.messageMap.set(g,{lastSeq:o.seq,cachedMessageMap:new Map}),this.emitMessage(o);else if(o.seq>r.lastSeq){if(o.seq===r.lastSeq+1)this.emitMessage(o);else if(!r.cachedMessageMap.has(o.seq)){let n=setTimeout((()=>this.emitMessage(o,!0)),5e3);r.cachedMessageMap.set(o.seq,{message:o,timeoutId:n})}}else this.log.debug("drop message ".concat(o.userId,"-").concat(o.cmdId,"-").concat(o.seq));else r||(r={lastSeq:0,cachedMessageMap:new Map},this.messageMap.set(g,r),setTimeout((()=>this.emitMessage(o,!0)),100)),r.cachedMessageMap.set(o.seq,{message:o})}else this.emit("message",o)}else{this.log.warn("receive msg from unknown user, wait peer-join tinyId: ".concat(t.srcTinyId));let o=g=>{g.tinyId===t.srcTinyId&&(this.room.off("peer-join",o),this.onReceiveMsg(e))};this.room.on("peer-join",o),ra(2e3).then((()=>this.room.off("peer-join",o)))}}emitMessage(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1];var i;let o=this.messageMap.get("".concat(e.userId,"_").concat(e.cmdId)),g=e;if(o){if(t){let n=[...o.cachedMessageMap.values()].sort(((I,C)=>I.message.seq-C.message.seq));n[0]&&(g=n[0].message)}o.lastSeq!==0&&g.seq-o.lastSeq>1&&this.log.debug("msg lost userId: ".concat(g.userId," seq: ").concat(o.lastSeq," -> ").concat(g.seq)),o.lastSeq=g.seq,clearTimeout((i=o.cachedMessageMap.get(g.seq))==null?void 0:i.timeoutId),o.cachedMessageMap.delete(g.seq)}this.log.debug("receive custom msg: ".concat(JSON.stringify(g))),this.emit("message",g);let r=o==null?void 0:o.cachedMessageMap.get(g.seq+1);r&&this.emitMessage(r.message)}};l(hK,"SEQ_INTERVAL",300);var qP=hK,{isString:lK,isUndefined:Ku,getNetworkType:PP,isEmpty:VP}=pn,kc=class extends NP{constructor(A){super(A),l(this,"_businessInfo"),l(this,"userManager"),l(this,"_version"),l(this,"_heartbeat",-1),l(this,"_lastHeartBeatTime",-1),l(this,"_stats"),l(this,"_joinTimeout",-1),l(this,"_firstPublishedList",null),l(this,"_joinReject",null),l(this,"_isRelayChanged",!1),l(this,"sdpSemantics"),l(this,"signalChannel",null),l(this,"uplinkConnection",null),l(this,"singlePC",null),l(this,"enableSPC",yi),l(this,"_changeBigSmallRecords",new Map),l(this,"networkQuality"),l(this,"_iceTransportPolicy"),l(this,"forceRelay",!1),l(this,"_turnServers",[]),l(this,"_iceServersFromJoin"),l(this,"_syncUserListInterval",-1),l(this,"_smallStreamConfig",{bitrate:100,frameRate:15,height:120,width:160}),l(this,"enableSEI",!1),l(this,"_enableAudioVolumeEvaluation",!1),l(this,"_audioVolumeIntervalId",0),l(this,"_enableMultiAuxStream",!1),l(this,"_pureAudioPushMode",!1),l(this,"_customMessageManager"),l(this,"preferHW",!1),l(this,"healthDetector"),l(this,"playoutDelay"),l(this,"jitterBufferDelay"),l(this,"_updateAudioLevelTaskId",-1),l(this,"switchRoomSubedReq"),l(this,"resolveSwitchRoomSubedReq"),l(this,"enableVolumeControlInIOS"),this._stats=new hP(this,this._log),this.userManager=new Eq(this.userId,this._log),this._version=ia,this.sdpSemantics=Ll,Ku(A.sdpSemantics)?kA.isUnifiedPlanDefault()&&(this.sdpSemantics=_l):this.sdpSemantics=A.sdpSemantics,this._log.info("sdpSemantics: ".concat(this.sdpSemantics,", netType: ").concat(PP())),A.iceTransportPolicy&&(this._iceTransportPolicy=A.iceTransportPolicy),this._enableMultiAuxStream=!Ku(A.enableMultiAuxStream)&&A.enableMultiAuxStream,this.enableSEI=A.enableSEI&&yi,!Ku(A.enableSPC)&&yi&&(this.enableSPC=A.enableSPC),this.preferHW=!!A.preferHW,this.enableVolumeControlInIOS=A.enableVolumeControlInIOS,this._initBusinessInfo(A),this.healthDetector=new LP(this)}get isMainStreamPublished(){var A;return!((A=this.uplinkConnection)==null||!A.isMainStreamPublished)}get isMainAudioPublished(){var A;return!((A=this.uplinkConnection)==null||!A.localMainAudioTrack)}get isAuxStreamPublished(){var A;return!((A=this.uplinkConnection)==null||!A.isAuxStreamPublished)}get hasAuxStream(){return[...this.remotePublishedUserMap.values()].findIndex((A=>A.muteState.hasAuxiliary))>=0}get userMap(){return this.userManager.userMap}get remotePublishedUserMap(){return this.userManager.remotePublishedUserMap}get tinyIdToUserIdMap(){return new Map([...this.userMap.values()].map((A=>[A.tinyId,A.userId])))}get videoCodec(){var A;return((A=this.singlePC)==null?void 0:A.videoCodec)||"h264"}get downlinkVideoCodec(){var A;return((A=this.singlePC)==null?void 0:A.downlinkVideoCodec)||"h264"}join(A,e,t){return X(this,null,(function*(){return this.userManager.mySelfId=this.userId,this.userManager.on("1",(i=>{this.emit("peer-join",i)})),this.userManager.on("2",(i=>{this.closeDownLinkConnection(i,"remote user exitRoom"),this.emit("peer-leave",i)})),this.userManager.on("3",this.createDownlinkConnection,this),this.userManager.on("5",this.closeDownLinkConnection,this),this.userManager.on("6",(i=>{var o=Av(i,[]);N.emit(v.REMOTE_PUBLISH_STATE_CHANGED,le({room:this},o)),this.emit("remote-publish-state-changed",le({},o))})),this.joinParams=A,new Promise(((i,o)=>X(this,null,(function*(){var g,r;this._joinReject=o;try{this.checkDestroy();try{yield Promise.all([this.initialize(),this.initSinglePC()])}catch(I){if(!(I instanceof oe&&I.code===OA.SPC_INITIALIZED_FAILED))return o(I);(g=this.signalChannel)==null||g.destroy(),yield this.initialize()}let n=it();yield this.doJoin(A,(r=this.singlePC)==null?void 0:r.clientAbility),ee.addSuccessEvent({key:521708,cost:it()-n}),i(),this._firstPublishedList&&this.onPublishedUserList({data:{userList:this._firstPublishedList}})}catch(n){ee.addFailedEvent({key:521708,error:n}),o(n)}this._joinReject=null}))))}))}initSinglePC(){return X(this,null,(function*(){if(this.enableSPC&&!this.singlePC){this.singlePC=new Mc({signalChannel:this.signalChannel,room:this,enableCustomMessage:!1}),this.singlePC.on("sei-message",(A=>this.emit("sei-message",A))),this.singlePC.on("dump",(A=>this.emit("dump",A))),this.singlePC.once("error",(()=>this.fallbackToMPC()));try{return yield this.singlePC.initialize()}catch(A){throw this.fallbackToMPC(),new oe({code:OA.SPC_INITIALIZED_FAILED,message:A==null?void 0:A.message})}}}))}doJoin(A,e){return new Promise(((t,i)=>X(this,null,(function*(){var o,g,r;A.privateMapKey&&(this.privateMapKey=A.privateMapKey),A.latencyLevel&&(this.latencyLevel=A.latencyLevel),this.signalChannel.once(JT,(C=>{this.clearJoinTimeout(),N.emit(v.JOIN_SIGNAL_CONNECTION_END,{room:this,error:C}),i(C)})),fi((g=(o=this.scheduleResult)==null?void 0:o.config)==null?void 0:g.singlePC)&&yi&&(this.enableSPC=this.scheduleResult.config.singlePC),this.keyPointManager.setConnectionType(this.singlePC?1:2),e&&this.playoutDelay&&(e.playoutDelay=this.playoutDelay);let n={roomId:String(A.roomId||A.strRoomId),useStringRoomId:this.useStringRoomId,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel,trtcRole:A.role,trtcScene:this.scene==="live"?2:1,sdpSemantics:this.sdpSemantics,version:this._version,ua:navigator&&navigator.userAgent||"",terminalType:d(),netType:Pl(),bussinessInfo:this._businessInfo,ability:e,sdkType:this._sdkType,userSig:this.userSig,receiveMix:!0,isChorus:!!this.enableChorus,enableNtpAudioFrame:!!this.enableChorus&&Ty()};this._log.debug("join room signal data: ".concat(JSON.stringify(n)));let I=5e3;(r=this.scheduleResult.config)!=null&&r.enterRoomTimeout&&this.scheduleResult.config.enterRoomTimeout>=1&&(I=1e3*this.scheduleResult.config.enterRoomTimeout),this._joinTimeout=window.setTimeout((()=>{i(new oe({code:OA.JOIN_ROOM_FAILED,message:nt({key:$e.JOIN_ROOM_TIMEOUT})}))}),I),N.emit(v.JOIN_SEND_CMD,{room:this}),this.signalChannel.send(this.singlePC?rP:Hq,n),this.signalChannel.once(ut.JOIN_ROOM_RESULT,(C=>X(this,null,(function*(){this.clearJoinTimeout();let{code:u,message:R,data:M,tinyId:L}=C.data;N.emit(v.JOIN_RECEIVED_CMD_RES,{room:this,code:u}),u===0?(this._log.info("Join room success, start heartbeat"),L&&(this.tinyId=L),this.startHeartbeat(),this.syncUserList(),this.startSyncUserListInterval(),this._firstPublishedList=M.publishers,this._iceServersFromJoin=M.iceServer?[M.iceServer]:[],this.singlePC&&this.singlePC.setIceServers(this.getIceServers()).then((()=>{var H;(H=this.singlePC)==null||H.connect(tt(le({},M.ability),{useVp8:M.ability.useVp8||!!A.useVp8,useH265:M.ability.useH265&&!!A.useH265})).catch((()=>{}))})),t()):(this._log.error("Join room failed result: ".concat(u," error: ").concat(R)),i(new oe({code:OA.JOIN_ROOM_FAILED,extraCode:u,message:nt({key:$e.JOIN_ROOM_FAILED,data:{error:R,code:u}})})))}))))}))))}reJoin(){return X(this,null,(function*(){if(this.isJoined)try{this._log.warn("reJoin pending: ".concat(this.joinParams.roomId));let A,e=[];if(this.singlePC&&(this.singlePC.close(),this.singlePC=null,e.push(this.initSinglePC().then((t=>(A=t,t))))),this.signalChannel&&(this.signalChannel.close(),e.push(this.signalChannel.connect())),yield Promise.all(e),yield this.doJoin(tt(le({},this.joinParams),{role:this.role==="anchor"?20:21,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel}),A),this._log.warn("reJoin success"),wi.logSuccessEvent({userId:this.userId,eventType:ga.REJOIN}),this.singlePC){let t=i=>{var o;i.state==="CONNECTED"&&((o=this.singlePC)==null||o.off(Ju.CONNECTION_STATE_CHANGED,t),this.uplinkConnection instanceof QK&&(this.uplinkConnection.installEvents(),this.uplinkConnection.onSinglePCReconnected()),this.remotePublishedUserMap.forEach((g=>{g.installEvents(),g.onSinglePCReconnected()})))};this.singlePC.on(Ju.CONNECTION_STATE_CHANGED,t),this.checkConnectionsToReconnect(),this.uplinkConnection instanceof PT&&!this.uplinkConnection.getIsReconnecting()&&this.uplinkConnection.startReconnection()}}catch(A){this._log.warn("reJoin fail ".concat(A)),this.reset(),wi.logFailedEvent({userId:this.userId,eventType:ga.REJOIN,error:A}),this.emit("error",new oe({code:OA.JOIN_ROOM_FAILED,message:nt({key:$e.REJOIN_ROOM_FAILED,data:{roomId:this.joinParams.roomId}})}))}else this._log.warn("reJoin abort")}))}initialize(){return X(this,null,(function*(){let A,{mainUrl:e,backupUrl:t}=this.getSignalChannelUrl(),i=this.signalChannel||(function(g){return[...KT.values()].find((n=>n.room.userId===g&&!n.room.isJoined))||null})(this.userId),o=!!(i&&i.isConnected&&i.keepAlive&&i.userId===this.userId&&i.room===this);return Array.isArray(this.scheduleResult.domains)&&this.scheduleResult.domains.length>0&&(A=this.scheduleResult.domains[0]),this._log.info("".concat(o?"reuse":"setup"," signal channel")),o?(i.url=e,i.backupUrl=t,i.room=this,this.signalChannel=i):(i&&i.close(),this.signalChannel=new Px({sdkAppId:this.sdkAppId,userId:this.userId,userSig:this.userSig,url:e,backupUrl:t,room:this,signalDomainWhenUnifiedProxy:this.proxy_unified?A:void 0}),this._customMessageManager=new qP(this,this.signalChannel),this._customMessageManager.on("message",(g=>{this.emit("custom-message",g)}))),this.networkQuality||(this.networkQuality=new zx({signalChannel:this.signalChannel,room:this}),this.networkQuality.on(zx.EVENT_NETWORK_QUALITY,(g=>{var r;this.emit("network-quality",g),(r=this.singlePC)==null||r.detectTCPAndUDP(g)}))),na(this,this.signalChannel).add(qJ,(g=>{N.emit(v.SIGNAL_CONNECTION_STATE_CHANGED,le({room:this},g)),this.emit("signal-connection-state-changed",g)})).add(Yq,(g=>{this.reset(),this.emit("error",g)})).add(ut.PEER_JOIN,(g=>{let{srcTinyId:r,userId:n,role:I}=g.data.data;this.userManager.addUser({userId:n,tinyId:r,role:I})})).add(ut.PEER_LEAVE,(g=>{let{userId:r,reason:n=0}=g.data.data;this.userManager.deleteUser(r,n)})).add(ut.UPDATE_REMOTE_MUTE_STAT,(g=>{this._lastHeartBeatTime>0&&Date.now()-this._lastHeartBeatTime>=1e4&&this.doHeartbeat(),this.onPublishedUserList(g.data)})).add(ut.CLIENT_BANNED,(g=>{let r=g.data.data,{reason:n}=r;if(wi.uploadEvent({log:"stat-banned:".concat(n),userId:this.userId}),n==="user_time_out")return this._log.warn("".concat(n," last heart beat time: ").concat(this._lastHeartBeatTime," interval: ").concat(Date.now()-this._lastHeartBeatTime,", visibility: ").concat(document.visibilityState)),void this.reJoin();this._log[n==="kick"?"error":"info"]("user was banned because of [".concat(n,"]")),this.reset(),this.emit("banned",{reason:n})})).add(ut.SEND_SWITCH_ROOM_SUBED_REQ,(g=>{if(!this.singlePC)return;let{subList:r}=g.data.data;this._log.info("auto subscribe ".concat(Na(r,{keysToInclude:["userId"]}))),r.forEach((n=>{this.singlePC.autoSubscribedUserMap.set(n.userId,n)})),this.resolveSwitchRoomSubedReq()})).add(ut.FALLBACK_CODEC,(g=>X(this,null,(function*(){var r,n,I,C,u;let R=g.data.data;((r=R.videoControlInfo)==null?void 0:r.enableH265Enc)===0&&((n=this.singlePC)==null?void 0:n.videoCodec)==="h265"&&(this._log.warn("fallback codec enableH265Enc: ".concat((I=R.videoControlInfo)==null?void 0:I.enableH265Enc)),ee.addCount({key:513e3}),yield(C=this.singlePC)==null?void 0:C.switchVideoEncoder("h264"),yield(u=this.uplinkConnection)==null?void 0:u.sendMediaSettings())})))),this.signalChannel.once(Jx,(g=>{this.tinyId=g.signalInfo.tinyId,N.emit(v.JOIN_SIGNAL_CONNECTION_END,{room:this})})),N.emit(v.JOIN_SIGNAL_CONNECTION_START,{room:this}),yield this.signalChannel.connect(),o&&N.emit(v.JOIN_SIGNAL_CONNECTION_END,{room:this}),o}))}setSignalChannel(A){this.signalChannel=A,A||Tg(this)}leave(){return X(this,null,(function*(){var A;try{yield this.doHeartbeat()}catch{}this._log.info("leave() => leaving room"),N.emit(v.LEAVE_SEND_CMD,{room:this}),(A=this.signalChannel)==null||A.send(Oq),this.switchRoomSubedReq=void 0}))}clearNetworkQuality(){this.networkQuality&&(this.networkQuality.stop(),delete this.networkQuality)}closeConnections(){this.remotePublishedUserMap.forEach((A=>{this.closeDownLinkConnection(A.userId,"you exitRoom")}))}clearJoinTimeout(){clearTimeout(this._joinTimeout),this._joinTimeout=-1}startHeartbeat(){this._heartbeat===-1&&(this._heartbeat=ti.run("ric",this.doHeartbeat.bind(this),{delay:2e3}),this.enableChorus&&this.startUpdateNTPTime())}stopHeartbeat(){this._heartbeat!==-1&&(this._log.info("stopHeartbeat"),ti.clearTask(this._heartbeat),this._heartbeat=-1,this._lastHeartBeatTime=-1)}doHeartbeat(){return X(this,null,(function*(){var A;let e=this.badCaseDetector.getMonitorFreeze(),t=yield this._stats.getStatsReport({uplinkConnection:this.uplinkConnection,downlinkConnections:this.remotePublishedUserMap,freezeMap:e});this.badCaseDetector.resetMonitor();let i=(A=this.signalChannel)!=null&&A.isConnected?(function(g){if(zy.has(g)){let r=zy.get(g).map((n=>({uint32_event_id:n.eventId,uint64_date:n.timestamp,str_userid:n.remoteUserId,uint32_param1:n.param1,uint32_param2:n.param2,uint32_video_stream_type:n.streamType})));return zy.delete(g),r}return[]})(this.userId):[],o=tt(le({str_sdk_version:Hp,uint64_datetime:new Date().getTime(),msg_user_info:{str_identifier:this.userId,uint64_tinyid:this.tinyId},msg_event_msg:i,str_acc_ip:this.getSignalInfo().relayIp,str_client_ip:this.getSignalInfo().clientIp},t),{msg_device_info:le({uint32_terminal_type:15,str_device_name:No(),str_os_version:"",uint32_net_type:Pl()},t.msg_device_info)});if(this.heartbeatReport=o,this.heartbeatCount++,N.emit(v.HEARTBEAT_REPORT,{room:this,report:o}),this.signalChannel){if(this.signalChannel.isConnected){this.signalChannel.send(qq,o);let g=Date.now();this._lastHeartBeatTime>0&&g-this._lastHeartBeatTime>1e4&&this._log.warn("heartbeat took ".concat(g-this._lastHeartBeatTime)),this._lastHeartBeatTime=g,this.signalChannel.isOnline||(this._log.warn("signal channel is not online"),this.signalChannel.startReconnection())}this.emit("heartbeat-report",tt(le({},o),{bytes_sent:this._stats.totalBytesSent+this.signalChannel.bytesSent,bytes_received:this._stats.totalBytesReceived+this.signalChannel.bytesReceived}))}!this._isRelayChanged&&this.isRelayMaybeFailed()&&(this.reJoin(),this._isRelayChanged=!0)}))}onPublishedUserList(A){if(!this.isJoined)return;let e=A.data.userList.filter((t=>t.flag!==CB)).map((t=>{let{userId:i,srcTinyId:o,flag:g}=t;i===this.userId&&(this.uplinkConnection&&(this.uplinkConnection.flag=g),this.localPublishFlag!==g&&(this.localPublishFlag=g,this.emit("local-publish-flag-changed",g)));let r=this.remotePublishedUserMap.get(i);return r&&this.checkSubscribeBigSmallVideo(r),{userId:i,tinyId:o,flag:g}}));A.data.mixRobotList.forEach((t=>{let{userId:i,srcTinyId:o,flag:g,mixUserList:r}=t;e.unshift({userId:i,tinyId:o,flag:g,isRobot:!0,mixUserList:r})})),A.data.fakeMixUser&&(A.data.fakeMixUser.tinyId=A.data.fakeMixUser.srcTinyId,e.push(A.data.fakeMixUser)),N.emit(v.RECEIVED_PUBLISHED_USER_LIST,{room:this,publishedUserList:e}),e.find((t=>t.userId===this.userId))||(this.localPublishFlag=0,this.emit("local-publish-flag-changed",0)),this.userManager.setRemotePublishedUserList(e)}closeUplink(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"you unpublished";this.uplinkConnection&&(this.localTracks.size>0&&this.uplinkConnection.doUnpublish().catch((()=>{})),this.uplinkConnection.close(A),this.uplinkConnection instanceof PT&&(this.uplinkConnection=null)),this.localTracks.forEach((e=>e.unpublish())),this.localTracks.clear()}createDownlinkConnection(A){let{userId:e,tinyId:t,flag:i,isRobot:o}=A,g=new(this.singlePC?HP:jx)({userId:e,tinyId:t,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI,flag:i,isRobot:o});this.userManager.addRemotePublishedUser(g),this.installDownlinkEvents(g,e),this.emit("remote-published",g)}closeDownLinkConnection(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"remote user unpublished",t=this.remotePublishedUserMap.get(A);t&&(t.close(e),this.emit("remote-unpublished",t))}installDownlinkEvents(A,e){A.on("error",(t=>{let i=t.getCode();i!==OA.ICE_TRANSPORT_ERROR&&(i===OA.DOWNLINK_RECONNECTION_FAILED&&this.closeDownLinkConnection(e),this.emit("error",t))})),A.on("connection-state-changed",(t=>{this.emit("media-connection-state-changed",tt(le({},t),{userId:A.userId}))})),A.on("firewall-restriction",(()=>{this.emit("firewall-restriction")}))}startSyncUserListInterval(){this._syncUserListInterval===-1&&(this._syncUserListInterval=ti.run("ric",this.syncUserList.bind(this)))}stopSyncUserListInterval(){ti.clearTask(this._syncUserListInterval),this._syncUserListInterval=-1}syncUserList(){return this.getUserList().then((A=>{this.userManager.setUserList(A)})).catch((A=>{this._log.debug("sync user list failed: ".concat(A))}))}getUserList(){var A;return(A=this.signalChannel)!=null&&A.isConnected?this.signalChannel.sendWaitForResponse({command:iP,responseCommand:ut.USER_LIST_RES,enableLog:!1,timeout:2e3}).then((e=>{let{data:t}=e,{code:i,message:o}=t;if(i===0)return(t.data&&t.data.userList||[]).map((g=>{let{userId:r,srcTinyId:n,role:I}=g;return{userId:r,tinyId:n,role:I}}));throw nt({key:$e.SIGNAL_RESPONSE_FAILED,data:{signalResponse:ut.USER_LIST_RES,code:i,message:o}})})):Promise.reject("not connected")}getAllConnections(){let A=[...this.remotePublishedUserMap.values()];return this.uplinkConnection&&A.push(this.uplinkConnection),A}isRelayMaybeFailed(){if(this.signalChannel&&!this.signalChannel.isOnline||!Vx)return!1;if(this.singlePC)return this.singlePC.reconnectionCount>6;let A=this.getAllConnections();if(A.length===0)return!1;for(let e=0;e<A.length;e++)if(A[e].getReconnectionCount()<6)return!1;return!0}checkConnectionsToReconnect(){var A;this.singlePC?((A=this.singlePC.getPeerConnection())==null?void 0:A.connectionState)===co.CLOSED&&!this.singlePC.isReconnecting&&(this._log.warn("spc pc is closed but not reconnect"),this.singlePC.startReconnection()):this.getAllConnections().forEach((e=>{if(e instanceof xB&&!e.getIsReconnecting()){let t=e.getPeerConnection();t&&t.connectionState===co.CLOSED&&(this._log.warn("[".concat(e.getUserId(),"] pc is closed but not reconnect")),e.startReconnection())}}))}fallbackToMPC(){return X(this,null,(function*(){var A;if(this._log.warn("fallback to multi pc"),wi.uploadEvent({log:"stat-fallback",userId:this.userId}),this.enableSPC=!1,(A=this.singlePC)==null||A.close(),this.singlePC=null,this.isJoined&&(yield this.reJoin()),this.uplinkConnection){let e=this.uplinkConnection;this.uplinkConnection=new PT({userId:this.userId,tinyId:this.tinyId,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI}),e.isMainStreamPublished&&(yield this.uplinkConnection.publish({localAudioTrack:e.localMainAudioTrack,localVideoTrack:e.localMainVideoTrack,isAuxiliary:!1})),e.isAuxStreamPublished&&(yield this.uplinkConnection.publish({localAudioTrack:e.localAuxAudioTrack,localVideoTrack:e.localAuxVideoTrack,isAuxiliary:!0})),e.close()}for(let e of[...this.remotePublishedUserMap.values()]){let t=new jx({userId:e.userId,tinyId:e.tinyId,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI,flag:e.flag,remoteAudioTrack:e.remoteAudioTrack,remoteVideoTrack:e.remoteVideoTrack,remoteAuxiliaryTrack:e.remoteAuxiliaryTrack});this.installDownlinkEvents(t,e.userId),this.remotePublishedUserMap.set(e.userId,t),e.isMainStreamSubscribed&&(yield t.subscribe(e.subscribeState,"main")),e.isAuxStreamSubscribed&&(yield t.subscribe(e.subscribeState,"auxiliary"))}}))}destroy(){this.isDestroyed||(this.signalChannel&&(this._log.info("destroying SignalChannel"),this.signalChannel.close(),this.signalChannel=null),super.destroy(),this._joinReject&&(this._joinReject(new oe({code:OA.INVALID_OPERATION,message:nt({key:$e.CLIENT_DESTROYED,data:{funName:"join"}})})),this.clearJoinTimeout(),this.reset()),this.removeAllListeners(),this.healthDetector.destroy(),ti.clearTask(this._audioVolumeIntervalId))}switchRole(A){return X(this,null,(function*(){this.role!==A&&(A==="audience"&&this.uplinkConnection&&this.closeUplink("you switch role to audience"),yield this.doSwitchRole(A))}))}doSwitchRole(A){let e={command:oP,data:{role:A==="anchor"?20:21,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel},responseCommand:ut.SWITCH_ROLE_RES,retries:1};return this._log.info("switchRole signal data: ".concat(JSON.stringify(e.data))),this.signalChannel.sendWaitForResponseWithRetry(e).then((t=>{let{code:i,message:o}=t.data;if(i!==0)throw new oe({code:OA.SWITCH_ROLE_FAILED,message:nt({key:$e.SWITCH_ROLE_FAILED,data:{message:o,code:i}})});this.role=A})).catch((t=>{throw t instanceof oe&&t.getCode()===OA.API_CALL_TIMEOUT&&(t=new oe({code:OA.SWITCH_ROLE_FAILED,message:nt({key:$e.SWITCH_ROLE_TIMEOUT})})),this._log.error(t),t}))}_initUplinkConnection(){this.uplinkConnection=this.singlePC?new QK({userId:this.userId,tinyId:this.tinyId,room:this}):new PT({userId:this.userId,tinyId:this.tinyId,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI}),this.uplinkConnection.on("connection-state-changed",(A=>{this.emit("media-connection-state-changed",tt(le({},A),{userId:this.userId}))})),this.uplinkConnection.on("firewall-restriction",(()=>{this.emit("firewall-restriction")})),this.uplinkConnection.on("error",(A=>{let e=A.getCode();e!==OA.ICE_TRANSPORT_ERROR&&(e===OA.UPLINK_RECONNECTION_FAILED&&this.closeUplink(),this.emit("error",A))}))}publish(A){return X(this,null,(function*(){var e;this.uplinkConnection||this._initUplinkConnection();let t="".concat(A.streamType," ").concat(A.isAudio&&A.isScreen?"screen":"").concat(A.kind);this._log.info("publish() => ".concat(t)),yield(e=this.singlePC)==null?void 0:e.waitForPeerConnectionConnected(),yield this.uplinkConnection.publish({localAudioTrack:A instanceof Nu?A:null,localVideoTrack:A instanceof YB?A:null,isAuxiliary:A.streamType==="auxiliary"||A.isScreen})}))}unpublish(A){return X(this,null,(function*(){if((this.scene!=="live"||this.role==="anchor")&&(this.isMainStreamPublished||this.isAuxStreamPublished)&&this.uplinkConnection){try{let e="".concat(A.streamType," ").concat(A.isAudio&&A.isScreen?"screen":"").concat(A.kind);this._log.info("unpublish() => ".concat(e)),yield this.uplinkConnection.unpublish({localAudioTrack:A instanceof Nu?A:null,localVideoTrack:A instanceof YB?A:null})}catch{}this.localTracks.size===0&&this.closeUplink("you unpublished")}}))}addTrack(A){if(!this.uplinkConnection||!A.mediaTrack)return Promise.resolve();let e=this.uplinkConnection.addTrack(A);return A.publish(this,e),e}removeTrack(A){return this.uplinkConnection&&A.mediaTrack?(A.unpublish(),this.uplinkConnection.removeTrack(A)):Promise.resolve()}replaceTrack(A){return this.uplinkConnection&&A.mediaTrack&&tT()?this.uplinkConnection.replaceTrack(A).then((e=>{e&&N.emit(v.LOCAL_TRACK_REPLACED,{track:A})})):Promise.resolve()}setBandWidth(A){return X(this,null,(function*(){this.uplinkConnection&&(yield this.uplinkConnection.setBandwidth(A),yield this.uplinkConnection.sendMediaSettings())}))}enableSmall(A){return X(this,null,(function*(){if(!this.uplinkConnection||!this.uplinkConnection.localMainVideoTrack)return Promise.resolve();A&&this.uplinkConnection.localMainVideoTrack.small&&(yield this.setBandWidth({type:V.VIDEO,videoType:V.SMALL,bandwidth:this.uplinkConnection.localMainVideoTrack.small.bitrate})),yield this.uplinkConnection.enableSmall(A)}))}subscribe(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return X(this,null,(function*(){if(e=e.filter((r=>!r.isSubscribed)),e.length===0)return;let{userId:i}=e[0],o=this.remotePublishedUserMap.get(i);if(!o)return;let g=e.find((r=>r.mediaType===2))?"auxiliary":"main";try{let r=le({},o.subscribeState);e.forEach((I=>{switch(I.mediaType){case 1:r.audio=!0;break;case 4:r.video=!0;break;case 8:r.smallVideo=!0;break;case 2:r.auxiliary=!0}}));let n=this._changeBigSmallRecords.get(i);n&&n.options.smallVideo&&o.muteState.hasSmall&&r.video&&(r.video=!1,r.smallVideo=!0),N.emit(v.SUBSCRIBE_START,{room:this,streamType:g,remotePublishedUser:o,subscribeState:r}),this._log.info("subscribe() => ".concat(i," ").concat(g," ").concat(e.map((I=>I.strMediaType)).join(",")," [").concat(jJ(r),"] prev: [").concat(jJ(o.subscribeState),"]")),yield o.subscribe(r,g),this._log.info("subscribe ".concat(i," ").concat(g," done"));for(let I of e)I.mediaTrack||(yield I.waitHasMediaTrack());N.emit(v.SUBSCRIBE_SUCCESS,{room:this,streamType:g,remotePublishedUser:o})}catch(r){let n=r instanceof oe?r.getCode():OA.UNKNOWN,I=r;throw r instanceof oe?n===OA.REMOTE_STREAM_NOT_EXIST&&(I=new oe({code:OA.API_CALL_ABORTED,message:nt({key:$e.API_CALL_ABORTED,data:{message:r.message,userId:i,streamType:g}})}),this._log.warn(I)):(I=new oe({code:n,message:nt({key:$e.SUBSCRIBE_FAILED,data:{message:r.message,userId:i,streamType:g}})}),this._log.error(I)),I}}))}unsubscribe(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return X(this,null,(function*(){let{userId:i}=e[0],o=this.remotePublishedUserMap.get(i);if(!o)return;let g=e.find((r=>r.mediaType===2))?"auxiliary":"main";this._log.info("unsubscribe() => ".concat(i," ").concat(g," ").concat(e.map((r=>r.strMediaType)).join(",")));try{yield o.unsubscribe({remoteTracks:e,streamType:g})}catch(r){this._log.warn("unsubscribe() => failed ".concat(r))}e.forEach((r=>{r.unsubscribe(),r.mediaType===8&&r.setMediaType(4)})),N.emit(v.UNSUBSCRIBE_SUCCESS,{room:this,streamType:g,remotePublishedUser:o})}))}setEncodedDataProcessingListener(A){throw new Error("Method not implemented.")}enableAudioVolumeEvaluation(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:2e3,e=arguments.length>1?arguments[1]:void 0;if(A<=0)return this._enableAudioVolumeEvaluation=!1,void ti.clearTask(this._audioVolumeIntervalId);A=Math.floor(Math.max(A,100)),N.emit(v.AUDIO_LEVEL_INTERVAL,{interval:A}),this._audioVolumeIntervalId&&ti.clearTask(this._audioVolumeIntervalId),this._enableAudioVolumeEvaluation=!0,this._audioVolumeIntervalId=ti.run("intervalInWorker",(()=>{var t;CT.isRunning?this.stopUpdateAudioLevelFromSenderStat():this.updateAudioLevelFromSenderStat(A,e);let i=[];(t=this.remotePublishedUserMap)==null||t.forEach((o=>{if(o.muteState.hasAudio){!CT.isRunning&&o.muteState.audioAvailable&&o.remoteAudioTrack.isSubscribed?this.updateDownlinkAudioLevelFromReceiver(o):o.remoteAudioTrack.volume=0;let g=Math.floor(100*o.remoteAudioTrack.getAudioLevel());i.push({userId:o.userId,volume:g,floatVolume:o.remoteAudioTrack.getInternalAudioLevel()})}})),this.emit("audio-volume",i)}),{delay:A,backgroundTask:e})}updateAudioLevelFromSenderStat(A,e){return X(this,null,(function*(){var t;if(!this.uplinkConnection||!this.uplinkConnection.localMainAudioTrack||this._updateAudioLevelTaskId!==-1)return;let i=(t=this.uplinkConnection.getPeerConnection())==null?void 0:t.getSenders()[0];if(!i)return;let o=Math.max(A,500);this._log.warn("updateAudioLevelFromSenderStat ".concat(o)),this._updateAudioLevelTaskId=ti.run("intervalInWorker",(()=>X(this,null,(function*(){if(!this.uplinkConnection||!this.uplinkConnection.localMainAudioTrack)return void this.stopUpdateAudioLevelFromSenderStat();let g=yield i.getStats();if(this._updateAudioLevelTaskId<0)return;let{localMainAudioTrack:r}=this.uplinkConnection;g.forEach((n=>{n.type==="media-source"&&n.audioLevel&&(r.volume=n.audioLevel)}))}))),{delay:o,backgroundTask:e})}))}stopUpdateAudioLevelFromSenderStat(){var A;this._updateAudioLevelTaskId!==-1&&(this._log.warn("stopUpdateAudioLevelFromSenderStat"),ti.clearTask(this._updateAudioLevelTaskId),this._updateAudioLevelTaskId=-1,(A=this.uplinkConnection)!=null&&A.localMainAudioTrack&&(this.uplinkConnection.localMainAudioTrack.volume=0))}updateDownlinkAudioLevelFromReceiver(A){var e;let{audioReceiver:t}=A;if(!iT||!t)return;let i=(e=t.getSynchronizationSources()[0])==null?void 0:e.audioLevel;Zt(i)?A.remoteAudioTrack.volume=Math.min(2*i,1):t.getStats().then((o=>{o.forEach((g=>{g.type==="inbound-rtp"&&Zt(g.audioLevel)&&(A.remoteAudioTrack.volume=g.audioLevel)}))}))}getLocalAudioStats(){return X(this,null,(function*(){var A;let e={};return e[this.userId]={bytesSent:0,packetsSent:0,audioLevel:0},(A=this.uplinkConnection)!=null&&A.localMainAudioTrack&&(e[this.userId]=this.uplinkConnection.localMainAudioTrack.stat),e}))}getLocalVideoStats(){return X(this,null,(function*(){var A,e;let t={};return t[this.userId]=((e=(A=this.uplinkConnection)==null?void 0:A.localMainVideoTrack)==null?void 0:e.stat)||{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0},t}))}getTransportStats(){return X(this,null,(function*(){let A={rtt:0,downlinksRTT:{}};if(this.uplinkConnection){let e=yield this._stats.getSenderStats(this.uplinkConnection);A.rtt=e.rtt}for(let[,e]of this.remotePublishedUserMap){let t=yield this._stats.getReceiverStats(e);A.downlinksRTT[t.userId]=t.rtt}return A}))}getRemoteVideoStats(A){return X(this,null,(function*(){let e={};for(let[t,i]of this.remotePublishedUserMap)A==="main"&&i.muteState.hasVideo&&(e[t]=i.remoteVideoTrack.stat),A==="auxiliary"&&i.muteState.hasAuxiliary&&(e[t]=i.remoteAuxiliaryTrack.stat);return e}))}getRemoteAudioStats(){return X(this,null,(function*(){let A={};for(let[e,t]of this.remotePublishedUserMap)t.muteState.hasAudio&&(A[e]=t.remoteAudioTrack.stat);return A}))}setTurnServer(A,e){this._log.info("set turn server: ".concat(JSON.stringify(A)," ").concat(e||""));let t=[];Array.isArray(A)?A.forEach((i=>t.push(pn.getTurnServer(i)))):pn.isPlainObject(A)&&t.push(pn.getTurnServer(A)),this._turnServers=t,e&&(this._iceTransportPolicy=e)}sendStartMixTranscode(A){return this.signalChannel.sendWaitForResponse({command:zq,data:A,timeout:5e3,responseCommand:ut.START_MIX_TRANSCODE_RES,commandDesc:"startMixTranscode"}).catch((e=>{if(e.code!==OA.API_CALL_ABORTED)throw e}))}sendStopMixTranscode(A){return this.signalChannel.sendWaitForResponse({command:$q,data:A,timeout:5e3,responseCommand:ut.STOP_MIX_TRANSCODE_RES,commandDesc:"stopMixTranscode"}).catch((e=>{if(e.code!==OA.API_CALL_ABORTED)throw e}))}sendStartPublishCDN(A){let e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return this.signalChannel.sendWaitForResponse({command:e?Wq:jq,data:A,timeout:5e3,responseCommand:e?ut.START_PUBLISH_TENCENT_CDN_RES:ut.START_PUBLISH_GIVEN_CDN_RES,commandDesc:"startPublishCDN"}).catch((t=>{if(t.code!==OA.API_CALL_ABORTED)throw t}))}sendStopPublishCDN(A){let e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return this.signalChannel.sendWaitForResponse({command:e?Zq:Xq,data:A,timeout:5e3,responseCommand:e?ut.STOP_PUBLISH_TENCENT_CDN_RES:ut.STOP_PUBLISH_GIVEN_CDN_RES,commandDesc:"stopPublishCDN"}).catch((t=>{if(t.code!==OA.API_CALL_ABORTED)throw t}))}sendStartPushStreamToRoom(A){return this.signalChannel.sendWaitForResponse({command:AP,data:A,timeout:5e3,responseCommand:ut.START_PUBLISH_CDN_STREAM_RES,commandDesc:"startPublishCDNStream"}).catch((e=>{if(e.code!==OA.API_CALL_ABORTED)throw e}))}sendUpdatePushStreamToRoom(A){return this.signalChannel.sendWaitForResponse({command:eP,data:A,timeout:5e3,responseCommand:ut.UPDATE_PUBLISH_CDN_STREAM_RES,commandDesc:"updatePublishCDNStream"}).catch((e=>{if(e.code!==OA.API_CALL_ABORTED)throw e}))}sendStopPushStreamToRoom(A){return this.signalChannel.sendWaitForResponse({command:tP,data:A,timeout:5e3,responseCommand:ut.STOP_PUBLISH_CDN_STREAM_RES,commandDesc:"stopPublishCDNStream"}).catch((e=>{if(e.code!==OA.API_CALL_ABORTED)throw e}))}sendAbilityStatus(A){var e;(e=this.signalChannel)==null||e.sendWaitForResponse({command:nP,data:A,timeout:5e3,responseCommand:ut.ABILITY_STATUS_REPORT_RESULT,commandDesc:"ability status report"}).catch((t=>{}))}getIceServers(A){var e,t;return this._turnServers.length>0?this._turnServers:(e=this.scheduleResult.iceServers)!=null&&e.length?this.scheduleResult.iceServers:A!=null&&A.length?A:(t=this._iceServersFromJoin)!=null&&t.length?this._iceServersFromJoin:[]}getIceTransportPolicy(){return this.forceRelay?"relay":this._iceTransportPolicy||this.scheduleResult.iceTransportPolicy||"all"}getLogger(){return this._log}enableAIVoice(){throw new Error("Method not implemented.")}getSignalChannelUrl(){let A={mainUrl:"",backupUrl:""},e=pn.getEnv();return e?(A.mainUrl="wss://".concat(e,".rtc.qq.com"),A.backupUrl=A.mainUrl):this.proxy_ws?(A.mainUrl=this.proxy_ws,A.backupUrl=A.mainUrl):this.proxy_unified?(A.mainUrl="wss://".concat(this.proxy_unified),A.backupUrl=A.mainUrl):Array.isArray(this.scheduleResult.domains)&&this.scheduleResult.domains.length>0&&(A.mainUrl="wss://".concat(this.scheduleResult.domains[0]),A.backupUrl=A.mainUrl,this.scheduleResult.domains[1]&&(A.backupUrl="wss://".concat(this.scheduleResult.domains[1]))),A}getSignalInfo(){var A;return((A=this.signalChannel)==null?void 0:A.getSignalInfo())||{clientIp:"",relayIp:""}}reset(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];this.stopSyncUserListInterval(),this.stopHeartbeat(),this.closeConnections(),this.clearNetworkQuality(),this.closeUplink("you exitRoom"),this.signalChannel&&(A&&this.signalChannel.keepAlive&&this.signalChannel.isConnected?this.signalChannel.stopKeepAliveIn(3600):(this.signalChannel.close(),this.setSignalChannel(null))),this.localPublishFlag=0,this.heartbeatCount=0,this._stats.reset(),this.userManager.clear(),this.userManager.removeAllListeners(),this.singlePC&&(this.singlePC.close(),this.singlePC=null),this.scheduleResult={domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null}}checkSubscribeBigSmallVideo(A){return X(this,null,(function*(){let{subscribeState:e,userId:t,muteState:{hasSmall:i,hasVideo:o}}=A;if(!i&&!o||!e.video&&!e.smallVideo)return;let g=this._changeBigSmallRecords.get(t);if(!g||g.isSubscribing||g.reSubscribeCount<=0)return;let{options:r,reSubscribeCount:n}=g;if(r.video&&e.video||r.smallVideo&&e.smallVideo&&i)return;let I={audio:A.remoteAudioTrack.isSubscribed||A.remoteAudioTrack.isSubscribing,auxiliary:A.remoteAuxiliaryTrack.isSubscribed||A.remoteAuxiliaryTrack.isSubscribing,video:r.video,smallVideo:r.smallVideo};try{if(!i&&I.smallVideo&&(I.video=!0,I.smallVideo=!1),I.smallVideo===e.smallVideo&&I.video===e.video)return;g.isSubscribing=!0,g.reSubscribeCount=n-1,yield A.subscribe(I,"main"),A.remoteVideoTrack.setMediaType(I.smallVideo?8:4),this._log.info("change [".concat(t,"] to ").concat(I.smallVideo?"small":"big"," video successfully. count ").concat(Jl-g.reSubscribeCount,".")),g.isSubscribing=!1,g.reSubscribeCount=Jl}catch(C){this._log.info("change [".concat(t,"] to ").concat(I.smallVideo?"small":"big"," video failed. count ").concat(Jl-g.reSubscribeCount,". reason: ").concat(C)),g.isSubscribing=!1,g.reSubscribeCount===0&&this._changeBigSmallRecords.delete(t)}}))}changeType(A,e){let t={options:{video:!A,smallVideo:A},isSubscribing:!1,reSubscribeCount:Jl};this._changeBigSmallRecords.set(e.userId,t),this._log.info("set [".concat(e.userId,"] video prefer type: ").concat(A?"small":"big")),this.emit("subscribe-small-video-changed",{userId:e.userId,isSmall:A});let i=this.remotePublishedUserMap.get(e.userId);i&&this.checkSubscribeBigSmallVideo(i)}get smallStreamConfig(){return this._smallStreamConfig}_initBusinessInfo(A){this._businessInfo=A.businessInfo;let e={};if(lK(A.businessInfo)&&(e=JSON.parse(A.businessInfo)),!Ku(A.pureAudioPushMode)){if(!Number.isInteger(Number(A.pureAudioPushMode)))throw new oe({code:OA.INVALID_PARAMETER,message:nt({key:$e.INVALID_PURE_AUDIO})});this._pureAudioPushMode=A.pureAudioPushMode,e.Str_uc_params||(e.Str_uc_params={}),e.Str_uc_params.pure_audio_push_mod=this._pureAudioPushMode}if(!Ku(A.userDefineRecordId)){let t=/^[A-Za-z0-9_-]{1,64}$/gi;if(A.userDefineRecordId.match(t)===null)throw new oe({code:OA.INVALID_PARAMETER,message:nt({key:$e.INVALID_USER_DEFINE_RECORDID})});e.Str_uc_params||(e.Str_uc_params={}),e.Str_uc_params.userdefine_record_id=A.userDefineRecordId}if(!Ku(A.userDefinePushArgs)){if(!(lK(A.userDefinePushArgs)&&String(A.userDefinePushArgs)&&String(A.userDefinePushArgs).length<=256))throw new oe({code:OA.INVALID_PARAMETER,message:nt({key:$e.INVALID_USER_DEFINE_PUSH_ARGS})});e.Str_uc_params||(e.Str_uc_params={}),e.Str_uc_params.userdefine_push_args=A.userDefinePushArgs}VP(e)||(this._businessInfo=JSON.stringify(e))}sendCustomMessage(A){var e;(e=this._customMessageManager)==null||e.send(A)}enableInsertableStreams(){return X(this,null,(function*(){if(this.singlePC&&!this.singlePC.enableInsertableStreams&&vB)return this.singlePC.enableInsertableStreams=!0,yield this.singlePC.waitForPeerConnectionConnected(),yield this.singlePC.startReconnection()}))}sendSignalMessage(A){var e;return this.signalChannel?(e=this.signalChannel)==null?void 0:e.sendWaitForResponseWithRetry(A):Promise.reject(new oe({code:OA.INVALID_OPERATION,message:"not join"}))}get enableCodecPipeline(){return this.videoManager.encodePipeline.length>0||this.videoManager.decodePipeline.length>0||this.audioManager.encodePipeline.length>0||this.audioManager.decodePipeline.length>0}get scriptTransformWorker(){var A;return(A=this.singlePC)==null?void 0:A.scriptTransformWorker}switchRoom(A){return X(this,null,(function*(){var e;if(!this.signalChannel||!this.singlePC)return;let{roomId:t,strRoomId:i,userSig:o,privateMapKey:g}=A,r=((e=this.scheduleResult.config)==null?void 0:e.autoSubscribeCount)||(A==null?void 0:A.autoSubscribeCount)||1,n=String(this.useStringRoomId?i:t),I=[];for(let M=0;M<r;M++)I.push({audioSsrc:vn(),bigVideoSsrc:vn(),bigVideoRtxSsrc:vn(),auxVideoSsrc:vn(),auxVideoRtxSsrc:vn()});let C={currRoomId:this.roomId,targetRoomId:n,useStringRoomId:this.useStringRoomId,ability:this.singlePC.clientAbility,userSig:o,privateMapKey:g??this.privateMapKey,subscribe:I};this.singlePC.autoSubscribedUserMap.clear(),this.singlePC.autoSubscribedSsrcGroups.clear(),this.singlePC.autoSubscribedSsrcGroups.set(n,I);let u,R=this.roomId;this.roomId=this.useStringRoomId?i:String(t),this.switchRoomSubedReq=new Promise((M=>{this.resolveSwitchRoomSubedReq=M,ra(5e3).then(M)})),N.emit(v.SWITCH_ROOM_START,{room:this}),yield this.singlePC.waitForPeerConnectionConnected();try{this.userManager.clear(),u=yield this.signalChannel.sendWaitForResponse({command:BP,responseCommand:ut.SEND_SWITCH_ROOM_RES,data:C});let{code:M,message:L}=u.data;if(M!==0){this._log.error("switch room failed. result: ".concat(M," error: ").concat(L));let H=new oe({code:OA.SWITCH_ROOM_FAILED,extraCode:M,message:L});throw N.emit(v.SWITCH_ROOM_FAILED,{room:this,error:H}),H}this.userSig=o,Ku(g)||(this.privateMapKey=g),N.emit(v.SWITCH_ROOM_SUCCESS,{room:this,currentRoomId:R,targetRoomId:n})}catch(M){throw this.singlePC.autoSubscribedSsrcGroups.clear(),this.roomId=R,this.resolveSwitchRoomSubedReq(),M}}))}isSwitchRoomSupported(){var A;let e="unable to use switchRoom API, fallback to exitRoom and enterRoom.";return((A=this.scheduleResult.config)==null?void 0:A.switchRoom)!==!0?(this._log.warn("".concat(e," Reason: this sdkAppId is not supported, please contact us [https://trtc.io/contact] to enable it.")),!1):this.scene!=="live"?(this._log.warn("".concat(e," Reason: the scene is not 'live'.")),!1):this.role!=="audience"?(this._log.warn("".concat(e," Reason: the role is not 'audience'.")),!1):!!this.singlePC||(this._log.warn("".concat(e," Reason: is not using single peerConnection.")),!1)}requestRemoteFallbackToH264(){var A;(A=this.singlePC)==null||A.requestRemoteFallbackToH264()}startUpdateNTPTime(){if(!this.signalChannel)return;let A=[];for(let e=0;e<5;e++)A.push(this.updateNTPTime());return Promise.all(A).then((e=>{var t;let i=e[0].offset,o=e[0].offset;e.forEach((n=>{i=Math.min(n.offset,i),o=Math.max(n.offset,o)}));let g=Math.floor(e.reduce(((n,I)=>n+I.rtt),0)/e.length),r=Math.floor(e.reduce(((n,I)=>n+I.offset),0)/e.length);(o-i>30||g>50)&&setTimeout((()=>this.startUpdateNTPTime()),5e3),fs(r),(t=this.scriptTransformWorker)==null||t.postMessage({type:"ntp-offset",data:r}),this._log.debug("ntp updated offset: ".concat(r)),this.emit("ntp-time-updated")})).catch((e=>{this._log.warn("ntp updated failed: ".concat(e))}))}updateNTPTime(){let A=Date.now();return this.signalChannel.sendWaitForResponse({command:CP,responseCommand:ut.UPDATE_NETWORK_TIME_RESULT,addReceiveTime:!0,data:{clientSendTime:String(A)},enableLog:!1}).then((e=>{let t=Number(e.data.data.serverSendTime),i=Number(e.data.data.serverRecvTime),o=e.data.receiveTime||Date.now();return{rtt:o-A-(i-t),offset:(i-A+(t-o))/2}}))}};return ne([go(["left",pt.INIT],"joined"),ba({settings:{retries:1,timeout:0},onRetrying(A){this._log.warn("join retry ".concat(A))},onRetryFailed(A){this._log.error("join failed",A)},onError(A,e){this._isUsingCachedSchedule&&!this.isDestroyed?(this._log.warn("is using cached schedule, retry join"),Os(!0),this.reset(),e()):this.signalChannel&&this.signalChannel.isConnected&&this.signalChannel.keepAlive?(this._log.warn("is using keepAlive ws, retry join"),this.signalChannel.close(),this.reset(),e()):(this.reset(),e())}}),Gi((A=>{let e=new _q;return function(t,i,o){return X(this,null,(function*(){let g=String(t.roomId||t.strRoomId);if(this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.userSig=t.userSig,this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.scene=i,t.privateMapKey=t.privateMapKey||"",this.isJoined)throw new oe({code:OA.INVALID_OPERATION,message:nt({key:$e.INVALID_JOIN})});if(this.checkDestroy(),e.isJoined({userId:this.userId,roomId:g,sdkAppId:this.sdkAppId,room:this}))throw new oe({code:OA.INVALID_OPERATION,message:nt({key:$e.REPEAT_JOIN,data:this.userId})});e.add({room:this,roomId:g}),this.role=t.role===21?"audience":"anchor",this._log.info("Join() => joining room: ".concat(g," useStringRoomId: ").concat(this.useStringRoomId," scene: ").concat(this.scene," role: ").concat(this.role)),N.emit(v.JOIN_START,{room:this,roomId:g,params:t});let r=pn.getEnv();r||(r=sB.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(yn.OLD_CLOUD_LADDER)?r=sB.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(yn.WEBRTC)&&(r=sB.WEBRTC))),wi.setConfig({env:r,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:g}),kA.checkSystemRequirementsInternal(o).then((n=>{this.checkSystemResult=n,Lq.call(this)}));try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!pn.getEnv()&&(yield this.schedule(t,o));let n=yield A.call(this,t,i,o);return this.roomId=g,this._joinedTimestamp=pn.performanceNow(),N.emit(v.JOIN_SUCCESS,{room:this}),o===30&&!t.component&&wi.uploadEvent({log:"stat-conv-".concat(Number(_s),"-").concat(location.hostname),userId:this.userId}),n}catch(n){throw e.delete({room:this,roomId:g}),N.emit(v.JOIN_FAILED,{room:this,error:n}),n}}))}}))],kc.prototype,"join"),ne([go("joined","left",{ignoreError:!0,success(){this.reset(!0)}}),Gi((A=>function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return X(this,null,(function*(){N.emit(v.LEAVE_START,{room:this}),yield A.call(this,...t),N.emit(v.LEAVE_SUCCESS,{room:this,roomId:this.roomId})}))})),m2("leave room"),Py({fnName:"publish",validateArgs:!1}),Py({fnName:"unsubscribe",validateArgs:!1})],kc.prototype,"leave"),ne([pc((A=>A.mediaType)),Gi((A=>function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return X(this,null,(function*(){if(this.scene==="live"&&this.role!=="anchor"||(t=t.filter((g=>g.outMediaTrack&&g.state==="ready")),!t.length))return;N.emit("61",{room:this});let o=A.apply(this,t);return Promise.all(t.map((g=>g.publish(this,o))))}))})),ba({settings:{retries:YQ,timeout:A=>nI(A)},onError(A,e,t,i){let[o]=i;var g;(g=A.message)!=null&&g.includes("timeout")?(this._log.warn("publish ".concat(o.strMediaType," timeout"),A),e()):(this._log.error("publish ".concat(o.strMediaType," failed: ").concat(A)),t(A),N.emit(v.PUBLISH_FAILED,{room:this}))}})],kc.prototype,"publish"),ne([Py({fnName:"publish"}),pc((A=>A.mediaType)),Gi((A=>function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];let o=A.apply(this,t);return t.forEach((g=>g.unpublish())),o})),Mu((function(){var A,e;this.localTracks.size===0&&FB()&&((e=(A=this.singlePC)==null?void 0:A.getPeerConnection())==null||e.getSenders().forEach((t=>t.track&&t.replaceTrack(null))))}))],kc.prototype,"unpublish"),ne([y2((A=>{if(A.code!==OA.API_CALL_ABORTED)throw A})),pc((A=>A.userId))],kc.prototype,"replaceTrack"),ne([pc((function(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return e[0].userId}),(function(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return"".concat(e[0].userId,"|sub")})),fT(),Gi((A=>function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];let o=A.apply(this,t);return t.forEach((g=>!g.isSubscribed&&g.subscribe(o))),o})),ba({settings:{retries:YQ,timeout:A=>nI(A)},onError(A,e,t,i){if(A.message.includes("timeout"))this._log.warn("subscribe timeout"),e();else{let o=(A==null?void 0:A.code)===OA.API_CALL_ABORTED;this._log[o?"warn":"error"]("subscribe failed ".concat(i.map((g=>g.strMediaType)).join(","),": ").concat(A)),t(A),N.emit(v.SUBSCRIBE_FAILED,{room:this,remoteTracks:i})}}})],kc.prototype,"subscribe"),ne([Py({fnName:"subscribe",callback(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];this.singlePC||e.forEach((i=>{let o=this.remotePublishedUserMap.get(i.userId);o&&!o.isMainStreamSubscribed&&!o.isAuxStreamSubscribed&&o.close("you unsubscribed")}))}}),pc((function(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return e[0].userId}),(function(){for(var A=arguments.length,e=new Array(A),t=0;t<A;t++)e[t]=arguments[t];return"".concat(e[0].userId,"|sub")}))],kc.prototype,"unsubscribe"),YT.create=YT._create.bind(YT,kc),Ky(30),YT}))})(WT)),WT.exports}var YK=Object.defineProperty,eV=Object.defineProperties,tV=Object.getOwnPropertyDescriptors,yK=Object.getOwnPropertySymbols,iV=Object.prototype.hasOwnProperty,oV=Object.prototype.propertyIsEnumerable,i2=(c,G,f)=>G in c?YK(c,G,{enumerable:!0,configurable:!0,writable:!0,value:f}):c[G]=f,gV=(c,G)=>{for(var f in G||(G={}))iV.call(G,f)&&i2(c,f,G[f]);if(yK)for(var f of yK(G))oV.call(G,f)&&i2(c,f,G[f]);return c},rV=(c,G)=>eV(c,tV(G)),aV=(c,G)=>{for(var f in G)YK(c,f,{get:G[f],enumerable:!0})},yo=(c,G,f)=>i2(c,typeof G!="symbol"?G+"":G,f);async function IV({sdkAppId:c,userId:G,userSig:f,core:eA}){var x;const RA=Math.round(new Date().getTime()/1e3);try{const z=await eA.schedule.getAbilityConfig(c,eA.schedule.ScheduleRequestType.TRTC_AUTO_CONF,{sdkAppId:c,userId:G,userSig:f,timestamp:RA});eA.log.info(`virtual background ability response: ${JSON.stringify(z)}`);const{data:FA}=z;return(x=FA==null?void 0:FA.trtcAutoConf)!=null&&x.web_ar?{auth:!0,timestamp:RA}:{auth:!1}}catch(z){return eA.log.error("virtual background fetch error",z),{auth:!1}}}var nV={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};function sV(c){return{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:rV(gV({},nV),{type:{required:!1,type:"string",values:["image","blur","color"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},onAbort:{required:!1},color:{required:!1,type:["array","string"]},enableFaceCentering:{required:!1,type:"boolean"},enableEffectOptimization:{required:!1,type:"boolean"}}),validate(G,f,eA,x){var RA;const{RtcError:z,ErrorCode:FA,ErrorCodeDictionary:rA}=c.errorModule;if(!G)return;const{type:MA,src:sA,onAbort:oA}=G;if(MA==="image"&&!sA)throw new z({code:FA.INVALID_PARAMETER,extraCode:rA.INVALID_PARAMETER_REQUIRED,fnName:eA,messageParams:{key:"src"}});if(oA&&!c.utils.isFunction(oA))throw new z({code:FA.INVALID_PARAMETER,extraCode:rA.INVALID_PARAMETER_TYPE,fnName:eA,messageParams:{key:"onAbort",value:typeof oA,rule:{type:"Function"}}});if(!((RA=c.room.videoManager.cameraTrack)!=null&&RA.mediaTrack))throw new z({code:FA.INVALID_OPERATION,extraCode:rA.INVALID_OPERATION_NEED_VIDEO,fnName:eA})}}}function EV(c){return{name:"UpdateVirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:{type:{required:!0,type:"string",values:["image","blur","color"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},color:{required:!1,type:["array","string"]},enableFaceCentering:{required:!1,type:"boolean"},enableEffectOptimization:{required:!1,type:"boolean"}},validate(G,f,eA,x){if(!G)return;const{RtcError:RA,ErrorCode:z,ErrorCodeDictionary:FA}=c.errorModule,{type:rA,src:MA}=G;if(rA==="image"&&!MA)throw new RA({code:z.INVALID_PARAMETER,extraCode:FA.INVALID_PARAMETER_REQUIRED,fnName:eA,messageParams:{key:"src"}})}}}function BV(c){return{name:"StopVirtualBackgroundOptions",required:!1}}var CV=(()=>{var c=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(G={}){var f,eA,x=G;x.ready=new Promise(((W,O)=>{f=W,eA=O}));var RA=Object.assign({},x),z="";typeof document<"u"&&document.currentScript&&(z=document.currentScript.src),c&&(z=c),z=z.indexOf("blob:")!==0?z.substr(0,z.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var FA,rA,MA=x.print||console.log.bind(console),sA=x.printErr||console.error.bind(console);function oA(W){if(wt(W))return(function(O){for(var QA=atob(O),vA=new Uint8Array(QA.length),LA=0;LA<QA.length;++LA)vA[LA]=QA.charCodeAt(LA);return vA})(W.slice(Mt.length))}Object.assign(x,RA),RA=null,x.arguments&&x.arguments,x.thisProgram&&x.thisProgram,x.quit&&x.quit,x.wasmBinary&&(FA=x.wasmBinary),typeof WebAssembly!="object"&&$t("no native wasm support detected");var $A,KA,Qe,zA,SA,HA,At,we,Ue=!1,Ve=[],ce=[],ii=[],Yt=0,_e=null;function $t(W){x.onAbort&&x.onAbort(W),sA(W="Aborted("+W+")"),Ue=!0,W+=". Build with -sASSERTIONS for more info.";var O=new WebAssembly.RuntimeError(W);throw eA(O),O}var rt,qt,Mt="data:application/octet-stream;base64,",wt=W=>W.startsWith(Mt);function qo(W){return Promise.resolve().then((()=>(function(O){if(O==rt&&FA)return new Uint8Array(FA);var QA=oA(O);if(QA)return QA;throw"both async and sync fetching of the wasm failed"})(W)))}function ki(W,O,QA,vA){return(function(LA,Ae,Be){return qo(LA).then((ae=>WebAssembly.instantiate(ae,Ae))).then((ae=>ae)).then(Be,(ae=>{sA(`failed to asynchronously prepare wasm: ${ae}`),$t(ae)}))})(O,QA,vA)}wt(rt="data:application/octet-stream;base64,AGFzbQEAAAAB8gEfYAJ/fwBgAX8Bf2ADf39/AX9gAX8AYAN/f38AYAJ/fwF/YAR/f39/AGAAAGAFf39/f38AYAZ/f39/f38AYAR/f39/AX9gB39/f39/f38AYAN/fn8BfmAFf3x8fHwAYAZ/fHx8fHwAYAV/f39/fwF8YAl/f39/f39/f38AYAN/f38BfGAKf39/f39/f39/fwBgDX9/f39/f39/f39/f38AYAJ/fABgAn5/AX9gAn99AGABfAF8YAZ/fH9/f38Bf2AGf39/f39/AX9gAnx/AXxgBH9/fn4AYAZ/f3x8fHwAYAd/f3x8fHx8AGAFf39/f38BfwKXARkBYQFhAAQBYQFiAAMBYQFjAAMBYQFkAAMBYQFlAA8BYQFmAAIBYQFnAAgBYQFoAAUBYQFpABABYQFqABEBYQFrABIBYQFsAAQBYQFtAAcBYQFuAAoBYQFvAAABYQFwAAQBYQFxAAsBYQFyAAEBYQFzAAQBYQF0AAABYQF1AAYBYQF2AAABYQF3AAQBYQF4AAkBYQF5ABMDZmUDBQIBBAIIBRQCBAUFAgcBFQEAAwEWAAQABAUFBRcHBwMBBgUEBQMAAwIECwQCAQUYBgEZChoBAwcDBhsHAQEBCQkICAQCBgYCAgAAAgEABQwBAgMBAAMAAwEcDR0OAAAAAAAeAAQFAXABNzcFBgEBgAKAAgYNAn8BQbDiBAt/AUEACwchCAF6AgABQQA4AUIALQFDAQABRABtAUUAGQFGAFgBRwB8CTwBAEEBCzZybGhmZGM+XX17enl4d3Z1dHNxcG9uPjpVUWpraUlnZUcsUFBiLGFZW2AsWlxfLF5HLFc5VjkK/pQCZfULAQd/AkAgAEUNACAAQQhrIgIgAEEEaygCACIBQXhxIgBqIQUCQCABQQFxDQAgAUEDcUUNASACIAIoAgAiAWsiAkHM3gAoAgBJDQEgACABaiEAAkACQEHQ3gAoAgAgAkcEQCABQf8BTQRAIAFBA3YhBCACKAIMIgEgAigCCCIDRgRAQbzeAEG83gAoAgBBfiAEd3E2AgAMBQsgAyABNgIMIAEgAzYCCAwECyACKAIYIQYgAiACKAIMIgFHBEAgAigCCCIDIAE2AgwgASADNgIIDAMLIAJBFGoiBCgCACIDRQRAIAIoAhAiA0UNAiACQRBqIQQLA0AgBCEHIAMiAUEUaiIEKAIAIgMNACABQRBqIQQgASgCECIDDQALIAdBADYCAAwCCyAFKAIEIgFBA3FBA0cNAkHE3gAgADYCACAFIAFBfnE2AgQgAiAAQQFyNgIEIAUgADYCAA8LQQAhAQsgBkUNAAJAIAIoAhwiA0ECdEHs4ABqIgQoAgAgAkYEQCAEIAE2AgAgAQ0BQcDeAEHA3gAoAgBBfiADd3E2AgAMAgsgBkEQQRQgBigCECACRhtqIAE2AgAgAUUNAQsgASAGNgIYIAIoAhAiAwRAIAEgAzYCECADIAE2AhgLIAIoAhQiA0UNACABIAM2AhQgAyABNgIYCyACIAVPDQAgBSgCBCIBQQFxRQ0AAkACQAJAAkAgAUECcUUEQEHU3gAoAgAgBUYEQEHU3gAgAjYCAEHI3gBByN4AKAIAIABqIgA2AgAgAiAAQQFyNgIEIAJB0N4AKAIARw0GQcTeAEEANgIAQdDeAEEANgIADwtB0N4AKAIAIAVGBEBB0N4AIAI2AgBBxN4AQcTeACgCACAAaiIANgIAIAIgAEEBcjYCBCAAIAJqIAA2AgAPCyABQXhxIABqIQAgAUH/AU0EQCABQQN2IQQgBSgCDCIBIAUoAggiA0YEQEG83gBBvN4AKAIAQX4gBHdxNgIADAULIAMgATYCDCABIAM2AggMBAsgBSgCGCEGIAUgBSgCDCIBRwRAQczeACgCABogBSgCCCIDIAE2AgwgASADNgIIDAMLIAVBFGoiBCgCACIDRQRAIAUoAhAiA0UNAiAFQRBqIQQLA0AgBCEHIAMiAUEUaiIEKAIAIgMNACABQRBqIQQgASgCECIDDQALIAdBADYCAAwCCyAFIAFBfnE2AgQgAiAAQQFyNgIEIAAgAmogADYCAAwDC0EAIQELIAZFDQACQCAFKAIcIgNBAnRB7OAAaiIEKAIAIAVGBEAgBCABNgIAIAENAUHA3gBBwN4AKAIAQX4gA3dxNgIADAILIAZBEEEUIAYoAhAgBUYbaiABNgIAIAFFDQELIAEgBjYCGCAFKAIQIgMEQCABIAM2AhAgAyABNgIYCyAFKAIUIgNFDQAgASADNgIUIAMgATYCGAsgAiAAQQFyNgIEIAAgAmogADYCACACQdDeACgCAEcNAEHE3gAgADYCAA8LIABB/wFNBEAgAEF4cUHk3gBqIQECf0G83gAoAgAiA0EBIABBA3Z0IgBxRQRAQbzeACAAIANyNgIAIAEMAQsgASgCCAshACABIAI2AgggACACNgIMIAIgATYCDCACIAA2AggPC0EfIQMgAEH///8HTQRAIABBJiAAQQh2ZyIBa3ZBAXEgAUEBdGtBPmohAwsgAiADNgIcIAJCADcCECADQQJ0QezgAGohAQJAAkACQEHA3gAoAgAiBEEBIAN0IgdxRQRAQcDeACAEIAdyNgIAIAEgAjYCACACIAE2AhgMAQsgAEEZIANBAXZrQQAgA0EfRxt0IQMgASgCACEBA0AgASIEKAIEQXhxIABGDQIgA0EddiEBIANBAXQhAyAEIAFBBHFqIgdBEGooAgAiAQ0ACyAHIAI2AhAgAiAENgIYCyACIAI2AgwgAiACNgIIDAELIAQoAggiACACNgIMIAQgAjYCCCACQQA2AhggAiAENgIMIAIgADYCCAtB3N4AQdzeACgCAEEBayIAQX8gABs2AgALCwwAIAAgASABECoQGwu9AQEDfyMAQRBrIgUkAAJAIAIgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyIEAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgNrTQRAIAJFDQECfyAALQALQQd2BEAgACgCAAwBCyAACyIEIANqIAEgAhAjIAAgAiADaiIBEDEgBUEAOgAPIAEgBGogBS0ADzoAAAwBCyAAIAQgAiAEayADaiADIAMgAiABEEQLIAVBEGokACAACzYBAX9BASAAIABBAU0bIQACQANAIAAQLSIBDQFBrOIAKAIAIgEEQCABEQcADAELCxAMAAsgAQvBAQEDfyAALQAAQSBxRQRAAkAgAiAAKAIQIgMEfyADBSAAEE8NASAAKAIQCyAAKAIUIgRrSwRAIAAgASACIAAoAiQRAgAaDAELAkACQCAAKAJQQQBIDQAgAkUNACACIQMDQCABIANqIgVBAWstAABBCkcEQCADQQFrIgMNAQwCCwsgACABIAMgACgCJBECACADSQ0CIAIgA2shAiAAKAIUIQQMAQsgASEFCyAEIAUgAhAiGiAAIAAoAhQgAmo2AhQLCwt0AQF/IAJFBEAgACgCBCABKAIERg8LIAAgAUYEQEEBDwsgASgCBCICLQAAIQECQCAAKAIEIgMtAAAiAEUNACAAIAFHDQADQCACLQABIQEgAy0AASIARQ0BIAJBAWohAiADQQFqIQMgACABRg0ACwsgACABRgtvAQF/IwBBgAJrIgUkAAJAIAIgA0wNACAEQYDABHENACAFIAFB/wFxIAIgA2siA0GAAiADQYACSSIBGxAmGiABRQRAA0AgACAFQYACEB0gA0GAAmsiA0H/AUsNAAsLIAAgBSADEB0LIAVBgAJqJAALgQMBBH8jAEHwAGsiAiQAIAAoAgAiA0EEaygCACEEIANBCGsoAgAhBSACQgA3AlAgAkIANwJYIAJCADcCYCACQgA3AGcgAkIANwJIIAJBADYCRCACQazMADYCQCACIAA2AjwgAiABNgI4IAAgBWohAwJAIAQgAUEAEB4EQEEAIAMgBRshAAwBCyAAIANOBEAgAkIANwAvIAJCADcCGCACQgA3AiAgAkIANwIoIAJCADcCECACQQA2AgwgAiABNgIIIAIgADYCBCACIAQ2AgAgAkEBNgIwIAQgAiADIANBAUEAIAQoAgAoAhQRCQAgAigCGA0BC0EAIQAgBCACQThqIANBAUEAIAQoAgAoAhgRCAACQAJAIAIoAlwOAgABAgsgAigCTEEAIAIoAlhBAUYbQQAgAigCVEEBRhtBACACKAJgQQFGGyEADAELIAIoAlBBAUcEQCACKAJgDQEgAigCVEEBRw0BIAIoAlhBAUcNAQsgAigCSCEACyACQfAAaiQAIAAL0AEBBX8jAEEQayIGJAAgBkEEaiICED8jAEEQayIFJAACfyACLQALQQd2BEAgAigCBAwBCyACLQALQf8AcQshBANAAkACfyACLQALQQd2BEAgAigCAAwBCyACCyEDIAUgATkDACACAn8gAyAEQQFqIAUQRiIDQQBOBEAgAyAETQ0CIAMMAQsgBEEBdEEBcgsiBBArDAELCyACIAMQKyAAIAIpAgA3AgAgACACKAIINgIIIAJCADcCACACQQA2AgggBUEQaiQAIAIQQSAGQRBqJAALgAQBA38gAkGABE8EQCAAIAEgAhASIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAEEDcUUEQCAAIQIMAQsgAkUEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgJBA3FFDQEgAiADSQ0ACwsCQCADQXxxIgRBwABJDQAgAiAEQUBqIgVLDQADQCACIAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAACwsAIAEgAiAAEEIaCxIAIAFBAXRBwMoAakECIAAQQgv5AQEEfwJ/IAEQKiECIwBBEGsiBSQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgRBAE8EQAJAIAIgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyIDIARrTQRAIAJFDQECfyAALQALQQd2BEAgACgCAAwBCyAACyIDIAQEfyACIANqIAMgBBBFIAEgAkEAIAMgBGogAUsbQQAgASADTxtqBSABCyACEEUgACACIARqIgEQMSAFQQA6AA8gASADaiAFLQAPOgAADAELIAAgAyACIARqIANrIARBACACIAEQRAsgBUEQaiQAIAAMAQsQJwALC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRr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ACACQQA6AA8DQCABBEAgACACLQAPOgAAIAFBAWshASAAQQFqIQAMAQsLIAJBEGokAAsaACAALQALQQd2BEAgACgCCBogACgCABAZCwvmAQEFfyMAQRBrIgUkACMAQSBrIgMkACMAQRBrIgQkACAEIAA2AgwgBCAAIAFqNgIIIAMgBCgCDDYCGCADIAQoAgg2AhwgBEEQaiQAIAMoAhghBCADKAIcIQYjAEEQayIBJAAgASAGNgIMIAIgBCAGIARrIgQQQyABIAIgBGo2AgggAyABKAIMNgIQIAMgASgCCDYCFCABQRBqJAAgAyAAIAMoAhAgAGtqNgIMIAMgAiADKAIUIAJrajYCCCAFIAMoAgw2AgggBSADKAIINgIMIANBIGokACAFKAIMIQcgBUEQaiQAIAcLDwAgAgRAIAAgASACEDILC/UCAQV/IwBBEGsiByQAIAIgAUF/c0Hv////B2pNBEACfyAALQALQQd2BEAgACgCAAwBCyAACyEIIAdBBGoiCSAAIAFB5////wNJBH8gByABQQF0NgIMIAcgASACajYCBCMAQRBrIgIkACAJKAIAIAdBDGoiCigCAEkhCyACQRBqJAAgCiAJIAsbKAIAIgJBC08EfyACQRBqQXBxIgIgAkEBayICIAJBC0YbBUEKC0EBagVB7////wcLEDAgBygCBCECIAcoAggaIAQEQCACIAggBBAjCyAFBEAgAiAEaiAGIAUQIwsgAyAEayEGIAMgBEcEQCACIARqIAVqIAQgCGogBhAjCyABQQpHBEAgCBAZCyAAIAI2AgAgACAAKAIIQYCAgIB4cSAHKAIIQf////8HcXI2AgggACAAKAIIQYCAgIB4cjYCCCAAIAQgBWogBmoiADYCBCAHQQA6AAwgACACaiAHLQAMOgAAIAdBEGokAA8LECcACwoAIAAgASACEEMLuQEBBH8jAEEQayIEJAAgBCACNgIMIwBBoAFrIgMkACADIAAgA0GeAWogARsiBjYClAFBfyEFIAMgAUEBayIAQQAgACABTRs2ApgBIANBAEGQARAmIgBBfzYCTCAAQSA2AiQgAEF/NgJQIAAgAEGfAWo2AiwgACAAQZQBajYCVAJAIAFBAEgEQEG43gBBPTYCAAwBCyAGQQA6AAAgAEH9CiACQR8QTSEFCyAAQaABaiQAIARBEGokACAFCwQA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KAIARQ0AIAIgBCgCGDYCAAsgAEEBRiEFDAELQQAhBQsgBEFAayQAIAULMQAgACABKAIIQQAQHgRAIAEgAiADED0PCyAAKAIIIgAgASACIAMgACgCACgCHBEGAAsYACAAIAEoAghBABAeBEAgASACIAMQPQsLnQEBAn8jAEFAaiIDJAACf0EBIAAgAUEAEB4NABpBACABRQ0AGkEAIAFB3MwAECAiAUUNABogA0EMakEAQTQQJhogA0EBNgI4IANBfzYCFCADIAA2AhAgAyABNgIIIAEgA0EIaiACKAIAQQEgASgCACgCHBEGACADKAIgIgBBAUYEQCACIAMoAhg2AgALIABBAUYLIQQgA0FAayQAIAQLCgAgACABQQAQHgtOAgF/AXwjAEEQayICJAAgAkEANgIMIAEoAgRBpM8AIAJBDGoQCSEDIAIoAgwiAQRAIAEQAQsgACADRAAAAAAAAAAAYjoAOCACQRBqJAALNwEBfyMAQRBrIgIkACACIAEtADg2AgggAEGkzwAgAkEIahAHNgIEIABBpNUANgIAIAJBEGokAAuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECIaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECIaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACC5wBAQJ/IwBBEGsiAiQAQcgAEBwhASAAKAIEIgAQAiACIAA2AgggAUGcLSACQQhqEAc2AgQgAUGk1QA2AgAgAUEBNgIcIAFBpNUANgIYIAFBATYCFCABQaTVADYCECABQQE2AgwgAUGk1QA2AgggAUEAOgAgIAFBADYCRCABQoCAgIAwNwI8IAFBADsANyABQQA7ACsgAkEQaiQAIAELigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBSMAQSBrIgAkAAJAIAVC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBUIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBUIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIBQZH3AEkNACADIQIgBUL///////8/g0KAgICAgIDAAIQiBCEGAkAgAUGB9wBrIghBwABxBEAgAyAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAAgAjcDECAAIAY3AxgCQEGB+AAgAWsiAUHAAHEEQCAEIAFBQGqtiCEDQgAhBAwBCyABRQ0AIARBwAAgAWuthiADIAGtIgKIhCEDIAQgAoghBAsgACADNwMAIAAgBDcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACAJIAIgBUKAgICAgICAgIB/g4S/OQMAC0ABAn8jAEEQayICJAAgAiABNgIMIAJBpNUANgIIIAJBCGogABEBACEDIAIoAgwiAQRAIAEQAwsgAkEQaiQAIAMLBABCAAsEAEEAC/YCAQh/IwBBIGsiAyQAIAMgACgCHCIENgIQIAAoAhQhBSADIAI2AhwgAyABNgIYIAMgBSAEayIBNgIUIAEgAmohBUECIQcCfwJAAkACQCAAKAI8IANBEGoiAUECIANBDGoQDSIEBH9BuN4AIAQ2AgBBfwVBAAsEQCABIQQMAQsDQCAFIAMoAgwiBkYNAiAGQQBIBEAgASEEDAQLIAEgBiABKAIEIghLIglBA3RqIgQgBiAIQQAgCRtrIgggBCgCAGo2AgAgAUEMQQQgCRtqIgEgASgCACAIazYCACAFIAZrIQUgACgCPCAEIgEgByAJayIHIANBDGoQDSIGBH9BuN4AIAY2AgBBfwVBAAtFDQALCyAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2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Q0EASARAIAYoAjgQGQsgBiwAM0EASARAIAYoAigQGQsgBiwAJ0EATg0AIAYoAhwQGQsgAkEBaiICQQdHDQALIAVBAWoiBUEHRw0ACyMAQRBrIgwkAEHoJRAqIQcCfyAGQYgBaiIFLQALQQd2BEAgBSgCBAwBCyAFLQALQf8AcQshCAJ/An8jAEEQayIJJAAgBkH4AGohAiAHIAhqIgRB7////wdNBEACQCAEQQtJBEAgAkIANwIAIAJBADYCCCACIAItAAtBgAFxIARB/wBxcjoACyACIAItAAtB/wBxOgALDAELIARBC08EfyAEQRBqQXBxIgogCkEBayIKIApBC0YbBUEKC0EBaiIKEBwhCyACIAIoAghBgICAgHhxIApB/////wdxcjYCCCACIAIoAghBgICAgHhyNgIIIAIgCzYCACACIAQ2AgQLIAlBEGokACACDAELECcACyIELQALQQd2BEAgBCgCAAwBCyAECyIEQeglIAcQIyAEIAdqIgQCfyAFLQALQQd2BEAgBSgCAAwBCyAFCyAIECMgBCAIakEBEEAgDEEQaiQAIA0gAkHCKRAaIgIpAgA3AgAgDSACKAIINgIIIAJCADcCACACQQA2AgggBiwAgwFBAEgEQCAGKAJ4EBkLIAYsAJMBQQBIBEAgBigCiAEQGQsgBigClAEiBQRAIAYoApgBIgQgBSICRwRAA0AgBEEMayICKAIAIgcEQCAEQQhrIAc2AgAgBxAZCyACIgQgBUcNAAsgBigClAEhAgsgBiAFNgKYASACEBkLIAZBoAFqJAAgA0EcaiADKAIoIA0gAy0AMyICwEEASCIFGyADKAIsIAIgBRsQGxogAywAM0EATg0DIAMoAigQGQwDCyADQRxqQZshEBoaDAILIANBHGpB/isQGhoMAQsgA0EcakHnKxAaGgsCQAJAIAEoAjAgAS0ANyICIALAIgZBAEgbIgRBAWoiBUHw////B0kEQAJAAkAgBUELTwRAIAVBD3JBAWoiBxAcIQIgAyAFNgIsIAMgAjYCKCADIAdBgICAgHhyNgIwDAELIANBADYCMCADQgA3AyggAyAFOgAzIANBKGohAiAERQ0BCyACIAFBLGoiBSgCACAFIAZBAEgbIAQQMgsgAiAEakEKOwAAIANBHGogAygCKCADQShqIAMtADMiAsBBAEgiBRsgAygC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EGokAAsiAQF+IAEgAq0gA61CIIaEIAQgABEMACIFQiCIpyQBIAWnCzcBAX8jAEEQayICJAAgAiABKAI8NgIIIABB7M8AIAJBCGoQBzYCBCAAQaTVADYCACACQRBqJAALC8NKFQBBgAgL1CVzZXRCZWF1dHkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAB1bnNpZ25lZCBzaG9ydAB1bnNpZ25lZCBpbnQAaW5pdABmbG9hdAB1aW50NjRfdABibHVyUmFkaXVzAHZlY3RvcgBtaXJyb3IAYXR0YWNoU2hhZGVyAGRlbGV0ZVNoYWRlcgBjcmVhdGVTaGFkZXIAY29tcGlsZVNoYWRlcgB1bnNpZ25lZCBjaGFyAHN0ZDo6ZXhjZXB0aW9uAHJvdGF0aW9uAG5hbgBsaW5rUHJvZ3JhbQBkZWxldGVQcm9ncmFtAGNyZWF0ZVByb2dyYW0AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0V2F0ZXJNYXJrAHN0b3BXYXRlck1hcmsAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlZgBjbG9zZQBkb3VibGUAdmJNb2RlAHNoYWRlclNvdXJjZQB2b2lkAHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sATkFOAElORgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgB2ZWMyIGMgPSB2X3RleENvb3JkOwB2ZWMyIGMgPSB2ZWMyKDEuMCAtIHZfdGV4Q29vcmQueCwgdl90ZXhDb29yZC55KTsAYyA9IHZlYzIoMS4wIC0gYy54LCAxLjAgLSBjLnkpOwBjID0gdmVjMihjLnksIDEuMCAtIGMueCk7AGMgPSB2ZWMyKDEuMCAtIGMueSwgYy54KTsAQWxsSW4xAC4ALjAsAC4wKSpvKSoAKG51bGwpACkqby55KTsgICAgdmVjMiBjb29yZDIgPSB2ZWMyKGZsb2F0KAAgICAgYyA9IHZlYzIodl90ZXhDb29yZC54LCAxLjAgLSB2X3RleENvb3JkLnkpOyAgICB2ZWMyIGNvb3JkMSA9IHZlYzIoZmxvYXQoACksIChjLnkgLWNvb3JkMS55KSAvIG8ueSAvIGZsb2F0KAApKm8ueSk7ICAgIGlmIChjLnggPiBjb29yZDEueCAmJiBjLnggPCBjb29yZDIueCAmJiBjLnkgPiBjb29yZDEueSAmJiBjLnkgPCBjb29yZDIueSkgeyAgICAgIHZlYzQgd2F0ZXJDb2xvciA9IHRleHR1cmUod2F0ZXJNYXJrLCB2ZWMyKChjLnggLSBjb29yZDEueCkgIC8gby54IC8gZmxvYXQoACkgKiBvLngsIGZsb2F0KABvdXRDb2xvci5yZ2IgKz0gdmVjMygAKTsgICAgICAgdmVjMyBzbW9vdGhDb2xvciA9IG91dENvbG9yLnJnYiArIChvdXRDb2xvci5yZ2ItdmVjMyhoaWdoUGFzcykpKmFscGhhKjAuMTsgICAgICAgc21vb3RoQ29sb3IgPSBjbGFtcChwb3coc21vb3RoQ29sb3IsIHZlYzMoAGcrPUcoYyx2ZWMyKAAgICAgICB2ZWMyIG9mZnNldCA9IHZlYzIoAF0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMigAOyAAKSksIHZlYzMoMC4wKSwgdmVjMygxLjApKTsgICAgICB2ZWMzIHNjcmVlbiA9IHZlYzMoMS4wKSAtICh2ZWMzKDEuMCktc21vb3RoQ29sb3IpICogKHZlYzMoMS4wKS1vdXRDb2xvci5yZ2IpOyAgICAgICB2ZWMzIGxpZ2h0ZW4gPSBtYXgoc21vb3RoQ29sb3IsIG91dENvbG9yLnJnYik7ICAgICAgIHZlYzMgYmVhdXR5Q29sb3IgPSBtaXgobWl4KG91dENvbG9yLnJnYiwgc2NyZWVuLCBhbHBoYSksIGxpZ2h0ZW4sIGFscGhhKTsgICAgICBvdXRDb2xvci5yZ2IgPSBtaXgob3V0Q29sb3IucmdiLCBiZWF1dHlDb2xvciwgAAogICAgICBjb25zdCBtYXQzIHNhdHVyYXRlTWF0cml4ID0gbWF0MygxLjExMDIsLTAuMDU5OCwtMC4wNjEsLTAuMDc3NCwxLjA4MjYsLTAuMTE4NiwtMC4wMjI4LC0wLjAyMjgsMS4xNzcyKTsKICAgICAgdmVjMyB3YXJtQ29sb3IgPSBvdXRDb2xvci5yZ2IgKiBzYXR1cmF0ZU1hdHJpeDsKICAgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgd2FybUNvbG9yLCAAICAgICAgc2FtcGxlQ29sb3IgPSBzYW1wbGVDb2xvciAvIDYyLjA7ICAgICAgIGZsb2F0IGhpZ2hQYXNzID0gb3V0Q29sb3IuZyAtIHNhbXBsZUNvbG9yICsgMC41OyAgICAgICBjb25zdCBoaWdocCB2ZWMzIFcgPSB2ZWMzKDAuMjk5LDAuNTg3LDAuMTE0KTsgICAgICBmbG9hdCBsdW1pbmFuY2UgPSBkb3Qob3V0Q29sb3IucmdiLCBXKTsgICAgICAgZmxvYXQgYWxwaGEgPSBwb3cobHVtaW5hbmNlLCAAXSkuZyAqIAApKSk7ICAgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3Isd2F0ZXJDb2xvciwgIHdhdGVyQ29sb3IuYSk7ICAgIH0gICAgACk7ICAgIAApOyAgICAgIHZlYzIgYmx1ckNvb3JkaW5hdGVzWzI0XTsgICAgICAAICAgICAgZmxvYXQgc2FtcGxlQ29sb3IgPSBvdXRDb2xvci5nICogMjIuMDsgICAgICAgACN2ZXJzaW9uIDMwMCBlcwogICAgcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OwogICAgdW5pZm9ybSBzYW1wbGVyMkQgZnJhbWU7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBtYXNrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgYmc7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCB3YXRlck1hcms7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBsYXN0TWFzazsKICAgIHVuaWZvcm0gbWF0NCB1X29mZnNldE1hdHJpeDsKICAgIHVuaWZvcm0gdmVjMyB1X2NvbG9yOwogICAgaW4gdmVjMiB2X3RleENvb3JkOwogICAgb3V0IHZlYzQgb3V0Q29sb3I7CiAgICB2ZWM0IEcodmVjMiBjLHZlYzIgcyl7CiAgICAgIHJldHVybiB0ZXh0dXJlKGZyYW1lLHRleHR1cmUobWFzayxjK3MpLnI+MC4zP2M6YytzKTsKICAgIH0KICAgIHZvaWQgbWFpbigpIHsKICAgICAgAAogICAgICB2ZWMyIG9mZnNldE1hc2tVViA9ICh1X29mZnNldE1hdHJpeCAqIHZlYzQoYywgMCwgMSkpLnh5OwogICAgICBmbG9hdCBpc0luc2lkZVggPSAob2Zmc2V0TWFza1VWLnggPj0gMC4wKSAmJiAob2Zmc2V0TWFza1VWLnggPD0gMS4wKSA/IDEuMCA6IDAuMDsKICAgICAgZmxvYXQgaXNJbnNpZGVZID0gKG9mZnNldE1hc2tVVi55ID49IDAuMCkgJiYgKG9mZnNldE1hc2tVVi55IDw9IDEuMCkgPyAxLjAgOiAwLjA7CiAgICAgIGZsb2F0IGlzSW5zaWRlID0gaXNJbnNpZGVYICogaXNJbnNpZGVZOwogICAgICBmbG9hdCBtYXNrZWRBbHBoYSA9IHRleHR1cmUobWFzaywgb2Zmc2V0TWFza1VWKS5yICogaXNJbnNpZGU7CiAgICAgIG1hc2tlZEFscGhhID0gbWFza2VkQWxwaGE8MC41PzIuMCptYXNrZWRBbHBoYSptYXNrZWRBbHBoYToxLjAtMi4wKigxLjAtbWFza2VkQWxwaGEpKigxLjAtbWFza2VkQWxwaGEpOwogICAgICBzcmNfY29sb3IgPSB0ZXh0dXJlKGZyYW1lLCBvZmZzZXRNYXNrVVYgLCBpc0luc2lkZSk7CiAgICAgIG91dENvbG9yID0gbWl4KHRleHR1cmUoYmcsIGMpLCBzcmNfY29sb3IsIG1hc2tlZEFscGhhKTsKICAgIAAKICAgIHZlYzQgZyA9IHZlYzQoMC4wKTsKICAgIAAKICAgICAgYy55ID0gMS4wIC0gYy55OwogICAgICB2ZWM0IHNyY19jb2xvciA9IHRleHR1cmUoZnJhbWUsIGMpOwogICAgICBmbG9hdCBhID0gdGV4dHVyZShtYXNrLCBjKS5yOwogICAgICBhID0gYTwwLjU/Mi4wKmEqYToxLjAtMi4wKigxLjAtYSkqKDEuMC1hKTsKICAgICAgLy8gZmxvYXQgYTIgPSB0ZXh0dXJlKGxhc3RNYXNrLCBjKS5hOwogICAgICAvLyBhMiA9IGEyPDAuNT8yLjAqYTIqYTI6MS4wLTIuMCooMS4wLWEyKSooMS4wLWEyKTsKICAgICAgLy8gZmxvYXQgZGVsdGEgPSBhIC0gYTI7CiAgICAgIC8vIGlmIChkZWx0YSA8IDAuMjUgJiYgZGVsdGEgPiAtMC4yNSkKICAgICAgLy8gewogICAgICAvLyAgICAgYSA9IGEgKyAwLjUqZGVsdGE7CiAgICAgIC8vIH0KICAgICAgCiAgICAgIHZlYzIgbyA9IDEuMCAvIHZlYzIodGV4dHVyZVNpemUoZnJhbWUsIDApKTsKICAgIAAKICAgICAgb3V0Q29sb3IgPSBnOwogIAAjdmVyc2lvbiAzMDAgZXMKaW4gdmVjMiBhX3Bvc2l0aW9uOwppbiB2ZWMyIGFfdGV4Q29vcmQ7Cgp1bmlmb3JtIG1hdDQgdV90ZXh0dXJlTWF0cml4OwoKb3V0IHZlYzIgdl90ZXhDb29yZDsKdm9pZCBtYWluKCkgewogIGdsX1Bvc2l0aW9uID0gdmVjNChhX3Bvc2l0aW9uLngsIGFfcG9zaXRpb24ueSwgMCwgMSk7CiAgdl90ZXhDb29yZCA9KHVfdGV4dHVyZU1hdHJpeCAqIHZlYzQoYV90ZXhDb29yZCwgMCwgMSkpLnh5Owp9CgBzZXRCZWF1dHkgJWYgJWYgJWYgJWYgJWYKAG91dENvbG9yID0gc3JjX2NvbG9yOwoAb3V0Q29sb3IgPSBtaXgodmVjNCh1X2NvbG9yLDEuMCksc3JjX2NvbG9yLGEpOwoANkFsbEluMQAAAFAoAAAuFgAAUDZBbGxJbjEAAAAA1CgAAEAWAAAAAAAAOBYAAFBLNkFsbEluMQAAANQoAABcFgAAAQAAADgWAABpaQB2AHZpAEwWAACcFgAATjEwZW1zY3JpcHRlbjN2YWxFAABQKAAAiBYAAGlpaQB2aWlpAAAAAIwnAABMFgAAQCgAAEAoAABAKAAAQCgAAEAoAAB2aWlkZGRkZABB4C0LyAiMJwAATBYAAEAoAABAKAAAQCgAAEAoAAB2aWlkZGRkAIwnAABMFgAAdmlpAIwnAACcFgAAnBYAAEwWAACcFgAA7CcAAIwnAACcFgAAcBcAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAABQKAAAMBcAAJwWAACMJwAAnBYAAJwWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAUCgAAIgXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAUCgAANAXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAFAoAAAYGAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAABQKAAAZBgAAE4x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")||(qt=rt,rt=x.locateFile?x.locateFile(qt,z):z+qt);var _g=W=>{for(;W.length>0;)W.shift()(x)};x.noExitRuntime;function Lg(W){this.excPtr=W,this.ptr=W-24,this.set_type=function(O){HA[this.ptr+4>>2]=O},this.get_type=function(){return HA[this.ptr+4>>2]},this.set_destructor=function(O){HA[this.ptr+8>>2]=O},this.get_destructor=function(){return HA[this.ptr+8>>2]},this.set_caught=function(O){O=O?1:0,$A[this.ptr+12|0]=O},this.get_caught=function(){return $A[this.ptr+12|0]!=0},this.set_rethrown=function(O){O=O?1:0,$A[this.ptr+13|0]=O},this.get_rethrown=function(){return $A[this.ptr+13|0]!=0},this.init=function(O,QA){this.set_adjusted_ptr(0),this.set_type(O),this.set_destructor(QA)},this.set_adjusted_ptr=function(O){HA[this.ptr+16>>2]=O},this.get_adjusted_ptr=function(){return HA[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Ba(this.get_type()))return HA[this.excPtr>>2];var O=this.get_adjusted_ptr();return O!==0?O:this.excPtr}}var Ro,lg,Tn,mi=W=>{for(var O="",QA=W;KA[QA];)O+=Ro[KA[QA++]];return O},Ja={},or={},bg={},St=W=>{throw new lg(W)},Bt=W=>{throw new Tn(W)},ao=(W,O,QA)=>{function vA(ae){var De=QA(ae);De.length!==W.length&&Bt("Mismatched type converter count");for(var Re=0;Re<W.length;++Re)oi(W[Re],De[Re])}W.forEach((function(ae){bg[ae]=O}));var LA=new Array(O.length),Ae=[],Be=0;O.forEach(((ae,De)=>{or.hasOwnProperty(ae)?LA[De]=or[ae]:(Ae.push(ae),Ja.hasOwnProperty(ae)||(Ja[ae]=[]),Ja[ae].push((()=>{LA[De]=or[ae],++Be===Ae.length&&vA(LA)})))})),Ae.length===0&&vA(LA)};function oi(W,O,QA={}){if(!("argPackAdvance"in O))throw new TypeError("registerType registeredInstance requires argPackAdvance");return(function(vA,LA,Ae={}){var Be=LA.name;if(vA||St(`type "${Be}" must have a positive integer typeid pointer`),or.hasOwnProperty(vA)){if(Ae.ignoreDuplicateRegistrations)return;St(`Cannot register type '${Be}' twice`)}if(or[vA]=LA,delete bg[vA],Ja.hasOwnProperty(vA)){var ae=Ja[vA];delete Ja[vA],ae.forEach((De=>De()))}})(W,O,QA)}var Yg,Qi=W=>{St(W.$$.ptrType.registeredClass.name+" instance already deleted")},Gt=!1,vi=W=>{},qs=W=>{W.count.value-=1,W.count.value===0&&(O=>{O.smartPtr?O.smartPtrType.rawDestructor(O.smartPtr):O.ptrType.registeredClass.rawDestructor(O.ptr)})(W)},ug=(W,O,QA)=>{if(O===QA)return W;if(QA.baseClass===void 0)return null;var vA=ug(W,O,QA.baseClass);return vA===null?null:QA.downcast(vA)},Vi={},ui=()=>Object.keys(Je).length,uI=()=>{var W=[];for(var O in Je)Je.hasOwnProperty(O)&&W.push(Je[O]);return W},Jg=[],at=()=>{for(;Jg.length;){var W=Jg.pop();W.$$.deleteScheduled=!1,W.delete()}},gr=W=>{Yg=W,Jg.length&&Yg&&Yg(at)},Je={},xt=(W,O)=>(O=((QA,vA)=>{for(vA===void 0&&St("ptr should not be undefined");QA.baseClass;)vA=QA.upcast(vA),QA=QA.baseClass;return vA})(W,O),Je[O]),Io=(W,O)=>(O.ptrType&&O.ptr||Bt("makeClassHandle requires ptr and ptrType"),!!O.smartPtrType!=!!O.smartPtr&&Bt("Both smartPtrType and smartPtr must be specified"),O.count={value:1},vr(Object.create(W,{$$:{value:O}})));function dI(W){var O=this.getPointee(W);if(!O)return this.destructor(W),null;var QA=xt(this.registeredClass,O);if(QA!==void 0){if(QA.$$.count.value===0)return QA.$$.ptr=O,QA.$$.smartPtr=W,QA.clone();var vA=QA.clone();return this.destructor(W),vA}function LA(){return this.isSmartPointer?Io(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:O,smartPtrType:this,smartPtr:W}):Io(this.registeredClass.instancePrototype,{ptrType:this,ptr:W})}var Ae,Be=this.registeredClass.getActualType(O),ae=Vi[Be];if(!ae)return LA.call(this);Ae=this.isConst?ae.constPointerType:ae.pointerType;var De=ug(O,this.registeredClass,Ae.registeredClass);return De===null?LA.call(this):this.isSmartPointer?Io(Ae.registeredClass.instancePrototype,{ptrType:Ae,ptr:De,smartPtrType:this,smartPtr:W}):Io(Ae.registeredClass.instancePrototype,{ptrType:Ae,ptr:De})}var vr=W=>typeof FinalizationRegistry>"u"?(vr=O=>O,W):(Gt=new FinalizationRegistry((O=>{qs(O.$$)})),vi=O=>Gt.unregister(O),(vr=O=>{var QA=O.$$;if(QA.smartPtr){var vA={$$:QA};Gt.register(O,vA,O)}return O})(W));function gi(){}var xg=(W,O)=>Object.defineProperty(O,"name",{value:W}),Ps=(W,O,QA)=>{if(W[O].overloadTable===void 0){var vA=W[O];W[O]=function(){return W[O].overloadTable.hasOwnProperty(arguments.length)||St(`Function '${QA}' called with an invalid number of arguments (${arguments.length}) - expects one of (${W[O].overloadTable})!`),W[O].overloadTable[arguments.length].apply(this,arguments)},W[O].overloadTable=[],W[O].overloadTable[vA.argCount]=vA}};function PB(W,O,QA,vA,LA,Ae,Be,ae){this.name=W,this.constructor=O,this.instancePrototype=QA,this.rawDestructor=vA,this.baseClass=LA,this.getActualType=Ae,this.upcast=Be,this.downcast=ae,this.pureVirtualFunctions=[]}var DI=(W,O,QA)=>{for(;O!==QA;)O.upcast||St(`Expected null or instance of ${QA.name}, got an instance of ${O.name}`),W=O.upcast(W),O=O.baseClass;return W};function ri(W,O){if(O===null)return this.isReference&&St(`null is not a valid ${this.name}`),0;O.$$||St(`Cannot pass "${Kg(O)}" as a ${this.name}`),O.$$.ptr||St(`Cannot pass deleted object as a pointer of type ${this.name}`);var QA=O.$$.ptrType.registeredClass;return DI(O.$$.ptr,QA,this.registeredClass)}function rr(W,O){var QA;if(O===null)return this.isReference&&St(`null is not a valid ${this.name}`),this.isSmartPointer?(QA=this.rawConstructor(),W!==null&&W.push(this.rawDestructor,QA),QA):0;O.$$||St(`Cannot pass "${Kg(O)}" as a ${this.name}`),O.$$.ptr||St(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&O.$$.ptrType.isConst&&St(`Cannot convert argument of type ${O.$$.smartPtrType?O.$$.smartPtrType.name:O.$$.ptrType.name} to parameter type ${this.name}`);var vA=O.$$.ptrType.registeredClass;if(QA=DI(O.$$.ptr,vA,this.registeredClass),this.isSmartPointer)switch(O.$$.smartPtr===void 0&&St("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:O.$$.smartPtrType===this?QA=O.$$.smartPtr:St(`Cannot convert argument of type ${O.$$.smartPtrType?O.$$.smartPtrType.name:O.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:QA=O.$$.smartPtr;break;case 2:if(O.$$.smartPtrType===this)QA=O.$$.smartPtr;else{var LA=O.clone();QA=this.rawShare(QA,dg.toHandle((()=>LA.delete()))),W!==null&&W.push(this.rawDestructor,QA)}break;default:St("Unsupporting sharing policy")}return QA}function tg(W,O){if(O===null)return this.isReference&&St(`null is not a valid ${this.name}`),0;O.$$||St(`Cannot pass "${Kg(O)}" as a ${this.name}`),O.$$.ptr||St(`Cannot pass deleted object as a pointer of type ${this.name}`),O.$$.ptrType.isConst&&St(`Cannot convert argument of type ${O.$$.ptrType.name} to parameter type ${this.name}`);var QA=O.$$.ptrType.registeredClass;return DI(O.$$.ptr,QA,this.registeredClass)}function ar(W){return this.fromWireType(HA[W>>2])}function sa(W,O,QA,vA,LA,Ae,Be,ae,De,Re,Ye){this.name=W,this.registeredClass=O,this.isReference=QA,this.isConst=vA,this.isSmartPointer=LA,this.pointeeType=Ae,this.sharingPolicy=Be,this.rawGetPointee=ae,this.rawConstructor=De,this.rawShare=Re,this.rawDestructor=Ye,LA||O.baseClass!==void 0?this.toWireType=rr:vA?(this.toWireType=ri,this.destructorFunction=null):(this.toWireType=tg,this.destructorFunction=null)}var xa,ig,Se=[],Ka=W=>{var O=Se[W];return O||(W>=Se.length&&(Se.length=W+1),Se[W]=O=xa.get(W)),O},Un=(W,O,QA)=>W.includes("j")?((vA,LA,Ae)=>{var Be=x["dynCall_"+vA];return Ae&&Ae.length?Be.apply(null,[LA].concat(Ae)):Be.call(null,LA)})(W,O,QA):Ka(O).apply(null,QA),Ht=(W,O)=>{var QA,vA,LA,Ae=(W=mi(W)).includes("j")?(QA=W,vA=O,LA=[],function(){return LA.length=0,Object.assign(LA,arguments),Un(QA,vA,LA)}):Ka(O);return typeof Ae!="function"&&St(`unknown function pointer with signature ${W}: ${O}`),Ae},jt=W=>{var O=js(W),QA=mi(O);return Hg(O),QA},Wi=(W,O)=>{var QA=[],vA={};throw O.forEach((function LA(Ae){vA[Ae]||or[Ae]||(bg[Ae]?bg[Ae].forEach(LA):(QA.push(Ae),vA[Ae]=!0))})),new ig(`${W}: `+QA.map(jt).join([", "]))},Ha=(W,O)=>{for(var QA=[],vA=0;vA<W;vA++)QA.push(HA[O+4*vA>>2]);return QA},Tr=W=>{for(;W.length;){var O=W.pop();W.pop()(O)}};function mo(W,O,QA,vA,LA,Ae){var Be=O.length;Be<2&&St("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var ae=O[1]!==null&&QA!==null,De=!1,Re=1;Re<O.length;++Re)if(O[Re]!==null&&O[Re].destructorFunction===void 0){De=!0;break}var Ye=O[0].name!=="void",Ct=Be-2,It=new Array(Ct),Ge=[],je=[];return xg(W,(function(){var Si;arguments.length!==Ct&&St(`function ${W} called with ${arguments.length} arguments, expected ${Ct}`),je.length=0,Ge.length=ae?2:1,Ge[0]=LA,ae&&(Si=O[1].toWireType(je,this),Ge[1]=Si);for(var Bi=0;Bi<Ct;++Bi)It[Bi]=O[Bi+2].toWireType(je,arguments[Bi]),Ge.push(It[Bi]);return(function(no){if(De)Tr(je);else for(var vt=ae?1:2;vt<O.length;vt++){var Ai=vt===1?Si:It[vt-2];O[vt].destructorFunction!==null&&O[vt].destructorFunction(Ai)}if(Ye)return O[0].fromWireType(no)})(vA.apply(null,Ge))}))}var Ur=(W,O,QA)=>(W instanceof Object||St(`${QA} with invalid "this": ${W}`),W instanceof O.registeredClass.constructor||St(`${QA} incompatible with "this" of type ${W.constructor.name}`),W.$$.ptr||St(`cannot call emscripten binding method ${QA} on deleted object`),DI(W.$$.ptr,W.$$.ptrType.registeredClass,O.registeredClass));function _r(){this.allocated=[void 0],this.freelist=[]}var Lo=new _r,pI=W=>{W>=Lo.reserved&&--Lo.get(W).refcount==0&&Lo.free(W)},og=()=>{for(var W=0,O=Lo.reserved;O<Lo.allocated.length;++O)Lo.allocated[O]!==void 0&&++W;return W},dg={toValue:W=>(W||St("Cannot use deleted val. handle = "+W),Lo.get(W).value),toHandle:W=>{switch(W){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Lo.allocate({refcount:1,value:W})}}};function Vs(W){return this.fromWireType(SA[W>>2])}var Ft,yI,Ot,Kg=W=>{if(W===null)return"null";var O=typeof W;return O==="object"||O==="array"||O==="function"?W.toString():""+W},Ei=(W,O)=>{switch(O){case 4:return function(QA){return this.fromWireType(At[QA>>2])};case 8:return function(QA){return this.fromWireType(we[QA>>3])};default:throw new TypeError(`invalid float width (${O}): ${W}`)}},Po=(W,O,QA)=>{switch(O){case 1:return QA?vA=>$A[vA|0]:vA=>KA[vA|0];case 2:return QA?vA=>Qe[vA>>1]:vA=>zA[vA>>1];case 4:return QA?vA=>SA[vA>>2]:vA=>HA[vA>>2];default:throw new TypeError(`invalid integer width (${O}): ${W}`)}},VB=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,Vo=(W,O,QA)=>{for(var vA=O+QA,LA=O;W[LA]&&!(LA>=vA);)++LA;if(LA-O>16&&W.buffer&&VB)return VB.decode(W.subarray(O,LA));for(var Ae="";O<LA;){var Be=W[O++];if(128&Be){var ae=63&W[O++];if((224&Be)!=192){var De=63&W[O++];if((Be=(240&Be)==224?(15&Be)<<12|ae<<6|De:(7&Be)<<18|ae<<12|De<<6|63&W[O++])<65536)Ae+=String.fromCharCode(Be);else{var Re=Be-65536;Ae+=String.fromCharCode(55296|Re>>10,56320|1023&Re)}}else Ae+=String.fromCharCode((31&Be)<<6|ae)}else Ae+=String.fromCharCode(Be)}return Ae},ci=(W,O)=>W?Vo(KA,W,O):"",Ea=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,RI=(W,O)=>{for(var QA=W,vA=QA>>1,LA=vA+O/2;!(vA>=LA)&&zA[vA];)++vA;if((QA=vA<<1)-W>32&&Ea)return Ea.decode(KA.subarray(W,QA));for(var Ae="",Be=0;!(Be>=O/2);++Be){var ae=Qe[W+2*Be>>1];if(ae==0)break;Ae+=String.fromCharCode(ae)}return Ae},Dg=(W,O,QA)=>{if(QA===void 0&&(QA=2147483647),QA<2)return 0;for(var vA=O,LA=(QA-=2)<2*W.length?QA/2:W.length,Ae=0;Ae<LA;++Ae){var Be=W.charCodeAt(Ae);Qe[O>>1]=Be,O+=2}return Qe[O>>1]=0,O-vA},mI=W=>2*W.length,fI=(W,O)=>{for(var QA=0,vA="";!(QA>=O/4);){var LA=SA[W+4*QA>>2];if(LA==0)break;if(++QA,LA>=65536){var Ae=LA-65536;vA+=String.fromCharCode(55296|Ae>>10,56320|1023&Ae)}else vA+=String.fromCharCode(LA)}return vA},Ao=(W,O,QA)=>{if(QA===void 0&&(QA=2147483647),QA<4)return 0;for(var vA=O,LA=vA+QA-4,Ae=0;Ae<W.length;++Ae){var Be=W.charCodeAt(Ae);if(Be>=55296&&Be<=57343&&(Be=65536+((1023&Be)<<10)|1023&W.charCodeAt(++Ae)),SA[O>>2]=Be,(O+=4)+4>LA)break}return SA[O>>2]=0,O-vA},Ws=W=>{for(var O=0,QA=0;QA<W.length;++QA){var vA=W.charCodeAt(QA);vA>=55296&&vA<=57343&&++QA,O+=4}return O},gg=(W,O)=>{var QA=or[W];return QA===void 0&&St(O+" has unknown type "+jt(W)),QA},Oa=(W,O,QA)=>{var vA=[],LA=W.toWireType(vA,QA);return vA.length&&(HA[O>>2]=dg.toHandle(vA)),LA},wI={},pg=[],_n=Reflect.construct,WB=[null,[],[]];(()=>{for(var W=new Array(256),O=0;O<256;++O)W[O]=String.fromCharCode(O);Ro=W})(),lg=x.BindingError=class extends Error{constructor(W){super(W),this.name="BindingError"}},Tn=x.InternalError=class extends Error{constructor(W){super(W),this.name="InternalError"}},Object.assign(gi.prototype,{isAliasOf(W){if(!(this instanceof gi)||!(W instanceof gi))return!1;var O=this.$$.ptrType.registeredClass,QA=this.$$.ptr;W.$$=W.$$;for(var vA=W.$$.ptrType.registeredClass,LA=W.$$.ptr;O.baseClass;)QA=O.upcast(QA),O=O.baseClass;for(;vA.baseClass;)LA=vA.upcast(LA),vA=vA.baseClass;return O===vA&&QA===LA},clone(){if(this.$$.ptr||Qi(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var W,O=vr(Object.create(Object.getPrototypeOf(this),{$$:{value:(W=this.$$,{count:W.count,deleteScheduled:W.deleteScheduled,preservePointerOnDelete:W.preservePointerOnDelete,ptr:W.ptr,ptrType:W.ptrType,smartPtr:W.smartPtr,smartPtrType:W.smartPtrType})}}));return O.$$.count.value+=1,O.$$.deleteScheduled=!1,O},delete(){this.$$.ptr||Qi(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&St("Object already scheduled for deletion"),vi(this),qs(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||Qi(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&St("Object already scheduled for deletion"),Jg.push(this),Jg.length===1&&Yg&&Yg(at),this.$$.deleteScheduled=!0,this}}),x.getInheritedInstanceCount=ui,x.getLiveInheritedInstances=uI,x.flushPendingDeletes=at,x.setDelayFunction=gr,Object.assign(sa.prototype,{getPointee(W){return this.rawGetPointee&&(W=this.rawGetPointee(W)),W},destructor(W){this.rawDestructor&&this.rawDestructor(W)},argPackAdvance:8,readValueFromPointer:ar,deleteObject(W){W!==null&&W.delete()},fromWireType:dI}),ig=x.UnboundTypeError=(Ft=Error,(Ot=xg(yI="UnboundTypeError",(function(W){this.name=yI,this.message=W;var O=new Error(W).stack;O!==void 0&&(this.stack=this.toString()+`
|
||
`+O.replace(/^Error(:[^\n]*)?\n/,""))}))).prototype=Object.create(Ft.prototype),Ot.prototype.constructor=Ot,Ot.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},Ot),Object.assign(_r.prototype,{get(W){return this.allocated[W]},has(W){return this.allocated[W]!==void 0},allocate(W){var O=this.freelist.pop()||this.allocated.length;return this.allocated[O]=W,O},free(W){this.allocated[W]=void 0,this.freelist.push(W)}}),Lo.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Lo.reserved=Lo.allocated.length,x.count_emval_handles=og;var Pt,Zs={w:(W,O,QA)=>{throw new Lg(W).init(O,QA),W},q:(W,O,QA,vA,LA)=>{},u:(W,O,QA,vA)=>{oi(W,{name:O=mi(O),fromWireType:function(LA){return!!LA},toWireType:function(LA,Ae){return Ae?QA:vA},argPackAdvance:8,readValueFromPointer:function(LA){return this.fromWireType(KA[LA])},destructorFunction:null})},y:(W,O,QA,vA,LA,Ae,Be,ae,De,Re,Ye,Ct,It)=>{Ye=mi(Ye),Ae=Ht(LA,Ae),ae&&(ae=Ht(Be,ae)),Re&&(Re=Ht(De,Re)),It=Ht(Ct,It);var Ge=(je=>{if(je===void 0)return"_unknown";var Si=(je=je.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return Si>=48&&Si<=57?`_${je}`:je})(Ye);((je,Si,Bi)=>{x.hasOwnProperty(je)?(St(`Cannot register public name '${je}' twice`),Ps(x,je,je),x.hasOwnProperty(Bi)&&St(`Cannot register multiple overloads of a function with the same number of arguments (${Bi})!`),x[je].overloadTable[Bi]=Si):x[je]=Si})(Ge,(function(){Wi(`Cannot construct ${Ye} due to unbound types`,[vA])})),ao([W,O,QA],vA?[vA]:[],(function(je){var Si,Bi;je=je[0],Bi=vA?(Si=je.registeredClass).instancePrototype:gi.prototype;var no=xg(Ye,(function(){if(Object.getPrototypeOf(this)!==vt)throw new lg("Use 'new' to construct "+Ye);if(Ai.constructor_body===void 0)throw new lg(Ye+" has no accessible constructor");var Lr=Ai.constructor_body[arguments.length];if(Lr===void 0)throw new lg(`Tried to invoke ctor of ${Ye} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Ai.constructor_body).toString()}) parameters instead!`);return Lr.apply(this,arguments)})),vt=Object.create(Bi,{constructor:{value:no}});no.prototype=vt;var Ai=new PB(Ye,no,vt,It,Si,Ae,ae,Re);Ai.baseClass&&(Ai.baseClass.__derivedClasses===void 0&&(Ai.baseClass.__derivedClasses=[]),Ai.baseClass.__derivedClasses.push(Ai));var Xs=new sa(Ye,Ai,!0,!1,!1),Og=new sa(Ye+"*",Ai,!1,!1,!1),Ca=new sa(Ye+" const*",Ai,!1,!0,!1);return Vi[W]={pointerType:Og,constPointerType:Ca},((Lr,so,Ti)=>{x.hasOwnProperty(Lr)||Bt("Replacing nonexistant public symbol"),x[Lr].overloadTable!==void 0&&Ti!==void 0?x[Lr].overloadTable[Ti]=so:(x[Lr]=so,x[Lr].argCount=Ti)})(Ge,no),[Xs,Og,Ca]}))},x:(W,O,QA,vA,LA,Ae)=>{var Be=Ha(O,QA);LA=Ht(vA,LA),ao([],[W],(function(ae){var De=`constructor ${(ae=ae[0]).name}`;if(ae.registeredClass.constructor_body===void 0&&(ae.registeredClass.constructor_body=[]),ae.registeredClass.constructor_body[O-1]!==void 0)throw new lg(`Cannot register multiple constructors with identical number of parameters (${O-1}) for class '${ae.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return ae.registeredClass.constructor_body[O-1]=()=>{Wi(`Cannot construct ${ae.name} due to unbound types`,Be)},ao([],Be,(Re=>(Re.splice(1,0,null),ae.registeredClass.constructor_body[O-1]=mo(De,Re,null,LA,Ae),[]))),[]}))},i:(W,O,QA,vA,LA,Ae,Be,ae,De)=>{var Re=Ha(QA,vA);O=(Ye=>{const Ct=(Ye=Ye.trim()).indexOf("(");return Ct!==-1?Ye.substr(0,Ct):Ye})(O=mi(O)),Ae=Ht(LA,Ae),ao([],[W],(function(Ye){var Ct=`${(Ye=Ye[0]).name}.${O}`;function It(){Wi(`Cannot call ${Ct} due to unbound types`,Re)}O.startsWith("@@")&&(O=Symbol[O.substring(2)]),ae&&Ye.registeredClass.pureVirtualFunctions.push(O);var Ge=Ye.registeredClass.instancePrototype,je=Ge[O];return je===void 0||je.overloadTable===void 0&&je.className!==Ye.name&&je.argCount===QA-2?(It.argCount=QA-2,It.className=Ye.name,Ge[O]=It):(Ps(Ge,O,Ct),Ge[O].overloadTable[QA-2]=It),ao([],Re,(function(Si){var Bi=mo(Ct,Si,Ye,Ae,Be);return Ge[O].overloadTable===void 0?(Bi.argCount=QA-2,Ge[O]=Bi):Ge[O].overloadTable[QA-2]=Bi,[]})),[]}))},k:(W,O,QA,vA,LA,Ae,Be,ae,De,Re)=>{O=mi(O),LA=Ht(vA,LA),ao([],[W],(function(Ye){var Ct=`${(Ye=Ye[0]).name}.${O}`,It={get(){Wi(`Cannot access ${Ct} due to unbound types`,[QA,Be])},enumerable:!0,configurable:!0};return It.set=De?()=>Wi(`Cannot access ${Ct} due to unbound types`,[QA,Be]):Ge=>St(Ct+" is a read-only property"),Object.defineProperty(Ye.registeredClass.instancePrototype,O,It),ao([],De?[QA,Be]:[QA],(function(Ge){var je=Ge[0],Si={get(){var no=Ur(this,Ye,Ct+" getter");return je.fromWireType(LA(Ae,no))},enumerable:!0};if(De){De=Ht(ae,De);var Bi=Ge[1];Si.set=function(no){var vt=Ur(this,Ye,Ct+" setter"),Ai=[];De(Re,vt,Bi.toWireType(Ai,no)),Tr(Ai)}}return Object.defineProperty(Ye.registeredClass.instancePrototype,O,Si),[]})),[]}))},t:(W,O)=>{oi(W,{name:O=mi(O),fromWireType:QA=>{var vA=dg.toValue(QA);return pI(QA),vA},toWireType:(QA,vA)=>dg.toHandle(vA),argPackAdvance:8,readValueFromPointer:Vs,destructorFunction:null})},p:(W,O,QA)=>{oi(W,{name:O=mi(O),fromWireType:vA=>vA,toWireType:(vA,LA)=>LA,argPackAdvance:8,readValueFromPointer:Ei(O,QA),destructorFunction:null})},g:(W,O,QA,vA,LA)=>{O=mi(O);var Ae=De=>De;if(vA===0){var Be=32-8*QA;Ae=De=>De<<Be>>>Be}var ae=O.includes("unsigned");oi(W,{name:O,fromWireType:Ae,toWireType:ae?function(De,Re){return this.name,Re>>>0}:function(De,Re){return this.name,Re},argPackAdvance:8,readValueFromPointer:Po(O,QA,vA!==0),destructorFunction:null})},a:(W,O,QA)=>{var vA=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][O];function LA(Ae){var Be=HA[Ae>>2],ae=HA[Ae+4>>2];return new vA($A.buffer,ae,Be)}oi(W,{name:QA=mi(QA),fromWireType:LA,argPackAdvance:8,readValueFromPointer:LA},{ignoreDuplicateRegistrations:!0})},o:(W,O)=>{var QA=(O=mi(O))==="std::string";oi(W,{name:O,fromWireType(vA){var LA,Ae=HA[vA>>2],Be=vA+4;if(QA)for(var ae=Be,De=0;De<=Ae;++De){var Re=Be+De;if(De==Ae||KA[Re]==0){var Ye=ci(ae,Re-ae);LA===void 0?LA=Ye:(LA+="\0",LA+=Ye),ae=Re+1}}else{var Ct=new Array(Ae);for(De=0;De<Ae;++De)Ct[De]=String.fromCharCode(KA[Be+De]);LA=Ct.join("")}return Hg(vA),LA},toWireType(vA,LA){var Ae;LA instanceof ArrayBuffer&&(LA=new Uint8Array(LA));var Be=typeof LA=="string";Be||LA instanceof Uint8Array||LA instanceof Uint8ClampedArray||LA instanceof Int8Array||St("Cannot pass non-string to std::string"),Ae=QA&&Be?(Ct=>{for(var It=0,Ge=0;Ge<Ct.length;++Ge){var je=Ct.charCodeAt(Ge);je<=127?It++:je<=2047?It+=2:je>=55296&&je<=57343?(It+=4,++Ge):It+=3}return It})(LA):LA.length;var ae=Ln(4+Ae+1),De=ae+4;if(HA[ae>>2]=Ae,QA&&Be)((Ct,It,Ge,je)=>{if(!(je>0))return 0;for(var Si=Ge,Bi=Ge+je-1,no=0;no<Ct.length;++no){var vt=Ct.charCodeAt(no);if(vt>=55296&&vt<=57343&&(vt=65536+((1023&vt)<<10)|1023&Ct.charCodeAt(++no)),vt<=127){if(Ge>=Bi)break;It[Ge++]=vt}else if(vt<=2047){if(Ge+1>=Bi)break;It[Ge++]=192|vt>>6,It[Ge++]=128|63&vt}else if(vt<=65535){if(Ge+2>=Bi)break;It[Ge++]=224|vt>>12,It[Ge++]=128|vt>>6&63,It[Ge++]=128|63&vt}else{if(Ge+3>=Bi)break;It[Ge++]=240|vt>>18,It[Ge++]=128|vt>>12&63,It[Ge++]=128|vt>>6&63,It[Ge++]=128|63&vt}}It[Ge]=0})(LA,KA,De,Ae+1);else if(Be)for(var Re=0;Re<Ae;++Re){var Ye=LA.charCodeAt(Re);Ye>255&&(Hg(De),St("String has UTF-16 code units that do not fit in 8 bits")),KA[De+Re]=Ye}else for(Re=0;Re<Ae;++Re)KA[De+Re]=LA[Re];return vA!==null&&vA.push(Hg,ae),ae},argPackAdvance:8,readValueFromPointer:ar,destructorFunction(vA){Hg(vA)}})},l:(W,O,QA)=>{var vA,LA,Ae,Be,ae;QA=mi(QA),O===2?(vA=RI,LA=Dg,Be=mI,Ae=()=>zA,ae=1):O===4&&(vA=fI,LA=Ao,Be=Ws,Ae=()=>HA,ae=2),oi(W,{name:QA,fromWireType:De=>{for(var Re,Ye=HA[De>>2],Ct=Ae(),It=De+4,Ge=0;Ge<=Ye;++Ge){var je=De+4+Ge*O;if(Ge==Ye||Ct[je>>ae]==0){var Si=vA(It,je-It);Re===void 0?Re=Si:(Re+="\0",Re+=Si),It=je+O}}return Hg(De),Re},toWireType:(De,Re)=>{typeof Re!="string"&&St(`Cannot pass non-string to C++ string type ${QA}`);var Ye=Be(Re),Ct=Ln(4+Ye+O);return HA[Ct>>2]=Ye>>ae,LA(Re,Ct+4,Ye+O),De!==null&&De.push(Hg,Ct),Ct},argPackAdvance:8,readValueFromPointer:Vs,destructorFunction(De){Hg(De)}})},v:(W,O)=>{oi(W,{isVoid:!0,name:O=mi(O),argPackAdvance:0,fromWireType:()=>{},toWireType:(QA,vA)=>{}})},j:(W,O,QA)=>(W=dg.toValue(W),O=gg(O,"emval::as"),Oa(O,QA,W)),e:(W,O,QA,vA,LA)=>{var Ae,Be;return(W=pg[W])(O=dg.toValue(O),O[QA=(Be=wI[Ae=QA])===void 0?mi(Ae):Be],vA,LA)},d:pI,f:(W,O,QA)=>{var vA=((Re,Ye)=>{for(var Ct=new Array(Re),It=0;It<Re;++It)Ct[It]=gg(HA[Ye+4*It>>2],"parameter "+It);return Ct})(W,O),LA=vA.shift();W--;var Ae,Be,ae=new Array(W),De=`methodCaller<(${vA.map((Re=>Re.name)).join(", ")}) => ${LA.name}>`;return Ae=xg(De,((Re,Ye,Ct,It)=>{for(var Ge=0,je=0;je<W;++je)ae[je]=vA[je].readValueFromPointer(It+Ge),Ge+=vA[je].argPackAdvance;var Si=QA===1?_n(Ye,ae):Ye.apply(Re,ae);for(je=0;je<W;++je)vA[je].deleteObject&&vA[je].deleteObject(ae[je]);return Oa(LA,Ct,Si)})),Be=pg.length,pg.push(Ae),Be},c:W=>{W>4&&(Lo.get(W).refcount+=1)},b:W=>{var O=dg.toValue(W);Tr(O),pI(W)},h:(W,O)=>{var QA=(W=gg(W,"_emval_take_value")).readValueFromPointer(O);return dg.toHandle(QA)},m:()=>{$t("")},s:(W,O,QA)=>KA.copyWithin(W,O,O+QA),r:W=>{KA.length,$t("OOM")},n:(W,O,QA,vA)=>{for(var LA,Ae,Be,ae=0,De=0;De<QA;De++){var Re=HA[O>>2],Ye=HA[O+4>>2];O+=8;for(var Ct=0;Ct<Ye;Ct++)LA=W,Ae=KA[Re+Ct],Be=void 0,Be=WB[LA],Ae===0||Ae===10?((LA===1?MA:sA)(Vo(Be,0)),Be.length=0):Be.push(Ae);ae+=Ye}return HA[vA>>2]=ae,0}},bo=(function(){var W={a:Zs};function O(QA,vA){var LA,Ae;return bo=QA.exports,rA=bo.z,LA=rA.buffer,x.HEAP8=$A=new Int8Array(LA),x.HEAP16=Qe=new Int16Array(LA),x.HEAPU8=KA=new Uint8Array(LA),x.HEAPU16=zA=new Uint16Array(LA),x.HEAP32=SA=new Int32Array(LA),x.HEAPU32=HA=new Uint32Array(LA),x.HEAPF32=At=new Float32Array(LA),x.HEAPF64=we=new Float64Array(LA),xa=bo.C,Ae=bo.A,ce.unshift(Ae),(function(){if(Yt--,x.monitorRunDependencies&&x.monitorRunDependencies(Yt),Yt==0&&_e){var Be=_e;_e=null,Be()}})(),bo}if(Yt++,x.monitorRunDependencies&&x.monitorRunDependencies(Yt),x.instantiateWasm)try{return x.instantiateWasm(W,O)}catch(QA){sA(`Module.instantiateWasm callback failed with error: ${QA}`),eA(QA)}return ki(0,rt,W,(function(QA){O(QA.instance)})).catch(eA),{}})(),Ln=W=>(Ln=bo.B)(W),js=W=>(js=bo.D)(W),Hg=W=>(Hg=bo.E)(W),Ba=W=>(Ba=bo.F)(W);x.dynCall_jiji=(W,O,QA,vA,LA)=>(x.dynCall_jiji=bo.G)(W,O,QA,vA,LA),x._vertexShaderSource=10640;function bn(){function W(){Pt||(Pt=!0,x.calledRun=!0,Ue||(_g(ce),f(x),x.onRuntimeInitialized&&x.onRuntimeInitialized(),(function(){if(x.postRun)for(typeof x.postRun=="function"&&(x.postRun=[x.postRun]);x.postRun.length;)O=x.postRun.shift(),ii.unshift(O);var O;_g(ii)})()))}Yt>0||((function(){if(x.preRun)for(typeof x.preRun=="function"&&(x.preRun=[x.preRun]);x.preRun.length;)O=x.preRun.shift(),Ve.unshift(O);var O;_g(Ve)})(),Yt>0||(x.setStatus?(x.setStatus("Running..."),setTimeout((function(){setTimeout((function(){x.setStatus("")}),1),W()}),1)):W()))}if(_e=function W(){Pt||bn(),Pt||(_e=W)},x.preInit)for(typeof x.preInit=="function"&&(x.preInit=[x.preInit]);x.preInit.length>0;)x.preInit.pop()();return bn(),G.ready}})(),QV=CV,qB=typeof navigator>"u"?"":navigator.userAgent,ft=c=>new RegExp(c,"i").test(qB),_o=c=>{if(ft(c)){const G=new RegExp(`${c}\\/([\\d.]+)`),f=qB.match(G);if(f&&f[1])return f[1]}return""},XT=c=>{if(ft(c)){const G=new RegExp(`${c}\\/(\\d+)`),f=qB.match(G);if(f&&f[1])return parseFloat(f[1])}return NaN},RK=/AppleWebKit\/([\d.]+)/i.exec(qB);RK&&parseFloat(RK[1]);var JK=ft("iPad"),xK=typeof navigator<"u"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&ft("Macintosh"),KK=ft("iPhone")&&!JK,cV=ft("iPod"),HK=KK||JK||cV||xK,o2=ft("Android"),hV=(function(){if(o2){const c=qB.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(c){const G=c[1]&&parseFloat(c[1]),f=c[2]&&parseFloat(c[2]);if(G&&f)return parseFloat(`${c[1]}.${c[2]}`);if(G)return G}}return NaN})();o2&&ft("webkit")&&hV<2.3;var lV=ft("Firefox"),uV=_o("Firefox");XT("Firefox");var OK=ft("Edge"),dV=_o("Edge"),qK=ft("Edg"),DV=_o("Edg");XT("Edg");var PK=ft("SogouMobileBrowser"),pV=_o("SogouMobileBrowser"),VK=ft("MetaSr\\s"),yV=_o("MetaSr\\s"),Hu=ft("TBS"),RV=_o("TBS"),WK=ft("XWEB"),mV=_o("XWEB");ft("MSIE\\s8\\.0");var fV=ft("MSIE\\/\\d+");(function(){if(fV){const c=/MSIE\s(\d+)\.\d/.exec(qB);let G=c&&parseFloat(c[1]);return!G&&/Trident\/7.0/i.test(qB)&&/rv:11.0/.test(qB)&&(G=11),G}return NaN})();var wV=ft("(micromessenger|webbrowser)"),SV=_o("MicroMessenger"),g2=!Hu&&ft("MQQBrowser")&&ft("COVC"),r2=!Hu&&ft("MQQBrowser")&&!ft("COVC"),mK=r2||g2?_o("MQQBrowser"):"",ZK=!Hu&&ft(" QQBrowser"),GV=_o(" QQBrowser"),jK=!Hu&&ft("QQBrowserLite"),MV=_o("QQBrowserLite"),XK=!Hu&&ft("MQBHD"),kV=_o("MQBHD");ft("Windows");!HK&&ft("MAC OS X");!o2&&ft("Linux");ft("CrOS");ft("MicroMessenger");ft("UCBrowser");ft("Electron");var zK=ft("MiuiBrowser"),NV=_o("MiuiBrowser"),$K=ft("HuaweiBrowser");ft("Huawei")||ft("HUAWEI");ft("Honor")||ft("HONOR");var FV=_o("HuaweiBrowser"),AH=ft("SamsungBrowser"),vV=_o("SamsungBrowser"),eH=ft("HeyTapBrowser"),TV=_o("HeyTapBrowser"),tH=ft("VivoBrowser"),UV=_o("VivoBrowser");ft("OpenHarmony");_o("OpenHarmony");var _V=()=>XT("Chrome"),fK=ft("CriOS"),iH=ft("Chrome"),LV=!OK&&!VK&&!PK&&!Hu&&!WK&&!qK&&!ZK&&!zK&&!$K&&!AH&&!eH&&!tH&&iH;ft("HeadlessChrome");var bV=_V(),YV=_o("Chrome");XT("Electron");var JV=!iH&&!r2&&!g2&&!jK&&!XK&&ft("Safari"),oH=_o("Version"),gH=(()=>{if(xK)return oH;if(HK){const c=qB.match(/OS (\d+)_(\d+)/i);if(c&&c[1]){let G=c[1];return c[2]&&(G+=`.${c[2]}`),G}}return""})();Number(gH.split(".")[0]);(()=>{const c=Number(gH.split(".")[0]);return c===14||c===13})();xV();function xV(){const c=new Map([[lV,["Firefox",uV]],[qK,["Edg",DV]],[LV,["Chrome",YV]],[fK,["ChiOS",_o("CriOS")]],[JV&&!fK,["Safari",oH]],[Hu,["TBS",RV]],[WK,["XWEB",mV]],[wV&&KK,["WeChat",SV]],[ZK,["QQ(Win)",GV]],[r2,["QQ(Mobile)",mK]],[g2,["QQ(Mobile X5)",mK]],[jK,["QQ(Mac)",MV]],[XK,["QQ(iPad)",kV]],[zK,["MI",NV]],[$K,["HW",FV]],[AH,["Samsung",vV]],[eH,["OPPO",TV]],[tH,["VIVO",UV]],[OK,["EDGE",dV]],[PK,["SogouMobile",pV]],[VK,["Sogou",yV]]]);let G="unknown",f="unknown";return c.has(!0)&&([G,f]=c.get(!0)),{name:G,version:f}}var Uo=1e-6,IR=typeof Float32Array<"u"?Float32Array:Array;Math.hypot||(Math.hypot=function(){for(var c=0,G=arguments.length;G--;)c+=arguments[G]*arguments[G];return Math.sqrt(c)});var rH={};function KV(){var c=new IR(16);return IR!=Float32Array&&(c[1]=0,c[2]=0,c[3]=0,c[4]=0,c[6]=0,c[7]=0,c[8]=0,c[9]=0,c[11]=0,c[12]=0,c[13]=0,c[14]=0),c[0]=1,c[5]=1,c[10]=1,c[15]=1,c}function HV(c){var G=new IR(16);return G[0]=c[0],G[1]=c[1],G[2]=c[2],G[3]=c[3],G[4]=c[4],G[5]=c[5],G[6]=c[6],G[7]=c[7],G[8]=c[8],G[9]=c[9],G[10]=c[10],G[11]=c[11],G[12]=c[12],G[13]=c[13],G[14]=c[14],G[15]=c[15],G}function OV(c,G){return c[0]=G[0],c[1]=G[1],c[2]=G[2],c[3]=G[3],c[4]=G[4],c[5]=G[5],c[6]=G[6],c[7]=G[7],c[8]=G[8],c[9]=G[9],c[10]=G[10],c[11]=G[11],c[12]=G[12],c[13]=G[13],c[14]=G[14],c[15]=G[15],c}function qV(c,G,f,eA,x,RA,z,FA,rA,MA,sA,oA,$A,KA,Qe,zA){var SA=new IR(16);return SA[0]=c,SA[1]=G,SA[2]=f,SA[3]=eA,SA[4]=x,SA[5]=RA,SA[6]=z,SA[7]=FA,SA[8]=rA,SA[9]=MA,SA[10]=sA,SA[11]=oA,SA[12]=$A,SA[13]=KA,SA[14]=Qe,SA[15]=zA,SA}function PV(c,G,f,eA,x,RA,z,FA,rA,MA,sA,oA,$A,KA,Qe,zA,SA){return c[0]=G,c[1]=f,c[2]=eA,c[3]=x,c[4]=RA,c[5]=z,c[6]=FA,c[7]=rA,c[8]=MA,c[9]=sA,c[10]=oA,c[11]=$A,c[12]=KA,c[13]=Qe,c[14]=zA,c[15]=SA,c}function aH(c){return c[0]=1,c[1]=0,c[2]=0,c[3]=0,c[4]=0,c[5]=1,c[6]=0,c[7]=0,c[8]=0,c[9]=0,c[10]=1,c[11]=0,c[12]=0,c[13]=0,c[14]=0,c[15]=1,c}function VV(c,G){if(c===G){var f=G[1],eA=G[2],x=G[3],RA=G[6],z=G[7],FA=G[11];c[1]=G[4],c[2]=G[8],c[3]=G[12],c[4]=f,c[6]=G[9],c[7]=G[13],c[8]=eA,c[9]=RA,c[11]=G[14],c[12]=x,c[13]=z,c[14]=FA}else c[0]=G[0],c[1]=G[4],c[2]=G[8],c[3]=G[12],c[4]=G[1],c[5]=G[5],c[6]=G[9],c[7]=G[13],c[8]=G[2],c[9]=G[6],c[10]=G[10],c[11]=G[14],c[12]=G[3],c[13]=G[7],c[14]=G[11],c[15]=G[15];return c}function WV(c,G){var f=G[0],eA=G[1],x=G[2],RA=G[3],z=G[4],FA=G[5],rA=G[6],MA=G[7],sA=G[8],oA=G[9],$A=G[10],KA=G[11],Qe=G[12],zA=G[13],SA=G[14],HA=G[15],At=f*FA-eA*z,we=f*rA-x*z,Ue=f*MA-RA*z,Ve=eA*rA-x*FA,ce=eA*MA-RA*FA,ii=x*MA-RA*rA,Yt=sA*zA-oA*Qe,_e=sA*SA-$A*Qe,$t=sA*HA-KA*Qe,rt=oA*SA-$A*zA,qt=oA*HA-KA*zA,Mt=$A*HA-KA*SA,wt=At*Mt-we*qt+Ue*rt+Ve*$t-ce*_e+ii*Yt;return wt?(wt=1/wt,c[0]=(FA*Mt-rA*qt+MA*rt)*wt,c[1]=(x*qt-eA*Mt-RA*rt)*wt,c[2]=(zA*ii-SA*ce+HA*Ve)*wt,c[3]=($A*ce-oA*ii-KA*Ve)*wt,c[4]=(rA*$t-z*Mt-MA*_e)*wt,c[5]=(f*Mt-x*$t+RA*_e)*wt,c[6]=(SA*Ue-Qe*ii-HA*we)*wt,c[7]=(sA*ii-$A*Ue+KA*we)*wt,c[8]=(z*qt-FA*$t+MA*Yt)*wt,c[9]=(eA*$t-f*qt-RA*Yt)*wt,c[10]=(Qe*ce-zA*Ue+HA*At)*wt,c[11]=(oA*Ue-sA*ce-KA*At)*wt,c[12]=(FA*_e-z*rt-rA*Yt)*wt,c[13]=(f*rt-eA*_e+x*Yt)*wt,c[14]=(zA*we-Qe*Ve-SA*At)*wt,c[15]=(sA*Ve-oA*we+$A*At)*wt,c):null}function ZV(c,G){var f=G[0],eA=G[1],x=G[2],RA=G[3],z=G[4],FA=G[5],rA=G[6],MA=G[7],sA=G[8],oA=G[9],$A=G[10],KA=G[11],Qe=G[12],zA=G[13],SA=G[14],HA=G[15];return c[0]=FA*($A*HA-KA*SA)-oA*(rA*HA-MA*SA)+zA*(rA*KA-MA*$A),c[1]=-(eA*($A*HA-KA*SA)-oA*(x*HA-RA*SA)+zA*(x*KA-RA*$A)),c[2]=eA*(rA*HA-MA*SA)-FA*(x*HA-RA*SA)+zA*(x*MA-RA*rA),c[3]=-(eA*(rA*KA-MA*$A)-FA*(x*KA-RA*$A)+oA*(x*MA-RA*rA)),c[4]=-(z*($A*HA-KA*SA)-sA*(rA*HA-MA*SA)+Qe*(rA*KA-MA*$A)),c[5]=f*($A*HA-KA*SA)-sA*(x*HA-RA*SA)+Qe*(x*KA-RA*$A),c[6]=-(f*(rA*HA-MA*SA)-z*(x*HA-RA*SA)+Qe*(x*MA-RA*rA)),c[7]=f*(rA*KA-MA*$A)-z*(x*KA-RA*$A)+sA*(x*MA-RA*rA),c[8]=z*(oA*HA-KA*zA)-sA*(FA*HA-MA*zA)+Qe*(FA*KA-MA*oA),c[9]=-(f*(oA*HA-KA*zA)-sA*(eA*HA-RA*zA)+Qe*(eA*KA-RA*oA)),c[10]=f*(FA*HA-MA*zA)-z*(eA*HA-RA*zA)+Qe*(eA*MA-RA*FA),c[11]=-(f*(FA*KA-MA*oA)-z*(eA*KA-RA*oA)+sA*(eA*MA-RA*FA)),c[12]=-(z*(oA*SA-$A*zA)-sA*(FA*SA-rA*zA)+Qe*(FA*$A-rA*oA)),c[13]=f*(oA*SA-$A*zA)-sA*(eA*SA-x*zA)+Qe*(eA*$A-x*oA),c[14]=-(f*(FA*SA-rA*zA)-z*(eA*SA-x*zA)+Qe*(eA*rA-x*FA)),c[15]=f*(FA*$A-rA*oA)-z*(eA*$A-x*oA)+sA*(eA*rA-x*FA),c}function jV(c){var G=c[0],f=c[1],eA=c[2],x=c[3],RA=c[4],z=c[5],FA=c[6],rA=c[7],MA=c[8],sA=c[9],oA=c[10],$A=c[11],KA=c[12],Qe=c[13],zA=c[14],SA=c[15];return(G*z-f*RA)*(oA*SA-$A*zA)-(G*FA-eA*RA)*(sA*SA-$A*Qe)+(G*rA-x*RA)*(sA*zA-oA*Qe)+(f*FA-eA*z)*(MA*SA-$A*KA)-(f*rA-x*z)*(MA*zA-oA*KA)+(eA*rA-x*FA)*(MA*Qe-sA*KA)}function IH(c,G,f){var eA=G[0],x=G[1],RA=G[2],z=G[3],FA=G[4],rA=G[5],MA=G[6],sA=G[7],oA=G[8],$A=G[9],KA=G[10],Qe=G[11],zA=G[12],SA=G[13],HA=G[14],At=G[15],we=f[0],Ue=f[1],Ve=f[2],ce=f[3];return c[0]=we*eA+Ue*FA+Ve*oA+ce*zA,c[1]=we*x+Ue*rA+Ve*$A+ce*SA,c[2]=we*RA+Ue*MA+Ve*KA+ce*HA,c[3]=we*z+Ue*sA+Ve*Qe+ce*At,we=f[4],Ue=f[5],Ve=f[6],ce=f[7],c[4]=we*eA+Ue*FA+Ve*oA+ce*zA,c[5]=we*x+Ue*rA+Ve*$A+ce*SA,c[6]=we*RA+Ue*MA+Ve*KA+ce*HA,c[7]=we*z+Ue*sA+Ve*Qe+ce*At,we=f[8],Ue=f[9],Ve=f[10],ce=f[11],c[8]=we*eA+Ue*FA+Ve*oA+ce*zA,c[9]=we*x+Ue*rA+Ve*$A+ce*SA,c[10]=we*RA+Ue*MA+Ve*KA+ce*HA,c[11]=we*z+Ue*sA+Ve*Qe+ce*At,we=f[12],Ue=f[13],Ve=f[14],ce=f[15],c[12]=we*eA+Ue*FA+Ve*oA+ce*zA,c[13]=we*x+Ue*rA+Ve*$A+ce*SA,c[14]=we*RA+Ue*MA+Ve*KA+ce*HA,c[15]=we*z+Ue*sA+Ve*Qe+ce*At,c}function XV(c,G,f){var eA,x,RA,z,FA,rA,MA,sA,oA,$A,KA,Qe,zA=f[0],SA=f[1],HA=f[2];return G===c?(c[12]=G[0]*zA+G[4]*SA+G[8]*HA+G[12],c[13]=G[1]*zA+G[5]*SA+G[9]*HA+G[13],c[14]=G[2]*zA+G[6]*SA+G[10]*HA+G[14],c[15]=G[3]*zA+G[7]*SA+G[11]*HA+G[15]):(eA=G[0],x=G[1],RA=G[2],z=G[3],FA=G[4],rA=G[5],MA=G[6],sA=G[7],oA=G[8],$A=G[9],KA=G[10],Qe=G[11],c[0]=eA,c[1]=x,c[2]=RA,c[3]=z,c[4]=FA,c[5]=rA,c[6]=MA,c[7]=sA,c[8]=oA,c[9]=$A,c[10]=KA,c[11]=Qe,c[12]=eA*zA+FA*SA+oA*HA+G[12],c[13]=x*zA+rA*SA+$A*HA+G[13],c[14]=RA*zA+MA*SA+KA*HA+G[14],c[15]=z*zA+sA*SA+Qe*HA+G[15]),c}function zV(c,G,f){var eA=f[0],x=f[1],RA=f[2];return c[0]=G[0]*eA,c[1]=G[1]*eA,c[2]=G[2]*eA,c[3]=G[3]*eA,c[4]=G[4]*x,c[5]=G[5]*x,c[6]=G[6]*x,c[7]=G[7]*x,c[8]=G[8]*RA,c[9]=G[9]*RA,c[10]=G[10]*RA,c[11]=G[11]*RA,c[12]=G[12],c[13]=G[13],c[14]=G[14],c[15]=G[15],c}function $V(c,G,f,eA){var x,RA,z,FA,rA,MA,sA,oA,$A,KA,Qe,zA,SA,HA,At,we,Ue,Ve,ce,ii,Yt,_e,$t,rt,qt=eA[0],Mt=eA[1],wt=eA[2],qo=Math.hypot(qt,Mt,wt);return qo<Uo?null:(qt*=qo=1/qo,Mt*=qo,wt*=qo,x=Math.sin(f),z=1-(RA=Math.cos(f)),FA=G[0],rA=G[1],MA=G[2],sA=G[3],oA=G[4],$A=G[5],KA=G[6],Qe=G[7],zA=G[8],SA=G[9],HA=G[10],At=G[11],we=qt*qt*z+RA,Ue=Mt*qt*z+wt*x,Ve=wt*qt*z-Mt*x,ce=qt*Mt*z-wt*x,ii=Mt*Mt*z+RA,Yt=wt*Mt*z+qt*x,_e=qt*wt*z+Mt*x,$t=Mt*wt*z-qt*x,rt=wt*wt*z+RA,c[0]=FA*we+oA*Ue+zA*Ve,c[1]=rA*we+$A*Ue+SA*Ve,c[2]=MA*we+KA*Ue+HA*Ve,c[3]=sA*we+Qe*Ue+At*Ve,c[4]=FA*ce+oA*ii+zA*Yt,c[5]=rA*ce+$A*ii+SA*Yt,c[6]=MA*ce+KA*ii+HA*Yt,c[7]=sA*ce+Qe*ii+At*Yt,c[8]=FA*_e+oA*$t+zA*rt,c[9]=rA*_e+$A*$t+SA*rt,c[10]=MA*_e+KA*$t+HA*rt,c[11]=sA*_e+Qe*$t+At*rt,G!==c&&(c[12]=G[12],c[13]=G[13],c[14]=G[14],c[15]=G[15]),c)}function A1(c,G,f){var eA=Math.sin(f),x=Math.cos(f),RA=G[4],z=G[5],FA=G[6],rA=G[7],MA=G[8],sA=G[9],oA=G[10],$A=G[11];return G!==c&&(c[0]=G[0],c[1]=G[1],c[2]=G[2],c[3]=G[3],c[12]=G[12],c[13]=G[13],c[14]=G[14],c[15]=G[15]),c[4]=RA*x+MA*eA,c[5]=z*x+sA*eA,c[6]=FA*x+oA*eA,c[7]=rA*x+$A*eA,c[8]=MA*x-RA*eA,c[9]=sA*x-z*eA,c[10]=oA*x-FA*eA,c[11]=$A*x-rA*eA,c}function e1(c,G,f){var eA=Math.sin(f),x=Math.cos(f),RA=G[0],z=G[1],FA=G[2],rA=G[3],MA=G[8],sA=G[9],oA=G[10],$A=G[11];return G!==c&&(c[4]=G[4],c[5]=G[5],c[6]=G[6],c[7]=G[7],c[12]=G[12],c[13]=G[13],c[14]=G[14],c[15]=G[15]),c[0]=RA*x-MA*eA,c[1]=z*x-sA*eA,c[2]=FA*x-oA*eA,c[3]=rA*x-$A*eA,c[8]=RA*eA+MA*x,c[9]=z*eA+sA*x,c[10]=FA*eA+oA*x,c[11]=rA*eA+$A*x,c}function t1(c,G,f){var eA=Math.sin(f),x=Math.cos(f),RA=G[0],z=G[1],FA=G[2],rA=G[3],MA=G[4],sA=G[5],oA=G[6],$A=G[7];return G!==c&&(c[8]=G[8],c[9]=G[9],c[10]=G[10],c[11]=G[11],c[12]=G[12],c[13]=G[13],c[14]=G[14],c[15]=G[15]),c[0]=RA*x+MA*eA,c[1]=z*x+sA*eA,c[2]=FA*x+oA*eA,c[3]=rA*x+$A*eA,c[4]=MA*x-RA*eA,c[5]=sA*x-z*eA,c[6]=oA*x-FA*eA,c[7]=$A*x-rA*eA,c}function i1(c,G){return c[0]=1,c[1]=0,c[2]=0,c[3]=0,c[4]=0,c[5]=1,c[6]=0,c[7]=0,c[8]=0,c[9]=0,c[10]=1,c[11]=0,c[12]=G[0],c[13]=G[1],c[14]=G[2],c[15]=1,c}function o1(c,G){return c[0]=G[0],c[1]=0,c[2]=0,c[3]=0,c[4]=0,c[5]=G[1],c[6]=0,c[7]=0,c[8]=0,c[9]=0,c[10]=G[2],c[11]=0,c[12]=0,c[13]=0,c[14]=0,c[15]=1,c}function g1(c,G,f){var eA,x,RA,z=f[0],FA=f[1],rA=f[2],MA=Math.hypot(z,FA,rA);return MA<Uo?null:(z*=MA=1/MA,FA*=MA,rA*=MA,eA=Math.sin(G),RA=1-(x=Math.cos(G)),c[0]=z*z*RA+x,c[1]=FA*z*RA+rA*eA,c[2]=rA*z*RA-FA*eA,c[3]=0,c[4]=z*FA*RA-rA*eA,c[5]=FA*FA*RA+x,c[6]=rA*FA*RA+z*eA,c[7]=0,c[8]=z*rA*RA+FA*eA,c[9]=FA*rA*RA-z*eA,c[10]=rA*rA*RA+x,c[11]=0,c[12]=0,c[13]=0,c[14]=0,c[15]=1,c)}function r1(c,G){var f=Math.sin(G),eA=Math.cos(G);return c[0]=1,c[1]=0,c[2]=0,c[3]=0,c[4]=0,c[5]=eA,c[6]=f,c[7]=0,c[8]=0,c[9]=-f,c[10]=eA,c[11]=0,c[12]=0,c[13]=0,c[14]=0,c[15]=1,c}function a1(c,G){var f=Math.sin(G),eA=Math.cos(G);return c[0]=eA,c[1]=0,c[2]=-f,c[3]=0,c[4]=0,c[5]=1,c[6]=0,c[7]=0,c[8]=f,c[9]=0,c[10]=eA,c[11]=0,c[12]=0,c[13]=0,c[14]=0,c[15]=1,c}function I1(c,G){var f=Math.sin(G),eA=Math.cos(G);return c[0]=eA,c[1]=f,c[2]=0,c[3]=0,c[4]=-f,c[5]=eA,c[6]=0,c[7]=0,c[8]=0,c[9]=0,c[10]=1,c[11]=0,c[12]=0,c[13]=0,c[14]=0,c[15]=1,c}function nH(c,G,f){var eA=G[0],x=G[1],RA=G[2],z=G[3],FA=eA+eA,rA=x+x,MA=RA+RA,sA=eA*FA,oA=eA*rA,$A=eA*MA,KA=x*rA,Qe=x*MA,zA=RA*MA,SA=z*FA,HA=z*rA,At=z*MA;return c[0]=1-(KA+zA),c[1]=oA+At,c[2]=$A-HA,c[3]=0,c[4]=oA-At,c[5]=1-(sA+zA),c[6]=Qe+SA,c[7]=0,c[8]=$A+HA,c[9]=Qe-SA,c[10]=1-(sA+KA),c[11]=0,c[12]=f[0],c[13]=f[1],c[14]=f[2],c[15]=1,c}function n1(c,G){var f=new IR(3),eA=-G[0],x=-G[1],RA=-G[2],z=G[3],FA=G[4],rA=G[5],MA=G[6],sA=G[7],oA=eA*eA+x*x+RA*RA+z*z;return oA>0?(f[0]=2*(FA*z+sA*eA+rA*RA-MA*x)/oA,f[1]=2*(rA*z+sA*x+MA*eA-FA*RA)/oA,f[2]=2*(MA*z+sA*RA+FA*x-rA*eA)/oA):(f[0]=2*(FA*z+sA*eA+rA*RA-MA*x),f[1]=2*(rA*z+sA*x+MA*eA-FA*RA),f[2]=2*(MA*z+sA*RA+FA*x-rA*eA)),nH(c,G,f),c}function s1(c,G){return c[0]=G[12],c[1]=G[13],c[2]=G[14],c}function sH(c,G){var f=G[0],eA=G[1],x=G[2],RA=G[4],z=G[5],FA=G[6],rA=G[8],MA=G[9],sA=G[10];return c[0]=Math.hypot(f,eA,x),c[1]=Math.hypot(RA,z,FA),c[2]=Math.hypot(rA,MA,sA),c}function E1(c,G){var f=new IR(3);sH(f,G);var eA=1/f[0],x=1/f[1],RA=1/f[2],z=G[0]*eA,FA=G[1]*x,rA=G[2]*RA,MA=G[4]*eA,sA=G[5]*x,oA=G[6]*RA,$A=G[8]*eA,KA=G[9]*x,Qe=G[10]*RA,zA=z+sA+Qe,SA=0;return zA>0?(SA=2*Math.sqrt(zA+1),c[3]=.25*SA,c[0]=(oA-KA)/SA,c[1]=($A-rA)/SA,c[2]=(FA-MA)/SA):z>sA&&z>Qe?(SA=2*Math.sqrt(1+z-sA-Qe),c[3]=(oA-KA)/SA,c[0]=.25*SA,c[1]=(FA+MA)/SA,c[2]=($A+rA)/SA):sA>Qe?(SA=2*Math.sqrt(1+sA-z-Qe),c[3]=($A-rA)/SA,c[0]=(FA+MA)/SA,c[1]=.25*SA,c[2]=(oA+KA)/SA):(SA=2*Math.sqrt(1+Qe-z-sA),c[3]=(FA-MA)/SA,c[0]=($A+rA)/SA,c[1]=(oA+KA)/SA,c[2]=.25*SA),c}function B1(c,G,f,eA){var x=G[0],RA=G[1],z=G[2],FA=G[3],rA=x+x,MA=RA+RA,sA=z+z,oA=x*rA,$A=x*MA,KA=x*sA,Qe=RA*MA,zA=RA*sA,SA=z*sA,HA=FA*rA,At=FA*MA,we=FA*sA,Ue=eA[0],Ve=eA[1],ce=eA[2];return c[0]=(1-(Qe+SA))*Ue,c[1]=($A+we)*Ue,c[2]=(KA-At)*Ue,c[3]=0,c[4]=($A-we)*Ve,c[5]=(1-(oA+SA))*Ve,c[6]=(zA+HA)*Ve,c[7]=0,c[8]=(KA+At)*ce,c[9]=(zA-HA)*ce,c[10]=(1-(oA+Qe))*ce,c[11]=0,c[12]=f[0],c[13]=f[1],c[14]=f[2],c[15]=1,c}function C1(c,G,f,eA,x){var RA=G[0],z=G[1],FA=G[2],rA=G[3],MA=RA+RA,sA=z+z,oA=FA+FA,$A=RA*MA,KA=RA*sA,Qe=RA*oA,zA=z*sA,SA=z*oA,HA=FA*oA,At=rA*MA,we=rA*sA,Ue=rA*oA,Ve=eA[0],ce=eA[1],ii=eA[2],Yt=x[0],_e=x[1],$t=x[2],rt=(1-(zA+HA))*Ve,qt=(KA+Ue)*Ve,Mt=(Qe-we)*Ve,wt=(KA-Ue)*ce,qo=(1-($A+HA))*ce,ki=(SA+At)*ce,_g=(Qe+we)*ii,Lg=(SA-At)*ii,Ro=(1-($A+zA))*ii;return c[0]=rt,c[1]=qt,c[2]=Mt,c[3]=0,c[4]=wt,c[5]=qo,c[6]=ki,c[7]=0,c[8]=_g,c[9]=Lg,c[10]=Ro,c[11]=0,c[12]=f[0]+Yt-(rt*Yt+wt*_e+_g*$t),c[13]=f[1]+_e-(qt*Yt+qo*_e+Lg*$t),c[14]=f[2]+$t-(Mt*Yt+ki*_e+Ro*$t),c[15]=1,c}function Q1(c,G){var f=G[0],eA=G[1],x=G[2],RA=G[3],z=f+f,FA=eA+eA,rA=x+x,MA=f*z,sA=eA*z,oA=eA*FA,$A=x*z,KA=x*FA,Qe=x*rA,zA=RA*z,SA=RA*FA,HA=RA*rA;return c[0]=1-oA-Qe,c[1]=sA+HA,c[2]=$A-SA,c[3]=0,c[4]=sA-HA,c[5]=1-MA-Qe,c[6]=KA+zA,c[7]=0,c[8]=$A+SA,c[9]=KA-zA,c[10]=1-MA-oA,c[11]=0,c[12]=0,c[13]=0,c[14]=0,c[15]=1,c}function c1(c,G,f,eA,x,RA,z){var FA=1/(f-G),rA=1/(x-eA),MA=1/(RA-z);return c[0]=2*RA*FA,c[1]=0,c[2]=0,c[3]=0,c[4]=0,c[5]=2*RA*rA,c[6]=0,c[7]=0,c[8]=(f+G)*FA,c[9]=(x+eA)*rA,c[10]=(z+RA)*MA,c[11]=-1,c[12]=0,c[13]=0,c[14]=z*RA*2*MA,c[15]=0,c}function EH(c,G,f,eA,x){var RA,z=1/Math.tan(G/2);return c[0]=z/f,c[1]=0,c[2]=0,c[3]=0,c[4]=0,c[5]=z,c[6]=0,c[7]=0,c[8]=0,c[9]=0,c[11]=-1,c[12]=0,c[13]=0,c[15]=0,x!=null&&x!==1/0?(RA=1/(eA-x),c[10]=(x+eA)*RA,c[14]=2*x*eA*RA):(c[10]=-1,c[14]=-2*eA),c}aV(rH,{add:()=>f1,adjoint:()=>ZV,clone:()=>HV,copy:()=>OV,create:()=>KV,determinant:()=>jV,equals:()=>M1,exactEquals:()=>G1,frob:()=>m1,fromQuat:()=>Q1,fromQuat2:()=>n1,fromRotation:()=>g1,fromRotationTranslation:()=>nH,fromRotationTranslationScale:()=>B1,fromRotationTranslationScaleOrigin:()=>C1,fromScaling:()=>o1,fromTranslation:()=>i1,fromValues:()=>qV,fromXRotation:()=>r1,fromYRotation:()=>a1,fromZRotation:()=>I1,frustum:()=>c1,getRotation:()=>E1,getScaling:()=>sH,getTranslation:()=>s1,identity:()=>aH,invert:()=>WV,lookAt:()=>p1,mul:()=>k1,multiply:()=>IH,multiplyScalar:()=>w1,multiplyScalarAndAdd:()=>S1,ortho:()=>d1,orthoNO:()=>BH,orthoZO:()=>D1,perspective:()=>h1,perspectiveFromFieldOfView:()=>u1,perspectiveNO:()=>EH,perspectiveZO:()=>l1,rotate:()=>$V,rotateX:()=>A1,rotateY:()=>e1,rotateZ:()=>t1,scale:()=>zV,set:()=>PV,str:()=>R1,sub:()=>N1,subtract:()=>CH,targetTo:()=>y1,translate:()=>XV,transpose:()=>VV});var h1=EH;function l1(c,G,f,eA,x){var RA,z=1/Math.tan(G/2);return c[0]=z/f,c[1]=0,c[2]=0,c[3]=0,c[4]=0,c[5]=z,c[6]=0,c[7]=0,c[8]=0,c[9]=0,c[11]=-1,c[12]=0,c[13]=0,c[15]=0,x!=null&&x!==1/0?(RA=1/(eA-x),c[10]=x*RA,c[14]=x*eA*RA):(c[10]=-1,c[14]=-eA),c}function u1(c,G,f,eA){var x=Math.tan(G.upDegrees*Math.PI/180),RA=Math.tan(G.downDegrees*Math.PI/180),z=Math.tan(G.leftDegrees*Math.PI/180),FA=Math.tan(G.rightDegrees*Math.PI/180),rA=2/(z+FA),MA=2/(x+RA);return c[0]=rA,c[1]=0,c[2]=0,c[3]=0,c[4]=0,c[5]=MA,c[6]=0,c[7]=0,c[8]=-(z-FA)*rA*.5,c[9]=(x-RA)*MA*.5,c[10]=eA/(f-eA),c[11]=-1,c[12]=0,c[13]=0,c[14]=eA*f/(f-eA),c[15]=0,c}function BH(c,G,f,eA,x,RA,z){var FA=1/(G-f),rA=1/(eA-x),MA=1/(RA-z);return c[0]=-2*FA,c[1]=0,c[2]=0,c[3]=0,c[4]=0,c[5]=-2*rA,c[6]=0,c[7]=0,c[8]=0,c[9]=0,c[10]=2*MA,c[11]=0,c[12]=(G+f)*FA,c[13]=(x+eA)*rA,c[14]=(z+RA)*MA,c[15]=1,c}var d1=BH;function D1(c,G,f,eA,x,RA,z){var FA=1/(G-f),rA=1/(eA-x),MA=1/(RA-z);return c[0]=-2*FA,c[1]=0,c[2]=0,c[3]=0,c[4]=0,c[5]=-2*rA,c[6]=0,c[7]=0,c[8]=0,c[9]=0,c[10]=MA,c[11]=0,c[12]=(G+f)*FA,c[13]=(x+eA)*rA,c[14]=RA*MA,c[15]=1,c}function p1(c,G,f,eA){var x,RA,z,FA,rA,MA,sA,oA,$A,KA,Qe=G[0],zA=G[1],SA=G[2],HA=eA[0],At=eA[1],we=eA[2],Ue=f[0],Ve=f[1],ce=f[2];return Math.abs(Qe-Ue)<Uo&&Math.abs(zA-Ve)<Uo&&Math.abs(SA-ce)<Uo?aH(c):(sA=Qe-Ue,oA=zA-Ve,$A=SA-ce,x=At*($A*=KA=1/Math.hypot(sA,oA,$A))-we*(oA*=KA),RA=we*(sA*=KA)-HA*$A,z=HA*oA-At*sA,(KA=Math.hypot(x,RA,z))?(x*=KA=1/KA,RA*=KA,z*=KA):(x=0,RA=0,z=0),FA=oA*z-$A*RA,rA=$A*x-sA*z,MA=sA*RA-oA*x,(KA=Math.hypot(FA,rA,MA))?(FA*=KA=1/KA,rA*=KA,MA*=KA):(FA=0,rA=0,MA=0),c[0]=x,c[1]=FA,c[2]=sA,c[3]=0,c[4]=RA,c[5]=rA,c[6]=oA,c[7]=0,c[8]=z,c[9]=MA,c[10]=$A,c[11]=0,c[12]=-(x*Qe+RA*zA+z*SA),c[13]=-(FA*Qe+rA*zA+MA*SA),c[14]=-(sA*Qe+oA*zA+$A*SA),c[15]=1,c)}function y1(c,G,f,eA){var x=G[0],RA=G[1],z=G[2],FA=eA[0],rA=eA[1],MA=eA[2],sA=x-f[0],oA=RA-f[1],$A=z-f[2],KA=sA*sA+oA*oA+$A*$A;KA>0&&(sA*=KA=1/Math.sqrt(KA),oA*=KA,$A*=KA);var Qe=rA*$A-MA*oA,zA=MA*sA-FA*$A,SA=FA*oA-rA*sA;return(KA=Qe*Qe+zA*zA+SA*SA)>0&&(Qe*=KA=1/Math.sqrt(KA),zA*=KA,SA*=KA),c[0]=Qe,c[1]=zA,c[2]=SA,c[3]=0,c[4]=oA*SA-$A*zA,c[5]=$A*Qe-sA*SA,c[6]=sA*zA-oA*Qe,c[7]=0,c[8]=sA,c[9]=oA,c[10]=$A,c[11]=0,c[12]=x,c[13]=RA,c[14]=z,c[15]=1,c}function R1(c){return"mat4("+c[0]+", "+c[1]+", "+c[2]+", "+c[3]+", "+c[4]+", "+c[5]+", "+c[6]+", "+c[7]+", "+c[8]+", "+c[9]+", "+c[10]+", "+c[11]+", "+c[12]+", "+c[13]+", "+c[14]+", "+c[15]+")"}function m1(c){return Math.hypot(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15])}function f1(c,G,f){return c[0]=G[0]+f[0],c[1]=G[1]+f[1],c[2]=G[2]+f[2],c[3]=G[3]+f[3],c[4]=G[4]+f[4],c[5]=G[5]+f[5],c[6]=G[6]+f[6],c[7]=G[7]+f[7],c[8]=G[8]+f[8],c[9]=G[9]+f[9],c[10]=G[10]+f[10],c[11]=G[11]+f[11],c[12]=G[12]+f[12],c[13]=G[13]+f[13],c[14]=G[14]+f[14],c[15]=G[15]+f[15],c}function CH(c,G,f){return c[0]=G[0]-f[0],c[1]=G[1]-f[1],c[2]=G[2]-f[2],c[3]=G[3]-f[3],c[4]=G[4]-f[4],c[5]=G[5]-f[5],c[6]=G[6]-f[6],c[7]=G[7]-f[7],c[8]=G[8]-f[8],c[9]=G[9]-f[9],c[10]=G[10]-f[10],c[11]=G[11]-f[11],c[12]=G[12]-f[12],c[13]=G[13]-f[13],c[14]=G[14]-f[14],c[15]=G[15]-f[15],c}function w1(c,G,f){return c[0]=G[0]*f,c[1]=G[1]*f,c[2]=G[2]*f,c[3]=G[3]*f,c[4]=G[4]*f,c[5]=G[5]*f,c[6]=G[6]*f,c[7]=G[7]*f,c[8]=G[8]*f,c[9]=G[9]*f,c[10]=G[10]*f,c[11]=G[11]*f,c[12]=G[12]*f,c[13]=G[13]*f,c[14]=G[14]*f,c[15]=G[15]*f,c}function S1(c,G,f,eA){return c[0]=G[0]+f[0]*eA,c[1]=G[1]+f[1]*eA,c[2]=G[2]+f[2]*eA,c[3]=G[3]+f[3]*eA,c[4]=G[4]+f[4]*eA,c[5]=G[5]+f[5]*eA,c[6]=G[6]+f[6]*eA,c[7]=G[7]+f[7]*eA,c[8]=G[8]+f[8]*eA,c[9]=G[9]+f[9]*eA,c[10]=G[10]+f[10]*eA,c[11]=G[11]+f[11]*eA,c[12]=G[12]+f[12]*eA,c[13]=G[13]+f[13]*eA,c[14]=G[14]+f[14]*eA,c[15]=G[15]+f[15]*eA,c}function G1(c,G){return c[0]===G[0]&&c[1]===G[1]&&c[2]===G[2]&&c[3]===G[3]&&c[4]===G[4]&&c[5]===G[5]&&c[6]===G[6]&&c[7]===G[7]&&c[8]===G[8]&&c[9]===G[9]&&c[10]===G[10]&&c[11]===G[11]&&c[12]===G[12]&&c[13]===G[13]&&c[14]===G[14]&&c[15]===G[15]}function M1(c,G){var f=c[0],eA=c[1],x=c[2],RA=c[3],z=c[4],FA=c[5],rA=c[6],MA=c[7],sA=c[8],oA=c[9],$A=c[10],KA=c[11],Qe=c[12],zA=c[13],SA=c[14],HA=c[15],At=G[0],we=G[1],Ue=G[2],Ve=G[3],ce=G[4],ii=G[5],Yt=G[6],_e=G[7],$t=G[8],rt=G[9],qt=G[10],Mt=G[11],wt=G[12],qo=G[13],ki=G[14],_g=G[15];return Math.abs(f-At)<=Uo*Math.max(1,Math.abs(f),Math.abs(At))&&Math.abs(eA-we)<=Uo*Math.max(1,Math.abs(eA),Math.abs(we))&&Math.abs(x-Ue)<=Uo*Math.max(1,Math.abs(x),Math.abs(Ue))&&Math.abs(RA-Ve)<=Uo*Math.max(1,Math.abs(RA),Math.abs(Ve))&&Math.abs(z-ce)<=Uo*Math.max(1,Math.abs(z),Math.abs(ce))&&Math.abs(FA-ii)<=Uo*Math.max(1,Math.abs(FA),Math.abs(ii))&&Math.abs(rA-Yt)<=Uo*Math.max(1,Math.abs(rA),Math.abs(Yt))&&Math.abs(MA-_e)<=Uo*Math.max(1,Math.abs(MA),Math.abs(_e))&&Math.abs(sA-$t)<=Uo*Math.max(1,Math.abs(sA),Math.abs($t))&&Math.abs(oA-rt)<=Uo*Math.max(1,Math.abs(oA),Math.abs(rt))&&Math.abs($A-qt)<=Uo*Math.max(1,Math.abs($A),Math.abs(qt))&&Math.abs(KA-Mt)<=Uo*Math.max(1,Math.abs(KA),Math.abs(Mt))&&Math.abs(Qe-wt)<=Uo*Math.max(1,Math.abs(Qe),Math.abs(wt))&&Math.abs(zA-qo)<=Uo*Math.max(1,Math.abs(zA),Math.abs(qo))&&Math.abs(SA-ki)<=Uo*Math.max(1,Math.abs(SA),Math.abs(ki))&&Math.abs(HA-_g)<=Uo*Math.max(1,Math.abs(HA),Math.abs(_g))}var k1=IH,N1=CH,jG=`#version 300 es
|
||
in vec2 a_position;
|
||
in vec2 a_texCoord;
|
||
out vec2 v_texCoord;
|
||
void main() {
|
||
gl_Position = vec4(a_position.x, a_position.y, 0, 1);
|
||
v_texCoord = a_texCoord;
|
||
}`,a2=c=>`precision highp float;
|
||
uniform sampler2D mask;in vec2 v_texCoord;
|
||
out vec4 outColor;
|
||
void main() {${c}}`,F1=`#version 300 es
|
||
uniform sampler2D lastMask;
|
||
${a2(`highp float current = texture(mask, v_texCoord).r;
|
||
highp float previous = texture(lastMask, v_texCoord).r;
|
||
highp float diff = abs(current - previous);
|
||
const float smoothFactor = 0.05;
|
||
const float threshold = 0.3;
|
||
highp float blendedMask = diff < threshold
|
||
? previous * (1.0 - smoothFactor) + current * smoothFactor
|
||
: current;
|
||
outColor = vec4(blendedMask,0.0,0.0, 1.0);`)}
|
||
`,v1=`#version 300 es
|
||
${a2(` vec2 o = 1.0 / vec2(textureSize(mask, 0));
|
||
float size = 3.0;
|
||
int sizeDb = int(size*size);
|
||
float samples[9];
|
||
int idx = 0;
|
||
float side = (size - 1.0) / 2.0;
|
||
for (float x = -side; x <= side; x += 1.0) {
|
||
for (float y = -side; y <= side; y += 1.0) {
|
||
vec2 sampleCoord = v_texCoord + vec2(x, y) * o;
|
||
int index = int((x + 1.0) * size + (y + 1.0));
|
||
samples[index] = texture(mask, sampleCoord).r;
|
||
}
|
||
}
|
||
for (int i = 0; i < sizeDb - 1; i++) {
|
||
for (int j = 0; j < sizeDb - 1 - i; j++) {
|
||
if (samples[j] > samples[j + 1]) {
|
||
float temp = samples[j];
|
||
samples[j] = samples[j + 1];
|
||
samples[j + 1] = temp;
|
||
}
|
||
}
|
||
}
|
||
float endR=samples[sizeDb/2]>0.5?1.0:0.0;
|
||
outColor = vec4(endR, 0.0, 0.0, 1.0);`)}
|
||
`,T1=`#version 300 es
|
||
${a2(` vec2 o = 1.0 / vec2(textureSize(mask, 0));
|
||
float size = 3.0;
|
||
float side = (size - 1.0) / 2.0;
|
||
float stronglyEroded = 1.0;
|
||
for (float x = -side; x <= side; x += 1.0) {
|
||
for (float y = -side; y <= side; y += 1.0) {
|
||
vec2 sampleCoord = v_texCoord + vec2(x, y) * o;
|
||
stronglyEroded = min(stronglyEroded, texture(mask, sampleCoord).r);
|
||
}
|
||
}
|
||
outColor = vec4(stronglyEroded, 0.0, 0.0, 1.0);`)}
|
||
`,U1=`#version 300 es
|
||
precision highp float;
|
||
uniform sampler2D mask;
|
||
uniform sampler2D originalMask;
|
||
uniform sampler2D maskEdge;
|
||
in vec2 v_texCoord;
|
||
out vec4 outColor;
|
||
float u_highThreshold = 0.9;
|
||
float u_smoothSigma = 2.0;
|
||
float u_featherRadius = 4.0;
|
||
float balancedTransition(float value) {
|
||
return value * value * (3.0 - 2.0 * value);
|
||
}
|
||
float hybridBlur(sampler2D tex, vec2 uv, vec2 texelSize, float edgeIntensity, float sigma) {
|
||
float edgeWeight = smoothstep(u_highThreshold * 0.8, u_highThreshold, edgeIntensity);
|
||
if (edgeWeight < u_highThreshold * 0.8) {
|
||
return texture(tex, uv).r;
|
||
}
|
||
float adaptiveRadius = mix(u_featherRadius * 0.5, u_featherRadius * 1.5, edgeWeight);
|
||
int kernelSize = int(ceil(2.5 * sigma));
|
||
float sum = 0.0;
|
||
float weightSum = 0.0;
|
||
for (int i = -kernelSize; i <= kernelSize; i++) {
|
||
for (int j = -kernelSize; j <= kernelSize; j++) {
|
||
vec2 offset = vec2(float(i), float(j)) * texelSize * adaptiveRadius;
|
||
vec2 sampleUV = uv + offset;
|
||
float sampleValue = texture(originalMask, sampleUV).r;
|
||
float dist = length(vec2(i, j)) / float(kernelSize);
|
||
float weight = 1.0 - balancedTransition(dist);
|
||
sum += sampleValue * weight;
|
||
weightSum += weight;
|
||
}
|
||
}
|
||
return sum / weightSum;
|
||
}
|
||
void main() {
|
||
vec2 texelSize = 1.0 / vec2(textureSize(mask, 0));
|
||
float edge = texture(maskEdge, v_texCoord).r;
|
||
float centerValue = texture(mask, v_texCoord).r;
|
||
float smoothedValue = hybridBlur(mask, v_texCoord, texelSize, edge, u_smoothSigma);
|
||
float finalAlpha;
|
||
if (edge == 1.0) {
|
||
finalAlpha = smoothedValue;
|
||
} else if (centerValue > 0.70) {
|
||
finalAlpha = 1.0;
|
||
} else if (centerValue < 0.30) {
|
||
finalAlpha = 0.0;
|
||
} else {
|
||
float t = balancedTransition((centerValue - 0.30));
|
||
finalAlpha = mix(centerValue, smoothedValue, 1.0 - t * 0.95);
|
||
}
|
||
outColor = vec4(finalAlpha, 0.0, 0.0, 1.0);
|
||
}
|
||
`,_1=`#version 300 es
|
||
precision highp float;
|
||
uniform sampler2D mask;
|
||
in vec2 v_texCoord;
|
||
out vec4 outColor;
|
||
float u_gradientScale = 0.25;
|
||
const float SOBEL_KERNEL_X[9] = float[9](
|
||
-1.0, 0.0, 1.0,
|
||
-2.0, 0.0, 2.0,
|
||
-1.0, 0.0, 1.0
|
||
);
|
||
const float SOBEL_KERNEL_Y[9] = float[9](
|
||
-1.0, -2.0, -1.0,
|
||
0.0, 0.0, 0.0,
|
||
1.0, 2.0, 1.0
|
||
);
|
||
float nonMaxSuppression(float gradient, vec2 uv, vec2 texelSize, float angle) {
|
||
vec2 dir = vec2(cos(angle), sin(angle));
|
||
vec2 offset1 = dir * texelSize;
|
||
vec2 offset2 = -dir * texelSize;
|
||
float n1 = texture(mask, uv + offset1).r;
|
||
float n2 = texture(mask, uv + offset2).r;
|
||
return (gradient >= n1 && gradient >= n2) ? gradient : 0.0;
|
||
}
|
||
void main() {
|
||
vec2 o = 1.0 / vec2(textureSize(mask, 0));
|
||
float gx = 0.0, gy = 0.0;
|
||
for (int i = -1; i <= 1; i++) {
|
||
for (int j = -1; j <= 1; j++) {
|
||
vec2 offset = vec2(float(i), float(j)) * o;
|
||
float maskValue = texture(mask, v_texCoord + offset).r;
|
||
int idx = (i+1)*3 + (j+1);
|
||
gx += maskValue * SOBEL_KERNEL_X[idx];
|
||
gy += maskValue * SOBEL_KERNEL_Y[idx];
|
||
}
|
||
}
|
||
float gradient = sqrt(gx*gx + gy*gy) * u_gradientScale;
|
||
float angle = atan(gy, gx);
|
||
float nmsEdge = nonMaxSuppression(gradient, v_texCoord, o, angle);
|
||
float edge = nmsEdge > 0.0 ? 1.0 : 0.0;
|
||
outColor = vec4(edge, 0.0, 0.0, 1.0);
|
||
}
|
||
`,L1=class{constructor(){yo(this,"gl"),yo(this,"positionBuffer"),yo(this,"texCoordBuffer"),yo(this,"ratio"),yo(this,"_tdProgram"),yo(this,"_kcProgram"),yo(this,"_mdProgram"),yo(this,"_edgeProgram"),yo(this,"_borderProgram"),yo(this,"_lastMaskTexture")}init(c,G,f,eA){this.initParams(c,G,f,eA),this.initPrograms()}initParams(c,G,f,eA){this.gl=c,this.positionBuffer=G,this.texCoordBuffer=f,this.ratio=eA}initPrograms(){this._tdProgram=this.createProgram(jG,F1,["mask","lastMask"]),this._mdProgram=this.createProgram(jG,v1,["mask"]),this._kcProgram=this.createProgram(jG,T1,["mask"]),this._borderProgram=this.createProgram(jG,U1,["mask","maskEdge","originalMask"]),this._edgeProgram=this.createProgram(jG,_1,["mask"])}setAttributes(...c){const{gl:G}=this;c.forEach(((f,eA)=>{G.enableVertexAttribArray(eA),G.bindBuffer(G.ARRAY_BUFFER,f),G.vertexAttribPointer(eA,2,G.FLOAT,!1,0,0)}))}createShader(c,G){const{gl:f}=this,eA=f.createShader(c);return f.shaderSource(eA,G),f.compileShader(eA),eA}createProgram(c,G,f){const{gl:eA}=this,x=this.createShader(eA.FRAGMENT_SHADER,G),RA=this.createShader(eA.VERTEX_SHADER,c),z=eA.createProgram();if(eA.attachShader(z,RA),eA.attachShader(z,x),eA.linkProgram(z),!eA.getProgramParameter(z,eA.LINK_STATUS))throw new Error(`${eA.getProgramInfoLog(z)}`);return eA.useProgram(z),this.setAttributes(this.positionBuffer,this.texCoordBuffer),f.forEach(((FA,rA)=>{eA.uniform1i(eA.getUniformLocation(z,FA),1+rA)})),z}createFramebuffer(c){const{gl:G}=this,f=G.createFramebuffer();return G.bindFramebuffer(G.FRAMEBUFFER,f),G.framebufferTexture2D(G.FRAMEBUFFER,G.COLOR_ATTACHMENT0,G.TEXTURE_2D,c,0),f}getTempTexture(c,G,f=!0,eA){const{gl:x}=this;let RA,z;x.useProgram(c),this.ratio===16/9?(RA=640,z=360):(RA=640,z=480);const FA=x.createTexture();x.activeTexture(x.TEXTURE0),x.bindTexture(x.TEXTURE_2D,FA),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_MIN_FILTER,x.LINEAR),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_MAG_FILTER,x.LINEAR),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_WRAP_S,x.CLAMP_TO_EDGE),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_WRAP_T,x.CLAMP_TO_EDGE),x.pixelStorei(x.PACK_ALIGNMENT,1),x.pixelStorei(x.UNPACK_ALIGNMENT,1),x.texImage2D(x.TEXTURE_2D,0,x.RGBA,RA,z,0,x.RGBA,x.UNSIGNED_BYTE,null);const rA=this.createFramebuffer(FA);return G.forEach(((MA,sA)=>{MA&&(x.activeTexture(x.TEXTURE1+sA),x.bindTexture(x.TEXTURE_2D,MA||null))})),this.setAttributes(this.positionBuffer,this.texCoordBuffer),x.viewport(0,0,RA,z),x.drawArrays(x.TRIANGLE_STRIP,0,4),f&&G.forEach(((MA,sA)=>{MA&&eA!==sA&&x.deleteTexture(MA)})),x.deleteFramebuffer(rA),FA}postProcessing(c){this._lastMaskTexture=this.getTempTexture(this._tdProgram,[c,this._lastMaskTexture]);let G=this.getTempTexture(this._kcProgram,[this._lastMaskTexture],!1);for(let f=0;f<3;f++){G=this.getTempTexture(this._mdProgram,[G]);const eA=this.getTempTexture(this._edgeProgram,[G],!1);G=this.getTempTexture(this._borderProgram,[G,eA,this._lastMaskTexture],!0,2)}return G}close(){const{gl:c}=this;this._borderProgram&&c.deleteProgram(this._borderProgram),this._edgeProgram&&c.deleteProgram(this._edgeProgram),this._kcProgram&&c.deleteProgram(this._kcProgram),this._mdProgram&&c.deleteProgram(this._mdProgram),this._tdProgram&&c.deleteProgram(this._tdProgram)}},b1=new L1,gR=570703,$J=0,QH=class cH{constructor(G){this.core=G,yo(this,"seq"),yo(this,"_core"),yo(this,"log"),yo(this,"preLoadPromise"),yo(this,"startResolve"),yo(this,"startReject"),yo(this,"mediaPipeSolutions"),yo(this,"assetsPath"),yo(this,"currentType"),yo(this,"onAbort"),yo(this,"isAborted",!1),$J+=1,this.seq=$J,this._core=G,this.log=G.log.createChild({id:`${this.getAlias()}${$J}`}),this.log.info("created"),G.assetsPath&&(this.preLoadPromise=this.preload(G.assetsPath))}static isSupported(){if(bV<90)return!1;const G=document.createElement("canvas").getContext("webgl2");return!!(G&&G instanceof WebGL2RenderingContext)}async preload(G){try{this._core.room.videoManager.Wasm||(this._core.room.videoManager.Wasm=await QV());const f=eA=>{var x;this.core.kvStatManager.addEnum({key:gR,value:this.getKVTypeValue(!1,this.isAborted,"ABORT_IN_INFERENCE")}),this.isAborted=!0,this.log.error("mediaPipeSolutions abort",eA),this.core.clearStarted(this,this.getGroup()),this.stop(),(x=this.onAbort)==null||x.call(this,eA)};this._core.room.videoManager.initVirtualBackground(f,rH,b1),await this._core.initVisionTaskRegistry(G)}catch(f){const{RtcError:eA,ErrorCode:x}=this._core.errorModule;throw new eA({code:x.INVALID_OPERATION,message:`VirtualBackground preload error, please redeploy the assets of the npm package. detail: ${f}`})}}getName(){return cH.Name}getAlias(){return"vb"}getValidateRule(G){switch(G){case"start":return sV(this._core);case"update":return EV(this._core);case"stop":return BV(this._core)}}getGroup(){return"vb"}getKVTypeValue(G=!1,f=!1,eA="NONE"){let x=0;switch(this.currentType){case"blur":x|=0;break;case"image":x|=1;break;case"color":x|=2}switch(G&&(x|=256),f&&(x|=512),eA){case"ABORT_IN_INFERENCE":x|=4096;break;case"ABORT_IN_VIDEO_MANAGER":x|=8192;break;case"OTHER":x|=61440}return x}hexToRgb(G){const f=G.replace("#","");return[parseInt(f.slice(0,2),16)/255,parseInt(f.slice(2,4),16)/255,parseInt(f.slice(4,6),16)/255]}async start(G){const{type:f="blur",src:eA,blurLevel:x=3,onAbort:RA}=G;this.currentType=f,this.onAbort=RA,f==="color"&&typeof G.color=="string"&&(G.color=this.hexToRgb(G.color));const{auth:z}=await IV({sdkAppId:G.sdkAppId,userId:G.userId,userSig:G.userSig,core:this._core}),{RtcError:FA,ErrorCodeDictionary:rA,ErrorCode:MA}=this._core.errorModule;if(!z){const sA=this._core.utils.isOverseaSdkAppId(G.sdkAppId)?"https://trtc.io/document/56025":"https://cloud.tencent.com/document/product/647/85386";throw new FA({code:rA.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:sA}})}if(!this.preLoadPromise){if(!this._core.assetsPath)throw new FA({code:MA.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});this.preLoadPromise=this.preload(this._core.assetsPath)}return await this.preLoadPromise,this.core.room.videoManager.setVirtualBackground({type:f,imageUrl:eA,blurLevel:x,enableFaceCentering:G.enableFaceCentering,enableEffectOptimization:G.enableEffectOptimization,color:G.color,onAbort:sA=>{var oA;this.core.kvStatManager.addEnum({key:gR,value:this.getKVTypeValue(!0,this.isAborted,"ABORT_IN_VIDEO_MANAGER")}),this.isAborted=!0,this.core.clearStarted(this,this.getGroup()),this.stop(),delete this.preLoadPromise,(oA=this.onAbort)==null||oA.call(this,sA)}}).then((()=>{this.core.kvStatManager.addEnum({key:gR,value:this.getKVTypeValue(!1,this.isAborted,"NONE")})})).catch((()=>{this.core.kvStatManager.addEnum({key:gR,value:this.getKVTypeValue(!0,this.isAborted,"OTHER")})}))}async update(G){const{type:f,src:eA}=G;return f!==this.currentType&&(this.currentType=f),f==="color"&&typeof G.color=="string"&&(G.color=this.hexToRgb(G.color)),this.core.room.videoManager.setVirtualBackground({type:f,imageUrl:eA,blurLevel:G.blurLevel,enableFaceCentering:G.enableFaceCentering,enableEffectOptimization:G.enableEffectOptimization,color:G.color}).then((()=>{this.core.kvStatManager.addEnum({key:gR,value:this.getKVTypeValue(!1,!1,"NONE")})})).catch((()=>{this.core.kvStatManager.addEnum({key:gR,value:this.getKVTypeValue(!0,!1,"OTHER")})}))}async stop(){return this.core.room.videoManager.setVirtualBackground()}};yo(QH,"Name","VirtualBackground");var hH=QH,Y1=hH;const J1=Object.freeze(Object.defineProperty({__proto__:null,VirtualBackground:hH,default:Y1},Symbol.toStringTag,{value:"Module"})),x1=ZP(J1);var K1=zG.exports,wK;function H1(){return wK||(wK=1,(function(c,G){(function(f,eA){eA(G,AV(),x1)})(K1,(function(f,eA,x){function RA(h){return h&&typeof h=="object"&&"default"in h?h:{default:h}}var z=RA(eA),FA=function(h,B){return FA=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(D,E){D.__proto__=E}||function(D,E){for(var Q in E)Object.prototype.hasOwnProperty.call(E,Q)&&(D[Q]=E[Q])},FA(h,B)},rA=function(){return rA=Object.assign||function(h){for(var B,D=1,E=arguments.length;D<E;D++)for(var Q in B=arguments[D])Object.prototype.hasOwnProperty.call(B,Q)&&(h[Q]=B[Q]);return h},rA.apply(this,arguments)};function MA(h,B,D,E){var Q,p=arguments.length,m=p<3?B:E===null?E=Object.getOwnPropertyDescriptor(B,D):E;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")m=Reflect.decorate(h,B,D,E);else for(var T=h.length-1;T>=0;T--)(Q=h[T])&&(m=(p<3?Q(m):p>3?Q(B,D,m):Q(B,D))||m);return p>3&&m&&Object.defineProperty(B,D,m),m}function sA(h,B,D,E){return new(D||(D=Promise))((function(Q,p){function m(_){try{Y(E.next(_))}catch(b){p(b)}}function T(_){try{Y(E.throw(_))}catch(b){p(b)}}function Y(_){var b;_.done?Q(_.value):(b=_.value,b instanceof D?b:new D((function(AA){AA(b)}))).then(m,T)}Y((E=E.apply(h,[])).next())}))}function oA(h,B){var D,E,Q,p,m={label:0,sent:function(){if(1&Q[0])throw Q[1];return Q[1]},trys:[],ops:[]};return p={next:T(0),throw:T(1),return:T(2)},typeof Symbol=="function"&&(p[Symbol.iterator]=function(){return this}),p;function T(Y){return function(_){return(function(b){if(D)throw new TypeError("Generator is already executing.");for(;p&&(p=0,b[0]&&(m=0)),m;)try{if(D=1,E&&(Q=2&b[0]?E.return:b[0]?E.throw||((Q=E.return)&&Q.call(E),0):E.next)&&!(Q=Q.call(E,b[1])).done)return Q;switch(E=0,Q&&(b=[2&b[0],Q.value]),b[0]){case 0:case 1:Q=b;break;case 4:return m.label++,{value:b[1],done:!1};case 5:m.label++,E=b[1],b=[0];continue;case 7:b=m.ops.pop(),m.trys.pop();continue;default:if(Q=m.trys,!((Q=Q.length>0&&Q[Q.length-1])||b[0]!==6&&b[0]!==2)){m=0;continue}if(b[0]===3&&(!Q||b[1]>Q[0]&&b[1]<Q[3])){m.label=b[1];break}if(b[0]===6&&m.label<Q[1]){m.label=Q[1],Q=b;break}if(Q&&m.label<Q[2]){m.label=Q[2],m.ops.push(b);break}Q[2]&&m.ops.pop(),m.trys.pop();continue}b=B.call(h,m)}catch(AA){b=[6,AA],E=0}finally{D=Q=0}if(5&b[0])throw b[1];return{value:b[0]?b[1]:void 0,done:!0}})([Y,_])}}}function $A(h){var B=typeof Symbol=="function"&&Symbol.iterator,D=B&&h[B],E=0;if(D)return D.call(h);if(h&&typeof h.length=="number")return{next:function(){return h&&E>=h.length&&(h=void 0),{value:h&&h[E++],done:!h}}};throw new TypeError(B?"Object is not iterable.":"Symbol.iterator is not defined.")}function KA(h,B,D){for(var E,Q=0,p=B.length;Q<p;Q++)!E&&Q in B||(E||(E=Array.prototype.slice.call(B,0,Q)),E[Q]=B[Q]);return h.concat(E||Array.prototype.slice.call(B))}function Qe(h){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var B,D=h[Symbol.asyncIterator];return D?D.call(h):(h=$A(h),B={},E("next"),E("throw"),E("return"),B[Symbol.asyncIterator]=function(){return this},B);function E(Q){B[Q]=h[Q]&&function(p){return new Promise((function(m,T){(function(Y,_,b,AA){Promise.resolve(AA).then((function(nA){Y({value:nA,done:b})}),_)})(m,T,(p=h[Q](p)).done,p.value)}))}}}var zA=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof OB<"u"?OB:typeof self<"u"?self:{};function SA(h,B){return h(B={exports:{}},B.exports),B.exports}var HA,At,we,Ue,Ve,ce,ii,Yt,_e=SA((function(h){var B=Object.prototype.hasOwnProperty,D="~";function E(){}function Q(Y,_,b){this.fn=Y,this.context=_,this.once=b||!1}function p(Y,_,b,AA,nA){if(typeof b!="function")throw new TypeError("The listener must be a function");var fA=new Q(b,AA||Y,nA),dA=D?D+_:_;return Y._events[dA]?Y._events[dA].fn?Y._events[dA]=[Y._events[dA],fA]:Y._events[dA].push(fA):(Y._events[dA]=fA,Y._eventsCount++),Y}function m(Y,_){--Y._eventsCount==0?Y._events=new E:delete Y._events[_]}function T(){this._events=new E,this._eventsCount=0}Object.create&&(E.prototype=Object.create(null),new E().__proto__||(D=!1)),T.prototype.eventNames=function(){var Y,_,b=[];if(this._eventsCount===0)return b;for(_ in Y=this._events)B.call(Y,_)&&b.push(D?_.slice(1):_);return Object.getOwnPropertySymbols?b.concat(Object.getOwnPropertySymbols(Y)):b},T.prototype.listeners=function(Y){var _=D?D+Y:Y,b=this._events[_];if(!b)return[];if(b.fn)return[b.fn];for(var AA=0,nA=b.length,fA=new Array(nA);AA<nA;AA++)fA[AA]=b[AA].fn;return fA},T.prototype.listenerCount=function(Y){var _=D?D+Y:Y,b=this._events[_];return b?b.fn?1:b.length:0},T.prototype.emit=function(Y,_,b,AA,nA,fA){var dA=D?D+Y:Y;if(!this._events[dA])return!1;var YA,UA,lA=this._events[dA],Ce=arguments.length;if(lA.fn){switch(lA.once&&this.removeListener(Y,lA.fn,void 0,!0),Ce){case 1:return lA.fn.call(lA.context),!0;case 2:return lA.fn.call(lA.context,_),!0;case 3:return lA.fn.call(lA.context,_,b),!0;case 4:return lA.fn.call(lA.context,_,b,AA),!0;case 5:return lA.fn.call(lA.context,_,b,AA,nA),!0;case 6:return lA.fn.call(lA.context,_,b,AA,nA,fA),!0}for(UA=1,YA=new Array(Ce-1);UA<Ce;UA++)YA[UA-1]=arguments[UA];lA.fn.apply(lA.context,YA)}else{var xe,Qt=lA.length;for(UA=0;UA<Qt;UA++)switch(lA[UA].once&&this.removeListener(Y,lA[UA].fn,void 0,!0),Ce){case 1:lA[UA].fn.call(lA[UA].context);break;case 2:lA[UA].fn.call(lA[UA].context,_);break;case 3:lA[UA].fn.call(lA[UA].context,_,b);break;case 4:lA[UA].fn.call(lA[UA].context,_,b,AA);break;default:if(!YA)for(xe=1,YA=new Array(Ce-1);xe<Ce;xe++)YA[xe-1]=arguments[xe];lA[UA].fn.apply(lA[UA].context,YA)}}return!0},T.prototype.on=function(Y,_,b){return p(this,Y,_,b,!1)},T.prototype.once=function(Y,_,b){return p(this,Y,_,b,!0)},T.prototype.removeListener=function(Y,_,b,AA){var nA=D?D+Y:Y;if(!this._events[nA])return this;if(!_)return m(this,nA),this;var fA=this._events[nA];if(fA.fn)fA.fn!==_||AA&&!fA.once||b&&fA.context!==b||m(this,nA);else{for(var dA=0,YA=[],UA=fA.length;dA<UA;dA++)(fA[dA].fn!==_||AA&&!fA[dA].once||b&&fA[dA].context!==b)&&YA.push(fA[dA]);YA.length?this._events[nA]=YA.length===1?YA[0]:YA:m(this,nA)}return this},T.prototype.removeAllListeners=function(Y){var _;return Y?(_=D?D+Y:Y,this._events[_]&&m(this,_)):(this._events=new E,this._eventsCount=0),this},T.prototype.off=T.prototype.removeListener,T.prototype.addListener=T.prototype.on,T.prefixed=D,T.EventEmitter=T,h.exports=T}));f.TRTCVideoResolution=void 0,(HA=f.TRTCVideoResolution||(f.TRTCVideoResolution={}))[HA.TRTCVideoResolution_120_120=1]="TRTCVideoResolution_120_120",HA[HA.TRTCVideoResolution_160_160=3]="TRTCVideoResolution_160_160",HA[HA.TRTCVideoResolution_270_270=5]="TRTCVideoResolution_270_270",HA[HA.TRTCVideoResolution_480_480=7]="TRTCVideoResolution_480_480",HA[HA.TRTCVideoResolution_160_120=50]="TRTCVideoResolution_160_120",HA[HA.TRTCVideoResolution_240_180=52]="TRTCVideoResolution_240_180",HA[HA.TRTCVideoResolution_280_210=54]="TRTCVideoResolution_280_210",HA[HA.TRTCVideoResolution_320_240=56]="TRTCVideoResolution_320_240",HA[HA.TRTCVideoResolution_400_300=58]="TRTCVideoResolution_400_300",HA[HA.TRTCVideoResolution_480_360=60]="TRTCVideoResolution_480_360",HA[HA.TRTCVideoResolution_640_480=62]="TRTCVideoResolution_640_480",HA[HA.TRTCVideoResolution_960_720=64]="TRTCVideoResolution_960_720",HA[HA.TRTCVideoResolution_160_90=100]="TRTCVideoResolution_160_90",HA[HA.TRTCVideoResolution_256_144=102]="TRTCVideoResolution_256_144",HA[HA.TRTCVideoResolution_320_180=104]="TRTCVideoResolution_320_180",HA[HA.TRTCVideoResolution_480_270=106]="TRTCVideoResolution_480_270",HA[HA.TRTCVideoResolution_640_360=108]="TRTCVideoResolution_640_360",HA[HA.TRTCVideoResolution_960_540=110]="TRTCVideoResolution_960_540",HA[HA.TRTCVideoResolution_1280_720=112]="TRTCVideoResolution_1280_720",HA[HA.TRTCVideoResolution_1920_1080=114]="TRTCVideoResolution_1920_1080",f.TRTCVideoStreamType=void 0,(At=f.TRTCVideoStreamType||(f.TRTCVideoStreamType={}))[At.TRTCVideoStreamTypeBig=0]="TRTCVideoStreamTypeBig",At[At.TRTCVideoStreamTypeSmall=1]="TRTCVideoStreamTypeSmall",At[At.TRTCVideoStreamTypeSub=2]="TRTCVideoStreamTypeSub",f.TRTCVideoFillMode=void 0,(we=f.TRTCVideoFillMode||(f.TRTCVideoFillMode={}))[we.TRTCVideoFillMode_Fill=0]="TRTCVideoFillMode_Fill",we[we.TRTCVideoFillMode_Fit=1]="TRTCVideoFillMode_Fit",f.TRTCVideoMirrorType=void 0,(Ue=f.TRTCVideoMirrorType||(f.TRTCVideoMirrorType={}))[Ue.TRTCVideoMirrorType_Auto=0]="TRTCVideoMirrorType_Auto",Ue[Ue.TRTCVideoMirrorType_Enable=1]="TRTCVideoMirrorType_Enable",Ue[Ue.TRTCVideoMirrorType_Disable=2]="TRTCVideoMirrorType_Disable",f.TRTCBeautyStyle=void 0,(Ve=f.TRTCBeautyStyle||(f.TRTCBeautyStyle={}))[Ve.TRTCBeautyStyleSmooth=0]="TRTCBeautyStyleSmooth",Ve[Ve.TRTCBeautyStyleNature=1]="TRTCBeautyStyleNature",f.TRTCAppScene=void 0,(ce=f.TRTCAppScene||(f.TRTCAppScene={}))[ce.TRTCAppSceneVideoCall=0]="TRTCAppSceneVideoCall",ce[ce.TRTCAppSceneLIVE=1]="TRTCAppSceneLIVE",ce[ce.TRTCAppSceneAudioCall=2]="TRTCAppSceneAudioCall",ce[ce.TRTCAppSceneVoiceChatRoom=3]="TRTCAppSceneVoiceChatRoom",f.TRTCRoleType=void 0,(ii=f.TRTCRoleType||(f.TRTCRoleType={}))[ii.TRTCRoleAnchor=20]="TRTCRoleAnchor",ii[ii.TRTCRoleAudience=21]="TRTCRoleAudience",f.TRTCAudioQuality=void 0,(Yt=f.TRTCAudioQuality||(f.TRTCAudioQuality={}))[Yt.TRTCAudioQualitySpeech=1]="TRTCAudioQualitySpeech",Yt[Yt.TRTCAudioQualityDefault=2]="TRTCAudioQualityDefault",Yt[Yt.TRTCAudioQualityMusic=3]="TRTCAudioQualityMusic";var $t,rt,qt=function(h,B,D,E,Q){h===void 0&&(h=""),B===void 0&&(B=""),D===void 0&&(D=""),E===void 0&&(E=""),Q===void 0&&(Q=""),this.deviceId=h,this.deviceName=B,this.kind=D,this.label=E,this.groupId=Q};f.TRTCDeviceState=void 0,($t=f.TRTCDeviceState||(f.TRTCDeviceState={}))[$t.TRTCDeviceStateAdd=0]="TRTCDeviceStateAdd",$t[$t.TRTCDeviceStateRemove=1]="TRTCDeviceStateRemove",$t[$t.TRTCDeviceStateActive=2]="TRTCDeviceStateActive",f.TRTCDeviceType=void 0,(rt=f.TRTCDeviceType||(f.TRTCDeviceType={}))[rt.TRTCDeviceTypeUnknow=-1]="TRTCDeviceTypeUnknow",rt[rt.TRTCDeviceTypeMic=0]="TRTCDeviceTypeMic",rt[rt.TRTCDeviceTypeSpeaker=1]="TRTCDeviceTypeSpeaker",rt[rt.TRTCDeviceTypeCamera=2]="TRTCDeviceTypeCamera";var Mt,wt=function(h,B,D,E,Q,p,m,T,Y,_,b){h===void 0&&(h=0),B===void 0&&(B=""),D===void 0&&(D=""),E===void 0&&(E=0),Q===void 0&&(Q=""),p===void 0&&(p=f.TRTCRoleType.TRTCRoleAnchor),m===void 0&&(m=null),Y===void 0&&(Y=null),_===void 0&&(_=null),b===void 0&&(b=30),this.sdkAppId=h,this.userId=B,this.userSig=D,this.roomId=E,this.strRoomId=Q,this.role=p,this.privateMapKey=m,this.streamId=Y,this.userDefineRecordId=_,this.frameWorkType=b},qo=function(h,B,D,E){h===void 0&&(h=f.TRTCVideoResolution.TRTCVideoResolution_640_360),B===void 0&&(B=f.TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape),D===void 0&&(D=15),E===void 0&&(E=550),this.videoResolution=h,this.resMode=B,this.videoFps=D,this.videoBitrate=E};f.TRTCVideoRotation=void 0,(Mt=f.TRTCVideoRotation||(f.TRTCVideoRotation={}))[Mt.TRTCVideoRotation0=0]="TRTCVideoRotation0",Mt[Mt.TRTCVideoRotation90=1]="TRTCVideoRotation90",Mt[Mt.TRTCVideoRotation180=2]="TRTCVideoRotation180",Mt[Mt.TRTCVideoRotation270=3]="TRTCVideoRotation270";var ki,_g=function(h,B,D){h===void 0&&(h=f.TRTCVideoRotation.TRTCVideoRotation0),B===void 0&&(B=f.TRTCVideoFillMode.TRTCVideoFillMode_Fit),D===void 0&&(D=f.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable),this.rotation=h,this.fillMode=B,this.mirrorType=D};f.TRTCQuality=void 0,(ki=f.TRTCQuality||(f.TRTCQuality={}))[ki.TRTCQuality_Unknown=0]="TRTCQuality_Unknown",ki[ki.TRTCQuality_Excellent=1]="TRTCQuality_Excellent",ki[ki.TRTCQuality_Good=2]="TRTCQuality_Good",ki[ki.TRTCQuality_Poor=3]="TRTCQuality_Poor",ki[ki.TRTCQuality_Bad=4]="TRTCQuality_Bad",ki[ki.TRTCQuality_Vbad=5]="TRTCQuality_Vbad",ki[ki.TRTCQuality_Down=6]="TRTCQuality_Down";var Lg,Ro,lg,Tn=function(h,B){h===void 0&&(h=""),B===void 0&&(B=f.TRTCQuality.TRTCQuality_Unknown),this.userId=h,this.quality=B},mi=function(h,B){h===void 0&&(h=""),B===void 0&&(B=0),this.userId=h,this.volume=B},Ja=function(h,B,D){h===void 0&&(h=0),B===void 0&&(B=0),D===void 0&&(D=null),this.appId=h,this.bizId=B,this.url=D},or=function(h,B,D,E,Q,p,m){h===void 0&&(h=0),B===void 0&&(B=0),D===void 0&&(D=0),E===void 0&&(E=0),p===void 0&&(p=0),m===void 0&&(m=f.TRTCVideoStreamType.TRTCVideoStreamTypeBig),this.width=h,this.height=B,this.frameRate=D,this.videoBitrate=E,this.audioBitrate=p,this.streamType=m},bg=function(h,B,D,E,Q,p,m,T,Y,_,b,AA,nA,fA){h===void 0&&(h=""),D===void 0&&(D=0),E===void 0&&(E=0),Q===void 0&&(Q=0),p===void 0&&(p=0),T===void 0&&(T=0),fA===void 0&&(fA=f.TRTCVideoStreamType.TRTCVideoStreamTypeBig),this.userId=h,this.width=D,this.height=E,this.frameRate=Q,this.videoBitrate=p,this.audioBitrate=T,this.streamType=fA},St=function(h,B,D,E,Q,p,m,T,Y,_,b){h===void 0&&(h=0),B===void 0&&(B=0),Q===void 0&&(Q=0),p===void 0&&(p=0),m===void 0&&(m=0),T===void 0&&(T=[]),Y===void 0&&(Y=0),_===void 0&&(_=[]),b===void 0&&(b=0),this.upLoss=h,this.downLoss=B,this.rtt=Q,this.receivedBytes=p,this.sentBytes=m,this.localStatisticsArray=T,this.localStatisticsArraySize=Y,this.remoteStatisticsArray=_,this.remoteStatisticsArraySize=b};f.TRTCVideoResolutionMode=void 0,(Lg=f.TRTCVideoResolutionMode||(f.TRTCVideoResolutionMode={}))[Lg.TRTCVideoResolutionModeLandscape=0]="TRTCVideoResolutionModeLandscape",Lg[Lg.TRTCVideoResolutionModePortrait=1]="TRTCVideoResolutionModePortrait",f.TRTCVideoQosPreference=void 0,(Ro=f.TRTCVideoQosPreference||(f.TRTCVideoQosPreference={}))[Ro.TRTCVideoQosPreferenceSmooth=1]="TRTCVideoQosPreferenceSmooth",Ro[Ro.TRTCVideoQosPreferenceClear=2]="TRTCVideoQosPreferenceClear",f.TRTCQosControlMode=void 0,(lg=f.TRTCQosControlMode||(f.TRTCQosControlMode={}))[lg.TRTCQosControlModeClient=0]="TRTCQosControlModeClient",lg[lg.TRTCQosControlModeServer=1]="TRTCQosControlModeServer";var Bt,ao,oi=function(h,B){h===void 0&&(h=f.TRTCVideoQosPreference.TRTCVideoQosPreferenceClear),B===void 0&&(B=f.TRTCQosControlMode.TRTCQosControlModeServer),this.preference=h,this.controlMode=B},Yg=function(h,B,D,E){h===void 0&&(h=new ArrayBuffer(0)),B===void 0&&(B=0),D===void 0&&(D=0),E===void 0&&(E=0),this.buffer=h,this.length=B,this.width=D,this.height=E};f.TRTCLogLevel=void 0,(Bt=f.TRTCLogLevel||(f.TRTCLogLevel={}))[Bt.TRTCLogLevelVerbose=0]="TRTCLogLevelVerbose",Bt[Bt.TRTCLogLevelDebug=1]="TRTCLogLevelDebug",Bt[Bt.TRTCLogLevelInfo=2]="TRTCLogLevelInfo",Bt[Bt.TRTCLogLevelWarn=3]="TRTCLogLevelWarn",Bt[Bt.TRTCLogLevelError=4]="TRTCLogLevelError",Bt[Bt.TRTCLogLevelFatal=5]="TRTCLogLevelFatal",Bt[Bt.TRTCLogLevelNone=6]="TRTCLogLevelNone",f.TRTCScreenCaptureSourceType=void 0,(ao=f.TRTCScreenCaptureSourceType||(f.TRTCScreenCaptureSourceType={}))[ao.TRTCScreenCaptureSourceTypeUnknown=-1]="TRTCScreenCaptureSourceTypeUnknown",ao[ao.TRTCScreenCaptureSourceTypeWindow=0]="TRTCScreenCaptureSourceTypeWindow",ao[ao.TRTCScreenCaptureSourceTypeScreen=1]="TRTCScreenCaptureSourceTypeScreen",ao[ao.TRTCScreenCaptureSourceTypeCustom=2]="TRTCScreenCaptureSourceTypeCustom";var Qi,Gt=function(h,B,D,E,Q,p){h===void 0&&(h=f.TRTCScreenCaptureSourceType.TRTCScreenCaptureSourceTypeUnknown),B===void 0&&(B=""),D===void 0&&(D=""),E===void 0&&(E=new Yg),Q===void 0&&(Q=new Yg),p===void 0&&(p=!1),this.type=h,this.sourceId=B,this.sourceName=D,this.thumbBGRA=E,this.iconBGRA=Q,this.isMinimizeWindow=p},vi=function(h,B,D,E){h===void 0&&(h=0),B===void 0&&(B=0),D===void 0&&(D=0),E===void 0&&(E=0),this.left=h,this.top=B,this.right=D,this.bottom=E},qs=function(h,B,D,E,Q,p,m,T,Y,_,b,AA,nA,fA,dA){h===void 0&&(h=f.TRTCTranscodingConfigMode.TRTCTranscodingConfigMode_Unknown),B===void 0&&(B=0),D===void 0&&(D=0),E===void 0&&(E=0),Q===void 0&&(Q=0),p===void 0&&(p=0),m===void 0&&(m=15),T===void 0&&(T=2),Y===void 0&&(Y=0),_===void 0&&(_=""),b===void 0&&(b=64),AA===void 0&&(AA=48e3),nA===void 0&&(nA=1),fA===void 0&&(fA=[]),dA===void 0&&(dA=""),this.mode=h,this.appId=B,this.bizId=D,this.videoWidth=E,this.videoHeight=Q,this.videoBitrate=p,this.videoFramerate=m,this.videoGOP=T,this.backgroundColor=Y,this.backgroundImage=_,this.audioSampleRate=b,this.audioBitrate=AA,this.audioChannels=nA,this.mixUsersArray=fA,this.mixUsersArraySize=fA.length,this.streamId=dA};f.TRTCTranscodingConfigMode=void 0,(Qi=f.TRTCTranscodingConfigMode||(f.TRTCTranscodingConfigMode={}))[Qi.TRTCTranscodingConfigMode_Unknown=0]="TRTCTranscodingConfigMode_Unknown",Qi[Qi.TRTCTranscodingConfigMode_Manual=1]="TRTCTranscodingConfigMode_Manual",Qi[Qi.TRTCTranscodingConfigMode_Template_PureAudio=2]="TRTCTranscodingConfigMode_Template_PureAudio",Qi[Qi.TRTCTranscodingConfigMode_Template_PresetLayout=3]="TRTCTranscodingConfigMode_Template_PresetLayout",Qi[Qi.TRTCTranscodingConfigMode_Template_ScreenSharing=4]="TRTCTranscodingConfigMode_Template_ScreenSharing",Qi[Qi.TRTC_TranscodingConfigMode_Unknown=5]="TRTC_TranscodingConfigMode_Unknown",Qi[Qi.TRTC_TranscodingConfigMode_Manual=6]="TRTC_TranscodingConfigMode_Manual",Qi[Qi.TRTC_TranscodingConfigMode_Template_PureAudio=7]="TRTC_TranscodingConfigMode_Template_PureAudio",Qi[Qi.TRTC_TranscodingConfigMode_Template_PresetLayout=8]="TRTC_TranscodingConfigMode_Template_PresetLayout",Qi[Qi.TRTC_TranscodingConfigMode_Template_ScreenSharing=9]="TRTC_TranscodingConfigMode_Template_ScreenSharing";var ug,Vi,ui=function(h,B,D,E,Q,p,m,T){h===void 0&&(h=""),B===void 0&&(B=""),D===void 0&&(D=null),E===void 0&&(E=0),Q===void 0&&(Q=!1),p===void 0&&(p=f.TRTCVideoStreamType.TRTCVideoStreamTypeBig),m===void 0&&(m=f.TRTCMixInputType.TRTCMixInputTypeUndefined),T===void 0&&(T=0),this.userId=h,this.roomId=B,this.rect=D,this.zOrder=E,this.pureAudio=Q,this.streamType=p,this.inputType=m,this.renderMode=T};f.TRTCMixInputType=void 0,(ug=f.TRTCMixInputType||(f.TRTCMixInputType={}))[ug.TRTCMixInputTypeUndefined=0]="TRTCMixInputTypeUndefined",ug[ug.TRTCMixInputTypeAudioVideo=1]="TRTCMixInputTypeAudioVideo",ug[ug.TRTCMixInputTypePureVideo=2]="TRTCMixInputTypePureVideo",ug[ug.TRTCMixInputTypePureAudio=3]="TRTCMixInputTypePureAudio",f.TRTCCameraCaptureMode=void 0,(Vi=f.TRTCCameraCaptureMode||(f.TRTCCameraCaptureMode={}))[Vi.TRTCCameraResolutionStrategyAuto=0]="TRTCCameraResolutionStrategyAuto",Vi[Vi.TRTCCameraResolutionStrategyPerformance=1]="TRTCCameraResolutionStrategyPerformance",Vi[Vi.TRTCCameraResolutionStrategyHighQuality=2]="TRTCCameraResolutionStrategyHighQuality",Vi[Vi.TRTCCameraCaptureManual=3]="TRTCCameraCaptureManual";var uI,Jg=function(h,B,D,E,Q,p){h===void 0&&(h=!0),B===void 0&&(B=!0),D===void 0&&(D=!0),E===void 0&&(E=0),Q===void 0&&(Q=0),p===void 0&&(p=!1),this.enableCaptureMouse=h,this.enableHighLight=B,this.enableHighPerformance=D,this.highLightColor=E,this.highLightWidth=Q,this.enableCaptureChildWindow=p},at="onError",gr="onWarning",Je="rtc",xt="live",Io="VirtualBackground",dI="BasicBeauty",vr="blur",gi="image",xg={20:"anchor",21:"audience"},Ps={0:Je,1:xt,2:Je,3:xt};(function(h){h[h.ActiveExitRoom=0]="ActiveExitRoom",h[h.KickedExitRoom=1]="KickedExitRoom"})(uI||(uI={}));var PB="enum";function DI(){return Math.floor(performance.now())}var ri=function(h){return h===void 0},rr=function(h){return typeof h=="number"},tg=function(h){return typeof h=="boolean"};function ar(h){if(typeof h!="string")return h;var B;try{var D=JSON.parse(h);B=typeof D=="object"&&D?D:h}catch{B=h}return B}function sa(h){return h==null}function xa(){for(var h=[],B=0;B<arguments.length;B++)h[B]=arguments[B];return h.reduce((function(D,E){return Object.keys(E).forEach((function(Q){D[Q]&&typeof D[Q]=="object"?D[Q]=xa(D[Q],E[Q]):D[Q]=E[Q]})),D}),{})}function ig(h){var B=null;return h instanceof MediaStream||h instanceof MediaStreamTrack?h:([Date,RegExp,Set,WeakSet,Map,WeakMap,Error].includes(h==null?void 0:h.constructor)?B=new h.constructor(h):Array.isArray(h)?(B=[],h.forEach((function(D,E){B[E]=ig(D)}))):typeof h=="object"&&h!==null?(B={},Object.keys(h).forEach((function(D){Object.hasOwnProperty.call(h,D)&&(B[D]=ig(h[D]))}))):B=h,B)}var Se,Ka,Un=function(h){return h&&h.Math===Math&&h},Ht=Un(typeof globalThis=="object"&&globalThis)||Un(typeof window=="object"&&window)||Un(typeof self=="object"&&self)||Un(typeof zA=="object"&&zA)||(function(){return this})()||zA||Function("return this")(),jt=function(h){try{return!!h()}catch{return!0}},Wi=!jt((function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})),Ha=!jt((function(){var h=(function(){}).bind();return typeof h!="function"||h.hasOwnProperty("prototype")})),Tr=Function.prototype.call,mo=Ha?Tr.bind(Tr):function(){return Tr.apply(Tr,arguments)},Ur={}.propertyIsEnumerable,_r=Object.getOwnPropertyDescriptor,Lo={f:_r&&!Ur.call({1:2},1)?function(h){var B=_r(this,h);return!!B&&B.enumerable}:Ur},pI=function(h,B){return{enumerable:!(1&h),configurable:!(2&h),writable:!(4&h),value:B}},og=Function.prototype,dg=og.call,Vs=Ha&&og.bind.bind(dg,dg),Ft=Ha?Vs:function(h){return function(){return dg.apply(h,arguments)}},yI=Ft({}.toString),Ot=Ft("".slice),Kg=function(h){return Ot(yI(h),8,-1)},Ei=Object,Po=Ft("".split),VB=jt((function(){return!Ei("z").propertyIsEnumerable(0)}))?function(h){return Kg(h)==="String"?Po(h,""):Ei(h)}:Ei,Vo=function(h){return h==null},ci=TypeError,Ea=function(h){if(Vo(h))throw ci("Can't call method on "+h);return h},RI=function(h){return VB(Ea(h))},Dg=typeof document=="object"&&document.all,mI={all:Dg,IS_HTMLDDA:Dg===void 0&&Dg!==void 0},fI=mI.all,Ao=mI.IS_HTMLDDA?function(h){return typeof h=="function"||h===fI}:function(h){return typeof h=="function"},Ws=mI.all,gg=mI.IS_HTMLDDA?function(h){return typeof h=="object"?h!==null:Ao(h)||h===Ws}:function(h){return typeof h=="object"?h!==null:Ao(h)},Oa=function(h,B){return arguments.length<2?(D=Ht[h],Ao(D)?D:void 0):Ht[h]&&Ht[h][B];var D},wI=Ft({}.isPrototypeOf),pg=typeof navigator<"u"&&String(navigator.userAgent)||"",_n=Ht.process,WB=Ht.Deno,Pt=_n&&_n.versions||WB&&WB.version,Zs=Pt&&Pt.v8;Zs&&(Ka=(Se=Zs.split("."))[0]>0&&Se[0]<4?1:+(Se[0]+Se[1])),!Ka&&pg&&(!(Se=pg.match(/Edge\/(\d+)/))||Se[1]>=74)&&(Se=pg.match(/Chrome\/(\d+)/))&&(Ka=+Se[1]);var bo=Ka,Ln=Ht.String,js=!!Object.getOwnPropertySymbols&&!jt((function(){var h=Symbol("symbol detection");return!Ln(h)||!(Object(h)instanceof Symbol)||!Symbol.sham&&bo&&bo<41})),Hg=js&&!Symbol.sham&&typeof Symbol.iterator=="symbol",Ba=Object,bn=Hg?function(h){return typeof h=="symbol"}:function(h){var B=Oa("Symbol");return Ao(B)&&wI(B.prototype,Ba(h))},W=String,O=TypeError,QA=function(h){if(Ao(h))return h;throw O((function(B){try{return W(B)}catch{return"Object"}})(h)+" is not a function")},vA=function(h,B){var D=h[B];return Vo(D)?void 0:QA(D)},LA=TypeError,Ae=Object.defineProperty,Be=function(h,B){try{Ae(Ht,h,{value:B,configurable:!0,writable:!0})}catch{Ht[h]=B}return B},ae="__core-js_shared__",De=Ht[ae]||Be(ae,{}),Re=SA((function(h){(h.exports=function(B,D){return De[B]||(De[B]=D!==void 0?D:{})})("versions",[]).push({version:"3.32.1",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.32.1/LICENSE",source:"https://github.com/zloirock/core-js"})})),Ye=Object,Ct=function(h){return Ye(Ea(h))},It=Ft({}.hasOwnProperty),Ge=Object.hasOwn||function(h,B){return It(Ct(h),B)},je=0,Si=Math.random(),Bi=Ft(1 .toString),no=function(h){return"Symbol("+(h===void 0?"":h)+")_"+Bi(++je+Si,36)},vt=Ht.Symbol,Ai=Re("wks"),Xs=Hg?vt.for||vt:vt&&vt.withoutSetter||no,Og=function(h){return Ge(Ai,h)||(Ai[h]=js&&Ge(vt,h)?vt[h]:Xs("Symbol."+h)),Ai[h]},Ca=TypeError,Lr=Og("toPrimitive"),so=function(h,B){if(!gg(h)||bn(h))return h;var D,E=vA(h,Lr);if(E){if(D=mo(E,h,B),!gg(D)||bn(D))return D;throw Ca("Can't convert object to primitive value")}return(function(Q,p){var m,T;if(Ao(m=Q.toString)&&!gg(T=mo(m,Q))||Ao(m=Q.valueOf)&&!gg(T=mo(m,Q)))return T;throw LA("Can't convert object to primitive value")})(h)},Ti=function(h){var B=so(h,"string");return bn(B)?B:B+""},Nc=Ht.document,nR=gg(Nc)&&gg(Nc.createElement),di=function(h){return nR?Nc.createElement(h):{}},Fc=!Wi&&!jt((function(){return Object.defineProperty(di("div"),"a",{get:function(){return 7}}).a!==7})),Ou=Object.getOwnPropertyDescriptor,ZB={f:Wi?Ou:function(h,B){if(h=RI(h),B=Ti(B),Fc)try{return Ou(h,B)}catch{}if(Ge(h,B))return pI(!mo(Lo.f,h,B),h[B])}},qu=Wi&&jt((function(){return Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype!==42})),qa=String,vc=TypeError,yg=function(h){if(gg(h))return h;throw vc(qa(h)+" is not an object")},sR=TypeError,Tc=Object.defineProperty,Qa=Object.getOwnPropertyDescriptor,ca="enumerable",SI="configurable",Uc="writable",Xt={f:Wi?qu?function(h,B,D){if(yg(h),B=Ti(B),yg(D),typeof h=="function"&&B==="prototype"&&"value"in D&&Uc in D&&!D[Uc]){var E=Qa(h,B);E&&E[Uc]&&(h[B]=D.value,D={configurable:SI in D?D[SI]:E[SI],enumerable:ca in D?D[ca]:E[ca],writable:!1})}return Tc(h,B,D)}:Tc:function(h,B,D){if(yg(h),B=Ti(B),yg(D),Fc)try{return Tc(h,B,D)}catch{}if("get"in D||"set"in D)throw sR("Accessors not supported");return"value"in D&&(h[B]=D.value),h}},Pu=Wi?function(h,B,D){return Xt.f(h,B,pI(1,D))}:function(h,B,D){return h[B]=D,h},jB=Function.prototype,GI=Wi&&Object.getOwnPropertyDescriptor,ER=Ge(jB,"name"),_c={CONFIGURABLE:ER&&(!Wi||Wi&&GI(jB,"name").configurable)},BR=Ft(Function.toString);Ao(De.inspectSource)||(De.inspectSource=function(h){return BR(h)});var Yn,Ir,Jn,XB=De.inspectSource,zs=Ht.WeakMap,Lc=Ao(zs)&&/native code/.test(String(zs)),zB=Re("keys"),Vu=function(h){return zB[h]||(zB[h]=no(h))},MI={},$B="Object already initialized",$s=Ht.TypeError,CR=Ht.WeakMap;if(Lc||De.state){var nr=De.state||(De.state=new CR);nr.get=nr.get,nr.has=nr.has,nr.set=nr.set,Yn=function(h,B){if(nr.has(h))throw $s($B);return B.facade=h,nr.set(h,B),B},Ir=function(h){return nr.get(h)||{}},Jn=function(h){return nr.has(h)}}else{var xn=Vu("state");MI[xn]=!0,Yn=function(h,B){if(Ge(h,xn))throw $s($B);return B.facade=h,Pu(h,xn,B),B},Ir=function(h){return Ge(h,xn)?h[xn]:{}},Jn=function(h){return Ge(h,xn)}}var bc={get:Ir,enforce:function(h){return Jn(h)?Ir(h):Yn(h,{})}},Yc=SA((function(h){var B=_c.CONFIGURABLE,D=bc.enforce,E=bc.get,Q=String,p=Object.defineProperty,m=Ft("".slice),T=Ft("".replace),Y=Ft([].join),_=Wi&&!jt((function(){return p((function(){}),"length",{value:8}).length!==8})),b=String(String).split("String"),AA=h.exports=function(nA,fA,dA){m(Q(fA),0,7)==="Symbol("&&(fA="["+T(Q(fA),/^Symbol\(([^)]*)\)/,"$1")+"]"),dA&&dA.getter&&(fA="get "+fA),dA&&dA.setter&&(fA="set "+fA),(!Ge(nA,"name")||B&&nA.name!==fA)&&(Wi?p(nA,"name",{value:fA,configurable:!0}):nA.name=fA),_&&dA&&Ge(dA,"arity")&&nA.length!==dA.arity&&p(nA,"length",{value:dA.arity});try{dA&&Ge(dA,"constructor")&&dA.constructor?Wi&&p(nA,"prototype",{writable:!1}):nA.prototype&&(nA.prototype=void 0)}catch{}var YA=D(nA);return Ge(YA,"source")||(YA.source=Y(b,typeof fA=="string"?fA:"")),nA};Function.prototype.toString=AA((function(){return Ao(this)&&E(this).source||XB(this)}),"toString")})),AE=function(h,B,D,E){E||(E={});var Q=E.enumerable,p=E.name!==void 0?E.name:B;if(Ao(D)&&Yc(D,p,E),E.global)Q?h[B]=D:Be(B,D);else{try{E.unsafe?h[B]&&(Q=!0):delete h[B]}catch{}Q?h[B]=D:Xt.f(h,B,{value:D,enumerable:!1,configurable:!E.nonConfigurable,writable:!E.nonWritable})}return h},QR=Math.ceil,cR=Math.floor,Jc=Math.trunc||function(h){var B=+h;return(B>0?cR:QR)(B)},Ki=function(h){var B=+h;return B!=B||B===0?0:Jc(B)},Wu=Math.max,br=Math.min,Kn=Math.min,Wo=function(h){return h>0?Kn(Ki(h),9007199254740991):0},Zi=function(h){return Wo(h.length)},hR=function(h){return function(B,D,E){var Q,p=RI(B),m=Zi(p),T=(function(Y,_){var b=Ki(Y);return b<0?Wu(b+_,0):br(b,_)})(E,m);if(h&&D!=D){for(;m>T;)if((Q=p[T++])!=Q)return!0}else for(;m>T;T++)if((h||T in p)&&p[T]===D)return h||T||0;return!h&&-1}},lR={indexOf:hR(!1)}.indexOf,eE=Ft([].push),kI=function(h,B){var D,E=RI(h),Q=0,p=[];for(D in E)!Ge(MI,D)&&Ge(E,D)&&eE(p,D);for(;B.length>Q;)Ge(E,D=B[Q++])&&(~lR(p,D)||eE(p,D));return p},tE=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],uR=tE.concat("length","prototype"),xc={f:Object.getOwnPropertyNames||function(h){return kI(h,uR)}},dR={f:Object.getOwnPropertySymbols},AC=Ft([].concat),Hn=Oa("Reflect","ownKeys")||function(h){var B=xc.f(yg(h)),D=dR.f;return D?AC(B,D(h)):B},Kc=function(h,B,D){for(var E=Hn(B),Q=Xt.f,p=ZB.f,m=0;m<E.length;m++){var T=E[m];Ge(h,T)||D||Q(h,T,p(B,T))}},DR=/#|\.prototype\./,iE=function(h,B){var D=eC[Yr(h)];return D===tC||D!==pR&&(Ao(B)?jt(B):!!B)},Yr=iE.normalize=function(h){return String(h).replace(DR,".").toLowerCase()},eC=iE.data={},pR=iE.NATIVE="N",tC=iE.POLYFILL="P",yR=iE,Zu=ZB.f,Hc=function(h,B){var D,E,Q,p,m,T=h.target,Y=h.global,_=h.stat;if(D=Y?Ht:_?Ht[T]||Be(T,{}):(Ht[T]||{}).prototype)for(E in B){if(p=B[E],Q=h.dontCallGetSet?(m=Zu(D,E))&&m.value:D[E],!yR(Y?E:T+(_?".":"#")+E,h.forced)&&Q!==void 0){if(typeof p==typeof Q)continue;Kc(p,Q)}(h.sham||Q&&Q.sham)&&Pu(p,"sham",!0),AE(D,E,p,h)}},iC={};iC[Og("toStringTag")]="z";var Hi,oC=String(iC)==="[object z]",Oc=Og("toStringTag"),RR=Object,gC=Kg((function(){return arguments})())==="Arguments",On=oC?Kg:function(h){var B,D,E;return h===void 0?"Undefined":h===null?"Null":typeof(D=(function(Q,p){try{return Q[p]}catch{}})(B=RR(h),Oc))=="string"?D:gC?Kg(B):(E=Kg(B))==="Object"&&Ao(B.callee)?"Arguments":E},sr=String,ha=function(h){if(On(h)==="Symbol")throw TypeError("Cannot convert a Symbol value to a string");return sr(h)},mR=function(){var h=yg(this),B="";return h.hasIndices&&(B+="d"),h.global&&(B+="g"),h.ignoreCase&&(B+="i"),h.multiline&&(B+="m"),h.dotAll&&(B+="s"),h.unicode&&(B+="u"),h.unicodeSets&&(B+="v"),h.sticky&&(B+="y"),B},rC=Ht.RegExp,oE=jt((function(){var h=rC("a","y");return h.lastIndex=2,h.exec("abcd")!==null}));oE||jt((function(){return!rC("a","y").sticky}));var fR={BROKEN_CARET:oE||jt((function(){var h=rC("^r","gy");return h.lastIndex=2,h.exec("str")!==null}))},ju=Object.keys||function(h){return kI(h,tE)},Jr=Wi&&!qu?Object.defineProperties:function(h,B){yg(h);for(var D,E=RI(B),Q=ju(B),p=Q.length,m=0;p>m;)Xt.f(h,D=Q[m++],E[D]);return h},gE={f:Jr},xr=Oa("document","documentElement"),aC="prototype",qc="script",Xu=Vu("IE_PROTO"),qn=function(){},rE=function(h){return"<"+qc+">"+h+"</"+qc+">"},IC=function(h){h.write(rE("")),h.close();var B=h.parentWindow.Object;return h=null,B},nC=function(){try{Hi=new ActiveXObject("htmlfile")}catch{}var h,B,D;nC=typeof document<"u"?document.domain&&Hi?IC(Hi):(B=di("iframe"),D="java"+qc+":",B.style.display="none",xr.appendChild(B),B.src=String(D),(h=B.contentWindow.document).open(),h.write(rE("document.F=Object")),h.close(),h.F):IC(Hi);for(var E=tE.length;E--;)delete nC[aC][tE[E]];return nC()};MI[Xu]=!0;var Pc,aE,zu=Object.create||function(h,B){var D;return h!==null?(qn[aC]=yg(h),D=new qn,qn[aC]=null,D[Xu]=h):D=nC(),B===void 0?D:gE.f(D,B)},Er=Ht.RegExp,Pa=jt((function(){var h=Er(".","s");return!(h.dotAll&&h.exec(`
|
||
`)&&h.flags==="s")})),fo=Ht.RegExp,Vc=jt((function(){var h=fo("(?<a>b)","g");return h.exec("b").groups.a!=="b"||"b".replace(h,"$<a>c")!=="bc"})),Wc=bc.get,wR=Re("native-string-replace",String.prototype.replace),NI=RegExp.prototype.exec,IE=NI,SR=Ft("".charAt),GR=Ft("".indexOf),MR=Ft("".replace),sC=Ft("".slice),EC=(aE=/b*/g,mo(NI,Pc=/a/,"a"),mo(NI,aE,"a"),Pc.lastIndex!==0||aE.lastIndex!==0),nE=fR.BROKEN_CARET,Zc=/()??/.exec("")[1]!==void 0;(EC||Zc||nE||Pa||Vc)&&(IE=function(h){var B,D,E,Q,p,m,T,Y=this,_=Wc(Y),b=ha(h),AA=_.raw;if(AA)return AA.lastIndex=Y.lastIndex,B=mo(IE,AA,b),Y.lastIndex=AA.lastIndex,B;var nA=_.groups,fA=nE&&Y.sticky,dA=mo(mR,Y),YA=Y.source,UA=0,lA=b;if(fA&&(dA=MR(dA,"y",""),GR(dA,"g")===-1&&(dA+="g"),lA=sC(b,Y.lastIndex),Y.lastIndex>0&&(!Y.multiline||Y.multiline&&SR(b,Y.lastIndex-1)!==`
|
||
`)&&(YA="(?: "+YA+")",lA=" "+lA,UA++),D=new RegExp("^(?:"+YA+")",dA)),Zc&&(D=new RegExp("^"+YA+"$(?!\\s)",dA)),EC&&(E=Y.lastIndex),Q=mo(NI,fA?D:Y,lA),fA?Q?(Q.input=sC(Q.input,UA),Q[0]=sC(Q[0],UA),Q.index=Y.lastIndex,Y.lastIndex+=Q[0].length):Y.lastIndex=0:EC&&Q&&(Y.lastIndex=Y.global?Q.index+Q[0].length:E),Zc&&Q&&Q.length>1&&mo(wR,Q[0],D,(function(){for(p=1;p<arguments.length-2;p++)arguments[p]===void 0&&(Q[p]=void 0)})),Q&&nA)for(Q.groups=m=zu(null),p=0;p<nA.length;p++)m[(T=nA[p])[0]]=Q[T[1]];return Q});var Pn=IE;Hc({target:"RegExp",proto:!0,forced:/./.exec!==Pn},{exec:Pn});var BC=`
|
||
\v\f\r \u2028\u2029\uFEFF`,$u=Ft("".replace),kR=RegExp("^["+BC+"]+"),sE=RegExp("(^|[^"+BC+"])["+BC+"]+$"),NR=function(h){return function(B){var D=ha(Ea(B));return 1&h&&(D=$u(D,kR,"")),2&h&&(D=$u(D,sE,"$1")),D}},FR={trim:NR(3)}.trim,vR=Ft("".charAt),CC=Ht.parseFloat,Eo=Ht.Symbol,qg=Eo&&Eo.iterator,Ad=1/CC(BC+"-0")!=-1/0||qg&&!jt((function(){CC(Object(qg))}))?function(h){var B=FR(ha(h)),D=CC(B);return D===0&&vR(B,0)==="-"?-0:D}:CC;Hc({global:!0,forced:parseFloat!==Ad},{parseFloat:Ad});var ed=function(h){if(Kg(h)==="Function")return Ft(h)},td=Og("species"),id=RegExp.prototype,Kr=Ft("".charAt),od=Ft("".charCodeAt),Di=Ft("".slice),gd=function(h){return function(B,D){var E,Q,p=ha(Ea(B)),m=Ki(D),T=p.length;return m<0||m>=T?h?"":void 0:(E=od(p,m))<55296||E>56319||m+1===T||(Q=od(p,m+1))<56320||Q>57343?h?Kr(p,m):E:h?Di(p,m,m+2):Q-56320+(E-55296<<10)+65536}},FI={charAt:gd(!0)}.charAt,TR=function(h,B,D){return B+(D?FI(h,B).length:1)},QC=TypeError,Br=function(h,B){var D=h.exec;if(Ao(D)){var E=mo(D,h,B);return E!==null&&yg(E),E}if(Kg(h)==="RegExp")return mo(Pn,h,B);throw QC("RegExp#exec called on incompatible receiver")};(function(h,B,D,E){var Q=Og(h),p=!jt((function(){var _={};return _[Q]=function(){return 7},""[h](_)!==7})),m=p&&!jt((function(){var _=!1,b=/a/;return h==="split"&&((b={}).constructor={},b.constructor[td]=function(){return b},b.flags="",b[Q]=/./[Q]),b.exec=function(){return _=!0,null},b[Q](""),!_}));if(!p||!m||D){var T=ed(/./[Q]),Y=B(Q,""[h],(function(_,b,AA,nA,fA){var dA=ed(_),YA=b.exec;return YA===Pn||YA===id.exec?p&&!fA?{done:!0,value:T(b,AA,nA)}:{done:!0,value:dA(AA,b,nA)}:{done:!1}}));AE(String.prototype,h,Y[0]),AE(id,Q,Y[1])}})("match",(function(h,B,D){return[function(E){var Q=Ea(this),p=Vo(E)?void 0:vA(E,h);return p?mo(p,E,Q):new RegExp(E)[h](ha(Q))},function(E){var Q=yg(this),p=ha(E),m=D(B,Q,p);if(m.done)return m.value;if(!Q.global)return Br(Q,p);var T=Q.unicode;Q.lastIndex=0;for(var Y,_=[],b=0;(Y=Br(Q,p))!==null;){var AA=ha(Y[0]);_[b]=AA,AA===""&&(Q.lastIndex=TR(p,Wo(Q.lastIndex),T)),b++}return b===0?null:_}]}));var jc=Array.isArray||function(h){return Kg(h)==="Array"},Rg=TypeError,la=function(h){if(h>9007199254740991)throw Rg("Maximum allowed index exceeded");return h},rd=function(h,B,D){var E=Ti(B);E in h?Xt.f(h,E,pI(0,D)):h[E]=D},ad=function(){},rg=[],vI=Oa("Reflect","construct"),EE=/^\s*(?:class|function)\b/,TI=Ft(EE.exec),UR=!EE.exec(ad),BE=function(h){if(!Ao(h))return!1;try{return vI(ad,rg,h),!0}catch{return!1}},Vn=function(h){if(!Ao(h))return!1;switch(On(h)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return UR||!!TI(EE,XB(h))}catch{return!0}};Vn.sham=!0;var Xc,zc=!vI||jt((function(){var h;return BE(BE.call)||!BE(Object)||!BE((function(){h=!0}))||h}))?Vn:BE,_R=Og("species"),Id=Array,CE=function(h,B){return new((function(D){var E;return jc(D)&&(E=D.constructor,(zc(E)&&(E===Id||jc(E.prototype))||gg(E)&&(E=E[_R])===null)&&(E=void 0)),E===void 0?Id:E})(h))(0)},LR=Og("species"),Hr=Og("isConcatSpreadable"),UI=bo>=51||!jt((function(){var h=[];return h[Hr]=!1,h.concat()[0]!==h})),nd=function(h){if(!gg(h))return!1;var B=h[Hr];return B!==void 0?!!B:jc(h)};Hc({target:"Array",proto:!0,arity:1,forced:!(UI&&(Xc="concat",bo>=51||!jt((function(){var h=[];return(h.constructor={})[LR]=function(){return{foo:1}},h[Xc](Boolean).foo!==1}))))},{concat:function(h){var B,D,E,Q,p,m=Ct(this),T=CE(m),Y=0;for(B=-1,E=arguments.length;B<E;B++)if(nd(p=B===-1?m:arguments[B]))for(Q=Zi(p),la(Y+Q),D=0;D<Q;D++,Y++)D in p&&rd(T,Y,p[D]);else la(Y+1),rd(T,Y++,p);return T.length=Y,T}});var We=window.navigator&&window.navigator.userAgent||"",sd=/AppleWebKit\/([\d.]+)/i.exec(We);sd&&parseFloat(sd.pop());var $c=/iPad/i.test(We),bR=/iPhone/i.test(We)&&!$c,YR=/iPod/i.test(We),JR=bR||$c||YR,Ah=/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i.test(We);JR&&(function(){var h=We.match(/OS (\d+)_/i);h&&h[1]&&h[1]})();var Ed=/Android/i.test(We);Ed&&(function(){var h=We.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!h)return null;var B=h[1]&&parseFloat(h[1]),D=h[2]&&parseFloat(h[2]);B&&D&&parseFloat("".concat(h[1],".").concat(h[2]))})(),/Firefox/i.test(We)&&(function(){var h=We.match(/Firefox\/(\d+)/);h&&h[1]&&parseFloat(h[1])})();var Bd=/Edge\//i.test(We);Bd&&(function(){var h=We.match(/Edge\/(\d+)/i);h&&h[1]&&h[1]})();var Cd=/Edg\//i.test(We);Cd&&(function(){var h=We.match(/Edg\/(\d+)/);h&&h[1]&&parseFloat(h[1])})();var _I=/SogouMobileBrowser\//i.test(We);_I&&(function(){var h=We.match(/SogouMobileBrowser\/(\d+)/);h&&h[1]&&parseFloat(h[1])})();var Qd=/MetaSr\s/i.test(We);Qd&&(function(){var h=We.match(/MetaSr(\s\d+(\.\d+)+)/);h&&h[1]&&parseFloat(h[1])})();var LI=/TBS\/\d+/i.test(We);LI&&(function(){var h=We.match(/TBS\/(\d+)/i);h&&h[1]&&h[1]})();var cd=/XWEB\/\d+/i.test(We);cd&&(function(){var h=We.match(/XWEB\/(\d+)/i);h&&h[1]&&h[1]})(),/MSIE\/\d+/i.test(We)&&(function(){var h=/MSIE\s(\d+)\.\d/.exec(We);h&&parseFloat(h[1])})(),/(micromessenger|webbrowser)/i.test(We)&&(function(){var h=We.match(/MicroMessenger\/(\d+)/i);h&&h[1]&&h[1]})();var hd=!LI&&/MQQBrowser\/\d+/i.test(We)&&/COVC\/\d+/i.test(We),Wn=!LI&&/MQQBrowser\/\d+/i.test(We)&&!/COVC\/\d+/i.test(We);(Wn||hd)&&(function(){var h=We.match(/ MQQBrowser\/([\d.]+)/);h&&h[1]&&h[1]})();var QE=!LI&&/ QQBrowser\/\d+/i.test(We);QE&&(function(){var h=We.match(/ QQBrowser\/([\d.]+)/);h&&h[1]&&h[1]})();var cE=!LI&&/QQBrowserLite\/\d+/i.test(We);cE&&(function(){var h=We.match(/QQBrowserLite\/([\d.]+)/);h&&h[1]&&h[1]})();var eh=!LI&&/MQBHD\/\d+/i.test(We);eh&&(function(){var h=We.match(/MQBHD\/([\d.]+)/);h&&h[1]&&h[1]})();var ld=/MiuiBrowser/i.test(We);ld&&(function(){var h=We.match(/MiuiBrowser\/([\d.]+)/);h&&h[1]&&h[1]})();var ud=/HuaweiBrowser/i.test(We);ud&&(function(){var h=We.match(/HuaweiBrowser\/([\d.]+)/);h&&h[1]&&h[1]})();var th=/SamsungBrowser/i.test(We);th&&(function(){var h=We.match(/SamsungBrowser\/([\d.]+)/);h&&h[1]&&h[1]})();var dd=/HeyTapBrowser/i.test(We);dd&&(function(){var h=We.match(/HeyTapBrowser\/([\d.]+)/);h&&h[1]&&h[1]})();var Ze=/VivoBrowser/i.test(We);Ze&&(function(){var h=We.match(/VivoBrowser\/([\d.]+)/);h&&h[1]&&h[1]})();var ih,Or,bI,Dd=/Chrome/i.test(We),YI=!Bd&&!Qd&&!_I&&!LI&&!cd&&!Cd&&!QE&&!ld&&!ud&&!th&&!dd&&!Ze&&/Chrome/i.test(We);YI&&(function(){var h=We.match(/Chrome\/(\d+)/);h&&h[1]&&parseFloat(h[1])})(),YI&&(function(){var h=We.match(/Chrome\/([\d.]+)/);h&&h[1]&&h[1]})(),!Dd&&!Wn&&!hd&&!cE&&!eh&&/Safari/i.test(We)&&(function(){var h=We.match(/Version\/([\d.]+)/);h&&h[1]&&h[1]})(),(function(h){h.LIVE="live",h.RTC="rtc"})(ih||(ih={})),(function(h){h.CONTAIN="contain",h.COVER="cover",h.FILL="fill"})(Or||(Or={})),(function(h){h[h.exitRoom=0]="exitRoom",h[h.banned=1]="banned",h[h.roomDisband=2]="roomDisband"})(bI||(bI={}));var cC,hE,hC=-3340,ag=-1301,xR=-1314,KR=-1315,wo=-1316,Zn=-1302,oh=-1317,pd=-1318,lC=-1319,HR=-70252,Va={code:-1001,message:"参数错误, 请检查参数格式、是否非空等"},jn={code:-1005,message:"not supported"},gh="2.10.8",lE=Object.create,uC=Object.defineProperty,uE=Object.getOwnPropertyDescriptor,rh=Object.getOwnPropertyNames,yd=Object.getOwnPropertySymbols,OR=Object.getPrototypeOf,dC=Object.prototype.hasOwnProperty,ah=Object.prototype.propertyIsEnumerable,Ih=(h,B,D)=>B in h?uC(h,B,{enumerable:!0,configurable:!0,writable:!0,value:D}):h[B]=D,ua=(h,B,D,E)=>{for(var Q,p=uE(B,D),m=h.length-1;m>=0;m--)(Q=h[m])&&(p=Q(B,D,p)||p);return p&&uC(B,D,p),p},Jt=(h,B,D)=>Ih(h,typeof B!="symbol"?B+"":B,D),nh=(cC={"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(h,B){var D=Object.prototype.hasOwnProperty,E="~";function Q(){}function p(_,b,AA){this.fn=_,this.context=b,this.once=AA||!1}function m(_,b,AA,nA,fA){if(typeof AA!="function")throw new TypeError("The listener must be a function");var dA=new p(AA,nA||_,fA),YA=E?E+b:b;return _._events[YA]?_._events[YA].fn?_._events[YA]=[_._events[YA],dA]:_._events[YA].push(dA):(_._events[YA]=dA,_._eventsCount++),_}function T(_,b){--_._eventsCount==0?_._events=new Q:delete _._events[b]}function Y(){this._events=new Q,this._eventsCount=0}Object.create&&(Q.prototype=Object.create(null),new Q().__proto__||(E=!1)),Y.prototype.eventNames=function(){var _,b,AA=[];if(this._eventsCount===0)return AA;for(b in _=this._events)D.call(_,b)&&AA.push(E?b.slice(1):b);return Object.getOwnPropertySymbols?AA.concat(Object.getOwnPropertySymbols(_)):AA},Y.prototype.listeners=function(_){var b=E?E+_:_,AA=this._events[b];if(!AA)return[];if(AA.fn)return[AA.fn];for(var nA=0,fA=AA.length,dA=new Array(fA);nA<fA;nA++)dA[nA]=AA[nA].fn;return dA},Y.prototype.listenerCount=function(_){var b=E?E+_:_,AA=this._events[b];return AA?AA.fn?1:AA.length:0},Y.prototype.emit=function(_,b,AA,nA,fA,dA){var YA=E?E+_:_;if(!this._events[YA])return!1;var UA,lA,Ce=this._events[YA],xe=arguments.length;if(Ce.fn){switch(Ce.once&&this.removeListener(_,Ce.fn,void 0,!0),xe){case 1:return Ce.fn.call(Ce.context),!0;case 2:return Ce.fn.call(Ce.context,b),!0;case 3:return Ce.fn.call(Ce.context,b,AA),!0;case 4:return Ce.fn.call(Ce.context,b,AA,nA),!0;case 5:return Ce.fn.call(Ce.context,b,AA,nA,fA),!0;case 6:return Ce.fn.call(Ce.context,b,AA,nA,fA,dA),!0}for(lA=1,UA=new Array(xe-1);lA<xe;lA++)UA[lA-1]=arguments[lA];Ce.fn.apply(Ce.context,UA)}else{var Qt,Le=Ce.length;for(lA=0;lA<Le;lA++)switch(Ce[lA].once&&this.removeListener(_,Ce[lA].fn,void 0,!0),xe){case 1:Ce[lA].fn.call(Ce[lA].context);break;case 2:Ce[lA].fn.call(Ce[lA].context,b);break;case 3:Ce[lA].fn.call(Ce[lA].context,b,AA);break;case 4:Ce[lA].fn.call(Ce[lA].context,b,AA,nA);break;default:if(!UA)for(Qt=1,UA=new Array(xe-1);Qt<xe;Qt++)UA[Qt-1]=arguments[Qt];Ce[lA].fn.apply(Ce[lA].context,UA)}}return!0},Y.prototype.on=function(_,b,AA){return m(this,_,b,AA,!1)},Y.prototype.once=function(_,b,AA){return m(this,_,b,AA,!0)},Y.prototype.removeListener=function(_,b,AA,nA){var fA=E?E+_:_;if(!this._events[fA])return this;if(!b)return T(this,fA),this;var dA=this._events[fA];if(dA.fn)dA.fn!==b||nA&&!dA.once||AA&&dA.context!==AA||T(this,fA);else{for(var YA=0,UA=[],lA=dA.length;YA<lA;YA++)(dA[YA].fn!==b||nA&&!dA[YA].once||AA&&dA[YA].context!==AA)&&UA.push(dA[YA]);UA.length?this._events[fA]=UA.length===1?UA[0]:UA:T(this,fA)}return this},Y.prototype.removeAllListeners=function(_){var b;return _?(b=E?E+_:_,this._events[b]&&T(this,b)):(this._events=new Q,this._eventsCount=0),this},Y.prototype.off=Y.prototype.removeListener,Y.prototype.addListener=Y.prototype.on,Y.prefixed=E,Y.EventEmitter=Y,B!==void 0&&(B.exports=Y)}},function(){return hE||(0,cC[rh(cC)[0]])((hE={exports:{}}).exports,hE),hE.exports}),Rd={name:"option",required:!0,properties:{view:{type:["string",HTMLElement],required:!0},url:{type:"string",required:!0},muted:{type:"boolean",required:!1},volume:{type:"number",required:!1},fillMode:{type:"string",required:!1,values:["contain","cover","fill"]},loggerConfig:{type:"object",required:!0,properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0}}}}},DC=h=>{const B=h.split(`\r
|
||
`),D=[];B.forEach((p=>{const m=p.toLowerCase();m.includes("a=rtpmap")&&m.includes("h264")&&D.push(p)}));const E=D.map((p=>{const m=/a=rtpmap:(\d+)\s/.exec(p);return m&&m.length>1?m[1]:null})).filter((p=>p!==null)),Q=[];return B.forEach((p=>{let m=p;if(p.includes("a=fmtp:111")&&(m=`${p};stereo=1`),p.includes("a=fmtp")){const T=/a=fmtp:(\d+)\s/.exec(p);T&&T.length>1&&E.includes(T[1])&&(m=`${p};sps-pps-idr-in-keyframe=1`)}Q.push(m)})),(p=>{if(!navigator.userAgent.includes("Firefox"))return p;const m=p.split(`\r
|
||
`),T=[],Y=[];m.forEach((AA=>{const nA=AA.toLowerCase();nA.includes("a=rtpmap")&&nA.includes("h264")&&T.push(AA)})),T.length>1&&Y.push(...T.slice(1));const _=Y.map((AA=>{const nA=/a=rtpmap:(\d+)\s/.exec(AA);return nA&&nA.length>1?nA[1]:null})).filter((AA=>AA!==null)),b=[];return m.forEach((AA=>{let nA=AA;if(AA.includes("a=setup")&&(nA="a=setup:passive"),(AA.includes("m=audio")||AA.includes("m=video"))&&(nA=AA.split(" ").filter(((fA,dA)=>dA<3||!_.includes(fA))).join(" ")),AA.includes("a=fmtp")||AA.includes("a=rtcp-fb")||AA.includes("a=rtpmap")){const fA=/a=(?:fmtp|rtcp-fb|rtpmap):(\d+)\s/.exec(AA);if(fA&&fA.length>1&&_.includes(fA[1]))return}b.push(nA)})),b.join(`\r
|
||
`)})(Q.join(`\r
|
||
`))},sh=(h=21)=>{let B="",D=crypto.getRandomValues(new Uint8Array(h|=0));for(;h--;)B+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&D[h]];return B},da=h=>typeof h=="function",dE=function({retryFunction:h,settings:B,onError:D,onRetrying:E,onRetryFailed:Q,onRetrySuccess:p,context:m}){return function(...T){const{retries:Y=5,timeout:_=1e3}=B;let b=0,AA=-1,nA=0;const fA=async(dA,YA)=>{const UA=m||this;try{const lA=await h.apply(UA,T);b>0&&p&&p.call(this,b),b=0,dA(lA)}catch(lA){const Ce=()=>{clearTimeout(AA),b=0,nA=2,YA(lA)},xe=()=>{nA!==2&&b<(da(Y)?Y():Y)?(b++,nA=1,da(E)&&E.call(this,b,Ce),AA=window.setTimeout((()=>{AA=-1,fA(dA,YA)}),da(_)?_(b):_)):(Ce(),da(Q)&&Q.call(this,lA))};da(D)?D.call(this,{error:lA,retry:xe,reject:YA,retryFuncArgs:T,retriedCount:b}):xe()}};return new Promise(fA)}},So=new WeakMap,DE=((h,B,D)=>(D=h!=null?lE(OR(h)):{},((E,Q,p,m)=>{if(Q&&typeof Q=="object"||typeof Q=="function")for(let T of rh(Q))dC.call(E,T)||T===p||uC(E,T,{get:()=>Q[T],enumerable:!(m=uE(Q,T))||m.enumerable});return E})(uC(D,"default",{value:h,enumerable:!0}),h)))(nh()),Cr=Symbol("instance"),pC=Symbol("cacheResult"),yC=class{constructor(h,B,D){this.oldState=h,this.newState=B,this.action=D,this.aborted=!1}abort(h){this.aborted=!0,RE.call(h,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},qr=class extends Error{constructor(h,B,D){super(B),this.state=h,this.message=B,this.cause=D}},pE=new Map;function yE(h,B,D={}){return(E,Q,p)=>{const m=D.action||Q;if(!D.context){const Y=pE.get(E)||[];pE.has(E)||pE.set(E,Y),Y.push({from:h,to:B,action:m})}const T=p.value;p.value=function(...Y){let _=this;if(D.context&&(_=eo.get(typeof D.context=="function"?D.context.call(this,...Y):D.context)),_.state===B)return D.sync?_[pC]:Promise.resolve(_[pC]);_.state instanceof yC&&_.state.action==D.abortAction&&_.state.abort(_);let b=null;Array.isArray(h)?h.length==0?_.state instanceof yC&&_.state.abort(_):typeof _.state=="string"&&h.includes(_.state)||(b=new qr(_._state,`${_.name} ${m} to ${B} failed: current state ${_._state} not from ${h.join("|")}`)):h!==_.state&&(b=new qr(_._state,`${_.name} ${m} to ${B} failed: current state ${_._state} not from ${h}`));const AA=UA=>{if(D.fail&&D.fail.call(this,UA),D.sync){if(D.ignoreError)return UA;throw UA}return D.ignoreError?Promise.resolve(UA):Promise.reject(UA)};if(b)return AA(b);const nA=_.state,fA=new yC(nA,B,m);RE.call(_,fA);const dA=UA=>{var lA;return _[pC]=UA,fA.aborted||(RE.call(_,B),(lA=D.success)===null||lA===void 0||lA.call(this,_[pC])),UA},YA=UA=>(RE.call(_,nA,UA),AA(UA));try{const UA=T.apply(this,Y);return(function(lA){return typeof lA=="object"&&lA&&"then"in lA})(UA)?UA.then(dA).catch(YA):D.sync?dA(UA):Promise.resolve(dA(UA))}catch(UA){return YA(new qr(_._state,`${_.name} ${m} from ${h} to ${B} failed: ${UA}`,UA instanceof Error?UA:new Error(String(UA))))}}}}var md=typeof window<"u"&&window.__AFSM__?(D,E)=>{window.dispatchEvent(new CustomEvent(D,{detail:E}))}:typeof importScripts<"u"?(D,E)=>{postMessage({type:D,payload:E})}:()=>{};function RE(h,B){const D=this._state;this._state=h;const E=h.toString();h&&this.emit(E,D),this.emit(eo.STATECHANGED,h,D,B),this.updateDevTools({value:h,old:D,err:B instanceof Error?B.message:String(B)})}var eo=class lI extends DE.default{constructor(B,D,E){super(),this.name=B,this.groupName=D,this._state=lI.INIT,B||(B=Date.now().toString(36)),E?Object.setPrototypeOf(this,E):E=Object.getPrototypeOf(this),D||(this.groupName=this.constructor.name);const Q=E[Cr];Q?this.name=Q.name+"-"+Q.count++:E[Cr]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){const B=Object.getPrototypeOf(this),D=pE.get(B)||[];let E=new Set,Q=[],p=[];const m=new Set,T=Object.getPrototypeOf(B);pE.has(T)&&(T.stateDiagram.forEach((_=>E.add(_))),T.allStates.forEach((_=>m.add(_)))),D.forEach((({from:_,to:b,action:AA})=>{typeof _=="string"?Q.push({from:_,to:b,action:AA}):_.length?_.forEach((nA=>{Q.push({from:nA,to:b,action:AA})})):p.push({to:b,action:AA})})),Q.forEach((({from:_,to:b,action:AA})=>{m.add(_),m.add(b),m.add(AA+"ing"),E.add(`${_} --> ${AA}ing : ${AA}`),E.add(`${AA}ing --> ${b} : ${AA} 🟢`),E.add(`${AA}ing --> ${_} : ${AA} 🔴`)})),p.forEach((({to:_,action:b})=>{E.add(`${b}ing --> ${_} : ${b} 🟢`),m.forEach((AA=>{AA!==_&&E.add(`${AA} --> ${b}ing : ${b}`)}))}));const Y=[...E];return Object.defineProperties(B,{stateDiagram:{value:Y},allStates:{value:m}}),Y}static get(B){let D;return typeof B=="string"?(D=lI.instances.get(B),D||lI.instances.set(B,D=new lI(B,void 0,Object.create(lI.prototype)))):(D=lI.instances2.get(B),D||lI.instances2.set(B,D=new lI(B.constructor.name,void 0,Object.create(lI.prototype)))),D}static getState(B){var D;return(D=lI.get(B))===null||D===void 0?void 0:D.state}updateDevTools(B={}){md(lI.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},B))}get state(){return this._state}set state(B){RE.call(this,B)}};eo.STATECHANGED="stateChanged",eo.UPDATEAFSM="updateAFSM",eo.INIT="[*]",eo.ON="on",eo.OFF="off",eo.instances=new Map,eo.instances2=new WeakMap;var JI=class extends eo{constructor(h,B){super(),this.core=h,Jt(this,"audioPlayer"),Jt(this,"videoPlayer"),Jt(this,"callback"),Jt(this,"_log"),Jt(this,"lastPausedReason"),Jt(this,"muted",!1),this._log=B,this.videoPlayer=new h.VideoPlayer({id:"vp",log:this._log.createChild({id:"vp"}),track:null,muted:!1,container:null,enableLogTrackState:!0}),this.audioPlayer=new h.RemoteAudioPlayer({id:"ap",log:this._log.createChild({id:"ap"}),track:null,muted:!1,container:null,enableVolumeControlInIOS:!0,enableLogTrackState:!0}),this.videoPlayer.on("loadstart",(()=>this.handleLoadStart("video"))),this.audioPlayer.on("loadstart",(()=>this.handleLoadStart("audio"))),this.videoPlayer.on("player-state-changed",this.handlePlayerStateChanged,this),this.audioPlayer.on("player-state-changed",this.handlePlayerStateChanged,this)}get isPlaying(){return this.videoPlayer.isPlaying&&this.audioPlayer.isPlaying}get isPaused(){return this.videoPlayer.isPaused&&this.audioPlayer.isPaused}get isStopped(){return this.videoPlayer.isStopped&&this.audioPlayer.isStopped}setCallback(h){this.callback=h}handleLoadStart(h){this.onLoadStart()}handlePlayerStateChanged(h){h.state==="PLAYING"&&this.isPlaying&&this.onPlaying(),h.state==="PAUSED"&&this.isPaused&&this.onPaused(h.reason),h.state==="STOPPED"&&this.isStopped&&this.onStopped()}onLoadStart(){}onPlaying(){}onPaused(h){this.lastPausedReason=h}onStopped(){}setVideoContainer(h){if(this.core.utils.isString(h)){const B=document.getElementById(h);B&&this.videoPlayer.setContainer(B)}else this.videoPlayer.setContainer(h)}setVolume(h){this.core.utils.isUndefined(h)||this.audioPlayer.setVolume(h/100)}setMuted(h){this.core.utils.isUndefined(h)||(this.muted=h,this.audioPlayer.setMuted(h))}setFillMode(h){h&&this.videoPlayer.setObjectFit(h)}setAudioTrack(h){this.audioPlayer.setTrack(h)}setVideoTrack(h){this.videoPlayer.setTrack(h)}async play(){const h=this.videoPlayer.play().catch((D=>{var E,Q;this.handleAutoPlayFailed(this.videoPlayer,D),(Q=(E=this.callback)==null?void 0:E.onAutoPlayFailed)==null||Q.call(E,{type:"video",resume:()=>this.videoPlayer.resume()})})),B=this.audioPlayer.play().catch((D=>{var E,Q;this.handleAutoPlayFailed(this.audioPlayer,D),(Q=(E=this.callback)==null?void 0:E.onAutoPlayFailed)==null||Q.call(E,{type:"audio",resume:()=>this.audioPlayer.resume()})}));await Promise.all([h,B])}handleAutoPlayFailed(h,B){this._log.warn("handleAutoPlayFailed",B);const D=()=>{this.audioPlayer.resume().then((()=>{document.removeEventListener("click",D,!0)}))};document.addEventListener("click",D,!0)}pause(){this.videoPlayer.pause(!1),this.audioPlayer.setMuted(!0),this.audioPlayer.pause()}resume(){this.videoPlayer.resume(!0),this.audioPlayer.setMuted(this.muted),this.audioPlayer.resume()}async enterFullscreen(){await this.videoPlayer.enterFullscreen()}async exitFullscreen(){await this.videoPlayer.exitFullscreen()}async enterPictureInPicture(){await this.videoPlayer.enterPictureInPicture()}async exitPictureInPicture(){await this.videoPlayer.exitPictureInPicture()}stop(){this.videoPlayer&&this.videoPlayer.stop(),this.audioPlayer&&this.audioPlayer.stop()}};ua([yE([eo.INIT,"PAUSED"],"LOADSTART",{ignoreError:!0,sync:!0,success(){var h,B;(B=(h=this.callback)==null?void 0:h.onLoadStart)==null||B.call(h)},fail(h){this._log.warn("onLoadStart",h)}})],JI.prototype,"onLoadStart"),ua([yE(["LOADSTART","PAUSED"],"PLAYING",{ignoreError:!0,sync:!0,success(){var h,B;(B=(h=this.callback)==null?void 0:h.onPlaying)==null||B.call(h)},fail(h){this._log.warn("onPlaying",h)}})],JI.prototype,"onPlaying"),ua([yE("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(){var h,B;(B=(h=this.callback)==null?void 0:h.onPaused)==null||B.call(h,{reason:this.lastPausedReason})},fail(h){this._log.warn("onPaused",h)}})],JI.prototype,"onPaused"),ua([yE([],eo.INIT,{ignoreError:!0,sync:!0,success(){var h,B;(B=(h=this.callback)==null?void 0:h.onStopped)==null||B.call(h)},fail(h){this._log.warn("onStopped",h)}})],JI.prototype,"onStopped");var fd=JI,Eh=["overseas-webrtc.tlivewebrtc.com","oswebrtc-lint.tliveplay.com"],mE=class lH{constructor(B){this.core=B,Jt(this,"connectedRoomIdSet",new Set),Jt(this,"updateSeq",0),Jt(this,"_log"),Jt(this,"player"),Jt(this,"peerConnection"),Jt(this,"svrSig"),Jt(this,"streamURL"),Jt(this,"signalURL"),Jt(this,"insertableStreamsAbortMap",new Map),Jt(this,"scriptTransformWorker"),Jt(this,"connectionState","disconnected"),Jt(this,"isStarted",!1),Jt(this,"isStopped",!0),Jt(this,"isReconnecting",!1),Jt(this,"callback"),Jt(this,"isFireWallErrorEmitted",!1),Jt(this,"stat"),Jt(this,"isH264DecodeSupported"),Jt(this,"connectionTimeoutId"),B.loggerManager.startUpload(),this._log=this.core.log.createChild({id:`${this.getAlias()}`}),this.player=new fd(B,this._log),B.innerEmitter.on(B.INNER_EVENT.SEI_MESSAGE,this.onSEIMessage,this)}getName(){return lH.Name}getAlias(){return"LEB"}getGroup(){return""}getValidateRule(B){switch(B){case"start":return Rd;case"update":case"stop":return{}}}get enableSEI(){return this.core.room.enableSEI&&(this.core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED||this.core.rtcDectection.IS_SCRIPT_TRANSFORM_SUPPORTED)}async start(B){var D;this.isStopped=!1;const{view:E,url:Q,volume:p,muted:m,fillMode:T,loggerConfig:Y,callback:_}=B;this.callback=_,this.player.setCallback(_);const{errorModule:{RtcError:b,ErrorCode:AA,ErrorCodeDictionary:nA},loggerManager:fA,rtcDectection:dA}=this.core;if(this._log.setSdkAppId(Y.sdkAppId),this._log.setUserId(Y.userId),fA.addJoinedUser(Y),!dA.isWebRTCSupported()||!dA.isAddTransceiverSupported())throw new b({code:AA.ENV_NOT_SUPPORTED,extraCode:nA.NOT_SUPPORTED_WEBRTC,message:"webrtc not supported"});if(!(await dA.decodeSupportStatus()).isH264DecodeSupported||this.isH264DecodeSupported===!1)throw this.isH264DecodeSupported=!1,new b({code:AA.ENV_NOT_SUPPORTED,extraCode:nA.NOT_SUPPORTED_H264_DECODE,message:"h264 not supported"});!dA.IS_SEI_SUPPORTED&&(_!=null&&_.onSEIMessage)&&((D=_.onError)==null||D.call(_,new b({code:AA.ENV_NOT_SUPPORTED,extraCode:nA.NOT_SUPPORTED_SEI,message:"sei not supported"}))),this.player.setVideoContainer(E),this.player.setMuted(m),this.player.setVolume(p),this.player.setFillMode(T),await this.connect(Q),this.stat=new class{constructor(YA,UA){this.core=UA,Jt(this,"peerConnection"),Jt(this,"audioTransceiver",null),Jt(this,"videoTransceiver",null),Jt(this,"timerId",null),Jt(this,"callback",null),Jt(this,"previousRawStats",null),Jt(this,"_prevReportTime",0),Jt(this,"_prevDecoderImplementation",""),Jt(this,"_decodeMap",new Map),this.peerConnection=YA,this.findTransceivers()}get statInterval(){return this._prevReportTime===0?2:(Date.now()-this._prevReportTime)/1e3}findTransceivers(){const YA=this.peerConnection.getTransceivers();for(const UA of YA)if(UA.receiver&&UA.receiver.track){const{track:lA}=UA.receiver;lA.kind==="audio"?this.audioTransceiver=UA:lA.kind==="video"&&(this.videoTransceiver=UA)}}start(YA,UA=2e3){this.stop(),this.callback=YA,this.collectStats(),this.timerId=window.setInterval((()=>{this.collectStats()}),UA)}stop(){this.timerId!==null&&(clearInterval(this.timerId),this.timerId=null),this.callback=null,this.previousRawStats=null,this._prevReportTime=0}async collectStats(){if(this.callback)try{const YA=await this.peerConnection.getStats(),UA=new Set(["inbound-rtp","track","candidate-pair","media-source","codec"]),lA=[];YA.forEach((Ne=>UA.has(Ne.type)&&lA.push(Ne)));const Ce=Date.now(),xe=this.parseAudioStats(lA),Qt=this.parseVideoStats(lA),Le=this.parseNetworkStats(lA);this._prevReportTime=Ce,this.callback({audio:xe,video:Qt,network:Le})}catch(YA){this.core.log.error("Failed to collect WebRTC stats:",YA)}}getDifferenceValue(YA,UA){if(this.core.utils.isUndefined(YA))return UA;const lA=(UA||0)-YA;return lA<0?0:lA}parseAudioStats(YA){var UA,lA,Ce,xe;const Qt={bitrate:0,volume:0,packetLossRate:0,jitterBufferDelay:0,bytesReceived:0,packetsReceived:0,packetsLost:0};for(const Le of YA){if(Le.type==="inbound-rtp"&&(Le.mediaType==="audio"||Le.kind==="audio")){if(Qt.bytesReceived=Le.bytesReceived||0,Qt.packetsReceived=Le.packetsReceived||0,Qt.packetsLost=Le.packetsLost||0,this.previousRawStats&&this.previousRawStats.audio){const si=this.getDifferenceValue(this.previousRawStats.audio.bytesReceived,Qt.bytesReceived);Qt.bitrate=Math.round(8*si/this.statInterval/1e3)}const Ne=this.getDifferenceValue((UA=this.previousRawStats)==null?void 0:UA.audio.packetsLost,Qt.packetsLost),Vt=this.getDifferenceValue((lA=this.previousRawStats)==null?void 0:lA.audio.packetsReceived,Qt.packetsReceived)+Ne;if(Vt>0&&(Qt.packetLossRate=Math.round(Ne/Vt*100)),this.core.utils.isUndefined(Le.audioLevel)||(Qt.volume=Le.audioLevel||0),Le.jitterBufferDelay&&Le.jitterBufferEmittedCount){let{jitterBufferEmittedCount:si}=Le,{jitterBufferDelay:ji}=Le;(Ce=this.previousRawStats)!=null&&Ce.audio&&(si=this.getDifferenceValue(this.previousRawStats.audio.jitterBufferEmittedCount,Le.jitterBufferEmittedCount),ji=this.getDifferenceValue(this.previousRawStats.audio.jitterBufferDelay,Le.jitterBufferDelay)),si>0&&(Qt.jitterBufferDelay=Math.floor(ji/si*1e3)),this.previousRawStats||this.initPreviousRawStats(),this.previousRawStats.audio.jitterBufferDelay=Le.jitterBufferDelay,this.previousRawStats.audio.jitterBufferEmittedCount=Le.jitterBufferEmittedCount}this.previousRawStats||this.initPreviousRawStats(),this.previousRawStats.audio.bytesReceived=Qt.bytesReceived,this.previousRawStats.audio.packetsReceived=Qt.packetsReceived,this.previousRawStats.audio.packetsLost=Qt.packetsLost}!this.core.utils.isUndefined(Le.audioLevel)&&((xe=this.audioTransceiver)!=null&&xe.receiver.track)&&Le.trackIdentifier===this.audioTransceiver.receiver.track.id&&(Qt.volume=Le.audioLevel||0)}return Qt}parseVideoStats(YA){var UA,lA,Ce,xe,Qt;const Le={bitrate:0,frameRate:0,width:0,height:0,packetLossRate:0,jitterBufferDelay:0,bytesReceived:0,packetsReceived:0,packetsLost:0,framesDecoded:0};for(const Ne of YA){if(Ne.type==="codec"&&this._decodeMap.set(Ne.id,Ne),Ne.type==="inbound-rtp"&&(Ne.mediaType==="video"||Ne.kind==="video")){if(Le.bytesReceived=Ne.bytesReceived||0,Le.packetsReceived=Ne.packetsReceived||0,Le.packetsLost=Ne.packetsLost||0,Le.framesDecoded=Ne.framesDecoded||0,this.core.utils.isUndefined(Ne.framesPerSecond)||(Le.frameRate=Math.round(Ne.framesPerSecond)),Ne.decoderImplementation&&this._prevDecoderImplementation!==Ne.decoderImplementation){const ji=this._decodeMap.get(Ne.codecId),cr=((UA=ji==null?void 0:ji.mimeType)==null?void 0:UA.split("/")[1])||"unknown",Jo=Ne.powerEfficientDecoder;this.core.log.info(`decoderImplementation change to ${Ne.decoderImplementation}(${cr}) HWDecoder: ${Jo}`),this._prevDecoderImplementation=Ne.decoderImplementation}if(this.previousRawStats&&this.previousRawStats.video){const ji=this.getDifferenceValue(this.previousRawStats.video.bytesReceived,Le.bytesReceived);Le.bitrate=Math.round(8*ji/this.statInterval/1e3)}const Vt=this.getDifferenceValue((lA=this.previousRawStats)==null?void 0:lA.video.packetsLost,Le.packetsLost),si=this.getDifferenceValue((Ce=this.previousRawStats)==null?void 0:Ce.video.packetsReceived,Le.packetsReceived)+Vt;if(si>0&&(Le.packetLossRate=Math.round(Vt/si*100)),Ne.jitterBufferDelay&&Ne.jitterBufferEmittedCount){let{jitterBufferEmittedCount:ji}=Ne,{jitterBufferDelay:cr}=Ne;(xe=this.previousRawStats)!=null&&xe.video&&(ji=this.getDifferenceValue(this.previousRawStats.video.jitterBufferEmittedCount,Ne.jitterBufferEmittedCount),cr=this.getDifferenceValue(this.previousRawStats.video.jitterBufferDelay,Ne.jitterBufferDelay)),ji>0&&(Le.jitterBufferDelay=Math.floor(cr/ji*1e3)),this.previousRawStats||this.initPreviousRawStats(),this.previousRawStats.video.jitterBufferDelay=Ne.jitterBufferDelay,this.previousRawStats.video.jitterBufferEmittedCount=Ne.jitterBufferEmittedCount}this.previousRawStats||this.initPreviousRawStats(),this.previousRawStats.video.bytesReceived=Le.bytesReceived,this.previousRawStats.video.packetsReceived=Le.packetsReceived,this.previousRawStats.video.packetsLost=Le.packetsLost}!this.core.utils.isUndefined(Ne.frameWidth)&&((Qt=this.videoTransceiver)!=null&&Qt.receiver.track)&&Ne.trackIdentifier===this.videoTransceiver.receiver.track.id&&(Le.width=Ne.frameWidth,Le.height=Ne.frameHeight)}return Le}parseNetworkStats(YA){const UA={rtt:0};for(const lA of YA)if(lA.type==="candidate-pair"&&(lA.selected||lA.state==="succeeded")&&this.core.utils.isNumber(lA.currentRoundTripTime)){UA.rtt=Math.floor(1e3*lA.currentRoundTripTime);break}return UA}initPreviousRawStats(){this.previousRawStats={timestamp:Date.now(),audio:{bytesReceived:0,packetsReceived:0,packetsLost:0},video:{bytesReceived:0,packetsReceived:0,packetsLost:0}}}}(this.peerConnection,this.core),this.stat.start((YA=>{var UA,lA;return(lA=(UA=this.callback)==null?void 0:UA.onStats)==null?void 0:lA.call(UA,YA)})),await this.player.play(),this.isStarted=!0}connect(B){return new Promise(((D,E)=>{try{this.initScriptTransformWorker();const Q={encodedInsertableStreams:this.enableSEI,iceServers:[],sdpSemantics:"unified-plan",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"},p=new RTCPeerConnection(Q);this.peerConnection=p,p.onconnectionstatechange=()=>{this.connectionState=p.connectionState,this._log.info("connectionState",p.connectionState),p.connectionState!=="failed"&&p.connectionState!=="closed"||(this.isStarted?this.reconnect(B):E(new Error(`connection is ${p.connectionState}`))),p.connectionState==="connected"&&(this.logSelectedCandidate(),D())},p.ontrack=m=>this.onTrack(m),p.addTransceiver("audio",{direction:"recvonly"}),p.addTransceiver("video",{direction:"recvonly"}),this._log.info("createOffer"),p.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0,voiceActivityDetection:!1}).then((m=>(m.sdp=DC(m.sdp),this._log.info("setOffer"),p.setLocalDescription(m)))).then((()=>{const m={sessionId:sh(),streamurl:B,clientinfo:this.core.environment.getOSString(),localsdp:p.localDescription};return this.exchangeSDP(B,m)})).then((m=>(this._log.info("setAnswer"),p.setRemoteDescription(m)))).catch(E)}catch(Q){E(Q)}this.connectionTimeoutId=setTimeout((()=>E(new Error("connection timeout"))),1e4)}))}async exchangeSDP(B,D){let E,Q,p;try{this._log.info("exchangeSDP");const m=PR(B);if(!m)throw new Error("streamDomain is empty");const{signalDomain:T,cached:Y}=await this.fetchSignalDomain(m);if(!T)throw new Error("signalDomain is empty");{this._log.info("try exchangeSDP signalDomain:",T,Y);const _=await this.doExchangeSDP(`https://${T}`,D,3);E=_.url,Q=_.remoteSdp,p=_.svrSig}}catch(m){this._log.warn("exchangeSDP failed, fallback",m);const T=await this.core.utils.promiseAny(Eh.map((Y=>this.doExchangeSDP(`https://${Y}`,D,3))));E=T.url,Q=T.remoteSdp,p=T.svrSig}return this.streamURL=B,this.signalURL=E,this.svrSig=p,Q}async reconnect(B){if(!this.isReconnecting){this.isReconnecting=!0;try{this._log.warn("start reconnect"),await this.connect(B),this._log.warn("reconnect success")}catch(D){this._log.error("reconnect error",D)}finally{this.isReconnecting=!1}}}async logSelectedCandidate(){if(!this.peerConnection)return;const B=await this.peerConnection.getStats();for(const[D,E]of B)if(this.core.rtcDectection.isSelectedCandidatePair(E)){const Q=B.get(E.localCandidateId),p=B.get(E.remoteCandidateId);Q&&this._log.info(`local candidate: ${Q.candidateType} ${Q.protocol}:${Q.ip||Q.address}:${Q.port} ${Q.networkType||""} ${Q.relayProtocol?`relayProtocol:${Q.relayProtocol} url: ${Q.url}`:""}`),p&&this._log.info(`remote candidate: ${p.candidateType} ${p.protocol}:${p.ip||p.address}:${p.port}`);break}}async doExchangeSDP(B,D,E){const Q=`${B}/webrtc/v1/pullstream`,p=await Bh(Q,D,{timeout:E}),{errcode:m,errmsg:T,remotesdp:Y,svrsig:_}=p;if(m!==0){const b=new Error(`errCode:${m}, errMsg:${T}`);throw b.name="RequestSignalError",b}return{url:B,remoteSdp:Y,svrSig:_}}createEncodedStreams(B){var D;if(this.enableSEI&&this.core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED)try{if(this._log.warn("enableSEI",this.enableSEI),!this.insertableStreamsAbortMap.has(B)){const E=B.createEncodedStreams(),Q=new AbortController,p={abortController:Q,enqueue:m=>B.track.kind==="audio"?m:this.decodeVideoFrame(m)};E.readable.pipeThrough(new TransformStream({transform:(m,T)=>{const Y=p.enqueue(m);Y&&T.enqueue(Y)}})).pipeTo(E.writable,Q).catch((m=>{m!=="destroy"&&this._log.warn(m)})),(D=this.insertableStreamsAbortMap.get(B))==null||D.abort("destroy"),this.insertableStreamsAbortMap.set(B,Q)}}catch(E){this._log.warn(`createEncodedStreams ${B.track.kind} failed`,E)}}initReceiverTransform(B,D){this.peerConnection&&this.enableSEI&&this.scriptTransformWorker&&!B.transform&&(B.transform=new RTCRtpScriptTransform(this.scriptTransformWorker,{isReceiver:!0,isAudio:D,userId:"",streamType:this.core.enums.RemoteStreamType.Main}))}initScriptTransformWorker(){const{room:B,rtcDectection:D,createScriptTransformWorker:E,trtc:Q,TRTC:p}=this.core;!this.enableSEI||D.IS_INSERTABLE_STREAM_SUPPORTED||this.scriptTransformWorker||D.IS_SCRIPT_TRANSFORM_SUPPORTED&&(this._log.info("initScriptTransformWorker"),this.scriptTransformWorker=E({videoEncodePipeline:B.videoManager.encodePipeline,videoDecodePipeline:B.videoManager.decodePipeline,audioEncodePipeline:B.audioManager.encodePipeline,audioDecodePipeline:B.audioManager.decodePipeline}),this.scriptTransformWorker.onmessage=m=>{var T,Y;m.data.type==="sei"&&((Y=(T=this.callback)==null?void 0:T.onSEIMessage)==null||Y.call(T,{data:m.data.data,seiPayloadType:m.data.seiPayloadType}))},this.scriptTransformWorker.onerror=m=>{this._log.error("scriptTransformWorker error: ",m.message)})}decodeVideoFrame(B){if(!this.core.room.videoManager)return B;for(const D of this.core.room.videoManager.decodePipeline)if(D&&!(B=D({frame:B})))return;return B}async fetchStopStream(){if(this.streamURL&&this.svrSig&&this.signalURL)try{const B=`${this.signalURL}/webrtc/v1/stopstream`,D=await Bh(B,{streamurl:this.streamURL,svrsig:this.svrSig},{timeout:3}),{errcode:E,errmsg:Q}=D;if(E!==0)throw new Error(`errCode:${E}, errmsg:${Q}`);return D}catch(B){this._log.error("fetchStopStream error",B)}}onTrack(B){const{track:D}=B;this.createEncodedStreams(B.receiver),this.initReceiverTransform(B.receiver,D.kind==="audio"),D.kind==="audio"?this.player.setAudioTrack(D):this.player.setVideoTrack(D)}async update(B){const{volume:D,muted:E,fillMode:Q,action:p,fullScreen:m,pictureInPicture:T}=B;this.player.setMuted(E),this.player.setVolume(D),this.player.setFillMode(Q),p==="pause"?this.player.pause():p==="resume"&&this.player.resume(),this.core.utils.isBoolean(m)&&(m?await this.player.enterFullscreen():await this.player.exitFullscreen()),this.core.utils.isBoolean(T)&&(T?await this.player.enterPictureInPicture():await this.player.exitPictureInPicture())}async stop(){this.isStopped=!0,this.player.stop(),this.peerConnection&&(clearTimeout(this.connectionTimeoutId),this.peerConnection.close(),this.peerConnection.getReceivers().forEach((B=>this.insertableStreamsAbortMap.delete(B))),delete this.peerConnection,await this.fetchStopStream(),delete this.streamURL,delete this.signalURL,delete this.svrSig),this.stat&&(this.stat.stop(),delete this.stat)}destroy(){this.stop(),this.core.innerEmitter.off(this.core.INNER_EVENT.SEI_MESSAGE,this.onSEIMessage,this)}onSEIMessage({room:B,nalu:D}){var E,Q;B===this.core.room&&((Q=(E=this.callback)==null?void 0:E.onSEIMessage)==null||Q.call(E,{data:D.seiPayload.buffer,seiPayloadType:D.seiPayloadType}))}async fetchSignalDomain(B,D=Ch[0]){const E=`https://${D}/signal_query`;try{const Q=window.localStorage.getItem(Qh);if(Q){const Y=JSON.parse(Q);if(Y[B].expire-new Date().getTime()>0)return{signalDomain:Y[B].signal,cached:!0}}const p=await Bh(E,{domain:B,requestid:sh(16),client_type:"Web",client_info:window.navigator.userAgent}),{errcode:m,data:T}=p;if(m===0){const{signal_domain:Y,cache_time:_}=T;let b={};const AA=window.localStorage.getItem(Qh);AA&&(b=JSON.parse(AA)),b[B]={signal:Y,expire:new Date().getTime()+1e3*_};try{window.localStorage.setItem(Qh,JSON.stringify(b))}catch{}return{signalDomain:Y,cached:!1}}throw new Error(`errCode:${m}`)}catch(Q){return this._log.error("fetchSignalDomain error",Q),D!==Ch[1]?this.fetchSignalDomain(B,Ch[1]):{signalDomain:"",cached:!1}}}};Jt(mE,"Name","LEBPlayer"),ua([(function({settings:h={retries:5,timeout:2e3},onError:B,onRetrying:D,onRetryFailed:E}){return function(Q,p,m){const T=dE({retryFunction:m.value,settings:h,onError({error:Y,retry:_,reject:b,retryFuncArgs:AA}){var nA;B?B.call(this,Y,(()=>{var fA;(fA=So.get(Q))!=null&&fA.has(p)?_():b(Y)}),b,AA):(nA=So.get(Q))!=null&&nA.has(p)?_():b(Y)},onRetrying(Y,_){var b;da(D)&&D.call(this,Y,_),(b=So.get(Q))!=null&&b.has(p)&&(So.get(Q).get(p).stopRetry=_)},onRetryFailed:E});return m.value=function(...Y){const _=So.get(Q);return _?_.set(p,{args:Y}):So.set(Q,new Map([[p,{args:Y}]])),T.apply(this,Y).finally((()=>{var b;return(b=So.get(Q))==null?void 0:b.delete(p)}))},m}})({settings:{retries:1/0,timeout:2e3},onRetrying(h){var B;if(this._log.warn(`retry connect ${h}`),h>=3&&((B=this.callback)==null?void 0:B.onError)&&!this.isFireWallErrorEmitted){const{RtcError:D,ErrorCode:E,ErrorCodeDictionary:Q}=this.core.errorModule;this.isFireWallErrorEmitted=!0,this.callback.onError(new D({code:E.OPERATION_FAILED,extraCode:Q.FIREWALL_RESTRICTION,message:"firewall restriction"}))}},onError(h,B,D,E){var Q;if(this._log.warn("connect failed",h),this.peerConnection&&(this.peerConnection.close(),delete this.peerConnection),!this.isStopped&&((Q=h.message||h)==null?void 0:Q.includes("connection")))B();else{const{RtcError:p,ErrorCode:m}=this.core.errorModule;D(new p({code:m.UNKNOWN_ERROR,message:h.message}))}}})],mE.prototype,"connect"),ua([(function({fnName:h,callback:B,validateArgs:D=!0}){return function(E,Q,p){const m=p.value;return p.value=function(...T){var Y,_;if((Y=So.get(E))!=null&&Y.has(h)){const{stopRetry:b,args:AA}=So.get(E).get(h);let nA=!0;if(D){for(const fA of AA)if(!T.find((dA=>dA===fA))){nA=!1;break}}nA&&(B&&B.apply(this,T),b&&b(),(_=So.get(E))==null||_.delete(h))}return m.apply(this,T)},p}})({fnName:"connect"})],mE.prototype,"stop");var qR=mE,Bh=async(h,B,D={})=>{const{timeout:E=10}=D;let Q,p=0,m={};window.AbortController&&(Q=new window.AbortController,m={signal:Q.signal},p=window.setTimeout((()=>Q.abort()),1e3*E));const T=await fetch(h,((Y,_)=>{for(var b in _||(_={}))dC.call(_,b)&&Ih(Y,b,_[b]);if(yd)for(var b of yd(_))ah.call(_,b)&&Ih(Y,b,_[b]);return Y})({body:JSON.stringify(B),cache:"no-cache",credentials:"same-origin",headers:{"content-type":"text/plain;charset=utf-8"},method:"POST",mode:"cors"},m));if(p&&window.clearTimeout(p),T.status!==200)throw new Error(`Network Error, status code:${T.status}`);return T.json()},Ch=["webrtc-signal-scheduler.tlivesource.com","bak-webrtc-signal-scheduler.tlivesource.com"],Qh="LEB_PLAYER_STORAGE_KEY",PR=h=>{const B=/^(?:webrtc:\/\/)([0-9.\-A-Za-z_]+)(?:\/)(?:[0-9.\-A-Za-z_=]+)(?:\/)(?:[^?#]*)(?:\?*)(?:[^?#]*)/.exec(h);return B?B[1]:""},VR=Object.defineProperty,fE=(h,B,D)=>((E,Q,p)=>Q in E?VR(E,Q,{enumerable:!0,configurable:!0,writable:!0,value:p}):E[Q]=p)(h,typeof B!="symbol"?B+"":B,D),ch,Xn=(ch=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0,function(h={}){var B,D,E=h;E.ready=new Promise(((Z,q)=>{B=Z,D=q}));var Q=Object.assign({},E),p="";typeof document<"u"&&document.currentScript&&(p=document.currentScript.src),ch&&(p=ch),p=p.indexOf("blob:")!==0?p.substr(0,p.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var m,T=E.print||console.log.bind(console),Y=E.printErr||console.error.bind(console);Object.assign(E,Q),Q=null,E.arguments&&E.arguments,E.thisProgram&&E.thisProgram,E.quit&&E.quit,E.wasmBinary&&(m=E.wasmBinary),typeof WebAssembly!="object"&&Vt("no native wasm support detected");var _,b,AA,nA,fA,dA,YA,UA,lA=!1,Ce=[],xe=[],Qt=[],Le=0,Ne=null;function Vt(Z){E.onAbort&&E.onAbort(Z),Y(Z="Aborted("+Z+")"),lA=!0,Z+=". Build with -sASSERTIONS for more info.";var q=new WebAssembly.RuntimeError(Z);throw D(q),q}var si,ji,cr="data:application/octet-stream;base64,",Jo=Z=>Z.startsWith(cr);function os(Z){return Promise.resolve().then((()=>(function(q){if(q==si&&m)return new Uint8Array(m);var uA=(function(bA){if(Jo(bA))return(function(VA){for(var XA=atob(VA),re=new Uint8Array(XA.length),se=0;se<XA.length;++se)re[se]=XA.charCodeAt(se);return re})(bA.slice(cr.length))})(q);if(uA)return uA;throw"both async and sync fetching of the wasm failed"})(Z)))}Jo(si="data:application/octet-stream;base64,AGFzbQEAAAAB8gEfYAJ/fwBgAX8Bf2ADf39/AX9gAX8AYAN/f38AYAJ/fwF/YAR/f39/AGAAAGAFf39/f38AYAZ/f39/f38AYAR/f39/AX9gB39/f39/f38AYAN/fn8BfmAFf3x8fHwAYAZ/fHx8fHwAYAV/f39/fwF8YAl/f39/f39/f38AYAN/f38BfGAKf39/f39/f39/fwBgDX9/f39/f39/f39/f38AYAJ/fABgAn5/AX9gAn99AGABfAF8YAZ/fH9/f38Bf2AGf39/f39/AX9gAnx/AXxgBH9/fn4AYAZ/f3x8fHwAYAd/f3x8fHx8AGAFf39/f38BfwKXARkBYQFhAAQBYQFiAAMBYQFjAAMBYQFkAAMBYQFlAA8BYQFmAAIBYQFnAAgBYQFoAAUBYQFpABABYQFqABEBYQFrABIBYQFsAAQBYQFtAAcBYQFuAAoBYQFvAAABYQFwAAQBYQFxAAsBYQFyAAEBYQFzAAQBYQF0AAABYQF1AAYBYQF2AAABYQF3AAQBYQF4AAkBYQF5ABMDZmUDBQIBBAIIBRQCBAUFAgcBFQEAAwEWAAQABAUFBRcHBwMBBgUEBQMAAwIECwQCAQUYBgEZChoBAwcDBhsHAQEBCQkICAQCBgYCAgAAAgEABQwBAgMBAAMAAwEcDR0OAAAAAAAeAAQFAXABNzcFBgEBgAKAAgYNAn8BQbDiBAt/AUEACwchCAF6AgABQQA4AUIALQFDAQABRABtAUUAGQFGAFgBRwB8CTwBAEEBCzZybGhmZGM+XX17enl4d3Z1dHNxcG9uPjpVUWpraUlnZUcsUFBiLGFZW2AsWlxfLF5HLFc5VjkK/pQCZfULAQd/AkAgAEUNACAAQQhrIgIgAEEEaygCACIBQXhxIgBqIQUCQCABQQFxDQAgAUEDcUUNASACIAIoAgAiAWsiAkHM3gAoAgBJDQEgACABaiEAAkACQEHQ3gAoAgAgAkcEQCABQf8BTQRAIAFBA3YhBCACKAIMIgEgAigCCCIDRgRAQbzeAEG83gAoAgBBfiAEd3E2AgAMBQsgAyABNgIMIAEgAzYCCAwECyACKAIYIQYgAiACKAIMIgFHBEAgAigCCCIDIAE2AgwgASADNgIIDAMLIAJBFGoiBCgCACIDRQRAIAIoAhAiA0UNAiACQRBqIQQLA0AgBCEHIAMiAUEUaiIEKAIAIgMNACABQRBqIQQgASgCECIDDQALIAdBADYCAAwCCyAFKAIEIgFBA3FBA0cNAkHE3gAgADYCACAFIAFBfnE2AgQgAiAAQQFyNgIEIAUgADYCAA8LQQAhAQsgBkUNAAJAIAIoAhwiA0ECdEHs4ABqIgQoAgAgAkYEQCAEIAE2AgAgAQ0BQcDeAEHA3gAoAgBBfiADd3E2AgAMAgsgBkEQQRQgBigCECACRhtqIAE2AgAgAUUNAQsgASAGNgIYIAIoAhAiAwRAIAEgAzYCECADIAE2AhgLIAIoAhQiA0UNACABIAM2AhQgAyABNgIYCyACIAVPDQAgBSgCBCIBQQFxRQ0AAkACQAJAAkAgAUECcUUEQEHU3gAoAgAgBUYEQEHU3gAgAjYCAEHI3gBByN4AKAIAIABqIgA2AgAgAiAAQQFyNgIEIAJB0N4AKAIARw0GQcTeAEEANgIAQdDeAEEANgIADwtB0N4AKAIAIAVGBEBB0N4AIAI2AgBBxN4AQcTeACgCACAAaiIANgIAIAIgAEEBcjYCBCAAIAJqIAA2AgAPCyABQXhxIABqIQAgAUH/AU0EQCABQQN2IQQgBSgCDCIBIAUoAggiA0YEQEG83gBBvN4AKAIAQX4gBHdxNgIADAULIAMgATYCDCABIAM2AggMBAsgBSgCGCEGIAUgBSgCDCIBRwRAQczeACgCABogBSgCCCIDIAE2AgwgASADNgIIDAMLIAVBFGoiBCgCACIDRQRAIAUoAhAiA0UNAiAFQRBqIQQLA0AgBCEHIAMiAUEUaiIEKAIAIgMNACABQRBqIQQgASgCECIDDQALIAdBADYCAAwCCyAFIAFBfnE2AgQgAiAAQQFyNgIEIAAgAmogADYCAAwDC0EAIQELIAZFDQACQCAFKAIcIgNBAnRB7OAAaiIEKAIAIAVGBEAgBCABNgIAIAENAUHA3gBBwN4AKAIAQX4gA3dxNgIADAILIAZBEEEUIAYoAhAgBUYbaiABNgIAIAFFDQELIAEgBjYCGCAFKAIQIgMEQCABIAM2AhAgAyABNgIYCyAFKAIUIgNFDQAgASADNgIUIAMgATYCGAsgAiAAQQFyNgIEIAAgAmogADYCACACQdDeACgCAEcNAEHE3gAgADYCAA8LIABB/wFNBEAgAEF4cUHk3gBqIQECf0G83gAoAgAiA0EBIABBA3Z0IgBxRQRAQbzeACAAIANyNgIAIAEMAQsgASgCCAshACABIAI2AgggACACNgIMIAIgATYCDCACIAA2AggPC0EfIQMgAEH///8HTQRAIABBJiAAQQh2ZyIBa3ZBAXEgAUEBdGtBPmohAwsgAiADNgIcIAJCADcCECADQQJ0QezgAGohAQJAAkACQEHA3gAoAgAiBEEBIAN0IgdxRQRAQcDeACAEIAdyNgIAIAEgAjYCACACIAE2AhgMAQsgAEEZIANBAXZrQQAgA0EfRxt0IQMgASgCACEBA0AgASIEKAIEQXhxIABGDQIgA0EddiEBIANBAXQhAyAEIAFBBHFqIgdBEGooAgAiAQ0ACyAHIAI2AhAgAiAENgIYCyACIAI2AgwgAiACNgIIDAELIAQoAggiACACNgIMIAQgAjYCCCACQQA2AhggAiAENgIMIAIgADYCCAtB3N4AQdzeACgCAEEBayIAQX8gABs2AgALCwwAIAAgASABECoQGwu9AQEDfyMAQRBrIgUkAAJAIAIgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyIEAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgNrTQRAIAJFDQECfyAALQALQQd2BEAgACgCAAwBCyAACyIEIANqIAEgAhAjIAAgAiADaiIBEDEgBUEAOgAPIAEgBGogBS0ADzoAAAwBCyAAIAQgAiAEayADaiADIAMgAiABEEQLIAVBEGokACAACzYBAX9BASAAIABBAU0bIQACQANAIAAQLSIBDQFBrOIAKAIAIgEEQCABEQcADAELCxAMAAsgAQvBAQEDfyAALQAAQSBxRQRAAkAgAiAAKAIQIgMEfyADBSAAEE8NASAAKAIQCyAAKAIUIgRrSwRAIAAgASACIAAoAiQRAgAaDAELAkACQCAAKAJQQQBIDQAgAkUNACACIQMDQCABIANqIgVBAWstAABBCkcEQCADQQFrIgMNAQwCCwsgACABIAMgACgCJBECACADSQ0CIAIgA2shAiAAKAIUIQQMAQsgASEFCyAEIAUgAhAiGiAAIAAoAhQgAmo2AhQLCwt0AQF/IAJFBEAgACgCBCABKAIERg8LIAAgAUYEQEEBDwsgASgCBCICLQAAIQECQCAAKAIEIgMtAAAiAEUNACAAIAFHDQADQCACLQABIQEgAy0AASIARQ0BIAJBAWohAiADQQFqIQMgACABRg0ACwsgACABRgtvAQF/IwBBgAJrIgUkAAJAIAIgA0wNACAEQYDABHENACAFIAFB/wFxIAIgA2siA0GAAiADQYACSSIBGxAmGiABRQRAA0AgACAFQYACEB0gA0GAAmsiA0H/AUsNAAsLIAAgBSADEB0LIAVBgAJqJAALgQMBBH8jAEHwAGsiAiQAIAAoAgAiA0EEaygCACEEIANBCGsoAgAhBSACQgA3AlAgAkIANwJYIAJCADcCYCACQgA3AGcgAkIANwJIIAJBADYCRCACQazMADYCQCACIAA2AjwgAiABNgI4IAAgBWohAwJAIAQgAUEAEB4EQEEAIAMgBRshAAwBCyAAIANOBEAgAkIANwAvIAJCADcCGCACQgA3AiAgAkIANwIoIAJCADcCECACQQA2AgwgAiABNgIIIAIgADYCBCACIAQ2AgAgAkEBNgIwIAQgAiADIANBAUEAIAQoAgAoAhQRCQAgAigCGA0BC0EAIQAgBCACQThqIANBAUEAIAQoAgAoAhgRCAACQAJAIAIoAlwOAgABAgsgAigCTEEAIAIoAlhBAUYbQQAgAigCVEEBRhtBACACKAJgQQFGGyEADAELIAIoAlBBAUcEQCACKAJgDQEgAigCVEEBRw0BIAIoAlhBAUcNAQsgAigCSCEACyACQfAAaiQAIAAL0AEBBX8jAEEQayIGJAAgBkEEaiICED8jAEEQayIFJAACfyACLQALQQd2BEAgAigCBAwBCyACLQALQf8AcQshBANAAkACfyACLQALQQd2BEAgAigCAAwBCyACCyEDIAUgATkDACACAn8gAyAEQQFqIAUQRiIDQQBOBEAgAyAETQ0CIAMMAQsgBEEBdEEBcgsiBBArDAELCyACIAMQKyAAIAIpAgA3AgAgACACKAIINgIIIAJCADcCACACQQA2AgggBUEQaiQAIAIQQSAGQRBqJAALgAQBA38gAkGABE8EQCAAIAEgAhASIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAEEDcUUEQCAAIQIMAQsgAkUEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgJBA3FFDQEgAiADSQ0ACwsCQCADQXxxIgRBwABJDQAgAiAEQUBqIgVLDQADQCACIAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAACwsAIAEgAiAAEEIaCxIAIAFBAXRBwMoAakECIAAQQgv5AQEEfwJ/IAEQKiECIwBBEGsiBSQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgRBAE8EQAJAIAIgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyIDIARrTQRAIAJFDQECfyAALQALQQd2BEAgACgCAAwBCyAACyIDIAQEfyACIANqIAMgBBBFIAEgAkEAIAMgBGogAUsbQQAgASADTxtqBSABCyACEEUgACACIARqIgEQMSAFQQA6AA8gASADaiAFLQAPOgAADAELIAAgAyACIARqIANrIARBACACIAEQRAsgBUEQaiQAIAAMAQsQJwALC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRr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ACACQQA6AA8DQCABBEAgACACLQAPOgAAIAFBAWshASAAQQFqIQAMAQsLIAJBEGokAAsaACAALQALQQd2BEAgACgCCBogACgCABAZCwvmAQEFfyMAQRBrIgUkACMAQSBrIgMkACMAQRBrIgQkACAEIAA2AgwgBCAAIAFqNgIIIAMgBCgCDDYCGCADIAQoAgg2AhwgBEEQaiQAIAMoAhghBCADKAIcIQYjAEEQayIBJAAgASAGNgIMIAIgBCAGIARrIgQQQyABIAIgBGo2AgggAyABKAIMNgIQIAMgASgCCDYCFCABQRBqJAAgAyAAIAMoAhAgAGtqNgIMIAMgAiADKAIUIAJrajYCCCAFIAMoAgw2AgggBSADKAIINgIMIANBIGokACAFKAIMIQcgBUEQaiQAIAcLDwAgAgRAIAAgASACEDILC/UCAQV/IwBBEGsiByQAIAIgAUF/c0Hv////B2pNBEACfyAALQALQQd2BEAgACgCAAwBCyAACyEIIAdBBGoiCSAAIAFB5////wNJBH8gByABQQF0NgIMIAcgASACajYCBCMAQRBrIgIkACAJKAIAIAdBDGoiCigCAEkhCyACQRBqJAAgCiAJIAsbKAIAIgJBC08EfyACQRBqQXBxIgIgAkEBayICIAJBC0YbBUEKC0EBagVB7////wcLEDAgBygCBCECIAcoAggaIAQEQCACIAggBBAjCyAFBEAgAiAEaiAGIAUQIwsgAyAEayEGIAMgBEcEQCACIARqIAVqIAQgCGogBhAjCyABQQpHBEAgCBAZCyAAIAI2AgAgACAAKAIIQYCAgIB4cSAHKAIIQf////8HcXI2AgggACAAKAIIQYCAgIB4cjYCCCAAIAQgBWogBmoiADYCBCAHQQA6AAwgACACaiAHLQAMOgAAIAdBEGokAA8LECcACwoAIAAgASACEEMLuQEBBH8jAEEQayIEJAAgBCACNgIMIwBBoAFrIgMkACADIAAgA0GeAWogARsiBjYClAFBfyEFIAMgAUEBayIAQQAgACABTRs2ApgBIANBAEGQARAmIgBBfzYCTCAAQSA2AiQgAEF/NgJQIAAgAEGfAWo2AiwgACAAQZQBajYCVAJAIAFBAEgEQEG43gBBPTYCAAwBCyAGQQA6AAAgAEH9CiACQR8QTSEFCyAAQaABaiQAIARBEGokACAFCwQA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KAIARQ0AIAIgBCgCGDYCAAsgAEEBRiEFDAELQQAhBQsgBEFAayQAIAULMQAgACABKAIIQQAQHgRAIAEgAiADED0PCyAAKAIIIgAgASACIAMgACgCACgCHBEGAAsYACAAIAEoAghBABAeBEAgASACIAMQPQsLnQEBAn8jAEFAaiIDJAACf0EBIAAgAUEAEB4NABpBACABRQ0AGkEAIAFB3MwAECAiAUUNABogA0EMakEAQTQQJhogA0EBNgI4IANBfzYCFCADIAA2AhAgAyABNgIIIAEgA0EIaiACKAIAQQEgASgCACgCHBEGACADKAIgIgBBAUYEQCACIAMoAhg2AgALIABBAUYLIQQgA0FAayQAIAQLCgAgACABQQAQHgtOAgF/AXwjAEEQayICJAAgAkEANgIMIAEoAgRBpM8AIAJBDGoQCSEDIAIoAgwiAQRAIAEQAQsgACADRAAAAAAAAAAAYjoAOCACQRBqJAALNwEBfyMAQRBrIgIkACACIAEtADg2AgggAEGkzwAgAkEIahAHNgIEIABBpNUANgIAIAJBEGokAAuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECIaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECIaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACC5wBAQJ/IwBBEGsiAiQAQcgAEBwhASAAKAIEIgAQAiACIAA2AgggAUGcLSACQQhqEAc2AgQgAUGk1QA2AgAgAUEBNgIcIAFBpNUANgIYIAFBATYCFCABQaTVADYCECABQQE2AgwgAUGk1QA2AgggAUEAOgAgIAFBADYCRCABQoCAgIAwNwI8IAFBADsANyABQQA7ACsgAkEQaiQAIAELigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBSMAQSBrIgAkAAJAIAVC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBUIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBUIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIBQZH3AEkNACADIQIgBUL///////8/g0KAgICAgIDAAIQiBCEGAkAgAUGB9wBrIghBwABxBEAgAyAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAAgAjcDECAAIAY3AxgCQEGB+AAgAWsiAUHAAHEEQCAEIAFBQGqtiCEDQgAhBAwBCyABRQ0AIARBwAAgAWuthiADIAGtIgKIhCEDIAQgAoghBAsgACADNwMAIAAgBDcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACAJIAIgBUKAgICAgICAgIB/g4S/OQMAC0ABAn8jAEEQayICJAAgAiABNgIMIAJBpNUANgIIIAJBCGogABEBACEDIAIoAgwiAQRAIAEQAwsgAkEQaiQAIAMLBABCAAsEAEEAC/YCAQh/IwBBIGsiAyQAIAMgACgCHCIENgIQIAAoAhQhBSADIAI2AhwgAyABNgIYIAMgBSAEayIBNgIUIAEgAmohBUECIQcCfwJAAkACQCAAKAI8IANBEGoiAUECIANBDGoQDSIEBH9BuN4AIAQ2AgBBfwVBAAsEQCABIQQMAQsDQCAFIAMoAgwiBkYNAiAGQQBIBEAgASEEDAQLIAEgBiABKAIEIghLIglBA3RqIgQgBiAIQQAgCRtrIgggBCgCAGo2AgAgAUEMQQQgCRtqIgEgASgCACAIazYCACAFIAZrIQUgACgCPCAEIgEgByAJayIHIANBDGoQDSIGBH9BuN4AIAY2AgBBfwVBAAtFDQALCyAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2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Q0EASARAIAYoAjgQGQsgBiwAM0EASARAIAYoAigQGQsgBiwAJ0EATg0AIAYoAhwQGQsgAkEBaiICQQdHDQALIAVBAWoiBUEHRw0ACyMAQRBrIgwkAEHoJRAqIQcCfyAGQYgBaiIFLQALQQd2BEAgBSgCBAwBCyAFLQALQf8AcQshCAJ/An8jAEEQayIJJAAgBkH4AGohAiAHIAhqIgRB7////wdNBEACQCAEQQtJBEAgAkIANwIAIAJBADYCCCACIAItAAtBgAFxIARB/wBxcjoACyACIAItAAtB/wBxOgALDAELIARBC08EfyAEQRBqQXBxIgogCkEBayIKIApBC0YbBUEKC0EBaiIKEBwhCyACIAIoAghBgICAgHhxIApB/////wdxcjYCCCACIAIoAghBgICAgHhyNgIIIAIgCzYCACACIAQ2AgQLIAlBEGokACACDAELECcACyIELQALQQd2BEAgBCgCAAwBCyAECyIEQeglIAcQIyAEIAdqIgQCfyAFLQALQQd2BEAgBSgCAAwBCyAFCyAIECMgBCAIakEBEEAgDEEQaiQAIA0gAkHCKRAaIgIpAgA3AgAgDSACKAIINgIIIAJCADcCACACQQA2AgggBiwAgwFBAEgEQCAGKAJ4EBkLIAYsAJMBQQBIBEAgBigCiAEQGQsgBigClAEiBQRAIAYoApgBIgQgBSICRwRAA0AgBEEMayICKAIAIgcEQCAEQQhrIAc2AgAgBxAZCyACIgQgBUcNAAsgBigClAEhAgsgBiAFNgKYASACEBkLIAZBoAFqJAAgA0EcaiADKAIoIA0gAy0AMyICwEEASCIFGyADKAIsIAIgBRsQGxogAywAM0EATg0DIAMoAigQGQwDCyADQRxqQZshEBoaDAILIANBHGpB/isQGhoMAQsgA0EcakHnKxAaGgsCQAJAIAEoAjAgAS0ANyICIALAIgZBAEgbIgRBAWoiBUHw////B0kEQAJAAkAgBUELTwRAIAVBD3JBAWoiBxAcIQIgAyAFNgIsIAMgAjYCKCADIAdBgICAgHhyNgIwDAELIANBADYCMCADQgA3AyggAyAFOgAzIANBKGohAiAERQ0BCyACIAFBLGoiBSgCACAFIAZBAEgbIAQQMgsgAiAEakEKOwAAIANBHGogAygCKCADQShqIAMtADMiAsBBAEgiBRsgAygC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EGokAAsiAQF+IAEgAq0gA61CIIaEIAQgABEMACIFQiCIpyQBIAWnCzcBAX8jAEEQayICJAAgAiABKAI8NgIIIABB7M8AIAJBCGoQBzYCBCAAQaTVADYCACACQRBqJAALC8NKFQBBgAgL1CVzZXRCZWF1dHkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAB1bnNpZ25lZCBzaG9ydAB1bnNpZ25lZCBpbnQAaW5pdABmbG9hdAB1aW50NjRfdABibHVyUmFkaXVzAHZlY3RvcgBtaXJyb3IAYXR0YWNoU2hhZGVyAGRlbGV0ZVNoYWRlcgBjcmVhdGVTaGFkZXIAY29tcGlsZVNoYWRlcgB1bnNpZ25lZCBjaGFyAHN0ZDo6ZXhjZXB0aW9uAHJvdGF0aW9uAG5hbgBsaW5rUHJvZ3JhbQBkZWxldGVQcm9ncmFtAGNyZWF0ZVByb2dyYW0AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0V2F0ZXJNYXJrAHN0b3BXYXRlck1hcmsAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlZgBjbG9zZQBkb3VibGUAdmJNb2RlAHNoYWRlclNvdXJjZQB2b2lkAHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sATkFOAElORgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgB2ZWMyIGMgPSB2X3RleENvb3JkOwB2ZWMyIGMgPSB2ZWMyKDEuMCAtIHZfdGV4Q29vcmQueCwgdl90ZXhDb29yZC55KTsAYyA9IHZlYzIoMS4wIC0gYy54LCAxLjAgLSBjLnkpOwBjID0gdmVjMihjLnksIDEuMCAtIGMueCk7AGMgPSB2ZWMyKDEuMCAtIGMueSwgYy54KTsAQWxsSW4xAC4ALjAsAC4wKSpvKSoAKG51bGwpACkqby55KTsgICAgdmVjMiBjb29yZDIgPSB2ZWMyKGZsb2F0KAAgICAgYyA9IHZlYzIodl90ZXhDb29yZC54LCAxLjAgLSB2X3RleENvb3JkLnkpOyAgICB2ZWMyIGNvb3JkMSA9IHZlYzIoZmxvYXQoACksIChjLnkgLWNvb3JkMS55KSAvIG8ueSAvIGZsb2F0KAApKm8ueSk7ICAgIGlmIChjLnggPiBjb29yZDEueCAmJiBjLnggPCBjb29yZDIueCAmJiBjLnkgPiBjb29yZDEueSAmJiBjLnkgPCBjb29yZDIueSkgeyAgICAgIHZlYzQgd2F0ZXJDb2xvciA9IHRleHR1cmUod2F0ZXJNYXJrLCB2ZWMyKChjLnggLSBjb29yZDEueCkgIC8gby54IC8gZmxvYXQoACkgKiBvLngsIGZsb2F0KABvdXRDb2xvci5yZ2IgKz0gdmVjMygAKTsgICAgICAgdmVjMyBzbW9vdGhDb2xvciA9IG91dENvbG9yLnJnYiArIChvdXRDb2xvci5yZ2ItdmVjMyhoaWdoUGFzcykpKmFscGhhKjAuMTsgICAgICAgc21vb3RoQ29sb3IgPSBjbGFtcChwb3coc21vb3RoQ29sb3IsIHZlYzMoAGcrPUcoYyx2ZWMyKAAgICAgICB2ZWMyIG9mZnNldCA9IHZlYzIoAF0gPSB2X3RleENvb3JkLnh5ICsgb2Zmc2V0ICogdmVjMigAOyAAKSksIHZlYzMoMC4wKSwgdmVjMygxLjApKTsgICAgICB2ZWMzIHNjcmVlbiA9IHZlYzMoMS4wKSAtICh2ZWMzKDEuMCktc21vb3RoQ29sb3IpICogKHZlYzMoMS4wKS1vdXRDb2xvci5yZ2IpOyAgICAgICB2ZWMzIGxpZ2h0ZW4gPSBtYXgoc21vb3RoQ29sb3IsIG91dENvbG9yLnJnYik7ICAgICAgIHZlYzMgYmVhdXR5Q29sb3IgPSBtaXgobWl4KG91dENvbG9yLnJnYiwgc2NyZWVuLCBhbHBoYSksIGxpZ2h0ZW4sIGFscGhhKTsgICAgICBvdXRDb2xvci5yZ2IgPSBtaXgob3V0Q29sb3IucmdiLCBiZWF1dHlDb2xvciwgAAogICAgICBjb25zdCBtYXQzIHNhdHVyYXRlTWF0cml4ID0gbWF0MygxLjExMDIsLTAuMDU5OCwtMC4wNjEsLTAuMDc3NCwxLjA4MjYsLTAuMTE4NiwtMC4wMjI4LC0wLjAyMjgsMS4xNzcyKTsKICAgICAgdmVjMyB3YXJtQ29sb3IgPSBvdXRDb2xvci5yZ2IgKiBzYXR1cmF0ZU1hdHJpeDsKICAgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgd2FybUNvbG9yLCAAICAgICAgc2FtcGxlQ29sb3IgPSBzYW1wbGVDb2xvciAvIDYyLjA7ICAgICAgIGZsb2F0IGhpZ2hQYXNzID0gb3V0Q29sb3IuZyAtIHNhbXBsZUNvbG9yICsgMC41OyAgICAgICBjb25zdCBoaWdocCB2ZWMzIFcgPSB2ZWMzKDAuMjk5LDAuNTg3LDAuMTE0KTsgICAgICBmbG9hdCBsdW1pbmFuY2UgPSBkb3Qob3V0Q29sb3IucmdiLCBXKTsgICAgICAgZmxvYXQgYWxwaGEgPSBwb3cobHVtaW5hbmNlLCAAXSkuZyAqIAApKSk7ICAgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3Isd2F0ZXJDb2xvciwgIHdhdGVyQ29sb3IuYSk7ICAgIH0gICAgACk7ICAgIAApOyAgICAgIHZlYzIgYmx1ckNvb3JkaW5hdGVzWzI0XTsgICAgICAAICAgICAgZmxvYXQgc2FtcGxlQ29sb3IgPSBvdXRDb2xvci5nICogMjIuMDsgICAgICAgACN2ZXJzaW9uIDMwMCBlcwogICAgcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OwogICAgdW5pZm9ybSBzYW1wbGVyMkQgZnJhbWU7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBtYXNrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgYmc7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCB3YXRlck1hcms7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBsYXN0TWFzazsKICAgIHVuaWZvcm0gbWF0NCB1X29mZnNldE1hdHJpeDsKICAgIHVuaWZvcm0gdmVjMyB1X2NvbG9yOwogICAgaW4gdmVjMiB2X3RleENvb3JkOwogICAgb3V0IHZlYzQgb3V0Q29sb3I7CiAgICB2ZWM0IEcodmVjMiBjLHZlYzIgcyl7CiAgICAgIHJldHVybiB0ZXh0dXJlKGZyYW1lLHRleHR1cmUobWFzayxjK3MpLnI+MC4zP2M6YytzKTsKICAgIH0KICAgIHZvaWQgbWFpbigpIHsKICAgICAgAAogICAgICB2ZWMyIG9mZnNldE1hc2tVViA9ICh1X29mZnNldE1hdHJpeCAqIHZlYzQoYywgMCwgMSkpLnh5OwogICAgICBmbG9hdCBpc0luc2lkZVggPSAob2Zmc2V0TWFza1VWLnggPj0gMC4wKSAmJiAob2Zmc2V0TWFza1VWLnggPD0gMS4wKSA/IDEuMCA6IDAuMDsKICAgICAgZmxvYXQgaXNJbnNpZGVZID0gKG9mZnNldE1hc2tVVi55ID49IDAuMCkgJiYgKG9mZnNldE1hc2tVVi55IDw9IDEuMCkgPyAxLjAgOiAwLjA7CiAgICAgIGZsb2F0IGlzSW5zaWRlID0gaXNJbnNpZGVYICogaXNJbnNpZGVZOwogICAgICBmbG9hdCBtYXNrZWRBbHBoYSA9IHRleHR1cmUobWFzaywgb2Zmc2V0TWFza1VWKS5yICogaXNJbnNpZGU7CiAgICAgIG1hc2tlZEFscGhhID0gbWFza2VkQWxwaGE8MC41PzIuMCptYXNrZWRBbHBoYSptYXNrZWRBbHBoYToxLjAtMi4wKigxLjAtbWFza2VkQWxwaGEpKigxLjAtbWFza2VkQWxwaGEpOwogICAgICBzcmNfY29sb3IgPSB0ZXh0dXJlKGZyYW1lLCBvZmZzZXRNYXNrVVYgLCBpc0luc2lkZSk7CiAgICAgIG91dENvbG9yID0gbWl4KHRleHR1cmUoYmcsIGMpLCBzcmNfY29sb3IsIG1hc2tlZEFscGhhKTsKICAgIAAKICAgIHZlYzQgZyA9IHZlYzQoMC4wKTsKICAgIAAKICAgICAgYy55ID0gMS4wIC0gYy55OwogICAgICB2ZWM0IHNyY19jb2xvciA9IHRleHR1cmUoZnJhbWUsIGMpOwogICAgICBmbG9hdCBhID0gdGV4dHVyZShtYXNrLCBjKS5yOwogICAgICBhID0gYTwwLjU/Mi4wKmEqYToxLjAtMi4wKigxLjAtYSkqKDEuMC1hKTsKICAgICAgLy8gZmxvYXQgYTIgPSB0ZXh0dXJlKGxhc3RNYXNrLCBjKS5hOwogICAgICAvLyBhMiA9IGEyPDAuNT8yLjAqYTIqYTI6MS4wLTIuMCooMS4wLWEyKSooMS4wLWEyKTsKICAgICAgLy8gZmxvYXQgZGVsdGEgPSBhIC0gYTI7CiAgICAgIC8vIGlmIChkZWx0YSA8IDAuMjUgJiYgZGVsdGEgPiAtMC4yNSkKICAgICAgLy8gewogICAgICAvLyAgICAgYSA9IGEgKyAwLjUqZGVsdGE7CiAgICAgIC8vIH0KICAgICAgCiAgICAgIHZlYzIgbyA9IDEuMCAvIHZlYzIodGV4dHVyZVNpemUoZnJhbWUsIDApKTsKICAgIAAKICAgICAgb3V0Q29sb3IgPSBnOwogIAAjdmVyc2lvbiAzMDAgZXMKaW4gdmVjMiBhX3Bvc2l0aW9uOwppbiB2ZWMyIGFfdGV4Q29vcmQ7Cgp1bmlmb3JtIG1hdDQgdV90ZXh0dXJlTWF0cml4OwoKb3V0IHZlYzIgdl90ZXhDb29yZDsKdm9pZCBtYWluKCkgewogIGdsX1Bvc2l0aW9uID0gdmVjNChhX3Bvc2l0aW9uLngsIGFfcG9zaXRpb24ueSwgMCwgMSk7CiAgdl90ZXhDb29yZCA9KHVfdGV4dHVyZU1hdHJpeCAqIHZlYzQoYV90ZXhDb29yZCwgMCwgMSkpLnh5Owp9CgBzZXRCZWF1dHkgJWYgJWYgJWYgJWYgJWYKAG91dENvbG9yID0gc3JjX2NvbG9yOwoAb3V0Q29sb3IgPSBtaXgodmVjNCh1X2NvbG9yLDEuMCksc3JjX2NvbG9yLGEpOwoANkFsbEluMQAAAFAoAAAuFgAAUDZBbGxJbjEAAAAA1CgAAEAWAAAAAAAAOBYAAFBLNkFsbEluMQAAANQoAABcFgAAAQAAADgWAABpaQB2AHZpAEwWAACcFgAATjEwZW1zY3JpcHRlbjN2YWxFAABQKAAAiBYAAGlpaQB2aWlpAAAAAIwnAABMFgAAQCgAAEAoAABAKAAAQCgAAEAoAAB2aWlkZGRkZABB4C0LyAiMJwAATBYAAEAoAABAKAAAQCgAAEAoAAB2aWlkZGRkAIwnAABMFgAAdmlpAIwnAACcFgAAnBYAAEwWAACcFgAA7CcAAIwnAACcFgAAcBcAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAABQKAAAMBcAAJwWAACMJwAAnBYAAJwWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAUCgAAIgXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAUCgAANAXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAFAoAAAYGAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAABQKAAAZBgAAE4x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")||(ji=si,si=E.locateFile?E.locateFile(ji,p):p+ji);var Pg=Z=>{for(;Z.length>0;)Z.shift()(E)};function GE(Z){this.excPtr=Z,this.ptr=Z-24,this.set_type=function(q){dA[this.ptr+4>>2]=q},this.get_type=function(){return dA[this.ptr+4>>2]},this.set_destructor=function(q){dA[this.ptr+8>>2]=q},this.get_destructor=function(){return dA[this.ptr+8>>2]},this.set_caught=function(q){q=q?1:0,_[this.ptr+12|0]=q},this.get_caught=function(){return _[this.ptr+12|0]!=0},this.set_rethrown=function(q){q=q?1:0,_[this.ptr+13|0]=q},this.get_rethrown=function(){return _[this.ptr+13|0]!=0},this.init=function(q,uA){this.set_adjusted_ptr(0),this.set_type(q),this.set_destructor(uA)},this.set_adjusted_ptr=function(q){dA[this.ptr+16>>2]=q},this.get_adjusted_ptr=function(){return dA[this.ptr+16>>2]},this.get_exception_ptr=function(){if(HC(this.get_type()))return dA[this.excPtr>>2];var q=this.get_adjusted_ptr();return q!==0?q:this.excPtr}}E.noExitRuntime;var io,VI,hr,oo=Z=>{for(var q="",uA=Z;b[uA];)q+=io[b[uA++]];return q},gs={},Zr={},ME={},Tt=Z=>{throw new VI(Z)},jr=Z=>{throw new hr(Z)},Xr=(Z,q,uA)=>{function bA(se){var me=uA(se);me.length!==Z.length&&jr("Mismatched type converter count");for(var pe=0;pe<Z.length;++pe)lr(Z[pe],me[pe])}Z.forEach((function(se){ME[se]=q}));var VA=new Array(q.length),XA=[],re=0;q.forEach(((se,me)=>{Zr.hasOwnProperty(se)?VA[me]=Zr[se]:(XA.push(se),gs.hasOwnProperty(se)||(gs[se]=[]),gs[se].push((()=>{VA[me]=Zr[se],++re===XA.length&&bA(VA)})))})),XA.length===0&&bA(VA)};function lr(Z,q,uA={}){if(!("argPackAdvance"in q))throw new TypeError("registerType registeredInstance requires argPackAdvance");return(function(bA,VA,XA={}){var re=VA.name;if(bA||Tt(`type "${re}" must have a positive integer typeid pointer`),Zr.hasOwnProperty(bA)){if(XA.ignoreDuplicateRegistrations)return;Tt(`Cannot register type '${re}' twice`)}if(Zr[bA]=VA,delete ME[bA],gs.hasOwnProperty(bA)){var se=gs[bA];delete gs[bA],se.forEach((me=>me()))}})(Z,q,uA)}var WI,kE=Z=>{Tt(Z.$$.ptrType.registeredClass.name+" instance already deleted")},kC=!1,NC=Z=>{},yh=Z=>{Z.count.value-=1,Z.count.value===0&&(q=>{q.smartPtr?q.smartPtrType.rawDestructor(q.smartPtr):q.ptrType.registeredClass.rawDestructor(q.ptr)})(Z)},Ld=(Z,q,uA)=>{if(q===uA)return Z;if(uA.baseClass===void 0)return null;var bA=Ld(Z,q,uA.baseClass);return bA===null?null:uA.downcast(bA)},bd={},NE=[],Rh=()=>{for(;NE.length;){var Z=NE.pop();Z.$$.deleteScheduled=!1,Z.delete()}},rs={},FC=(Z,q)=>(q.ptrType&&q.ptr||jr("makeClassHandle requires ptr and ptrType"),!!q.smartPtrType!=!!q.smartPtr&&jr("Both smartPtrType and smartPtr must be specified"),q.count={value:1},Ig(Object.create(Z,{$$:{value:q}}))),Ig=Z=>typeof FinalizationRegistry>"u"?(Ig=q=>q,Z):(kC=new FinalizationRegistry((q=>{yh(q.$$)})),NC=q=>kC.unregister(q),(Ig=q=>{var uA=q.$$;if(uA.smartPtr){var bA={$$:uA};kC.register(q,bA,q)}return q})(Z));function vC(){}var TC=(Z,q)=>Object.defineProperty(q,"name",{value:Z}),Yd=(Z,q,uA)=>{if(Z[q].overloadTable===void 0){var bA=Z[q];Z[q]=function(){return Z[q].overloadTable.hasOwnProperty(arguments.length)||Tt(`Function '${uA}' called with an invalid number of arguments (${arguments.length}) - expects one of (${Z[q].overloadTable})!`),Z[q].overloadTable[arguments.length].apply(this,arguments)},Z[q].overloadTable=[],Z[q].overloadTable[bA.argCount]=bA}};function jR(Z,q,uA,bA,VA,XA,re,se){this.name=Z,this.constructor=q,this.instancePrototype=uA,this.rawDestructor=bA,this.baseClass=VA,this.getActualType=XA,this.upcast=re,this.downcast=se,this.pureVirtualFunctions=[]}var UC=(Z,q,uA)=>{for(;q!==uA;)q.upcast||Tt(`Expected null or instance of ${uA.name}, got an instance of ${q.name}`),Z=q.upcast(Z),q=q.baseClass;return Z};function Jd(Z,q){if(q===null)return this.isReference&&Tt(`null is not a valid ${this.name}`),0;q.$$||Tt(`Cannot pass "${YC(q)}" as a ${this.name}`),q.$$.ptr||Tt(`Cannot pass deleted object as a pointer of type ${this.name}`);var uA=q.$$.ptrType.registeredClass;return UC(q.$$.ptr,uA,this.registeredClass)}function xd(Z,q){var uA;if(q===null)return this.isReference&&Tt(`null is not a valid ${this.name}`),this.isSmartPointer?(uA=this.rawConstructor(),Z!==null&&Z.push(this.rawDestructor,uA),uA):0;q.$$||Tt(`Cannot pass "${YC(q)}" as a ${this.name}`),q.$$.ptr||Tt(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&q.$$.ptrType.isConst&&Tt(`Cannot convert argument of type ${q.$$.smartPtrType?q.$$.smartPtrType.name:q.$$.ptrType.name} to parameter type ${this.name}`);var bA=q.$$.ptrType.registeredClass;if(uA=UC(q.$$.ptr,bA,this.registeredClass),this.isSmartPointer)switch(q.$$.smartPtr===void 0&&Tt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:q.$$.smartPtrType===this?uA=q.$$.smartPtr:Tt(`Cannot convert argument of type ${q.$$.smartPtrType?q.$$.smartPtrType.name:q.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:uA=q.$$.smartPtr;break;case 2:if(q.$$.smartPtrType===this)uA=q.$$.smartPtr;else{var VA=q.clone();uA=this.rawShare(uA,ma.toHandle((()=>VA.delete()))),Z!==null&&Z.push(this.rawDestructor,uA)}break;default:Tt("Unsupporting sharing policy")}return uA}function Kd(Z,q){if(q===null)return this.isReference&&Tt(`null is not a valid ${this.name}`),0;q.$$||Tt(`Cannot pass "${YC(q)}" as a ${this.name}`),q.$$.ptr||Tt(`Cannot pass deleted object as a pointer of type ${this.name}`),q.$$.ptrType.isConst&&Tt(`Cannot convert argument of type ${q.$$.ptrType.name} to parameter type ${this.name}`);var uA=q.$$.ptrType.registeredClass;return UC(q.$$.ptr,uA,this.registeredClass)}function mh(Z){return this.fromWireType(dA[Z>>2])}function FE(Z,q,uA,bA,VA,XA,re,se,me,pe,ve){this.name=Z,this.registeredClass=q,this.isReference=uA,this.isConst=bA,this.isSmartPointer=VA,this.pointeeType=XA,this.sharingPolicy=re,this.rawGetPointee=se,this.rawConstructor=me,this.rawShare=pe,this.rawDestructor=ve,VA||q.baseClass!==void 0?this.toWireType=xd:bA?(this.toWireType=Jd,this.destructorFunction=null):(this.toWireType=Kd,this.destructorFunction=null)}var _C,ur,ZI=[],LC=Z=>{var q=ZI[Z];return q||(Z>=ZI.length&&(ZI.length=Z+1),ZI[Z]=q=_C.get(Z)),q},vE=(Z,q,uA)=>Z.includes("j")?((bA,VA,XA)=>{var re=E["dynCall_"+bA];return XA&&XA.length?re.apply(null,[VA].concat(XA)):re.call(null,VA)})(Z,q,uA):LC(q).apply(null,uA),Za=(Z,q)=>{var uA,bA,VA,XA=(Z=oo(Z)).includes("j")?(uA=Z,bA=q,VA=[],function(){return VA.length=0,Object.assign(VA,arguments),vE(uA,bA,VA)}):LC(q);return typeof XA!="function"&&Tt(`unknown function pointer with signature ${Z}: ${q}`),XA},TE=Z=>{var q=Vd(Z),uA=oo(q);return pr(q),uA},UE=(Z,q)=>{var uA=[],bA={};throw q.forEach((function VA(XA){bA[XA]||Zr[XA]||(ME[XA]?ME[XA].forEach(VA):(uA.push(XA),bA[XA]=!0))})),new ur(`${Z}: `+uA.map(TE).join([", "]))},fh=(Z,q)=>{for(var uA=[],bA=0;bA<Z;bA++)uA.push(dA[q+4*bA>>2]);return uA},_E=Z=>{for(;Z.length;){var q=Z.pop();Z.pop()(q)}};function as(Z,q,uA,bA,VA,XA){var re=q.length;re<2&&Tt("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var se=q[1]!==null&&uA!==null,me=!1,pe=1;pe<q.length;++pe)if(q[pe]!==null&&q[pe].destructorFunction===void 0){me=!0;break}var ve=q[0].name!=="void",ze=re-2,st=new Array(ze),Et=[],et=[];return TC(Z,(function(){var hi;arguments.length!==ze&&Tt(`function ${Z} called with ${arguments.length} arguments, expected ${ze}`),et.length=0,Et.length=se?2:1,Et[0]=VA,se&&(hi=q[1].toWireType(et,this),Et[1]=hi);for(var pi=0;pi<ze;++pi)st[pi]=q[pi+2].toWireType(et,arguments[pi]),Et.push(st[pi]);return(function(Kt){if(me)_E(et);else for(var Xi=se?1:2;Xi<q.length;Xi++){var Qo=Xi===1?hi:st[Xi-2];q[Xi].destructorFunction!==null&&q[Xi].destructorFunction(Qo)}if(ve)return q[0].fromWireType(Kt)})(bA.apply(null,Et))}))}var wh=(Z,q,uA)=>(Z instanceof Object||Tt(`${uA} with invalid "this": ${Z}`),Z instanceof q.registeredClass.constructor||Tt(`${uA} incompatible with "this" of type ${Z.constructor.name}`),Z.$$.ptr||Tt(`cannot call emscripten binding method ${uA} on deleted object`),UC(Z.$$.ptr,Z.$$.ptrType.registeredClass,q.registeredClass));function Sh(){this.allocated=[void 0],this.freelist=[]}var jo=new Sh,Gh=Z=>{Z>=jo.reserved&&--jo.get(Z).refcount==0&&jo.free(Z)},ma={toValue:Z=>(Z||Tt("Cannot use deleted val. handle = "+Z),jo.get(Z).value),toHandle:Z=>{switch(Z){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return jo.allocate({refcount:1,value:Z})}}};function Hd(Z){return this.fromWireType(fA[Z>>2])}var bC,LE,YC=Z=>{if(Z===null)return"null";var q=typeof Z;return q==="object"||q==="array"||q==="function"?Z.toString():""+Z},jI=(Z,q)=>{switch(q){case 4:return function(uA){return this.fromWireType(YA[uA>>2])};case 8:return function(uA){return this.fromWireType(UA[uA>>3])};default:throw new TypeError(`invalid float width (${q}): ${Z}`)}},Od=(Z,q,uA)=>{switch(q){case 1:return uA?bA=>_[0|bA]:bA=>b[0|bA];case 2:return uA?bA=>AA[bA>>1]:bA=>nA[bA>>1];case 4:return uA?bA=>fA[bA>>2]:bA=>dA[bA>>2];default:throw new TypeError(`invalid integer width (${q}): ${Z}`)}},JC=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,XI=(Z,q,uA)=>{for(var bA=q+uA,VA=q;Z[VA]&&!(VA>=bA);)++VA;if(VA-q>16&&Z.buffer&&JC)return JC.decode(Z.subarray(q,VA));for(var XA="";q<VA;){var re=Z[q++];if(128&re){var se=63&Z[q++];if((224&re)!=192){var me=63&Z[q++];if((re=(240&re)==224?(15&re)<<12|se<<6|me:(7&re)<<18|se<<12|me<<6|63&Z[q++])<65536)XA+=String.fromCharCode(re);else{var pe=re-65536;XA+=String.fromCharCode(55296|pe>>10,56320|1023&pe)}}else XA+=String.fromCharCode((31&re)<<6|se)}else XA+=String.fromCharCode(re)}return XA},XR=(Z,q)=>Z?XI(b,Z,q):"",xC=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,zI=(Z,q)=>{for(var uA=Z,bA=uA>>1,VA=bA+q/2;!(bA>=VA)&&nA[bA];)++bA;if((uA=bA<<1)-Z>32&&xC)return xC.decode(b.subarray(Z,uA));for(var XA="",re=0;!(re>=q/2);++re){var se=AA[Z+2*re>>1];if(se==0)break;XA+=String.fromCharCode(se)}return XA},KC=(Z,q,uA)=>{if(uA===void 0&&(uA=2147483647),uA<2)return 0;for(var bA=q,VA=(uA-=2)<2*Z.length?uA/2:Z.length,XA=0;XA<VA;++XA){var re=Z.charCodeAt(XA);AA[q>>1]=re,q+=2}return AA[q>>1]=0,q-bA},Is=Z=>2*Z.length,qd=(Z,q)=>{for(var uA=0,bA="";!(uA>=q/4);){var VA=fA[Z+4*uA>>2];if(VA==0)break;if(++uA,VA>=65536){var XA=VA-65536;bA+=String.fromCharCode(55296|XA>>10,56320|1023&XA)}else bA+=String.fromCharCode(VA)}return bA},Pd=(Z,q,uA)=>{if(uA===void 0&&(uA=2147483647),uA<4)return 0;for(var bA=q,VA=bA+uA-4,XA=0;XA<Z.length;++XA){var re=Z.charCodeAt(XA);if(re>=55296&&re<=57343&&(re=65536+((1023&re)<<10)|1023&Z.charCodeAt(++XA)),fA[q>>2]=re,(q+=4)+4>VA)break}return fA[q>>2]=0,q-bA},bE=Z=>{for(var q=0,uA=0;uA<Z.length;++uA){var bA=Z.charCodeAt(uA);bA>=55296&&bA<=57343&&++uA,q+=4}return q},ns=(Z,q)=>{var uA=Zr[Z];return uA===void 0&&Tt(q+" has unknown type "+TE(Z)),uA},fg=(Z,q,uA)=>{var bA=[],VA=Z.toWireType(bA,uA);return bA.length&&(dA[q>>2]=ma.toHandle(bA)),VA},Co={},dr=[],Dr=Reflect.construct,$I=[null,[],[]];(()=>{for(var Z=new Array(256),q=0;q<256;++q)Z[q]=String.fromCharCode(q);io=Z})(),VI=E.BindingError=class extends Error{constructor(Z){super(Z),this.name="BindingError"}},hr=E.InternalError=class extends Error{constructor(Z){super(Z),this.name="InternalError"}},Object.assign(vC.prototype,{isAliasOf(Z){if(!(this instanceof vC)||!(Z instanceof vC))return!1;var q=this.$$.ptrType.registeredClass,uA=this.$$.ptr;Z.$$=Z.$$;for(var bA=Z.$$.ptrType.registeredClass,VA=Z.$$.ptr;q.baseClass;)uA=q.upcast(uA),q=q.baseClass;for(;bA.baseClass;)VA=bA.upcast(VA),bA=bA.baseClass;return q===bA&&uA===VA},clone(){if(this.$$.ptr||kE(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var Z,q=Ig(Object.create(Object.getPrototypeOf(this),{$$:{value:(Z=this.$$,{count:Z.count,deleteScheduled:Z.deleteScheduled,preservePointerOnDelete:Z.preservePointerOnDelete,ptr:Z.ptr,ptrType:Z.ptrType,smartPtr:Z.smartPtr,smartPtrType:Z.smartPtrType})}}));return q.$$.count.value+=1,q.$$.deleteScheduled=!1,q},delete(){this.$$.ptr||kE(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Tt("Object already scheduled for deletion"),NC(this),yh(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||kE(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Tt("Object already scheduled for deletion"),NE.push(this),NE.length===1&&WI&&WI(Rh),this.$$.deleteScheduled=!0,this}}),E.getInheritedInstanceCount=()=>Object.keys(rs).length,E.getLiveInheritedInstances=()=>{var Z=[];for(var q in rs)rs.hasOwnProperty(q)&&Z.push(rs[q]);return Z},E.flushPendingDeletes=Rh,E.setDelayFunction=Z=>{WI=Z,NE.length&&WI&&WI(Rh)},Object.assign(FE.prototype,{getPointee(Z){return this.rawGetPointee&&(Z=this.rawGetPointee(Z)),Z},destructor(Z){this.rawDestructor&&this.rawDestructor(Z)},argPackAdvance:8,readValueFromPointer:mh,deleteObject(Z){Z!==null&&Z.delete()},fromWireType:function(Z){var q=this.getPointee(Z);if(!q)return this.destructor(Z),null;var uA=((pe,ve)=>(ve=((ze,st)=>{for(st===void 0&&Tt("ptr should not be undefined");ze.baseClass;)st=ze.upcast(st),ze=ze.baseClass;return st})(pe,ve),rs[ve]))(this.registeredClass,q);if(uA!==void 0){if(uA.$$.count.value===0)return uA.$$.ptr=q,uA.$$.smartPtr=Z,uA.clone();var bA=uA.clone();return this.destructor(Z),bA}function VA(){return this.isSmartPointer?FC(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:q,smartPtrType:this,smartPtr:Z}):FC(this.registeredClass.instancePrototype,{ptrType:this,ptr:Z})}var XA,re=this.registeredClass.getActualType(q),se=bd[re];if(!se)return VA.call(this);XA=this.isConst?se.constPointerType:se.pointerType;var me=Ld(q,this.registeredClass,XA.registeredClass);return me===null?VA.call(this):this.isSmartPointer?FC(XA.registeredClass.instancePrototype,{ptrType:XA,ptr:me,smartPtrType:this,smartPtr:Z}):FC(XA.registeredClass.instancePrototype,{ptrType:XA,ptr:me})}}),ur=E.UnboundTypeError=(bC=Error,(LE=TC("UnboundTypeError",(function(Z){this.name="UnboundTypeError",this.message=Z;var q=new Error(Z).stack;q!==void 0&&(this.stack=this.toString()+`
|
||
`+q.replace(/^Error(:[^\n]*)?\n/,""))}))).prototype=Object.create(bC.prototype),LE.prototype.constructor=LE,LE.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},LE),Object.assign(Sh.prototype,{get(Z){return this.allocated[Z]},has(Z){return this.allocated[Z]!==void 0},allocate(Z){var q=this.freelist.pop()||this.allocated.length;return this.allocated[q]=Z,q},free(Z){this.allocated[Z]=void 0,this.freelist.push(Z)}}),jo.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),jo.reserved=jo.allocated.length,E.count_emval_handles=()=>{for(var Z=0,q=jo.reserved;q<jo.allocated.length;++q)jo.allocated[q]!==void 0&&++Z;return Z};var YE,Mh={w:(Z,q,uA)=>{throw new GE(Z).init(q,uA),Z},q:(Z,q,uA,bA,VA)=>{},u:(Z,q,uA,bA)=>{lr(Z,{name:q=oo(q),fromWireType:function(VA){return!!VA},toWireType:function(VA,XA){return XA?uA:bA},argPackAdvance:8,readValueFromPointer:function(VA){return this.fromWireType(b[VA])},destructorFunction:null})},y:(Z,q,uA,bA,VA,XA,re,se,me,pe,ve,ze,st)=>{ve=oo(ve),XA=Za(VA,XA),se&&(se=Za(re,se)),pe&&(pe=Za(me,pe)),st=Za(ze,st);var Et=(et=>{if(et===void 0)return"_unknown";var hi=(et=et.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return hi>=48&&hi<=57?`_${et}`:et})(ve);((et,hi,pi)=>{E.hasOwnProperty(et)?(Tt(`Cannot register public name '${et}' twice`),Yd(E,et,et),E.hasOwnProperty(pi)&&Tt(`Cannot register multiple overloads of a function with the same number of arguments (${pi})!`),E[et].overloadTable[pi]=hi):E[et]=hi})(Et,(function(){UE(`Cannot construct ${ve} due to unbound types`,[bA])})),Xr([Z,q,uA],bA?[bA]:[],(function(et){var hi,pi;et=et[0],pi=bA?(hi=et.registeredClass).instancePrototype:vC.prototype;var Kt=TC(ve,(function(){if(Object.getPrototypeOf(this)!==Xi)throw new VI("Use 'new' to construct "+ve);if(Qo.constructor_body===void 0)throw new VI(ve+" has no accessible constructor");var An=Qo.constructor_body[arguments.length];if(An===void 0)throw new VI(`Tried to invoke ctor of ${ve} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Qo.constructor_body).toString()}) parameters instead!`);return An.apply(this,arguments)})),Xi=Object.create(pi,{constructor:{value:Kt}});Kt.prototype=Xi;var Qo=new jR(ve,Kt,Xi,st,hi,XA,se,pe);Qo.baseClass&&(Qo.baseClass.__derivedClasses===void 0&&(Qo.baseClass.__derivedClasses=[]),Qo.baseClass.__derivedClasses.push(Qo));var OC=new FE(ve,Qo,!0,!1,!1),Wd=new FE(ve+"*",Qo,!1,!1,!1),xE=new FE(ve+" const*",Qo,!1,!0,!1);return bd[Z]={pointerType:Wd,constPointerType:xE},((An,Nh,zR)=>{E.hasOwnProperty(An)||jr("Replacing nonexistant public symbol"),E[An].overloadTable,E[An]=Nh,E[An].argCount=zR})(Et,Kt),[OC,Wd,xE]}))},x:(Z,q,uA,bA,VA,XA)=>{var re=fh(q,uA);VA=Za(bA,VA),Xr([],[Z],(function(se){var me=`constructor ${(se=se[0]).name}`;if(se.registeredClass.constructor_body===void 0&&(se.registeredClass.constructor_body=[]),se.registeredClass.constructor_body[q-1]!==void 0)throw new VI(`Cannot register multiple constructors with identical number of parameters (${q-1}) for class '${se.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return se.registeredClass.constructor_body[q-1]=()=>{UE(`Cannot construct ${se.name} due to unbound types`,re)},Xr([],re,(pe=>(pe.splice(1,0,null),se.registeredClass.constructor_body[q-1]=as(me,pe,null,VA,XA),[]))),[]}))},i:(Z,q,uA,bA,VA,XA,re,se,me)=>{var pe=fh(uA,bA);q=(ve=>{const ze=(ve=ve.trim()).indexOf("(");return ze!==-1?ve.substr(0,ze):ve})(q=oo(q)),XA=Za(VA,XA),Xr([],[Z],(function(ve){var ze=`${(ve=ve[0]).name}.${q}`;function st(){UE(`Cannot call ${ze} due to unbound types`,pe)}q.startsWith("@@")&&(q=Symbol[q.substring(2)]),se&&ve.registeredClass.pureVirtualFunctions.push(q);var Et=ve.registeredClass.instancePrototype,et=Et[q];return et===void 0||et.overloadTable===void 0&&et.className!==ve.name&&et.argCount===uA-2?(st.argCount=uA-2,st.className=ve.name,Et[q]=st):(Yd(Et,q,ze),Et[q].overloadTable[uA-2]=st),Xr([],pe,(function(hi){var pi=as(ze,hi,ve,XA,re);return Et[q].overloadTable===void 0?(pi.argCount=uA-2,Et[q]=pi):Et[q].overloadTable[uA-2]=pi,[]})),[]}))},k:(Z,q,uA,bA,VA,XA,re,se,me,pe)=>{q=oo(q),VA=Za(bA,VA),Xr([],[Z],(function(ve){var ze=`${(ve=ve[0]).name}.${q}`,st={get(){UE(`Cannot access ${ze} due to unbound types`,[uA,re])},enumerable:!0,configurable:!0};return st.set=me?()=>UE(`Cannot access ${ze} due to unbound types`,[uA,re]):Et=>Tt(ze+" is a read-only property"),Object.defineProperty(ve.registeredClass.instancePrototype,q,st),Xr([],me?[uA,re]:[uA],(function(Et){var et=Et[0],hi={get(){var Kt=wh(this,ve,ze+" getter");return et.fromWireType(VA(XA,Kt))},enumerable:!0};if(me){me=Za(se,me);var pi=Et[1];hi.set=function(Kt){var Xi=wh(this,ve,ze+" setter"),Qo=[];me(pe,Xi,pi.toWireType(Qo,Kt)),_E(Qo)}}return Object.defineProperty(ve.registeredClass.instancePrototype,q,hi),[]})),[]}))},t:(Z,q)=>{lr(Z,{name:q=oo(q),fromWireType:uA=>{var bA=ma.toValue(uA);return Gh(uA),bA},toWireType:(uA,bA)=>ma.toHandle(bA),argPackAdvance:8,readValueFromPointer:Hd,destructorFunction:null})},p:(Z,q,uA)=>{lr(Z,{name:q=oo(q),fromWireType:bA=>bA,toWireType:(bA,VA)=>VA,argPackAdvance:8,readValueFromPointer:jI(q,uA),destructorFunction:null})},g:(Z,q,uA,bA,VA)=>{q=oo(q);var XA=me=>me;if(bA===0){var re=32-8*uA;XA=me=>me<<re>>>re}var se=q.includes("unsigned");lr(Z,{name:q,fromWireType:XA,toWireType:se?function(me,pe){return this.name,pe>>>0}:function(me,pe){return this.name,pe},argPackAdvance:8,readValueFromPointer:Od(q,uA,bA!==0),destructorFunction:null})},a:(Z,q,uA)=>{var bA=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][q];function VA(XA){var re=dA[XA>>2],se=dA[XA+4>>2];return new bA(_.buffer,se,re)}lr(Z,{name:uA=oo(uA),fromWireType:VA,argPackAdvance:8,readValueFromPointer:VA},{ignoreDuplicateRegistrations:!0})},o:(Z,q)=>{var uA=(q=oo(q))==="std::string";lr(Z,{name:q,fromWireType(bA){var VA,XA=dA[bA>>2],re=bA+4;if(uA)for(var se=re,me=0;me<=XA;++me){var pe=re+me;if(me==XA||b[pe]==0){var ve=XR(se,pe-se);VA===void 0?VA=ve:(VA+="\0",VA+=ve),se=pe+1}}else{var ze=new Array(XA);for(me=0;me<XA;++me)ze[me]=String.fromCharCode(b[re+me]);VA=ze.join("")}return pr(bA),VA},toWireType(bA,VA){var XA;VA instanceof ArrayBuffer&&(VA=new Uint8Array(VA));var re=typeof VA=="string";re||VA instanceof Uint8Array||VA instanceof Uint8ClampedArray||VA instanceof Int8Array||Tt("Cannot pass non-string to std::string"),XA=uA&&re?(ze=>{for(var st=0,Et=0;Et<ze.length;++Et){var et=ze.charCodeAt(Et);et<=127?st++:et<=2047?st+=2:et>=55296&&et<=57343?(st+=4,++Et):st+=3}return st})(VA):VA.length;var se=kh(4+XA+1),me=se+4;if(dA[se>>2]=XA,uA&&re)((ze,st,Et,et)=>{if(!(et>0))return 0;for(var hi=Et+et-1,pi=0;pi<ze.length;++pi){var Kt=ze.charCodeAt(pi);if(Kt>=55296&&Kt<=57343&&(Kt=65536+((1023&Kt)<<10)|1023&ze.charCodeAt(++pi)),Kt<=127){if(Et>=hi)break;st[Et++]=Kt}else if(Kt<=2047){if(Et+1>=hi)break;st[Et++]=192|Kt>>6,st[Et++]=128|63&Kt}else if(Kt<=65535){if(Et+2>=hi)break;st[Et++]=224|Kt>>12,st[Et++]=128|Kt>>6&63,st[Et++]=128|63&Kt}else{if(Et+3>=hi)break;st[Et++]=240|Kt>>18,st[Et++]=128|Kt>>12&63,st[Et++]=128|Kt>>6&63,st[Et++]=128|63&Kt}}st[Et]=0})(VA,b,me,XA+1);else if(re)for(var pe=0;pe<XA;++pe){var ve=VA.charCodeAt(pe);ve>255&&(pr(me),Tt("String has UTF-16 code units that do not fit in 8 bits")),b[me+pe]=ve}else for(pe=0;pe<XA;++pe)b[me+pe]=VA[pe];return bA!==null&&bA.push(pr,se),se},argPackAdvance:8,readValueFromPointer:mh,destructorFunction(bA){pr(bA)}})},l:(Z,q,uA)=>{var bA,VA,XA,re,se;uA=oo(uA),q===2?(bA=zI,VA=KC,re=Is,XA=()=>nA,se=1):q===4&&(bA=qd,VA=Pd,re=bE,XA=()=>dA,se=2),lr(Z,{name:uA,fromWireType:me=>{for(var pe,ve=dA[me>>2],ze=XA(),st=me+4,Et=0;Et<=ve;++Et){var et=me+4+Et*q;if(Et==ve||ze[et>>se]==0){var hi=bA(st,et-st);pe===void 0?pe=hi:(pe+="\0",pe+=hi),st=et+q}}return pr(me),pe},toWireType:(me,pe)=>{typeof pe!="string"&&Tt(`Cannot pass non-string to C++ string type ${uA}`);var ve=re(pe),ze=kh(4+ve+q);return dA[ze>>2]=ve>>se,VA(pe,ze+4,ve+q),me!==null&&me.push(pr,ze),ze},argPackAdvance:8,readValueFromPointer:Hd,destructorFunction(me){pr(me)}})},v:(Z,q)=>{lr(Z,{isVoid:!0,name:q=oo(q),argPackAdvance:0,fromWireType:()=>{},toWireType:(uA,bA)=>{}})},j:(Z,q,uA)=>(Z=ma.toValue(Z),q=ns(q,"emval::as"),fg(q,uA,Z)),e:(Z,q,uA,bA,VA)=>{var XA,re;return(Z=dr[Z])(q=ma.toValue(q),q[uA=(re=Co[XA=uA])===void 0?oo(XA):re],bA,VA)},d:Gh,f:(Z,q,uA)=>{var bA=((pe,ve)=>{for(var ze=new Array(pe),st=0;st<pe;++st)ze[st]=ns(dA[ve+4*st>>2],"parameter "+st);return ze})(Z,q),VA=bA.shift();Z--;var XA,re,se=new Array(Z),me=`methodCaller<(${bA.map((pe=>pe.name)).join(", ")}) => ${VA.name}>`;return XA=TC(me,((pe,ve,ze,st)=>{for(var Et=0,et=0;et<Z;++et)se[et]=bA[et].readValueFromPointer(st+Et),Et+=bA[et].argPackAdvance;var hi=uA===1?Dr(ve,se):ve.apply(pe,se);for(et=0;et<Z;++et)bA[et].deleteObject&&bA[et].deleteObject(se[et]);return fg(VA,ze,hi)})),re=dr.length,dr.push(XA),re},c:Z=>{Z>4&&(jo.get(Z).refcount+=1)},b:Z=>{var q=ma.toValue(Z);_E(q),Gh(Z)},h:(Z,q)=>{var uA=(Z=ns(Z,"_emval_take_value")).readValueFromPointer(q);return ma.toHandle(uA)},m:()=>{Vt("")},s:(Z,q,uA)=>b.copyWithin(Z,q,q+uA),r:Z=>{b.length,Vt("OOM")},n:(Z,q,uA,bA)=>{for(var VA,XA,re,se=0,me=0;me<uA;me++){var pe=dA[q>>2],ve=dA[q+4>>2];q+=8;for(var ze=0;ze<ve;ze++)VA=Z,XA=b[pe+ze],re=void 0,re=$I[VA],XA===0||XA===10?((VA===1?T:Y)(XI(re,0)),re.length=0):re.push(XA);se+=ve}return dA[bA>>2]=se,0}},Xo=(function(){var Z={a:Mh};function q(uA,bA){var VA,XA;return Xo=uA.exports,VA=Xo.z.buffer,E.HEAP8=_=new Int8Array(VA),E.HEAP16=AA=new Int16Array(VA),E.HEAPU8=b=new Uint8Array(VA),E.HEAPU16=nA=new Uint16Array(VA),E.HEAP32=fA=new Int32Array(VA),E.HEAPU32=dA=new Uint32Array(VA),E.HEAPF32=YA=new Float32Array(VA),E.HEAPF64=UA=new Float64Array(VA),_C=Xo.C,XA=Xo.A,xe.unshift(XA),(function(){if(Le--,E.monitorRunDependencies&&E.monitorRunDependencies(Le),Le==0&&Ne){var re=Ne;Ne=null,re()}})(),Xo}if(Le++,E.monitorRunDependencies&&E.monitorRunDependencies(Le),E.instantiateWasm)try{return E.instantiateWasm(Z,q)}catch(uA){Y(`Module.instantiateWasm callback failed with error: ${uA}`),D(uA)}return(function(uA,bA,VA,XA){return(function(re,se,me){return os(re).then((pe=>WebAssembly.instantiate(pe,se))).then((pe=>pe)).then(me,(pe=>{Y(`failed to asynchronously prepare wasm: ${pe}`),Vt(pe)}))})(bA,VA,XA)})(0,si,Z,(function(uA){q(uA.instance)})).catch(D),{}})(),kh=Z=>(kh=Xo.B)(Z),Vd=Z=>(Vd=Xo.D)(Z),pr=Z=>(pr=Xo.E)(Z),HC=Z=>(HC=Xo.F)(Z);function JE(){function Z(){YE||(YE=!0,E.calledRun=!0,lA||(Pg(xe),B(E),E.onRuntimeInitialized&&E.onRuntimeInitialized(),(function(){if(E.postRun)for(typeof E.postRun=="function"&&(E.postRun=[E.postRun]);E.postRun.length;)q=E.postRun.shift(),Qt.unshift(q);var q;Pg(Qt)})()))}Le>0||((function(){if(E.preRun)for(typeof E.preRun=="function"&&(E.preRun=[E.preRun]);E.preRun.length;)q=E.preRun.shift(),Ce.unshift(q);var q;Pg(Ce)})(),Le>0||(E.setStatus?(E.setStatus("Running..."),setTimeout((function(){setTimeout((function(){E.setStatus("")}),1),Z()}),1)):Z()))}if(E.dynCall_jiji=(Z,q,uA,bA,VA)=>(E.dynCall_jiji=Xo.G)(Z,q,uA,bA,VA),E._vertexShaderSource=10640,Ne=function Z(){YE||JE(),YE||(Ne=Z)},E.preInit)for(typeof E.preInit=="function"&&(E.preInit=[E.preInit]);E.preInit.length>0;)E.preInit.pop()();return JE(),h.ready}),wd=Xn,Da=0,Sd=class uH{constructor(B){this.core=B,fE(this,"seq"),fE(this,"_core"),fE(this,"log"),fE(this,"beautyParams"),Da+=1,this.seq=Da,this._core=B,this.log=B.log.createChild({id:`${this.getAlias()}${Da}`}),this.log.info("created")}getName(){return uH.Name}getAlias(){return"bb"}getValidateRule(B){switch(B){case"start":case"update":return(function(D){return{name:"BasicBeautyOptions",type:"object",required:!0,allowEmpty:!1,properties:{beauty:{required:!1,type:"number"},brightness:{required:!1,type:"number"},ruddy:{required:!1,type:"number"}},validate(E,Q,p,m){const{RtcError:T,ErrorCode:Y,ErrorCodeDictionary:_}=D.errorModule;if(D.utils.isOverseaSdkAppId(E.sdkAppId))throw new T({code:Y.INVALID_OPERATION,extraCode:_.INVALID_OPERATION,message:"This feature is not yet available in your country or region. If you have any questions, you can go to the community for consultation: https://zhiliao.qq.com/s/cWSPGIIM62CC/c3TPGIIM62CQ"})}}})(this._core);case"stop":return this._core,{name:"StopBasicBeautyOptions",required:!1}}}getGroup(){return"bb"}async start(B){this._core.room.videoManager.Wasm||(this._core.room.videoManager.Wasm=await wd()),this._core.room.videoManager.renderMode="webgl";const D=this._core.utils.isUndefined(B.beauty)?.5:B.beauty,E=this._core.utils.isUndefined(B.brightness)?.5:B.brightness,Q=this._core.utils.isUndefined(B.ruddy)?.5:B.ruddy;return this._core.room.videoManager.setBeautyParams({beauty:D,brightness:E,ruddy:Q})}async update(B){const D=this._core.utils.isUndefined(B.beauty)?.5:B.beauty,E=this._core.utils.isUndefined(B.brightness)?.5:B.brightness,Q=this._core.utils.isUndefined(B.ruddy)?.5:B.ruddy;return this._core.room.videoManager.setBeautyParams({beauty:D,brightness:E,ruddy:Q})}async stop(){return this._core.room.videoManager.renderMode="auto",this._core.room.videoManager.stopBeauty()}destroy(){this._core.room.videoManager.renderMode="auto"}};fE(Sd,"Name","BasicBeauty");var Yo,Bo,Qr,hh=Sd;f.TRTCMediaMixingErrorCode=void 0,(Yo=f.TRTCMediaMixingErrorCode||(f.TRTCMediaMixingErrorCode={}))[Yo.Success=0]="Success",Yo[Yo.Error=-1]="Error",Yo[Yo.InvalidParams=-2]="InvalidParams",Yo[Yo.NotFoundSource=-3]="NotFoundSource",Yo[Yo.ImageSourceLoadFailed=-4]="ImageSourceLoadFailed",Yo[Yo.CameraNotAuthorized=-5]="CameraNotAuthorized",Yo[Yo.CameraIsOccupied=-6]="CameraIsOccupied",Yo[Yo.CameraDisconnected=-7]="CameraDisconnected",f.TRTCMediaSourceType=void 0,(Bo=f.TRTCMediaSourceType||(f.TRTCMediaSourceType={}))[Bo.kCamera=0]="kCamera",Bo[Bo.kScreen=1]="kScreen",Bo[Bo.kImage=2]="kImage",Bo[Bo.kPhoneMirror=4]="kPhoneMirror",Bo[Bo.kText=5]="kText",Bo[Bo.kVideo=6]="kVideo",f.TRTCMediaMixingEvent=void 0,(Qr=f.TRTCMediaMixingEvent||(f.TRTCMediaMixingEvent={})).onSourceSelected="onSourceSelected",Qr.onSourceMoved="onSourceMoved",Qr.onSourceResized="onSourceResized",Qr.onRightButtonClicked="onRightButtonClicked",Qr.onError="onError",Qr.onSourcePlugged="onSourcePlugged",Qr.onSourceConnected="onSourceConnected",Qr.onSourceDisconnected="onSourceDisconnected",Qr.onSourceUnplugged="onSourceUnplugged",Qr.onMediaSourceSizeChanged="onMediaSourceSizeChanged";var mg,pa=(function(){function h(B,D){if(this.logRegion="tc",this.loggerManager=B,D){var E=D.sdkAppId,Q=D.userId,p=D.seq;this.seq=p,B&&(this.logger=B.createLogger({id:"".concat(this.logRegion).concat(p),userId:Q,sdkAppId:E}))}else this.logger=B;this.logger||(this.logger={debug:function(m){console.debug(m)},info:function(m){console.info(m)},warn:function(m){console.warn(m)},error:function(m){console.error(m)}})}return h.prototype.getLogMessage=function(B){var D=this;return B.map((function(E){return D.getStringifyMessage(E)})).join(" ")},h.prototype.getStringifyMessage=function(B){var D=this;if(typeof B!="object")return B;if(B instanceof HTMLElement)return"".concat(B.tagName.toLocaleLowerCase(),"#").concat(B.id);if(B instanceof Array){var E=[];return Object.keys(B).forEach((function(p){return E[p]=D.getStringifyMessage(B[p])})),JSON.stringify(E)}if(B instanceof Object){var Q={};return Object.keys(B).forEach((function(p){return Q[p]=D.getStringifyMessage(B[p])})),JSON.stringify(Q)}return B},h.prototype.update=function(B){var D=B.userId,E=B.sdkAppId;this.loggerManager&&this.loggerManager.createLogger&&(this.logger=this.loggerManager.createLogger({id:"".concat(this.logRegion).concat(this.seq),userId:D,sdkAppId:E}))},h.prototype.log=function(){for(var B=[],D=0;D<arguments.length;D++)B[D]=arguments[D];var E=this.getLogMessage(B);this.logger&&this.logger.info&&this.logger.info(E)},h.prototype.debug=function(){for(var B=[],D=0;D<arguments.length;D++)B[D]=arguments[D];var E=this.getLogMessage(B);this.logger.debug(E)},h.prototype.info=function(){for(var B=[],D=0;D<arguments.length;D++)B[D]=arguments[D];var E=this.getLogMessage(B);this.logger&&this.logger.info&&this.logger.info(E)},h.prototype.warn=function(){for(var B=[],D=0;D<arguments.length;D++)B[D]=arguments[D];var E=this.getLogMessage(B);this.logger&&this.logger.warn&&this.logger.warn(E)},h.prototype.error=function(){for(var B=[],D=0;D<arguments.length;D++)B[D]=arguments[D];var E=this.getLogMessage(B);this.logger&&this.logger.error&&this.logger.error(E)},h})(),ya=new pa(null),zn=(function(){function h(B,D,E){E===void 0&&(E={calcPositionOnly:!1,canExceedContainer:!1}),this.logPrefix="[Movable]",this.movable=null,this.container=null,this.options={calcPositionOnly:!1,canExceedContainer:!1},this.callbacksMap=new Map,this.originLeft=0,this.originTop=0,this.moveStartOfLeft=0,this.moveStartOfTop=0,this.movable=B,this.container=D||document.body,this.options={calcPositionOnly:!!E.calcPositionOnly||!1,canExceedContainer:!!E.canExceedContainer||!1},this.setStyle(),this.onMouseDown=this.onMouseDown.bind(this),this.onMouseMove=this.onMouseMove.bind(this),this.onMouseUp=this.onMouseUp.bind(this),this.onMouseMove5px=this.onMouseMove5px.bind(this),this.onMouseUp5px=this.onMouseUp5px.bind(this),this.movable.addEventListener("mousedown",this.onMouseDown,!1)}return h.prototype.setStyle=function(){this.movable?(this.movable.style.position="absolute",this.movable.style.cursor="move"):ya.debug("".concat(this.logPrefix,"setStyle 'movable' is null"))},h.prototype.onMouseDown=function(B){if(B.button===0){if(B.preventDefault(),document.defaultView&&this.movable){var D=document.defaultView.getComputedStyle(this.movable);this.originLeft=window.parseInt(D.left),this.originTop=window.parseInt(D.top)}else ya.debug("".concat(this.logPrefix,"onMouseDown 'movable' is null"));this.moveStartOfLeft=B.screenX,this.moveStartOfTop=B.screenY,document.addEventListener("mousemove",this.onMouseMove5px,!1),document.addEventListener("mouseup",this.onMouseUp5px,!1)}},h.prototype.onMouseMove5px=function(B){var D=B.screenX-(this.moveStartOfLeft||0),E=B.screenY-(this.moveStartOfTop||0);Math.abs(D)>=5||Math.abs(E)>=5?(document.removeEventListener("mousemove",this.onMouseMove5px,!1),document.removeEventListener("mouseup",this.onMouseUp5px,!1),document.addEventListener("mousemove",this.onMouseMove,!1),document.addEventListener("mouseup",this.onMouseUp,!1)):ya.debug("".concat(this.logPrefix,"on Movable mouse move less than 5px"))},h.prototype.onMouseUp5px=function(){document.removeEventListener("mousemove",this.onMouseMove5px,!1),document.removeEventListener("mouseup",this.onMouseUp5px,!1)},h.prototype.onMouseMove=function(B){if(this.movable&&this.container){var D=B.screenX-this.moveStartOfLeft,E=B.screenY-this.moveStartOfTop,Q=this.originLeft+D,p=this.originTop+E,m=this.movable.offsetWidth,T=this.movable.offsetHeight,Y=this.container.offsetWidth,_=this.container.offsetHeight;this.options.canExceedContainer||(Q<0?Q=0:Q>Y-m&&(Q=Y-m),p<0?p=0:p>_-T&&(p=_-T)),!this.options.calcPositionOnly&&this.movable&&(this.movable.style.left="".concat(Q,"px"),this.movable.style.top="".concat(p,"px")),this.emit("move",Q,p)}else ya.debug("".concat(this.logPrefix,"onMouseMove error:No 'movable' and 'container'."))},h.prototype.onMouseUp=function(){document.removeEventListener("mousemove",this.onMouseMove,!1),document.removeEventListener("mouseup",this.onMouseUp,!1),this.originLeft=0,this.originTop=0,this.moveStartOfLeft=0,this.moveStartOfTop=0},h.prototype.on=function(B,D){var E=this.callbacksMap.get(B);E?E.push(D):this.callbacksMap.set(B,[D])},h.prototype.off=function(B,D){var E=this.callbacksMap.get(B);E&&(E=E.filter((function(Q){return Q!=D})),this.callbacksMap.set(B,E))},h.prototype.emit=function(B){for(var D=[],E=1;E<arguments.length;E++)D[E-1]=arguments[E];var Q=this.callbacksMap.get(B);Q&&Q.forEach((function(p){try{p.apply(null,D)}catch(m){console.error("[Movable]emit error:",p,m)}}))},h.prototype.destroy=function(){var B;(B=this.movable)===null||B===void 0||B.removeEventListener("mousedown",this.onMouseDown,!1),this.callbacksMap.clear(),this.movable=null,this.container=null},h})();(function(h){h[h.Both=0]="Both",h[h.Corner=1]="Corner",h[h.Edge=2]="Edge"})(mg||(mg={}));var Gd="trtc-resizable-top-left-anchor",lh="trtc-resizable-top-anchor",$n="trtc-resizable-top-right-anchor",As="trtc-resizable-left-anchor",uh="trtc-resizable-right-anchor",xI="trtc-resizable-bottom-left-anchor",RC="trtc-resizable-bottom-anchor",mC="trtc-resizable-bottom-right-anchor",Go={resizeAnchor:{position:"absolute",width:"".concat(8,"px"),height:"".concat(8,"px"),border:"1px solid #3D7EFD",backgroundColor:"#FFFFFF"},topLeftAnchor:{top:"-".concat(4,"px"),left:"-".concat(4,"px"),cursor:"nw-resize"},topAnchor:{top:"-".concat(4,"px"),left:"calc(50% - ".concat(4,"px)"),cursor:"n-resize"},topRightAnchor:{top:"-".concat(4,"px"),right:"-".concat(4,"px"),cursor:"ne-resize"},leftAnchor:{top:"calc(50% - ".concat(4,"px)"),left:"-".concat(4,"px"),cursor:"w-resize"},rightAnchor:{top:"calc(50% - ".concat(4,"px)"),right:"-".concat(4,"px"),cursor:"e-resize"},bottomLeftAnchor:{bottom:"-".concat(4,"px"),left:"-".concat(4,"px"),cursor:"sw-resize"},bottomAnchor:{bottom:"-".concat(4,"px"),left:"calc(50% - ".concat(4,"px)"),cursor:"s-resize"},bottomRightAnchor:{bottom:"-".concat(4,"px"),right:"-".concat(4,"px"),cursor:"se-resize"}};function Pr(h,B){for(var D in B)h.style[D]=B[D]}var wE=(function(){function h(B,D,E){E===void 0&&(E={keepRatio:!1,stopPropagation:!1,anchorMode:mg.Both,canExceedContainer:!1}),this.logPrefix="[Resizable]",this.container=null,this.options={keepRatio:!1,stopPropagation:!1,anchorMode:mg.Both,canExceedContainer:!1},this.callbacksMap=new Map,this.topLeftAnchor=null,this.topAnchor=null,this.topRightAnchor=null,this.leftAnchor=null,this.rightAnchor=null,this.bottomLeftAnchor=null,this.bottomAnchor=null,this.bottomRightAnchor=null,this.currentAnchor=null,this.resizeStartLeft=0,this.resizeStartTop=0,this.originLeft=0,this.originTop=0,this.originWidth=0,this.originHeight=0,this.resizeTarget=B,this.container=D||document.body,this.options={keepRatio:!!E.keepRatio||!1,stopPropagation:!!E.stopPropagation||!1,anchorMode:E.anchorMode||mg.Both,canExceedContainer:!!E.canExceedContainer||!1},this.mousedown=this.mousedown.bind(this),this.mousemove=this.mousemove.bind(this),this.mouseup=this.mouseup.bind(this),this.currentAnchor=null,this.createResizeAnchor(),this.resizeTarget.classList.add("trtc-resizable"),this.resizeTarget.style.position="absolute",this.resizeTarget.style.border="1px solid #3D7EFD",this.resizeTarget.style.boxSizing="border-box",this.initResizeEvent()}return h.prototype.createResizeAnchor=function(){var B,D,E,Q,p,m,T,Y,_=document.createElement("div");_.className="trtc-resizable-resize-anchor ".concat(Gd),Pr(_,Object.assign({},Go.resizeAnchor,Go.topLeftAnchor)),this.topLeftAnchor=_;var b=document.createElement("div");b.className="trtc-resizable-resize-anchor ".concat(lh),Pr(b,Object.assign({},Go.resizeAnchor,Go.topAnchor)),this.topAnchor=b;var AA=document.createElement("div");AA.className="trtc-resizable-resize-anchor ".concat($n),Pr(AA,Object.assign({},Go.resizeAnchor,Go.topRightAnchor)),this.topRightAnchor=AA;var nA=document.createElement("div");nA.className="trtc-resizable-resize-anchor ".concat(As),Pr(nA,Object.assign({},Go.resizeAnchor,Go.leftAnchor)),this.leftAnchor=nA;var fA=document.createElement("div");fA.className="trtc-resizable-resize-anchor ".concat(uh),Pr(fA,Object.assign({},Go.resizeAnchor,Go.rightAnchor)),this.rightAnchor=fA;var dA=document.createElement("div");dA.className="trtc-resizable-resize-anchor ".concat(xI),Pr(dA,Object.assign({},Go.resizeAnchor,Go.bottomLeftAnchor)),this.bottomLeftAnchor=dA;var YA=document.createElement("div");YA.className="trtc-resizable-resize-anchor ".concat(RC),Pr(YA,Object.assign({},Go.resizeAnchor,Go.bottomAnchor)),this.bottomAnchor=YA;var UA=document.createElement("div");UA.className="trtc-resizable-resize-anchor ".concat(mC),Pr(UA,Object.assign({},Go.resizeAnchor,Go.bottomRightAnchor)),this.bottomRightAnchor=UA,this.options.anchorMode!==mg.Both&&this.options.anchorMode!==mg.Edge||((B=this.resizeTarget)===null||B===void 0||B.appendChild(b),(D=this.resizeTarget)===null||D===void 0||D.appendChild(nA),(E=this.resizeTarget)===null||E===void 0||E.appendChild(fA),(Q=this.resizeTarget)===null||Q===void 0||Q.appendChild(YA)),this.options.anchorMode!==mg.Both&&this.options.anchorMode!==mg.Corner||((p=this.resizeTarget)===null||p===void 0||p.appendChild(_),(m=this.resizeTarget)===null||m===void 0||m.appendChild(AA),(T=this.resizeTarget)===null||T===void 0||T.appendChild(dA),(Y=this.resizeTarget)===null||Y===void 0||Y.appendChild(UA))},h.prototype.initResizeEvent=function(){var B,D,E,Q,p,m,T,Y;(B=this.topLeftAnchor)===null||B===void 0||B.addEventListener("mousedown",this.mousedown,!1),(D=this.topAnchor)===null||D===void 0||D.addEventListener("mousedown",this.mousedown,!1),(E=this.topRightAnchor)===null||E===void 0||E.addEventListener("mousedown",this.mousedown,!1),(Q=this.leftAnchor)===null||Q===void 0||Q.addEventListener("mousedown",this.mousedown,!1),(p=this.rightAnchor)===null||p===void 0||p.addEventListener("mousedown",this.mousedown,!1),(m=this.bottomLeftAnchor)===null||m===void 0||m.addEventListener("mousedown",this.mousedown,!1),(T=this.bottomAnchor)===null||T===void 0||T.addEventListener("mousedown",this.mousedown,!1),(Y=this.bottomRightAnchor)===null||Y===void 0||Y.addEventListener("mousedown",this.mousedown,!1)},h.prototype.mousedown=function(B){if(B.button===0){if(B.preventDefault(),this.options.stopPropagation&&B.stopPropagation(),this.currentAnchor=B.target,this.resizeStartLeft=B.screenX,this.resizeStartTop=B.screenY,document.defaultView&&this.resizeTarget){var D=document.defaultView.getComputedStyle(this.resizeTarget);this.originTop=window.parseInt(D.top),this.originLeft=window.parseInt(D.left),this.originWidth=this.resizeTarget.offsetWidth,this.originHeight=this.resizeTarget.offsetHeight,ya.debug("resize origin:",this.originTop,this.originLeft,this.originWidth,this.originHeight)}else ya.debug("".concat(this.logPrefix,"mouseDown 'resizeTarget' is null"));document.addEventListener("mousemove",this.mousemove,!1),document.addEventListener("mouseup",this.mouseup,!1)}},h.prototype.mousemove=function(B){if(this.container&&this.resizeTarget&&this.currentAnchor){var D,E=this.currentAnchor.classList[1],Q=this.originLeft,p=this.originTop,m=this.originWidth,T=this.originHeight;switch(E){case Gd:p=(D=this._resizeTop(B)).top,T=D.height,Q=(D=this._resizeLeft(B)).left,m=D.width,this.options.keepRatio&&(m/this.originWidth<T/this.originHeight?(T=m*this.originHeight/this.originWidth,p=this.originTop+this.originHeight-T):(m=T*this.originWidth/this.originHeight,Q=this.originLeft+this.originWidth-m));break;case lh:p=(D=this._resizeTop(B)).top,T=D.height,this.options.keepRatio&&((m=this.originWidth*T/this.originHeight)<20?(m=20,T=this.originHeight*m/this.originWidth,p=this.originTop+this.originHeight-T):!this.options.canExceedContainer&&m>this.container.offsetWidth-this.originLeft&&(m=this.container.offsetWidth-this.originLeft,T=this.originHeight*m/this.originWidth,p=this.originTop+this.originHeight-T));break;case $n:p=(D=this._resizeTop(B)).top,T=D.height,m=this._resizeRight(B),this.options.keepRatio&&(m/this.originWidth<T/this.originHeight?(T=m*this.originHeight/this.originWidth,p=this.originTop+this.originHeight-T):m=T*this.originWidth/this.originHeight);break;case As:Q=(D=this._resizeLeft(B)).left,m=D.width,this.options.keepRatio&&((T=this.originHeight*m/this.originWidth)<20?(T=20,m=this.originWidth*T/this.originHeight,Q=this.originLeft+this.originWidth-m):!this.options.canExceedContainer&&T>this.container.offsetHeight-this.originTop&&(T=this.container.offsetHeight-this.originTop,m=this.originWidth*T/this.originHeight,Q=this.originLeft+this.originWidth-m));break;case uh:m=this._resizeRight(B),this.options.keepRatio&&((T=m*this.originHeight/this.originWidth)<20?m=(T=20)*this.originWidth/this.originHeight:!this.options.canExceedContainer&&T>this.container.offsetHeight-this.originTop&&(m=(T=this.container.offsetHeight-this.originTop)*this.originWidth/this.originHeight));break;case xI:T=this._resizeBottom(B),Q=(D=this._resizeLeft(B)).left,m=D.width,this.options.keepRatio&&(m/this.originWidth<T/this.originHeight?T=m*this.originHeight/this.originWidth:(m=T*this.originWidth/this.originHeight,Q=this.originLeft+this.originWidth-m));break;case RC:T=this._resizeBottom(B),this.options.keepRatio&&((m=T*this.originWidth/this.originHeight)<20?T=(m=20)*this.originHeight/this.originWidth:!this.options.canExceedContainer&&m>this.container.offsetWidth-this.originLeft&&(T=(m=this.container.offsetWidth-this.originLeft)*this.originHeight/this.originWidth));break;case mC:T=this._resizeBottom(B),m=this._resizeRight(B),this.options.keepRatio&&(m/this.originWidth<T/this.originHeight?T=m*this.originHeight/this.originWidth:m=T*this.originWidth/this.originHeight)}this.resizeTarget.style.left="".concat(Q,"px"),this.resizeTarget.style.top="".concat(p,"px"),this.resizeTarget.style.height="".concat(T,"px"),this.resizeTarget.style.width="".concat(m,"px"),this.emit("resize",Q,p,m,T)}else ya.debug("".concat(this.logPrefix,"mouseMove error. No valid inner info:"),this.container,this.resizeTarget,this.currentAnchor)},h.prototype._resizeLeft=function(B){var D=B.screenX-this.resizeStartLeft,E=this.originLeft+D,Q=this.originWidth-D;return!this.options.canExceedContainer&&E<0?(E=0,Q=this.originWidth+this.originLeft):E>this.originLeft+this.originWidth-20&&(E=this.originLeft+this.originWidth-20,Q=20),{left:E,width:Q}},h.prototype._resizeTop=function(B){var D=B.screenY-this.resizeStartTop,E=this.originTop+D,Q=this.originHeight-D;return!this.options.canExceedContainer&&E<0?(E=0,Q=this.originHeight+this.originTop):E>this.originTop+this.originHeight-20&&(E=this.originTop+this.originHeight-20,Q=20),{top:E,height:Q}},h.prototype._resizeRight=function(B){if(!this.container)return ya.debug("".concat(this.logPrefix,"_resizeRight error. No container:"),this.container),0;var D=B.screenX-this.resizeStartLeft,E=this.originWidth+D;return E<20?E=20:!this.options.canExceedContainer&&E>this.container.offsetWidth-this.originLeft&&(E=this.container.offsetWidth-this.originLeft),E},h.prototype._resizeBottom=function(B){if(!this.container)return ya.debug("".concat(this.logPrefix,"_resizeBottom error. No container:"),this.container),0;var D=B.screenY-this.resizeStartTop,E=this.originHeight+D;return E<20?E=20:!this.options.canExceedContainer&&E>this.container.offsetHeight-this.originTop&&(E=this.container.offsetHeight-this.originTop),E},h.prototype.mouseup=function(){document.removeEventListener("mousemove",this.mousemove,!1),document.removeEventListener("mouseup",this.mouseup,!1),this.currentAnchor=null,this.resizeStartLeft=0,this.resizeStartTop=0,this.originLeft=0,this.originTop=0,this.originWidth=0,this.originHeight=0},h.prototype.on=function(B,D){var E=this.callbacksMap.get(B);E?E.push(D):this.callbacksMap.set(B,[D])},h.prototype.off=function(B,D){var E=this.callbacksMap.get(B);E&&(E=E.filter((function(Q){return Q!=D})),this.callbacksMap.set(B,E))},h.prototype.emit=function(B){for(var D=[],E=1;E<arguments.length;E++)D[E-1]=arguments[E];var Q=this.callbacksMap.get(B);Q&&Q.slice().forEach((function(p){try{p.apply(null,D)}catch(m){console.error("[Resizable]emit error:",p,m)}}))},h.prototype.destroy=function(){var B,D,E,Q,p,m,T,Y,_,b,AA,nA,fA,dA,YA,UA;(B=this.topLeftAnchor)===null||B===void 0||B.removeEventListener("mousedown",this.mousedown,!1),(D=this.topAnchor)===null||D===void 0||D.removeEventListener("mousedown",this.mousedown,!1),(E=this.topRightAnchor)===null||E===void 0||E.removeEventListener("mousedown",this.mousedown,!1),(Q=this.leftAnchor)===null||Q===void 0||Q.removeEventListener("mousedown",this.mousedown,!1),(p=this.rightAnchor)===null||p===void 0||p.removeEventListener("mousedown",this.mousedown,!1),(m=this.bottomLeftAnchor)===null||m===void 0||m.removeEventListener("mousedown",this.mousedown,!1),(T=this.bottomAnchor)===null||T===void 0||T.removeEventListener("mousedown",this.mousedown,!1),(Y=this.bottomRightAnchor)===null||Y===void 0||Y.removeEventListener("mousedown",this.mousedown,!1),this.callbacksMap.clear(),this.options.anchorMode!==mg.Both&&this.options.anchorMode!==mg.Edge||(this.topAnchor&&((_=this.resizeTarget)===null||_===void 0||_.removeChild(this.topAnchor)),this.leftAnchor&&((b=this.resizeTarget)===null||b===void 0||b.removeChild(this.leftAnchor)),this.rightAnchor&&((AA=this.resizeTarget)===null||AA===void 0||AA.removeChild(this.rightAnchor)),this.bottomAnchor&&((nA=this.resizeTarget)===null||nA===void 0||nA.removeChild(this.bottomAnchor))),this.options.anchorMode!==mg.Both&&this.options.anchorMode!==mg.Corner||(this.topLeftAnchor&&((fA=this.resizeTarget)===null||fA===void 0||fA.removeChild(this.topLeftAnchor)),this.topRightAnchor&&((dA=this.resizeTarget)===null||dA===void 0||dA.removeChild(this.topRightAnchor)),this.bottomLeftAnchor&&((YA=this.resizeTarget)===null||YA===void 0||YA.removeChild(this.bottomLeftAnchor)),this.bottomRightAnchor&&((UA=this.resizeTarget)===null||UA===void 0||UA.removeChild(this.bottomRightAnchor))),this.topLeftAnchor=null,this.topAnchor=null,this.topRightAnchor=null,this.leftAnchor=null,this.rightAnchor=null,this.bottomLeftAnchor=null,this.bottomAnchor=null,this.bottomRightAnchor=null,this.resizeTarget=null,this.container=null,this.currentAnchor=null,this.resizeStartLeft=0,this.resizeStartTop=0,this.originLeft=0,this.originTop=0,this.originWidth=0,this.originHeight=0},h})(),KI=(function(){var h=new Map;for(var B in f.TRTCVideoResolution)if(isNaN(Number(B))){var D=f.TRTCVideoResolution[B],E=B.split("_");h.set(D,{width:parseInt(E[1]),height:parseInt(E[2])})}return h})(),fC=(function(){function h(B){if(this.logPrefix="[TRTCMediaMixingDesigner]",this.mixingVideoWidth=640,this.mixingVideoHeight=360,this.canExceedContainer=!1,this.movableHandler=null,this.resizableHandler=null,this.previewScale=1,this.previewWidth=0,this.previewHeight=0,this.previewLeft=0,this.previewTop=0,this.BOUNDARY_ADSORPTION_THRESHOLD=10,this.newSelected=null,this.clickedMediaSources=[],this.oldSelectedIndex=-1,this.mousedownLeft=null,this.mousedownTop=null,this.eventButton=null,this.resizeObserver=null,this.logger=B.logger,this.container=B.view,this.container.style.position="relative",this.videoResolution=B.videoResolution,this.resMode=B.resMode,KI.has(B.videoResolution)){var D=KI.get(B.videoResolution),E=D.width,Q=D.height;this.resMode===f.TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape?(this.mixingVideoWidth=E,this.mixingVideoHeight=Q):(this.mixingVideoWidth=Q,this.mixingVideoHeight=E)}this.updatePreviewProperty(),this.canExceedContainer=B.canExceedContainer||!1,this.eventEmitter=new _e,this.mediaList=[],this.selectedMediaIndex=-1,this.moveAndResizeOverlay=document.createElement("div"),this.moveAndResizeOverlay.style.position="relative",this.container.appendChild(this.moveAndResizeOverlay),this.initMediaMovable(),this.initMediaResizable(),this.initContainerMouseEventHander(),this.initContainerResizeObserver()}return h.prototype.updateOptions=function(B){if(!sa(B.videoResolution)||!sa(B.resMode)){if(this.resMode=sa(B.resMode)?this.resMode:B.resMode,B.videoResolution&&KI.has(B.videoResolution)){var D=KI.get(B.videoResolution),E=D.width,Q=D.height;this.resMode===f.TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape?(this.mixingVideoWidth=E,this.mixingVideoHeight=Q):(this.mixingVideoWidth=Q,this.mixingVideoHeight=E)}this.updatePreviewProperty(),this.updateOverlay()}},h.prototype.addMedia=function(B){this.mediaList.unshift(B),B.isSelected&&(this.selectedMediaIndex=0,this.updateOverlay())},h.prototype.removeMedia=function(B){var D=this.mediaList.findIndex((function(E){return E.id===B.id}));D!==-1&&(this.mediaList.splice(D,1),(this.selectedMediaIndex===D||B.isSelected)&&(this.selectedMediaIndex=-1,this.updateOverlay()))},h.prototype.updateMedia=function(B){var D=this.mediaList.findIndex((function(E){return E.id===B.id}));D!==-1&&(this.mediaList[D]=Object.assign({},this.mediaList[D],B),B.isSelected&&(this.selectedMediaIndex=D,this.updateOverlay()))},h.prototype.on=function(B,D){var E;(E=this.eventEmitter)===null||E===void 0||E.on(B,D)},h.prototype.off=function(B,D){var E;(E=this.eventEmitter)===null||E===void 0||E.off(B,D)},h.prototype.destroy=function(){var B,D,E,Q;this.resizeObserver&&(this.container&&this.resizeObserver.unobserve(this.container),this.resizeObserver.disconnect(),this.resizeObserver=null),(B=this.movableHandler)===null||B===void 0||B.destroy(),(D=this.resizableHandler)===null||D===void 0||D.destroy(),this.movableHandler=null,this.resizableHandler=null,(E=this.container)===null||E===void 0||E.removeEventListener("contextmenu",this.onRightButtonClicked,!1),document.removeEventListener("mousedown",this.onContainerMousedown,!1),this.moveAndResizeOverlay&&((Q=this.container)===null||Q===void 0||Q.removeChild(this.moveAndResizeOverlay),this.moveAndResizeOverlay=null),this.container=null,this.eventEmitter=null,this.mediaList=[]},h.prototype.initMediaMovable=function(){this.onMove=this.onMove.bind(this),this.movableHandler=new zn(this.moveAndResizeOverlay,this.container,{canExceedContainer:this.canExceedContainer,calcPositionOnly:!1}),this.movableHandler.on("move",this.onMove)},h.prototype.initMediaResizable=function(){this.onResize=this.onResize.bind(this),this.resizableHandler=new wE(this.moveAndResizeOverlay,this.container,{keepRatio:!0,stopPropagation:!0,canExceedContainer:this.canExceedContainer,anchorMode:0}),this.resizableHandler.on("resize",this.onResize)},h.prototype.initContainerMouseEventHander=function(){this.container?(this.onContainerMousedown=this.onContainerMousedown.bind(this),this.onContainerMousemove=this.onContainerMousemove.bind(this),this.onContainerMouseup=this.onContainerMouseup.bind(this),document.addEventListener("mousedown",this.onContainerMousedown,!1),this.onRightButtonClicked=this.onRightButtonClicked.bind(this),this.container.addEventListener("contextmenu",this.onRightButtonClicked,!1)):this.logger.error("".concat(this.logPrefix,"initContainerMouseEventHander failed, no container view"))},h.prototype.initContainerResizeObserver=function(){this.container&&(this.onPreviewAreaResize=this.onPreviewAreaResize.bind(this),this.resizeObserver=new ResizeObserver(this.onPreviewAreaResize),this.resizeObserver.observe(this.container))},h.prototype.onPreviewAreaResize=function(B){for(var D=0,E=B;D<E.length;D++)if(E[D].target===this.container){this.updatePreviewProperty(),this.updateOverlay();break}},h.prototype.updatePreviewProperty=function(){if(this.container){var B=this.container.offsetWidth,D=this.container.offsetHeight,E=B/this.mixingVideoWidth,Q=D/this.mixingVideoHeight;this.previewScale=E>Q?E:Q,this.previewWidth=this.mixingVideoWidth*this.previewScale,this.previewHeight=this.mixingVideoHeight*this.previewScale,this.previewLeft=(B-this.previewWidth)/2,this.previewTop=(D-this.previewHeight)/2}else console.debug("".concat(this.logPrefix,"calcPreviewScale failed, no HTML element to display"))},h.prototype.updateOverlay=function(){if(this.moveAndResizeOverlay){var B=void 0,D=void 0,E=void 0,Q=void 0;if(this.selectedMediaIndex>=0){var p={left:this.mediaList[this.selectedMediaIndex].rect.left*this.previewScale,top:this.mediaList[this.selectedMediaIndex].rect.top*this.previewScale,right:this.mediaList[this.selectedMediaIndex].rect.right*this.previewScale,bottom:this.mediaList[this.selectedMediaIndex].rect.bottom*this.previewScale};B="".concat(p.left+this.previewLeft,"px"),D="".concat(p.top+this.previewTop,"px"),E="".concat(p.right-p.left,"px"),Q="".concat(p.bottom-p.top,"px"),this.moveAndResizeOverlay.style.display="block"}else B="".concat(this.previewLeft,"px"),D="".concat(this.previewTop,"px"),E="0px",Q="0px",this.moveAndResizeOverlay.style.display="none";this.moveAndResizeOverlay.style.left=B,this.moveAndResizeOverlay.style.top=D,this.moveAndResizeOverlay.style.width=E,this.moveAndResizeOverlay.style.height=Q}},h.prototype.onMove=function(B,D){var E;console.debug("".concat(this.logPrefix,"onMove: ").concat(B," ").concat(D));var Q=this.mediaList[this.selectedMediaIndex];if(Q&&this.moveAndResizeOverlay){var p={left:B-this.previewLeft,top:D-this.previewTop,right:B-this.previewLeft+this.moveAndResizeOverlay.offsetWidth,bottom:D-this.previewTop+this.moveAndResizeOverlay.offsetHeight};this.doAdsorption(p);var m={left:Math.round(p.left/this.previewScale),top:Math.round(p.top/this.previewScale),right:Math.round(p.right/this.previewScale),bottom:Math.round(p.bottom/this.previewScale)};(E=this.eventEmitter)===null||E===void 0||E.emit("onSourceMoved",rA({},Q),m)}else console.debug("".concat(this.logPrefix,"onMove no selected media"))},h.prototype.doAdsorption=function(B){var D=this.BOUNDARY_ADSORPTION_THRESHOLD;Math.abs(B.left)<D&&(B.right=B.right-B.left,B.left=0),Math.abs(B.top)<D&&(B.bottom=B.bottom-B.top,B.top=0),Math.abs(B.right-this.previewWidth)<D&&(B.left=B.left+this.previewWidth-B.right,B.right=this.previewWidth),Math.abs(B.bottom-this.previewHeight)<D&&(B.top=B.top+this.previewHeight-B.bottom,B.bottom=this.previewHeight)},h.prototype.onResize=function(B,D,E,Q){var p;console.debug("".concat(this.logPrefix,"onResize: ").concat(B," ").concat(D," ").concat(E," ").concat(Q));var m=this.mediaList[this.selectedMediaIndex];if(m){var T={left:B-this.previewLeft,top:D-this.previewTop,right:B-this.previewLeft+E,bottom:D-this.previewTop+Q},Y={left:Math.round(T.left/this.previewScale),top:Math.round(T.top/this.previewScale),right:Math.round(T.right/this.previewScale),bottom:Math.round(T.bottom/this.previewScale)};(p=this.eventEmitter)===null||p===void 0||p.emit("onSourceResized",rA({},m),Y)}else console.debug("".concat(this.logPrefix,"onResize no selected media"))},h.prototype.emitOnSelect=function(B){var D;if(B){for(var E=this.mediaList.length,Q=0;Q<E;Q++)if(B.id===this.mediaList[Q].id){this.selectedMediaIndex=Q;break}}else this.selectedMediaIndex=-1;this.updateOverlay(),(D=this.eventEmitter)===null||D===void 0||D.emit("onSourceSelected",B?rA({},B):null)},h.prototype.onContainerMousedown=function(B){console.debug("".concat(this.logPrefix,"onContainerMousedown event:"),B,B.target,B.currentTarget);var D=B.target;if(this.eventButton=B.button,D&&this.container){if(this.container.contains(D)){console.debug("".concat(this.logPrefix,"onContainerMousedown mix video image clicked"));var E=this.container.getBoundingClientRect(),Q=B.clientX-E.x-this.previewLeft,p=B.clientY-E.y-this.previewTop,m=Q/this.previewScale,T=p/this.previewScale;console.debug("".concat(this.logPrefix,"onContainerMousedown click point coordinates in mix video:"),Q,p,m,T);for(var Y=0;Y<this.mediaList.length;Y++){var _=this.mediaList[Y];_.rect&&m>=_.rect.left&&m<=_.rect.right&&T>=_.rect.top&&T<=_.rect.bottom&&(this.clickedMediaSources.push(_),this.mediaList[this.selectedMediaIndex]&&_.id===this.mediaList[this.selectedMediaIndex].id&&(this.oldSelectedIndex=this.clickedMediaSources.length-1))}this.mousedownLeft=B.screenX,this.mousedownTop=B.screenY}this.clickedMediaSources.length>0?this.eventButton===2&&this.oldSelectedIndex===-1?(this.newSelected=this.clickedMediaSources[0],console.debug("".concat(this.logPrefix,"onContainerMousedown find clicked media source:"),this.newSelected),this.emitOnSelect(this.newSelected),this.clickedMediaSources.splice(0,this.clickedMediaSources.length)):(document.addEventListener("mousemove",this.onContainerMousemove,!1),document.addEventListener("mouseup",this.onContainerMouseup,!1)):(this.newSelected=null,console.debug("".concat(this.logPrefix,"onContainerMousedown find clicked media source:"),this.newSelected),this.emitOnSelect(null),this.mousedownLeft=null,this.mousedownTop=null,this.eventButton=null)}},h.prototype.onContainerMousemove=function(B){var D;if(B.target&&this.container&&this.mousedownLeft!==null&&this.mousedownTop!==null){var E=B.screenX-this.mousedownLeft,Q=B.screenY-this.mousedownTop;(Math.abs(E)>=5||Math.abs(Q)>=5)&&(this.oldSelectedIndex>=0?(console.debug("".concat(this.logPrefix,"onContainerMousemove move or resize old selected media source, clear data:"),this.clickedMediaSources,this.oldSelectedIndex),this.clickedMediaSources.splice(0,this.clickedMediaSources.length),this.oldSelectedIndex=-1):this.clickedMediaSources.length>0&&(this.newSelected=this.clickedMediaSources[0],console.debug("".concat(this.logPrefix,"onContainerMousemove find clicked media source:"),this.newSelected),this.emitOnSelect(this.newSelected),this.clickedMediaSources.splice(0,this.clickedMediaSources.length),(D=this.moveAndResizeOverlay)===null||D===void 0||D.dispatchEvent(new MouseEvent("mousedown",{screenX:this.mousedownLeft,screenY:this.mousedownTop,button:this.eventButton}))))}},h.prototype.onContainerMouseup=function(B){if(document.removeEventListener("mousemove",this.onContainerMousemove,!1),document.removeEventListener("mouseup",this.onContainerMouseup,!1),console.debug("".concat(this.logPrefix,"onContainerMouseup data:"),this.clickedMediaSources,this.oldSelectedIndex),B.target&&this.container){if(this.clickedMediaSources.length>0)if(this.oldSelectedIndex>=0){if(this.eventButton===0){var D=(this.oldSelectedIndex+1)%this.clickedMediaSources.length;this.newSelected=this.clickedMediaSources[D],console.debug("".concat(this.logPrefix,"onContainerMouseup find clicked media source:"),this.newSelected),this.emitOnSelect(this.newSelected)}}else this.newSelected=this.clickedMediaSources[0],console.debug("".concat(this.logPrefix,"onContainerMouseup find clicked media source:"),this.newSelected),this.emitOnSelect(this.newSelected)}else console.debug("".concat(this.logPrefix,"onContainerMouseup click outside of mixing video image")),this.emitOnSelect(null);this.mousedownLeft=null,this.mousedownTop=null,this.clickedMediaSources.splice(0,this.clickedMediaSources.length),this.oldSelectedIndex=-1,this.newSelected=null,this.eventButton=null},h.prototype.onRightButtonClicked=function(B){var D;console.debug("".concat(this.logPrefix,"onRightButtonClicked:"),B.target,B.currentTarget,B.buttons),B.preventDefault(),(D=this.eventEmitter)===null||D===void 0||D.emit("onRightButtonClicked",rA({},this.mediaList[this.selectedMediaIndex]))},h})(),dh=(function(){function h(B){if(this.logPrefix="[TRTCMediaMixingManager]",this.eventEmitter=new _e,this.publishParams={videoEncoderParams:{videoResolution:f.TRTCVideoResolution.TRTCVideoResolution_1280_720,resMode:f.TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape,videoFps:15,videoBitrate:1800},canvasColor:0},this.mediaMixingDesigner=null,this.sourceList=[],this.trtcSourceMap=new Map,this.mixVideoTrack=null,this.selectedSource=null,this.view=null,this.screensWithSystemAudio=new Set,this.activeSystemAudioTrackId=null,h.mediaMixingManager)return h.mediaMixingManager;h.mediaMixingManager=this,this.logger=B.logger,this.trtc=B.trtc,this.trtcCloud=B.trtcCloud,this.onSourceSelected=this.onSourceSelected.bind(this),this.onSourceMoved=this.onSourceMoved.bind(this),this.onSourceResized=this.onSourceResized.bind(this),this.onRightButtonClicked=this.onRightButtonClicked.bind(this)}return h.prototype.destroy=function(){return sA(this,void 0,Promise,(function(){var B,D;return oA(this,(function(E){switch(E.label){case 0:this.view=null,E.label=1;case 1:return E.trys.push([1,3,,4]),[4,this.trtc.stopPlugin("VideoMixer")];case 2:return E.sent(),[3,4];case 3:return B=E.sent(),this.logger.error("".concat(this.logPrefix," destroy and stopPlugin error:"),B),[3,4];case 4:if(!(this.screensWithSystemAudio.size>0))return[3,9];E.label=5;case 5:return E.trys.push([5,7,,8]),[4,this.trtc.stopPlugin("AudioMixer",{id:"systemAudioTrack"})];case 6:return E.sent(),[3,8];case 7:return D=E.sent(),this.logger.error("".concat(this.logPrefix," destroy and stopPlugin AudioMixer error:"),D),[3,8];case 8:this.screensWithSystemAudio.clear(),this.activeSystemAudioTrackId=null,E.label=9;case 9:return this.destroyDesigner(),this.eventEmitter=null,h.mediaMixingManager=null,[2]}}))}))},h.prototype.bindPreviewArea=function(B){return sA(this,void 0,Promise,(function(){var D,E,Q,p,m=this;return oA(this,(function(T){switch(T.label){case 0:return this.logger.log("".concat(this.logPrefix," bindPreviewArea:"),B),this.view=B,D=this._getCanvasSize(this.publishParams.videoEncoderParams.videoResolution,this.publishParams.videoEncoderParams.resMode),E=D.width,Q=D.height,[4,this.trtc.startPlugin("VideoMixer",{view:B,canvasInfo:{width:E,height:Q,canvasColor:String(this.publishParams.canvasColor)},onScreenShareStop:function(Y){var _,b=m.sourceList.find((function(AA){return AA.id===Y}));m.removeMediaSource(b),(_=m.eventEmitter)===null||_===void 0||_.emit("onSourceDisconnected",b||null)}})];case 1:return p=T.sent(),console.log("startPlugin result",p,p.track),this.mixVideoTrack=p.track,this.createDesigner(),[2]}}))}))},h.prototype._getTRTCSourceKey=function(B){var D;return((D={})[f.TRTCMediaSourceType.kCamera]="camera",D[f.TRTCMediaSourceType.kScreen]="screen",D[f.TRTCMediaSourceType.kText]="text",D[f.TRTCMediaSourceType.kVideo]="video",D[f.TRTCMediaSourceType.kImage]="image",D)[B.type]},h.prototype._getTRTCFillMode=function(B){var D;return((D={})[f.TRTCVideoFillMode.TRTCVideoFillMode_Fill]="cover",D[f.TRTCVideoFillMode.TRTCVideoFillMode_Fit]="contain",D)[B]},h.prototype._getTRTCVideoProfile=function(B,D){var E,Q=((E={})[f.TRTCVideoResolution.TRTCVideoResolution_480_270]={width:480,height:270},E[f.TRTCVideoResolution.TRTCVideoResolution_640_360]={width:640,height:360},E[f.TRTCVideoResolution.TRTCVideoResolution_960_540]={width:960,height:540},E[f.TRTCVideoResolution.TRTCVideoResolution_1280_720]={width:1280,height:720},E[f.TRTCVideoResolution.TRTCVideoResolution_1920_1080]={width:1920,height:1080},E);return{width:Q[B].width,height:Q[B].height,frameRate:D,bitrate:1e3}},h.prototype._getTRTCLayout=function(B){var D,E,Q,p,m,T,Y,_,b,AA,nA,fA,dA,YA,UA,lA,Ce={zIndex:((Q=B.layout)===null||Q===void 0?void 0:Q.zOrder)||0};if(ri((p=B.layout)===null||p===void 0?void 0:p.rect)||(Ce.x=(m=B.layout)===null||m===void 0?void 0:m.rect.left,Ce.y=(T=B.layout)===null||T===void 0?void 0:T.rect.top,Ce.width=((Y=B.layout)===null||Y===void 0?void 0:Y.rect.right)-((_=B.layout)===null||_===void 0?void 0:_.rect.left),Ce.height=((b=B.layout)===null||b===void 0?void 0:b.rect.bottom)-((AA=B.layout)===null||AA===void 0?void 0:AA.rect.top)),ri((nA=B.layout)===null||nA===void 0?void 0:nA.fillMode)||(Ce.fillMode=this._getTRTCFillMode((fA=B.layout)===null||fA===void 0?void 0:fA.fillMode)),!ri((dA=B.layout)===null||dA===void 0?void 0:dA.mirror)){var xe=((D={})[f.TRTCVideoMirrorType.TRTCVideoMirrorType_Auto]=!0,D[f.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable]=!0,D[f.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable]=!1,D);Ce.mirror=xe[(YA=B.layout)===null||YA===void 0?void 0:YA.mirror]}if(!ri((UA=B.layout)===null||UA===void 0?void 0:UA.rotation)){var Qt=((E={})[f.TRTCVideoRotation.TRTCVideoRotation0]=0,E[f.TRTCVideoRotation.TRTCVideoRotation90]=90,E[f.TRTCVideoRotation.TRTCVideoRotation180]=180,E[f.TRTCVideoRotation.TRTCVideoRotation270]=270,E);Ce.rotation=Qt[(lA=B.layout)===null||lA===void 0?void 0:lA.rotation]}return Ce},h.prototype._getTRTCSourceItem=function(B){var D,E,Q,p,m,T,Y,_,b,AA;switch(B.type){case f.TRTCMediaSourceType.kScreen:return AA=f.TRTCVideoResolution.TRTCVideoResolution_1920_1080,{id:B.id,profile:this._getTRTCVideoProfile(((D=B.screen)===null||D===void 0?void 0:D.resolution)||AA,((E=B.screen)===null||E===void 0?void 0:E.fps)||15),layout:this._getTRTCLayout(B),systemAudio:(Q=B.screen)===null||Q===void 0?void 0:Q.systemAudio};case f.TRTCMediaSourceType.kCamera:return AA=f.TRTCVideoResolution.TRTCVideoResolution_1280_720,{id:B.id,cameraId:(p=B.camera)===null||p===void 0?void 0:p.cameraId,profile:this._getTRTCVideoProfile(((m=B.camera)===null||m===void 0?void 0:m.resolution)||AA,((T=B.camera)===null||T===void 0?void 0:T.fps)||15),videoTrack:(Y=B.camera)===null||Y===void 0?void 0:Y.videoTrack,layout:this._getTRTCLayout(B)};case f.TRTCMediaSourceType.kText:return rA(rA({id:B.id},B.text||{}),{layout:this._getTRTCLayout(B)});case f.TRTCMediaSourceType.kImage:return{id:B.id,url:(_=B.image)===null||_===void 0?void 0:_.url,layout:this._getTRTCLayout(B)};case f.TRTCMediaSourceType.kVideo:return{id:B.id,url:(b=B.video)===null||b===void 0?void 0:b.url,layout:this._getTRTCLayout(B)};default:return null}},h.prototype._getCanvasSize=function(B,D){var E,Q,p=((E={})[f.TRTCVideoResolution.TRTCVideoResolution_480_270]={width:480,height:270},E[f.TRTCVideoResolution.TRTCVideoResolution_640_360]={width:640,height:360},E[f.TRTCVideoResolution.TRTCVideoResolution_960_540]={width:960,height:540},E[f.TRTCVideoResolution.TRTCVideoResolution_1280_720]={width:1280,height:720},E[f.TRTCVideoResolution.TRTCVideoResolution_1920_1080]={width:1920,height:1080},E)[B],m=p.width,T=p.height;return D===f.TRTCVideoResolutionMode.TRTCVideoResolutionModePortrait&&(m=(Q=[T,m])[0],T=Q[1]),{width:m,height:T}},h.prototype.addMediaSource=function(B){var D;return sA(this,void 0,Promise,(function(){var E,Q,p,m,T,Y,_,b,AA;return oA(this,(function(nA){switch(nA.label){case 0:if(this.logger.log("".concat(this.logPrefix,"addMediaSource:"),B),this.findMediaSourceIndex(B)!==-1)throw new Error("Media source already existed");if(E=ig(B),Q=this._getTRTCSourceKey(E),!(p=this._getTRTCSourceItem(E))||!Q)throw new Error("Invalid media source");return(m=ig(this.trtcSourceMap.get(Q))||[]).push(p),[4,this.trtc.updatePlugin("VideoMixer",(AA={},AA[Q]=m,AA))];case 1:return T=nA.sent(),Y=T.result,_=T.systemAudioTrackList,B.type===f.TRTCMediaSourceType.kScreen&&(_!=null&&_[B.id])?(this.screensWithSystemAudio.add(B.id),b=Object.values(_)[0],this.screensWithSystemAudio.size!==1?[3,3]:(this.logger.log("".concat(this.logPrefix," startPlugin AudioMixer, track ID:"),b.id),this.activeSystemAudioTrackId=b.id,[4,this.trtc.startPlugin("AudioMixer",{id:"systemAudioTrack",track:b})])):[3,5];case 2:return nA.sent(),[3,5];case 3:return this.logger.log("".concat(this.logPrefix," updatePlugin AudioMixer, old track ID:"),this.activeSystemAudioTrackId,"new track ID:",b.id),this.activeSystemAudioTrackId=b.id,[4,this.trtc.updatePlugin("AudioMixer",{id:"systemAudioTrack",track:b})];case 4:nA.sent(),nA.label=5;case 5:if(Y.failedDetails.find((function(fA){return fA.id===B.id})))throw new Error("Failed to add media source");return E.isSelected&&(this.unselectMediaSource(this.selectedSource),this.selectedSource=B),this.trtcSourceMap.set(Q,m),(D=this.mediaMixingDesigner)===null||D===void 0||D.addMedia({id:E.id,rect:this._getDesignerMediaRect(B),isSelected:E.isSelected||!0,origin:E}),E.isSelected&&(this.selectedSource=E),this.sourceList.push(E),[2]}}))}))},h.prototype.removeMediaSource=function(B){var D,E,Q;return sA(this,void 0,Promise,(function(){var p,m,T,Y,_,b,AA,nA,fA;return oA(this,(function(dA){switch(dA.label){case 0:if(this.logger.log("".concat(this.logPrefix,"removeMediaSource:"),B),(p=this.findMediaSourceIndex(B))===-1)throw new Error("Not existing media source to remove");return m=this._getTRTCSourceKey(B),T=ig(this.trtcSourceMap.get(m))||[],Y=T.findIndex((function(YA){return YA.id===B.id})),T.splice(Y,1),[4,this.trtc.updatePlugin("VideoMixer",(fA={},fA[m]=T,fA))];case 1:return _=dA.sent(),b=_.result,AA=_.systemAudioTrackList,B.type===f.TRTCMediaSourceType.kScreen&&this.screensWithSystemAudio.has(B.id)?(this.screensWithSystemAudio.delete(B.id),this.screensWithSystemAudio.size>0?(this.logger.log("".concat(this.logPrefix," keep AudioMixer running, remaining screens:"),this.screensWithSystemAudio.size),(nA=AA?Object.values(AA)[0]:null)&&nA.id!==this.activeSystemAudioTrackId?(this.logger.log("".concat(this.logPrefix," updatePlugin AudioMixer, switch track from ").concat(this.activeSystemAudioTrackId," to ").concat(nA.id)),this.activeSystemAudioTrackId=nA.id,[4,this.trtc.updatePlugin("AudioMixer",{id:"systemAudioTrack",track:nA})]):[3,3]):[3,5]):[3,7];case 2:return dA.sent(),[3,4];case 3:this.logger.log("".concat(this.logPrefix," AudioMixer track not changed, no need to update")),dA.label=4;case 4:return[3,7];case 5:return this.logger.log("".concat(this.logPrefix," stopPlugin AudioMixer, no more screens with system audio")),this.activeSystemAudioTrackId=null,[4,this.trtc.stopPlugin("AudioMixer",{id:"systemAudioTrack"})];case 6:dA.sent(),dA.label=7;case 7:if(b.failedDetails.find((function(YA){return YA.id===B.id})))throw new Error("Failed to remove media source");return(D=this.mediaMixingDesigner)===null||D===void 0||D.removeMedia({id:B.id,rect:(E=B.layout)===null||E===void 0?void 0:E.rect,isSelected:B.isSelected||!1,origin:ig(B)}),((Q=this.selectedSource)===null||Q===void 0?void 0:Q.id)===B.id&&(this.selectedSource=null),this.trtcSourceMap.set(m,T),this.sourceList.splice(p,1),[2]}}))}))},h.prototype._getDesignerMediaRect=function(B){var D,E,Q=((D=B.layout)===null||D===void 0?void 0:D.rect)||{left:0,top:0,right:0,bottom:0},p=Q.left,m=Q.top,T=Q.right,Y=Q.bottom,_=T-p,b=Y-m;switch((E=B.layout)===null||E===void 0?void 0:E.rotation){case f.TRTCVideoRotation.TRTCVideoRotation0:case f.TRTCVideoRotation.TRTCVideoRotation180:return{left:p,top:m,right:T,bottom:Y};case f.TRTCVideoRotation.TRTCVideoRotation90:case f.TRTCVideoRotation.TRTCVideoRotation270:return{left:p,top:m,right:p+b,bottom:m+_};default:return{left:p,top:m,right:T,bottom:Y}}},h.prototype._getPluginMediaRect=function(B){var D,E,Q=((D=B.layout)===null||D===void 0?void 0:D.rect)||{left:0,top:0,right:0,bottom:0},p=Q.left,m=Q.top,T=Q.right,Y=Q.bottom;switch((E=B.layout)===null||E===void 0?void 0:E.rotation){case f.TRTCVideoRotation.TRTCVideoRotation0:case f.TRTCVideoRotation.TRTCVideoRotation180:return{left:p,top:m,right:T,bottom:Y};case f.TRTCVideoRotation.TRTCVideoRotation90:case f.TRTCVideoRotation.TRTCVideoRotation270:return{left:p,top:m,right:p+(Y-m),bottom:m+(T-p)};default:return{left:p,top:m,right:T,bottom:Y}}},h.prototype.updateMediaSource=function(B){var D,E;return sA(this,void 0,Promise,(function(){var Q,p,m,T,Y,_,b,AA;return oA(this,(function(nA){switch(nA.label){case 0:if(this.logger.log("".concat(this.logPrefix,"updateMediaSource:"),B),(Q=this.findMediaSourceIndex(B))===-1)throw new Error("Not existing media source to update");return p=rA(rA({},this.sourceList[Q]),ig(B)),B.isSelected?(this.unselectMediaSource(this.selectedSource),this.selectedSource=B):((D=this.selectedSource)===null||D===void 0?void 0:D.id)===B.id&&(this.selectedSource=null),m=this._getTRTCSourceKey(p),T=this._getTRTCSourceItem(p),Y=ig(this.trtcSourceMap.get(m))||[],_=Y.findIndex((function(fA){return fA.id===B.id})),Y[_]=T,[4,this.trtc.updatePlugin("VideoMixer",(AA={},AA[m]=Y,AA))];case 1:if(nA.sent().result.failedDetails.find((function(fA){return fA.id===B.id})))throw new Error("Failed to update media source");return b={id:B.id,rect:this._getDesignerMediaRect(B),isSelected:B.isSelected||!1,origin:ig(B)},this.logger.log("".concat(this.logPrefix,"updateParams:"),JSON.stringify(b)),(E=this.mediaMixingDesigner)===null||E===void 0||E.updateMedia(b),this.trtcSourceMap.set(m,Y),this.sourceList[Q]=p,[2]}}))}))},h.prototype.startPublish=function(){return sA(this,void 0,Promise,(function(){return oA(this,(function(B){switch(B.label){case 0:return this.logger.log("".concat(this.logPrefix," startPublish")),[4,this.trtcCloud.setLocalRenderParams({rotation:f.TRTCVideoRotation.TRTCVideoRotation0,fillMode:f.TRTCVideoFillMode.TRTCVideoFillMode_Fit,mirrorType:f.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable})];case 1:return B.sent(),[4,this.trtcCloud._startPublishVideoTrack({videoTrack:this.mixVideoTrack})];case 2:return B.sent(),[2]}}))}))},h.prototype.stopPublish=function(){return sA(this,void 0,Promise,(function(){return oA(this,(function(B){switch(B.label){case 0:return this.logger.log("".concat(this.logPrefix," stopPublish")),[4,this.trtcCloud._stopPublishVideoTrack()];case 1:return B.sent(),[2]}}))}))},h.prototype.updatePublishParams=function(B){var D,E,Q,p,m;return sA(this,void 0,Promise,(function(){var T,Y,_,b,AA,nA,fA,dA,YA,UA,lA,Ce,xe,Qt,Le,Ne,Vt,si,ji,cr,Jo,os,Pg,GE;return oA(this,(function(io){switch(io.label){case 0:this.logger.log("".concat(this.logPrefix,"updatePublishParams:"),B),T=this.publishParams,this.publishParams=B,Y=this._getCanvasSize(B.videoEncoderParams.videoResolution,B.videoEncoderParams.resMode),_=Y.width,b=Y.height,io.label=1;case 1:return io.trys.push([1,3,,4]),[4,this.trtc.updatePlugin("VideoMixer",{canvasInfo:{width:_,height:b,canvasColor:String(B.canvasColor)}})];case 2:return io.sent(),[3,4];case 3:if((AA=io.sent()).code!==z.default.ERROR_CODE.OPERATION_ABORT)throw AA;return[3,4];case 4:(Q=this.mediaMixingDesigner)===null||Q===void 0||Q.updateOptions({videoResolution:this.publishParams.videoEncoderParams.videoResolution,resMode:this.publishParams.videoEncoderParams.resMode}),io.label=5;case 5:io.trys.push([5,11,12,17]),nA=Qe(this.sourceList),io.label=6;case 6:return[4,nA.next()];case 7:return(fA=io.sent()).done?[3,10]:(dA=fA.value).layout?(YA=dA.layout.rect||{left:0,top:0,right:0,bottom:0},UA=YA.left,lA=YA.top,Ce=YA.right,xe=YA.bottom,Qt=this._getCanvasSize(T.videoEncoderParams.videoResolution),Le=Qt.width,Ne=Qt.height,Vt=this._getCanvasSize(B.videoEncoderParams.videoResolution),si=Vt.width,ji=Vt.height,cr=UA*si/Le,Jo=lA*ji/Ne,os=Ce*si/Le,Pg=xe*ji/Ne,dA.layout.rect={left:cr,top:Jo,right:os,bottom:Pg},[4,this.updateMediaSource(dA)]):[3,9];case 8:io.sent(),(p=this.eventEmitter)===null||p===void 0||p.emit("onSourceResized",dA,(m=dA.layout)===null||m===void 0?void 0:m.rect),io.label=9;case 9:return[3,6];case 10:return[3,17];case 11:return GE=io.sent(),D={error:GE},[3,17];case 12:return io.trys.push([12,,15,16]),fA&&!fA.done&&(E=nA.return)?[4,E.call(nA)]:[3,14];case 13:io.sent(),io.label=14;case 14:return[3,16];case 15:if(D)throw D.error;return[7];case 16:return[7];case 17:return[4,this.trtcCloud.setVideoEncoderParam(B.videoEncoderParams)];case 18:return io.sent(),[2]}}))}))},h.prototype.on=function(B,D){var E;(E=this.eventEmitter)===null||E===void 0||E.on(B,D)},h.prototype.off=function(B,D){var E;(E=this.eventEmitter)===null||E===void 0||E.off(B,D)},h.prototype.onVisibilityChange=function(){this.logger.log("".concat(this.logPrefix,"onVisibilityChange document.hidden:").concat(document.hidden)),document.hidden?this.bindPreviewArea(null):this.bindPreviewArea(this.view)},h.prototype.createDesigner=function(){var B,D;this.view&&(this.mediaMixingDesigner=new fC({view:this.view,videoResolution:((B=this.publishParams)===null||B===void 0?void 0:B.videoEncoderParams.videoResolution)||f.TRTCVideoResolution.TRTCVideoResolution_1920_1080,resMode:((D=this.publishParams)===null||D===void 0?void 0:D.videoEncoderParams.resMode)||f.TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape,canExceedContainer:!0,logger:this.logger}),this.listenDesignerEvent())},h.prototype.destroyDesigner=function(){var B;this.mediaMixingDesigner&&(this.unlistenDesignerEvent(),(B=this.mediaMixingDesigner)===null||B===void 0||B.destroy(),this.mediaMixingDesigner=null)},h.prototype.listenDesignerEvent=function(){var B,D,E,Q,p;(B=this.mediaMixingDesigner)===null||B===void 0||B.on("onError",this.onError),(D=this.mediaMixingDesigner)===null||D===void 0||D.on("onSourceSelected",this.onSourceSelected),(E=this.mediaMixingDesigner)===null||E===void 0||E.on("onSourceMoved",this.onSourceMoved),(Q=this.mediaMixingDesigner)===null||Q===void 0||Q.on("onSourceResized",this.onSourceResized),(p=this.mediaMixingDesigner)===null||p===void 0||p.on("onRightButtonClicked",this.onRightButtonClicked)},h.prototype.unlistenDesignerEvent=function(){var B,D,E,Q,p;(B=this.mediaMixingDesigner)===null||B===void 0||B.off("onError",this.onError),(D=this.mediaMixingDesigner)===null||D===void 0||D.off("onSourceSelected",this.onSourceSelected),(E=this.mediaMixingDesigner)===null||E===void 0||E.off("onSourceMoved",this.onSourceMoved),(Q=this.mediaMixingDesigner)===null||Q===void 0||Q.off("onSourceResized",this.onSourceResized),(p=this.mediaMixingDesigner)===null||p===void 0||p.off("onRightButtonClicked",this.onRightButtonClicked)},h.prototype.onError=function(B,D){this.logger.log("".concat(this.logPrefix,"onError:"),B,D)},h.prototype.onSourceSelected=function(B){var D;return sA(this,void 0,void 0,(function(){return oA(this,(function(E){switch(E.label){case 0:return this.logger.debug("".concat(this.logPrefix,"onSourceSelected: "),B,this.selectedSource),B&&this.selectedSource&&B.origin.id===this.selectedSource.id?[2]:B!=null&&B.origin?(this.updateMediaSource(rA(rA({},B.origin),{isSelected:!0})),[3,3]):[3,1];case 1:return this.selectedSource?[4,this.updateMediaSource(rA(rA({},this.selectedSource),{isSelected:!1}))]:[3,3];case 2:E.sent(),this.selectedSource=null,E.label=3;case 3:return(D=this.eventEmitter)===null||D===void 0||D.emit("onSourceSelected",B?B.origin:null),[2]}}))}))},h.prototype.onSourceMoved=function(B,D){var E,Q;if(this.logger.debug("".concat(this.logPrefix,"onSourceMoved:"),B,D),B==null?void 0:B.origin){var p=rA(rA({},B.origin),{layout:rA(rA({},B.origin.layout),{rect:D})});this.updateMediaSource(xa(p,{layout:{rect:this._getPluginMediaRect(p)}})),((E=this.selectedSource)===null||E===void 0?void 0:E.id)===B.origin.id&&(this.selectedSource=this.sourceList.find((function(m){return m.id===B.origin.id}))),(Q=this.eventEmitter)===null||Q===void 0||Q.emit("onSourceMoved",B.origin,this._getPluginMediaRect(p))}},h.prototype.onSourceResized=function(B,D){var E,Q;if(this.logger.debug("".concat(this.logPrefix,"onSourceResized:"),B,D),B==null?void 0:B.origin){var p=rA(rA({},B.origin),{layout:rA(rA({},B.origin.layout),{rect:D})});this.updateMediaSource(xa(p,{layout:{rect:this._getPluginMediaRect(p)}})),((E=this.selectedSource)===null||E===void 0?void 0:E.id)===B.origin.id&&(this.selectedSource=this.sourceList.find((function(m){return m.id===B.origin.id})))}(Q=this.eventEmitter)===null||Q===void 0||Q.emit("onSourceResized",B.origin,D)},h.prototype.onRightButtonClicked=function(B){var D;this.logger.debug("".concat(this.logPrefix,"onRightButtonClicked:"),B),(D=this.eventEmitter)===null||D===void 0||D.emit("onRightButtonClicked",B.origin)},h.prototype.isSameMediaSource=function(B,D){return B.id===D.id},h.prototype.isMediaSourceExisted=function(B){var D=this;return this.sourceList.some((function(E){return D.isSameMediaSource(E,B)}))},h.prototype.findMediaSourceIndex=function(B){return this.sourceList.findIndex((function(D){return D.id===B.id}))},h.prototype.unselectMediaSource=function(B){var D,E;return sA(this,void 0,Promise,(function(){var Q;return oA(this,(function(p){return B?((Q=this.findMediaSourceIndex(B))!==-1&&(this.sourceList[Q].isSelected=!1),(D=this.mediaMixingDesigner)===null||D===void 0||D.updateMedia({id:B.id,rect:(E=B.layout)===null||E===void 0?void 0:E.rect,isSelected:!1,origin:ig(B)}),[2]):[2]}))}))},h.mediaMixingManager=null,h})(),WR=Object.defineProperty,Md=Object.getOwnPropertySymbols,wC=Object.prototype.hasOwnProperty,kd=Object.prototype.propertyIsEnumerable,SC=(h,B,D)=>B in h?WR(h,B,{enumerable:!0,configurable:!0,writable:!0,value:D}):h[B]=D,Ui=(h,B)=>{for(var D in B||(B={}))wC.call(B,D)&&SC(h,D,B[D]);if(Md)for(var D of Md(B))kd.call(B,D)&&SC(h,D,B[D]);return h},HI=(h,B,D)=>SC(h,typeof B!="symbol"?B+"":B,D),ZR={x:{required:!0,type:"number"},y:{required:!0,type:"number"},width:{required:!0,type:"number",notLessThanZero:!0,min:1,max:3840},height:{required:!0,type:"number",notLessThanZero:!0,min:1,max:3840},zIndex:{required:!0,type:"number"},fillMode:{required:!1,type:"string"},mirror:{required:!1,type:"boolean"},rotation:{required:!1,type:"number"},hidden:{required:!1,type:"boolean"}},Dh=(h,B=!1)=>({type:"object",required:B,properties:{canvasColor:{required:!1,type:["string",CanvasGradient,CanvasPattern]},width:{required:!0,type:"number",notLessThanZero:!0,min:1,max:3840},height:{required:!0,type:"number",notLessThanZero:!0,min:1,max:3840},frameRate:{required:!1,type:"number",notLessThanZero:!0,min:1,max:60}},validate(D,E,Q){const{RtcError:p,ErrorCode:m,ErrorCodeDictionary:T}=h.errorModule;if(!D)return;const{width:Y,height:_}=D;if(Y&&_&&Y*_>8294400)throw new p({code:m.INVALID_PARAMETER,message:"The mix resolution cannot be set higher than 3840 * 2160."})}}),Nd=h=>({required:!1,type:["string",HTMLElement,null],validate(B,D,E){const{RtcError:Q,ErrorCode:p,ErrorCodeDictionary:m}=h.errorModule;if(h.utils.isString(B)&&!document.getElementById(B))throw new Q({code:p.INVALID_PARAMETER,extraCode:m.INVALID_ELEMENT_ID,fnName:E,messageParams:{key:D}})}}),SE=(h,B=!0)=>({type:"object",required:B,properties:Ui({},ZR),validate(D,E,Q){const{RtcError:p,ErrorCode:m,ErrorCodeDictionary:T}=h.errorModule;if(D){if(D.fillMode&&!["contain","cover","fill"].includes(D.fillMode))throw new p({code:m.INVALID_PARAMETER,extraCode:T.INVALID_PARAMETER_TYPE,message:"The fillMode parameter must be 'contain', 'cover' or 'fill'",fnName:Q});if(D.rotation&&![0,90,180,270].includes(D.rotation))throw new p({code:m.INVALID_PARAMETER,extraCode:T.INVALID_PARAMETER_TYPE,message:"The rotation parameter must be 0, 90, 180 or 270",fnName:Q})}}}),ph=h=>({type:"array",required:!1,arrayItem:{type:"object",properties:{id:{required:!0,type:"string"},cameraId:{required:!1,type:"string"},videoTrack:{required:!1,instanceof:MediaStreamTrack},profile:{required:!1,type:["string","object"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},layout:Ui({},SE(h))}}}),Wa=h=>({type:"array",required:!1,arrayItem:{type:"object",properties:{id:{required:!0,type:"string"},profile:{required:!1,type:["string","object"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},captureElement:{required:!1,type:HTMLElement},preferDisplaySurface:{required:!1,type:"string"},layout:Ui({},SE(h))},validate(B,D,E){const{RtcError:Q,ErrorCode:p,ErrorCodeDictionary:m}=h.errorModule;if(!h.rtcDectection.isScreenCaptureApiAvailable())throw new Q({code:p.ENV_NOT_SUPPORTED,fnName:E,extraCode:m.NOT_SUPPORTED_SCREEN_SHARE})}}}),Zo=h=>({type:"array",required:!1,arrayItem:{type:"object",properties:{id:{required:!0,type:"string"},content:{required:!0,type:"string"},font:{required:!1,type:"string"},color:{required:!1,type:["string",CanvasGradient,CanvasPattern]},layout:Ui({},SE(h))}}}),es=h=>({type:"array",required:!1,arrayItem:{type:"object",properties:{id:{required:!0,type:"string"},url:{required:!0,type:"string"},layout:Ui({},SE(h))}}}),OI=h=>({type:"array",required:!1,arrayItem:{type:"object",properties:{id:{required:!0,type:"string"},url:{required:!0,type:"string"},layout:Ui({},SE(h))}}}),ts=0,Fd=class dH{constructor(B){this.core=B,HI(this,"seq"),HI(this,"log"),HI(this,"localMixVideoTrack",null),HI(this,"systemAudioTrackList",{}),HI(this,"_mixVideoConfig"),HI(this,"onScreenShareStop"),ts+=1,this.seq=ts,this.log=B.log.createChild({id:`${this.getAlias()}${ts}`}),this.log.info("created")}getName(){return dH.Name}getAlias(){return"vmix"}getValidateRule(B){switch(B){case"start":return(function(D){return{name:"VideoMixerOptions",type:"object",required:!0,allowEmpty:!1,properties:{view:Ui({},Nd(D)),canvasInfo:Ui({},Dh(D,!0)),camera:Ui({},ph(D)),screen:Ui({},Wa(D)),text:Ui({},Zo(D)),image:Ui({},es(D)),video:Ui({},OI(D))},validate(E,Q,p,m){const{RtcError:T,ErrorCode:Y,ErrorCodeDictionary:_}=D.errorModule;if(D.environment.isMobile())throw new T({code:Y.ENV_NOT_SUPPORTED,message:"VideoMixer is not supported on mobile devices currently"});const{onScreenShareStop:b}=E;if(b&&!D.utils.isFunction(b))throw new T({code:Y.INVALID_PARAMETER,extraCode:_.INVALID_PARAMETER_TYPE,fnName:p,messageParams:{key:"onScreenShareStop",value:typeof b,rule:{type:"Function"}}})}}})(this.core);case"update":return(function(D){return{name:"VideoMixerOptions",type:"object",required:!1,allowEmpty:!1,properties:{view:Ui({},Nd(D)),canvasInfo:Ui({},Dh(D)),camera:Ui({},ph(D)),screen:Ui({},Wa(D)),text:Ui({},Zo(D)),image:Ui({},es(D)),video:Ui({},OI(D))}}})(this.core);case"stop":return this.core,{name:"StopVideoMixerOptions",required:!1}}}getGroup(){return"vmix"}async start(B){this.localMixVideoTrack||(this.localMixVideoTrack=new this.core.LocalMixVideoTrack(this.core.room.videoManager)),this._mixVideoConfig={canvasInfo:{width:1920,height:1080}},B=this.core.utils.deepCloneBasic(B);const{view:D,onScreenShareStop:E}=B,Q=await this.parseMixOptions(B);return E&&(this.onScreenShareStop=E,this._mixVideoConfig.onScreenShareStop=E),this._updatePreview({view:D,track:this.localMixVideoTrack}),this.core.utils.isUndefined(D)||(this._mixVideoConfig.view=D),await this.localMixVideoTrack.startMix(),{track:this.localMixVideoTrack._outputTrack,systemAudioTrackList:this.systemAudioTrackList,result:Q}}async update(B){const{RtcError:D,ErrorCode:E}=this.core.errorModule;if(!this.localMixVideoTrack)throw new D({code:E.INVALID_OPERATION,message:"mixTrack doesn't initialize!"});B=this.core.utils.deepCloneBasic(B);const{view:Q}=B,p=await this.parseMixOptions(B);return await this._updatePreview({view:Q,track:this.localMixVideoTrack,prevConfig:this._mixVideoConfig}),this.core.utils.isUndefined(Q)||(this._mixVideoConfig.view=Q),{track:this.localMixVideoTrack._outputTrack,systemAudioTrackList:this.systemAudioTrackList,result:p}}async parseMixOptions(B){let D={successOptions:{},failedDetails:[]};const{RtcError:E,ErrorCode:Q,ErrorCodeDictionary:p}=this.core.errorModule;if(!this.localMixVideoTrack||!this._mixVideoConfig)return D;const m=[],T=Ui({},B),{canvasInfo:Y,camera:_,screen:b,text:AA,image:nA,video:fA}=B;let dA=0,YA=0;if(Y){const{canvasColor:UA,width:lA,height:Ce,frameRate:xe}=Y;UA&&this.localMixVideoTrack.setMixBackground(UA),xe&&this.localMixVideoTrack.setFps(xe),this.localMixVideoTrack.resizeMixCanvas(lA,Ce),this._mixVideoConfig.canvasInfo=Y}if(_){dA++;const{finalOptions:UA,errors:lA}=await this.parseCameraOptions(this.localMixVideoTrack,_,this._mixVideoConfig.camera);this._mixVideoConfig.camera=UA,T.camera=UA,lA.length>0&&(m.push(...lA),lA.length===_.length&&YA++)}if(b){dA++;const{finalOptions:UA,errors:lA}=await this.parseScreenOptions(this.localMixVideoTrack,b,this._mixVideoConfig.screen);this._mixVideoConfig.screen=UA,T.screen=UA,lA.length>0&&(m.push(...lA),lA.length===b.length&&YA++)}if(AA){dA++;const{finalOptions:UA,errors:lA}=await this.parseTextOptions(this.localMixVideoTrack,AA,this._mixVideoConfig.text);this._mixVideoConfig.text=UA,T.text=UA,lA.length>0&&(m.push(...lA),lA.length===AA.length&&YA++)}if(nA){dA++;const{finalOptions:UA,errors:lA}=await this.parseImageOptions(this.localMixVideoTrack,nA,this._mixVideoConfig.image);this._mixVideoConfig.image=UA,T.image=UA,lA.length>0&&(m.push(...lA),lA.length===nA.length&&YA++)}if(fA){dA++;const{finalOptions:UA,errors:lA}=await this.parseVideoOptions(this.localMixVideoTrack,fA,this._mixVideoConfig.video);this._mixVideoConfig.video=UA,T.video=UA,lA.length>0&&(m.push(...lA),lA.length===fA.length&&YA++)}if(YA>0&&YA===dA)throw new E({code:Q.INVALID_PARAMETER,message:"all sources mix failed",data:{failedDetails:m}});return D={successOptions:T,failedDetails:m},D}async parseCameraOptions(B,D,E=[]){var Q,p;const m=new Set(D.map((AA=>AA.id))),T=E.filter((AA=>!m.has(AA.id))).map((AA=>AA.id));for(const AA of T)B.removeCameraSource(AA);const Y=new Map(E.map((AA=>[AA.id,AA]))),_=[],b=[];for(const AA of D){const{id:nA,layout:fA,profile:dA}=AA;try{if(B.inputLocalVideoTracks.has(nA)){const YA=(Q=B.inputLocalVideoTracks.get(nA))==null?void 0:Q.mediaTrack;await this.updateCameraProfile(AA);const UA=(p=B.inputLocalVideoTracks.get(nA))==null?void 0:p.mediaTrack;let lA;dA&&(lA=this.core.utils.isString(dA)?this.core.constants.videoProfileMap[dA]:dA),UA!==YA?B.updateCameraSource(nA,fA,UA,lA):B.updateCameraSource(nA,fA,null,lA)}else{const YA=await this.captureCamera(AA);try{B.addCameraSource(nA,YA,fA)}catch(UA){throw YA.close(),UA}}_.push(AA)}catch(YA){b.push({id:nA,error:YA}),Y.has(nA)&&_.push(Y.get(nA))}}return{finalOptions:_,errors:b}}async parseScreenOptions(B,D,E=[]){const Q=new Set(D.map((_=>_.id))),p=E.filter((_=>!Q.has(_.id))).map((_=>_.id));for(const _ of p)B.removeScreenSource(_);const m=new Map(E.map((_=>[_.id,_]))),T=[],Y=[];for(const _ of D){const{id:b,layout:AA}=_;try{if(B.inputLocalScreenTracks.has(b))B.updateScreenSource(b,AA);else{const nA=await this.captureScreen(_);try{B.addScreenSource(b,nA,AA)}catch(fA){throw nA.close(),fA}}T.push(_)}catch(nA){Y.push({id:b,error:nA}),m.has(b)&&T.push(m.get(b))}}return{finalOptions:T,errors:Y}}async parseTextOptions(B,D,E=[]){const Q=new Set(D.map((_=>_.id))),p=E.filter((_=>!Q.has(_.id))).map((_=>_.id));for(const _ of p)B.removeTextSource(_);const m=new Map(E.map((_=>[_.id,_]))),T=[],Y=[];for(const _ of D){const{id:b}=_;try{E.some((AA=>AA.id===b))?B.updateTextSource(_):B.addTextSource(_),T.push(_)}catch(AA){Y.push({id:b,error:AA}),m.has(b)&&T.push(m.get(b))}}return{finalOptions:T,errors:Y}}async parseImageOptions(B,D,E=[]){const Q=new Set(D.map((_=>_.id))),p=E.filter((_=>!Q.has(_.id))).map((_=>_.id));for(const _ of p)B.removeImageSource(_);const m=new Map(E.map((_=>[_.id,_]))),T=[],Y=[];for(const _ of D){const{id:b,url:AA,layout:nA}=_;try{const fA=E.find((dA=>dA.id===b));if(fA){let dA;fA.url!==AA&&(dA=await this.core.utils.loadImage(AA)),B.updateImageSource(b,nA,dA)}else{const dA=await this.core.utils.loadImage(AA);B.addImageSource(b,dA,nA)}T.push(_)}catch(fA){Y.push({id:b,error:fA}),m.has(b)&&T.push(m.get(b))}}return{finalOptions:T,errors:Y}}async parseVideoOptions(B,D,E=[]){const Q=new Set(D.map((_=>_.id))),p=E.filter((_=>!Q.has(_.id))).map((_=>_.id));for(const _ of p)B.removeVideoSource(_);const m=new Map(E.map((_=>[_.id,_]))),T=[],Y=[];for(const _ of D){const{id:b,url:AA,layout:nA}=_;try{const fA=E.find((YA=>YA.id===b));let dA;if(fA)fA.url!==AA&&(dA=await this.core.utils.loadVideo(AA)),B.updateVideoSource(b,nA,dA);else{const YA=await this.core.utils.loadVideo(AA);B.addVideoSource(b,YA,nA)}T.push(_)}catch(fA){Y.push({id:b,error:fA}),m.has(b)&&T.push(m.get(b))}}return{finalOptions:T,errors:Y}}async captureCamera(B){const{id:D,cameraId:E,videoTrack:Q,profile:p}=B,m=new this.core.LocalVideoTrack;m.log.id+=`-${D}`;const T={};return E?T.deviceId=E:this.core.utils.isUndefined(Q)||(T.customSource=Q),this.core.utils.isUndefined(p)||(this.core.utils.isString(p)?this.core.constants.videoProfileMap[p]&&m.setProfile(this.core.constants.videoProfileMap[p]):m.setProfile(p)),await m.capture(T),m}async updateCameraProfile(B){var D;const{id:E,cameraId:Q,videoTrack:p,profile:m}=B,T=(D=this.localMixVideoTrack)==null?void 0:D.inputLocalVideoTracks.get(E);T&&(Q?await T.switchDevice(Q):this.core.utils.isUndefined(p)||await T.setInputMediaStreamTrack(p),this.core.utils.isUndefined(m)||(this.core.utils.isString(m)?this.core.constants.videoProfileMap[m]&&T.setProfile(this.core.constants.videoProfileMap[m]):T.setProfile(m),Q&&T.isNeedToSwitchDevice(Q)||await T.applyProfile()))}async captureScreen(B){const{id:D,profile:E,captureElement:Q,preferDisplaySurface:p}=B,m=new this.core.LocalScreenTrack;m.log.id+=`-${D}`;const T={};this.core.utils.isUndefined(E)||(this.core.utils.isString(E)?this.core.constants.screenProfileMap[E]&&m.setProfile(this.core.constants.screenProfileMap[E]):m.setProfile(E)),Q&&(T.captureElement=Q),p&&(T.preferDisplaySurface=p),T.systemAudio=B.systemAudio;const Y=await m.capture(T);return T.systemAudio&&Y.getAudioTracks().length>0&&(this.systemAudioTrackList[D]=Y.getAudioTracks()[0]),m.mediaTrack.addEventListener(this.core.constants.NAME.ENDED,(()=>{var _,b,AA;(_=this.localMixVideoTrack)==null||_.removeScreenSource(D),(b=this._mixVideoConfig)!=null&&b.screen&&(this._mixVideoConfig.screen=this._mixVideoConfig.screen.filter((nA=>nA.id!==D))),(AA=this.onScreenShareStop)==null||AA.call(this,D)})),m}async _updatePreview({view:B,track:D,prevConfig:E}){if(this.core.utils.isUndefined(B)&&E&&E.view){const Q=this.core.utils.getViewListFromView(E.view);Q.length>0&&await D.play(Q)}if(!this.core.utils.isUndefined(B)){const Q=this.core.utils.getViewListFromView(B);Q.length>0?await D.play(Q):D.stop()}}stop(){var B;(B=this.localMixVideoTrack)==null||B.close(),this.localMixVideoTrack=null,delete this.onScreenShareStop,delete this._mixVideoConfig}};HI(Fd,"Name","VideoMixer");var Vr=Fd,Wr=(function(){function h(){this.isRunning=!1,this.queue=[]}return Object.defineProperty(h.prototype,"length",{get:function(){return this.queue.length},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"lastQueueItem",{get:function(){return this.length===0?null:this.queue[this.length-1]},enumerable:!1,configurable:!0}),h.prototype.push=function(B,D,E,Q){var p,m;D===void 0&&(D=!1),E===void 0&&(E=!1);var T=rA(rA({},B),{functionName:Q}),Y=new Promise((function(b,AA){T.resolve=b,T.reject=AA}));if(T.promise=Y,D)this.length<=1?this.queue.push(T):(m=(p=this.lastQueueItem)===null||p===void 0?void 0:p.promise)===null||m===void 0||m.then(T.resolve,T.reject);else{if(E&&Q&&this.queue.length>1){var _=[];this.queue=this.queue.filter((function(b,AA){return AA===0||b.functionName!==Q||(_.push(b),!1)})),_.forEach((function(b){b.reject(new Error("aborted by newer task"))}))}this.queue.push(T)}return this.isRunning||this.callNext(),Y},h.prototype.shift=function(){return this.queue.shift()},h.prototype.callNext=function(){var B=this;if(!this.isRunning&&this.length!==0){var D=this.queue[0],E=D.fn,Q=D.args,p=D.context,m=D.resolve,T=D.reject;this.isRunning=!0,E.apply(p,Q).then(m,T).finally((function(){B.isRunning=!1,B.shift(),B.callNext()}))}},h})(),vd=new WeakMap,to=new WeakMap,qI=new WeakMap;function PI(h,B){return B===void 0&&(B={}),function(D,E,Q){var p=Q.value,m=B.deduplicate,T=m!==void 0&&m;return Q.value=function(){for(var Y=[],_=0;_<arguments.length;_++)Y[_]=arguments[_];var b=h.apply(void 0,Y),AA=Array.isArray(b)?b:[b],nA=qI.get(this)||new Map;qI.set(this,nA);for(var fA=null,dA=0,YA=AA;dA<YA.length;dA++){var UA=YA[dA],lA=nA.get(UA);if(lA){fA=lA;break}}for(var Ce=fA||new Wr,xe=0,Qt=AA;xe<Qt.length;xe++)UA=Qt[xe],nA.set(UA,Ce);var Le=T?E:void 0;return Ce.push({fn:p,args:Y,context:this},!1,T,Le)},Q}}var Ra=z.default._loggerManager;Ra.info("TRTCCloud Version: ".concat(gh));var GC,Td,is,be="trtcCloud",Ud=1;navigator&&navigator.mediaDevices&&navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",(GC=function(){MC.size!==0&&Array.from(MC.values()).forEach((function(h){h.fn()}))},Td=30,function(){for(var h=this,B=[],D=0;D<arguments.length;D++)B[D]=arguments[D];is>0&&clearTimeout(is),is=window.setTimeout((function(){GC.apply(h,B),is=-1}),Td)}));var MC=new Map,_d=(function(h){function B(E){E===void 0&&(E={});var Q=h.call(this)||this;Q._version="",Q._frameWorkType=30,Q._component=0,Q._language=0,Q._networkProxy={},Q._localView=null,Q._autoRecvAudio=!0,Q._autoRecvVideo=!1,Q._localTestView=null,Q._isVideoPublish=!0,Q._localRenderParams={rotation:f.TRTCVideoRotation.TRTCVideoRotation0,fillMode:f.TRTCVideoFillMode.TRTCVideoFillMode_Fill,mirrorType:f.TRTCVideoMirrorType.TRTCVideoMirrorType_Auto},Q._encoderMirror=void 0,Q._videoProfile={},Q._isAudioPublish=!0,Q._audioProfile=z.default.TYPE.AUDIO_PROFILE_STANDARD,Q._captureVolume=100,Q._playoutVolume=100,Q._isSharingScreen=!1,Q._remoteStreamConfig=new Map,Q._remoteStreamMap=new Map,Q._cameraList=[],Q._microphoneList=[],Q._speakerList=[],Q._currentCamera={},Q._currentMicrophone={},Q._currentSpeaker={},Q._currentCameraId="",Q._currentMicrophoneId="",Q._currentSpeakerId="",Q._screenShareParams={option:{}},Q._isMobile=Ah,Q._isFrontCamera=!0,Q._cameraVideoTrack=null,Q._smallStreamVideoProfile=void 0,Q._qosPreference=void 0,Q._defaultVideoProfile={width:640,height:480,frameRate:15,bitrate:900},Q._defaultScreenProfile={width:1920,height:1080,frameRate:15,bitrate:1500},Q._defaultSmallVideoProfile={width:160,height:120,frameRate:15,bitrate:200},Q._isVirtualBackground=!1,Q._isTestVirtualBackground=!1,Q._isBeautyEnabled=!1,Q._isTestBeautyEnabled=!1,Q._remoteStatisticsUserIdList=[],Q._hasJoinedRoom=!1,Q._isExitingRoom=!1,Q._version=gh;var p=E.frameWorkType,m=p===void 0?30:p,T=E.component,Y=T===void 0?0:T,_=E.language,b=_===void 0?0:_;return Q._frameWorkType=m,Q._component=Y,Q._language=b,Q._trtc=z.default.create({enableSEI:B.enableSEI,assetsPath:B.assetsPath,enableVolumeControlInIOS:!0,plugins:[Vr,qR]}),Q._testTrtc=z.default.create(),Q._log=z.default._loggerManager,Q.logger=new pa(Ra,{seq:Ud++}),Q._echoCancellation=void 0,Q._noiseSuppression=void 0,Q._autoGainControl=void 0,Q._addTRTCEvents(),Q.handleDeviceChange=Q.handleDeviceChange.bind(Q),MC.set(Q,{fn:Q.handleDeviceChange,self:Q}),Q}var D;return(function(E,Q){if(typeof Q!="function"&&Q!==null)throw new TypeError("Class extends value "+String(Q)+" is not a constructor or null");function p(){this.constructor=E}FA(E,Q),E.prototype=Q===null?Object.create(Q):(p.prototype=Q.prototype,new p)})(B,h),B.getPlugin=function(E){return E==="VirtualBackground"?x.VirtualBackground:E==="BasicBeauty"?hh:E==="VideoMixer"?Vr:null},B.getTRTCShareInstance=function(E){return B.shareInstance||(B.shareInstance=new B(E)),B.shareInstance},B.setLogLevel=function(E,Q){var p,m=((p={})[f.TRTCLogLevel.TRTCLogLevelVerbose]=0,p[f.TRTCLogLevel.TRTCLogLevelDebug]=1,p[f.TRTCLogLevel.TRTCLogLevelInfo]=2,p[f.TRTCLogLevel.TRTCLogLevelWarn]=3,p[f.TRTCLogLevel.TRTCLogLevelError]=4,p[f.TRTCLogLevel.TRTCLogLevelFatal]=4,p[f.TRTCLogLevel.TRTCLogLevelNone]=5,p),T=m[E];ri(T)&&(T=m[f.TRTCLogLevel.TRTCLogLevelInfo]);var Y=!tg(Q)||Q;z.default.setLogLevel(T,Y)},B.destroyTRTCShareInstance=function(){B.shareInstance&&(B.shareInstance._destroy(),B.shareInstance=null),Array.from(B.subCloudMap.keys()).forEach((function(E){return E._destroy()}))},B.callExperimentalAPI=function(E){console.log("static ".concat(be,".callExperimentalAPI"),E);var Q=ar(E);if(Q!==E){var p=Q.api,m=Q.params;if(p&&m)try{switch(p){case"enableSEI":B.enableSEI=m.enable;break;case"setAssetsPath":B.assetsPath=m.assetsPath}}catch(T){throw T}}},B.prototype.createSubCloud=function(){if(this!==B.shareInstance)return null;var E=new B;return this._inheritPropertiesToSubCloud(E),this._inheritEventsToSubCloud(E),B.subCloudMap.set(E,E),E},B.prototype.destroy=function(){this!==B.shareInstance?(B.subCloudMap.get(this)&&B.subCloudMap.delete(this),this._destroy()):B.destroyTRTCShareInstance()},B.prototype._destroy=function(){MC.delete(this),this.removeAllListeners(),this._trtc.off("*"),this._trtc.destroy(),this._trtc=null,this._testTrtc.off("*"),this._testTrtc.destroy(),this._testTrtc=null},B.prototype.getSDKVersion=function(){return this._version||""},B.prototype.enterRoom=function(E,Q){return sA(this,void 0,Promise,(function(){var p,m,T,Y,_,b,AA,nA,fA,dA,YA,UA,lA,Ce,xe,Qt,Le,Ne;return oA(this,(function(Vt){switch(Vt.label){case 0:if(p=E.sdkAppId,m=E.userId,T=E.userSig,Y=E.roomId,_=E.strRoomId,b=E.role,AA=E.privateMapKey,nA=E.businessInfo,fA=E.enableAutoPlayDialog,dA=E.proxy,YA=E.streamId,UA=E.userDefineRecordId,this.logger.update({sdkAppId:p,userId:m}),this.logger.info("".concat(be,".enterRoom with params: "),E,Q),dA&&(this._networkProxy=dA),!(p&&m&&T))return[3,5];Vt.label=1;case 1:return Vt.trys.push([1,3,,4]),lA={sdkAppId:p,userId:m,userSig:T,roomId:Y,strRoomId:_,role:xg[b],scene:Ps[Q],autoReceiveAudio:this._autoRecvAudio,autoReceiveVideo:this._autoRecvVideo,frameWorkType:this._frameWorkType,component:this._component,language:this._language},lA=AA?rA(rA({},lA),{privateMapKey:AA}):lA,lA=nA?rA(rA({},lA),{businessInfo:nA}):lA,Ce=fA||this._enableAutoPlayDialog,lA=tg(Ce)?rA(rA({},lA),{enableAutoPlayDialog:Ce}):lA,lA=this._networkProxy?rA(rA({},lA),{proxy:this._networkProxy}):lA,lA=YA?rA(rA({},lA),{streamId:YA}):lA,lA=UA?rA(rA({},lA),{userDefineRecordId:UA}):lA,lA=this._latencyLevel!==void 0?rA(rA({},lA),{latencyLevel:this._latencyLevel}):lA,xe=DI(),[4,this._trtc.enterRoom(lA)];case 2:return Vt.sent(),this._hasJoinedRoom=!0,Qt=DI()-xe,this.emit("onEnterRoom",Qt),[3,4];case 3:return Le=Vt.sent(),Ne=(Ne=this._transformTRTCErrorCode(Le,"enterRoom"))<0?Ne:-1,this.emit("onEnterRoom",Ne),this._callFunctionErrorManage(Le,"enterRoom"),[3,4];case 4:return[3,6];case 5:this._emitError(Va),Vt.label=6;case 6:return[2]}}))}))},B.prototype.exitRoom=function(){return sA(this,void 0,Promise,(function(){var E;return oA(this,(function(Q){switch(Q.label){case 0:return Q.trys.push([0,2,,3]),this.logger.info("".concat(be,".exitRoom")),this._isExitingRoom=!0,this._isSharingScreen&&this.stopScreenShare(),this.resetTRTCCloud(),this.stopLocalPreview(),this.stopLocalAudio(),[4,this._trtc.exitRoom()];case 1:return Q.sent(),this._hasJoinedRoom=!1,this._isExitingRoom=!1,this._isVideoPublish=!0,this._isAudioPublish=!0,this.emit("onExitRoom",bI.exitRoom),[3,3];case 2:return E=Q.sent(),this._callFunctionErrorManage(E,"exitRoom"),[3,3];case 3:return[2]}}))}))},B.prototype.switchRole=function(E){return sA(this,void 0,void 0,(function(){var Q;return oA(this,(function(p){switch(p.label){case 0:this.logger.info("".concat(be,".switchRole with param: "),E),p.label=1;case 1:return p.trys.push([1,3,,4]),[4,this._trtc.switchRole(xg[E])];case 2:return p.sent(),this.emit("onSwitchRole",0,"switch role success, role = ".concat(E,", ").concat(xg[E])),[3,4];case 3:return Q=p.sent(),this.emit("onSwitchRole",Q==null?void 0:Q.getCode(),Q.message),[3,4];case 4:return[2]}}))}))},B.prototype.setDefaultStreamRecvMode=function(E,Q){return sA(this,void 0,void 0,(function(){return oA(this,(function(p){return this.logger.info("".concat(be,".setDefaultStreamRecvMode with param: "),{autoRecvAudio:E,autoRecvVideo:Q}),tg(E)&&(this._autoRecvAudio=E),tg(Q)&&(this._autoRecvVideo=Q),[2]}))}))},B.prototype.resetTRTCCloud=function(){this._setIsAudioPublish(!0),this._echoCancellation=void 0,this._noiseSuppression=void 0,this._autoGainControl=void 0,this._isVirtualBackground=!1,this._isTestVirtualBackground=!1,this._remoteStatisticsUserIdList=[],this._resetBeautyStyle()},B.prototype._updateLocalVideo=function(){return sA(this,void 0,void 0,(function(){var E;return oA(this,(function(Q){switch(Q.label){case 0:return Q.trys.push([0,2,,3]),[4,this._trtc.updateLocalVideo(this._generateLocalVideoData())];case 1:return Q.sent(),[3,3];case 2:if((E=Q.sent()).code!==z.default.ERROR_CODE.OPERATION_ABORT)throw E;return[3,3];case 3:return[2]}}))}))},B.prototype._updateLocalTestVideo=function(){return sA(this,void 0,void 0,(function(){var E;return oA(this,(function(Q){switch(Q.label){case 0:return Q.trys.push([0,2,,3]),[4,this._testTrtc.updateLocalVideo(this._generateLocalTestVideoData())];case 1:return Q.sent(),[3,3];case 2:if((E=Q.sent()).code!==z.default.ERROR_CODE.OPERATION_ABORT)throw E;return[3,3];case 3:return[2]}}))}))},B.prototype._updateLocalScreen=function(){return sA(this,void 0,void 0,(function(){var E;return oA(this,(function(Q){switch(Q.label){case 0:return Q.trys.push([0,2,,3]),[4,this._trtc.updateScreenShare(this._getScreenShareParams())];case 1:return Q.sent(),[3,3];case 2:if((E=Q.sent()).code!==z.default.ERROR_CODE.OPERATION_ABORT)throw E;return[3,3];case 3:return[2]}}))}))},B.prototype._updateRemoteVideo=function(E,Q){return sA(this,void 0,void 0,(function(){var p;return oA(this,(function(m){switch(m.label){case 0:if(!this._hasJoinedRoom||this._isExitingRoom)return[2];m.label=1;case 1:return m.trys.push([1,3,,4]),[4,this._trtc.updateRemoteVideo(this._generateRemoteVideoData(E,Q))];case 2:return m.sent(),[3,4];case 3:if((p=m.sent()).code!==z.default.ERROR_CODE.OPERATION_ABORT)throw p;return[3,4];case 4:return[2]}}))}))},B.prototype.startLocalPreview=function(){for(var E=[],Q=0;Q<arguments.length;Q++)E[Q]=arguments[Q];return sA(this,void 0,Promise,(function(){var p,m,T,Y,_;return oA(this,(function(b){switch(b.label){case 0:this.logger.info("".concat(be,".startLocalPreview with params: "),E),KA([],E).length===1?m=KA([],E)[0]:KA([],E).length===2&&(_=KA([],E),p=_[0],m=_[1]),ri(p)||(this._setIsMobile(!0),this._setIsFrontCamera(p)),this._setLocalView(m),b.label=1;case 1:b.trys.push([1,9,,10]),b.label=2;case 2:return b.trys.push([2,4,,8]),[4,this._trtc.startLocalVideo(this._generateLocalVideoData())];case 3:return b.sent(),[3,8];case 4:return(T=b.sent()).code!==z.default.ERROR_CODE.OPERATION_ABORT?[3,6]:[4,this._updateLocalVideo()];case 5:return b.sent(),[3,7];case 6:throw T;case 7:return[3,8];case 8:return this.emit("onCameraDidReady"),[3,10];case 9:return Y=b.sent(),this._callFunctionErrorManage(Y,"startLocalPreview"),[3,10];case 10:return[2]}}))}))},B.prototype.updateLocalView=function(E){return sA(this,void 0,void 0,(function(){return oA(this,(function(Q){switch(Q.label){case 0:return this.logger.info("".concat(be,".updateLocalView with param: "),E),this._setLocalView(E),[4,this._updateLocalVideo()];case 1:return Q.sent(),[2]}}))}))},B.prototype.stopLocalPreview=function(){return sA(this,void 0,void 0,(function(){var E;return oA(this,(function(Q){switch(Q.label){case 0:this.logger.info("".concat(be,".stopLocalPreview")),Q.label=1;case 1:return Q.trys.push([1,3,,4]),this._setLocalView(null),[4,this._trtc.stopLocalVideo()];case 2:return Q.sent(),[3,4];case 3:return E=Q.sent(),console.warn("".concat(be," stopLocalPreview error: ").concat(E)),this._callFunctionErrorManage(E,"stopLocalPreview"),[3,4];case 4:return[2]}}))}))},B.prototype.muteLocalVideo=function(E){return E===void 0&&(E=!1),sA(this,void 0,void 0,(function(){var Q;return oA(this,(function(p){switch(p.label){case 0:this.logger.info("".concat(be,".muteLocalVideo with params: "),E),p.label=1;case 1:return p.trys.push([1,3,,4]),this._setIsVideoPublish(!E),[4,this._updateLocalVideo()];case 2:return p.sent(),[3,4];case 3:return Q=p.sent(),this._callFunctionErrorManage(Q,"muteLocalVideo"),[3,4];case 4:return[2]}}))}))},B.prototype.startRemoteView=function(E,Q,p){return sA(this,void 0,void 0,(function(){var m,T;return oA(this,(function(Y){switch(Y.label){case 0:this.logger.info("".concat(be,".startRemoteView with params: "),E,Q,p),Y.label=1;case 1:if(Y.trys.push([1,9,,10]),this._setRemoteStreamConfig(E,p,{view:Q,small:p===f.TRTCVideoStreamType.TRTCVideoStreamTypeSmall}),!this._remoteStreamMap.get("".concat(E,"_").concat(this._getTRTCStreamType(p))))return[2];Y.label=2;case 2:return Y.trys.push([2,4,,8]),[4,this._trtc.startRemoteVideo(this._generateRemoteVideoData(E,p))];case 3:return Y.sent(),[3,8];case 4:return(m=Y.sent()).code!==z.default.ERROR_CODE.OPERATION_ABORT?[3,6]:[4,this._updateRemoteVideo(E,p)];case 5:return Y.sent(),[3,7];case 6:throw m;case 7:return[3,8];case 8:return[3,10];case 9:return T=Y.sent(),this._callFunctionErrorManage(T,"startRemoteView"),[3,10];case 10:return[2]}}))}))},B.prototype.updateRemoteView=function(E,Q,p){return sA(this,void 0,void 0,(function(){return oA(this,(function(m){switch(m.label){case 0:return this.logger.info("".concat(be,".updateRemoteView with params: "),E,Q,p),this._setRemoteStreamConfig(E,p,{view:Q}),this._remoteStreamMap.get("".concat(E,"_").concat(this._getTRTCStreamType(p)))?[4,this._updateRemoteVideo(E,p)]:[2];case 1:return m.sent(),[2]}}))}))},B.prototype.stopRemoteView=function(E,Q){return sA(this,void 0,void 0,(function(){var p;return oA(this,(function(m){switch(m.label){case 0:this.logger.info("".concat(be,".stopRemoteView with params: "),E,Q),m.label=1;case 1:return m.trys.push([1,3,,4]),[4,this._trtc.stopRemoteVideo({userId:E,streamType:this._getTRTCStreamType(Q)})];case 2:return m.sent(),[3,4];case 3:return p=m.sent(),this._callFunctionErrorManage(p,"stopRemoteView"),[3,4];case 4:return[2]}}))}))},B.prototype.stopAllRemoteView=function(){return sA(this,void 0,void 0,(function(){var E;return oA(this,(function(Q){switch(Q.label){case 0:this.logger.info("".concat(be,".stopAllRemoteView")),Q.label=1;case 1:return Q.trys.push([1,3,,4]),[4,this._trtc.stopRemoteVideo({userId:"*"})];case 2:return Q.sent(),[3,4];case 3:return E=Q.sent(),this._callFunctionErrorManage(E,"stopAllRemoteView"),[3,4];case 4:return[2]}}))}))},B.prototype.setVideoEncoderParam=function(E){return sA(this,void 0,void 0,(function(){var Q,p;return oA(this,(function(m){switch(m.label){case 0:this.logger.info("".concat(be,".setVideoEncoderParam with params: "),E),m.label=1;case 1:return m.trys.push([1,4,,5]),Q=this._getTRTCVideoProfile(f.TRTCVideoStreamType.TRTCVideoStreamTypeBig,E),this._setVideoProfile(Q),[4,this._updateLocalVideo()];case 2:return m.sent(),[4,this._updateLocalTestVideo()];case 3:return m.sent(),[3,5];case 4:return p=m.sent(),this._callFunctionErrorManage(p,"setVideoEncoderParam"),[3,5];case 5:return[2]}}))}))},B.prototype.setNetworkQosParam=function(E){return sA(this,void 0,void 0,(function(){var Q,p,m=this;return oA(this,(function(T){return this.logger.info("".concat(be,".setNetworkQosParam with params: "),E),Q=E.preference,p=this._getTRTCQosPreference(Q),this._setQosPreference(p),this._setScreenShareParams({qosPreference:p}),[2,new Promise((function(Y,_){Promise.all([m._updateLocalVideo(),m._updateLocalScreen()]).then((function(){Y(!0)})).catch((function(b){m._callFunctionErrorManage(b,"setNetworkQosParam"),_(b)}))}))]}))}))},B.prototype.setLocalRenderParams=function(E){return sA(this,void 0,void 0,(function(){var Q;return oA(this,(function(p){switch(p.label){case 0:this.logger.info("".concat(be,".setLocalRenderParams with params: "),E),Object.assign(this._localRenderParams,E),p.label=1;case 1:return p.trys.push([1,4,,5]),[4,this._updateLocalVideo()];case 2:return p.sent(),[4,this._updateLocalTestVideo()];case 3:return p.sent(),[3,5];case 4:return Q=p.sent(),this._callFunctionErrorManage(Q,"setLocalRenderParams"),[3,5];case 5:return[2]}}))}))},B.prototype.setVideoEncoderMirror=function(E){return sA(this,void 0,void 0,(function(){var Q;return oA(this,(function(p){switch(p.label){case 0:this.logger.info("".concat(be,".setVideoEncoderMirror with params: "),E),this._encoderMirror=E,p.label=1;case 1:return p.trys.push([1,3,,4]),[4,this._updateLocalVideo()];case 2:return p.sent(),[3,4];case 3:return Q=p.sent(),this._callFunctionErrorManage(Q,"setVideoEncoderMirror"),[3,4];case 4:return[2]}}))}))},B.prototype.setRemoteRenderParams=function(E,Q,p){return sA(this,void 0,void 0,(function(){var m;return oA(this,(function(T){switch(T.label){case 0:this.logger.info("".concat(be,".setRemoteRenderParams with params: "),E,Q,p),T.label=1;case 1:return T.trys.push([1,3,,4]),this._setRemoteStreamConfig(E,Q,p),[4,this._updateRemoteVideo(E,Q)];case 2:return T.sent(),[3,4];case 3:return m=T.sent(),this._callFunctionErrorManage(m,"setRemoteRenderParams"),[3,4];case 4:return[2]}}))}))},B.prototype._updateLocalAudio=function(){return sA(this,void 0,void 0,(function(){var E;return oA(this,(function(Q){switch(Q.label){case 0:return Q.trys.push([0,2,,3]),[4,this._trtc.updateLocalAudio(this._generateLocalAudioData())];case 1:return Q.sent(),[3,3];case 2:if((E=Q.sent()).code!==z.default.ERROR_CODE.OPERATION_ABORT)throw E;return[3,3];case 3:return[2]}}))}))},B.prototype._updateLocalTestAudio=function(){return sA(this,void 0,void 0,(function(){var E;return oA(this,(function(Q){switch(Q.label){case 0:return Q.trys.push([0,2,,3]),[4,this._testTrtc.updateLocalAudio(this._generateLocalTestAudioData())];case 1:return Q.sent(),[3,3];case 2:if((E=Q.sent()).code!==z.default.ERROR_CODE.OPERATION_ABORT)throw E;return[3,3];case 3:return[2]}}))}))},B.prototype.startLocalAudio=function(E){return E===void 0&&(E=f.TRTCAudioQuality.TRTCAudioQualityDefault),sA(this,void 0,void 0,(function(){var Q,p,m;return oA(this,(function(T){switch(T.label){case 0:E===f.TRTCAudioQuality.TRTCAudioQualitySpeech?this.logger.warn("Web trtcCloud not support audioQuality of TRTCAudioQualitySpeech, and will use TRTCAudioQualityDefault"):this.logger.info("".concat(be,".startLocalAudio with params: "),E),Q=this._getTRTCAudioQuality(E),T.label=1;case 1:T.trys.push([1,9,,10]),this._setAudioProfile(Q),T.label=2;case 2:return T.trys.push([2,4,,8]),[4,this._trtc.startLocalAudio(this._generateLocalAudioData())];case 3:return T.sent(),[3,8];case 4:return(p=T.sent()).code!==z.default.ERROR_CODE.OPERATION_ABORT?[3,6]:[4,this._updateLocalAudio()];case 5:return T.sent(),[3,7];case 6:throw p;case 7:return[3,8];case 8:return this.emit("onMicDidReady"),[3,10];case 9:return m=T.sent(),console.warn("".concat(be," startLocalAudio error: ").concat(m)),this._callFunctionErrorManage(m,"startLocalAudio"),[3,10];case 10:return[2]}}))}))},B.prototype.stopLocalAudio=function(){return sA(this,void 0,void 0,(function(){var E;return oA(this,(function(Q){switch(Q.label){case 0:this.logger.info("".concat(be,".stopLocalAudio")),Q.label=1;case 1:return Q.trys.push([1,3,,4]),[4,this._trtc.stopLocalAudio()];case 2:return Q.sent(),[3,4];case 3:return E=Q.sent(),this._callFunctionErrorManage(E,"stopLocalAudio"),[3,4];case 4:return[2]}}))}))},B.prototype.muteLocalAudio=function(E){return E===void 0&&(E=!1),sA(this,void 0,void 0,(function(){var Q;return oA(this,(function(p){switch(p.label){case 0:this.logger.info("".concat(be,".muteLocalAudio with params: "),E),p.label=1;case 1:return p.trys.push([1,3,,4]),this._setIsAudioPublish(!E),[4,this._updateLocalAudio()];case 2:return p.sent(),[3,4];case 3:return Q=p.sent(),this._callFunctionErrorManage(Q,"muteLocalAudio"),[3,4];case 4:return[2]}}))}))},B.prototype.setAudioCaptureVolume=function(E){return sA(this,void 0,void 0,(function(){var Q;return oA(this,(function(p){switch(p.label){case 0:this.logger.info("".concat(be,".setAudioCaptureVolume with params: "),E),p.label=1;case 1:return p.trys.push([1,3,,4]),this._setCaptureVolume(E),[4,this._updateLocalAudio()];case 2:return p.sent(),[3,4];case 3:return Q=p.sent(),this._callFunctionErrorManage(Q,"setAudioCaptureVolume"),[3,4];case 4:return[2]}}))}))},B.prototype.getAudioCaptureVolume=function(){return this.logger.info("".concat(be,".getAudioCaptureVolume")),this._getCaptureVolume()},B.prototype.setAudioPlayoutVolume=function(E){return sA(this,void 0,void 0,(function(){var Q;return oA(this,(function(p){switch(p.label){case 0:this.logger.info("".concat(be,".setAudioPlayoutVolume with params: "),E),p.label=1;case 1:return p.trys.push([1,3,,4]),this._playoutVolume=E,[4,this._trtc.setRemoteAudioVolume("*",E)];case 2:return p.sent(),[3,4];case 3:return Q=p.sent(),this._callFunctionErrorManage(Q,"setAudioPlayoutVolume"),[3,4];case 4:return[2]}}))}))},B.prototype.getAudioPlayoutVolume=function(){return this.logger.info("".concat(be,".getAudioPlayoutVolume")),this._playoutVolume},B.prototype.muteRemoteAudio=function(E,Q){return Q===void 0&&(Q=!1),sA(this,void 0,void 0,(function(){var p;return oA(this,(function(m){switch(m.label){case 0:this.logger.info("".concat(be,".muteRemoteAudio with params: "),E,Q),m.label=1;case 1:return m.trys.push([1,3,,4]),E?[4,this._trtc.muteRemoteAudio(E,Q)]:(this._emitError(Va),[2]);case 2:return m.sent(),[3,4];case 3:return p=m.sent(),this._callFunctionErrorManage(p,"muteRemoteAudio"),[3,4];case 4:return[2]}}))}))},B.prototype.muteAllRemoteAudio=function(E){this.logger.info("".concat(be,".muteAllRemoteAudio with params: "),E);try{this._trtc.muteRemoteAudio("*",E)}catch(Q){this._callFunctionErrorManage(Q,"muteAllRemoteAudio")}},B.prototype.muteRemoteVideoStream=function(E,Q,p){return sA(this,void 0,void 0,(function(){var m;return oA(this,(function(T){switch(T.label){case 0:this.logger.info("".concat(be,".muteRemoteVideoStream with params: "),E,Q,p),T.label=1;case 1:return T.trys.push([1,3,,4]),[4,this._trtc.updateRemoteVideo({userId:E,mute:Q,streamType:this._getTRTCStreamType(p)})];case 2:return T.sent(),[3,4];case 3:return m=T.sent(),this._callFunctionErrorManage(m,"muteRemoteVideoStream"),[3,4];case 4:return[2]}}))}))},B.prototype.muteAllRemoteVideoStreams=function(E){return sA(this,void 0,void 0,(function(){var Q;return oA(this,(function(p){switch(p.label){case 0:this.logger.info("".concat(be,".muteAllRemoteVideoStreams with params: "),E),p.label=1;case 1:return p.trys.push([1,6,,7]),E?[4,this._trtc.callExperimentalAPI("pauseRemotePlayer",{userId:"*"})]:[3,3];case 2:return p.sent(),[3,5];case 3:return[4,this._trtc.callExperimentalAPI("resumeRemotePlayer",{userId:"*"})];case 4:p.sent(),p.label=5;case 5:return[3,7];case 6:return Q=p.sent(),this._callFunctionErrorManage(Q,"muteAllRemoteVideoStreams"),[3,7];case 7:return[2]}}))}))},B.prototype.setRemoteAudioVolume=function(E,Q){this.logger.info("".concat(be,".setRemoteAudioVolume with params: "),E,Q);try{this._trtc.setRemoteAudioVolume(E,Q)}catch(p){this._callFunctionErrorManage(p,"setRemoteAudioVolume")}},B.prototype.enableAudioVolumeEvaluation=function(E){this.logger.info("".concat(be,".enableAudioVolumeEvaluation with params: "),E);try{this._trtc.enableAudioVolumeEvaluation(E)}catch(Q){this._callFunctionErrorManage(Q,"enableAudioVolumeEvaluation")}},B.prototype.enableSmallVideoStream=function(E,Q){return sA(this,void 0,Promise,(function(){var p;return oA(this,(function(m){switch(m.label){case 0:return this.logger.info("".concat(be,".enableSmallVideoStream with params: "),E,Q),E?(p=this._getTRTCVideoProfile(f.TRTCVideoStreamType.TRTCVideoStreamTypeSmall,Q),this._setSmallStreamVideoProfile(p)):this._setSmallStreamVideoProfile(void 0),[4,this._updateLocalVideo()];case 1:return m.sent(),[2]}}))}))},B.prototype.snapshotVideo=function(E,Q){var p="";return p=E===""&&Q===f.TRTCVideoStreamType.TRTCVideoStreamTypeBig?this._trtc.getVideoSnapshot():E===""&&Q===f.TRTCVideoStreamType.TRTCVideoStreamTypeSub?this._trtc.getVideoSnapshot({streamType:this._getTRTCStreamType(Q)}):this._trtc.getVideoSnapshot({userId:E,streamType:this._getTRTCStreamType(Q)}),this.emit("onSnapshotComplete",E,Q,p),p},B.prototype.startScreenShare=function(E,Q,p){return sA(this,void 0,void 0,(function(){var m,T,Y,_,b,AA;return oA(this,(function(nA){switch(nA.label){case 0:this.logger.info("".concat(be,".startScreenShare with params: "),E,Q,p),nA.label=1;case 1:return nA.trys.push([1,3,,4]),T=(m=p||{}).screenAudio,Y=T!==void 0&&T,_=m.videoTrack,b=this._getTRTCVideoProfile(f.TRTCVideoStreamType.TRTCVideoStreamTypeSub,p),this._setScreenShareParams({view:E,profile:b,systemAudio:Y,videoTrack:_}),[4,this._trtc.startScreenShare(this._getScreenShareParams())];case 2:return nA.sent(),this._isSharingScreen=!0,[3,4];case 3:if((AA=nA.sent()).code!==z.default.ERROR_CODE.OPERATION_ABORT)throw console.error("Start share screen error:",AA,AA.code,AA.name,AA.message),AA;return[3,4];case 4:return[2]}}))}))},B.prototype.setSubStreamEncoderParam=function(E){return sA(this,void 0,void 0,(function(){var Q,p;return oA(this,(function(m){switch(m.label){case 0:this.logger.info("".concat(be,".setSubStreamEncoderParam with params: "),E),Q=this._getTRTCVideoProfile(f.TRTCVideoStreamType.TRTCVideoStreamTypeSub,E),this._setScreenShareParams({profile:Q}),m.label=1;case 1:return m.trys.push([1,3,,4]),[4,this._updateLocalScreen()];case 2:return m.sent(),[3,4];case 3:return p=m.sent(),this._callFunctionErrorManage(p,"setSubStreamEncoderParam"),[3,4];case 4:return[2]}}))}))},B.prototype.stopScreenShare=function(){return sA(this,void 0,Promise,(function(){var E;return oA(this,(function(Q){switch(Q.label){case 0:this.logger.info("".concat(be,".stopScreenShare")),Q.label=1;case 1:return Q.trys.push([1,3,,4]),[4,this._trtc.stopScreenShare()];case 2:return Q.sent(),this._clearScreenShareParams(),this._isSharingScreen=!1,this.emit("onScreenCaptureStopped",0),[3,4];case 3:return E=Q.sent(),this._callFunctionErrorManage(E,"stopScreenShare"),[3,4];case 4:return[2]}}))}))},B.prototype._startPublishVideoTrack=function(E){var Q=E.videoTrack;return sA(this,void 0,void 0,(function(){var p;return oA(this,(function(m){switch(m.label){case 0:this._cameraVideoTrack=Q,m.label=1;case 1:m.trys.push([1,6,,7]),m.label=2;case 2:return m.trys.push([2,4,,5]),[4,this._trtc.startLocalVideo(this._generateLocalVideoData())];case 3:return m.sent(),[3,5];case 4:throw m.sent();case 5:return[3,7];case 6:return p=m.sent(),this._callFunctionErrorManage(p,"startPublishVideoTrack"),[3,7];case 7:return[2]}}))}))},B.prototype._stopPublishVideoTrack=function(){return sA(this,void 0,void 0,(function(){return oA(this,(function(E){switch(E.label){case 0:return this._cameraVideoTrack=null,[4,this._trtc.stopLocalVideo()];case 1:return E.sent(),[2]}}))}))},B.prototype.startScreenCapture=function(){this._emitError(jn)},B.prototype.pauseScreenCapture=function(){this._emitError(jn)},B.prototype.resumeScreenCapture=function(){this._emitError(jn)},B.prototype.getScreenCaptureSources=function(){this._emitError(jn)},B.prototype.selectScreenCaptureTarget=function(){this._emitError(jn)},B.prototype.getCameraDevicesList=function(){return sA(this,void 0,Promise,(function(){var E,Q,p;return oA(this,(function(m){switch(m.label){case 0:this.logger.info("".concat(be,".getCameraDevicesList")),m.label=1;case 1:return m.trys.push([1,5,,6]),[4,z.default.getCameraList()];case 2:return E=m.sent(),Q=E.map((function(T){return rA(rA({},T),{deviceName:T.label})})),this._cameraList=E,JSON.stringify(this._currentCamera)!=="{}"?[3,4]:(this._currentCamera=this.getDefaultDeviceInfo(E),this._currentCameraId=this._currentCamera.deviceId,[4,this.setCurrentCameraDevice(this._currentCameraId)]);case 3:m.sent(),m.label=4;case 4:return[2,Promise.resolve(Q)];case 5:return p=m.sent(),this._callFunctionErrorManage(p,"getCameraDevicesList"),[2,Promise.resolve([])];case 6:return[2]}}))}))},B.prototype.setCurrentCameraDevice=function(E){var Q;return sA(this,void 0,Promise,(function(){var p;return oA(this,(function(m){switch(m.label){case 0:this.logger.info("".concat(be,".setCurrentCameraDevice with params: "),{cameraId:E}),m.label=1;case 1:return m.trys.push([1,4,,5]),E?(this._currentCameraId=E,[4,this._updateLocalVideo()]):[2,!1];case 2:return m.sent(),[4,this._updateLocalTestVideo()];case 3:return m.sent(),this._currentCamera=this._cameraList.find((function(T){return T.deviceId===E}))||{},[3,5];case 4:throw p=m.sent(),this._currentCameraId=(Q=this._currentCamera)===null||Q===void 0?void 0:Q.cameraId,this._callFunctionErrorManage(p,"setCurrentCameraDevice"),p;case 5:return[2]}}))}))},B.prototype.getCurrentCameraDevice=function(){this.logger.info("".concat(be,".getCurrentCameraDevice"));var E=this._currentCamera,Q=E.deviceId,p=E.label,m=E.kind,T=E.groupId;return new qt(Q,p,m,p,T)},B.prototype.isFrontCamera=function(){return this._getIsFrontCamera()},B.prototype.switchCamera=function(E){return sA(this,void 0,void 0,(function(){return oA(this,(function(Q){switch(Q.label){case 0:return this.logger.info("".concat(be,".switchCamera with params: "),E),this._setIsFrontCamera(E),[4,this._updateLocalVideo()];case 1:return Q.sent(),[2]}}))}))},B.prototype._onVirtualBackgroundError=function(E){this._emitError({code:-1006,message:E.message?E.message:"virtual background error"})},B.prototype.setVirtualBackground=function(E){return sA(this,void 0,void 0,(function(){var Q,p,m,T,Y;return oA(this,(function(_){switch(_.label){case 0:return _.trys.push([0,10,,11]),Q=E.enable,p=E.type,m=E.blurLevel,T=E.imagePath,Q?this._isVirtualBackground?p!==vr?[3,2]:[4,this._trtc.updatePlugin(Io,{type:p,blurLevel:m})]:[3,5]:[3,8];case 1:_.sent(),_.label=2;case 2:return p!==gi?[3,4]:[4,this._trtc.updatePlugin(Io,{type:p,src:T})];case 3:_.sent(),_.label=4;case 4:return[3,7];case 5:return[4,this._trtc.startPlugin(Io,rA(rA({},E),{src:T,onAbort:this._onVirtualBackgroundError.bind(this)}))];case 6:_.sent(),this._isVirtualBackground=!0,_.label=7;case 7:return[3,9];case 8:this._trtc.stopPlugin(Io),this._isVirtualBackground=!1,_.label=9;case 9:return[3,11];case 10:throw Y=_.sent(),this.logger.error("".concat(be,".setVirtualBackground fail: "),Y),Y;case 11:return[2]}}))}))},B.prototype.setTestVirtualBackground=function(E){return sA(this,void 0,void 0,(function(){var Q,p,m,T,Y;return oA(this,(function(_){switch(_.label){case 0:return _.trys.push([0,10,,11]),Q=E.enable,p=E.type,m=E.blurLevel,T=E.imagePath,Q?this._isTestVirtualBackground?p!==vr?[3,2]:[4,this._testTrtc.updatePlugin(Io,{type:p,blurLevel:m})]:[3,5]:[3,8];case 1:_.sent(),_.label=2;case 2:return p!==gi?[3,4]:[4,this._testTrtc.updatePlugin(Io,{type:p,src:T})];case 3:_.sent(),_.label=4;case 4:return[3,7];case 5:return[4,this._testTrtc.startPlugin(Io,rA(rA({},E),{src:T,onAbort:this._onVirtualBackgroundError.bind(this)}))];case 6:_.sent(),this._isTestVirtualBackground=!0,_.label=7;case 7:return[3,9];case 8:this._testTrtc.stopPlugin(Io),this._isTestVirtualBackground=!1,_.label=9;case 9:return[3,11];case 10:throw Y=_.sent(),this.logger.error("".concat(be,".setTestVirtualBackground fail: "),Y),Y;case 11:return[2]}}))}))},B.prototype.useVirtualBackground=function(E){return sA(this,void 0,void 0,(function(){return oA(this,(function(Q){switch(Q.label){case 0:return this._trtc?[4,this._trtc.use({plugin:x.VirtualBackground,assetsPath:E})]:[3,2];case 1:Q.sent(),Q.label=2;case 2:return this._testTrtc?[4,this._testTrtc.use({plugin:x.VirtualBackground,assetsPath:E})]:[3,4];case 3:Q.sent(),Q.label=4;case 4:return[2]}}))}))},B.prototype.setBeautyStyle=function(E,Q,p,m){return sA(this,void 0,void 0,(function(){return oA(this,(function(T){switch(T.label){case 0:return[4,this._handleBeautyStyleParam(this._trtc,this._isBeautyEnabled,E,Q,p,m,!1)];case 1:return T.sent(),[2]}}))}))},B.prototype.setTestBeautyStyle=function(E,Q,p,m){return sA(this,void 0,void 0,(function(){return oA(this,(function(T){switch(T.label){case 0:return[4,this._handleBeautyStyleParam(this._testTrtc,this._isTestBeautyEnabled,E,Q,p,m,!0)];case 1:return T.sent(),[2]}}))}))},B.prototype.useBeautyStyle=function(E){return sA(this,void 0,void 0,(function(){return oA(this,(function(Q){switch(Q.label){case 0:return this._trtc?[4,this._trtc.use({plugin:hh,assetsPath:E})]:[3,2];case 1:Q.sent(),Q.label=2;case 2:return this._testTrtc?[4,this._testTrtc.use({plugin:hh,assetsPath:E})]:[3,4];case 3:Q.sent(),Q.label=4;case 4:return[2]}}))}))},B.prototype._handleBeautyStyleParam=function(E,Q,p,m,T,Y,_){return sA(this,void 0,void 0,(function(){var b,AA,nA,fA,dA;return oA(this,(function(YA){switch(YA.label){case 0:if(m<0||m>9)throw new Error("beautyLevel must be between 0 and 9");if(T<0||T>9)throw new Error("whitenessLevel must be between 0 and 9");if(Y<0||Y>9)throw new Error("ruddinessLevel must be between 0 and 9");YA.label=1;case 1:return YA.trys.push([1,8,,9]),AA=T/9,nA=Y/9,(b=m/9)===0&&AA===0&&nA===0?[4,E.stopPlugin(dI)]:[3,3];case 2:return YA.sent(),_?this._isTestBeautyEnabled=!1:this._isBeautyEnabled=!1,[3,7];case 3:return fA={beauty:b,brightness:AA,ruddy:nA},Q?[3,5]:[4,E.startPlugin(dI,fA)];case 4:return YA.sent(),_?this._isTestBeautyEnabled=!0:this._isBeautyEnabled=!0,[3,7];case 5:return[4,E.updatePlugin(dI,fA)];case 6:YA.sent(),YA.label=7;case 7:return[3,9];case 8:throw dA=YA.sent(),_?this.logger.error("".concat(be,".").concat("setTestBeautyStyle"," fail: "),dA):this.logger.error("".concat(be,".").concat("setBeautyStyle"," fail: "),dA),dA;case 9:return[2]}}))}))},B.prototype._resetBeautyStyle=function(){return sA(this,void 0,void 0,(function(){return oA(this,(function(E){switch(E.label){case 0:return this._isBeautyEnabled?[4,this._trtc.stopPlugin(dI)]:[3,2];case 1:E.sent(),this._isBeautyEnabled=!1,E.label=2;case 2:return this._isTestBeautyEnabled?[4,this._testTrtc.stopPlugin(dI)]:[3,4];case 3:E.sent(),this._isTestBeautyEnabled=!1,E.label=4;case 4:return[2]}}))}))},B.prototype.getMicDevicesList=function(){return sA(this,void 0,Promise,(function(){var E,Q,p;return oA(this,(function(m){switch(m.label){case 0:this.logger.info("".concat(be,".getMicDevicesList")),m.label=1;case 1:return m.trys.push([1,5,,6]),[4,z.default.getMicrophoneList()];case 2:return E=m.sent(),Q=E.map((function(T){return rA(rA({},T),{deviceName:T.label})})),this._microphoneList=E,JSON.stringify(this._currentMicrophone)!=="{}"?[3,4]:(this._currentMicrophone=this.getDefaultDeviceInfo(E),this._currentMicrophoneId=this._currentMicrophone.deviceId,[4,this.setCurrentMicDevice(this._currentMicrophoneId)]);case 3:m.sent(),m.label=4;case 4:return[2,Promise.resolve(Q)];case 5:return p=m.sent(),this._callFunctionErrorManage(p,"getMicDevicesList"),[2,Promise.resolve([])];case 6:return[2]}}))}))},B.prototype.setCurrentMicDevice=function(E){var Q;return sA(this,void 0,Promise,(function(){var p;return oA(this,(function(m){switch(m.label){case 0:this.logger.info("".concat(be,".setCurrentMicDevice with params: "),{micId:E}),m.label=1;case 1:return m.trys.push([1,4,,5]),E?(this._setCurrentMicrophoneId(E),[4,this._updateLocalAudio()]):[2,!1];case 2:return m.sent(),[4,this._updateLocalTestAudio()];case 3:return m.sent(),this._currentMicrophone=this._microphoneList.find((function(T){return T.deviceId===E}))||{},[3,5];case 4:throw p=m.sent(),this._setCurrentMicrophoneId((Q=this._currentMicrophone)===null||Q===void 0?void 0:Q.deviceId),this._callFunctionErrorManage(p,"setCurrentMicDevice"),p;case 5:return[2]}}))}))},B.prototype.getCurrentMicDevice=function(){this.logger.info("".concat(be,".getCurrentMicDevice"));var E=this._currentMicrophone,Q=E.deviceId,p=E.label,m=E.kind,T=E.groupId;return new qt(Q,p,m,p,T)},B.prototype.getSpeakerDevicesList=function(){return sA(this,void 0,Promise,(function(){var E,Q,p;return oA(this,(function(m){switch(m.label){case 0:this.logger.info("".concat(be,".getSpeakerDevicesList")),m.label=1;case 1:return m.trys.push([1,5,,6]),[4,z.default.getSpeakerList()];case 2:return E=m.sent(),Q=E.map((function(T){return rA(rA({},T),{deviceName:T.label})})),this._speakerList=E,JSON.stringify(this._currentSpeaker)!=="{}"?[3,4]:(this._currentSpeaker=this.getDefaultDeviceInfo(E),this._currentSpeakerId=this._currentSpeaker.deviceId,[4,this.setCurrentSpeakerDevice(this._currentSpeakerId)]);case 3:m.sent(),m.label=4;case 4:return[2,Promise.resolve(Q)];case 5:return p=m.sent(),this._callFunctionErrorManage(p,"getSpeakerDevicesList"),[2,Promise.resolve([])];case 6:return[2]}}))}))},B.prototype.setCurrentSpeakerDevice=function(E){return sA(this,void 0,Promise,(function(){var Q;return oA(this,(function(p){switch(p.label){case 0:this.logger.info("".concat(be,".setCurrentSpeakerDevice with params: "),{speakerId:E}),p.label=1;case 1:return p.trys.push([1,3,,4]),E?[4,z.default.setCurrentSpeaker(E)]:[2,!1];case 2:return p.sent(),this._setCurrentSpeakerId(E),this._currentSpeaker=this._speakerList.find((function(m){return m.deviceId===E}))||{},[3,4];case 3:throw Q=p.sent(),this._callFunctionErrorManage(Q,"setCurrentSpeakerDevice"),Q;case 4:return[2]}}))}))},B.prototype.getCurrentSpeakerDevice=function(){this.logger.info("".concat(be,".getCurrentSpeakerDevice"));var E=this._currentSpeaker,Q=E.deviceId,p=E.label,m=E.kind,T=E.groupId;return new qt(Q,p,m,p,T)},B.prototype.startCameraDeviceTest=function(E){return sA(this,void 0,void 0,(function(){var Q;return oA(this,(function(p){switch(p.label){case 0:if(this.logger.info("".concat(be,".startCameraDeviceTest with params: "),E),!E)return[2];this._setLocalTestView(E),p.label=1;case 1:return p.trys.push([1,3,,7]),[4,this._testTrtc.startLocalVideo(this._generateLocalTestVideoData())];case 2:return p.sent(),[3,7];case 3:return(Q=p.sent()).code!==z.default.ERROR_CODE.OPERATION_ABORT?[3,5]:[4,this._updateLocalTestVideo()];case 4:return p.sent(),[3,6];case 5:throw this._callFunctionErrorManage(Q,"startCameraDeviceTest"),Q;case 6:return[3,7];case 7:return[2]}}))}))},B.prototype.stopCameraDeviceTest=function(){return sA(this,void 0,void 0,(function(){return oA(this,(function(E){switch(E.label){case 0:return this.logger.info("".concat(be,".stopCameraDeviceTest")),this._setLocalTestView(null),[4,this._testTrtc.stopLocalVideo()];case 1:return E.sent(),[2]}}))}))},B.prototype.startMicDeviceTest=function(E){return sA(this,void 0,void 0,(function(){var Q,p=this;return oA(this,(function(m){switch(m.label){case 0:this.logger.info("".concat(be,".startMicDeviceTest with params: "),E),m.label=1;case 1:return m.trys.push([1,3,,7]),[4,this._testTrtc.startLocalAudio(this._generateLocalTestAudioData())];case 2:return m.sent(),[3,7];case 3:return(Q=m.sent()).code!==z.default.ERROR_CODE.OPERATION_ABORT?[3,5]:[4,this._updateLocalTestAudio()];case 4:return m.sent(),[3,6];case 5:throw this._callFunctionErrorManage(Q,"startMicDeviceTest"),Q;case 6:return[3,7];case 7:return this._testTrtc.on(z.default.EVENT.AUDIO_VOLUME,(function(T){T==null||T.result.forEach((function(Y){var _=Y.userId,b=Y.volume;_===""&&p.emit("onTestMicVolume",b)}))})),[4,this._testTrtc.enableAudioVolumeEvaluation(E)];case 8:return m.sent(),[2]}}))}))},B.prototype.stopMicDeviceTest=function(){return sA(this,void 0,void 0,(function(){return oA(this,(function(E){switch(E.label){case 0:return this.logger.info("".concat(be,".stopMicDeviceTest")),[4,this._testTrtc.stopLocalAudio()];case 1:return E.sent(),[2]}}))}))},B.prototype.callExperimentalAPI=function(E){return sA(this,void 0,void 0,(function(){var Q,p,m;return oA(this,(function(T){switch(T.label){case 0:if(this.logger.info("".concat(be,".callExperimentalAPI"),E),(Q=ar(E))===E)return[2];if(p=Q.api,m=Q.params,!p||!m)return[2];T.label=1;case 1:switch(T.trys.push([1,21,,22]),p){case"setFramework":return[3,2];case"enableAudioAEC":return[3,3];case"enableAudioANS":return[3,4];case"enableAudioAGC":return[3,5];case"KeyMetricsStats":return[3,6];case"setNetworkProxy":return[3,7];case"enableVirtualBackground":return[3,8];case"enableTestVirtualBackground":return[3,10];case"enableTestBeautyStyle":return[3,12];case"setVideoEncodeParamEx":return[3,14];case"enableAutoPlayDialog":return[3,15];case"setAudienceLatencyLevel":return[3,16];case"switchPlaybackQuality":return[3,17]}return[3,19];case 2:return this._handleSetFrameWork(m),[3,20];case 3:return this._echoCancellation=!!m.enable,[3,20];case 4:return this._noiseSuppression=!!m.enable,[3,20];case 5:return this._autoGainControl=!!m.enable,[3,20];case 6:return this._handleKeyMetricsStats(m),[3,20];case 7:return this._networkProxy=m,[3,20];case 8:return[4,this.setVirtualBackground(m)];case 9:return T.sent(),[3,20];case 10:return[4,this.setTestVirtualBackground(m)];case 11:return T.sent(),[3,20];case 12:return[4,this.setTestBeautyStyle(m.style,m.beautyLevel,m.whitenessLevel,m.ruddinessLevel)];case 13:return T.sent(),[3,20];case 14:return this._setVideoEncodeParamEx(m),[3,20];case 15:return this._enableAutoPlayDialog=!!m.enable,[3,20];case 16:return this._latencyLevel=m.latencyLevel,[3,20];case 17:return[4,this._switchPlaybackQuality(m)];case 18:return T.sent(),[3,20];case 19:return[3,20];case 20:return[3,22];case 21:throw T.sent();case 22:return[2]}}))}))},B.prototype._handleSetFrameWork=function(E){var Q=E.frameWork,p=E.component,m=E.language;rr(Q)&&(this._frameWorkType=Q),rr(p)&&(this._component=p),rr(m)&&(this._language=m)},B.prototype._handleKeyMetricsStats=function(E){var Q=E.key,p=E.opt,m=E.value,T=E.version,Y=p===PB;z.default._addKVStat({type:p,key:Q,value:m,version:T,useUV:Y,base:100})},B.prototype._setVideoEncodeParamEx=function(E){return sA(this,void 0,void 0,(function(){return oA(this,(function(Q){switch(Q.label){case 0:switch(E.streamType){case f.TRTCVideoStreamType.TRTCVideoStreamTypeBig:return[3,1];case f.TRTCVideoStreamType.TRTCVideoStreamTypeSub:return[3,3]}return[3,5];case 1:return[4,this.setVideoEncoderParam(E)];case 2:case 4:return Q.sent(),[3,6];case 3:return[4,this.setSubStreamEncoderParam(E)];case 5:return[3,6];case 6:return[2]}}))}))},B.prototype._switchPlaybackQuality=function(E){return sA(this,void 0,void 0,(function(){var Q,p,m,T,Y,_,b,AA,nA;return oA(this,(function(fA){switch(fA.label){case 0:if(p=(Q=E||{}).quality,m=Q.stream_list,T=m===void 0?[]:m,!p||T.length===0)return[2];for(Y=null,_=null,b=0,AA=T;b<AA.length;b++)(nA=AA[b]).name===p?Y=nA:_=this._remoteStreamConfig.get("".concat(nA.user_id,"_").concat(this._getTRTCStreamType(f.TRTCVideoStreamType.TRTCVideoStreamTypeBig)));return _&&Y&&_.view&&Y.user_id?[4,this.setRemoteRenderParams(Y.user_id,f.TRTCVideoStreamType.TRTCVideoStreamTypeBig,rA(rA({},_.option),{fillMode:this._getTRTCCloudVideoFillMode(_.option.fillMode),mirrorType:this._getTRTCCloudMirrorType(_.option.mirrorType),view:_.view}))]:[2];case 1:return fA.sent(),[4,this.startRemoteView(Y.user_id,_.view,f.TRTCVideoStreamType.TRTCVideoStreamTypeBig)];case 2:return fA.sent(),[4,this.stopRemoteView(_.userId,f.TRTCVideoStreamType.TRTCVideoStreamTypeBig)];case 3:return fA.sent(),[4,this._trtc.muteRemoteAudio(_.userId,!0)];case 4:return fA.sent(),[4,this._trtc.muteRemoteAudio(Y.user_id,!1)];case 5:return fA.sent(),this._remoteStreamConfig.delete("".concat(_.userId,"_").concat(this._getTRTCStreamType(f.TRTCVideoStreamType.TRTCVideoStreamTypeBig))),[2]}}))}))},B.prototype._emitError=function(E){E&&this.emit&&this.emit(at,E.code,E.message)},B.prototype._emitWarning=function(E){this.emit&&this.emit(gr,E)},B.prototype._transformTRTCServerError=function(E){return E.extraCode===-8?HR:String(E.extraCode).indexOf("70")===0?0-E.extraCode:void 0},B.prototype._transformTRTCInvalidOperationError=function(E,Q){return Q!=="enterRoom"||E.extraCode!==5104&&E.code!==5998?E.code:hC},B.prototype._isCameraError=function(E){return["startLocalPreview","updateLocalView","muteLocalVideo","setVideoEncoderParam","setCurrentCameraDevice","switchCamera","setLocalRenderParams","enableSmallVideoStream","startCameraDeviceTest"].includes(E)},B.prototype._isMicError=function(E){return["startLocalAudio","muteLocalAudio","setAudioCaptureVolume","setCurrentMicDevice","startMicDeviceTest"].includes(E)},B.prototype._transformTRTCDeviceError=function(E,Q){var p=this._isCameraError(Q),m=this._isMicError(Q);switch(E.extraCode){case 5301:case 5305:case 5306:case 5307:case 5308:case 5309:if(p)return ag;if(m)return Zn;break;case 5302:if(p)return xR;if(m)return oh;break;case 5303:if(p)return wo;if(m)return lC;break;case 5304:if(p)return KR;if(m)return pd}},B.prototype._transformTRTCUnKnowError=function(E,Q){var p=this._isCameraError(Q),m=this._isMicError(Q);return p?ag:m?Zn:E.code},B.prototype._transformTRTCErrorCode=function(E,Q){var p=E==null?void 0:E.code;if(E&&E.code)switch(E.code){case z.default.ERROR_CODE.DEVICE_ERROR:p=this._transformTRTCDeviceError(E,Q);break;case z.default.ERROR_CODE.SERVER_ERROR:p=this._transformTRTCServerError(E);break;case z.default.ERROR_CODE.INVALID_OPERATION:case z.default.ERROR_CODE.OPERATION_ABORT:p=this._transformTRTCInvalidOperationError(E,Q);break;case z.default.ERROR_CODE.UNKNOWN_ERROR:p=this._transformTRTCUnKnowError(E,Q)}return p},B.prototype._callFunctionErrorManage=function(E,Q){if(!E||E.code!==z.default.ERROR_CODE.OPERATION_ABORT){this.logger.warn("(".concat(Q,") failed - ").concat(E.code," - ").concat(E.message));var p=this._transformTRTCErrorCode(E,Q);this.emit(at,p,E.message)}},B.prototype._getTRTCResolution=function(E){var Q=(f.TRTCVideoResolution[E]||"").split("_");return{width:+(Q.length>1&&Q[1]),height:+(Q.length>2&&Q[2])}},B.prototype._getTRTCVideoProfile=function(E,Q){Q===void 0&&(Q={});var p=Q.videoWidth,m=Q.videoHeight,T=Q.videoResolution,Y=Q.videoFps,_=Q.videoBitrate,b=Q.resMode,AA=Q.resolutionMode,nA={};switch(E){case f.TRTCVideoStreamType.TRTCVideoStreamTypeSub:nA=this._defaultScreenProfile;break;case f.TRTCVideoStreamType.TRTCVideoStreamTypeSmall:nA=this._defaultSmallVideoProfile;break;case f.TRTCVideoStreamType.TRTCVideoStreamTypeBig:default:nA=this._defaultVideoProfile}if(ri(T))ri(p)||(nA.width=p),ri(m)||(nA.height=m);else{var fA=this._getTRTCResolution(T);nA.width=fA.width,nA.height=fA.height}if(!ri(b)&&b===f.TRTCVideoResolutionMode.TRTCVideoResolutionModePortrait||!ri(AA)&&AA===f.TRTCVideoResolutionMode.TRTCVideoResolutionModePortrait){var dA=nA.height,YA=nA.width;nA.width=dA,nA.height=YA}return Y&&(nA.frameRate=Y),_&&(nA.bitrate=_),nA},B.prototype._getTRTCStreamType=function(E){var Q;return((Q={})[f.TRTCVideoStreamType.TRTCVideoStreamTypeBig]=z.default.TYPE.STREAM_TYPE_MAIN,Q[f.TRTCVideoStreamType.TRTCVideoStreamTypeSmall]=z.default.TYPE.STREAM_TYPE_MAIN,Q[f.TRTCVideoStreamType.TRTCVideoStreamTypeSub]=z.default.TYPE.STREAM_TYPE_SUB,Q)[E]},B.prototype._getTRTCFillMode=function(E){var Q;return((Q={})[f.TRTCVideoFillMode.TRTCVideoFillMode_Fill]=Or.COVER,Q[f.TRTCVideoFillMode.TRTCVideoFillMode_Fit]=Or.CONTAIN,Q)[E]},B.prototype._getTRTCCloudVideoFillMode=function(E){var Q;return((Q={})[Or.COVER]=f.TRTCVideoFillMode.TRTCVideoFillMode_Fill,Q[Or.CONTAIN]=f.TRTCVideoFillMode.TRTCVideoFillMode_Fit,Q)[E]},B.prototype._getTRTCCloudMirrorType=function(E){return E===!0?f.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable:f.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable},B.prototype._getLocalRenderMirror=function(E){var Q;return E===f.TRTCVideoMirrorType.TRTCVideoMirrorType_Auto?!this._getIsMobile()||this._getIsFrontCamera():((Q={})[f.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable]=!0,Q[f.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable]=!1,Q)[E]},B.prototype._getTRTCLocalMirror=function(E,Q){var p=this._getLocalRenderMirror(E);return ri(Q)?!!p&&"both":p&&Q?"both":p&&!Q?"view":!p&&Q?"publish":!(!p&&!Q)&&"view"},B.prototype._getTRTCRemoteMirror=function(E){var Q;return((Q={})[f.TRTCVideoMirrorType.TRTCVideoMirrorType_Auto]=!1,Q[f.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable]=!0,Q[f.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable]=!1,Q)[E]},B.prototype._getTRTCQosPreference=function(E){var Q;return((Q={})[f.TRTCVideoQosPreference.TRTCVideoQosPreferenceSmooth]=z.default.TYPE.QOS_PREFERENCE_SMOOTH,Q[f.TRTCVideoQosPreference.TRTCVideoQosPreferenceClear]=z.default.TYPE.QOS_PREFERENCE_CLEAR,Q)[E]},B.prototype._getTRTCAudioQuality=function(E){var Q;return((Q={})[f.TRTCAudioQuality.TRTCAudioQualitySpeech]=z.default.TYPE.AUDIO_PROFILE_STANDARD,Q[f.TRTCAudioQuality.TRTCAudioQualityDefault]=z.default.TYPE.AUDIO_PROFILE_STANDARD,Q[f.TRTCAudioQuality.TRTCAudioQualityMusic]=z.default.TYPE.AUDIO_PROFILE_HIGH_STEREO,Q)[E]},B.prototype._getTRTCCloudDeviceType=function(E){return{camera:f.TRTCDeviceType.TRTCDeviceTypeCamera,microphone:f.TRTCDeviceType.TRTCDeviceTypeMic,speaker:f.TRTCDeviceType.TRTCDeviceTypeSpeaker}[E]},B.prototype._getTRTCCloudDeviceState=function(E){return{add:f.TRTCDeviceState.TRTCDeviceStateAdd,remove:f.TRTCDeviceState.TRTCDeviceStateRemove,active:f.TRTCDeviceState.TRTCDeviceStateActive}[E]},B.prototype._getTRTCCloudQuality=function(E){return[f.TRTCQuality.TRTCQuality_Unknown,f.TRTCQuality.TRTCQuality_Excellent,f.TRTCQuality.TRTCQuality_Good,f.TRTCQuality.TRTCQuality_Poor,f.TRTCQuality.TRTCQuality_Bad,f.TRTCQuality.TRTCQuality_Vbad,f.TRTCQuality.TRTCQuality_Down][E]},B.prototype._generateLocalVideoData=function(){var E={view:this._getLocalView(),publish:this._getIsVideoPublish(),option:{profile:this._getVideoProfile(),small:this._getSmallStreamVideoProfile()||!1,mirror:this._getTRTCLocalMirror(this._localRenderParams.mirrorType,this._encoderMirror),fillMode:this._getTRTCFillMode(this._localRenderParams.fillMode)}};return this._cameraVideoTrack?E&&Object.assign(E.option,{videoTrack:this._cameraVideoTrack}):this._getIsMobile()?E&&Object.assign(E.option,{useFrontCamera:this._getIsFrontCamera()}):E&&Object.assign(E.option,{cameraId:this._getCurrentCameraId()}),this._getQosPreference()&&E&&Object.assign(E.option,{qosPreference:this._getQosPreference()}),E},B.prototype._generateLocalTestVideoData=function(){return{view:this._getLocalTestView(),publish:!1,option:{cameraId:this._getCurrentCameraId(),profile:this._getVideoProfile(),mirror:this._getTRTCLocalMirror(this._localRenderParams.mirrorType,this._encoderMirror),fillMode:this._getTRTCFillMode(this._localRenderParams.fillMode)}}},B.prototype._generateLocalAudioData=function(){var E={publish:this._getIsAudioPublish(),option:{microphoneId:this._getCurrentMicrophoneId(),profile:this._getAudioProfile(),captureVolume:this._getCaptureVolume()}};return tg(this._echoCancellation)&&(E.option.echoCancellation=this._echoCancellation),tg(this._autoGainControl)&&(E.option.autoGainControl=this._autoGainControl),tg(this._noiseSuppression)&&(E.option.noiseSuppression=this._noiseSuppression),E},B.prototype._generateLocalTestAudioData=function(){return{publish:!1,option:{microphoneId:this._getCurrentMicrophoneId(),profile:this._getAudioProfile()}}},B.prototype._generateRemoteVideoData=function(E,Q){return ig(this._remoteStreamConfig.get("".concat(E,"_").concat(this._getTRTCStreamType(Q))))},B.prototype._addTRTCEvents=function(){var E=this;this._trtc.on(z.default.EVENT.ERROR,(function(Q){Q&&E.emit("onError",Q.code,Q.message)})),this._trtc.on(z.default.EVENT.REMOTE_USER_ENTER,(function(Q){Q!=null&&Q.userId&&E.emit("onRemoteUserEnterRoom",Q.userId)})),this._trtc.on(z.default.EVENT.REMOTE_USER_EXIT,(function(Q){Q!=null&&Q.userId&&E.emit("onRemoteUserLeaveRoom",Q.userId)})),this._trtc.on(z.default.EVENT.REMOTE_AUDIO_AVAILABLE,(function(Q){Q!=null&&Q.userId&&E.emit("onUserAudioAvailable",Q.userId,!0)})),this._trtc.on(z.default.EVENT.REMOTE_AUDIO_UNAVAILABLE,(function(Q){Q!=null&&Q.userId&&E.emit("onUserAudioAvailable",Q.userId,!1)})),this._trtc.on(z.default.EVENT.REMOTE_VIDEO_AVAILABLE,(function(Q){E._emitVideoAvailable(Q,!0)})),this._trtc.on(z.default.EVENT.REMOTE_VIDEO_UNAVAILABLE,(function(Q){E._emitVideoAvailable(Q,!1)})),this._trtc.on(z.default.EVENT.AUDIO_VOLUME,(function(Q){Q!=null&&Q.result&&E.emit("onUserVoiceVolume",Q==null?void 0:Q.result,((Q==null?void 0:Q.result)||[]).length)})),this._trtc.on(z.default.EVENT.KICKED_OUT,(function(Q){var p={banned:bI.banned,room_disband:bI.roomDisband};rr(p[Q.reason])&&E.emit("onExitRoom",p[Q.reason])})),this._trtc.on(z.default.EVENT.NETWORK_QUALITY,(function(Q){var p=Q.uplinkNetworkQuality,m=Q.downlinkNetworkQuality,T=new Tn("",E._getTRTCCloudQuality(p)),Y=[];E._remoteStatisticsUserIdList.length>0&&(Y=E._remoteStatisticsUserIdList.map((function(_){return new Tn(_,E._getTRTCCloudQuality(m))}))),E.emit("onNetworkQuality",T,Y)})),this._trtc.on(z.default.EVENT.AUTOPLAY_FAILED,(function(Q){E.emit("onAutoPlayFailed",Q)})),this._trtc.on(z.default.EVENT.SEI_MESSAGE,(function(Q){if(Q.data&&typeof Q.data=="object"&&Q.data instanceof ArrayBuffer){for(var p=new Uint8Array(Q.data),m="",T=0;T<p.length;T++)m+=String.fromCharCode(p[T]);Q.stringData=m}E.emit("onRecvSEIMsg",Q.userId,JSON.stringify(Q))})),this._trtc.on(z.default.EVENT.STATISTICS,(function(Q){var p,m=Q.rtt,T=Q.upLoss,Y=Q.downLoss,_=Q.bytesSent,b=Q.bytesReceived,AA=Q.localStatistics,nA=Q.remoteStatistics;E._remoteStatisticsUserIdList=nA.map((function(Ce){return Ce.userId}));var fA={big:f.TRTCVideoStreamType.TRTCVideoStreamTypeBig,small:f.TRTCVideoStreamType.TRTCVideoStreamTypeSmall,sub:f.TRTCVideoStreamType.TRTCVideoStreamTypeSub},dA=((p=AA.video)===null||p===void 0?void 0:p.length)>0?AA.video.map((function(Ce){var xe=new or;return xe.width=Ce.width,xe.height=Ce.height,xe.frameRate=Ce.frameRate,xe.videoBitrate=Ce.bitrate,xe.audioBitrate=AA.audio.bitrate||0,xe.streamType=fA[Ce.videoType],xe})):[];if(dA.length===0&&AA.audio.bitrate>0){var YA=new or;YA.audioBitrate=AA.audio.bitrate||0,dA.push(YA)}var UA=[];nA.forEach((function(Ce){var xe=[],Qt=Ce.userId,Le=Ce.audio.bitrate;if(Ce.video&&Ce.video.forEach((function(Vt){var si=new bg;si.userId=Qt,si.width=Vt.width,si.height=Vt.height,si.frameRate=Vt.frameRate,si.videoBitrate=Vt.bitrate,si.audioBitrate=Le||0,si.streamType=fA[Vt.videoType],xe.push(si)})),xe.length===0){var Ne=new bg;Ne.userId=Qt,Ne.audioBitrate=Le||0,xe.push(Ne)}UA.push.apply(UA,xe)}));var lA=new St;lA.upLoss=T,lA.downLoss=Y,lA.rtt=m,lA.sentBytes=_,lA.receivedBytes=b,lA.localStatisticsArray=dA,lA.localStatisticsArraySize=dA.length,lA.remoteStatisticsArray=UA,lA.remoteStatisticsArraySize=UA.length,E.emit("onStatistics",lA)})),this._trtc.on(z.default.EVENT.SCREEN_SHARE_STOPPED,(function(){E.emit("onScreenCaptureStopped",0),E._clearScreenShareParams(),E._isSharingScreen=!1})),this._trtc.on(z.default.EVENT.PUBLISH_STATE_CHANGED,(function(Q){var p=Q.mediaType;Q.state==="started"&&(p==="audio"?E.emit("onSendFirstLocalAudioFrame"):p==="video"?E.emit("onSendFirstLocalVideoFrame",f.TRTCVideoStreamType.TRTCVideoStreamTypeBig):p==="screen"&&E.emit("onSendFirstLocalVideoFrame",f.TRTCVideoStreamType.TRTCVideoStreamTypeSub))})),this._trtc.on(z.default.EVENT.FIRST_VIDEO_FRAME,(function(Q){var p=Q.userId,m=Q.streamType,T=Q.width,Y=Q.height;E.emit("onFirstVideoFrame",p,m,T,Y)})),this._trtc.on(z.default.EVENT.AUDIO_PLAY_STATE_CHANGED,(function(Q){var p=Q.userId;Q.state==="PLAYING"&&E.emit("onFirstAudioFrame",p)})),this._trtc.on(z.default.EVENT.DEVICE_CHANGED,(function(Q){var p=Q.type,m=Q.device,T=Q.action,Y=m.deviceId;if(T==="active"){switch(p){case"camera":E._currentCameraId=Y,E._currentCamera=m;break;case"microphone":E._currentMicrophoneId=Y,E._currentMicrophone=m;break;case"speaker":E._currentSpeakerId=Y,E._currentSpeaker=m}E.emitOnDeviceChange(Y,E._getTRTCCloudDeviceType(p),E._getTRTCCloudDeviceState(T))}})),this._trtc.on(z.default.EVENT.CUSTOM_MESSAGE,(function(Q){Q&&E.emit("onRecvCustomCmdMsg",Q.userId,Q.cmdId,Q.seq,Q==null?void 0:Q.data)})),this._trtc.on(z.default.EVENT.CONNECTION_STATE_CHANGED,(function(Q){E._hasJoinedRoom&&!E._isExitingRoom&&(Q.prevState==="CONNECTED"&&Q.state==="DISCONNECTED"?E.emit("onConnectionLost"):Q.prevState==="DISCONNECTED"&&Q.state==="CONNECTING"?E.emit("onTryToReconnect"):Q.prevState==="CONNECTING"&&Q.state==="CONNECTED"&&E.emit("onConnectionRecovery"))}))},B.prototype._removeTRTCEvents=function(){this._trtc.off("*")},B.prototype._emitVideoAvailable=function(E,Q){var p=E.userId,m=E.streamType;Q?this._remoteStreamMap.set("".concat(p,"_").concat(m),!0):this._remoteStreamMap.delete("".concat(p,"_").concat(m)),m===z.default.TYPE.STREAM_TYPE_SUB?p&&this.emit("onUserSubStreamAvailable",p,Q):p&&this.emit("onUserVideoAvailable",p,Q)},B.prototype._setLocalView=function(E){this._localView=E},B.prototype._getLocalView=function(){return this._localView},B.prototype._setIsMobile=function(E){this._isMobile=E},B.prototype._getIsMobile=function(){return this._isMobile},B.prototype._setIsFrontCamera=function(E){this._isFrontCamera=E},B.prototype._getIsFrontCamera=function(){return this._isFrontCamera},B.prototype._getSmallStreamVideoProfile=function(){return this._smallStreamVideoProfile},B.prototype._setSmallStreamVideoProfile=function(E){this._smallStreamVideoProfile=E},B.prototype._setIsVideoPublish=function(E){this._isVideoPublish=E},B.prototype._getIsVideoPublish=function(){return this._isVideoPublish},B.prototype._setVideoProfile=function(E){this._videoProfile=E},B.prototype._getVideoProfile=function(){return this._videoProfile},B.prototype._setQosPreference=function(E){this._qosPreference=E},B.prototype._getQosPreference=function(){return this._qosPreference},B.prototype._setLocalTestView=function(E){this._localTestView=E},B.prototype._getLocalTestView=function(){return this._localTestView},B.prototype._setScreenShareParams=function(E){var Q=E.view,p=E.systemAudio,m=E.fillMode,T=E.profile,Y=E.videoTrack,_=E.qosPreference;ri(Q)||(this._screenShareParams.view=Q),ri(p)||(this._screenShareParams.option.systemAudio=p),ri(m)||(this._screenShareParams.option.fillMode=m),ri(T)||(this._screenShareParams.option.profile=T),ri(Y)||(this._screenShareParams.option.videoTrack=Y),ri(_)||(this._screenShareParams.option.qosPreference=_)},B.prototype._clearScreenShareParams=function(){var E,Q,p,m,T;!((E=this._screenShareParams)===null||E===void 0)&&E.view&&delete this._screenShareParams.view,!((p=(Q=this._screenShareParams)===null||Q===void 0?void 0:Q.option)===null||p===void 0)&&p.systemAudio&&delete this._screenShareParams.option.systemAudio,!((T=(m=this._screenShareParams)===null||m===void 0?void 0:m.option)===null||T===void 0)&&T.videoTrack&&delete this._screenShareParams.option.videoTrack},B.prototype._getScreenShareParams=function(){return this._screenShareParams},B.prototype._setIsAudioPublish=function(E){this._isAudioPublish=E},B.prototype._getIsAudioPublish=function(){return this._isAudioPublish},B.prototype._setAudioProfile=function(E){this._audioProfile=E},B.prototype._getAudioProfile=function(){return this._audioProfile},B.prototype._getCaptureVolume=function(){return this._captureVolume},B.prototype._setCaptureVolume=function(E){this._captureVolume=E},B.prototype._setCurrentCameraId=function(E){this._currentCameraId=E},B.prototype._getCurrentCameraId=function(){return this._currentCameraId},B.prototype._setCurrentMicrophoneId=function(E){this._currentMicrophoneId=E},B.prototype._getCurrentMicrophoneId=function(){return this._currentMicrophoneId},B.prototype._setCurrentSpeakerId=function(E){this._currentSpeakerId=E},B.prototype._getCurrentSpeakerId=function(){return this._currentSpeakerId},B.prototype._setRemoteStreamConfig=function(E,Q,p){var m=this._remoteStreamConfig.get("".concat(E,"_").concat(this._getTRTCStreamType(Q)));m||(m={userId:E,streamType:this._getTRTCStreamType(Q),option:{mirror:this._getTRTCRemoteMirror(f.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable),fillMode:this._getTRTCFillMode(f.TRTCVideoFillMode.TRTCVideoFillMode_Fit)}});var T=p.view,Y=p.mirrorType,_=p.fillMode,b=p.small;ri(T)||(m.view=T),ri(Y)||(m.option.mirror=this._getTRTCRemoteMirror(Y)),ri(_)||(m.option.fillMode=this._getTRTCFillMode(_)),ri(b)||(m.option.small=b),this._remoteStreamConfig.set("".concat(E,"_").concat(this._getTRTCStreamType(Q)),m)},B.prototype._inheritPropertiesToSubCloud=function(E){E._frameWorkType=this._frameWorkType,E._component=this._component,E._language=this._language,E._networkProxy=rA({},this._networkProxy),E._latencyLevel=this._latencyLevel,E._enableAutoPlayDialog=this._enableAutoPlayDialog},B.prototype._inheritEventsToSubCloud=function(E){var Q=this;E._trtc.on(z.default.EVENT.AUTOPLAY_FAILED,(function(p){Q.emit("onAutoPlayFailed",p)}))},B.prototype.handleDeviceChange=function(){return sA(this,void 0,void 0,(function(){var E=this;return oA(this,(function(Q){return z.default.getCameraList().then((function(p){return sA(E,void 0,void 0,(function(){return oA(this,(function(m){switch(m.label){case 0:return this._cameraList.length===p.length?[2]:[4,this.deviceChangeManage(this._cameraList,p,f.TRTCDeviceType.TRTCDeviceTypeCamera)];case 1:return m.sent(),this._cameraList=p,[2]}}))}))})),z.default.getMicrophoneList().then((function(p){return sA(E,void 0,void 0,(function(){return oA(this,(function(m){switch(m.label){case 0:return[4,this.deviceChangeManage(this._microphoneList,p,f.TRTCDeviceType.TRTCDeviceTypeMic)];case 1:return m.sent(),this._microphoneList=p,[2]}}))}))})),z.default.getSpeakerList().then((function(p){return sA(E,void 0,void 0,(function(){return oA(this,(function(m){switch(m.label){case 0:return[4,this.deviceChangeManage(this._speakerList,p,f.TRTCDeviceType.TRTCDeviceTypeSpeaker)];case 1:return m.sent(),this._speakerList=p,[2]}}))}))})),[2]}))}))},B.prototype.isSameDevice=function(E,Q){var p=E&&E.deviceId&&E.groupId&&E.label,m=Q&&Q.deviceId&&Q.groupId&&Q.label;return!(!p||!m)&&E.deviceId===Q.deviceId&&E.groupId===Q.groupId&&E.label===Q.label},B.prototype.deviceChangeManage=function(E,Q,p){return sA(this,void 0,void 0,(function(){var m,T,Y,_,b;return oA(this,(function(AA){switch(AA.label){case 0:return m=void 0,E.length!==Q.length&&(T=(Q||[]).map((function(nA){return nA.deviceId})),Y=new qt,E.length>Q.length?(Y=E.filter((function(nA){return!T.includes(nA.deviceId)}))[0]||{},m=f.TRTCDeviceState.TRTCDeviceStateRemove):(T=(E||[]).map((function(nA){return nA.deviceId})),Y=Q.filter((function(nA){return!T.includes(nA.deviceId)}))[0]||{},m=f.TRTCDeviceState.TRTCDeviceStateAdd),_=Y.deviceId,this.emitOnDeviceChange(_,p,m)),b=this.getDefaultDeviceInfo(Q),p!==f.TRTCDeviceType.TRTCDeviceTypeCamera||m!==f.TRTCDeviceState.TRTCDeviceStateRemove?[3,3]:this.isSameDevice(this._currentCamera,b)?[2]:b.deviceId?[4,this.autoChangeDevice(p,b)]:[3,2];case 1:AA.sent(),AA.label=2;case 2:AA.label=3;case 3:return p!==f.TRTCDeviceType.TRTCDeviceTypeMic?[3,6]:this.isSameDevice(this._currentMicrophone,b)?[2]:b.deviceId?[4,this.autoChangeDevice(p,b)]:[3,5];case 4:AA.sent(),AA.label=5;case 5:AA.label=6;case 6:return p!==f.TRTCDeviceType.TRTCDeviceTypeSpeaker?[3,9]:this.isSameDevice(this._currentSpeaker,b)?[2]:b.deviceId?[4,this.autoChangeDevice(p,b)]:[3,8];case 7:AA.sent(),AA.label=8;case 8:AA.label=9;case 9:return[2]}}))}))},B.prototype.getDefaultDeviceInfo=function(E){var Q=new qt;if(E.length===0)return Q;var p=E.filter((function(m){return m.deviceId==="default"}));return Q=p.length>0?p[0]:E[0]},B.prototype.autoChangeDevice=function(E,Q){return sA(this,void 0,void 0,(function(){var p,m,T;return oA(this,(function(Y){switch(Y.label){case 0:return p=Q.deviceId,E!==f.TRTCDeviceType.TRTCDeviceTypeCamera?[3,6]:(this._setCurrentCameraId(p),[4,this._updateLocalVideo()]);case 1:Y.sent(),Y.label=2;case 2:return Y.trys.push([2,4,,5]),[4,this._testTrtc.updateLocalVideo({option:{cameraId:p}})];case 3:return Y.sent(),[3,5];case 4:return m=Y.sent(),console.log("testTRTC error",JSON.stringify(m)),m.code,z.default.ERROR_CODE.OPERATION_ABORT,[3,5];case 5:this._currentCameraId=p,this._currentCamera=Q,this.emitOnDeviceChange(p,E,f.TRTCDeviceState.TRTCDeviceStateActive),Y.label=6;case 6:return E!==f.TRTCDeviceType.TRTCDeviceTypeMic?[3,12]:(this._setCurrentMicrophoneId(p),[4,this._updateLocalAudio()]);case 7:Y.sent(),Y.label=8;case 8:return Y.trys.push([8,10,,11]),[4,this._testTrtc.updateLocalAudio({option:{microphoneId:p}})];case 9:return Y.sent(),[3,11];case 10:return T=Y.sent(),console.log("testTRTC error",JSON.stringify(T)),T.code,z.default.ERROR_CODE.OPERATION_ABORT,[3,11];case 11:this._currentMicrophoneId=p,this._currentMicrophone=Q,this.emitOnDeviceChange(p,E,f.TRTCDeviceState.TRTCDeviceStateActive),Y.label=12;case 12:return E!==f.TRTCDeviceType.TRTCDeviceTypeSpeaker?[3,14]:[4,z.default.setCurrentSpeaker(p)];case 13:Y.sent(),this._currentSpeakerId=p,this._currentSpeaker=Q,this.emitOnDeviceChange(p,E,f.TRTCDeviceState.TRTCDeviceStateActive),Y.label=14;case 14:return[2]}}))}))},B.prototype.emitOnDeviceChange=function(E,Q,p){this.emit("onDeviceChange",E,Q,p)},B.prototype.getMediaMixingManager=function(){return new dh({logger:this.logger,trtc:this._trtc,trtcCloud:this})},B.shareInstance=null,B.subCloudMap=new Map,B.enableSEI=!1,B.assetsPath="",MA([(D="exitRoom",function(E,Q,p){var m=p.value;return p.value=function(){for(var T,Y,_,b,AA=[],nA=0;nA<arguments.length;nA++)AA[nA]=arguments[nA];var fA=[];return(Y=(T=vd.get(this))===null||T===void 0?void 0:T.queue)===null||Y===void 0||Y.forEach((function(dA){return fA.push(dA)})),(_=to.get(this))===null||_===void 0||_.forEach((function(dA){return dA==null?void 0:dA.queue.forEach((function(YA){return fA.push(YA)}))})),(b=qI.get(this))===null||b===void 0||b.forEach((function(dA){return dA==null?void 0:dA.queue.forEach((function(YA){return fA.push(YA)}))})),fA.forEach((function(dA){dA.reject(new Error("aborted ".concat(D)))})),vd.delete(this),to.delete(this),qI.delete(this),m.apply(this,AA)},p})],B.prototype,"exitRoom",null),MA([PI((function(E){return E}))],B.prototype,"muteRemoteAudio",null),MA([PI((function(E){return E}))],B.prototype,"muteRemoteVideoStream",null),MA([PI((function(E){var Q=E||{},p=Q.quality,m=Q.stream_list,T=m===void 0?[]:m,Y=T.some((function(_){return _.name===p}));return p&&Y?T.map((function(_){return _.user_id})):(console.warn("[QualitySwitch] Invalid params: target ".concat(p," not found in list")),[])}),{deduplicate:!0})],B.prototype,"_switchPlaybackQuality",null),B})(_e);f.Rect=vi,f.TRTCDeviceInfo=qt,f.TRTCImageBuffer=Yg,f.TRTCLocalStatistics=or,f.TRTCMixUser=ui,f.TRTCNetworkQosParam=oi,f.TRTCParams=wt,f.TRTCPublishCDNParam=Ja,f.TRTCQualityInfo=Tn,f.TRTCRemoteStatistics=bg,f.TRTCRenderParams=_g,f.TRTCScreenCaptureProperty=Jg,f.TRTCScreenCaptureSourceInfo=Gt,f.TRTCStatistics=St,f.TRTCTranscodingConfig=qs,f.TRTCVideoEncParam=qo,f.TRTCVolumeInfo=mi,f.default=_d,Object.defineProperty(f,"__esModule",{value:!0})}))})(zG,zG.exports)),zG.exports}var O1=XG.exports,SK;function q1(){return SK||(SK=1,(function(c,G){(function(f,eA){eA(G,jP(),H1(),XP())})(O1,function(f,eA,x,RA){function z(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var FA=z(eA),rA=z(x),MA=z(RA);function sA(a,s,d,S){var k,N=arguments.length,$=N<3?s:S===null?S=Object.getOwnPropertyDescriptor(s,d):S;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")$=Reflect.decorate(a,s,d,S);else for(var v=a.length-1;v>=0;v--)(k=a[v])&&($=(N<3?k($):N>3?k(s,d,$):k(s,d))||$);return N>3&&$&&Object.defineProperty(s,d,$),$}function oA(a,s,d,S){return new(d||(d=Promise))(function(k,N){function $(j){try{P(S.next(j))}catch(K){N(K)}}function v(j){try{P(S.throw(j))}catch(K){N(K)}}function P(j){var K;j.done?k(j.value):(K=j.value,K instanceof d?K:new d(function(cA){cA(K)})).then($,v)}P((S=S.apply(a,[])).next())})}typeof SuppressedError=="function"&&SuppressedError;var $A=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof OB<"u"?OB:typeof self<"u"?self:{};function KA(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var Qe={};(function(a){var s=Object.prototype.hasOwnProperty,d="~";function S(){}function k(P,j,K){this.fn=P,this.context=j,this.once=K||!1}function N(P,j,K,cA,DA){if(typeof K!="function")throw new TypeError("The listener must be a function");var kA=new k(K,cA||P,DA),_A=d?d+j:j;return P._events[_A]?P._events[_A].fn?P._events[_A]=[P._events[_A],kA]:P._events[_A].push(kA):(P._events[_A]=kA,P._eventsCount++),P}function $(P,j){--P._eventsCount===0?P._events=new S:delete P._events[j]}function v(){this._events=new S,this._eventsCount=0}Object.create&&(S.prototype=Object.create(null),new S().__proto__||(d=!1)),v.prototype.eventNames=function(){var P,j,K=[];if(this._eventsCount===0)return K;for(j in P=this._events)s.call(P,j)&&K.push(d?j.slice(1):j);return Object.getOwnPropertySymbols?K.concat(Object.getOwnPropertySymbols(P)):K},v.prototype.listeners=function(P){var j=d?d+P:P,K=this._events[j];if(!K)return[];if(K.fn)return[K.fn];for(var cA=0,DA=K.length,kA=new Array(DA);cA<DA;cA++)kA[cA]=K[cA].fn;return kA},v.prototype.listenerCount=function(P){var j=d?d+P:P,K=this._events[j];return K?K.fn?1:K.length:0},v.prototype.emit=function(P,j,K,cA,DA,kA){var _A=d?d+P:P;if(!this._events[_A])return!1;var WA,wA,tA=this._events[_A],F=arguments.length;if(tA.fn){switch(tA.once&&this.removeListener(P,tA.fn,void 0,!0),F){case 1:return tA.fn.call(tA.context),!0;case 2:return tA.fn.call(tA.context,j),!0;case 3:return tA.fn.call(tA.context,j,K),!0;case 4:return tA.fn.call(tA.context,j,K,cA),!0;case 5:return tA.fn.call(tA.context,j,K,cA,DA),!0;case 6:return tA.fn.call(tA.context,j,K,cA,DA,kA),!0}for(wA=1,WA=new Array(F-1);wA<F;wA++)WA[wA-1]=arguments[wA];tA.fn.apply(tA.context,WA)}else{var JA,mA=tA.length;for(wA=0;wA<mA;wA++)switch(tA[wA].once&&this.removeListener(P,tA[wA].fn,void 0,!0),F){case 1:tA[wA].fn.call(tA[wA].context);break;case 2:tA[wA].fn.call(tA[wA].context,j);break;case 3:tA[wA].fn.call(tA[wA].context,j,K);break;case 4:tA[wA].fn.call(tA[wA].context,j,K,cA);break;default:if(!WA)for(JA=1,WA=new Array(F-1);JA<F;JA++)WA[JA-1]=arguments[JA];tA[wA].fn.apply(tA[wA].context,WA)}}return!0},v.prototype.on=function(P,j,K){return N(this,P,j,K,!1)},v.prototype.once=function(P,j,K){return N(this,P,j,K,!0)},v.prototype.removeListener=function(P,j,K,cA){var DA=d?d+P:P;if(!this._events[DA])return this;if(!j)return $(this,DA),this;var kA=this._events[DA];if(kA.fn)kA.fn!==j||cA&&!kA.once||K&&kA.context!==K||$(this,DA);else{for(var _A=0,WA=[],wA=kA.length;_A<wA;_A++)(kA[_A].fn!==j||cA&&!kA[_A].once||K&&kA[_A].context!==K)&&WA.push(kA[_A]);WA.length?this._events[DA]=WA.length===1?WA[0]:WA:$(this,DA)}return this},v.prototype.removeAllListeners=function(P){var j;return P?(j=d?d+P:P,this._events[j]&&$(this,j)):(this._events=new S,this._eventsCount=0),this},v.prototype.off=v.prototype.removeListener,v.prototype.addListener=v.prototype.on,v.prefixed=d,v.EventEmitter=v,a.exports=v})({get exports(){return Qe},set exports(a){Qe=a}});var zA,SA,HA,At,we,Ue,Ve,ce,ii,Yt,_e,$t=Qe;(function(a){a.CAMERA="camera",a.SPEAKER="speaker",a.MICROPHONES="microphones",a.MICROPHONE="microphone",a.AUDIO="audio",a.VIDEO="video"})(zA||(zA={})),f.TUIErrorCode=void 0,(SA=f.TUIErrorCode||(f.TUIErrorCode={}))[SA.ERR_SUCC=0]="ERR_SUCC",SA[SA.ERR_FAILED=-1]="ERR_FAILED",SA[SA.ERR_INVALID_PARAMETER=-1001]="ERR_INVALID_PARAMETER",SA[SA.ERR_SDK_NOT_INITIALIZED=-1002]="ERR_SDK_NOT_INITIALIZED",SA[SA.ERR_PERMISSION_DENIED=-1003]="ERR_PERMISSION_DENIED",SA[SA.ERR_REQUIRE_PAYMENT=-1004]="ERR_REQUIRE_PAYMENT",SA[SA.ERR_CAMERA_START_FAILED=-1100]="ERR_CAMERA_START_FAILED",SA[SA.ERR_CAMERA_NOT_AUTHORIZED=-1101]="ERR_CAMERA_NOT_AUTHORIZED",SA[SA.ERR_CAMERA_OCCUPIED=-1102]="ERR_CAMERA_OCCUPIED",SA[SA.ERR_CAMERA_DEVICE_EMPTY=-1103]="ERR_CAMERA_DEVICE_EMPTY",SA[SA.ERR_MICROPHONE_START_FAILED=-1104]="ERR_MICROPHONE_START_FAILED",SA[SA.ERR_MICROPHONE_NOT_AUTHORIZED=-1105]="ERR_MICROPHONE_NOT_AUTHORIZED",SA[SA.ERR_MICROPHONE_OCCUPIED=-1106]="ERR_MICROPHONE_OCCUPIED",SA[SA.ERR_MICROPHONE_DEVICE_EMPTY=-1107]="ERR_MICROPHONE_DEVICE_EMPTY",SA[SA.ERR_ROOM_NAME_INVALID=-2107]="ERR_ROOM_NAME_INVALID",SA[SA.ERR_USER_NOT_EXIST=-2200]="ERR_USER_NOT_EXIST",SA[SA.ERR_REQUEST_ID_INVALID=-2311]="ERR_REQUEST_ID_INVALID",f.TUIVideoQuality=void 0,(HA=f.TUIVideoQuality||(f.TUIVideoQuality={}))[HA.kVideoQuality_360p=1]="kVideoQuality_360p",HA[HA.kVideoQuality_540p=2]="kVideoQuality_540p",HA[HA.kVideoQuality_720p=3]="kVideoQuality_720p",HA[HA.kVideoQuality_1080p=4]="kVideoQuality_1080p",f.TUIAudioQuality=void 0,(At=f.TUIAudioQuality||(f.TUIAudioQuality={}))[At.kAudioProfileSpeech=0]="kAudioProfileSpeech",At[At.kAudioProfileDefault=1]="kAudioProfileDefault",At[At.kAudioProfileMusic=2]="kAudioProfileMusic",f.TUINetworkQuality=void 0,(we=f.TUINetworkQuality||(f.TUINetworkQuality={}))[we.kQualityUnknown=0]="kQualityUnknown",we[we.kQualityExcellent=1]="kQualityExcellent",we[we.kQualityGood=2]="kQualityGood",we[we.kQualityPoor=3]="kQualityPoor",we[we.kQualityBad=4]="kQualityBad",we[we.kQualityVeryBad=5]="kQualityVeryBad",we[we.kQualityDown=6]="kQualityDown",f.TUIKickedOutOfRoomReason=void 0,(Ue=f.TUIKickedOutOfRoomReason||(f.TUIKickedOutOfRoomReason={}))[Ue.kKickedByAdmin=0]="kKickedByAdmin",Ue[Ue.kKickedByLoggedOnOtherDevice=1]="kKickedByLoggedOnOtherDevice",Ue[Ue.kKickedByServer=2]="kKickedByServer",f.TUIResolutionMode=void 0,(Ve=f.TUIResolutionMode||(f.TUIResolutionMode={}))[Ve.kResolutionMode_Landscape=0]="kResolutionMode_Landscape",Ve[Ve.kResolutionMode_Portrait=1]="kResolutionMode_Portrait",f.TUICallEvent=void 0,(ce=f.TUICallEvent||(f.TUICallEvent={})).ERROR="onError",ce.SDK_READY="sdkReady",ce.KICKED_OUT="onKickedOffLine",ce.onUserSigExpired="onUserSigExpired",ce.ON_CALL_BEGIN="onCallBegin",ce.INVITED="onInvited",ce.ON_CALL_RECEIVED="onCallReceived",ce.USER_ACCEPT="onUserAccept",ce.USER_ENTER="onUserJoin",ce.USER_LEAVE="onUserLeave",ce.REJECT="onUserReject",ce.NO_RESP="onUserNoResponse",ce.LINE_BUSY="onUserLineBusy",ce.CALLING_CANCEL="onCallingCancel",ce.ON_CALL_CANCELED="onCallCancelled",ce.CALL_END="onCallEnd",ce.CALLING_END="onCallEnd",ce.USER_VIDEO_AVAILABLE="onUserVideoAvailable",ce.USER_AUDIO_AVAILABLE="onUserAudioAvailable",ce.USER_VOICE_VOLUME="onUserVoiceVolumeChanged",ce.GROUP_CALL_INVITEE_LIST_UPDATE="onGroupCallInviteeListUpdate",ce.CALL_TYPE_CHANGED="onCallMediaTypeChanged",ce.DEVICED_UPDATED="onDeviceUpdated",ce.ON_USER_NETWORK_QUALITY_CHANGED="onUserNetworkQualityChanged",ce.MESSAGE_SENT_BY_ME="onMessageSentByMe",ce.onDeviceChange="onDeviceChange",ce.ON_CALL_NOT_CONNECTED="onCallNotConnected",ce.ON_USER_INVITING="onUserInviting",f.TUIRoomDeviceMangerEvents=void 0,(f.TUIRoomDeviceMangerEvents||(f.TUIRoomDeviceMangerEvents={})).onDeviceChanged="onDeviceChanged",f.TUICamera=void 0,(ii=f.TUICamera||(f.TUICamera={}))[ii.kFront=0]="kFront",ii[ii.kBack=1]="kBack",f.TUICallCameraPosition=void 0,(Yt=f.TUICallCameraPosition||(f.TUICallCameraPosition={}))[Yt.FRONT=0]="FRONT",Yt[Yt.BACK=1]="BACK",f.AUDIO_PLAYBACK_DEVICE=void 0,(_e=f.AUDIO_PLAYBACK_DEVICE||(f.AUDIO_PLAYBACK_DEVICE={}))[_e.SPEAKER=0]="SPEAKER",_e[_e.EAR=1]="EAR";var rt;f.CallEndReason=void 0,(rt=f.CallEndReason||(f.CallEndReason={}))[rt.UnKnown=0]="UnKnown",rt[rt.Hangup=1]="Hangup",rt[rt.Reject=2]="Reject",rt[rt.NoResponse=3]="NoResponse",rt[rt.Offline=4]="Offline",rt[rt.LineBusy=5]="LineBusy",rt[rt.Canceled=6]="Canceled",rt[rt.OtherDeviceAccepted=7]="OtherDeviceAccepted",rt[rt.OtherDeviceReject=8]="OtherDeviceReject",rt[rt.EndByServer=9]="EndByServer";var qt="3.3.4";const Mt="boolean",wt="string",qo="object",ki="array",_g="function",Lg="undefined",Ro="video",lg="audio",Tn="web",mi="unknown",Ja="cover",or="enableVirtualBackground",bg="blur",St="image",Bt={ELECTRON:"electron",WEB:"web",MINI_PROGRAM:"miniProgram"};function ao(a,s){(s==null||s>a.length)&&(s=a.length);for(var d=0,S=Array(s);d<s;d++)S[d]=a[d];return S}function oi(a,s){if(!(a instanceof s))throw new TypeError("Cannot call a class as a function")}function Yg(a,s){for(var d=0;d<s.length;d++){var S=s[d];S.enumerable=S.enumerable||!1,S.configurable=!0,"value"in S&&(S.writable=!0),Object.defineProperty(a,Vi(S.key),S)}}function Qi(a,s,d){return s&&Yg(a.prototype,s),d&&Yg(a,d),Object.defineProperty(a,"prototype",{writable:!1}),a}function Gt(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var a,s,d=typeof Symbol=="function"?Symbol:{},S=d.iterator||"@@iterator",k=d.toStringTag||"@@toStringTag";function N(kA,_A,WA,wA){var tA=_A&&_A.prototype instanceof v?_A:v,F=Object.create(tA.prototype);return vi(F,"_invoke",(function(JA,mA,he){var Ie,ye,fe,PA=0,GA=he||[],Ee=!1,Ke={p:0,n:0,v:a,a:Fe,f:Fe.bind(a,4),d:function(ke,Xe){return Ie=ke,ye=0,fe=a,Ke.n=Xe,$}};function Fe(ke,Xe){for(ye=ke,fe=Xe,s=0;!Ee&&PA&&!_t&&s<GA.length;s++){var _t,zt=GA[s],qi=Ke.p,ot=zt[2];ke>3?(_t=ot===Xe)&&(fe=zt[(ye=zt[4])?5:(ye=3,3)],zt[4]=zt[5]=a):zt[0]<=qi&&((_t=ke<2&&qi<zt[1])?(ye=0,Ke.v=Xe,Ke.n=zt[1]):qi<ot&&(_t=ke<3||zt[0]>Xe||Xe>ot)&&(zt[4]=ke,zt[5]=Xe,Ke.n=ot,ye=0))}if(_t||ke>1)return $;throw Ee=!0,Xe}return function(ke,Xe,_t){if(PA>1)throw TypeError("Generator is already running");for(Ee&&Xe===1&&Fe(Xe,_t),ye=Xe,fe=_t;(s=ye<2?a:fe)||!Ee;){Ie||(ye?ye<3?(ye>1&&(Ke.n=-1),Fe(ye,fe)):Ke.n=fe:Ke.v=fe);try{if(PA=2,Ie){if(ye||(ke="next"),s=Ie[ke]){if(!(s=s.call(Ie,fe)))throw TypeError("iterator result is not an object");if(!s.done)return s;fe=s.value,ye<2&&(ye=0)}else ye===1&&(s=Ie.return)&&s.call(Ie),ye<2&&(fe=TypeError("The iterator does not provide a '"+ke+"' method"),ye=1);Ie=a}else if((s=(Ee=Ke.n<0)?fe:JA.call(mA,Ke))!==$)break}catch(zt){Ie=a,ye=1,fe=zt}finally{PA=1}}return{value:s,done:Ee}}})(kA,WA,wA),!0),F}var $={};function v(){}function P(){}function j(){}s=Object.getPrototypeOf;var K=[][S]?s(s([][S]())):(vi(s={},S,function(){return this}),s),cA=j.prototype=v.prototype=Object.create(K);function DA(kA){return Object.setPrototypeOf?Object.setPrototypeOf(kA,j):(kA.__proto__=j,vi(kA,k,"GeneratorFunction")),kA.prototype=Object.create(cA),kA}return P.prototype=j,vi(cA,"constructor",j),vi(j,"constructor",P),P.displayName="GeneratorFunction",vi(j,k,"GeneratorFunction"),vi(cA),vi(cA,k,"Generator"),vi(cA,S,function(){return this}),vi(cA,"toString",function(){return"[object Generator]"}),(Gt=function(){return{w:N,m:DA}})()}function vi(a,s,d,S){var k=Object.defineProperty;try{k({},"",{})}catch{k=0}vi=function(N,$,v,P){function j(K,cA){vi(N,K,function(DA){return this._invoke(K,cA,DA)})}$?k?k(N,$,{value:v,enumerable:!P,configurable:!P,writable:!P}):N[$]=v:(j("next",0),j("throw",1),j("return",2))},vi(a,s,d,S)}function qs(a,s){return(function(d){if(Array.isArray(d))return d})(a)||(function(d,S){var k=d==null?null:typeof Symbol<"u"&&d[Symbol.iterator]||d["@@iterator"];if(k!=null){var N,$,v,P,j=[],K=!0,cA=!1;try{if(v=(k=k.call(d)).next,S!==0)for(;!(K=(N=v.call(k)).done)&&(j.push(N.value),j.length!==S);K=!0);}catch(DA){cA=!0,$=DA}finally{try{if(!K&&k.return!=null&&(P=k.return(),Object(P)!==P))return}finally{if(cA)throw $}}return j}})(a,s)||uI(a,s)||(function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
||
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)})()}function ug(a){return(function(s){if(Array.isArray(s))return ao(s)})(a)||(function(s){if(typeof Symbol<"u"&&s[Symbol.iterator]!=null||s["@@iterator"]!=null)return Array.from(s)})(a)||uI(a)||(function(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
||
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)})()}function Vi(a){var s=(function(d,S){if(typeof d!="object"||!d)return d;var k=d[Symbol.toPrimitive];if(k!==void 0){var N=k.call(d,S);if(typeof N!="object")return N;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(d)})(a,"string");return typeof s=="symbol"?s:s+""}function ui(a){return ui=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(s){return typeof s}:function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},ui(a)}function uI(a,s){if(a){if(typeof a=="string")return ao(a,s);var d={}.toString.call(a).slice(8,-1);return d==="Object"&&a.constructor&&(d=a.constructor.name),d==="Map"||d==="Set"?Array.from(a):d==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(d)?ao(a,s):void 0}}var Jg=function(a){return a&&a.Math===Math&&a},at=Jg(typeof globalThis=="object"&&globalThis)||Jg(typeof window=="object"&&window)||Jg(typeof self=="object"&&self)||Jg(typeof $A=="object"&&$A)||Jg(typeof $A=="object"&&$A)||(function(){return this})()||Function("return this")(),gr={},Je=function(a){try{return!!a()}catch{return!0}},xt=!Je(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),Io=!Je(function(){var a=(function(){}).bind();return typeof a!="function"||a.hasOwnProperty("prototype")}),dI=Io,vr=Function.prototype.call,gi=dI?vr.bind(vr):function(){return vr.apply(vr,arguments)},xg={},Ps={}.propertyIsEnumerable,PB=Object.getOwnPropertyDescriptor,DI=PB&&!Ps.call({1:2},1);xg.f=DI?function(a){var s=PB(this,a);return!!s&&s.enumerable}:Ps;var ri,rr,tg=function(a,s){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:s}},ar=Io,sa=Function.prototype,xa=sa.call,ig=ar&&sa.bind.bind(xa,xa),Se=ar?ig:function(a){return function(){return xa.apply(a,arguments)}},Ka=Se,Un=Ka({}.toString),Ht=Ka("".slice),jt=function(a){return Ht(Un(a),8,-1)},Wi=Je,Ha=jt,Tr=Object,mo=Se("".split),Ur=Wi(function(){return!Tr("z").propertyIsEnumerable(0)})?function(a){return Ha(a)==="String"?mo(a,""):Tr(a)}:Tr,_r=function(a){return a==null},Lo=_r,pI=TypeError,og=function(a){if(Lo(a))throw new pI("Can't call method on "+a);return a},dg=Ur,Vs=og,Ft=function(a){return dg(Vs(a))},yI=typeof document=="object"&&document.all,Ot=yI===void 0&&yI!==void 0?function(a){return typeof a=="function"||a===yI}:function(a){return typeof a=="function"},Kg=Ot,Ei=function(a){return typeof a=="object"?a!==null:Kg(a)},Po=at,VB=Ot,Vo=function(a,s){return arguments.length<2?(d=Po[a],VB(d)?d:void 0):Po[a]&&Po[a][s];var d},ci=Se({}.isPrototypeOf),Ea=at.navigator,RI=Ea&&Ea.userAgent,Dg=RI?String(RI):"",mI=at,fI=Dg,Ao=mI.process,Ws=mI.Deno,gg=Ao&&Ao.versions||Ws&&Ws.version,Oa=gg&&gg.v8;Oa&&(rr=(ri=Oa.split("."))[0]>0&&ri[0]<4?1:+(ri[0]+ri[1])),!rr&&fI&&(!(ri=fI.match(/Edge\/(\d+)/))||ri[1]>=74)&&(ri=fI.match(/Chrome\/(\d+)/))&&(rr=+ri[1]);var wI=rr,pg=wI,_n=Je,WB=at.String,Pt=!!Object.getOwnPropertySymbols&&!_n(function(){var a=Symbol("symbol detection");return!WB(a)||!(Object(a)instanceof Symbol)||!Symbol.sham&&pg&&pg<41}),Zs=Pt&&!Symbol.sham&&typeof Symbol.iterator=="symbol",bo=Vo,Ln=Ot,js=ci,Hg=Object,Ba=Zs?function(a){return typeof a=="symbol"}:function(a){var s=bo("Symbol");return Ln(s)&&js(s.prototype,Hg(a))},bn=String,W=function(a){try{return bn(a)}catch{return"Object"}},O=Ot,QA=W,vA=TypeError,LA=function(a){if(O(a))return a;throw new vA(QA(a)+" is not a function")},Ae=LA,Be=_r,ae=function(a,s){var d=a[s];return Be(d)?void 0:Ae(d)},De=gi,Re=Ot,Ye=Ei,Ct=TypeError,It={},Ge={get exports(){return It},set exports(a){It=a}},je=at,Si=Object.defineProperty,Bi=function(a,s){try{Si(je,a,{value:s,configurable:!0,writable:!0})}catch{je[a]=s}return s},no=at,vt=Bi,Ai="__core-js_shared__",Xs=Ge.exports=no[Ai]||vt(Ai,{});(Xs.versions||(Xs.versions=[])).push({version:"3.47.0",mode:"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru), 2025 CoreJS Company (core-js.io)",license:"https://github.com/zloirock/core-js/blob/v3.47.0/LICENSE",source:"https://github.com/zloirock/core-js"});var Og=It,Ca=function(a,s){return Og[a]||(Og[a]=s||{})},Lr=og,so=Object,Ti=function(a){return so(Lr(a))},Nc=Ti,nR=Se({}.hasOwnProperty),di=Object.hasOwn||function(a,s){return nR(Nc(a),s)},Fc=Se,Ou=0,ZB=Math.random(),qu=Fc(1.1.toString),qa=function(a){return"Symbol("+(a===void 0?"":a)+")_"+qu(++Ou+ZB,36)},vc=Ca,yg=di,sR=qa,Tc=Pt,Qa=Zs,ca=at.Symbol,SI=vc("wks"),Uc=Qa?ca.for||ca:ca&&ca.withoutSetter||sR,Xt=function(a){return yg(SI,a)||(SI[a]=Tc&&yg(ca,a)?ca[a]:Uc("Symbol."+a)),SI[a]},Pu=gi,jB=Ei,GI=Ba,ER=ae,_c=function(a,s){var d,S;if(s==="string"&&Re(d=a.toString)&&!Ye(S=De(d,a))||Re(d=a.valueOf)&&!Ye(S=De(d,a))||s!=="string"&&Re(d=a.toString)&&!Ye(S=De(d,a)))return S;throw new Ct("Can't convert object to primitive value")},BR=TypeError,Yn=Xt("toPrimitive"),Ir=function(a,s){if(!jB(a)||GI(a))return a;var d,S=ER(a,Yn);if(S){if(s===void 0&&(s="default"),d=Pu(S,a,s),!jB(d)||GI(d))return d;throw new BR("Can't convert object to primitive value")}return s===void 0&&(s="number"),_c(a,s)},Jn=Ir,XB=Ba,zs=function(a){var s=Jn(a,"string");return XB(s)?s:s+""},Lc=Ei,zB=at.document,Vu=Lc(zB)&&Lc(zB.createElement),MI=function(a){return Vu?zB.createElement(a):{}},$B=MI,$s=!xt&&!Je(function(){return Object.defineProperty($B("div"),"a",{get:function(){return 7}}).a!==7}),CR=xt,nr=gi,xn=xg,bc=tg,Yc=Ft,AE=zs,QR=di,cR=$s,Jc=Object.getOwnPropertyDescriptor;gr.f=CR?Jc:function(a,s){if(a=Yc(a),s=AE(s),cR)try{return Jc(a,s)}catch{}if(QR(a,s))return bc(!nr(xn.f,a,s),a[s])};var Ki={},Wu=xt&&Je(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),br=Ei,Kn=String,Wo=TypeError,Zi=function(a){if(br(a))return a;throw new Wo(Kn(a)+" is not an object")},hR=xt,lR=$s,eE=Wu,kI=Zi,tE=zs,uR=TypeError,xc=Object.defineProperty,dR=Object.getOwnPropertyDescriptor,AC="enumerable",Hn="configurable",Kc="writable";Ki.f=hR?eE?function(a,s,d){if(kI(a),s=tE(s),kI(d),typeof a=="function"&&s==="prototype"&&"value"in d&&Kc in d&&!d[Kc]){var S=dR(a,s);S&&S[Kc]&&(a[s]=d.value,d={configurable:Hn in d?d[Hn]:S[Hn],enumerable:AC in d?d[AC]:S[AC],writable:!1})}return xc(a,s,d)}:xc:function(a,s,d){if(kI(a),s=tE(s),kI(d),lR)try{return xc(a,s,d)}catch{}if("get"in d||"set"in d)throw new uR("Accessors not supported");return"value"in d&&(a[s]=d.value),a};var DR=Ki,iE=tg,Yr=xt?function(a,s,d){return DR.f(a,s,iE(1,d))}:function(a,s,d){return a[s]=d,a},eC={},pR={get exports(){return eC},set exports(a){eC=a}},tC=xt,yR=di,Zu=Function.prototype,Hc=tC&&Object.getOwnPropertyDescriptor,iC=yR(Zu,"name"),Hi={EXISTS:iC,PROPER:iC&&(function(){}).name==="something",CONFIGURABLE:iC&&(!tC||tC&&Hc(Zu,"name").configurable)},oC=Ot,Oc=It,RR=Se(Function.toString);oC(Oc.inspectSource)||(Oc.inspectSource=function(a){return RR(a)});var gC,On,sr,ha=Oc.inspectSource,mR=Ot,rC=at.WeakMap,oE=mR(rC)&&/native code/.test(String(rC)),fR=qa,ju=Ca("keys"),Jr=function(a){return ju[a]||(ju[a]=fR(a))},gE={},xr=oE,aC=at,qc=Ei,Xu=Yr,qn=di,rE=It,IC=Jr,nC=gE,Pc="Object already initialized",aE=aC.TypeError,zu=aC.WeakMap;if(xr||rE.state){var Er=rE.state||(rE.state=new zu);Er.get=Er.get,Er.has=Er.has,Er.set=Er.set,gC=function(a,s){if(Er.has(a))throw new aE(Pc);return s.facade=a,Er.set(a,s),s},On=function(a){return Er.get(a)||{}},sr=function(a){return Er.has(a)}}else{var Pa=IC("state");nC[Pa]=!0,gC=function(a,s){if(qn(a,Pa))throw new aE(Pc);return s.facade=a,Xu(a,Pa,s),s},On=function(a){return qn(a,Pa)?a[Pa]:{}},sr=function(a){return qn(a,Pa)}}var fo={set:gC,get:On,has:sr,enforce:function(a){return sr(a)?On(a):gC(a,{})},getterFor:function(a){return function(s){var d;if(!qc(s)||(d=On(s)).type!==a)throw new aE("Incompatible receiver, "+a+" required");return d}}},Vc=Se,Wc=Je,wR=Ot,NI=di,IE=xt,SR=Hi.CONFIGURABLE,GR=ha,MR=fo.enforce,sC=fo.get,EC=String,nE=Object.defineProperty,Zc=Vc("".slice),Pn=Vc("".replace),BC=Vc([].join),$u=IE&&!Wc(function(){return nE(function(){},"length",{value:8}).length!==8}),kR=String(String).split("String"),sE=pR.exports=function(a,s,d){Zc(EC(s),0,7)==="Symbol("&&(s="["+Pn(EC(s),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),d&&d.getter&&(s="get "+s),d&&d.setter&&(s="set "+s),(!NI(a,"name")||SR&&a.name!==s)&&(IE?nE(a,"name",{value:s,configurable:!0}):a.name=s),$u&&d&&NI(d,"arity")&&a.length!==d.arity&&nE(a,"length",{value:d.arity});try{d&&NI(d,"constructor")&&d.constructor?IE&&nE(a,"prototype",{writable:!1}):a.prototype&&(a.prototype=void 0)}catch{}var S=MR(a);return NI(S,"source")||(S.source=BC(kR,typeof s=="string"?s:"")),a};Function.prototype.toString=sE(function(){return wR(this)&&sC(this).source||GR(this)},"toString");var NR=Ot,FR=Ki,vR=eC,CC=Bi,Eo=function(a,s,d,S){S||(S={});var k=S.enumerable,N=S.name!==void 0?S.name:s;if(NR(d)&&vR(d,N,S),S.global)k?a[s]=d:CC(s,d);else{try{S.unsafe?a[s]&&(k=!0):delete a[s]}catch{}k?a[s]=d:FR.f(a,s,{value:d,enumerable:!1,configurable:!S.nonConfigurable,writable:!S.nonWritable})}return a},qg={},Ad=Math.ceil,ed=Math.floor,td=Math.trunc||function(a){var s=+a;return(s>0?ed:Ad)(s)},id=td,Kr=function(a){var s=+a;return s!=s||s===0?0:id(s)},od=Kr,Di=Math.max,gd=Math.min,FI=function(a,s){var d=od(a);return d<0?Di(d+s,0):gd(d,s)},TR=Kr,QC=Math.min,Br=function(a){var s=TR(a);return s>0?QC(s,9007199254740991):0},jc=Br,Rg=function(a){return jc(a.length)},la=Ft,rd=FI,ad=Rg,rg=function(a){return function(s,d,S){var k=la(s),N=ad(k);if(N===0)return!a&&-1;var $,v=rd(S,N);if(a&&d!=d){for(;N>v;)if(($=k[v++])!=$)return!0}else for(;N>v;v++)if((a||v in k)&&k[v]===d)return a||v||0;return!a&&-1}},vI={includes:rg(!0),indexOf:rg(!1)},EE=di,TI=Ft,UR=vI.indexOf,BE=gE,Vn=Se([].push),Xc=function(a,s){var d,S=TI(a),k=0,N=[];for(d in S)!EE(BE,d)&&EE(S,d)&&Vn(N,d);for(;s.length>k;)EE(S,d=s[k++])&&(~UR(N,d)||Vn(N,d));return N},zc=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],_R=Xc,Id=zc.concat("length","prototype");qg.f=Object.getOwnPropertyNames||function(a){return _R(a,Id)};var CE={};CE.f=Object.getOwnPropertySymbols;var LR=Vo,Hr=qg,UI=CE,nd=Zi,We=Se([].concat),sd=LR("Reflect","ownKeys")||function(a){var s=Hr.f(nd(a)),d=UI.f;return d?We(s,d(a)):s},$c=di,bR=sd,YR=gr,JR=Ki,Ah=function(a,s,d){for(var S=bR(s),k=JR.f,N=YR.f,$=0;$<S.length;$++){var v=S[$];$c(a,v)||d&&$c(d,v)||k(a,v,N(s,v))}},Ed=Je,Bd=Ot,Cd=/#|\.prototype\./,_I=function(a,s){var d=LI[Qd(a)];return d===hd||d!==cd&&(Bd(s)?Ed(s):!!s)},Qd=_I.normalize=function(a){return String(a).replace(Cd,".").toLowerCase()},LI=_I.data={},cd=_I.NATIVE="N",hd=_I.POLYFILL="P",Wn=_I,QE=at,cE=gr.f,eh=Yr,ld=Eo,ud=Bi,th=Ah,dd=Wn,Ze=function(a,s){var d,S,k,N,$,v=a.target,P=a.global,j=a.stat;if(d=P?QE:j?QE[v]||ud(v,{}):QE[v]&&QE[v].prototype)for(S in s){if(N=s[S],k=a.dontCallGetSet?($=cE(d,S))&&$.value:d[S],!dd(P?S:v+(j?".":"#")+S,a.forced)&&k!==void 0){if(typeof N==typeof k)continue;th(N,k)}(a.sham||k&&k.sham)&&eh(N,"sham",!0),ld(d,S,N,a)}},ih={};ih[Xt("toStringTag")]="z";var Or=String(ih)==="[object z]",bI=Or,Dd=Ot,YI=jt,cC=Xt("toStringTag"),hE=Object,hC=YI((function(){return arguments})())==="Arguments",ag=bI?YI:function(a){var s,d,S;return a===void 0?"Undefined":a===null?"Null":typeof(d=(function(k,N){try{return k[N]}catch{}})(s=hE(a),cC))=="string"?d:hC?YI(s):(S=YI(s))==="Object"&&Dd(s.callee)?"Arguments":S},xR=ag,KR=String,wo=function(a){if(xR(a)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return KR(a)},Zn={},oh=Xc,pd=zc,lC=Object.keys||function(a){return oh(a,pd)},HR=xt,Va=Wu,jn=Ki,gh=Zi,lE=Ft,uC=lC;Zn.f=HR&&!Va?Object.defineProperties:function(a,s){gh(a);for(var d,S=lE(s),k=uC(s),N=k.length,$=0;N>$;)jn.f(a,d=k[$++],S[d]);return a};var uE,rh=Vo("document","documentElement"),yd=Zi,OR=Zn,dC=zc,ah=gE,Ih=rh,ua=MI,Jt="prototype",nh="script",Rd=Jr("IE_PROTO"),DC=function(){},sh=function(a){return"<"+nh+">"+a+"</"+nh+">"},da=function(a){a.write(sh("")),a.close();var s=a.parentWindow.Object;return a=null,s},dE=function(){try{uE=new ActiveXObject("htmlfile")}catch{}var a,s,d;dE=typeof document<"u"?document.domain&&uE?da(uE):(s=ua("iframe"),d="java"+nh+":",s.style.display="none",Ih.appendChild(s),s.src=String(d),(a=s.contentWindow.document).open(),a.write(sh("document.F=Object")),a.close(),a.F):da(uE);for(var S=dC.length;S--;)delete dE[Jt][dC[S]];return dE()};ah[Rd]=!0;var So=Object.create||function(a,s){var d;return a!==null?(DC[Jt]=yd(a),d=new DC,DC[Jt]=null,d[Rd]=a):d=dE(),s===void 0?d:OR.f(d,s)},DE={},Cr=Se([].slice),pC=jt,yC=Ft,qr=qg.f,pE=Cr,yE=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];DE.f=function(a){return yE&&pC(a)==="Window"?(function(s){try{return qr(s)}catch{return pE(yE)}})(a):qr(yC(a))};var md=eC,RE=Ki,eo=function(a,s,d){return d.get&&md(d.get,s,{getter:!0}),d.set&&md(d.set,s,{setter:!0}),RE.f(a,s,d)},JI={},fd=Xt;JI.f=fd;var Eh=at,mE=Eh,qR=di,Bh=JI,Ch=Ki.f,Qh=gi,PR=Vo,VR=Xt,fE=Eo,ch=Ki.f,Xn=di,wd=Xt("toStringTag"),Da=function(a,s,d){a&&!d&&(a=a.prototype),a&&!Xn(a,wd)&&ch(a,wd,{configurable:!0,value:s})},Sd=jt,Yo=Se,Bo=function(a){if(Sd(a)==="Function")return Yo(a)},Qr=LA,hh=Io,mg=Bo(Bo.bind),pa=function(a,s){return Qr(a),s===void 0?a:hh?mg(a,s):function(){return a.apply(s,arguments)}},ya=jt,zn=Array.isArray||function(a){return ya(a)==="Array"},Gd=Se,lh=Je,$n=Ot,As=ag,uh=ha,xI=function(){},RC=Vo("Reflect","construct"),mC=/^\s*(?:class|function)\b/,Go=Gd(mC.exec),Pr=!mC.test(xI),wE=function(a){if(!$n(a))return!1;try{return RC(xI,[],a),!0}catch{return!1}},KI=function(a){if(!$n(a))return!1;switch(As(a)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Pr||!!Go(mC,uh(a))}catch{return!0}};KI.sham=!0;var fC=!RC||lh(function(){var a;return wE(wE.call)||!wE(Object)||!wE(function(){a=!0})||a})?KI:wE,dh=zn,WR=fC,Md=Ei,wC=Xt("species"),kd=Array,SC=function(a){var s;return dh(a)&&(s=a.constructor,(WR(s)&&(s===kd||dh(s.prototype))||Md(s)&&(s=s[wC])===null)&&(s=void 0)),s===void 0?kd:s},Ui=function(a,s){return new(SC(a))(s===0?0:s)},HI=pa,ZR=Ur,Dh=Ti,Nd=Rg,SE=Ui,ph=Se([].push),Wa=function(a){var s=a===1,d=a===2,S=a===3,k=a===4,N=a===6,$=a===7,v=a===5||N;return function(P,j,K,cA){for(var DA,kA,_A=Dh(P),WA=ZR(_A),wA=Nd(WA),tA=HI(j,K),F=0,JA=cA||SE,mA=s?JA(P,wA):d||$?JA(P,0):void 0;wA>F;F++)if((v||F in WA)&&(kA=tA(DA=WA[F],F,_A),a))if(s)mA[F]=kA;else if(kA)switch(a){case 3:return!0;case 5:return DA;case 6:return F;case 2:ph(mA,DA)}else switch(a){case 4:return!1;case 7:ph(mA,DA)}return N?-1:S||k?k:mA}},Zo={forEach:Wa(0),map:Wa(1),filter:Wa(2),some:Wa(3),every:Wa(4),find:Wa(5),findIndex:Wa(6)},es=Ze,OI=at,ts=gi,Fd=Se,Vr=xt,Wr=Pt,vd=Je,to=di,qI=ci,PI=Zi,Ra=Ft,GC=zs,Td=wo,is=tg,be=So,Ud=lC,MC=qg,_d=DE,h=CE,B=gr,D=Ki,E=Zn,Q=xg,p=Eo,m=eo,T=Ca,Y=gE,_=qa,b=Xt,AA=JI,nA=function(a){var s=mE.Symbol||(mE.Symbol={});qR(s,a)||Ch(s,a,{value:Bh.f(a)})},fA=function(){var a=PR("Symbol"),s=a&&a.prototype,d=s&&s.valueOf,S=VR("toPrimitive");s&&!s[S]&&fE(s,S,function(k){return Qh(d,this)},{arity:1})},dA=Da,YA=fo,UA=Zo.forEach,lA=Jr("hidden"),Ce="Symbol",xe="prototype",Qt=YA.set,Le=YA.getterFor(Ce),Ne=Object[xe],Vt=OI.Symbol,si=Vt&&Vt[xe],ji=OI.RangeError,cr=OI.TypeError,Jo=OI.QObject,os=B.f,Pg=D.f,GE=_d.f,io=Q.f,VI=Fd([].push),hr=T("symbols"),oo=T("op-symbols"),gs=T("wks"),Zr=!Jo||!Jo[xe]||!Jo[xe].findChild,ME=function(a,s,d){var S=os(Ne,s);S&&delete Ne[s],Pg(a,s,d),S&&a!==Ne&&Pg(Ne,s,S)},Tt=Vr&&vd(function(){return be(Pg({},"a",{get:function(){return Pg(this,"a",{value:7}).a}})).a!==7})?ME:Pg,jr=function(a,s){var d=hr[a]=be(si);return Qt(d,{type:Ce,tag:a,description:s}),Vr||(d.description=s),d},Xr=function(a,s,d){a===Ne&&Xr(oo,s,d),PI(a);var S=GC(s);return PI(d),to(hr,S)?(d.enumerable?(to(a,lA)&&a[lA][S]&&(a[lA][S]=!1),d=be(d,{enumerable:is(0,!1)})):(to(a,lA)||Pg(a,lA,is(1,be(null))),a[lA][S]=!0),Tt(a,S,d)):Pg(a,S,d)},lr=function(a,s){PI(a);var d=Ra(s),S=Ud(d).concat(NC(d));return UA(S,function(k){Vr&&!ts(WI,d,k)||Xr(a,k,d[k])}),a},WI=function(a){var s=GC(a),d=ts(io,this,s);return!(this===Ne&&to(hr,s)&&!to(oo,s))&&(!(d||!to(this,s)||!to(hr,s)||to(this,lA)&&this[lA][s])||d)},kE=function(a,s){var d=Ra(a),S=GC(s);if(d!==Ne||!to(hr,S)||to(oo,S)){var k=os(d,S);return!k||!to(hr,S)||to(d,lA)&&d[lA][S]||(k.enumerable=!0),k}},kC=function(a){var s=GE(Ra(a)),d=[];return UA(s,function(S){to(hr,S)||to(Y,S)||VI(d,S)}),d},NC=function(a){var s=a===Ne,d=GE(s?oo:Ra(a)),S=[];return UA(d,function(k){!to(hr,k)||s&&!to(Ne,k)||VI(S,hr[k])}),S};Wr||(Vt=function(){if(qI(si,this))throw new cr("Symbol is not a constructor");var a=arguments.length&&arguments[0]!==void 0?Td(arguments[0]):void 0,s=_(a),d=function(S){var k=this===void 0?OI:this;k===Ne&&ts(d,oo,S),to(k,lA)&&to(k[lA],s)&&(k[lA][s]=!1);var N=is(1,S);try{Tt(k,s,N)}catch($){if(!($ instanceof ji))throw $;ME(k,s,N)}};return Vr&&Zr&&Tt(Ne,s,{configurable:!0,set:d}),jr(s,a)},p(si=Vt[xe],"toString",function(){return Le(this).tag}),p(Vt,"withoutSetter",function(a){return jr(_(a),a)}),Q.f=WI,D.f=Xr,E.f=lr,B.f=kE,MC.f=_d.f=kC,h.f=NC,AA.f=function(a){return jr(b(a),a)},Vr&&(m(si,"description",{configurable:!0,get:function(){return Le(this).description}}),p(Ne,"propertyIsEnumerable",WI,{unsafe:!0}))),es({global:!0,constructor:!0,wrap:!0,forced:!Wr,sham:!Wr},{Symbol:Vt}),UA(Ud(gs),function(a){nA(a)}),es({target:Ce,stat:!0,forced:!Wr},{useSetter:function(){Zr=!0},useSimple:function(){Zr=!1}}),es({target:"Object",stat:!0,forced:!Wr,sham:!Vr},{create:function(a,s){return s===void 0?be(a):lr(be(a),s)},defineProperty:Xr,defineProperties:lr,getOwnPropertyDescriptor:kE}),es({target:"Object",stat:!0,forced:!Wr},{getOwnPropertyNames:kC}),fA(),dA(Vt,Ce),Y[lA]=!0;var yh=Pt&&!!Symbol.for&&!!Symbol.keyFor,Ld=Ze,bd=Vo,NE=di,Rh=wo,rs=Ca,FC=yh,Ig=rs("string-to-symbol-registry"),vC=rs("symbol-to-string-registry");Ld({target:"Symbol",stat:!0,forced:!FC},{for:function(a){var s=Rh(a);if(NE(Ig,s))return Ig[s];var d=bd("Symbol")(s);return Ig[s]=d,vC[d]=s,d}});var TC=Ze,Yd=di,jR=Ba,UC=W,Jd=yh,xd=Ca("symbol-to-string-registry");TC({target:"Symbol",stat:!0,forced:!Jd},{keyFor:function(a){if(!jR(a))throw new TypeError(UC(a)+" is not a symbol");if(Yd(xd,a))return xd[a]}});var Kd=Io,mh=Function.prototype,FE=mh.apply,_C=mh.call,ur=typeof Reflect=="object"&&Reflect.apply||(Kd?_C.bind(FE):function(){return _C.apply(FE,arguments)}),ZI=Ei,LC=fo.get,vE=Se,Za=di,TE=SyntaxError,UE=parseInt,fh=String.fromCharCode,_E=vE("".charAt),as=vE("".slice),wh=vE(/./.exec),Sh={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":`
|
||
`,"\\r":"\r","\\t":" "},jo=/^[\da-f]{4}$/i,Gh=/^[\u0000-\u001F]$/,ma=!Je(function(){var a="9007199254740993",s=JSON.rawJSON(a);return!JSON.isRawJSON(s)||JSON.stringify(s)!==a}),Hd=Ze,bC=Vo,LE=ur,YC=gi,jI=Se,Od=Je,JC=zn,XI=Ot,XR=function(a){if(!ZI(a))return!1;var s=LC(a);return!!s&&s.type==="RawJSON"},xC=Ba,zI=jt,KC=wo,Is=Cr,qd=function(a,s){for(var d=!0,S="";s<a.length;){var k=_E(a,s);if(k==="\\"){var N=as(a,s,s+2);if(Za(Sh,N))S+=Sh[N],s+=2;else{if(N!=="\\u")throw new TE('Unknown escape sequence: "'+N+'"');var $=as(a,s+=2,s+4);if(!wh(jo,$))throw new TE("Bad Unicode escape at: "+s);S+=fh(UE($,16)),s+=4}}else{if(k==='"'){d=!1,s++;break}if(wh(Gh,k))throw new TE("Bad control character in string literal at: "+s);S+=k,s++}}if(d)throw new TE("Unterminated string at: "+s);return{value:S,end:s}},Pd=qa,bE=Pt,ns=ma,fg=String,Co=bC("JSON","stringify"),dr=jI(/./.exec),Dr=jI("".charAt),$I=jI("".charCodeAt),YE=jI("".replace),Mh=jI("".slice),Xo=jI([].push),kh=jI(1.1.toString),Vd=/[\uD800-\uDFFF]/g,pr=/^[\uD800-\uDBFF]$/,HC=/^[\uDC00-\uDFFF]$/,JE=Pd(),Z=JE.length,q=!bE||Od(function(){var a=bC("Symbol")("stringify detection");return Co([a])!=="[null]"||Co({a})!=="{}"||Co(Object(a))!=="{}"}),uA=Od(function(){return Co("\uDF06\uD834")!=='"\\udf06\\ud834"'||Co("\uDEAD")!=='"\\udead"'}),bA=q?function(a,s){var d=Is(arguments),S=XA(s);if(XI(S)||a!==void 0&&!xC(a))return d[1]=function(k,N){if(XI(S)&&(N=YC(S,this,fg(k),N)),!xC(N))return N},LE(Co,null,d)}:Co,VA=function(a,s,d){var S=Dr(d,s-1),k=Dr(d,s+1);return dr(pr,a)&&!dr(HC,k)||dr(HC,a)&&!dr(pr,S)?"\\u"+kh($I(a,0),16):a},XA=function(a){if(XI(a))return a;if(JC(a)){for(var s=a.length,d=[],S=0;S<s;S++){var k=a[S];typeof k=="string"?Xo(d,k):typeof k!="number"&&zI(k)!=="Number"&&zI(k)!=="String"||Xo(d,KC(k))}var N=d.length,$=!0;return function(v,P){if($)return $=!1,P;if(JC(this))return P;for(var j=0;j<N;j++)if(d[j]===v)return P}}};Co&&Hd({target:"JSON",stat:!0,arity:3,forced:q||uA||!ns},{stringify:function(a,s,d){var S=XA(s),k=[],N=bA(a,function(DA,kA){var _A=XI(S)?YC(S,this,fg(DA),kA):kA;return!ns&&XR(_A)?JE+(Xo(k,_A.rawJSON)-1):_A},d);if(typeof N!="string"||(uA&&(N=YE(N,Vd,VA)),ns))return N;for(var $="",v=N.length,P=0;P<v;P++){var j=Dr(N,P);if(j==='"'){var K=qd(N,++P).end-1,cA=Mh(N,P,K);$+=Mh(cA,0,Z)===JE?k[Mh(cA,Z)]:'"'+cA+'"',P=K}else $+=j}return $}});var re=CE,se=Ti;Ze({target:"Object",stat:!0,forced:!Pt||Je(function(){re.f(1)})},{getOwnPropertySymbols:function(a){var s=re.f;return s?s(se(a)):[]}});var me=Ze,pe=xt,ve=Se,ze=di,st=Ot,Et=ci,et=wo,hi=eo,pi=Ah,Kt=at.Symbol,Xi=Kt&&Kt.prototype;if(pe&&st(Kt)&&(!("description"in Xi)||Kt().description!==void 0)){var Qo={},OC=function(){var a=arguments.length<1||arguments[0]===void 0?void 0:et(arguments[0]),s=Et(Xi,this)?new Kt(a):a===void 0?Kt():Kt(a);return a===""&&(Qo[s]=!0),s};pi(OC,Kt),OC.prototype=Xi,Xi.constructor=OC;var Wd=String(Kt("description detection"))==="Symbol(description detection)",xE=ve(Xi.valueOf),An=ve(Xi.toString),Nh=/^Symbol\((.*)\)[^)]+$/,zR=ve("".replace),i0=ve("".slice);hi(Xi,"description",{configurable:!0,get:function(){var a=xE(this);if(ze(Qo,a))return"";var s=An(a),d=Wd?i0(s,7,-1):zR(s,Nh,"$1");return d===""?void 0:d}}),me({global:!0,constructor:!0,forced:!0},{Symbol:OC})}var o0=TypeError,g0=function(a){if(a>9007199254740991)throw o0("Maximum allowed index exceeded");return a},$R=xt,Am=Ki,r0=tg,Zd=function(a,s,d){$R?Am.f(a,s,r0(0,d)):a[s]=d},zT=Je,$T=wI,AU=Xt("species"),Fh=function(a){return $T>=51||!zT(function(){var s=[];return(s.constructor={})[AU]=function(){return{foo:1}},s[a](Boolean).foo!==1})},a0=Ze,eU=Je,tU=zn,I0=Ei,n0=Ti,em=Rg,s0=g0,E0=Zd,vh=Ui,B0=Fh,Th=wI,KE=Xt("isConcatSpreadable"),C0=Th>=51||!eU(function(){var a=[];return a[KE]=!1,a.concat()[0]!==a}),tm=function(a){if(!I0(a))return!1;var s=a[KE];return s!==void 0?!!s:tU(a)};a0({target:"Array",proto:!0,arity:1,forced:!C0||!B0("concat")},{concat:function(a){var s,d,S,k,N,$=n0(this),v=vh($,0),P=0;for(s=-1,S=arguments.length;s<S;s++)if(tm(N=s===-1?$:arguments[s]))for(k=em(N),s0(P+k),d=0;d<k;d++,P++)d in N&&E0(v,P,N[d]);else s0(P+1),E0(v,P++,N);return v.length=P,v}});var im=Je,jd=function(a,s){var d=[][a];return!!d&&im(function(){d.call(null,s||function(){return 1},1)})},iU=Zo.forEach,om=jd("forEach")?[].forEach:function(a){return iU(this,a,arguments.length>1?arguments[1]:void 0)};Ze({target:"Array",proto:!0,forced:[].forEach!==om},{forEach:om}),Ze({target:"Array",stat:!0},{isArray:zn});var Q0=Xt,c0=So,oU=Ki.f,gm=Q0("unscopables"),rm=Array.prototype;rm[gm]===void 0&&oU(rm,gm,{configurable:!0,value:c0(null)});var ss,h0,am,Uh=function(a){rm[gm][a]=!0},qC={},Xd=!Je(function(){function a(){}return a.prototype.constructor=null,Object.getPrototypeOf(new a)!==a.prototype}),gU=di,rU=Ot,aU=Ti,Es=Xd,l0=Jr("IE_PROTO"),PC=Object,u0=PC.prototype,zo=Es?PC.getPrototypeOf:function(a){var s=aU(a);if(gU(s,l0))return s[l0];var d=s.constructor;return rU(d)&&s instanceof d?d.prototype:s instanceof PC?u0:null},IU=Je,nU=Ot,d0=Ei,D0=zo,p0=Eo,zd=Xt("iterator"),y0=!1;[].keys&&("next"in(am=[].keys())?(h0=D0(D0(am)))!==Object.prototype&&(ss=h0):y0=!0);var R0=!d0(ss)||IU(function(){var a={};return ss[zd].call(a)!==a});R0&&(ss={}),nU(ss[zd])||p0(ss,zd,function(){return this});var Im={IteratorPrototype:ss,BUGGY_SAFARI_ITERATORS:y0},sU=Im.IteratorPrototype,EU=So,nm=tg,sm=Da,BU=qC,Em=function(){return this},CU=Se,m0=LA,QU=Ei,Bm=function(a){return QU(a)||a===null},_h=String,f0=TypeError,Cm=function(a,s,d){try{return CU(m0(Object.getOwnPropertyDescriptor(a,s)[d]))}catch{}},Qm=Ei,w0=og,S0=function(a){if(Bm(a))return a;throw new f0("Can't set "+_h(a)+" as a prototype")},en=Object.setPrototypeOf||("__proto__"in{}?(function(){var a,s=!1,d={};try{(a=Cm(Object.prototype,"__proto__","set"))(d,[]),s=d instanceof Array}catch{}return function(S,k){return w0(S),S0(k),Qm(S)&&(s?a(S,k):S.__proto__=k),S}})():void 0),G0=Ze,cU=gi,hU=Ot,M0=function(a,s,d,S){var k=s+" Iterator";return a.prototype=EU(sU,{next:nm(1,d)}),sm(a,k,!1),BU[k]=Em,a},cm=zo,HE=en,hm=Da,lm=Yr,Lh=Eo,k0=qC,N0=Hi.PROPER,lU=Hi.CONFIGURABLE,F0=Im.IteratorPrototype,tn=Im.BUGGY_SAFARI_ITERATORS,bh=Xt("iterator"),um="keys",OE="values",v0="entries",uU=function(){return this},dm=function(a,s,d,S,k,N,$){M0(d,s,S);var v,P,j,K=function(tA){if(tA===k&&WA)return WA;if(!tn&&tA&&tA in kA)return kA[tA];switch(tA){case um:case OE:case v0:return function(){return new d(this,tA)}}return function(){return new d(this)}},cA=s+" Iterator",DA=!1,kA=a.prototype,_A=kA[bh]||kA["@@iterator"]||k&&kA[k],WA=!tn&&_A||K(k),wA=s==="Array"&&kA.entries||_A;if(wA&&(v=cm(wA.call(new a)))!==Object.prototype&&v.next&&(cm(v)!==F0&&(HE?HE(v,F0):hU(v[bh])||Lh(v,bh,uU)),hm(v,cA,!0)),N0&&k===OE&&_A&&_A.name!==OE&&(lU?lm(kA,"name",OE):(DA=!0,WA=function(){return cU(_A,this)})),k)if(P={values:K(OE),keys:N?WA:K(um),entries:K(v0)},$)for(j in P)(tn||DA||!(j in kA))&&Lh(kA,j,P[j]);else G0({target:s,proto:!0,forced:tn||DA},P);return kA[bh]!==WA&&Lh(kA,bh,WA,{name:k}),k0[s]=WA,P},Dm=function(a,s){return{value:a,done:s}},pm=Ft,$d=Uh,ym=qC,Rm=fo,AD=Ki.f,mm=dm,qE=Dm,eD=xt,T0="Array Iterator",fm=Rm.set,Yh=Rm.getterFor(T0),U0=mm(Array,"Array",function(a,s){fm(this,{type:T0,target:pm(a),index:0,kind:s})},function(){var a=Yh(this),s=a.target,d=a.index++;if(!s||d>=s.length)return a.target=null,qE(void 0,!0);switch(a.kind){case"keys":return qE(d,!1);case"values":return qE(s[d],!1)}return qE([d,s[d]],!1)},"values"),VC=ym.Arguments=ym.Array;if($d("keys"),$d("values"),$d("entries"),eD&&VC.name!=="values")try{AD(VC,"name",{value:"values"})}catch{}var dU=Ze,_0=Date,DU=Se(_0.prototype.getTime);dU({target:"Date",stat:!0},{now:function(){return DU(new _0)}});var pU=Kr,L0=wo,wm=og,yU=RangeError,Sm=Se,b0=Br,Y0=wo,PE=og,WC=Sm(function(a){var s=L0(wm(this)),d="",S=pU(a);if(S<0||S===1/0)throw new yU("Wrong number of repetitions");for(;S>0;(S>>>=1)&&(s+=s))1&S&&(d+=s);return d}),J0=Sm("".slice),RU=Math.ceil,mU=function(a){return function(s,d,S){var k,N,$=Y0(PE(s)),v=b0(d),P=$.length,j=S===void 0?" ":Y0(S);return v<=P||j===""?$:((N=WC(j,RU((k=v-P)/j.length))).length>k&&(N=J0(N,0,k)),a?$+N:N+$)}},ja=Se,Gm=Je,Bs={start:mU(!1)}.start,fU=RangeError,tD=isFinite,Cs=Math.abs,Vg=Date.prototype,iD=Vg.toISOString,x0=ja(Vg.getTime),wU=ja(Vg.getUTCDate),SU=ja(Vg.getUTCFullYear),GU=ja(Vg.getUTCHours),oD=ja(Vg.getUTCMilliseconds),MU=ja(Vg.getUTCMinutes),kU=ja(Vg.getUTCMonth),NU=ja(Vg.getUTCSeconds),K0=Gm(function(){return iD.call(new Date(-50000000000001))!=="0385-07-25T07:06:39.999Z"})||!Gm(function(){iD.call(new Date(NaN))})?function(){if(!tD(x0(this)))throw new fU("Invalid time value");var a=this,s=SU(a),d=oD(a),S=s<0?"-":s>9999?"+":"";return S+Bs(Cs(s),S?6:4,0)+"-"+Bs(kU(a)+1,2,0)+"-"+Bs(wU(a),2,0)+"T"+Bs(GU(a),2,0)+":"+Bs(MU(a),2,0)+":"+Bs(NU(a),2,0)+"."+Bs(d,3,0)+"Z"}:iD,gD=K0;Ze({target:"Date",proto:!0,forced:Date.prototype.toISOString!==gD},{toISOString:gD});var FU=Ti,vU=Ir;Ze({target:"Date",proto:!0,arity:1,forced:Je(function(){return new Date(NaN).toJSON()!==null||Date.prototype.toJSON.call({toISOString:function(){return 1}})!==1})},{toJSON:function(a){var s=FU(this),d=vU(s,"number");return typeof d!="number"||isFinite(d)?s.toISOString():null}});var H0=Se,O0=Eo,ZC=Date.prototype,Mm="Invalid Date",Jh="toString",q0=H0(ZC[Jh]),TU=H0(ZC.getTime);String(new Date(NaN))!==Mm&&O0(ZC,Jh,function(){var a=TU(this);return a==a?q0(this):Mm});var UU=Ot,km=Ei,P0=en,Xa=function(a,s,d){var S,k;return P0&&UU(S=s.constructor)&&S!==d&&km(k=S.prototype)&&k!==d.prototype&&P0(a,k),a},jC=Se(1.1.valueOf),xh=`
|
||
\v\f\r \u2028\u2029\uFEFF`,V0=og,Nm=wo,Kh=xh,rD=Se("".replace),_U=RegExp("^["+Kh+"]+"),LU=RegExp("(^|[^"+Kh+"])["+Kh+"]+$"),W0=function(a){return function(s){var d=Nm(V0(s));return 1&a&&(d=rD(d,_U,"")),2&a&&(d=rD(d,LU,"$1")),d}},Fm={trim:W0(3)},Z0=Ze,j0=xt,vm=at,X0=Eh,Tm=Se,bU=Wn,VE=di,XC=Xa,Um=ci,YU=Ba,z0=Ir,JU=Je,_m=qg.f,xU=gr.f,$0=Ki.f,KU=jC,HU=Fm.trim,aD="Number",za=vm[aD];X0[aD];var Lm=za.prototype,OU=vm.TypeError,qU=Tm("".slice),ID=Tm("".charCodeAt),PU=function(a){var s,d,S,k,N,$,v,P,j=z0(a,"number");if(YU(j))throw new OU("Cannot convert a Symbol value to a number");if(typeof j=="string"&&j.length>2){if(j=HU(j),(s=ID(j,0))===43||s===45){if((d=ID(j,2))===88||d===120)return NaN}else if(s===48){switch(ID(j,1)){case 66:case 98:S=2,k=49;break;case 79:case 111:S=8,k=55;break;default:return+j}for($=(N=qU(j,2)).length,v=0;v<$;v++)if((P=ID(N,v))<48||P>k)return NaN;return parseInt(N,S)}}return+j},bm=bU(aD,!za(" 0o1")||!za("0b1")||za("+0x1")),WE=function(a){var s,d=arguments.length<1?0:za((function(S){var k=z0(S,"number");return typeof k=="bigint"?k:PU(k)})(a));return Um(Lm,s=this)&&JU(function(){KU(s)})?XC(Object(d),this,WE):d};WE.prototype=Lm,bm&&(Lm.constructor=WE),Z0({global:!0,constructor:!0,wrap:!0,forced:bm},{Number:WE}),bm&&(function(a,s){for(var d,S=j0?_m(s):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),k=0;S.length>k;k++)VE(s,d=S[k])&&!VE(a,d)&&$0(a,d,xU(s,d))})(X0[aD],za);var VU=Ti,Ym=zo,WU=Xd;Ze({target:"Object",stat:!0,forced:Je(function(){Ym(1)}),sham:!WU},{getPrototypeOf:function(a){return Ym(VU(a))}});var AM=Ti,eM=lC;Ze({target:"Object",stat:!0,forced:Je(function(){eM(1)})},{keys:function(a){return eM(AM(a))}});var ZU=ag,jU=Or?{}.toString:function(){return"[object "+ZU(this)+"]"};Or||Eo(Object.prototype,"toString",jU,{unsafe:!0});var tM=at,XU=Je,zU=Se,iM=wo,$U=Fm.trim,oM=xh,zC=tM.parseInt,gM=tM.Symbol,Hh=gM&&gM.iterator,Jm=/^[+-]?0x/i,rM=zU(Jm.exec),xm=zC(oM+"08")!==8||zC(oM+"0x16")!==22||Hh&&!XU(function(){zC(Object(Hh))})?function(a,s){var d=$U(iM(a));return zC(d,s>>>0||(rM(Jm,d)?16:10))}:zC;Ze({global:!0,forced:parseInt!==xm},{parseInt:xm});var $C,AQ,Km,nD,Oh=at,aM=Dg,A_=jt,sD=function(a){return aM.slice(0,a.length)===a},Hm=sD("Bun/")?"BUN":sD("Cloudflare-Workers")?"CLOUDFLARE":sD("Deno/")?"DENO":sD("Node.js/")?"NODE":Oh.Bun&&typeof Bun.version=="string"?"BUN":Oh.Deno&&typeof Deno.version=="object"?"DENO":A_(Oh.process)==="process"?"NODE":Oh.window&&Oh.document?"BROWSER":"REST",Om=Hm==="NODE",e_=Vo,t_=eo,i_=xt,ED=Xt("species"),qh=function(a){var s=e_(a);i_&&s&&!s[ED]&&t_(s,ED,{configurable:!0,get:function(){return this}})},o_=ci,g_=TypeError,eQ=function(a,s){if(o_(s,a))return a;throw new g_("Incorrect invocation")},IM=fC,r_=W,a_=TypeError,nM=function(a){if(IM(a))return a;throw new a_(r_(a)+" is not a constructor")},sM=Zi,I_=nM,n_=_r,s_=Xt("species"),E_=TypeError,EM=function(a,s){if(a<s)throw new E_("Not enough arguments");return a},qm=/(?:ipad|iphone|ipod).*applewebkit/i.test(Dg),yr=at,B_=ur,C_=pa,BM=Ot,BD=di,CM=Je,Pm=rh,QM=Cr,cM=MI,hM=EM,Q_=qm,Vm=Om,CD=yr.setImmediate,lM=yr.clearImmediate,c_=yr.process,Wm=yr.Dispatch,uM=yr.Function,dM=yr.MessageChannel,DM=yr.String,Zm=0,Ph={},pM="onreadystatechange";CM(function(){$C=yr.location});var jm=function(a){if(BD(Ph,a)){var s=Ph[a];delete Ph[a],s()}},QD=function(a){return function(){jm(a)}},Xm=function(a){jm(a.data)},cD=function(a){yr.postMessage(DM(a),$C.protocol+"//"+$C.host)};CD&&lM||(CD=function(a){hM(arguments.length,1);var s=BM(a)?a:uM(a),d=QM(arguments,1);return Ph[++Zm]=function(){B_(s,void 0,d)},AQ(Zm),Zm},lM=function(a){delete Ph[a]},Vm?AQ=function(a){c_.nextTick(QD(a))}:Wm&&Wm.now?AQ=function(a){Wm.now(QD(a))}:dM&&!Q_?(nD=(Km=new dM).port2,Km.port1.onmessage=Xm,AQ=C_(nD.postMessage,nD)):yr.addEventListener&&BM(yr.postMessage)&&!yr.importScripts&&$C&&$C.protocol!=="file:"&&!CM(cD)?(AQ=cD,yr.addEventListener("message",Xm,!1)):AQ=pM in cM("script")?function(a){Pm.appendChild(cM("script"))[pM]=function(){Pm.removeChild(this),jm(a)}}:function(a){setTimeout(QD(a),0)});var hD={set:CD},lD=at,h_=xt,l_=Object.getOwnPropertyDescriptor,zm=function(){this.head=null,this.tail=null};zm.prototype={add:function(a){var s={item:a,next:null},d=this.tail;d?d.next=s:this.head=s,this.tail=s},get:function(){var a=this.head;if(a)return(this.head=a.next)===null&&(this.tail=null),a.item}};var tQ,$m,Af,uD,yM,RM=zm,mM=/ipad|iphone|ipod/i.test(Dg)&&typeof Pebble<"u",u_=/web0s(?!.*chrome)/i.test(Dg),Qs=at,Vh=function(a){if(!h_)return lD[a];var s=l_(lD,a);return s&&s.value},fM=pa,ef=hD.set,d_=RM,D_=qm,p_=mM,wM=u_,tf=Om,of=Qs.MutationObserver||Qs.WebKitMutationObserver,SM=Qs.document,gf=Qs.process,dD=Qs.Promise,rf=Vh("queueMicrotask");if(!rf){var DD=new d_,pD=function(){var a,s;for(tf&&(a=gf.domain)&&a.exit();s=DD.get();)try{s()}catch(d){throw DD.head&&tQ(),d}a&&a.enter()};D_||tf||wM||!of||!SM?!p_&&dD&&dD.resolve?((uD=dD.resolve(void 0)).constructor=dD,yM=fM(uD.then,uD),tQ=function(){yM(pD)}):tf?tQ=function(){gf.nextTick(pD)}:(ef=fM(ef,Qs),tQ=function(){ef(pD)}):($m=!0,Af=SM.createTextNode(""),new of(pD).observe(Af,{characterData:!0}),tQ=function(){Af.data=$m=!$m}),rf=function(a){DD.head||tQ(),DD.add(a)}}var y_=rf,af=function(a){try{return{error:!1,value:a()}}catch(s){return{error:!0,value:s}}},Wh=at.Promise,GM=at,Zh=Wh,cs=Ot,iQ=Wn,R_=ha,m_=Xt,jh=Hm,yD=wI;Zh&&Zh.prototype;var MM=m_("species"),If=!1,kM=cs(GM.PromiseRejectionEvent),ZE=iQ("Promise",function(){var a=R_(Zh),s=a!==String(Zh);if(!s&&yD===66)return!0;if(!yD||yD<51||!/native code/.test(a)){var d=new Zh(function(k){k(1)}),S=function(k){k(function(){},function(){})};if((d.constructor={})[MM]=S,!(If=d.then(function(){})instanceof S))return!0}return!(s||jh!=="BROWSER"&&jh!=="DENO"||kM)}),on={CONSTRUCTOR:ZE,REJECTION_EVENT:kM,SUBCLASSING:If},oQ={},nf=LA,f_=TypeError,w_=function(a){var s,d;this.promise=new a(function(S,k){if(s!==void 0||d!==void 0)throw new f_("Bad Promise constructor");s=S,d=k}),this.resolve=nf(s),this.reject=nf(d)};oQ.f=function(a){return new w_(a)};var gn,sf,Ef,jE,RD=Ze,mD=Om,hs=at,S_=Eh,gQ=gi,NM=Eo,FM=en,G_=Da,M_=qh,fD=LA,rQ=Ot,k_=Ei,N_=eQ,F_=function(a,s){var d,S=sM(a).constructor;return S===void 0||n_(d=sM(S)[s_])?s:I_(d)},wD=hD.set,Xh=y_,vM=function(a,s){try{arguments.length===1?console.error(a):console.error(a,s)}catch{}},Bf=af,SD=RM,TM=fo,GD=Wh,UM=oQ,MD="Promise",Cf=on.CONSTRUCTOR,v_=on.REJECTION_EVENT,_M=on.SUBCLASSING,Qf=TM.getterFor(MD),T_=TM.set,aQ=GD&&GD.prototype,IQ=GD,kD=aQ,LM=hs.TypeError,cf=hs.document,hf=hs.process,lf=UM.f,bM=lf,YM=!!(cf&&cf.createEvent&&hs.dispatchEvent),JM="unhandledrejection",uf=function(a){var s;return!(!k_(a)||!rQ(s=a.then))&&s},df=function(a,s){var d,S,k,N=s.value,$=s.state===1,v=$?a.ok:a.fail,P=a.resolve,j=a.reject,K=a.domain;try{v?($||(s.rejection===2&&U_(s),s.rejection=1),v===!0?d=N:(K&&K.enter(),d=v(N),K&&(K.exit(),k=!0)),d===a.promise?j(new LM("Promise-chain cycle")):(S=uf(d))?gQ(S,d,P,j):P(d)):j(N)}catch(cA){K&&!k&&K.exit(),j(cA)}},xM=function(a,s){a.notified||(a.notified=!0,Xh(function(){for(var d,S=a.reactions;d=S.get();)df(d,a);a.notified=!1,s&&!a.rejection&&pf(a)}))},Df=function(a,s,d){var S,k;YM?((S=cf.createEvent("Event")).promise=s,S.reason=d,S.initEvent(a,!1,!0),hs.dispatchEvent(S)):S={promise:s,reason:d},!v_&&(k=hs["on"+a])?k(S):a===JM&&vM("Unhandled promise rejection",d)},pf=function(a){gQ(wD,hs,function(){var s,d=a.facade,S=a.value;if(KM(a)&&(s=Bf(function(){mD?hf.emit("unhandledRejection",S,d):Df(JM,d,S)}),a.rejection=mD||KM(a)?2:1,s.error))throw s.value})},KM=function(a){return a.rejection!==1&&!a.parent},U_=function(a){gQ(wD,hs,function(){var s=a.facade;mD?hf.emit("rejectionHandled",s):Df("rejectionhandled",s,a.value)})},nQ=function(a,s,d){return function(S){a(s,S,d)}},sQ=function(a,s,d){a.done||(a.done=!0,d&&(a=d),a.value=s,a.state=2,xM(a,!0))},ND=function(a,s,d){if(!a.done){a.done=!0,d&&(a=d);try{if(a.facade===s)throw new LM("Promise can't be resolved itself");var S=uf(s);S?Xh(function(){var k={done:!1};try{gQ(S,s,nQ(ND,k,a),nQ(sQ,k,a))}catch(N){sQ(k,N,a)}}):(a.value=s,a.state=1,xM(a,!1))}catch(k){sQ({done:!1},k,a)}}};if(Cf&&(kD=(IQ=function(a){N_(this,kD),fD(a),gQ(gn,this);var s=Qf(this);try{a(nQ(ND,s),nQ(sQ,s))}catch(d){sQ(s,d)}}).prototype,(gn=function(a){T_(this,{type:MD,done:!1,notified:!1,parent:!1,reactions:new SD,rejection:!1,state:0,value:null})}).prototype=NM(kD,"then",function(a,s){var d=Qf(this),S=lf(F_(this,IQ));return d.parent=!0,S.ok=!rQ(a)||a,S.fail=rQ(s)&&s,S.domain=mD?hf.domain:void 0,d.state===0?d.reactions.add(S):Xh(function(){df(S,d)}),S.promise}),sf=function(){var a=new gn,s=Qf(a);this.promise=a,this.resolve=nQ(ND,s),this.reject=nQ(sQ,s)},UM.f=lf=function(a){return a===IQ||a===Ef?new sf(a):bM(a)},rQ(GD)&&aQ!==Object.prototype)){jE=aQ.then,_M||NM(aQ,"then",function(a,s){var d=this;return new IQ(function(S,k){gQ(jE,d,S,k)}).then(a,s)},{unsafe:!0});try{delete aQ.constructor}catch{}FM&&FM(aQ,kD)}RD({global:!0,constructor:!0,wrap:!0,forced:Cf},{Promise:IQ}),Ef=S_.Promise,G_(IQ,MD,!1),M_(MD);var __=qC,HM=Xt("iterator"),yf=Array.prototype,OM=function(a){return a!==void 0&&(__.Array===a||yf[HM]===a)},Rf=ag,qM=ae,L_=_r,mf=qC,b_=Xt("iterator"),zh=function(a){if(!L_(a))return qM(a,b_)||qM(a,"@@iterator")||mf[Rf(a)]},Y_=gi,J_=LA,PM=Zi,VM=W,x_=zh,K_=TypeError,WM=function(a,s){var d=arguments.length<2?x_(a):s;if(J_(d))return PM(Y_(d,a));throw new K_(VM(a)+" is not iterable")},H_=gi,ZM=Zi,O_=ae,jM=pa,FD=gi,q_=Zi,P_=W,V_=OM,W_=Rg,XM=ci,Z_=WM,j_=zh,XE=function(a,s,d){var S,k;ZM(a);try{if(!(S=O_(a,"return"))){if(s==="throw")throw d;return d}S=H_(S,a)}catch(N){k=!0,S=N}if(s==="throw")throw d;if(k)throw S;return ZM(S),d},X_=TypeError,vD=function(a,s){this.stopped=a,this.result=s},zM=vD.prototype,TD=function(a,s,d){var S,k,N,$,v,P,j,K=d&&d.that,cA=!(!d||!d.AS_ENTRIES),DA=!(!d||!d.IS_RECORD),kA=!(!d||!d.IS_ITERATOR),_A=!(!d||!d.INTERRUPTED),WA=jM(s,K),wA=function(F){return S&&XE(S,"normal"),new vD(!0,F)},tA=function(F){return cA?(q_(F),_A?WA(F[0],F[1],wA):WA(F[0],F[1])):_A?WA(F,wA):WA(F)};if(DA)S=a.iterator;else if(kA)S=a;else{if(!(k=j_(a)))throw new X_(P_(a)+" is not iterable");if(V_(k)){for(N=0,$=W_(a);$>N;N++)if((v=tA(a[N]))&&XM(zM,v))return v;return new vD(!1)}S=Z_(a,k)}for(P=DA?a.next:S.next;!(j=FD(P,S)).done;){try{v=tA(j.value)}catch(F){XE(S,"throw",F)}if(typeof v=="object"&&v&&XM(zM,v))return v}return new vD(!1)},$M=Xt("iterator"),UD=!1;try{var z_=0,Ak={next:function(){return{done:!!z_++}},return:function(){UD=!0}};Ak[$M]=function(){return this},Array.from(Ak,function(){throw 2})}catch{}var ff=function(a,s){try{if(!s&&!UD)return!1}catch{return!1}var d=!1;try{var S={};S[$M]=function(){return{next:function(){return{done:d=!0}}}},a(S)}catch{}return d},wf=Wh,Sf=on.CONSTRUCTOR||!ff(function(a){wf.all(a).then(void 0,function(){})}),ek=gi,$_=LA,AL=oQ,tk=af,eL=TD;Ze({target:"Promise",stat:!0,forced:Sf},{all:function(a){var s=this,d=AL.f(s),S=d.resolve,k=d.reject,N=tk(function(){var $=$_(s.resolve),v=[],P=0,j=1;eL(a,function(K){var cA=P++,DA=!1;j++,ek($,s,K).then(function(kA){DA||(DA=!0,v[cA]=kA,--j||S(v))},k)}),--j||S(v)});return N.error&&k(N.value),d.promise}});var ik=Ze,tL=on.CONSTRUCTOR,Gf=Wh,Mf=Vo,ok=Ot,iL=Eo,gk=Gf&&Gf.prototype;if(ik({target:"Promise",proto:!0,forced:tL,real:!0},{catch:function(a){return this.then(void 0,a)}}),ok(Gf)){var rk=Mf("Promise").prototype.catch;gk.catch!==rk&&iL(gk,"catch",rk,{unsafe:!0})}var oL=gi,gL=LA,rL=oQ,ak=af,aL=TD;Ze({target:"Promise",stat:!0,forced:Sf},{race:function(a){var s=this,d=rL.f(s),S=d.reject,k=ak(function(){var N=gL(s.resolve);aL(a,function($){oL(N,s,$).then(d.resolve,S)})});return k.error&&S(k.value),d.promise}});var Wg=oQ;Ze({target:"Promise",stat:!0,forced:on.CONSTRUCTOR},{reject:function(a){var s=Wg.f(this);return(0,s.reject)(a),s.promise}});var EQ=Zi,_D=Ei,kf=oQ,IL=Ze,Nf=on.CONSTRUCTOR,wg=function(a,s){if(EQ(a),_D(s)&&s.constructor===a)return s;var d=kf.f(a);return(0,d.resolve)(s),d.promise};Vo("Promise"),IL({target:"Promise",stat:!0,forced:Nf},{resolve:function(a){return wg(this,a)}});var Ik=ur,nk=LA,$h=Zi;Ze({target:"Reflect",stat:!0,forced:!Je(function(){Reflect.apply(function(){})})},{apply:function(a,s,d){return Ik(nk(a),s,$h(d))}});var sk=Zi,Ek=function(){var a=sk(this),s="";return a.hasIndices&&(s+="d"),a.global&&(s+="g"),a.ignoreCase&&(s+="i"),a.multiline&&(s+="m"),a.dotAll&&(s+="s"),a.unicode&&(s+="u"),a.unicodeSets&&(s+="v"),a.sticky&&(s+="y"),s},Ff=Je,Al=at.RegExp,vf=Ff(function(){var a=Al("a","y");return a.lastIndex=2,a.exec("abcd")!==null}),nL=vf||Ff(function(){return!Al("a","y").sticky}),LD={BROKEN_CARET:vf||Ff(function(){var a=Al("^r","gy");return a.lastIndex=2,a.exec("str")!==null}),MISSED_STICKY:nL,UNSUPPORTED_Y:vf},BQ=Je,sL=at.RegExp,Bk=BQ(function(){var a=sL(".","s");return!(a.dotAll&&a.test(`
|
||
`)&&a.flags==="s")}),Ck=Je,bD=at.RegExp,YD=Ck(function(){var a=bD("(?<a>b)","g");return a.exec("b").groups.a!=="b"||"b".replace(a,"$<a>c")!=="bc"}),zE=gi,el=Se,$a=wo,fa=Ek,EL=LD,Tf=So,Qk=fo.get,Uf=Bk,ck=YD,rn=Ca("native-string-replace",String.prototype.replace),tl=RegExp.prototype.exec,AI=tl,hk=el("".charAt),lk=el("".indexOf),an=el("".replace),JD=el("".slice),il=(function(){var a=/a/,s=/b*/g;return zE(tl,a,"a"),zE(tl,s,"a"),a.lastIndex!==0||s.lastIndex!==0})(),uk=EL.BROKEN_CARET,_f=/()??/.exec("")[1]!==void 0;(il||_f||uk||Uf||ck)&&(AI=function(a){var s,d,S,k,N,$,v,P=this,j=Qk(P),K=$a(a),cA=j.raw;if(cA)return cA.lastIndex=P.lastIndex,s=zE(AI,cA,K),P.lastIndex=cA.lastIndex,s;var DA=j.groups,kA=uk&&P.sticky,_A=zE(fa,P),WA=P.source,wA=0,tA=K;if(kA&&(_A=an(_A,"y",""),lk(_A,"g")===-1&&(_A+="g"),tA=JD(K,P.lastIndex),P.lastIndex>0&&(!P.multiline||P.multiline&&hk(K,P.lastIndex-1)!==`
|
||
`)&&(WA="(?: "+WA+")",tA=" "+tA,wA++),d=new RegExp("^(?:"+WA+")",_A)),_f&&(d=new RegExp("^"+WA+"$(?!\\s)",_A)),il&&(S=P.lastIndex),k=zE(tl,kA?d:P,tA),kA?k?(k.input=JD(k.input,wA),k[0]=JD(k[0],wA),k.index=P.lastIndex,P.lastIndex+=k[0].length):P.lastIndex=0:il&&k&&(P.lastIndex=P.global?k.index+k[0].length:S),_f&&k&&k.length>1&&zE(rn,k[0],d,function(){for(N=1;N<arguments.length-2;N++)arguments[N]===void 0&&(k[N]=void 0)}),k&&DA)for(k.groups=$=Tf(null),N=0;N<DA.length;N++)$[(v=DA[N])[0]]=k[v[1]];return k});var xD=AI;Ze({target:"RegExp",proto:!0,forced:/./.exec!==xD},{exec:xD});var $E=Je,Lf=at.RegExp,BL=!$E(function(){var a=!0;try{Lf(".","d")}catch{a=!1}var s={},d="",S=a?"dgimsy":"gimsy",k=function(v,P){Object.defineProperty(s,v,{get:function(){return d+=P,!0}})},N={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var $ in a&&(N.hasIndices="d"),N)k($,N[$]);return Object.getOwnPropertyDescriptor(Lf.prototype,"flags").get.call(s)!==S||d!==S}),CL=gi,QL=di,cL=ci,dk={correct:BL},hL=Ek,lL=RegExp.prototype,ol=dk.correct?function(a){return a.flags}:function(a){return dk.correct||!cL(lL,a)||QL(a,"flags")?a.flags:CL(hL,a)},uL=Hi.PROPER,dL=Eo,DL=Zi,Dk=wo,pk=Je,pL=ol,bf="toString",yk=RegExp.prototype,Rk=yk[bf],yL=pk(function(){return Rk.call({source:"a",flags:"b"})!=="/a/b"}),RL=uL&&Rk.name!==bf;(yL||RL)&&dL(yk,bf,function(){var a=DL(this);return"/"+Dk(a.source)+"/"+Dk(pL(a))},{unsafe:!0});var mk=gi,fk=Eo,mL=xD,wk=Je,Sk=Xt,Gk=Yr,Mk=Sk("species"),Yf=RegExp.prototype,kk=function(a,s,d,S){var k=Sk(a),N=!wk(function(){var j={};return j[k]=function(){return 7},""[a](j)!==7}),$=N&&!wk(function(){var j=!1,K=/a/;if(a==="split"){var cA={};cA[Mk]=function(){return K},(K={constructor:cA,flags:""})[k]=/./[k]}return K.exec=function(){return j=!0,null},K[k](""),!j});if(!N||!$||d){var v=/./[k],P=s(k,""[a],function(j,K,cA,DA,kA){var _A=K.exec;return _A===mL||_A===Yf.exec?N&&!kA?{done:!0,value:mk(v,K,cA,DA)}:{done:!0,value:mk(j,cA,K,DA)}:{done:!1}});fk(String.prototype,a,P[0]),fk(Yf,k,P[1])}S&&Gk(Yf[k],"sham",!0)},Jf=Se,Nk=Kr,fL=wo,wL=og,SL=Jf("".charAt),Fk=Jf("".charCodeAt),GL=Jf("".slice),ML=function(a){return function(s,d){var S,k,N=fL(wL(s)),$=Nk(d),v=N.length;return $<0||$>=v?a?"":void 0:(S=Fk(N,$))<55296||S>56319||$+1===v||(k=Fk(N,$+1))<56320||k>57343?a?SL(N,$):S:a?GL(N,$,$+2):k-56320+(S-55296<<10)+65536}},xf={charAt:ML(!0)},kL=xf.charAt,Kf=function(a,s,d){return s+(d?kL(a,s).length:1)},vk=gi,Tk=Zi,Uk=Ot,_k=jt,NL=xD,FL=TypeError,CQ=function(a,s){var d=a.exec;if(Uk(d)){var S=vk(d,a,s);return S!==null&&Tk(S),S}if(_k(a)==="RegExp")return vk(NL,a,s);throw new FL("RegExp#exec called on incompatible receiver")},Lk=gi,bk=kk,vL=Zi,gl=Ei,TL=Br,KD=wo,Yk=og,Hf=ae,UL=Kf,Jk=ol,QQ=CQ,xk=Se("".indexOf);bk("match",function(a,s,d){return[function(S){var k=Yk(this),N=gl(S)?Hf(S,a):void 0;return N?Lk(N,S,k):new RegExp(S)[a](KD(k))},function(S){var k=vL(this),N=KD(S),$=d(s,k,N);if($.done)return $.value;var v=KD(Jk(k));if(xk(v,"g")===-1)return QQ(k,N);var P=xk(v,"u")!==-1;k.lastIndex=0;for(var j,K=[],cA=0;(j=QQ(k,N))!==null;){var DA=KD(j[0]);K[cA]=DA,DA===""&&(k.lastIndex=UL(N,TL(k.lastIndex),P)),cA++}return cA===0?null:K}]});var rl=Se,_L=Ti,LL=Math.floor,Of=rl("".charAt),HD=rl("".replace),qf=rl("".slice),Kk=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,bL=/\$([$&'`]|\d{1,2})/g,YL=ur,Hk=gi,al=Se,Ok=kk,qk=Je,JL=Zi,Pf=Ot,xL=Ei,KL=Kr,Pk=Br,AB=wo,Vf=og,Vk=Kf,HL=ae,OL=function(a,s,d,S,k,N){var $=d+a.length,v=S.length,P=bL;return k!==void 0&&(k=_L(k),P=Kk),HD(N,P,function(j,K){var cA;switch(Of(K,0)){case"$":return"$";case"&":return a;case"`":return qf(s,0,d);case"'":return qf(s,$);case"<":cA=k[qf(K,1,-1)];break;default:var DA=+K;if(DA===0)return j;if(DA>v){var kA=LL(DA/10);return kA===0?j:kA<=v?S[kA-1]===void 0?Of(K,1):S[kA-1]+Of(K,1):j}cA=S[DA-1]}return cA===void 0?"":cA})},OD=ol,Wk=CQ,qD=Xt("replace"),Il=Math.max,Wf=Math.min,PD=al([].concat),nl=al([].push),eB=al("".indexOf),Zf=al("".slice),Zk=function(a){return a===void 0?a:String(a)},jk="a".replace(/./,"$0")==="$0",jf=!!/./[qD]&&/./[qD]("a","$0")==="";Ok("replace",function(a,s,d){var S=jf?"$":"$0";return[function(k,N){var $=Vf(this),v=xL(k)?HL(k,qD):void 0;return v?Hk(v,k,$,N):Hk(s,AB($),k,N)},function(k,N){var $=JL(this),v=AB(k);if(typeof N=="string"&&eB(N,S)===-1&&eB(N,"$<")===-1){var P=d(s,$,v,N);if(P.done)return P.value}var j=Pf(N);j||(N=AB(N));var K,cA=AB(OD($)),DA=eB(cA,"g")!==-1;DA&&(K=eB(cA,"u")!==-1,$.lastIndex=0);for(var kA,_A=[];(kA=Wk($,v))!==null&&(nl(_A,kA),DA);)AB(kA[0])===""&&($.lastIndex=Vk(v,Pk($.lastIndex),K));for(var WA="",wA=0,tA=0;tA<_A.length;tA++){for(var F,JA=AB((kA=_A[tA])[0]),mA=Il(Wf(KL(kA.index),v.length),0),he=[],Ie=1;Ie<kA.length;Ie++)nl(he,Zk(kA[Ie]));var ye=kA.groups;if(j){var fe=PD([JA],he,mA,v);ye!==void 0&&nl(fe,ye),F=AB(YL(N,void 0,fe))}else F=OL(JA,v,mA,he,ye,N);mA>=wA&&(WA+=Zf(v,wA,mA)+F,wA=mA+JA.length)}return WA+Zf(v,wA)}]},!!qk(function(){var a=/./;return a.exec=function(){var s=[];return s.groups={a:"7"},s},"".replace(a,"$<a>")!=="7"})||!jk||jf);var VD,qL=Ei,PL=jt,VL=Xt("match"),Xk=function(a){var s;return qL(a)&&((s=a[VL])!==void 0?!!s:PL(a)==="RegExp")},WL=Xk,ZL=TypeError,zk=function(a){if(WL(a))throw new ZL("The method doesn't accept regular expressions");return a},jL=Xt("match"),Xf=function(a){var s=/./;try{"/./"[a](s)}catch{try{return s[jL]=!1,"/./"[a](s)}catch{}}return!1},$k=Ze,zf=Bo,XL=gr.f,zL=Br,AN=wo,eN=zk,$L=og,$f=Xf,tN=zf("".slice),iN=Math.min,oN=$f("startsWith");$k({target:"String",proto:!0,forced:!!(oN||(VD=XL(String.prototype,"startsWith"),!VD||VD.writable))&&!oN},{startsWith:function(a){var s=AN($L(this));eN(a);var d=zL(iN(arguments.length>1?arguments[1]:void 0,s.length)),S=AN(a);return tN(s,d,d+S.length)===S}});var gN={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},sl=MI("span").classList,rN=sl&&sl.constructor&&sl.constructor.prototype,aN=rN===Object.prototype?void 0:rN,WD=at,IN=gN,Ab=aN,ZD=om,eb=Yr,Aw=function(a){if(a&&a.forEach!==ZD)try{eb(a,"forEach",ZD)}catch{a.forEach=ZD}};for(var jD in IN)IN[jD]&&Aw(WD[jD]&&WD[jD].prototype);Aw(Ab);var nN=at,sN=gN,El=aN,eI=U0,EN=Yr,BN=Da,ew=Xt("iterator"),tw=eI.values,XD=function(a,s){if(a){if(a[ew]!==tw)try{EN(a,ew,tw)}catch{a[ew]=tw}if(BN(a,s,!0),sN[s]){for(var d in eI)if(a[d]!==eI[d])try{EN(a,d,eI[d])}catch{a[d]=eI[d]}}}};for(var zD in sN)XD(nN[zD]&&nN[zD].prototype,zD);XD(El,"DOMTokenList");var iw=function(a){return ui(a)===wt},ow=function(a){return ui(Array.isArray)===_g?Array.isArray(a):ob(a)===ki},tb=function(a){return ow(a)||(function(s){return s!==null&&ui(s)===qo})(a)},cQ=function(a){return ui(a)===_g},ib=function(a){return a instanceof Error},ob=function(a){return Object.prototype.toString.call(a).match(/^\[object (.*)\]$/)[1].toLowerCase()},Bl=0;Date.now||(Date.now=function(){return new Date().getTime()});var CN=function(){Bl===0&&(Bl=Date.now()-1);var a=Date.now()-Bl;return a>4294967295?(Bl+=4294967295,Date.now()-Bl):a},gb=function(a){return JSON.stringify(a,["message","code"])};function $D(a){return Reflect.apply(Object.prototype.toString,a,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}function In(a){if(typeof a!="string")return a;var s;try{var d=JSON.parse(a);s=ui(d)==="object"&&d?d:a}catch{s=a}return s}function Ap(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s={title:a.title,desc:a.description||"",extension:a.extension||"",is_disable_push:a.isDisablePush||!1,ios_push_type:a.iOSPushType||0,android_push_type:a.androidPushType||0,ignore_ios_badge:!!a.ignoreIOSBadge,android_vivo_classification:a.androidVIVOClassification};return a.iOSSound&&(s.ios_sound=a.iOSSound),a.androidSound&&(s.android_sound=a.androidSound),a.androidOPPOChannelID&&(s.android_oppo_channel_id=a.androidOPPOChannelID),a.androidFCMChannelID&&(s.android_fcm_channel_id=a.androidFCMChannelID),a.androidXiaoMiChannelID&&(s.android_xiaomi_channel_id=a.androidXiaoMiChannelID),a.androidHuaWeiCategory&&(s.android_huawei_category=a.androidHuaWeiCategory),s}const QN={[f.TUICallEvent.ERROR]:["code","message"],[f.TUICallEvent.KICKED_OUT]:["message"],[f.TUICallEvent.onUserSigExpired]:[],[f.TUICallEvent.ON_CALL_RECEIVED]:["callerId","calleeIdList","chatGroupID","callMediaType","userData","roomID","strRoomID","callId","callRole"],[f.TUICallEvent.ON_CALL_BEGIN]:["roomID","strRoomID","callMediaType","callRole","callId","chatGroupID"],[f.TUICallEvent.CALLING_END]:["roomID","strRoomID","callMediaType","callRole","callId","totalTime","reason","userID","chatGroupID"],[f.TUICallEvent.LINE_BUSY]:["userID"],[f.TUICallEvent.REJECT]:["userID"],[f.TUICallEvent.USER_ACCEPT]:["userID"],[f.TUICallEvent.ON_CALL_CANCELED]:["userID","callId","roomID","strRoomID","callMediaType","callRole"],[f.TUICallEvent.NO_RESP]:["userIDList"],[f.TUICallEvent.ON_USER_INVITING]:["userID"],[f.TUICallEvent.USER_ENTER]:["userID"],[f.TUICallEvent.USER_LEAVE]:["userID"],[f.TUICallEvent.USER_AUDIO_AVAILABLE]:["userID","isAudioAvailable"],[f.TUICallEvent.USER_VIDEO_AVAILABLE]:["userID","isVideoAvailable"],[f.TUICallEvent.USER_VOICE_VOLUME]:["userID","isVideoAvailable"],[f.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED]:["network"],[f.TUICallEvent.ON_CALL_NOT_CONNECTED]:["userID","callId","roomID","strRoomID","callMediaType","callRole","reason","chatGroupID"],[f.TUICallEvent.onDeviceChange]:["deviceId","type","state"]};function ep(a,s){const d=In(s),S=QN[a],k={};return a===f.TUICallEvent.ON_CALL_RECEIVED?S.forEach((N,$)=>{k[N]=N==="userIDList"&&$===1?Array.from(new Set(In(d[$]))):d[$]}):S.forEach((N,$)=>{k[N]=d[$]}),k}var cN=xt,hN=zn,rb=TypeError,ab=Object.getOwnPropertyDescriptor,lN=cN&&!(function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(a){return a instanceof TypeError}})()?function(a,s){if(hN(a)&&!ab(a,"length").writable)throw new rb("Cannot set read only .length");return a.length=s}:function(a,s){return a.length=s},gw=W,Ib=TypeError,tp=function(a,s){if(!delete a[s])throw new Ib("Cannot delete property "+gw(s)+" of "+gw(a))},nb=Ze,uN=Ti,rw=FI,dN=Kr,DN=Rg,sb=lN,Cl=g0,pN=Ui,Eb=Zd,Ql=tp,aw=Fh("splice"),yN=Math.max,Iw=Math.min;nb({target:"Array",proto:!0,forced:!aw},{splice:function(a,s){var d,S,k,N,$,v,P=uN(this),j=DN(P),K=rw(a,j),cA=arguments.length;for(cA===0?d=S=0:cA===1?(d=0,S=j-K):(d=cA-2,S=Iw(yN(dN(s),0),j-K)),Cl(j+d-S),k=pN(P,S),N=0;N<S;N++)($=K+N)in P&&Eb(k,N,P[$]);if(k.length=S,d<S){for(N=K;N<j-S;N++)v=N+d,($=N+S)in P?P[v]=P[$]:Ql(P,v);for(N=j;N>j-S+d;N--)Ql(P,N-1)}else if(d>S)for(N=j-S;N>K;N--)v=N+d-1,($=N+S-1)in P?P[v]=P[$]:Ql(P,v);for(N=0;N<d;N++)P[N+K]=arguments[N+2];return sb(P,j-S+d),k}});var cl={},RN={get exports(){return cl},set exports(a){cl=a}},Bb=Je(function(){if(typeof ArrayBuffer=="function"){var a=new ArrayBuffer(8);Object.isExtensible(a)&&Object.defineProperty(a,"a",{value:8})}}),Cb=Je,Qb=Ei,cb=jt,mN=Bb,ip=Object.isExtensible,hb=Cb(function(){ip(1)})||mN?function(a){return!!Qb(a)&&(!mN||cb(a)!=="ArrayBuffer")&&(!ip||ip(a))}:ip,lb=!Je(function(){return Object.isExtensible(Object.preventExtensions({}))}),ub=Ze,fN=Se,wN=gE,db=Ei,op=di,Db=Ki.f,SN=qg,GN=DE,nw=hb,MN=lb,sw=!1,nn=qa("meta"),pb=0,Ew=function(a){Db(a,nn,{value:{objectID:"O"+pb++,weakData:{}}})},yb=RN.exports={enable:function(){yb.enable=function(){},sw=!0;var a=SN.f,s=fN([].splice),d={};d[nn]=1,a(d).length&&(SN.f=function(S){for(var k=a(S),N=0,$=k.length;N<$;N++)if(k[N]===nn){s(k,N,1);break}return k},ub({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:GN.f}))},fastKey:function(a,s){if(!db(a))return typeof a=="symbol"?a:(typeof a=="string"?"S":"P")+a;if(!op(a,nn)){if(!nw(a))return"F";if(!s)return"E";Ew(a)}return a[nn].objectID},getWeakData:function(a,s){if(!op(a,nn)){if(!nw(a))return!0;if(!s)return!1;Ew(a)}return a[nn].weakData},onFreeze:function(a){return MN&&sw&&nw(a)&&!op(a,nn)&&Ew(a),a}};wN[nn]=!0;var Rb=Ze,kN=at,NN=Se,FN=Wn,mb=Eo,fb=cl,Bw=TD,wb=eQ,Sb=Ot,Gb=_r,Cw=Ei,ls=Je,vN=ff,Mb=Da,kb=Xa,Nb=Eo,TN=function(a,s,d){for(var S in s)Nb(a,S,s[S],d);return a},UN=So,Fb=eo,_N=TN,vb=pa,Tb=eQ,Ub=_r,_b=TD,Lb=dm,LN=Dm,bb=qh,hQ=xt,bN=cl.fastKey,YN=fo.set,gp=fo.getterFor,tB={getConstructor:function(a,s,d,S){var k=a(function(j,K){Tb(j,N),YN(j,{type:s,index:UN(null),first:null,last:null,size:0}),hQ||(j.size=0),Ub(K)||_b(K,j[S],{that:j,AS_ENTRIES:d})}),N=k.prototype,$=gp(s),v=function(j,K,cA){var DA,kA,_A=$(j),WA=P(j,K);return WA?WA.value=cA:(_A.last=WA={index:kA=bN(K,!0),key:K,value:cA,previous:DA=_A.last,next:null,removed:!1},_A.first||(_A.first=WA),DA&&(DA.next=WA),hQ?_A.size++:j.size++,kA!=="F"&&(_A.index[kA]=WA)),j},P=function(j,K){var cA,DA=$(j),kA=bN(K);if(kA!=="F")return DA.index[kA];for(cA=DA.first;cA;cA=cA.next)if(cA.key===K)return cA};return _N(N,{clear:function(){for(var j=$(this),K=j.first;K;)K.removed=!0,K.previous&&(K.previous=K.previous.next=null),K=K.next;j.first=j.last=null,j.index=UN(null),hQ?j.size=0:this.size=0},delete:function(j){var K=this,cA=$(K),DA=P(K,j);if(DA){var kA=DA.next,_A=DA.previous;delete cA.index[DA.index],DA.removed=!0,_A&&(_A.next=kA),kA&&(kA.previous=_A),cA.first===DA&&(cA.first=kA),cA.last===DA&&(cA.last=_A),hQ?cA.size--:K.size--}return!!DA},forEach:function(j){for(var K,cA=$(this),DA=vb(j,arguments.length>1?arguments[1]:void 0);K=K?K.next:cA.first;)for(DA(K.value,K.key,this);K&&K.removed;)K=K.previous},has:function(j){return!!P(this,j)}}),_N(N,d?{get:function(j){var K=P(this,j);return K&&K.value},set:function(j,K){return v(this,j===0?0:j,K)}}:{add:function(j){return v(this,j=j===0?0:j,j)}}),hQ&&Fb(N,"size",{configurable:!0,get:function(){return $(this).size}}),k},setStrong:function(a,s,d){var S=s+" Iterator",k=gp(s),N=gp(S);Lb(a,s,function($,v){YN(this,{type:S,target:$,state:k($),kind:v,last:null})},function(){for(var $=N(this),v=$.kind,P=$.last;P&&P.removed;)P=P.previous;return $.target&&($.last=P=P?P.next:$.state.first)?LN(v==="keys"?P.key:v==="values"?P.value:[P.key,P.value],!1):($.target=null,LN(void 0,!0))},d?"entries":"values",!d,!0),bb(s)}},Qw=function(a,s,d){var S=a.indexOf("Map")!==-1,k=a.indexOf("Weak")!==-1,N=S?"set":"add",$=kN[a],v=$&&$.prototype,P=$,j={},K=function(wA){var tA=NN(v[wA]);mb(v,wA,wA==="add"?function(F){return tA(this,F===0?0:F),this}:wA==="delete"?function(F){return!(k&&!Cw(F))&&tA(this,F===0?0:F)}:wA==="get"?function(F){return k&&!Cw(F)?void 0:tA(this,F===0?0:F)}:wA==="has"?function(F){return!(k&&!Cw(F))&&tA(this,F===0?0:F)}:function(F,JA){return tA(this,F===0?0:F,JA),this})};if(FN(a,!Sb($)||!(k||v.forEach&&!ls(function(){new $().entries().next()}))))P=d.getConstructor(s,a,S,N),fb.enable();else if(FN(a,!0)){var cA=new P,DA=cA[N](k?{}:-0,1)!==cA,kA=ls(function(){cA.has(1)}),_A=vN(function(wA){new $(wA)}),WA=!k&&ls(function(){for(var wA=new $,tA=5;tA--;)wA[N](tA,tA);return!wA.has(-0)});_A||((P=s(function(wA,tA){wb(wA,v);var F=kb(new $,wA,P);return Gb(tA)||Bw(tA,F[N],{that:F,AS_ENTRIES:S}),F})).prototype=v,v.constructor=P),(kA||WA)&&(K("delete"),K("has"),S&&K("get")),(WA||DA)&&K(N),k&&v.clear&&delete v.clear}return j[a]=P,Rb({global:!0,constructor:!0,forced:P!==$},j),Mb(P,a),k||d.setStrong(P,a,S),P};Qw("Map",function(a){return function(){return a(this,arguments.length?arguments[0]:void 0)}},tB);var rp,ap,JN=xf.charAt,xN=wo,KN=fo,lQ=dm,Ip=Dm,cw="String Iterator",HN=KN.set,us=KN.getterFor(cw);lQ(String,"String",function(a){HN(this,{type:cw,string:xN(a),index:0})},function(){var a,s=us(this),d=s.string,S=s.index;return S>=d.length?Ip(void 0,!0):(a=JN(d,S),s.index+=a.length,Ip(a,!1))}),rp=typeof console<"u"?console:typeof OB<"u"&&OB.console?OB.console:typeof window<"u"&&window.console?window.console:{};for(var Yb=function(){},hw=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],ON=hw.length;ON--;)ap=hw[ON],console[ap]||(rp[ap]=Yb);rp.methods=hw;var np,zr=rp;const Jb=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting,_i=(window==null?void 0:window.navigator)&&((np=window==null?void 0:window.navigator)===null||np===void 0?void 0:np.userAgent)||"",qN=/iPad/i.test(_i),xb=/iPhone/i.test(_i)&&!qN,Kb=/iPod/i.test(_i),sp=xb||qN||Kb;(function(){const a=_i.match(/OS (\d+)_/i);a&&a[1]&&a[1]})();const PN=/Android/i.test(_i);(function(){const a=_i.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!a)return null;const s=a[1]&&parseFloat(a[1]),d=a[2]&&parseFloat(a[2]);s&&d&&parseFloat(`${a[1]}.${a[2]}`)})(),(function(){const a=_i.match(/Firefox\/(\d+)/);a&&a[1]&&parseFloat(a[1])})(),/Edge\//i.test(_i)&&(function(){const a=_i.match(/Edge\/(\d+)/i);a&&a[1]&&a[1]})(),(function(){const a=_i.match(/Edg\/(\d+)/);a&&a[1]&&parseFloat(a[1])})(),(function(){const a=_i.match(/Chrome\/(\d+)/);a&&a[1]&&parseFloat(a[1])})(),(function(){const a=_i.match(/Chrome\/([\d.]+)/);a&&a[1]&&a[1]})(),(function(){const a=/MSIE\s(\d+)\.\d/.exec(_i);a&&parseFloat(a[1])})(),(function(){const a=_i.match(/Version\/([\d.]+)/);a&&a[1]&&a[1]})();const Ep=/TBS\/\d+/i.test(_i);(function(){const a=_i.match(/TBS\/(\d+)/i);a&&a[1]&&a[1]})();const VN=!Ep&&/MQQBrowser\/\d+/i.test(_i)&&/COVC\/\d+/i.test(_i);(!Ep&&/MQQBrowser\/\d+/i.test(_i)||VN)&&(function(){const a=_i.match(/ MQQBrowser\/([\d.]+)/);a&&a[1]&&a[1]})(),/(micromessenger|webbrowser)/i.test(_i)&&(function(){const a=_i.match(/MicroMessenger\/(\d+)/i);a&&a[1]&&a[1]})(),/HuaweiBrowser/i.test(_i)&&(function(){const a=_i.match(/HuaweiBrowser\/([\d.]+)/);a&&a[1]&&a[1]})();const lw=new RegExp("HeadlessChrome","i").test(_i);var ds=0,iB=new Map,Sg="%cCallEngine%c%s",sn="padding: 1px 4px;border-radius: 3px;color: #fff;background: #444;",uQ="display: inline",dQ=!(sp||PN||lw);function uw(){var a=new Date;return"[".concat(a.toLocaleTimeString("en-US",{hour12:!1}),".").concat((function(s){var d;switch(s.toString().length){case 1:d="00".concat(s);break;case 2:d="0".concat(s);break;default:d=s}return d})(a.getMilliseconds()),"]")}var kt={_data:[],_length:0,_visible:!1,arguments2String:function(a,s){var d;if(s.length===1)d="".concat(uw()," <").concat(a,"> ").concat(s[0]);else{d="".concat(uw()," <").concat(a,"> ");for(var S=0,k=s.length;S<k;S++)tb(s[S])?ib(s[S])?d+=gb(s[S]):d+=JSON.stringify(s[S]):d+=s[S],d+=" "}return d},debug:function(){if(ds<=-1){var a=this.arguments2String("DEBUG",arguments);kt.record(a,"debug"),dQ?zr.debug(Sg,sn,uQ,a):zr.debug(a)}},log:function(){if(ds<=0){var a=this.arguments2String("LOG",arguments);kt.record(a,"log"),dQ?zr.log(Sg,sn,uQ,a):zr.log(a)}},info:function(){if(ds<=1){var a=this.arguments2String("INFO",arguments);kt.record(a,"info"),dQ?zr.info(Sg,sn,uQ,a):zr.info(a)}},warn:function(){if(ds<=2){var a=this.arguments2String("WARN",arguments);kt.record(a,"warn"),dQ?zr.warn(Sg,sn,uQ,a):zr.warn(a)}},error:function(){if(ds<=3){var a=this.arguments2String("ERROR",arguments);kt.record(a,"error"),dQ?zr.error(Sg,sn,uQ,a):zr.error(a)}},time:function(a){iB.set(a,CN())},timeEnd:function(a){if(iB.has(a)){var s=CN()-iB.get(a);return iB.delete(a),s}return zr.warn("未找到对应label: ".concat(a,", 请在调用 logger.timeEnd 前,调用 logger.time")),0},setLevel:function(a){a<4&&zr.log("".concat(uw(),"set level from ").concat(ds," to ").concat(a)),ds=a},getLevel:function(){return ds},record:function(a,s){kt._length===1100&&(kt._data.splice(0,100),kt._length=1e3),kt._length++,kt._data.push("".concat(a," [").concat(s,`]
|
||
`))},getLog:function(){return kt._data}},dw={};(function(a){var s;s=()=>(()=>{var d={902:function($,v,P){var j=this&&this.__assign||function(){return j=Object.assign||function(PA){for(var GA,Ee=1,Ke=arguments.length;Ee<Ke;Ee++)for(var Fe in GA=arguments[Ee])Object.prototype.hasOwnProperty.call(GA,Fe)&&(PA[Fe]=GA[Fe]);return PA},j.apply(this,arguments)},K=this&&this.__awaiter||function(PA,GA,Ee,Ke){return new(Ee||(Ee=Promise))(function(Fe,ke){function Xe(qi){try{zt(Ke.next(qi))}catch(ot){ke(ot)}}function _t(qi){try{zt(Ke.throw(qi))}catch(ot){ke(ot)}}function zt(qi){var ot;qi.done?Fe(qi.value):(ot=qi.value,ot instanceof Ee?ot:new Ee(function(xo){xo(ot)})).then(Xe,_t)}zt((Ke=Ke.apply(PA,GA||[])).next())})},cA=this&&this.__generator||function(PA,GA){var Ee,Ke,Fe,ke,Xe={label:0,sent:function(){if(1&Fe[0])throw Fe[1];return Fe[1]},trys:[],ops:[]};return ke={next:_t(0),throw:_t(1),return:_t(2)},typeof Symbol=="function"&&(ke[Symbol.iterator]=function(){return this}),ke;function _t(zt){return function(qi){return(function(ot){if(Ee)throw new TypeError("Generator is already executing.");for(;ke&&(ke=0,ot[0]&&(Xe=0)),Xe;)try{if(Ee=1,Ke&&(Fe=2&ot[0]?Ke.return:ot[0]?Ke.throw||((Fe=Ke.return)&&Fe.call(Ke),0):Ke.next)&&!(Fe=Fe.call(Ke,ot[1])).done)return Fe;switch(Ke=0,Fe&&(ot=[2&ot[0],Fe.value]),ot[0]){case 0:case 1:Fe=ot;break;case 4:return Xe.label++,{value:ot[1],done:!1};case 5:Xe.label++,Ke=ot[1],ot=[0];continue;case 7:ot=Xe.ops.pop(),Xe.trys.pop();continue;default:if(!((Fe=(Fe=Xe.trys).length>0&&Fe[Fe.length-1])||ot[0]!==6&&ot[0]!==2)){Xe=0;continue}if(ot[0]===3&&(!Fe||ot[1]>Fe[0]&&ot[1]<Fe[3])){Xe.label=ot[1];break}if(ot[0]===6&&Xe.label<Fe[1]){Xe.label=Fe[1],Fe=ot;break}if(Fe&&Xe.label<Fe[2]){Xe.label=Fe[2],Xe.ops.push(ot);break}Fe[2]&&Xe.ops.pop(),Xe.trys.pop();continue}ot=GA.call(PA,Xe)}catch(xo){ot=[6,xo],Ke=0}finally{Ee=Fe=0}if(5&ot[0])throw ot[1];return{value:ot[0]?ot[1]:void 0,done:!0}})([zt,qi])}}};Object.defineProperty(v,"__esModule",{value:!0});var DA,kA=P(266),_A=P(466),WA=P(402),wA=P(882),tA=P(271),F=P(884),JA=P(900),mA=P(172);(function(PA){PA[PA.DEBUG=0]="DEBUG",PA[PA.INFO=1]="INFO",PA[PA.WARING=2]="WARING",PA[PA.ERROR=3]="ERROR"})(DA||(DA={}));var he={metric:!0,context:!0},Ie=function(PA,GA,Ee){return Ee===void 0&&(Ee=0),(0,kA.isPlainObject)(PA)?((0,kA.isPlainObject)(GA)&&Object.keys(GA).forEach(function(Ke){var Fe=PA[Ke],ke=GA[Ke];PA[Ke]=he[Ke]&&Ee===0?Ie(Fe,ke,1):ke}),PA):(0,kA.isPlainObject)(GA)?GA:{}},ye={clsConfig:{endpoint:"",topicId:""}},fe=(function(){function PA(GA){var Ee=this;this.url="",this.uploadChannel="",this.sendClsPipe=null,this.sendEsPipe=null,this._logLevel=DA.INFO,this._getReportDataList=[],this._blacklist=[];var Ke=GA||ye,Fe=Ke.clsConfig,ke=Ke.esConfig,Xe=Fe.endpoint,_t=Fe.topicId;this.esConfig=ke,this.endpoint=Xe,this.topicId=_t;var zt=this.buildUploadUrl();this.url=zt,this.initPageUnloadMonitor(),zt&&(this.sendClsPipe=(0,WA.createPipeline)([(0,JA.filterSdkappIdPipe)(this),(0,F.createThrottlePipe)(this,5),(0,wA.formatClsLog)(),(0,tA.limitLengthPipe)(),function(qi){return K(Ee,void 0,void 0,function(){var ot,xo,ic=this;return cA(this,function(Qu){return ot=0,xo=function(){return K(ic,void 0,void 0,function(){var oc;return cA(this,function(Ls){switch(Ls.label){case 0:return Ls.trys.push([0,2,,3]),[4,this.send({url:zt,data:qi})];case 1:return Ls.sent(),[3,3];case 2:return oc=Ls.sent(),ot<=2?(ot++,setTimeout(function(){xo()},1e3)):console.debug(oc),[3,3];case 3:return[2]}})})},xo(),[2]})})}])),this.updateBlacklist()}return PA.prototype.initPageUnloadMonitor=function(){var GA=this,Ee=this;!(0,kA.isMiniProgram)()&&document&&typeof document.addEventListener=="function"&&document.addEventListener("visibilitychange",function(){if(document.visibilityState==="hidden"){var Ke=GA.getCommonReportData(),Fe=Ie(Ke,{level:DA.WARING,method:"PAGE_UNLOAD",type:"event"});if(Ee.esConfig)try{var ke=Ee.esConfig,Xe=ke.url,_t=ke.table;(0,WA.createPipeline)([(0,JA.filterSdkappIdPipe)(Ee),(0,F.createThrottlePipe)(Ee,1),(0,wA.formatESLog)({table:_t}),(0,tA.limitLengthPipe)(),function(zt){return K(GA,void 0,void 0,function(){var qi;return cA(this,function(ot){try{qi=new Blob([JSON.stringify(zt)],{type:"application/x-www-form-urlencoded"}),navigator==null||navigator.sendBeacon(Xe,qi)}catch(xo){console.debug(xo)}return[2]})})}])(Fe)}catch(zt){console.debug(zt)}}})},PA.prototype.updateEsConfig=function(GA){var Ee=this;try{if(GA){this.esConfig=GA;var Ke=GA.url,Fe=GA.table;Ke&&Fe&&(this.uploadChannel=Ke,this.sendEsPipe=(0,WA.createPipeline)([(0,JA.filterSdkappIdPipe)(this),(0,F.createThrottlePipe)(this,5),(0,wA.formatESLog)({table:Fe}),(0,tA.limitLengthPipe)(),function(ke){return K(Ee,void 0,void 0,function(){var Xe,_t,zt=this;return cA(this,function(qi){return Xe=0,_t=function(){return K(zt,void 0,void 0,function(){var ot;return cA(this,function(xo){switch(xo.label){case 0:return xo.trys.push([0,2,,3]),[4,this.send({url:Ke,data:ke})];case 1:return xo.sent(),[3,3];case 2:return ot=xo.sent(),Xe<=2?(Xe++,setTimeout(function(){_t()},1e3)):console.debug(ot),[3,3];case 3:return[2]}})})},_t(),[2]})})}]))}}catch(ke){console.debug(ke)}},PA.prototype.updateGetReportData=function(GA){typeof GA=="function"&&this._getReportDataList.push(GA)},PA.prototype.updateBlacklist=function(){return K(this,void 0,void 0,function(){var GA,Ee,Ke;return cA(this,function(Fe){switch(Fe.label){case 0:return Fe.trys.push([0,2,,3]),[4,(0,_A.request)({url:mA.RAINBOW_BLACK_LIST_API})];case 1:return GA=Fe.sent().data,typeof(Ee=GA==null?void 0:GA.blackList)=="string"&&(this._blacklist=Ee.split(",")),[3,3];case 2:return Ke=Fe.sent(),console.debug("update blacklist fail",Ke),[3,3];case 3:return[2]}})})},PA.prototype.getBlackList=function(){return this._blacklist},PA.prototype.setLogLevel=function(GA){typeof GA!="number"&&(GA=DA.INFO),this._logLevel=GA},PA.prototype.createLogFunc=function(GA){var Ee=this;return function(Ke,Fe){Ee.log(Ke,Fe,{level:GA})}},PA.prototype.buildUploadUrl=function(){return this.endpoint&&this.topicId?"".concat(this.endpoint,"/tracklog?topic_id=").concat(this.topicId):""},PA.prototype.sendPipe=function(GA){typeof this.sendClsPipe=="function"&&this.sendClsPipe(GA),typeof this.sendEsPipe=="function"&&this.sendEsPipe(GA)},PA.prototype.info=function(GA,Ee){this.log(GA,Ee,{level:DA.INFO})},PA.prototype.debug=function(GA,Ee){this.log(GA,Ee,{level:DA.DEBUG})},PA.prototype.warn=function(GA,Ee){this.log(GA,Ee,{level:DA.WARING})},PA.prototype.error=function(GA,Ee){this.log(GA,Ee,{level:DA.ERROR})},PA.prototype.log=function(GA,Ee,Ke){try{var Fe=Ke||{},ke=Fe.level;if(Fe.topicId,this._logLevel<=ke){var Xe=this.getCommonReportData(),_t=Ie(Xe,j({level:ke,method:GA},Ee));this.sendPipe(_t)}}catch(zt){console.debug(zt)}},PA.prototype.getCommonReportData=function(){for(var GA={},Ee=0;Ee<this._getReportDataList.length;Ee++)GA=Ie(GA,this._getReportDataList[Ee]());return GA},PA.prototype.send=function(GA){return K(this,void 0,void 0,function(){var Ee,Ke,Fe,ke;return cA(this,function(Xe){switch(Xe.label){case 0:Ke=(Ee=GA||{}).url,Fe=Ee.data,Xe.label=1;case 1:return Xe.trys.push([1,4,,5]),Ke?[4,(0,_A.request)({url:Ke,data:Fe,method:"post"})]:[3,3];case 2:Xe.sent(),Xe.label=3;case 3:return[3,5];case 4:throw ke=Xe.sent(),console.debug(ke),new Error(ke);case 5:return[2]}})})},PA})();v.default=fe},900:($,v)=>{Object.defineProperty(v,"__esModule",{value:!0}),v.filterSdkappIdPipe=void 0,v.filterSdkappIdPipe=function(P){return function(j,K){try{var cA=j.sdkappid,DA=P.getBlackList();if(DA!=null&&DA.includes(String(cA)))throw new Error("this sdkappid in blacklist");K(j)}catch(kA){console.debug(kA)}}}},793:($,v,P)=>{Object.defineProperty(v,"__esModule",{value:!0}),v.formatClsLog=void 0;var j=P(266);v.formatClsLog=function(){return function(K,cA){try{cA({logs:K==null?void 0:K.map(function(DA){var kA={};return Object.keys(DA).forEach(function(_A){if((0,j.isPlainObject)(DA[_A]))try{kA[_A]=(0,j.stringifyPlus)(DA[_A])}catch(WA){console.debug(WA)}else _A==="time"&&(kA[_A]=new Date(DA[_A]).toISOString()),kA[_A]=DA[_A]+""}),{contents:kA,time:DA.time}}),source:""})}catch(DA){console.debug(DA)}}}},713:($,v,P)=>{Object.defineProperty(v,"__esModule",{value:!0}),v.formatESLog=void 0;var j=P(266);v.formatESLog=function(K){var cA=K.table;return function(DA,kA){try{var _A=DA==null?void 0:DA.map(function(WA){var wA={};return Object.keys(WA).forEach(function(tA){if((0,j.isPlainObject)(WA[tA]))try{wA[tA]=(0,j.stringifyPlus)(WA[tA])}catch(F){console.debug(F)}else wA[tA]=tA==="level"?WA[tA]+"":tA==="time"?new Date(WA[tA]).toISOString():WA[tA]}),wA});kA({table:cA,report:_A})}catch(WA){console.debug(WA)}}}},882:($,v,P)=>{Object.defineProperty(v,"__esModule",{value:!0}),v.formatClsLog=v.formatESLog=void 0;var j=P(793);Object.defineProperty(v,"formatClsLog",{enumerable:!0,get:function(){return j.formatClsLog}});var K=P(713);Object.defineProperty(v,"formatESLog",{enumerable:!0,get:function(){return K.formatESLog}})},402:($,v,P)=>{Object.defineProperty(v,"__esModule",{value:!0}),v.createPipeline=void 0;var j=P(266);v.createPipeline=function(K){if(!K||!K.reduce||!K.length)throw new TypeError("createPipeline need at least one function param");return K.length===1?function(cA,DA){K[0](cA,DA||j.noop)}:K.reduce(function(cA,DA){return function(kA,_A){return _A===void 0&&(_A=j.noop),cA(kA,function(WA){return DA==null?void 0:DA(WA,_A)})}})}},271:($,v,P)=>{Object.defineProperty(v,"__esModule",{value:!0}),v.limitLengthPipe=v.MAX_LOG_LENGTH=void 0;var j=P(266);v.MAX_LOG_LENGTH=102400,v.limitLengthPipe=function(){return function(K,cA){try{var DA=(K=K||{}).logs,kA=DA===void 0?[]:DA;K.logs=kA==null?void 0:kA.map(function(_A){var WA=v.MAX_LOG_LENGTH,wA=_A.contents;return Object.keys(wA).forEach(function(tA){var F=wA[tA];try{F&&F.length>WA&&(wA[tA]=F==null?void 0:F.substring(0,WA))}catch{console.debug("size of content > limitSize"),wA[tA]=(0,j.stringifyPlus)(F).substring(0,WA)}}),_A}),cA(K)}catch(_A){console.debug(_A)}}}},884:($,v)=>{Object.defineProperty(v,"__esModule",{value:!0}),v.createThrottlePipe=void 0,v.createThrottlePipe=function(P,j){var K,cA=[];return function(DA,kA){if(Array.isArray(DA)?cA=cA.concat(DA):cA.push(DA),j&&cA.length>=j||P.sendNow&&cA.length>0)return kA(cA.splice(0,cA.length)),void(K&&clearTimeout(K));K&&clearTimeout(K),K=setTimeout(function(){K=null,cA.length>0&&kA(cA.splice(0,cA.length))},P.delay||1e3)}}},466:function($,v,P){var j=this&&this.__assign||function(){return j=Object.assign||function(wA){for(var tA,F=1,JA=arguments.length;F<JA;F++)for(var mA in tA=arguments[F])Object.prototype.hasOwnProperty.call(tA,mA)&&(wA[mA]=tA[mA]);return wA},j.apply(this,arguments)},K=this&&this.__awaiter||function(wA,tA,F,JA){return new(F||(F=Promise))(function(mA,he){function Ie(PA){try{fe(JA.next(PA))}catch(GA){he(GA)}}function ye(PA){try{fe(JA.throw(PA))}catch(GA){he(GA)}}function fe(PA){var GA;PA.done?mA(PA.value):(GA=PA.value,GA instanceof F?GA:new F(function(Ee){Ee(GA)})).then(Ie,ye)}fe((JA=JA.apply(wA,tA||[])).next())})},cA=this&&this.__generator||function(wA,tA){var F,JA,mA,he,Ie={label:0,sent:function(){if(1&mA[0])throw mA[1];return mA[1]},trys:[],ops:[]};return he={next:ye(0),throw:ye(1),return:ye(2)},typeof Symbol=="function"&&(he[Symbol.iterator]=function(){return this}),he;function ye(fe){return function(PA){return(function(GA){if(F)throw new TypeError("Generator is already executing.");for(;he&&(he=0,GA[0]&&(Ie=0)),Ie;)try{if(F=1,JA&&(mA=2&GA[0]?JA.return:GA[0]?JA.throw||((mA=JA.return)&&mA.call(JA),0):JA.next)&&!(mA=mA.call(JA,GA[1])).done)return mA;switch(JA=0,mA&&(GA=[2&GA[0],mA.value]),GA[0]){case 0:case 1:mA=GA;break;case 4:return Ie.label++,{value:GA[1],done:!1};case 5:Ie.label++,JA=GA[1],GA=[0];continue;case 7:GA=Ie.ops.pop(),Ie.trys.pop();continue;default:if(!((mA=(mA=Ie.trys).length>0&&mA[mA.length-1])||GA[0]!==6&&GA[0]!==2)){Ie=0;continue}if(GA[0]===3&&(!mA||GA[1]>mA[0]&&GA[1]<mA[3])){Ie.label=GA[1];break}if(GA[0]===6&&Ie.label<mA[1]){Ie.label=mA[1],mA=GA;break}if(mA&&Ie.label<mA[2]){Ie.label=mA[2],Ie.ops.push(GA);break}mA[2]&&Ie.ops.pop(),Ie.trys.pop();continue}GA=tA.call(wA,Ie)}catch(Ee){GA=[6,Ee],JA=0}finally{F=mA=0}if(5&GA[0])throw GA[1];return{value:GA[0]?GA[1]:void 0,done:!0}})([fe,PA])}}},DA=this&&this.__rest||function(wA,tA){var F={};for(var JA in wA)Object.prototype.hasOwnProperty.call(wA,JA)&&tA.indexOf(JA)<0&&(F[JA]=wA[JA]);if(wA!=null&&typeof Object.getOwnPropertySymbols=="function"){var mA=0;for(JA=Object.getOwnPropertySymbols(wA);mA<JA.length;mA++)tA.indexOf(JA[mA])<0&&Object.prototype.propertyIsEnumerable.call(wA,JA[mA])&&(F[JA[mA]]=wA[JA[mA]])}return F};Object.defineProperty(v,"__esModule",{value:!0}),v.request=void 0;var kA=P(732),_A=P(377),WA=P(266);v.request=function(wA){return K(void 0,void 0,void 0,function(){var tA=wA.url,F=wA.data,JA=wA.header,mA=JA===void 0?{}:JA,he=wA.method,Ie=he===void 0?"GET":he,ye=wA.dataType,fe=wA.responseType,PA=DA(wA,["url","data","header","method","dataType","responseType"]);return cA(this,function(GA){return(0,WA.isBrowser)()?[2,(0,_A.requestXHR)(tA,F,{headers:mA,method:Ie,responseType:fe,dataType:ye})]:(0,WA.isMiniProgram)()?[2,(0,kA.requestWeapp)(j({url:tA,data:F,header:mA,method:Ie,dataType:ye,responseType:fe},PA))]:(console.debug("unsupport env"),[2])})})}},732:function($,v,P){var j=this&&this.__assign||function(){return j=Object.assign||function(WA){for(var wA,tA=1,F=arguments.length;tA<F;tA++)for(var JA in wA=arguments[tA])Object.prototype.hasOwnProperty.call(wA,JA)&&(WA[JA]=wA[JA]);return WA},j.apply(this,arguments)},K=this&&this.__awaiter||function(WA,wA,tA,F){return new(tA||(tA=Promise))(function(JA,mA){function he(fe){try{ye(F.next(fe))}catch(PA){mA(PA)}}function Ie(fe){try{ye(F.throw(fe))}catch(PA){mA(PA)}}function ye(fe){var PA;fe.done?JA(fe.value):(PA=fe.value,PA instanceof tA?PA:new tA(function(GA){GA(PA)})).then(he,Ie)}ye((F=F.apply(WA,wA||[])).next())})},cA=this&&this.__generator||function(WA,wA){var tA,F,JA,mA,he={label:0,sent:function(){if(1&JA[0])throw JA[1];return JA[1]},trys:[],ops:[]};return mA={next:Ie(0),throw:Ie(1),return:Ie(2)},typeof Symbol=="function"&&(mA[Symbol.iterator]=function(){return this}),mA;function Ie(ye){return function(fe){return(function(PA){if(tA)throw new TypeError("Generator is already executing.");for(;mA&&(mA=0,PA[0]&&(he=0)),he;)try{if(tA=1,F&&(JA=2&PA[0]?F.return:PA[0]?F.throw||((JA=F.return)&&JA.call(F),0):F.next)&&!(JA=JA.call(F,PA[1])).done)return JA;switch(F=0,JA&&(PA=[2&PA[0],JA.value]),PA[0]){case 0:case 1:JA=PA;break;case 4:return he.label++,{value:PA[1],done:!1};case 5:he.label++,F=PA[1],PA=[0];continue;case 7:PA=he.ops.pop(),he.trys.pop();continue;default:if(!((JA=(JA=he.trys).length>0&&JA[JA.length-1])||PA[0]!==6&&PA[0]!==2)){he=0;continue}if(PA[0]===3&&(!JA||PA[1]>JA[0]&&PA[1]<JA[3])){he.label=PA[1];break}if(PA[0]===6&&he.label<JA[1]){he.label=JA[1],JA=PA;break}if(JA&&he.label<JA[2]){he.label=JA[2],he.ops.push(PA);break}JA[2]&&he.ops.pop(),he.trys.pop();continue}PA=wA.call(WA,he)}catch(GA){PA=[6,GA],F=0}finally{tA=JA=0}if(5&PA[0])throw PA[1];return{value:PA[0]?PA[1]:void 0,done:!0}})([ye,fe])}}};Object.defineProperty(v,"__esModule",{value:!0}),v.requestWeapp=function(WA){return K(this,void 0,void 0,function(){var wA;return cA(this,function(tA){switch(tA.label){case 0:tA.trys.push([0,5,6,7]),tA.label=1;case 1:return _A>=kA?[4,(0,DA.startBlocking)()]:[3,3];case 2:return tA.sent(),[3,1];case 3:return _A++,[4,new Promise(function(F,JA){wx.request(j(j({},WA),{success:function(mA){F(mA)},fail:function(mA){JA(mA)}}))})];case 4:return[2,tA.sent()];case 5:return wA=tA.sent(),[2,Promise.reject(wA)];case 6:return _A--,(0,DA.resolveFirstBlock)(),[7];case 7:return[2]}})})};var DA=P(640),kA=2,_A=0},377:function($,v,P){var j=this&&this.__awaiter||function(wA,tA,F,JA){return new(F||(F=Promise))(function(mA,he){function Ie(PA){try{fe(JA.next(PA))}catch(GA){he(GA)}}function ye(PA){try{fe(JA.throw(PA))}catch(GA){he(GA)}}function fe(PA){var GA;PA.done?mA(PA.value):(GA=PA.value,GA instanceof F?GA:new F(function(Ee){Ee(GA)})).then(Ie,ye)}fe((JA=JA.apply(wA,tA||[])).next())})},K=this&&this.__generator||function(wA,tA){var F,JA,mA,he,Ie={label:0,sent:function(){if(1&mA[0])throw mA[1];return mA[1]},trys:[],ops:[]};return he={next:ye(0),throw:ye(1),return:ye(2)},typeof Symbol=="function"&&(he[Symbol.iterator]=function(){return this}),he;function ye(fe){return function(PA){return(function(GA){if(F)throw new TypeError("Generator is already executing.");for(;he&&(he=0,GA[0]&&(Ie=0)),Ie;)try{if(F=1,JA&&(mA=2&GA[0]?JA.return:GA[0]?JA.throw||((mA=JA.return)&&mA.call(JA),0):JA.next)&&!(mA=mA.call(JA,GA[1])).done)return mA;switch(JA=0,mA&&(GA=[2&GA[0],mA.value]),GA[0]){case 0:case 1:mA=GA;break;case 4:return Ie.label++,{value:GA[1],done:!1};case 5:Ie.label++,JA=GA[1],GA=[0];continue;case 7:GA=Ie.ops.pop(),Ie.trys.pop();continue;default:if(!((mA=(mA=Ie.trys).length>0&&mA[mA.length-1])||GA[0]!==6&&GA[0]!==2)){Ie=0;continue}if(GA[0]===3&&(!mA||GA[1]>mA[0]&&GA[1]<mA[3])){Ie.label=GA[1];break}if(GA[0]===6&&Ie.label<mA[1]){Ie.label=mA[1],mA=GA;break}if(mA&&Ie.label<mA[2]){Ie.label=mA[2],Ie.ops.push(GA);break}mA[2]&&Ie.ops.pop(),Ie.trys.pop();continue}GA=tA.call(wA,Ie)}catch(Ee){GA=[6,Ee],JA=0}finally{F=mA=0}if(5&GA[0])throw GA[1];return{value:GA[0]?GA[1]:void 0,done:!0}})([fe,PA])}}};Object.defineProperty(v,"__esModule",{value:!0}),v.default=WA,v.requestXHR=function(wA){return j(this,arguments,void 0,function(tA,F,JA){var mA,he=this;return F===void 0&&(F={}),JA===void 0&&(JA={}),K(this,function(Ie){switch(Ie.label){case 0:return Ie.trys.push([0,2,3,4]),[4,new Promise(function(ye,fe){return j(he,void 0,void 0,function(){var PA,GA,Ee,Ke,Fe,ke;return K(this,function(Xe){switch(Xe.label){case 0:return _A>=kA?[4,(0,DA.startBlocking)()]:[3,2];case 1:return Xe.sent(),[3,0];case 2:return _A++,PA=JA.method,GA=JA.headers,Ee=GA===void 0?{}:GA,Ke=JA.responseType,Fe=Ke===void 0?"json":Ke,PA=(PA||"get").toUpperCase(),Object.assign(Ee,{"Content-type":"application/json"}),(ke=new window.XMLHttpRequest).responseType=Fe,ke.timeout=1e4,ke.onreadystatechange=function(){ke.readyState===4&&(ke.status===200?ye({data:ke.response}):fe({code:ke.status,msg:ke.statusText}))},ke.ontimeout=function(_t){fe({code:ke.status,msg:ke.statusText})},ke.onloadend=function(){ke&&(WA(function(_t){ye(_t)},function(_t){fe(_t)},{status:ke.status,statusText:ke.statusText}),ke=null)},ke.onabort=function(){ke&&(fe(new Error("Request aborted")),ke=null)},ke.onerror=function(){fe(new Error("Network Error")),ke=null},PA==="GET"?tA="".concat(tA).concat(tA.indexOf("?")===-1?"?":"&").concat(cA.default.stringify(F)):PA==="POST"&&(F=JSON.stringify(F)),ke.open(PA,tA,!0),Object.keys(Ee).forEach(function(_t){ke.setRequestHeader(_t,Ee[_t])}),ke.send(PA==="POST"?F:null),[2]}})})})];case 1:return[2,Ie.sent()];case 2:throw mA=Ie.sent(),new Error(mA);case 3:return _A--,(0,DA.resolveFirstBlock)(),[7];case 4:return[2]}})})};var cA=P(383),DA=P(640),kA=2,_A=0;function WA(wA,tA,F){F.status?tA(new Error("Request failed with status code "+F.status)):wA(F)}},172:($,v)=>{Object.defineProperty(v,"__esModule",{value:!0}),v.RAINBOW_BLACK_LIST_API=void 0,v.RAINBOW_BLACK_LIST_API="https://jsonschema.qpic.cn/87084b1b6d263426b92926cfa5fa23af/18f29786d25587b5eb162d5e9f724b1e/blackList"},266:($,v)=>{Object.defineProperty(v,"__esModule",{value:!0}),v.date2ISOString=v.stringifyPlus=v.noop=v.isBrowser=v.isMiniProgram=v.isPlainObject=v.appendParams=void 0,v.appendParams=function(j,K){K===void 0&&(K={});var cA=[];return Object.keys(K).forEach(function(DA){var kA=K[DA];if(kA!==void 0){if((0,v.isPlainObject)(kA))try{kA=JSON.stringify(kA)}catch{}cA.push("".concat(DA,"=").concat(encodeURIComponent(kA)))}}),cA.length?(j.indexOf("?")>-1?"".concat(j,"&"):"".concat(j,"?"))+cA.join("&"):j},v.isPlainObject=function(j){if(typeof j!="object"||j===null)return!1;var K=Object.getPrototypeOf(j);if(K===null)return!0;for(var cA=K;Object.getPrototypeOf(cA)!==null;)cA=Object.getPrototypeOf(cA);return K===cA},v.isMiniProgram=function(){try{return!(!(wx!=null&&wx.request)||!(wx!=null&&wx.connectSocket))}catch{return!1}},v.isBrowser=function(){try{return!(0,v.isMiniProgram)()&&typeof window<"u"&&window.document!==void 0}catch{return!1}},v.noop=function(){};var P=function(){var j=new WeakSet;return function(K,cA){if(cA instanceof Error)return"Error.message: ".concat(cA.message,`
|
||
Error.stack: `).concat(cA.stack);if(typeof cA=="object"&&cA!==null){if(j.has(cA))return"[Circular ".concat(K||"root","]");j.add(cA)}return cA}};v.stringifyPlus=function(j){if(typeof j=="string")return j;try{return j instanceof Error?(JSON.stringify(j,P())||"undefined").replace(/"/gim,""):JSON.stringify(j,P())||"undefined"}catch(K){return`error happen when aegis stringify:
|
||
`.concat(K.message,`
|
||
`).concat(K.stack)}},v.date2ISOString=function(){var j,K=new Date,cA=K.toISOString(),DA=K.getTimezoneOffset()/60;return j=DA<0?DA>-10?"+0".concat(Math.abs(100*DA)):"+".concat(Math.abs(100*DA)):DA>=10?"-".concat(100*DA):"-0".concat(100*DA),cA.replace("Z",j)}},383:($,v,P)=>{Object.defineProperty(v,"__esModule",{value:!0});var j=P(266);v.default={stringify:function(K){return K?Object.keys(K).map(function(cA){var DA=K[cA];if((0,j.isPlainObject)(DA))DA=JSON.stringify(DA);else{if(typeof DA!="string"&&typeof DA!="number")return"";DA=+DA}return encodeURIComponent(cA)+"="+encodeURIComponent(DA)}).filter(function(cA){return cA.length>0}).join("&"):""}}},640:($,v)=>{Object.defineProperty(v,"__esModule",{value:!0}),v.startBlocking=v.resolveFirstBlock=void 0;var P=[];v.startBlocking=function(){var j,K=new Promise(function(cA){j=cA});return P.push({promise:K,resolve:j}),K},v.resolveFirstBlock=function(){P.length&&(P[0].resolve(),P.shift())}}},S={};function k($){var v=S[$];if(v!==void 0)return v.exports;var P=S[$]={exports:{}};return d[$].call(P.exports,P,P.exports,k),P.exports}var N={};return(()=>{var $=N;Object.defineProperty($,"__esModule",{value:!0});var v=k(902),P=null;$.default=function(j){return P||(P=new v.default(j)),P}})(),N})(),a.exports=s()})({get exports(){return dw},set exports(a){dw=a}});var WN=KA(dw);const Bp=65535,ZN=60003,Dw=60004,Hb=-1101,Ob=-1204,qb=3e4;var pw;(function(a){a[a.UNKNOWN=65535]="UNKNOWN",a[a.NO_NETWORK=2805]="NO_NETWORK",a[a.FAILURE_SWITCH_TO_AUDIO=60001]="FAILURE_SWITCH_TO_AUDIO",a[a.FAILURE_SWITCH_TO_VIDEO=60002]="FAILURE_SWITCH_TO_VIDEO",a[a.NOT_MICROPHONE_LIST=60003]="NOT_MICROPHONE_LIST",a[a.NOT_CAMERA_LIST=60004]="NOT_CAMERA_LIST",a[a.NOT_SUPPORT=60006]="NOT_SUPPORT",a[a.ERROR_PACKAGE_NOT_PURCHASED=-1001]="ERROR_PACKAGE_NOT_PURCHASED",a[a.ERROR_PACKAGE_NOT_SUPPORTED=-1002]="ERROR_PACKAGE_NOT_SUPPORTED",a[a.ERROR_TIM_VERSION_OUTDATED=-1003]="ERROR_TIM_VERSION_OUTDATED",a[a.ERROR_PERMISSION_DENIED=-1101]="ERROR_PERMISSION_DENIED",a[a.ERROR_GET_DEVICE_LIST_FAIL=-1102]="ERROR_GET_DEVICE_LIST_FAIL",a[a.ERROR_INIT_FAIL=-1201]="ERROR_INIT_FAIL",a[a.ERROR_PARAM_INVALID=-1202]="ERROR_PARAM_INVALID",a[a.ERROR_REQUEST_REFUSED=-1203]="ERROR_REQUEST_REFUSED",a[a.ERROR_REQUEST_REPEATED=-1204]="ERROR_REQUEST_REPEATED",a[a.ERROR_SCENE_NOT_SUPPORTED=-1205]="ERROR_SCENE_NOT_SUPPORTED",a[a.INVALID_PARAMETER_REQUIRED=-120200]="INVALID_PARAMETER_REQUIRED",a[a.INVALID_PARAMETER_TYPE=-120201]="INVALID_PARAMETER_TYPE",a[a.INVALID_PARAMETER_EMPTY=-120202]="INVALID_PARAMETER_EMPTY",a[a.INVALID_PARAMETER_RANGE=-120203]="INVALID_PARAMETER_RANGE",a[a.ERROR_SIGNALING_SEND_FAIL=-1401]="ERROR_SIGNALING_SEND_FAIL",a[a.ERROR_INVALID_INVITE_ID=8010]="ERROR_INVALID_INVITE_ID",a[a.ERROR_INVALID_SEND_FAIL=8021]="ERROR_INVALID_SEND_FAIL",a[a.ERROR_HTTP=3e4]="ERROR_HTTP",a[a.ERROR_BLACKLIST=20007]="ERROR_BLACKLIST"})(pw||(pw={}));const jN="switch to audio call error",Gg="The package you purchased does not support this ability. You can refer to here to purchase: ${purchaseAddress}",Pb="TIM SDK version is too old, Please upgrade version",XN="init or login is not complete, this API needs to be used after init. To solve the problem, please go to: https://cloud.tencent.com/document/product/647/78769#3a61f42b-e06f-49af-88bf-362d40025887",zN="The API is not support in the current state. To solve the problem, please go to: https://cloud.tencent.com/document/product/647/78769#5e65043d-e3dc-4bd3-8220-3ac7694dfa42",Vb="In the current call scene, this function is not supported",Cp="Failed to send message, common reasons: the called userID or groupID does not exist. To solve the problem, please go to: https://cloud.tencent.com/document/product/647/84363#661be1b0-f649-4199-a343-958c3f4f4bbb",oB="The current page is detected to be using the http protocol(or localhost). To ensure smooth access and experience of all functions of TUICallEngine SDK for production environment users, please use the https protocol to access the audio and video application page. More Info: https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/en/tutorial-05-info-browser.html#h2-3",Wb="切换语音通话失败",Zb="您暂不支持使用该能力,请前往如下购买页购买开通: ${purchaseAddress}",DQ="TIM SDK 版本太旧,请升级版本",$N="TUICallEngine 初始化登录未完成,需要在 init 或 login 完成后使用此 API 。解决方案请前往: https://cloud.tencent.com/document/product/647/78769#3a61f42b-e06f-49af-88bf-362d40025887",AF="当前通话状态无法使用该 API。解决方案请前往: https://cloud.tencent.com/document/product/647/78769#5e65043d-e3dc-4bd3-8220-3ac7694dfa42",$r="当前通话场景不支持该功能",jb="消息发送失败,常见原因:被叫用户 userID 或群 groupID 不存在。解决方案请前往: https://cloud.tencent.com/document/product/647/84363#661be1b0-f649-4199-a343-958c3f4f4bbb",eF="检测到当前页面正处于 http 协议下,为确保生产环境用户顺畅接入和体验 TUICallEngine SDK 的全部功能,请使用 https 协议(或 localhost)访问音视频应用页面。详情请前往:https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/zh-cn/tutorial-05-info-browser.html#h2-3";function hl({code:a,params:s,enableDocLink:d=!1,languageList:S=["en","zh-CN"]}){let k,N="";const $=pw[a];try{S.forEach(v=>{switch(v){case"en":k=pQ[$];break;case"zh-CN":k=yw[$]}cQ(k)?(N=N&&`${N} `,N+=k(s)):iw(k)&&(N=k)})}catch{k=pQ.UNKNOWN_ERROR}return d&&(N+=" doc:"),N}const pQ={ERROR_INIT_FAIL:({fnName:a})=>`${a}: ${XN}.`,ERROR_SCENE_NOT_SUPPORTED:({fnName:a})=>`${a}: ${Vb}.`,ERROR_REQUEST_REFUSED:({value:a})=>`${zN}. customStatus: ${a}.`,ERROR_PARAM_INVALID:({fnName:a})=>`the parameters of the '${a}' you called does not meet the requirements, please check the API documentation.`,INVALID_PARAMETER_REQUIRED:({key:a,rule:s,fnName:d,value:S})=>`'${a||s.name}' is a required param when calling ${d}(), received: ${S}.`,INVALID_PARAMETER_TYPE({key:a,rule:s,fnName:d,value:S}){const k=`${a||s.name}`;let N="";return N=Array.isArray(s.type)?s.type.join("|"):s.type,`'${k}' must be type of ${N} when calling ${d}(), received type: ${$D(S)}.`},INVALID_PARAMETER_EMPTY:({key:a,rule:s,fnName:d})=>`'${a||s.name}' cannot be empty when calling ${d}().`,INVALID_PARAMETER_RANGE:({key:a,rule:s,fnName:d,value:S})=>ow(s.values)?`'${a||s.name}' must be one of ${s.values.join("|")} when calling ${d}(), received: ${S}.`:iw(s.values)&&s.values.indexOf("~")!==-1?`'${a||s.name}' must be the range of ${s.values} when calling ${d}(), received: ${S}.`:void 0,ERROR_REQUEST_REPEATED:({fnName:a})=>`you are already ${a}(), cannot repeated call '${a}'.`,ERROR_HTTP:()=>`${oB}.`,ERROR_TIM_VERSION_OUTDATED:()=>`${Pb} >= 2.21.2.`,ERROR_PACKAGE_NOT_SUPPORTED:()=>`${Gg}.`,FAILURE_SWITCH_TO_AUDIO:()=>`${jN}.`,NOT_MICROPHONE_LIST:({fnName:a,error:s})=>`NotFoundError, no microphone detected, please check your device and the configuration on '${a}'${s?`, error: ${s.toString()}.`:"."}`,NOT_CAMERA_LIST:({fnName:a,error:s})=>`NotFoundError, no camera detected, please check your device and the configuration on '${a}'${s?`, error: ${s.toString()}.`:"."}`,ERROR_PERMISSION_DENIED:({fnName:a,error:s})=>`NotAllowedError, you have disabled camera/microphone access, please allow the current application ${a} to use the camera/microphone. ${s?`, error: ${s.toString()}.`:"."}`,ERROR_INVALID_SEND_FAIL:()=>`${Cp}.`,UNKNOWN_ERROR:({fnName:a,error:s})=>`'${a}' throw unknown exception${s?`, error: ${s.toString()}.`:"."}`},yw={ERROR_INIT_FAIL:({fnName:a})=>`${a}: ${$N}。`,ERROR_SCENE_NOT_SUPPORTED:({fnName:a})=>`${a}: ${$r}。`,ERROR_REQUEST_REFUSED:({value:a})=>`${AF}. customStatus: ${a}。`,ERROR_PARAM_INVALID:({fnName:a})=>`the parameters of the '${a}' you called does not meet the requirements, please check the API documentation.`,INVALID_PARAMETER_REQUIRED:({key:a,rule:s,fnName:d,value:S})=>`调用 ${d}() 方法的时候 '${a||s.name}' 是必须的参数, 收到的值为: ${S}。`,INVALID_PARAMETER_TYPE({key:a,rule:s,fnName:d,value:S}){const k=`${a||s.name}`;let N="";return N=Array.isArray(s.type)?s.type.join("|"):s.type,`调用 ${d}() 方法的时候 '${k}' 必须是 ${N} 类型, 收到的类型是: ${$D(S)}。`},INVALID_PARAMETER_EMPTY:({key:a,rule:s,fnName:d,value:S})=>`调用 ${d}() 的时候 '${a||s.name}' 不能是空。`,INVALID_PARAMETER_RANGE:({key:a,rule:s,fnName:d,value:S})=>ow(s.values)?`调用 ${d}() 的时候 '${a||s.name}' 必须是 ${s.values.join("|")} 的其中一种, 收到的是: ${S}。`:iw(s.values)&&s.values.indexOf("~")!==-1?`调用 ${d}() 的时候 '${a||s.name}' 范围是 ${s.values}, 收到的是: ${S}。`:void 0,ERROR_REQUEST_REPEATED:({fnName:a})=>`你已经调用 ${a}(), 请勿重复调用 '${a}'。`,ERROR_HTTP:()=>`${eF}。`,ERROR_TIM_VERSION_OUTDATED:()=>`${DQ} >= 2.21.2。`,ERROR_PACKAGE_NOT_SUPPORTED:()=>`${Zb}。`,FAILURE_SWITCH_TO_AUDIO:()=>`${Wb}。`,NOT_MICROPHONE_LIST:({fnName:a,error:s})=>`NotFoundError,未检测到麦克风设备,请检查您的设备和麦克风上的配置 '${a}'${s?`, error: ${s.toString()}.`:"."}`,NOT_CAMERA_LIST:({fnName:a,error:s})=>`NotFoundError,未检测到摄像头设备,请检查您的设备和摄像头上的配置 '${a}'${s?`, error: ${s.toString()}.`:"."}`,ERROR_PERMISSION_DENIED:({fnName:a,error:s})=>"NotAllowedError, 您已禁用摄像头/麦克风访问权限,请允许当前应用程序使用摄像头/麦克风。"+(s?`, error: ${s.toString()}.`:"."),ERROR_INVALID_SEND_FAIL:()=>`${jb}.`};class gB extends Error{constructor({name:s="",code:d=Bp,message:S="",messageParams:k={},extraCode:N="",fnName:$=""}){super(S||hl({code:d,params:Object.assign({fnName:$},k)})),this.name="TUICallEngineError",this.message="",this.functionName="",this.name=s||this.name,this.code=d,this.functionName=$||this.functionName,this.message=S||this.message}getCode(){return this.code}}function En(){const a=WN();return function(s,d,S){const k=S.value,N=new Set;return S.value=function(...$){return oA(this,void 0,void 0,function*(){if(N.has(this))throw a.error("avoidRepeatedCall.fail",{text:{error:`previous ${d}() is ongoing, please avoid repeated calls`}}),new gB({code:Ob,fnName:d});try{N.add(this);const v=yield k.apply(this,$);return N.delete(this),v}catch(v){throw a.error("avoidRepeatedCall.fail",{text:{error:v}}),N.delete(this),v}})},S.value.clearCallState=function($){N.delete($)},S}}var Xb=Ti,Rw=FI,zb=Rg,$b=tp,Qp=Math.min,mw=[].copyWithin||function(a,s){var d=Xb(this),S=zb(d),k=Rw(a,S),N=Rw(s,S),$=arguments.length>2?arguments[2]:void 0,v=Qp(($===void 0?S:Rw($,S))-N,S-k),P=1;for(N<k&&k<N+v&&(P=-1,N+=v-1,k+=v-1);v-- >0;)N in d?d[k]=d[N]:$b(d,k),k+=P,N+=P;return d},Ds=Uh;Ze({target:"Array",proto:!0},{copyWithin:mw}),Ds("copyWithin");var tF=Zo.filter;Ze({target:"Array",proto:!0,forced:!Fh("filter")},{filter:function(a){return tF(this,a,arguments.length>1?arguments[1]:void 0)}});var AY=Ze,iF=Zo.findIndex,oF=Uh,cp="findIndex",gF=!0;cp in[]&&Array(1)[cp](function(){gF=!1}),AY({target:"Array",proto:!0,forced:gF},{findIndex:function(a){return iF(this,a,arguments.length>1?arguments[1]:void 0)}}),oF(cp);var eY=vI.includes,tY=Uh;Ze({target:"Array",proto:!0,forced:Je(function(){return!Array(1).includes()})},{includes:function(a){return eY(this,a,arguments.length>1?arguments[1]:void 0)}}),tY("includes");var rF=Ze,iY=vI.indexOf,oY=jd,hp=Bo([].indexOf),aF=!!hp&&1/hp([1],1,-0)<0;rF({target:"Array",proto:!0,forced:aF||!oY("indexOf")},{indexOf:function(a){var s=arguments.length>1?arguments[1]:void 0;return aF?hp(this,a,s)||0:iY(this,a,s)}});var gY=Ze,rY=Ur,IF=Ft,fw=jd,nF=Se([].join);gY({target:"Array",proto:!0,forced:rY!==Object||!fw("join",",")},{join:function(a){return nF(IF(this),a===void 0?",":a)}});var lp=ur,yQ=Ft,aY=Kr,IY=Rg,sF=jd,ww=Math.min,Zg=[].lastIndexOf,EF=!!Zg&&1/[1].lastIndexOf(1,-0)<0,Sw=sF("lastIndexOf"),Gw=EF||!Sw?function(a){if(EF)return lp(Zg,this,arguments)||0;var s=yQ(this),d=IY(s);if(d===0)return-1;var S=d-1;for(arguments.length>1&&(S=ww(S,aY(arguments[1]))),S<0&&(S=d+S);S>=0;S--)if(S in s&&s[S]===a)return S||0;return-1}:Zg;Ze({target:"Array",proto:!0,forced:Gw!==[].lastIndexOf},{lastIndexOf:Gw});var Mw=Zo.map;Ze({target:"Array",proto:!0,forced:!Fh("map")},{map:function(a){return Mw(this,a,arguments.length>1?arguments[1]:void 0)}});var BF=Ze,Rr=zn,up=fC,Aa=Ei,CF=FI,kw=Rg,Nw=Ft,RQ=Zd,wa=Xt,nY=Cr,sY=Fh("slice"),Bn=wa("species"),Fw=Array,EY=Math.max;BF({target:"Array",proto:!0,forced:!sY},{slice:function(a,s){var d,S,k,N=Nw(this),$=kw(N),v=CF(a,$),P=CF(s===void 0?$:s,$);if(Rr(N)&&(d=N.constructor,(up(d)&&(d===Fw||Rr(d.prototype))||Aa(d)&&(d=d[Bn])===null)&&(d=void 0),d===Fw||d===void 0))return nY(N,v,P);for(S=new(d===void 0?Fw:d)(EY(P-v,0)),k=0;v<P;v++,k++)v in N&&RQ(S,k,N[v]);return S.length=k,S}});var dp=typeof ArrayBuffer<"u"&&typeof DataView<"u",QF=Kr,BY=Br,Dp=RangeError,cF=function(a){if(a===void 0)return 0;var s=QF(a),d=BY(s);if(s!==d)throw new Dp("Wrong length or index");return d},CY=Math.sign||function(a){var s=+a;return s===0||s!=s?s:s<0?-1:1},mQ=4503599627370496,vw=CY,pp=function(a){return a+mQ-mQ},QY=Math.abs,hF=function(a,s,d,S){var k=+a,N=QY(k),$=vw(k);if(N<S)return $*pp(N/S/s)*S*s;var v=(1+s/2220446049250313e-31)*N,P=v-(v-N);return P>d||P!=P?1/0*$:$*P},mr=Math.fround||function(a){return hF(a,11920928955078125e-23,34028234663852886e22,11754943508222875e-54)},Sa=Array,ll=Math.abs,Cn=Math.pow,cY=Math.floor,fQ=Math.log,Tw=Math.LN2,hY={pack:function(a,s,d){var S,k,N,$=Sa(d),v=8*d-s-1,P=(1<<v)-1,j=P>>1,K=s===23?Cn(2,-24)-Cn(2,-77):0,cA=a<0||a===0&&1/a<0?1:0,DA=0;for((a=ll(a))!=a||a===1/0?(k=a!=a?1:0,S=P):(S=cY(fQ(a)/Tw),a*(N=Cn(2,-S))<1&&(S--,N*=2),(a+=S+j>=1?K/N:K*Cn(2,1-j))*N>=2&&(S++,N/=2),S+j>=P?(k=0,S=P):S+j>=1?(k=(a*N-1)*Cn(2,s),S+=j):(k=a*Cn(2,j-1)*Cn(2,s),S=0));s>=8;)$[DA++]=255&k,k/=256,s-=8;for(S=S<<s|k,v+=s;v>0;)$[DA++]=255&S,S/=256,v-=8;return $[DA-1]|=128*cA,$},unpack:function(a,s){var d,S=a.length,k=8*S-s-1,N=(1<<k)-1,$=N>>1,v=k-7,P=S-1,j=a[P--],K=127&j;for(j>>=7;v>0;)K=256*K+a[P--],v-=8;for(d=K&(1<<-v)-1,K>>=-v,v+=s;v>0;)d=256*d+a[P--],v-=8;if(K===0)K=1-$;else{if(K===N)return d?NaN:j?-1/0:1/0;d+=Cn(2,s),K-=$}return(j?-1:1)*d*Cn(2,K-s)}},lY=Ti,wQ=FI,yp=Rg,lF=function(a){for(var s=lY(this),d=yp(s),S=arguments.length,k=wQ(S>1?arguments[1]:void 0,d),N=S>2?arguments[2]:void 0,$=N===void 0?d:wQ(N,d);$>k;)s[k++]=a;return s},SQ=at,Qn=Se,Rp=xt,uF=dp,uY=Yr,Uw=eo,dF=TN,_w=Je,mp=eQ,DF=Kr,dY=Br,fp=cF,DY=mr,pF=hY,pY=zo,GQ=en,wp=lF,yF=Cr,RF=Xa,Lw=Ah,cn=Da,MQ=fo,ul=Hi.PROPER,bw=Hi.CONFIGURABLE,kQ="ArrayBuffer",NQ="DataView",rB="prototype",Sp="Wrong index",Yw=MQ.getterFor(kQ),FQ=MQ.getterFor(NQ),Gp=MQ.set,ea=SQ[kQ],jg=ea,hn=jg&&jg[rB],ta=SQ[NQ],ln=ta&&ta[rB],Mp=Object.prototype,Jw=SQ.Array,vQ=SQ.RangeError,mF=Qn(wp),xw=Qn([].reverse),aB=pF.pack,Ga=pF.unpack,Kw=function(a){return[255&a]},ps=function(a){return[255&a,a>>8&255]},tI=function(a){return[255&a,a>>8&255,a>>16&255,a>>24&255]},kp=function(a){return a[3]<<24|a[2]<<16|a[1]<<8|a[0]},TQ=function(a){return aB(DY(a),23,4)},Mg=function(a){return aB(a,52,8)},kg=function(a,s,d){Uw(a[rB],s,{configurable:!0,get:function(){return d(this)[s]}})},un=function(a,s,d,S){var k=FQ(a),N=fp(d),$=!!S;if(N+s>k.byteLength)throw new vQ(Sp);var v=k.bytes,P=N+k.byteOffset,j=yF(v,P,P+s);return $?j:xw(j)},dn=function(a,s,d,S,k,N){var $=FQ(a),v=fp(d),P=S(+k),j=!!N;if(v+s>$.byteLength)throw new vQ(Sp);for(var K=$.bytes,cA=v+$.byteOffset,DA=0;DA<s;DA++)K[cA+DA]=P[j?DA:s-DA-1]};if(uF){var fF=ul&&ea.name!==kQ;_w(function(){ea(1)})&&_w(function(){new ea(-1)})&&!_w(function(){return new ea,new ea(1.5),new ea(NaN),ea.length!==1||fF&&!bw})?fF&&bw&&uY(ea,"name",kQ):(jg=function(a){return mp(this,hn),RF(new ea(fp(a)),this,jg)},jg[rB]=hn,hn.constructor=jg,Lw(jg,ea)),GQ&&pY(ln)!==Mp&&GQ(ln,Mp);var dl=new ta(new jg(2)),Hw=Qn(ln.setInt8);dl.setInt8(0,2147483648),dl.setInt8(1,2147483649),!dl.getInt8(0)&&dl.getInt8(1)||dF(ln,{setInt8:function(a,s){Hw(this,a,s<<24>>24)},setUint8:function(a,s){Hw(this,a,s<<24>>24)}},{unsafe:!0})}else jg=function(a){mp(this,hn);var s=fp(a);Gp(this,{type:kQ,bytes:mF(Jw(s),0),byteLength:s}),Rp||(this.byteLength=s,this.detached=!1)},hn=jg[rB],ln=(ta=function(a,s,d){mp(this,ln),mp(a,hn);var S=Yw(a),k=S.byteLength,N=DF(s);if(N<0||N>k)throw new vQ("Wrong offset");if(N+(d=d===void 0?k-N:dY(d))>k)throw new vQ("Wrong length");Gp(this,{type:NQ,buffer:a,byteLength:d,byteOffset:N,bytes:S.bytes}),Rp||(this.buffer=a,this.byteLength=d,this.byteOffset=N)})[rB],Rp&&(kg(jg,"byteLength",Yw),kg(ta,"buffer",FQ),kg(ta,"byteLength",FQ),kg(ta,"byteOffset",FQ)),dF(ln,{getInt8:function(a){return un(this,1,a)[0]<<24>>24},getUint8:function(a){return un(this,1,a)[0]},getInt16:function(a){var s=un(this,2,a,arguments.length>1&&arguments[1]);return(s[1]<<8|s[0])<<16>>16},getUint16:function(a){var s=un(this,2,a,arguments.length>1&&arguments[1]);return s[1]<<8|s[0]},getInt32:function(a){return kp(un(this,4,a,arguments.length>1&&arguments[1]))},getUint32:function(a){return kp(un(this,4,a,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(a){return Ga(un(this,4,a,arguments.length>1&&arguments[1]),23)},getFloat64:function(a){return Ga(un(this,8,a,arguments.length>1&&arguments[1]),52)},setInt8:function(a,s){dn(this,1,a,Kw,s)},setUint8:function(a,s){dn(this,1,a,Kw,s)},setInt16:function(a,s){dn(this,2,a,ps,s,arguments.length>2&&arguments[2])},setUint16:function(a,s){dn(this,2,a,ps,s,arguments.length>2&&arguments[2])},setInt32:function(a,s){dn(this,4,a,tI,s,arguments.length>2&&arguments[2])},setUint32:function(a,s){dn(this,4,a,tI,s,arguments.length>2&&arguments[2])},setFloat32:function(a,s){dn(this,4,a,TQ,s,arguments.length>2&&arguments[2])},setFloat64:function(a,s){dn(this,8,a,Mg,s,arguments.length>2&&arguments[2])}});cn(jg,kQ),cn(ta,NQ);var ys={ArrayBuffer:jg,DataView:ta},IB=qh,Ow="ArrayBuffer",wF=ys[Ow];Ze({global:!0,constructor:!0,forced:at[Ow]!==wF},{ArrayBuffer:wF}),IB(Ow);var SF=Ze,Dl=Bo,GF=Je,qw=Zi,Np=FI,MF=Br,Fp=ys.ArrayBuffer,vp=ys.DataView,Pw=vp.prototype,Vw=Dl(Fp.prototype.slice),kF=Dl(Pw.getUint8),NF=Dl(Pw.setUint8);SF({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:GF(function(){return!new Fp(2).slice(1,void 0).byteLength})},{slice:function(a,s){if(Vw&&s===void 0)return Vw(qw(this),a);for(var d=qw(this).byteLength,S=Np(a,d),k=Np(s===void 0?d:s,d),N=new Fp(MF(k-S)),$=new vp(this),v=new vp(N),P=0;S<k;)NF(v,P++,kF($,S++));return N}}),Ze({global:!0,constructor:!0,forced:!dp},{DataView:ys.DataView});var Ww=Se,FF=LA,vF=Ei,Zw=di,jw=Cr,TF=Io,Xw=Function,UF=Ww([].concat),zw=Ww([].join),Tp={},_F=TF?Xw.bind:function(a){var s=FF(this),d=s.prototype,S=jw(arguments,1),k=function(){var N=UF(S,jw(arguments));return this instanceof k?(function($,v,P){if(!Zw(Tp,v)){for(var j=[],K=0;K<v;K++)j[K]="a["+K+"]";Tp[v]=Xw("C,a","return new C("+zw(j,",")+")")}return Tp[v]($,P)})(s,N.length,N):s.apply(a,N)};return vF(d)&&(k.prototype=d),k},$w=_F;Ze({target:"Function",proto:!0,forced:Function.bind!==$w},{bind:$w});var LF=xt,bF=Hi.EXISTS,AS=Se,YF=eo,eS=Function.prototype,JF=AS(eS.toString),tS=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,xF=AS(tS.exec);LF&&!bF&&YF(eS,"name",{configurable:!0,get:function(){try{return xF(tS,JF(this))[1]}catch{return""}}});var KF=Ze,HF=Math.floor,OF=Math.log,qF=Math.LOG2E;KF({target:"Math",stat:!0},{clz32:function(a){var s=a>>>0;return s?31-HF(OF(s+.5)*qF):32}}),Ze({target:"Math",stat:!0},{fround:mr});var PF=Ze,VF=Je,iS=Math.imul;PF({target:"Math",stat:!0,forced:VF(function(){return iS(4294967295,5)!==-5||iS.length!==2})},{imul:function(a,s){var d=65535,S=+a,k=+s,N=d&S,$=d&k;return 0|N*$+((d&S>>>16)*$+N*(d&k>>>16)<<16>>>0)}}),Ze({target:"Math",stat:!0},{trunc:td});var oS=xt,WF=Se,ZF=gi,UQ=Je,gS=lC,Up=CE,rS=xg,_p=Ti,Lp=Ur,Rs=Object.assign,bp=Object.defineProperty,Yp=WF([].concat),Jp=!Rs||UQ(function(){if(oS&&Rs({b:1},Rs(bp({},"a",{enumerable:!0,get:function(){bp(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var a={},s={},d=Symbol("assign detection"),S="abcdefghijklmnopqrst";return a[d]=7,S.split("").forEach(function(k){s[k]=k}),Rs({},a)[d]!==7||gS(Rs({},s)).join("")!==S})?function(a,s){for(var d=_p(a),S=arguments.length,k=1,N=Up.f,$=rS.f;S>k;)for(var v,P=Lp(arguments[k++]),j=N?Yp(gS(P),N(P)):gS(P),K=j.length,cA=0;K>cA;)v=j[cA++],oS&&!ZF($,P,v)||(d[v]=P[v]);return d}:Rs,jF=Jp;Ze({target:"Object",stat:!0,arity:2,forced:Object.assign!==jF},{assign:jF}),Ze({target:"Object",stat:!0,sham:!xt},{create:So});var Me=Ze,yY=xt,_Q=Ki.f;Me({target:"Object",stat:!0,forced:Object.defineProperty!==_Q,sham:!yY},{defineProperty:_Q});var RY=Ze,XF=Je,mY=Ft,zF=gr.f,pl=xt;RY({target:"Object",stat:!0,forced:!pl||XF(function(){zF(1)}),sham:!pl},{getOwnPropertyDescriptor:function(a,s){return zF(mY(a),s)}});var $F=Ki.f,aS=xt,xp=at,yl=Se,Rl=Wn,IS=Xa,le=Yr,tt=So,Av=qg.f,iI=ci,Dn=Xk,Mo=wo,ne=ol,l=LD,Xg=function(a,s,d){d in a||$F(a,d,{configurable:!0,get:function(){return s[d]},set:function(S){s[d]=S}})},X=Eo,Ng=Je,nS=di,fY=fo.enforce,wY=qh,ev=Bk,sS=YD,SY=Xt("match"),ms=xp.RegExp,nB=ms.prototype,GY=xp.SyntaxError,tv=yl(nB.exec),OA=yl("".charAt),ES=yl("".replace),oe=yl("".indexOf),Kp=yl("".slice),iv=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,fs=/a/g,BS=/a/g,ml=new ms(fs)!==fs,CS=l.MISSED_STICKY,QS=l.UNSUPPORTED_Y,pn=aS&&(!ml||CS||ev||sS||Ng(function(){return BS[SY]=!1,ms(fs)!==fs||ms(BS)===BS||String(ms(fs,"i"))!=="/a/i"}));if(Rl("RegExp",pn)){for(var ws=function(a,s){var d,S,k,N,$,v,P=iI(nB,this),j=Dn(a),K=s===void 0,cA=[],DA=a;if(!P&&j&&K&&a.constructor===ws)return a;if((j||iI(nB,a))&&(a=a.source,K&&(s=ne(DA))),a=a===void 0?"":Mo(a),s=s===void 0?"":Mo(s),DA=a,ev&&"dotAll"in fs&&(S=!!s&&oe(s,"s")>-1)&&(s=ES(s,/s/g,"")),d=s,CS&&"sticky"in fs&&(k=!!s&&oe(s,"y")>-1)&&QS&&(s=ES(s,/y/g,"")),sS&&(N=(function(kA){for(var _A,WA=kA.length,wA=0,tA="",F=[],JA=tt(null),mA=!1,he=!1,Ie=0,ye="";wA<=WA;wA++){if((_A=OA(kA,wA))==="\\")_A+=OA(kA,++wA);else if(_A==="]")mA=!1;else if(!mA)switch(!0){case _A==="[":mA=!0;break;case _A==="(":if(tA+=_A,Kp(kA,wA+1,wA+3)==="?:")continue;tv(iv,Kp(kA,wA+1))&&(wA+=2,he=!0),Ie++;continue;case(_A===">"&&he):if(ye===""||nS(JA,ye))throw new GY("Invalid capture group name");JA[ye]=!0,F[F.length]=[ye,Ie],he=!1,ye="";continue}he?ye+=_A:tA+=_A}return[tA,F]})(a),a=N[0],cA=N[1]),$=IS(ms(a,s),P?this:nB,ws),(S||k||cA.length)&&(v=fY($),S&&(v.dotAll=!0,v.raw=ws((function(kA){for(var _A,WA=kA.length,wA=0,tA="",F=!1;wA<=WA;wA++)(_A=OA(kA,wA))!=="\\"?F||_A!=="."?(_A==="["?F=!0:_A==="]"&&(F=!1),tA+=_A):tA+="[\\s\\S]":tA+=_A+OA(kA,++wA);return tA})(a),d)),k&&(v.sticky=!0),cA.length&&(v.groups=cA)),a!==DA)try{le($,"source",DA===""?"(?:)":DA)}catch{}return $},Hp=Av(ms),ia=0;Hp.length>ia;)Xg(ws,ms,Hp[ia++]);nB.constructor=ws,ws.prototype=nB,X(xp,"RegExp",ws,{constructor:!0})}wY("RegExp");var ov=Ze,cS=zk,fr=og,fl=wo,hS=Xf,MY=Se("".indexOf);ov({target:"String",proto:!0,forced:!hS("includes")},{includes:function(a){return!!~MY(fl(fr(this)),fl(cS(a)),arguments.length>1?arguments[1]:void 0)}});var ng,oI,wl,Ma={},gv={get exports(){return Ma},set exports(a){Ma=a}},kY=dp,gI=xt,wr=at,Op=Ot,Sl=Ei,LQ=di,lS=ag,rv=W,Gl=Yr,sB=Eo,Ss=eo,NY=ci,qp=zo,EB=en,av=Xt,uS=qa,rI=fo.enforce,Ml=fo.get,kl=wr.Int8Array,Nl=kl&&kl.prototype,V=wr.Uint8ClampedArray,Wt=V&&V.prototype,yn=kl&&qp(kl),oa=Nl&&qp(Nl),Fl=Object.prototype,vl=wr.TypeError,Tl=av("toStringTag"),BB=uS("TYPED_ARRAY_TAG"),bQ="TypedArrayConstructor",aI=kY&&!!EB&&lS(wr.opera)!=="Opera",Iv=!1,CB={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},Ul={BigInt64Array:8,BigUint64Array:8},dS=function(a){var s=qp(a);if(Sl(s)){var d=Ml(s);return d&&LQ(d,bQ)?d[bQ]:dS(s)}},DS=function(a){if(!Sl(a))return!1;var s=lS(a);return LQ(CB,s)||LQ(Ul,s)};for(ng in CB)(wl=(oI=wr[ng])&&oI.prototype)?rI(wl)[bQ]=oI:aI=!1;for(ng in Ul)(wl=(oI=wr[ng])&&oI.prototype)&&(rI(wl)[bQ]=oI);if((!aI||!Op(yn)||yn===Function.prototype)&&(yn=function(){throw new vl("Incorrect invocation")},aI))for(ng in CB)wr[ng]&&EB(wr[ng],yn);if((!aI||!oa||oa===Fl)&&(oa=yn.prototype,aI))for(ng in CB)wr[ng]&&EB(wr[ng].prototype,oa);if(aI&&qp(Wt)!==oa&&EB(Wt,oa),gI&&!LQ(oa,Tl))for(ng in Iv=!0,Ss(oa,Tl,{configurable:!0,get:function(){return Sl(this)?this[BB]:void 0}}),CB)wr[ng]&&Gl(wr[ng],BB,ng);var ht={NATIVE_ARRAY_BUFFER_VIEWS:aI,TYPED_ARRAY_TAG:Iv&&BB,aTypedArray:function(a){if(DS(a))return a;throw new vl("Target is not a typed array")},aTypedArrayConstructor:function(a){if(Op(a)&&(!EB||NY(yn,a)))return a;throw new vl(rv(a)+" is not a typed array constructor")},exportTypedArrayMethod:function(a,s,d,S){if(gI){if(d)for(var k in CB){var N=wr[k];if(N&&LQ(N.prototype,a))try{delete N.prototype[a]}catch{try{N.prototype[a]=s}catch{}}}oa[a]&&!d||sB(oa,a,d?s:aI&&Nl[a]||s,S)}},getTypedArrayConstructor:dS,isTypedArray:DS,TypedArray:yn,TypedArrayPrototype:oa},nv=at,pS=Je,FY=ff,vY=ht.NATIVE_ARRAY_BUFFER_VIEWS,TY=nv.ArrayBuffer,QB=nv.Int8Array,UY=!vY||!pS(function(){QB(1)})||!pS(function(){new QB(-1)})||!FY(function(a){new QB,new QB(null),new QB(1.5),new QB(a)},!0)||pS(function(){return new QB(new TY(2),1,void 0).length!==1}),Gs=Ei,co=Math.floor,sv=Number.isInteger||function(a){return!Gs(a)&&isFinite(a)&&co(a)===a},Ev=Kr,YQ=RangeError,cB=function(a){var s=Ev(a);if(s<0)throw new YQ("The argument can't be less than 0");return s},_Y=RangeError,ga=function(a,s){var d=cB(a);if(d%s)throw new _Y("Wrong offset");return d},LY=Math.round,Bv=ag,Cv=Ir,_l=TypeError,Ll=function(a){var s=Cv(a,"number");if(typeof s=="number")throw new _l("Can't convert number to bigint");return BigInt(s)},Pp=pa,Qv=gi,yS=nM,bY=Ti,YY=Rg,JY=WM,RS=zh,Ms=OM,xY=function(a){var s=Bv(a);return s==="BigInt64Array"||s==="BigUint64Array"},KY=ht.aTypedArrayConstructor,JQ=Ll,bl=Rg,Yl=function(a,s,d){for(var S=0,k=arguments.length>2?d:bl(s),N=new a(k);k>S;)N[S]=s[S++];return N},cv=Ze,hv=at,mS=gi,Jl=xt,xl=UY,hB=ht,Kl=ys,lv=eQ,fS=tg,lB=Yr,wS=sv,xQ=Br,uv=cF,Hl=ga,SS=function(a){var s=LY(a);return s<0?0:s>255?255:255&s},GS=zs,KQ=di,zg=ag,Vp=Ei,Ol=Ba,MS=So,kS=ci,HQ=en,ql=qg.f,OQ=function(a){var s,d,S,k,N,$,v,P,j=yS(this),K=bY(a),cA=arguments.length,DA=cA>1?arguments[1]:void 0,kA=DA!==void 0,_A=RS(K);if(_A&&!Ms(_A))for(P=(v=JY(K,_A)).next,K=[];!($=Qv(P,v)).done;)K.push($.value);for(kA&&cA>2&&(DA=Pp(DA,arguments[2])),d=YY(K),S=new(KY(j))(d),k=xY(S),s=0;d>s;s++)N=kA?DA(K[s],s):K[s],S[s]=k?JQ(N):+N;return S},HY=Zo.forEach,NS=qh,dv=eo,Rn=Ki,uB=gr,FS=Yl,Wp=Xa,vS=fo.get,Dv=fo.set,pv=fo.enforce,Zp=Rn.f,Pl=uB.f,jp=hv.RangeError,TS=Kl.ArrayBuffer,US=TS.prototype,yv=Kl.DataView,qQ=hB.NATIVE_ARRAY_BUFFER_VIEWS,_S=hB.TYPED_ARRAY_TAG,II=hB.TypedArray,sg=hB.TypedArrayPrototype,ks=hB.isTypedArray,nI="BYTES_PER_ELEMENT",ho="Wrong length",Ni=function(a,s){dv(a,s,{configurable:!0,get:function(){return vS(this)[s]}})},yA=function(a){var s;return kS(US,a)||(s=zg(a))==="ArrayBuffer"||s==="SharedArrayBuffer"},ai=function(a,s){return ks(a)&&!Ol(s)&&s in a&&wS(+s)&&s>=0},Zt=function(a,s){return s=GS(s),ai(a,s)?fS(2,a[s]):Pl(a,s)},fi=function(a,s,d){return s=GS(s),!(ai(a,s)&&Vp(d)&&KQ(d,"value"))||KQ(d,"get")||KQ(d,"set")||d.configurable||KQ(d,"writable")&&!d.writable||KQ(d,"enumerable")&&!d.enumerable?Zp(a,s,d):(a[s]=d.value,a)};Jl?(qQ||(uB.f=Zt,Rn.f=fi,Ni(sg,"buffer"),Ni(sg,"byteOffset"),Ni(sg,"byteLength"),Ni(sg,"length")),cv({target:"Object",stat:!0,forced:!qQ},{getOwnPropertyDescriptor:Zt,defineProperty:fi}),gv.exports=function(a,s,d){var S=a.match(/\d+/)[0]/8,k=a+(d?"Clamped":"")+"Array",N="get"+a,$="set"+a,v=hv[k],P=v,j=P&&P.prototype,K={},cA=function(kA,_A){Zp(kA,_A,{get:function(){return(function(WA,wA){var tA=vS(WA);return tA.view[N](wA*S+tA.byteOffset,!0)})(this,_A)},set:function(WA){return(function(wA,tA,F){var JA=vS(wA);JA.view[$](tA*S+JA.byteOffset,d?SS(F):F,!0)})(this,_A,WA)},enumerable:!0})};qQ?xl&&(P=s(function(kA,_A,WA,wA){return lv(kA,j),Wp(Vp(_A)?yA(_A)?wA!==void 0?new v(_A,Hl(WA,S),wA):WA!==void 0?new v(_A,Hl(WA,S)):new v(_A):ks(_A)?FS(P,_A):mS(OQ,P,_A):new v(uv(_A)),kA,P)}),HQ&&HQ(P,II),HY(ql(v),function(kA){kA in P||lB(P,kA,v[kA])}),P.prototype=j):(P=s(function(kA,_A,WA,wA){lv(kA,j);var tA,F,JA,mA=0,he=0;if(Vp(_A)){if(!yA(_A))return ks(_A)?FS(P,_A):mS(OQ,P,_A);tA=_A,he=Hl(WA,S);var Ie=_A.byteLength;if(wA===void 0){if(Ie%S)throw new jp(ho);if((F=Ie-he)<0)throw new jp(ho)}else if((F=xQ(wA)*S)+he>Ie)throw new jp(ho);JA=F/S}else JA=uv(_A),tA=new TS(F=JA*S);for(Dv(kA,{buffer:tA,byteOffset:he,byteLength:F,length:JA,view:new yv(tA)});mA<JA;)cA(kA,mA++)}),HQ&&HQ(P,II),j=P.prototype=MS(sg)),j.constructor!==P&&lB(j,"constructor",P),pv(j).TypedArrayConstructor=P,_S&&lB(j,_S,k);var DA=P!==v;K[k]=P,cv({global:!0,constructor:!0,forced:DA,sham:!qQ},K),nI in P||lB(P,nI,S),nI in j||lB(j,nI,S),NS(k)}):gv.exports=function(){},Ma("Float32",function(a){return function(s,d,S){return a(this,s,d,S)}}),Ma("Float64",function(a){return function(s,d,S){return a(this,s,d,S)}}),Ma("Int8",function(a){return function(s,d,S){return a(this,s,d,S)}}),Ma("Int16",function(a){return function(s,d,S){return a(this,s,d,S)}}),Ma("Int32",function(a){return function(s,d,S){return a(this,s,d,S)}}),Ma("Uint8",function(a){return function(s,d,S){return a(this,s,d,S)}}),Ma("Uint8",function(a){return function(s,d,S){return a(this,s,d,S)}},!0),Ma("Uint16",function(a){return function(s,d,S){return a(this,s,d,S)}}),Ma("Uint32",function(a){return function(s,d,S){return a(this,s,d,S)}});var ka=ht,lo=Se(mw),Rv=ka.aTypedArray;(0,ka.exportTypedArrayMethod)("copyWithin",function(a,s){return lo(Rv(this),a,s,arguments.length>2?arguments[2]:void 0)});var mv=Zo.every,Vl=ht.aTypedArray;(0,ht.exportTypedArrayMethod)("every",function(a){return mv(Vl(this),a,arguments.length>1?arguments[1]:void 0)});var Wl=lF,Xp=Ll,fv=ag,wv=gi,Zl=Je,it=ht.aTypedArray,Sv=ht.exportTypedArrayMethod,Gv=Se("".slice);Sv("fill",function(a){var s=arguments.length;it(this);var d=Gv(fv(this),0,3)==="Big"?Xp(a):+a;return wv(Wl,this,d,s>1?arguments[1]:void 0,s>2?arguments[2]:void 0)},Zl(function(){var a=0;return new Int8Array(2).fill({valueOf:function(){return a++}}),a!==1}));var OY=Yl,zp=ht.getTypedArrayConstructor,dB=Zo.filter,Mv=function(a,s){return OY(zp(a),s)},jl=ht.aTypedArray;(0,ht.exportTypedArrayMethod)("filter",function(a){var s=dB(jl(this),a,arguments.length>1?arguments[1]:void 0);return Mv(this,s)});var mn=Zo.find,PQ=ht.aTypedArray;(0,ht.exportTypedArrayMethod)("find",function(a){return mn(PQ(this),a,arguments.length>1?arguments[1]:void 0)});var Xl=Zo.findIndex,kv=ht.aTypedArray;(0,ht.exportTypedArrayMethod)("findIndex",function(a){return Xl(kv(this),a,arguments.length>1?arguments[1]:void 0)});var Nv=Zo.forEach,Na=ht.aTypedArray;(0,ht.exportTypedArrayMethod)("forEach",function(a){Nv(Na(this),a,arguments.length>1?arguments[1]:void 0)});var $p=vI.includes,Ay=ht.aTypedArray;(0,ht.exportTypedArrayMethod)("includes",function(a){return $p(Ay(this),a,arguments.length>1?arguments[1]:void 0)});var LS=vI.indexOf,zl=ht.aTypedArray;(0,ht.exportTypedArrayMethod)("indexOf",function(a){return LS(zl(this),a,arguments.length>1?arguments[1]:void 0)});var bS=at,ey=Je,ra=Se,ty=ht,$l=U0,Au=Xt("iterator"),eu=bS.Uint8Array,Ns=ra($l.values),Fv=ra($l.keys),iy=ra($l.entries),tu=ty.aTypedArray,fn=ty.exportTypedArrayMethod,Fs=eu&&eu.prototype,VQ=!ey(function(){Fs[Au].call([1])}),YS=!!Fs&&Fs.values&&Fs[Au]===Fs.values&&Fs.values.name==="values",vv=function(){return Ns(tu(this))};fn("entries",function(){return iy(tu(this))},VQ),fn("keys",function(){return Fv(tu(this))},VQ),fn("values",vv,VQ||!YS,{name:"values"}),fn(Au,vv,VQ||!YS,{name:"values"});var Tv=ht.aTypedArray,JS=ht.exportTypedArrayMethod,Uv=Se([].join);JS("join",function(a){return Uv(Tv(this),a)});var iu=ur,_v=Gw,qY=ht.aTypedArray;(0,ht.exportTypedArrayMethod)("lastIndexOf",function(a){var s=arguments.length;return iu(_v,qY(this),s>1?[a,arguments[1]]:[a])});var DB=Zo.map,aa=ht.aTypedArray,Lv=ht.getTypedArrayConstructor;(0,ht.exportTypedArrayMethod)("map",function(a){return DB(aa(this),a,arguments.length>1?arguments[1]:void 0,function(s,d){return new(Lv(s))(d)})});var bv=LA,Yv=Ti,ou=Ur,xS=Rg,KS=TypeError,Sr="Reduce of empty array with no initial value",dt=function(a){return function(s,d,S,k){var N=Yv(s),$=ou(N),v=xS(N);if(bv(d),v===0&&S<2)throw new KS(Sr);var P=a?v-1:0,j=a?-1:1;if(S<2)for(;;){if(P in $){k=$[P],P+=j;break}if(P+=j,a?P<0:v<=P)throw new KS(Sr)}for(;a?P>=0:v>P;P+=j)P in $&&(k=d(k,$[P],P,N));return k}},zi={left:dt(!1),right:dt(!0)},oy=zi.left,Jv=ht.aTypedArray;(0,ht.exportTypedArrayMethod)("reduce",function(a){var s=arguments.length;return oy(Jv(this),a,s,s>1?arguments[1]:void 0)});var PY=zi.right,WQ=ht.aTypedArray;(0,ht.exportTypedArrayMethod)("reduceRight",function(a){var s=arguments.length;return PY(WQ(this),a,s,s>1?arguments[1]:void 0)});var HS=ht.aTypedArray,pB=ht.exportTypedArrayMethod,xv=Math.floor;pB("reverse",function(){for(var a,s=this,d=HS(s).length,S=xv(d/2),k=0;k<S;)a=s[k],s[k++]=s[--d],s[d]=a;return s});var uo=at,ZQ=gi,Oi=ht,gy=Rg,VY=ga,WY=Ti,ei=Je,OS=uo.RangeError,jQ=uo.Int8Array,yB=jQ&&jQ.prototype,ry=yB&&yB.set,gu=Oi.aTypedArray,qS=Oi.exportTypedArrayMethod,ay=!ei(function(){var a=new Uint8ClampedArray(2);return ZQ(ry,a,{length:1,0:3},1),a[1]!==3}),Iy=ay&&Oi.NATIVE_ARRAY_BUFFER_VIEWS&&ei(function(){var a=new jQ(2);return a.set(1),a.set("2",1),a[0]!==0||a[1]!==2});qS("set",function(a){gu(this);var s=VY(arguments.length>1?arguments[1]:void 0,1),d=WY(a);if(ay)return ZQ(ry,this,d,s);var S=this.length,k=gy(d),N=0;if(k+s>S)throw new OS("Wrong length");for(;N<k;)this[s+N]=d[N++]},!ay||Iy);var PS=Cr,ny=ht.aTypedArray,VS=ht.getTypedArrayConstructor;(0,ht.exportTypedArrayMethod)("slice",function(a,s){for(var d=PS(ny(this),a,s),S=VS(this),k=0,N=d.length,$=new S(N);N>k;)$[k]=d[k++];return $},Je(function(){new Int8Array(1).slice()}));var sI=Zo.some,WS=ht.aTypedArray;(0,ht.exportTypedArrayMethod)("some",function(a){return sI(WS(this),a,arguments.length>1?arguments[1]:void 0)});var vs=Cr,ZS=Math.floor,jS=function(a,s){var d=a.length;if(d<8)for(var S,k,N=1;N<d;){for(k=N,S=a[N];k&&s(a[k-1],S)>0;)a[k]=a[--k];k!==N++&&(a[k]=S)}else for(var $=ZS(d/2),v=jS(vs(a,0,$),s),P=jS(vs(a,$),s),j=v.length,K=P.length,cA=0,DA=0;cA<j||DA<K;)a[cA+DA]=cA<j&&DA<K?s(v[cA],P[DA])<=0?v[cA++]:P[DA++]:cA<j?v[cA++]:P[DA++];return a},Kv=jS,Hv=Dg.match(/firefox\/(\d+)/i),XQ=!!Hv&&+Hv[1],XS=/MSIE|Trident/.test(Dg),zQ=Dg.match(/AppleWebKit\/(\d+)\./),ru=!!zQ&&+zQ[1],au=Bo,$Q=Je,zS=LA,sy=Kv,Ey=XQ,By=XS,Cy=wI,RB=ru,Ts=ht.aTypedArray,Iu=ht.exportTypedArrayMethod,mB=at.Uint16Array,Ac=mB&&au(mB.prototype.sort),Ov=!(!Ac||$Q(function(){Ac(new mB(2),null)})&&$Q(function(){Ac(new mB(2),{})})),qv=!!Ac&&!$Q(function(){if(Cy)return Cy<74;if(Ey)return Ey<67;if(By)return!0;if(RB)return RB<602;var a,s,d=new mB(516),S=Array(516);for(a=0;a<516;a++)s=a%4,d[a]=515-a,S[a]=a-2*s+3;for(Ac(d,function(k,N){return(k/4|0)-(N/4|0)}),a=0;a<516;a++)if(d[a]!==S[a])return!0});Iu("sort",function(a){return a!==void 0&&zS(a),qv?Ac(this,a):sy(Ts(this),(function(s){return function(d,S){return s!==void 0?+s(d,S)||0:S!=S?-1:d!=d?1:d===0&&S===0?1/d>0&&1/S<0?1:-1:d>S}})(a))},!qv||Ov);var Qy=Br,cy=FI,hy=ht.aTypedArray,$S=ht.getTypedArrayConstructor;(0,ht.exportTypedArrayMethod)("subarray",function(a,s){var d=hy(this),S=d.length,k=cy(a,S);return new($S(d))(d.buffer,d.byteOffset+k*d.BYTES_PER_ELEMENT,Qy((s===void 0?S:cy(s,S))-k))});var Pv=ur,ly=ht,ec=Je,uy=Cr,Us=at.Int8Array,dy=ly.aTypedArray,Dy=ly.exportTypedArrayMethod,py=[].toLocaleString,nu=!!Us&&ec(function(){py.call(new Us(1))});Dy("toLocaleString",function(){return Pv(py,nu?uy(dy(this)):dy(this),uy(arguments))},ec(function(){return[1,2].toLocaleString()!==new Us([1,2]).toLocaleString()})||!ec(function(){Us.prototype.toLocaleString.call([1,2])}));var ZY=ht.exportTypedArrayMethod,yy=Je,su=Se,Fg=at.Uint8Array,Ry=Fg&&Fg.prototype||{},Eu=[].toString,Gr=su([].join);yy(function(){Eu.call({})})&&(Eu=function(){return Gr(this)});var AG=Ry.toString!==Eu;ZY("toString",Eu,AG);var my=at;Ze({global:!0,forced:my.globalThis!==my},{globalThis:my});var ko=at,fB=ur,wB=Ot,jY=Hm,Fa=Dg,eG=Cr,Vv=EM,va=ko.Function,XY=/MSIE .\./.test(Fa)||jY==="BUN"&&(function(){var a=ko.Bun.version.split(".");return a.length<3||a[0]==="0"&&(a[1]<3||a[1]==="3"&&a[2]==="0")})(),tG=function(a,s){var d=2;return XY?function(S,k){var N=Vv(arguments.length,1)>d,$=wB(S)?S:va(S),v=N?eG(arguments,d):[],P=N?function(){fB($,this,v)}:$;return a(P,k)}:a},Wv=Ze,iG=at,_s=tG(iG.setInterval);Wv({global:!0,bind:!0,forced:iG.setInterval!==_s},{setInterval:_s});var SB=Ze,wn=at,oG=tG(wn.setTimeout);SB({global:!0,bind:!0,forced:wn.setTimeout!==oG},{setTimeout:oG});var li,fy,Ta,Bu,gG=(li=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0,function(a){var s,d;(a=(a=a||{})!==void 0?a:{}).ready=new Promise(function(w,y){s=w,d=y}),["_main","___getTypeName","___embind_register_native_and_builtin_types","_fflush","onRuntimeInitialized"].forEach(function(w){Object.getOwnPropertyDescriptor(a.ready,w)||Object.defineProperty(a.ready,w,{get:function(){return $o("You are getting "+w+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")},set:function(){return $o("You are setting "+w+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})});var S=Object.assign({},a),k="./this.program",N=(typeof window>"u"?"undefined":ui(window))=="object",$=typeof importScripts=="function",v=(typeof process>"u"?"undefined":ui(process))=="object"&&ui(process.versions)=="object"&&typeof process.versions.node=="string",P=!N&&!v&&!$;if(a.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)");var j,K,cA="";if(P){if((typeof process>"u"?"undefined":ui(process))=="object"&&typeof zP=="function"||(typeof window>"u"?"undefined":ui(window))=="object"||typeof importScripts=="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");K=function(w){var y;return(y=Hy(w))?y:typeof readbuffer=="function"?new Uint8Array(readbuffer(w)):(mA(ui(y=read(w,"binary"))=="object"),y)},j=function(w,y,U){setTimeout(function(){return y(K(w))},0)},typeof scriptArgs<"u"&&scriptArgs,typeof print<"u"&&(typeof console>"u"&&(console={}),console.log=print,console.warn=console.error=typeof printErr<"u"?printErr:print)}else{if(!N&&!$)throw new Error("environment detection error");if($?cA=self.location.href:typeof document<"u"&&document.currentScript&&(cA=document.currentScript.src),li&&(cA=li),cA=cA.indexOf("blob:")!==0?cA.substr(0,cA.replace(/[?#].*/,"").lastIndexOf("/")+1):"",(typeof window>"u"?"undefined":ui(window))!="object"&&typeof importScripts!="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");$&&(K=function(w){try{var y=new XMLHttpRequest;return y.open("GET",w,!1),y.responseType="arraybuffer",y.send(null),new Uint8Array(y.response)}catch(J){var U=Hy(w);if(U)return U;throw J}}),j=function(w,y,U){var J=new XMLHttpRequest;J.open("GET",w,!0),J.responseType="arraybuffer",J.onload=function(){if(J.status==200||J.status==0&&J.response)y(J.response);else{var iA=Hy(w);iA?y(iA.buffer):U()}},J.onerror=U,J.send(null)}}var DA,kA,_A,WA=a.print||console.log.bind(console),wA=a.printErr||console.warn.bind(console);function tA(w,y){Object.getOwnPropertyDescriptor(a,w)||Object.defineProperty(a,w,{configurable:!0,get:function(){$o("Module."+w+" has been replaced with plain "+y+" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}function F(w,y){Object.getOwnPropertyDescriptor(a,w)||Object.defineProperty(a,w,{configurable:!0,get:function(){$o((function(U,J){var iA="'"+U+"' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)";return J&&(iA+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),iA})(w,y))}})}Object.assign(a,S),S=null,DA="fetchSettings",Object.getOwnPropertyDescriptor(a,DA)&&$o("`Module."+DA+"` was supplied but `"+DA+"` not included in INCOMING_MODULE_JS_API"),a.arguments&&a.arguments,tA("arguments","arguments_"),a.thisProgram&&(k=a.thisProgram),tA("thisProgram","thisProgram"),a.quit&&a.quit,tA("quit","quit_"),mA(a.memoryInitializerPrefixURL===void 0,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),mA(a.pthreadMainPrefixURL===void 0,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),mA(a.cdInitializerPrefixURL===void 0,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),mA(a.filePackagePrefixURL===void 0,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),mA(a.read===void 0,"Module.read option was removed (modify read_ in JS)"),mA(a.readAsync===void 0,"Module.readAsync option was removed (modify readAsync in JS)"),mA(a.readBinary===void 0,"Module.readBinary option was removed (modify readBinary in JS)"),mA(a.setWindowTitle===void 0,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),mA(a.TOTAL_MEMORY===void 0,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),tA("read","read_"),tA("readAsync","readAsync"),tA("readBinary","readBinary"),tA("setWindowTitle","setWindowTitle"),mA(!$,"worker environment detected but not enabled at build time. Add 'worker' to `-sENVIRONMENT` to enable."),mA(!v,"node environment detected but not enabled at build time. Add 'node' to `-sENVIRONMENT` to enable."),mA(!P,"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable."),a.wasmBinary&&(kA=a.wasmBinary),tA("wasmBinary","wasmBinary"),a.noExitRuntime,tA("noExitRuntime","noExitRuntime"),(typeof WebAssembly>"u"?"undefined":ui(WebAssembly))!="object"&&$o("no native wasm support detected");var JA=!1;function mA(w,y){w||$o("Assertion failed"+(y?": "+y:""))}var he,Ie,ye,fe,PA,GA,Ee,Ke,Fe,ke=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Xe(w,y,U){for(var J=y+U,iA=y;w[iA]&&!(iA>=J);)++iA;if(iA-y>16&&w.buffer&&ke)return ke.decode(w.subarray(y,iA));for(var aA="";y<iA;){var IA=w[y++];if(128&IA){var CA=63&w[y++];if((224&IA)!=192){var NA=63&w[y++];if((240&IA)==224?IA=(15&IA)<<12|CA<<6|NA:((248&IA)!=240&&MB("Invalid UTF-8 leading byte 0x"+IA.toString(16)+" encountered when deserializing a UTF-8 string in wasm memory to a JS string!"),IA=(7&IA)<<18|CA<<12|NA<<6|63&w[y++]),IA<65536)aA+=String.fromCharCode(IA);else{var pA=IA-65536;aA+=String.fromCharCode(55296|pA>>10,56320|1023&pA)}}else aA+=String.fromCharCode((31&IA)<<6|CA)}else aA+=String.fromCharCode(IA)}return aA}function _t(w,y){return w?Xe(ye,w,y):""}function zt(w,y,U,J){if(!(J>0))return 0;for(var iA=U,aA=U+J-1,IA=0;IA<w.length;++IA){var CA=w.charCodeAt(IA);if(CA>=55296&&CA<=57343&&(CA=65536+((1023&CA)<<10)|1023&w.charCodeAt(++IA)),CA<=127){if(U>=aA)break;y[U++]=CA}else if(CA<=2047){if(U+1>=aA)break;y[U++]=192|CA>>6,y[U++]=128|63&CA}else if(CA<=65535){if(U+2>=aA)break;y[U++]=224|CA>>12,y[U++]=128|CA>>6&63,y[U++]=128|63&CA}else{if(U+3>=aA)break;CA>1114111&&MB("Invalid Unicode code point 0x"+CA.toString(16)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)."),y[U++]=240|CA>>18,y[U++]=128|CA>>12&63,y[U++]=128|CA>>6&63,y[U++]=128|63&CA}}return y[U]=0,U-iA}function qi(w){for(var y=0,U=0;U<w.length;++U){var J=w.charCodeAt(U);J>=55296&&J<=57343&&(J=65536+((1023&J)<<10)|1023&w.charCodeAt(++U)),J<=127?++y:y+=J<=2047?2:J<=65535?3:4}return y}var ot=5242880;a.TOTAL_STACK&&mA(ot===a.TOTAL_STACK,"the stack size can no longer be determined at runtime");var xo,ic=a.INITIAL_MEMORY||16777216;function Qu(){if(!JA){var w=MG(),y=Ee[w>>2],U=Ee[w+4>>2];y==34821223&&U==2310721022||$o("Stack overflow! Stack cookie has been overwritten at 0x"+w.toString(16)+", expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+U.toString(16)+" 0x"+y.toString(16)),Ee[0]!==1668509029&&$o("Runtime error: The application has corrupted its heap memory area (address zero)!")}}tA("INITIAL_MEMORY","INITIAL_MEMORY"),mA(ic>=ot,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+ic+"! (TOTAL_STACK="+ot+")"),mA(typeof Int32Array<"u"&&typeof Float64Array<"u"&&Int32Array.prototype.subarray!=null&&Int32Array.prototype.set!=null,"JS engine does not provide full typed array support"),mA(!a.wasmMemory,"Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally"),mA(ic==16777216,"Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically"),(function(){var w=new Int16Array(1),y=new Int8Array(w.buffer);if(w[0]=25459,y[0]!==115||y[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"})();var oc=[],Ls=[],aG=[],wy=!1;function jv(w){oc.unshift(w)}function Xv(w){aG.unshift(w)}mA(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),mA(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),mA(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),mA(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var bs=0,GB=null,gc=null,rc={};function $o(w){a.onAbort&&a.onAbort(w),wA(w="Aborted("+w+")"),JA=!0;var y=new WebAssembly.RuntimeError(w);throw d(y),y}var Mr={error:function(){$o("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM")},init:function(){Mr.error()},createDataFile:function(){Mr.error()},createPreloadedFile:function(){Mr.error()},createLazyFile:function(){Mr.error()},open:function(){Mr.error()},mkdev:function(){Mr.error()},registerDevice:function(){Mr.error()},analyzePath:function(){Mr.error()},loadFilesFromDB:function(){Mr.error()},ErrnoError:function(){Mr.error()}};a.FS_createDataFile=Mr.createDataFile,a.FS_createPreloadedFile=Mr.createPreloadedFile;var Bg,IG="data:application/octet-stream;base64,";function Sy(w){return w.startsWith(IG)}function Gy(w){return w.startsWith("file://")}function Fo(w,y){return function(){var U=w,J=y;return J=a.asm,mA(wy,"native function `"+U+"` called before runtime initialization"),J[w]||mA(J[w],"exported native function `"+U+"` not found"),J[w].apply(null,arguments)}}function nG(w){try{if(w==Bg&&kA)return new Uint8Array(kA);var y=Hy(w);if(y)return y;if(K)return K(w);throw"both async and sync fetching of the wasm failed"}catch(U){$o(U)}}function My(w){for(;w.length>0;)w.shift()(a)}function MB(w){MB.shown||(MB.shown={}),MB.shown[w]||(MB.shown[w]=1,wA(w))}function ky(w){switch(w){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+w)}}Sy(Bg="data:application/octet-stream;base64,AGFzbQEAAAABgAQ/YAJ/fwBgAX8AYAF/AX9gA39/fwBgAn9/AX9gBH9/f38AYAV/f39/fwBgA39/fwF/YAZ/f39/f38AYAZ/f39/f38Bf2AFf39/f38Bf2AEf39/fwF/YAd/f39/f39/AGAAAX9gCH9/f39/f39/AGAIf39/f39/f38Bf2AAAGAHf39/f39/fwF/YAV/fn5+fgBgBX9/f39+AX9gAn9+AGACf3wAYAF8AX9gA39+fwBgBX9/fn9/AGABfwF+YAR/fn9/AGAGf35/f39/AGADf35/AX5gBH9+fn8AYAp/f39/f39/f39/AX9gBn9/f39+fgF/YAd/f39/f35+AX9gA39/fwF8YAJ/fgF/YAF/AXxgBn98f39/fwF/YAR/f39/AX5gDH9/f39/f39/f39/fwF/YAV/f39/fAF/YAt/f39/f39/f39/fwF/YAp/f39/f39/f39/AGAPf39/f39/f39/f39/f39/AGADf39/AX5gBX9/f39/AXxgDX9/f39/f39/f39/f38AYAx/f39/f39/f39/f38AYAABfGACfn8AYAN/f34BfmAAAX5gAnx/AXxgAn5/AX9gAn9/AX5gA39/fgBgBH5+fn4Bf2ADfn5+AX9gAn5+AXxgAn5+AX1gBH9/f34BfmADf39/AX1gCX9/f39/f39/fwF/YAR/f35+AALcCSwDZW52DV9fYXNzZXJ0X2ZhaWwABQNlbnYFYWJvcnQAEANlbnYaX2VtdmFsX2dldF9tb2R1bGVfcHJvcGVydHkAAgNlbnYRX2VtdmFsX3Rha2VfdmFsdWUABANlbnYNX2VtdmFsX2RlY3JlZgABA2VudhdfZW12YWxfY2FsbF92b2lkX21ldGhvZAAFA2VudhhfZW12YWxfZ2V0X21ldGhvZF9jYWxsZXIABANlbnYNX2VtdmFsX2luY3JlZgABA2VudhNfZW12YWxfZ2V0X3Byb3BlcnR5AAQDZW52EF9lbXZhbF9pc19zdHJpbmcAAgNlbnYJX2VtdmFsX2FzACEDZW52EV9lbXZhbF9nZXRfZ2xvYmFsAAIDZW52El9lbXZhbF9uZXdfY3N0cmluZwACA2VudhJfZW12YWxfY2FsbF9tZXRob2QALANlbnYWX2VtdmFsX3J1bl9kZXN0cnVjdG9ycwABA2VudgpfZW12YWxfbmV3AAsDZW52EV9lbXZhbF9pbnN0YW5jZW9mAAQDZW52EF9lbXZhbF9pc19udW1iZXIAAgNlbnYWX2VtYmluZF9yZWdpc3Rlcl9jbGFzcwAtA2VudgtfZW12YWxfY2FsbAALA2VudhpfZW1iaW5kX3JlZ2lzdGVyX3NtYXJ0X3B0cgAuA2VudiVfZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX2NsYXNzX2Z1bmN0aW9uAAwDZW52Il9lbWJpbmRfcmVnaXN0ZXJfY2xhc3NfY29uc3RydWN0b3IACANlbnYfX2VtYmluZF9yZWdpc3Rlcl9jbGFzc19mdW5jdGlvbgAOA2VudhVfZW1iaW5kX3JlZ2lzdGVyX3ZvaWQAAANlbnYVX2VtYmluZF9yZWdpc3Rlcl9ib29sAAYDZW52GF9lbWJpbmRfcmVnaXN0ZXJfaW50ZWdlcgAGA2VudhZfZW1iaW5kX3JlZ2lzdGVyX2Zsb2F0AAMDZW52G19lbWJpbmRfcmVnaXN0ZXJfc3RkX3N0cmluZwAAA2VudhxfZW1iaW5kX3JlZ2lzdGVyX3N0ZF93c3RyaW5nAAMDZW52Fl9lbWJpbmRfcmVnaXN0ZXJfZW12YWwAAANlbnYcX2VtYmluZF9yZWdpc3Rlcl9tZW1vcnlfdmlldwADA2VudhVlbXNjcmlwdGVuX21lbWNweV9iaWcAAwNlbnYUX2Vtc2NyaXB0ZW5fZGF0ZV9ub3cALwNlbnYgX2Vtc2NyaXB0ZW5fZ2V0X25vd19pc19tb25vdG9uaWMADRZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxCGZkX2Nsb3NlAAIWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQhmZF93cml0ZQALA2VudhZlbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwAAIWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MRFlbnZpcm9uX3NpemVzX2dldAAEFndhc2lfc25hcHNob3RfcHJldmlldzELZW52aXJvbl9nZXQABANlbnYKc3RyZnRpbWVfbAAKA2VudgtzZXRUZW1wUmV0MAABA2VudhdfZW1iaW5kX3JlZ2lzdGVyX2JpZ2ludAAMFndhc2lfc25hcHNob3RfcHJldmlldzEHZmRfc2VlawAKA7sWuRYQAQICAQEEBwIHAgICAgMCAQEAAgACAwICBAUCBAIAAAAAAQICAAAAAAIAAQIHAAcABQQBBAIHBAAABAAFAgQABwQDAwIAAgcECgAEAgIAAAMEBAQABAcUFBUHBAQCAgcQAhYCAAIEAgQEAgEBBAMCAgACBAQAAAQEAgIBAQICAgABAgICAQQEAAEEAQMEBwAFAAEABAQEAwQEIiIEBAQEBAQEAQQEBzAWAgIWGRkjBAICAgIEBAcBBAQABAECCwABEAIAAgIEAwADAgAAAAAAAAQAAgIEAg0EAgQAAQICAwADAgICAQICBAEAAgABAQAHAAAEBAACAQECAQIBAAIBAgICBwAAAAIAAgAHBQIDBwIHBwMBBAQHBAIQBAIBAQACAgAABgAABAQCAQIBAgMAAgQECwAAAQAHAwcABwQHAQEEAAcEBwIEAgkCAgcCBAcCBAALBAACBwEEAwICAgIBAQEBAgEBAQECAAIBBAQDAQQAAAQBAAICAQAAAwQAAgQxBAQBBQEBBAEBAwgFAgUAAQQABwQEAAIBAQQAAgAAAQICAgcAAgEBAQcEBwIEBwEABwQHBwUDAAAEAAEAAwEAAwMAAQEBCwAKBQEBAgcCAAcEBAcHBwIEBwEDAQcEAQcHAAQBAgAJAAIFBwEABwYGDAIEAAIABAIBAAcHAgEAAgYCCQADAgIAAQIDAAQBAQABBAMAAQADAAEBAgABAQIDAgQBAQIAAAEHBAAHAgQFAAEEAAAFAAUFCwQAAAAABAQCAQACAQAAAgEAAgEAAAQAAAQCAQEABwUCBQIEBAUEAgECAQIBAgAAAwsKCwMLAAUDAAMAAwcEAwQEAwAABwECAAQAAwAAAwQBBAAHBAcCBAICAgECCgIEAAAJBAACAQIAAQABAgQHAAcBAAICDQMDAgEAAQAyBAMEAgICAgACAgABARcAAQQBAgMCAQEBAAICBAIDBAMCAAAEFQECARABAg0BDQENAQ0BAhUCAhYAAAACBAECBAECAAEKAwEEAQEEAQEAAAIAAwIBAQEBABoAAQAAAAUGBwUDBAAGBgYDBQgCAAAAAQICAwMBAQEBAgAEBQYHAAYHAwgGAwgDBgwGAA4FBgUGBQYFBgMGAxcGBQEBAwIBAAUCAQEFAgEAAQADAgEBAQQAAQIAAQADBAcEAAsCAAIBAAMEBAAABwAAAAQEAAABAAQBAAcEAQQFBQMDAwMFCAMGBQYFBQMFBQUGBQMGAwUCAQIBAQEBAgECAgICAQABAwIHAwEDBAADAQEBAgEAAAMBBQYGAwMEAQgEAQIAAwABBAIDBAEDAgIABAMCAgEBAgIBBAQBAgMCAQIDAAEBAQQDAAICAQIDAAMFBQIDAgECAwABAQADAAECAwIBAgMAAQEDBAMCAQIDAAABAgECAwADAQABAgIBAQIBAQEAAAAAAAADCAgKAgMABwUIAAAFBgAFCAIFAAUCBgAGBQYIAwMEBQIDBQYLAwUACAYDAQUDAgADAAMDBgMIAwMDAQQOBgcEDQYABQgFBQUGAAAAAwICAgMEDQMDAAAAAAMDAAADAwMDAwMDAwYEBgAAAQEFBQAAAAABAQEBAgUCAAAAAAEDAQABAwMDAwQAAgMAAAEBAQEDAwAAAAAAAAUFBgYGBgMFAgMBAQICBgIBAQEDAgEDBQEBAgEDAgECAQAAAQACAQEHBwAEAwEHAgADAAcCAQIDAAEBBAECAgECAwADBAcCAAIEAAIBAAMBAgACAQIDAAULAQMBAQEEBQAFAgIAAQAABAEFAQEBAQEDDQcHAgEBAQIFAQACAgEBAQEDBQgBAQAFAgECAwIBAQEABAAAAQENAgIAAgIAAgICBAYDBAADBQQAAQUDAgIBAQMBAgICAgEBAAQBBQUAAAAAAwMCAQECAgEAAgEFDAIBAAQDAAMDAQMCBAEFEAIDAQABAAcHAQABEAMHAwcCBQsGBwYCAgIBAAMAAQYBBAMAAQAFBQMCAQUBBQUAAAAFAwMBBAIDAgECAwABAQMDAgECAgECAwAAAgECAQIDAAEDAgMCAQIDAAEAAwEABAEAAAAAAAMCAQICBAIAAA0BARACAQADAwMDAAAEAwIBAgMAAQEBAwACAQIDAAECAQIDAAMCAQIDAAMCAgECAwAAAgECAwAAAgECAwACBwADAQECAQYMBAEGBAwJDBsZAwYIAQIEBwgCAQEAAAUDAgEDAgEFAgECAwABAQEAAgMHAgINAQUHAAAABwsJCQcFAwIEAgQAAQADAwMDAwMDAwMDAwMDAwMDAwAFBAUFBAEAAwEDAgEBAwMEAwYABQEAAQACAQECAQIBAgECAQMBAwIBAgMAAQEBAwIBAgMAAwIBAgMAAQEBAgECAwAABQIBAgMABQIBAgMAAQMAAAAAAAMDBgAABQAAAAUAAgABAgQBAAIE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xwbJBswG3gbhBuQGyQbJBukG6wbrBu8G8QbzBvUG9wb3BvoG+waCB/sG+waCB/sGtAa3Bq8GsAa6BrwGvga/BsAGxgbIBsoG2wbdBuAG4wblBuYG9gb4BvkG5wboBuoG7QbuBvAG8gb0BjeIAv8GgAeDB4QH/waAB/8GgAeHB4gH/waAB7cBigfTA40HjgePB5AHN7cBuQe6B7sHvAe9B7wHvgfHB74Hvge/B8EHwgfDB8QHxAfFB8YHyAfJB8AHygfLB8wHvge+B84HzQfPB9AHzwfPB9AHN4gC0wfUB9UHkAfsB+0H7gfvB/MH9AeLCLYDtgP6B/0H/gf/B4AIgQiCCIMIhAiMCIIIN4gCtgOLCI4IjwiQCJAHkgiTCNUHkAeZCJoImwidCJ4InwigCDeIAqUIpginCKkIngifCKoIN4gCrwiwCLEIswi0CLUItgg3iAK8CL0IvgjACMEIwgjDCDeIAsYIxwjICMoIwQjCCMsIzQjOCM8I0QjBCMII0gjmCOoI7Qj/CIAJhwmJCY0JjgmRCaAJoQnqCIUKjQqFCpIKlAqYCtcI2wjeCN8I4AjhCOUI6QjsCPEI8wj0CPYI+Aj6CPwI/QinCagJqQmqCasJ/giDCYQJ9wiGCYoJ+QiFCYsJjAmQCZIJlAmVCZYJlwmYCZkJmgmlCawJrQmuCYMKhAqvCYIK2gnbCdwJ3QneCd8J4AnhCeIJ4wnkCeUJ5gnnCegJsAm3CbkJuwm9Cb8JwQnDCcUJxwnJCcwJzgnpCe4J8AnyCfQJ9gn4CfoJ/AnQCdIJ1AnWCdgJ/gmACtoI3Ai0CbgJugm8Cb4JwAnCCcQJxgnICcsJzQnPCe0J7wnxCfMJ9Qn3CfkJ+wn9CdEJ0wnVCdcJ2Qn/CYEKN4gCN4gCuAOwArACMDCLCowKkAqRCosKjAqLCowKlgqXCpkKmgqbCpwK1QeQB6EKogqjCpAHtwGrCqwKMNMDrQqwCrEKsgq0CrUKtgqtCroKuwq8Cr4KtAi1CL8KN4gCzgrPCtAK0gq1CrYK0wo3iAL1CroD8ArxCvYKwwPFA/wKgAuEC4ML+Qr6CjeIAoULhguJC4oLiwuQB7cBjAvTA6oLqwusC/kFrgu1C7cLsQuzC7gLugu8C74Lsgu0C7YDMDC2AzCwArACuAPQArgDvwu5C7sLvQuwArACsAKwArACtgMwMNAC0ALAC8ELwguQBzeIAje3AbYDuAOwArACrgvDC8QLxQs3N8cLyAuwAskLuAO4A7gDtwO3A9AC0ALKC9ACuAPQArcDuAO2A7gDtgPQArgD0ALQArcD0AK4A7gDuAM3twG4A88LtgPLC8wLN4gC0wvXC9wL5AvmC+gL7QvvC/YL9wuADIQMhgyHDLoD9Av5C/IL8wuCDIMMwguQB7cBkAqRCrcBwwPFA5IMkwyUDJYMlwyYDJkMN4gCmwycDKwL+QWeDJ8MoAyiDJcMmAyjDDeIAqQMpQysC/kFpgynDKgMqgyXDJgMqwyvDLAMsQyzDJcMtAy1DDeIArcBugzTAze3AcAMwAw3iALBDMIM1QeQB8oMzgwT2AzZDNoM3AzdDN4M3wziDOMM5AzmDMEIwgjnDOgM6QzqDOwM3QzeDO0M7gzvDPAM8gzBCMII8wz1DPYM9wz5DN0M3gz6DDeIAvsM/Az9DP8MwQjCCIANgQ2CDYMNhQ3BCMIIgA03iAKLDY4NlA2WDZcNoA2aDZsNpg2nDaoNkgqtDYwNjQ2iDaMNlgqXCqgNqQ2rDawNiwqMCosKjAq3AdID0wOuDa8NsA2yDbMNtA21Db0N5AvQDdEN0g3TDdQN1Q3WDdcN2A3ZDdoN2w3cDd0N3g3fDeAN4Q3iDeUN6Q3qDewN8Q3zDfQN7w33De0N7g31DfYNN4gCtwH5DdMD+w38Df0NkAf+Df8NwguQB4AOgQ7VB5AHgg6DDtUHkAeEDoUO1QeQB4kOig6LDo0Ojg6PDpAOkg6TDpQOlg6ODo8Olw6YDpkOmg6cDp0Ong6fDqAOoQ6iDqQOjg6PDqUOpw6oDqkOqw6ODo8OrA6tDq4Orw6xDo4Ojw6yDtEO0g7YDtkO2g43iAK4A7cB6g7rDuwO7Q7uDu8O8w71DvsOiQ+WD5oPkg+PD5UPmQ+cD6MPtw+/D7oDuAPAD4APgg+dD54Pnw+gD6EPog+lD6QPpg+nD6gPqg+sD68PsQ+zD7UPgQ+DD6kPqw+uD7APsg+0D7YPvA+9D5AKkQrDA8UDtwG3AcEPwg+QCJAHxA/FD8YPyA+XDJgMmQzKD8sPzA/OD88P0A/RD9MP1A/VD9cPjg6PDpcO2A/ZD9oP3A/PD9AP0Q/dD94P3w/hD44Ojw6QDuIP4w/kD+UP5g/nD+gP6g/rD+0P8Q/yD/gPhRCA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BEADQCACIANBBGsiAxDhAiADIAAoAgRHDQALCyAAIAIQvwEgAEEEaiACQQRqEL8BIABBCGogAkEIahC/ASAAEKwCIAIQrAIQvwEgBSgCACEDIAVBADYCACADBEAgBRC1AiIFKAIAGiAFKAIEGiADELcBCyACEOICDAELIAFBkgEQxQI2AhggACABQRhqIgIQ4wIgASAAKAIEKAIANgIYIAAQqwIgACACENsCCyABQTBqJAALIAZBCGogABB6IAYoAgwiASAEKQIANwIAIAEgBCgCCDYCCCABQQxqIARBDGoQtgEaIAEgBCgCGDYCGCAAEHgiACAAKAIAQQFqNgIAIAZBEGokACAEEFcgB0EgaiQACzQBAX8gACgCDCIBIAAoAhBGBEAgACAAKAIAKAIoEQIADwsgACABQQFqNgIMIAEsAAAQ1QILBwAgACABRgsKACAAQRh0QRh1CycAIAAgACgCGEUgACgCECABcnIiATYCECAAKAIUIAFxBEAQxgIACwsMACAAIAEtAAA6AAALCQAgACABNgIECwkAIAAgAToACwunAQECfyMAQRBrIgIkACAAEHgaIAJBCGoiASAAEHsgAiAAEHogASACEH4EQANAIAJBCGoiASgCBBBXIAEQ1gIgASACEH4NAAsLIAAQeEEANgIAIAAQqgJBAksEQANAIAAoAgQoAgAQkBMgABCrAiAAEKoCQQJLDQALC0HJACEBAkACQAJAIAAQqgJBAWsOAgEAAgtBkgEhAQsgACABNgIQCyACQRBqJAALCgAgABB4KAIARQs5AQF/IAAQeCEBIAAoAgQgACgCECABKAIAakEBayIAQQh2Qfz//wdxaigCACAAQf8HcUECdGooAgALCQAgACABNgIUC2cCAX8BfiAALwEIIQIgACABLQAIOgAIIAEgAjoACCAAKQMAIQMgACABKQMANwMAIAEgAzcDACAAIAEvAQhBgAJxIAAvAQgiAEH//QNxcjsBCCABIAEvAQhB//0DcSAAQYACcXI7AQgLCQAgACABNgIQC7kJAQh/IAAQXyABIAAoAkQ2AgQCQAJAAkACQAJAAkACQAJAAkACQCAAEGEiAkHaAEwEQCACQSJrDhkICQkJCQkJCQkJBQIJAQICAgICAgICAgIGBwsCQAJAIAJB7QBMBEAgAkHbAGsOAwELAgULAkACQAJAIAJB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IAEgASgCLEEBayIANgIsIAANAQwCCwsgASgCLA0BCyACKAIQIQAMAQsDQCABQZIBELwCNgIQIAIgAUEQahDjAiABIAEoAixBAWs2AiwgASABKAIoQQFqNgIoIAJBkQFBkgEgAhCqAkEBRhsgAigCEGoiADYCECABKAIsDQALCyACIAAgASgCKCIEQe5+bGo2AhAgBEUNAQNAIAEgAigCBCgCADYCECACEKsCIAIgAUEQahDbAiABIAEoAihBAWsiADYCKCAADQALDAELIAEoAighBiABIAIQrQJBAXQ2AgwgASABKAIsIAIQqgJqNgIIIAFBEGogAUEMaiABQQhqEN4CKAIAIAIQqgIgASgCKGsgAhCsAhDfAiEAIAEoAiwEQANAIAFBkgEQvAI2AgwgACABQQxqEOACIAEgASgCLEEBayIENgIsIAQNAAsLIAEoAigEQANAIAAgAigCBBDgAiACEKsCIAEgASgCKEEBayIENgIoIAQNAAsLIAIoAggiBCACKAIERwRAA0AgACAEQQRrIgQQ4QIgBCACKAIERw0ACwsgAiAAEL8BIAJBBGogAEEEahC/ASACQQhqIABBCGoQvwEgAhCsAiAAEKwCEL8BIAIgAigCECAGQe5+bGo2AhAgABDiAgsgAUEwaiQACyADQdgAaiACEHogA0FAayIBIAIQeiADQdAAaiABIAcQfCADIAMpA1g3AxAgAyADKQNQNwMIIAEgA0HgAGogA0EQaiADQQhqEO8CIgQiACkCADcCACABIAApAgg3AggjAEEgayIAJAAgACAEKQIIIgk3AxAgACAJNwMYIAAgCTcDCCAAIAk3AwAgA0EwaiIEIABBCGogABDvAhogAEEgaiQAIAEgBBB+BEADQCADQShqIQAgA0FAayIBKAIEIQQCQCABKAIAIgcgASgCCEYEQCAAIAQgASgCDBCvAhoMAQsgACAEIAcoAgBB+B9qEK8CGgsgAyAAKAIAIgE2AhggACgCBCEAIAMgAjYCJCADIAE2AiAgAyAANgIcIAMoAhgiACADKAIcRwRAA0AgAEIANwIAIABBADYCGCAAQgA3AhAgAEIANwIIIAAQVRogAyADKAIYQRxqIgA2AhggACADKAIcRw0ACwsgAygCICEAIAMoAhghASADKAIkEHgiBCAEKAIAIAEgAGtBHG1qNgIAAkAgA0FAayIAKAIAIgEgACgCCEYEQCAAIAApAgg3AgAMAQsgACABQQRqNgIAIAAgASgCBDYCBAsgACADQTBqEH4NAAsLIANB8ABqJAAMAQsgACAETQ0AIAVBCGoiACACEHsgBUEQaiIBIAAgBBB8IAUgBUEYaiABEH0pAgA3AwAjAEEgayIAJAAgAEEYaiIBIAIQeiAAQRBqIAEQfSAFEPACIgRBAEoEQCACEHgaIABBEGoiASACEHsgAEEIaiIDIAEgBSADIAEQfRDwAhB8IAMgAEEYahB+BEADQCAAQQhqIgEoAgQQVyABENYCIAEgAEEYahB+DQALCyACEHgiASABKAIAIARrNgIAA0AgAhB5QZIBbkEBSwR/IAIQeBogAhDXAigCABC3ASACENgCQQEFQQALDQALCyAAQSBqJAALIAVBIGokACAIQRBqJAALlwoDCn8FfgF8IwBB4ABrIgkkAEKAgICAgICAgIB/Qn8gASgCBCIDLQAAIgRBLUYiBxsiD0IKgCEOAn8CQAJAAkACQAJAIAMgB2oiAyABKAIIIgdJBEAgDyAOQgp+fSERA0AgAy0AACIFQTprQf8BcUH1AU0NBiADQQFqIQMgBUEwayEFAkAgDSAOVARAIAWtIRAMAQsgAyAHRyANIA5Wcg0HIBEgBa0iEFQNBwsgDUIKfiAQfCENIAMgB0kNAAsgBEEtRyANIA9SckUEQCAJQcgAaiIAQoCAgICAgICAgH8QxgEaIAIgABBnIAAQzwEMBQsgBEEtRg0BIA1C/////wdWDQIMAwsgBEEtRw0CCyAJQTBqIgBCACANfRDGARogAiAAEGcgABDPAQwCCyAJIA0QxwEaIAIgCRBnIAkQzwEMAQsgCUEYaiIAIA0QxgEaIAIgABBnIAAQzwELQQEMAQsjAEHwAWsiByQAIAdCADcD6AEgB0HYAWogASgCBCABKAIIEDUhCyAHQcgAaiIDQTxqEHIhBCADQeDLAjYCACAEQfTLAjYCACADQYDMAiADQQhqIgUQcyIDQeDLAjYCACAEQfTLAjYCACMAQRBrIggkACAFEKwTIgRBoMMCNgIAIARBIGoiBRAuGiAEQQg2AjAgBEEANgIsIAUgCxBWIARBADYCLAJAIAQoAjAiBkEIcQR/IAQgBRA2IAUQO2o2AiwgBCAFEDYgBRA2IAQoAiwQ4RMgBCgCMAUgBgtBEHFFDQAgBCAFEDsiBiAFEDZqNgIsIAUgBRA0EHYgBCAFEDYgBRA2IAUQO2oQ4hMgBC0AMEEDcUUNAANAIAZBAEgEQCAEQf////8HEOMTIAZB/////wdrIQYMAQsLIAZFDQAgBCAGEOMTCyAIQRBqJAAgB0HoAWohDCMAQSBrIgQkACAEQQA2AhwjAEEgayIFJAAgBEEAOgAYIAMgAygCAEEMaygCAGoQwBMhCCADIAMoAgBBDGsoAgBqIQYCQCAIBEAgBigCSARAIAMgAygCAEEMaygCAGooAkgQuxMLAkAgAyADKAIAQQxrKAIAaigCBEGAIHFFDQAgBUEYaiIGIAMgAygCAEEMaygCAGoQ+xMgBhD5AiEKIAYQvxUgBUEQaiADEPMCIQYgBUEIahCuASEIA0ACQCAGIAgQvBNFDQAgCkEBIAYQvRMQpwRFDQAgBhC+ExoMAQsLIAYgCBC/E0UNACADIAMoAgBBDGsoAgBqQQYQSgsgBCADIAMoAgBBDGsoAgBqEMATOgAYDAELIAZBBBBKCyAFQSBqJAAgBC0AGARAIARBEGoiBSADIAMoAgBBDGsoAgBqEPsTIAVBqLcDEJQUIQYgBEEIaiADEPMCIQggBBCuASEKIAYgCCgCACAKKAIAIAMgAygCAEEMaygCAGogBEEcaiAMIAYoAgAoAiwRCQAaIAUQvxUgAyADKAIAQQxrKAIAaiAEKAIcEEoLIARBIGokAAJAIAMoAgBBDGsoAgAgA2otABBBBXFBAEciBQRAIAdBKGoiAkH/0QEgB0EYaiABKAIEIAEoAggQNSIGEG4gB0E4aiIEIAJBl8gBEG8gACAEIAFBABBGIAQQrhYaIAIQrhYaIAYQrhYaDAELIAcrA+gBIRIgB0EDQQAQwwEgByASOQMAIAIgBxBnIAcQzwELIAMQcBogCxCuFhogB0HwAWokACAFRQshACAJQeAAaiQAIAALVgECfyMAQRBrIgIkACAAEDgEQCAAKAIAIQMgABA5GiADEJATCyAAIAEoAgg2AgggACABKQIANwIAIAFBABBNIAJBADoADyABIAJBD2oQSyACQRBqJAALEgAgACABIAJBABBGIAAgAxBaCxMAIAAgARA2IAEQNiABEDtqEGwLSgEDfwJAIAAoAkQiASAAKAJAIgJGDQADQCABLQAAQQlrIgNBF0tBASADdEGTgIAEcUVyDQEgACABQQFqIgE2AkQgASACRw0ACwsLQgEBfyMAQaABayICJAAgAUEASARAIAJBGGoQaSIAQY7nABBqGiACQQhqIAAQawALIAAgARBtIQAgAkGgAWokACAACywBAX8gACgCRCIBIAAoAkBGBH9BAAUgACABQQFqNgJEIAEtAAALQRh0QRh1C08BA38CQCAAKAJAIAAoAkQiBWsgAkgNACACIQMDQCADBEAgBSADQQFrIgNqLQAAIAEgA2otAABGDQEMAgsLIAAgAiAFajYCREEBIQQLIAQLPAEBfwJAIAAgAU8NAEEBIQIDQAJAIAAtAABBCmsOBAIAAAIACyAAQQFqIgAgAUkhAiAAIAFHDQALCyACCwkAIAAgARBmGgsJACAAIAEQthYLDwAgACABEDYgARA7ELQWCwgAIAAgARBxCy8AAkAgAEUEQCACIAEQ8BI2AgAMAQsgAiABKAIANgIAIAFBBGohAQsgAyABNgIAC3UBAn8gAEE4ahByIQIgAEGsygI2AgAgAkHAygI2AgAgAEHMygIoAgAiATYCACAAIAFBDGsoAgBqQdDKAigCADYCACAAIAAoAgBBDGsoAgBqIABBBGoiARDuAiAAQazKAjYCACACQcDKAjYCACABQRAQrAEgAAsOACAAIAEgARDwEhC6AQsMACAAIAFBBGoQ5BMLigIBAn8jAEHAAWsiAyQAAkAgAC0ACCIEBEAgBEEHRg0BIANBOGoQaSIAQZzpABBqGiADQShqIAAQawALIANBEGoiBEEHEMIBGiAAIAQQZyAEEM8BCyADQShqIgQgASACIAFrQQIQvAEgAyAAKAIAIAQQ4AE2AgggAyAAKAIAEJMBNgI4AkACQCADQQhqIANBOGoQoAFFDQAgA0EIahCwASADQShqEMEBRQ0AIANBCGoQsAEhAAwBCxCMASADQThqIANBKGoQ4QEhASADIAAoAgAgAyADKAIIEJ8BKAIAIAEQ4gE2AgggA0EIahCwASEAIAEQ4wELIANBKGoQvgEgA0HAAWokACAAQQhqC4MCAQJ/IwBBwAFrIgIkAAJAIAAtAAgiAwRAIANBBkYNASACQThqEGkiAEHH6AAQahogAkEoaiAAEGsACyACQRBqIgNBBhDCARogACADEGcgAxDPAQsgAkEoaiIDIAEQuwEgAiAAKAIAIAMQ4AE2AgggAiAAKAIAEJMBNgI4AkACQCACQQhqIAJBOGoQoAFFDQAgAkEIahCwASACQShqEMEBRQ0AIAJBCGoQsAEhAAwBCxCMASACQThqIAJBKGoQ4QEhASACIAAoAgAgAiACKAIIEJ8BKAIAIAEQ4gE2AgggAkEIahCwASEAIAEQ4wELIAJBKGoQvgEgAkHAAWokACAAQQhqC78BAQN/IAACfyABEPASIQAjAEEQayIFJAAgAhA7IgRBAE8EQAJAIAAgAhA0IgMgBGtNBEAgAEUNASACEDYiAyAEBH8gACADaiADIAQQqxYgASAAQQAgAyAEaiABSxtBACABIANPG2oFIAELIAAQqxYgAiAAIARqIgAQlRUgBUEAOgAPIAAgA2ogBUEPahBLDAELIAIgAyAAIARqIANrIARBAEEAIAAgARCsFgsgBUEQaiQAIAIMAQsQ7QEACxB0GgsOACAAIAEgAhC4FhB0Ggs7AQF/IABB/MsCKAIAIgE2AgAgACABQQxrKAIAakGIzAIoAgA2AgAgAEEIahClAhogAEE8ahD8ExogAAsvACAAIAEQUiAAQQxqIAFBDGoQvwEgAEEQaiABQRBqEL8BIABBFGogAUEUahC/AQsWACAAQZDNAjYCACAAQeDDAjYCACAACz8BAX8gACABKAIAIgM2AgAgACADQQxrKAIAaiABKAIENgIAIABBADYCBCAAIAAoAgBBDGsoAgBqIAIQ7gIgAAscACAAIAEpAgA3AgAgACABKAIINgIIIAEQMSAAC/EBAQZ/IwBBEGsiBiQAAn8gAyACKAIAIglrQQNKBEBBACEDQQEhCgJAA0AgAiAJIgVBAWoiCTYCAEFQIQgCQCAFLAAAIgVBMGtB/wFxQQpJDQBBqX8hCCAFQeEAa0H/AXFBBkkNAEFJIQggBUHBAGtB/wFxQQZJDQAgACAGQfbKARBFIgAgASACKAIAEEYgABCuFhoMAgsgA0EDSSEKIAUgCGogB0EEdGohByADQQFqIgNBBEcNAAsgBCAHNgIACyAKRQwBCyAAIAZBucsBEEUiACABIAIoAgAQRiAAEK4WGkEACyEDIAZBEGokACADQQFxC5ABAQR/AkAgASAAEDsiAksEQCMAQRBrIgQkACABIAJrIgIEQCAAEDQhAyAAEDsiASACaiEFIAIgAyABa0sEQCAAIAMgBSADayABIAEQrxYLIAEgABA2IgNqIAJBABCwFiAAIAUQlRUgBEEAOgAPIAMgBWogBEEPahBLCyAEQRBqJAAMAQsgACAAEDYgARCeFgsLCQAgABA2IAFqCwcAIABBFGoLJwAgABCqAgR/IAAQqgJBkgFsQQFrBUEACyAAKAIQIAAQeCgCAGprC0sBAn8gARB4KAIAIQIgACABKAIEIAEoAhAgAmoiAEGSAW4iAkECdGoiAyABEK4CBH9BAAUgAygCACAAIAJBkgFsa0EcbGoLEK8CGgs5ACAAIAEoAgQgASgCEEGSAW5BAnRqIgAgARCuAgR/QQAFIAAoAgAgASgCEEGSAXBBHGxqCxCvAhoLkQEAIAAgASkCADcCACACBEAgAAJ/IAIgACgCBCAAKAIAIgIoAgBrQRxtaiIBQQBKBEAgACACIAFBkgFuIgBBAnRqIgI2AgAgAigCACABIABBkgFsa0EcbGoMAQsgACACQZEBIAFrIgBBkgFuIgFBAnRrIgI2AgAgAigCACABQZIBbCAAa0EcbGpB3B9qCzYCBAsLGAAgACABKAIANgIAIAAgASgCBDYCBCAACwsAIAAgARB/QQFzCw0AIAAoAgQgASgCBEYL3QEBAn8jAEGgAWsiAiQAAkACQAJAAkACQAJAAkACQCABLwEIIgNB/wFxDgYGAgMEAAEFCyABKAIAIgFFBEAgAEGa3wEQRRoMBwsgA0GAAnFBCHYgASACQRhqIAJBCGoQaCAAIAIoAgggAigCGBCCARoMBgsgAEH65wBByfAAIAEtAAAbEEUaDAULIAAgASkDABCDAQwECyAAIAEpAwAQhAEMAwsgACABKwMAEIUBDAILIAJBGGoQaSIAQfHhABBqGiACQQhqIAAQawALIABBmt8BEEUaCyACQaABaiQACxQAIAAgARA2IAEQNiABEDtqEIYBCx8BAX8jAEEQayIDJAAgACABIAIQshYgA0EQaiQAIAALsAEBAn8jAEEwayICJAAgAiACQSlqNgIMAkAgAUKAgICAgICAgIB/UQRAQoCAgICAgICAgH8gAkEMahDTASACKAIMQQFrIgNBLToAAAwBCyABQgBTBEBCACABfSACQQxqENMBIAIoAgxBAWsiA0EtOgAADAELIAEgAkEMahDTASACKAIMIQMLIAJBEGogA0sEQEG5M0GSlgFBgyBB0eIAEAAACyAAIAMQRRogAkEwaiQAC1ABAn8jAEEwayICJAAgAiACQSlqNgIMIAEgAkEMahDTASACKAIMIgMgAkEQakkEQEG5M0GSlgFBiyBB0eIAEAAACyAAIAMQRRogAkEwaiQAC8QCAQR/IwBB0ABrIgIkACACQRE2AhAgAkEaakGW5QAgAkEQahDqEgJAIAGZRAAAAAAAAPB/YwRAIAIgATkDACACQSBqIgNBJCACQRpqIAIQ6RIhBCADQcDQARD9AQ0BIAJBIGpB/4MBEP0BDQEgAkEgaiIDEPASIANqIgNBpsQBLwAAOwAAIANBqMQBLQAAOgACDAELIAEgAWIEQCACQSBqQSRB89UAQQAQ6RIhBAwBCyABRAAAAAAAAAAAYwRAIAJBIGpBJEHUwQFBABDpEiEEDAELIAJBIGpBJEHVwQFBABDpEiEECyAEQQBIBEBBqcQBQZKWAUG7IEHR4gAQAAALIAJBIGoiBSIDIAQgBWoiBEkEQANAIAMtAABBLEYEQCADQS46AAALIANBAWoiAyAERw0ACwsgACAFEEUaIAJB0ABqJAALDgAgACABIAIQiwFBAEcLEAAgACABIAEQ8BIgAWoQbAsgACAAIAEgARDwEiABahCLASIBBH8gAQUQjAFB8KsDCwuHAQECfyMAQaABayICJAACQAJAAkACQAJAAkAgAC0ACA4GBQABAgMEAwsgACkDAEIAUiEBDAQLIAApAwBCAFIhAQwDCyAAKwMARAAAAAAAAAAAYiEBDAILIAJBGGoQaSIAQYbJARBqGiACQQhqIAAQawALIAAtAABBAEchAQsgAkGgAWokACABC+0BAgJ/AXwjAEGgAWsiASQAAkACQAJAAkACQAJAAkACQAJAAkACQCAALQAIIgIOBgkAAQIEAwQLIAAQjQFFDQUMBwsgABCNAQ0GIAFBGGoQaSIAQfD8ABBqGgwICyAAKwMAIgMQjgFFDQQgA5lEAAAAAAAA4EFjRQ0CIAOqIQIMBgsgAC0AACECDAULIAFBGGoQaSIAQbLGARBqGgwFC0GAgICAeCECDAMLIAFBGGoQaSIAQdT8ABBqGgwDCyABQRhqEGkiAEGN/QAQahoMAgsgACgCACECCyABQaABaiQAIAIPCyABQQhqIAAQawALlAEBA38jAEGgAWsiAyQAAkAgAC0ACCIEBEAgBEEHRw0BIANBGGoiBCABIAIgAWtBABC8ASADQQhqIAAoAgAgBBDlARCfASIBIAMgACgCABCTARCfARCzAUUEQCABELABQQhqIQULIANBGGoQvgELIANBoAFqJAAgBQ8LIANBGGoQaSIAQZnqABBqGiADQQhqIAAQawALIABBiKwDLQAARQRAQfCrA0EAEMIBGkGIrANBAToAAAsLbAIBfwF8AkACQAJAAkAgAC0ACEEBaw4DAAECAwsgACkDAEKAgICACHxCgICAgBBUDwsgACkDAEKAgICACFQPCyAAKwMAIgJEAAAAAAAA4MFmRSACRAAAwP///99BZUVyDQAgAhDUASEBCyABCxsAIABEAADA////30FlIABEAAAAAAAA4MFmcQsiAQF/IwBBEGsiASQAIAAgAUEIahCZASEAIAFBEGokACAAC9MBAQR/IwBBsAFrIgIkAAJAAkAgAS0ACCIDBEAgA0EHRg0BIAJBKGoQaSIAQd3pABBqGiACQRhqIAAQawALIAAQmwEaDAELIAJBKGoQmwEiBCABKAIAEJwBEJ0BIAJBEGogASgCABCeARCfASIDIAJBCGogASgCABCTARCfASIBEKABBEADQCAEIAJBGGogAxCwASgCACADELABKAIEQQJ2EIIBIgUQoQEgBRCuFhogAxCxASADIAEQoAENAAsLIAAgBBCiASAEEJcBCyACQbABaiQACxAAIAAoAgQgACgCAGtBDG0LDQAgACgCACABQQxsagsoAQF/IwBBEGsiASQAIAFBCGogABClARCkASgCACEAIAFBEGokACAACw0AIAAoAgAgASgCAEYLIwAgACABEDYgARA2IAEQO2oQiwEiAAR/IAAFEIwBQfCrAwsLgwEBA38jAEEQayIBJAACQCAALQAIIgNBBkkNAAJAAkACQCADQQZrDgIAAgELIAAoAgAQpgENAiABQQhqIAAoAgAQkwEQnwEiABDdARogABCwASgCBEEBaiECDAILQcnwAEGSlgFBzxlBiecAEAAACyAAKAIAEJwBIQILIAFBEGokACACCy4BAX8gABCnASAAKAIABEAgABCoASAAEKkBGiAAKAIAIQEgABCqARogARCQEwsLDAAgACAAELMCELQCCz8BAX8jAEEQayICJAAgAEEEahDoASACQQA2AgwgAEEIaiACQQxqIAEQ8QIaIAAg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QAJAAkACQAJAAkAgBEH/AXEOCAcGAAEDAgQEBQsgACkDACABKQMAUSECDAYLIAArAwAgASsDAGEhAgwFCyAALQAAIAEtAABGIQIMBAsgACgCACIAQQAgASgCACICG0UEQCAAIAJGIQIMBAsgBEGAAnFBCHYgACADQRxqIANBFGoQaCABLwEIQYACcUEIdiABKAIAIANBGGogA0EQahBoQQAhAiADKAIcIgAgAygCGEcNAyADKAIUIgFFDQQgAygCECICRQ0EIAEgAiAAEOgSRSECDAMLQQAhAiAAKAIAEJwBIAEoAgAQnAFHDQIgASgCACEBIAAoAgAiABCcASABEJwBRgR/IAAQngEhAiAAEJMBIQQgARCeASEBIwBBIGsiACQAIAAgBDYCECAAIAI2AhggACABNgIIQQEhAQJAIABBGGogAEEQahCgAUUNAANAIABBGGoQsAEiASAAQQhqELABIgIQwQEEfyABQQhqIAJBCGoQ0AEFQQALIgFFDQEgAEEYaiICELEBIABBCGoQsQEgAiAAQRBqEKABDQALCyAAQSBqJAAgAQVBAAshAgwCC0HJ8ABBkpYBQa0XQdmqARAAAAsgACkDACABKQMAUSECCyADQSBqJAAgAg8LIANByI4BEEUaAAsMACAAIAEQ0AFBAXMLWAEDfyMAQRBrIgMkACAAKAIAIgRFIAAvAQgiAEH/AXFBBEdyIgVFBEAgAEGAAnFBCHYgBCADQQxqIAEQaCACIAEoAgAgAygCDGo2AgALIANBEGokACAFRQtTAgF/AX4gASABKAIAQQFrIgI2AgAgAkEAOgAAA0AgASABKAIAQQFrIgI2AgAgAiAAIABCCoAiA0IKfn2nQTByOgAAIABCCVYhAiADIQAgAg0ACwvlAQICfgN/IwBBEGsiAyQAAnwgAL0iAUI0iKdB/w9xIgRB/wdrIQUCQCAEQbMITwRAIAMgADkDCCABQv////////8Hg1BFIAVBgAhGcQ0BIAFCgICAgICAgICAf4O/DAILIARB/gdNBEAgAyABQoCAgICAgICAgH+DNwMIIAAMAgsgASAFrSIChkL/////////B4NQBEAgAyAAOQMIIAFCgICAgICAgICAf4O/DAILIANCgICAgICAgHggAocgAYMiATcDCCAAIAG/oSEACyAACyEAIANBEGokACAARAAAAAAA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BkkNAAsgBCEAIAUhAgsCfyAIIAggAiAAIAdBAWogCkEBaksiABsiBGogByAKIAAbIgtBAWoiBRDoEgRAIAsgBiALQX9zaiIAIAAgC0kbQQFqIQRBAAwBCyAGIARrCyEMIAZBAWshDSAGQT9yIQ5BACEHIAMhAANAAkAgAyAAayAGTw0AIANBACAOEOcSIgEEQCABIgMgAGsgBkkNAwwBCyADIA5qIQMLAn8CfyAGIAlBgAhqIAAgDWotAAAiAUEDdkEccWooAgAgAXZBAXFFDQAaIAkgAUECdGooAgAiASAGRwRAIAYgAWsiASAHIAEgB0sbDAELAkAgCCAFIgEgByABIAdLGyICai0AACIKBEADQCAAIAJqLQAAIApB/wFxRw0CIAggAkEBaiICai0AACIKDQALCwNAIAEgB00NBiAIIAFBAWsiAWotAAAgACABai0AAEYNAAsgBCEBIAwMAgsgAiALawshAUEACyEHIAAgAWohAAwACwALQQAhAAsgCUGgCGokACAAIQMLIAMLCxIAIABB+ucAQcnwACABGxBFGgsOACAAQQFrQf8BcUEfSQslACAAKAIEGiAAIAAoAgRBtX9xNgIEIAAgACgCBEEIcjYCBCAACxgAIAAgACgCAEEMaygCAGogARECABogAAsTACAAIAAoAgRBgIABcjYCBCAACykBAn8jAEEQayIBJAAgAUEIaiIAQTA6AAAgAC0AACEAIAFBEGokACAACyQBAX8gACAAKAIAQQxrKAIAaiICLABMGiACIAEsAAA2AkwgAAslAQF/IwBBEGsiASQAIAFBCGogABCkASgCACEAIAFBEGokACAACxoAIAAgACgCAEEMaygCAGogASgCABCHAiAACw8AIAAoAgwaIAAgATYCDAsDAAALKAAgABCKAiIAQaTfATYCACAAQQRqEC4aIABBADoAEiAAQQA7ARAgAAsNACAAQczfATYCACAACy4BAX8gAUEEaiIDEDwgASACEIwCIAEtABJFBEAgA0GQ3wEQ+gELIAAgAxC2ARoLrQQBBH8jAEEwayICJAACQAJAAkACQAJAAkACQAJAAkAgAS0ACA4IAAcBAgMEBQYICyAALQARDQcgAEEEakHz1QAQ+gEMBwsgAkEgaiIDIAEQ2QEQhAEgAEEEaiADEGQgAxCuFhoMBgsgAkEgaiIDIAEQ2gEQhQEgAEEEaiADEGQgAxCuFhoMBQsgASACQQhqIAJBGGoQ0gFFDQQgAkEgaiIBIAIoAggiAyACKAIYIANrEI0CIABBBGogARBkIAEQrhYaDAQLIAJBIGoiAyABEIkBEP4BIABBBGogAxBkIAMQrhYaDAMLIABBBGoiBEHbABBlIAEQlgEiBQRAA0AgAwRAIARBLBBlCyAAIAEgAxDkARCMAiADQQFqIgMgBUcNAAsLIARB3QAQZQwCCyACQSBqIgQgARCQASAAQQRqIgNB+wAQZSACIAQQjgI2AhggAiAEEI8CNgIIIAJBGGogAkEIahCyAQRAA0AgAkEYaiIFKAIAIQQgAiACQSBqEI4CNgIIIAUgAkEIahCyAQRAIANBLBBlCyACQQhqIgUgBBA2IAQQOxCNAiADIAUQZCAFEK4WGiADQbjeAUHSwQEgAC0AEBsQ+gEgACABIAQQlQEQjAIgAkEYaiIEEJACGiACIAJBIGoQjwI2AgggBCAFELIBDQALCyADQf0AEGUgAkEgahCXAQwBCyACQSBqIgMgARDYARCDASAAQQRqIAMQZCADEK4WGgsgAkEwaiQAC8gEAQZ/IwBBsAFrIgQkAAJAIAFFBEAgAEGa3wEQRRoMAQsCQAJ/IAEhAyACQQBKBEAgAiADaiEHA0AgAy0AACEIQZLfASEGQSIhBQJAA0AgBSAIRwRAIAYtAAEhBSAGQQFqIgZBmd8BRw0BDAILCyADDAMLIANBAWoiAyAHSQ0ACwtBAAsNAAJ/IAEhA0EAIAJFDQAaIAIgA2ohBgNAIAMsAAAiBRD/ASAFRXIiBUUEQCAGIANBAWoiA0cNAQsLIAULDQAgBEEYaiICIARBoAFqQYLSARBFIgMgARBvIAAgAkGC0gEQbyACEK4WGiADEK4WGgwBCyAEQaABahAuIgMgAkEBdEEDahCzFiADQYLSARD6ASACBEAgASACaiEGA0ACQAJAAkACQAJAAkACQAJAIAEsAAAiAkEIaw4GAQUDBgIEAAsgAkHcAEcEQCACQSJHDQYgA0GB0gEQ+gEMBwsgA0GUogEQ+gEMBgsgA0GjmwEQ+gEMBQsgA0Hl5gAQ+gEMBAsgA0HfyQAQ+gEMAwsgA0GfNhD6AQwCCyADQcskEPoBDAELIAIQ/wFBASACGwRAIARBGGoQaSICQfUTEGpBAhCBAkEDEIECIQUgBBCDAjoAECAFIARBEGoQhAIhBSAEQQQQhQI2AgAgBSAEEIYCIAEsAAAQzRMaIAQgAhBrIAMgBBBkIAQQrhYaIAIQqwEaDAELIAMgAhBlCyABQQFqIgEgBkcNAAsLIANBgtIBEPoBIAAgAxB0GiADEK4WGgsgBEGwAWokAAsKACAAKAIAEIUCCwoAIAAoAgQQhQILEQAgACAAKAIAQQxqNgIAIAALQAECfwJAAkAgAEEQaiIBEEENACABIAEQO0EBaxB3LQAAIgJBCkYNACACQSBGDQEgAUEKEGULIAEgAEEcahBkCwsnAQF/IwBBEGsiASQAIAFBCGogABA2EKQBKAIAIQAgAUEQaiQAIAALLAEBfyMAQRBrIgEkACABQQhqIAAQNiAAEDtqEKQBKAIAIQAgAUEQaiQAIAALMQEBfyMAQRBrIgIkACACIAAoAgA2AgggAkEIaiABEJ4CIAIoAgghACACQRBqJAAgAAsPACAAIAAoAgBBAWo2AgALHgAgAC0AMARAIABBBGogARCbAg8LIABBEGogARBkCw0AIAAoAgAgACgCBEYLEAAgABCRAiAAQRBqIAEQZAsvAQF/IwBBEGsiASQAIABBHGogASAAKAIsQSAQnAIiABBkIAAQrhYaIAFBEGokAAs1AQF/IABBHGoiARA7IAAoAixJBEBBmaABQZKWAUHSI0HIHRAAAAsgASABEDsgACgCLGsQdguoAQECfyAAKAIEIAAQqQEoAgBHBEAjAEEQayIDJAAgAyAAQQEQgwMhAiAAEKkBIAIoAgQgARCGAyACIAIoAgRBDGo2AgQgAhCEAyADQRBqJAAPCyMAQSBrIgMkACAAEKkBIgIgA0EIaiAAIAAQkQFBAWoQhQMgABCRASACEOoBIgIoAgggARCGAyACIAIoAghBDGo2AgggACACEOsBIAIQ7AEgA0EgaiQAC4sBAQR/IwBBEGsiBSQAIwBBEGsiAyQAAkAgAUFvTQRAAkAgARDMAgRAIAAgARBNIAAhBAwBCyAAIAEQzQJBAWoiBhCjFiIEEM4CIAAgBhDPAiAAIAEQTAsgBCABIAIQsBYgA0EAOgAPIAEgBGogA0EPahBLIANBEGokAAwBCxDtAQALIAVBEGokACAACywAIAAoAgAaIAAoAgAgABCqAUEMbGoaIAAoAgAaIAAoAgAgABCRAUEMbGoaCw8AIAAgACgCACABajYCAAsPACAAIAEQNiABEDsQugELIAEBfyABEPASIgIgABA7RgR/IAAgASACELcWBUEBC0ULTAECfwJAIAEQ8BIhAiACIAAQNCIDTQRAIAAQNiIDIAEgAhCrFiAAIAMgAhCeFgwBCyAAIAMgAiADayAAEDsiAEEAIAAgAiABEKwWCwsWACAAQaTfATYCACAAQQRqEK4WGiAACwoAIAAQogIQkBMLCgAgABD2ARCQEwsZACAAQaDDAjYCACAAQSBqEK4WGiAAEKoTC78CAQN/IwBBEGsiAiQAIAAQeBogAkEIaiIBIAAoAgQgACgCEEEIdkH8//8HcWoiAyAAEK4CBH9BAAUgAygCACAAKAIQQf8HcUECdGoLEK8CGiACIAAQqQIgASACEH4EQANAIAJBCGoiASgCBBogASABKAIEQQRqIgM2AgQgAyABKAIAIgMoAgBrQYAgRgRAIAEgA0EEajYCACABIAMoAgQ2AgQLIAEgAhB+DQALCyAAEHhBADYCACAAEKoCQQJLBEADQCAAKAIEKAIAEJATIAAQqwIgABCqAkECSw0ACwtBgAQhAQJAAkACQCAAEKoCQQFrDgIBAAILQYAIIQELIAAgATYCEAsgAkEQaiQAIAAoAgQiAiAAKAIIIgFHBEADQCAAEHgaIAIoAgAQkBMgAkEEaiICIAFHDQALCyAAEKgCCwcAIAAoAggLLgEBfyAAIAAoAgQQsQIgACgCAARAIAAQrAIaIAAoAgAhASAAEK0CGiABEJATCwtIAQF/IAEQeCgCACECIAAgASgCBCABKAIQIAJqIgBBCHZB/P//B3FqIgIgARCuAgR/QQAFIAIoAgAgAEH/B3FBAnRqCxCvAhoLEAAgACgCCCAAKAIEa0ECdQsPACAAIAAoAgRBBGo2AgQLBwAgAEEMagsTACAAEKwCKAIAIAAoAgBrQQJ1Cw0AIAAoAgggACgCBEYLEgAgACACNgIEIAAgATYCACAACwMAAQstACABIAAoAghHBEADQCAAEKwCGiAAIAAoAghBBGs2AgggACgCCCABRw0ACwsLFAAgACABKAIAEKQBIAEtAAQ6AAQLCgAgABC1AigCAAstACABBEAgACABKAIAELQCIAAgASgCBBC0AiAAELUCIAFBEGoQtgIgARCQEwsLBwAgAEEEagsIACABEK4WGgt2AQN/IAAQswIhAyAAELUCIQUCQCADBEADQCAAEKkBIAIgAyIEQRBqIgMQuwIEQCAEIQUgBCgCACIDDQEMAwsgABCpASADIAIQuwJFDQIgBEEEaiEFIAQoAgQiAw0ADAILAAsgABC1AiIEIQULIAEgBDYCACAFC8kCAQF/IAMgATYCCCADQgA3AgAgAiADNgIAIAAoAgAoAgAEQCAAIAAoAgAoAgA2AgALIAAQtQIoAgAhAyACKAIAIgEgASADRiICOgAMAkAgAg0AA0AgASgCCC0ADA0BIAEoAggQyAIhBCABKAIIIQICQCAEBEACQCACKAIIKAIEIgJFDQAgAi0ADA0ADAILIAEQyAJFBEAgASgCCCIBEMkCCyABKAIIIgFBAToADCABKAIIIgFBADoADCABEMoCDAMLAkAgAigCCCgCACICRQ0AIAItAAwNAAwBCyABEMgCBEAgASgCCCIBEMoCCyABKAIIIgFBAToADCABKAIIIgFBADoADCABEMkCDAILIAEoAggiAUEBOgAMIAEoAggiASABIANGOgAMIAJBAToADCABIANHDQALCyAAEKkBIgAgACgCAEEBajYCAAsUAQF/IAAoAgAhASAAQQA2AgAgAQsWACAAIAEoAgA2AgAgACACLQAAOgAECwkAIAEgAhDBAgsHACAAEMUCCxIAIAAgAjoABCAAIAE2AgAgAAsxAQF/IwBBEGsiAyQAIAMgATYCDCAAIANBDGoQxwIiACACKQIANwIEIANBEGokACAACwkAIAEgAhB0GgtBAQF/IAAoAgAhASAAQQA2AgAgAQRAIAAQtQIiAC0ABARAIAAoAgAgAUEQahC2AgsgAQRAIAAoAgAaIAEQtwELCwsMACAAIAEQwgJBH3YLlQEBA38jAEEQayICJAAgAkEIaiABEDYgARA7EK8CGiMAQRBrIgEkACABIAIpAgg3AwggASAAEDs2AgQgASABQQhqIgMoAgQ2AgACQCAAEDYgAygCACABQQRqIAEQwAEoAgAQwwIiAA0AQX8hACABKAIEIgMgASgCACIESQ0AIAMgBEshAAsgAUEQaiQAIAJBEGokACAACxQAIAJFBEBBAA8LIAAgASACEOgSCw0AIAAoAgAgASgCAEkLGgAgAEHJpJLJAEsEQBDGAgALIABBHGwQoxYLBQAQAQALDgAgACAB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ByQAAkAgAEUNACAEKAIMIQYgAiABayIIQQBKBEAgACABIAgQ+AIgCEcNAQsgBiADIAFrIgFrQQAgASAGSBsiAUEASgRAIAAgByABIAUQnAIiBRA2IAEQ+AIhBiAFEK4WGiABIAZHDQELIAMgAmsiAUEASgRAIAAgAiABEPgCIAFHDQELIARBABCHAiAAIQkLIAdBEGokACAJCwgAIAAoAgBFCwcAIAAoAgwLEwAgACABIAIgACgCACgCMBEHAAsLACAAQeS4AxCUFAsRACAAIAEgACgCACgCHBEEAAsJACABIAIQ/QILSQEDfyMAQRBrIgEkACABIAA2AgggAUEIaiECQQEhAANAIAIQsQEgAEEBSyEDIABBAWshACADDQALIAEoAgghACABQRBqJAAgAAurAQECfwJ/IwBBIGsiAiQAAkACfyAAKAIARQRAIAAoAgQgASgCBEkMAQsgAiAAKAIEQQJ2NgIcIAIgASgCBEECdjYCGCACQRxqIAJBGGoQwAEhAyAAKAIAIgBFDQEgASgCACIBRQ0BQQEgACABIAMoAgAQ6BIiAEEASA0AGkEAIAANABogAigCHCACKAIYSQshACACQSBqJAAgAAwBCyACQQhqQciOARBFGgALCy4AIAEEQCAAIAEoAgAQ/gIgACABKAIEEP4CIAAQtQIaIAFBEGoQ4wEgARCQEwsLVgECfyMAQRBrIgQkACACBEADQCADIAIgABCpASACQRBqIAEQ+wIiBRshAyACQQRqIAIgBRsoAgAiAg0ACwsgBEEIaiADEKQBKAIAIQAgBEEQaiQAIAALGgAgAUHVqtWqAUsEQBDGAgALIAFBDGwQoxYLLAAgACgCABogACgCACAAEKoBQQxsahogACgCACAAEKoBQQxsahogACgCABoLEwAgABCsAigCACAAKAIAa0EMbQskACAAIAE2AgAgACABKAIEIgE2AgQgACABIAJBDGxqNgIIIAALDwAgACgCACAAKAIENgIEC1sBAn8jAEEQayICJAAgAiABNgIMIAEgABDpASIDTQRAIAAQqgEiACADQQF2SQRAIAIgAEEBdDYCCCACQQhqIAJBDGoQ3gIoAgAhAwsgAkEQaiQAIAMPCxDtAQALCgAgASACELYBGgsNACAAQaTgATYCACAACwsAIABCADcCACAACzEBAX8jAEEQayIBJAAgABDIAyEAIAFBADYCDCAAQQhqIAFBDGoQ0gIgAUEQaiQAIAALPgAgAEHg3wE2AgAgAEE8ahCMAyAAQTBqEI0DIABBJGoQjQMgAEEYahCOAyAAQQxqEI4DIABBBGoQjwMaIAALBwAgABCMAwtZAQN/IAAQpgFFBEAgABCpASEDIAAoAgQiASAAKAIAEKUDIAAQqQFBADYCACAAIAFHBEADQCABIQIgASgCBCEBIAMgAkEIahCmAyACEJATIAAgAUcNAAsLCwsMACAAIAAQswIQygMLDAAgACAAELMCEMkDCxUBAX8gACgCBCIBBEAgARChFgsgAAsNACAAEIoDGiAAEJATC74CAQd/IwBBEGsiBSQAQZysAy0AAEUEQEGUrAMQkgNBnKwDQQE6AAALQZSsAxCUA0UEQEHIABCjFiICQQRqEIgDGiACEIcDIgFB4N8BNgIAIAFBDGoQjwEaIAFBGGoQjwEaIAFBJGoQjwEaIAFBMGoQjwEaIAFBPGoQiQMaIwBBEGsiBiQAIAVBCGoiAyACNgIAIAZBCGogAhCZAyEHQRAQoxYhBCMAQSBrIgEkACABIAI2AgwgBBDOAyIEQYjhATYCACAEQQxqIAFBCGogAUEMaiABQRhqEPECIAFBEGoQ8QIaIAFBIGokACADIAQ2AgQgBxC5AhogAyACQQRqQQAgAhsgAhCaAyAHEJsDIAZBEGokAEGUrAMgAxCVAyADEJYDGkGUrAMoAgAQlwMLIABBlKwDEJgDGiAFQRBqJAALCQAgAEIANwIACwoAQZSsAxCWAxoLCgAgACgCAEEARwsrAQF/IwBBEGsiAiQAIAJBCGogARCcAyIBIAAQnQMgARCWAxogAkEQaiQACx0BAX8gACgCBCIBBEAgARDMAwRAIAEQoRYLCyAAC2kBBX8jAEEgayIBJAAgAUEYaiICEK0GIAIoAgAhAyABQQhqIgQgAEEEahCeAyABQRBqIAQQnwMhACADKAIAKAIIIQUgASAAKQIANwMAIAMgASAFEQAAIAQQlgMaIAIQlgMaIAFBIGokAAskACAAIAEoAgA2AgAgACABKAIEIgE2AgQgAQRAIAEQ1AMLIAALKQEBfyMAQRBrIgIkACACIAE2AgwgACACQQxqEMcCIQAgAkEQaiQAIAALTAECfyMAQRBrIgMkAAJAIAFFDQAgASgCBCIEBH8gBCgCBEEBagVBAAsNACABIANBCGogACACEM8DIgAQ0AMgABCWAxoLIANBEGokAAsJACAAQQAQvgMLHwAgACABKAIANgIAIAAgASgCBDYCBCABQgA3AgAgAAsWACAAIAEQvwEgAEEEaiABQQRqEL8BCzoAIAAgASgCADYCAAJAAkAgASgCBCIBRQRAIABBADYCBAwBCyAAIAEQohYiADYCBCAADQELEMYCAAsLJAAgACABKAIANgIAIAAgASgCBCIBNgIEIAEEQCABEKADCyAACwoAIABBCGoQlQILOQEBfyAAEIgDIQAgASgCBCICRQRAIABBADYCBA8LIAAgAhCiFiICNgIEIAIEQCAAIAEoAgA2AgALCygBAX8jAEEQayIBJAAgAUEIaiAAKAIEEKQBKAIAIQAgAUEQaiQAIAALCgAgACgCAEEIagsPACAAIAAoAgAoAgQ2AgALGwAgACgCACIAIAEoAgQ2AgQgASgCBCAANgIACwgAIAEQjwMaCwcAIAEQkBMLwgIBCH8jAEEgayIEJAAgBCABEKoDNgIQIwBBIGsiAiQAIAAgAkEcaiABENUDIgYoAgAhASACQQA6ABsgAUUEQCMAQRBrIgUkACAAELUCIQEgAkEIaiIDQSgQoxYgBUEIaiABQQAQvQIQvgIiBygCAEEQaiEIIAQoAhAhCSMAQRBrIgEkACABIAk2AgggCCABKAIIELYBQgA3AxAgAUEQaiQAIAcQtQJBAToABCAFQRBqJAAgACACKAIcIAYgAygCABC4AiADELkCIQEgAkEBOgAbIAMoAgAhACADQQA2AgAgAARAIAMQtQIiAy0ABARAIAMoAgAgAEEQahC2AgsgAARAIAMoAgAaIAAQkBMLCwsgBEEYaiIAIAJBCGogARCkASACQRtqELoCIAJBIGokACAAELABIQAgBEEgaiQAIABBEGoLjQEBAX8jAEEgayICJAAgAiAAQTxqIgAQogM2AhggAiAAEIUCNgIQIAJBGGogAkEQahCyAQRAA0AgAkEIaiIAIAJBGGoQowMQoQMgABCUAwRAIAIoAggiACABIAAoAgAoAggRAAALIAJBCGoQlgMaIAJBGGoiABCkAyAAIAJBEGoQsgENAAsLIAJBIGokAAslAQF/IwBBEGsiASQAIAFBCGogABDWAygCACEAIAFBEGokACAAC8QCAQh/IwBBIGsiBCQAIAQgARCqAzYCECMAQSBrIgIkACAAIAJBHGogARDVAyIGKAIAIQEgAkEAOgAbIAFFBEAjAEEQayIFJAAgABC1AiEBIAJBCGoiA0EoEKMWIAVBCGogAUEAEL0CEL4CIgcoAgBBEGohCCAEKAIQIQkjAEEQayIBJAAgASAJNgIIIAggASgCCBC2AUEMahAuGiABQRBqJAAgBxC1AkEBOgAEIAVBEGokACAAIAIoAhwgBiADKAIAELgCIAMQuQIhASACQQE6ABsgAygCACEAIANBADYCACAABEAgAxC1AiIDLQAEBEAgAygCABogAEEQahDLAwsgAARAIAMoAgAaIAAQkBMLCwsgBEEYaiIAIAJBCGogARCkASACQRtqELoCIAJBIGokACAAELABIQAgBEEgaiQAIABBDGoLfQECfyMAQSBrIgMkACADIABBDGoiBCABEK0DNgIYIAMgBBCTATYCEAJAIANBGGogA0EQahCgAUUEQCADIABBGGoiACABEK0DNgIYIAMgABCTATYCCCADQRhqIANBCGoQoAFFDQELIANBGGoQsAEpAxAhAgsgA0EgaiQAIAILKgEBfyMAQRBrIgIkACACQQhqIAAgARCuAxCkASgCACEAIAJBEGokACAAC7oBAQV/IwBBEGsiAyQAIAAQswIhAiAAELUCIQQjAEEQayIFJAAgAgRAA0AgBCACIAAQqQEgAkEQaiABENcDIgYbIQQgAkEEaiACIAYbKAIAIgINAAsLIAVBCGogBBCkASgCACECIAVBEGokACADIAI2AgggAyAAEKUBNgIAAn8CQCADQQhqIAMQsgFFDQAgABCpASABIANBCGoQsAEQ1wMNACADKAIIDAELIAAQpQELIQAgA0EQaiQAIAALhgMBCn8jAEHAAWsiAiQAIAJBGGoiBUG7kwFBggFBACACQQhqIgpBmd8BEEUiAxD0AyIEQZ/kABBqGiAEEPYDIAMQrhYaIABBDGoQsQMgAEEkahCyAyAFEK0GIAUoAgAhBiACQQA2AgwgAkEONgIIIAIgAEEEahCeAyMAQRBrIgMkACADIANBCGogAhCcAykCADcDACMAQRBrIgckACAHQQhqIAMQnwMhCCMAQSBrIgAkACAAQQA2AhAgAEEQahC5AyEEIABBDzYCBCMAQRBrIgkkAEEYEKMWIAAoAgQQwQMiAUHo4AE2AgAgASAKKQIANwIIIAFBEGogCBDCAyAJQQhqIAEQmQMoAgAhASAJQRBqJAAgACABNgIIIAQgAEEIaiIBELsDIAEQvAMgAEEYaiAEEL0DIQEgBBCbAyABKAIAIQQgAEEgaiQAIAgQjwMaIAMQlgMaIAdBEGokACADQRBqJAAgBiAEIAYoAgAoAjgRAAAgAhCWAxogBRCWAxogAkHAAWokAAvsAgEEfyMAQeABayIEJAAgBEE4akG7kwFBjQFBACAEQShqQZnfARBFIgUQ9AMiBkGDCBBqQfnkABBqQYMIEGpBsLUBEGogARDNE0HdswEQaiACEJ8CQZevARBqIQcgBEEYaiICIAMQ9AEgByACEJ8CGiACEK4WGiAGEPYDIAUQrhYaAkAgAQ0AIAMQREUNACAEQShqIgEgAxCQASAEIAEQjgI2AhAgBCABEI8CNgIIIARBEGogBEEIahCyAQRAIABBDGohBiAAQSRqIQcDQEG0ECAEKAIQIgEQswNFBEACQAJAIARBOGogAyABEJUBEMwBIgIQ3AEEQCACENUBIQUgBiABEKgDIAWtNwMADAELIAIQ8QFFDQEgBEEYaiIFIAIQgAEgByABEKsDIAUQXCAFEK4WGgsgACABEKkDCyACEM8BCyAEQRBqIgEQkAIaIAEgBEEIahCyAQ0ACwsgBEEoahCXAQsgBEHgAWokAAsqACAAIAAQswIQyQMgABCpAUEANgIAIAAgABC1AjYCACAAELUCQQA2AgALKgAgACAAELMCEMoDIAAQqQFBADYCACAAIAAQtQI2AgAgABC1AkEANgIACyABAX8gABDwEiICIAEQO0YEfyABIAAgAhC3FgVBAQtFC3gBA38jAEHAAWsiASQAIAFBGGpBu5MBQaQBQQAgAUEIakGZ3wEQRSICEPQDIgNBgwgQakHd5AAQakGDCBBqQZLkABBqGiADEPYDIAIQrhYaIABBDGoQsQMgAEEYahCxAyAAQSRqELIDIABBMGoQsgMgAUHAAWokAAsHACAAEK8DCwMAAQsDAAELAwABCx0BAX8jAEEQayIBJAAgABCuASEAIAFBEGokACAAC58BAgN/AX4jAEEQayIFJAAgBSABNgIMIwBBIGsiASQAIAFBGGoiBCAAQRBqEKEDIAQQlAMEQCABKAIYIQQgASAAKQIIIgc3AwggASAHNwMQIAEoAgghACAEIAEoAgwiBkEBdWoiBCAFKAIMIAIgAyAGQQFxBH8gBCgCACAAaigCAAUgAAsRBQALIAFBGGoQlgMaIAFBIGokACAFQRBqJAALHgEBfyMAQRBrIgIkACAAIAEQuQIQvgMgAkEQaiQACx8BAX8gACgCACEBIABBADYCACABBEAgARDDAxCQEwsLCQAgACABEMADCx4BAX8gACgCACECIAAgATYCACACBEAgACACEMcDCwsEACAACy4BAX8jAEEQayICJAAgAiABELkCNgIMIAAgAkEMaiABEPECIQAgAkEQaiQAIAALFAAgACABNgIEIABB+OABNgIAIAALCgAgACABEMYDGgsMACAAQRBqEMQDIAALCAAgABCPAxoLCgAgABDDAxCQEwsJACAAIAEQnAMLFAAgAQRAIAEgASgCACgCBBEBAAsLEgAgACAANgIAIAAgADYCBCAACy0AIAEEQCAAIAEoAgAQyQMgACABKAIEEMkDIAAQtQIgAUEQahC2AiABEJATCwsuACABBEAgACABKAIAEMoDIAAgASgCBBDKAyAAELUCGiABQRBqEMsDIAEQkBMLCxEAIABBDGoQrhYaIAAQrhYaCyYBAX8gAEEEahDNAyIBQX9GBEAgACAAKAIAKAIIEQEACyABQX9GCxMAIAAgACgCAEEBayIANgIAIAALGQAgABDRAyIAQQA2AgggAEGwnQM2AgAgAAshACAAIAI2AgAgACABKAIEIgE2AgQgAQRAIAEQ1AMLIAALKwEBfyMAQRBrIgIkACACQQhqIAEQnwMiASAAEJ0DIAEQjwMaIAJBEGokAAsUACAAQQA2AgQgAEH4nAM2AgAgAAsRACAAQQxqIgAgACgCABDHAwsZAQF/IwBBEGsiASQAIAAQkBMgAUEQaiQACwoAIABBBGoQlQILdgEDfyAAELMCIQMgABC1AiEFAkAgAwRAA0AgABCpASACIAMiBEEQaiIDENcDBEAgBCEFIAQoAgAiAw0BDAMLIAAQqQEgAyACENcDRQ0CIARBBGohBSAEKAIEIgMNAAwCCwALIAAQtQIiBCEFCyABIAQ2AgAgBQsJACAAIAEQnwELCwAgACABIAIQuwILBwAgACgCAAvGBwEHfyMAQRBrIgYkACAGQQhqIAEQpAEiBxCxASABIAAoAgBGBEAgACAHKAIANgIACyAAEKkBIgQgBCgCAEEBazYCACAAELUCKAIAIQACfwJAIAEiAygCACIEBEAgASgCBEUNAQJ/IAEoAgQiBEUEQCADEMgCRQRAA0AgAygCCCIDEMgCRQ0ACwsgAygCCAwBCyAEEPICCyIDKAIAIgQNAQsgAygCBCIEDQBBACEEQQEMAQsgBCADKAIINgIIQQALIQgCfwJ/IAMQyAIEQCADKAIIIAQ2AgAgACADRgRAIAQhAEEADAMLIAMoAghBBGoMAQsgAygCCCAENgIEIAMoAggLKAIACyECIAMtAAxFAn8gASADRwRAIAMgASgCCDYCCAJ/IAEQyAIEQCADKAIIDAELIAMoAghBBGoLIAM2AgAgAyABKAIAIgU2AgAgBSADEMsCIAMgASgCBCIFNgIEIAUEQCAFIAMQywILIAMgAS0ADDoADCADIAAgACABRhshAAsgAEULckUEQAJAIAgEQANAIAIQyAIhBCACLQAMIQECfwJAIARFBEAgAUUEQCACQQE6AAwgAigCCEEAOgAMIAIoAggQyQIgAiAAIAAgAigCACIBRhshACABKAIEIQILAkACQAJAAkAgAigCACIEBEAgBC0ADEUNAQsgAigCBCIBBEAgAS0ADEUNAgsgAkEAOgAMAkAgACACKAIIIgFHBH8gAS0ADA0BIAEFIAALQQE6AAwMCgsgARDIAkUNBSABKAIIQQRqDAYLIAIoAgQiAUUNAQsgAS0ADEUNAQsgBEEBOgAMIAJBADoADCACEMoCIAIoAgghAgsgAiACKAIILQAMOgAMIAIoAghBAToADCACKAIEQQE6AAwgAigCCBDJAgwFCyABRQRAIAJBAToADCACKAIIQQA6AAwgAigCCBDKAiACIAAgACACKAIEIgFGGyEAIAEoAgAhAgsCQCACKAIAIgEEQCABLQAMRQ0BCwJAIAIoAgQiBARAIAQtAAxFDQELIAJBADoADCACKAIIIgEtAAxBACAAIAFHG0UEQCABQQE6AAwMBwsgARDIAgRAIAEoAghBBGoMBAsgASgCCAwDCyABBH8gAS0ADEUNASACKAIEBSAEC0EBOgAMIAJBADoADCACEMkCIAIoAgghAgsgAiACKAIILQAMOgAMIAIoAghBAToADCACKAIAQQE6AAwgAigCCBDKAgwECyABKAIICygCACECDAALAAsgBEEBOgAMCwsgBygCACEAIAZBEGokACAACzQBAX8jAEHwAGsiACQAIAAQLSAAQQhqIAAQMiIDIAEgAhAzIQEgAxDbAyAAQfAAaiQAIAELWAEDfyAAQdAAahCuFhogAEEwahCuFhogAEEYaiIBEE4gASgCBCICIAEoAggiA0cEQANAIAEQeBogAigCABC3ASACQQRqIgIgA0cNAAsLIAEQqAIgABCmAgsrAQF/IwBBIGsiAiQAIAAgAkEIahCJAiIAIAEQiwIgABCiAhogAkEgaiQAC4YBAQF/IwBBIGsiAyQAAn8gABBERQRAIAJBuZ4BEKECQQAMAQsCQCAAIAEQgQEEQCAAIAEQlQFBBBDbAQ0BCyADQdqiASABELwWIANBEGoiACADQZKiARBvIAIgABBcIAAQrhYaIAMQrhYaQQAMAQsgAkGZ3wEQoQJBAQshACADQSBqJAAgAAs1AQF/AkAgABBERQ0AIAAgARCBAUUNACAAIAEQlQFBBRDbAUUNACAAIAEQlQEQiQEhAgsgAgszAAJAIAAQREUNACAAIAEQgQFFDQAgACABEJUBQQEQ2wFFDQAgACABEJUBEIoBIQILIAILMwACQCAAEERFDQAgACABEIEBRQ0AIAAgARCVAUECENsBRQ0AIAAgARCVARDVASECCyACCzwAAkACQCABEERFDQAgASACEIEBRQ0AIAEgAhCVAUEEENsBDQELIAAgAxC2ARoPCyAAIAEgAhCVARCAAQtnAQJ/IwBBMGsiAyQAIAAQiQMhBAJAIAEQREUNACABIAIQgQFFDQAgASACEJUBEENFDQAgA0EIaiIAIANBGGogASACEJUBEMwBIgEQ4wMgBCAAEOQDIAAQ5wMgARDPAQsgA0EwaiQAC40BAQN/IwBBIGsiAiQAIAAQiQMhAAJAIAEQ3gENACABEENFDQAgAkEYaiIDIAEQ+wEgAkEQaiIEIAEQ/AEgAyAEEOUDRQ0AA0AgAkEYahCvASIBQQQQ2wEEQCACIAEQgAEgACACEOYDIAIQrhYaCyACQRhqIgEQsQEgASACQRBqEOUDDQALCyACQSBqJAALPgEBfyMAQRBrIgIkACAAEOcDIAAgARDrAyACIAAQhQI2AgAgACACQQhqIAIQxwIoAgAgARDsAyACQRBqJAALIQACfyAALQAEBEAgAS0ABEEARwwBCyAAIAEQswELQQFzC1oBAn8jAEEQayICJAAgAiAAEKkBIgMQ6AMgAyACKAIAQQhqIAEQvwIgACACKAIAIgEgARDpAyAAEKkBIgAgACgCAEEBajYCACACELkCGiACEOoDIAJBEGokAAtZAQN/IAAQpgFFBEAgABCpASEDIAAoAgQiASAAKAIAEKUDIAAQqQFBADYCACAAIAFHBEADQCABIQIgASgCBCEBIAMgAkEIahC2AiACEJATIAAgAUcNAAsLCws0AQJ/IwBBEGsiAiQAQRQQoxYiA0EANgIAIAAgAyACQQhqIAFBARCvAhC+AhogAkEQaiQACyUBAX8gAiAANgIEIAEgACgCACIDNgIAIAMgATYCBCAAIAI2AgALCQAgAEEAEO4DCw4AIAEQqQEaIAAQqQEaC00BAn8gAhCmAUUEQCACKAIEIgMgAigCACIEEKUDIAEgAyAEEO0DIAIQqQEoAgAhASAAEKkBIgAgASAAKAIAajYCACACEKkBQQA2AgALCyUBAX8gACgCACIDIAE2AgQgASADNgIAIAAgAjYCACACIAA2AgQLKwEBfyAAKAIAIQIgACABNgIAIAIEQCAAELUCIgAoAgAgAiAAKAIEEKcDCwuqAQEDfyMAQYABayIBJAAgAUHoAGpBABDCASECIAFB0ABqQZ3hARDIASEDIAJBpeEBEIcBIAMQZyADEM8BIAFBOGogABDFASEAIAJBqeEBEIcBIAAQZyAAEM8BIAFBIGpBABDLASEAIAJBsOEBEIcBIAAQZyAAEM8BIAFBCGpBocQBEMgBIQAgAkHC4QEQhwEgABBnIAAQzwEgAhDyByACEM8BIAFBgAFqJAALqgEBA38jAEGAAWsiASQAIAFB6ABqQQAQwgEhAiABQdAAakHK4QEQyAEhAyACQaXhARCHASADEGcgAxDPASABQThqIAAQxQEhACACQanhARCHASAAEGcgABDPASABQSBqQQAQywEhACACQbDhARCHASAAEGcgABDPASABQQhqQaHEARDIASEAIAJBwuEBEIcBIAAQZyAAEM8BIAIQ8gcgAhDPASABQYABaiQAC2oBAn8jAEHQAGsiASQAIAFBOGpBABDCASECIAFBIGogABDFASEAIAJB0uEBEIcBIAAQZyAAEM8BIAFBCGpB2+EBEMgBIQAgAkHb4QEQhwEgABBnIAAQzwEg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ACACEKwCKAIAIAIoAgBrGiAAEJATCyAHQSBqJAALOwECfyAAQRxqIgEQzgQgASgCAARAIAEQzwQgARCpARogASgCACECIAEQ0AQaIAIQkBMLIABBEGoQvAQLCgAgACgCBEE0awvvAQEEfyABIAAQkQEiA0sEQCMAQSBrIgQkAAJAIAEgA2siASAAEKkBKAIAIAAoAgRrQQxtTQRAIAAgASACEL4EDAELIAAQqQEhAyAEQQhqIAAgABCRASABahCFAyAAEJEBIAMQ6gEhAyMAQRBrIgUkACAFIANBCGogARDUBCIBKAIAIAEoAgRHBEADQCADKAIQIAEoAgAgAhDCBCABIAEoAgBBDGoiBjYCACAGIAEoAgRHDQALCyABEOwCIAVBEGokACAAIAMQ0gQgAxDTBAsgBEEgaiQADwsgASADSQRAIAAgACgCACABQQxsahC/BAsLzgQBB38gASAAEMYEIgJLBEAjAEEgayIGJAACQCABIAJrIgQgABCpASgCACAAKAIEa0EDdU0EQCMAQRBrIgMkACADIAAgBBDXBCICKAIEIgEgAigCCCIERwRAA0AgABCpARogARDcBCACIAFBCGoiATYCBCABIARHDQALCyACEIQDIANBEGokAAwBCyAAEKkBIQUgACAAEMYEIARqENUEIQIgABDGBCEIIwBBEGsiByQAIAdBADYCDCAGQQhqIgFBDGogBRDnAiACBEAgASgCECACENkEIQMLIAEgAzYCACABIAMgCEEDdGoiBTYCCCABIAU2AgQgARCsAiADIAJBA3RqNgIAIAdBEGokACMAQRBrIgIkACACIAEoAgg2AgAgASgCCCEDIAIgAUEIajYCCCACIAMgBEEDdGo2AgQgAigCACACKAIERwRAA0AgASgCEBogAigCABDcBCACIAIoAgBBCGoiBDYCACAEIAIoAgRHDQALCyACEOwCIAJBEGokACAAEM4EIAAQqQEgACgCACAAKAIEIAFBBGoiAhDaBCAAIAIQvwEgAEEEaiABQQhqEL8BIAAQqQEgARCsAhC/ASABIAEoAgQ2AgAgACAAEMYEENsEIAEoAgQiACABKAIIRwRAA0AgASgCEBogASABKAIIQQhrNgIIIAEoAgggAEcNAAsLIAEoAgAEQCABKAIQGiABKAIAIQAgARCsAigCACABKAIAaxogABCQEwsL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IgMQowUgASABKAIAQRhrIgQ2AgAgAyAGRw0ACwsgACABEL8BIABBBGogAkEIahC/ASAAEKkBIAIQrAIQvwEgAiACKAIENgIAIAAQhgUaIAAoAgAaIAAoAgAgABCPBUEYbGoaIAAoAgAgABCPBUEYbGoaIAAoAgAaIAIoAgQiACACKAIIRwRAA0AgAigCEBogAiACKAIIQRhrIgE2AgggARDLAyACKAIIIABHDQALCyACKAIABEAgAigCEBogAigCACEAIAIQrAIoAgAgAigCAGsaIAAQkBMLIAdBIGokAAsMACAAIAEgAhCCBRoLjAUBB38gACgCBCAAEKkBKAIASQRAIwBBEGsiAiQAIAIgADYCACACIAAoAgQiAzYCBCACIANBAmo2AgggABCpASACKAIEIAEQpgUgAiACKAIEQQJqNgIEIAIQhAMgAkEQaiQADwsjAEEgayIHJAAgABCpASIIAn8gB0EIaiECAn8gABCEBUEBaiEGIwBBEGsiBCQAIAQgBjYCDCMAQRBrIgUkACAAEKkBGiAFQf////8HNgIMIAVB/////wc2AgggBUEMaiAFQQhqEMABKAIAIQMgBUEQaiQAIAMgBk8EQCAAEI0FIgUgA0EBdkkEQCAEIAVBAXQ2AgggBEEIaiAEQQxqEN4CKAIAIQMLIARBEGokACADDAELEO0BAAshBCAAEIQFIQZBACEDIwBBEGsiBSQAIAVBADYCDCACQQxqIAgQ5wIgBARAIAIoAhAaIARB/////wdLBEAQxgIACyAEQQF0EKMWIQMLIAIgAzYCACACIAMgBkEBdGoiBjYCCCACIAY2AgQgAhCsAiADIARBAXRqNgIAIAVBEGokACACKAIICyABEKYFIAIgAigCCEECajYCCCAAEIwFIAAQqQEgACgCACAAKAIEIAJBBGoiARDaBCAAIAEQvwEgAEEEaiACQQhqEL8BIAAQqQEgAhCsAhC/ASACIAIoAgQ2AgAgABCEBRogACgCABogACgCACAAEI0FQQF0ahogACgCACAAEI0FQQF0ahogACgCABogAigCBCIAIAIoAghHBEADQCACKAIQGiACIAIoAghBAms2AgggAigCCCAARw0ACwsgAigCAARAIAIoAhAaIAIoAgAhACACEKwCKAIAIAIoAgBrGiAAEJATCyAHQSBqJAALFgAgACABKAIA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ahDKASECIABBrKUBEIcBIAIQZyACEM8BIANBuAJqIAFBgAFqEMoBIQIgAEGsgAEQhwEgAhBnIAIQzwEgA0GgAmogASgCmAEQxAEhAiAAQYjEABCHASACEGcgAhDPASADQYgCaiABQZwBahDKASECIABBwAwQhwEgAhBnIAIQzwEgA0HwAWogAUGoAWoQygEhAiAAQbEMEIcBIAIQZyACEM8BIANB2AFqIAFBtAFqEMoBIQIgAEGggAEQhwEgAhBnIAIQzwEgA0HAAWogAUHAAWoQygEhAiAAQdOCARCHASACEGcgAhDPASADQagBaiABQcwBahDKASECIABBlYABEIcBIAIQZyACEM8BIANBkAFqQQcQwgEhAiADQfgAaiABQUBrEMoBIQQgAkGnhAEQhwEgBBBnIAQQzwEgA0HgAGogAS0AJBDLASEEIAJBuP4AEIcBIAQQZyAEEM8BIANByABqIAEoAhwQxQEhBCACQYbfABCHASAEEGcgBBDPASADQTBqIAFBNGoQygEhASACQY+AARCHASABEGcgARDPASADQRhqIAAQzAEhASAFQbo8EIcBIAEQZyABEM8BIAMgAhDMASEBIAVByzsQhwEgARBnIAEQzwEgAhDPASAAEM8BIANBwARqJAAL1wMBAn8jAEGQAmsiCCQAIAggBzYCiAIgCEEANgLsASAIQYcBNgLoASAIQbgBaiIJIABBBGoQngMgCCAIQegBaiIHIAkgCEGIAmoQ3wY2AoACIAkQlgMaIAdBABDCASEHIAhB0AFqIAEQygEhASAHQfakARCHASABEGcgARDPASAJQQYQwgEhASAIIAIQogM2AhAgCCACEIUCNgKwASAIQRBqIAhBsAFqELIBBEADQCABIAhBmAFqIAhBEGoiAhCjAxDKASIJEOYBIAkQzwEgAhCkAyACIAhBsAFqELIBDQALCyAIQYABaiABEMwBIQIgB0G8GRCHASACEGcgAhDPASAIQegAaiADEMoBIQIgB0HBngEQhwEgAhBnIAIQzwEgCEHQAGogBBDFASECIAdBlhQQhwEgAhBnIAIQzwEgCEE4aiAFEMsBIQIgB0GFDRCHASACEGcgAhDPASAIQSBqIgIgBhDsBiAHQYA8EIcBIAIQZyACEM8BIAhBmAFqQaw2EEUhAiAIQRBqIgMgBxD0ASAAIAIgAyAIQQhq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BCABIAApAggiCTcDCCABIAk3AxAjAEEQayIFJAAgBCABKAIMIghBAXVqIQQgASgCCCEAIAhBAXEEQCAEKAIAIABqKAIAIQALIAQgBUEIaiAHEL0DKAIAIAYoAgwgAiADIAARBgAgBUEQaiQACyABQRhqEJYDGiABQSBqJAAgBkEQaiQACwcAIAAQ/QYLHwEBfyAAKAIAIQEgAEEANgIAIAEEQCABEP8GEJATCwsRACAAIAEQxgNBCGogAhCBBwsZAQF/IABBEGoiAUEIahCbAyABEI8DGiAACwoAIAAQ/wYQkBMLCgAgACABEL0DGgvUAQIGfwF+IwBBEGsiBiQAIAYgATYCDCAAQRBqIgEhBSABEKkBIQcgARB4IQgjAEEgayIBJAAgAUEYaiIEIAUQoQMgBBCUAwRAIAEoAhghBCABIAApAggiCjcDCCABIAo3AxAjAEEQayIFJAAgBCABKAIMIglBAXVqIQQgASgCCCEAIAlBAXEEQCAEKAIAIABqKAIAIQALIAQgByAFQQhqIAgQvQMoAgAgBigCDCACIAMgABEIACAFQRBqJAALIAFBGGoQlgMaIAFBIGokACAGQRBqJAALIQEBfyAAQRBqIgFBFGoQmwMgAUEIahDXBiABEI8DGiAACwoAIAAQgwcQkBMLHwEBfyAAKAIAIQEgAEEANgIAIAEEQCABEIcHEJATCwsdACAAIAEQxgMiAEEIaiACEIkHIABBFGogAxCBBwsiAQF/IABBEGoiAUEUahCbAyABQQhqEK4WGiABEI8DGiAACwoAIAAQhwcQkBMLCgAgACABELYBGgsRACAAQQxqIgAgACgCABCLBwsSACABBEAgARC0BhogARCQEwsLHgAgABCIAyIAIAI2AgQgACABNgIAIAAgASABEJoDCw0AIABB5OoBNgIAIAALCgAgABCNBxCQEwsLACAAEKwCEKAHGgsfAQF/IwBBEGsiASQAIAAQrAIaIAAQkBMgAUEQaiQACyoBAX8jAEEQayICJAAgAiAANgIMIAJBDGogARD8BRD6BSACQRBqJAAgAAsuACABBEAgACABKAIAEJIHIAAgASgCBBCSByAAELUCGiABQRBqENYGIAEQkBMLC0IBAX8gACgCACEBIABBADYCACABBEAgABC1AiIALQAEBEAgACgCABogAUEQahDWBgsgAQRAIAAo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BRCuFhoLIAFB8AFqJAALIAxBwAFqJAALbwEBfyMAQSBrIgIkACABEKkBGiAAIAJBGGoQrQchACACIAEQogM2AhAgAiABEIUCNgIIIAJBEGogAkEIahCyAQRAA0AgACACQRBqIgEQowMQrgcgARCkAyABIAJBCGoQsgENAAsLIAJBIGokACAACw0AIAAoAgAgAUECdGoLWgECfyMAQRBrIgIkACACIAAQqQEiAxDoAyADIAIoAgBBCGogARCGAyAAIAIoAgAiASABEOkDIAAQqQEiACAAKAIAQQFqNgIAIAIQuQIaIAIQ6gMgAkEQaiQACy0AIAAgARBWIABBDGogAUEMahBWIABBGGogAUEYahBWIABBJGogAUEkahCxBwuiAQECfyMAQSBrIgMkACADIAE2AhAgAyAANgIYIAMgAjYCCAJAIANBGGogA0EQahCyAUUNAANAIANBGGoQowMhAiMAQRBrIgAkACAAQQhqIgEgAhChAyABKAIAIQIgAygCCCgCACEEIAEQlgMaIABBEGokACACIARGDQEgA0EYaiIAEKQDIAAgA0EQahCyAQ0ACwsgAygCGCEAIANBIGokACAAC1YBAX8jAEEQayICJAAgAiAAEKkBEKoHIAIoAgBBCGogARCrByAAIAIoAgAiASABEOkDIAAQqQEiACAAKAIAQQFqNgIAIAIQuQIaIAIQtwcgAkEQaiQACzYBAn8jAEEQayICJAAgAUEBELYHIgNBADYCACAAIAMgAkEIaiABQQEQrwIQvgIaIAJBEGokAAsKACAAIAEQnwMaC1sBA38jAEEQayICJAAgABCpASEDIAEoAgQhBCABIAEQpQMgABCpASIAIAAoAgBBAWs2AgAgAyABQQhqEKYDIAEQkBMgAkEIaiAEEKQBKAIAIQAgAkEQaiQAIAALNAEBfyMAQRBrIgIkACAAEMgDIQAgAkEANgIMIABBCGogAkEMaiABEPECGiACQRBqJAAgAAtXAQF/IwBBEGsiAiQAIAIgABCpARCqByACKAIAQQhqIAEQqwcgACACKAIAIAIoAgAQ6QMgABCpASIAIAAoAgBBAWo2AgAgAhC5AhogAhC3ByACQRBqJAALLgAgAQRAIAAgASgCABCvByAAIAEoAgQQrwcgABC1AhogAUEQahCwByABEJATCwsQACAAQRBqEJ8GIAAQrhYaC5UEAQZ/IAAgAUcEQCABEKkBGiAAEKkBGiABEO4BIQIgARClASEBIwBBIGsiBSQAIAUgATYCECAFIAI2AhggABCpASgCAARAAkAgBSAAELIHIgMoAghFDQADQCAFQRhqIAVBEGoQsgFFDQEgBUEYaiIHELABIQIgAygCCEEQaiEEIwBBEGsiASQAIAFBCGogBBC0ByABKAIIIAIQViACEKwCIgQgASgCDCICRwRAIAIoAgAiBgRAIAYQkBMLIAIgBCgCBCIGNgIEIAIgBhCTEyICNgIAIAIgBCgCACAGEOESGgsgAUEQaiQAIAMoAgghAiMAQRBrIgEkACAAIAFBBGogAkEQahC1ByEEIAAgASgCBCAEIAIQuAIgAUEIaiACEKQBKAIAGiABQRBqJAAgAxCzByAHELEBIAMoAggNAAsLIAMoAgAgAygCCBCkBiADKAIEIgEEQCABKAIIIgIEQANAIAIiASgCCCICDQALIAMgATYCBAsgAygCACABEKQGCwsgBUEYaiAFQRBqELIBBEADQCAFQRhqIgMQsAEhBCMAQSBrIgEkACABQQhqIgIgACAEEKcGIAAgAUEEaiACKAIAQRBqELUHIQQgACABKAIEIAQgAigCABC4AiABQRhqIAIQuQIQpAEhBCACEKgGIAQoAgAaIAFBIGokACADELEBIAMgBUEQahCyAQ0ACwsgBUEgaiQACwtVAQF/IAAgATYCACABKAIAIQIgASABELUCNgIAIAEQtQIoAgBBADYCCCABELUCQQA2AgAgARCpAUEANgIAIAAgAigCBCIBIAIgARs2AgQgABCzByAAC3wBAX8gACAAKAIEIgE2AgggAQRAIAAgASgCCAR/AkACQCABEMgCBEAgASgCCCIBQQA2AgAgASgCBCIADQEMAgsgASgCCEEANgIEIAEoAggiASgCACIARQ0BCwNAIAAiASgCACIADQAgASgCBCIADQALCyABBUEACzYCBAsLDwAgACABIAFBDGoQrwIaC1sBA38CQCAAELMCIgQEQANAIAAQqQEgAiAEIgNBEGoQ1wMEQCADIQUgAygCACIEDQEMAwsgAygCBCIEDQALIANBBGohBQwBCyAAELUCIgMhBQsgASADNgIAIAULCQAgACABELgHCysBAX8gACgCACEBIABBADYCACABBEAgABC1AiIAKAIAIAEg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DCACEK4WGiADQaSYAUG8AUEAIAFBmd8BEEUiAhD0AyIDQYfbARBqIAAQnwJBjdcBEGogASgCxAEQzRNBt9YBEGogASgCwAEQzRNBysEBEGogASgCvAEQzRNBkqIBEGoaIAMQ9gMgAhCuFhogASgC2AEiAiAAIAEoAsQBIAEoAsABIAEoArwBIAIoAgAoAjARBgAgABCuFhoLIAFB2AFqEJYDGiABQeABaiQADwsgAUGdzAAQoAIEQCMAQTBrIgEkACABQShqIgMgABChAyADEOIHRQRAIAFBGGoQLiEAIAIgAUEIakHvkQEQRSICIAAQ0AwgAhCuFhogASgCKCICIAAgAigCACgCHBEAACAAEK4WGgsMAQsgAUHtzAAQoAIEQCMAQTBrIgEkACABQShqIgMgABChAyADEOIHRQRAIAFBGGoQLiEAIAIgAUEIakHvkQEQRSICIAAQ0AwgAhCuFhogASgCKCICIABBACACKAIAKAIgEQMAIAAQrhYaCwwBCyABQZv2ABCgAgRAIwBB8ABrIgMkACADQegAaiIBIAAQoQMCQCABEOIHDQAgAkG1KRCABkUNACADIAJBtSkQgQYgA0HYAGoiASADEM8GIAMQ8QUgA0HIAGoQmwEhACADIAEQjgI2AkAgAyABEI8CNgI4QQAhAiADQUBrIANBOGoQsgEEQANAIANBQGsiCygCACEBIANBKGoQLiEJIAEgA0HvkQEQRSIEIAkQ0AwgBBCuFhogASADQf71ABBFIgEgA0EkahDSDCABEK4WGiADEC4iBkEUahCbARogBkIANwIMIAYgCRBWIAMgAygCJDYCDAJAIAAoAgQgABCpASgCAEcEQCMAQRBrIgEkACABIAA2AgAgASAAKAIEIgQ2AgQgASAEQSBqNgIIIAAQqQEgASgCBCAGEOYHIAEgASgCBEEgajYCBCABEIQDIAFBEGokAAwBCyMAQSBrIgwkACAAEKkBIgoCfyAMQQhqIQECfyAAENsHQQFqIQgjAEEQayIFJAAgBSAINgIMIwBBEGsiByQAIAAQqQEaIAdB////PzYCDCAHQf////8HNgIIIAdBDGogB0EIahDAASgCACEEIAdBEGokACAEIAhPBEAgABDaByIHIARBAXZJBEAgBSAHQQF0NgIIIAVBCGogBUEMahDeAigCACEECyAFQRBqJAAgBAwB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IAALCgAgABCOCBCQEwsLACAAEKwCEI8DGgsnAQF/IwBBEGsiASQAIABBATYCBCAAQSwQoxY2AgggAUEQaiQAIAALDQAgAEHc8gE2AgAgAAsKACAAEJIIEJATCyoBAX8jAEEQayICJAAgAiAANgIMIAJBDGogARCeBxD6BSACQRBqJAAgAAsSACAAQQE2AgQgACABNgIAIAALJQEBfyAAKAIAIQEgAEEANgIAIAEEQCAAELUCKAIEGiABEJATCwsNACAAQaTzATYCACAACz0AIAEQqgMhASACEKoDGiMAQRBrIgIkACACIAE2AgggACACKAIIIgAQoQhBGGogAEEYahB0GiACQRBqJAALFQAgAEGA8wE2AgAgAEEIahD8ByAACwoAIAAQmQgQkBMLSAECfyMAQSBrIgEkACABQQhqQTAQoxYgASABQRhqEJUIEL4CIgIoAgAgAEEIaiABEJwIIAIQuQIhACACEJYIIAFBIGokACAACxwAIAAQlwgiAEGA8wE2AgAgAEEIaiABIAIQoggLEAAgASAAQQhqIgAgABCcCAsKACAAQQhqEPwHCw8AIABBCGoQ/AcgABCQEwsZACAAQQhqIgAQ6wUEQCAAIABBGGoQowgLC1QBAX8CfyABKAIQIgJFBEAgAEEANgIQIAAMAQsgASACRgRAIAAgADYCECABKAIQIgEgACABKAIAKAIMEQAAIAAMAQsgACACNgIQIAFBADYCECAACwsxACABEKoDIQEgAhCqAxojAEEQayICJAAgAiABNgIIIAAgAigCCBD7BxogAkEQaiQACwkAIAAgARDsBQsNACAAQezzATYCACAACxUAIABByPMBNgIAIABBCGoQ/AcgAAsKACAAEKUIEJATC0gBAn8jAEEgayIBJAAgAUEIakEwEKMWIAEgAUEYahCVCBC+AiICKAIAIABBCGogARCoCCACELkCIQAgAhCWCCABQSBqJAAgAAscACAAEKQIIgBByPMBNgIAIABBCGogASACEKIICxAAIAEgAEEIaiIAIAAQqAgLJAAgASgCACEBIABBCGoiABDrBQRAIAAgAEEYaiABIAIQqwgLCykBAX8jAEEQayIEJAAgBCACNgIMIAAgASAEQQxqIAMQrAggBEEQaiQACyQAIAAoAhAiAEUEQBDGAgALIAAgASACIAMgACgCACgCGBEFAAsNACAAQbT0ATYCACAAC0MAIAEQqgMhASACEKoDGiMAQRBrIgIkACACIAE2AgggACACKAIIIgEoAgA2AgAgAEEIaiABQQhqEKEIGiACQRBqJAALFQAgAEGQ9AE2AgAgAEEIahCGCCAACwoAIAAQrwgQkBMLSAECfyMAQSBrIgEkACABQQhqQSgQoxYgASABQRhqEJUIEL4CIgIoAgAgAEEIaiABELIIIAIQuQIhACACEJYIIAFBIGokACAACxwAIAAQrQgiAEGQ9AE2AgAgAEEIaiABIAIQtwgLEAAgASAAQQhqIgAgABCyCAsKACAAQQhqEIYICw8AIABBCGoQhgggABCQEwu9AwEGfyMAQZABayICJAAgAEEIaiIHKAIAGiACQYABaiIAIAEQzwYgAkHwAGoQiQMhBSACIAAQjgI2AmggAiAAEI8CNgJgIAJB6ABqIAJB4ABqELIBBEADQCACQegAaiIGKAIAIQQgAkEIahAuIgFBEGoQLhogAUEcahDeByABQTRqEN4HIAFBADYCUCABQQA6AEwgAUEANgIMIwBBEGsiACQAAkAgBEGj8wAQgAZFDQAgACAEQaPzABCBBiAAEIgIIQMgABDxBSADRQ0AIAAgBEGj8wAQgQYgABCJCCEDIAAQ8QUgASADNgIMCyAEIABBupIBEEUiAyABENAMIAMQrhYaIAQgAEGs+AAQRSIDIAFBEGoQ0AwgAxCuFhogBCAAQbISEEUiAyABQcwAahDTDCADEK4WGiAAIARB76UBEIEGIAAgAUEcahCKCCAAEPEFIAAgBEHmpQEQgQYgACABQTRqEIoIIAAQ8QUgAEEQaiQAIAUgARC4CCABEOAHIAYQ6wIgBiACQeAAahCyAQ0ACwsgB0EIaiIAEOsFBEAgAEEAIAUQ9wcLIAUQuQggAkGAAWoQ0QYgAkGQAWokAAsxACABEKoDIQEgAhCqAxojAEEQayICJAAgAiABNgIIIAAgAigCCBCFCBogAkEQaiQAC+UBAQR/IwBBEGsiAiQAIAAQqQEhBCMAQRBrIgMkAEHcABCjFiIFQQA2AgAgAiAFIANBCGogBEEBEK8CEL4CGiADQRBqJAAgAigCAEEIaiABELYBIgMgASgCDDYCDCADQRBqIAFBEGoQtgEaIANBHGogAUEcahDfByADQTRqIAFBNGoQ3wcgAyABKQJMNwJMIAAgAigCACACKAIAEOkDIAAQqQEiACAAKAIAQQFqNgIAIAIQuQIaIAIoAgAhACACQQA2AgAgAARAIAIQtQIiASgCABogASgCBBogABCQEwsgAkEQaiQAC1YBAn8gABCmAUUEQCAAEKkBGiAAKAIEIgEgACgCABClAyAAEKkBQQA2AgAgACABRwRAA0AgASECIAEoAgQhASACQQhqEOAHIAIQkBMgACABRw0ACwsLCw0AIABB/PQBNgIAIAALMQAgARCqAyEBIAIQqgMaIwBBEGsiAiQAIAIgATYCCCAAIAIoAggQxAgaIAJBEGokAAsVACAAQdj0ATYCACAAQQhqEPkHIAALCgAgABC8CBCQEwtIAQJ/IwBBIGsiASQAIAFBCGpBIBCjFiABIAFBGGoQlQgQvgIiAigCACAAQQhqIAEQvwggAhC5AiEAIAIQlgggAUEgaiQAIAALHAAgABC6CCIAQdj0ATYCACAAQQhqIAEgAhDFCAsQACABIABBCGoiACAAEL8ICwoAIABBCGoQ+QcLDwAgAEEIahD5ByAAEJATCzIAIwBBEGsiASQAIABBCGoiABDrBQRAIABBfyABEIkDIgAQ9wcgABC5CAsgAUEQaiQACwkAIAAgARChCAsxACABEKoDIQEgAhCqAxojAEEQayICJAAgAiABNgIIIAAgAigCCBD4BxogAkEQaiQACxUAIABBuPUBNgIAIABBCGoQ+QcgAAsKACAAEMYIEJATC0gBAn8jAEEgayIBJAAgAUEIakEgEKMWIAEgAUEYahCVCBC+AiICKAIAIABBCGogARDJCCACELkCIQAgAhCWCCABQSBqJAAgAAscACAAEK0IIgBBuPUBNgIAIABBCGogASACEMUICxAAIAEgAEEIaiIAIAAQyQgLCgAgAEEIahDMCAsPACAAEOsFBEAgABDuBQsLFQAgAEHc9QE2AgAgAEEIahD5ByAACwoAIAAQzQgQkBMLSAECfyMAQSBrIgEkACABQQhqQSAQoxYgASABQRhqEJUIEL4CIgIoAgAgAEEIaiABENAIIAIQuQIhACACEJYIIAFBIGokACAACxwAIAAQuggiAEHc9QE2AgAgAEEIaiABIAIQxQgLEAAgASAAQQhqIgAgABDQCAsYACAAQQhqIgAQ6wUEQCAAQX8gAhD3BwsLqAoBEn8jAEEQayIOJAAjAEEQayIIJAAjAEEQayIBJAAgCEEBNgIEIAhB9AEQoxY2AgggAUEQaiQAIAgoAgghASMAQRBrIg8kACABEM4DIgFBrP4BNgIAIAEQrAIhASMAQTBrIgYkACABQcD6ATYCACABQcj8ATYCBCABQQhqEIgDGiABQZz2ATYCACABQZj5ATYCBCABQRBqEIgDIQogAUEYahCIAxogAUEkahAuGiABQTBqEI8BGiABQQE2AjwgAUFAaxDEDBogAUHQAGoQxAwaIAFB4ABqEMQMGiABQQA2AnAgAUH0AGoQiQMaIAFBADoAjAEgAUIBNwKEASABQZABahCIAyEHIAFBmAFqEIgDIQsgAUGgAWoQiAMhDCABQagBahCIAyEQIAFBsAFqEIgDIREgAUG4AWoQ2AUaIAFBzAFqEI8BIQkgAUHYAWoQiQMaIAFBADYC5AEjAEEQayIDJAAjAEEQayISJAAjAEEQayICJAAgAhDRByIEKAIIIQUjAEEQayINJAAgBRDOAyIFQbzvATYCACAFEKwCIgVBqO4BNgIAIAVBrOsBNgIAIA1BEGokACADQQhqIgUgBBD0BSINEKwCIA0Q9QUgBBDSByACQRBqJAAgEkEQaiQAIAZBCGoiAiAFEJwDGiAFEJYDGiADQRBqJAAgCiACEJUDIAIQlgMaIAFBADYCgAEgAhDVCCAHIAIQlQMgAhCWAxogAhDVCCALIAIQlQMgAhCWAxogAhDVCCAMIAIQlQMgAhCWAxogAhDVCCAQIAIQlQMgAhCWAxogAhDVCCARIAIQlQMgAhCWAxogBkGs+gEpAgA3AyAgBkGk+gEpAgA3AxggBkGc+gEpAgA3AxAgBkEENgIsIAZBlPoBKQIANwMIIAYgAjYCKCAGIAYpAyg3AwAgBigCACEDIAYQ1gghCiMAQSBrIgUkACAJEKkBKAIABEACQCAFQRBqIAkQsgciBCgCCEUgAyAKRnINAANAIAQoAgghByMAQRBrIgEkACAJIAFBDGogAxCkCiILKAIAIQIgAUEAOgALIAVBCGogASACBH8gAgUjAEEQayICJAAgAkEIaiAHQRBqEKYKIAIoAgggAygCADYCACADELUCIQwgAigCDCAMKAIANgIAIAJBEGokACAJIAEoAgwgCyAHELgCIAFBAToACyAHCxCkASABQQtqELoCIAFBEGokACAFLQAMBEAgBBCzBwsgA0EIaiEDIAQoAghFDQEgAyAKRw0ACwsgBCgCACAEKAIIEKAKIAQoAgQiAgRAIAIoAggiAQRAA0AgASICKAIIIgENAAsgBCACNgIECyAEKAIAIAIQoAoLCyADIApHBEADQCMAQSBrIgIkACAJIAJBHGogAxCkCiILKAIAIQEgAkEAOgAbIAFFBEAjAEEQayIBJAAgCRC1AiIHIAJBCGoiBCAHQQEQpAUgAUEIaiAHQQAQvQIQvgIiBygCAEEQaiADEKgKIAcQtQJBAToABCABQRBqJAAgCSACKAIcIAsgBCgCABC4AiAEELkCIQEgAkEBOgAbIAQQqQoLIAVBEGogAkEIaiABEKQBIAJBG2oQugIgAkEgaiQAIANBCGoiAyAKRw0ACwsgBUEgaiQAIAZBMGokACAPQRBqJAAgCBD0BSICEKwCIQEgABCIAyIAIAI2AgQgACABNgIAIAAgAUEIakEAIAEbIAEQmgMgCCgCCCIABEAgCCgCBBogABCQEwsgCEEQaiQAIA5BEGokAAsrAQF/IwBBEGsiAiQAIAJBCGogARCYAyIBIAAQnQMgARCWAxogAkEQaiQAC80BAQR/IwBBEGsiAyQAIwBBEGsiAiQAIwBBEGsiASQAIAJBATYCBCACQcgAEKMWNgIIIAFBEGokACACKAIIIQEjAEEQayIEJAAgARDOAyIBQcj+ATYCACABEKwCEIgDIgFCADcCCCABQRBqELkDGiABQRRqEJsBGiABQSBqEJsBGiABQSxqELkDGiABQTBqEIkDGiAEQRBqJAAgACACEPQFIgAQrAIgABD1BSACKAIIIgAEQCACKAIEGiAAEJATCyACQRBqJAAgA0EQaiQACxAAIAAoAgAgACgCBEEDdGoLpAIBCX8jAEEQayICJAAgAEGY+QE2AgQgAEGc9gE2AgAgABDYCCAAQRhqIgUoAgAhASACQQhqEIgDIQMgASgCACgCKCEEIAIgAykCADcDACABIAIgBBEAACAAQZABaiIDELUGIABBmAFqIgQQtQYgAEGgAWoiBhC1BiAAQagBaiIHELUGIABBsAFqIggQtQYgAEG4AWoiARDZCCAAQdgBahCMAyAAQcwBaiIJIAkQswIQoAogASABQQhqKAIAEJ4KIAEQnwogCBCWAxogBxCWAxogBhCWAxogBBCWAxogAxCWAxogAEH0AGoQuQggAEEwaiIBIAEQswIQnQogAEEkahCuFhogBRCWAxogAEEQahCWAxogAEEIahCPAxogAkEQaiQAIAALngEBAX8gAEEkakGZ3wEQoQIgAEEAOgCMASAAQQA2AnAgAEEBNgI8IABBADYCICAAQQA2AoABIABBMGoiASABELMCEJ0KIAEQqQFBADYCACABIAEQtQI2AgAgARC1AkEANgIAIABB9ABqELkIIAAoAhgiASABKAIAKAI0EQEAIABBuAFqENkIIABBADoAiQEgAEEAOgCLASAAQQE2AoQBC1QBAn8gABCsAigCAARAIAAgAEEIaiIBKAIAEJ4KIAFBADYCACAAELMCIgEEQANAIAAgAhClB0EANgIAIAJBAWoiAiABRw0ACwsgABCsAkEANgIACwsKACAAQQRrENcICw0AIAAQ1wgaIAAQkBMLCgAgAEEEaxDbCAsqAQJ/IwBBEGsiASQAIAFBCGoiAhDrByAAIAIQuQYgAhDxBSABQRBqJAALFgAgACABKAIYIgAgACgCACgCCBEAAAsKACAAIAE2AuQBC4EBAQJ/IwBBIGsiAiQAIAJBGGoiAyABEKEDAkAgAxCUA0UNACACAn8gAEHYAWoiABCiAwsCfyAAEIUCCyACQRhqEKgHNgIQIAICfyAAEIUCCzYCCCACQRBqIAJBCGoQlAFFDQAgACABEKkHCyACQRhqEJYDGiABEI8DGiACQSBqJAALjQEBAn8jAEEgayICJAAgAkEYaiIDIAEQoQMCQCADEJQDRQ0AIAICfyAAQdgBaiIAEKIDCwJ/IAAQhQILIAJBGGoQqAc2AhAgAgJ/IAAQhQILNgIIIAJBEGogAkEIahCyAUUNACAAIAIgAkEQahDHAigCABCsBxoLIAJBGGoQlgMaIAEQjwMaIAJBIGokAAtPAQJ/An8gAUEBayICQQNLBEBB0A8hAkEPDAELIAJBAnQiA0HIgAJqKAIAIQIgA0G4gAJqKAIACyEDIAAgATYCQCAAIAI2AkwgACADNgJIC6ECAQd/IwBBIGsiBCQAIAQgAEEwaiICIAEQrQM2AhggBCACEJMBNgIIIARBGGogBEEIahCgAQRAIAQoAhghBSMAQRBrIgMkACADIAUQpAEoAgAhBiMAQRBrIgUkACAFIAY2AgggAiAFQQhqIgYoAgAiBxDZAyEIIAIQtQIaIAYQsAEQywMgBxCQEyAFQRBqJAAgA0EIaiAIEKQBKAIAGiADQRBqJAALIAAoAhghAyAEQQhqIgIgAUEAEOQIIAMgAiADKAIAKAIwEQAAIAIQrhYaIAAoAhghAyACIAFBAhDkCCADIAIgAygCACgCMBEAACACEK4WGiAAKAIYIQAgAiABQQEQ5AggACACIAAoAgAoAjARAAAgAhCuFhogBEEgaiQACzkBAX8jAEEQayIDJAAgABAuIAEQZkG7oAEQuBYhACADIAIQvxYgACADEGYaIAMQrhYaIANBEGokAAv9AwECfyMAQZABayIGJAAgBiACNgKMASAAKAKQASEHIAZBADYCVCAGQcICNgJQIAZBOGoiAiAAQQhqEJ4DIAYgBkHQAGogAiAEIAUgBkGMAWoQ5wg2AkggByAGQcgAaiIEENoKIQcgBBCbAyACEJYDGgJAIAdBAkYEQCAFEOsFRQ0BIAVBfSAGQdAAakGaiwEQRSIAEPcHIAAQrhYaDAELIABBJGogARBWIAAgAygCADYCICAGQdAAaiICQQRqEC4hBCACQRBqEC4hBSACQSBqEC4hByACQSxqEC4aIAJBADYCACAEQZnfARChAiAFQZnfARChAiACQQA2AhwgB0GZ3wEQoQIgAkEVNgI4IAZByABqIgQQig0gAiAEKAIAKAIMNgIAIAJBBGoiByAGKAJIEIwGEFYgAkEQaiAGKAJIELwFEFYgAiADKAIANgIcIAJBIGogARBWIAIgBigCjAEQ6Ag2AjggAkEsaiADQQhqEFYgBkE4aiIBIAAoAhAiBSACIAMoAgQgBSgCACgCCBEFACAAKAIYIgBB5AAgASAGQSBqEOUFIgMgBkEIahDlBSIFIAAoAgAoAhARBgAgBRDoBRogAxDoBRogARCuFhogBBCWAxogAkEsahCuFhogAkEgahCuFhogAkEQahCuFhogBxCuFhoLIAZBkAFqJAALaQEBfyMAQTBrIgYkAAJAIARFBEAgACADIAZBGGoQ5QUiAiAGEOUFIgMgACgCACgCIBEFACADEOgFGiACEOgFGiABEOsFRQ0BIAEQ7gUMAQsgAhDrBUUNACACIAQgBRD3BwsgBkEwaiQAC/kBAQZ/IwBBEGsiBSQAIAUgBUEIaiABEJwDKQIANwMAIwBBEGsiCCQAIAhBCGogBRCfAyEJIwBBIGsiASQAIAFBADYCECABQRBqELkDIQYgAUHPAjYCBCMAQRBrIgokAEHQABCjFiABKAIEEMEDIgdBzP0BNgIAIAcgACkCADcDCCAHQRBqIAkgAiADIAQQigogCkEIaiAHEJkDKAIAIQAgCkEQaiQAIAEgADYCCCAGIAFBCGoiABC7AyAAEIcKIAFBGGogBhC9AyEAIAYQmwMgACgCACEAIAFBIGokACAJEI8DGiAFEJYDGiAIQRBqJAAgBUEQaiQAIAALCQBBFUEUIAAbC7YBAQN/IwBB0ABrIgIkACAAKAKQASEEIAJBADYCRCACQcMCNgJAIAJBOGoiAyAAQQhqEJ4DIAIgAkFAayADIAEQ6wg2AkggBCACQcgAaiIEEOQKIQUgBBCbAyADEJYDGgJAIAVBAkYEQCABEOsFRQ0BIAEQ7gUMAQsgACgCGCIAQeUAIAJBIGoQ5QUiASACQQhqEOUFIgMgACgCACgCDBEFACADEOgFGiABEOgFGgsgAkHQAGokAAsPACABEOsFBEAgARDuBQsL9AEBBn8jAEEQayIDJAAgAyADQQhqIAEQnAMpAgA3AwAjAEEQayIGJAAgBkEIaiADEJ8DIQcjAEEgayIBJAAgAUEANgIQIAFBEGoQuQMhBCABQdACNgIEIwBBEGsiCCQAQTAQoxYgASgCBBDBAyIFQdz9ATYCACAFIAApAgA3AwggBUEQaiAHIAIQjwogCEEIaiAFEJkDKAIAIQAgCEEQaiQAIAEgADYCCCAEIAFBCGoiABC7AyAAEI4KIAFBGGogBBC9AyEAIAQQmwMgACgCACEAIAFBIGokACAHEI8DGiADEJYDGiAGQRBqJAAgA0EQaiQAIAAL0QEBA38jAEHQAGsiBCQAIAQgATYCTCAAKAKwASEGIARBADYCNCAEQcQCNgIwIARBQGsiBSAAQQhqEJ4DIAQgBEEwaiIBIAUgAiADIARBzABqEOcINgJIIAYgBEHIAGoiAhDaChogAhCbAyAFEJYDGiAEKAJMEOgIIQIgASAAKAIQIgMgAiADKAIAKAIUEQMAIAAoAhgiAEHoACABIARBGGoQ5QUiAiAEEOUFIgMgACgCACgCEBEGACADEOgFGiACEOgFGiABEK4WGiAEQdAAaiQAC74BAQN/IwBBwAFrIgYkACAGQRhqQauZAUGtAkEAIAZBCGpBmd8BEEUiBxD0AyIIQYMIEGpBgh4QakGDCBBqQYizARBqQa2CAUHmLiADGxBqQc+rARBqIAQQzRNBi7QBEGogBRCfAkGSogEQahogCBD2AyAHEK4WGgJAIARFBEAgACADNgKEASABEOsFBEAgARDuBQsgAEEAEO4IIABBABDvCAwBCyACEOsFRQ0AIAIgBCAFEPcHCyAGQcABaiQAC+EBAQV/IwBB0AFrIgIkACACQShqQauZAUGQC0EAIAJBGGpBmd8BEEUiBBD0AyIFQYMIEGpBkSUQakGDCBBqQYizARBqQa2CAUHmLiAAKAKEARsQakGerQEQaiEGIAJBCGoiAyABEMgMIAYgAxCfAkGCuwEQaiAALQCIARDLE0HMugEQaiAALQCJARDLE0GcuwEQaiAALQCMARDLE0GSogEQahogAxCuFhogBRD2AyAEEK4WGiAAQQAgASAAKAKEAQR/QQAFIAAtAIkBRSAALQCIAUEAR3ELEPAIIAJB0AFqJAALtgQBB38jAEHQAWsiBiQAIAZBKGpBq5kBQZ4LQQAgBkEYakGZ3wEQRSIFEPQDIgRBgwgQakHwJBBqQYMIEGpBiLMBEGpBrYIBQeYuIAAoAoQBGxBqQZ6tARBqIQMgBkEIaiICIAEQyAwgAyACEJ8CQeS6ARBqIAAtAIoBEMsTQbS6ARBqIAAtAIsBEMsTQZKiARBqGiACEK4WGiAEEPYDIAUQrhYaIAAoAoQBBH9BAAUgAC0AiwFFIAAtAIoBQQBHcQshBSMAQdABayICJAAgAkEoakGrmQFB0AtBACACQRhqQZnfARBFIgMQ9AMiB0H40wEQaiEIIAJBCGoiBCABEMgMIAggBBCfAkHn2wEQaiAAKAIgEM4TQffbARBqIABBJGoQnwJBs9UBEGogBRDLE0HM1QEQaiAALQCAARDLE0GSogEQahogBBCuFhogBxD2AyADEK4WGiAFIAAtAIABRwRAIAIgAEHYAWoiBBCiAzYCCCACIAQQhQI2AiggAkEIaiACQShqELIBBEADQCACQShqIgMgAkEIahCjAxChAwJAIAMQlAMEQCACKAIoIQMgAkEYaiIHEIoNIAMgBygCABCMBiAFIAEgAygCACgCLBEFACAHEJYDGiACQQhqEKQDDAELIAIgBCACIAJBCGoQxwIoAgAQrAc2AggLIAJBKGoiAxCWAxogAiAEEIUCNgIoIAJBCGogAxCyAQ0ACwsgACAFOgCAAQsgAkHQAWokACAGQdABaiQAC/kGAQZ/IwBB8AFrIgQkACAEQcgAakGrmQFBrQtBACAEQThqQZnfARBFIgcQ9AMiCEHl1gEQaiEGIARBKGoiBSABEMcMIAYgBRCfAkGb1AEQaiEJIARBGGoiBiACEMgMIAkgBhCfAkHl1QEQaiADEMsTQc+uARBqIAAtAIEBEMsTQf7VARBqIAAtAIIBEMsTQZ3WARBqIAAtAIMBEMsTGiAGEK4WGiAFEK4WGiAIEPYDIAcQrhYaAkACQAJAAkACQAJAIAEOAwACAQULIAAtAIEBIANGDQQgBCAAQdgBaiIBEKIDNgIoIAQgARCFAjYCSCAEQShqIARByABqELIBBEADQCAEQcgAaiIFIARBKGoQowMQoQMCQCAFEJQDBEAgBCgCSCEFIARBOGoiBhCKDSAFIAYoAgAQjAZBACADIAIgBSgCACgCKBEGACAGEJYDGiAEQShqEKQDDAELIAQgASAEQRBqIARBKGoQxwIoAgAQrAc2AigLIARByABqIgUQlgMaIAQgARCFAjYCSCAEQShqIAUQsgENAAsLIAAgAzoAgQEMBAsgAC0AggEgA0YNAyAEIABB2AFqIgUQogM2AiggBCAFEIUCNgJIIARBKGogBEHIAGoQsgFFDQIDQCAEQcgAaiIGIARBKGoQowMQoQMCQCAGEJQDBEAgBCgCSCEGIARBOGoiBxCKDSAGIAcoAgAQjAZBAiADIAIgBigCACgCKBEGACAHEJYDGiAEQShqEKQDDAELIAQgBSAEQQhqIARBKGoQxwIoAgAQrAc2AigLIARByABqIgYQlgMaIAQgBRCFAjYCSCAEQShqIAYQsgENAAsgACADOgCCASABQQFHDQMgAC0AgwEgA0cNAQwDCyAALQCDASADRg0CCyAEIABB2AFqIgEQogM2AiggBCABEIUCNgJIIARBKGogBEHIAGoQsgEEQANAIARByABqIgUgBEEoahCjAxChAwJAIAUQlAMEQCAEKAJIIQUgBEE4aiIGEIoNIAUgBigCABCMBkEBIAMgAiAFKAIAKAIoEQYAIAYQlgMaIARBKGoQpAMMAQsgBCABIAQgBEEoahDHAigCABCsBzYCKAsgBEHIAGoiBRCWAxogBCABEIUCNgJIIARBKGogBRCyAQ0ACwsgACADOgCDAQwBCyAAIAM6AIIBCyAEQfABaiQAC6EDAQR/IwBBoAJrIgUkAAJAIAFBAUYEQCAFQfgAakGrmQFBvwJBAiAFQegAakGZ3wEQRSIBEPQDIgJBl7gBEGogACgCIBDOE0HauAEQaiAAQSRqEJ8CQY7XARBqIQMgBUHYAGoiAEEBEMcMIAMgABCfAkGSogEQahogABCuFhogAhD2AyABEK4WGiAEEOsFRQ0BIARBfyAFQfgAakHXzgAQRSIAEPcHIAAQrhYaDAELIAVB+ABqIAEQ8gggAEEYaiIGKAIAIgEgBUHIAGogAhC2ASIHIAEoAgAoAjgRBAAhCCAHEK4WGiAGKAIAIQECQCAIBEAgASAFQfgAaiAFQThqIAIQtgEiAiABKAIAKAIsEQMAIAIQrhYaDAELIAEgBUH4AGogASgCACgCMBEAAAsgBUHoAGoiASAAKAIQIgAgBUH4AGoiAiAAKAIAKAIQEQMAIAYoAgAiAEHmACABIAVBIGogAxDkBSIDIAVBCGogBBDkBSIEIAAoAgAoAhARBgAgBBDoBRogAxDoBRogARCuFhogAhCuFhoLIAVBoAJqJAALMgEBfyMAQRBrIgIkACAAIAJB3TAQRSIAQQAgASABQQJGGxDkCCAAEK4WGiACQRBqJAAL+wEBBX8jAEHwAGsiBCQAIARB4ABqQQAQ8gggAEEYaiIGKAIAIgUgBEHQAGogARC2ASIHIAUoAgAoAjgRBAAhCCAHEK4WGiAGKAIAIQUCQCAIBEAgBSAEQeAAaiAEQUBrIAEQtgEiASAFKAIAKAIsEQMAIAEQrhYaDAELIAUgBEHgAGogBSgCACgCMBEAAAsgBEEwaiIBIAAoAhAiACAEQeAAaiIFIAAoAgAoAhARAwAgBigCACIAQeYAIAEgBEEYaiACEOQFIgIgBCADEOQFIgMgACgCACgCEBEGACADEOgFGiACEOgFGiABEK4WGiAFEK4WGiAEQfAAaiQAC90CAQR/IwBB8ABrIgYkACAGQeAAaiIIEIoNIAEgCCgCABCMBhCKBSEHIAgQlgMaAkAgBwRAIAUQ6wVFDQEgBUF/IAZB4ABqQefrABBFIgAQ9wcgABCuFhoMAQsgAhD1CCEIIAZB4ABqIAFBACACIAJBAkYbEOQIIABBGGoiCSgCACICIAZB0ABqIAMQtgEiByACKAIAKAI4EQQAIQIgBxCuFhogCSgCACEHAkAgAgRAIAcgBkHgAGogBkFAayADELYBIgIgBygCACgCLBEDACACEK4WGgwBCyAHIAZB4ABqIAcoAgAoAjARAAALIAZBMGoiByAAKAIQIgAgASAIIAZB4ABqIgMgACgCACgCRBEGACAJKAIAIgJB5wAgByAGQRhqIAQQ5AUiASAGIAUQ5AUiACACKAIAKAIQEQYAIAAQ6AUaIAEQ6AUaIAcQrhYaIAMQrhYaCyAGQfAAaiQACxIAQQEgAEEBRkEBdCAAQQJGGwtbAQF/IwBBMGsiBCQAIAEgACgCQEcEQCAAIAEQ4ggLIABBACAAQUBrIARBGGogAhDkBSIBIAQgAxDkBSICIAAoAgAoAjgRBgAgAhDoBRogARDoBRogBEEwaiQACw0AIAAgAUFAaxDFDBoLRAEBfyMAQTBrIgQkACAAIAEgBEEYaiACEOQFIgEgBCADEOQFIgIgACgCACgCaBEFACACEOgFGiABEOgFGiAEQTBqJAALBwAgACgCPAvsCQENfyMAQfACayIIJAAgCEHIAWoiEEGrmQFBlQNBACAIQZABaiIPQZnfARBFIgsQ9AMiDEGDCBBqQd8REGpBgwgQakHEsQEQaiEFIAhBqAFqIgkgARDHDCAFIAkQnwJBoKwBEGohDSMAQZABayIFJAAgBUFAaxByIQYgBUHoxwI2AgAgBkGQyAI2AgAgBUH8xwI2AgggBUGgyAIgBUEMaiIREHMiB0EIaiIKQajIAigCACIONgIAIAogDkEMaygCAGpBrMgCKAIANgIAIAdBnMgCKAIAIg42AgAgByAOQQxrKAIAakGwyAIoAgA2AgAgCkG0yAIoAgA2AgAgB0HoxwI2AgAgBkGQyAI2AgAgBUH8xwI2AgggEUEYEKwBIAdBCGoiBkGorQEQaiACKAIAEM0TQZKiARBqGiAGQZmsARBqIAIoAggQzRNBkqIBEGoaIAZB2LABEGogAigCDBDNE0GSogEQahogBkGrtAEQaiACKAIEEM0TQZKiARBqGiAIQbgBaiIGIAdBDGoQ5BMgBxD4ChogBUGQAWokACANIAYQnwJBkqIBEGoaIAYQrhYaIAkQrhYaIAwQ9gMgCxCuFhogCSACEMUMIQIjAEHAAWsiBSQAIwBBEGsiCyQAIwBBEGsiByQAIABBzAFqIgkQswIhBiAJELUCIQojAEEQayIMJAAgBgRAA0AgCiAGIAkQqQEgBkEQaiACEKUKIg0bIQogBkEEaiAGIA0bKAIAIgYNAAsLIAxBCGogChCkASgCACEGIAxBEGokACAHIAY2AgggByAJEKUBNgIAAn8CQCAHQQhqIAcQsgFFDQAgCRCpASACIAdBCGoQsAEQpQoNACAHKAIIDAELIAkQpQELIQYgB0EQaiQAIAtBCGogBhCkASgCACEHIAtBEGokACAFIAc2ArgBIAUgCRCTATYCEAJAIAVBuAFqIAVBEGoQswENACACKAIMIAVBuAFqELABKAIETQ0AIAVBEGpBq5kBQaIMQQEgBUGZ3wEQRSIHEPQDIglBgwgQakGc7AAQakGDCBBqQbawARBqIAIoAgwQzRNBgK4BEGogBUG4AWoQsAEoAgQQzhNBkqIBEGoaIAkQ9gMgBxCuFhogAiAFQbgBahCwASgCBDYCDAsgBUHAAWokACAQENwHIQUgDyACEPsIIAUgCCkAnQE3AA0gBSAIKQOYATcCCCAFIAgpA5ABNwIAIA8gACgCECIHIAUgBygCACgCGBEDAAJAAkACQAJAAkACQCABDgMAAQIDCyAAIAIpAgA3AkAgACACKQIINwJIIAAoAhgiAEHtACAIQZABaiAIQfgAaiADEOQFIgEgCEHgAGogBBDkBSICIAAoAgAoAhARBgAgAhDoBRogARDoBRoMAwsgACACKQIANwJQIAAgAikCCDcCWCAAKAIYIgBBhAEgCEGQAWogCEHIAGogAxDkBSIBIAhBMGogBBDkBSICIAAoAgAoAhARBgAgAhDoBRogARDoBRoMAgsgACACKQIANwJgIAAgAikCCDcCaCAAQQEgCEEYaiADEOQFIgEgCCAEEOQFIgIgACgCACgCtAERBQAgAhDoBRogARDoBRoMAQsgAxDqBUUNASADEOsFRQ0AIAMQ7gULIAhBkAFqEK4WGiAIQfACaiQADwtBvCtBq5kBQa0DQd8REAAAC0kBAX8gABDcByIAIAEoAgBBAmsiAkEBdEHuAGpB7AAgAkEDSRs2AgAgACABKAIINgIIIAAgASgCDDYCDCAAIAEoAgRBAEc2AgQLzwEBAX8jAEGQAWsiBSQAAkACQAJAAkACQCABDgMAAQIECyAAIAI2AkQgAEEAIABBQGsgBUH4AGogAxDkBSIBIAVB4ABqIAQQ5AUiAiAAKAIAKAI4EQYADAILIAAgAjYCVCAAQQEgAEHQAGogBUHIAGogAxDkBSIBIAVBMGogBBDkBSICIAAoAgAoAjgRBgAMAQsgACACNgJkIABBASAFQRhqEOUFIgEgBRDlBSICIAAoAgAoArQBEQUACyACEOgFGiABEOgFGgsgBUGQAWokAAttAQN/IwBBQGoiBCQAIARBMGoiBSAAKAIQIgYgASAGKAIAKAJoEQMAIAAoAhgiAEGFASAFIARBGGogAhDkBSIBIAQgAxDkBSICIAAoAgAoAhARBgAgAhDoBRogARDoBRogBRCuFhogBEFAayQAC48EAQp/IwBBgAFrIgUkACAFIAI2AnwgACgCmAEhDiAFQQA2AnQgBUHFAjYCcCAFQeAAaiIGIABBCGoQngMjAEEQayIHJAAgByAHQQhqIAYQnAMpAgA3AwAjAEEQayILJAAgC0EIaiAHEJ8DIQwjAEEgayICJAAgAkEANgIQIAJBEGoQuQMhCCACQdECNgIEIwBBEGsiDSQAQdAAEKMWIAIoAgQQwQMiCUHs/QE2AgAgCSAFQfAAaiIKKQIANwMIIAlBEGogDCADIAQgBUH8AGoQigogDUEIaiAJEJkDKAIAIQMgDUEQaiQAIAIgAzYCCCAIIAJBCGoiAxC7AyADEIYKIAJBGGogCBC9AyEDIAgQmwMgAygCACEDIAJBIGokACAMEI8DGiAHEJYDGiALQRBqJAAgB0EQaiQAIAUgAzYCGCAOIAVBGGoiAhDaChogAhCbAyAGEJYDGiAAIAUoAnw2AnAgCkEAEPIIIAYgACgCECIDIAEgCiADKAIAKAIMEQUAIAAoAhghASAFQcgAahDlBSEDIAVBADYCHCAFQcYCNgIYIAUgADYCFCAFQSBqIAIgBUEUahCBCSAFIAUoAig2AhAgBSAFKQMgNwMIIAFB/wAgBiADIAVBMGogBUEIahCCCSIAIAEoAgAoAhARBgAgABDoBRogAxDoBRogBhCuFhogChCuFhogBUGAAWokAAvHAQEFfyMAQdABayIGJAAgBkEoakGrmQFB6QNBACAGQRhqQZnfARBFIggQ9AMiCUGDCBBqQcCfARBqQYMIEGpBjK0BEGohCiAGQQhqIgcgAxDIDCAKIAcQnwJBz6sBEGogBBDNE0GLtAEQaiAFEJ8CQZKiARBqGiAHEK4WGiAJEPYDIAgQrhYaAkAgBEUEQCAAQQE6AIgBIAAgAxDuCCABEOsFRQ0BIAEQ7gUMAQsgAhDrBUUNACACIAQgBRD3BwsgBkHQAWokAAsRACAAKAKYAUEAIAEgAhDmCgsXACAAIAEpAgA3AgAgAEEIaiACEMcCGgs7AQJ/IwBBEGsiAyQAIwBBEGsiAiQAIABBADYCECAAIAAgASACEKoKNgIQIAJBEGokACADQRBqJAAgAAvcBAEEfyMAQZACayIDJAAgA0HoAGpBq5kBQfcDQQAgA0HYAGpBmd8BEEUiBRD0AyIGQYMIEGpB0p8BEGpBgwgQakGMrQEQaiEHIANByABqIgQgARDIDCAHIAQQnwJBkqIBEGoaIAQQrhYaIAYQ9gMgBRCuFhogAEEAOgCIASAAKAIYIgRBgAEgA0EwahDlBSIFIANBGGoQ5QUiBiAEKAIAKAIMEQUAIAYQ6AUaIAUQ6AUaIAAoApgBEOoKIAAgARDuCCACEOsFBEAgAhDuBQsgAyAAQdgBaiIAEKIDNgJIIAMgABCFAjYCaCADQcgAaiADQegAahCyAQRAA0AgA0HYAGoiAiADQcgAahCjAxChAwJAIAIQlAMEQCADKAJYIQIgA0HoAGoiBCABEMgMIAJBAEEAIAQgAigCACgCJBEFACAEEK4WGiADQcgAahCkAwwBCyADIAAgA0EQaiADQcgAahDHAigCABCsBzYCSAsgA0HYAGoQlgMaIAMgABCFAjYCaCADQcgAaiADQegAahCyAQ0ACwsgAyAAEKIDNgJIIAMgABCFAjYCaCADQcgAaiADQegAahCyAQRAA0AgA0HYAGoiAiADQcgAahCjAxChAwJAIAIQlAMEQCADKAJYIQIgA0HoAGoiBCABEMgMIAJBAkEAIAQgAigCACgCJBEFACAEEK4WGiADQcgAahCkAwwBCyADIAAgA0EIaiADQcgAahDHAigCABCsBzYCSAsgA0HYAGoQlgMaIAMgABCFAjYCaCADQcgAaiADQegAahCyAQ0ACwsgA0GQAmokAAsUACAAKAIYIgAgACgCACgCJBECAAtrAQN/IwBBQGoiAyQAIANBMGoiBCAAKAIQIgUgASACIAUoAgAoAlARBQAgACgCGCIAQfcAIAQgA0EYahDlBSIBIAMQ5QUiAiAAKAIAKAIQEQYAIAIQ6AUaIAEQ6AUaIAQQrhYaIANBQGskAAuyAgEFfyMAQfAAayIEJAAgAEGgAWoiBygCACEIIARBADYCVCAEQccCNgJQIARB4ABqIgUgAEEIahCeAyAEIARB0ABqIgYgBSACIAMQiAk2AmggCCAEQegAaiICENoKGiACEJsDIAUQlgMaIAAgATYCPCAGIAAoAhAiA0ECIAFBAWogAUECSxsgAygCACgCHBEDACAAKAIYIQEgBEE4ahDlBSEDIARBADYCZCAEQcgCNgJgIAQgADYCaCAEQRBqIAUgAhCBCSAEIAQoAhg2AgggBCAEKQMQNwMAIAFB6QAgBiADIARBIGogBBCCCSICIAEoAgAoAhARBgAgAhDoBRogAxDoBRogBygCACgCCEEDRgRAIAAgACgCACgCwAIRAQALIARB0ABqEK4WGiAEQfAAaiQAC6YBAQN/IwBBwAFrIgUkACAFQRhqQauZAUGmBEEAIAVBCGpBmd8BEEUiBhD0AyIHQYMIEGpB8/QAEGpBgwgQakHGqwEQaiADEM0TQYu0ARBqIAQQnwJBkqIBEGoaIAcQ9gMgBhCuFhoCQCADRQRAIABBAToAigEgAEEAEO8IIAEQ6wVFDQEgARDuBQwBCyACEOsFRQ0AIAIgAyAEEPcHCyAFQcABaiQAC/cBAQZ/IwBBEGsiBCQAIAQgBEEIaiABEJwDKQIANwMAIwBBEGsiByQAIAdBCGogBBCfAyEIIwBBIGsiASQAIAFBADYCECABQRBqELkDIQUgAUHSAjYCBCMAQRBrIgkkAEHIABCjFiABKAIEEMEDIgZB/P0BNgIAIAYgACkCADcDCCAGQRBqIAggAiADEJMKIAlBCGogBhCZAygCACEAIAlBEGokACABIAA2AgggBSABQQhqIgAQuwMgABCHCiABQRhqIAUQvQMhACAFEJsDIAAoAgAhACABQSBqJAAgCBCPAxogBBCWAxogB0EQaiQAIARBEGokACAACxEAIAAoAqABQQAgASACEOYKC9UBAQR/IwBBgAJrIgMkACADQdgAakGrmQFBswRBACADQcgAakGZ3wEQRSIFEPQDIgZBgwgQakGJ9QAQakGDCBBqQYytARBqIQcgA0E4aiIEIAEQyAwgByAEEJ8CQZKiARBqGiAEEK4WGiAGEPYDIAUQrhYaIABBADoAigEgACgCGCIEQeoAIANBIGoQ5QUiBSADQQhqEOUFIgYgBCgCACgCDBEFACAGEOgFGiAFEOgFGiAAKAKgARDqCiAAIAEQ7wggAhDrBQRAIAIQ7gULIANBgAJqJAALeQECfyMAQeAAayICJAAgACgCGCEAAkAgAQRAIABBjAEgAkHIAGoQ5QUiASACQTBqEOUFIgMgACgCACgCDBEFAAwBCyAAQY0BIAJBGGoQ5QUiASACEOUFIgMgACgCACgCDBEFAAsgAxDoBRogARDoBRogAkHgAGokAAv/BwEKfyMAQcABayIGJAACQCAAKAKoASgCCEECRgRAIAZBGGpBq5kBQckEQQAgBkEIakGZ3wEQRSIAEPQDIgFBgwgQakGA4wAQakGDCBBqQYwfEGoaIAEQ9gMgABCuFhogBBDrBUUNASAEEO4FDAELIAAoAqgBKAIIQQFGBEAgBkEYakGrmQFBzwRBACAGQQhqQZnfARBFIgAQ9AMiAUGDCBBqQYDjABBqQYMIEGpBuB8QahogARD2AyAAEK4WGiAFEOsFRQ0BIAVBfSAGQRhqQcofEEUiABD3ByAAEK4WGgwBCyAAKAKoASEIIAZBADYCHCAGQckCNgIYIAZBCGoiByAAQQhqEJ4DIAYgBkEYaiAHIAQgBRCICTYCACAIIAYQ2gohBCAGEJsDIAcQlgMaIARBAkYEQCAGQRhqIgFBq5kBQdoEQQIgBkEIakGZ3wEQRSICEPQDIgNBgwgQakGA4wAQakGDCBBqQYCsARBqIAAoAqgBKAIIEM4TGiADEPYDIAIQrhYaIAAoAqgBQQBBfSABQd/iABBFIgAQ5gogABCuFhoMAQsjAEHAAWsiBCQAIAAoAhgiBSACIAUoAgAoAkgRBAAEQCAAIAIgACgCACgCjAERAAALIARBqAFqENwHIgVBAToAFCAFQoqAgIDAuwE3AgggBULyADcCACAEQZgBakEBEPIIIAAoAhgiAiAEQYgBaiABELYBIgcgAigCACgCOBEEACEIIAcQrhYaIAAoAhghAgJAIAgEQCACIARBmAFqIARB+ABqIAEQtgEiASACKAIAKAIsEQMAIAEQrhYaDAELIAIgBEGYAWogAigCACgCMBEAAAsgBEHoAGoiByAAKAIQIgEgBEGYAWoiDEECIAMgBSABKAIAKAJYEQgAIAAoAhghAyAEQdAAahDlBSEFIARBADYCJCAEQcoCNgIgIARBGGoiCCAAQQhqEJ4DIARBKGoiACAEKQIgNwIAIABBCGogCBDGAxogBCAEKQMwNwMQIAQgBCkDKDcDCCMAQRBrIg0kACMAQSBrIgAkACAEQThqIgFBADYCECAAQQhqQRQQoxYgACAAQRhqQQEQrwIQvgIiCygCABCkCCIJQYz/ATYCACAEQQhqIg4QqgMhCiAAEKoDIQ8jAEEQayICJAAgAiAKNgIIIAlBBGoiCSACKAIIIgopAgA3AgAgCUEIaiAKQQhqEMIDIAJBEGokACAJIA8QrgogASALELkCNgIQIAsQ6gMgAEEgaiQAIA1BEGokACAOEI8JIANB8gAgByAFIAEgAygCACgCEBEGACABEOcFGiAIEJYDGiAFEOcFGiAHEK4WGiAMEK4WGiAEQcABaiQACyAGQcABaiQACzIAIANFBEAgARDrBQRAIAEQ7gULIABBAUEAQQEQ8AgPCyACEOsFBEAgAiADIAQQ9wcLCxIAIAAoAqgBIAFFIAEgAhDmCgsKACAAQQhqELgKC+YDAQl/IwBBIGsiAyQAIAMgATYCHCAAKAKoASELIANBADYCFCADQcsCNgIQIANBCGoiByAAQQhqEJ4DIwBBEGsiBCQAIAQgBEEIaiAHEJwDKQIANwMAIwBBEGsiCCQAIAhBCGogBBCfAyEJIwBBIGsiASQAIAFBADYCECABQRBqELkDIQYgAUHTAjYCBCMAQRBrIgokAEE4EKMWIAEoAgQQwQMiBUGM/gE2AgAgBSADKQIQNwMIIAVBEGogCRDGAyIMQQhqIANBHGoQxwIaIAxBEGogAhDECBogCkEIaiAFEJkDKAIAIQUgCkEQaiQAIAEgBTYCCCAGIAFBCGoiBRC7AyAFEJUKIAFBGGogBhC9AyEFIAYQmwMgBSgCACEGIAFBIGokACAJEI8DGiAEEJYDGiAIQRBqJAAgBEEQaiQAIAMgBjYCGCALIANBGGoiARDkCiEEIAEQmwMgBxCWAxoCQCAEQQJGBEAgAhDrBUUNASACEO4FDAELIwBBQGoiASQAIAAoAhgiAkHzACABQShqEOUFIgQgAUEQahDlBSIGIAIoAgAoAgwRBQAgBhDnBRogBBDnBRogAUEBEPIIIAAoAhgiACABIAAoAgAoAjARAAAgARCuFhogAUFAayQACyADQSBqJAAL6AEBA38jAEEwayIDJAAgAEEBIAFBABDwCCADIABB2AFqIgAQogM2AiggAyAAEIUCNgIQIANBKGogA0EQahCyAQRAA0AgA0EgaiIEIANBKGoQowMQoQMCQCAEEJQDBEAgAygCICEEIANBEGoiBSABEMgMIARBAUEAIAUgBCgCACgCJBEFACAFEK4WGiADQShqEKQDDAELIAMgACADQQhqIANBKGoQxwIoAgAQrAc2AigLIANBIGoQlgMaIAMgABCFAjYCECADQShqIANBEGoQsgENAAsLIAIQ6wUEQCACEO4FCyADQTBqJAALjgEBBn8jAEEwayIBJAAgAEH0AGoiBBC5CCABQShqEIgDIgJCoIGAgOANNwIAIAFBIGoQiAMiBULQgICAgAo3AgAgAUEQaiIDIAAoAhAiBiACIAUgBigCACgCXBEFACABIAAoAhgiAiADIAIoAgAoAkQRAwAgACABEJMJIAEQuQggAxCuFhogAUEwaiQAIAQLgAMBBn8jAEHgAGsiAiQAIABB9ABqIgQQuQggAiABEKIDNgJYIAIgARCFAjYCACACQdgAaiACELIBBEAgAkE0aiEFIAJBHGohBiACQRBqIQcDQCACEC4iAEEQahAuGiAAQRxqEN4HIABBNGoQ3gcgAEEANgJQIABBADoATCAAIAJB2ABqIgMQowMQViACIAMQowMoAgw2AgwgByACQdgAahCjA0EQahBWIAIgAkHYAGoQowMtAEw6AEwgBiACQdgAahCjA0EcahBWIAIgAkHYAGoQowMoAig2AiggAiACQdgAahCjAygCLDYCLCACIAJB2ABqEKMDKAIwNgIwIAUgAkHYAGoQowNBNGoQViACIAJB2ABqEKMDQUBrKAIANgJAIAIgAkHYAGoQowMoAkQ2AkQgAiACQdgAahCjAygCSDYCSCACIAJB2ABqEKMDKAJQNgJQIAQgABC4CCAAEOAHIAMQpAMgAiABEIUCNgIAIAMgAhCyAQ0ACwsgAkHgAGokAAuZAgEGfyMAQYABayICJAAgAEH0AGoQuQggAkH4AGoQiAMiA0KggYCA4A03AgAgAkHwAGoQiAMiBELQgICAgAo3AgAgAiAANgJQIAJB2ABqIAEQ5AUaIAJBQGsiBSAAKAIQIgEgAyAEIAEoAgAoAlwRBQAgACgCGCIGIAUCfyACQQhqIAJB0ABqIgcQhQghAyMAQSBrIgAkACACQShqIgFBADYCECAAQQhqQSgQoxYgACAAQRhqEJUIEL4CIgQoAgAQuQoiCEGw/wE2AgAgCEEIaiADIAAQrgggASAEELkCNgIQIAQQlgggAEEgaiQAIAELIAYoAgAoAkARAwAgARDoBRogAxCGCCAFEK4WGiAHEIYIIAJBgAFqJAALnAIBBX8jAEHwAGsiAiQAIAJB4ABqEC4hBSACIABB9ABqIgMQogM2AlggAiADEIUCNgJIQQEhBAJAIAJB2ABqIAJByABqELIBRQ0AA0AgAkHYAGoQowMgARCKBQRAIAJB2ABqEKMDKAIMIQQgBSACQdgAahCjA0EQahBWDAILIAJB2ABqIgYQpAMgAiADEIUCNgJIIAYgAkHIAGoQsgENAAsLIAJByABqIgMgACgCECIGIAJBOGogARC2ASIBIAQgBSAGKAIAKAJgEQYAIAEQrhYaIAAoAhgiAEHvACADIAJBIGoQ5QUiASACQQhqEOUFIgQgACgCACgCEBEGACAEEOgFGiABEOgFGiADEK4WGiAFEK4WGiACQfAAaiQAC7ACAQZ/IwBBoAJrIgMkACADQfgAaiIGQauZAUHsBUEAIANB6ABqIgdBmd8BEEUiBBD0AyIFQYMIEGpBn88AEGpBgwgQakHxoQEQahogBRD2AyAEEK4WGiAAQQA2AnAgBiAAQRBqIgQoAgAiBUEAQQAgBSgCACgCMBEFACAAQRhqIgUoAgAiCEHrACAGIANB0ABqIAEQ5AUiASADQThqIAIQ5AUiAiAIKAIAKAIQEQYAIAIQ6AUaIAEQ6AUaIAcgBCgCACIBQQFBACABKAIAKAIwEQUAIAUoAgAiAUHrACAHIANBIGoQ5QUiAiADQQhqEOUFIgQgASgCACgCEBEGACAEEOgFGiACEOgFGiAAQQA6AIkBIAAgACgCcBDuCCAHEK4WGiAGEK4WGiADQaACaiQAC6YCAQZ/IwBBoAJrIgMkACADQfgAaiIGQauZAUH8BUEAIANB6ABqIgdBmd8BEEUiBBD0AyIFQYMIEGpBuc8AEGpBgwgQakHVoQEQahogBRD2AyAEEK4WGiAGIABBEGoiBCgCACIFQQBBASAFKAIAKAIwEQUAIABBGGoiBSgCACIIQesAIAYgA0HQAGogARDkBSIBIANBOGogAhDkBSICIAgoAgAoAhARBgAgAhDoBRogARDoBRogByAEKAIAIgFBAUEBIAEoAgAoAjARBQAgBSgCACIBQesAIAcgA0EgahDlBSICIANBCGoQ5QUiBCABKAIAKAIQEQYAIAQQ6AUaIAIQ6AUaIABBAToAiQEgAEEAEO4IIAcQrhYaIAYQrhYaIANBoAJqJAAL+gEBBX8jAEGAAmsiBCQAIARB2ABqIgZBq5kBQY0GQQAgBEHIAGpBmd8BEEUiBxD0AyIIQYMIEGpBvjcQakGDCBBqQd3WARBqIAEQyxNBm9QBEGohCSAEQThqIgUgAhDIDCAJIAUQnwJBkqIBEGoaIAUQrhYaIAgQ9gMgBxCuFhogBiAAKAIQIgUgASAFKAIAKAIgEQMAIAAoAhgiBUHsACAGIARBIGoQ5QUiBiAEQQhqEOUFIgcgBSgCACgCEBEGACAHEOgFGiAGEOgFGiAAIAE6AIsBIAAgAhDvCCADEOsFBEAgAxDuBQsgBEHYAGoQrhYaIARBgAJqJAALawEDfyMAQUBqIgMkACADQTBqIgQgACgCECIFIAEgAiAFKAIAKAI8EQUAIAAoAhgiAEGPASAEIANBGGoQ5QUiASADEOUFIgIgACgCACgCEBEGACACEOgFGiABEOgFGiAEEK4WGiADQUBrJAAL9QkBDX8jAEFAaiIGJAAgBiACNgI8IAZBMGoiByABIAIQmwkgBkEQaiICENUIIAZBGGoiCCAHIAIQnAkgBkEIaiIJIABBuAFqIg4gCBCdCSAIEJ4JIAIQlgMaIAIgDiAHEJ8JEJgDIg4oAgAhCyAGQQA2AhwgBkHMAjYCGCAJIABBCGoQngMjAEEQayIHJAAgByAHQQhqIAkQnAMpAgA3AwAjAEEQayIPJAAgD0EIaiAHEJ8DIRAjAEEgayICJAAgAkEANgIQIAJBEGoQuQMhDCACQdQCNgIEIwBBEGsiCiQAQfAAEKMWIAIoAgQQwQMiDUGc/gE2AgAgDSAIKQIANwMIIA1BEGogEBDGAyIIQQhqIAEQiQcgCEEUaiAGQTxqEMcCGiAIQRhqIAMQxAgaIAhBMGogBBDECBogCEHIAGogBRDECBogCkEIaiANEJkDKAIAIQMgCkEQaiQAIAIgAzYCCCAMIAJBCGoiBBC7AyAEKAIAIQMgBEEANgIAIAMEQCADEJkKEJATCyACQRhqIAwQvQMhAyAMEJsDIAMoAgAhAyACQSBqJAAgEBCPAxogBxCWAxogD0EQaiQAIAdBEGokACAGIAM2AgAgCyAGENoKIQIgBhCbAyAJEJYDGgJAIAJBAkYEQCAOKAIAQQBBfSAGQRhqQbOLARBFIgAQ5gogABCuFhoMAQsgBigCPCEDIwBB4AFrIgIkACACIAM2AtwBIAMQ9QghBCADQQFGBEAgAkHQAWoQ3QciB0EBNgIEIAJBwAFqIgUgACgCECIIIAJBsAFqIAEQNhBFIgkgBCAHIAgoAgAoAjgRBgAgCRCuFhogACgCGCIHQYEBIAUgAkGYAWoQ5QUiCCACQYABahDlBSIJIAcoAgAoAhARBgAgCRDnBRogCBDnBRogBRCuFhoLIAJB0AFqIgcgAUEAIAMgA0ECRhsQ5AggAkHAAWoiCCAAKAIQIgMgASAEIAcgAygCACgCQBEGACAAKAIYIQkgAkHoAGoQ5QUhDCACQdAAahDlBSENIAJBADYCtAEgAkHNAjYCsAEgAkEYaiIPIABBCGoQngMgAkEgaiIDIAIpArABNwIAIANBCGogDxDGA0EIaiACQdwBahDHAhogAiACKAIwNgIQIAIgAikDKDcDCCACIAIpAyA3AwAjAEEQayIRJAAjAEEgayIDJAAgAkE4aiIEQQA2AhAgA0EIaiADQRhqIgVBARClBSADIAVBARCvAhC+AiIQKAIAEMwKIgpB+P8BNgIAIAIQqgMhCyADEKoDIRIjAEEQayIFJAAgBSALNgIIIApBBGoiCiAFKAIIIgspAgA3AgAgCkEIaiALQQhqEMYDIAsoAhA2AgggBUEQaiQAIAogEhCuCiAEIBAQuQI2AhAgEBDLCiADQSBqJAAgEUEQaiQAIAIQjwkgCUH0ACAIIAwgDSAEIAkoAgAoAiARCAAgBBDnBRogDxCWAxogDRDnBRogDBDnBRogCBCuFhogBxCuFhogAkHgAWokAEEAIA4oAgAoAghBA0cCfwJAAkACQAJAIAYoAjwOAwACAQILQQEhAiAAIAFBAhCiCUUNAQwCC0EBIQIgACABQQAQogkNAQtBACECCyACCxsNACAAIAEgBigCPEEAR0EAQQAgACgCACgCqAIRBgALIA4QlgMaIAZBMGoQrhYaIAZBQGskAAt+AQR/IwBB0ABrIgMkACADQRBqIgQgARA7EMAWIANBIGoiBSAEQbugARBvIANBMGoiBiAFIAEQ2wUgA0FAayIBIAZBu6ABEG8gAyACEMAWIAAgASADENsFIAMQrhYaIAEQrhYaIAYQrhYaIAUQrhYaIAQQrhYaIANB0ABqJAALEgAgACABELYBQQxqIAIQnAMaC+oEAgh/AX0jAEEQayIIJAAgCEEIaiEJIwBBIGsiAyQAIAEQrAIaIAIQxAohBiABELMCIQUgA0EAOgAfAkACQCAFRQ0AIAEgBiAFEMAKIgcQpQcoAgAiBEUNAANAIAQoAgAiBEUNASAGIAQoAgRHBEAgBCgCBCAFEMAKIAdHDQILIAEQvAUgBEEIaiACEMEKRQ0ACwwBCyMAQRBrIgokACABEKkBIQQgA0EQakEBELwCIApBCGogBEEAEL0CEL4CIgQoAgBBCGogAhB0QQxqIAJBDGoQnAMaIAQQtQJBAToABCAEKAIAIAY2AgQgBCgCAEEANgIAIApBEGokACABEKwCKAIAIQIgARC8BSEEAkAgBQRAIAJBAWqzIAQqAgAgBbOUXkUNAQsgAyAFEMIKQQFzIAVBAXRyNgIMIAMCfyABEKwCKAIAQQFqsyABELwFKgIAlY0iC0MAAIBPXSALQwAAAABgcQRAIAupDAELQQALNgIIIAEgA0EMaiADQQhqEN4CKAIAEMMKIAYgARCzAiIFEMAKIQcLAkAgASAHEKUHKAIAIgJFBEAgAygCECABQQhqIgIoAgA2AgAgASADKAIQNgIIIAEgBxClByACNgIAIAMoAhAoAgBFDQEgAygCECECIAEgAygCECgCACgCBCAFEMAKEKUHIAI2AgAMAQsgAygCECACKAIANgIAIAIgAygCEDYCAAsgA0EQaiICELkCIQQgARCsAiIBIAEoAgBBAWo2AgAgA0EBOgAfIAIQyAoLIAkgA0EQaiAEEKQBIANBH2oQugIgA0EgaiQAIAAgCRCyAiAIQRBqJAALEQAgAEEMahCWAxogABCuFhoL9QQCCH8BfSMAQSBrIgUkACAFIAEQqgM2AhAgBUEYaiEIIAVBEGohCSMAQSBrIgIkACAAEKwCGiABEMQKIQYgABCzAiEEIAJBADoAHwJAAkAgBEUNACAAIAYgBBDACiIHEKUHKAIAIgNFDQADQCADKAIAIgNFDQEgBiADKAIERwRAIAMoAgQgBBDACiAHRw0CCyAAELwFIANBCGogARDBCkUNAAsMAQsjAEEQayIDJAAgABCpASIBIAJBEGpBARDFAiADQQhqIAFBABC9AhC+AiIBKAIAQQhqIAkQygogARC1AkEBOgAEIAEoAgAgBjYCBCABKAIAQQA2AgAgA0EQaiQAIAAQrAIoAgAhASAAELwFIQMCQCAEBEAgAUEBarMgAyoCACAEs5ReRQ0BCyACIAQQwgpBAXMgBEEBdHI2AgwgAgJ/IAAQrAIoAgBBAWqzIAAQvAUqAgCVjSIKQwAAgE9dIApDAAAAAGBxBEAgCqkMAQtBAAs2AgggACACQQxqIAJBCGoQ3gIoAgAQwwogBiAAELMCIgQQwAohBwsCQCAAIAcQpQcoAgAiAUUEQCACKAIQIABBCGoiASgCADYCACABIAIoAhA2AgAgACAHEKUHIAE2AgAgAigCECgCAEUNASACKAIQIQEgACACKAIQKAIAKAIEIAQQwAoQpQcgATYCAAwBCyACKAIQIAEoAgA2AgAgASACKAIQNgIACyACQRBqIgEQuQIhAyAAEKwCIgAgACgCAEEBajYCACACQQE6AB8gARDICgsgCCACQRBqIAMQpAEgAkEfahC6AiACQSBqJAAgCBCjAyEAIAVBIGokACAAQQxqCy4AAkAgBkUEQCADEOsFRQ0BIAMgARCjCA8LIAUQ6wVFDQAgBSABIAYgBxCrCAsLaAECfyMAQSBrIgUkACAFQRBqIgYgAiABEJsJIAUgAEG4AWoiACAGEKMJNgIIIAUQpAk2AgAgBUEIaiAFEKABBEAgACAFQRBqEJ8JKAIAQQAgAyAEEOYKCyAFQRBqEK4WGiAFQSBqJAALeAECfyMAQSBrIgMkACADQRBqIgQgASACEJsJAkAgAEG4AWoiACAEEMoJRQRAQQAhAgwBC0EAIQIgA0EIaiAAIANBEGoQnwkQmAMiABCUAwRAIAAoAgAoAghBAkYhAgsgABCWAxoLIANBEGoQrhYaIANBIGokACACCyoBAX8jAEEQayICJAAgAkEIaiAAIAEQtQkQpAEoAgAhACACQRBqJAAgAAsmAQJ/IwBBEGsiACQAIABBCGoQtgkQpAEoAgAhASAAQRBqJAAgAQvSAgEFfyMAQfAAayIEJAAgBEHgAGoiByABIAIQmwkgBEFAayIFENUIIARByABqIgYgByAFEJwJIARBOGoiCCAAQbgBaiIJIAYQnQkgBhCeCSAFEJYDGiAFIAkgBxCfCRCYAyIFKAIAIQcgBEEANgJMIARBzgI2AkggCCAAQQhqEJ4DIAQgBiAIIAMQ6wg2AjAgByAEQTBqIgMQ5AohBiADEJsDIAgQlgMaAkAgBkECRgRAIAUoAgAQ6gogCSAEQeAAahCmCQwBCyACEPUIIQMgBEHIAGoiAiAAKAIQIgYgASADIAYoAgAoAkgRBQAgACgCGCIAQfUAIAIgBEEYahDlBSIBIAQQ5QUiAyAAKAIAKAIQEQYAIAMQ6AUaIAEQ6AUaIAUoAgAQ6gogCSAEQeAAahCmCSACEK4WGgsgBRCWAxogBEHgAGoQrhYaIARB8ABqJAALgwEBBH8jAEEgayICJAAgAiAAIAEQtQk2AhggAhC2CTYCECACQRhqIAJBEGoQlAFFBEAgAkEIaiACQRhqEMcCKAIAIQMjAEEgayIBJAAgAUEYaiADEKQBIgQQ1QogAUEIaiIFIAAgAxDWCiAFEMgKIAQoAgAaIAFBIGokAAsgAkEgaiQAC20BA38jAEFAaiIEJAAgBEEwaiIFIAAoAhAiBiABIAYoAgAoAjQRAwAgACgCGCIAQY4BIAUgBEEYaiACEOQFIgEgBCADEOQFIgIgACgCACgCEBEGACACEOgFGiABEOgFGiAFEK4WGiAEQUBrJAALiwEBA38jAEHQAGsiBiQAIAIQ9QghByAGQUBrIgIgACgCECIIIAZBMGogARA2EEUiASAHIAMgCCgCACgCOBEGACABEK4WGiAAKAIYIgBBgQEgAiAGQRhqIAQQ5AUiASAGIAUQ5AUiAyAAKAIAKAIQEQYAIAMQ6AUaIAEQ6AUaIAIQrhYaIAZB0ABqJAALbQEDfyMAQUBqIgQkACAEQTBqIgUgACgCECIGIAEgBigCACgCJBEDACAAKAIYIgBBkQEgBSAEQRhqIAIQ5AUiASAEIAMQ5AUiAiAAKAIAKAIQEQYAIAIQ6AUaIAEQ6AUaIAUQrhYaIARBQGskAAttAQN/IwBBQGoiBCQAIARBMGoiBSAAKAIQIgYgASAGKAIAKAIoEQMAIAAoAhgiAEGSASAFIARBGGogAhDkBSIBIAQgAxDkBSICIAAoAgAoAhARBgAgAhDoBRogARDoBRogBRCuFhogBEFAayQAC20BA38jAEFAaiIEJAAgBEEwaiIFIAAoAhAiBiABIAYoAgAoAiwRAwAgACgCGCIAQZMBIAUgBEEYaiACEOQFIgEgBCADEOQFIgIgACgCACgCEBEGACACEOgFGiABEOgFGiAFEK4WGiAEQUBrJAALggEBA38jAEHQAGsiBSQAIAVBQGsiBiAAKAIQIgcgBUEwaiABEDYQRSIBIAIgBygCACgCTBEFACABEK4WGiAAKAIYIgBB+gAgBiAFQRhqIAMQ5AUiASAFIAQQ5AUiAiAAKAIAKAIQEQYAIAIQ6AUaIAEQ6AUaIAYQrhYaIAVB0ABqJAALYgECfyMAQUBqIgIkACACQShqQQAQwgEhAyACQRBqIAEQywEhASADQZD7ABCHASABEGcgARDPASAAIAJB7S4QRSIBIAMgACgCACgCwAERAwAgARCuFhogAxDPASACQUBrJAALYwECfyMAQUBqIgIkACACQShqQQAQwgEhAyACQRBqIAEQxAEhASADQYuBARCHASABEGcgARDPASAAIAJBt4EBEEUiASADIAAoAgAoAsABEQMAIAEQrhYaIAMQzwEgAkFAayQAC2kBA38jAEFAaiICJAAgAkEwaiIEIAAoAhAiAyABIAMoAgAoAmwRAwAgACgCGCIAQZABIAQgAkEYahDlBSIBIAIQ5QUiAyAAKAIAKAIQEQYAIAMQ6AUaIAEQ6AUaIAQQrhYaIAJBQGskAAvuAwEDfyMAQdABayIDJAAgA0EoakGrmQFBxQdBASADQRhqQZnfARBFIgQQ9AMiBUHY1wEQaiABEM0TQd2zARBqIAIQnwJBkqIBEGoaIAUQ9gMgBBCuFhogAwJ/QQAhBAJAAkACQAJAAkACQAJAAkAgAUH/ZUwEQCABQadJRiABQYCdBmpBAklyDQEgAUH0ZUcNBgwHCwJAAkACQAJAIAFBpwpqDhMHBwYDAgEJCQkJBAQJCQkJCQUCAAsgAUECag4DCggJBwtBs3cMCgtBtHcMCQtBsncMCAtBq3cMBwtBsHcMBgtBr3cMBQtBrncMBAsgAUGAZkYNAgtBfyEECyAEDAELQZd4CyIBNgIYIAEQsQkEQCAAIAEgAhCACQsgARCyCQRAIAAgASACEIkJCyABELMJBEAgACABIAIQjgkLIAMgAEHYAWoiABCiAzYCECADIAAQhQI2AiggA0EQaiADQShqELIBBEADQCADQShqIgEgA0EQahCjAxChAwJAIAEQlAMEQCADKAIoIgEgA0EYaiACIAEoAgAoAggRAwAgA0EQahCkAwwBCyADIAAgA0EIaiADQRBqEMcCKAIAEKwHNgIQCyADQShqIgEQlgMaIAMgABCFAjYCKCADQRBqIAEQsgENAAsLIANB0AFqJAALCwAgAEHPCGpBBEkLGQAgAEGud0YgAEF9cUGtd0ZyIABBsHdGcgsIACAAQat3RgsOACAAQQRrIAEgAhCwCQuzAQEFfyMAQRBrIgMkACAAEKwCGiABEMQKIQQCQAJAIAAQswIiBUUNACAAIAQgBRDACiIGEKUHKAIAIgJFDQAgAigCACICRQ0AA0AgBCACKAIERwRAIAIoAgQgBRDACiAGRw0CCwJAIAQgAigCBEcNACAAELwFIAJBCGogARDBCkUNACADQQhqIAIQpAEoAgAhAgwDCyACKAIAIgINAAsLIAMQtgkiAjYCCAsgA0EQaiQAIAILJQECfyMAQRBrIgAkACAAQQhqQQAQpAEoAgAhASAAQRBqJAAgAQvjAwEEfyMAQdABayIDJABBASEEIANBKGpBq5kBQYUIQQEgA0EYakGZ3wEQRSIFEPQDIgZB5tgBEGogARDNE0HuswEQaiACEJ8CQZKiARBqGiAGEPYDIAUQrhYaAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUHXCGsOBwEDCgIEBAQACyABQbEJaw4IBAkFBwkICQYJC0GxdyEBDAkLQbJ3IQEMCAtBs3chAQwHC0G0dyEBDAYLQa13IQEMBQtBr3chAQwEC0GudyEBDAMLQap3IQEMAgtBq3chAQwBC0F/IQEgA0F/NgIYDAELIAMgATYCGEEAIQQLIAEQsQkEQCAAIAEgAhCACQsgARCyCQRAIAAgASACEIkJCyABELMJBEAgACABIAIQjgkLAkAgBA0AIAMgAEHYAWoiABCiAzYCECADIAAQhQI2AiggA0EQaiADQShqELIBRQ0AA0AgA0EoaiIBIANBEGoQowMQoQMCQCABEJQDBEAgAygCKCIBIANBGGogAiABKAIAKAIIEQMAIANBEGoQpAMMAQsgAyAAIANBCGogA0EQahDHAigCABCsBzYCEAsgA0EoaiIBEJYDGiADIAAQhQI2AiggA0EQaiABELIBDQALCyADQdABaiQACw4AIABBBGsgASACELcJC50EAQN/IwBB0AFrIgIkACACQShqQauZAUG6CEEAIAJBGGpBmd8BEEUiAxD0AyIEQbvSARBqIAEQzRNBkqIBEGoaIAQQ9gMgAxCuFhogACgCkAEhAwJAIAFB9GVHIAFBAEhxRQRAIANBAUEAIAJBKGoiAUGZ3wEQRSIDEOYKIAMQrhYaIAIgAEHYAWoiABCiAzYCGCACIAAQhQI2AiggAkEYaiABELIBRQ0BA0AgAkEoaiIBIAJBGGoQowMQoQMCQCABEJQDBEAgAigCKCIBIAEoAgAoAgwRAQAgAkEYahCkAwwBCyACIAAgAkEQaiACQRhqEMcCKAIAEKwHNgIYCyACQShqIgEQlgMaIAIgABCFAjYCKCACQRhqIAEQsgENAAsMAQsgA0EAIAEgAkEoaiIEQZnfARBFIgMQ5gogAxCuFhogAkEYaiIDIAEQvxYgBEHl3AEgAxBuIAMQrhYaIAIgAEHYAWoiABCiAzYCCCACIAAQhQI2AhggAkEIaiADELIBBEADQCACQRhqIgMgAkEIahCjAxChAwJAIAMQlAMEQCACKAIYIQMgAiABNgIEIAMgAkEEaiACQShqIAMoAgAoAggRAwAgAkEIahCkAwwBCyACIAAgAiACQQhqEMcCKAIAEKwHNgIICyACQRhqIgMQlgMaIAIgABCFAjYCGCACQQhqIAMQsgENAAsLIAJBKGoQrhYaCyACQdABaiQACwwAIABBBGsgARC5CQuIBgEEfyMAQeABayICJAACQAJAAkACQAJAIAEOAwABAgMLIAJBOGoiA0GrmQFByAhBACACQShqIgRBmd8BEEUiARD0AyIFQajJARBqGiAFEPYDIAEQrhYaIAIgAEHYAWoiARCiAzYCKCACIAEQhQI2AjggBCADELIBRQ0DA0AgAkE4aiIDIAJBKGoQowMQoQMCQCADEJQDBEAgAigCOCIDIAMoAgAoAhARAQAgAkEoahCkAwwBCyACIAEgAkEgaiACQShqEMcCKAIAEKwHNgIoCyACQThqIgMQlgMaIAIgARCFAjYCOCACQShqIAMQsgENAAsMAwsgAkE4aiIDQauZAUHMCEEAIAJBKGpBmd8BEEUiARD0AyIEQbXPARBqGiAEEPYDIAEQrhYaIAIgAEHYAWoiARCiAzYCGCACIAEQhQI2AjggAkEYaiADELIBRQ0CA0AgAkEoaiIDIAJBGGoQowMQoQMCQCADEJQDBEAgAigCKCIDQQIgAkE4akHyxwEQRSIEIAMoAgAoAhQRAwAgBBCuFhogAkEYahCkAwwBCyACIAEgAkEQaiACQRhqEMcCKAIAEKwHNgIYCyACQShqEJYDGiACIAEQhQI2AjggAkEYaiACQThqELIBDQALDAILIAJBOGoiA0GrmQFB0QhBACACQShqIgRBmd8BEEUiARD0AyIFQaLKARBqGiAFEPYDIAEQrhYaIAIgAEHYAWoiARCiAzYCKCACIAEQhQI2AjggBCADELIBRQ0BA0AgAkE4aiIDIAJBKGoQowMQoQMCQCADEJQDBEAgAigCOCIDIAMoAgAoAhgRAQAgAkEoahCkAwwBCyACIAEgAkEIaiACQShqEMcCKAIAEKwHNgIoCyACQThqIgMQlgMaIAIgARCFAjYCOCACQShqIAMQsgENAAsMAQsgAkE4akGrmQFB1QhBACACQShqQZnfARBFIgMQ9AMiBEHi0wEQaiABEM0TQZKiARBqGiAEEPYDIAMQrhYaCyAAKAKQARDqCiAAENgIIAJB4AFqJAALDAAgAEEEayABELsJC5gBAQN/IwBBwAFrIgMkACADQRhqQauZAUHdCEEAIANBCGpBmd8BEEUiBBD0AyIFQeC0ARBqIAEQzRNB3bMBEGogAhCfAkGSogEQahogBRD2AyAEEK4WGiAAKAKwASEAAkAgAUUEQCAAQQFBACADQRhqQZnfARBFIgAQ5gogABCuFhoMAQsgAEEAQX8gAhDmCgsgA0HAAWokAAsOACAAQQRrIAEgAhC9CQvxAQEFfyMAQcABayICJAAgAkEYaiIDQauZAUHoCEEAIAJBCGoiBEGZ3wEQRSIFEPQDIgZBrd0BEGogARCfAkGSogEQahogBhD2AyAFEK4WGiACIABB2AFqIgAQogM2AgggAiAAEIUCNgIYIAQgAxCyAQRAA0AgAkEYaiIDIAJBCGoQowMQoQMCQCADEJQDBEAgAigCGCIDIAEgAygCACgCHBEAACACQQhqEKQDDAELIAIgACACIAJBCGoQxwIoAgAQrAc2AggLIAJBGGoiAxCWAxogAiAAEIUCNgIYIAJBCGogAxCyAQ0ACwsgAkHAAWokAAsMACAAQQRrIAEQvwkLjwIBBX8jAEHAAWsiAyQAIANBGGoiBEGrmQFB7QhBACADQQhqIgVBmd8BEEUiBhD0AyIHQdDdARBqIAEQnwJBnq0BEGogAhDNE0GSogEQahogBxD2AyAGEK4WGgJAAkACQAJAIAAgARDjCAsLCwsgAyAAQdgBaiIAEKIDNgIIIAMgABCFAjYCGCAFIAQQsgEEQANAIANBGGoiAiADQQhqEKMDEKEDAkAgAhCUAwRAIAMoAhgiAiABIAIoAgAoAiARAAAgA0EIahCkAwwBCyADIAAgAyADQQhqEMcCKAIAEKwHNgIICyADQRhqIgIQlgMaIAMgABCFAjYCGCADQQhqIAIQsgENAAsLIANBwAFqJAALDgAgAEEEayABIAIQwQkLggIBBX8jAEHAAWsiAyQAIANBGGoiBEGrmQFB8whBACADQQhqIgVBmd8BEEUiBhD0AyIHQYzdARBqIAEQnwJBsLMBEGogAhDLE0GSogEQahogBxD2AyAGEK4WGiADIABB2AFqIgAQogM2AgggAyAAEIUCNgIYIAUgBBCyAQRAA0AgA0EYaiIEIANBCGoQowMQoQMCQCAEEJQDBEAgAygCGCIEIAFBACACQQAgBCgCACgCKBEGACADQQhqEKQDDAELIAMgACADIANBCGoQxwIoAgAQrAc2AggLIANBGGoiBBCWAxogAyAAEIUCNgIYIANBCGogBBCyAQ0ACwsgA0HAAWokAAsOACAAQQRrIAEgAhDDCQuCAgEFfyMAQcABayIDJAAgA0EYaiIEQauZAUH5CEEAIANBCGoiBUGZ3wEQRSIGEPQDIgdBld4BEGogARCfAkGwswEQaiACEMsTQZKiARBqGiAHEPYDIAYQrhYaIAMgAEHYAWoiABCiAzYCCCADIAAQhQI2AhggBSAEELIBBEADQCADQRhqIgQgA0EIahCjAxChAwJAIAQQlAMEQCADKAIYIgQgAUEBIAJBACAEKAIAKAIoEQYAIANBCGoQpAMMAQsgAyAAIAMgA0EIahDHAigCABCsBzYCCAsgA0EYaiIEEJYDGiADIAAQhQI2AhggA0EIaiAEELIBDQALCyADQcABaiQACw4AIABBBGsgASACEMUJC4ACAQV/IwBBwAFrIgMkACADQRhqIgRBq5kBQYAJQQAgA0EIaiIFQZnfARBFIgYQ9AMiB0Hz3QEQaiABEJ8CQbCzARBqIAIQyxNBkqIBEGoaIAcQ9gMgBhCuFhogAyAAQdgBaiIAEKIDNgIIIAMgABCFAjYCGCAFIAQQsgEEQANAIANBGGoiBCADQQhqEKMDEKEDAkAgBBCUAwRAIAMoAhgiBCABIAJBACAEKAIAKAIsEQUAIANBCGoQpAMMAQsgAyAAIAMgA0EIahDHAigCABCsBzYCCAsgA0EYaiIEEJYDGiADIAAQhQI2AhggA0EIaiAEELIBDQALCyADQcABaiQACw4AIABBBGsgASACEMcJC+wDAQN/IwBBwAFrIgUkACAFQRhqQauZAUGJCUEAIAVBCGpBmd8BEEUiBhD0AyIHQYfbARBqIAEQnwJBjdcBEGogAhDNE0GSogEQahogBxD2AyAGEK4WGgJAIAEQQQRAIAUgAEHYAWoiABCiAzYCCCAFIAAQhQI2AhggBUEIaiAFQRhqELIBRQ0BA0AgBUEYaiIBIAVBCGoQowMQoQMCQCABEJQDBEAgBSgCGCIBIAMgBCABKAIAKAIwEQMAIAVBCGoQpAMMAQsgBSAAIAUgBUEIahDHAigCABCsBzYCCAsgBUEYaiIBEJYDGiAFIAAQhQI2AhggBUEIaiABELIBDQALDAELIAVBGGoQLiEDAkACQAJAAkAgAg4DAAECAwsgBUEIaiICIAFBABCbCSADIAIQXCACEK4WGiAAQbgBaiADEMoJDQIgBUEIaiICIAFBAhCbCSADIAIQXCACEK4WGgwCCyAFQQhqIgIgAUECEJsJIAMgAhBcIAIQrhYaDAELIAVBCGoiAiABQQEQmwkgAyACEFwgAhCuFhoLAkAgAEG4AWoiACADEMoJRQ0AIAAgAxCfCRCUA0UNACAAIAMQnwkoAgBBAUEAIAVBCGpBmd8BEEUiABDmCiAAEK4WGgsgAxCuFhoLIAVBwAFqJAAL3gEBBn8jAEEQayIDJAAjAEEQayIEJAAgABCsAhogARDECiEFAkACQCAAELMCIgZFDQAgACAFIAYQwAoiBxClBygCACICRQ0AIAIoAgAiAkUNAANAIAUgAigCBEcEQCACKAIEIAYQwAogB0cNAgsCQCAFIAIoAgRHDQAgABC8BSACQQhqIAEQwQpFDQAgBEEIaiACEKQBKAIAIQIMAwsgAigCACICDQALCyAEELYJIgI2AggLIARBEGokACADIAI2AgggAxC2CTYCACADQQhqIAMQsgEhACADQRBqJAAgAAsSACAAQQRrIAEgAiADIAQQyQkLtQIBA38jAEHQAWsiAiQAIAJBKGpBq5kBQaQJQQAgAkEYakGZ3wEQRSIDEPQDIgRBqLEBEGogARDNE0GSogEQahogBBD2AyADEK4WGiABEPUIIQMgAUECRgRAIABBACACQShqQZnfARBFIgEQjgkgARCuFhoLIAIgAEHYAWoiABCiAzYCECACIAAQhQI2AiggAkEQaiACQShqELIBBEADQCACQRhqIgEgAkEQahCjAxChAwJAIAEQlAMEQCACKAIYIgEgA0EBIAJBKGpBmd8BEEUiBCABKAIAKAIkEQUAIAQQrhYaIAJBEGoQpAMMAQsgAiAAIAJBCGogAkEQahDHAigCABCsBzYCEAsgAkEYahCWAxogAiAAEIUCNgIoIAJBEGogAkEoahCyAQ0ACwsgAkHQAWokAAsMACAAQQRrIAEQzAkLSAECfyMAQcABayIAJAAgAEEYakGrmQFBrQlBACAAQQhqQZnfARBFIgEQ9AMiAkHE9gAQahogAhD2AyABEK4WGiAAQcABaiQACwcAQQAQzgkLiwIBBX8jAEHAAWsiBCQAIARBGGoiBUGrmQFBsQlBACAEQQhqIgZBmd8BEEUiBxD0AyIIQZi6ARBqIAEQnwJB4LEBEGogAhDNE0GnsAEQaiADEM0TQZKiARBqGiAIEPYDIAcQrhYaIAQgAEHYAWoiABCiAzYCCCAEIAAQhQI2AhggBiAFELIBBEADQCAEQRhqIgUgBEEIahCjAxChAwJAIAUQlAMEQCAEKAIYIgUgASACIAMgBSgCACgCNBEFACAEQQhqEKQDDAELIAQgACAEIARBCGoQxwIoAgAQrAc2AggLIARBGGoiBRCWAxogBCAAEIUCNgIYIARBCGogBRCyAQ0ACwsgBEHAAWokAAsQACAAQQRrIAEgAiADENAJC7cBAQJ/IwBBIGsiAiQAIAIgAEHYAWoiABCiAzYCGCACIAAQhQI2AhAgAkEYaiACQRBqELIBBEADQCACQRBqIgMgAkEYahCjAxChAwJAIAMQlAMEQCACKAIQIgMgASADKAIAKAI4EQAAIAJBGGoQpAMMAQsgAiAAIAJBCGogAkEYahDHAigCABCsBzYCGAsgAkEQaiIDEJYDGiACIAAQhQI2AhAgAkEYaiADELIBDQALCyACQSBqJAALDAAgAEEEayABENIJC7cBAQJ/IwBBIGsiAiQAIAIgAEHYAWoiABCiAzYCGCACIAAQhQI2AhAgAkEYaiACQRBqELIBBEADQCACQRBqIgMgAkEYahCjAxChAwJAIAMQlAMEQCACKAIQIgMgASADKAIAKAI8EQAAIAJBGGoQpAMMAQsgAiAAIAJBCGogAkEYahDHAigCABCsBzYCGAsgAkEQaiIDEJYDGiACIAAQhQI2AhAgAkEYaiADELIBDQALCyACQSBqJAALDAAgAEEEayABENQJC7UBAQJ/IwBBIGsiASQAIAEgAEHYAWoiABCiAzYCGCABIAAQhQI2AhAgAUEYaiABQRBqELIBBEADQCABQRBqIgIgAUEYahCjAxChAwJAIAIQlAMEQCABKAIQIgIgAigCACgCWBEBACABQRhqEKQDDAELIAEgACABQQhqIAFBGGoQxwIoAgAQrAc2AhgLIAFBEGoiAhCWAxogASAAEIUCNgIQIAFBGGogAhCyAQ0ACwsgAUEgaiQACwoAIABBBGsQ1gkLtQEBAn8jAEEgayIBJAAgASAAQdgBaiIAEKIDNgIYIAEgABCFAjYCECABQRhqIAFBEGoQsgEEQANAIAFBEGoiAiABQRhqEKMDEKEDAkAgAhCUAwRAIAEoAhAiAiACKAIAKAJcEQEAIAFBGGoQpAMMAQsgASAAIAFBCGogAUEYahDHAigCABCsBzYCGAsgAUEQaiICEJYDGiABIAAQhQI2AhAgAUEYaiACELIBDQALCyABQSBqJAALCgAgAEEEaxDYCQsXACAAKAIYIgBByAEgACgCACgCFBEEAAttAQN/IwBBQGoiBCQAIARBMGoiBSAAKAIQIgYgASAGKAIAKAJ0EQMAIAAoAhgiAEHJASAFIARBGGogAhDkBSIBIAQgAxDkBSICIAAoAgAoAhARBgAgAhDoBRogARDoBRogBRCuFhogBEFAayQACxcAIAAoAhgiAEHKASAAKAIAKAIUEQQAC2kBA38jAEFAaiICJAAgAkEwaiIEIAAoAhAiAyABIAMoAgAoAmgRAwAgACgCGCIAQcsBIAQgAkEYahDlBSIBIAIQ5QUiAyAAKAIAKAIQEQYAIAMQ6AUaIAEQ6AUaIAQQrhYaIAJBQGskAAtpAQN/IwBBQGoiAiQAIAJBMGoiBCAAKAIQIgMgASADKAIAKAJoEQMAIAAoAhgiAEHMASAEIAJBGGoQ5QUiASACEOUFIgMgACgCACgCEBEGACADEOgFGiABEOgFGiAEEK4WGiACQUBrJAALaQEDfyMAQUBqIgIkACACQTBqIgQgACgCECIDIAEgAygCACgCeBEDACAAKAIYIgBBzQEgBCACQRhqEOUFIgEgAhDlBSIDIAAoAgAoAhARBgAgAxDoBRogARDoBRogBBCuFhogAkFAayQAC/cBAQV/IwBB8ABrIgIkACACQeAAakEAEPIIIABBGGoiBCgCACIDIAJB0ABqIAEQtgEiBSADKAIAKAI4EQQAIQYgBRCuFhogBCgCACEDAkAgBgRAIAMgAkHgAGogAkFAayABELYBIgEgAygCACgCLBEDACABEK4WGgwBCyADIAJB4ABqIAMoAgAoAjARAAALIAJBMGoiASAAKAIQIgAgAkHgAGoiAyAAKAIAKAIQEQMAIAQoAgAiAEHOASABIAJBGGoQ5QUiBCACEOUFIgUgACgCACgCEBEGACAFEOgFGiAEEOgFGiABEK4WGiADEK4WGiACQfAAaiQAC1kBBH8jAEFAaiIBJAAgACgCGCIAQc8BIAFBMGpBmd8BEEUiAiABQRhqEOUFIgMgARDlBSIEIAAoAgAoAhARBgAgBBDoBRogAxDoBRogAhCuFhogAUFAayQAC2sBA38jAEFAaiIDJAAgA0EwaiIEIAAoAhAiBSABIAIgBSgCACgCfBEFACAAKAIYIgBB0AEgBCADQRhqEOUFIgEgAxDlBSICIAAoAgAoAhARBgAgAhDoBRogARDoBRogBBCuFhogA0FAayQAC1kBBH8jAEFAaiIBJAAgACgCGCIAQdEBIAFBMGpBmd8BEEUiAiABQRhqEOUFIgMgARDlBSIEIAAoAgAoAhARBgAgBBDoBRogAxDoBRogAhCuFhogAUFAayQAC2oBA38jAEFAaiICJAAgAkEwaiIEIAAoAhAiAyABIAMoAgAoAoABEQMAIAAoAhgiAEHSASAEIAJBGGoQ5QUiASACEOUFIgMgACgCACgCEBEGACADEOgFGiABEOgFGiAEEK4WGiACQUBrJAALWQEEfyMAQUBqIgEkACAAKAIYIgBB0wEgAUEwakGZ3wEQRSICIAFBGGoQ5QUiAyABEOUFIgQgACgCACgCEBEGACAEEOgFGiADEOgFGiACEK4WGiABQUBrJAALXAEDfyMAQTBrIgMkACADQSBqIgQgACgCECIFIAEgBSgCACgChAERAwAgACgCGCIAIAQgA0EIaiACEOQFIgEgACgCACgCGBEDACABEOgFGiAEEK4WGiADQTBqJAALbAEDfyMAQUBqIgMkACADQTBqIgQgACgCECIFIAEgAiAFKAIAKAKIAREFACAAKAIYIgBB1QEgBCADQRhqEOUFIgEgAxDlBSICIAAoAgAoAhARBgAgAhDoBRogARDoBRogBBCuFhogA0FAayQAC1wBA38jAEEwayIDJAAgA0EgaiIEIAAoAhAiBSABIAUoAgAoAoQBEQMAIAAoAhgiACAEIANBCGogAhDkBSIBIAAoAgAoAhwRAwAgARDoBRogBBCuFhogA0EwaiQAC+ACAQR/IwBB4ABrIgMkACADQShqIgQQig0gA0HQAGogBCgCABCMBhC2ASEFIAQQlgMaIAMgAEEwaiIAIAUQrQM2AkggAyAAEJMBNgIoIANByABqIAQQswEEQCADQShqEMYMIgQgBRBWIAAgBRDqCSAEEOsJIAQQrhYaCyABEOwJIQEgACAFEOoJIAE2AgwgAyACEJ4BNgIgIAMgAhCTATYCKCADQSBqIANBKGoQoAEEQANAIANBEGogA0EgahCwARC2ASEBIANBIGoQsAEoAgwhBiADIAAgARCtAzYCCCADIAAQkwE2AiggA0EIaiADQShqELMBBEAgA0EoahDGDCIEIAEQViAAIAEQ6gkgBBDrCSAEEK4WGgsgBhDsCSEEIAAgARDqCSAENgIMIAEQrhYaIANBIGoiARCxASADIAIQkwE2AiggASADQShqEKABDQALCyAFEK4WGiADQeAAaiQAC8UCAQh/IwBBIGsiBCQAIAQgARCqAzYCECMAQSBrIgIkACAAIAJBHGogARDVAyIGKAIAIQEgAkEAOgAbIAFFBEAjAEEQayIFJAAgABC1AiEBIAJBCGoiA0E4EKMWIAVBCGogAUEAEL0CEL4CIgcoAgBBEGohCCAEKAIQIQkjAEEQayIBJAAgASAJNgIIIAggASgCCBC2AUEMahDGDBogAUEQaiQAIAcQtQJBAToABCAFQRBqJAAgACACKAIcIAYgAygCABC4AiADELkCIQEgAkEBOgAbIAMoAgAhACADQQA2AgAg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JAAgABCpARogASgCBCEDIAEgARClAyAAEKkBIgAgACgCAEEBazYCACABQQhqEN0FIAEQkBMgAkEIaiADEKQBKAIAIQAgAkEQaiQAIAALdAEEfyMAQSBrIgIkACACIAE2AhAgAkEIaiACQRBqEMcCKAIAIQMjAEEgayIBJAAgAUEYaiADEKQBIgQQ1QogAUEIaiIFIAAgAxDWCiAFEKYLIAQoAgAhACABQSBqJAAgAkEYaiAAEKQBKAIAGiACQSBqJAALQQEBfyAAKAIAIQEgAEEANgIAIAEEQCAAELUCIgAtAAQEQCAAKAIAIAFBCGoQ3gULIAEEQCAAKAIAGiABEJATCwsLwwQCBX8BfSMAQSBrIgQkACABEKwCGiACEMQKIQcgARCzAiEGIARBADoAHwJAAkAgBkUNACABIAcgBhDACiIIEKUHKAIAIgVFDQADQCAFKAIAIgVFDQEgByAFKAIERwRAIAUoAgQgBhDACiAIRw0CCyABELwFIAVBCGogAhDBCkUNAAsMAQsjAEEQayIFJAAgARCpASICIARBEGogAkEBEOcHIAVBCGogAkEAEL0CEL4CIgIoAgBBCGogAxCoCyACELUCQQE6AAQgAigCACAHNgIEIAIoAgBBADYCACAFQRBqJAAgARCsAigCACECIAEQvAUhAwJAIAYEQCACQQFqsyADKgIAIAazlF5FDQELIAQgBhDCCkEBcyAGQQF0cjYCDCAEAn8gARCsAigCAEEBarMgARC8BSoCAJWNIglDAACAT10gCUMAAAAAYHEEQCAJqQwBC0EACzYCCCABIARBDGogBEEIahDeAigCABDDCiAHIAEQswIiBhDACiEICwJAIAEgCBClBygCACICRQRAIAQoAhAgAUEIaiICKAIANgIAIAEgBCgCEDYCCCABIAgQpQcgAjYCACAEKAIQKAIARQ0BIAQoAhAhAiABIAQoAhAoAgAoAgQgBhDAChClByACNgIADAELIAQoAhAgAigCADYCACACIAQoAhA2AgALIARBEGoiAhC5AiEFIAEQrAIiASABKAIAQQFqNgIAIARBAToAHyACEKYLCyAAIARBEGogBRCkASAEQR9qELoCIARBIGokAAsxACACKAIAIQIjAEEQayIAJAAgACACNgIIIAEgACgCCBC2AUEMahCJAxogAEEQaiQACycBAX8jAEEQ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AhARAAAgAigCACIDIAEgAEEgaiAIEOQFIgEgAEEIaiAJEOQFIgYgAygCACgCyAERBQAgBhDoBRogARDoBRogAhCWAxogAEHwAWokACAJEOgFGiAIEOgFGiAHEOgFGiAFEOgFGgsgBEHoAGoQlgMaIARB8ABqJAALAwABC08BAX8gAEGIhwI2AgAgAEEUaiIBIAEQswIQ0AsgARCpAUEANgIAIAEgARC1AjYCACABELUCQQA2AgAgASABELMCENALIABBBGoQjwMaIAALDQAgABDLCxogABCQEwvKAgEFfyMAQcABayICJAAgAiAAQRRqIgYgARCtAzYCECACIAYQkwE2AgAgAkEQaiACEKABRQRAIAJBuAFqIQUgACgCDCEEIwBBEGsiAyQAIAMgBBDVCyABEK0DNgIIIAMgBBDVCxCTATYCAAJAIANBCGogAxCzAQRAIAUQkgMMAQsgBSAEENULIAEQ1gsoAgARAQALIANBEGokAAJAIAUQlANFBEAgAkEQakH/kgFBOkEBIAJBmd8BEEUiABD0AyIDQaLcARBqIAEQnwIaIAMQ9gMgABCuFhoMAQsgAkEQakH/kgFBPUEAIAJBmd8BEEUiAxD0AyIEQZPVARBqIAEQnwIaIAQQ9gMgAxCuFhogBiABEM4LIAJBuAFqIgEQ1AggASgCACIBIAAoAhAgASgCACgCABEAAAsgAkG4AWoQlgMaCyACQcABaiQAC6ACAQZ/IwBBIGsiBCQAIAQgARCqAzYCECAEQRBqIQYjAEEgayICJAAgACACQRxqIAEQ1QMiBygCACEBIAJBADoAGyABRQRAIwBBEGsiASQAIAAQtQIiBSACQQhqIgNBJBCjFiABQQhqIAVBABC9AhC+AiIFKAIAQRBqIAYQygogBRC1AkEBOgAEIAFBEGokACAAIAIoAhwgByADKAIAELgCIAMQuQIhASACQQE6ABsgAygCACEAIANBADYCACAABEAgAxC1AiIDLQAEBEAgAygCABogAEEQahCeCQsgAARAIAMoAgAaIAAQkBMLCwsgBEEYaiIAIAJBCGogARCkASACQRtqELoCIAJBIGokACAAELABIQAgBEEgaiQAIABBDGoLvAIBA38jAEEwayIEJAAjAEEgayIDJAAgA0EQaiIFIAEgAhCfCxDZCyADQeyuAyAFEK0DNgIIENkLIANB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BDcDCCAEQSBqIQIgA0GgBGogA0EIahC5DCEHA0AgAkEQaxDqCyICIARHDQALIANBAjYCkAQgA0HIBGogA0GQBGpBhIEBEOkLIQQgA0EBNgLwAyAEQRBqIANB8ANqQYsyEOkLGiADQQI2AvwDIAMgBDYC+AMgAyADKQP4AzcDACAEQSBqIQIgA0GABGogAxC5DCEJA0AgAkEQaxDqCyICIARHDQALIANByARqQQAQwgEhBCADQdADaiAFKAIAEMUBIQIgBEH2xgAQhwEgAhBnIAIQzwEgA0G4A2ogBUEEahDKASECIARB5sYAEIcBIAIQZyACEM8BIANBoANqIAVBEGoQygEhAiAEQZz3ABCHASACEGcgAhDPASADQYgDaiAFQRxqEMoBIQIgBEHbxgAQhwEgAhBnIAIQzwEgA0HwAmogBUEoahDKASECIARByfcAEIcBIAIQZyACEM8BIANB2AJqIAVBNGoQygEhAiAEQevcABCHASACEGcgAhDPASMAQSBrIgYkACAGIAVBQGsiChCqAzYCECAGQRBqIQ4jAEEgayICJAAgCCACQRxqIAoQpAoiDygCACEKIAJBADoAGyAKRQRAIAJBCGoiDCAIIA4QrAwgCCACKAIcIA8gDCgCABC4AiAMELkCIQogAkEBOgAbIAwQjgwLIAZBGGoiDCACQQhqIAoQpAEgAkEbahC6AiACQSBqJAAgDBCwASECIAZBIGokACADQcACaiACQQRqEMoBIQIgBEHchQEQhwEgAhBnIAIQzwEgA0GoAmogBSgCRBDFASECIARBojYQhwEgAhBnIAIQzwEgA0GQAmogCyAFQcgAahD6CxDKASECIARBwfIAEIcBIAIQZyACEM8BIANB+AFqIAcgBUHMAGoQ+gsQygEhAiAEQZ3zABCHASACEGcgAhDPASADQeABaiAFKAJQEMUBIQIgBEGUJhCHASACEGcgAhDPASADQcgBaiAJIAVB1ABqEPoLEMoBIQIgBEH3+QAQhwEgAhBnIAIQzwEgA0GwAWogBUHYAGoQygEhAiAEQfaGARCHASACEGcgAhDPASADQZgBaiAFQeQAahDKASECIARBp4cBEIcBIAIQZyACEM8BIANBgAFqIAUoAnAQxQEhAiAEQfjyABCHASACEGcgAhDPASADQegAaiAFQfQAahDKASECIARB1ocBEIcB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AXFyRQ0AIAAoAgghAyACKAIIIAAoAgwiAEEBdWoiBCABIABBAXEEfyAEKAIAIANqKAIABSADCxEAAAsgAkEIahCWAxogAkEQaiQACw0AIABBqI8CNgIAIAALCgAgABCkDBCQEwsVACAAQcSPAjYCACAAQQRqEMQDIAALCgAgABCmDBCQEwtOAQJ/IwBBIGsiASQAIABBBGohAiABQQhqQRQQoxYgASABQRhqQQEQrwIQvgIiACgCACACIAEQqQwgABC5AiECIAAQ6gMgAUEgaiQAIAILHAAgABCXCCIAQcSPAjYCACAAQQRqIAEgAhCaDAsQACABIABBBGoiACAAEKkMC3wBA38jAEEQayIBJAAgAUEIaiICIABBBGoiABChAwJAIAIQlANFDQAgACgCCCAAKAIMQQFxckUNACAAKAIIIQIgASgCCCAAKAIMIgBBAXVqIgMgAEEBcQR/IAMoAgAgAmooAgAFIAILEQEACyABQQhqEJYDGiABQRBqJAALeAECfyMAQRBrIgMkACAAIAEQtQIiAEEBEOcHIANBCGogAEEAEL0CEL4CIgQoAgBBEGohASACKAIAIQIjAEEQayIAJAAgACACNgIIIAEgACgCCCgCADYCACABQQRqEC4aIABBEGokACAEELUCQQE6AAQgA0EQaiQACw0AIABBjJACNgIAIAALMQAgARCqAyEBIAIQqgMaIwBBEGsiAiQAIAIgATYCCCAAIAIoAggQxgMaIAJBEGokAAsVACAAQeiPAjYCACAAQQRqEMQDIAALCgAgABCvDBCQEwtIAQJ/IwBBIGsiASQAIAFBCGpBDBCjFiABIAFBGGoQlQgQvgIiAigCACAAQQRqIAEQsgwgAhC5AiEAIAIQlgggAUEgaiQAIAALHAAgABCtDCIAQeiPAjYCACAAQQRqIAEgAhC2DAsQACABIABBBGoiACAAELIMCw8AIABBBGoQxAMgABCQEwvuAgEEfyMAQdAAayIBJAAgAUHIAGoiAyAAQQRqEKEDIAMQlAMEQCABQUBrIgMQtwwgASgCSCEAIAFBOGogAxCYAyECIAFBATYCNCABIAIpAgA3AxggACABQRhqIAFBNGoQ+wsgASgCSCECIAEgAUEoaiADEJgDKQIANwMQIAFBEGohBSMAQYACayIAJAAgAEGAAWogAigCFBDTDiAAQegAakEA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RRogBUE8akHv2AAQRRogBEEGNgJcIAQgBTYCWCAEIAQpA1g3AwBByLADIAQgBEEIahCfDRogBUHIAGohBgNAIAZBDGsQrhYiBiAFRw0AC0HUsANBAToAAAsgBEHIsAMgARCjATYCECAEQciwAxClATYCCCAEQRBqIARBCGoQsgEEQCAEQQhqIgUgACgCUCIGIAYoAgAoAhARAAAgBSgCACIGIARBEGpB9dwAEEUiCCAAQdgAaiAGKAIAKALAAREDACAIEK4WGiAFEJYDGgsgBEHgAGokACAHIABBJGoiBCABEK0DNgJIIAcgBBCTATYCOAJAIAdByABqIAdBOGoQoAEEQCAAIAdByABqELABIgEoAhAiBEEBdWohACABKAIMIQEgBEEBcQRAIAAoAgAgAWooAgAhAQsgACACIAdBIGogAxChCCIAIAERAwAMAQsgACgCDCEFIAdBCGogAxChCCEAIwBB8ABrIgMkACADIAVBFGoiBBCiAzYCQCADIAQQhQI2AjAgA0FAayADQTBqELIBBEADQCADQeAAaiIGIANBQGsQowMQoQMgBhCUAwRAIAMoAmAiBkEBIAEgBigCACgCABEDAAsgA0HgAGoQlgMaIANBQGsiBhCkAyAGIANBMGoQsgENAAsLIANB4ABqIgZBASABEJ8LIAMgBSAGEKMJNgJYIAMQpAk2AkACQCADQdgAaiADQUBrELMBBEAgAyAEEKIDNgIwIAMgBBCFAjYCUCADQTBqIANB0ABqELIBRQ0BA0AgA0FAayICIANBMGoQowMQoQMgAhCUAwRAIANBQGsoAgAiAkEBIAEgAigCACgCBBEDAAsgA0FAaxCWAxogA0EwaiICEKQDIAIgA0HQAGoQsgENAAsMAQsgAyADQUBrIANB2ABqEKMDQQxqEI4LIgUQogM2AlAgAyAFEIUCNgI4QQAhBiADQdAAaiADQThqELIBBEADQCADQTBqIgkgA0HQAGoQowMiCBChAwJAIAkQlANFDQAgCEEIahCUA0UNACAIKAIIIgpFDQAgA0EAOgAvIANBIGogAhC2ASEIIANBCGogABDkBSEJIwBBIGsiCyQAIAogCCALQQhqIAkQoQgiChCtCyAKEOgFGiALQSBqJAAgCRDnBRogCBCuFhogAy0ALyAGckEARyEGCyADQTBqEJYDGiADQdAAaiIIEKQD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IARBQGskAAJAIAFFBEAgA0EYakGTlQFBnwNBAiADQQhqQZnfARBFIgAQ9AMiAUGDCBBqQbD0ABBqQYMIEGpBvLUBEGpBznYQzRNBgbQBEGogBhCfAkGSogEQahogARD2AyAAEK4WGiACEOsFRQ0BIAJBznYgBiADQRhqQZnfARBFIgAQ6wsgABCuFhoMAQsgAEEBOgDAASADKALMAUEBRwRAIANBGGpBk5UBQaYDQQEgA0EIakGZ3wEQRSIAEPQDIgFBgwgQakGw9AAQakGDCBBqQayyARBqIAMoAswBEM0TQZKiARBqGiABEPYDIAAQrhYaDAELIwBBwARrIgEkACABQcADaiAAKAIQENMOIAFBsANqAn8gASgChARBAUYEQCABQfQDahDfCgwBCyABQegDagsQtgEhByABQcgBahCgBiEIIAAoAhAaIAFBwAFqIgkQrQYgCSgCACEKIwBB4ABrIgskACALEMQOIgJBKGpB8JkCEKECIAIgAUHAA2oiBSgCGDYCGCACQRxqIAVBHGoQViACQQE6AEQgAUEYaiIMEMcOIgRBBGoQkQYQViAEIAUoAkA2AiAgBSgCGCENIARBAToAJSAEIA02AhwgBEE0aiACEOIOIAIQxg4gC0HgAGokACABQbABaiICIAwQyg4gAUEANgIUIAFBrgc2AhAgAUEIaiIEIABBBGoQngMgCiAHIAJBHkEAIAggAUEQaiAEEJAPIAooAgAoAlwRDAAgBBCWAxogAhCuFhogDBDJDiAJEJYDGiAIEKIGIAcQrhYaIAUQzw0gAUHABGokAAsgBhCuFhoLIANB0AFqEM8NIANB0AJqJAALkQIBAn8jAEHgE2siAyQAIAAQyg0hBAJAIAIoAgAiAARAIAQgADYCAAwBCyACQQRqEEFFBEAgBEEANgIADAELIANBEGoiACABKAIQENwOIAMgABCSAjYCCCADIAAQkwI2AtgTQQAhACADQQhqIANB2BNqELIBBEADQCAAIANBCGoiASgCACwAAGohACABEJUCIAEgA0HYE2oQsgENAAsLIANBEGoiARCuFhogASAAEOEFp2oQng0hACAEIANBCGpB/////wcQhw8gABCIDzYCAAsCQCACQQRqIgAQQUUEQCADQRBqIAAQtgEaDAELIANBEGoQLhoLIARBBGogA0EQaiIAEFYgABCuFhog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A0FAaygCACIEQaGcASABIAQoAgAoAgARAwALIANBQGsQlgMaIANBIGoiBBCkAyAEIANBEGoQsgENAAsLIANBQGsiBEGhnAEgARCfCyADIAAgBBCjCTYCOCADEKQJNgIgAkAgA0E4aiADQSBqELMBBEAgAyAFEKIDNgIQIAMgBRCFAjYCMCADQRBqIANBMGoQsgFFDQEDQCADQSBqIgAgA0EQahCjAxChAyAAEJQDBEAgAygCICIAQaGcASABIAAoAgAoAgQRAwALIANBIGoQlgMaIANBEGoiABCkAyAAIANBMGoQsgENAAsMAQsgAyADQSBqIANBOGoQowNBDGoQjgsiBBCiAzYCMCADIAQQhQI2AhggA0EwaiADQRhqELIBBEADQCADQRBqIgAgA0EwahCjAyIGEKEDAkAgABCUA0UNACAGQQhqIgAQlANFDQAgACgCACIGRQ0AIANBADoADyACKAIAIQgjAEEQayIAJAAgACAINgIMIAYgAEEMahCjCCAAQRBqJAAgAy0ADyAHckEARyEHCyADQRBqEJYDGiADQTBqIgAQpAMgACADQRhqELIBDQALCyADIAUQogM2AjAgAyAFEIUCNgIYIANBMGogA0EYahCyAQRAA0AgA0EQaiIAIANBMGoQowMQoQMgABCUAwRAIAMoAhAiAEGhnAEgASAAKAIAKAIEEQMACyADQRBqEJYDGiADQTBqIgAQpAMgACADQRhqELIBDQALCyAEEN8FCyADQUBrEK4WGiADQdAAaiQAC1UBAn8jAEGgAWsiAiQAIABBABCMDyAAQShqIAJBCGoQxw4iARCODyABEMkOIABBADoAwAEgACgCECIBBEAgARDXDiAAKAIQQQEQ3Q4LIAJBoAFqJAALQQEBfyAAQbibAjYCDCAAQayaAjYCACAAQShqEMkOIABBIGoQlgMaIABBFGoiASABELMCEMMPIABBBGoQjwMaIAALCgAgAEEMaxCADwsNACAAEIAPGiAAEJATCwoAIABBDGsQgg8LeAEFfyMAQSBrIgEkACABQRhqIgMgACgCECICIAIoAgAoAhARAAAgAygCACECIAFBCGoiBCAAQQRqEJ4DIAFBEGogBBCfAyEAIAIoAgAoAhAhBSABIAApAgA3AwAgAiABIAURAAAgBBCWAxogAxCWAxogAUEgaiQAC28BBX8jAEEg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IAVBwAJqJAALDgAgAEEMayABIAIQoxALKgAgACAAELMCEK8QIAAQqQFBADYCACAAIAAQtQI2AgAgABC1AkEANgIAC9sBAgZ/AX4jAEEQayIGJAAgBiABNgIMIABBEGoiASEFIAEQqQEhByABQfABaiEIIwBBIGsiASQAIAFBGGoiBCAFEKEDIAQQlAMEQCABKAIYIQQgASAAKQIIIgo3AwggASAKNwMQIwBBIGsiBSQAIAQgASgCDCIJQQF1aiEEIAEoAgghACAJQQFxBEAgBCgCACAAaigCACEACyAEIAcgBUEIaiAIEKEIIgQgBigCDCACIAMgABEIACAEEOcFGiAFQSBqJAALIAFBGGoQlgMaIAFBIGokACAGQRBqJAALIgEBfyAAQRBqIgFB8AFqEPkHIAFBCGoQogYgARCPAxogAAsKACAAEKcQEJATCwoAIAAgARChBhoLQgEBfyMAQRBrIgQkACAEIAE2AgwgAEEIaiAAQRBqIgAgABCpASAAEHggAEH4AWogBEEMaiACIAMQug8gBEEQaiQACyoBAX8gAEEQaiIBQfgBahD5ByABQRRqEKIGIAFBCGoQ5wMgARCPAxogAAsKACAAEKsQEJATCwoAIAAgARDNDRoLLQAgAQRAIAAgASgCABCuECAAIAEoAgQQrhAgABC1AiABQRBqELYCIAEQkBMLCy4AIAEEQCAAIAEoAgAQrxAgACABKAIEEK8QIAAQtQIaIAFBEGoQsBAgARCQEwsLEAAgAEEMahDnAyAAEK4WGgsVACAAQaShAjYCACAAQQRqEMQDIAALCgAgABCxEBCQEwtOAQJ/IwBBIGsiASQAIABBBGohAiABQQhqQRQQoxYgASABQRhqQQEQrwIQvgIiACgCACACIAEQtBAgABC5AiECIAAQ6gMgAUEgaiQAIAILHAAgABCQDCIAQaShAjYCACAAQQRqIAEgAhCaDAsQACABIABBBGoiACAAELQQCxUAIABBzKECNgIAIABBCGoQ+Q4gAAsKACAAELYQEJATC08BAn8jAEEgayIBJAAgAEEIaiECIAFBCGpBuAIQoxYgASABQRhqQQEQrwIQvgIiACgCACACIAEQuRAgABC5AiECIAAQzwUgAUEgaiQAIAILHAAgABCXCCIAQcyhAjYCACAAQQhqIAEgAhDSDwsQACABIABBCGoiACAA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uAFBAkYEQCADQRBqIgQgACgCFCIHIAcoAgAoAhARAAAgBCgCACIHIANBQGsQ5QUiCCADQShqEOUFIgkgBygCACgCkAERAwAgCRDnBRogCBDnBRogBBCWAxoLIAMgA0EgaiADQegAahCYAykCADcDCCADQQhqIANB+ABqELwODAELIAAoAhQtACRFDQAgA0EQaiIEIAAoAhQQ3A4gACAEQQcQ3hAgBBCuFhogABDfEAsgA0HwAGoiBBCkAyAEIANB4ABqELIBDQALCyADQegAahCWAxogA0H4AGoQzw0LIAIQ5wMgA0GIAmoQrhYaIAYoAgghAiAGEKkBIQUgAgRAA0AgAigCACEEIAUgAkEIahC2AiACEJATIAQiAg0ACwsgBhCfCiADQbACaiQAIwBB0ABrIgIkACACQUBrEI8BIQQgAiABEKIDNgIwIAIgARCFAjYCOCACQTBqIAJBOGoQsgEEQANAIAJBGGogBCACQTBqIgMQowMQ2wsgAxCkAyADIAJBOGoQsgENAAsLIAJBMGogACgCFBDbDiACIABBJGoiAxCiAzYCOCACIAMQhQI2AigCQCACQThqIAJBKGoQsgFFDQADQCAEIAJBOGoQowMiAxD7EEUEQCACQRhqIgYgACgCFBDcDiADIAYQigUhBSAGEK4WGiAFBEAgABDtECACQRhqIgMgACgCFBDcDiAAIANBABDeECADEK4WGiAAEN8QDAMLIAJBEGogACgCFBDbDiACIAIpAxA3AwggAkEIaiADELgOCyACQThqIgMQpAMgAyACQShqELIBDQALCyACQTBqEJYDGiAEEJgBIAJB0ABqJAALIA8gARDoEAubEAERfyMAQSBrIhIkACASQQhqIAIQ5AUhEyMAQZABayIIJAAgCEEQaiAAKAIUENMOIAhBxABqIgsQnAEEQANAQZCwChDwAyALEJwBIAZBAWoiBksNAAsLIAAoAjAhECAIKAJQIQIgCEEANgIMIAhB9gg2AgggCCAAQQRqEJ4DIAhBHGohESMAQRBrIgwkACAMIAxBCGogCBCcAykCADcDACMAQRBrIgkkACAJQQhqIAwQnwMhCiMAQSBrIgMkACADQQA2AhAgA0EQahC5AyEFIANB/Qg2AgQjAEEQayIGJABBMBCjFiADKAIEEMEDIgBBxKUCNgIAIAAgCCkCCDcDCCAAQRBq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EKwCIgBBEGoQrhYaIABBCGoQjwMaIAAQjwMaCy0AIAEEQCAAIAEoAgAQqREgACABKAIEEKkRIAAQtQIgAUEQahC2AiABEJATCwsVACAAQeCmAjYCACAAQQRqEMQDIAALCgAgABCqERCQEwtOAQJ/IwBBIGsiASQAIABBBGohAiABQQhqQRQQoxYgASABQRhqQQEQrwIQvgIiACgCACACIAEQrREgABC5AiECIAAQ6gMgAUEgaiQAIAILHAAgABCQDCIAQeCmAjYCACAAQQRqIAEgAhCaDAsQACABIABBBGoiACAAEK0RCxUAIABBhKcCNgIAIABBBGoQxAMgAAsKACAAEK8REJATC04BAn8jAEEgayIBJAAgAEEEaiECIAFBCGpBFBCjFiABIAFBGGpBARCvAhC+AiIAKAIAIAIgARCyESAAELkCIQIgABDqAyABQSBqJAAgAgscACAAEJcIIgBBhKcCNgIAIABBBGogASACEJoMCxAAIAEgAEEEaiIAIAAQshELFQAgAEGopwI2AgAgAEEIahD5DiAACwoAIAAQtBEQkBMLTwECfyMAQSBrIgEkACAAQQhqIQIgAUEIakG4AhCjFiABIAFBGGpBARCvAhC+AiIAKAIAIAIgARC3ESAAELkCIQIgABDPBSABQSBqJAAgAgscACAAEJcIIgBBqKcCNgIAIABBCGogASACENIPCxAAIAEgAEEIaiIAIAAQtxELFQAgAEHMpwI2AgAgAEEIahDoDSAACwoAIAAQuREQkBMLTgECfyMAQSBrIgEkACAAQQhqIQIgAUEIakEwEKMWIAEgAUEYakEBEK8CEL4CIgAoAgAgAiABELwRIAAQuQIhAiAAEM8FIAFBIGokACACCxwAIAAQpAgiAEHMpwI2AgAgAEEIaiABIAIQkQ4LEAAgASAAQQhqIgAgABC8EQsVACAAQfCnAjYCACAAQQhqEOgNIAALCgAgABC+ERCQEwtOAQJ/IwBBIGsiASQAIABBCGohAiABQQhqQTAQoxYgASABQRhqQQEQrwIQvgIiACgCACACIAEQwREgABC5AiECIAAQzwUgAUEgaiQAIAILHAAgABCXCCIAQfCnAjYCACAAQQhqIAEgAhCRDgsQACABIABBCGoiACAAEMERCxUAIABBlKgCNgIAIABBCGoQ6A0gAAsKACAAEMMREJATC04B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Sw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvWAgECfwJAIAAgAUYNACABIAAgAmoiBGtBACACQQF0a00EQCAAIAEgAhDhEhoPCyAAIAFzQQNxIQMCQAJAIAAgAUkEQCADDQIgAEEDcUUNAQNAIAJFDQQgACABLQAAOgAAIAFBAWohASACQQFrIQIgAEEBaiIAQQNxDQALDAELAkAgAw0AIARBA3EEQANAIAJFDQUgACACQQFrIgJqIgMgASACai0AADoAACADQQNxDQALCyACQQNNDQADQCAAIAJBBGsiAmogASACaigCADYCACACQQNLDQALCyACRQ0CA0AgACACQQFrIgJqIAEgAmotAAA6AAAgAg0ACwwCCyACQQNNDQADQCAAIAEoAgA2AgAgAUEEaiEBIABBBGohACACQQRrIgJBA0sNAAsLIAJFDQADQCAAIAEtAAA6AAAgAEEBaiEAIAFBAWohASACQQFrIgINAAsLC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQg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IBFBABD5EiAAIAwgERD1EiAAQSAgByALIA1BgMAAcxD5EgwBCwtBACEODAMLQT0hCgtBnLEDIAo2AgALQX8hDgsgCEHQAGokACAOC8ABAQN/IAAtAABBIHFFBEACQCABIQMCQCACIAAiASgCECIABH8gAAUgARDxEg0BIAEoAhALIAEoAhQiBWtLBEAgASADIAIgASgCJBEHABoMAgsCQCABKAJQQQBIDQAgAiEAA0AgACIERQ0BIAMgBEEBayIAai0AAEEKRw0ACyABIAMgBCABKAIkEQcAIARJDQEgAyAEaiEDIAIgBGshAiABKAIUIQULIAUgAyACEOESGiABIAEoAhQgAmo2AhQLCwsLbQEEfyAAKAIALAAAEOUSRQRAQQAPCwNAIAAoAgAhA0F/IQEgAkHMmbPmAE0EQEF/IAMsAABBMGsiBCACQQpsIgFqIAQgAUH/////B3NKGyEBCyAAIANBAWo2AgAgASECIAMsAAEQ5RINAAsgAQvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAAALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC4MBAgN/AX4CQCAAQoCAgIAQVARAIAAhBQwBCwNAIAFBAWsiASAAIABCCoAiBUIKfn2nQTByOgAAIABC/////58BViECIAUhACACDQALCyAFpyICBEADQCABQQFrIgEgAiACQQpuIgNBCmxrQTByOgAAIAJBCUshBCADIQIgBA0ACwsgAQtwAQF/IwBBgAJrIgUkACAEQYDABHEgAiADTHJFBEAgBSABQf8BcSACIANrIgNBgAIgA0GAAkkiARsQ4xIa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MGogASACQgBCgICAgICAgDkQnhMgA0HogX0gA0HogX1KG0Ga/gFqIQMgBCkDOCECIAQpAzAhAQsgBCABIAJCACADQf//AGqtQjCGEJ4TIAAgBCkDCDcDCCAAIAQpAwA3AwAgBEHQAGokAAvXBgIEfwN+IwBBgAFrIgUkAAJAAkACQCADIARCAEIAEJcTRQ0AAn8gBEL///////8/gyEJAn8gBEIwiKdB//8BcSIGQf//AUcEQEEEIAYNARpBAkEDIAMgCYRQGwwCCyADIAmEUAsLIQcgAkIwiKciCEH//wFxIgZB//8BRg0AIAcNAQsgBUEQaiABIAIgAyAEEJ4TIAUgBSkDECIBIAUpAxgiAiABIAIQmRMgBSkDCCECIAUpAwAhBAwBCyABIAJC////////P4MgBq1CMIaEIgogAyAEQv///////z+DIARCMIinQf//AXEiB61CMIaEIgkQlxNBAEwEQCABIAogAyAJEJcTBEAgASEEDAILIAVB8ABqIAEgAkIAQgAQnhMgBSkDeCECIAUpA3AhBAwBCyAGBH4gAQUgBUHgAGogASAKQgBCgICAgICAwLvAABCeEyAFKQNoIgpCMIinQfgAayEGIAUpA2ALIQQgB0UEQCAFQdAAaiADIAlCAEKAgICAgIDAu8AAEJ4TIAUpA1giCUIwiKdB+ABrIQcgBSkDUCEDCyAJQv///////z+DQoCAgICAgMAAhCEJIApC////////P4NCgICAgICAwACEIQogBiAHSgRAA0ACfiAKIAl9IAMgBFatfSILQgBZBEAgCyAEIAN9IgSEUARAIAVBIGogASACQgBCABCeEyAFKQMoIQIgBSkDICEEDAULIAtCAYYgBEI/iIQMAQsgCkIBhiAEQj+IhAshCiAEQgGGIQQgBkEBayIGIAdKDQALIAchBgsCQCAKIAl9IAMgBFatfSIJQgBTBEAgCiEJDAELIAkgBCADfSIEhEIAUg0AIAVBMGogASACQgBCABCeEyAFKQM4IQIgBSkDMCEEDAELIAlC////////P1gEQANAIARCP4ghASAGQQFrIQYgBEIBhiEEIAEgCUIBhoQiCUKAgICAgIDAAFQNAAsLIAhBgIACcSEHIAZBAEwEQCAFQUBrIAQgCUL///////8/gyAGQfgAaiAHcq1CMIaEQgBCgICAgICAwMM/EJ4T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AggLIQEgAiAANgIIIAEgADYCDCAAIAI2AgwgACABNgIIDwtBHyEEIAFB////B00EQCABIAFBCHYiAiACQYD+P2pBEHZBCHEiBHQiA0GA4B9qQRB2QQRxIgIgBHIgAyACdCIDQYCAD2pBEHZBAnEiAnJBDnMgAyACdEEPdmoiAkEHanZBAXEgAkEBdHIhBAsgACAENgIcIABCADcCECAEQQJ0QZS1A2ohBwJAAkBB6LIDKAIAIgNBASAEdCICcUUEQEHosgMgAiADcjYCACAHIAA2AgAgACAHNgIYDAELIAFBAEEZIARBAXZrIARBH0YbdCEEIAcoAgAhAgNAIAIiAygCBEF4cSABRg0CIARBHXYhAiAEQQF0IQQgAyACQQRxaiIHQRBqKAIAIgINAAsgByAANgIQIAAgAzYCGAsgACAANgIMIAAgADYCCA8LIAMoAggiASAANgIMIAMgADYCCCAAQQA2AhggACADNgIMIAAgATYCCAsLWAIBfwF+AkACf0EAIABFDQAaIACtIgKnIgEgAEEBckGAgARJDQAaQX8gASACQiCIpxsLIgEQjxMiAEUNACAAQQRrLQAAQQNxRQ0AIABBACABEOMSGgsgAAtSAQJ/QeSrAygCACIBIABBA2pBfHEiAmohAAJAIAJBACAAIAFNGw0AIAA/AEEQdEsEQCAAECVFDQELQeSrAyAANgIAIAEPC0GcsQNBMDYCAEF/C8wJAgR+BH8jAEHwAGsiCiQAIARC////////////AIMhBQJAAkAgAVAiCSACQv///////////wCDIgZCgICAgICAwP//AH1CgICAgICAwICAf1QgBlAbRQRAIANCAFIgBUKAgICAgIDA//8AfSIIQoCAgICAgMCAgH9WIAhCgICAgICAwICAf1EbDQELIAkgBkKAgICAgIDA//8AVCAGQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQQgASEDDAILIANQIAVCgICAgICAwP//AFQgBUKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEEDAILIAEgBkKAgICAgIDA//8AhYRQBEBCgICAgICA4P//ACACIAEgA4UgAiAEhUKAgICAgICAgIB/hYRQIgkbIQRCACABIAkbIQMMAgsgAyAFQoCAgICAgMD//wCFhFANASABIAaEUARAIAMgBYRCAFINAiABIAODIQMgAiAEgyEEDAILIAMgBYRQRQ0AIAEhAyACIQQMAQsgAyABIAEgA1QgBSAGViAFIAZRGyIMGyEFIAQgAiAMGyIIQv///////z+DIQYgAiAEIAwbIgdCMIinQf//AXEhCyAIQjCIp0H//wFxIglFBEAgCkHgAGogBSAGIAUgBiAGUCIJG3kgCUEGdK18pyIJQQ9rEJYTIAopA2ghBiAKKQNgIQVBECAJayEJCyABIAMgDBshAyAHQv///////z+DIQQgC0UEQCAKQdAAaiADIAQgAyAEIARQIgsbeSALQQZ0rXynIgtBD2sQlhNBECALayELIAopA1ghBCAKKQNQIQMLIARCA4YgA0I9iIRCgICAgICAgASEIQIgBkIDhiAFQj2IhCEEIANCA4YhASAHIAiFIQMCQCAJIAtGDQAgCSALayILQf8ASwRAQgAhAkIBIQEMAQsgCkFAayABIAJBgAEgC2sQlhMgCkEwaiABIAIgCxCdEyAKKQMwIAopA0AgCikDSIRCAFKthCEBIAopAzghAgsgBEKAgICAgICABIQhByAFQgOGIQYCQCADQgBTBEBCACEDQgAhBCABIAaFIAIgB4WEUA0CIAYgAX0hBSAHIAJ9IAEgBlatfSIEQv////////8DVg0BIApBIGogBSAEIAUgBCAEUCILG3kgC0EGdK18p0EMayILEJYTIAkgC2shCSAKKQMoIQQgCikDICEFDAELIAEgBnwiBSABVK0gAiAHfHwiBEKAgICAgICACINQDQAgBUIBgyAEQj+GIAVCAYiEhCEFIAlBAWohCSAEQgGIIQQLIAhCgICAgICAgICAf4MhASAJQf//AU4EQCABQoCAgICAgMD//wCEIQRCACEDDAELQQAhCwJAIAlBAEoEQCAJIQsMAQsgCkEQaiAFIAQgCUH/AGoQlhMgCiAFIARBASAJaxCdEyAKKQMAIAopAxAgCikDGIRCAFKthCEFIAopAwghBAsgBEI9hiAFQgOIhCICIAWnQQdxIglBBEutfCIDIAJUrSAEQgOIQv///////z+DIAutQjCGhCABhHwhBAJAIAlBBEYEQCAEIANCAYMiASADfCIDIAFUrXwhBAwBCyAJRQ0BCwsgACADNwMAIAAgBDcDCCAKQfAAaiQAC1ABAX4CQCADQcAAcQRAIAEgA0FAaq2GIQJCACEBDAELIANFDQAgAiADrSIEhiABQcAAIANrrYiEIQIgASAEhiEBCyAAIAE3AwAgACACNwMIC9sBAgF/An5BASEEAkAgAEIAUiABQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AURsNACACQgBSIANC////////////AIMiBkKAgICAgIDA//8AViAGQoCAgICAgMD//wBRGw0AIAAgAoQgBSAGhIRQBEBBAA8LIAEgA4NCAFkEQEF/IQQgACACVCABIANTIAEgA1EbDQEgACAChSABIAOFhEIAUg8LQX8hBCAAIAJWIAEgA1UgASADURsNACAAIAKFIAEgA4WEQgBSIQQLIAQLxAECAX8CfkF/IQMCQCAAQgBSIAFC////////////AIMiBEKAgICAgIDA//8AViAEQoCAgICAgMD//wBRGw0AQQAgAkL///////////8AgyIFQoCAgICAgMD//wBWIAVCgICAgICAwP//AFEbDQAgACAEIAWEhFAEQEEADwsgASACg0IAWQRAQQAgASACUyABIAJRGw0BIAAgASAChYRCAFIPCyAAQgBSIAEgAlUgASACURsNACAAIAEgAoWEQgBSIQMLIAMLtg8CBX8OfiMAQdACayIFJAAgBEL///////8/gyEKIAJC////////P4MhDCACIASFQoCAgICAgICAgH+DIQ0gBEIwiKdB//8BcSEIAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgCEH//wFrQYGAfksNAQsgAVAgAkL///////////8AgyIPQoCAgICAgMD//wBUIA9CgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhDQwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCENIAMhAQwCCyABIA9CgICAgICAwP//AIWEUARAIAMgAkKAgICAgIDA//8AhYRQBEBCACEBQoCAgICAgOD//wAhDQwDCyANQoCAgICAgMD//wCEIQ1CACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEBCACEBDAILIAEgD4RQBEBCgICAgICA4P//ACANIAIgA4RQGyENQgAhAQwCCyACIAOEUARAIA1CgICAgICAwP//AIQhDUIAIQEMAgsgD0L///////8/WARAIAVBwAJqIAEgDCABIAwgDFAiBht5IAZBBnStfKciBkEPaxCWE0EQIAZrIQYgBSkDyAIhDCAFKQPAAiEBCyACQv///////z9WDQAgBUGwAmogAyAKIAMgCiAKUCIHG3kgB0EGdK18pyIHQQ9rEJYTIAYgB2pBEGshBiAFKQO4AiEKIAUpA7ACIQMLIAVBoAJqIApCgICAgICAwACEIhJCD4YgA0IxiIQiAkIAQoCAgICw5ryC9QAgAn0iBEIAEJ8TIAVBkAJqQgAgBSkDqAJ9QgAgBEIAEJ8TIAVBgAJqIAUpA5gCQgGGIAUpA5ACQj+IhCIEQgAgAkIAEJ8TIAVB8AFqIARCAEIAIAUpA4gCfUIAEJ8TIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAEJ8TIAVB0AFqIARCAEIAIAUpA+gBfUIAEJ8TIAVBwAFqIAUpA9gBQgGGIAUpA9ABQj+IhCIEQgAgAkIAEJ8TIAVBsAFqIARCAEIAIAUpA8gBfUIAEJ8TIAVBoAFqIAJCACAFKQO4AUIBhiAFKQOwAUI/iIRCAX0iAkIAEJ8TIAVBkAFqIANCD4ZCACACQgAQnxMgBUHwAGogAkIAQgAgBSkDqAEgBSkDoAEiDyAFKQOYAXwiBCAPVK18IARCAVatfH1CABCfEyAFQYABakIBIAR9QgAgAkIAEJ8TIAYgCSAIa2ohBgJ/IAUpA3AiEEIBhiIUIAUpA4gBIg5CAYYgBSkDgAFCP4iEfCILQufsAH0iFUIgiCICIAxCgICAgICAwACEIhZCAYYgAUI/iIQiDEIgiCIEfiIRIAFCAYYiD0IgiCIKIAsgFVatIAsgFFStIAUpA3hCAYYgEEI/iIQgDkI/iHx8fEIBfSIQQiCIIgt+fCIOIBFUrSAOIA4gEEL/////D4MiECAMQv////8PgyIUfnwiDlatfCAEIAt+fCAEIBB+IhMgCyAUfnwiESATVK1CIIYgEUIgiIR8IA4gDiARQiCGfCIOVq18IA4gDiAVQv////8PgyIVIBR+IhMgAiAKfnwiESATVK0gESARIBAgD0L+////D4MiE358IhFWrXx8Ig5WrXwgDiAEIBV+IhcgCyATfnwiBCACIBR+fCILIAogEH58IhBCIIggCyAQVq0gBCAXVK0gBCALVq18fEIghoR8IgQgDlStfCAEIBEgAiATfiICIAogFX58IgpCIIggAiAKVq1CIIaEfCICIBFUrSACIBBCIIZ8IAJUrXx8IgIgBFStfCIEQv////////8AWARAIAVB0ABqIAIgBCADIBIQnxMgAUIxhiAFKQNYfSAFKQNQIgFCAFKtfSELQgAgAX0hCiAGQf7/AGoMAQsgBUHgAGogBEI/hiACQgGIhCICIARCAYgiBCADIBIQnxMgAUIwhiAFKQNofSAFKQNgIgxCAFKtfSELQgAgDH0hCiABIQ8gFiEMIAZB//8AagsiBkH//wFOBEAgDUKAgICAgIDA//8AhCENQgAhAQwBCwJ+IAZBAEoEQCALQgGGIApCP4iEIQsgBEL///////8/gyAGrUIwhoQhDCAKQgGGDAELIAZBj39MBEBCACEBDAILIAVBQGsgAiAEQQEgBmsQnRMgBUEwaiAPIAwgBkHwAGoQlhMgBUEgaiADIBIgBSkDQCICIAUpA0giDBCfEyAFKQM4IAUpAyhCAYYgBSkDICIBQj+IhH0gBSkDMCIEIAFCAYYiAVStfSELIAQgAX0LIQQgBUEQaiADIBJCA0IAEJ8TIAUgAyASQgVCABCfEyAMIAIgAiADIAJCAYMiASAEfCIDVCALIAEgA1atfCIBIBJWIAEgElEbrXwiAlatfCIEIAIgAiAEQoCAgICAgMD//wBUIAMgBSkDEFYgASAFKQMYIgRWIAEgBFEbca18IgJWrXwiBCACIARCgICAgICAwP//AFQgAyAFKQMAViABIAUpAwgiA1YgASADURtxrXwiASACVK18IA2EIQ0LIAAgATcDACAAIA03AwggBUHQAmokAAv6AQIDfgJ/IwBBEGsiBSQAAn4gAb0iA0L///////////8AgyICQoCAgICAgIAIfUL/////////7/8AWARAIAJCPIYhBCACQgSIQoCAgICAgICAPHwMAQsgAkKAgICAgICA+P8AWgRAIANCPIYhBCADQgSIQoCAgICAgMD//wCEDAELIAJQBEBCAAwBCyAFIAJCACADp2dBIGogAkIgiKdnIAJCgICAgBBUGyIGQTFqEJYTIAUpAwAhBCAFKQMIQoCAgICAgMAAhUGM+AAgBmutQjCGhAshAiAAIAQ3AwAgACACIANCgICAgICAgICAf4OENwMIIAVBEGokAAt/AgJ/AX4jAEEQayIDJAAgAAJ+IAFFBEBCAAwBCyADIAEgAUEfdSICcyACayICrUIAIAJnIgJB0QBqEJYTIAMpAwhCgICAgICAwACFQZ6AASACa61CMIZ8IAFBgICAgHhxrUIghoQhBCADKQMACzcDACAAIAQ3AwggA0EQaiQAC2QCAX8BfiMAQRBrIgIkACAAAn4gAUUEQEIADAELIAIgAa1CACABZyIBQdEAahCWEyACKQMIQoCAgICAgMAAhUGegAEgAWutQjCGfCEDIAIpAwALNwMAIAAgAzcDCCACQRBqJAALUAEBfgJAIANBwABxBEAgAiADQUBqrYghAUIAIQIMAQsgA0UNACACQcAAIANrrYYgASADrSIEiIQhASACIASIIQILIAAgATcDACAAIAI3AwgLyQoCBX8PfiMAQeAAayIFJAAgBEL///////8/gyEMIAIgBIVCgICAgICAgICAf4MhCiACQv///////z+DIg1CIIghDiAEQjCIp0H//wFxIQcCQAJAIAJCMIinQf//AXEiCUH//wFrQYKAfk8EQCAHQf//AWtBgYB+Sw0BCyABUCACQv///////////wCDIgtCgICAgICAwP//AFQgC0KAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEKDAILIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQogAyEBDAILIAEgC0KAgICAgIDA//8AhYRQBEAgAiADhFAEQEKAgICAgIDg//8AIQpCACEBDAMLIApCgICAgICAwP//AIQhCkIAIQEMAgsgAyACQoCAgICAgMD//wCFhFAEQCABIAuEIQJCACEBIAJQBEBCgICAgICA4P//ACEKDAMLIApCgICAgICAwP//AIQhCgwCCyABIAuEUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyALQv///////z9YBEAgBUHQAGogASANIAEgDSANUCIGG3kgBkEGdK18pyIGQQ9rEJYTQRAgBmshBiAFKQNYIg1CIIghDiAFKQNQIQELIAJC////////P1YNACAFQUBrIAMgDCADIAwgDFAiCBt5IAhBBnStfKciCEEPaxCWEyAGIAhrQRBqIQYgBSkDSCEMIAUpA0AhAwsgA0IPhiILQoCA/v8PgyICIAFCIIgiBH4iECALQiCIIhMgAUL/////D4MiAX58Ig9CIIYiESABIAJ+fCILIBFUrSACIA1C/////w+DIg1+IhUgBCATfnwiESAMQg+GIANCMYiEIhJC/////w+DIgMgAX58IhQgDyAQVK1CIIYgD0IgiIR8Ig8gAiAOQoCABIQiDH4iFiANIBN+fCIOIBJCIIhCgICAgAiEIgIgAX58IhAgAyAEfnwiEkIghnwiF3whASAHIAlqIAZqQf//AGshBgJAIAIgBH4iGCAMIBN+fCIEIBhUrSAEIAQgAyANfnwiBFatfCACIAx+fCAEIAQgESAVVK0gESAUVq18fCIEVq18IAMgDH4iAyACIA1+fCICIANUrUIghiACQiCIhHwgBCACQiCGfCICIARUrXwgAiACIBAgElatIA4gFlStIA4gEFatfHxCIIYgEkIgiIR8IgJWrXwgAiACIA8gFFStIA8gF1atfHwiAlatfCIEQoCAgICAgMAAg1BFBEAgBkEBaiEGDAELIAtCP4ghAyAEQgGGIAJCP4iEIQQgAkIBhiABQj+IhCECIAtCAYYhCyADIAFCAYaEIQELIAZB//8BTgRAIApCgICAgICAwP//AIQhCkIAIQEMAQsCfiAGQQBMBEBBASAGayIHQYABTwRAQgAhAQwDCyAFQTBqIAsgASAGQf8AaiIGEJYTIAVBIGogAiAEIAYQlhMgBUEQaiALIAEgBxCdEyAFIAIgBCAHEJ0TIAUpAzAgBSkDOIRCAFKtIAUpAyAgBSkDEISEIQsgBSkDKCAFKQMYhCEBIAUpAwAhAiAFKQMIDAELIARC////////P4MgBq1CMIaECyAKhCEKIAtQIAFCAFkgAUKAgICAgICAgIB/URtFBEAgCiACQgF8IgEgAlStfCEKDAELIAsgAUKAgICAgICAgIB/hYRQRQRAIAIhAQwBCyAKIAIgAkIBg3wiASACVK18IQoLIAAgATcDACAAIAo3AwggBUHgAGokAAt1AQF+IAAgASAEfiACIAN+fCADQiCIIgIgAUIgiCIEfnwgA0L/////D4MiAyABQv////8PgyIBfiIFQiCIIAMgBH58IgNCIIh8IAEgAn4gA0L/////D4N8IgFCIIh8NwMIIAAgBUL/////D4MgAUIghoQ3AwALRQEBfyMAQRBrIgUkACAFIAEgAiADIARCgICAgICAgICAf4UQlRMgBSkDACEBIAAgBSkDCDcDCCAAIAE3AwAgBUEQaiQAC9MDAgJ+An8jAEEgayIEJAACQCABQv///////////wCDIgNCgICAgICAwIA8fSADQoCAgICAgMD/wwB9VARAIAFCBIYgAEI8iIQhAyAAQv//////////D4MiAEKBgICAgICAgAhaBEAgA0KBgICAgICAgMAAfCECDAILIANCgICAgICAgIBAfSECIABCgICAgICAgIAIUg0BIAIgA0IBg3whAgwBCyAAUCADQoCAgICAgMD//wBUIANCgICAgICAwP//AFEbRQRAIAFCBIYgAEI8iIRC/////////wODQoCAgICAgID8/wCEIQIMAQtCgICAgICAgPj/ACECIANC////////v//DAFYNAEIAIQIgA0IwiKciBUGR9wBJDQAgBEEQaiAAIAFC////////P4NCgICAgICAwACEIgIgBUGB9wBrEJYTIAQgACACQYH4ACAFaxCdEyAEKQMIQgSGIAQpAwAiAEI8iIQhAiAEKQMQIAQpAxiEQgBSrSAAQv//////////D4OEIgBCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyAAQoCAgICAgICACFINACACQgGDIAJ8IQILIARBIGokACACIAFCgICAgICAgICAf4OEvwu2AwIDfwF+IwBBIGsiAyQAAkAgAUL///////////8AgyIFQoCAgICAgMDAP30gBUKAgICAgIDAv8AAfVQEQCABQhmIpyEEIABQIAFC////D4MiBUKAgIAIVCAFQoCAgAhRG0UEQCAEQYGAgIAEaiECDAILIARBgICAgARqIQIgACAFQoCAgAiFhEIAUg0BIAIgBEEBcWohAgwBCyAAUCAFQoCAgICAgMD//wBUIAVCgICAgICAwP//AFEbRQRAIAFCGYinQf///wFxQYCAgP4HciECDAELQYCAgPwHIQIgBUL///////+/v8AAVg0AQQAhAiAFQjCIpyIEQZH+AEkNACADQRBqIAAgAUL///////8/g0KAgICAgIDAAIQiBSAEQYH+AGsQlhMgAyAAIAVBgf8AIARrEJ0TIAMpAwgiAEIZiKchAiADKQMAIAMpAxAgAykDGIRCAFKthCIFUCAAQv///w+DIgBCgICACFQgAEKAgIAI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IAVBkOcCai0AADoAACAEIAQoAgBBAWo2AgBBACEADAELQQAhACAEQQA2AgALIApBEGokACAAC8UBAgJ/AX4jAEEQayIEJAACfwJAAkAgACABRwRAQZyxAygCACEFQZyxA0EANgIAELEUGiAAIARBDGogAxCfFiEGAkBBnLEDKAIAIgAEQCAEKAIMIAFHDQEgAEHEAEYNBAwDC0GcsQMgBTYCACAEKAIMIAFGDQILCyACQQQ2AgBBAAwCCyAGQoCAgIB4UyAGQv////8HVXINACAGpwwBCyACQQQ2AgBB/////wcgBkIAVQ0AGkGAgICAeAshACAEQRBqJAAgAAuhAQECfwJAIAAQO0UgAiABa0EFSHINACABIAIQ6hQgAkEEayEEIAAQNiICIAAQO2ohBQJAA0ACQCACLAAAIQAgASAETw0AIABBAEwgAEH/AE5yRQRAIAEoAgAgAiwAAEcNAwsgAUEEaiEBIAIgBSACa0EBSmohAgwBCwsgAEEATCAAQf8ATnINASACLAAAIAQoAgBBAWtLDQELIANBBDYCAAsLmgMBAX8jAEGQAmsiACQAIAAgAjYCgAIgACABNgKIAiADEJoUIQYgAEHQAWogAyAAQf8BahCbFCAAQcABahAuIgEgARA0EHYgACABQQAQdyICNgK8ASAAIABBEGo2AgwgAEEANgIIA0ACQCAAQYgCaiAAQYACahC8E0UNACAAKAK8ASABEDsgAmpGBEAgARA7IQMgASABEDtBAXQQdiABIAEQNBB2IAAgAyABQQAQdyICajYCvAELIABBiAJqEL0TIAYgAiAAQbwBaiAAQQhqIAAsAP8BIABB0AFqIABBEGogAEEMakGQ5wIQnBQNACAAQYgCahC+ExoMAQsLAkAgAEHQAWoQO0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArwBIAQgBhCgFDcDACAAQdABaiAAQRBqIAAoAgwgBBCeFCAAQYgCaiAAQYACahC/EwRAIAQgBCgCAEECcjYCAAsgACgCiAIhAiABEK4WGiAAQdABahCuFhogAEGQAmokACACC7gBAgF+An8jAEEQayIFJAACQAJAIAAgAUcEQEGcsQMoAgAhBkGcsQNBADYCABCxFBogACAFQQxqIAMQnxYhBAJAQZyxAygC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rUIghoQgABEgAAscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAqCwvPhQOcAgBBgAgLmdcBe30AfAB7AHoAaGFzT3duUHJvcGVydHkAY2FsbF9lbmdpbmUgLSBjYWxsYmFjayBpcyBlbXB0eQBjYWxsX2VuZ2luZSAtIHVzZXJfaWQgaXMgZW1wdHkAaW52YWxpZCB1c2VyX2lkLCB1c2VyX2lkIGlzIGVtcHR5AGNhbGxfZW5naW5lIC0gY2FsbF9pZCBpcyBlbXB0eQBub3RpZnlfZGF0YSBpcyBlbXB0eQBjYWxsX2VuZ2luZSAtIGludmFsaWQgcGFyYW1ldGVycywgY2FsbF9pZCBjYW5ub3QgYmUgZW1wdHkAZW50aXR5AGludmFsaWQgY29uZmlnIHByaW9yaXR5AE1zZ1ByaW9yaXR5AGluZmluaXR5AC1JbmZpbml0eQBjYWxsX2VuZ2luZSAtIHRoZSBwYWNrYWdlIHlvdSBwdXJjaGFzZWQgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGFiaWxpdHkAZW5hYmxlTXVsdGlEZXZpY2VBYmlsaXR5AEVuYWJsZU11bHRpRGV2aWNlQWJpbGl0eQBxdWFsaXR5AGxvY2FsUXVhbGl0eQBvbk5ldHdvcmtRdWFsaXR5AHJlbW90ZVF1YWxpdHkAY2FsbF9idXN5AGxpbmVfYnVzeQBsaW5lQnVzeQBvblVzZXJMaW5lQnVzeQB2aXZvX2NhdGVnb3J5AG9wcG9fY2F0ZWdvcnkAYW5kcm9pZF9odWF3ZWlfY2F0ZWdvcnkASHVhV2VpQ2F0ZWdvcnkAVklWT0NhdGVnb3J5AE9QUE9DYXRlZ29yeQBvbkNvbm5lY3Rpb25SZWNvdmVyeQBGZWJydWFyeQBKYW51YXJ5AEp1bHkAb25saW5lVXNlck9ubHkAY2FsbF9lbmdpbmUgLSBTdGF0dXM6IFdhaXRpbmcvQWNjZXB0LiBEbyBub3QgY2FsbCByZXBlYXRlZGx5AFByb2Nlc3NDYWxsUmVjb3JkUmVwb3J0Tm90aWZ5AFByb2Nlc3NFbmRDYWxsTm90aWZ5AE9uRW5kQ2FsbE5vdGlmeQBQcm9jZXNzS2lja2VkT2ZmTm90aWZ5AFByb2Nlc3NJbnZpdGF0aW9uUHJvY2Vzc2VkQnlPdGhlckRldmljZU5vdGlmeQBQcm9jZXNzSW52aXRhdGlvblJlY2VpdmVkTm90aWZ5AFByb2Nlc3NJbnZpdGF0aW9uQ2FuY2VsbGVkTm90aWZ5AFByb2Nlc3NDYWxsTWVtYmVyQ2hhbmdlZE5vdGlmeQBQcm9jZXNzSW52aXRhdGlvblJlc3BvbmRlZE5vdGlmeQB1bnN1cHBvcnRlZCBrZXkAbG9uZ1BvbGxpbmdLZXkATG9uZ1BvbGxpbmdLZXkAYm9keQBNc2dCb2R5AG9uTWljRGlkUmVhZHkAb25DYW1lcmFEaWRSZWFkeQBjb21tYW5kX2ZyZXF1ZW5jeQBjYWxsX2VuZ2luZSAtIGludmFsaWQganNvbiBmb3JtYXQ6IGV4cGVjdGVkIGEgbm9uLWVtcHR5IGFycmF5AEFycmF5AFRodXJzZGF5AFR1ZXNkYXkAV2VkbmVzZGF5AFNhdHVyZGF5AFN1bmRheQBNb25kYXkARnJpZGF5AE1heQAlbS8lZC8leQBzaXgAY2lyY3VtZmxleABVcGRhdGVWaWRlb1F1YWxpdHlFeAAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AF9fbmV4dF9wcmltZSBvdmVyZmxvdwBjYW1lcmFfbG93AGlzTWluaW1pemVXaW5kb3cAZW5hYmxlQ2FwdHVyZUNoaWxkV2luZG93AExvdwBzdGFydExvY2FsUHJldmlldwBzdG9wTG9jYWxQcmV2aWV3AHVwZGF0ZUxvY2FsVmlldwBzdGFydFJlbW90ZVZpZXcAU3RhcnRSZW1vdGVWaWV3AHN0b3BSZW1vdGVWaWV3AFN0b3BSZW1vdGVWaWV3AHVwZGF0ZVJlbW90ZVZpZXcAdXYATm92AHRlc3RFbnYAVGh1AFx1AHRleHQAdm9pcF9leHQAVGV4dABFeHQAbG9nb3V0AHRpbWVvdXQAb25JbnZpdGF0aW9uVGltZW91dABPbkludml0YXRpb25UaW1lb3V0AE9uSW52aXRhdGlvblRpbWVkT3V0AHJ0dABBdWd1c3QAb25Db25uZWN0aW9uTG9zdABsaXZlX2VuZ2luZV9zcnYuZ2V0X2dpZnRfbGlzdAByb29tX2VuZ2luZV9taWMuZ2V0X3NlYXRfbGlzdAByb29tX2VuZ2luZV9taWMuZ2V0X3dhaXRpbmdfc2VhdF9saXN0AGxpdmVfZW5naW5lX3Nydi5nZXRfbWVtYmVyX2xpc3QAcm9vbV9lbmdpbmVfc3J2LmdldF9yb29tX21lbWJlcl9saXN0AHJvb21fZW5naW5lX3Nydi5nZXRfcGVuZGluZ19tZW1iZXJfbGlzdAByb29tX2VuZ2luZV9zcnYuZ2V0X211dGVkX21lbWJlcl9saXN0AGxpdmVfZW5naW5lX3Nydi5nZXRfbXV0ZWRfbWVtYmVyX2xpc3QAcm9vbV9lbmdpbmVfc3J2LmdldF9qb2luX3Jvb21faW52aXRhdGlvbl9saXN0AGxpdmVfZW5naW5lX3Nydi5nZXRfYWRtaW5fbGlzdAByb29tX2VuZ2luZV9zcnYuZ2V0X2hpc3Rvcnlfcm9vbV9saXN0AGxpdmVfZW5naW5lX3Nydi5nZXRfcm9vbV9saXN0AHJvb21fZW5naW5lX3Nydi5nZXRfam9pbmVkX3Jvb21fbGlzdAByb29tX2VuZ2luZV9zcnYuZ2V0X3NjaGVkdWxlX2ludml0ZWVfbGlzdABzdWNjZXNzVXNlckxpc3QAT3BlcmF0aW9uVXNlckxpc3QAQWxsVXNlckxpc3QAR2V0VXNlckluZm9MaXN0AFByb2ZpbGVMaXN0AGludml0ZWVMaXN0AHVzZXJJRExpc3QAU2VuZEFjY2VwdFJlcXVlc3QAU2VuZEdldENhbGxJbnZpdGF0aW9uUmVxdWVzdABldmVudF9yZXBvcnQAY2FsbF9lbmdpbmUgLSBzdGFydEhlYXJ0QmVhdERhdGFSZXBvcnQAU3RhcnRIZWFydEJlYXREYXRhUmVwb3J0AGNhbGxfZW5naW5lIC0gc3RvcEhlYXJ0QmVhdERhdGFSZXBvcnQAU3RvcEhlYXJ0QmVhdERhdGFSZXBvcnQAdW5zaWduZWQgc2hvcnQAYWxlcnQAYWNjZXB0AG9uVXNlckFjY2VwdABDYWxsZWVMaXN0X0FjY291bnQAT3BlcmF0b3JfQWNjb3VudABVc2VyX0FjY291bnQAQ2FsbGVyX0FjY291bnQAVG9fQWNjb3VudABDYWxsZWVfQWNjb3VudABsaXZlX2VuZ2luZV9zcnYuZ2V0X2dpZnRfY291bnQAbGl2ZV9lbmdpbmVfc3J2LmdldF9saWtlc19jb3VudABIZWFydEJlYXQuQ2FsbC5SZXRyeUNvdW50AHByaW50AHVuc2lnbmVkIGludABvbkpTRXZlbnQAbWVzc2FnZV9jb250ZW50AE1zZ0NvbnRlbnQAY29tcG9uZW50AGFkZENvbW1lbnQAU2V0UGlwZWxpbmVDbGllbnQAdW5pbmRlbnQAY2lyY3VtZmxleC1hY2NlbnQAZ3JhdmUtYWNjZW50AHJlc3VsdABDYWxsUmVzdWx0AE9uU3dpdGNoUm9sZVJlc3VsdABVbkluaXQAY2FsbF9lbmdpbmUgLSBjYWxsUmVjb3JkRXh0ZW5zaW9uIEluaXQAc3luY2hyb25pemUgY29tbWFuZCBmcmVxdWVuY3kgbGltaXQAZXhjZWVkIGZyZXF1ZW5jeSBsaW1pdABUdWlraXQAeGRpZ2l0AGFscmVhZHkgaW4gc2NyZWVuLXNoYXJpbmcgc3RhdHVzLCBpZ25vcmUgaXQAcGVuZGluZyB0byBzdGFydCwgcmVwZWF0IG9wZXJhdGlvbiwgaWdub3JlIGl0AHJpZ2h0AGhlaWdodABlbmFibGVIaWdoTGlnaHQAbGl2ZV9lbmdpbmVfc3J2LnNlbmRfZ2lmdABsZWZ0AHJpZ2h0LWN1cmx5LWJyYWNrZXQAbGVmdC1jdXJseS1icmFja2V0AHJpZ2h0LXNxdWFyZS1icmFja2V0AGxlZnQtc3F1YXJlLWJyYWNrZXQAU2VuZFBhY2tldABzZWxlY3RTY3JlZW5DYXB0dXJlVGFyZ2V0AHB1bmN0AHJlamVjdABvblVzZXJSZWplY3QAT2JqZWN0AE9jdABmbG9hdAByb29tX2VuZ2luZV9taWMubG9ja19zZWF0AHJvb21fZW5naW5lX21pYy5raWNrX3VzZXJfb2ZmX3NlYXQAcm9vbV9lbmdpbmVfbWljLm1vdmVfc2VhdAByb29tX2VuZ2luZV9taWMubGVhdmVfc2VhdAByb29tX2VuZ2luZV9taWMuYXBwbHlfdG9fdGFrZV9zZWF0AHJvb21fZW5naW5lX21pYy5pbnZpdGVfdXNlcl90b190YWtlX3NlYXQAcm9vbV9lbmdpbmVfbWljLnRha2Vfc2VhdABoZWFydGJlYXQAcm9vbV9lbmdpbmVfc3J2LmhlYXJ0X2JlYXQAY2FsbF9lbmdpbmVfc3J2LmhlYXJ0X2JlYXQAbGl2ZV9lbmdpbmVfc3J2LmhlYXJ0X2JlYXQAY2FsbF9lbmdpbmUgLSBzdG9wIGhlYXJ0IGJlYXQAU3RhcnRIZWFydEJlYXQAU3RvcEhlYXJ0QmVhdABTYXQAY29tbWVyY2lhbC1hdAB1aW50NjRfdABcdABzdGF0dXMAZ2V0VXNlclN0YXR1cwBjdXN0b21TdGF0dXMAVXBkYXRlTG9jYWxVc2VyQXVkaW9TdHJlYW1TdGF0dXMAVXBkYXRlTG9jYWxVc2VyVmlkZW9TdHJlYW1TdGF0dXMAc2V0U2VsZlN0YXR1cwBoeXBoZW4tbWludXMAcmV2ZXJzZS1zb2xpZHVzAFN1YnNjcmliZUFQSUNhbGxFdmVudHMAU3Vic2NyaWJlRXZlbnRzAEtleU1ldHJpY3NTdGF0cwBjbGllbnRfdHMAdXBMb3NzAGRvd25Mb3NzAHVuaW5pdCBzdWNjZXNzAGNhbGxfZW5naW5lIC0gb25Db25uZWN0U3VjY2VzcwBPbkNvbm5lY3RTdWNjZXNzAG9uU3VjY2VzcwBSb29tRW5naW5lLkVuYWJsZUxpdmVRb3MAcGFyYW1zAHNldFZpZGVvRW5jb2RlclBhcmFtcwBTZXRWaWRlb0VuY29kZXJQYXJhbXMAc2V0VmlkZW9SZW5kZXJQYXJhbXMAU2V0VmlkZW9SZW5kZXJQYXJhbXMAc2V0TG9jYWxSZW5kZXJQYXJhbXMAc2V0UmVtb3RlUmVuZGVyUGFyYW1zAG11dGVBbGxSZW1vdGVWaWRlb1N0cmVhbXMAY2FsbHMAcXVlcnlSZWNlbnRDYWxscwBPblF1ZXJ5UmVjZW50Q2FsbHMAZGVsZXRlUmVjb3JkQ2FsbHMAT25EZWxldGVSZWNvcmRDYWxscwByaWdodC1wYXJlbnRoZXNpcwBsZWZ0LXBhcmVudGhlc2lzAHRpbVB1c2hGZWF0dXJlcwB1c2VyVm9sdW1lcwBsaXZlX2VuZ2luZV9zcnYuc2VuZF9saWtlcwByb29tX2VuZ2luZV9zcnYucmVtb3ZlX3NjaGVkdWxlX2ludml0ZWVzAHJvb21fZW5naW5lX3Nydi5hZGRfc2NoZWR1bGVfaW52aXRlZXMAZ2V0U2NyZWVuQ2FwdHVyZVNvdXJjZXMAc3RhdGlzdGljcwBvblN0YXRpc3RpY3MAVmlkZW9Db25maWcuVmlkZW9QbGF5Lk1heENhY2hlSW5NcwBWaWRlb0NvbmZpZy5WaWRlb1BsYXkuTWluQ2FjaGVJbk1zAHVzZXJJRHMAaW5DYWxsVXNlcklEcwBmb3VyAHN1Y2Nlc3NfY2FsbGJhY2sgIT0gbnVsbHB0cgBBcHIATnVsbCBWYWx1ZSBQYXNzZWQgdG8gVmFsdWUgQ29uc3RydWN0b3IAdmVjdG9yAGVuYWJsZUdyYXZpdHlTZW5zb3IAc2V0VmlkZW9FbmNvZGVyTWlycm9yAHN5c3RlbSBlcnJvcgBjYWxscyBqc29uIHBhcnNlIGVycm9yAGludml0ZVVzZXIganNvbiBwYXJzZSBlcnJvcgBqb2luX2luX2dyb3VwIGNhbGwganNvbiBwYXJzZSBlcnJvcgBncm91cENhbGwganNvbiBwYXJzZSBlcnJvcgBncm91cEluR3JvdXBDYWxsIGpzb24gcGFyc2UgZXJyb3IAY2FsbF9lbmdpbmUgLSBqc29uIHBhcnNlIGVycm9yAG9uRXJyb3IAT25UUlRDRXJyb3IAaGlnaExpZ2h0Q29sb3IAYmFja2dyb3VuZENvbG9yAHNldFZpZXdCYWNrZ3JvdW5kQ29sb3IAUm9vbUVuZ2luZS5FbmFibGVWM2RvdDFDYWxsYmFja0JlaGF2aW9yAGFuY2hvcgBlbmFibGVJbmZpbml0ZUFuY2hvcgBleHBlY3RpbmcgYW5vdGhlciBcdSB0b2tlbiB0byBiZWdpbiB0aGUgc2Vjb25kIGhhbGYgb2YgYSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyAGxvd2VyAGNhbGxfZW5naW5lIC0gaW52YWxpZCBvYnNlcnZlcgBzZXRPYnNlcnZlcgBiaW5kT2JzZXJ2ZXIAdW5CaW5kT2JzZXJ2ZXIAT25TZXRDYWxsU3RhdHVzT25JTVNlcnZlcgBPbkdldENhbGxTdGF0dXNGcm9tSU1TZXJ2ZXIAaW52aXRlcgBsb2NhbF91c2VyAGNhbGxfZW5naW5lX3Nydi5pbnZpdGVfdXNlcgBnZXRMb2dpblVzZXIAT25Td2l0Y2hMb2dpblVzZXIAaW52aXRlVXNlcgBJbnZpdGVVc2VyAHVwcGVyAHJvb21fZW5naW5lX3Nydi5jaGFuZ2Vfcm9vbV9vd25lcgBsaXZlX2VuZ2luZV9zcnYuY2hhbmdlX3Jvb21fb3duZXIASlNUaW1lcgBjYWxsZXIAaW4gSnNvbjo6VmFsdWU6OmR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKCk6IEZhaWxlZCB0byBhbGxvY2F0ZSBzdHJpbmcgdmFsdWUgYnVmZmVyAGluIEpzb246OlZhbHVlOjpkdXBsaWNhdGVTdHJpbmdWYWx1ZSgpOiBGYWlsZWQgdG8gYWxsb2NhdGUgc3RyaW5nIHZhbHVlIGJ1ZmZlcgBjdXJyZW50ID49IGJ1ZmZlcgBlbmFibGVQcmVsb2FkVmlkZW9EZWNvZGVyAHNlbmRlcgBPY3RvYmVyAE5vdmVtYmVyAFNlcHRlbWJlcgBsaXZlX2VuZ2luZV9zcnYuYmFuX21lbWJlcgByb29tX2VuZ2luZV9zcnYuYmFuX3Jvb21fbWVtYmVyAHJvb21fZW5naW5lX3Nydi5tYXJrX3Jvb21fbWVtYmVyAHJvb21fZW5naW5lX3Nydi5zZWFyY2hfcm9vbV9tZW1iZXIAbGl2ZV9lbmdpbmVfc3J2LnNlYXJjaF9yb29tX21lbWJlcgByb29tX2VuZ2luZV9zcnYubXV0ZV9yb29tX21lbWJlcgBsaXZlX2VuZ2luZV9zcnYubXV0ZV9tZW1iZXIARGVjZW1iZXIAc2VuZGVyX2F2YXRhcgB1bnNpZ25lZCBjaGFyAGlvc19iYXNlOjpjbGVhcgBNYXIAXHIAc2VxAGdyb3VwAGludml0ZUluR3JvdXAAY2FsbF9lbmdpbmVfc3J2Lmhhbmd1cABIYW5ndXAAZnVsbC1zdG9wAFNlcAAlSTolTTolUyAlcAB0d28AdG8AemVybwBhdWRpbwBzY3JlZW5BdWRpbwBzdGFydExvY2FsQXVkaW8Ac3RvcExvY2FsQXVkaW8AbXV0ZUxvY2FsQXVkaW8ATXV0ZUxvY2FsQXVkaW8AbXV0ZUFsbFJlbW90ZUF1ZGlvAG11dGVSZW1vdGVBdWRpbwByb29tX2VuZ2luZV9zcnYuZ2V0X3Jvb21fbWVtYmVyX2luZm8Acm9vbV9lbmdpbmVfc3J2LnVwZGF0ZV9yb29tX21lbWJlcl9pbmZvAHJvb21fZW5naW5lX3Nydi5nZXRfc2VsZl9tZW1iZXJfaW5mbwBsaXZlX2VuZ2luZV9zcnYuZ2V0X3NlbGZfbWVtYmVyX2luZm8AbGl2ZV9lbmdpbmVfcGsuZ2V0X2Nvbm5lY3Rpb25faW5mbwByb29tX2VuZ2luZV9zcnYuZ2V0X3Jvb21faW5mbwBsaXZlX2VuZ2luZV9zcnYuZ2V0X3Jvb21faW5mbwBsaXZlX2VuZ2luZV9zcnYuZ2V0X211bHRpX3Jvb21faW5mbwByb29tX2VuZ2luZV9zcnYudXBkYXRlX3Jvb21faW5mbwBsaXZlX2VuZ2luZV9zcnYudXBkYXRlX3Jvb21faW5mbwBjYWxsX2VuZ2luZV9zcnYuZ2V0X2NhbGxfaW5mbwBvZmZsaW5lX3B1c2hfaW5mbwByb29tX2VuZ2luZV9zcnYudXBkYXRlX3NjaGVkdWxlX2luZm8AbGl2ZV9lbmdpbmVfcGsuZ2V0X2JhdHRsZV9pbmZvAGV4dHJhX2luZm8AYXBuc0luZm8AQXBuc0luZm8ARXJyb3JJbmZvAEpTU3lzdGVtSW5mbwBHZXRDYWxsSW5mbwBvZmZsaW5lUHVzaEluZm8AT2ZmbGluZVB1c2hJbmZvAHNldFNlbGZJbmZvAGdldERldmljZUluZm8AYW5kcm9pZEluZm8AQW5kcm9pZEluZm8AdmlkZW8AbXV0ZUxvY2FsVmlkZW8AaXNDb252ZXJ0aWJsZVRvAHVua25vd24Aa1Vua25vd24AU3VuAEp1bgBjYXJyaWFnZS1yZXR1cm4AcmVhc29uAFJlYXNvbgBlbGVjdHJvbgBzZW1pY29sb24AZGVzY3JpcHRpb24AY2FsbF9lbmdpbmUgLSBjYWxsIGVuZCB3aGVuIHBhcnRpY2lwYW50IGNvdW50IOKJpDEgYWZ0ZXIgbmV0d29yayByZWNvbm5lY3Rpb24ATGl2ZVBsYXllci5TZWNvbmRzQmV0d2VlblJlY29ubmVjdGlvbgBMaXZlUGxheWVyLk1heE51bWJlck9mUmVjb25uZWN0aW9uAGxpdmVfZW5naW5lX3BrLnN0YXJ0X2Nvbm5lY3Rpb24AbGl2ZV9lbmdpbmVfcGsuZXhpdF9jb25uZWN0aW9uAGxpdmVfZW5naW5lX3BrLmNhbmNlbF9jb25uZWN0aW9uAGxpdmVfZW5naW5lX3BrLnJlc3BvbmRfY29ubmVjdGlvbgBhY3Rpb24AZW5hYmxlQXVkaW9Wb2x1bWVFdmFsdWF0aW9uAHJvdGF0aW9uAGNhbGxfZW5naW5lX3Nydi5nZXRfaW52aXRhdGlvbgByb29tX2VuZ2luZV9taWMuY2FuY2VsX3Rha2Vfc2VhdF9pbnZpdGF0aW9uAHJvb21fZW5naW5lX21pYy5yZXNwb25kX3Rha2Vfc2VhdF9pbnZpdGF0aW9uAHJvb21fZW5naW5lX3Nydi5jYW5jZWxfam9pbl9yb29tX2ludml0YXRpb24Acm9vbV9lbmdpbmVfc3J2LmhhbmRsZV9qb2luX3Jvb21faW52aXRhdGlvbgBtb2RpZnlJbnZpdGF0aW9uAEdldENhbGxJbnZpdGF0aW9uAEhhbmRsZVJlY2VpdmVJbnZpdGF0aW9uAE1pc3NpbmcgJywnIG9yICddJyBpbiBhcnJheSBkZWNsYXJhdGlvbgBNaXNzaW5nICcsJyBvciAnfScgaW4gb2JqZWN0IGRlY2xhcmF0aW9uAHJvb21fZW5naW5lX21pYy5jYW5jZWxfdGFrZV9zZWF0X2FwcGxpY2F0aW9uAHJvb21fZW5naW5lX21pYy5yZXNwb25kX3Rha2Vfc2VhdF9hcHBsaWNhdGlvbgBlbmFibGVfaW9zX2JhY2tncm91bmRfbm90aWZpY2F0aW9uAGFuZHJvaWRfdml2b19jbGFzc2lmaWNhdGlvbgBWSVZPQ2xhc3NpZmljYXRpb24Acm9vbV9lbmdpbmVfc3J2LmFwcGx5X2RldmljZV9wZXJtaXNzaW9uAHJvb21fZW5naW5lX3Nydi5nZXRfZGV2aWNlX3Blcm1pc3Npb24Acm9vbV9lbmdpbmVfc3J2LnByb2Nlc3NfZGV2aWNlX3Blcm1pc3Npb24Acm9vbV9lbmdpbmVfc3J2LmNhbmNlbF9kZXZpY2VfcGVybWlzc2lvbgByb29tX2VuZ2luZV9zcnYucHJvY2Vzc19yZW1vdGVfZGV2aWNlX3Blcm1pc3Npb24Acm9vbV9lbmdpbmVfc3J2LmNhbmNlbF9yZW1vdGVfZGV2aWNlX3Blcm1pc3Npb24Acm9vbV9lbmdpbmVfc3J2LnNlbmRfcmVtb3RlX2RldmljZV9wZXJtaXNzaW9uADogbm8gY29udmVyc2lvbgBvc192ZXJzaW9uAHNka192ZXJzaW9uAGFwaV92ZXJzaW9uAG9zVmVyc2lvbgBTZGtWZXJzaW9uAE9TVmVyc2lvbgBnZXRTREtWZXJzaW9uAGV4dGVuc2lvbgBEZXZpY2VNYW5hZ2VyRXh0ZW5zaW9uAENhbGxSZWNvcmRFeHRlbnNpb24ATW9uAGpvaW4Ab25Vc2VySm9pbgBsaXZlX2VuZ2luZV9zcnYubW9kaWZ5X2FkbWluAGJ5IGFkbWluAGdldExvZ2luVXNlcklkOiBub3QgbG9naW4ATG9naW4Ab25DYWxsQmVnaW4AY2FsbF9lbmdpbmUgLSBVc2VyIG5vdCBsb2dnZWQgaW4AcGVyY2VudC1zaWduAHBsdXMtc2lnbgBlcXVhbHMtc2lnbgBudW1iZXItc2lnbgBkb2xsYXItc2lnbgBsZXNzLXRoYW4tc2lnbgBncmVhdGVyLXRoYW4tc2lnbgBzZXZlbgBoeXBoZW4Ac2NyZWVuAG5hbgBKYW4AXG4AYWxudW0AcGxhdGZvcm0AYm90dG9tAGZyb20Acm9vbV9lbmdpbmVfc3J2LmRlc3Ryb3lfcm9vbQBsaXZlX2VuZ2luZV9zcnYuZGVzdHJveV9yb29tAHJvb21fZW5naW5lX3Nydi5lbnRlcl9yb29tAGxpdmVfZW5naW5lX3Nydi5lbnRlcl9yb29tAHJvb21fZW5naW5lX3Nydi5pbnZpdGVfdG9fam9pbl9yb29tAHJvb21fZW5naW5lX3Nydi5sZWF2ZV9yb29tAGxpdmVfZW5naW5lX3Nydi5sZWF2ZV9yb29tAHJvb21fZW5naW5lX3Nydi5jcmVhdGVfcm9vbQBsaXZlX2VuZ2luZV9zcnYuY3JlYXRlX3Jvb20AZXhpdFJvb20Ab25FeGl0Um9vbQBlbnRlclJvb20Ab25SZW1vdGVVc2VyRW50ZXJSb29tAG9uRW50ZXJSb29tAE9uVFJUQ1JlbW90ZUVudGVyUm9vbQBjaGVja0R1cGxpY2F0ZUVudGVyUm9vbQBvblJlbW90ZVVzZXJMZWF2ZVJvb20AT25UUlRDUmVtb3RlTGVhdmVSb29tAFJhbmRvbQBKU1RpbQBUSU1UZXh0RWxlbQBUSU1DdXN0b21FbGVtAHd4TWluaVByb2dyYW0AY2FsbF9lbmdpbmUgLSBmYWlsZWQgdG8gcGFyc2UganNvbl9wYXJhbQBpbnZhbGlkIGpzb25fcGFyYW0Ac2V0VmlkZW9FbmNvZGVyUGFyYW0Ac2V0U3ViU3RyZWFtRW5jb2RlclBhcmFtAGxpdmVfZW5naW5lX3Nydi5zZXRfbWl4X3N0cmVhbQB1cGRhdGUgdmlkZW8gdmlldyBkb2VzIG5vdCBzdXBwb3J0IHNjcmVlbiBzdHJlYW0AZW5hYmxlU21hbGxWaWRlb1N0cmVhbQBTdGFydFB1c2hMb2NhbFZpZGVvU3RyZWFtAFN0b3BQdXNoTG9jYWxWaWRlb1N0cmVhbQBKdWwAY250cmwAQXZhdGFyVXJsAFNlbmRNc2dDb250cm9sAGJvb2wAY2FsbF9lbmdpbmUgLSBpbnZhbGlkIHZpZXcsIGludmFsaWQgdHlwZSBvciBudWxsAGNhbGxfZW5naW5lIC0gaW52YWxpZCBsZXZlbCwgaW52YWxpZCB0eXBlIG9yIG51bGwAY2FsbF9lbmdpbmUgLSBpbnZhbGlkIHVzZXJfc2lnLCBpbnZhbGlkIHR5cGUgb3IgbnVsbABjYWxsX2VuZ2luZSAtIGludmFsaWQgdXNlcl9pZCwgaW52YWxpZCB0eXBlIG9yIG51bGwAY2FsbF9lbmdpbmUgLSBpbnZhbGlkIHNka19hcHBfaWQsIGludmFsaWQgdHlwZSBvciBudWxsAGludml0ZWVfbGlzdCBjYW5ub3QgYmUgbnVsbABjYWxsX2VuZ2luZSAtIGludmFsaWQgcGFyYW1ldGVycywgdXNlcl9pZF9saXN0IGNhbm5vdCBiZSBudWxsAGNhbGxfZW5naW5lIC0gaW52YWxpZCBwYXJhbWV0ZXJzLCBpbnZpdGVyIGNhbm5vdCBiZSBudWxsAGpzb25fcGFyYW0gY2Fubm90IGJlIG51bGwAY2FsbF9lbmdpbmUgLSBpbnZhbGlkIHBhcmFtZXRlcnMsIHVzZXJfaWQgY2Fubm90IGJlIG51bGwAZ3JvdXBfaWQgY2Fubm90IGJlIG51bGwAY2FsbF9lbmdpbmUgLSBpbnZhbGlkIHBhcmFtZXRlcnMsIGNhbGxfaWQgY2Fubm90IGJlIG51bGwAaW52aXRlZV9pZCBjYW5ub3QgYmUgbnVsbABjYWxsX2lkfGludml0ZXJ8aW52aXRlZV9saXN0fGRhdGEgY2Fubm90IGJlIG51bGwAY2FsbF9lbmdpbmUgLSBpbnZhbGlkIHBhcmFtZXRlcnMsIHVzZXJfaWRfbGlzdCBjYW4gbm90IGJlIG51bGwAY2FsbF9lbmdpbmUgLSBpbnZhbGlkIHBhcmFtZXRlcnMsIGNhbGxfaWQgY2FuIG5vdCBiZSBudWxsAGNhbGxfZW5naW5lX3Nydi5zdGFydF9jYWxsAGFjY2VwdF9jYWxsAHJlamVjdF9jYWxsAG5vdF9hbnN3ZXJfY2FsbABqb2luX2luX2dyb3VwX2NhbGwAY2FsbF9lbmdpbmVfc3J2LmpvaW5faW5fY2FsbABjYW5jZWxfY2FsbABpc19lcGhlbWVyYWxfY2FsbAByZWNlaXZlX2NhbGwAaWdub3JlX2NhbGwAY2FsbF9lbmdpbmVfc3J2LmhhbmRsZV9jYWxsAGNhbGxfZW5naW5lX3Nydi5jbGVhbl9wcmV2aW91c19kZXZpY2VfY2FsbAByZWplY3QsIHJlbW90ZSB1c2VyIGNhbGwgdHlwZSBpcyBub3QgdmlkZW8gY2FsbABjYWxsX2VuZ2luZSwgZW5kIG9mIGNhbGwAY2FsbF9lbmdpbmUgLSBjbGVhciBwcmV2aW91cyBkZXZpY2UgY2FsbABTdGFydENhbGwAZ3JvdXBDYWxsAGpvaW5Jbkdyb3VwQ2FsbABKb2luSW5Hcm91cENhbGwASXNFcGhlbWVyYWxDYWxsAENoZWNrQ2FsbEFiaWxpdHlCZWZvcmVDYWxsAENsZWFuUHJldmlvdXNEZXZpY2VDYWxsAEFwcmlsAG9wcG9fbm90aWZ5X2xldmVsAGlvc19pbnRlcnJ1cHRpb25fbGV2ZWwAT1BQT05vdGlmeUxldmVsAEludGVycnVwdGlvbkxldmVsAGNhbmNlbABDYW5jZWwAaW50ZXJ2YWwAc3RhcnRJbnRlcnZhbABzdG9wSW50ZXJ2YWwAb25JbnRlcnZhbABIZWFydEJlYXQuQ2FsbC5UaW1lSW50ZXJ2YWwAZW1zY3JpcHRlbjo6dmFsAE9uU2VuZEFjY2VwdFNpZ25hbABPblNlbmRSZWplY3RTaWduYWwAT25TZW5kSW52aXRlVXNlclNpZ25hbABPblNlbmRIYW5ndXBTaWduYWwAT25TZW5kR3JvdXBDYWxsU2lnbmFsAE9uU2VuZENhbGxTaWduYWwAT25TZW5kQ2FuY2VsU2lnbmFsAE5vcm1hbABnZXQgdXNlcnMgaW5mbyBmcm9tIGxvY2FsAGFzdGVyaXNrAGxpdmVfZW5naW5lX3Nydi5yZXN1bWVfbWN1X3Rhc2sAbm8gbmV0d29yawBmcmFtZXdvcmsAc2V0RnJhbWV3b3JrAHF1ZXN0aW9uLW1hcmsAcXVvdGF0aW9uLW1hcmsAZXhjbGFtYXRpb24tbWFyawBibGFuawBuaWNrAGNoZWNrAHN0YXJ0U3lzdGVtQXVkaW9Mb29wYmFjawBzdG9wU3lzdGVtQXVkaW9Mb29wYmFjawBMaXZlLkF1dG9GYWxsYmFjay5FbmFibGVQbGF5QXV0b0ZhbGxiYWNrAEpTVGltZXJDYWxsYmFjawBKU0NhbGxiYWNrAGoARnJpAGFwaQBzdG9pAGxlbmd0aAB3aWR0aABoaWdoTGlnaHRXaWR0aABpbWFnZVBhdGgAaXNfZGlzYWJsZV9wdXNoAElzVm9pcFB1c2gAZGlzYWJsZVZvaXBQdXNoAGRpc2FibGVQdXNoAGJhY2tzbGFzaABncmFwaABIaWdoAGNhbGxfZW5naW5lIC0gY2FsbF9pZCBtaXNtYXRjaABjYWxsX2VuZ2luZSAtIGludml0ZV9pZCBtaXNtYXRjaABNYXJjaABBdWcAbW9yZV9tc2cAZXJyTXNnAHdhcm5pbmdNc2cAbG9nAHJlcG9ydE9ubGluZUxvZwB1bnNpZ25lZCBsb25nAG9uUGxheWluZwBpbiBKc29uOjpWYWx1ZTo6ZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoKTogbGVuZ3RoIHRvbyBiaWcgZm9yIHByZWZpeGluZwBvblVzZXJJbnZpdGluZwB3YWl0aW5nAHN0ZDo6d3N0cmluZwBiYXNpY19zdHJpbmcAc3RkOjpzdHJpbmcAc3RkOjp1MTZzdHJpbmcAc3RkOjp1MzJzdHJpbmcAVHlwZSBpcyBub3QgY29udmVydGlibGUgdG8gc3RyaW5nAEVtcHR5IGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmcAQmFkIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmcAdmFsdWVUb1N0cmluZwByZWplY3RlZCB0byBzdGFydCBzY3JlZW4tc2hhcmluZwBTdGFydFNjcmVlblNoYXJpbmcAb25XYXJuaW5nAHN0YXJ0TWVzc2FnZUxvbmdQb2xsaW5nAHN0b3BNZXNzYWdlTG9uZ1BvbGxpbmcAdGhlIGN1cnJlbnQgc3RhdHVzIGlzIHdhaXRpbmcgb3IgY2FsbGluZwBvbkxvYWRpbmcAcm9vbV9zZXJ2ZXJfY29uZmlnAHJlc2V0IGNvbmZpZwByZXF1ZXN0IGNsb3VkIGNvbmZpZwBPblN5bmNocm9uaXplQ29tbWFuZEZyZXF1ZW5jeUxpbWl0Q29uZmlnAFJlc2V0Q29uZmlnAGdldFNlcnZlckNvbmZpZwBPblJlcXVlc3RDbG91ZENvbmZpZwB1c2VyU2lnACUlLiVkZwByb29tX2VuZ2luZV9zcnYucmVwb3J0X2F2X2ZsYWcAbGl2ZV9lbmdpbmVfc3J2LnJlcG9ydF9hdl9mbGFnAGxpdmVfZW5naW5lX3Nydi5nZXRfYXZfZmxhZwBQdXNoRmxhZwBpbmYAdGhlIGludml0ZXIgaXMgeW91cnNlbGYAY2FsbF9lbmdpbmUgLSBjYWxsX2lkIG1pc21hdGNoIG9yIGludml0ZXIgaXMgb25lc2VsZgBieSBzZWxmAE9uS2lja2VkT2ZmAFxmACUuMExmACVMZgBjaGlsZFZhbHVlc18uc2l6ZSgpID09IHNpemUAaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10oaW50IGluZGV4KTogaW5kZXggY2Fubm90IGJlIG5lZ2F0aXZlAGZpdmUAVFJUQy5FbmFibGVDYWxsc0R1cmluZ0xpdmUAb25Vc2VyTGVhdmUAdHJ1ZQB+VmFsdWUAaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10oQXJyYXlJbmRleCljb25zdDogcmVxdWlyZXMgYXJyYXlWYWx1ZQBpbiBKc29uOjpWYWx1ZTo6b3BlcmF0b3JbXShBcnJheUluZGV4KTogcmVxdWlyZXMgYXJyYXlWYWx1ZQB3cml0ZUFycmF5VmFsdWUAU2V0VmFsdWUAaW4gSnNvbjo6VmFsdWU6OnJlc29sdmVSZWZlcmVuY2Uoa2V5LCBlbmQpOiByZXF1aXJlcyBvYmplY3RWYWx1ZQBpbiBKc29uOjpWYWx1ZTo6Z2V0TWVtYmVyTmFtZXMoKSwgdmFsdWUgbXVzdCBiZSBvYmplY3RWYWx1ZQBpbiBKc29uOjpWYWx1ZTo6ZmluZChrZXksIGVuZCwgZm91bmQpOiByZXF1aXJlcyBvYmplY3RWYWx1ZSBvciBudWxsVmFsdWUAT25TeW5jaHJvbml6ZUNvbW1lcmNpYWxWYWx1ZQBSb29tRW5naW5lLkNvbW1lcmNpYWxWYWx1ZQBpbiBKc29uOjpWYWx1ZTo6YXNDU3RyaW5nKCk6IHJlcXVpcmVzIHN0cmluZ1ZhbHVlAFR1ZQBpZ25vcmVfbXV0ZQBJZ25vcmVNdXRlAHRoZSB1c2VyIGlzIG5vdCByZW1vdGUAY2FsbF9lbmdpbmVfc3J2LmNhbmNlbF9pbnZpdGUAQWRqdXN0RW5jb2RlQml0cmF0ZQBsaXZlX2VuZ2luZV9zcnYuZ2V0X21peF90ZW1wbGF0ZQBlbmFibGVDYXB0dXJlTW91c2UAZGF0YSBub3QgaGF2ZSByZXNwb25zZQBpbnZhbGlkIHJlc3BvbnNlAEhhbmRsZUFjY2VwdFJlc3BvbnNlAEhhbmRsZVNlbmRQYWNrZXRSZXNwb25zZQBIYW5kbGVSZWplY3RSZXNwb25zZQBIYW5kbGVTZW5kU3RhcnRIZWFydEJlYXRSZXNwb25zZQBIYW5kbGVJbnZpdGVVc2VyUmVzcG9uc2UASGFuZGxlSGFuZ3VwUmVzcG9uc2UASGFuZGxlR2V0Q2FsbEluZm9SZXNwb25zZQBvblVzZXJOb1Jlc3BvbnNlAEhhbmRsZUdldENhbGxJbnZpdGF0aW9uUmVzcG9uc2UASGFuZGxlQ2FuY2VsSW52aXRhdGlvblJlc3BvbnNlAEhhbmRsZVJlc3BvbmRJbnZpdGF0aW9uUmVzcG9uc2UASGFuZGxlU3RhcnRDYWxsUmVzcG9uc2UASGFuZGxlSm9pbkluR3JvdXBDYWxsUmVzcG9uc2UASGFuZGxlQ2FsbFJlc3BvbnNlAEhhbmRsZUNsZWFuUHJldmlvdXNEZXZpY2VDYWxsUmVzcG9uc2UASGFuZGxlQ2FuY2VsUmVzcG9uc2UASGFuZGxlU2VuZENhbGxSZWNvcmRSZXNwb25zZQBmYWxzZQBzdGFydFNjcmVlbkNhcHR1cmUAc3RvcFNjcmVlbkNhcHR1cmUAaWdub3JlAHVuZGVyc2NvcmUAc3RhcnRTY3JlZW5TaGFyZQBzdG9wU2NyZWVuU2hhcmUAcHJvdG90eXBlAGV2ZW50X3R5cGUAdm9pcF90eXBlAGNvbnZlcnNhdGlvbl90eXBlAGxpdmVfZW5naW5lX3Nydi5nZXRfcm9vbV90eXBlAHRoZSBjdXJyZW50IHJvb20gZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUsIHBsZWFzZSBjaGVjayB0aGUgcm9vbV90eXBlAGNhbGxfdHlwZQBpb3NfcHVzaF90eXBlAGFuZHJvaWRfcHVzaF90eXBlAG1lc3NhZ2VfdHlwZQByb29tX2lkX3R5cGUAdm9pcF9tZWRpYV90eXBlAGludmFsaWQgbWVkaWFfdHlwZQBtaXJyb3JUeXBlAEFjdGlvblR5cGUAY29udmVyc2F0aW9uVHlwZQBmY21Ob3RpZmljYXRpb25UeXBlAHN0cmVhbVR5cGUAZmNtUHVzaFR5cGUATXNnVHlwZQBiYWNrZ3JvdW5kVHlwZQBSb29tSWRUeXBlAHN3aXRjaENhbGxNZWRpYVR5cGUAU3dpdGNoQ2FsbE1lZGlhVHlwZQBWaWRlb0NvbmZpZy5WaWRlb1BsYXkuVHlwZQBKdW5lAG9wZW5NaWNyb3Bob25lAE9uT3BlbkxvY2FsTWljcm9waG9uZQBDbG9zZUxvY2FsTWljcm9waG9uZQBjbG9zZU1pY3JvcGhvbmUAbmluZQBuZXdsaW5lAG9uS2lja2VkT2ZmbGluZQBsb3ctbGluZQB2ZXJ0aWNhbC1saW5lAGNhbGxfZW5naW5lAG9uS2lja2VkT2ZmTGluZQB2b2x1bWUAc2V0QXVkaW9QbGF5b3V0Vm9sdW1lAG9uVXNlclZvaWNlVm9sdW1lAHNlcnZlcl90aW1lAGludml0ZVRpbWUAb25TZW5kRmlyc3RMb2NhbEF1ZGlvRnJhbWUAb25GaXJzdFZpZGVvRnJhbWUAb25TZW5kRmlyc3RMb2NhbFZpZGVvRnJhbWUAc2VuZGVyX25pY2tuYW1lAG9zX25hbWUAY2FsbF9lbmdpbmUgLSBjYWxsX3JlY29yZF90YWJsZV9uYW1lAGRldmljZV9uYW1lAE1pc3NpbmcgJ30nIG9yIG9iamVjdCBtZW1iZXIgbmFtZQBNaXNzaW5nICc6JyBhZnRlciBvYmplY3QgbWVtYmVyIG5hbWUAb3NOYW1lAFVzZXJOYW1lAHNvdXJjZU5hbWUAZGV2aWNlTmFtZQBEZXZpY2VOYW1lAE9TTmFtZQB0aGlzIGludml0YXRpb24gaXMgbm90IGZvciBtZQBtb2R1bGUAbGl2ZV9lbmdpbmVfcGsuZXhpdF9iYXR0bGUAbGl2ZV9lbmdpbmVfcGsuY2FuY2VsX2JhdHRsZQBsaXZlX2VuZ2luZV9way5jcmVhdGVfYmF0dGxlAGxpdmVfZW5naW5lX3BrLmhhbmRsZV9iYXR0bGUAdGl0bGUAVGl0bGUAcm9sZQBzd2l0Y2hSb2xlAG9uU3dpdGNoUm9sZQB1cGRhdGVNeVByb2ZpbGUAZ2V0VXNlclByb2ZpbGUAc2luZ2xlAHRoZSBjYWxsIHN0YXR1cyBmcm9tIHRoZSBJTSBzZXJ2ZXIgaXMgbm90IGlkbGUAZG91YmxlAFNFTEVDVCAqIEZST00gY2FsbF9yZWNvcmRfdGFibGUAZW5hYmxlAGF2YWlsYWJsZQBDb250ZW50QXZhaWxhYmxlAG9uVXNlckF1ZGlvQXZhaWxhYmxlAG9uVXNlclZpZGVvQXZhaWxhYmxlAG9uVXNlclN1YlN0cmVhbUF2YWlsYWJsZQBhcG9zdHJvcGhlAExhcmdlc3RJbnQgb3V0IG9mIFVJbnQgcmFuZ2UATGFyZ2VzdFVJbnQgb3V0IG9mIFVJbnQgcmFuZ2UAZG91YmxlIG91dCBvZiBVSW50IHJhbmdlAExhcmdlc3RJbnQgb3V0IG9mIEludCByYW5nZQBMYXJnZXN0VUludCBvdXQgb2YgSW50IHJhbmdlAGRvdWJsZSBvdXQgb2YgSW50IHJhbmdlADogb3V0IG9mIHJhbmdlAExhcmdlc3RJbnQgb3V0IG9mIFVJbnQ2NCByYW5nZQBkb3VibGUgb3V0IG9mIFVJbnQ2NCByYW5nZQBMYXJnZXN0VUludCBvdXQgb2YgSW50NjQgcmFuZ2UAZG91YmxlIG91dCBvZiBJbnQ2NCByYW5nZQBpZ25vcmVfaW9zX2JhZGdlAGlnbm9yZUlPU0JhZGdlAGxhbmd1YWdlAEkxOG4uQ3VycmVudExhbmd1YWdlAG1lc3NhZ2UAZXhjbHVkZUZyb21IaXN0b3J5TWVzc2FnZQBFeGNsdWRlRnJvbUhpc3RvcnlNZXNzYWdlAE9uU2VuZEMyQ1RleHRNZXNzYWdlAGVycm9yTWVzc2FnZQBzZW5kQ29tYm9NZXNzYWdlAG9uUmVjZWl2ZVNFSU1lc3NhZ2UAaW9zX2ltYWdlAGhvbm9yX2ltYWdlAGZjbV9pbWFnZQBodWF3ZWlfaW1hZ2UASG9ub3JJbWFnZQBIdWFXZWlJbWFnZQBHb29nbGVJbWFnZQBub3QgYnV5IHRoZSBncm91cCBjYWxsIHBhY2thZ2UAbm90IGJ1eSB0aGUgYmFzaWMgY2FsbCBwYWNrYWdlAGludml0ZWUAdGhyZWUAY2FsbGVlAG1vZGUAY29kZQBzZXREZWZhdWx0U3RyZWFtUmVjdk1vZGUAZmlsbE1vZGUAc2V0TG9jYWxBdWRpb011dGVNb2RlAEJhZGdlTW9kZQBSZXN1bHRDb2RlAGVyckNvZGUAZXJyb3JDb2RlAEVycm9yQ29kZQB3YXJuaW5nQ29kZQB0aWxkZQBzZXF1ZW5jZQBsb25nUG9sbGluZ1NlcXVlbmNlAGF1ZGllbmNlAGdldEluc3RhbmNlAGhvbm9yX2ltcG9ydGFuY2UASG9ub3JJbXBvcnRhbmNlAGVuYWJsZUhpZ2hQZXJmb3JtYW5jZQBjYWxsX2VuZ2luZSAtIGRvZXNuJ3Qgd29yayBvbiB0aGlzIGRldmljZQBPbkludml0YXRpb25Qcm9jZXNzZWRCeU90aGVyRGV2aWNlAHNlbGVjdEF1ZGlvUGxheWJhY2tEZXZpY2UAcmlnaHQtYnJhY2UAbGVmdC1icmFjZQBiYWNrc3BhY2UAZ2V0VFJUQ0Nsb3VkAHBlcmlvZABpb3Nfc291bmQAYW5kcm9pZF9zb3VuZABzZXRCbHVyQmFja2dyb3VuZABTZXRCbHVyQmFja2dyb3VuZABzZXRWaXJ0dWFsQmFja2dyb3VuZABTZXRWaXJ0dWFsQmFja2dyb3VuZABlbmFibGVWaXJ0dWFsQmFja2dyb3VuZABjb21tYW5kIGZyZXF1ZW5jeSBsaW1pdCBub3QgZm91bmQAU291bmQAdXNlciBub3QgZmluZABjYWxsX2VuZABhbXBlcnNhbmQAY29tbWFuZABzZXJ2aWNlQ29tbWFuZABvbkNhbGxFbmQAY21kAHZvaWQAaW52aXRlZV9saXN0IGlzIGludmFsaWQAY2FsbF9tZWRpYV90eXBlIGlzIGludmFsaWQAZ3JvdXBfaWQgaXMgaW52YWxpZABjYWxsX2lkIGlzIGludmFsaWQAaW52aXRlZV9pZCBpcyBpbnZhbGlkAHVzZXJfaWQAZ3JvdXBfaWQAY29udmVyc2F0aW9uX2lkAGludF9yb29tX2lkAHN0cl9yb29tX2lkAGNhbGxfZW5naW5lIC0gZHVwbGljYXRlIGNhbGwgd2l0aCBzYW1lIGNhbGxfaWQAYW5kcm9pZF9vcHBvX2NoYW5uZWxfaWQAYW5kcm9pZF9mY21fY2hhbm5lbF9pZABhbmRyb2lkX3hpYW9taV9jaGFubmVsX2lkAGxpdmVfZW5naW5lX3Nydi5zd2l0Y2hfbGF5b3V0X3RlbXBsYXRlX2lkAG1lc3NhZ2VfaWQAb25OZXdJbnZpdGF0aW9uUmVjZWl2ZWQAT25OZXdJbnZpdGF0aW9uUmVjZWl2ZWQAb25DYWxsUmVjZWl2ZWQAb25OZXdNZXNzYWdlUmVjZWl2ZWQAb25Sb29tQ3VzdG9tRGF0YVJlY2VpdmVkAGNhbGxfaW50ZXJydXB0ZWQAY2FsbF9hY2NlcHRlZABPbkludml0YXRpb25BY2NlcHRlZABvbkludml0ZWVBY2NlcHRlZABPbkludml0ZWVBY2NlcHRlZABub3QgaW5pdGVkAGhhcyBpbml0ZWQAY2FsbF9lbmdpbmUgLSBjYWxsIGFjY2VwdGVkOyByZXBlYXRlZCBhY2NlcHQgaW52b2NhdGlvbnMgZGV0ZWN0ZWQAb25DYWxsTm90Q29ubmVjdGVkAGNhbGxfcmVqZWN0ZWQAZW50ZXIgdHJ0YyByb29tIHJlamVjdGVkAHN0YXJ0IHBsYXkgcmVtb3RlIHZpZGVvIHN0cmVhbSByZWplY3RlZABPbkludml0YXRpb25SZWplY3RlZABvbkludml0ZWVSZWplY3RlZABPbkludml0ZWVSZWplY3RlZABPblJlbW90ZVZpZGVvU3RhdHVzVXBkYXRlZABvblNlcnZlckNvbmZpZ1VwZGF0ZWQAb25TY3JlZW5DYXB0dXJlUGF1c2VkAGNhbGxfbWlzc2VkAG9uVXNlclNpZ0V4cGlyZWQAb25TY3JlZW5DYXB0dXJlU3RvcHBlZAB0aGUgcmVjZWl2ZWQgc2lnbmFsIGhhcyBiZWVuIGNvbnN1bWVkAG9uU2NyZWVuQ2FwdHVyZVJlc3VtZWQAb25JbnZpdGF0aW9uQ2FuY2VsbGVkAE9uSW52aXRhdGlvbkNhbmNlbGxlZABjYWxsX2ZhaWxlZABzZW5kIGFjY2VwdCByZXF1ZXN0IGZhaWxlZABjYWxsX2VuZ2luZSAtIHNldCBwaXBlbGluZV9jbGllbnQgZmFpbGVkAGFzc2VydCBqc29uIGZhaWxlZABkZWNvZGUgcmVzcG9uc2VfZGF0YSBmYWlsZWQAY2xvY2tfZ2V0dGltZShDTE9DS19SRUFMVElNRSkgZmFpbGVkAG9uQ29ubmVjdEZhaWxlZABPbkVudGVyVFJUQ1Jvb21GYWlsZWQAY2FsbF9jYW5jZWxlZABPbkludml0YXRpb25DYW5jZWxlZABjYWxsX2VuZ2luZSAtIGludmFsaWQgZW5hYmxlZABpc0NvbW1lcmNpYWxBYmlsaXR5RW5hYmxlZABvblVzZXJOZXR3b3JrUXVhbGl0eUNoYW5nZWQAT25DYWxsTWVtYmVyQ2hhbmdlZABPblVzZXJWaWRlb1NpemVDaGFuZ2VkAE9uVXNlckF1ZGlvU3RhdGVDaGFuZ2VkAE9uVXNlclZpZGVvU3RhdGVDaGFuZ2VkAG9uQ2FsbE1lZGlhVHlwZUNoYW5nZWQAb25Vc2VyVm9pY2VWb2x1bWVDaGFuZ2VkAGZvcm0tZmVlZABXZWQAcGF5bG9hZABoZWFkAEhlYWQAUmVxdWVzdElkAHVzZXJJZABVc2VySWQAR3JvdXBJZABzZGtBcHBJZABSb29tSWQAaW5pdGlhbENhbGxJZABkYXRhIG5vdCBoYXZlIGluaXZ0ZUlkAHNvdXJjZUlkAGRlc2MARGVzYwBudW1lcmljAERlYwAuLy4uLy4uL3NyYy9zc29fY2hhbm5lbC9zc29fcGFja2V0LmNjAC4vLi4vLi4vc3JjL2V4dGVuc2lvbnMvZXh0ZW5zaW9uX2NlbnRlci9leHRlbnNpb25fY2VudGVyLmNjAC4vLi4vLi4vc3JjL2Jhc2ljL2NvbmZpZ19jZW50ZXIvY29uZmlnX2NlbnRlci5jYwAuLy4uLy4uL3NyYy9zc29fY2hhbm5lbC9jb21tYW5kX2ZyZXF1ZW5jeV9jaGVja2VyLmNjAC4vLi4vLi4vc3JjL3BpcGVsaW5lL2FjY291bnQvYWNjb3VudF9tYW5hZ2VyLmNjAC4vLi4vLi4vc3JjL3BpcGVsaW5lL2NhbGwvbW9kdWxlL3YyX2NhbGwvdjJfZ3JvdXBfY2FsbF9tYW5hZ2VyLmNjAC4vLi4vLi4vc3JjL3BpcGVsaW5lL2NhbGwvbW9kdWxlL3YyX2NhbGwvdjJfc2luZ2xlX2NhbGxfbWFuYWdlci5jYwAuLy4uLy4uL3NyYy9waXBlbGluZS9jYWxsL21vZHVsZS92M19jYWxsL3YzX2NhbGxfbWFuYWdlci5jYwAuLy4uLy4uL3RoaXJkX3BhcnR5L2pzb25jcHAvanNvbmNwcC5jYwAuLy4uLy4uL3NyYy9leHRlbnNpb25zL2RldmljZV9tYW5hZ2VyL2RldmljZV9tYW5hZ2VyX2V4dGVuc2lvbi5jYwAuLy4uLy4uL3NyYy9leHRlbnNpb25zL2NhbGxfcmVjb3JkL2NhbGxfcmVjb3JkX2V4dGVuc2lvbi5jYwAuLy4uLy4uL3NyYy9pbV9jb250cm9sbGVyL3dhc20vaW1fY29udHJvbGxlcl93YXNtLmNjAC4vLi4vLi4vc3JjL2ltX2NvbnRyb2xsZXIvd2FzbS9pbV9ldmVudF9jaGFubmVsX3dhc20uY2MALi8uLi8uLi9zcmMvdHJ0Y19jb250cm9sbGVyL21vZHVsZXMvdHJ0Y19hZGFwdGVyL3dhc20vdHJ0Y19ldmVudF9jaGFubmVsX3dhc20uY2MALi8uLi8uLi9zcmMvcGxhdGZvcm1fYWRhcHRlci93YXNtL2NhbGxfZW5naW5lX3dhc20uY2MALi8uLi8uLi9zcmMvdHJ0Y19jb250cm9sbGVyL21vZHVsZXMvdHJ0Y19jb250cm9sbGVyX2ltcGwuY2MALi8uLi8uLi9zcmMvcGlwZWxpbmUvY2FsbC9tb2R1bGUvdjNfY2FsbC92M19jYWxsX3Nzb19jaGFubmVsLmNjAC4vLi4vLi4vc3JjL3Nzb19jaGFubmVsL3Nzb19jaGFubmVsLmNjAC4vLi4vLi4vc3JjL3BpcGVsaW5lL2NhbGwvbW9kdWxlL2NhbGxfcGlwZWxpbmUuY2MAd2ViAEZlYgBDYWxsUmVjb3JkLmRiAHZlcnRpY2FsLXRhYgBcYgByb29tX2VuZ2luZV9zcnYuc2V0X3Jvb21fbWV0YWRhdGEAbGl2ZV9lbmdpbmVfc3J2LnNldF9yb29tX21ldGFkYXRhAHJvb21fZW5naW5lX3Nydi5nZXRfcm9vbV9tZXRhZGF0YQBsaXZlX2VuZ2luZV9zcnYuZ2V0X3Jvb21fbWV0YWRhdGEAaW52YWxpZCBub3RpZnlfZGF0YQB1c2VyX2RhdGEAY2xvdWRfY3VzdG9tX2RhdGEAaW52YWxpZCByZXNwb25zZV9kYXRhAGludmFsaWQgcmVzcG9uZF9kYXRhAHBhcnNlIG5vdGlmeSBmYWlsZWQsIGludmFsaWQgbm90aWZ5IGRhdGEAb25HZXRVc2VySW5mb0xpc3Q6IG5vIGRhdGEAaW52YWxpZCBqc29uIGRhdGEAcGFyc2UgY2FsbEluZm8gZmFpbGVkLCBpbnZhbGlkIHJlc3BvbnNlIGRhdGEAcGFyc2UgcmVzcG9uc2UgZmFpbGVkLCBpbnZhbGlkIHJlc3BvbnNlIGRhdGEAaW52YWxpZCBkYXRhAHVzZXJEYXRhAFVzZXJEYXRhAE9uUmVjZWl2ZVJvb21DdXN0b21EYXRhAHNlbmRSb29tQ3VzdG9tRGF0YQBjbG91ZEN1c3RvbURhdGEAQ2xvdWRDdXN0b21EYXRhAGNhbWVyYQBvcGVuQ2FtZXJhAE9wZW5DYW1lcmEAT25PcGVuTG9jYWxDYW1lcmEAQ2xvc2VMb2NhbENhbWVyYQBzd2l0Y2hDYW1lcmEAY2xvc2VDYW1lcmEAY29tbWEAYWxwaGEAY29sbGVjdENvbW1lbnRzXwBpbmRlbnRTdHJpbmdfLnNpemUoKSA+PSBpbmRlbnRTaXplXwBwYXJzZSBub3RpZnkgZmFpbGVkLCBtaXNzaW5nIGZpZWxkIG9yIGluY29ycmVjdCBmaWVsZCB0eXBlIFtPcGVyYXRpb25Vc2VyTGlzdF0AcGFyc2Ugbm90aWZ5IGZhaWxlZCwgbWlzc2luZyBmaWVsZCBvciBpbmNvcnJlY3QgZmllbGQgdHlwZSBbQWxsVXNlckxpc3RdAG11dGVMb2NhbFZpZGVvIFttdXRlOiB0cnVlXQBtdXRlTG9jYWxWaWRlbyBbbXV0ZTogZmFsc2VdAFtdACBdAFxcAFxdIFxbAHBhcnNlIG5vdGlmeSBmYWlsZWQsIG1pc3NpbmcgZmllbGQgb3IgaW5jb3JyZWN0IGZpZWxkIHR5cGUgWwBpbnZhbGlkIFsAWgAlYSAlYiAlZCAlSDolTTolUyAlWQBQT1NJWABXAFYAVQBUAGNhbGxKUwAlSDolTTolUwBSAFEAR1JPVVAATwBOYU4ATkFOAFRVSVJvb21EZXZpY2VNYW5hZ2VyV0FTTQBJTUV2ZW50Q2hhbm5lbFdBU00AVFJUQ0V2ZW50Q2hhbm5lbFdBU00AVFVJQ2FsbEVuZ2luZVdBU00AUE0AbG9nb3V0SU0AQU0ATlVMAExDX0FMTABPSwBKAGNhbGxBUEkAQ2FsbEFQSQBjYWxsRXhwZXJpbWVudGFsQVBJAENhbGxFeHBlcmltZW50YWxBUEkASABMQU5HAElORgBFAGJ1c2luZXNzSUQAdXNlcklEAGdyb3VwSUQAWGlhb01pQ2hhbm5lbElEAEdvb2dsZUNoYW5uZWxJRABPUFBPQ2hhbm5lbElEAEZDTUNoYW5uZWxJRABpbnZpdGVJRABkZXN0cm95VFJUQwBjcmVhdGVUUlRDAEpTVFJUQwBDMkMAQgBpY29uQkdSQQB0aHVtYkJHUkEAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgBvcGVyYXRvcj09AERFTEVURSBGUk9NIGNhbGxfcmVjb3JkX3RhYmxlOwAgT1JERVIgQlkgaWQgREVTQzsAKTsALCBjb21tZXJjaWFsX2tleToAY2FsbF9lbmdpbmUgLSBib2R5OgAsIG5ldzoAW3Jlc3VsdDoALCByZXN1bHQ6ACwgbGltaXQ6AGNhbGxfZW5naW5lIC0gW2N1c3RvbV9zdGF0dXM6AHJlamVjdCB0byBzdGFydCwgc3RhdHVzOgAgW2ZwczoALCBwYXJhbXM6ACxvcGVyYXRvcjoALGludml0ZXI6ACwgaW52aXRlcjoALGhhc19hdWRpbzoALCBoYXNfYXVkaW86ACxoYXNfdmlkZW86ACwgaGFzX3ZpZGVvOgAsY2hhbmdlX3JlYXNvbjoAW3JlYXNvbjoALHJlYXNvbjoALCByZWFzb246ACBbdmlkZW9fcmVzb2x1dGlvbjoAY2FsbF9lbmdpbmUgLSBbaW0gdmVyc2lvbjoALCB0dWlraXQgZW5naW5lIHZlcnNpb246ACwgdHJ0YyB2ZXJzaW9uOgAsIG1heGltdW06AGNhbGxfZW5naW5lIC0gW2pzb25fcGFyYW06AGNhbGxfZW5naW5lIC0gIFtqc29uX3BhcmFtOgAsanNvbl9wYXJhbToALCBvbGRfaGFzX2JpZ192aWRlb19zdHJlYW06ACxpc19lcGhlbWVyYWxfY2FsbDoAY2FsbF9lbmdpbmUgLSBjYWxsIGFwaToALCBjbG91ZCBjb25maWc6ACxjYWxsX3Jlc3VsdF9saXN0IHNpemU6ACxyZXN1bHRfbGlzdCBzaXplOgAsdXNlcl9zdGF0dXNfbGlzdCBzaXplOgAsYWxsX3VzZXJfbGlzdCBzaXplOgAsaW52aXRlZV9saXN0IHNpemU6ACx1c2VyX2lkX2xpc3Qgc2l6ZToAIGRldmljZV9zdGF0ZToAdGhlIGJpdHJhdGUgaGFzIGJlZW4gbWF4aW11bSBsaW1pdCBbYml0cmF0ZToAY2FsbF9lbmdpbmUgLSBbZXZlbnRfdHlwZToAY2FsbF9lbmdpbmUgLSBbYWN0aW9uX3R5cGU6ACxhY3Rpb25fdHlwZToAb25TZW5kRmlyc3RMb2NhbFZpZGVvRnJhbWUsIFtzdHJlYW1fdHlwZToALHN0cmVhbV90eXBlOgAgZGV2aWNlX3R5cGU6AGNhbGxfZW5naW5lIC0gaW52YWxpZCBbbWVkaWFfdHlwZToAY2FsbF9lbmdpbmUgLSBbbWVkaWFfdHlwZToAW29ubHkgc3VwcG9ydCBzd2l0Y2ggZnJvbSB2aWRlbyB0byBhdWRpbyxtZWRpYV90eXBlOgBjYWxsX2VuZ2luZSAtIFtmdW5jTmFtZToAY2FsbF9lbmdpbmUgLSBbcm9sZToAZW5hYmxlU21hbGxWaWRlb1N0cmVhbSwgW2VuYWJsZToALCBhdmFpbGFibGU6AHxlcnJvcl9tZXNzYWdlOgAsZXJyb3JfbWVzc2FnZToALCBlcnJvcl9tZXNzYWdlOgAsIHdhcm5pbmdfbWVzc2FnZToALG1lc3NhZ2U6ACwgbWVzc2FnZToALGludml0ZWU6ACwgaW52aXRlZToAIFtyZXNvbHV0aW9uX21vZGU6AGNhbGxfZW5naW5lIC0gZGVjb2RlLFtlcnJvcl9jb2RlOgBvblN3aXRjaFJvbGUgW2Vycm9yX2NvZGU6AGNhbGxfZW5naW5lIC0gW2Vycm9yX2NvZGU6ACxlcnJvcl9jb2RlOgBjYWxsX2VuZ2luZSAtIGVycm9yX2NvZGU6AGNhbGxfZW5naW5lIC0gW2NvZGU6AGV4Y2VlZCBmcmVxdWVuY3kgbGltaXR8Y29tbWFuZDoAY29tbWFuZCBmcmVxdWVuY3kgbGltaXQgbm90IGZvdW5kfGNvbW1hbmQ6AHN3aXRjaCBsb2dpbiB1c2VyLCBvbGQ6AGNhbGxfZW5naW5lIC0gW3JlcXVlc3RfaWQ6ACxyZXF1ZXN0X2lkOgBjYWxsX2VuZ2luZSAtIHJlcXVlc3RfaWQ6AEpzIG5vdGlmeSBOYXRpdmUgT25KU0V2ZW50LCBbZXZlbnRfaWQ6ACxvcGVyYXRvcl9pZDoALCBvcGVyYXRvcl9pZDoAY2FsbF9lbmdpbmUgLSBbdXNlcl9pZDoALHVzZXJfaWQ6ACwgdXNlcl9pZDoALGdyb3VwX2lkOgBjYWxsX2VuZ2luZSAtIFtzZGtfYXBwX2lkOgB8cm9vbV9pZDoAc2V0TG9jYWxWaWRlb1ZpZXcgZmFpbGVkIFtpbnRfcm9vbV9pZDoALGludF9yb29tX2lkOgAsc3RyX3Jvb21faWQ6ACBzdHJfcm9vbV9pZDoAY2FsbF9lbmdpbmUgLSBnZXQgY2FsbCBpbmZvIGZyb20gc2VydmVy77yMdGhpcyBjYWxsIGluZm8gbm90IGV4aXN077yMW2NhbGxfaWQ6AGNhbGxfZW5naW5lIC0gW2NhbGxfaWQ6ACxjYWxsX2lkOgBjYWxsX2VuZ2luZSAtIFtpbnZpdGVfaWQ6AGNhbGxfZW5naW5lLCBbaW52aXRlX2lkOgAsaW52aXRlX2lkOgBvbkRldmljZUNoYW5nZSwgW2RldmljZV9pZDoALCBpc19sb2NhbF9hdWRpb19tdXRlZDoALCBpc19sb2NhbF92aWRlb19tdXRlZDoALCBpc19sb2NhbF9taWNyb3Bob25lX29wZW5lZDoALCBpc19sb2NhbF9jYW1lcmFfb3BlbmVkOgAsIGlzX3NtYWxsX3ZpZGVvX3N0cmVhbV9lbmFibGVkOgBpbnZhbGlkIG5vdGlmeSBkYXRhLCBpbnZhbGlkIHJvb3Qgbm9kZSBvciBpbmNvcnJlY3Qgcm9vdCBub2RlIHR5cGUsIG5vdGlmeV9kYXRhOgBpbnZhbGlkIG5vdGlmeSBkYXRhLCBtaXNzaW5nIGZpZWxkIG9yIGluY29ycmVjdCBmaWVsZCB0eXBlIGluIGhlYWQsIFtWZXJzaW9uXSwgbm90aWZ5X2RhdGE6AGludmFsaWQgbm90aWZ5IGRhdGEsIG1pc3NpbmcgZmllbGQgb3IgaW5jb3JyZWN0IGZpZWxkIHR5cGUgaW4gaGVhZCwgW0NvbW1hbmRdLCBub3RpZnlfZGF0YToAaW52YWxpZCBub3RpZnkgZGF0YSwgbWlzc2luZyBmaWVsZCBvciBpbmNvcnJlY3QgZmllbGQgdHlwZSwgW0hlYWRdLCBub3RpZnlfZGF0YToAaW52YWxpZCBub3RpZnkgZGF0YSwgbWlzc2luZyBmaWVsZCBvciBpbmNvcnJlY3QgZmllbGQgdHlwZSwgW0RhdGFdLCBub3RpZnlfZGF0YToALHJlc3BvbnNlX2RhdGE6AGNhbGxfZW5naW5lIC0gaW52YWxpZCByZXNwb25zZV9kYXRhOgBpbnZhbGlkIHJlc3BvbnNlIGRhdGEsIGludmFsaWQgcm9vdCBub2RlIG9yIGluY29ycmVjdCByb290IG5vZGUgdHlwZSwgcmVzcG9uc2VfZGF0YToAaW52YWxpZCByZXNwb25zZSBkYXRhLCBtaXNzaW5nIGZpZWxkIG9yIGluY29ycmVjdCBmaWVsZCB0eXBlLCBbRXJyb3JJbmZvXSwgcmVzcG9uc2VfZGF0YToAaW52YWxpZCByZXNwb25zZSBkYXRhLCBtaXNzaW5nIGZpZWxkIG9yIGluY29ycmVjdCBmaWVsZCB0eXBlLCBbRXJyb3JDb2RlXSwgcmVzcG9uc2VfZGF0YToALGRhdGE6AHN3aXRjaENhbWVyYSxbaXNGcm9udENhbWVyYToALCBoaWdodCA6AC0xZSs5OTk5ADAxMjM0NTY3ODkAMS4wLjkAQy5VVEYtOABjYWxsX2VuZ2luZSAtIGludmFsaWQgcmVzb2x1dGlvbiB2YWx1ZSwgdmFsaWQgcmFuZ2UgaXMgMS00AHYzAGNhbGxfZW5naW5lIC0gaW52YWxpZCByZXNvbHV0aW9uIHZhbHVlLCB2YWxpZCByYW5nZSBpcyAwLTMAY2FsbF9lbmdpbmUgLSBpbnZhbGlkIGxldmVsLCB2YWxpZCByYW5nZTogMC0zAHYyAGNhbGxfZW5naW5lIC0gaW52YWxpZCByZXNvbHV0aW9uIG1vZGUgdmFsdWUsIHZhbGlkIHJhbmdlIGlzIDAtMQBjYWxsX2VuZ2luZSAtIGludmFsaWQgZmlsbCBtb2RlIHZhbHVlLCB2YWxpZCByYW5nZSBpcyAwLTEAMi4yNy4wADEuMC4wLjAAbGVuID49IDAAbGFzdFZhbHVlXyAhPSAwAFwvAGluIEpzb246OlZhbHVlOjpzZXRDb21tZW50KCk6IENvbW1lbnRzIG11c3Qgc3RhcnQgd2l0aCAvAGNhbGxfZW5naW5lIC0gdXNlcl9pZCBpcyBlbXB0eS4AdGhlIHBhY2thZ2UgeW91IHB1cmNoYXNlZCBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgYWJpbGl0eS4AVGhlIHBhY2thZ2UgeW91IHB1cmNoYXNlZCBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgYWJpbGl0eS4AVmFsdWUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIFVJbnQuAFZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBJbnQuAGxvZ2luIHN1Y2Nlc3MuAG11c3QgYWNjZXB0IHRoZSBjYWxsIGZpcnN0IGJlZm9yZSBpbnZpdGUgb3RoZXJzLgBwbGVhc2UgY2hlY2sgbG9naW4gcGFyYW1zLgBhZGRpdGlvbmFsIHNpeCBjaGFyYWN0ZXJzIGV4cGVjdGVkIHRvIHBhcnNlIHVuaWNvZGUgc3Vycm9nYXRlIHBhaXIuAHlvdSBoYXZlIGJlZW4ga2lja2VkIGJ5IHRydGMgc2VydmVyLgAnIGlzIG5vdCBhIG51bWJlci4AY2FsbF9lbmdpbmUgLSBubyBjYWxsIGludml0YXRpb24gcmV0cmlldmVkIGZyb20gc2VydmVyIGFmdGVyIGxvZ2luIG9yIG5ldHdvcmsgcmVjb25uZWN0aW9uLgBWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gYm9vbC4Ab25FeGl0Um9vbSBieSBzZWxmLgBBIHZhbGlkIEpTT04gZG9jdW1lbnQgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IHZhbHVlLgBWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gZG91YmxlLgBvbkV4aXRSb29tIGJ5IHRydGMgc2VydmVyIGRlc3Ryb3llZC4AU3ludGF4IGVycm9yOiB2YWx1ZSwgb2JqZWN0IG9yIGFycmF5IGV4cGVjdGVkLgBCYWQgdW5pY29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nOiBoZXhhZGVjaW1hbCBkaWdpdCBleHBlY3RlZC4AQmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZzogZm91ciBkaWdpdHMgZXhwZWN0ZWQuAHRoZSByZXNwb25zZV9kYXRhIGlzIG51bGwgb3IgdW5kZWZpbmVkLgB0aGUgdXNlciBkYXRhIGlzIG51bGwgb3IgdW5kZWZpbmVkLgBPbkludml0YXRpb25UaW1lb3V0OiB0aGUgZGF0YSBpcyBudWxsIG9yIHVuZGVmaW5lZC4AT25OZXdJbnZpdGF0aW9uUmVjZWl2ZWQ6IHRoZSBkYXRhIGlzIG51bGwgb3IgdW5kZWZpbmVkLgBPbk5ld01lc3NhZ2VSZWNlaXZlZDogdGhlIGRhdGEgaXMgbnVsbCBvciB1bmRlZmluZWQuAE9uSW52aXRlZUFjY2VwdGVkOiB0aGUgZGF0YSBpcyBudWxsIG9yIHVuZGVmaW5lZC4AT25JbnZpdGVlUmVqZWN0ZWQ6IHRoZSBkYXRhIGlzIG51bGwgb3IgdW5kZWZpbmVkLgBPbkludml0YXRpb25DYW5jZWxsZWQ6IHRoZSBkYXRhIGlzIG51bGwgb3IgdW5kZWZpbmVkLgBvblJlY2VpdmVSb29tQ3VzdG9tRGF0YTogdGhlIGRhdGEgaXMgbnVsbCBvciB1bmRlZmluZWQuAG9uRXhpdFJvb20gYnkgdHJ0YyBzZXJ2ZXIga2lja2VkLgBWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gVUludDY0LgBWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gSW50NjQuAEV4Y2VlZGVkIHN0YWNrTGltaXQgaW4gcmVhZFZhbHVlKCkuAGRlY29kZSByZXNwb25zZV9kYXRhIGZhaWxlZCwAaW52YWxpZCByZXNwb25zZV9kYXRhLAAobnVsbCkAb3BlcmF0b3IoKQBERUxFVEUgRlJPTSBjYWxsX3JlY29yZF90YWJsZSBXSEVSRSBjYWxsX2lkIElOICgAY2FsbF9lbmdpbmUgLSBub3Qgd2FpdGluZywgY2FsbF9pZCBtaXNtYXRjaCwgb3Igcm9sZSBpcyBub3QgJ2NhbGxlcicAJycAXCIAUHVyZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxlZCEAWyAAIFdIRVJFIGNhbGxfcmVzdWx0ID0gAG9uRW50ZXJSb29tLCBbcmVzdWx0OiAALCByZXN1bHQ6IAAsIGhlaWdodDogACwgc3RhdHVzOiAAbG9naW4gZXJyb3I6IABvblNjcmVlbkNhcHR1cmVQYXVzZWQgW3JlYXNvbjogAG9uU2NyZWVuQ2FwdHVyZVN0b3BlZCBbcmVhc29uOiAAb25TY3JlZW5DYXB0dXJlUmVzdW1lZCBbcmVhc29uOiAAb25FeGl0Um9vbSwgW3JlYXNvbjogAG9uTG9jYWxVc2VyQXVkaW9DaGFuZ2VkLCBbcmVhc29uOiAALCByZWFzb246IABpbSBhY3R1YWxfdmVyc2lvbjogAHRydGMgYWN0dWFsX3ZlcnNpb246IABpbSBleHBlY3RlZF92ZXJzaW9uOiAAdHJ0YyBleHBlY3RlZF92ZXJzaW9uOiAALCBleHBlY3RlZF92ZXJzaW9uOiAATWFrZSBleHRlbnNpb246IAAsIGpzb25fcGFyYW06IAAsIG5ld19oYXNfYXVkaW9fc3RyZWFtOiAALCBvbGRfaGFzX2F1ZGlvX3N0cmVhbTogACwgbmV3X2hhc192aWRlb19zdHJlYW06IAAsIG9sZF9oYXNfc21hbGxfdmlkZW9fc3RyZWFtOiAALCBvbGRfaGFzX3NjcmVlbl9zdHJlYW06IAAsIHdpZHRoOiAALG9wZXJhdGlvbl91c2VyX2xpc3Qgc2l6ZTogAFttdXRlOiAAb25Mb2NhbFVzZXJWaWRlb0NoYW5nZWQsIFtzdHJlYW1fdHlwZTogACwgc3RyZWFtX3R5cGU6IAAsIHN0cmVhbVR5cGU6IAAsIHVzZXJfbmFtZTogACwgZXJyb3JfbWVzc2FnZTogACwgbWVzc2FnZTogAG9uRXJyb3IsIFtlcnJvcl9jb2RlOiAAb25TZXRTZWxmSW5mbywgW2Vycm9yX2NvZGU6IABvbkxvZ291dElNLCBbZXJyb3JfY29kZTogAG9uTG9naW5JTSwgW2Vycm9yX2NvZGU6IABvblVwZGF0ZUxvZ2luVXNlckZyb21JTSwgW2Vycm9yX2NvZGU6IABvbldhcm5pbmcsIFt3YXJuaW5nX2NvZGU6IABjYWxsX2VuZ2luZSAtIHF1ZXJ5IHJlY2VudCBjYWxscyBjb2RlOiAAY2FsbF9lbmdpbmUgLSBkZWxldGUgZGIgY29kZTogAGNhbGxfZW5naW5lIC0gdXBzZXJ0IGRiIHJlc3VsdCEgY29kZTogAGNhbGxfZW5naW5lIC0gY3JlYXRlIGRiIHJlc3VsdCEgY29kZTogAG9uVXBkYXRlTG9naW5Vc2VyRnJvbUlNIHN1Y2Nlc3MsIFt1c2VyX2lkOiAAb25Mb2dpblN1Y2Nlc3MsIFt1c2VyX2lkOiAAc2V0U2VsZkluZm8sIFt1c2VyX2lkOiAAbG9naW4sIFt1c2VyX2lkOiAAb25GaXJzdFZpZGVvRnJhbWUsIFt1c2VyX2lkOiAAbG9naW5JTSwgW3VzZXJfaWQ6IAB1cGRhdGVMb2dpblVzZXJGcm9tSU0sIFt1c2VyX2lkOiAALCB1c2VyX2lkOiAALCBpbnRfcm9vbV9pZDogACwgc3RyX3Jvb21faWQ6IABjYWxsX2VuZ2luZSAtIFtpbnZpdGVfaWQ6IABNYWtlIGV4dGVuc2lvbiBmYWlsZWQ6IABnZXRMb2dpblVzZXJJZDogACxyZXNwb25zZV9kYXRhOiAALCBkYXRhOiAAZW50ZXIgdHJ0YyByb29tIGZhaWxlZCAsIGVycm9yIGNvZGUgOiAAb25Vc2VyVmlkZW9BdmFpbGFibGUsW3VzZXJfaWQgOiAAb25SZW1vdGVVc2VyRW50ZXJSb29tLCBbdXNlcl9pZCA6IABvblJlbW90ZVVzZXJMZWF2ZVJvb20sIFt1c2VyX2lkIDogAG9uVXNlckF1ZGlvQXZhaWxhYmxlLCBbdXNlcl9pZCA6IABvblVzZXJTdWJTdHJlYW1BdmFpbGFibGUsIFt1c2VyX2lkIDogAGNhbGxfZW5naW5lIC0gAGludmFsaWQgY29tbWFuZCwgAGRlY29kZSBub3RpZnlfZGF0YSBmYWlsZWQsIABpbnZhbGlkIG5vdGlmeV9kYXRhLCAAJXMKACJcCAwKDQkAQaTfAQsJBAAAAAUAAAAGAEG43wELCQcAAAAIAAAACQBBzN8BCwkKAAAACwAAAAwAQeDfAQs5EAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAEGk4AELOR8AAAAgAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAIQAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgBB6OABCwUiAAAAIwBB+OABCwUkAAAAJQBBiOEBC1kmAAAAJwAAACgAAAApAAAAKgAAAABDb3VudFVWAG9wdABrZXkAAAAAd2l0aEluc3RhbmNlVHJhY2UAdmVyc2lvbgBDb3VudFBWAHNka0FwcElkAHJlcG9ydABB7OEBCw0rAAAALAAAAC0AAAAuAEGE4gELDSsAAAAvAAAAMAAAAC4AQZziAQsRJgAAADEAAAAyAAAAKQAAADMAQbjiAQsNNAAAADUAAAA2AAAALgBB0OIBCw00AAAANwAAADAAAAAuAEHo4gELDSsAAAA4AAAAMAAAAC4AQYDjAQsNNAAAADkAAAA6AAAALgBBmOMBCw00AAAAOwAAADwAAAAuAEGw4wELDT0AAAA+AAAAPwAAAC4AQcjjAQsNQAAAAEEAAABCAAAALgBB4OMBCw00AAAAQwAAAEQAAAAuAEH44wELDUUAAABGAAAARwAAAC4AQZDkAQsNSAAAAEkAAABKAAAALgBBqOQBCw00AAAASwAAAEwAAAAuAEHA5AELDU0AAABOAAAATwAAAC4AQdjkAQsNUAAAAFEAAABSAAAALgBB8OQBCw00AAAAUwAAAFQAAAAuAEGI5QELDVUAAABWAAAAVwAAAC4AQaDlAQsNNAAAAFgAAABZAAAALgBBuOUBCw00AAAAWgAAAFsAAAAuAEHQ5QELDVwAAABdAAAAXgAAAF8AQejlAQsNXAAAAGAAAAAwAAAALgBBgOYBCw0rAAAAYQAAAGIAAAAuAEGY5gELDVwAAABjAAAAZAAAAGUAQbDmAQsNKwAAAGYAAABnAAAALgBByOYBCw00AAAAaAAAAGkAAAAuAEHg5gELEWoAAABrAAAAbAAAACkAAABtAEGA5wELFjDWAAAx1gAAMdYAADLWAAAw1gAAMdYAQaDnAQsNcwAAAHQAAAB1AAAAdgBBuOcBCy53AAAAeAAAAHUAAAB2AAAAvNYAADLWAAAy1gAAMtYAAMjWAACyLwAAFi4AAFwJAEHw5wELcZUAAACWAAAAlwAAAJgAAACZAAAAmgAAAJsAAACcAAAAnQAAAJ4AAACfAAAAoAAAAKEAAACiAAAAowAAAKQAAAClAAAApgAAAKcAAACoAAAAqQAAAKoAAACrAAAArAAAAK0AAACuAAAArwAAALAAAACxAEHs6AELcbIAAACzAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAEHo6QELBbQAAAC1AEH46QELBbYAAAC3AEGI6gELBbgAAAC5AEGY6gELBboAAAC7AEGo6gELBbwAAAC9AEG46gELBb4AAAC/AEHI6gELESYAAADAAAAAwQAAACkAAADCAEHk6gELIsMAAADEAAAAxQAAACkAAADGAAAAMNYAADLWAAAw1gAA/NYAQZDrAQsOMNYAAMjWAADI1gAAMtYAQazrAQvXAccAAADIAAAAyQAAAMoAAADLAAAAzAAAAM0AAADOAAAAzwAAANAAAADRAAAA0gAAANMAAADUAAAA1QAAANYAAADXAAAA2AAAANkAAADaAAAA2wAAANwAAADdAAAA3gAAAN8AAADgAAAA4QAAAOIAAADjAAAA5AAAAOUAAADmAAAA5wAAAOgAAADpAAAAcm9sZQBzZGtBcHBJZAB1c2VySWQAdXNlclNpZwByb29tSWQAc3RyUm9vbUlkAHByaXZhdGVNYXBLZXkAY2FtZXJhSWQAdmlld0lkAEGQ7QELJXZpZGVvUmVzb2x1dGlvbgB2aWRlb0ZwcwB2aWRlb0JpdHJhdGUAQcDtAQtfbWluVmlkZW9CaXRyYXRlAHJlc01vZGUAc3RyZWFtVHlwZQBvcHRpb25zAAAAAAAAZW5hYmxlQWRqdXN0UmVzAGVuY1BhcmFtAGFwaQBwYXJhbXMAZnJvbnRDYW1lcmEAQajuAQuJAeoAAADrAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAADjAAAADAAAAOUAAADmAAAA5wAAAOgAAADpAEG87wELEewAAADtAAAA7gAAACkAAADvAEHY7wELSvEAAADyAAAA8wAAAPQAAAD1AAAA9gAAAPcAAAD4AAAA+QAAAPoAAAD7AAAA/AAAAP0AAAD+AAAA/wAAAAABAAABAQAAAgEAAAMBAEGw8AELQktleU1ldHJpY3NTdGF0cwB1c2VySWQAc3RyZWFtVHlwZQB2aWV3SWQAY2FtZXJhSWQAb3B0aW9ucwBlbmNQYXJhbQBBgPEBC1t2aWRlb1Jlc29sdXRpb24AcmVzTW9kZQB2aWRlb0ZwcwB2aWRlb0JpdHJhdGUAAABtaW5WaWRlb0JpdHJhdGUAZW5hYmxlQWRqdXN0UmVzAGZyb250Q2FtZXJhAEHk8QELSgQBAAAFAQAADAAAAAwAAAAMAAAA9gAAAPcAAAD4AAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAGAQAAAgEAAAcBAEG48gELGggBAAAJAQAACgEAACkAAAALAQAAMtYAALzWAEHc8gELGgwBAAANAQAADgEAACkAAAAPAQAAMNYAAMjWAEGA8wELGhABAAARAQAAEgEAABMBAAAUAQAAFQEAABYBAEGk8wELGRcBAAAYAQAADAAAAAwAAAAMAAAADAAAAAwAQcjzAQsaGQEAABoBAAAbAQAAHAEAAB0BAAAeAQAAHwEAQezzAQsZIAEAACEBAAAMAAAADAAAAAwAAAAMAAAADABBkPQBCxoiAQAAIwEAACQBAAAlAQAAJgEAACcBAAAoAQBBtPQBCxkpAQAAKgEAAAwAAAAMAAAADAAAAAwAAAAMAEHY9AELGisBAAAsAQAALQEAAC4BAAAvAQAAMAEAADEBAEH89AELGTIBAAAzAQAADAAAAAwAAAAMAAAADAAAAAwAQaD1AQsOMNYAAMjWAADI1gAAMtYAQbj1AQsaNAEAADUBAAA2AQAANwEAADgBAAA5AQAAOgEAQdz1AQsaOwEAADwBAAA9AQAAPgEAAD8BAABAAQAAQQEAQYD2AQsSMNYAAMjWAADI1gAAMtYAADHWAEGc9gELlgRVAQAAVgEAAFcBAABYAQAAWQEAAFoBAABbAQAAXAEAAF0BAABeAQAAXwEAAGABAABhAQAAYgEAAGMBAABkAQAAZQEAAGYBAABnAQAAaAEAAGkBAABqAQAAawEAAGwBAABtAQAAbgEAAG8BAABwAQAAcQEAAHIBAABzAQAAdAEAAHUBAAB2AQAAdwEAAHgBAAB5AQAAegEAAHsBAAB8AQAAfQEAAH4BAAB/AQAAgAEAAIEBAACCAQAAgwEAAIQBAACFAQAAhgEAAIcBAACIAQAAiQEAAIoBAACLAQAAjAEAAI0BAACOAQAAjwEAAJABAACRAQAAkgEAAJMBAACUAQAAlQEAAJYBAACXAQAAmAEAAJkBAACaAQAAmwEAAJwBAACdAQAAngEAAJ8BAACgAQAAoQEAAKIBAACjAQAApAEAAKUBAACmAQAApwEAAKgBAACpAQAAqgEAAKsBAACsAQAArQEAAK4BAACvAQAAsAEAALEBAAD8////AAAAALIBAACzAQAAtAEAALUBAAC2AQAAtwEAALgBAAC5AQAAugEAALsBAAC8AQAAvQEAAL4BAAC/AQAAwAEAAMEBAADCAQAAwwEAAMQBAADFAQAAxgEAAMcBAADIAQAAyQEAAMoBAADLAQAAzAEAAM0BAADOAQAAzwEAANABAAABAAAAhAMAAAIAAAAIBwAAAwAAAAgHAAAEAAAAoA8AQcD6AQv9AdEBAADSAQAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAQcj8AQt50wEAANQBAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAA1QEAANYBAADXAQAA2AEAANkBAAAMAAAADABBzP0BCwbaAQAA2wEAQdz9AQsG3AEAAN0BAEHs/QELBt4BAADfAQBB/P0BCwbgAQAA4QEAQYz+AQsG4gEAAOMBAEGc/gELBuQBAADlAQBBrP4BCxLmAQAA5wEAAOgBAAApAAAA6QEAQcj+AQsS6gEAAOsBAADsAQAAKQAAAO0BAEHk/gELGiABAADuAQAA7wEAAPABAADxAQAA8gEAAPMBAEGM/wELGvQBAAD1AQAA9gEAAPcBAAD4AQAA+QEAAPoBAEGw/wELGvsBAAD8AQAA/QEAAP4BAAD/AQAAAAIAAAECAEHU/wELGQICAAADAgAADAAAAAwAAAAMAAAADAAAAAwAQfj/AQsaBAIAAAUCAAAGAgAABwIAAAgCAAAJAgAACgIAQZyAAgs6CwIAAAwCAAAMAAAADAAAAAwAAAAMAAAADAAAAA8AAAAPAAAADwAAABQAAAAgAwAAsAQAAAgHAAC4CwBB4IACCzkPAgAAEAIAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABECAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AQaSBAgsGEgIAABMCAEG4gQILDhcCAAAYAgAAGQIAABAnAEHQgQILCgwAAAAaAgAAGwIAQeSBAgsGHAIAAB0CAEH0gQILEh4CAAAfAgAAIAIAACkAAAAhAgBBkIICCxImAAAAIgIAACMCAAApAAAAJAIAQbCCAgsSJQIAACYCAAAnAgAAKQAAACgCAEHMggILjgEqAgAAKwIAACwCAAAtAgAALgIAAC8CAAAwAgAAMQIAAPT///8AAAAAMgIAADMCAAA0AgAANQIAADYCAAA3AgAAOAIAADkCAAA6AgAAOwIAADwCAAA9AgAAPgIAAD8CAABAAgAAQQIAAEICAABDAgAARAIAAEUCAABGAgAARwIAAEgCAABJAgAASgIAAEsCAEHkgwILEkwCAABNAgAATgIAACkAAABPAgBBgIQCCw4MAAAADAAAAFACAABRAgBBmIQCC2ZSAgAAUwIAADQCAAA1AgAANgIAADcCAAA4AgAAOQIAADoCAAA7AgAAPAIAAD0CAABUAgAAVQIAAFYCAABXAgAAQgIAAEMCAABEAgAARQIAAEYCAABHAgAASAIAAEkCAABKAgAASwIAQYiFAgtyXgIAAF8CAABgAgAAYQIAAGICAABjAgAAZAIAAGUCAABmAgAAZwIAAGgCAABpAgAAagIAAGsCAABsAgAAbQIAAG4CAABvAgAAcAIAAHECAAByAgAAcwIAAHQCAAB1AgAAdgIAAHcCAAB4AgAAeQIAAHoCAEGEhgILeXsCAAB8AgAAYAIAAH0CAABiAgAAYwIAAGQCAABlAgAAZgIAAGcCAABoAgAAaQIAAGoCAABrAgAAbAIAAG0CAABuAgAAbwIAAHACAABxAgAAcgIAAHMCAAB0AgAAdQIAAHYCAAB3AgAAeAIAAHkCAAB6AgAAaWkAdmkAQYiHAgsOfgIAAH8CAACAAgAAgQIAQaCHAgsODAAAAAwAAACCAgAAgwIAQbyHAgvZA5MCAACUAgAAlQIAAJYCAAAAAAAAQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgY2FsbF9yZWNvcmRfdGFibGUoICAgIGlkIElOVEVHRVIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCwgICAgIGNhbGxfaWQgVkFSQ0hBUigyNTUpLCAgICBpbnZpdGVyIFZBUkNIQVIoMjU1KSwgICAgaW52aXRlZV9saXN0IFZBUkNIQVIoMjU1KSwgICAgbWVkaWFfdHlwZSBJTlRFR0VSLCAgICBjYWxsX3R5cGUgSU5URUdFUiwgICAgY2FsbF9yb2xlIElOVEVHRVIsICAgIGNhbGxfcmVzdWx0IElOVEVHRVIsICAgIGNoYXRfZ3JvdXBfaWQgVkFSQ0hBUigyNTUpLCAgICBzdGFydF90aW1lIElOVEVHRVIsICAgIGVuZF90aW1lIElOVEVHRVIsICAgIGFjY2VwdF90aW1lIElOVEVHRVIsICAgIHJvb21faWQgVkFSQ0hBUigyNTUpLCAgICByb29tX2lkX3R5cGUgSU5URUdFUiwgICAgVU5JUVVFKGNhbGxfaWQpKTsAAAAAY2FsbGtpdF9yZWNvcmRzX3N2ci4qAEGgiwIL8AFJTlNFUlQgT1IgUkVQTEFDRSBJTlRPIGNhbGxfcmVjb3JkX3RhYmxlKGNhbGxfaWQsIGludml0ZXIsIGludml0ZWVfbGlzdCwgbWVkaWFfdHlwZSwgY2FsbF90eXBlLCBjYWxsX3JvbGUsIGNhbGxfcmVzdWx0LCBjaGF0X2dyb3VwX2lkLCBzdGFydF90aW1lLCBlbmRfdGltZSwgYWNjZXB0X3RpbWUsIHJvb21faWQsIHJvb21faWRfdHlwZSkgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KTsAQZyNAgsSlwIAAJgCAACZAgAAKQAAAJoCAEG4jQILBiQAAACbAgBByI0CCwacAgAAnQIAQdiNAgsGJAAAAJ4CAEHojQILBp8CAACgAgBB+I0CCxqhAgAAogIAAKMCAACkAgAApQIAAKYCAACnAgBBnI4CCxmoAgAAqQIAAAwAAAAMAAAADAAAAAwAAAAMAEHEjgILEqoCAACrAgAArAIAACkAAACtAgBB4I4CCxquAgAArwIAALACAACxAgAAsgIAALMCAAC0AgBBhI8CCxm1AgAAtgIAAAwAAAAMAAAADAAAAAwAAAAM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AEGkpgILBrkEAAC6BABBtKYCCwa7BAAAvAQAQcSmAgsSvQQAAL4EAAC/BAAAKQAAAMAEAEHgpgILGsEEAADCBAAAwwQAAMQEAADFBAAAxgQAAMcEAEGEpwILGsgEAADJBAAAygQAAMsEAADMBAAAzQQAAM4EAEGopwILGs8EAADQBAAA0QQAANIEAADTBAAA1AQAANUEAEHMpwILGtYEAADXBAAA2AQAANkEAADaBAAA2wQAANwEAEHwpwILGt0EAADeBAAA3wQAAOAEAADhBAAA4gQAAOMEAEGUqAILMuQEAADlBAAA5gQAAOcEAADoBAAA6QQAAOoEAAACAAAAAwAAAAEAAAAAAAAABAAAABAnAEHQqAILImNhbGxfZW5naW5lX3Nydi5pbnZpdGVfdXNlcl9ub3RpZnkAQYCpAgsmY2FsbF9lbmdpbmVfc3J2Lmludml0ZV9jYW5jZWxlZF9ub3RpZnkAQbCpAgsjY2FsbF9lbmdpbmVfc3J2LmNhbGxfaGFuZGxlZF9ub3RpZnkAQeCpAgsjY2FsbF9lbmdpbmVfc3J2LmNhbGxfaGFuZGxlZF9yZXBvcnQAQZCqAgvmAWNhbGxfZW5naW5lX3Nydi5jYWxsX21lbWJlcl9jaGFuZ2VkX25vdGlmeQAAAAAAAGNhbGxfZW5naW5lX3Nydi5raWNrX29mZl9ub3RpZnkAY2FsbF9lbmdpbmVfc3J2LmVuZF9jYWxsX25vdGlmeQBjYWxsX2VuZ2luZV9zcnYuc3RhcnRfY2FsbAAAAAAAAGNhbGxfZW5naW5lX3Nydi5jYW5jZWxfaW52aXRlAAAAY2FsbF9lbmdpbmVfc3J2LmhhbmRsZV9jYWxsAAAAAABjYWxsX2VuZ2luZV9zcnYuaGFuZ3VwAEGArAILygFjYWxsX2VuZ2luZV9zcnYuaW52aXRlX3VzZXIAAAAAAGNhbGxfZW5naW5lX3Nydi5qb2luX2luX2NhbGwAAAAAY2FsbF9lbmdpbmVfc3J2LmdldF9jYWxsX2luZm8AAABjYWxsX2VuZ2luZV9zcnYuZ2V0X2ludml0YXRpb24AAGNhbGxfZW5naW5lX3Nydi5jbGVhbl9wcmV2aW91c19kZXZpY2VfY2FsbAAAAAAAAGNhbGxfZW5naW5lX3Nydi5oZWFydF9iZWF0AEHUrQILEgcFAAAIBQAACQUAACkAAAAKBQBB8K0CCwYLBQAADAUAQYCuAgsGDQUAAA4FAEGQrgILBg8FAAAQBQBBoK4CCwYRBQAAEgUAQbCuAgsGEwUAABQFAEHArgILBhUFAAAWBQBB0K4CCwYXBQAAGAUAQeCuAgsGGQUAABoFAEHwrgILBhsFAAAcBQBBgK8CCwYdBQAAHgUAQZCvAgsGHwUAACAFAEGkrwILEiEFAAAiBQAAIwUAACkAAAAkBQBBwK8CCxolBQAAJgUAACcFAAAoBQAAKQUAACoFAAArBQBB5K8CCyssBQAALQUAAC4FAAAvBQAAMAUAADEFAAAyBQAAdgAAAGLYAAC81gAAaWlpAEGYsAILLGwFAABtBQAAbgUAACkAAABvBQAAaQAAAGTYAAAw1gAAYtgAADLWAAB2aWlpAEHQsAILPjDWAABi2AAAyNYAADLWAAAy1gAAMtYAAHZpaWlpaWkAMNYAAGLYAADI1gAAyNYAADLWAAAy1gAAMtYAAGLYAEGYsQILLXAFAABxBQAAcgUAACkAAABzBQAAAAAAADDWAABm2AAAyNYAADLWAAB2aWlpaQBB0LECCxJ0BQAAdQUAAHYFAAApAAAAdwUAQfCxAgsOMNYAAGnYAADI1gAAMtYAQYiyAgseeAUAAHkFAAB6BQAAKQAAAHsFAAAw1gAA/dYAADLWAEGwsgILDjDWAAD91gAAMdYAAMjWAEHIsgILK3wFAAB9BQAAfgUAACkAAAB/BQAAMNYAAG/YAAAx1gAAMNYAAG/YAAB2aWkAQfyyAgsSgAUAAIEFAACCBQAAKQAAAIMFAEGYswILEoQFAACFBQAAhgUAACkAAACHBQBBtLMCCxqIBQAAiQUAAIoFAACLBQAAjAUAAI0FAACOBQBB2LMCCxqPBQAAkAUAAJEFAACSBQAAkwUAAJQFAACVBQBB/LMCCwqWBQAAlwUAAJgFAEGQtAILCZkFAACaBQAADABBpLQCCxqbBQAAnAUAAJ0FAACeBQAAnwUAAKAFAAChBQBByLQCCyqiBQAAowUAAAwAAAAMAAAADAAAAAwAAAAMAAAAyNYAAMjWAAAAAAAAUNUAQYC1AgtBGQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRkAQdG1AgshDgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAOAEGLtgILAQwAQZe2AgsVEwAAAAATAAAAAAkMAAAAAAAMAAAMAEHFtgILARAAQdG2AgsVDwAAAAQPAAAAAAkQAAAAAAAQAAAQAEH/tgILARIAQYu3AgseEQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoaAEHCtwILDhoAAAAaGhoAAAAAAAAJAEHztwILARQAQf+3AgsVFwAAAAAXAAAAAAkUAAAAAAAUAAAUAEGtuAILARYAQbm4AgsnFQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVGAEGEuQILAqoFAEGsuQILCP//////////AEHwuQILwhPRdJ4AV529KoBwUg///z4nCgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUYAAAANQAAAHEAAABr////zvv//5K///8AAAAAAAAAAP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECBAcDBgUAAAAAAAAAAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADAFAAAwBUAAMAWAADAFwAAwBgAAMAZAADAGgAAwBsAAMAcAADAHQAAwB4AAMAfAADAAAAAswEAAMMCAADDAwAAwwQAAMMFAADDBgAAwwcAAMMIAADDCQAAwwoAAMMLAADDDAAAww0AANMOAADDDwAAwwAADLsBAAzDAgAMwwMADMMEAAzbAAAAAAAAAAACAAAAAwAAAAUAAAAHAAAACwAAAA0AAAARAAAAEwAAABcAAAAdAAAAHwAAACUAAAApAAAAKwAAAC8AAAA1AAAAOwAAAD0AAABDAAAARwAAAEkAAABPAAAAUwAAAFkAAABhAAAAZQAAAGcAAABrAAAAbQAAAHEAAAB/AAAAgwAAAIkAAACLAAAAlQAAAJcAAACdAAAAowAAAKcAAACtAAAAswAAALUAAAC/AAAAwQAAAMUAAADHAAAA0wAAAAEAAAALAAAADQAAABEAAAATAAAAFwAAAB0AAAAfAAAAJQAAACkAAAArAAAALwAAADUAAAA7AAAAPQAAAEMAAABHAAAASQAAAE8AAABTAAAAWQAAAGEAAABlAAAAZwAAAGsAAABtAAAAcQAAAHkAAAB/AAAAgwAAAIkAAACLAAAAjwAAAJUAAACXAAAAnQAAAKMAAACnAAAAqQAAAK0AAACzAAAAtQAAALsAAAC/AAAAwQAAAMUAAADHAAAA0QAAAAAAAABUogAArAUAAK0FAACuBQAArwUAALAFAACxBQAAsgUAALMFAAC0BQAAtQUAALYFAAC3BQAAuAUAALkFAAAIAAAAAAAAAIyiAAC6BQAAuwUAAPj////4////jKIAALwFAAC9BQAA7KAAAAChAAAEAAAAAAAAANSiAAC+BQAAvwUAAPz////8////1KIAAMAFAADBBQAAHKEAADChAAAMAAAAAAAAAGyjAADCBQAAwwUAAAQAAAD4////bKMAAMQFAADFBQAA9P////T///9sowAAxgUAAMcFAABMoQAA+KIAAAyjAAAgowAANKMAAHShAABgoQAAAAAAANCjAADIBQAAyQUAAK4FAACvBQAAygUAAMsFAACyBQAAswUAALQFAADMBQAAtgUAAM0FAAC4BQAAzgUAAAAAAAAUogAAzwUAANAFAABOU3QzX18yOWJhc2ljX2lvc0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQAAAIjUAADooQAArKYAAE5TdDNfXzIxNWJhc2ljX3N0cmVhbWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQAAAABg1AAAIKIAAE5TdDNfXzIxM2Jhc2ljX2lzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUAAOTUAABcogAAAAAAAAEAAAAUogAAA/T//05TdDNfXzIxM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUAAOTUAACkogAAAAAAAAEAAAAUogAAA/T//wwAAAAAAAAAjKIAALoFAAC7BQAA9P////T///+MogAAvAUAAL0FAAAEAAAAAAAAANSiAAC+BQAAvwUAAPz////8////1KIAAMAFAADBBQAATlN0M19fMjE0YmFzaWNfaW9zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUA5NQAADyjAAADAAAAAgAAAIyiAAACAAAA1KIAAAIIAABOU3QzX18yMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAAIjUAACMowAAVKIAAEAAAAAAAAAAFKUAANEFAADSBQAAOAAAAPj///8UpQAA0wUAANQFAADA////wP///xSlAADVBQAA1gUAAOijAABMpAAAiKQAAJykAACwpAAAxKQAAHSkAABgpAAAEKQAAPyjAABAAAAAAAAAAGyjAADCBQAAwwUAADgAAAD4////bKMAAMQFAADFBQAAwP///8D///9sowAAxgUAAMcFAABAAAAAAAAAAIyiAAC6BQAAuwUAAMD////A////jKIAALwFAAC9BQAAOAAAAAAAAADUogAAvgUAAL8FAADI////yP///9SiAADABQAAwQUAAE5TdDNfXzIxOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAAAAAIjUAADMpAAAbKMAADgAAAAAAAAAyKUAANcFAADYBQAAyP///8j////IpQAA2QUAANoFAAAspQAAZKUAAHilAABApQAAOAAAAAAAAADUogAAvgUAAL8FAADI////yP///9SiAADABQAAwQUAAE5TdDNfXzIxOWJhc2ljX29zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAAIjUAACApQAA1KIAADwAAAAAAAAAfKYAANsFAADcBQAAxP///8T///98pgAA3QUAAN4FAADgpQAAGKYAACymAAD0pQAAPAAAAAAAAACMogAAugUAALsFAADE////xP///4yiAAC8BQAAvQUAAE5TdDNfXzIxOWJhc2ljX2lzdHJpbmdzdHJlYW1JY05T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")||(Bg=(function(w){return a.locateFile?a.locateFile(w,cA):cA+w})(Bg));var Ua=void 0;function Cg(w){for(var y="",U=w;ye[U];)y+=Ua[ye[U++]];return y}var ac={},Ys={},Ic={};function cu(w){if(w===void 0)return"_unknown";var y=(w=w.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return y>=48&&y<=57?"_"+w:w}function Ny(w,y){return w=cu(w),new Function("body","return function "+w+`() {
|
||
"use strict"; return body.apply(this, arguments);
|
||
};
|
||
`)(y)}function Fy(w,y){var U=Ny(y,function(J){this.name=y,this.message=J;var iA=new Error(J).stack;iA!==void 0&&(this.stack=this.toString()+`
|
||
`+iA.replace(/^Error(:[^\n]*)?\n/,""))});return U.prototype=Object.create(w.prototype),U.prototype.constructor=U,U.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},U}var kB=void 0;function Ii(w){throw new kB(w)}var sG=void 0;function hu(w){throw new sG(w)}function Sn(w,y,U){function J(CA){var NA=U(CA);NA.length!==w.length&&hu("Mismatched type converter count");for(var pA=0;pA<w.length;++pA)EI(w[pA],NA[pA])}w.forEach(function(CA){Ic[CA]=y});var iA=new Array(y.length),aA=[],IA=0;y.forEach(function(CA,NA){Ys.hasOwnProperty(CA)?iA[NA]=Ys[CA]:(aA.push(CA),ac.hasOwnProperty(CA)||(ac[CA]=[]),ac[CA].push(function(){iA[NA]=Ys[CA],++IA===aA.length&&J(iA)}))}),aA.length===0&&J(iA)}function EI(w,y){var U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!("argPackAdvance"in y))throw new TypeError("registerType registeredInstance requires argPackAdvance");var J=y.name;if(w||Ii('type "'+J+'" must have a positive integer typeid pointer'),Ys.hasOwnProperty(w)){if(U.ignoreDuplicateRegistrations)return;Ii("Cannot register type '"+J+"' twice")}if(Ys[w]=y,delete Ic[w],ac.hasOwnProperty(w)){var iA=ac[w];delete ac[w],iA.forEach(function(aA){return aA()})}}function EG(w){if(!(this instanceof BI)||!(w instanceof BI))return!1;for(var y=this.$$.ptrType.registeredClass,U=this.$$.ptr,J=w.$$.ptrType.registeredClass,iA=w.$$.ptr;y.baseClass;)U=y.upcast(U),y=y.baseClass;for(;J.baseClass;)iA=J.upcast(iA),J=J.baseClass;return y===J&&U===iA}function $e(w){Ii(w.$$.ptrType.registeredClass.name+" instance already deleted")}var kr=!1;function BG(w){}function zv(w){w.count.value-=1,w.count.value===0&&(function(y){y.smartPtr?y.smartPtrType.rawDestructor(y.smartPtr):y.ptrType.registeredClass.rawDestructor(y.ptr)})(w)}function nt(w,y,U){if(y===U)return w;if(U.baseClass===void 0)return null;var J=nt(w,y,U.baseClass);return J===null?null:U.downcast(J)}var Lt={};function $v(){return Object.keys(Ec).length}function AT(){var w=[];for(var y in Ec)Ec.hasOwnProperty(y)&&w.push(Ec[y]);return w}var nc=[];function vy(){for(;nc.length;){var w=nc.pop();w.$$.deleteScheduled=!1,w.delete()}}var sc=void 0;function eT(w){sc=w,nc.length&&sc&&sc(vy)}var Ec={};function $Y(w,y){return y=(function(U,J){for(J===void 0&&Ii("ptr should not be undefined");U.baseClass;)J=U.upcast(J),U=U.baseClass;return J})(w,y),Ec[y]}function Js(w,y){return y.ptrType&&y.ptr||hu("makeClassHandle requires ptr and ptrType"),!!y.smartPtrType!=!!y.smartPtr&&hu("Both smartPtrType and smartPtr must be specified"),y.count={value:1},lt(Object.create(w,{$$:{value:y}}))}function ee(w){var y=this.getPointee(w);if(!y)return this.destructor(w),null;var U=$Y(this.registeredClass,y);if(U!==void 0){if(U.$$.count.value===0)return U.$$.ptr=y,U.$$.smartPtr=w,U.clone();var J=U.clone();return this.destructor(w),J}function iA(){return this.isSmartPointer?Js(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:y,smartPtrType:this,smartPtr:w}):Js(this.registeredClass.instancePrototype,{ptrType:this,ptr:w})}var aA,IA=this.registeredClass.getActualType(y),CA=Lt[IA];if(!CA)return iA.call(this);aA=this.isConst?CA.constPointerType:CA.pointerType;var NA=nt(y,this.registeredClass,aA.registeredClass);return NA===null?iA.call(this):this.isSmartPointer?Js(aA.registeredClass.instancePrototype,{ptrType:aA,ptr:NA,smartPtrType:this,smartPtr:w}):Js(aA.registeredClass.instancePrototype,{ptrType:aA,ptr:NA})}function lt(w){return typeof FinalizationRegistry>"u"?(lt=function(y){return y},w):(kr=new FinalizationRegistry(function(y){console.warn(y.leakWarning.stack.replace(/^Error: /,"")),zv(y.$$)}),lt=function(y){var U=y.$$;if(U.smartPtr){var J={$$:U},iA=U.ptrType.registeredClass;J.leakWarning=new Error("Embind found a leaked C++ instance "+iA.name+" <0x"+U.ptr.toString(16)+`>.
|
||
We'll free it automatically in this case, but this functionality is not reliable across various environments.
|
||
Make sure to invoke .delete() manually once you're done with the instance instead.
|
||
Originally allocated`),"captureStackTrace"in Error&&Error.captureStackTrace(J.leakWarning,ee),kr.register(y,J,y)}return y},BG=function(y){return kr.unregister(y)},lt(w))}function AJ(){if(this.$$.ptr||$e(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var w,y=lt(Object.create(Object.getPrototypeOf(this),{$$:{value:(w=this.$$,{count:w.count,deleteScheduled:w.deleteScheduled,preservePointerOnDelete:w.preservePointerOnDelete,ptr:w.ptr,ptrType:w.ptrType,smartPtr:w.smartPtr,smartPtrType:w.smartPtrType})}}));return y.$$.count.value+=1,y.$$.deleteScheduled=!1,y}function eJ(){this.$$.ptr||$e(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ii("Object already scheduled for deletion"),BG(this),zv(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function CG(){return!this.$$.ptr}function Ty(){return this.$$.ptr||$e(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ii("Object already scheduled for deletion"),nc.push(this),nc.length===1&&sc&&sc(vy),this.$$.deleteScheduled=!0,this}function BI(){}function Uy(w,y,U){if(w[y].overloadTable===void 0){var J=w[y];w[y]=function(){return w[y].overloadTable.hasOwnProperty(arguments.length)||Ii("Function '"+U+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+w[y].overloadTable+")!"),w[y].overloadTable[arguments.length].apply(this,arguments)},w[y].overloadTable=[],w[y].overloadTable[J.argCount]=J}}function NB(w,y,U,J,iA,aA,IA,CA){this.name=w,this.constructor=y,this.instancePrototype=U,this.rawDestructor=J,this.baseClass=iA,this.getActualType=aA,this.upcast=IA,this.downcast=CA,this.pureVirtualFunctions=[]}function lu(w,y,U){for(;y!==U;)y.upcast||Ii("Expected null or instance of "+U.name+", got an instance of "+y.name),w=y.upcast(w),y=y.baseClass;return w}function tJ(w,y){if(y===null)return this.isReference&&Ii("null is not a valid "+this.name),0;y.$$||Ii('Cannot pass "'+Qc(y)+'" as a '+this.name),y.$$.ptr||Ii("Cannot pass deleted object as a pointer of type "+this.name);var U=y.$$.ptrType.registeredClass;return lu(y.$$.ptr,U,this.registeredClass)}function QG(w,y){var U;if(y===null)return this.isReference&&Ii("null is not a valid "+this.name),this.isSmartPointer?(U=this.rawConstructor(),w!==null&&w.push(this.rawDestructor,U),U):0;y.$$||Ii('Cannot pass "'+Qc(y)+'" as a '+this.name),y.$$.ptr||Ii("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&y.$$.ptrType.isConst&&Ii("Cannot convert argument of type "+(y.$$.smartPtrType?y.$$.smartPtrType.name:y.$$.ptrType.name)+" to parameter type "+this.name);var J=y.$$.ptrType.registeredClass;if(U=lu(y.$$.ptr,J,this.registeredClass),this.isSmartPointer)switch(y.$$.smartPtr===void 0&&Ii("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:y.$$.smartPtrType===this?U=y.$$.smartPtr:Ii("Cannot convert argument of type "+(y.$$.smartPtrType?y.$$.smartPtrType.name:y.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:U=y.$$.smartPtr;break;case 2:if(y.$$.smartPtrType===this)U=y.$$.smartPtr;else{var iA=y.clone();U=this.rawShare(U,yi.toHandle(function(){iA.delete()})),w!==null&&w.push(this.rawDestructor,U)}break;default:Ii("Unsupporting sharing policy")}return U}function cG(w,y){if(y===null)return this.isReference&&Ii("null is not a valid "+this.name),0;y.$$||Ii('Cannot pass "'+Qc(y)+'" as a '+this.name),y.$$.ptr||Ii("Cannot pass deleted object as a pointer of type "+this.name),y.$$.ptrType.isConst&&Ii("Cannot convert argument of type "+y.$$.ptrType.name+" to parameter type "+this.name);var U=y.$$.ptrType.registeredClass;return lu(y.$$.ptr,U,this.registeredClass)}function Bc(w){return this.fromWireType(GA[w>>2])}function iJ(w){return this.rawGetPointee&&(w=this.rawGetPointee(w)),w}function _y(w){this.rawDestructor&&this.rawDestructor(w)}function oJ(w){w!==null&&w.delete()}function Ia(w,y,U,J,iA,aA,IA,CA,NA,pA,jA){this.name=w,this.registeredClass=y,this.isReference=U,this.isConst=J,this.isSmartPointer=iA,this.pointeeType=aA,this.sharingPolicy=IA,this.rawGetPointee=CA,this.rawConstructor=NA,this.rawShare=pA,this.rawDestructor=jA,iA||y.baseClass!==void 0?this.toWireType=QG:J?(this.toWireType=tJ,this.destructorFunction=null):(this.toWireType=cG,this.destructorFunction=null)}function uu(w){return xo.get(w)}function gJ(w,y,U){return w.includes("j")?(function(J,iA,aA){mA("dynCall_"+J in a,"bad function pointer type - no table for sig '"+J+"'"),aA&&aA.length?mA(aA.length===J.substring(1).replace(/j/g,"--").length):mA(J.length==1);var IA=a["dynCall_"+J];return aA&&aA.length?IA.apply(null,[iA].concat(aA)):IA.call(null,iA)})(w,y,U):(mA(uu(y),"missing table entry in dynCall: "+y),uu(y).apply(null,U))}function vg(w,y){var U=(w=Cg(w)).includes("j")?(function(J,iA){mA(J.includes("j")||J.includes("p"),"getDynCaller should only be called with i64 sigs");var aA=[];return function(){return aA.length=0,Object.assign(aA,arguments),gJ(J,iA,aA)}})(w,y):uu(y);return typeof U!="function"&&Ii("unknown function pointer with signature "+w+": "+y),U}var hG=void 0;function lG(w){var y=GG(w),U=Cg(y);return La(y),U}function du(w,y){var U=[],J={};throw y.forEach(function iA(aA){J[aA]||Ys[aA]||(Ic[aA]?Ic[aA].forEach(iA):(U.push(aA),J[aA]=!0))}),new hG(w+": "+U.map(lG).join([", "]))}function uG(w,y){if(!(w instanceof Function))throw new TypeError("new_ called with constructor type "+ui(w)+" which is not a function");var U=Ny(w.name||"unknownFunctionName",function(){});U.prototype=w.prototype;var J=new U,iA=w.apply(J,y);return iA instanceof Object?iA:J}function Ly(w){for(;w.length;){var y=w.pop();w.pop()(y)}}function by(w,y,U,J,iA){var aA=y.length;aA<2&&Ii("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var IA=y[1]!==null&&U!==null,CA=!1,NA=1;NA<y.length;++NA)if(y[NA]!==null&&y[NA].destructorFunction===void 0){CA=!0;break}var pA=y[0].name!=="void",jA="",ue="";for(NA=0;NA<aA-2;++NA)jA+=(NA!==0?", ":"")+"arg"+NA,ue+=(NA!==0?", ":"")+"arg"+NA+"Wired";var de="return function "+cu(w)+"("+jA+`) {
|
||
if (arguments.length !== `+(aA-2)+`) {
|
||
throwBindingError('function `+w+" called with ' + arguments.length + ' arguments, expected "+(aA-2)+` args!');
|
||
}
|
||
`;CA&&(de+=`var destructors = [];
|
||
`);var Nt=CA?"destructors":"null",Ri=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Do=[Ii,J,iA,Ly,y[0],y[1]];for(IA&&(de+="var thisWired = classParam.toWireType("+Nt+`, this);
|
||
`),NA=0;NA<aA-2;++NA)de+="var arg"+NA+"Wired = argType"+NA+".toWireType("+Nt+", arg"+NA+"); // "+y[NA+2].name+`
|
||
`,Ri.push("argType"+NA),Do.push(y[NA+2]);if(IA&&(ue="thisWired"+(ue.length>0?", ":"")+ue),de+=(pA?"var rv = ":"")+"invoker(fn"+(ue.length>0?", ":"")+ue+`);
|
||
`,CA)de+=`runDestructors(destructors);
|
||
`;else for(NA=IA?1:2;NA<y.length;++NA){var er=NA===1?"thisWired":"arg"+(NA-2)+"Wired";y[NA].destructorFunction!==null&&(de+=er+"_dtor("+er+"); // "+y[NA].name+`
|
||
`,Ri.push(er+"_dtor"),Do.push(y[NA].destructorFunction))}return pA&&(de+=`var ret = retType.fromWireType(rv);
|
||
return ret;
|
||
`),de+=`}
|
||
`,Ri.push(de),uG(Function,Ri).apply(null,Do)}function Du(w,y){for(var U=[],J=0;J<w;J++)U.push(Ee[y+4*J>>2]);return U}var dG=[],$g=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function FB(w){w>4&&--$g[w].refcount===0&&($g[w]=void 0,dG.push(w))}function Cc(){for(var w=0,y=5;y<$g.length;++y)$g[y]!==void 0&&++w;return w}function _a(){for(var w=5;w<$g.length;++w)if($g[w]!==void 0)return $g[w];return null}var yi={toValue:function(w){return w||Ii("Cannot use deleted val. handle = "+w),$g[w].value},toHandle:function(w){switch(w){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var y=dG.length?dG.pop():$g.length;return $g[y]={refcount:1,value:w},y}}};function Qc(w){if(w===null)return"null";var y=ui(w);return y==="object"||y==="array"||y==="function"?w.toString():""+w}function pu(w,y){switch(y){case 2:return function(U){return this.fromWireType(Ke[U>>2])};case 3:return function(U){return this.fromWireType(Fe[U>>3])};default:throw new TypeError("Unknown float type: "+w)}}function tT(w,y,U){switch(y){case 0:return U?function(J){return Ie[J]}:function(J){return ye[J]};case 1:return U?function(J){return fe[J>>1]}:function(J){return PA[J>>1]};case 2:return U?function(J){return GA[J>>2]}:function(J){return Ee[J>>2]};default:throw new TypeError("Unknown integer type: "+w)}}var Yy=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function iT(w,y){mA(w%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var U=w,J=U>>1,iA=J+y/2;!(J>=iA)&&PA[J];)++J;if((U=J<<1)-w>32&&Yy)return Yy.decode(ye.subarray(w,U));for(var aA="",IA=0;!(IA>=y/2);++IA){var CA=fe[w+2*IA>>1];if(CA==0)break;aA+=String.fromCharCode(CA)}return aA}function cc(w,y,U){if(mA(y%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),mA(typeof U=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),U===void 0&&(U=2147483647),U<2)return 0;for(var J=y,iA=(U-=2)<2*w.length?U/2:w.length,aA=0;aA<iA;++aA){var IA=w.charCodeAt(aA);fe[y>>1]=IA,y+=2}return fe[y>>1]=0,y-J}function oT(w){return 2*w.length}function gT(w,y){mA(w%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var U=0,J="";!(U>=y/4);){var iA=GA[w+4*U>>2];if(iA==0)break;if(++U,iA>=65536){var aA=iA-65536;J+=String.fromCharCode(55296|aA>>10,56320|1023&aA)}else J+=String.fromCharCode(iA)}return J}function vB(w,y,U){if(mA(y%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),mA(typeof U=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),U===void 0&&(U=2147483647),U<4)return 0;for(var J=y,iA=J+U-4,aA=0;aA<w.length;++aA){var IA=w.charCodeAt(aA);if(IA>=55296&&IA<=57343&&(IA=65536+((1023&IA)<<10)|1023&w.charCodeAt(++aA)),GA[y>>2]=IA,(y+=4)+4>iA)break}return GA[y>>2]=0,y-J}function Jy(w){for(var y=0,U=0;U<w.length;++U){var J=w.charCodeAt(U);J>=55296&&J<=57343&&++U,y+=4}return y}function hc(w,y){var U=Ys[w];return U===void 0&&Ii(y+" has unknown type "+lG(w)),U}function xy(w,y){for(var U=new Array(w),J=0;J<w;++J)U[J]=hc(Ee[y+4*J>>2],"parameter "+J);return U}var DG={};function lc(w){var y=DG[w];return y===void 0?Cg(w):y}var yu=[];function pG(){return(typeof globalThis>"u"?"undefined":ui(globalThis))=="object"?globalThis:Function("return this")()}var rT,yG=[],RG={};rT=function(){return performance.now()};var Ky={};function Gn(){if(!Gn.strings){var w={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:((typeof navigator>"u"?"undefined":ui(navigator))=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:k||"./this.program"};for(var y in Ky)Ky[y]===void 0?delete w[y]:w[y]=Ky[y];var U=[];for(var y in w)U.push(y+"="+w[y]);Gn.strings=U}return Gn.strings}var mG=[null,[],[]];function aT(w,y){var U=mG[w];mA(U),y===0||y===10?((w===1?WA:wA)(Xe(U,0)),U.length=0):U.push(y)}function Ru(w){return w%4==0&&(w%100!=0||w%400==0)}var fG=[31,29,31,30,31,30,31,31,30,31,30,31],wG=[31,28,31,30,31,30,31,31,30,31,30,31];function IT(w,y,U,J){var iA=GA[J+40>>2],aA={tm_sec:GA[J>>2],tm_min:GA[J+4>>2],tm_hour:GA[J+8>>2],tm_mday:GA[J+12>>2],tm_mon:GA[J+16>>2],tm_year:GA[J+20>>2],tm_wday:GA[J+24>>2],tm_yday:GA[J+28>>2],tm_isdst:GA[J+32>>2],tm_gmtoff:GA[J+36>>2],tm_zone:iA?_t(iA):""},IA=_t(U),CA={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var NA in CA)IA=IA.replace(new RegExp(NA,"g"),CA[NA]);var pA=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],jA=["January","February","March","April","May","June","July","August","September","October","November","December"];function ue(te,gt,ro){for(var Ci=typeof te=="number"?te.toString():te||"";Ci.length<gt;)Ci=ro[0]+Ci;return Ci}function de(te,gt){return ue(te,gt,"0")}function Nt(te,gt){function ro(Ag){return Ag<0?-1:Ag>0?1:0}var Ci;return(Ci=ro(te.getFullYear()-gt.getFullYear()))===0&&(Ci=ro(te.getMonth()-gt.getMonth()))===0&&(Ci=ro(te.getDate()-gt.getDate())),Ci}function Ri(te){switch(te.getDay()){case 0:return new Date(te.getFullYear()-1,11,29);case 1:return te;case 2:return new Date(te.getFullYear(),0,3);case 3:return new Date(te.getFullYear(),0,2);case 4:return new Date(te.getFullYear(),0,1);case 5:return new Date(te.getFullYear()-1,11,31);case 6:return new Date(te.getFullYear()-1,11,30)}}function Do(te){var gt=(function(Vy,kn){for(var Qg=new Date(Vy.getTime());kn>0;){var wu=Ru(Qg.getFullYear()),Su=Qg.getMonth(),kG=(wu?fG:wG)[Su];if(!(kn>kG-Qg.getDate()))return Qg.setDate(Qg.getDate()+kn),Qg;kn-=kG-Qg.getDate()+1,Qg.setDate(1),Su<11?Qg.setMonth(Su+1):(Qg.setMonth(0),Qg.setFullYear(Qg.getFullYear()+1))}return Qg})(new Date(te.tm_year+1900,0,1),te.tm_yday),ro=new Date(gt.getFullYear(),0,4),Ci=new Date(gt.getFullYear()+1,0,4),Ag=Ri(ro),bi=Ri(Ci);return Nt(Ag,gt)<=0?Nt(bi,gt)<=0?gt.getFullYear()+1:gt.getFullYear():gt.getFullYear()-1}var er={"%a":function(te){return pA[te.tm_wday].substring(0,3)},"%A":function(te){return pA[te.tm_wday]},"%b":function(te){return jA[te.tm_mon].substring(0,3)},"%B":function(te){return jA[te.tm_mon]},"%C":function(te){return de((te.tm_year+1900)/100|0,2)},"%d":function(te){return de(te.tm_mday,2)},"%e":function(te){return ue(te.tm_mday,2," ")},"%g":function(te){return Do(te).toString().substring(2)},"%G":function(te){return Do(te)},"%H":function(te){return de(te.tm_hour,2)},"%I":function(te){var gt=te.tm_hour;return gt==0?gt=12:gt>12&&(gt-=12),de(gt,2)},"%j":function(te){return de(te.tm_mday+(function(gt,ro){for(var Ci=0,Ag=0;Ag<=ro;Ci+=gt[Ag++]);return Ci})(Ru(te.tm_year+1900)?fG:wG,te.tm_mon-1),3)},"%m":function(te){return de(te.tm_mon+1,2)},"%M":function(te){return de(te.tm_min,2)},"%n":function(){return`
|
||
`},"%p":function(te){return te.tm_hour>=0&&te.tm_hour<12?"AM":"PM"},"%S":function(te){return de(te.tm_sec,2)},"%t":function(){return" "},"%u":function(te){return te.tm_wday||7},"%U":function(te){var gt=te.tm_yday+7-te.tm_wday;return de(Math.floor(gt/7),2)},"%V":function(te){var gt=Math.floor((te.tm_yday+7-(te.tm_wday+6)%7)/7);if((te.tm_wday+371-te.tm_yday-2)%7<=2&>++,gt){if(gt==53){var ro=(te.tm_wday+371-te.tm_yday)%7;ro==4||ro==3&&Ru(te.tm_year)||(gt=1)}}else{gt=52;var Ci=(te.tm_wday+7-te.tm_yday-1)%7;(Ci==4||Ci==5&&Ru(te.tm_year%400-1))&>++}return de(gt,2)},"%w":function(te){return te.tm_wday},"%W":function(te){var gt=te.tm_yday+7-(te.tm_wday+6)%7;return de(Math.floor(gt/7),2)},"%y":function(te){return(te.tm_year+1900).toString().substring(2)},"%Y":function(te){return te.tm_year+1900},"%z":function(te){var gt=te.tm_gmtoff,ro=gt>=0;return gt=(gt=Math.abs(gt)/60)/60*100+gt%60,(ro?"+":"-")+("0000"+gt).slice(-4)},"%Z":function(te){return te.tm_zone},"%%":function(){return"%"}};for(var NA in IA=IA.replace(/%%/g,"\0\0"),er)IA.includes(NA)&&(IA=IA.replace(new RegExp(NA,"g"),er[NA](aA)));var xs=(function(te,gt,ro){var Ci=qi(te)+1,Ag=new Array(Ci);return zt(te,Ag,0,Ag.length),Ag})(IA=IA.replace(/\0\0/g,"%"));return xs.length>y?0:((function(te,gt){mA(te.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),Ie.set(te,gt)})(xs,w),xs.length-1)}(function(){for(var w=new Array(256),y=0;y<256;++y)w[y]=String.fromCharCode(y);Ua=w})(),kB=a.BindingError=Fy(Error,"BindingError"),sG=a.InternalError=Fy(Error,"InternalError"),BI.prototype.isAliasOf=EG,BI.prototype.clone=AJ,BI.prototype.delete=eJ,BI.prototype.isDeleted=CG,BI.prototype.deleteLater=Ty,a.getInheritedInstanceCount=$v,a.getLiveInheritedInstances=AT,a.flushPendingDeletes=vy,a.setDelayFunction=eT,Ia.prototype.getPointee=iJ,Ia.prototype.destructor=_y,Ia.prototype.argPackAdvance=8,Ia.prototype.readValueFromPointer=Bc,Ia.prototype.deleteObject=oJ,Ia.prototype.fromWireType=ee,hG=a.UnboundTypeError=Fy(Error,"UnboundTypeError"),a.count_emval_handles=Cc,a.get_first_emval=_a;var nT=typeof atob=="function"?atob:function(w){var y,U,J,iA,aA,IA,CA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",NA="",pA=0;w=w.replace(/[^A-Za-z0-9\+\/\=]/g,"");do y=CA.indexOf(w.charAt(pA++))<<2|(iA=CA.indexOf(w.charAt(pA++)))>>4,U=(15&iA)<<4|(aA=CA.indexOf(w.charAt(pA++)))>>2,J=(3&aA)<<6|(IA=CA.indexOf(w.charAt(pA++))),NA+=String.fromCharCode(y),aA!==64&&(NA+=String.fromCharCode(U)),IA!==64&&(NA+=String.fromCharCode(J));while(pA<w.length);return NA};function Hy(w){if(Sy(w))return(function(y){try{for(var U=nT(y),J=new Uint8Array(U.length),iA=0;iA<U.length;++iA)J[iA]=U.charCodeAt(iA);return J}catch{throw new Error("Converting base64 string to bytes failed.")}})(w.slice(IG.length))}var SG={__assert_fail:function(w,y,U,J){$o("Assertion failed: "+_t(w)+", at: "+[y?_t(y):"unknown filename",U,J?_t(J):"unknown function"])},_embind_register_bigint:function(w,y,U,J,iA){},_embind_register_bool:function(w,y,U,J,iA){var aA=ky(U);EI(w,{name:y=Cg(y),fromWireType:function(IA){return!!IA},toWireType:function(IA,CA){return CA?J:iA},argPackAdvance:8,readValueFromPointer:function(IA){var CA;if(U===1)CA=Ie;else if(U===2)CA=fe;else{if(U!==4)throw new TypeError("Unknown boolean type size: "+y);CA=GA}return this.fromWireType(CA[IA>>aA])},destructorFunction:null})},_embind_register_class:function(w,y,U,J,iA,aA,IA,CA,NA,pA,jA,ue,de){jA=Cg(jA),aA=vg(iA,aA),CA&&(CA=vg(IA,CA)),pA&&(pA=vg(NA,pA)),de=vg(ue,de);var Nt=cu(jA);(function(Ri,Do,er){a.hasOwnProperty(Ri)?(Ii("Cannot register public name '"+Ri+"' twice"),Uy(a,Ri,Ri),a.hasOwnProperty(er)&&Ii("Cannot register multiple overloads of a function with the same number of arguments ("+er+")!"),a[Ri].overloadTable[er]=Do):a[Ri]=Do})(Nt,function(){du("Cannot construct "+jA+" due to unbound types",[J])}),Sn([w,y,U],J?[J]:[],function(Ri){var Do,er;Ri=Ri[0],er=J?(Do=Ri.registeredClass).instancePrototype:BI.prototype;var xs=Ny(Nt,function(){if(Object.getPrototypeOf(this)!==te)throw new kB("Use 'new' to construct "+jA);if(gt.constructor_body===void 0)throw new kB(jA+" has no accessible constructor");var bi=gt.constructor_body[arguments.length];if(bi===void 0)throw new kB("Tried to invoke ctor of "+jA+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(gt.constructor_body).toString()+") parameters instead!");return bi.apply(this,arguments)}),te=Object.create(er,{constructor:{value:xs}});xs.prototype=te;var gt=new NB(jA,xs,te,de,Do,aA,CA,pA),ro=new Ia(jA,gt,!0,!1,!1),Ci=new Ia(jA+"*",gt,!1,!1,!1),Ag=new Ia(jA+" const*",gt,!1,!0,!1);return Lt[w]={pointerType:Ci,constPointerType:Ag},(function(bi,Vy,kn){a.hasOwnProperty(bi)||hu("Replacing nonexistant public symbol"),a[bi].overloadTable!==void 0&&kn!==void 0?a[bi].overloadTable[kn]=Vy:(a[bi]=Vy,a[bi].argCount=kn)})(Nt,xs),[ro,Ci,Ag]})},_embind_register_class_class_function:function(w,y,U,J,iA,aA,IA){var CA=Du(U,J);y=Cg(y),aA=vg(iA,aA),Sn([],[w],function(NA){var pA=(NA=NA[0]).name+"."+y;function jA(){du("Cannot call "+pA+" due to unbound types",CA)}y.startsWith("@@")&&(y=Symbol[y.substring(2)]);var ue=NA.registeredClass.constructor;return ue[y]===void 0?(jA.argCount=U-1,ue[y]=jA):(Uy(ue,y,pA),ue[y].overloadTable[U-1]=jA),Sn([],CA,function(de){var Nt=[de[0],null].concat(de.slice(1)),Ri=by(pA,Nt,null,aA,IA);return ue[y].overloadTable===void 0?(Ri.argCount=U-1,ue[y]=Ri):ue[y].overloadTable[U-1]=Ri,[]}),[]})},_embind_register_class_constructor:function(w,y,U,J,iA,aA){mA(y>0);var IA=Du(y,U);iA=vg(J,iA),Sn([],[w],function(CA){var NA="constructor "+(CA=CA[0]).name;if(CA.registeredClass.constructor_body===void 0&&(CA.registeredClass.constructor_body=[]),CA.registeredClass.constructor_body[y-1]!==void 0)throw new kB("Cannot register multiple constructors with identical number of parameters ("+(y-1)+") for class '"+CA.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return CA.registeredClass.constructor_body[y-1]=function(){du("Cannot construct "+CA.name+" due to unbound types",IA)},Sn([],IA,function(pA){return pA.splice(1,0,null),CA.registeredClass.constructor_body[y-1]=by(NA,pA,null,iA,aA),[]}),[]})},_embind_register_class_function:function(w,y,U,J,iA,aA,IA,CA){var NA=Du(U,J);y=Cg(y),aA=vg(iA,aA),Sn([],[w],function(pA){var jA=(pA=pA[0]).name+"."+y;function ue(){du("Cannot call "+jA+" due to unbound types",NA)}y.startsWith("@@")&&(y=Symbol[y.substring(2)]),CA&&pA.registeredClass.pureVirtualFunctions.push(y);var de=pA.registeredClass.instancePrototype,Nt=de[y];return Nt===void 0||Nt.overloadTable===void 0&&Nt.className!==pA.name&&Nt.argCount===U-2?(ue.argCount=U-2,ue.className=pA.name,de[y]=ue):(Uy(de,y,jA),de[y].overloadTable[U-2]=ue),Sn([],NA,function(Ri){var Do=by(jA,Ri,pA,aA,IA);return de[y].overloadTable===void 0?(Do.argCount=U-2,de[y]=Do):de[y].overloadTable[U-2]=Do,[]}),[]})},_embind_register_emval:function(w,y){EI(w,{name:y=Cg(y),fromWireType:function(U){var J=yi.toValue(U);return FB(U),J},toWireType:function(U,J){return yi.toHandle(J)},argPackAdvance:8,readValueFromPointer:Bc,destructorFunction:null})},_embind_register_float:function(w,y,U){var J=ky(U);EI(w,{name:y=Cg(y),fromWireType:function(iA){return iA},toWireType:function(iA,aA){if(typeof aA!="number"&&typeof aA!="boolean")throw new TypeError('Cannot convert "'+Qc(aA)+'" to '+this.name);return aA},argPackAdvance:8,readValueFromPointer:pu(y,J),destructorFunction:null})},_embind_register_integer:function(w,y,U,J,iA){y=Cg(y),iA===-1&&(iA=4294967295);var aA=ky(U),IA=function(jA){return jA};if(J===0){var CA=32-8*U;IA=function(jA){return jA<<CA>>>CA}}var NA=y.includes("unsigned"),pA=function(jA,ue){if(typeof jA!="number"&&typeof jA!="boolean")throw new TypeError('Cannot convert "'+Qc(jA)+'" to '+ue);if(jA<J||jA>iA)throw new TypeError('Passing a number "'+Qc(jA)+'" from JS side to C/C++ side to an argument of type "'+y+'", which is outside the valid range ['+J+", "+iA+"]!")};EI(w,{name:y,fromWireType:IA,toWireType:NA?function(jA,ue){return pA(ue,this.name),ue>>>0}:function(jA,ue){return pA(ue,this.name),ue},argPackAdvance:8,readValueFromPointer:tT(y,aA,J!==0),destructorFunction:null})},_embind_register_memory_view:function(w,y,U){var J=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][y];function iA(aA){var IA=Ee,CA=IA[aA>>=2],NA=IA[aA+1];return new J(he,NA,CA)}EI(w,{name:U=Cg(U),fromWireType:iA,argPackAdvance:8,readValueFromPointer:iA},{ignoreDuplicateRegistrations:!0})},_embind_register_smart_ptr:function(w,y,U,J,iA,aA,IA,CA,NA,pA,jA,ue){U=Cg(U),aA=vg(iA,aA),CA=vg(IA,CA),pA=vg(NA,pA),ue=vg(jA,ue),Sn([w],[y],function(de){return de=de[0],[new Ia(U,de.registeredClass,!1,!1,!0,de,J,aA,CA,pA,ue)]})},_embind_register_std_string:function(w,y){var U=(y=Cg(y))==="std::string";EI(w,{name:y,fromWireType:function(J){var iA,aA=Ee[J>>2],IA=J+4;if(U)for(var CA=IA,NA=0;NA<=aA;++NA){var pA=IA+NA;if(NA==aA||ye[pA]==0){var jA=_t(CA,pA-CA);iA===void 0?iA=jA:(iA+="\0",iA+=jA),CA=pA+1}}else{var ue=new Array(aA);for(NA=0;NA<aA;++NA)ue[NA]=String.fromCharCode(ye[IA+NA]);iA=ue.join("")}return La(J),iA},toWireType:function(J,iA){var aA;iA instanceof ArrayBuffer&&(iA=new Uint8Array(iA));var IA=typeof iA=="string";IA||iA instanceof Uint8Array||iA instanceof Uint8ClampedArray||iA instanceof Int8Array||Ii("Cannot pass non-string to std::string"),aA=U&&IA?qi(iA):iA.length;var CA,NA,pA,jA=Oy(4+aA+1),ue=jA+4;if(Ee[jA>>2]=aA,U&&IA)CA=iA,NA=ue,mA(typeof(pA=aA+1)=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),zt(CA,ye,NA,pA);else if(IA)for(var de=0;de<aA;++de){var Nt=iA.charCodeAt(de);Nt>255&&(La(ue),Ii("String has UTF-16 code units that do not fit in 8 bits")),ye[ue+de]=Nt}else for(de=0;de<aA;++de)ye[ue+de]=iA[de];return J!==null&&J.push(La,jA),jA},argPackAdvance:8,readValueFromPointer:Bc,destructorFunction:function(J){La(J)}})},_embind_register_std_wstring:function(w,y,U){var J,iA,aA,IA,CA;U=Cg(U),y===2?(J=iT,iA=cc,IA=oT,aA=function(){return PA},CA=1):y===4&&(J=gT,iA=vB,IA=Jy,aA=function(){return Ee},CA=2),EI(w,{name:U,fromWireType:function(NA){for(var pA,jA=Ee[NA>>2],ue=aA(),de=NA+4,Nt=0;Nt<=jA;++Nt){var Ri=NA+4+Nt*y;if(Nt==jA||ue[Ri>>CA]==0){var Do=J(de,Ri-de);pA===void 0?pA=Do:(pA+="\0",pA+=Do),de=Ri+y}}return La(NA),pA},toWireType:function(NA,pA){typeof pA!="string"&&Ii("Cannot pass non-string to C++ string type "+U);var jA=IA(pA),ue=Oy(4+jA+y);return Ee[ue>>2]=jA>>CA,iA(pA,ue+4,jA+y),NA!==null&&NA.push(La,ue),ue},argPackAdvance:8,readValueFromPointer:Bc,destructorFunction:function(NA){La(NA)}})},_embind_register_void:function(w,y){EI(w,{isVoid:!0,name:y=Cg(y),argPackAdvance:0,fromWireType:function(){},toWireType:function(U,J){}})},_emscripten_date_now:function(){return Date.now()},_emscripten_get_now_is_monotonic:function(){return!0},_emval_as:function(w,y,U){w=yi.toValue(w),y=hc(y,"emval::as");var J=[],iA=yi.toHandle(J);return Ee[U>>2]=iA,y.toWireType(J,w)},_emval_call:function(w,y,U,J){w=yi.toValue(w);for(var iA=xy(y,U),aA=new Array(y),IA=0;IA<y;++IA){var CA=iA[IA];aA[IA]=CA.readValueFromPointer(J),J+=CA.argPackAdvance}var NA=w.apply(void 0,aA);return yi.toHandle(NA)},_emval_call_method:function(w,y,U,J,iA){return(w=yu[w])(y=yi.toValue(y),U=lc(U),(function(aA){var IA=[];return Ee[aA>>2]=yi.toHandle(IA),IA})(J),iA)},_emval_call_void_method:function(w,y,U,J){(w=yu[w])(y=yi.toValue(y),U=lc(U),null,J)},_emval_decref:FB,_emval_get_global:function(w){return w===0?yi.toHandle(pG()):(w=lc(w),yi.toHandle(pG()[w]))},_emval_get_method_caller:function(w,y){var U=xy(w,y),J=U[0],iA=J.name+"_$"+U.slice(1).map(function(de){return de.name}).join("_")+"$",aA=yG[iA];if(aA!==void 0)return aA;for(var IA=["retType"],CA=[J],NA="",pA=0;pA<w-1;++pA)NA+=(pA!==0?", ":"")+"arg"+pA,IA.push("argType"+pA),CA.push(U[1+pA]);var jA="return function "+cu("methodCaller_"+iA)+`(handle, name, destructors, args) {
|
||
`,ue=0;for(pA=0;pA<w-1;++pA)jA+=" var arg"+pA+" = argType"+pA+".readValueFromPointer(args"+(ue?"+"+ue:"")+`);
|
||
`,ue+=U[pA+1].argPackAdvance;for(jA+=" var rv = handle[name]("+NA+`);
|
||
`,pA=0;pA<w-1;++pA)U[pA+1].deleteObject&&(jA+=" argType"+pA+".deleteObject(arg"+pA+`);
|
||
`);return J.isVoid||(jA+=` return retType.toWireType(destructors, rv);
|
||
`),jA+=`};
|
||
`,IA.push(jA),aA=(function(de){var Nt=yu.length;return yu.push(de),Nt})(uG(Function,IA).apply(null,CA)),yG[iA]=aA,aA},_emval_get_module_property:function(w){return w=lc(w),yi.toHandle(a[w])},_emval_get_property:function(w,y){return w=yi.toValue(w),y=yi.toValue(y),yi.toHandle(w[y])},_emval_incref:function(w){w>4&&($g[w].refcount+=1)},_emval_instanceof:function(w,y){return(w=yi.toValue(w))instanceof(y=yi.toValue(y))},_emval_is_number:function(w){return typeof(w=yi.toValue(w))=="number"},_emval_is_string:function(w){return typeof(w=yi.toValue(w))=="string"},_emval_new:function(w,y,U,J){w=yi.toValue(w);var iA=RG[y];return iA||(iA=(function(aA){for(var IA="",CA=0;CA<aA;++CA)IA+=(CA!==0?", ":"")+"arg"+CA;var NA="return function emval_allocator_"+aA+`(constructor, argTypes, args) {
|
||
`;for(CA=0;CA<aA;++CA)NA+="var argType"+CA+" = requireRegisteredType(HEAPU32[((argTypes)>>2)], 'parameter "+CA+`');
|
||
var arg`+CA+" = argType"+CA+`.readValueFromPointer(args);
|
||
args += argType`+CA+`['argPackAdvance'];
|
||
argTypes += 4;
|
||
`;return NA+="var obj = new constructor("+IA+`);
|
||
return valueToHandle(obj);
|
||
}
|
||
`,new Function("requireRegisteredType","Module","valueToHandle","HEAPU32",NA)(hc,a,yi.toHandle,Ee)})(y),RG[y]=iA),iA(w,U,J)},_emval_new_cstring:function(w){return yi.toHandle(lc(w))},_emval_run_destructors:function(w){Ly(yi.toValue(w)),FB(w)},_emval_take_value:function(w,y){var U=(w=hc(w,"_emval_take_value")).readValueFromPointer(y);return yi.toHandle(U)},abort:function(){$o("native code called abort()")},emscripten_get_now:rT,emscripten_memcpy_big:function(w,y,U){ye.copyWithin(w,y,y+U)},emscripten_resize_heap:function(w){ye.length,(function(y){$o("Cannot enlarge memory arrays to size "+y+" bytes (OOM). Either (1) compile with -sINITIAL_MEMORY=X with X higher than the current value "+Ie.length+", (2) compile with -sALLOW_MEMORY_GROWTH which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -sABORTING_MALLOC=0")})(w>>>=0)},environ_get:function(w,y){var U=0;return Gn().forEach(function(J,iA){var aA=y+U;Ee[w+4*iA>>2]=aA,(function(IA,CA,NA){for(var pA=0;pA<IA.length;++pA)mA(IA.charCodeAt(pA)===(255&IA.charCodeAt(pA))),Ie[0|CA++]=IA.charCodeAt(pA);Ie[0|CA]=0})(J,aA),U+=J.length+1}),0},environ_sizes_get:function(w,y){var U=Gn();Ee[w>>2]=U.length;var J=0;return U.forEach(function(iA){J+=iA.length+1}),Ee[y>>2]=J,0},fd_close:function(w){$o("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")},fd_seek:function(w,y,U,J,iA){return 70},fd_write:function(w,y,U,J){for(var iA=0,aA=0;aA<U;aA++){var IA=Ee[y>>2],CA=Ee[y+4>>2];y+=8;for(var NA=0;NA<CA;NA++)aT(w,ye[IA+NA]);iA+=CA}return Ee[J>>2]=iA,0},setTempRet0:function(w){},strftime_l:function(w,y,U,J){return IT(w,y,U,J)}};(function(){var w={env:SG,wasi_snapshot_preview1:SG};function y(aA,IA){var CA,NA,pA=aA.exports;a.asm=pA,mA(_A=a.asm.memory,"memory not found in wasm exports"),CA=_A.buffer,he=CA,a.HEAP8=Ie=new Int8Array(CA),a.HEAP16=fe=new Int16Array(CA),a.HEAP32=GA=new Int32Array(CA),a.HEAPU8=ye=new Uint8Array(CA),a.HEAPU16=PA=new Uint16Array(CA),a.HEAPU32=Ee=new Uint32Array(CA),a.HEAPF32=Ke=new Float32Array(CA),a.HEAPF64=Fe=new Float64Array(CA),mA(xo=a.asm.__indirect_function_table,"table not found in wasm exports"),NA=a.asm.__wasm_call_ctors,Ls.unshift(NA),(function(jA){if(bs--,a.monitorRunDependencies&&a.monitorRunDependencies(bs),mA(rc[jA]),delete rc[jA],bs==0&&(GB!==null&&(clearInterval(GB),GB=null),gc)){var ue=gc;gc=null,ue()}})("wasm-instantiate")}(function(aA){bs++,a.monitorRunDependencies&&a.monitorRunDependencies(bs),mA(!rc[aA]),rc[aA]=1,GB===null&&typeof setInterval<"u"&&(GB=setInterval(function(){if(JA)return clearInterval(GB),void(GB=null);var IA=!1;for(var CA in rc)IA||(IA=!0,wA("still waiting on run dependencies:")),wA("dependency: "+CA);IA&&wA("(end of list)")},1e4))})("wasm-instantiate");var U=a;function J(aA){mA(a===U,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),U=null,y(aA.instance)}function iA(aA){return(function(){if(!kA&&(N||$)){if(typeof fetch=="function"&&!Gy(Bg))return fetch(Bg,{credentials:"same-origin"}).then(function(IA){if(!IA.ok)throw"failed to load wasm binary file at '"+Bg+"'";return IA.arrayBuffer()}).catch(function(){return nG(Bg)});if(j)return new Promise(function(IA,CA){j(Bg,function(NA){IA(new Uint8Array(NA))},CA)})}return Promise.resolve().then(function(){return nG(Bg)})})().then(function(IA){return WebAssembly.instantiate(IA,w)}).then(function(IA){return IA}).then(aA,function(IA){wA("failed to asynchronously prepare wasm: "+IA),Gy(Bg)&&wA("warning: Loading from a file URI ("+Bg+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing"),$o(IA)})}if(a.instantiateWasm)try{return a.instantiateWasm(w,y)}catch(aA){return wA("Module.instantiateWasm callback failed with error: "+aA),!1}(kA||typeof WebAssembly.instantiateStreaming!="function"||Sy(Bg)||Gy(Bg)||typeof fetch!="function"?iA(J):fetch(Bg,{credentials:"same-origin"}).then(function(aA){return WebAssembly.instantiateStreaming(aA,w).then(J,function(IA){return wA("wasm streaming compile failed: "+IA),wA("falling back to ArrayBuffer instantiation"),iA(J)})})).catch(d)})(),a.___wasm_call_ctors=Fo("__wasm_call_ctors");var La=a._free=Fo("free"),Oy=a._malloc=Fo("malloc"),GG=a.___getTypeName=Fo("__getTypeName");a.___embind_register_native_and_builtin_types=Fo("__embind_register_native_and_builtin_types"),a.___errno_location=Fo("__errno_location"),a._fflush=Fo("fflush");var uc=a._emscripten_stack_init=function(){return(uc=a._emscripten_stack_init=a.asm.emscripten_stack_init).apply(null,arguments)};a._emscripten_stack_get_free=function(){return(a._emscripten_stack_get_free=a.asm.emscripten_stack_get_free).apply(null,arguments)},a._emscripten_stack_get_base=function(){return(a._emscripten_stack_get_base=a.asm.emscripten_stack_get_base).apply(null,arguments)};var go,MG=a._emscripten_stack_get_end=function(){return(MG=a._emscripten_stack_get_end=a.asm.emscripten_stack_get_end).apply(null,arguments)};function mu(){uc(),(function(){var w=MG();mA(!(3&w)),GA[w>>2]=34821223,GA[w+4>>2]=2310721022,Ee[0]=1668509029})()}function pt(w){function y(){go||(go=!0,a.calledRun=!0,JA||(mA(!wy),wy=!0,Qu(),My(Ls),s(a),a.onRuntimeInitialized&&a.onRuntimeInitialized(),mA(!a._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),(function(){if(Qu(),a.postRun)for(typeof a.postRun=="function"&&(a.postRun=[a.postRun]);a.postRun.length;)Xv(a.postRun.shift());My(aG)})()))}bs>0||(mu(),(function(){if(a.preRun)for(typeof a.preRun=="function"&&(a.preRun=[a.preRun]);a.preRun.length;)jv(a.preRun.shift());My(oc)})(),bs>0||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),y()},1)):y(),Qu()))}if(a.stackSave=Fo("stackSave"),a.stackRestore=Fo("stackRestore"),a.stackAlloc=Fo("stackAlloc"),a.dynCall_vijii=Fo("dynCall_vijii"),a.dynCall_viji=Fo("dynCall_viji"),a.dynCall_vijiiii=Fo("dynCall_vijiiii"),a.dynCall_jiji=Fo("dynCall_jiji"),a.dynCall_viijii=Fo("dynCall_viijii"),a.dynCall_iiiiij=Fo("dynCall_iiiiij"),a.dynCall_iiiiijj=Fo("dynCall_iiiiijj"),a.dynCall_iiiiiijj=Fo("dynCall_iiiiiijj"),F("run",!1),F("UTF8ArrayToString",!1),F("UTF8ToString",!1),F("stringToUTF8Array",!1),F("stringToUTF8",!1),F("lengthBytesUTF8",!1),F("addOnPreRun",!1),F("addOnInit",!1),F("addOnPreMain",!1),F("addOnExit",!1),F("addOnPostRun",!1),F("addRunDependency",!0),F("removeRunDependency",!0),F("FS_createFolder",!1),F("FS_createPath",!0),F("FS_createDataFile",!0),F("FS_createPreloadedFile",!0),F("FS_createLazyFile",!0),F("FS_createLink",!1),F("FS_createDevice",!0),F("FS_unlink",!0),F("getLEB",!1),F("getFunctionTables",!1),F("alignFunctionTables",!1),F("registerFunctions",!1),F("prettyPrint",!1),F("getCompilerSetting",!1),F("print",!1),F("printErr",!1),F("getTempRet0",!1),F("setTempRet0",!1),F("callMain",!1),F("abort",!1),F("keepRuntimeAlive",!1),F("wasmMemory",!1),F("stackSave",!1),F("stackRestore",!1),F("stackAlloc",!1),F("writeStackCookie",!1),F("checkStackCookie",!1),F("intArrayFromBase64",!1),F("tryParseAsDataURI",!1),F("ptrToString",!1),F("zeroMemory",!1),F("stringToNewUTF8",!1),F("exitJS",!1),F("getHeapMax",!1),F("abortOnCannotGrowMemory",!1),F("emscripten_realloc_buffer",!1),F("ENV",!1),F("ERRNO_CODES",!1),F("ERRNO_MESSAGES",!1),F("setErrNo",!1),F("inetPton4",!1),F("inetNtop4",!1),F("inetPton6",!1),F("inetNtop6",!1),F("readSockaddr",!1),F("writeSockaddr",!1),F("DNS",!1),F("getHostByName",!1),F("Protocols",!1),F("Sockets",!1),F("getRandomDevice",!1),F("warnOnce",!1),F("traverseStack",!1),F("UNWIND_CACHE",!1),F("convertPCtoSourceLocation",!1),F("readAsmConstArgsArray",!1),F("readAsmConstArgs",!1),F("mainThreadEM_ASM",!1),F("jstoi_q",!1),F("jstoi_s",!1),F("getExecutableName",!1),F("listenOnce",!1),F("autoResumeAudioContext",!1),F("dynCallLegacy",!1),F("getDynCaller",!1),F("dynCall",!1),F("setWasmTableEntry",!1),F("getWasmTableEntry",!1),F("handleException",!1),F("runtimeKeepalivePush",!1),F("runtimeKeepalivePop",!1),F("callUserCallback",!1),F("maybeExit",!1),F("safeSetTimeout",!1),F("asmjsMangle",!1),F("asyncLoad",!1),F("alignMemory",!1),F("mmapAlloc",!1),F("writeI53ToI64",!1),F("writeI53ToI64Clamped",!1),F("writeI53ToI64Signaling",!1),F("writeI53ToU64Clamped",!1),F("writeI53ToU64Signaling",!1),F("readI53FromI64",!1),F("readI53FromU64",!1),F("convertI32PairToI53",!1),F("convertI32PairToI53Checked",!1),F("convertU32PairToI53",!1),F("getCFunc",!1),F("ccall",!1),F("cwrap",!1),F("uleb128Encode",!1),F("sigToWasmTypes",!1),F("convertJsFunctionToWasm",!1),F("freeTableIndexes",!1),F("functionsInTableMap",!1),F("getEmptyTableSlot",!1),F("updateTableMap",!1),F("addFunction",!1),F("removeFunction",!1),F("reallyNegative",!1),F("unSign",!1),F("strLen",!1),F("reSign",!1),F("formatString",!1),F("setValue",!1),F("getValue",!1),F("PATH",!1),F("PATH_FS",!1),F("intArrayFromString",!1),F("intArrayToString",!1),F("AsciiToString",!1),F("stringToAscii",!1),F("UTF16Decoder",!1),F("UTF16ToString",!1),F("stringToUTF16",!1),F("lengthBytesUTF16",!1),F("UTF32ToString",!1),F("stringToUTF32",!1),F("lengthBytesUTF32",!1),F("allocateUTF8",!1),F("allocateUTF8OnStack",!1),F("writeStringToMemory",!1),F("writeArrayToMemory",!1),F("writeAsciiToMemory",!1),F("SYSCALLS",!1),F("getSocketFromFD",!1),F("getSocketAddress",!1),F("JSEvents",!1),F("registerKeyEventCallback",!1),F("specialHTMLTargets",!1),F("maybeCStringToJsString",!1),F("findEventTarget",!1),F("findCanvasEventTarget",!1),F("getBoundingClientRect",!1),F("fillMouseEventData",!1),F("registerMouseEventCallback",!1),F("registerWheelEventCallback",!1),F("registerUiEventCallback",!1),F("registerFocusEventCallback",!1),F("fillDeviceOrientationEventData",!1),F("registerDeviceOrientationEventCallback",!1),F("fillDeviceMotionEventData",!1),F("registerDeviceMotionEventCallback",!1),F("screenOrientation",!1),F("fillOrientationChangeEventData",!1),F("registerOrientationChangeEventCallback",!1),F("fillFullscreenChangeEventData",!1),F("registerFullscreenChangeEventCallback",!1),F("JSEvents_requestFullscreen",!1),F("JSEvents_resizeCanvasForFullscreen",!1),F("registerRestoreOldStyle",!1),F("hideEverythingExceptGivenElement",!1),F("restoreHiddenElements",!1),F("setLetterbox",!1),F("currentFullscreenStrategy",!1),F("restoreOldWindowedStyle",!1),F("softFullscreenResizeWebGLRenderTarget",!1),F("doRequestFullscreen",!1),F("fillPointerlockChangeEventData",!1),F("registerPointerlockChangeEventCallback",!1),F("registerPointerlockErrorEventCallback",!1),F("requestPointerLock",!1),F("fillVisibilityChangeEventData",!1),F("registerVisibilityChangeEventCallback",!1),F("registerTouchEventCallback",!1),F("fillGamepadEventData",!1),F("registerGamepadEventCallback",!1),F("registerBeforeUnloadEventCallback",!1),F("fillBatteryEventData",!1),F("battery",!1),F("registerBatteryEventCallback",!1),F("setCanvasElementSize",!1),F("getCanvasElementSize",!1),F("demangle",!1),F("demangleAll",!1),F("jsStackTrace",!1),F("stackTrace",!1),F("ExitStatus",!1),F("getEnvStrings",!1),F("checkWasiClock",!1),F("flush_NO_FILESYSTEM",!1),F("dlopenMissingError",!1),F("setImmediateWrapped",!1),F("clearImmediateWrapped",!1),F("polyfillSetImmediate",!1),F("Browser",!1),F("setMainLoop",!1),F("wget",!1),F("FS",!1),F("MEMFS",!1),F("TTY",!1),F("PIPEFS",!1),F("SOCKFS",!1),F("_setNetworkCallback",!1),F("tempFixedLengthArray",!1),F("miniTempWebGLFloatBuffers",!1),F("heapObjectForWebGLType",!1),F("heapAccessShiftForWebGLHeap",!1),F("GL",!1),F("emscriptenWebGLGet",!1),F("computeUnpackAlignedImageSize",!1),F("emscriptenWebGLGetTexPixelData",!1),F("emscriptenWebGLGetUniform",!1),F("webglGetUniformLocation",!1),F("webglPrepareUniformLocationsBeforeFirstUse",!1),F("webglGetLeftBracePos",!1),F("emscriptenWebGLGetVertexAttrib",!1),F("writeGLArray",!1),F("AL",!1),F("SDL_unicode",!1),F("SDL_ttfContext",!1),F("SDL_audio",!1),F("SDL",!1),F("SDL_gfx",!1),F("GLUT",!1),F("EGL",!1),F("GLFW_Window",!1),F("GLFW",!1),F("GLEW",!1),F("IDBStore",!1),F("runAndAbortIfError",!1),F("ALLOC_NORMAL",!1),F("ALLOC_STACK",!1),F("allocate",!1),F("InternalError",!1),F("BindingError",!1),F("UnboundTypeError",!1),F("PureVirtualError",!1),F("init_embind",!1),F("throwInternalError",!1),F("throwBindingError",!1),F("throwUnboundTypeError",!1),F("ensureOverloadTable",!1),F("exposePublicSymbol",!1),F("replacePublicSymbol",!1),F("extendError",!1),F("createNamedFunction",!1),F("embindRepr",!1),F("registeredInstances",!1),F("getBasestPointer",!1),F("registerInheritedInstance",!1),F("unregisterInheritedInstance",!1),F("getInheritedInstance",!1),F("getInheritedInstanceCount",!1),F("getLiveInheritedInstances",!1),F("registeredTypes",!1),F("awaitingDependencies",!1),F("typeDependencies",!1),F("registeredPointers",!1),F("registerType",!1),F("whenDependentTypesAreResolved",!1),F("embind_charCodes",!1),F("embind_init_charCodes",!1),F("readLatin1String",!1),F("getTypeName",!1),F("heap32VectorToArray",!1),F("requireRegisteredType",!1),F("getShiftFromSize",!1),F("integerReadValueFromPointer",!1),F("enumReadValueFromPointer",!1),F("floatReadValueFromPointer",!1),F("simpleReadValueFromPointer",!1),F("runDestructors",!1),F("new_",!1),F("craftInvokerFunction",!1),F("embind__requireFunction",!1),F("tupleRegistrations",!1),F("structRegistrations",!1),F("genericPointerToWireType",!1),F("constNoSmartPtrRawPointerToWireType",!1),F("nonConstNoSmartPtrRawPointerToWireType",!1),F("init_RegisteredPointer",!1),F("RegisteredPointer",!1),F("RegisteredPointer_getPointee",!1),F("RegisteredPointer_destructor",!1),F("RegisteredPointer_deleteObject",!1),F("RegisteredPointer_fromWireType",!1),F("runDestructor",!1),F("releaseClassHandle",!1),F("finalizationRegistry",!1),F("detachFinalizer_deps",!1),F("detachFinalizer",!1),F("attachFinalizer",!1),F("makeClassHandle",!1),F("init_ClassHandle",!1),F("ClassHandle",!1),F("ClassHandle_isAliasOf",!1),F("throwInstanceAlreadyDeleted",!1),F("ClassHandle_clone",!1),F("ClassHandle_delete",!1),F("deletionQueue",!1),F("ClassHandle_isDeleted",!1),F("ClassHandle_deleteLater",!1),F("flushPendingDeletes",!1),F("delayFunction",!1),F("setDelayFunction",!1),F("RegisteredClass",!1),F("shallowCopyInternalPointer",!1),F("downcastPointer",!1),F("upcastPointer",!1),F("validateThis",!1),F("char_0",!1),F("char_9",!1),F("makeLegalFunctionName",!1),F("emval_handle_array",!1),F("emval_free_list",!1),F("emval_symbols",!1),F("init_emval",!1),F("count_emval_handles",!1),F("get_first_emval",!1),F("getStringOrSymbol",!1),F("Emval",!1),F("emval_newers",!1),F("craftEmvalAllocator",!1),F("emval_get_global",!1),F("emval_lookupTypes",!1),F("emval_allocateDestructors",!1),F("emval_methodCallers",!1),F("emval_addMethodCaller",!1),F("emval_registeredMethods",!1),gc=function w(){go||pt(),go||(gc=w)},a.preInit)for(typeof a.preInit=="function"&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();pt();var qy,Ko=this&&this.__awaiter||function(w,y,U,J){return new(U||(U=Promise))(function(iA,aA){function IA(pA){try{NA(J.next(pA))}catch(jA){aA(jA)}}function CA(pA){try{NA(J.throw(pA))}catch(jA){aA(jA)}}function NA(pA){var jA;pA.done?iA(pA.value):(jA=pA.value,jA instanceof U?jA:new U(function(ue){ue(jA)})).then(IA,CA)}NA((J=J.apply(w,y||[])).next())})};function fu(w){if(typeof w!="string")return w;var y;try{var U=JSON.parse(w);y=ui(U)==="object"&&U?U:w}catch{y=w}return y}(function(w){w[w.APNs=0]="APNs",w[w.VoIP=1]="VoIP"})(qy||(qy={}));var sT=(function(){return Qi(function w(){oi(this,w)},null,[{key:"getDeviceInfo",value:function(){var w={osName:"",osVersion:"",deviceName:"",framework:""};if(a.isWXMiniProgram){var y=wx.getSystemInfoSync(),U=qs(y.system.split(" "),2),J=U[0],iA=U[1];return w.osName=J,w.osVersion=iA,w.deviceName=y.model,w.framework="wxMiniProgram",w}var aA=a.rtcDetect.getSystem().browser,IA=a.rtcDetect.getSystem().OS,CA=a.isElectron?"electron":"web";return w.osName=aA.name,w.osVersion=aA.version,w.deviceName=IA,w.framework=CA,w}}])})(),dc=(function(){function w(){oi(this,w)}return Qi(w,null,[{key:"startInterval",value:function(y,U,J){var iA=setInterval(function(){var aA;!((aA=w==null?void 0:w.timerMap)===null||aA===void 0)&&aA.has(y)&&w.timerMap.get(y).callback.onInterval(y)},U);w.timerMap.set(y,{timer:iA,callback:J})}},{key:"stopInterval",value:function(y){var U;if(!((U=w==null?void 0:w.timerMap)===null||U===void 0)&&U.has(y)){var J=w.timerMap.get(y);J&&J.timer&&(clearInterval(J.timer),J.callback.delete(),w.timerMap.delete(y))}}},{key:"startTimeout",value:function(y,U){return Ko(this,void 0,void 0,Gt().m(function J(){return Gt().w(function(iA){for(;;)switch(iA.n){case 0:setTimeout(function(){U.onTimeout(),U.delete()},y);case 1:return iA.a(2)}},J)}))}}])})();dc.timerMap=new Map,a.JSTimer=dc,a.JSSystemInfo=sT,Ko=this&&this.__awaiter||function(w,y,U,J){return new(U||(U=Promise))(function(iA,aA){function IA(pA){try{NA(J.next(pA))}catch(jA){aA(jA)}}function CA(pA){try{NA(J.throw(pA))}catch(jA){aA(jA)}}function NA(pA){var jA;pA.done?iA(pA.value):(jA=pA.value,jA instanceof U?jA:new U(function(ue){ue(jA)})).then(IA,CA)}NA((J=J.apply(w,y||[])).next())})};var ti=a.TIM,bt=(function(){function w(y){return oi(this,w),this.waitingReadyQueue=[],this.logger=y&&y.logger||console,this.onTIMReadyStateUpdate=this.onTIMReadyStateUpdate.bind(this),w.chatLoginManager||(w.chatLoginManager=this),w.chatLoginManager}return Qi(w,[{key:"login",value:function(y){return Ko(this,void 0,void 0,Gt().m(function U(){var J,iA,aA,IA,CA,NA=this;return Gt().w(function(pA){for(;;)switch(pA.n){case 0:if(J=Object.assign({},y),iA=J.userId,aA=J.userSig,IA=J.chat,!this.isTIMVersionBelowV3(IA)){pA.n=1;break}throw new Error("Current chat version is not supported, please use v3.");case 1:if(w.chat=IA,this.bindTIMEvent(),!(CA=w.chat.getLoginUser())){pA.n=7;break}if(CA!==iA){pA.n=4;break}if(!w.chat.isReady()){pA.n=2;break}return pA.a(2);case 2:return pA.a(2,new Promise(function(jA,ue){NA.addLoginHandler({userId:iA,resolve:jA,reject:ue})}));case 3:pA.n=6;break;case 4:return pA.n=5,this.doLogout();case 5:return pA.n=6,this.doLogin({userId:iA,userSig:aA});case 6:pA.n=8;break;case 7:return pA.n=8,this.doLogin({userId:iA,userSig:aA});case 8:return pA.a(2)}},U,this)}))}},{key:"doLogin",value:function(y){return Ko(this,void 0,void 0,Gt().m(function U(){var J,iA,aA,IA=this;return Gt().w(function(CA){for(;;)if(CA.n===0)return J=Object.assign({},y),iA=J.userId,aA=J.userSig,CA.a(2,new Promise(function(NA,pA){return Ko(IA,void 0,void 0,Gt().m(function jA(){var ue,de;return Gt().w(function(Nt){for(;;)switch(Nt.p=Nt.n){case 0:return Nt.p=0,this.logger.debug("[tim] chat.login with userId: ",iA),Nt.n=1,w.chat.login({userID:iA,userSig:aA});case 1:if(ue=Nt.v,this.logger.info("[tim] chat.login success:",ue),!ue.data.repeatLogin||!w.chat.isReady()){Nt.n=2;break}return NA(!0),Nt.a(2);case 2:this.addLoginHandler({userId:iA,resolve:NA,reject:pA}),Nt.n=4;break;case 3:Nt.p=3,de=Nt.v,this.logger.debug("[tim] chat.login error: ",de,de.code),de.code===2025?this.addLoginHandler({userId:iA,resolve:NA,reject:pA}):pA(de);case 4:return Nt.a(2)}},jA,this,[[0,3]])}))}))},U)}))}},{key:"logout",value:function(){return Ko(this,void 0,void 0,Gt().m(function y(){return Gt().w(function(U){for(;;)switch(U.n){case 0:return U.n=1,this.doLogout();case 1:w.chat=null;case 2:return U.a(2)}},y,this)}))}},{key:"doLogout",value:function(){return Ko(this,void 0,void 0,Gt().m(function y(){return Gt().w(function(U){for(;;)switch(U.n){case 0:if(w.chat){U.n=1;break}return U.a(2);case 1:return this.logger.debug("[tim] chat.logout."),U.n=2,w.chat.logout();case 2:this.logger.info("[tim] chat.logout success.");case 3:return U.a(2)}},y,this)}))}},{key:"isTIMVersionBelowV3",value:function(y){return y&&typeof y.addSignalingListener!="function"}},{key:"addLoginHandler",value:function(y){var U=this;this.waitingReadyQueue.push(y),setTimeout(function(){var J=U.waitingReadyQueue.findIndex(function(iA){return iA===y});J<0||(U.waitingReadyQueue.splice(J,1),y.reject(new Error("login timeout")))},2e3)}},{key:"onTIMReadyStateUpdate",value:function(y){if(this.logger.debug("onTIMReadyStateUpdate event:",y.name),y.name===ti.EVENT.SDK_READY){var U=w.chat.getLoginUser();this.waitingReadyQueue.forEach(function(J){J.userId===U?J.resolve():J.reject(new Error("user ".concat(U," has Logged")))})}else this.waitingReadyQueue.forEach(function(J){return J.reject(new Error("sdk not ready"))});this.waitingReadyQueue=[]}},{key:"bindTIMEvent",value:function(){var y,U,J,iA;(y=w.chat)===null||y===void 0||y.off(ti.EVENT.SDK_READY,this.onTIMReadyStateUpdate),(U=w.chat)===null||U===void 0||U.off(ti.EVENT.SDK_NOT_READY,this.onTIMReadyStateUpdate),(J=w.chat)===null||J===void 0||J.on(ti.EVENT.SDK_READY,this.onTIMReadyStateUpdate),(iA=w.chat)===null||iA===void 0||iA.on(ti.EVENT.SDK_NOT_READY,this.onTIMReadyStateUpdate)}}])})(),Li=(Ko=this&&this.__awaiter||function(w,y,U,J){return new(U||(U=Promise))(function(iA,aA){function IA(pA){try{NA(J.next(pA))}catch(jA){aA(jA)}}function CA(pA){try{NA(J.throw(pA))}catch(jA){aA(jA)}}function NA(pA){var jA;pA.done?iA(pA.value):(jA=pA.value,jA instanceof U?jA:new U(function(ue){ue(jA)})).then(IA,CA)}NA((J=J.apply(w,y||[])).next())})},a.TIM),Ar=Li.TSignaling,na=["callExperimentalAPI","invite","inviteInGroup","accept","reject","cancel","modifyInvitation","getUserStatus"];function Tg(w){return w&&typeof w.addSignalingListener!="function"}var wi=(function(){return Qi(function w(){oi(this,w),this.chatLoginManager=new bt({logger:a.logger}),this.isExternalIncomingTim=!1,this.onError=this.onError.bind(this),this.onRoomCustomDataReceived=this.onRoomCustomDataReceived.bind(this),this.onKickedOut=this.onKickedOut.bind(this),this.onNetStateChange=this.onNetStateChange.bind(this),this.onServerConfigUpdated=this.onServerConfigUpdated.bind(this),this.onNewMessageReceived=this.onNewMessageReceived.bind(this),this.onNewInvitationReceived=this.onNewInvitationReceived.bind(this),this.onInviteeAccepted=this.onInviteeAccepted.bind(this),this.onInviteeRejected=this.onInviteeRejected.bind(this),this.onInvitationCancelled=this.onInvitationCancelled.bind(this),this.onInvitationTimeout=this.onInvitationTimeout.bind(this)},[{key:"bindObserver",value:function(w){this.nativeObserver=w}},{key:"unBindObserver",value:function(){this.nativeObserver&&this.nativeObserver.delete(),this.nativeObserver=null}},{key:"getLoginUser",value:function(){var w,y=(w=this.tim)===null||w===void 0?void 0:w.getLoginUser();return y??""}},{key:"callJS",value:function(w,y,U){return Ko(this,void 0,void 0,Gt().m(function J(){var iA,aA;return Gt().w(function(IA){for(;;)switch(IA.p=IA.n){case 0:if(IA.p=0,!Tg(a.tim)){IA.n=1;break}return U.onError(-1,"The current npm package you are using, tim-js-sdk, does not match the current dependency version of TUIRoom. We recommend upgrading to the new npm package @tencentCloud/chat for continued support and updates."),IA.a(2);case 1:if(a.tim||w==="login"){IA.n=2;break}return U.onError(2024,"please login firstly"),IA.a(2);case 2:iA=fu(y),w!=="invite"&&w!=="inviteInGroup"||(iA.offlinePushInfo=fu(iA.offlinePushInfo)||{}),w!=="callExperimentalAPI"&&a.logger.debug("[tim] ".concat(w," with params"),iA),w=="getUserStatus"&&(iA.userIDList=fu(iA.userIDList)),aA=w,IA.n=aA==="logout"?3:aA==="login"||aA==="updateMyProfile"?5:7;break;case 3:return IA.n=4,this.logout(U);case 4:case 6:return IA.a(3,8);case 5:return IA.n=6,this[w](iA,U);case 7:return IA.n=8,this.timFunction(w,iA,U);case 8:return IA.p=8,U.delete(),IA.f(8);case 9:return IA.a(2)}},J,this,[[0,,8,9]])}))}},{key:"login",value:function(w,y){return Ko(this,void 0,void 0,Gt().m(function U(){var J,iA,aA,IA,CA,NA;return Gt().w(function(pA){for(;;)switch(pA.p=pA.n){case 0:return J=Object.assign({},w),iA=J.sdkAppId,aA=J.userId,IA=J.userSig,CA=J.testEnv,a.logger.debug("[tim] login with params",iA,aA),this.tim||(a.tim?(this.tim=a.tim,this.isExternalIncomingTim=!0):(this.tim=Li.create({SDKAppID:iA,testEnv:CA}),a.tim=this.tim,this.isExternalIncomingTim=!1),this.bindTIMEvent()),pA.p=1,pA.n=2,this.chatLoginManager.login({sdkAppId:iA,userId:aA,userSig:IA,testEnv:CA,chat:this.tim});case 2:y.onSuccess(null),pA.n=4;break;case 3:pA.p=3,NA=pA.v,y.onError(NA.code||-1,NA.message);case 4:return pA.a(2)}},U,this,[[1,3]])}))}},{key:"logout",value:function(w){return Ko(this,void 0,void 0,Gt().m(function y(){var U;return Gt().w(function(J){for(;;)switch(J.p=J.n){case 0:if(a.logger.debug("[tim] logout. isExternalIncomingTim: ",this.isExternalIncomingTim),this.unbindTIMEvent(),!this.isExternalIncomingTim){J.n=1;break}a.tim=this.tim=null,w.onSuccess(null),J.n=4;break;case 1:return J.p=1,J.n=2,this.chatLoginManager.logout();case 2:a.tim=this.tim=null,w.onSuccess(null),J.n=4;break;case 3:J.p=3,U=J.v,w.onError(U.code||-1,U.message);case 4:return J.a(2)}},y,this,[[1,3]])}))}},{key:"updateMyProfile",value:function(w,y){return Ko(this,void 0,void 0,Gt().m(function U(){var J,iA,aA,IA;return Gt().w(function(CA){for(;;)switch(CA.p=CA.n){case 0:return J=Object.assign({},w),iA=J.nick,aA=J.avatar,CA.p=1,CA.n=2,this.tim.updateMyProfile({nick:iA,avatar:aA,gender:Li.TYPES.GENDER_UNKNOWN,allowType:Li.TYPES.ALLOW_TYPE_ALLOW_ANY});case 2:y.onSuccess(null),CA.n=4;break;case 3:CA.p=3,IA=CA.v,y.onError(IA.code||-1,IA.message);case 4:return CA.a(2)}},U,this,[[1,3]])}))}},{key:"timFunction",value:function(w,y,U){return Ko(this,void 0,void 0,Gt().m(function J(){var iA,aA,IA,CA,NA;return Gt().w(function(pA){for(;;)switch(pA.p=pA.n){case 0:if(pA.p=0,IA=null,!(y instanceof Array)){pA.n=2;break}return pA.n=1,(CA=this.tim)[w].apply(CA,ug(y));case 1:IA=pA.v,pA.n=4;break;case 2:return pA.n=3,this.tim[w](y);case 3:IA=pA.v;case 4:w!=="callExperimentalAPI"&&a.logger.info("[tim] call ".concat(w," success")),w!=="invite"&&w!=="inviteInGroup"&&w!=="modifyInvitation"||(IA=((aA=(iA=IA==null?void 0:IA.data)===null||iA===void 0?void 0:iA.message)===null||aA===void 0?void 0:aA.payload)||{data:""}),this.handleTimFunctionResponse(w,IA.data,U),pA.n=6;break;case 5:pA.p=5,NA=pA.v,a.logger.warn("[tim] ".concat(w," error:"),NA),U.onError(NA.code||-1,NA.message);case 6:return pA.a(2)}},J,this,[[0,5]])}))}},{key:"handleTimFunctionResponse",value:function(w,y,U){na.includes(w)&&y?typeof y=="string"?U.onSuccess({response:y}):U.onSuccess({response:JSON.stringify(y)}):U.onSuccess(y)}},{key:"onKickedOut",value:function(w){var y,U;switch(w.data.type){case Li.TYPES.KICKED_OUT_MULT_ACCOUNT:case Li.TYPES.KICKED_OUT_MULT_DEVICE:case Li.TYPES.KICKED_OUT_REST_API:(y=this.nativeObserver)===null||y===void 0||y.onJSEvent("onKickedOffline",{});break;case Li.TYPES.KICKED_OUT_USERSIG_EXPIRED:(U=this.nativeObserver)===null||U===void 0||U.onJSEvent("onUserSigExpired",{})}}},{key:"onNetStateChange",value:function(w){var y,U;switch(w.data.state){case Li.TYPES.NET_STATE_CONNECTED:(y=this.nativeObserver)===null||y===void 0||y.onJSEvent("onConnectSuccess",{});break;case Li.TYPES.NET_STATE_DISCONNECTED:(U=this.nativeObserver)===null||U===void 0||U.onJSEvent("onConnectFailed",{})}}},{key:"onRoomCustomDataReceived",value:function(w){var y;(y=this.nativeObserver)===null||y===void 0||y.onJSEvent("onRoomCustomDataReceived",w)}},{key:"onError",value:function(w){console.error("".concat(TIMService.logPrefix," onError error:"),w)}},{key:"onServerConfigUpdated",value:function(w){var y;(y=this.nativeObserver)===null||y===void 0||y.onJSEvent("onServerConfigUpdated",JSON.stringify(w==null?void 0:w.data)||"")}},{key:"onNewMessageReceived",value:function(w){var y;(y=this.nativeObserver)===null||y===void 0||y.onJSEvent("onNewMessageReceived",JSON.stringify(w==null?void 0:w.data)||"")}},{key:"onNewInvitationReceived",value:function(w){var y;(y=this.nativeObserver)===null||y===void 0||y.onJSEvent("onNewInvitationReceived",(w==null?void 0:w.data)||{})}},{key:"onInviteeAccepted",value:function(w){var y;(y=this.nativeObserver)===null||y===void 0||y.onJSEvent("onInviteeAccepted",(w==null?void 0:w.data)||{})}},{key:"onInviteeRejected",value:function(w){var y;(y=this.nativeObserver)===null||y===void 0||y.onJSEvent("onInviteeRejected",(w==null?void 0:w.data)||{})}},{key:"onInvitationCancelled",value:function(w){var y;(y=this.nativeObserver)===null||y===void 0||y.onJSEvent("onInvitationCancelled",(w==null?void 0:w.data)||{})}},{key:"onInvitationTimeout",value:function(w){var y;(y=this.nativeObserver)===null||y===void 0||y.onJSEvent("onInvitationTimeout",(w==null?void 0:w.data)||{})}},{key:"bindTIMEvent",value:function(){var w,y,U,J,iA,aA,IA,CA,NA,pA,jA;(w=this.tim)===null||w===void 0||w.on(Li.EVENT.ERROR,this.onError),(y=this.tim)===null||y===void 0||y.on(Li.EVENT.KICKED_OUT,this.onKickedOut),(U=this.tim)===null||U===void 0||U.on(Li.EVENT.NET_STATE_CHANGE,this.onNetStateChange),(J=this.tim)===null||J===void 0||J.on(Li.EVENT.ROOM_CUSTOM_DATA_RECEIVED,this.onRoomCustomDataReceived),(iA=this.tim)===null||iA===void 0||iA.on(Li.EVENT.SERVER_CONFIG_UPDATED,this.onServerConfigUpdated),(aA=this.tim)===null||aA===void 0||aA.on(Li.EVENT.MESSAGE_RECEIVED,this.onNewMessageReceived),(IA=this.tim)===null||IA===void 0||IA.addSignalingListener(Ar.NEW_INVITATION_RECEIVED,this.onNewInvitationReceived),(CA=this.tim)===null||CA===void 0||CA.addSignalingListener(Ar.INVITEE_ACCEPTED,this.onInviteeAccepted),(NA=this.tim)===null||NA===void 0||NA.addSignalingListener(Ar.INVITEE_REJECTED,this.onInviteeRejected),(pA=this.tim)===null||pA===void 0||pA.addSignalingListener(Ar.INVITATION_CANCELLED,this.onInvitationCancelled),(jA=this.tim)===null||jA===void 0||jA.addSignalingListener(Ar.INVITATION_TIMEOUT,this.onInvitationTimeout)}},{key:"unbindTIMEvent",value:function(){var w,y,U,J,iA,aA,IA,CA,NA,pA,jA;(w=this.tim)===null||w===void 0||w.off(Li.EVENT.ERROR,this.onError),(y=this.tim)===null||y===void 0||y.off(Li.EVENT.KICKED_OUT,this.onKickedOut),(U=this.tim)===null||U===void 0||U.off(Li.EVENT.NET_STATE_CHANGE,this.onNetStateChange),(J=this.tim)===null||J===void 0||J.off(Li.EVENT.ROOM_CUSTOM_DATA_RECEIVED,this.onRoomCustomDataReceived),(iA=this.tim)===null||iA===void 0||iA.off(Li.EVENT.SERVER_CONFIG_UPDATED,this.onServerConfigUpdated),(aA=this.tim)===null||aA===void 0||aA.off(Li.EVENT.MESSAGE_RECEIVED,this.onNewMessageReceived),(IA=this.tim)===null||IA===void 0||IA.removeSignalingListener(Ar.NEW_INVITATION_RECEIVED,this.onNewInvitationReceived),(CA=this.tim)===null||CA===void 0||CA.removeSignalingListener(Ar.INVITEE_ACCEPTED,this.onInviteeAccepted),(NA=this.tim)===null||NA===void 0||NA.removeSignalingListener(Ar.INVITEE_REJECTED,this.onInviteeRejected),(pA=this.tim)===null||pA===void 0||pA.removeSignalingListener(Ar.INVITATION_CANCELLED,this.onInvitationCancelled),(jA=this.tim)===null||jA===void 0||jA.removeSignalingListener(Ar.INVITATION_TIMEOUT,this.onInvitationTimeout)}}],[{key:"getSDKVersion",value:function(){return Li.VERSION}}])})();wi.logPrefix="[JSTim]",a.JSTim=wi;var CI=a.TRTCDefine.TRTCVideoResolutionMode;function ba(w){return typeof w=="string"?w.split(",").length>1?w.split(",").map(function(y){return document.getElementById(y)}).filter(function(y){return!!y}):UB?document.getElementById(w):w:w}function Py(w,y){var U=y;return w==="startLocalPreview"&&(U.length===1&&(U[0]=ba(U[0])),U.length===2&&(U[1]=ba(U[1]))),w!=="updateLocalView"&&w!=="startScreenCapture"||(U[0]=ba(U[0])),w!=="startRemoteView"&&w!=="updateRemoteView"||(U[1]=ba(U[1])),U}function TB(w,y){var U=y;if(w==="enterRoom"&&a.TRTCDefine.TRTCParams&&y instanceof Array&&y.length>0&&(U[0]=new a.TRTCDefine.TRTCParams(y[0].sdkAppId,y[0].userId,y[0].userSig,y[0].roomId,y[0].strRoomId,y[0].role)),w==="setVideoEncoderParam"&&a.TRTCDefine.TRTCVideoEncParam&&y instanceof Array&&y.length>0&&(U[0]=new a.TRTCDefine.TRTCVideoEncParam(y[0].videoResolution,CI.TRTCVideoResolutionModeLandscape,y[0].videoFps,y[0].videoBitrate,y[0].minVideoBitrate)),w==="selectScreenCaptureTarget"&&a.TRTCDefine.TRTCScreenCaptureSourceInfo&&a.TRTCDefine.TRTCScreenCaptureProperty&&y instanceof Array&&y.length===3&&a.tempResult.screenSharingTargetList&&a.tempResult.screenSharingTargetList.length>0){var J=a.tempResult.screenSharingTargetList.filter(function(iA){return iA.sourceId===y[0].sourceId});J.length>0&&(U[0]=J[0],U[1]=new a.TRTCDefine.Rect(y[1].left,y[1].top,y[1].right,y[1].bottom),U[2]=new a.TRTCDefine.TRTCScreenCaptureProperty(y[2].enableCaptureMouse,y[2].enableHighLight,y[2].enableHighPerformance,y[2].highLightColor,y[2].highLightWidth,y[2].enableCaptureChildWindow))}return w==="startScreenCapture"&&a.TRTCDefine.TRTCVideoEncParam&&y instanceof Array&&y.length===3&&(U[2]=new a.TRTCDefine.TRTCVideoEncParam(y[2].videoResolution,y[2].resMode,y[2].videoFps,y[2].videoBitrate,y[2].minVideoBitrate,y[2].enableAdjustRes)),w==="enableSmallVideoStream"&&a.TRTCDefine.TRTCVideoEncParam&&y instanceof Array&&y.length===2&&(U[1]=new a.TRTCDefine.TRTCVideoEncParam(y[1].videoResolution,y[1].resMode,y[1].videoFps,y[1].videoBitrate,y[1].minVideoBitrate,!1)),U}function Mn(w,y){w==="getScreenCaptureSources"&&(a.tempResult.screenSharingTargetList=y)}Ko=this&&this.__awaiter||function(w,y,U,J){return new(U||(U=Promise))(function(iA,aA){function IA(pA){try{NA(J.next(pA))}catch(jA){aA(jA)}}function CA(pA){try{NA(J.throw(pA))}catch(jA){aA(jA)}}function NA(pA){var jA;pA.done?iA(pA.value):(jA=pA.value,jA instanceof U?jA:new U(function(ue){ue(jA)})).then(IA,CA)}NA((J=J.apply(w,y||[])).next())})};var Dc=a.TRTCCloud,UB=a.currentFrameWork===a.FRAMEWORK.ELECTRON,ET=(function(){function w(y){oi(this,w),this.trtcCloud=y?Dc.getTRTCShareInstance():Dc.getTRTCShareInstance().createSubCloud(),this.isMainTRTCCloud=y,this.nativeObserver=null,this.onError=this.onError.bind(this),this.onWarning=this.onWarning.bind(this),this.onEnterRoom=this.onEnterRoom.bind(this),this.onExitRoom=this.onExitRoom.bind(this),this.onSwitchRole=this.onSwitchRole.bind(this),this.onUserVideoAvailable=this.onUserVideoAvailable.bind(this),this.onUserSubStreamAvailable=this.onUserSubStreamAvailable.bind(this),this.onUserAudioAvailable=this.onUserAudioAvailable.bind(this),this.onScreenCapturePaused=this.onScreenCapturePaused.bind(this),this.onScreenCaptureResumed=this.onScreenCaptureResumed.bind(this),this.onScreenCaptureStopped=this.onScreenCaptureStopped.bind(this),this.onFirstVideoFrame=this.onFirstVideoFrame.bind(this),this.onRemoteUserEnterRoom=this.onRemoteUserEnterRoom.bind(this),this.onRemoteUserLeaveRoom=this.onRemoteUserLeaveRoom.bind(this),this.onUserVoiceVolume=this.onUserVoiceVolume.bind(this),this.onNetworkQuality=this.onNetworkQuality.bind(this),this.onStatistics=this.onStatistics.bind(this),this.onMicDidReady=this.onMicDidReady.bind(this),this.onCameraDidReady=this.onCameraDidReady.bind(this),this.onSendFirstLocalAudioFrame=this.onSendFirstLocalAudioFrame.bind(this),this.onSendFirstLocalVideoFrame=this.onSendFirstLocalVideoFrame.bind(this),this.onReceiveSEIMessage=this.onReceiveSEIMessage.bind(this),this.onConnectionLost=this.onConnectionLost.bind(this),this.onConnectionRecovery=this.onConnectionRecovery.bind(this),this.bindTRTCEvent()}return Qi(w,[{key:"destroyTRTC",value:function(){this.unbindTRTCEvent(),this.isMainTRTCCloud||this.trtcCloud.destroy()}},{key:"getTRTCCloud",value:function(){return this.trtcCloud}},{key:"bindObserver",value:function(y){this.nativeObserver=y}},{key:"unBindObserver",value:function(){this.nativeObserver&&this.nativeObserver.delete(),this.nativeObserver=null}},{key:"callJS",value:function(y,U,J){return Ko(this,void 0,void 0,Gt().m(function iA(){var aA,IA,CA,NA,pA,jA,ue;return Gt().w(function(de){for(;;)switch(de.p=de.n){case 0:if(de.p=0,aA=fu(U),IA=Py(y,aA),IA=UB?TB(y,IA):IA,a.logger.debug("[trtcCloud] ".concat(y," params"),IA,ui(IA)),CA=null,!(IA instanceof Array)){de.n=2;break}return de.n=1,(NA=this.trtcCloud)[y].apply(NA,ug(IA));case 1:CA=de.v,de.n=4;break;case 2:return de.n=3,this.trtcCloud[y](IA);case 3:CA=de.v;case 4:a.logger.info("[trtcCloud] ".concat(y," success")),UB&&Mn(y,CA),J&&J.onSuccess(CA),de.n=6;break;case 5:de.p=5,ue=de.v,a.logger&&a.logger.warn("[trtcCloud] ".concat(y," error"),ue),pA=ue&&ue.code,jA=ue&&ue.message,y==="startScreenShare"&&(pA=ue&&ue.extraCode,jA=JSON.stringify({name:ue.originError.name,message:jA})),J&&J.onError(pA,jA);case 6:J.delete();case 7:return de.a(2)}},iA,this,[[0,5]])}))}},{key:"onError",value:function(y,U){var J;a.logger.warn("[trtcCloud] onError",y,U),(J=this.nativeObserver)===null||J===void 0||J.onJSEvent("onError",{errCode:y,errMsg:U})}},{key:"onWarning",value:function(y,U,J){var iA;(iA=this.nativeObserver)===null||iA===void 0||iA.onJSEvent("onWarning",{warningCode:y,warningMsg:U,extraInfo:JSON.stringify({extraInfo:J})})}},{key:"onEnterRoom",value:function(y){var U;(U=this.nativeObserver)===null||U===void 0||U.onJSEvent("onEnterRoom",{result:y})}},{key:"onExitRoom",value:function(y){var U;(U=this.nativeObserver)===null||U===void 0||U.onJSEvent("onExitRoom",{reason:y})}},{key:"onSwitchRole",value:function(y,U){var J;(J=this.nativeObserver)===null||J===void 0||J.onJSEvent("onSwitchRole",{errorCode:y,errorMessage:U})}},{key:"onUserVideoAvailable",value:function(y,U){var J;(J=this.nativeObserver)===null||J===void 0||J.onJSEvent("onUserVideoAvailable",{userId:y,available:!!U})}},{key:"onUserSubStreamAvailable",value:function(y,U){var J;(J=this.nativeObserver)===null||J===void 0||J.onJSEvent("onUserSubStreamAvailable",{userId:y,available:!!U})}},{key:"onUserAudioAvailable",value:function(y,U){var J;(J=this.nativeObserver)===null||J===void 0||J.onJSEvent("onUserAudioAvailable",{userId:y,available:!!U})}},{key:"onFirstVideoFrame",value:function(y,U,J,iA){var aA;(aA=this.nativeObserver)===null||aA===void 0||aA.onJSEvent("onFirstVideoFrame",{userId:y,streamType:U,width:J,height:iA})}},{key:"onRemoteUserEnterRoom",value:function(y){var U;(U=this.nativeObserver)===null||U===void 0||U.onJSEvent("onRemoteUserEnterRoom",{userId:y})}},{key:"onRemoteUserLeaveRoom",value:function(y,U){var J;(J=this.nativeObserver)===null||J===void 0||J.onJSEvent("onRemoteUserLeaveRoom",{userId:y,reason:U})}},{key:"onUserVoiceVolume",value:function(y,U,J){var iA;(iA=this.nativeObserver)===null||iA===void 0||iA.onJSEvent("onUserVoiceVolume",{userVolumes:y,userVolumesCount:U,totalVolume:J})}},{key:"onNetworkQuality",value:function(y,U){var J;(J=this.nativeObserver)===null||J===void 0||J.onJSEvent("onNetworkQuality",{localQuality:y,remoteQuality:U,remoteQualityCount:U.length})}},{key:"onStatistics",value:function(y){var U;(U=this.nativeObserver)===null||U===void 0||U.onJSEvent("onStatistics",{statistics:y})}},{key:"onMicDidReady",value:function(){var y;(y=this.nativeObserver)===null||y===void 0||y.onJSEvent("onMicDidReady",{})}},{key:"onCameraDidReady",value:function(){var y;(y=this.nativeObserver)===null||y===void 0||y.onJSEvent("onCameraDidReady",{})}},{key:"onScreenCapturePaused",value:function(y){var U;(U=this.nativeObserver)===null||U===void 0||U.onJSEvent("onScreenCapturePaused",{reason:y})}},{key:"onScreenCaptureResumed",value:function(y){var U;(U=this.nativeObserver)===null||U===void 0||U.onJSEvent("onScreenCaptureResumed",{reason:y})}},{key:"onScreenCaptureStopped",value:function(y){var U;(U=this.nativeObserver)===null||U===void 0||U.onJSEvent("onScreenCaptureStopped",{reason:y})}},{key:"onSendFirstLocalAudioFrame",value:function(){var y;(y=this.nativeObserver)===null||y===void 0||y.onJSEvent("onSendFirstLocalAudioFrame",{})}},{key:"onSendFirstLocalVideoFrame",value:function(y){var U;(U=this.nativeObserver)===null||U===void 0||U.onJSEvent("onSendFirstLocalVideoFrame",{streamType:y})}},{key:"onReceiveSEIMessage",value:function(y,U){var J;try{var iA=JSON.parse(U);(J=this.nativeObserver)===null||J===void 0||J.onJSEvent("onReceiveSEIMessage",{message:JSON.stringify(Object.assign(Object.assign({},iA),{userId:y,data:iA.stringData}))})}catch(aA){a.logger&&a.logger.warn("[trtcCloud] onReceiveSEIMessage error",aA)}}},{key:"onConnectionLost",value:function(){var y;(y=this.nativeObserver)===null||y===void 0||y.onJSEvent("onConnectionLost",{})}},{key:"onConnectionRecovery",value:function(){var y;(y=this.nativeObserver)===null||y===void 0||y.onJSEvent("onConnectionRecovery",{})}},{key:"bindTRTCEvent",value:function(){this.trtcCloud.on("onError",this.onError),this.trtcCloud.on("onWarning",this.onWarning),this.trtcCloud.on("onEnterRoom",this.onEnterRoom),this.trtcCloud.on("onExitRoom",this.onExitRoom),this.trtcCloud.on("onSwitchRole",this.onSwitchRole),this.trtcCloud.on("onUserVideoAvailable",this.onUserVideoAvailable),this.trtcCloud.on("onUserSubStreamAvailable",this.onUserSubStreamAvailable),this.trtcCloud.on("onUserAudioAvailable",this.onUserAudioAvailable),this.trtcCloud.on("onScreenCapturePaused",this.onScreenCapturePaused),this.trtcCloud.on("onScreenCaptureResumed",this.onScreenCaptureResumed),this.trtcCloud.on("onScreenCaptureStopped",this.onScreenCaptureStopped),this.trtcCloud.on("onFirstVideoFrame",this.onFirstVideoFrame),this.trtcCloud.on("onRemoteUserEnterRoom",this.onRemoteUserEnterRoom),this.trtcCloud.on("onRemoteUserLeaveRoom",this.onRemoteUserLeaveRoom),this.trtcCloud.on("onUserVoiceVolume",this.onUserVoiceVolume),this.trtcCloud.on("onNetworkQuality",this.onNetworkQuality),this.trtcCloud.on("onStatistics",this.onStatistics),this.trtcCloud.on("onMicDidReady",this.onMicDidReady),this.trtcCloud.on("onCameraDidReady",this.onCameraDidReady),this.trtcCloud.on("onSendFirstLocalAudioFrame",this.onSendFirstLocalAudioFrame),this.trtcCloud.on("onSendFirstLocalVideoFrame",this.onSendFirstLocalVideoFrame),this.trtcCloud.on("onRecvSEIMsg",this.onReceiveSEIMessage),this.trtcCloud.on("onConnectionLost",this.onConnectionLost),this.trtcCloud.on("onConnectionRecovery",this.onConnectionRecovery)}},{key:"unbindTRTCEvent",value:function(){this.trtcCloud.off("onError",this.onError),this.trtcCloud.off("onWarning",this.onWarning),this.trtcCloud.off("onEnterRoom",this.onEnterRoom),this.trtcCloud.off("onExitRoom",this.onExitRoom),this.trtcCloud.off("onSwitchRole",this.onSwitchRole),this.trtcCloud.off("onUserVideoAvailable",this.onUserVideoAvailable),this.trtcCloud.off("onUserSubStreamAvailable",this.onUserSubStreamAvailable),this.trtcCloud.off("onUserAudioAvailable",this.onUserAudioAvailable),this.trtcCloud.off("onScreenCapturePaused",this.onScreenCapturePaused),this.trtcCloud.off("onScreenCaptureResumed",this.onScreenCaptureResumed),this.trtcCloud.off("onScreenCaptureStopped",this.onScreenCaptureStopped),this.trtcCloud.off("onFirstVideoFrame",this.onFirstVideoFrame),this.trtcCloud.off("onRemoteUserEnterRoom",this.onRemoteUserEnterRoom),this.trtcCloud.off("onRemoteUserLeaveRoom",this.onRemoteUserLeaveRoom),this.trtcCloud.off("onUserVoiceVolume",this.onUserVoiceVolume),this.trtcCloud.off("onNetworkQuality",this.onNetworkQuality),this.trtcCloud.off("onStatistics",this.onStatistics),this.trtcCloud.off("onMicDidReady",this.onMicDidReady),this.trtcCloud.off("onCameraDidReady",this.onCameraDidReady),this.trtcCloud.off("onSendFirstLocalAudioFrame",this.onSendFirstLocalAudioFrame),this.trtcCloud.off("onSendFirstLocalVideoFrame",this.onSendFirstLocalVideoFrame),this.trtcCloud.off("onRecvSEIMsg",this.onReceiveSEIMessage),this.trtcCloud.off("onConnectionLost",this.onConnectionLost),this.trtcCloud.off("onConnectionRecovery",this.onConnectionRecovery)}}],[{key:"createTRTC",value:function(y){return new w(y)}},{key:"getSDKVersion",value:function(){return Dc.getTRTCShareInstance().getSDKVersion()}},{key:"log",value:function(y){return Ko(this,void 0,void 0,Gt().m(function U(){var J,iA,aA;return Gt().w(function(IA){for(;;)switch(IA.n){case 0:if(ui(J=fu(y))==="object"){IA.n=1;break}return IA.a(2);case 1:if(iA="[".concat(J.file,": ").concat(J.line,"] ").concat(J.message),!a.isElectron){IA.n=3;break}return aA={api:"TuikitLog",params:J},a.logger.info(iA),IA.n=2,w.callExperimentalAPI(JSON.stringify(aA));case 2:IA.n=4;break;case 3:J.level===2?a.logger.error(iA):console.log("[tuikit engine wasm] ["+J.file+":"+J.line+"] "+J.message);case 4:return IA.a(2)}},U)}))}},{key:"callExperimentalAPI",value:function(y){return Ko(this,void 0,void 0,Gt().m(function U(){var J;return Gt().w(function(iA){for(;;)switch(iA.n){case 0:return J=Dc.getTRTCShareInstance(),iA.n=1,J.callExperimentalAPI(y);case 1:return iA.a(2)}},U)}))}}])})();return a.JSTRTC=ET,a.ready});(function(a){a[a.APNs=0]="APNs",a[a.VoIP=1]="VoIP"})(fy||(fy={})),(function(a){a[a.UNKNOWN=0]="UNKNOWN",a[a.AUDIO_CALL=1]="AUDIO_CALL",a[a.VIDEO_CALL=2]="VIDEO_CALL"})(Ta||(Ta={})),(function(a){a[a.NORMAL=0]="NORMAL",a[a.RELEASE=1]="RELEASE",a[a.WARNING=2]="WARNING",a[a.ERROR=3]="ERROR",a[a.NONE=4]="NONE"})(Bu||(Bu={}));const Cu={"480p":f.TUIVideoQuality.kVideoQuality_540p,"720p":f.TUIVideoQuality.kVideoQuality_720p,"1080p":f.TUIVideoQuality.kVideoQuality_1080p},Zv={TRTCDeviceInfo:x.TRTCDeviceInfo,TRTCAudioQuality:x.TRTCAudioQuality,TRTCScreenCaptureSourceInfo:x.TRTCScreenCaptureSourceInfo,Rect:x.Rect,TRTCScreenCaptureSourceType:x.TRTCScreenCaptureSourceType,TRTCVideoEncParam:x.TRTCVideoEncParam,TRTCVideoResolution:x.TRTCVideoResolution,TRTCVideoResolutionMode:x.TRTCVideoResolutionMode,TRTCVideoQosPreference:x.TRTCVideoQosPreference,TRTCBeautyStyle:x.TRTCBeautyStyle,TRTCVideoStreamType:x.TRTCVideoStreamType,TRTCVolumeInfo:x.TRTCVolumeInfo,TRTCDeviceType:x.TRTCDeviceType,TRTCDeviceState:x.TRTCDeviceState,TRTCQualityInfo:x.TRTCQualityInfo,TRTCStatistics:x.TRTCStatistics,TRTCVideoFillMode:x.TRTCVideoFillMode,TRTCAppScene:x.TRTCAppScene,TRTCRoleType:x.TRTCRoleType,TRTCParams:x.TRTCParams,TRTCQuality:x.TRTCQuality},zY=Jb?Bt.MINI_PROGRAM:Bt.WEB,No={};No.TIM=FA.default,No.TRTCCloud=rA.default,No.currentFrameWork=zY,No.TRTCDefine=Zv,No.TIMDefine=FA.default.TYPES,No.FRAMEWORK=Bt;const tc=WN();No.loggerManager=tc,No.logger=tc,No.rtcDetect=new MA.default,kt.info(`SDK Version:${qt}.`),(function(){oA(this,void 0,void 0,function*(){yield gG(No),Ut.setModule(No)})})();const Eg=new $t,rG={cover:x.TRTCVideoFillMode.TRTCVideoFillMode_Fill,fill:x.TRTCVideoFillMode.TRTCVideoFillMode_Fill,contain:x.TRTCVideoFillMode.TRTCVideoFillMode_Fit};class Ut{constructor(s){if(this._logger=tc,this._logLevel=1,this._uniqueLoginId="",this._isExternalTim=!1,this._excludeFromHistoryMessage=!1,this._localRenderFillMode=x.TRTCVideoFillMode.TRTCVideoFillMode_Fill,this._remoteRenderFillMode=x.TRTCVideoFillMode.TRTCVideoFillMode_Fill,this._callMediaType=Ta.UNKNOWN,this.tim=null,this.trtcCloud=null,this._permission={audio:!1,video:!1},this._devices={microphone:[],camera:[],speaker:[]},this._currentDevices={microphone:void 0,camera:void 0,speaker:void 0},this._isRegisterVirtualBackgroundModelFile=!1,this._isUseBasicBeautyPlugin=!1,!Ut.isWasmReady)throw new gB({code:f.TUIErrorCode.ERR_FAILED,message:"Please listen to the ready event and then execute the constructor method."});const{isSharedInstance:d=!1}=s;this._callEngineWASM=new Ut.Module.TUICallEngineWASM(d),Ut.sdkAppId=s.SDKAppID||s.sdkAppID||0,this.trtcCloud=this._callEngineWASM.getTRTCCloud(),s.tim&&(this._isExternalTim=!0,No.tim=s.tim,this.tim=s.tim,cQ(s.tim.addSignalingListener)||(this._logger.info("constructor.fail",{text:{data:s},type:"api"}),kt.error("constructor.fail, you need to pass in an instance of @tencentcloud/chat, please use @tencentcloud/chat instead of tim-js-sdk. 需要传入 @tencentcloud/chat 的实例"))),this._initLogger(s),this._observerFunction=this._observerFunction.bind(this),this._callEngineWASM.setObserver(this._observerFunction),this._logger.info("constructor.start",{text:{data:s},type:"api"})}static setModule(s){kt.info("TUICallEngineWASM ready!"),this.Module=s,this.isWasmReady=!0,Eg.emit("ready")}JSCallNativeFunctionPromise(s,...d){return new Promise((S,k)=>{const N=v=>{S({code:0,message:"success",data:In(v)})},$=(v,P)=>{this._logger.info(`callEngine.${s} fail.`,{text:{data:{code:v,message:P}},type:"api"}),k(new gB({code:v,message:P}))};try{if(d.length>0)if(s==="startRemoteView"){const v=j=>{kt.info("callEngine startRemoteView playingCallback ",In(j)),S(In(j))},P=j=>{kt.info("callEngine startRemoteView loadingCallback ",In(j)),S(In(j))};this._callEngineWASM[s](...d,v,P,$)}else this._callEngineWASM.callAPI(s,...d,N,$);else this._callEngineWASM.callAPI(s,"{}",N,$)}catch(v){this._logger.info(`callEngine.${s} fail.`,{text:{error:v},type:"api"}),kt.error(`callEngine.${s} fail.`,v.code,v.message),k(new gB({code:v.code||f.TUIErrorCode.ERR_FAILED,message:v.message}))}})}static createInstance(s){return Ut.sdkAppId=s.SDKAppID||s.sdkAppID||0,tc.updateEsConfig({url:`https://webim.tim.qq.com/v4/imopenstat/tweb_trtccalling_report?sdkappid=${Ut.sdkAppId}`,table:"timweb-trtccalling"}),Ut.instance||(Ut.instance=new Ut(s)),Ut.instance}static once(s,d){Eg.once(s,d),s==="ready"&&Ut.isWasmReady&&Eg.emit("ready")}destroyInstance(){return oA(this,void 0,void 0,function*(){Ut.instance=null,this._isExternalTim?yield this.logout():yield this.tim.destroy(),this._callEngineWASM.delete()})}login(s){return oA(this,void 0,void 0,function*(){this._uniqueLoginId=(function($){$=$||32;for(var v="ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678",P="",j=0;j<$;j++)P+=v.charAt(Math.floor(48*Math.random()));return P})(6),this._logger.updateGetReportData(()=>({userid:s.userID,uniqueloginid:this._uniqueLoginId})),this._logger.info("login.start",{text:{data:Object.assign(Object.assign({},s),{userSig:""})},type:"api"}),Ut.isWasmReady||(yield No.ready);const{userID:d,userSig:S,assetsPath:k}=s;Ut.userId=d,Ut.userSig=S;const N=[Ut.sdkAppId,d,S];yield this.JSCallNativeFunctionPromise("login",JSON.stringify(N)),Eg.emit(f.TUICallEvent.SDK_READY,{name:"ts_im_ready"})})}logout(){return oA(this,void 0,void 0,function*(){const s={userID:Ut.userId,timExternal:this._isExternalTim};this._logger.info("logout.start",{text:{data:s},type:"api"}),yield this.JSCallNativeFunctionPromise("logout")})}call(s){return oA(this,void 0,void 0,function*(){this._logger.info("call.start",{text:{data:s},type:"api"}),kt.info("call - params:",s),this._callMediaType=s.type,yield this==null?void 0:this._checkDevicePermission({audio:!0,callMediaType:s.type});const d={room_id:{int_room_id:(s==null?void 0:s.roomID)||0,str_room_id:(s==null?void 0:s.strRoomID)||""},timeout:(s==null?void 0:s.timeout)||30,offline_push_info:Ap(s==null?void 0:s.offlinePushInfo),user_data:(s==null?void 0:s.userData)||""},S=[s.userID,s.type,d];return yield this.JSCallNativeFunctionPromise("call",JSON.stringify(S))})}groupCall(s){return oA(this,void 0,void 0,function*(){this._logger.info("groupCall.start",{text:{data:s},type:"api"}),kt.info("groupCall - params:",s),this._callMediaType=s.type,yield this==null?void 0:this._checkDevicePermission({audio:!0,callMediaType:s.type});const d={room_id:{int_room_id:(s==null?void 0:s.roomID)||0,str_room_id:(s==null?void 0:s.strRoomID)||""},timeout:(s==null?void 0:s.timeout)||30,offline_push_info:Ap(s==null?void 0:s.offlinePushInfo),user_data:(s==null?void 0:s.userData)||""},S=[s.groupID,s.userIDList,s.type,d];return yield this.JSCallNativeFunctionPromise("groupCall",JSON.stringify(S))})}calls(s){return oA(this,void 0,void 0,function*(){this._logger.info("calls.start",{text:{data:s},type:"api"}),kt.info("calls - params:",s),this._callMediaType=s.type,yield this==null?void 0:this._checkDevicePermission({audio:!0,callMediaType:s.type});const d={room_id:{int_room_id:(s==null?void 0:s.roomID)||0,str_room_id:(s==null?void 0:s.strRoomID)||""},timeout:(s==null?void 0:s.timeout)||30,offline_push_info:Ap(s==null?void 0:s.offlinePushInfo),user_data:(s==null?void 0:s.userData)||""},S=[s.chatGroupID||"",s.userIDList,s.type,d];return yield this.JSCallNativeFunctionPromise("calls",JSON.stringify(S))})}accept(){return oA(this,void 0,void 0,function*(){return this._logger.info("accept.start",{text:{type:"api"}}),kt.info("accept.start"),yield this==null?void 0:this._checkDevicePermission({audio:!0,callMediaType:this._callMediaType}),yield this.JSCallNativeFunctionPromise("accept")})}reject(){return oA(this,void 0,void 0,function*(){return this._logger.info("reject.start",{text:{type:"api"}}),kt.info("reject.start"),yield this.JSCallNativeFunctionPromise("reject")})}hangup(){return oA(this,void 0,void 0,function*(){return this._logger.info("hangup.start",{text:{type:"api"}}),kt.info("hangup.start"),yield this.closeCamera(),yield this.closeMicrophone(),yield this.JSCallNativeFunctionPromise("hangup")})}inviteUser(s){return oA(this,void 0,void 0,function*(){this._logger.info("inviteUser.start",{text:{data:s},type:"api"}),kt.info(`inviteUser, params:${JSON.stringify(s)}`);const{userIDList:d,offlinePushInfo:S={}}=s,k=[d,{timeout:(s==null?void 0:s.timeout)||30,offline_push_info:Ap(s==null?void 0:s.offlinePushInfo),user_data:(s==null?void 0:s.userData)||""}];yield this.JSCallNativeFunctionPromise("inviteUser",JSON.stringify(k))})}joinInGroupCall(s){return oA(this,void 0,void 0,function*(){this._logger.info("joinInGroupCall.start",{text:{data:s},type:"api"}),kt.info(`joinInGroupCall, params:${s}`),this._callMediaType=s.type,yield this==null?void 0:this._checkDevicePermission({audio:!0,callMediaType:s.type});const d=[{int_room_id:(s==null?void 0:s.roomID)||0,str_room_id:(s==null?void 0:s.strRoomID)||""},s.groupID,s.type];yield this.JSCallNativeFunctionPromise("joinInGroupCall",JSON.stringify(d))})}join(s){return oA(this,void 0,void 0,function*(){this._logger.info("join.start",{text:{data:s},type:"api"}),kt.info(`join, params:${s}`),yield this==null?void 0:this._checkDevicePermission({audio:!0});const d=[s.callId];yield this.JSCallNativeFunctionPromise("join",JSON.stringify(d))})}openCamera(s,d){return oA(this,void 0,void 0,function*(){let S;this._logger.info("openCamera.start",{type:"api",text:{data:s,isFrontCamera:d}}),kt.info(`openCamera.start, videoViewDomID:${s}, isFrontCamera:${d}}`),yield this==null?void 0:this._checkDevicePermission({video:!0}),S=ui(d)===Lg?-1:d?1:0;const k=[S,s];yield this.JSCallNativeFunctionPromise("openCamera",JSON.stringify(k))})}closeCamera(){return oA(this,void 0,void 0,function*(){this._logger.info("closeCamera.start",{type:"api"}),kt.info("closeCamera.start"),yield this.JSCallNativeFunctionPromise("closeCamera")})}switchCamera(s){return oA(this,void 0,void 0,function*(){this._logger.info("switchCamera.start",{type:"api",text:{data:s}}),kt.info(`switchCamera.start, cameraPosition: ${s}`);const d=[s===f.TUICallCameraPosition.FRONT?1:0];yield this.JSCallNativeFunctionPromise("switchCamera",JSON.stringify(d))})}setVideoQuality(s){return oA(this,void 0,void 0,function*(){this._logger.info("setVideoQuality.start",{type:"api",text:{data:s}}),kt.info(`setVideoQuality.start, profile:${s}`);const d=[Cu[s],this._localRenderFillMode];kt.info(`setVideoQuality.start, jsonParams:${d}`),yield this.JSCallNativeFunctionPromise("setVideoEncoderParams",JSON.stringify(d))})}setVideoRenderParams(s){return oA(this,void 0,void 0,function*(){this._logger.info("setVideoRenderParams.start",{type:"api",text:{data:s}}),kt.info("setVideoRenderParams.start",s);const d=this._analyzeVideoRenderParams(s);s.userID===Ut.userId?this._localRenderFillMode=d.fillMode:this._remoteRenderFillMode=d.fillMode;const S=[s.userID,d.fillMode,d.rotation];yield this.JSCallNativeFunctionPromise("setVideoRenderParams",JSON.stringify(S))})}openMicrophone(){return oA(this,void 0,void 0,function*(){this._logger.info("openMicrophone.start",{type:"api"}),kt.info("openMicrophone.start"),yield this.JSCallNativeFunctionPromise("openMicrophone")})}closeMicrophone(){return oA(this,void 0,void 0,function*(){this._logger.info("closeMicrophone.start",{type:"api"}),kt.info("closeMicrophone.start"),yield this.JSCallNativeFunctionPromise("closeMicrophone")})}startRemoteView(s){var d,S;return oA(this,void 0,void 0,function*(){this._logger.info("startRemoteView.start",{type:"api",text:{data:s}}),kt.info(`startRemoteView.start params: ${JSON.stringify(s)}`);let k=[s.userID,s.videoViewDomID];yield this.JSCallNativeFunctionPromise("startRemoteView",JSON.stringify(k)),this._remoteRenderFillMode=((d=s==null?void 0:s.options)===null||d===void 0?void 0:d.fillMode)&&rG[(S=s.options)===null||S===void 0?void 0:S.fillMode]||this._remoteRenderFillMode,k=[s.userID,this._remoteRenderFillMode,0],yield this.JSCallNativeFunctionPromise("setVideoRenderParams",JSON.stringify(k))})}stopRemoteView(s){return oA(this,void 0,void 0,function*(){this._logger.info("stopRemoteView.start",{text:{data:s},type:"api"});const d=[s.userID];yield this.JSCallNativeFunctionPromise("startRemoteView",JSON.stringify(d))})}setBlurBackground(s){return oA(this,void 0,void 0,function*(){this._logger.info("setBlurBackground.start",{type:"api",text:{data:s}}),yield this._setVirtualBackground({enable:s!==0,type:bg,blurLevel:s})})}setVirtualBackground(s){return oA(this,void 0,void 0,function*(){this._logger.info("setVirtualBackground.start",{type:"api",text:{data:s}}),yield this._setVirtualBackground({enable:!!s,type:St,imagePath:s})})}_setVirtualBackground(s){var d,S;return oA(this,void 0,void 0,function*(){try{const{enable:k}=s;!this._isRegisterVirtualBackgroundModelFile&&k&&(yield(d=this.trtcCloud)===null||d===void 0?void 0:d.useVirtualBackground(),this._isRegisterVirtualBackgroundModelFile=!0);const N={api:or,params:Object.assign({sdkAppId:Ut.sdkAppId,userId:Ut.userId,userSig:Ut.userSig},s)};yield(S=this.trtcCloud)===null||S===void 0?void 0:S.callExperimentalAPI(JSON.stringify(N))}catch(k){throw kt.error(`setVirtualBackground.fail, ${k}`),this._logger.error("setVirtualBackground.fail",{text:{error:k},type:"api"}),k}})}enableMultiDeviceAbility(s){this._logger.info("enableMultiDeviceAbility.start",{text:{data:{enable:s}},type:"api"});const d=[s];this.JSCallNativeFunctionPromise("enableMultiDeviceAbility",JSON.stringify(d))}setSelfInfo(s){return oA(this,void 0,void 0,function*(){this._logger.info("setSelfInfo.start",{type:"api",text:{data:s}});const d=[s.nickName,s.avatar];yield this.JSCallNativeFunctionPromise("setSelfInfo",JSON.stringify(d))})}setBeautyLevel(s){var d,S;return oA(this,void 0,void 0,function*(){try{this._logger.info("setBeautyLevel.start",{type:"api",text:{data:s}});const{style:k,beautyLevel:N,whitenessLevel:$,ruddinessLevel:v}=s||{};if(!s||k!==x.TRTCBeautyStyle.TRTCBeautyStyleSmooth&&k!==x.TRTCBeautyStyle.TRTCBeautyStyleNature)return void kt.error("setBeautyLevel.fail style valid, ",k);this._isUseBasicBeautyPlugin||(yield(d=this.trtcCloud)===null||d===void 0?void 0:d.useBeautyStyle(),this._isUseBasicBeautyPlugin=!0),yield(S=this.trtcCloud)===null||S===void 0?void 0:S.setBeautyStyle(k,N,$,v)}catch(k){this._logger.info("setBeautyLevel.fail",{type:"api",text:{data:k}}),kt.error("setBeautyLevel.fail",k)}})}setLogLevel(s){kt.info(`setLogLevel level: ${s}`),this._logLevel=s,kt.setLevel(s);const d=[s];this.JSCallNativeFunctionPromise("setLogLevel",JSON.stringify(d))}init(s){return oA(this,void 0,void 0,function*(){return this.login(s)})}on(s,d,S){if(Eg.on(s,d,S||this),s===f.TUICallEvent.onDeviceChange||s===f.TUICallEvent.DEVICED_UPDATED){const k=f.TUICallEvent.onDeviceChange;return void this._handleTrtcCloudBindEvent(k)}}off(s,d,S){Eg.off(s,d)}getTRTCCloudInstance(){return this.trtcCloud}getTim(){return No.tim}callExperimentalAPI(s){return oA(this,void 0,void 0,function*(){this._logger.info("callExperimentalAPI",{text:{data:s},type:"api"});const d=In(s);if(d===s)return;const{api:S,params:k={}}=d;if(S&&k)try{const N=[s];return yield this.JSCallNativeFunctionPromise("callExperimentalAPI",JSON.stringify(N))}catch(N){throw N}})}getDeviceList(s){var d,S,k;return oA(this,void 0,void 0,function*(){this._logger.info("getDeviceList.start",{text:{data:{deviceType:s}},type:"api"}),(s=s===zA.MICROPHONES?zA.MICROPHONE:s)!==zA.MICROPHONE&&s!==zA.SPEAKER||(yield this._checkDevicePermission({audio:!0})),s===zA.CAMERA&&(yield this._checkDevicePermission({video:!0,isThrowVideoError:!0}));let N=[];switch(s){case zA.CAMERA:this.getDevicePermission().video&&(N=yield(d=this.trtcCloud)===null||d===void 0?void 0:d.getCameraDevicesList());break;case zA.MICROPHONE:this.getDevicePermission().audio&&(N=yield(S=this.trtcCloud)===null||S===void 0?void 0:S.getMicDevicesList());break;case zA.SPEAKER:this.getDevicePermission().audio&&(N=yield(k=this.trtcCloud)===null||k===void 0?void 0:k.getSpeakerDevicesList())}return this._devices[s]=N,N})}switchDevice(s){var d,S,k;return oA(this,void 0,void 0,function*(){this._logger.info("switchDevice.start",{text:{data:{params:s}},type:"api"}),kt.info("switchDevice.start",s);let N=!1,{deviceType:$,deviceId:v}=s;return $!==zA.VIDEO&&$!==zA.CAMERA||($=zA.CAMERA,N=yield(d=this.trtcCloud)===null||d===void 0?void 0:d.setCurrentCameraDevice(v)),$!==zA.AUDIO&&$!==zA.MICROPHONES&&$!==zA.MICROPHONE||(N=yield(S=this.trtcCloud)===null||S===void 0?void 0:S.setCurrentMicDevice(v)),$===zA.SPEAKER&&(N=yield(k=this.trtcCloud)===null||k===void 0?void 0:k.setCurrentSpeakerDevice(v)),this._updateCurrentDevice(),this._onDeviceUpdated(this._devices,this._currentDevices),N})}_updateCurrentDevice(){var s,d,S;this._logger.info("_updateCurrentDevice.start",{text:{data:Object.assign({},this._currentDevices)},type:"api"}),this._currentDevices.camera=(s=this.trtcCloud)===null||s===void 0?void 0:s.getCurrentCameraDevice(),this._currentDevices.microphone=(d=this.trtcCloud)===null||d===void 0?void 0:d.getCurrentMicDevice(),this._currentDevices.speaker=(S=this.trtcCloud)===null||S===void 0?void 0:S.getCurrentSpeakerDevice()}switchCallMediaType(s){return oA(this,void 0,void 0,function*(){this._logger.info("switchCallMediaType.start",{text:{data:{newMediaType:s}},type:"api"});const d=[s];yield this.JSCallNativeFunctionPromise("switchCallMediaType",JSON.stringify(d))})}_checkDevicePermission(s={}){return oA(this,void 0,void 0,function*(){return yield this._getMediaDevicesAuth(s)})}_getMediaDevicesAuth(s={}){return oA(this,void 0,void 0,function*(){if(this._logger.info("_getMediaDevicesAuth.start",{text:{data:{params:s}},type:"api"}),(function(){if(!window||!window.location)return!1;const{protocol:S,hostname:k}=window.location;return S==="http:"&&k!=="localhost"&&k!=="127.0.0.1"})())throw this._logger.error("_getMediaDevicesAuth.fail",{text:{error:oB},type:"api"}),new gB({code:qb});const d=this.getDevicePermission();if(s.audio){if(sp&&d.audio)return d;try{const S=yield navigator.mediaDevices.getUserMedia({audio:!0});this._releaseStream(S),this._setDevicePermission(lg,!0)}catch(S){this._logger.error("_getMediaDevicesAuth.fail",{text:{error:S},type:"api"}),this._setDevicePermission(lg,!1),this._handleMediaError(S,"_getMediaDevicesAuth",lg)}}if(s.video){if(sp&&d.video)return d;try{const S=yield navigator.mediaDevices.getUserMedia({video:!0});this._releaseStream(S),this._setDevicePermission(Ro,!0)}catch(S){this._logger.error("_getMediaDevicesAuth.fail",{text:{error:S},type:"api"}),this._setDevicePermission(Ro,!1),s.isThrowVideoError&&this._handleMediaError(S,"_getMediaDevicesAuth",Ro)}}return this.getDevicePermission()})}_releaseStream(s){const d=s.getTracks();for(let S=0;S<d.length;S++)d[S].stop()}_handleMediaError(s,d,S){let k=Bp,N=mi;switch(s==null?void 0:s.name){case"NotFoundError":S===zA.AUDIO&&(k=ZN),S===zA.VIDEO&&(k=Dw);break;case"NotAllowedError":k=Hb}throw N=hl({code:k,params:{error:s,fnName:d}}),new gB({code:k,message:N})}_analyzeVideoRenderParams(s){const d={};return d.rotation=s.rotation,s.objectFit&&(s.objectFit===Ja?d.fillMode=x.TRTCVideoFillMode.TRTCVideoFillMode_Fill:d.fillMode=x.TRTCVideoFillMode.TRTCVideoFillMode_Fit),ui(s.mirror)===Mt&&(d.mirrorType=s.mirror?x.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable:x.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable),d}_handleTrtcCloudBindEvent(s){var d,S;return oA(this,void 0,void 0,function*(){(d=this.trtcCloud)===null||d===void 0||d.removeAllListeners(s),(S=this.trtcCloud)===null||S===void 0||S.on(s,(...k)=>oA(this,void 0,void 0,function*(){let N=ep(s,k);if(s===f.TUICallEvent.onDeviceChange){const{type:$}=N||{},v={[x.TRTCDeviceType.TRTCDeviceTypeMi]:zA.MICROPHONE,[x.TRTCDeviceType.TRTCDeviceTypeSpeaker]:zA.SPEAKER,[x.TRTCDeviceType.TRTCDeviceTypeCamera]:zA.CAMERA};yield this.getDeviceList(v[$]),this._updateCurrentDevice();const{microphone:P,speaker:j,camera:K}=this._devices,{microphone:cA,speaker:DA,camera:kA}=this._currentDevices;N={microphoneList:P,cameraList:K,speakerList:j,currentMicrophone:cA,currentCamera:kA,currentSpeaker:DA}}JSON.stringify(N)==="{}"?Eg.emit(s):s===f.TUICallEvent.onDeviceChange?Eg.emit(f.TUICallEvent.DEVICED_UPDATED,N):Eg.emit(s,N)}))})}_observerFunction(s,d){const S=ep(s,d);if(JSON.stringify(S)==="{}")Eg.emit(s);else switch(Eg.emit(s,S),s!==f.TUICallEvent.ON_CALL_NOT_CONNECTED&&s!==f.TUICallEvent.CALL_END||this._cleanupAllAvoidRepeatCallState(),s){case f.TUICallEvent.ON_CALL_RECEIVED:Eg.emit(f.TUICallEvent.INVITED,S),this._callMediaType=S.callMediaType;break;case f.TUICallEvent.ON_CALL_NOT_CONNECTED:Eg.emit(f.TUICallEvent.ON_CALL_CANCELED,S),Eg.emit(f.TUICallEvent.CALLING_CANCEL,S)}[f.TUICallEvent.USER_VOICE_VOLUME,f.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED].includes(s)||kt.info(`callEngine received event: [${s}] ${JSON.stringify(S)}`)}_onDeviceUpdated(s,d){const{microphone:S,speaker:k,camera:N}=s,{microphone:$,speaker:v,camera:P}=d;this._logger.info("TUICallEvent.DEVICED_UPDATED",{type:"event",text:{data:Object.assign(Object.assign({},s),d)}}),Eg.emit(f.TUICallEvent.DEVICED_UPDATED,{microphoneList:S,cameraList:N,speakerList:k,currentMicrophone:$,currentCamera:P,currentSpeaker:v})}_initLogger(s){this._logger.updateGetReportData(()=>({app:"TUICallEngine-web",version:qt,useragent:{userAgent:window.navigator.userAgent,language:window.navigator.language,platform:window.navigator.platform},platform:Tn,sdkappid:s.SDKAppID,time:+new Date,userid:Ut.userId,uniqueloginid:this._uniqueLoginId,roomid:"",callinfo:{inviteid:"",callrole:"",groupid:"",calltype:"",handledInviteeList:[],unHandledInviteeList:[]},callkitversion:s.callkitVersion||mi,framework:s.frameWork||mi,isfromchat:s.chat?"true":"false"}))}_cleanupAllAvoidRepeatCallState(){var s,d;(d=(s=this._logger)===null||s===void 0?void 0:s.info)===null||d===void 0||d.call(s,{name:"TUICallEngine._cleanupAllAvoidRepeatCallState",data:{}}),[this.calls,this.accept,this.hangup,this.reject].forEach(S=>{var k;(k=S==null?void 0:S.clearCallState)===null||k===void 0||k.call(S,this)})}getDevicePermission(){return this._permission}_setDevicePermission(s,d){this._permission[s]=d}}Ut.className="TUICallEngine",Ut.isWasmReady=!1,sA([En()],Ut.prototype,"call",null),sA([En()],Ut.prototype,"groupCall",null),sA([En()],Ut.prototype,"calls",null),sA([En()],Ut.prototype,"accept",null),sA([En()],Ut.prototype,"reject",null),sA([En()],Ut.prototype,"hangup",null),sA([En()],Ut.prototype,"inviteUser",null),sA([En()],Ut.prototype,"joinInGroupCall",null),sA([En()],Ut.prototype,"join",null),Ut.once("ready",()=>oA(void 0,void 0,void 0,function*(){})),Object.defineProperty(f,"TIM",{enumerable:!0,get:function(){return FA.default}}),Object.defineProperty(f,"TencentCloudChat",{enumerable:!0,get:function(){return FA.default}}),Object.defineProperty(f,"Rect",{enumerable:!0,get:function(){return x.Rect}}),Object.defineProperty(f,"TRTCBeautyStyle",{enumerable:!0,get:function(){return x.TRTCBeautyStyle}}),Object.defineProperty(f,"TRTCCloud",{enumerable:!0,get:function(){return rA.default}}),Object.defineProperty(f,"TRTCDeviceInfo",{enumerable:!0,get:function(){return x.TRTCDeviceInfo}}),Object.defineProperty(f,"TRTCDeviceState",{enumerable:!0,get:function(){return x.TRTCDeviceState}}),Object.defineProperty(f,"TRTCDeviceType",{enumerable:!0,get:function(){return x.TRTCDeviceType}}),Object.defineProperty(f,"TRTCLogLevel",{enumerable:!0,get:function(){return x.TRTCLogLevel}}),Object.defineProperty(f,"TRTCScreenCaptureSourceInfo",{enumerable:!0,get:function(){return x.TRTCScreenCaptureSourceInfo}}),Object.defineProperty(f,"TRTCScreenCaptureSourceType",{enumerable:!0,get:function(){return x.TRTCScreenCaptureSourceType}}),Object.defineProperty(f,"TRTCVideoEncParam",{enumerable:!0,get:function(){return x.TRTCVideoEncParam}}),Object.defineProperty(f,"TRTCVideoFillMode",{enumerable:!0,get:function(){return x.TRTCVideoFillMode}}),Object.defineProperty(f,"TRTCVideoMirrorType",{enumerable:!0,get:function(){return x.TRTCVideoMirrorType}}),Object.defineProperty(f,"TRTCVideoResolution",{enumerable:!0,get:function(){return x.TRTCVideoResolution}}),Object.defineProperty(f,"TRTCVideoResolutionMode",{enumerable:!0,get:function(){return x.TRTCVideoResolutionMode}}),Object.defineProperty(f,"TRTCVideoRotation",{enumerable:!0,get:function(){return x.TRTCVideoRotation}}),Object.defineProperty(f,"TRTCVideoStreamType",{enumerable:!0,get:function(){return x.TRTCVideoStreamType}}),Object.defineProperty(f,"TRTCVolumeInfo",{enumerable:!0,get:function(){return x.TRTCVolumeInfo}}),f.TUICallEngine=Ut,f.TUICallType={AUDIO_CALL:1,VIDEO_CALL:2,DEVCIED_CAMERA:"camera",DEVCIED_MICROPHONES:"microphones"},f.VIDEO_ENCODER_MAP=Cu,f.default=Ut,Object.defineProperty(f,"__esModule",{value:!0})})})(XG,XG.exports)),XG.exports}var Z1=q1();export{Z1 as c};
|