diff --git a/Miniapp-H5/dist/index.html b/Miniapp-H5/dist/index.html index a1f3e36..b7aa5b4 100644 --- a/Miniapp-H5/dist/index.html +++ b/Miniapp-H5/dist/index.html @@ -1 +1 @@ -
>>0?1:0))+((P=N+he|0)>>>0>>0?1:0)|0,O=x,N=D,x=M,D=U,M=R,U=L,R=ke+(ve+pe+(Ce>>>0 >>0?1:0))+((L=he+Ce|0)>>>0 >>0?1:0)|0}p=n.low=p+L,n.high=f+R+(p>>>0 >>0?1:0),v=i.low=v+U,i.high=m+M+(v>>>0>>0?1:0),_=o.low=_+D,o.high=g+x+(_>>>0 >>0?1:0),b=a.low=b+N,a.high=w+O+(b>>>0 >>0?1:0),S=s.low=S+P,s.high=y+B+(S>>>0 >>0?1:0),C=u.low=C+F,u.high=k+z+(C>>>0
>>0?1:0),I=h.low=I+V,h.high=A+Z+(I>>>0 >>0?1:0),E=d.low=E+H,d.high=T+j+(E>>>0 >>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[30+(n+128>>>10<<5)]=Math.floor(r/4294967296),t[31+(n+128>>>10<<5)]=r,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=t.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});e.SHA512=t._createHelper(u),e.HmacSHA512=t._createHmacHelper(u)}(),r.SHA512)})),qe((function(e,t){var r,n,i,o,a,s,l,c;e.exports=(i=(n=r=Xe).x64,o=i.Word,a=i.WordArray,s=n.algo,l=s.SHA512,c=s.SHA384=l.extend({_doReset:function(){this._hash=new a.init([new o.init(3418070365,3238371032),new o.init(1654270250,914150663),new o.init(2438529370,812702999),new o.init(355462360,4144912697),new o.init(1731405415,4290775857),new o.init(2394180231,1750603025),new o.init(3675008525,1694076839),new o.init(1203062813,3204075428)])},_doFinalize:function(){var e=l._doFinalize.call(this);return e.sigBytes-=16,e}}),n.SHA384=l._createHelper(c),n.HmacSHA384=l._createHmacHelper(c),r.SHA384)})),qe((function(e,t){var r;e.exports=(r=Xe,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.x64.Word,s=t.algo,l=[],c=[],u=[];!function(){for(var e=1,t=0,r=0;r<24;r++){l[e+5*t]=(r+1)*(r+2)/2%64;var n=(2*e+3*t)%5;e=t%5,t=n}for(e=0;e<5;e++)for(t=0;t<5;t++)c[e+5*t]=t+(2*e+3*t)%5*5;for(var i=1,o=0;o<24;o++){for(var s=0,h=0,d=0;d<7;d++){if(1&i){var f=(1< >>24)|4278255360&(o<<24|o>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),(E=r[i]).high^=a,E.low^=o}for(var s=0;s<24;s++){for(var d=0;d<5;d++){for(var f=0,p=0,m=0;m<5;m++)f^=(E=r[d+5*m]).high,p^=E.low;var v=h[d];v.high=f,v.low=p}for(d=0;d<5;d++){var g=h[(d+4)%5],_=h[(d+1)%5],w=_.high,b=_.low;for(f=g.high^(w<<1|b>>>31),p=g.low^(b<<1|w>>>31),m=0;m<5;m++)(E=r[d+5*m]).high^=f,E.low^=p}for(var y=1;y<25;y++){var S=(E=r[y]).high,k=E.low,C=l[y];C<32?(f=S< >>32-C,p=k< >>32-C):(f=k< >>64-C,p=S< >>64-C);var A=h[c[y]];A.high=f,A.low=p}var I=h[0],T=r[0];for(I.high=T.high,I.low=T.low,d=0;d<5;d++)for(m=0;m<5;m++){var E=r[y=d+5*m],R=h[y],L=h[(d+1)%5+5*m],M=h[(d+2)%5+5*m];E.high=R.high^~L.high&M.high,E.low=R.low^~L.low&M.low}E=r[0];var U=u[s];E.high^=U.high,E.low^=U.low}},_doFinalize:function(){var t=this._data,r=t.words,n=(this._nDataBytes,8*t.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(e.ceil((n+1)/o)*o>>>5)-1]|=128,t.sigBytes=4*r.length,this._process();for(var a=this._state,s=this.cfg.outputLength/8,l=s/8,c=[],u=0;u >>24)|4278255360&(d<<24|d>>>8),f=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8),c.push(f),c.push(d)}return new i.init(c,s)},clone:function(){for(var e=o.clone.call(this),t=e._state=this._state.slice(0),r=0;r<25;r++)t[r]=t[r].clone();return e}});t.SHA3=o._createHelper(d),t.HmacSHA3=o._createHmacHelper(d)}(Math),r.SHA3)})),qe((function(e,t){var r;e.exports=(r=Xe,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.algo,s=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),l=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),c=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),u=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),h=i.create([0,1518500249,1859775393,2400959708,2840853838]),d=i.create([1352829926,1548603684,1836072691,2053994217,0]),f=a.RIPEMD160=o.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,i=e[n];e[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o,a,f,b,y,S,k,C,A,I,T,E=this._hash.words,R=h.words,L=d.words,M=s.words,U=l.words,x=c.words,D=u.words;for(S=o=E[0],k=a=E[1],C=f=E[2],A=b=E[3],I=y=E[4],r=0;r<80;r+=1)T=o+e[t+M[r]]|0,T+=r<16?p(a,f,b)+R[0]:r<32?m(a,f,b)+R[1]:r<48?v(a,f,b)+R[2]:r<64?g(a,f,b)+R[3]:_(a,f,b)+R[4],T=(T=w(T|=0,x[r]))+y|0,o=y,y=b,b=w(f,10),f=a,a=T,T=S+e[t+U[r]]|0,T+=r<16?_(k,C,A)+L[0]:r<32?g(k,C,A)+L[1]:r<48?v(k,C,A)+L[2]:r<64?m(k,C,A)+L[3]:p(k,C,A)+L[4],T=(T=w(T|=0,D[r]))+I|0,S=I,I=A,A=w(C,10),C=k,k=T;T=E[1]+f+A|0,E[1]=E[2]+b+I|0,E[2]=E[3]+y+S|0,E[3]=E[4]+o+k|0,E[4]=E[0]+a+C|0,E[0]=T},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),e.sigBytes=4*(t.length+1),this._process();for(var i=this._hash,o=i.words,a=0;a<5;a++){var s=o[a];o[a]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return i},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function p(e,t,r){return e^t^r}function m(e,t,r){return e&t|~e&r}function v(e,t,r){return(e|~t)^r}function g(e,t,r){return e&r|t&~r}function _(e,t,r){return e^(t|~r)}function w(e,t){return e< >>32-t}t.RIPEMD160=o._createHelper(f),t.HmacRIPEMD160=o._createHmacHelper(f)}(),r.RIPEMD160)})),qe((function(e,t){var r,n,i,o,a,s;e.exports=(n=(r=Xe).lib,i=n.Base,o=r.enc,a=o.Utf8,s=r.algo,void(s.HMAC=i.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=a.parse(t));var r=e.blockSize,n=4*r;t.sigBytes>n&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),o=this._iKey=t.clone(),s=i.words,l=o.words,c=0;c >>2];e.sigBytes-=t}},o.BlockCipher=f.extend({cfg:f.cfg.extend({mode:v,padding:_}),reset:function(){f.reset.call(this);var e=this.cfg,t=e.iv,r=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=r.createEncryptor;else{n=r.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==n?this._mode.init(this,t&&t.words):(this._mode=n.call(r,this,t&&t.words),this._mode.__creator=n)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else{t=this._process(!0);e.unpad(t)}return t},blockSize:4}),w=o.CipherParams=a.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),b=i.format={},y=b.OpenSSL={stringify:function(e){var t=e.ciphertext,r=e.salt;if(r)var n=s.create([1398893684,1701076831]).concat(r).concat(t);else n=t;return n.toString(u)},parse:function(e){var t=u.parse(e),r=t.words;if(1398893684==r[0]&&1701076831==r[1]){var n=s.create(r.slice(2,4));r.splice(0,4),t.sigBytes-=16}return w.create({ciphertext:t,salt:n})}},S=o.SerializableCipher=a.extend({cfg:a.extend({format:y}),encrypt:function(e,t,r,n){n=this.cfg.extend(n);var i=e.createEncryptor(r,n),o=i.finalize(t),a=i.cfg;return w.create({ciphertext:o,key:r,iv:a.iv,algorithm:e,mode:a.mode,padding:a.padding,blockSize:e.blockSize,formatter:n.format})},decrypt:function(e,t,r,n){n=this.cfg.extend(n),t=this._parse(t,n.format);var i=e.createDecryptor(r,n).finalize(t.ciphertext);return i},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),k=i.kdf={},C=k.OpenSSL={execute:function(e,t,r,n){n||(n=s.random(8));var i=d.create({keySize:t+r}).compute(e,n),o=s.create(i.words.slice(t),4*r);return i.sigBytes=4*t,w.create({key:i,iv:o,salt:n})}},A=o.PasswordBasedCipher=S.extend({cfg:S.cfg.extend({kdf:C}),encrypt:function(e,t,r,n){var i=(n=this.cfg.extend(n)).kdf.execute(r,e.keySize,e.ivSize);n.iv=i.iv;var o=S.encrypt.call(this,e,t,i.key,n);return o.mixIn(i),o},decrypt:function(e,t,r,n){n=this.cfg.extend(n),t=this._parse(t,n.format);var i=n.kdf.execute(r,e.keySize,e.ivSize,t.salt);n.iv=i.iv;var o=S.decrypt.call(this,e,t,i.key,n);return o}})))})),qe((function(e,t){var r;e.exports=((r=Xe).mode.CFB=function(){var e=r.lib.BlockCipherMode.extend();function t(e,t,r,n){var i=this._iv;if(i){var o=i.slice(0);this._iv=void 0}else o=this._prevBlock;n.encryptBlock(o,0);for(var a=0;a >24&255)){var t=e>>16&255,r=e>>8&255,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}else e+=1<<24;return e}var n=e.Encryptor=e.extend({processBlock:function(e,r){var n=this._cipher,i=n.blockSize,o=this._iv,a=this._counter;o&&(a=this._counter=o.slice(0),this._iv=void 0),function(e){0===(e[0]=t(e[0]))&&(e[1]=t(e[1]))}(a);var s=a.slice(0);n.encryptBlock(s,0);for(var l=0;l>>2]|=i<<24-o%4*8,e.sigBytes+=i},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},r.pad.Ansix923)})),qe((function(e,t){var r;e.exports=((r=Xe).pad.Iso10126={pad:function(e,t){var n=4*t,i=n-e.sigBytes%n;e.concat(r.lib.WordArray.random(i-1)).concat(r.lib.WordArray.create([i<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},r.pad.Iso10126)})),qe((function(e,t){var r;e.exports=((r=Xe).pad.Iso97971={pad:function(e,t){e.concat(r.lib.WordArray.create([2147483648],1)),r.pad.ZeroPadding.pad(e,t)},unpad:function(e){r.pad.ZeroPadding.unpad(e),e.sigBytes--}},r.pad.Iso97971)})),qe((function(e,t){var r;e.exports=((r=Xe).pad.ZeroPadding={pad:function(e,t){var r=4*t;e.clamp(),e.sigBytes+=r-(e.sigBytes%r||r)},unpad:function(e){for(var t=e.words,r=e.sigBytes-1;!(t[r>>>2]>>>24-r%4*8&255);)r--;e.sigBytes=r+1}},r.pad.ZeroPadding)})),qe((function(e,t){var r;e.exports=((r=Xe).pad.NoPadding={pad:function(){},unpad:function(){}},r.pad.NoPadding)})),qe((function(e,t){var r,n,i,o;e.exports=(i=(n=r=Xe).lib.CipherParams,o=n.enc.Hex,n.format.Hex={stringify:function(e){return e.ciphertext.toString(o)},parse:function(e){var t=o.parse(e);return i.create({ciphertext:t})}},r.format.Hex)})),qe((function(e,t){var r;e.exports=(r=Xe,function(){var e=r,t=e.lib.BlockCipher,n=e.algo,i=[],o=[],a=[],s=[],l=[],c=[],u=[],h=[],d=[],f=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var r=0,n=0;for(t=0;t<256;t++){var p=n^n<<1^n<<2^n<<3^n<<4;p=p>>>8^255&p^99,i[r]=p,o[p]=r;var m=e[r],v=e[m],g=e[v],_=257*e[p]^16843008*p;a[r]=_<<24|_>>>8,s[r]=_<<16|_>>>16,l[r]=_<<8|_>>>24,c[r]=_,_=16843009*g^65537*v^257*m^16843008*r,u[p]=_<<24|_>>>8,h[p]=_<<16|_>>>16,d[p]=_<<8|_>>>24,f[p]=_,r?(r=m^e[e[e[g^m]]],n^=e[e[n]]):r=n=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],m=n.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,r=e.sigBytes/4,n=4*((this._nRounds=r+6)+1),o=this._keySchedule=[],a=0;a 6&&a%r==4&&(s=i[s>>>24]<<24|i[s>>>16&255]<<16|i[s>>>8&255]<<8|i[255&s]):(s=i[(s=s<<8|s>>>24)>>>24]<<24|i[s>>>16&255]<<16|i[s>>>8&255]<<8|i[255&s],s^=p[a/r|0]<<24),o[a]=o[a-r]^s}for(var l=this._invKeySchedule=[],c=0;c >>24]]^h[i[s>>>16&255]]^d[i[s>>>8&255]]^f[i[255&s]]}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,a,s,l,c,i)},decryptBlock:function(e,t){var r=e[t+1];e[t+1]=e[t+3],e[t+3]=r,this._doCryptBlock(e,t,this._invKeySchedule,u,h,d,f,o),r=e[t+1],e[t+1]=e[t+3],e[t+3]=r},_doCryptBlock:function(e,t,r,n,i,o,a,s){for(var l=this._nRounds,c=e[t]^r[0],u=e[t+1]^r[1],h=e[t+2]^r[2],d=e[t+3]^r[3],f=4,p=1;p >>24]^i[u>>>16&255]^o[h>>>8&255]^a[255&d]^r[f++],v=n[u>>>24]^i[h>>>16&255]^o[d>>>8&255]^a[255&c]^r[f++],g=n[h>>>24]^i[d>>>16&255]^o[c>>>8&255]^a[255&u]^r[f++],_=n[d>>>24]^i[c>>>16&255]^o[u>>>8&255]^a[255&h]^r[f++];c=m,u=v,h=g,d=_}m=(s[c>>>24]<<24|s[u>>>16&255]<<16|s[h>>>8&255]<<8|s[255&d])^r[f++],v=(s[u>>>24]<<24|s[h>>>16&255]<<16|s[d>>>8&255]<<8|s[255&c])^r[f++],g=(s[h>>>24]<<24|s[d>>>16&255]<<16|s[c>>>8&255]<<8|s[255&u])^r[f++],_=(s[d>>>24]<<24|s[c>>>16&255]<<16|s[u>>>8&255]<<8|s[255&h])^r[f++],e[t]=m,e[t+1]=v,e[t+2]=g,e[t+3]=_},keySize:8});e.AES=t._createHelper(m)}(),r.AES)})),qe((function(e,t){var r;e.exports=(r=Xe,function(){var e=r,t=e.lib,n=t.WordArray,i=t.BlockCipher,o=e.algo,a=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],l=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],c=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],u=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],h=o.DES=i.extend({_doReset:function(){for(var e=this._key.words,t=[],r=0;r<56;r++){var n=a[r]-1;t[r]=e[n>>>5]>>>31-n%32&1}for(var i=this._subKeys=[],o=0;o<16;o++){var c=i[o]=[],u=l[o];for(r=0;r<24;r++)c[r/6|0]|=t[(s[r]-1+u)%28]<<31-r%6,c[4+(r/6|0)]|=t[28+(s[r+24]-1+u)%28]<<31-r%6;for(c[0]=c[0]<<1|c[0]>>>31,r=1;r<7;r++)c[r]=c[r]>>>4*(r-1)+3;c[7]=c[7]<<5|c[7]>>>27}var h=this._invSubKeys=[];for(r=0;r<16;r++)h[r]=i[15-r]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(e,t,r){this._lBlock=e[t],this._rBlock=e[t+1],d.call(this,4,252645135),d.call(this,16,65535),f.call(this,2,858993459),f.call(this,8,16711935),d.call(this,1,1431655765);for(var n=0;n<16;n++){for(var i=r[n],o=this._lBlock,a=this._rBlock,s=0,l=0;l<8;l++)s|=c[l][((a^i[l])&u[l])>>>0];this._lBlock=a,this._rBlock=o^s}var h=this._lBlock;this._lBlock=this._rBlock,this._rBlock=h,d.call(this,1,1431655765),f.call(this,8,16711935),f.call(this,2,858993459),d.call(this,16,65535),d.call(this,4,252645135),e[t]=this._lBlock,e[t+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function d(e,t){var r=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=r,this._lBlock^=r< >>e^this._lBlock)&t;this._lBlock^=r,this._rBlock^=r< >>2]>>>24-a%4*8&255;o=(o+n[i]+s)%256;var l=n[i];n[i]=n[o],n[o]=l}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=o.call(this)},keySize:8,ivSize:0});function o(){for(var e=this._S,t=this._i,r=this._j,n=0,i=0;i<4;i++){r=(r+e[t=(t+1)%256])%256;var o=e[t];e[t]=e[r],e[r]=o,n|=e[(e[t]+e[r])%256]<<24-8*i}return this._i=t,this._j=r,n}e.RC4=t._createHelper(i);var a=n.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)o.call(this)}});e.RC4Drop=t._createHelper(a)}(),r.RC4)})),qe((function(e,t){var r;e.exports=(r=Xe,function(){var e=r,t=e.lib.StreamCipher,n=e.algo,i=[],o=[],a=[],s=n.Rabbit=t.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,r=0;r<4;r++)e[r]=16711935&(e[r]<<8|e[r]>>>24)|4278255360&(e[r]<<24|e[r]>>>8);var n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],i=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,r=0;r<4;r++)l.call(this);for(r=0;r<8;r++)i[r]^=n[r+4&7];if(t){var o=t.words,a=o[0],s=o[1],c=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),u=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=c>>>16|4294901760&u,d=u<<16|65535&c;for(i[0]^=c,i[1]^=h,i[2]^=u,i[3]^=d,i[4]^=c,i[5]^=h,i[6]^=u,i[7]^=d,r=0;r<4;r++)l.call(this)}},_doProcessBlock:function(e,t){var r=this._X;l.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),e[t+n]^=i[n]},blockSize:4,ivSize:2});function l(){for(var e=this._X,t=this._C,r=0;r<8;r++)o[r]=t[r];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0 >>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0 >>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0 >>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0 >>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0 >>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0 >>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0 >>0?1:0)|0,this._b=t[7]>>>0 >>0?1:0,r=0;r<8;r++){var n=e[r]+t[r],i=65535&n,s=n>>>16,l=((i*i>>>17)+i*s>>>15)+s*s,c=((4294901760&n)*n|0)+((65535&n)*n|0);a[r]=l^c}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.Rabbit=t._createHelper(s)}(),r.Rabbit)})),qe((function(e,t){var r;e.exports=(r=Xe,function(){var e=r,t=e.lib.StreamCipher,n=e.algo,i=[],o=[],a=[],s=n.RabbitLegacy=t.extend({_doReset:function(){var e=this._key.words,t=this.cfg.iv,r=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],n=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var i=0;i<4;i++)l.call(this);for(i=0;i<8;i++)n[i]^=r[i+4&7];if(t){var o=t.words,a=o[0],s=o[1],c=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),u=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=c>>>16|4294901760&u,d=u<<16|65535&c;for(n[0]^=c,n[1]^=h,n[2]^=u,n[3]^=d,n[4]^=c,n[5]^=h,n[6]^=u,n[7]^=d,i=0;i<4;i++)l.call(this)}},_doProcessBlock:function(e,t){var r=this._X;l.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),e[t+n]^=i[n]},blockSize:4,ivSize:2});function l(){for(var e=this._X,t=this._C,r=0;r<8;r++)o[r]=t[r];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0 >>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0 >>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0 >>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0 >>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0 >>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0 >>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0 >>0?1:0)|0,this._b=t[7]>>>0 >>0?1:0,r=0;r<8;r++){var n=e[r]+t[r],i=65535&n,s=n>>>16,l=((i*i>>>17)+i*s>>>15)+s*s,c=((4294901760&n)*n|0)+((65535&n)*n|0);a[r]=l^c}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.RabbitLegacy=t._createHelper(s)}(),r.RabbitLegacy)})),qe((function(e,t){e.exports=Xe})));function $e(){throw new Error("setTimeout has not been defined")}function et(){throw new Error("clearTimeout has not been defined")}var tt=$e,rt=et;function nt(e){if(tt===setTimeout)return setTimeout(e,0);if((tt===$e||!tt)&&setTimeout)return tt=setTimeout,setTimeout(e,0);try{return tt(e,0)}catch(J){try{return tt.call(null,e,0)}catch(J){return tt.call(this,e,0)}}}"function"==typeof X.setTimeout&&(tt=setTimeout),"function"==typeof X.clearTimeout&&(rt=clearTimeout);var it,ot=[],at=!1,st=-1;function lt(){at&&it&&(at=!1,it.length?ot=it.concat(ot):st=-1,ot.length&&ct())}function ct(){if(!at){var e=nt(lt);at=!0;for(var t=ot.length;t;){for(it=ot,ot=[];++st 1)for(var r=1;r 0&&a.length>i){a.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=a.length,s=l,"function"==typeof console.warn?console.warn(s):console.log(s)}}else a=o[t]=r,++e._eventsCount;return e}function St(e,t,r){var n=!1;function i(){e.removeListener(t,i),n||(n=!0,r.apply(e,arguments))}return i.listener=r,i}function kt(e){var t=this._events;if(t){var r=t[e];if("function"==typeof r)return 1;if(r)return r.length}return 0}function Ct(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}dt.now||dt.mozNow||dt.msNow||dt.oNow||dt.webkitNow,ft.prototype=Object.create(null),pt.EventEmitter=pt,pt.usingDomains=!1,pt.prototype.domain=void 0,pt.prototype._events=void 0,pt.prototype._maxListeners=void 0,pt.defaultMaxListeners=10,pt.init=function(){this.domain=null,pt.usingDomains&&(void 0).active&&(void 0).Domain,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new ft,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},pt.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},pt.prototype.getMaxListeners=function(){return mt(this)},pt.prototype.emit=function(e){var t,r,n,i,o,a,s,l="error"===e;if(a=this._events)l=l&&null==a.error;else if(!l)return!1;if(s=this.domain,l){if(t=arguments[1],!s){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=s,t.domainThrown=!1,s.emit("error",t),!1}if(!(r=a[e]))return!1;var u="function"==typeof r;switch(n=arguments.length){case 1:vt(r,u,this);break;case 2:gt(r,u,this,arguments[1]);break;case 3:_t(r,u,this,arguments[1],arguments[2]);break;case 4:wt(r,u,this,arguments[1],arguments[2],arguments[3]);break;default:for(i=new Array(n-1),o=1;o 0;)if(r[o]===t||r[o].listener&&r[o].listener===t){a=r[o].listener,i=o;break}if(i<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new ft,this;delete n[e]}else!function(e,t){for(var r=t,n=r+1,i=e.length;n0?Reflect.ownKeys(this._events):[]};var At="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e},It=/%[sdj%]/g;function Tt(e){if(!zt(e)){for(var t=[],r=0;r =i)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),a=n[r];r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),Bt(t)?r.showHidden=t:t&&function(e,t){if(!t||!Vt(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]]}(r,t),Ft(r.showHidden)&&(r.showHidden=!1),Ft(r.depth)&&(r.depth=2),Ft(r.colors)&&(r.colors=!1),Ft(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=Ut),Dt(r,e,r.depth)}function Ut(e,t){var r=Mt.styles[t];return r?"["+Mt.colors[r][0]+"m"+e+"["+Mt.colors[r][1]+"m":e}function xt(e,t){return e}function Dt(e,t,r){if(e.customInspect&&t&&Gt(t.inspect)&&t.inspect!==Mt&&(!t.constructor||t.constructor.prototype!==t)){var n=t.inspect(r,e);return zt(n)||(n=Dt(e,n,r)),n}var i=function(e,t){if(Ft(t))return e.stylize("undefined","undefined");if(zt(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return n=t,"number"==typeof n?e.stylize(""+t,"number"):Bt(t)?e.stylize(""+t,"boolean"):Pt(t)?e.stylize("null","null"):void 0;var n}(e,t);if(i)return i;var o=Object.keys(t),a=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),Ht(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return Ot(t);if(0===o.length){if(Gt(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(Zt(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(jt(t))return e.stylize(Date.prototype.toString.call(t),"date");if(Ht(t))return Ot(t)}var l,c,u="",h=!1,d=["{","}"];return l=t,Array.isArray(l)&&(h=!0,d=["[","]"]),Gt(t)&&(u=" [Function"+(t.name?": "+t.name:"")+"]"),Zt(t)&&(u=" "+RegExp.prototype.toString.call(t)),jt(t)&&(u=" "+Date.prototype.toUTCString.call(t)),Ht(t)&&(u=" "+Ot(t)),0!==o.length||h&&0!=t.length?r<0?Zt(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),c=h?function(e,t,r,n,i){for(var o=[],a=0,s=t.length;a 60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}(c,u,d)):d[0]+u+d[1]}function Ot(e){return"["+Error.prototype.toString.call(e)+"]"}function Nt(e,t,r,n,i,o){var a,s,l;if((l=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?s=l.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):l.set&&(s=e.stylize("[Setter]","special")),Wt(n,i)||(a="["+i+"]"),s||(e.seen.indexOf(l.value)<0?(s=Pt(r)?Dt(e,l.value,null):Dt(e,l.value,r-1)).indexOf("\n")>-1&&(s=o?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),Ft(a)){if(o&&i.match(/^\d+$/))return s;(a=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function Bt(e){return"boolean"==typeof e}function Pt(e){return null===e}function zt(e){return"string"==typeof e}function Ft(e){return void 0===e}function Zt(e){return Vt(e)&&"[object RegExp]"===Yt(e)}function Vt(e){return"object"==typeof e&&null!==e}function jt(e){return Vt(e)&&"[object Date]"===Yt(e)}function Ht(e){return Vt(e)&&("[object Error]"===Yt(e)||e instanceof Error)}function Gt(e){return"function"==typeof e}function Yt(e){return Object.prototype.toString.call(e)}function Wt(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Qt(){this.head=null,this.tail=null,this.length=0}Mt.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},Mt.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},Qt.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},Qt.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},Qt.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},Qt.prototype.clear=function(){this.head=this.tail=null,this.length=0},Qt.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},Qt.prototype.concat=function(e){if(0===this.length)return he.alloc(0);if(1===this.length)return this.head.data;for(var t=he.allocUnsafe(e>>>0),r=this.head,n=0;r;)r.data.copy(t,n),n+=r.data.length,r=r.next;return t};var Kt=he.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function qt(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),function(e){if(e&&!Kt(e))throw new Error("Unknown encoding: "+e)}(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=Jt;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=$t;break;default:return void(this.write=Xt)}this.charBuffer=new he(6),this.charReceived=0,this.charLength=0}function Xt(e){return e.toString(this.encoding)}function Jt(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function $t(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}qt.prototype.write=function(e){for(var t="";this.charLength;){var r=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived=55296&&n<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var n,i=e.length;if(this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,i),i-=this.charReceived),i=(t+=e.toString(this.encoding,0,i)).length-1,(n=t.charCodeAt(i))>=55296&&n<=56319){var o=this.surrogateSize;return this.charLength+=o,this.charReceived+=o,this.charBuffer.copy(this.charBuffer,o,0,o),e.copy(this.charBuffer,0,0,o),t.substring(0,i)}return t},qt.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var r=e[e.length-t];if(1==t&&r>>5==6){this.charLength=2;break}if(t<=2&&r>>4==14){this.charLength=3;break}if(t<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=t},qt.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var r=this.charReceived,n=this.charBuffer,i=this.encoding;t+=n.slice(0,r).toString(i)}return t},rr.ReadableState=tr;var er=function(e){return Ft(Rt)&&(Rt=""),e=e.toUpperCase(),Lt[e]||(new RegExp("\\b"+e+"\\b","i").test(Rt)?Lt[e]=function(){var t=Tt.apply(null,arguments);console.error("%s %d: %s",e,0,t)}:Lt[e]=function(){}),Lt[e]}("stream");function tr(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof Lr&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark,n=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:n,this.highWaterMark=~~this.highWaterMark,this.buffer=new Qt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new qt(e.encoding),this.encoding=e.encoding)}function rr(e){if(!(this instanceof rr))return new rr(e);this._readableState=new tr(e,this),this.readable=!0,e&&"function"==typeof e.read&&(this._read=e.read),pt.call(this)}function nr(e,t,r,n,i){var o=function(e,t){var r=null;return Qe(t)||"string"==typeof t||null==t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk")),r}(t,r);if(o)e.emit("error",o);else if(null===r)t.reading=!1,function(e,t){if(!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,ar(e)}}(e,t);else if(t.objectMode||r&&r.length>0)if(t.ended&&!i){var a=new Error("stream.push() after EOF");e.emit("error",a)}else if(t.endEmitted&&i){var s=new Error("stream.unshift() after end event");e.emit("error",s)}else{var l;!t.decoder||i||n||(r=t.decoder.write(r),l=!t.objectMode&&0===r.length),i||(t.reading=!1),l||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,i?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&ar(e))),function(e,t){t.readingMore||(t.readingMore=!0,ut(lr,e,t))}(e,t)}else i||(t.reading=!1);return function(e){return!e.ended&&(e.needReadable||e.length t.highWaterMark&&(t.highWaterMark=function(e){return e>=ir?e=ir:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function ar(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(er("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?ut(sr,e):sr(e))}function sr(e){er("emit readable"),e.emit("readable"),hr(e)}function lr(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length =t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;return e o.length?o.length:e;if(a===o.length?i+=o:i+=o.slice(0,e),0===(e-=a)){a===o.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=o.slice(a));break}++n}return t.length-=n,i}(e,t):function(e,t){var r=he.allocUnsafe(e),n=t.head,i=1;for(n.data.copy(r),e-=n.data.length;n=n.next;){var o=n.data,a=e>o.length?o.length:e;if(o.copy(r,r.length-e,0,a),0===(e-=a)){a===o.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=o.slice(a));break}++i}return t.length-=i,r}(e,t),n}(e,t.buffer,t.decoder),r);var r}function fr(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,ut(pr,t,e))}function pr(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function mr(e,t){for(var r=0,n=e.length;r =t.highWaterMark||t.ended))return er("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?fr(this):ar(this),null;if(0===(e=or(e,t))&&t.ended)return 0===t.length&&fr(this),null;var n,i=t.needReadable;return er("need readable",i),(0===t.length||t.length-e 0?dr(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&fr(this)),null!==n&&this.emit("data",n),n},rr.prototype._read=function(e){this.emit("error",new Error("not implemented"))},rr.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,er("pipe count=%d opts=%j",n.pipesCount,t);var i=t&&!1===t.end?c:a;function o(e){er("onunpipe"),e===r&&c()}function a(){er("onend"),e.end()}n.endEmitted?ut(i):r.once("end",i),e.on("unpipe",o);var s=function(e){return function(){var t=e._readableState;er("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&e.listeners("data").length&&(t.flowing=!0,hr(e))}}(r);e.on("drain",s);var l=!1;function c(){er("cleanup"),e.removeListener("close",f),e.removeListener("finish",p),e.removeListener("drain",s),e.removeListener("error",d),e.removeListener("unpipe",o),r.removeListener("end",a),r.removeListener("end",c),r.removeListener("data",h),l=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||s()}var u=!1;function h(t){er("ondata"),u=!1,!1!==e.write(t)||u||((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==mr(n.pipes,e))&&!l&&(er("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,u=!0),r.pause())}function d(t){var r;er("onerror",t),m(),e.removeListener("error",d),0===(r="error",e.listeners(r).length)&&e.emit("error",t)}function f(){e.removeListener("finish",p),m()}function p(){er("onfinish"),e.removeListener("close",f),m()}function m(){er("unpipe"),r.unpipe(e)}return r.on("data",h),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",d),e.once("close",f),e.once("finish",p),e.emit("pipe",r),n.flowing||(er("pipe resume"),r.resume()),e},rr.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this)),this;if(!e){var r=t.pipes,n=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i -1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},wr.prototype._write=function(e,t,r){r(new Error("not implemented"))},wr.prototype._writev=null,wr.prototype.end=function(e,t,r){var n=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(e,t,r){t.ending=!0,Ar(e,t),r&&(t.finished?ut(r):e.once("finish",r)),t.ended=!0,e.writable=!1}(this,n,r)},At(Lr,rr);for(var Tr=Object.keys(wr.prototype),Er=0;Er =0;)e[t]=0}var Kr=0,qr=1,Xr=2,Jr=29,$r=256,en=$r+1+Jr,tn=30,rn=19,nn=2*en+1,on=15,an=16,sn=7,ln=256,cn=16,un=17,hn=18,dn=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],fn=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],pn=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],mn=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],vn=new Array(2*(en+2));Qr(vn);var gn=new Array(2*tn);Qr(gn);var _n=new Array(512);Qr(_n);var wn=new Array(256);Qr(wn);var bn=new Array(Jr);Qr(bn);var yn,Sn,kn,Cn=new Array(tn);function An(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}function In(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Tn(e){return e<256?_n[e]:_n[256+(e>>>7)]}function En(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function Rn(e,t,r){e.bi_valid>an-r?(e.bi_buf|=t< >an-e.bi_valid,e.bi_valid+=r-an):(e.bi_buf|=t< >>=1,r<<=1}while(--t>0);return r>>>1}function Un(e,t,r){var n,i,o=new Array(on+1),a=0;for(n=1;n<=on;n++)o[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var s=e[2*i+1];0!==s&&(e[2*i]=Mn(o[s]++,s))}}function xn(e){var t;for(t=0;t 8?En(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function On(e,t,r,n){var i=2*t,o=2*r;return e[i] >1;r>=1;r--)Nn(e,o,r);i=l;do{r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Nn(e,o,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,o[2*i]=o[2*r]+o[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,o[2*r+1]=o[2*n+1]=i,e.heap[1]=i++,Nn(e,o,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,o,a,s,l=t.dyn_tree,c=t.max_code,u=t.stat_desc.static_tree,h=t.stat_desc.has_stree,d=t.stat_desc.extra_bits,f=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(o=0;o<=on;o++)e.bl_count[o]=0;for(l[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r p&&(o=p,m++),l[2*n+1]=o,n>c||(e.bl_count[o]++,a=0,n>=f&&(a=d[n-f]),s=l[2*n],e.opt_len+=s*(o+a),h&&(e.static_len+=s*(u[2*n+1]+a)));if(0!==m){do{for(o=p-1;0===e.bl_count[o];)o--;e.bl_count[o]--,e.bl_count[o+1]+=2,e.bl_count[p]--,m-=2}while(m>0);for(o=p;0!==o;o--)for(n=e.bl_count[o];0!==n;)(i=e.heap[--r])>c||(l[2*i+1]!==o&&(e.opt_len+=(o-l[2*i+1])*l[2*i],l[2*i+1]=o),n--)}}(e,t),Un(o,c,e.bl_count)}function zn(e,t,r){var n,i,o=-1,a=t[1],s=0,l=7,c=4;for(0===a&&(l=138,c=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++s >=7;n =8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}function Gn(e,t,r,n){var i,o,a=0;e.level>0?(e.strm.data_type===Wr&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return Gr;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return Yr;for(t=32;t<$r;t++)if(0!==e.dyn_ltree[2*t])return Yr;return Gr}(e)),Pn(e,e.l_desc),Pn(e,e.d_desc),a=function(e){var t;for(zn(e,e.dyn_ltree,e.l_desc.max_code),zn(e,e.dyn_dtree,e.d_desc.max_code),Pn(e,e.bl_desc),t=rn-1;t>=3&&0===e.bl_tree[2*mn[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(o=e.static_len+3+7>>>3)<=i&&(i=o)):i=o=r+5,r+4<=i&&-1!==t?jn(e,t,r,n):e.strategy===Hr||o===i?(Rn(e,(qr<<1)+(n?1:0),3),Bn(e,vn,gn)):(Rn(e,(Xr<<1)+(n?1:0),3),function(e,t,r,n){var i;for(Rn(e,t-257,5),Rn(e,r-1,5),Rn(e,n-4,4),i=0;i >>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(wn[r]+$r+1)]++,e.dyn_dtree[2*Tn(t)]++),e.last_lit===e.lit_bufsize-1}function Wn(e,t,r,n){for(var i=65535&e|0,o=e>>>16&65535|0,a=0;0!==r;){r-=a=r>2e3?2e3:r;do{o=o+(i=i+t[n++]|0)|0}while(--a);i%=65521,o%=65521}return i|o<<16|0}var Qn=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();function Kn(e,t,r,n){var i=Qn,o=n+r;e^=-1;for(var a=n;a >>8^i[255&(e^t[a])];return-1^e}var qn,Xn=0,Jn=1,$n=3,ei=4,ti=5,ri=0,ni=1,ii=-2,oi=-3,ai=-5,si=-1,li=1,ci=2,ui=3,hi=4,di=2,fi=8,pi=9,mi=286,vi=30,gi=19,_i=2*mi+1,wi=15,bi=3,yi=258,Si=yi+bi+1,ki=32,Ci=42,Ai=69,Ii=73,Ti=91,Ei=103,Ri=113,Li=666,Mi=1,Ui=2,xi=3,Di=4,Oi=3;function Ni(e,t){return e.msg=Pr[t],t}function Bi(e){return(e<<1)-(e>4?9:0)}function Pi(e){for(var t=e.length;--t>=0;)e[t]=0}function zi(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(Fr(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function Fi(e,t){Gn(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,zi(e.strm)}function Zi(e,t){e.pending_buf[e.pending++]=t}function Vi(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function ji(e,t){var r,n,i=e.max_chain_length,o=e.strstart,a=e.prev_length,s=e.nice_match,l=e.strstart>e.w_size-Si?e.strstart-(e.w_size-Si):0,c=e.window,u=e.w_mask,h=e.prev,d=e.strstart+yi,f=c[o+a-1],p=c[o+a];e.prev_length>=e.good_match&&(i>>=2),s>e.lookahead&&(s=e.lookahead);do{if(c[(r=t)+a]===p&&c[r+a-1]===f&&c[r]===c[o]&&c[++r]===c[o+1]){o+=2,r++;do{}while(c[++o]===c[++r]&&c[++o]===c[++r]&&c[++o]===c[++r]&&c[++o]===c[++r]&&c[++o]===c[++r]&&c[++o]===c[++r]&&c[++o]===c[++r]&&c[++o]===c[++r]&&o a){if(e.match_start=t,a=n,n>=s)break;f=c[o+a-1],p=c[o+a]}}}while((t=h[t&u])>l&&0!=--i);return a<=e.lookahead?a:e.lookahead}function Hi(e){var t,r,n,i,o,a,s,l,c,u,h=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=h+(h-Si)){Fr(e.window,e.window,h,h,0),e.match_start-=h,e.strstart-=h,e.block_start-=h,t=r=e.hash_size;do{n=e.head[--t],e.head[t]=n>=h?n-h:0}while(--r);t=r=h;do{n=e.prev[--t],e.prev[t]=n>=h?n-h:0}while(--r);i+=h}if(0===e.strm.avail_in)break;if(a=e.strm,s=e.window,l=e.strstart+e.lookahead,c=i,u=void 0,(u=a.avail_in)>c&&(u=c),r=0===u?0:(a.avail_in-=u,Fr(s,a.input,a.next_in,u,l),1===a.state.wrap?a.adler=Wn(a.adler,s,u,l):2===a.state.wrap&&(a.adler=Kn(a.adler,s,u,l)),a.next_in+=u,a.total_in+=u,u),e.lookahead+=r,e.lookahead+e.insert>=bi)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h< =bi&&(e.ins_h=(e.ins_h< =bi)if(n=Yn(e,e.strstart-e.match_start,e.match_length-bi),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=bi){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h< =bi&&(e.ins_h=(e.ins_h< 4096)&&(e.match_length=bi-1)),e.prev_length>=bi&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-bi,n=Yn(e,e.strstart-1-e.prev_match,e.prev_length-bi),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=i&&(e.ins_h=(e.ins_h< ti||t<0)return e?Ni(e,ii):ii;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||n.status===Li&&t!==ei)return Ni(e,0===e.avail_out?ai:ii);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===Ci)if(2===n.wrap)e.adler=0,Zi(n,31),Zi(n,139),Zi(n,8),n.gzhead?(Zi(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Zi(n,255&n.gzhead.time),Zi(n,n.gzhead.time>>8&255),Zi(n,n.gzhead.time>>16&255),Zi(n,n.gzhead.time>>24&255),Zi(n,9===n.level?2:n.strategy>=ci||n.level<2?4:0),Zi(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(Zi(n,255&n.gzhead.extra.length),Zi(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=Kn(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Ai):(Zi(n,0),Zi(n,0),Zi(n,0),Zi(n,0),Zi(n,0),Zi(n,9===n.level?2:n.strategy>=ci||n.level<2?4:0),Zi(n,Oi),n.status=Ri);else{var a=fi+(n.w_bits-8<<4)<<8;a|=(n.strategy>=ci||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=ki),a+=31-a%31,n.status=Ri,Vi(n,a),0!==n.strstart&&(Vi(n,e.adler>>>16),Vi(n,65535&e.adler)),e.adler=1}if(n.status===Ai)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=Kn(e.adler,n.pending_buf,n.pending-i,i)),zi(e),i=n.pending,n.pending!==n.pending_buf_size));)Zi(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=Kn(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=Ii)}else n.status=Ii;if(n.status===Ii)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=Kn(e.adler,n.pending_buf,n.pending-i,i)),zi(e),i=n.pending,n.pending===n.pending_buf_size)){o=1;break}o=n.gzindex i&&(e.adler=Kn(e.adler,n.pending_buf,n.pending-i,i)),0===o&&(n.gzindex=0,n.status=Ti)}else n.status=Ti;if(n.status===Ti)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=Kn(e.adler,n.pending_buf,n.pending-i,i)),zi(e),i=n.pending,n.pending===n.pending_buf_size)){o=1;break}o=n.gzindex i&&(e.adler=Kn(e.adler,n.pending_buf,n.pending-i,i)),0===o&&(n.status=Ei)}else n.status=Ei;if(n.status===Ei&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&zi(e),n.pending+2<=n.pending_buf_size&&(Zi(n,255&e.adler),Zi(n,e.adler>>8&255),e.adler=0,n.status=Ri)):n.status=Ri),0!==n.pending){if(zi(e),0===e.avail_out)return n.last_flush=-1,ri}else if(0===e.avail_in&&Bi(t)<=Bi(r)&&t!==ei)return Ni(e,ai);if(n.status===Li&&0!==e.avail_in)return Ni(e,ai);if(0!==e.avail_in||0!==n.lookahead||t!==Xn&&n.status!==Li){var s=n.strategy===ci?function(e,t){for(var r;;){if(0===e.lookahead&&(Hi(e),0===e.lookahead)){if(t===Xn)return Mi;break}if(e.match_length=0,r=Yn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(Fi(e,!1),0===e.strm.avail_out))return Mi}return e.insert=0,t===ei?(Fi(e,!0),0===e.strm.avail_out?xi:Di):e.last_lit&&(Fi(e,!1),0===e.strm.avail_out)?Mi:Ui}(n,t):n.strategy===ui?function(e,t){for(var r,n,i,o,a=e.window;;){if(e.lookahead<=yi){if(Hi(e),e.lookahead<=yi&&t===Xn)return Mi;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=bi&&e.strstart>0&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){o=e.strstart+yi;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&i e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=bi?(r=Yn(e,1,e.match_length-bi),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=Yn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(Fi(e,!1),0===e.strm.avail_out))return Mi}return e.insert=0,t===ei?(Fi(e,!0),0===e.strm.avail_out?xi:Di):e.last_lit&&(Fi(e,!1),0===e.strm.avail_out)?Mi:Ui}(n,t):qn[n.level].func(n,t);if(s!==xi&&s!==Di||(n.status=Li),s===Mi||s===xi)return 0===e.avail_out&&(n.last_flush=-1),ri;if(s===Ui&&(t===Jn?Hn(n):t!==ti&&(jn(n,0,0,!1),t===$n&&(Pi(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),zi(e),0===e.avail_out))return n.last_flush=-1,ri}return t!==ei?ri:n.wrap<=0?ni:(2===n.wrap?(Zi(n,255&e.adler),Zi(n,e.adler>>8&255),Zi(n,e.adler>>16&255),Zi(n,e.adler>>24&255),Zi(n,255&e.total_in),Zi(n,e.total_in>>8&255),Zi(n,e.total_in>>16&255),Zi(n,e.total_in>>24&255)):(Vi(n,e.adler>>>16),Vi(n,65535&e.adler)),zi(e),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?ri:ni)}qn=[new Wi(0,0,0,0,(function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Hi(e),0===e.lookahead&&t===Xn)return Mi;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,Fi(e,!1),0===e.strm.avail_out))return Mi;if(e.strstart-e.block_start>=e.w_size-Si&&(Fi(e,!1),0===e.strm.avail_out))return Mi}return e.insert=0,t===ei?(Fi(e,!0),0===e.strm.avail_out?xi:Di):(e.strstart>e.block_start&&(Fi(e,!1),e.strm.avail_out),Mi)})),new Wi(4,4,8,4,Gi),new Wi(4,5,16,8,Gi),new Wi(4,6,32,32,Gi),new Wi(4,4,16,16,Yi),new Wi(8,16,32,32,Yi),new Wi(8,16,128,128,Yi),new Wi(8,32,128,256,Yi),new Wi(32,128,258,1024,Yi),new Wi(32,258,258,4096,Yi)];var Xi=30,Ji=12;function $i(e,t){var r,n,i,o,a,s,l,c,u,h,d,f,p,m,v,g,_,w,b,y,S,k,C,A,I;r=e.state,n=e.next_in,A=e.input,i=n+(e.avail_in-5),o=e.next_out,I=e.output,a=o-(t-e.avail_out),s=o+(e.avail_out-257),l=r.dmax,c=r.wsize,u=r.whave,h=r.wnext,d=r.window,f=r.hold,p=r.bits,m=r.lencode,v=r.distcode,g=(1< >>=b=w>>>24,p-=b,0===(b=w>>>16&255))I[o++]=65535&w;else{if(!(16&b)){if(0==(64&b)){w=m[(65535&w)+(f&(1<>>=b,p-=b),p<15&&(f+=A[n++]< >>=b=w>>>24,p-=b,!(16&(b=w>>>16&255))){if(0==(64&b)){w=v[(65535&w)+(f&(1<l){e.msg="invalid distance too far back",r.mode=Xi;break e}if(f>>>=b,p-=b,S>(b=o-a)){if((b=S-b)>u&&r.sane){e.msg="invalid distance too far back",r.mode=Xi;break e}if(k=0,C=d,0===h){if(k+=c-b,b
2;)I[o++]=C[k++],I[o++]=C[k++],I[o++]=C[k++],y-=3;y&&(I[o++]=C[k++],y>1&&(I[o++]=C[k++]))}else{k=o-S;do{I[o++]=I[k++],I[o++]=I[k++],I[o++]=I[k++],y-=3}while(y>2);y&&(I[o++]=I[k++],y>1&&(I[o++]=I[k++]))}break}}break}}while(n>3,f&=(1<<(p-=y<<3))-1,e.next_in=n,e.next_out=o,e.avail_in=n=1&&0===L[y];y--);if(S>y&&(S=y),0===y)return i[o++]=20971520,i[o++]=20971520,s.bits=1,0;for(b=1;b 0&&(e===no||1!==y))return-1;for(M[1]=0,_=1;_ to||e===oo&&I>ro)return 1;for(;;){p=_-C,a[w] f?(m=U[x+a[w]],v=E[R+a[w]]):(m=96,v=0),l=1<<_-C,b=c=1< >C)+(c-=l)]=p<<24|m<<16|v|0}while(0!==c);for(l=1<<_-1;T&l;)l>>=1;if(0!==l?(T&=l-1,T+=l):T=0,w++,0==--L[_]){if(_===y)break;_=t[r+a[w]]}if(_>S&&(T&h)!==u){for(0===C&&(C=S),d+=b,A=1<<(k=_-C);k+C to||e===oo&&I>ro)return 1;i[u=T&h]=S<<24|k<<16|d-o|0}}return 0!==T&&(i[d+T]=_-C<<24|64<<16|0),s.bits=S,0}var ho=0,fo=1,po=2,mo=4,vo=5,go=6,_o=0,wo=1,bo=2,yo=-2,So=-3,ko=-4,Co=-5,Ao=8,Io=1,To=2,Eo=3,Ro=4,Lo=5,Mo=6,Uo=7,xo=8,Do=9,Oo=10,No=11,Bo=12,Po=13,zo=14,Fo=15,Zo=16,Vo=17,jo=18,Ho=19,Go=20,Yo=21,Wo=22,Qo=23,Ko=24,qo=25,Xo=26,Jo=27,$o=28,ea=29,ta=30,ra=31,na=32,ia=852,oa=592;function aa(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function sa(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Vr(320),this.work=new Vr(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function la(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,function(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Io,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new jr(ia),t.distcode=t.distdyn=new jr(oa),t.sane=1,t.back=-1,_o):yo}(e)):yo}function ca(e,t){var r,n;return e?(n=new sa,e.state=n,n.window=null,(r=function(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?yo:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,la(e))):yo}(e,t))!==_o&&(e.state=null),r):yo}var ua,ha,da=!0;function fa(e){if(da){var t;for(ua=new jr(512),ha=new jr(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(uo(fo,e.lens,0,288,ua,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;uo(po,e.lens,0,32,ha,0,e.work,{bits:5}),da=!1}e.lencode=ua,e.lenbits=9,e.distcode=ha,e.distbits=5}function pa(e,t){var r,n,i,o,a,s,l,c,u,h,d,f,p,m,v,g,_,w,b,y,S,k,C,A,I=0,T=new Zr(4),E=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return yo;(r=e.state).mode===Bo&&(r.mode=Po),a=e.next_out,i=e.output,l=e.avail_out,o=e.next_in,n=e.input,s=e.avail_in,c=r.hold,u=r.bits,h=s,d=l,k=_o;e:for(;;)switch(r.mode){case Io:if(0===r.wrap){r.mode=Po;break}for(;u<16;){if(0===s)break e;s--,c+=n[o++]<>>8&255,r.check=Kn(r.check,T,2,0),c=0,u=0,r.mode=To;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&c)<<8)+(c>>8))%31){e.msg="incorrect header check",r.mode=ta;break}if((15&c)!==Ao){e.msg="unknown compression method",r.mode=ta;break}if(u-=4,S=8+(15&(c>>>=4)),0===r.wbits)r.wbits=S;else if(S>r.wbits){e.msg="invalid window size",r.mode=ta;break}r.dmax=1< >8&1),512&r.flags&&(T[0]=255&c,T[1]=c>>>8&255,r.check=Kn(r.check,T,2,0)),c=0,u=0,r.mode=Eo;case Eo:for(;u<32;){if(0===s)break e;s--,c+=n[o++]<>>8&255,T[2]=c>>>16&255,T[3]=c>>>24&255,r.check=Kn(r.check,T,4,0)),c=0,u=0,r.mode=Ro;case Ro:for(;u<16;){if(0===s)break e;s--,c+=n[o++]<>8),512&r.flags&&(T[0]=255&c,T[1]=c>>>8&255,r.check=Kn(r.check,T,2,0)),c=0,u=0,r.mode=Lo;case Lo:if(1024&r.flags){for(;u<16;){if(0===s)break e;s--,c+=n[o++]<>>8&255,r.check=Kn(r.check,T,2,0)),c=0,u=0}else r.head&&(r.head.extra=null);r.mode=Mo;case Mo:if(1024&r.flags&&((f=r.length)>s&&(f=s),f&&(r.head&&(S=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),Fr(r.head.extra,n,o,f,S)),512&r.flags&&(r.check=Kn(r.check,n,f,o)),s-=f,o+=f,r.length-=f),r.length))break e;r.length=0,r.mode=Uo;case Uo:if(2048&r.flags){if(0===s)break e;f=0;do{S=n[o+f++],r.head&&S&&r.length<65536&&(r.head.name+=String.fromCharCode(S))}while(S&&f>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=Bo;break;case Oo:for(;u<32;){if(0===s)break e;s--,c+=n[o++]<>>=7&u,u-=7&u,r.mode=Jo;break}for(;u<3;){if(0===s)break e;s--,c+=n[o++]<>>=1)){case 0:r.mode=zo;break;case 1:if(fa(r),r.mode=Go,t===go){c>>>=2,u-=2;break e}break;case 2:r.mode=Vo;break;case 3:e.msg="invalid block type",r.mode=ta}c>>>=2,u-=2;break;case zo:for(c>>>=7&u,u-=7&u;u<32;){if(0===s)break e;s--,c+=n[o++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=ta;break}if(r.length=65535&c,c=0,u=0,r.mode=Fo,t===go)break e;case Fo:r.mode=Zo;case Zo:if(f=r.length){if(f>s&&(f=s),f>l&&(f=l),0===f)break e;Fr(i,n,o,f,a),s-=f,o+=f,l-=f,a+=f,r.length-=f;break}r.mode=Bo;break;case Vo:for(;u<14;){if(0===s)break e;s--,c+=n[o++]<>>=5,u-=5,r.ndist=1+(31&c),c>>>=5,u-=5,r.ncode=4+(15&c),c>>>=4,u-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=ta;break}r.have=0,r.mode=jo;case jo:for(;r.have>>=3,u-=3}for(;r.have<19;)r.lens[E[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,C={bits:r.lenbits},k=uo(ho,r.lens,0,19,r.lencode,0,r.work,C),r.lenbits=C.bits,k){e.msg="invalid code lengths set",r.mode=ta;break}r.have=0,r.mode=Ho;case Ho:for(;r.have >>16&255,_=65535&I,!((v=I>>>24)<=u);){if(0===s)break e;s--,c+=n[o++]<>>=v,u-=v,r.lens[r.have++]=_;else{if(16===_){for(A=v+2;u>>=v,u-=v,0===r.have){e.msg="invalid bit length repeat",r.mode=ta;break}S=r.lens[r.have-1],f=3+(3&c),c>>>=2,u-=2}else if(17===_){for(A=v+3;u>>=v)),c>>>=3,u-=3}else{for(A=v+7;u>>=v)),c>>>=7,u-=7}if(r.have+f>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=ta;break}for(;f--;)r.lens[r.have++]=S}}if(r.mode===ta)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=ta;break}if(r.lenbits=9,C={bits:r.lenbits},k=uo(fo,r.lens,0,r.nlen,r.lencode,0,r.work,C),r.lenbits=C.bits,k){e.msg="invalid literal/lengths set",r.mode=ta;break}if(r.distbits=6,r.distcode=r.distdyn,C={bits:r.distbits},k=uo(po,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,C),r.distbits=C.bits,k){e.msg="invalid distances set",r.mode=ta;break}if(r.mode=Go,t===go)break e;case Go:r.mode=Yo;case Yo:if(s>=6&&l>=258){e.next_out=a,e.avail_out=l,e.next_in=o,e.avail_in=s,r.hold=c,r.bits=u,$i(e,d),a=e.next_out,i=e.output,l=e.avail_out,o=e.next_in,n=e.input,s=e.avail_in,c=r.hold,u=r.bits,r.mode===Bo&&(r.back=-1);break}for(r.back=0;g=(I=r.lencode[c&(1< >>16&255,_=65535&I,!((v=I>>>24)<=u);){if(0===s)break e;s--,c+=n[o++]<>w)])>>>16&255,_=65535&I,!(w+(v=I>>>24)<=u);){if(0===s)break e;s--,c+=n[o++]<>>=w,u-=w,r.back+=w}if(c>>>=v,u-=v,r.back+=v,r.length=_,0===g){r.mode=Xo;break}if(32&g){r.back=-1,r.mode=Bo;break}if(64&g){e.msg="invalid literal/length code",r.mode=ta;break}r.extra=15&g,r.mode=Wo;case Wo:if(r.extra){for(A=r.extra;u>>=r.extra,u-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=Qo;case Qo:for(;g=(I=r.distcode[c&(1< >>16&255,_=65535&I,!((v=I>>>24)<=u);){if(0===s)break e;s--,c+=n[o++]<>w)])>>>16&255,_=65535&I,!(w+(v=I>>>24)<=u);){if(0===s)break e;s--,c+=n[o++]<>>=w,u-=w,r.back+=w}if(c>>>=v,u-=v,r.back+=v,64&g){e.msg="invalid distance code",r.mode=ta;break}r.offset=_,r.extra=15&g,r.mode=Ko;case Ko:if(r.extra){for(A=r.extra;u>>=r.extra,u-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=ta;break}r.mode=qo;case qo:if(0===l)break e;if(f=d-l,r.offset>f){if((f=r.offset-f)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=ta;break}f>r.wnext?(f-=r.wnext,p=r.wsize-f):p=r.wnext-f,f>r.length&&(f=r.length),m=r.window}else m=i,p=a-r.offset,f=r.length;f>l&&(f=l),l-=f,r.length-=f;do{i[a++]=m[p++]}while(--f);0===r.length&&(r.mode=Yo);break;case Xo:if(0===l)break e;i[a++]=r.length,l--,r.mode=Yo;break;case Jo:if(r.wrap){for(;u<32;){if(0===s)break e;s--,c|=n[o++]<=o.wsize?(Fr(o.window,t,r-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):((i=o.wsize-o.wnext)>n&&(i=n),Fr(o.window,t,r-n,i,o.wnext),(n-=i)?(Fr(o.window,t,r-n,n,0),o.wnext=n,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave ga)throw new TypeError("Bad argument");this.mode=e,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}function wa(e,t){for(var r=0;r 15&&(a=2,n-=16),i<1||i>pi||r!==fi||n<8||n>15||t<0||t>9||o<0||o>hi)return Ni(e,ii);8===n&&(n=9);var s=new Qi;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=n,s.w_size=1< ya.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+e.chunkSize);if(e.windowBits&&(e.windowBits ya.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+e.windowBits);if(e.level&&(e.level ya.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+e.level);if(e.memLevel&&(e.memLevel ya.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+e.memLevel);if(e.strategy&&e.strategy!=ya.Z_FILTERED&&e.strategy!=ya.Z_HUFFMAN_ONLY&&e.strategy!=ya.Z_RLE&&e.strategy!=ya.Z_FIXED&&e.strategy!=ya.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+e.strategy);if(e.dictionary&&!Qe(e.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new ya.Zlib(t);var r=this;this._hadError=!1,this._binding.onerror=function(e,t){r._binding=null,r._hadError=!0;var n=new Error(e);n.errno=t,n.code=ya.codes[t],r.emit("error",n)};var n=ya.Z_DEFAULT_COMPRESSION;"number"==typeof e.level&&(n=e.level);var i=ya.Z_DEFAULT_STRATEGY;"number"==typeof e.strategy&&(i=e.strategy),this._binding.init(e.windowBits||ya.Z_DEFAULT_WINDOWBITS,n,e.memLevel||ya.Z_DEFAULT_MEMLEVEL,i,e.dictionary),this._buffer=new he(this._chunkSize),this._offset=0,this._closed=!1,this._level=n,this._strategy=i,this.once("end",this.close)}Object.keys(Sa).forEach((function(e){Sa[Sa[e]]=e})),At(Ua,Dr),Ua.prototype.params=function(e,t,r){if(e ya.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+e);if(t!=ya.Z_FILTERED&&t!=ya.Z_HUFFMAN_ONLY&&t!=ya.Z_RLE&&t!=ya.Z_FIXED&&t!=ya.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+t);if(this._level!==e||this._strategy!==t){var n=this;this.flush(ya.Z_SYNC_FLUSH,(function(){n._binding.params(e,t),n._hadError||(n._level=e,n._strategy=t,r&&r())}))}else ut(r)},Ua.prototype.reset=function(){return this._binding.reset()},Ua.prototype._flush=function(e){this._transform(new he(0),"",e)},Ua.prototype.flush=function(e,t){var r=this._writableState;if(("function"==typeof e||void 0===e&&!t)&&(t=e,e=ya.Z_FULL_FLUSH),r.ended)t&&ut(t);else if(r.ending)t&&this.once("end",t);else if(r.needDrain){var n=this;this.once("drain",(function(){n.flush(t)}))}else this._flushFlag=e,this.write(new he(0),"",t)},Ua.prototype.close=function(e){if(e&&ut(e),!this._closed){this._closed=!0,this._binding.close();var t=this;ut((function(){t.emit("close")}))}},Ua.prototype._transform=function(e,t,r){var n,i=this._writableState,o=(i.ending||i.ended)&&(!e||i.length===e.length);if(null===!e&&!Qe(e))return r(new Error("invalid input"));o?n=ya.Z_FINISH:(n=this._flushFlag,e.length>=i.length&&(this._flushFlag=this._opts.flush||ya.Z_NO_FLUSH)),this._processChunk(e,n,r)},Ua.prototype._processChunk=function(e,t,r){var n=e&&e.length,i=this._chunkSize-this._offset,o=0,a=this,s="function"==typeof r;if(!s){var l,c=[],u=0;this.on("error",(function(e){l=e}));do{var h=this._binding.writeSync(t,e,o,n,this._buffer,this._offset,i)}while(!this._hadError&&p(h[0],h[1]));if(this._hadError)throw l;var d=he.concat(c,u);return this.close(),d}var f=this._binding.write(t,e,o,n,this._buffer,this._offset,i);function p(l,h){if(!a._hadError){var d=i-h;if(function(e,t){if(!e)throw new Error(t)}(d>=0,"have should not go down"),d>0){var f=a._buffer.slice(a._offset,a._offset+d);a._offset+=d,s?a.push(f):(c.push(f),u+=f.length)}if((0===h||a._offset>=a._chunkSize)&&(i=a._chunkSize,a._offset=0,a._buffer=new he(a._chunkSize)),0===h){if(o+=n-l,n=l,!s)return!0;var m=a._binding.write(t,e,o,n,a._buffer,a._offset,a._chunkSize);return m.callback=p,void(m.buffer=e)}if(!s)return!1;r()}}f.buffer=e,f.callback=p},At(Aa,Ua),At(Ia,Ua),At(Ta,Ua),At(Ea,Ua),At(Ra,Ua),At(La,Ua),At(Ma,Ua);var xa={codes:Sa,createDeflate:function(e){return new Aa(e)},createInflate:function(e){return new Ia(e)},createDeflateRaw:function(e){return new Ra(e)},createInflateRaw:function(e){return new La(e)},createGzip:function(e){return new Ta(e)},createGunzip:function(e){return new Ea(e)},createUnzip:function(e){return new Ma(e)},deflate:function(e,t,r){return"function"==typeof t&&(r=t,t={}),ka(new Aa(t),e,r)},deflateSync:function(e,t){return Ca(new Aa(t),e)},gzip:function(e,t,r){return"function"==typeof t&&(r=t,t={}),ka(new Ta(t),e,r)},gzipSync:function(e,t){return Ca(new Ta(t),e)},deflateRaw:function(e,t,r){return"function"==typeof t&&(r=t,t={}),ka(new Ra(t),e,r)},deflateRawSync:function(e,t){return Ca(new Ra(t),e)},unzip:function(e,t,r){return"function"==typeof t&&(r=t,t={}),ka(new Ma(t),e,r)},unzipSync:function(e,t){return Ca(new Ma(t),e)},inflate:function(e,t,r){return"function"==typeof t&&(r=t,t={}),ka(new Ia(t),e,r)},inflateSync:function(e,t){return Ca(new Ia(t),e)},gunzip:function(e,t,r){return"function"==typeof t&&(r=t,t={}),ka(new Ea(t),e,r)},gunzipSync:function(e,t){return Ca(new Ea(t),e)},inflateRaw:function(e,t,r){return"function"==typeof t&&(r=t,t={}),ka(new La(t),e,r)},inflateRawSync:function(e,t){return Ca(new La(t),e)},Deflate:Aa,Inflate:Ia,Gzip:Ta,Gunzip:Ea,DeflateRaw:Ra,InflateRaw:La,Unzip:Ma,Zlib:Ua},Da=class{constructor(e,t,r){this.SDKAPPID=e,this.EXPIRETIME=r,this.PRIVATEKEY=t}genTestUserSig(e){return this._isNumber(this.SDKAPPID)?this._isString(this.PRIVATEKEY)?this._isString(e)?this._isNumber(this.EXPIRETIME)?(console.log("sdkAppID="+this.SDKAPPID+" key="+this.PRIVATEKEY+" userID="+e+" expire="+this.EXPIRETIME),this.genSigWithUserbuf(e,this.EXPIRETIME,null)):(console.error("expireTime must be a number"),""):(console.error("userID must be a string"),""):(console.error("privateKey must be a string"),""):(console.error("sdkAppID must be a number"),"")}newBuffer(e,t){return he.from?he.from(e,t):new he(e,t)}unescape(e){return e.replace(/_/g,"=").replace(/\-/g,"/").replace(/\*/g,"+")}escape(e){return e.replace(/\+/g,"*").replace(/\//g,"-").replace(/=/g,"_")}encode(e){return this.escape(this.newBuffer(e).toString("base64"))}decode(e){return this.newBuffer(this.unescape(e),"base64")}base64encode(e){return this.newBuffer(e).toString("base64")}base64decode(e){return this.newBuffer(e,"base64").toString()}_hmacsha256(e,t,r,n){let i="TLS.identifier:"+e+"\n";i+="TLS.sdkappid:"+this.SDKAPPID+"\n",i+="TLS.time:"+t+"\n",i+="TLS.expire:"+r+"\n",null!=n&&(i+="TLS.userbuf:"+n+"\n");let o=Je.HmacSHA256(i,this.PRIVATEKEY);return Je.enc.Base64.stringify(o)}_utc(){return Math.round(Date.now()/1e3)}_isNumber(e){return null!==e&&("number"==typeof e&&!isNaN(e-0)||"object"==typeof e&&e.constructor===Number)}_isString(e){return"string"==typeof e}genSigWithUserbuf(e,t,r){let n=this._utc(),i={"TLS.ver":"2.0","TLS.identifier":e,"TLS.sdkappid":this.SDKAPPID,"TLS.time":n,"TLS.expire":t},o="";if(null!=r){let a=this.base64encode(r);i["TLS.userbuf"]=a,o=this._hmacsha256(e,n,t,a)}else o=this._hmacsha256(e,n,t,null);i["TLS.sig"]=o;let a=JSON.stringify(i),s=xa.deflateSync(this.newBuffer(a)).toString("base64"),l=this.escape(s);return console.log("ret="+l),l}validate(e){let t=this.decode(e),r=xa.inflateSync(t);console.log("validate ret="+r)}};const Oa=1600005664,Na="307e1852842da4890ee33d9bb2f019e84b24846dd0591d379ea7f6c8d01bf01f",Ba=604800,Pa={userId:`user_${Math.ceil(1e5*Math.random())}`,userName:sessionStorage.getItem("userName"),avatarUrl:""};function za(){if(Oa===Number(0)||Na===String(""))return void alert("Please configure your SDKAPPID in config/basic-info-config.js");const e=new Da(Oa,Na,Ba),t=e.genTestUserSig(Pa.userId),{userId:r,userName:n,avatarUrl:i}=Pa;return{sdkAppId:Oa,userId:r,userSig:t,userName:n,avatarUrl:i}}const Fa=(0,S.Z)();var Za={name:"Home",components:{UserInfo:s.Z,LanguageIcon:l.Z,StreamPreview:M,RoomControl:q,SwitchTheme:c.Z},data(){return{givenRoomId:"",basicInfo:null,userName:"",userAvatar:"",userId:"",isMobile:Q.t}},async mounted(){sessionStorage.removeItem("tuiRoom-roomInfo"),sessionStorage.removeItem("tuiRoom-userInfo"),this.givenRoomId=this.$route.query.roomId||"",sessionStorage.getItem("tuiRoom-userInfo")?this.basicInfo=JSON.parse(sessionStorage.getItem("tuiRoom-userInfo")):(this.basicInfo=await za(),this.basicInfo&&sessionStorage.setItem("tuiRoom-userInfo",JSON.stringify(this.basicInfo))),this.userName=this.basicInfo.userName,this.userAvatar=this.basicInfo.userAvatar,this.userId=this.basicInfo.userId;const{sdkAppId:e,userId:t,userSig:r}=this.basicInfo;await f().login({sdkAppId:e,userId:t,userSig:r}),this.isMobile||this.$refs.streamPreviewRef.startStreamPreview()},methods:{setTUIRoomData(e,t){const r=this.isMobile?this.$refs.roomControlRef.getRoomParam():this.$refs.streamPreviewRef.getRoomParam(),n={action:e,roomMode:t||"FreeToSpeak",roomParam:r};sessionStorage.setItem("tuiRoom-roomInfo",JSON.stringify(n))},async checkRoomExistWhenCreateRoom(e){let t=!1;const r=Fa.instance?.getTIM();try{await r.searchGroupByID(e),t=!0}catch(n){}return t},async generateRoomId(){const e=Math.ceil(1e6*Math.random()),t=await this.checkRoomExistWhenCreateRoom(String(e));return t?await this.generateRoomId():e},async handleCreateRoom(e){this.setTUIRoomData("createRoom",e);const t=await this.generateRoomId();this.$router.push({path:"room",query:{roomId:t}})},async handleEnterRoom(e){this.setTUIRoomData("enterRoom"),this.$router.push({path:"room",query:{roomId:e}})},handleLogOut(){}}},Va=Za,ja=(0,R.Z)(Va,o,a,!1,null,"79fbed35",null),Ha=ja.exports;n["default"].use(i.ZP);const Ga=[{path:"/",name:"home",component:Ha},{path:"/home",name:"home",component:Ha},{path:"/room",name:"room",component:()=>r.e(443).then(r.bind(r,4435))}],Ya=new i.ZP({routes:Ga});var Wa=Ya},7717:function(e){"use strict";e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABdCAYAAAAlrXG6AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAWqADAAQAAAABAAAAXQAAAAD7XFenAAAYkUlEQVR4Ae1dCXhVRZY+Ny/7vkFCSEhCAhEBlR0DIuIyuLbg1mq32zhttxv2TLc0oq3tArZ+37RL+zk9jjoyHyruuIxLO0gPdrM4Lu1GAiESkRAIYUsCIdud/6/3bvKW+967976bgF/34avcd2s5VfXXqVOnTtV7iPydBgUBbVBqcVCJrutxKFaKMBIhCyHDL+CjtPqF/fhcj9CgaVovnkcdHRVAA1QPkJmMMAdhEkIVQiVCMoId6kDmOoRahI8RViH8H8DvwfOI0hEDGuAOQc8vQZiLcBJCJsJA0AEwXYPwDsIKgN48EJUcVTwBbjLCRQhvIHQhDDaxTtbNNtidLUcVlqaNQaeyEe5A2I1wtBDbwjZlmzb6+xSJTgxBWIKwH2HAaHNNjb5h7Vqn/Nk2tpGq7PtFaLQH4WaEAQUY/BWtfPklfWJVpf74Iw/rHR0dRrTdJ9vKNnNhdp1cXwzR0Olo5eMIJ8TS2s7OTjnc0SHt7e3SvHOntLTsloP4fKjjkKAOSUxIlIyMTCktL5fXX31ZHvvdv6rqplXPkF/9+k4Zd9zxTqv/DAV/hkVznVMGZuVcAxqdT0AFDyAsQLDFt7e3V7Z/951srq2Ruk21Ul9XJ1vr62Xbtm+ldf9+6erqlp6ebmE+f4qLi5PExETpBfCdhw+rJA015+blyy23LpSLLr1M4uPZLNuko8RDCAsBeJft0iYFbAFiUl5FAeQyfHgBYYqKsPhnc22trFn9gbzz1htSv7lO9u3bK3FAir0U/AV+jgkAySmnnS6L7rxLyitokjuij1DqYvDa6qi0X6GYgQbI54Pf0wjZfnwjfqz5+mtZ/p9PybtvvyV7W/YAU4AasYSzRIKdP2SI/OK2O+SCS2iyO6J9KHU1eL3mqLSvUExAA+SbwOdhBEt82lpb5d8f+72sWL5M9gBglI+l7ZbKsmFanEeuvu46uemf/0XS07mTt01s6AKA/ajtkr4ClgAyYw6Q7kX8YrM0s7iNX30lS+68XTasXyc93YO/I/bEe2TGzFny6/uWSNnICrMmWom7D2DfbiVjcB7bQANglvkDwj8FMwv3/vFH6+XWBQtkW8M3WNAGXorDtSPO45HKylFy19L7ZeqJ1eGyRYt/AhmuA+C2OuIE6IdQES0LS1S/ZbNcf83VWOw2K+vAUqEBzMTFNr+gQO5acr+cceZZTmt6GEDfYqcwXZGWCdK8CJktg9wKnXzP7bfLN/VbjgqQ2VGags1NTbLwlpsFGx3LfQ/KuMCHRVB0+FfLQIPxNWCzJDyr0JRlTz4hG9b+5Yjo5NDW9MdwzrcdOCC/WbxIXnlhRX+CvU/cthMTS2RJdYDhVHD7EMGy9d/wTb1cfuF82bljx6BYF5Z6G5SJnU/PzJS77/+tnDvvgqBUS6/czMyEGtkQLXdUiQbI2WDCYbcMMit9acXzsJFbjlqQ2UZKdisk+747fy0frl7NKLtETFb4MIpYNirQKP00QllELkGJ9Eus/uN70tXNAT/6qWX3brkXpucWLNgOqAxliFFEigg0Ruo6lD4/IgeTxK8+/1waGhqktyfQN2GS9aiIQj+xYNfLPXcslva2NidtOt+HVdiyYYFGwaEotTRsyQgJaz9cI91d3w9pNrrR090tH61bK8889R9GlN3nUmAW1qcdFmjUQk9cjt3aenp6hBLdE+Rps8vnSOSna/a5Zc/Ag7jJSfXE6sFwBU2BxsjwsPSKcIUixe9ubpbm5l1QG4O/zY7ULitp6Le0oP0vPrvcSnazPFf4sAtJMwUauTgylky/YI7Nu3bJ3j2D4zAKrtuNd6q8Ve+/JxQYB0TMTKU6BGiMyGnIPM1BJcpZfy8WlD0A2ilRqroxGw53dkknAzreBf3ZDUeUf2Ac05iPgWksGytx57gLJzpfffG5U1bTfBgGlI8PePO+LDaJixp16OBBIciffvKxbbVBgKjbu2GlJCUmSElRoZQML5CKEcVSMCRPhuTnSm5OpmBjIDqcUjxp2bPvgDTt2i1NzS2ybXuTbG/aJY1NzTjq6hAP3KIeT5zwBMYJ9WIQ6TY4ec6pToqzDDF8379wANDo8AwkzvbPYPXzG6++IuvUdrvbahGVj1KZEB8voytK5ZQZU2XOzCkK6KJCLOBJiepQAKLq3V0YnA2lBuCBvkCkZQdAJ9CffLFR/ud/10tN3VbZvWcfeBN0e+etXMgbt283anPynE0sIRh/NgoHAI3IG40EO8+DkOZXXni+79zOStkeSK+ODk05Yaxce/l8OWnaBEnP9l1Wov2NNL3Dew4YjR8lfVjhUBk2vFAmTRov1142T2q2NMiqNetlxcp3Zeu2Rkh5nGXAe/Ueafx2m5qZdK06JGIZCjRGgL38gROmG7/8Ur6GYz/48DQcr24ctuYPyZXrr7pYLp03V1Iy0gWKWHToWidE1QPd4w0+BmOOqZAxYyrlh+fPlTfe+5P827IXpLFxtyQmJUStorcHHr5dO9XakOQc6B8QUwgBr6SJvxK7EO8pUVthkkHpZeg1K0RVMaKkSB65+5dy5Y8vkJTkJNEx9SndbpLuG7i83Gy56ooL5cmH7pYzTqlWa0G0wwcuiAfgA4nRRCWWxFSRP9CO7GZyacD21coGpQsgj62qkMd/u1imnzhR4vDOxW0giQNIFTT2mFHy6NKFcsM1P1RqPdLs4xLQ1t4Gq6cz1qb1YaqAhojng+Msp1x56BrtHJsDkZeXLfcsvEHGHDtKNE71gcU4oDs67oWkJCfLgp/8SBbeeLXS1+HApirqxgx16Pfwr3eWD9s+1XEKUjmQjoiNikY8kL3y4vPkOCx+Gjo9mCCrttFw0XslAWbflT+ajwV4nlIjYdutwHa2ZvjxJKbENgBov3R7HxMSEpSNG64UHTblpcVywVmnwqk9iGIc3CCCjX9JWpz8I8CeePxYOL/MhYSWDIMLFAD0nFgYZmZlRSzOxWfG1OMlHyZYiE0cseQAJCqweyU7J1suv+BM3PkwB1OJgztAK2zjoEPoDuVXGRxT4fAiXOXyX1cDWcWhMzOnTpB4TNujhXDdVaZPGCdl2H1yV2pG3GG6QFXEmD0fEyuz0tIySIY5iFxw8vNypQKqw5Vmx9pYllfiqkvu0HwZNbJY+Un82VJlxGO3mpYO+94dGsOdYUzSzHaMrjpG3ersOHQopFl09pSVFklBQb5oUCHq+g1yQQMKtmtYJRg4fREgWbqFhTWkEr8IpVcNfoyH5DLQkggmD9aW0uLhaEKQ+gDQWZlZqk/BZRy+V7kC9NBhhTK8uFho5pmZTKPKSyQFd950fDNN0yDXiR453NYuu3bslU1btsI51KJ2YaNHlsqJU473guOoR5p04Pruvv2t0traLnEYyOzMDElJSZLUDNy5o87F7tMwRaE3pbxkGPIFzjUCn52TIx5ItUvkDtBpaemwjcdJ3eZN0tvZG9C2eDh1xh8zWkmNhrvKjdt3yB8/WCdvvr9GautwRQx+jbS0FLXhmTNjikydOF7pcjMJDGBs8qIleOTpZ16Xh55YrpxJzEKHFR1U1RjAk6unyLRJ4yQBl9j13h5lchVCfXh1cb/Eczx4xzo+aABMqrQapYAutJo7XD66IydPmyb//ebrAu9xXzY2PQkXxcdVVUpXZ4csf/Zt+cPyV3CxvEtOmj5JrrrkPKRVSGZmmlIlSfDW0b3pBGRVKVTPOafPlKrKMslIT1V8djXvkS9r6+QvG/4qz77yDnaII+UX118lUycfJxrUWl5OlhIC/225Jy4eFyHLQyS9r2P2PxRybji6xxpc1/SZJwGwTPHX0/QVDMPUHFaYBzWxW15+e5Wce/os+fFFZ0sxVnulT7niG/ozjC4NrivcO7fzJcVFUlJa4uVJ1QvxPOe806UDau2TTzfKi2++J9t37FTxXCdSUpKx8EGVHaZa83Km4MRwed2seRmuAV1cUixjx41X3zUxruV2d/fKyBHDJTUlRXKys+S/Hr1XsnKzhPcwddz5MPA1a5nTOOWcCnFQdUky1EV19USphr8bZobomFXcr/HSIzdch+HYUgsy/sZjFnLNcZEyaJO5ItFxsDlnnXoadKK/G5KLTZF4UlPU9MzOgieWloWSYhe7YYEV1ZHy6GGxVPX7ymiw//0PBjjLsrOzZURZmQWulrMooOnOc4WqqT7QSBI7Rp07CpaEx7fO0NfgtWH7q2PHNLhKtQTXVnjFXMNCpviGse+NFqj6DZ2BSFoax4w5VgqHFRlZ3HimUKIPusGJPEZWVsoJEyYqncf35KQkbFRgpwajy0RFmjrje/Glt+Szz74Ku+kxclt9EuT6b76VZ59bKTtxxKVF2ZFSqg2ipVE962Tj1a3nQdbg6A6UWQsoHefgVmZCIpz5kOiMjFQZDhub9qoZadCNz7/2rty4aKlc/6ul0rSzOWaw6bvAlzrlzgcfB88l8sBjzwgOTEC+lS6oIZpH6/OsMSkVu8GJkyYH5Yr5tZVA83cvXKMZ4yqkrGgI1pteHLIOVSco4TrJHeEnX9So7S5PtBtwtqd2i9Faw6nuN90DskM69+GEfNOWbyUNa0NNXb0cwuaFQhBKOoSArcPhAISBamN0VZWMHhOzVyK4qjZ3gd7fJFkH6uXMqeNws75XhhcWqOsDyswIrprvsA6mwbGjzLKiAuVKxc7FLGdgXBt+B2UPTDQuqsGSCp65sHDGVo1Uamn8mFGSmpkOIMPwVWPmHQT+PXsaNjR6/14gsGLHb61cgZocF/cvCGe+vv1rYNolZ1ZPkCdXfiAF+XlY5HweaBPtQSvgIti4ObBGyqHLhw7Ng0UQBhBVF6DgVeDWvV6Q0+Ce5TbZjzclMxGL629uvV7OPeNkmXXiJKW6/LL0t1pJMxZjzCyeAJXD3j9r0iiRxhqRson9+WL/1ESgaxHOjplXewucRrBFcT5XXlIop0weIzTnNAWEuRuSCHHnePbZp1pzKFHkDkHT0fGUhJ/boClpov9pvpUUD5MS+FiUbyPErg7sLQ0TD1TOebOnSlYOpH/PdtGKoD4SXTPIag2gA2t28taBU3XssNhv4nHZP8yUHd0JXsecqTh5K6EEYrdgrUb4J+RQu7eCVLgw6YswAZrMlK2sVEtk1lTduMYhx1aUyKWnV2NgMIjcUR3cd5QC3YspbUgOfAjjRo6QitQs8VAVEPkQMiIjjIJ/GSLCex9UHfBFSHIaEPLPEO1zmPoQnQW/yA0XnSHZ2LXybokGb590dURjaCddSfRGOyUi5vV1nI9EeNIS09OARTAa7DDA5wEtiacYnLthJNObyfcXjimsnF614eFkDOYdkNv7wgFSO1Gf7lfl2AZvWXr3rp13msydfkLgBR5TK8WEv7WojfEwe3Zh+lJPx3QAoEPKNKgOgxRuZuAdhI49CDWjHPzoLDuejkUtJcppBnHphIrhE3a6GiC10/QCZtQb8GT9B3CztQN7MqodWswsm4H6EviTSroMhfdu/pzpOJn3+l5oBnKR1lR6ADenL7XEmOYdaZX34fyvloytNxw1lJWwxI4TaHacEk1JO4xTmXZ1aypsMZVARcoySkLBpw06lHzCElpCNdMG3hwg1gUw1WJ6iOW8LfXa1wDXEArOLoKc6nUlhGVvPUFhy/lH+gDhZ+qT0z8ZeVgMU9FIdCLcDR+ClJWLPJAqgkDx9MBySPOdfhidDdsG5FeDBfDaoArgkZMh8EmYHqIiL9NzhwJcbH4JtAEi66P6MiP4Z7TcEpSlxLtCIUCjZZEFMmK1PKIaDpNo01rREsEK049EpgHEDmR7p60CjX4GZooGMkFKhfePV8gojCyXDPOL9UaiFCyaDFyoYS97Dy0DW6WkmvxhMuoJMEkLR0fiaCeNFa1mAe/8wQdMHUacjBAb7dsh8t3XkKJ9ohMYJa1gGdg3h3Wgub2+RZRAE5xoAxStJvDT9jR7eWXisKlkPADHzHSH/oRBnE1Whurg52UIsQOdPQyLDS6R067evwMjiZuiXdCRrhBGy19NxAIyxownLHo8ZkUlvkmSBHWSQpXiKhFTRf4SDfFT23HU7A7pLfWidR3AtVyaZe7wdI2L6jm331gjisZhrYA+d5d496IQEg2Jg3wYvH0RK413V56xSJwrDbDAhAu0Mv0s5LWXZaUBMov1Ae3j8Xt7vCLn7psukbP1p3JglG2MhSump93pY7ul/W0O/ykAS38dTZ/tn32L4uzw5a2n6FisbHWBThxO5Vj1DAesk7ZyZMDRX+TQYz5sMEFkNbH0jw8A2pdwH56z/TM5/4wJQ5NKwR250wqUzCLRMmD3xkh6J9Rj4+cWuKBttF7siYMFvkIMAyhYdVCq30eO9QG5HL7wZpLgpCWaZCn2SgrhmXODKM1UPdGI+pkuADqp3KP1PgwDOIYA7Uv9JZ7RRDCAkekLNyfwaWi82UjBjkjI0IGTE8NOjpg3SuLBFmSw0HzONg92qQTcHWKlxC6ETIHGiKxBzmUhue1GJNJ7xyosdJqdhSTqrbvs1hKQX+dgYbPkVQkBSaEvmHFaEnaN7tEyH3YhHE2B9uW6FU+cGcVAtE3pN8ZxliUi2Pu341tUAMsJdWNj1LI1urmGarhZUW6CxCheQ+vtIFam0kwWYYHGyFC0FjGTc0J3UuAF43GWJULn6aFrrhOdJxx2qAs/d9y8GbMCet6KKsDpDF274p5ELwJm2MubE3oWmWDuvYoc50fOFSGVADRtxHmi716yBS2i/BfcamfA95BZAD839Gg4gk7X23ZjJjRiPcAOVFkR4TL74inRPHNMhscxG5662Ok1gDwvEhsrQEMk5VOEskiMIqa1fINput/+VpyWA0FOhncgCYGLKweAnrgeqInD9G1jh0tzTvUkandUPvU1kDjwLRgN/jF7HLai7xMAdMQpaKFlWMoc/O5dAPBc5JprcB8Z0kc/sBWp7mOAzGorj6bSW6cQ9cUpEw7xVlSFwY/ZKc2JkJ/cMiPW6ZNOdXd+944twGhtwOOn/OyIElPhS8Y0xX0L+0RkADDB7Nui+0bKiLfKVLGCbsYZgGS5conxpz5sorYg7GIYXBIMn0LcbcHxVt+1zGHACeeKPFFBhwedCLKqGH+zit3w1t3mw8RSVywDTW5gvBSPhy1xDs4EU0/LGQGtgY7yVORIgM0TlLQhOIzID26d3Xf+2i6xsEy2gPZx/TmeT1iuwT8jnOsa9KKOa7TWdov+hWP7rMXDpo9Px2DDyohtkNl3YmCLbAONkdQRfoJaltiqycicmitaagGsCHR8kIj3pYWnPHBaWTL/wrdrCftODMJnMU+xDbTBBpUtxuebEWxXqu60dXdCsFg0NvEy2mP+JG/UATNQp7qiVDsjNvRmX58dcXAMNGtDxY/iMR8hog3JvCHEK2S8m8GrV8o8cxNw8KJFwg1MKzYzdAXEw6RzVgX7Nt/X15BuWI2ICWhWgga8hscEhI/4bonUHECveaFl73cYpkbvZ25G7NjEIZWBp9rQYBt/oMl7UTEtBzYzNiXKFg8pEC2CfeJmhH2MiWIGmrWjIVvxmIHwEIKCEU9rBKNWI9jffixaU61oh+mrQLPoh7AEug9cAtwDddTSILJzM6QYZiS27+rExj7I7AP7wp9U22qtI5FzoTfuEBoE8ZSfYxe5As/HEU4IyxnYGOOhbFsAq3VAj+JOiPbdX0XZ3DlYuNKxyYGrtW/D4j/3FXj4EiY9dm34QfA2fP+lo130bPhHCiq96kLtHO2NOxr2GYLr/1eWa0ATOhIAXwewJ+PjDQj3IPAaQyAZqgOx/KhwhyNRfTsKgMsOfEOrqQa+DewkEzDtU7IAOHaXlFI66+nh483SQ/uh43GaQg9hHmz0clTL/DzVtnLCEtgqXgu4A+Ex9IF7R1fJdaDZOl9DHwHgz+GVNidB7wfcT6IR7wXbsJgMtcEEmmRcLNv3eHMZW3CmwSbXKfXlU8AZ54w8KSHA9q8OEODHEH6HdjeT9UDQgABtNNTX8NsA+AOIuwlhAQL0Ackrx96/3ph+6ea735QnwNTByfjaA29BQXqV/qVXj3qc3jz7R2A873oY4VG0cx9rHEgaUKCNhvs6cg8AfxBx5yJcga3hXDxRPwFFAJiaupoLVU+pxDGTTinl9VkuahnYNqdhjJJwIkJwDen2Gw8wikyaBp2j/pPfZXi+gXZhugwO+QvU4NToq0Xf8ckQad52CTYTc+Vw+0l6d2emwpwn59THyRle3UydS3WiwKWL1Q6yKCa4kpUQvwZXXN+RovErfLNsUPvKyo4Y0P49haTHy9Z1k9CcOVARk9CqKgBaie8GwgtkHViMBSW0DnxqMWgfS7y+Soqn/23/v+D+QJt9Bvhx0rChFJI8Eg5k/PZEHFY//BKDrkPUQZrWigGBTdiLpwfHN3q9lE5tgMRC7P9Of7MI/D8YROAQeA2lMAAAAABJRU5ErkJggg=="},5314:function(){},8326:function(){},370:function(){},1184:function(){}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={id:n,loaded:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}r.m=e,function(){r.amdO={}}(),function(){var e=[];r.O=function(t,n,i,o){if(!n){var a=1/0;for(u=0;u =o)&&Object.keys(r.O).every((function(e){return r.O[e](n[l])}))?n.splice(l--,1):(s=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[n,i,o]}}(),function(){r.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return r.d(t,{a:t}),t}}(),function(){r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}}(),function(){r.f={},r.e=function(e){return Promise.all(Object.keys(r.f).reduce((function(t,n){return r.f[n](e,t),t}),[]))}}(),function(){r.u=function(e){return"js/about.345afdd2.js"}}(),function(){r.miniCssF=function(e){return"css/about.753051b5.css"}}(),function(){r.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="room-uikit-web-vue2:";r.l=function(n,i,o,a){if(e[n])e[n].push(i);else{var s,l;if(void 0!==o)for(var c=document.getElementsByTagName("script"),u=0;u index && 'active'}`]})}),0),_c(_setup.SvgIcon,{staticClass:\"audio-icon\",attrs:{\"icon-name\":_setup.iconName}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { computed } from 'vue';\nimport SvgIcon from '../common/SvgIcon.vue';\nimport { ICON_NAME } from '../../constants/icon';\n\ninterface Props {\n audioVolume?: number,\n isMuted?: boolean,\n size?: string,\n isDisabled?: boolean,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AudioIcon',\n props: {\n audioVolume: null,\n isMuted: { type: Boolean },\n size: null,\n isDisabled: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n audioVolume?: number,\n isMuted?: boolean,\n size?: string,\n isDisabled?: boolean,\n}\n\n\n\nconst iconName = computed(() => {\n if (props.isDisabled) {\n return ICON_NAME.MicOffDisabled;\n }\n return props.isMuted ? ICON_NAME.MicOff : ICON_NAME.MicOn;\n});\n\nconst showAudioLevel = computed(() => {\n if (props.isMuted || !props.audioVolume) {\n return 0;\n }\n return ((props.audioVolume * 4) / 100) * 5;\n});\n\n\nreturn { __sfc: true,props, iconName, showAudioLevel, SvgIcon }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AudioIcon.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AudioIcon.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./AudioIcon.vue?vue&type=template&id=5bc7b022&scoped=true&\"\nimport script from \"./AudioIcon.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./AudioIcon.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./AudioIcon.vue?vue&type=style&index=0&id=5bc7b022&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5bc7b022\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"audio-setting-tab\"},[_c('div',{class:['item-setting-container', _setup.isSampleMode && 'hasDividingLine']},[_c('div',{staticClass:\"item-setting\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_setup.t('Mic')))]),_c('div',{staticClass:\"flex\"},[_c(_setup.DeviceSelect,{class:_setup.isDetailMode ? 'detail-select' : '',attrs:{\"device-type\":\"microphone\"}}),(_setup.isDetailMode)?_c('div',{staticClass:\"button\",on:{\"click\":_setup.handleMicrophoneTest}},[_vm._v(\" \"+_vm._s(_setup.isTestingMicrophone ? _setup.t('Stop') : _setup.t('Test'))+\" \")]):_vm._e()],1)]),_c('div',{staticClass:\"item-setting\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_setup.t('Output')))]),_c('div',{staticClass:\"mic-bar-container\"},_vm._l((new Array(_setup.volumeTotalNum).fill('')),function(item,index){return _c('div',{key:index,class:['mic-bar', `${_setup.showVolume && _setup.volumeNum > index ? 'active' : ''}`]})}),0)])]),((_setup.speakerList.length > 0))?_c('div',{class:['item-setting-container', _setup.isSampleMode && 'hasDividingLine']},[_c('div',{staticClass:\"item-setting\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_setup.t('Speaker')))]),_c('div',{staticClass:\"flex\"},[_c(_setup.DeviceSelect,{class:_setup.isDetailMode ? 'detail-select' : '',attrs:{\"device-type\":\"speaker\",\"disabled\":_vm.mode === _setup.SettingMode.DETAIL}}),(_setup.isDetailMode)?_c('div',{staticClass:\"button\",on:{\"click\":_setup.handleSpeakerTest}},[_vm._v(\" \"+_vm._s(_setup.isTestingSpeaker ? _setup.t('Stop') : _setup.t('Test'))+\" \")]):_vm._e()],1)])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, computed, onBeforeUnmount } from 'vue';\nimport DeviceSelect from './DeviceSelect.vue';\nimport { useRoomStore } from '../../stores/room';\nimport { SettingMode } from '../../constants/render';\nimport { useI18n } from '../../locales';\nimport { storeToRefs } from 'pinia';\n\n\ninterface Props {\n mode?: SettingMode,\n}\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AudioSettingTab',\n props: {\n mode: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n mode?: SettingMode,\n}\n\n\nconst settingMode = props.mode || SettingMode.SIMPLE;\nconst isSampleMode = computed(() => settingMode === SettingMode.SIMPLE);\nconst isDetailMode = computed(() => settingMode === SettingMode.DETAIL);\n\nconst roomStore = useRoomStore();\nconst { speakerList } = storeToRefs(roomStore);\n// const inputAudioLevel = ref(0);\n// const outputAudioLevel = ref(100);\n\nconst volumeTotalNum = computed(() => (isDetailMode.value ? 36 : 28));\n\nconst volumeNum = computed(() => (roomStore.localStream.audioVolume || 0) * volumeTotalNum.value / 100);\n\nconst showVolume = computed(() => isSampleMode.value || (isDetailMode.value && isTestingMicrophone.value));\n\nconst isTestingMicrophone = ref(false);\n\n/**\n * Click on the microphone [Test] button\n *\n * 点击麦克风【测试】按钮\n**/\nfunction handleMicrophoneTest() {\n isTestingMicrophone.value = !isTestingMicrophone.value;\n}\n\nconst isTestingSpeaker = ref(false);\nconst audioPlayer = document?.createElement('audio');\nconst { t } = useI18n();\n\n/**\n * Click on the speaker [Test] button\n *\n * 点击扬声器【测试】按钮\n**/\nfunction handleSpeakerTest() {\n if (isTestingSpeaker.value) {\n if (audioPlayer) {\n audioPlayer.pause();\n audioPlayer.currentTime = 0;\n }\n isTestingSpeaker.value = false;\n } else {\n isTestingSpeaker.value = true;\n if (audioPlayer) {\n audioPlayer.src = 'https://web.sdk.qcloud.com/trtc/electron/download/resources/media/TestSpeaker.mp3';\n audioPlayer.play();\n }\n }\n}\n\nonBeforeUnmount(() => {\n audioPlayer && audioPlayer.pause();\n});\n\n\nreturn { __sfc: true,props, settingMode, isSampleMode, isDetailMode, roomStore, speakerList, volumeTotalNum, volumeNum, showVolume, isTestingMicrophone, handleMicrophoneTest, isTestingSpeaker, audioPlayer, t, handleSpeakerTest, DeviceSelect, SettingMode }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AudioSettingTab.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AudioSettingTab.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./AudioSettingTab.vue?vue&type=template&id=ce40fa86&scoped=true&\"\nimport script from \"./AudioSettingTab.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./AudioSettingTab.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./AudioSettingTab.vue?vue&type=style&index=0&id=ce40fa86&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ce40fa86\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('img',{staticClass:\"default-avatar\",attrs:{\"src\":_vm.imgSrc || _setup.defaultAvatar,\"onerror\":_setup.showDefaultAvatar}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport defaultAvatar from '../../assets/imgs/avatar.png';\n\ninterface Props {\n imgSrc?: string | undefined\n}\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Avatar',\n props: {\n imgSrc: null\n },\n setup(__props: any) {\n\n\n\nfunction showDefaultAvatar(e:any) {\n e.target.src = defaultAvatar;\n}\n\n\nreturn { __sfc: true,showDefaultAvatar, defaultAvatar }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./Avatar.vue?vue&type=template&id=06750644&\"\nimport script from \"./Avatar.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./Avatar.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./Avatar.vue?vue&type=style&index=0&id=06750644&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('el-select',{staticClass:\"select custom-element-class\",attrs:{\"placeholder\":\"placeholder\",\"disabled\":_vm.disabled,\"teleported\":false,\"popper-append-to-body\":false},on:{\"change\":_setup.handleChange},model:{value:(_setup.currentDeviceId),callback:function ($$v) {_setup.currentDeviceId=$$v},expression:\"currentDeviceId\"}},_vm._l((_setup.deviceList),function(item){return _c('el-option',{key:item.deviceId,attrs:{\"label\":item.deviceName,\"value\":item.deviceId}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, Ref } from 'vue';\nimport { useRoomStore } from '../../stores/room';\nimport { storeToRefs } from 'pinia';\n\nimport useGetRoomEngine from '../../hooks/useRoomEngine';\nimport { TRTCDeviceInfo } from '@tencentcloud/tuiroom-engine-js';\ninterface Props {\n deviceType: string,\n onChange?: (id: string) => void,\n disabled?: Boolean\n}\n// eslint-disable-next-line vue/no-setup-props-destructure\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'DeviceSelect',\n props: {\n deviceType: null,\n onChange: null,\n disabled: null\n },\n setup(__props: any) {\n\nconst { deviceType, onChange, disabled = false } = __props as {\n deviceType: string,\n onChange?: (id: string) => void,\n disabled?: Boolean\n}\n\nconst roomEngine = useGetRoomEngine();\n\n\n\nconst roomStore = useRoomStore();\nconst {\n cameraList,\n microphoneList,\n speakerList,\n currentCameraId,\n currentMicrophoneId,\n currentSpeakerId,\n} = storeToRefs(roomStore);\n\n// @ts-ignore\nconst deviceList: Ref = ref(getDeviceList());\nconst currentDeviceId = ref(getInitDeviceId());\n\nfunction getInitDeviceId() {\n if (deviceType === 'camera') {\n return currentCameraId;\n }\n if (deviceType === 'microphone') {\n return currentMicrophoneId;\n }\n if (deviceType === 'speaker') {\n return currentSpeakerId;\n }\n return '';\n}\n\nfunction getDeviceList() {\n if (deviceType === 'camera') {\n return cameraList;\n }\n if (deviceType === 'microphone') {\n return microphoneList;\n }\n if (deviceType === 'speaker') {\n return speakerList;\n }\n return [];\n}\n\nasync function handleChange(deviceId: string) {\n onChange && onChange(deviceId);\n switch (deviceType) {\n case 'camera':\n await roomEngine.instance?.setCurrentCameraDevice({ deviceId });\n roomStore.setCurrentCameraId(deviceId);\n break;\n case 'microphone':\n await roomEngine.instance?.setCurrentMicDevice({ deviceId });\n roomStore.setCurrentMicrophoneId(deviceId);\n break;\n case 'speaker':\n await roomEngine.instance?.setCurrentSpeakerDevice({ deviceId });\n roomStore.setCurrentSpeakerId(deviceId);\n break;\n default:\n break;\n }\n}\n\nreturn { __sfc: true,roomEngine, roomStore, cameraList, microphoneList, speakerList, currentCameraId, currentMicrophoneId, currentSpeakerId, deviceList, currentDeviceId, getInitDeviceId, getDeviceList, handleChange }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeviceSelect.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeviceSelect.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./DeviceSelect.vue?vue&type=template&id=160545a2&scoped=true&\"\nimport script from \"./DeviceSelect.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./DeviceSelect.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./DeviceSelect.vue?vue&type=style&index=0&id=160545a2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"160545a2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.SvgIcon,{staticClass:\"language-icon\",attrs:{\"icon-name\":\"lang\",\"size\":\"large\"},on:{\"click\":_setup.handleChange}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport SvgIcon from '../common/SvgIcon.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport i18n from '../../locales/index';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Language',\n setup(__props) {\n\nconst basicStore = useBasicStore();\n\nconst handleChange = (): void => {\n switch (i18n.global.locale.value) {\n case 'en-US':\n i18n.global.locale.value = 'zh-CN';\n basicStore.setLang('zh-CN');\n localStorage.setItem('tuiRoom-language', 'zh-CN');\n break;\n case 'zh-CN':\n i18n.global.locale.value = 'en-US';\n basicStore.setLang('en-US');\n localStorage.setItem('tuiRoom-language', 'en-US');\n break;\n }\n};\n\n\nreturn { __sfc: true,basicStore, handleChange, SvgIcon }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Language.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Language.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./Language.vue?vue&type=template&id=047176c6&\"\nimport script from \"./Language.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./Language.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./Language.vue?vue&type=style&index=0&id=047176c6&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.SvgIcon,{staticClass:\"switch-theme\",attrs:{\"icon-name\":\"switch-theme\",\"size\":\"medium\"},on:{\"click\":_setup.handleSwitchTheme}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { watch, onMounted } from 'vue';\nimport SvgIcon from '../common/SvgIcon.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport { storeToRefs } from 'pinia';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SwitchTheme',\n setup(__props) {\n\nconst basicStore = useBasicStore();\nconst { defaultTheme } = storeToRefs(basicStore);\n\nfunction handleSwitchTheme() {\n const currentTheme = document.body.getAttribute('data-theme') || defaultTheme;\n if (currentTheme === 'white') {\n basicStore.setDefaultTheme('black');\n } else if (currentTheme === 'black') {\n basicStore.setDefaultTheme('white');\n }\n}\n\nfunction doSwitchTheme(theme: string) {\n switch (theme) {\n case 'black':\n document.body.setAttribute('data-theme', 'black');\n localStorage.setItem('tuiRoom-currentTheme', 'black');\n break;\n case 'white':\n document.body.setAttribute('data-theme', 'white');\n localStorage.setItem('tuiRoom-currentTheme', 'white');\n break;\n };\n}\n\nwatch(defaultTheme, (val: string) => {\n doSwitchTheme(val);\n});\n\nonMounted(() => {\n const defaults = basicStore.defaultTheme;\n const storageCurrentTheme = localStorage.getItem('tuiRoom-currentTheme') || defaults;\n basicStore.setDefaultTheme(storageCurrentTheme);\n document.body.setAttribute('data-theme', storageCurrentTheme);\n});\n\nreturn { __sfc: true,basicStore, defaultTheme, handleSwitchTheme, doSwitchTheme, SvgIcon }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SwitchTheme.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SwitchTheme.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./SwitchTheme.vue?vue&type=template&id=307438c7&\"\nimport script from \"./SwitchTheme.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./SwitchTheme.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./SwitchTheme.vue?vue&type=style&index=0&id=307438c7&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"video-tab\"},[_c('div',{class:['item-setting-container', _setup.isSampleMode && 'hasDividingLine']},[_c('div',{staticClass:\"item-setting\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_setup.t('Camera')))]),_c(_setup.DeviceSelect,{class:_setup.isDetailMode ? 'detail-select' : '',attrs:{\"device-type\":\"camera\"}})],1),(_setup.isDetailMode && _vm.withPreview)?_c('div',{staticClass:\"item-setting\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_setup.t('Preview')))]),_c('div',{staticClass:\"video-preview\",attrs:{\"id\":\"test-camera-preview\"}})]):_vm._e(),(_setup.isDetailMode)?_c('el-checkbox',{staticClass:\"mirror-checkbox custom-element-class\",attrs:{\"label\":_setup.t('Mirror')},model:{value:(_setup.isLocalStreamMirror),callback:function ($$v) {_setup.isLocalStreamMirror=$$v},expression:\"isLocalStreamMirror\"}}):_vm._e()],1),(_setup.isSampleMode)?_c('div',{class:['item-setting-container', _setup.isSampleMode && 'hasDividingLine']},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_setup.t('Resolution')))]),_c(_setup.VideoProfile)],1):_vm._e(),(_setup.isSampleMode)?_c('div',{class:['item-setting-container', _setup.isSampleMode && 'hasDividingLine']},[_c('div',{staticClass:\"item\",on:{\"click\":_setup.handleMoreCameraSetting}},[_vm._v(_vm._s(_setup.t('More Camera Settings')))])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('el-select',{staticClass:\"select custom-element-class\",attrs:{\"placeholder\":\"placeholder\",\"teleported\":false,\"popper-append-to-body\":false},model:{value:(_setup.localVideoQuality),callback:function ($$v) {_setup.localVideoQuality=$$v},expression:\"localVideoQuality\"}},_vm._l((_setup.videoProfileList),function(item,index){return _c('el-option',{key:index,attrs:{\"label\":item.label,\"value\":item.value}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { computed, watch } from 'vue';\nimport { useI18n } from '../../locales';\n\nimport TUIRoomEngine, { TUIVideoQuality } from '@tencentcloud/tuiroom-engine-js';\nimport { useRoomStore } from '../../stores/room';\nimport useGetRoomEngine from '../../hooks/useRoomEngine';\nimport { storeToRefs } from 'pinia';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'VideoProfile',\n setup(__props) {\n\nconst roomEngine = useGetRoomEngine();\nconst roomStore = useRoomStore();\nconst { localVideoQuality } = storeToRefs(roomStore);\n\nconst { t } = useI18n();\n\nconst videoProfileList = computed(() => [\n { label: t('Low Definition'), value: TUIVideoQuality.kVideoQuality_360p },\n { label: t('Standard Definition'), value: TUIVideoQuality.kVideoQuality_540p },\n { label: t('High Definition'), value: TUIVideoQuality.kVideoQuality_720p },\n { label: t('Super Definition'), value: TUIVideoQuality.kVideoQuality_1080p }]);\n\nwatch(localVideoQuality, (val: TUIVideoQuality) => {\n roomEngine.instance?.updateVideoQuality({ quality: val });\n});\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.updateVideoQuality({ quality: localVideoQuality.value });\n});\n\nreturn { __sfc: true,roomEngine, roomStore, localVideoQuality, t, videoProfileList }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VideoProfile.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VideoProfile.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./VideoProfile.vue?vue&type=template&id=00a64cb2&scoped=true&\"\nimport script from \"./VideoProfile.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./VideoProfile.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./VideoProfile.vue?vue&type=style&index=0&id=00a64cb2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00a64cb2\",\n null\n \n)\n\nexport default component.exports","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, computed, Ref, watch, onMounted, onUnmounted } from 'vue';\nimport DeviceSelect from './DeviceSelect.vue';\nimport VideoProfile from './VideoProfile.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport { SettingMode } from '../../constants/render';\nimport { isElectronEnv } from '../../utils/utils';\nimport { useI18n } from '../../locales';\n\nimport useGetRoomEngine from '../../hooks/useRoomEngine';\nimport { TRTCVideoMirrorType, TRTCVideoRotation, TRTCVideoFillMode } from '@tencentcloud/tuiroom-engine-js';\nimport { isMobile } from '../../utils/useMediaValue';\ninterface Props {\n mode?: SettingMode,\n withPreview?: boolean,\n}\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'VideoSettingTab',\n props: {\n mode: null,\n withPreview: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n mode?: SettingMode,\n withPreview?: boolean,\n}\n\nconst roomEngine = useGetRoomEngine();\nconst isElectron = isElectronEnv();\n\n\nconst settingMode = props.mode || SettingMode.SIMPLE;\nconst isSampleMode = computed(() => settingMode === SettingMode.SIMPLE);\nconst isDetailMode = computed(() => settingMode === SettingMode.DETAIL);\n\nconst basicStore = useBasicStore();\n\nconst isLocalStreamMirror: Ref = ref(basicStore.isLocalStreamMirror);\nwatch(isLocalStreamMirror, async (val: boolean) => {\n const trtcCloud = roomEngine.instance?.getTRTCCloud();\n if (isMobile) {\n await trtcCloud?.setLocalRenderParams({\n mirrorType: TRTCVideoMirrorType.TRTCVideoMirrorType_Auto,\n rotation: TRTCVideoRotation.TRTCVideoRotation0,\n fillMode: TRTCVideoFillMode.TRTCVideoFillMode_Fill,\n });\n } else {\n await trtcCloud?.setLocalRenderParams({\n mirrorType: val\n ? TRTCVideoMirrorType.TRTCVideoMirrorType_Enable : TRTCVideoMirrorType.TRTCVideoMirrorType_Disable,\n rotation: TRTCVideoRotation.TRTCVideoRotation0,\n fillMode: TRTCVideoFillMode.TRTCVideoFillMode_Fill,\n });\n }\n basicStore.setIsLocalStreamMirror(val);\n});\n\nconst { t } = useI18n();\n\n/**\n * Click [More Camera Settings].\n *\n * 点击【更多摄像头设置】\n**/\nfunction handleMoreCameraSetting() {\n basicStore.setShowSettingDialog(true);\n basicStore.setActiveSettingTab('video');\n}\n\nif (isDetailMode.value && props.withPreview) {\n onMounted(async () => {\n roomEngine.instance?.startCameraDeviceTest({ view: 'test-camera-preview' });\n if (isElectron) {\n // Electron 需要首次设置 mirrorType\n const trtcCloud = roomEngine.instance?.getTRTCCloud();\n await trtcCloud?.setLocalRenderParams({\n mirrorType: isLocalStreamMirror.value\n ? TRTCVideoMirrorType.TRTCVideoMirrorType_Enable : TRTCVideoMirrorType.TRTCVideoMirrorType_Disable,\n rotation: TRTCVideoRotation.TRTCVideoRotation0,\n fillMode: TRTCVideoFillMode.TRTCVideoFillMode_Fill,\n });\n }\n });\n\n onUnmounted(() => {\n roomEngine.instance?.stopCameraDeviceTest();\n });\n}\n\n\nreturn { __sfc: true,roomEngine, isElectron, props, settingMode, isSampleMode, isDetailMode, basicStore, isLocalStreamMirror, t, handleMoreCameraSetting, DeviceSelect, VideoProfile }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VideoSettingTab.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VideoSettingTab.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./VideoSettingTab.vue?vue&type=template&id=7cf837b8&scoped=true&\"\nimport script from \"./VideoSettingTab.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./VideoSettingTab.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./VideoSettingTab.vue?vue&type=style&index=0&id=7cf837b8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7cf837b8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:['icon-box', `${!_vm.hideHoverEffect && 'hover-effect'}`, `${_vm.disabled && 'disabled'}`]},[_c('span',{staticClass:\"icon-content\",on:{\"click\":function($event){return _vm.$emit('click-icon')}}},[(_vm.iconName)?_c(_setup.SvgIcon,{attrs:{\"icon-name\":_vm.iconName}}):_vm._e(),_vm._t(\"default\"),_c('span',{staticClass:\"title\",class:_vm.isActive ? 'title-active' : 'title'},[_vm._v(_vm._s(_vm.title))])],2),(_vm.hasMore)?_c('span',{ref:\"moreSpanRef\",staticClass:\"icon-arrow\",on:{\"click\":function($event){return _vm.$emit('click-more')}}},[_c(_setup.SvgIcon,{staticClass:\"arrow\",attrs:{\"icon-name\":\"arrow-up\",\"size\":\"small\"}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport SvgIcon from '../common/SvgIcon.vue';\n\ninterface Props {\n title: string,\n iconName?: string,\n hasMore?: boolean,\n hideHoverEffect?: boolean,\n disabled?: boolean,\n isActive?: boolean,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'IconButton',\n props: {\n title: null,\n iconName: null,\n hasMore: { type: Boolean },\n hideHoverEffect: { type: Boolean },\n disabled: { type: Boolean },\n isActive: { type: Boolean }\n },\n emits: ['click-icon', 'click-more'],\n setup(__props: any) {\n\n\n\n\n\nreturn { __sfc: true,SvgIcon }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./IconButton.vue?vue&type=template&id=3303a58b&scoped=true&\"\nimport script from \"./IconButton.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./IconButton.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./IconButton.vue?vue&type=style&index=0&id=3303a58b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3303a58b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{class:[_setup.svgClass, _vm.customClass],style:(_vm.customStyle),on:{\"click\":_setup.handleClick}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { computed } from 'vue';\n\ninterface Props {\n iconName: string,\n size?: string,\n customClass?: string,\n customStyle?: any,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SvgIcon',\n props: {\n iconName: null,\n size: null,\n customClass: null,\n customStyle: null\n },\n emits: ['click'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n iconName: string,\n size?: string,\n customClass?: string,\n customStyle?: any,\n}\n\n\n\nconst svgName = computed((): string => `${props.iconName}`);\nconst svgClass = computed((): string => {\n const validate = props.size && ['large', 'medium', 'small', 'custom'].includes(props.size);\n const size = validate ? props.size : 'large';\n return `svg-icon ${size}-icon ${svgName.value}`;\n});\n\nfunction handleClick(event: Event) {\n emit('click', event);\n}\n\nreturn { __sfc: true,props, emit, svgName, svgClass, handleClick }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SvgIcon.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SvgIcon.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./SvgIcon.vue?vue&type=template&id=52c6be46&scoped=true&\"\nimport script from \"./SvgIcon.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./SvgIcon.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./SvgIcon.vue?vue&type=style&index=0&id=52c6be46&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"52c6be46\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('el-drawer',{attrs:{\"visible\":_setup.visible,\"title\":_setup.props.title,\"before-close\":_setup.props.beforeClose,\"modal\":_setup.props.modal,\"direction\":_setup.props.direction,\"size\":_setup.props.size},on:{\"update:visible\":function($event){_setup.visible=$event}}},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, Ref, computed, watch } from 'vue';\n\ninterface Props {\n modelValue: boolean,\n title?: string,\n beforeClose?: Function,\n modal?: boolean,\n appendToBody?: boolean,\n width?: string,\n direction?: string,\n size?: number | string,\n customClass?: string,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Drawer',\n props: {\n modelValue: { type: Boolean },\n title: null,\n beforeClose: null,\n modal: { type: Boolean },\n appendToBody: { type: Boolean },\n width: null,\n direction: null,\n size: null,\n customClass: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n modelValue: boolean,\n title?: string,\n beforeClose?: Function,\n modal?: boolean,\n appendToBody?: boolean,\n width?: string,\n direction?: string,\n size?: number | string,\n customClass?: string,\n}\n\n\n\n\nconst visible: Ref = ref(props.modelValue);\n\nwatch(() => props.modelValue, (val) => {\n visible.value = val;\n});\n\n\nreturn { __sfc: true,props, visible }\n}\n\n})","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Drawer.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Drawer.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./Drawer.vue?vue&type=template&id=02a8d5b4&\"\nimport script from \"./Drawer.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./Drawer.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./Drawer.vue?vue&type=style&index=0&id=02a8d5b4&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"userInfoRef\",staticClass:\"user-info-container\"},[_c('div',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.handleUserControl),expression:\"handleUserControl\"}],staticClass:\"user-info-content\"},[_c('img',{staticClass:\"avatar\",attrs:{\"src\":_vm.avatarUrl || _setup.defaultAvatar}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.userName || _vm.userId))])]),(_setup.showUserControl)?_c('div',{staticClass:\"user-control-container\"},[_c('div',{staticClass:\"logout-mobile\"},[_c('div',{staticClass:\"logout-mobile-main\"},[_c('div',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _vm.$emit('log-out')),expression:\"() => $emit('log-out')\"}],staticClass:\"logout\"},[_c('i',[_vm._v(\" \"+_vm._s(_setup.t('Log out')))])]),_c('div',{staticClass:\"close\",on:{\"click\":function($event){$event.stopPropagation();_setup.showUserControl = false}}},[_c('i',[_vm._v(_vm._s(_setup.t('Cancel')))])])])])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ref, onMounted, computed, onUnmounted, Ref } from 'vue';\nimport { ICON_NAME } from '../../../constants/icon';\nimport { useI18n } from '../../../locales';\nimport { useBasicStore } from '../../../stores/basic';\nimport { storeToRefs } from 'pinia';\nimport { ElMessage } from '../../../elementComp';\nimport { MESSAGE_DURATION } from '../../../constants/message';\nimport TUIRoomEngine from '@tencentcloud/tuiroom-engine-js';\nimport { useRoomStore } from '../../../stores/room';\nimport { isInnerScene } from '../../../utils/constants';\nexport default function useUserInfo() {\n const { t } = useI18n();\n const basicStore = useBasicStore();\n const { userName } = storeToRefs(basicStore);\n\n const userInfoRef = ref();\n const showUserControl = ref(false);\n const showUserNameEdit: Ref = ref(false);\n\n const showEditNameItem: Ref = ref(isInnerScene);\n\n const tempUserName = ref('');\n const roomStore = useRoomStore();\n\n const iconName = computed(() => (showUserControl.value ? ICON_NAME.LineArrowUp : ICON_NAME.LineArrowDown));\n\n /**\n * Whether to display the user information operation box\n *\n * 是否显示用户信息操作框\n **/\n function handleUserControl() {\n showUserControl.value = !showUserControl.value;\n }\n\n /**\n * Hide the user information action box\n *\n * 隐藏用户信息操作框\n **/\n function hideUserControl(event: Event) {\n if (!userInfoRef.value.contains(event.target)) {\n showUserControl.value = false;\n }\n }\n\n /**\n * Show change name dialog\n *\n * 展示修改名字 dialog\n **/\n function showEditUserNameDialog() {\n showUserNameEdit.value = true;\n tempUserName.value = userName.value;\n }\n\n /**\n * Close the modify name dialog\n *\n * 关闭修改名字的 dialog\n **/\n function closeEditUserNameDialog() {\n showUserNameEdit.value = false;\n }\n\n /**\n * Save the new userName\n *\n * 保存新的 userName\n **/\n async function handleSaveUserName(userName: string) {\n if (userName.length === 0) {\n ElMessage({\n type: 'warning',\n message: t('Username length should be greater than 0'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n return;\n }\n basicStore.setUserName(userName);\n TUIRoomEngine.setSelfInfo({ userName, avatarUrl: roomStore.localUser.avatarUrl || '' });\n roomStore.setLocalUser({ userName });\n closeEditUserNameDialog();\n }\n\n\n onMounted(() => {\n window.addEventListener('click', hideUserControl);\n });\n\n onUnmounted(() => {\n window.removeEventListener('click', hideUserControl);\n });\n return {\n t,\n showEditNameItem,\n showUserControl,\n iconName,\n showUserNameEdit,\n userInfoRef,\n tempUserName,\n handleUserControl,\n showEditUserNameDialog,\n closeEditUserNameDialog,\n handleSaveUserName,\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport defaultAvatar from '../../../assets/imgs/avatar.png';\nimport useUserInfo from './useUserInfoHooks';\nimport '../../../directives/vTap';\ninterface Props {\n userId: string,\n userName: string,\n avatarUrl?: string,\n}\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserInfoH5',\n props: {\n userId: null,\n userName: null,\n avatarUrl: null\n },\n emits: ['log-out'],\n setup(__props: any) {\n\nconst {\n userInfoRef,\n showUserControl,\n t,\n handleUserControl,\n} = useUserInfo();\n\n\n\nreturn { __sfc: true,userInfoRef, showUserControl, t, handleUserControl, defaultAvatar }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UserInfoH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UserInfoH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./UserInfoH5.vue?vue&type=template&id=13917005&\"\nimport script from \"./UserInfoH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./UserInfoH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./UserInfoH5.vue?vue&type=style&index=0&id=13917005&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"userInfoRef\",staticClass:\"user-info-container\"},[_c('div',{staticClass:\"user-info-content\",on:{\"click\":_setup.handleUserControl}},[_c(_setup.Avatar,{staticClass:\"avatar\",attrs:{\"img-src\":_vm.avatarUrl}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.userName || _vm.userId))]),_c(_setup.SvgIcon,{staticClass:\"down-icon\",attrs:{\"icon-name\":_setup.iconName,\"size\":\"medium\"}})],1),(_setup.showUserControl)?_c('div',{staticClass:\"user-control-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showEditNameItem),expression:\"showEditNameItem\"}]},[_c('div',{staticClass:\"user-control-item-head\",on:{\"click\":_setup.showEditUserNameDialog}},[_vm._v(_vm._s(_setup.t('Edit profile')))])]),_c('div',{staticClass:\"user-control-item-foot\",on:{\"click\":function($event){return _vm.$emit('log-out')}}},[_vm._v(_vm._s(_setup.t('Log out')))])]):_vm._e(),_c(_setup.Dialog,{staticClass:\"custom-element-class\",attrs:{\"title\":_setup.t('Edit profile'),\"width\":\"420px\",\"model-value\":_setup.showUserNameEdit,\"modal\":true,\"append-to-body\":false,\"close-on-click-modal\":true},on:{\"close\":_setup.closeEditUserNameDialog}},[_c('div',{staticClass:\"dialog-content\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_setup.t('User Name')))]),_c('div',{staticClass:\"input-container\"},[_c('el-input',{attrs:{\"type\":\"text\",\"maxlength\":\"80\",\"placeholder\":_setup.t('Please input user name')},model:{value:(_setup.tempUserName),callback:function ($$v) {_setup.tempUserName=$$v},expression:\"tempUserName\"}})],1)]),_c('div',{staticClass:\"dialog-footer\"},[_c('el-button',{on:{\"click\":_setup.closeEditUserNameDialog}},[_vm._v(_vm._s(_setup.t('Cancel')))]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _setup.handleSaveUserName(_setup.tempUserName)}}},[_vm._v(_vm._s(_setup.t('Save')))])],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport Dialog from '../../../elementComp/Dialog';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport useUserInfo from './useUserInfoHooks';\nimport Avatar from '../../base/Avatar.vue';\ninterface Props {\n userId: string,\n userName: string,\n avatarUrl?: string,\n }\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserInfoPC',\n props: {\n userId: null,\n userName: null,\n avatarUrl: null\n },\n emits: ['log-out'],\n setup(__props: any) {\n\nconst {\n t,\n showEditNameItem,\n iconName,\n showUserControl,\n showUserNameEdit,\n userInfoRef,\n tempUserName,\n handleUserControl,\n showEditUserNameDialog,\n closeEditUserNameDialog,\n handleSaveUserName } = useUserInfo();\n \n\n\nreturn { __sfc: true,t, showEditNameItem, iconName, showUserControl, showUserNameEdit, userInfoRef, tempUserName, handleUserControl, showEditUserNameDialog, closeEditUserNameDialog, handleSaveUserName, Dialog, SvgIcon, Avatar }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UserInfoPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UserInfoPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./UserInfoPC.vue?vue&type=template&id=6645c3b3&\"\nimport script from \"./UserInfoPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./UserInfoPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./UserInfoPC.vue?vue&type=style&index=0&id=6645c3b3&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport UserInfoH5 from './UserInfoH5.vue';\nimport UserInfoPc from './UserInfoPC.vue';\nimport { isMobile } from '../../../utils/useMediaValue';\n\n\nconst UserInfo = isMobile ? UserInfoH5 : UserInfoPc;\n\nexport default UserInfo;\n\n","export enum ICON_NAME {\n MicOn = 'mic-on',\n MicOff = 'mic-off',\n MicOffDisabled = 'mic-off-gray',\n CameraOn = 'camera-on',\n CameraOff = 'camera-off',\n CameraOffDisabled = 'camera-off-gray',\n ArrowBorderDown = 'arrow-border-down',\n ScreenSharing = 'screen-sharing',\n ScreenShare = 'screen-share',\n ScreenShareStopped = 'screen-share-stopped',\n ScreenShareDisabled = 'screen-share-disabled',\n ChatActive = 'chat-active',\n Chat = 'chat',\n ExitFullScreen = 'exit-fullscreen',\n FullScreen = 'full-screen',\n InviteActive = 'invite-active',\n Invite = 'invite',\n ManageMemberActive = 'manage-member-active',\n ManageMember = 'manage-member',\n More = 'more',\n MoreActive = 'more-active',\n SettingActive = 'setting-active',\n Setting = 'setting',\n LineArrowUp = 'line-arrow-up',\n LineArrowDown = 'line-arrow-down',\n ApplyOnSeat = 'apply',\n ApplyActive = 'apply-active',\n GoOffSeat = 'go-off-seat',\n}\n","export enum WARNING_MESSAGE {\n UNMUTE_LOCAL_MIC_FAIL_MUTE_ALL = 'Has been fully muted and cannot open the microphone',\n UNMUTE_LOCAL_MIC_FAIL_MUTE_BY_MASTER = 'Has been muted by the host and cannot open the microphone',\n UNMUTE_LOCAL_MIC_FAIL_AUDIENCE = 'To apply to speak in the room, please raise your hand first to apply for the microphone',\n UNMUTE_LOCAL_CAMERA_FAIL_MUTE_ALL = 'Has been full static painting, can not open the video',\n UNMUTE_LOCAL_CAMERA_FAIL_MUTE_BY_MASTER = 'It has been stilled by the host and cannot open the video',\n UNMUTE_LOCAL_CAMERA_FAIL_AUDIENCE = 'To apply to speak in the room, please raise your hand first to apply for the microphone',\n};\n\nexport enum MESSAGE_DURATION {\n NORMAL = 3000,\n LONG = 5000\n};\n","\nexport enum LAYOUT {\n SIX_EQUAL_POINTS = 'six_equal_points',\n NINE_EQUAL_POINTS = 'nine_equal_points',\n TWENTY_FIVE_EQUAL_POINTS = 'twenty_five_equal_points',\n RIGHT_SIDE_LIST = 'right_side_list',\n TOP_SIDE_LIST = 'top_side_list',\n LARGE_SMALL_WINDOW = 'large_small_window',\n GRID_VIEW= 'grid_view',\n};\n\nexport enum SettingMode {\n SIMPLE = 'simple',\n DETAIL = 'detail',\n}\n","import Vue from '../utils/vue';\n\nclass VueTouch {\n public dom: HTMLElement;\n public callback: Function;\n public isMove: boolean;\n\n constructor(el: HTMLElement, binding: any) {\n this.dom = el;\n this.callback = binding.value;\n\n this.isMove = false;\n\n el?.addEventListener('touchstart', () => {\n this.touchstart();\n }, { passive: true });\n\n el?.addEventListener('touchmove', () => {\n this.touchmove();\n }, { passive: true});\n\n el?.addEventListener('touchend', () => {\n this.touchend();\n }, { passive: true});\n }\n\n touchstart() {\n this.isMove = false;\n }\n\n touchmove() {\n this.isMove = true;\n }\n\n touchend() {\n if (!this.isMove) {\n this.callback();\n }\n }\n}\n\nVue.directive('tap', {\n bind: function (el: HTMLElement, binding: any) {\n return new VueTouch(el, binding);\n }\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.props.modelValue)?_c('div',{staticClass:\"dialog-container\"},[_c('span',{staticClass:\"dialog-title\"},[_vm._v(_vm._s(_setup.props.title))]),_c('div',{staticClass:\"dialog-content\"},[_vm._t(\"default\")],2),_c('div',{staticClass:\"dialog-footer\"},[_vm._t(\"footer\")],2)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\ninterface Props {\n modelValue: boolean,\n title?: string,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'DialogH5',\n props: {\n modelValue: { type: Boolean },\n title: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n modelValue: boolean,\n title?: string,\n}\n\n\n\n\nreturn { __sfc: true,props }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DialogH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DialogH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./DialogH5.vue?vue&type=template&id=a402edee&\"\nimport script from \"./DialogH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./DialogH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./DialogH5.vue?vue&type=style&index=0&id=a402edee&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('el-dialog',{attrs:{\"visible\":_setup.props.modelValue,\"title\":_setup.props.title,\"before-close\":_setup.props.beforeClose,\"modal\":_setup.props.modal,\"append-to-body\":_setup.props.appendToBody,\"width\":_setup.props.width,\"show-close\":_setup.props.showClose,\"close-on-click-modal\":_setup.props.closeOnClickModal,\"close-on-press-escape\":_setup.props.closeOnPressEscape,\"modal-append-to-body\":false},on:{\"update:visible\":function($event){return _vm.$set(_setup.props, \"modelValue\", $event)}},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_vm._t(\"footer\")]},proxy:true}],null,true)},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\ninterface Props {\n modelValue: boolean,\n title?: string,\n beforeClose?: Function,\n modal?: boolean,\n appendToBody?: boolean,\n width?: string,\n showClose?: boolean,\n closeOnClickModal?: boolean,\n closeOnPressEscape?: boolean,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'DialogPC',\n props: {\n modelValue: { type: Boolean },\n title: null,\n beforeClose: null,\n modal: { type: Boolean },\n appendToBody: { type: Boolean },\n width: null,\n showClose: { type: Boolean },\n closeOnClickModal: { type: Boolean },\n closeOnPressEscape: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n modelValue: boolean,\n title?: string,\n beforeClose?: Function,\n modal?: boolean,\n appendToBody?: boolean,\n width?: string,\n showClose?: boolean,\n closeOnClickModal?: boolean,\n closeOnPressEscape?: boolean,\n}\n\n\n\n\n\nreturn { __sfc: true,props }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DialogPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DialogPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./DialogPC.vue?vue&type=template&id=0abc050e&\"\nimport script from \"./DialogPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./DialogPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./DialogPC.vue?vue&type=style&index=0&id=0abc050e&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import DialogH5 from './DialogH5.vue';\nimport DialogPC from './DialogPC.vue';\nimport { isMobile } from '../../utils/useMediaValue';\nconst Dialog = isMobile ? DialogH5 : DialogPC;\n\nexport default Dialog;\n","import { Message, MessageBox } from 'element-ui';\n\nconst ElMessage = Message;\n\nconst ElMessageBox = MessageBox;\n\nexport { ElMessage, ElMessageBox };","import TUIRoomEngine from '@tencentcloud/tuiroom-engine-js';\nimport { isVue3 } from '../utils/constants';\n\nconst roomEngine: Record = { instance: null };\nconst vueVersion = isVue3 ? 'vue3' : 'vue2';\nexport default function useGetRoomEngine() {\n return roomEngine;\n}\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance = new TUIRoomEngine();\n roomEngine.instance?.callExperimentalAPI(JSON.stringify({\n api: 'setFramework',\n params: {\n component: 'TUIRoomKit',\n language: vueVersion,\n },\n }));\n});\n","export default {\n '': '',\n 'Sign in': '请登录',\n 'Phone Login': '手机登录',\n 'Email Login': '邮箱登录',\n 'I have read and agree to the': '我已阅读并同意',\n 'Privacy Policy': '隐私协议',\n and: '和',\n 'Terms of Use': '用户协议',\n Login: '登录',\n 'Mobile number': '请输入您的手机号',\n 'Verification code': '请输入验证码',\n 'Email address': '请输入邮箱',\n 'Please enter a valid phone number!': '请输入正确的手机号!',\n 'Please enter a valid email address!': '请输入正确的邮箱地址!',\n 'Please enter your phone number!': '请输入手机号!',\n 'Please enter your email address!': '请输入邮箱地址!',\n 'Please enter the verification code!': '请输入验证码!',\n 'Please accept the privacy policy and user agreement!': '请同意隐私协议及用户协议!',\n 'Incorrect verification code, please check the code!': '验证码错误,请检查验证码!',\n 'The verification code has expired, please retrieve a new one!': '验证码已过期,请重新获取验证码!',\n 'The verification code has been used, please retrieve a new one!': '验证码已使用,请重新获取验证码!',\n 'Login failed, please try again.': '登录失败,请重试',\n SEND: '获取验证码',\n ' ': '倒计时',\n 'The room does not exist, please confirm the room number or create a room!': '房间不存在,请确认房间号或创建房间!',\n 'Log out': '退出登录',\n 'Edit profile': '编辑资料',\n 'User Name': '用户名',\n 'Please input user name': '请输入用户名',\n 'Username length should be greater than 0': '昵称长度应该大于0',\n Save: '保存',\n Camera: '摄像头',\n Mic: '麦克风',\n 'Off Camera': '摄像头已关闭',\n 'Mic settings': '麦克风设置',\n Output: '输出',\n Speaker: '扬声器',\n Test: '测试',\n Stop: '停止测试',\n Preview: '视频画面',\n Mirror: '翻转镜像',\n Resolution: '分辨率',\n 'More Camera Settings': '更多摄像头设置',\n 'Join the room ?': '是否进入房间?',\n 'You are invited to room ': '您被邀请进入 ',\n Room: '房间',\n Join: '确定进入',\n 'New Room': '新建房间',\n 'Room Type': '房间类型',\n 'Your Name': '您的名字',\n 'Turn on the microphone': '开启麦克风',\n 'Turn on the speaker': '开启扬声器',\n 'Turn on the video': '开启视频',\n 'Free Speech Room': '自由发言房间',\n 'Raise Hand Room': '举手发言房间',\n 'Join Room': '进入房间',\n 'Enter room ID': '输入房间号',\n 'video conferencing': ' 的视频会议',\n 'Room ID': '房间号',\n 'Low Definition': '流畅',\n 'Standard Definition': '标清',\n 'High Definition': '高清',\n 'Super Definition': '超清',\n 'End sharing': '结束共享',\n 'Stop sharing?': '是否停止屏幕共享?',\n 'Stop sharing': '停止共享',\n Sure: '确定',\n Sharing: '屏幕共享中',\n 'Share screen': '共享屏幕',\n 'Others will no longer see your screen after you stop sharing. Are you sure you want to stop?': '是否结束当前的共享屏幕,停止后所有人将无法继续观看屏幕内容',\n 'Others will no longer see your screen after you stop sharing.': '停止后所有人将无法继续观看屏幕内容',\n 'You currently do not have sharing permission, please raise your hand to apply for sharing permission first': '您当前没有共享权限,请先举手申请上台获取共享权限',\n Host: '主持人',\n Me: '我',\n me: '我',\n More: '更多',\n 'Raise hand': '举手',\n Agree: '同意',\n Chat: '聊天',\n Cancel: '取消',\n Exit: '退出全屏',\n 'Full screen': '全屏',\n Members: '管理成员',\n Invite: '邀请成员',\n Settings: '设置',\n EndPC: '结束会议',\n EndH5: '结束',\n Tips: '提示',\n 'You are currently the room host, please select the appropriate action.If you select \"Leave Room\", the room will not be dissolved and you will need to appoint a new host.': '您当前是房间主持人,请选择相应操作。若选择“离开房间”,则房间不会解散,您需要指定新主持人。',\n 'If you do not want to end the meeting, please designate a new host before leaving the meeting.': '如果您不想结束会议,请在离开会议前指定新的主持人。',\n 'Are you sure you want to leave this room?': '确定离开房间吗?',\n 'New host': '选择主持人',\n 'Transfer and leave': '移交并离开',\n 'Leave room?': '是否要离开房间',\n 'Select a new host': '请选择新的房间主持人',\n 'Appoint a new host': '指定一位新的主持人',\n 'The host closed the room.': '主持人结束会议,已解散房间',\n Note: '通知',\n Confirm: '确认',\n Leave: '离开房间',\n Dismiss: '解散房间',\n 'Moderator changed to ': '主持人已变更为',\n 'Muted by the moderator': '已被主持人禁言',\n 'Type a message': '说点什么...',\n Send: '发送',\n 'Failed to send the message': '发送消息失败',\n 'Applying for the stage': '正在申请上台',\n Check: '查看',\n 'Disable all audios': '禁言所有人',\n 'Disable all videos': '禁画所有人',\n 'All mute': '全体静音',\n 'All current and new members will be muted.': '所有及新加入的成员将被静音',\n 'All current and new members will turn off their videos.': '所有及新加入的成员将关闭视频',\n 'All stop video': '全体禁画',\n 'Lift all mute': '取消全体静音',\n 'Should we turn on the video for everyone': '是否打开全员视频',\n 'Can you lift all mute': '是否取消全体静音',\n 'Lift stop all video': '取消全体禁画',\n 'No relevant user found.': '未找到相关用户',\n 'Member List': '成员列表',\n Unmute: '解除禁言',\n 'Cancel Unmute': '取消解除禁言',\n Mute: '禁言',\n members: '人',\n 'Failed to get chat message': '获取聊天消息失败',\n 'Agree to the stage': '同意上台',\n 'Cancel stage': '取消邀请上台',\n 'Invite stage': '邀请上台',\n 'Refuse stage': '拒绝上台',\n 'Enable video': '解除禁画',\n 'Cancel Enable video': '取消解除禁画',\n 'Disable video': '禁画',\n 'Enable chat': '允许文字聊天',\n 'Disable chat': '禁止文字聊天',\n 'Kick out': '踢出房间',\n 'is sharing their screen': '的屏幕分享',\n 'Apply to stage application': '请求上台申请',\n Reject: '拒绝',\n 'Reject All': '全部拒绝',\n 'Please raise your hand to apply': '如果您想发言请先举手申请上麦',\n 'The host invites you to speak on stage': '主持人邀请您上台发言',\n 'After agreeing to go on stage, you can turn on the camera and microphone. Do you agree to go on stage?': '同意上台后可打开摄像头和麦克风,是否同意上台?',\n 'Hand down': '手放下',\n 'Step down(Master)': '邀请下台',\n 'Step down': '下台',\n 'The host has approved your application': '主持人同意了你的上台申请',\n 'The host has rejected your application for the stage': '主持人拒绝了你的上台申请',\n 'You have been invited by the host to step down, please raise your hand if you need to speak': '您已被主持人邀请下台,需要发言请先举手',\n 'Select a screen/window': '选择屏幕/窗口',\n Screen: '屏幕',\n Window: '窗口',\n Share: '开始分享',\n 'Select a screen or window first': '请选择要分享的屏幕或者窗口',\n Grid: '一屏九等分',\n 'Gallery on right': '右侧成员列表',\n 'Gallery at top': '顶部成员列表',\n 'Network ': '网络',\n 'Latency: ': '网络延迟:',\n 'Frame rate: ': '帧率:',\n 'Bitrate: ': '码率:',\n Unknown: '状态未知',\n Excellent: '状态极佳',\n Good: '状态较好',\n Fair: '状态一般',\n Poor: '状态差',\n 'Very poor': '状态极差',\n Disconnected: '断开连接',\n 'Share the room ID or invite link': '您可以通过复制房间号或者邀请链接的方式邀请更多人加入房间',\n 'Invite by room number': '通过房间号邀请',\n 'Invite via room link': '通过房间链接邀请',\n 'Room Link': '房间链接',\n 'You can share the room number or link to invite more people to join the room.': '您可以分享房间号或链接邀请更多人加入房间。',\n 'If you have any questions, please feel free to join our QQ group or send an email': '如果有任何问题欢迎加入我们的QQ群或者发送邮件。',\n 'Room QR code': '房间二维码',\n 'Search for conference attendees': '搜索参会成员',\n 'Invite via client scheme': '通过客户端 scheme 邀请',\n 'Contact us': '联系我们',\n 'Member management': '成员管理',\n 'Grid view': '宫格视图',\n 'Join our QQ group chat or email us.': '如果有任何问题欢迎加入我们的QQ群或者发送邮件',\n 'group chat': 'QQ 群',\n Email: '邮箱地址',\n 'Audio settings': '声音设置',\n 'Camera settings': '摄像头设置',\n 'Copied successfully': '复制成功',\n 'accepted the invitation to the stage': '接受了上台邀请',\n 'declined the invitation to the stage': '拒绝了上台邀请',\n 'The host has muted all': '主持人已开启全体静音',\n 'The host has unmuted all': '主持人已解除全体静音',\n 'The host has turned off your microphone': '主持人已关闭您的麦克风',\n 'The host invites you to turn on the microphone': '主持人邀请你打开麦克风',\n 'The host has turned on the ban on all paintings': '主持人已开启全体禁画',\n 'The host has lifted the ban on all paintings': '主持人已解除全体禁画',\n 'The host has turned on the ban on all chat': '主持人已开启全体禁止文字聊天',\n 'The host has lifted the ban on all chat': '主持人已解除全体禁止文字聊天',\n 'The host has turned off your camera': '主持人已关闭您的摄像头',\n 'The host invites you to turn on the camera': '主持人邀请你打开摄像头',\n 'The host has turned off your screen sharing': '主持人已关闭您的屏幕分享',\n 'Turn on the camera': '打开摄像头',\n 'Keep it closed': '保持关闭',\n 'You have been banned from text chat by the host': '您被主持人禁止文字聊天',\n 'You are allowed to text chat by the host': '您被主持人允许文字聊天',\n 'kicked out of the room by the host': '被主持人踢出房间',\n 'kicked out of the room by other device': '相同账号在其他客户端进入房间',\n 'kicked out of the room by serve': '被服务端踢出房间',\n 'Reject on Stage failed, please retry': '拒绝 {userName} 上台失败, 请重试',\n 'Has been fully muted and cannot open the microphone': '已被全员静音,无法打开麦克风',\n 'Has been muted by the host and cannot open the microphone': '已被主持人静音,无法打开麦克风',\n 'To apply to speak in the room, please raise your hand first to apply for the microphone': '申请发言房间,请先举手申请上麦',\n 'Has been full static painting, can not open the video': '已被全员静画,无法打开视频',\n 'It has been stilled by the host and cannot open the video': '已被主持人静画,无法打开视频',\n 'Failed to enter the room.': '进入房间失败!',\n 'Has been full static painting, can not share your screen': '已被全员静画,无法打开屏幕分享',\n 'Microphone not detected on current device': '当前设备未检测到麦克风',\n 'Camera not detected on current device': '当前设备未检测到摄像头',\n 'Camera And Microphone not detected on current device': '当前设备未检测到摄像头和麦克风',\n 'Another user is currently sharing the screen, screen sharing is not possible.': '当前有其他用户正在屏幕共享,无法进行屏幕共享',\n 'This action causes the room to be exited, does it continue?': '该操作会导致退出房间,是否继续?',\n 'This action causes the room to be disbanded, does it continue?': '该操作会导致解散房间,是否继续?',\n};\n","export default {\n '': '',\n 'Sign in': 'Sign in',\n 'Phone Login': 'Phone Login',\n 'Email Login': 'Email Login',\n 'I have read and agree to the': 'I have read and agree to the',\n 'Privacy Policy': 'Privacy Policy',\n and: 'and',\n 'Terms of Use': 'Terms of Use',\n Login: 'Login',\n 'Mobile number': 'Mobile number',\n 'Verification code': 'Verification code',\n 'Email address': 'Email address',\n 'Please enter a valid phone number!': 'Please enter a valid phone number!',\n 'Please enter a valid email address!': 'Please enter a valid email address!',\n 'Please enter your phone number!': 'Please enter your phone number!',\n 'Please enter your email address!': 'Please enter your email address!',\n 'Please enter the verification code!': 'Please enter the verification code!',\n 'Please accept the privacy policy and user agreement!': 'Please accept the privacy policy and user agreement!',\n 'Incorrect verification code, please check the code!': 'Incorrect verification code, please check the code!',\n 'The verification code has expired, please retrieve a new one!': 'The verification code has expired, please retrieve a new one!',\n 'The verification code has been used, please retrieve a new one!': 'The verification code has been used, please retrieve a new one!',\n 'Login failed, please try again.': 'Login failed, please try again.',\n SEND: 'SEND',\n ' ': ' ',\n 'The room does not exist, please confirm the room number or create a room!': 'The room does not exist, please confirm the room number or create a room!',\n 'Log out': 'Log out',\n 'Edit profile': 'Edit profile',\n 'User Name': 'User Name',\n 'Please input user name': 'Please input user name',\n 'Username length should be greater than 0': 'Username length should be greater than 0',\n Save: 'Save',\n Camera: 'Camera',\n Mic: 'Mic',\n 'Off Camera': 'Off Camera',\n 'Mic settings': 'Mic settings',\n Output: 'Output',\n Speaker: 'Speaker',\n Test: 'Test',\n Stop: 'Stop',\n Preview: 'Preview',\n Mirror: 'Mirror',\n Resolution: 'Resolution',\n 'More Camera Settings': 'More Camera Settings',\n 'Join the room ?': 'Join the room ?',\n 'You are invited to room ': 'You are invited to room ',\n Room: 'Room',\n Join: 'Join',\n Sure: 'Sure',\n 'New Room': 'New Room',\n 'Room Type': 'Room Type',\n 'Your Name': 'Your Name',\n 'Grid view': 'Grid view',\n 'Speaker view': 'Speaker view',\n 'Turn on the microphone': 'Turn on the microphone',\n 'Turn on the speaker': 'Turn on the speaker',\n 'Turn on the video': 'Turn on the video',\n 'Free Speech Room': 'Free Speech Room',\n 'Raise Hand Room': 'Raise Hand Room',\n 'Join Room': 'Join Room',\n 'Enter room ID': 'Enter room ID',\n 'video conferencing': ' \\'s video conferencing',\n 'Room ID': 'Room ID',\n 'Low Definition': 'Low Definition',\n 'Standard Definition': 'Standard Definition',\n 'High Definition': 'High Definition',\n 'Super Definition': 'Super Definition',\n 'End sharing': 'End sharing',\n 'Stop sharing?': 'Stop sharing?',\n 'Stop sharing': 'Stop sharing',\n Sharing: 'Sharing',\n 'Share screen': 'Share screen',\n 'Others will no longer see your screen after you stop sharing. Are you sure you want to stop?': 'Others will no longer see your screen after you stop sharing. Are you sure you want to stop?',\n 'Others will no longer see your screen after you stop sharing.': 'Others will no longer see your screen after you stop sharing.',\n 'You currently do not have sharing permission, please raise your hand to apply for sharing permission first': 'You currently do not have sharing permission, please raise your hand to apply for sharing permission first',\n Host: 'Host',\n Me: 'Me',\n me: 'me',\n More: 'More',\n 'Raise hand': 'Raise hand',\n Agree: 'Agree',\n Chat: 'Chat',\n Cancel: 'Cancel',\n Exit: 'Exit',\n 'Full screen': 'Full screen',\n Members: 'Members',\n Invite: 'Invite',\n Settings: 'Settings',\n EndPC: 'End',\n EndH5: 'End',\n 'You are currently the room host, please select the appropriate action.If you select \"Leave Room\", the room will not be dissolved and you will need to appoint a new host.': 'You are currently the room host, please select the appropriate action.If you select \"Leave Room\", the room will not be dissolved and you will need to appoint a new host.',\n 'If you do not want to end the meeting, please designate a new host before leaving the meeting.': 'If you do not want to end the meeting, please designate a new host before leaving the meeting.',\n 'Are you sure you want to leave this room?': 'Are you sure you want to leave this room?',\n 'New host': 'New host',\n 'Transfer and leave': 'Transfer and leave',\n 'Leave room?': 'Leave room?',\n 'Select a new host': 'Select a new host',\n 'Appoint a new host': 'Appoint a new host',\n 'The host closed the room.': 'The host closed the room.',\n Note: 'Note',\n Confirm: 'Confirm',\n Leave: 'Leave',\n Dismiss: 'Dismiss',\n 'Moderator changed to ': 'Moderator changed to ',\n 'Muted by the moderator': 'Muted by the moderator',\n 'Type a message': 'Type a message',\n Send: 'Send',\n 'Failed to send the message': 'Failed to send the message',\n 'Applying for the stage': 'Applying for the stage',\n Check: 'Check',\n 'Disable all audios': 'Disable all audios',\n 'Disable all videos': 'Disable all videos',\n 'Member List': 'Member List',\n 'All mute': 'All mute',\n 'All stop video': 'All stop video',\n 'Lift all mute': 'Lift all mute',\n 'Should we turn on the video for everyone': 'Should we turn on the video for everyone',\n 'Can you lift all mute': 'Can you lift all mute',\n 'Lift stop all video': 'Lift stop all video',\n Unmute: 'Unmute',\n 'Cancel Unmute': 'Cancel Unmute',\n Mute: 'Mute',\n members: 'members',\n 'Failed to get chat message': 'Failed to get chat message',\n 'Agree to the stage': 'Agree to the stage',\n 'Cancel stage': 'Cancel stage',\n 'Invite stage': 'Invite stage',\n 'Refuse stage': 'Refuse stage',\n 'Step down': 'Step down',\n 'Step down(Master)': 'Step down',\n 'Enable video': 'Enable video',\n 'Disable video': 'Disable video',\n 'Enable chat': 'Enable chat',\n 'Disable chat': 'Disable chat',\n 'Kick out': 'Kick out',\n 'is sharing their screen': 'is sharing their screen',\n 'Apply to stage application': 'Apply to stage application',\n Reject: 'Reject',\n 'Reject All': 'Reject All',\n 'Please raise your hand to apply': 'Please raise your hand to apply',\n 'The host invites you to speak on stage': 'The host invites you to speak on stage',\n 'After agreeing to go on stage, you can turn on the camera and microphone. Do you agree to go on stage?': 'After agreeing to go on stage, you can turn on the camera and microphone. Do you agree to go on stage?',\n 'Hand down': 'Hand down',\n 'The host has approved your application': 'The host has approved your application',\n 'The host has rejected your application for the stage': 'The host has rejected your application for the stage',\n 'You have been invited by the host to step down, please raise your hand if you need to speak': 'You have been invited by the host to step down, please raise your hand if you need to speak',\n 'Select a screen/window': 'Select a screen/window',\n Screen: 'Screen',\n Window: 'Window',\n Share: 'Share',\n 'Select a screen or window first': 'Select a screen or window first',\n Grid: 'Grid',\n Tips: 'Tips',\n 'Gallery on right': 'Gallery on right',\n 'Gallery at top': 'Gallery at top',\n 'Network ': 'Network ',\n 'Latency: ': 'Latency: ',\n 'Frame rate: ': 'Frame rate: ',\n 'Bitrate: ': 'Bitrate: ',\n Unknown: 'Unknown',\n Excellent: 'Excellent',\n Good: 'Good',\n Fair: 'Fair',\n Poor: 'Poor',\n 'Very poor': 'Very poor',\n Disconnected: 'Disconnected',\n 'Share the room ID or invite link': 'Share the room ID or invite link',\n 'Invite by room number': 'Invite by room number',\n 'Invite via room link': 'Invite via room link',\n 'Room Link': 'Room Link',\n 'You can share the room number or link to invite more people to join the room.': 'You can share the room number or link to invite more people to join the room.',\n 'If you have any questions, please feel free to join our QQ group or send an email': 'If you have any questions, please feel free to join our QQ group or send an email',\n 'Room QR code': 'Room QR code',\n 'Search for conference attendees': 'Search for conference attendees',\n 'Invite via client scheme': 'Invite via client scheme',\n 'All current and new members will be muted.': 'All current and new members will be muted',\n 'All current and new members will turn off their videos.': 'All current and new members will turn off their videos',\n 'No relevant user found.': 'No relevant user found.',\n 'Contact us': 'Contact us',\n 'Member management': 'Member management',\n 'Join our QQ group chat or email us.': 'Join our QQ group chat or email us.',\n 'group chat': 'group chat',\n Email: 'Email',\n 'Audio settings': 'Audio settings',\n 'Camera settings': 'Camera settings',\n 'Copied successfully': 'Copied successfully',\n 'accepted the invitation to the stage': 'accepted the invitation to the stage',\n 'declined the invitation to the stage': 'declined the invitation to the stage',\n 'The host has muted all': 'The host has muted all',\n 'The host has unmuted all': 'The host has unmuted all',\n 'The host has turned off your microphone': 'The host has turned off your microphone',\n 'The host invites you to turn on the microphone': 'The host invites you to turn on the microphone',\n 'The host has turned on the ban on all paintings': 'The host has turned on the ban on all paintings',\n 'The host has lifted the ban on all paintings': 'The host has lifted the ban on all paintings',\n 'The host has turned on the ban on all chat': 'The host has turned on the ban on all chat',\n 'The host has lifted the ban on all chat': 'The host has lifted the ban on all chat',\n 'The host has turned off your camera': 'The host has turned off your camera',\n 'The host invites you to turn on the camera': 'The host invites you to turn on the camera',\n 'The host has turned off your screen sharing': 'The host has turned off your screen sharing',\n 'Turn on the camera': 'Turn on the camera',\n 'Keep it closed': 'Keep it closed',\n 'You have been banned from text chat by the host': 'You have been banned from text chat by the host',\n 'You are allowed to text chat by the host': 'You are allowed to text chat by the host',\n 'kicked out of the room by the host': 'kicked out of the room by the host',\n 'kicked out of the room by other device': 'kicked out of the room by other device',\n 'kicked out of the room by serve': 'kicked out of the room by serve',\n 'Reject on Stage failed, please retry': 'Reject {userName} on Stage failed, please retry',\n 'Has been fully muted and cannot open the microphone': 'Has been fully muted and cannot open the microphone',\n 'Has been muted by the host and cannot open the microphone': 'Has been muted by the host and cannot open the microphone',\n 'To apply to speak in the room, please raise your hand first to apply for the microphone': 'To apply to speak in the room, please raise your hand first to apply for the microphone',\n 'Has been full static painting, can not open the video': 'Has been full static painting, can not open the video',\n 'It has been stilled by the host and cannot open the video': 'It has been stilled by the host and cannot open the video',\n 'Failed to enter the room.': 'Failed to enter the room.',\n 'Has been full static painting, can not share your screen': 'Has been full static painting, can not share your screen.',\n 'Microphone not detected on current device': 'Microphone not detected on current device',\n 'Camera not detected on current device': 'Camera not detected on current device',\n 'Camera And Microphone not detected on current device': 'Camera And Microphone not detected on current device',\n 'Another user is currently sharing the screen, screen sharing is not possible.': 'Another user is currently sharing the screen, screen sharing is not possible.',\n 'This action causes the room to be disbanded, does it continue?': 'This action causes the room to be disbanded, does it continue?',\n 'This action causes the room to be exited, does it continue?': 'This action causes the room to be exited, does it continue?',\n};\n","import Vue from 'vue';\nimport VueI18n from 'vue-i18n';\nimport { createI18n, useI18n } from 'vue-i18n-bridge';\nimport { getLanguage } from '../utils/common';\nimport ZH from './zh-CN';\nimport EN from './en-US';\n\n// 参考文档:https://vue-i18n.intlify.dev/guide/migration/vue2.html#vue-i18n-bridge\nVue.use(VueI18n, { bridge: true });\n\nexport default createI18n({\n legacy: false,\n locale: getLanguage() || 'zh-CN',\n messages: {\n 'zh-CN': ZH,\n 'en-US': EN,\n },\n}, VueI18n);\n\nexport { useI18n };\n\n","import { defineStore } from 'pinia';\nimport { SpeechMode } from '../constants/room';\nimport { getLanguage } from '../utils/common';\nimport { LAYOUT } from '../constants/render';\nimport { isUndefined, isElectronEnv } from '../utils/utils';\nimport { isWeChat } from '../utils/useMediaValue';\n\ntype SideBarType = 'chat' | 'invite' | 'manage-member' | 'more' | 'transfer-leave' | '';\n\ninterface BasicState {\n sdkAppId: number,\n userId: string,\n userSig: string,\n userName: string,\n avatarUrl?: string,\n useStringRoomId: boolean,\n roomId: string,\n roomMode: 'FreeSpeech' | 'ApplySpeech',\n isSidebarOpen: boolean,\n showSettingDialog: boolean,\n showApplyUserList: boolean,\n activeSettingTab: string,\n layout: LAYOUT,\n isLocalStreamMirror: boolean,\n isFrontCamera: boolean,\n sidebarName: SideBarType,\n masterUserId: string,\n localQuality: number,\n // statistics: TRTCStatistics,\n lang: string,\n defaultTheme: string,\n isSupportSwitchTheme: boolean,\n showHeaderTool: boolean,\n shareLink: string,\n isRoomLinkVisible: boolean\n}\n\nexport const useBasicStore = defineStore('basic', {\n state: (): BasicState => ({\n sdkAppId: 0,\n userId: '',\n userSig: '',\n userName: '',\n avatarUrl: '',\n useStringRoomId: false,\n roomId: '',\n roomMode: 'FreeSpeech',\n isSidebarOpen: false,\n layout: LAYOUT.NINE_EQUAL_POINTS,\n showSettingDialog: false,\n showApplyUserList: false,\n activeSettingTab: 'audio',\n isLocalStreamMirror: true,\n isFrontCamera: true,\n sidebarName: '',\n masterUserId: '',\n localQuality: 0,\n // statistics: {\n // appCpu: 0,\n // downLoss: 0,\n // localStatisticsArray: [],\n // localStatisticsArraySize: 0,\n // receivedBytes: 0,\n // remoteStatisticsArray: [],\n // remoteStatisticsArraySize: 0,\n // rtt: 0,\n // sentBytes: 0,\n // systemCpu: 0,\n // upLoss: 0,\n // },\n lang: getLanguage(),\n defaultTheme: 'black',\n isSupportSwitchTheme: true,\n showHeaderTool: true,\n shareLink: '',\n isRoomLinkVisible: !isElectronEnv() && !isWeChat,\n }),\n getters: {\n // localVideoBitrate: (state) => {\n // const localStatistics = state.statistics.localStatisticsArray\n // .find(item => item.streamType === TRTCVideoStreamType.TRTCVideoStreamTypeBig);\n // if (localStatistics && localStatistics.videoBitrate) {\n // return localStatistics.videoBitrate;\n // }\n // return 0;\n // },\n // localFrameRate: (state) => {\n // const localStatistics = state.statistics.localStatisticsArray\n // .find(item => item.streamType === TRTCVideoStreamType.TRTCVideoStreamTypeBig);\n // if (localStatistics && localStatistics.frameRate) {\n // return localStatistics.frameRate;\n // }\n // return 0;\n // },\n },\n actions: {\n setSdkAppId(sdkAppId: number) {\n this.sdkAppId = sdkAppId;\n },\n setUserId(userId: string) {\n this.userId = userId;\n },\n setUserSig(userSig: string) {\n this.userSig = userSig;\n },\n setUserName(userName: string) {\n this.userName = userName;\n },\n setAvatarUrl(avatarUrl: string) {\n this.avatarUrl = avatarUrl;\n },\n setRoomId(roomId: string) {\n this.roomId = roomId;\n this.useStringRoomId = typeof roomId === 'string';\n },\n setRoomMode(mode: SpeechMode) {\n this.roomMode = mode;\n },\n setSidebarOpenStatus(isOpen: boolean) {\n this.isSidebarOpen = isOpen;\n },\n setSidebarName(name: SideBarType) {\n this.sidebarName = name;\n },\n setLayout(layout: LAYOUT) {\n this.layout = layout;\n },\n setShowSettingDialog(show: boolean) {\n this.showSettingDialog = show;\n },\n setShowApplyUserList(show: boolean) {\n this.showApplyUserList = show;\n },\n setActiveSettingTab(tabName: string) {\n this.activeSettingTab = tabName;\n },\n setIsLocalStreamMirror(mirror: boolean) {\n this.isLocalStreamMirror = mirror;\n },\n setIsFrontCamera(isFront: boolean) {\n this.isFrontCamera = isFront;\n },\n setDefaultTheme(defaultTheme: string) {\n this.defaultTheme = defaultTheme;\n },\n setIsSupportSwitchTheme(isSupportSwitchTheme: boolean) {\n this.isSupportSwitchTheme = isSupportSwitchTheme;\n },\n setShowHeaderTool(showHeaderTool: boolean) {\n this.showHeaderTool = showHeaderTool;\n },\n setShareLink(shareLink: string) {\n this.shareLink = shareLink;\n },\n setIsRoomLinkVisible(isRoomLinkVisible: boolean) {\n this.isRoomLinkVisible = isRoomLinkVisible;\n },\n setBasicInfo(infoObj: any) {\n if (!infoObj) {\n return;\n }\n const { sdkAppId, userId, userSig, userName, avatarUrl, roomId, theme, showHeaderTool } = infoObj;\n sdkAppId && this.setSdkAppId(sdkAppId);\n userId && this.setUserId(userId);\n userSig && this.setUserSig(userSig);\n userName && this.setUserName(userName);\n avatarUrl && this.setAvatarUrl(avatarUrl);\n roomId && this.setRoomId(roomId);\n theme && !isUndefined(theme.defaultTheme) && this.setDefaultTheme(theme.defaultTheme);\n theme && !isUndefined(theme.isSupportSwitchTheme) && this.setIsSupportSwitchTheme(theme.isSupportSwitchTheme);\n !isUndefined(showHeaderTool) && this.setShowHeaderTool(showHeaderTool);\n },\n setMasterUserId(userId: string) {\n this.masterUserId = userId;\n },\n setLocalQuality(userNetworkList: any[]) {\n const localUser = userNetworkList.find(item => item.userId === this.userId);\n this.localQuality = localUser.quality;\n },\n // setStatistics(statistics: TRTCStatistics) {\n // this.statistics = statistics;\n // },\n setLang(lang: string) {\n this.lang = lang;\n },\n reset() {\n this.isSidebarOpen = false;\n this.layout = LAYOUT.NINE_EQUAL_POINTS;\n this.showSettingDialog = false;\n this.activeSettingTab = 'audio';\n this.isLocalStreamMirror = true;\n this.sidebarName = '';\n this.masterUserId = '';\n this.localQuality = 0;\n this.roomId = '';\n this.sdkAppId = 0;\n this.userId = '';\n this.userSig = '';\n this.userName = '';\n this.avatarUrl = '';\n this.useStringRoomId = false;\n this.roomMode = 'FreeSpeech';\n this.showApplyUserList = false;\n this.isFrontCamera = true;\n this.defaultTheme = 'black';\n this.isSupportSwitchTheme = true;\n this.showHeaderTool = true;\n this.shareLink = '';\n },\n },\n});\n","import { defineStore } from 'pinia';\nimport { TUIRole, TUIVideoStreamType, TUIRoomInfo, TUIUserInfo, TUIVideoQuality, TUISeatInfo, TUISpeechMode } from '@tencentcloud/tuiroom-engine-js';\nimport { useBasicStore } from './basic';\nimport { isVue3 } from '../utils/constants';\nimport Vue from '../utils/vue';\nimport useGetRoomEngine from '../hooks/useRoomEngine';\n\nconst roomEngine = useGetRoomEngine();\n\nexport type StreamInfo = {\n userId: string,\n userName?: string,\n avatarUrl?: string,\n hasAudioStream?: boolean,\n hasVideoStream?: boolean,\n hasScreenStream?: boolean,\n audioVolume?: number,\n streamType: TUIVideoStreamType,\n isVisible: boolean,\n}\n\nexport type UserInfo = {\n userId: string,\n userName?: string,\n avatarUrl?: string,\n hasAudioStream?: boolean,\n hasVideoStream?: boolean,\n hasScreenStream?: boolean,\n isVideoVisible?: boolean,\n isScreenVisible?: boolean,\n userRole?: TUIRole,\n // 是否在麦上\n onSeat?: boolean,\n isChatMutedByMaster?: boolean,\n // 是否正在请求用户打开麦克风\n isRequestingUserOpenMic?: boolean,\n // 请求用户打开麦克风的 requestId\n requestUserOpenMicRequestId?: string,\n // 是否正在请求用户打开摄像头\n isRequestingUserOpenCamera?: boolean,\n // 请求用户打开摄像头的 requestId\n requestUserOpenCameraRequestId?: string,\n // 用户是否正在申请上麦\n isUserApplyingToAnchor?: boolean,\n // 用户申请上麦的 requestId\n applyToAnchorRequestId?: string,\n // 是否正在邀请用户上麦\n isInvitingUserToAnchor?: boolean,\n // 邀请用户上麦的 requestId\n inviteToAnchorRequestId?: string,\n audioVolume?: number,\n // cameraStreamInfo 和 screenStreamInfo 存在的意义时,流渲染保持使用同一个引用传递的数据\n // 避免出现大窗口和实际数据显示不一致的问题\n cameraStreamInfo: StreamInfo,\n screenStreamInfo: StreamInfo,\n}\n\ninterface RoomState {\n localUser: UserInfo,\n remoteUserObj: Record ,\n isDefaultOpenCamera: boolean,\n isDefaultOpenMicrophone: boolean,\n // 主持人全员禁麦,但是单独取消某个用户音视频禁止状态的时候,是可以自己 unmute audio/video 的\n canControlSelfAudio: boolean,\n canControlSelfVideo: boolean,\n localVideoQuality: TUIVideoQuality,\n currentCameraId: string,\n currentMicrophoneId: string,\n currentSpeakerId: string,\n cameraList: object[],\n microphoneList: object[],\n speakerList: object[],\n masterUserId: string,\n isMicrophoneDisableForAllUser: boolean,\n isCameraDisableForAllUser: boolean,\n isMessageDisableForAllUser: boolean,\n speechMode: TUISpeechMode,\n maxMembersCount: number,\n hasVideoStreamObject: Record ,\n currentStreamIdListInVisibleView: string[],\n hasOtherScreenShare: boolean,\n}\n\nexport const useRoomStore = defineStore('room', {\n state: (): RoomState => ({\n localUser: {\n userId: '',\n userName: '',\n avatarUrl: '',\n hasAudioStream: false,\n hasVideoStream: false,\n hasScreenStream: false,\n userRole: TUIRole.kGeneralUser,\n audioVolume: 0,\n onSeat: false,\n cameraStreamInfo: {\n userId: '',\n userName: '',\n avatarUrl: '',\n audioVolume: 0,\n hasAudioStream: false,\n hasVideoStream: false,\n streamType: TUIVideoStreamType.kCameraStream,\n isVisible: true,\n },\n screenStreamInfo: {\n userId: '',\n userName: '',\n avatarUrl: '',\n hasScreenStream: false,\n streamType: TUIVideoStreamType.kScreenStream,\n isVisible: true,\n },\n },\n remoteUserObj: {},\n isDefaultOpenCamera: false,\n isDefaultOpenMicrophone: false,\n canControlSelfAudio: true,\n canControlSelfVideo: true,\n localVideoQuality: TUIVideoQuality.kVideoQuality_720p,\n currentCameraId: '',\n currentMicrophoneId: '',\n currentSpeakerId: '',\n cameraList: [],\n microphoneList: [],\n speakerList: [],\n masterUserId: '',\n isMicrophoneDisableForAllUser: false,\n isCameraDisableForAllUser: false,\n isMessageDisableForAllUser: false,\n speechMode: TUISpeechMode.kFreeToSpeak,\n maxMembersCount: 5, // 包含本地流和屏幕分享,超过该数目后续都播放小流\n hasVideoStreamObject: {},\n // 可视区域用户流列表\n currentStreamIdListInVisibleView: [],\n hasOtherScreenShare: false,\n }),\n getters: {\n // 当前用户是否是主持人\n isMaster(state) {\n return state.localUser.userId === state.masterUserId;\n },\n // 当前用户是否在麦上\n isAnchor(state) {\n if (this.isFreeSpeakMode) {\n return true;\n }\n if (this.isSpeakAfterTakingSeatMode) {\n return state.localUser.onSeat;\n }\n },\n // 当前用户是否是在麦下\n isAudience(state) {\n if (this.isFreeSpeakMode) {\n return false;\n }\n if (this.isSpeakAfterTakingSeatMode) {\n return !state.localUser.onSeat;\n }\n },\n isSpeakAfterTakingSeatMode(): boolean {\n return this.speechMode === TUISpeechMode.kSpeakAfterTakingSeat;\n },\n isFreeSpeakMode(): boolean {\n return this.speechMode === TUISpeechMode.kFreeToSpeak;\n },\n isLocalAudioIconDisable(): boolean {\n // 全员禁麦状态\n const micForbidden = !this.isMaster && !this.canControlSelfAudio;\n return micForbidden as any || this.isAudience;\n },\n isLocalVideoIconDisable(): boolean {\n // 全员禁画状态\n const cameraForbidden = !this.isMaster && !this.canControlSelfVideo;\n return cameraForbidden as any || this.isAudience;\n },\n localStream: (state) => {\n const { userId, userName, avatarUrl, hasAudioStream, hasVideoStream, audioVolume } = state.localUser;\n Object.assign(\n state.localUser.cameraStreamInfo,\n { userId, userName, avatarUrl, hasAudioStream, hasVideoStream, audioVolume },\n );\n return state.localUser.cameraStreamInfo;\n },\n remoteStreamObj: (state) => {\n const obj: Record = {};\n [...Object.values(state.remoteUserObj)].forEach((userInfo) => {\n const {\n userId,\n avatarUrl,\n userName,\n onSeat,\n hasAudioStream,\n hasVideoStream,\n hasScreenStream,\n audioVolume,\n isVideoVisible,\n isScreenVisible,\n } = userInfo;\n if (onSeat) {\n obj[`${userId}_${TUIVideoStreamType.kCameraStream}`] = Object.assign(userInfo.cameraStreamInfo, { userId, avatarUrl, userName, hasAudioStream, hasVideoStream, audioVolume, streamType: TUIVideoStreamType.kCameraStream, isVisible: isVideoVisible });\n }\n if (hasScreenStream) {\n obj[`${userId}_${TUIVideoStreamType.kScreenStream}`] = Object.assign(userInfo.screenStreamInfo, { userId, avatarUrl, userName, hasScreenStream, streamType: TUIVideoStreamType.kScreenStream, isVisible: isScreenVisible });\n }\n });\n return obj;\n },\n remoteStreamList(): Array {\n return [...Object.values(this.remoteStreamObj)];\n },\n streamList(): Array {\n return [this.localStream, ...Object.values(this.remoteStreamObj)];\n },\n streamNumber(): number {\n return this.streamList.length;\n },\n remoteAnchorList: state => [...Object.values(state.remoteUserObj)].filter(item => item.onSeat),\n userList: state => [state.localUser, ...Object.values(state.remoteUserObj)],\n userNumber(): number {\n return this.userList.length;\n },\n applyToAnchorList: state => [...Object.values(state.remoteUserObj)]\n .filter(item => item.isUserApplyingToAnchor) || [],\n defaultStreamType(): TUIVideoStreamType {\n return Object.keys(this.hasVideoStreamObject).length > this.maxMembersCount\n ? TUIVideoStreamType.kCameraStreamLow : TUIVideoStreamType.kCameraStream;\n },\n },\n actions: {\n setLocalUser(obj: Record ) {\n Object.assign(this.localUser, obj);\n },\n updateLocalStream(obj: Record ) {\n Object.assign(this.localStream, obj);\n },\n getUserName(userId: string) {\n if (userId === this.localUser.userId) {\n return this.localUser.userName || userId;\n }\n return this.remoteUserObj[userId]?.userName || userId;\n },\n getNewUserInfo(userId: string) {\n const newUserInfo = {\n userId,\n userName: '',\n avatarUrl: '',\n hasAudioStream: false,\n hasVideoStream: false,\n hasScreenStream: false,\n isVideoVisible: false,\n isScreenVisible: false,\n userRole: TUIRole.kGeneralUser,\n audioVolume: 0,\n onSeat: !this.isSpeakAfterTakingSeatMode,\n cameraStreamInfo: {\n userId,\n userName: '',\n avatarUrl: '',\n audioVolume: 0,\n hasAudioStream: false,\n hasVideoStream: false,\n streamType: TUIVideoStreamType.kCameraStream,\n isVisible: false,\n },\n screenStreamInfo: {\n userId,\n userName: '',\n avatarUrl: '',\n hasScreenStream: false,\n streamType: TUIVideoStreamType.kScreenStream,\n isVisible: false,\n },\n };\n // 本端为主持人,则记录用户禁言禁画, 申请发言等信息\n if (this.isMaster) {\n Object.assign(newUserInfo, {\n isChatMutedByMaster: false,\n isUserApplyingToAnchor: false,\n isInvitingUserToAnchor: false,\n });\n }\n return newUserInfo;\n },\n setUserList(userList: any[]) {\n userList.forEach((user) => {\n if (user.userId === this.localUser.userId) {\n Object.assign(this.localUser, user);\n return;\n }\n if (this.remoteUserObj[user.userId]) {\n Object.assign(this.remoteUserObj[user.userId], user);\n } else {\n const newUserInfo = Object.assign(this.getNewUserInfo(user.userId), user);\n if (isVue3) {\n this.remoteUserObj[user.userId] = newUserInfo;\n } else {\n // @ts-ignore\n Vue.set(this.remoteUserObj, user.userId, newUserInfo);\n }\n }\n });\n },\n // 远端用户进入房间(IM事件)\n addRemoteUser(userInfo: TUIUserInfo) {\n const { userId } = userInfo;\n const basicStore = useBasicStore();\n if (!userId || userId === basicStore.userId) {\n return;\n }\n if (this.remoteUserObj[userId]) {\n Object.assign(this.remoteUserObj[userId], userInfo);\n } else {\n const newUserInfo = Object.assign(this.getNewUserInfo(userId), userInfo);\n if (isVue3) {\n this.remoteUserObj[userId] = newUserInfo;\n } else {\n // @ts-ignore\n Vue.set(this.remoteUserObj, userId, newUserInfo);\n }\n }\n },\n updateRemoteUser(userId: string, newUserInfo: { nick: string, avatar: string }) {\n const remoteUser = this.remoteUserObj[userId];\n if (!remoteUser) {\n return;\n }\n const { nick, avatar } = newUserInfo;\n Object.assign(remoteUser, { userName: nick, avatarUrl: avatar });\n },\n // 更新 seatList 的变更\n // 进入房间后会立即通知 onSeatListChanged, onUserVideoAvailable,onUserAudioAvailable 事件,因此先更新到 userMap 中\n // 等待 getUserList 获取到全部用户列表后再做更新\n updateOnSeatList(seatList: TUISeatInfo[], seatedList: TUISeatInfo[], leftList: TUISeatInfo[]) {\n if (JSON.stringify(this.remoteUserObj) === '{}') {\n seatList.forEach((seat) => {\n const { userId } = seat;\n if (userId === this.localUser.userId) {\n Object.assign(this.localUser, { onSeat: true });\n } else {\n const newUserInfo = Object.assign(this.getNewUserInfo(userId), { onSeat: true });\n if (isVue3) {\n this.remoteUserObj[userId] = newUserInfo;\n } else {\n // @ts-ignore\n Vue.set(this.remoteUserObj, userId, newUserInfo);\n }\n };\n });\n } else {\n seatedList.forEach((seat) => {\n const { userId } = seat;\n if (userId === this.localUser.userId) {\n Object.assign(this.localUser, { onSeat: true });\n } else {\n const user = this.remoteUserObj[userId];\n if (user) {\n Object.assign(user, { onSeat: true });\n } else {\n const newUserInfo = Object.assign(this.getNewUserInfo(userId), { onSeat: true });\n if (isVue3) {\n this.remoteUserObj[userId] = newUserInfo;\n } else {\n // @ts-ignore\n Vue.set(this.remoteUserObj, userId, newUserInfo);\n }\n }\n };\n });\n leftList.forEach((seat) => {\n if (seat.userId === this.localUser.userId) {\n Object.assign(this.localUser, { onSeat: false });\n } else {\n const user = this.remoteUserObj[seat.userId];\n user && Object.assign(user, { onSeat: false });\n };\n });\n }\n },\n updateUserVideoState(userId: string, streamType: TUIVideoStreamType, hasVideo: boolean) {\n const basicStore = useBasicStore();\n let user = userId === basicStore.userId ? this.localUser : this.remoteUserObj[userId];\n // 需要判断 hasVideo 是否为 true,避免视频取消事件在 onRemoteUserLeaveRoom 之后抛出的情况\n if (!user && hasVideo) {\n user = this.getNewUserInfo(userId);\n if (isVue3) {\n this.remoteUserObj[userId] = user;\n } else {\n // @ts-ignore\n Vue.set(this.remoteUserObj, userId, user);\n }\n }\n if (user) {\n this.updatehasVideoStreamObject(user, hasVideo, userId === basicStore.userId);\n if (streamType === TUIVideoStreamType.kCameraStream || streamType === TUIVideoStreamType.kCameraStreamLow) {\n user.hasVideoStream = hasVideo;\n } else if (streamType === TUIVideoStreamType.kScreenStream) {\n user.hasScreenStream = hasVideo;\n }\n }\n },\n updatehasVideoStreamObject(userInfo: UserInfo, hasVideo: boolean, isSelf: boolean) {\n if (isSelf) return;\n const { userId, cameraStreamInfo, screenStreamInfo, hasVideoStream } = userInfo;\n const streamId = `${userId}_${hasVideoStream ? cameraStreamInfo.streamType : screenStreamInfo.streamType}`;\n if (hasVideo) {\n if (isVue3) {\n this.hasVideoStreamObject[streamId] = userInfo;\n } else {\n // @ts-ignore\n Vue.set(this.hasVideoStreamObject, streamId, userInfo);\n }\n } else {\n if (isVue3) {\n delete this.hasVideoStreamObject[streamId];\n } else {\n // @ts-ignore\n Vue.delete(this.hasVideoStreamObject, streamId);\n }\n }\n },\n updateUserAudioState(userId: string, hasAudio: boolean) {\n const basicStore = useBasicStore();\n let user = userId === basicStore.userId ? this.localUser : this.remoteUserObj[userId];\n // 需要判断 hasAudio 是否为 true,避免音频取消事件在 onRemoteUserLeaveRoom 之后抛出的情况\n if (!user && hasAudio) {\n user = this.getNewUserInfo(userId);\n if (isVue3) {\n this.remoteUserObj[userId] = user;\n } else {\n // @ts-ignore\n Vue.set(this.remoteUserObj, userId, user);\n }\n }\n if (user) {\n user.hasAudioStream = hasAudio;\n }\n },\n\n removeRemoteUser(userId: string) {\n const basicStore = useBasicStore();\n if (!userId || userId === basicStore.userId) {\n return;\n }\n if (isVue3) {\n delete this.remoteUserObj[userId];\n } else {\n // @ts-ignore\n Vue.delete(this.remoteUserObj, userId);\n }\n },\n\n updateUserStreamVisible(streamIdList: string[]) {\n streamIdList.forEach((item) => {\n const userId = item.slice(0, item.length - 2);\n const streamType = Number(item.slice(-1)) as TUIVideoStreamType;\n if (userId === this.localUser.userId) {\n return;\n }\n const user = this.remoteUserObj[userId];\n if (!user) {\n return;\n }\n if (streamType === TUIVideoStreamType.kCameraStream || streamType === TUIVideoStreamType.kCameraStreamLow) {\n user.isVideoVisible = true;\n } else if (streamType === TUIVideoStreamType.kScreenStream) {\n user.isScreenVisible = true;\n }\n });\n // 在新的 streamIdList 里面没有的流, isVideoVisible 要设置为 false\n this.currentStreamIdListInVisibleView.forEach((item: string) => {\n const userId = item.slice(0, item.length - 2);\n const streamType = Number(item.slice(-1)) as TUIVideoStreamType;\n if (streamIdList.indexOf(item) < 0) {\n const user = this.remoteUserObj[userId];\n if (!user) {\n return;\n }\n if (streamType === TUIVideoStreamType.kCameraStream || streamType === TUIVideoStreamType.kCameraStreamLow) {\n user.isVideoVisible = false;\n } else if (streamType === TUIVideoStreamType.kScreenStream) {\n user.isScreenVisible = false;\n }\n }\n });\n this.currentStreamIdListInVisibleView = streamIdList;\n },\n\n setAudioVolume(audioVolumeArray: []) {\n const basicStore = useBasicStore();\n audioVolumeArray.forEach((audioVolumeItem: any) => {\n const { userId, volume } = audioVolumeItem;\n if (userId === basicStore.userId || userId === '') {\n this.localUser.audioVolume = volume;\n } else {\n const remoteUserInfo = this.remoteUserObj[userId];\n if (remoteUserInfo) {\n remoteUserInfo.audioVolume = volume;\n }\n }\n });\n },\n setCurrentCameraId(deviceId: string) {\n this.currentCameraId = deviceId;\n },\n setCurrentMicrophoneId(deviceId: string) {\n this.currentMicrophoneId = deviceId;\n },\n setCurrentSpeakerId(deviceId: string) {\n this.currentSpeakerId = deviceId;\n },\n setRoomInfo(roomInfo: TUIRoomInfo) {\n const { roomOwner, isMicrophoneDisableForAllUser,\n isCameraDisableForAllUser, isMessageDisableForAllUser, speechMode } = roomInfo;\n if (this.localUser.userId === roomOwner) {\n this.localUser.userRole = TUIRole.kRoomOwner;\n }\n\n this.masterUserId = roomOwner;\n this.isMicrophoneDisableForAllUser = isMicrophoneDisableForAllUser;\n this.isCameraDisableForAllUser = isCameraDisableForAllUser;\n this.isMessageDisableForAllUser = isMessageDisableForAllUser;\n this.speechMode = speechMode;\n this.canControlSelfAudio = !this.isMicrophoneDisableForAllUser;\n this.canControlSelfVideo = !this.isCameraDisableForAllUser;\n },\n setDisableMicrophoneForAllUserByAdmin(isDisable: boolean) {\n this.isMicrophoneDisableForAllUser = isDisable;\n },\n setDisableCameraForAllUserByAdmin(isDisable: boolean) {\n this.isCameraDisableForAllUser = isDisable;\n },\n setDisableMessageAllUserByAdmin(isDisable: boolean) {\n this.isMessageDisableForAllUser = isDisable;\n },\n setMasterUserId(userId: string) {\n this.masterUserId = userId;\n },\n setRoomParam(roomParam: any) {\n if (!roomParam) {\n return;\n }\n const { isOpenCamera, isOpenMicrophone, defaultCameraId, defaultMicrophoneId, defaultSpeakerId } = roomParam;\n if (defaultCameraId) {\n this.setCurrentCameraId(defaultCameraId);\n roomEngine.instance?.setCurrentCameraDevice({ deviceId: defaultCameraId });\n }\n if (defaultMicrophoneId) {\n this.setCurrentMicrophoneId(defaultMicrophoneId);\n roomEngine.instance?.setCurrentMicDevice({ deviceId: defaultMicrophoneId });\n }\n if (defaultSpeakerId) {\n this.setCurrentSpeakerId(defaultSpeakerId);\n roomEngine.instance?.setCurrentSpeakerDevice({ deviceId: defaultSpeakerId });\n }\n // 如果已经开启全员禁言/当前为申请发言模式,则忽略默认打开麦克风的设置\n if (this.isMaster || (!this.isMicrophoneDisableForAllUser\n && this.isFreeSpeakMode)) {\n typeof isOpenMicrophone === 'boolean' && (this.isDefaultOpenMicrophone = isOpenMicrophone);\n }\n // 如果已经开启全员禁画/当前为申请发言模式,则忽略默认打开摄像头的设置\n if (this.isMaster || (!this.isCameraDisableForAllUser\n && this.isFreeSpeakMode)) {\n typeof isOpenCamera === 'boolean' && (this.isDefaultOpenCamera = isOpenCamera);\n }\n },\n setCanControlSelfAudio(capability: boolean) {\n this.canControlSelfAudio = capability;\n },\n setCanControlSelfVideo(capability: boolean) {\n this.canControlSelfVideo = capability;\n },\n updateVideoQuality(quality: TUIVideoQuality) {\n this.localVideoQuality = quality;\n },\n setCameraList(deviceList: {deviceId: string, deviceName: string}[]) {\n this.cameraList = deviceList;\n if (!this.currentCameraId && deviceList.length > 0) {\n this.setCurrentCameraId(deviceList[0].deviceId);\n }\n },\n setMicrophoneList(deviceList: {deviceId: string, deviceName: string}[]) {\n this.microphoneList = deviceList;\n if (!this.currentMicrophoneId && deviceList.length > 0) {\n this.setCurrentMicrophoneId(deviceList[0].deviceId);\n }\n },\n setSpeakerList(deviceList: {deviceId: string, deviceName: string}[]) {\n this.speakerList = deviceList;\n if (!this.currentSpeakerId && deviceList.length > 0) {\n this.setCurrentSpeakerId(deviceList[0].deviceId);\n }\n },\n // 全员禁麦/取消禁麦时设置所有人的禁麦状态\n setMicrophoneDisableState(isDisable: boolean) {\n this.isMicrophoneDisableForAllUser = isDisable;\n },\n // 全员禁画/取消禁画时设置所有人的禁画状态\n setCameraDisableState(isDisable: boolean) {\n this.isCameraDisableForAllUser = isDisable;\n },\n // 主持人单个修改用户的发文字消息 mute 状态\n setMuteUserChat(userId: string, muted: boolean) {\n const remoteUserInfo = this.remoteUserObj[userId];\n if (remoteUserInfo) {\n remoteUserInfo.isChatMutedByMaster = muted;\n }\n },\n setRemoteUserRole(userId: string, role: TUIRole) {\n const remoteUserInfo = this.remoteUserObj[userId];\n if (remoteUserInfo) {\n remoteUserInfo.userRole = role;\n }\n },\n setRequestUserOpenMic(options: { userId: string, isRequesting: boolean, requestId?: string }) {\n const { userId, isRequesting, requestId } = options;\n const remoteUserInfo = this.remoteUserObj[userId];\n if (remoteUserInfo) {\n remoteUserInfo.isRequestingUserOpenMic = isRequesting;\n remoteUserInfo.requestUserOpenMicRequestId = isRequesting ? requestId : '';\n }\n },\n setRequestUserOpenCamera(options: { userId: string, isRequesting: boolean, requestId?: string }) {\n const { userId, isRequesting, requestId } = options;\n const remoteUserInfo = this.remoteUserObj[userId];\n if (remoteUserInfo) {\n remoteUserInfo.isRequestingUserOpenCamera = isRequesting;\n remoteUserInfo.requestUserOpenCameraRequestId = isRequesting ? requestId : '';\n }\n },\n addApplyToAnchorUser(options: { userId: string, requestId: string }) {\n const { userId, requestId } = options;\n const remoteUserInfo = this.remoteUserObj[userId];\n if (remoteUserInfo) {\n remoteUserInfo.isUserApplyingToAnchor = true;\n remoteUserInfo.applyToAnchorRequestId = requestId;\n }\n },\n removeApplyToAnchorUser(userId: string) {\n const remoteUserInfo = this.remoteUserObj[userId];\n if (remoteUserInfo) {\n remoteUserInfo.isUserApplyingToAnchor = false;\n remoteUserInfo.applyToAnchorRequestId = '';\n }\n },\n addInviteToAnchorUser(options: { userId: string, requestId: string }) {\n const { userId, requestId } = options;\n const remoteUserInfo = this.remoteUserObj[userId];\n if (remoteUserInfo) {\n remoteUserInfo.isInvitingUserToAnchor = true;\n remoteUserInfo.inviteToAnchorRequestId = requestId;\n }\n },\n removeInviteToAnchorUser(userId: string) {\n const remoteUserInfo = this.remoteUserObj[userId];\n if (remoteUserInfo) {\n remoteUserInfo.isInvitingUserToAnchor = false;\n remoteUserInfo.inviteToAnchorRequestId = '';\n }\n },\n setHasOtherScreenShare(hasScreenShare: boolean) {\n this.hasOtherScreenShare = hasScreenShare;\n },\n reset() {\n this.localUser = {\n userId: '',\n userName: '',\n avatarUrl: '',\n hasAudioStream: false,\n hasVideoStream: false,\n hasScreenStream: false,\n userRole: TUIRole.kGeneralUser,\n audioVolume: 0,\n onSeat: false,\n cameraStreamInfo: {\n userId: '',\n userName: '',\n avatarUrl: '',\n audioVolume: 0,\n hasAudioStream: false,\n hasVideoStream: false,\n streamType: TUIVideoStreamType.kCameraStream,\n isVisible: true,\n },\n screenStreamInfo: {\n userId: '',\n userName: '',\n avatarUrl: '',\n hasScreenStream: false,\n streamType: TUIVideoStreamType.kScreenStream,\n isVisible: true,\n },\n };\n this.remoteUserObj = {};\n this.isDefaultOpenCamera = false;\n this.isDefaultOpenMicrophone = false;\n this.canControlSelfAudio = true;\n this.canControlSelfVideo = true;\n this.localVideoQuality = TUIVideoQuality.kVideoQuality_720p;\n this.currentCameraId = '';\n this.currentMicrophoneId = '';\n this.currentSpeakerId = '';\n this.cameraList = [];\n this.microphoneList = [];\n this.speakerList = [];\n this.masterUserId = '';\n this.isMicrophoneDisableForAllUser = false;\n this.isCameraDisableForAllUser = false;\n this.isMessageDisableForAllUser = false;\n this.speechMode = TUISpeechMode.kFreeToSpeak;\n this.hasVideoStreamObject = {};\n this.hasOtherScreenShare = false;\n },\n },\n});\n","import { getUrlParam } from './utils';\n\n/**\n * 获取语言\n * @returns language\n */\nexport function getLanguage() {\n let language = getUrlParam('lang') || localStorage.getItem('tuiRoom-language') || navigator.language || 'zh';\n language = language.replace(/_/, '-').toLowerCase();\n\n if (language === 'zh-cn' || language === 'zh') {\n language = 'zh-CN';\n } else if (language === 'en' || language === 'en-us' || language === 'en-GB') {\n language = 'en-US';\n }\n return language;\n}\n\n/**\n * 判断字符串是否是数字\n * @returns boolean\n */\nexport function checkNumber(roomId: string) {\n const reg = /^\\d+$/;\n return reg.test(roomId);\n}\n","/**\n * 这个常量定义模块,即用于 main 目录下各个 ts 模块,也用 main/preload.js 模块,\n * 此处定义为 node.js module 格式,以上两类模块都可使用。\n *\n * 如果此处定义为 ES 6 模块(使用 import/export ),则 preload.js 模块无法使用,\n * 原因是 preload.js 文件是一个原生 node.js module 执行文件,后续如果 preload.js\n * 承担职责过多,代码复杂度较大,可以考虑使用。\n */\nexport enum EUserEventNames {\n ON_CHANGE_LOG_LEVEL = 'onChangeLogLevel',\n}\n\nexport default {\n EUserEventNames,\n};\n","export const LogLevelType = {\n LOG_LEVEL_DEBUG: -1,\n LOG_LEVEL_LOG: 0,\n LOG_LEVEL_INFO: 1,\n LOG_LEVEL_WARN: 2,\n LOG_LEVEL_ERROR: 3,\n LOG_LEVEL_NON_LOGGING: 4, // 无日志记录级别,将不打印任何日志\n};\n\nexport enum LogContext {\n MAIN = 'main-process',\n RENDER = 'render-process',\n}\n\nfunction padMs(ms: number) {\n const len = ms.toString().length;\n let ret;\n switch (len) {\n case 1:\n ret = `00${ms}`;\n break;\n case 2:\n ret = `0${ms}`;\n break;\n default:\n ret = ms;\n break;\n }\n\n return ret;\n}\n\nexport function getLogPrefix(context: LogContext) {\n const date = new Date();\n return `${date.toLocaleTimeString('en-US', {\n hour12: false,\n })}.${padMs(date.getMilliseconds())} [${context}]:`;\n}\n","/*\n * @Description: logger\n * @Date: 2022-04-11 19:39:55\n * @LastEditTime: 2022-04-12 11:37:24\n */\nimport { EUserEventNames } from './logger-constants';\nimport { LogLevelType, LogContext, getLogPrefix } from './logger-utils';\n\nlet currentLogLevel = LogLevelType.LOG_LEVEL_DEBUG;\n\nconst logger = {\n debug(...args: any[]) {\n if (currentLogLevel <= LogLevelType.LOG_LEVEL_DEBUG) {\n console.debug(`${getLogPrefix(LogContext.RENDER)}`, ...args);\n }\n },\n log(...args: any[]) {\n if (currentLogLevel <= LogLevelType.LOG_LEVEL_LOG) {\n console.log(`${getLogPrefix(LogContext.RENDER)}`, ...args);\n }\n },\n info(...args: any[]) {\n if (currentLogLevel <= LogLevelType.LOG_LEVEL_INFO) {\n console.info(`${getLogPrefix(LogContext.RENDER)}`, ...args);\n }\n },\n warn(...args: any[]) {\n if (currentLogLevel <= LogLevelType.LOG_LEVEL_WARN) {\n console.warn(`${getLogPrefix(LogContext.RENDER)}`, ...args);\n }\n },\n error(...args: any[]) {\n if (currentLogLevel <= LogLevelType.LOG_LEVEL_ERROR) {\n console.error(`${getLogPrefix(LogContext.RENDER)}`, ...args);\n }\n },\n setLevel(newLevel: number) {\n if (\n newLevel >= LogLevelType.LOG_LEVEL_DEBUG &&\n newLevel <= LogLevelType.LOG_LEVEL_NON_LOGGING\n ) {\n console.log(\n `${getLogPrefix(\n LogContext.RENDER\n )} set log level from ${currentLogLevel} to ${newLevel}`\n );\n currentLogLevel = newLevel;\n\n // 通知主进程\n if ((window as any).electron?.ipcRenderer) {\n (window as any).electron.ipcRenderer.send(\n EUserEventNames.ON_CHANGE_LOG_LEVEL,\n newLevel\n );\n }\n } else {\n console.error(\n `${getLogPrefix(\n LogContext.RENDER\n )} logger.setLevel() invalid params:${newLevel}`\n );\n }\n },\n getLevel() {\n return currentLogLevel;\n },\n};\n\nexport default logger;\n","\nimport * as Vue from 'vue';\n\nexport const isVue27 = /^2\\.7\\.*/.test(Vue.version); // 是否是 Vue2.7 版本\n\nexport const isVue3 = /^3\\.*/.test(Vue.version); // 是否是 Vue3 版本\n\n// @ts-ignore\nexport const isInnerScene = import.meta && import.meta.env && import.meta.env.VITE_RUNTIME_SCENE === 'inner';\n","declare let wx: any;\nexport const isWeChat = (typeof wx !== 'undefined' && typeof wx.getSystemInfoSync === 'function' && Boolean(wx.getSystemInfoSync().fontSizeSetting));\nexport const isMobile = window?.matchMedia('(max-width: 600px)').matches || isWeChat;\n","import { isWeChat } from './useMediaValue';\ndeclare let uni: any;\n\nexport const clipBoard = (data: any): Promise<{\n code: number,\n data?: any,\n err?: any\n}> => new Promise((resolve, reject) => {\n if (!isWeChat) {\n try {\n navigator.clipboard.writeText(`${data}`);\n resolve({ code: 0, data });\n } catch (err) {\n reject({ code: -1, err });\n }\n return;\n }\n uni.setClipboardData({\n data,\n success() {\n uni.getClipboardData({\n success(data: any) {\n resolve({ code: 0, data });\n },\n fail(err: any) {\n reject({ code: -1, err });\n },\n });\n },\n fail(err: any) {\n reject({ code: -1, err });\n },\n });\n});\n\n\n","\n\n/**\n * 防抖函数\n * @param {*} fn 要执行的函数\n * @param {*} delay 间隔时间\n * @returns function\n */\nexport function debounce(fn: { apply: (arg0: any, arg1: any) => void; }, delay: number | undefined) {\n let timer: number;\n return function (this:any, ...args: any) {\n if (timer > 0) {\n clearTimeout(timer);\n }\n timer = window?.setTimeout(() => {\n fn.apply(this, args);\n timer = -1;\n }, delay);\n };\n}\n\n/**\n * 节流函数\n * @param {*} fn 要执行的函数\n * @param {*} delay 间隔时间\n * @returns function\n */\nexport function throttle(fn: { apply: (arg0: any, arg1: any[]) => void; }, delay: number) {\n let previousTime = 0;\n return function (this:any, ...args: any[]) {\n // eslint-disable-next-line prefer-rest-params\n const now = Date.now();\n if (now - previousTime > delay) {\n fn.apply(this, args);\n previousTime = now;\n }\n };\n};\n\n/**\n * 将 dom 元素全屏\n * @param {dom} element dom元素\n * @example\n * setFullscreen(document.documentElement) // 整个页面进入全屏\n * setFullscreen(document.getElementById(\"id\")) // 某个元素进入全屏\n */\nexport function setFullScreen(element: HTMLElement) {\n const fullScreenElement = element as HTMLElement & {\n mozRequestFullScreen(): Promise ;\n msRequestFullscreen(): Promise ;\n webkitRequestFullScreen(): Promise ;\n };\n if (fullScreenElement?.requestFullscreen) {\n fullScreenElement?.requestFullscreen();\n // 兼容Firefox\n } else if (fullScreenElement?.mozRequestFullScreen) {\n fullScreenElement?.mozRequestFullScreen();\n // 兼容 chrome,safari,opera等\n } else if (fullScreenElement?.webkitRequestFullScreen) {\n fullScreenElement?.webkitRequestFullScreen();\n // 兼容IE/Edge\n } else if (fullScreenElement?.msRequestFullscreen) {\n fullScreenElement?.msRequestFullscreen();\n }\n}\n\n/**\n * 退出全屏\n * @example\n * exitFullscreen();\n */\nexport function exitFullScreen() {\n if (!document?.fullscreenElement\n && !(document as any)?.webkitFullscreenElement && !(document as any)?.mozFullScreenElement) {\n return;\n }\n const exitFullScreenDocument = document as Document & {\n mozCancelFullScreen(): Promise ;\n msExitFullscreen(): Promise ;\n webkitExitFullscreen(): Promise ;\n };\n if (exitFullScreenDocument?.exitFullscreen) {\n exitFullScreenDocument?.exitFullscreen();\n } else if (exitFullScreenDocument?.msExitFullscreen) {\n exitFullScreenDocument?.msExitFullscreen();\n } else if (exitFullScreenDocument?.mozCancelFullScreen) {\n exitFullScreenDocument?.mozCancelFullScreen();\n } else if (exitFullScreenDocument?.webkitExitFullscreen) {\n exitFullScreenDocument?.webkitExitFullscreen();\n }\n}\n\n\n/**\n * 从 window.location.href 中获取指定key的value\n * @param {*} key 要获取的 key\n * @returns window.location.href 中指定key对应的value\n * @example\n * const value = getUrlParam(key);\n */\nexport function getUrlParam(key: string) {\n const url = window?.location.href.replace(/^[^?]*\\?/, '');\n const regexp = new RegExp(`(^|&)${key}=([^]*)(&|$|)`, 'i');\n const paramMatch = url?.match(regexp);\n\n return paramMatch ? paramMatch[2] : null;\n}\n\n\n/**\n * 深拷贝\n * @param data 任意类型的 data 原数据\n * @returns 深拷贝之后的数据\n */\nexport function deepClone(data: any) {\n let res: any = null;\n const reference = [Date, RegExp, Set, WeakSet, Map, WeakMap, Error];\n if (reference.includes(data?.constructor)) {\n res = new data.constructor(data);\n } else if (Array.isArray(data)) {\n res = [];\n data.forEach((e, i) => {\n res[i] = deepClone(e);\n });\n } else if (typeof data === 'object' && data !== null) {\n res = {};\n Object.keys(data).forEach((key) => {\n if (Object.hasOwnProperty.call(data, key)) {\n res[key] = deepClone(data[key]);\n }\n });\n } else {\n res = data;\n }\n return res;\n}\n\nexport function isElectronEnv() {\n const userAgent = navigator?.userAgent.toLowerCase();\n return userAgent?.indexOf(' electron/') > -1;\n}\n\nexport function isUndefined(value: any) {\n return typeof value === 'undefined';\n}\n\nexport { clipBoard } from './adapter';\n","import Vue from 'vue';\n\nexport default Vue;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=2df3f510&\"\nvar script = {}\nimport style0 from \"./App.vue?vue&type=style&index=0&id=2df3f510&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport App from './App.vue';\nimport router from './router';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport ElementUI from 'element-ui';\nimport 'element-ui/lib/theme-chalk/index.css';\nimport i18n from './TUIRoom/locales/';\n\nVue.use(PiniaVuePlugin);\nconst pinia = createPinia();\n\nVue.use(ElementUI);\nVue.use(i18n);\n\nVue.config.productionTip = false;\n\nrouter.beforeEach((to,from,next)=>{\n let path = to.fullPath;\n let pathName = path.split('name=');\n sessionStorage.setItem('userName',pathName[1]);\n next();\n});\n\nnew Vue({\n pinia,\n // @ts-ignore\n router,\n render: h => h(App),\n}).$mount('#app');\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"home-container\"},[_c('div',{staticClass:\"header\"},[_c('user-info',{staticClass:\"header-item user-info\",attrs:{\"user-id\":_vm.userId,\"user-name\":_vm.userName,\"user-avatar\":_vm.userAvatar},on:{\"log-out\":_vm.handleLogOut}}),_c('language-icon',{staticClass:\"header-item language\"}),_c('switch-theme',{staticClass:\"header-item theme\"})],1),(!_vm.isMobile)?_c('stream-preview',{ref:\"streamPreviewRef\"}):_vm._e(),_c('room-control',{ref:\"roomControlRef\",attrs:{\"given-room-id\":_vm.givenRoomId,\"user-name\":_vm.userName || _vm.userId},on:{\"create-room\":_vm.handleCreateRoom,\"enter-room\":_vm.handleEnterRoom}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_setup.loading),expression:\"loading\"}],staticClass:\"stream-container\",attrs:{\"element-loading-background\":\"#000000\"}},[_c('div',{ref:\"streamPreviewRef\",staticClass:\"stream-preview\",attrs:{\"id\":\"stream-preview\"}}),(_setup.isCameraMuted)?_c('div',{staticClass:\"stream-info\"},[_c('span',{staticClass:\"attention-info\"},[_vm._v(_vm._s(_setup.t('Off Camera')))])]):_vm._e(),_c('div',{staticClass:\"control-region\"},[_c(_setup.IconButton,{ref:\"audioIconButtonRef\",attrs:{\"title\":_setup.t('Mic'),\"is-active\":_setup.isMicMuted,\"hide-hover-effect\":true,\"has-more\":true},on:{\"click-icon\":_setup.toggleMuteAudio,\"click-more\":_setup.handleMicSetting}},[_c(_setup.AudioIcon,{attrs:{\"audio-volume\":_setup.audioVolume,\"is-muted\":_setup.isMicMuted}})],1),_c(_setup.IconButton,{ref:\"videoIconButtonRef\",staticClass:\"icon\",attrs:{\"title\":_setup.t('Camera'),\"is-active\":_setup.isCameraMuted,\"icon-name\":_setup.cameraIconName,\"hide-hover-effect\":true,\"has-more\":true},on:{\"click-icon\":_setup.toggleMuteVideo,\"click-more\":_setup.handleCameraSetting}})],1)]),_c('div',{staticClass:\"drawer-container\"},[_c(_setup.Drawer,{attrs:{\"model-value\":_setup.isSettingOpen,\"modal\":false,\"title\":_setup.t(_setup.settingTitle),\"direction\":\"rtl\",\"before-close\":_setup.handleDrawerClose,\"size\":480}},[(_setup.settingTab === 'audio')?_c(_setup.AudioSettingTab,{attrs:{\"mode\":_setup.SettingMode.DETAIL}}):(_setup.settingTab === 'video')?_c(_setup.VideoSettingTab,{attrs:{\"mode\":_setup.SettingMode.DETAIL,\"with-preview\":false}}):_vm._e()],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, computed, onBeforeUnmount } from 'vue';\nimport TUIRoomEngine, { TUIRoomEvents, TRTCDeviceType, TRTCDeviceState } from '@tencentcloud/tuiroom-engine-js';\nimport IconButton from '../common/IconButton.vue';\nimport { SettingMode } from '../../constants/render';\nimport AudioSettingTab from '../base/AudioSettingTab.vue';\nimport VideoSettingTab from '../base/VideoSettingTab.vue';\nimport AudioIcon from '../base/AudioIcon.vue';\nimport { useRoomStore } from '../../stores/room';\nimport { ICON_NAME } from '../../constants/icon';\nimport { useI18n } from '../../locales';\nimport useGetRoomEngine from '../../hooks/useRoomEngine';\nimport { isElectronEnv } from '../../utils/utils';\nimport Drawer from '../../elementComp/Drawer.vue';\nimport { ElMessageBox } from '../../elementComp/index';\nimport logger from '../../utils/common/logger';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'StreamPreview',\n setup(__props, { expose }) {\n\nconst roomStore = useRoomStore();\nconst { t } = useI18n();\n\nconst audioVolume = ref(0);\nconst isElectron = isElectronEnv();\nconst roomEngine = useGetRoomEngine();\n\nexpose({\n getRoomParam,\n startStreamPreview,\n});\n\nconst tuiRoomParam = {\n isOpenCamera: true,\n isOpenMicrophone: true,\n defaultCameraId: '',\n defaultMicrophoneId: '',\n defaultSpeakerId: '',\n};\n\nconst streamPreviewRef = ref();\nconst loading = ref(true);\n\nconst isMicMuted = ref(false);\nconst isCameraMuted = ref(false);\n\nconst cameraIconName = computed(() => (isCameraMuted.value ? ICON_NAME.CameraOff : ICON_NAME.CameraOn));\n\nasync function toggleMuteAudio() {\n isMicMuted.value = !isMicMuted.value;\n tuiRoomParam.isOpenMicrophone = !isMicMuted.value;\n if (isMicMuted.value) {\n await roomEngine.instance?.stopMicDeviceTest();\n audioVolume.value = 0;\n } else {\n await roomEngine.instance?.startMicDeviceTest({ interval: 200 });\n }\n}\n\nasync function toggleMuteVideo() {\n isCameraMuted.value = !isCameraMuted.value;\n tuiRoomParam.isOpenCamera = !isCameraMuted.value;\n if (isCameraMuted.value) {\n await roomEngine.instance?.stopCameraDeviceTest();\n } else {\n await roomEngine.instance?.startCameraDeviceTest({\n view: 'stream-preview',\n });\n }\n}\n\nfunction getRoomParam() {\n tuiRoomParam.defaultCameraId = roomStore.currentCameraId;\n tuiRoomParam.defaultMicrophoneId = roomStore.currentMicrophoneId;\n tuiRoomParam.defaultSpeakerId = roomStore.currentSpeakerId;\n return tuiRoomParam;\n}\n\nconst onUserVoiceVolume = (result: any) => {\n audioVolume.value = result;\n};\n\nasync function startStreamPreview() {\n const cameraList = await roomEngine.instance?.getCameraDevicesList();\n const microphoneList = await roomEngine.instance?.getMicDevicesList();\n const speakerList = await roomEngine.instance?.getSpeakerDevicesList();\n\n const hasCameraDevice = cameraList && cameraList.length > 0;\n const hasMicrophoneDevice = microphoneList && microphoneList.length > 0;\n let alertMessage = '';\n if (hasCameraDevice && !hasMicrophoneDevice) {\n alertMessage = 'Microphone not detected on current device';\n } else if (!hasCameraDevice && hasMicrophoneDevice) {\n alertMessage = 'Camera not detected on current device';\n } else if (!hasCameraDevice && !hasMicrophoneDevice) {\n alertMessage = 'Camera And Microphone not detected on current device';\n }\n if (alertMessage) {\n ElMessageBox.alert(t(alertMessage), t('Note'), {\n customClass: 'custom-element-class',\n confirmButtonText: t('Confirm') });\n }\n\n cameraList && roomStore.setCameraList(cameraList);\n microphoneList && roomStore.setMicrophoneList(microphoneList);\n speakerList && roomStore.setSpeakerList(speakerList);\n const cameraInfo = roomEngine.instance?.getCurrentCameraDevice();\n const micInfo = roomEngine.instance?.getCurrentMicDevice();\n const speakerInfo = roomEngine.instance?.getCurrentSpeakerDevice();\n if (cameraInfo && cameraInfo.deviceId) {\n roomStore.setCurrentCameraId(cameraInfo.deviceId);\n }\n if (micInfo && micInfo.deviceId) {\n roomStore.setCurrentMicrophoneId(micInfo.deviceId);\n }\n if (speakerInfo && speakerInfo.deviceId) {\n roomStore.setCurrentSpeakerId(speakerInfo.deviceId);\n }\n\n if (hasCameraDevice) {\n await roomEngine.instance?.startCameraDeviceTest({ view: 'stream-preview' });\n }\n if (hasMicrophoneDevice) {\n await roomEngine.instance?.startMicDeviceTest({ interval: 200 });\n }\n loading.value = false;\n}\n\n\n/**\n * Device changes: device switching, device plugging and unplugging events\n *\n * 设备变化:设备切换、设备插拔事件\n **/\nasync function onDeviceChange(eventInfo: {deviceId: string, type: number, state: number}) {\n const stateList = ['add', 'remove', 'active'];\n const { deviceId, type, state } = eventInfo;\n if (type === TRTCDeviceType.TRTCDeviceTypeMic) {\n logger.log(`onDeviceChange: deviceId: ${deviceId}, type: microphone, state: ${stateList[state]}`);\n const deviceList = await roomEngine.instance?.getMicDevicesList();\n roomStore.setMicrophoneList(deviceList);\n if (state === TRTCDeviceState.TRTCDeviceStateActive) {\n roomStore.setCurrentMicrophoneId(deviceId);\n }\n return;\n }\n if (type === TRTCDeviceType.TRTCDeviceTypeSpeaker) {\n logger.log(`onDeviceChange: deviceId: ${deviceId}, type: speaker, state: ${stateList[state]}`);\n const deviceList = await roomEngine.instance?.getSpeakerDevicesList();\n roomStore.setSpeakerList(deviceList);\n if (state === TRTCDeviceState.TRTCDeviceStateActive) {\n roomStore.setCurrentSpeakerId(deviceId);\n }\n return;\n }\n if (type === TRTCDeviceType.TRTCDeviceTypeCamera) {\n logger.log(`onDeviceChange: deviceId: ${deviceId}, type: camera, state: ${stateList[state]}`);\n const deviceList = await roomEngine.instance?.getCameraDevicesList();\n roomStore.setCameraList(deviceList);\n if (state === TRTCDeviceState.TRTCDeviceStateActive) {\n roomStore.setCurrentCameraId(deviceId);\n }\n }\n}\n\nTUIRoomEngine.once('ready', async () => {\n // 兼容没有打开音频前,roomEngine 没有抛出音量事件的问题\n const trtcCloud = roomEngine.instance?.getTRTCCloud();\n trtcCloud?.on('onTestMicVolume', onUserVoiceVolume);\n\n roomEngine.instance?.on(TUIRoomEvents.onDeviceChange, onDeviceChange);\n});\n\nonBeforeUnmount(async () => {\n await roomEngine.instance?.stopCameraDeviceTest();\n await roomEngine.instance?.stopMicDeviceTest();\n\n const trtcCloud = roomEngine.instance?.getTRTCCloud();\n trtcCloud?.off('onTestMicVolume', onUserVoiceVolume);\n roomEngine.instance?.off(TUIRoomEvents.onDeviceChange, onDeviceChange);\n});\n\n/**\n * Handles audio and video device settings\n *\n * 处理音视频设备设置\n **/\nconst isSettingOpen = ref(false);\nconst settingTitle = ref('');\nconst settingTab = ref('');\n\n/**\n * Handling audio device settings\n *\n * 处理音频设备设置\n **/\nfunction handleMicSetting() {\n isSettingOpen.value = true;\n settingTitle.value = 'Mic settings';\n settingTab.value = 'audio';\n}\n\n/**\n * Handling video device settings\n *\n * 处理视频设备设置\n **/\nfunction handleCameraSetting() {\n isSettingOpen.value = true;\n settingTitle.value = 'Camera settings';\n settingTab.value = 'video';\n}\n\nfunction handleDrawerClose(done: any) {\n settingTab.value = '';\n isSettingOpen.value = false;\n done();\n}\n\n\nreturn { __sfc: true,roomStore, t, audioVolume, isElectron, roomEngine, tuiRoomParam, streamPreviewRef, loading, isMicMuted, isCameraMuted, cameraIconName, toggleMuteAudio, toggleMuteVideo, getRoomParam, onUserVoiceVolume, startStreamPreview, onDeviceChange, isSettingOpen, settingTitle, settingTab, handleMicSetting, handleCameraSetting, handleDrawerClose, IconButton, SettingMode, AudioSettingTab, VideoSettingTab, AudioIcon, Drawer }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamPreview.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamPreview.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./StreamPreview.vue?vue&type=template&id=61321d8a&\"\nimport script from \"./StreamPreview.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./StreamPreview.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./StreamPreview.vue?vue&type=style&index=0&id=61321d8a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"control-container\"},[(!_setup.showRoomDetail)?_c('div',{staticClass:\"container-header\"},[_c('div',[(!_setup.isEN)?_c('div',{staticClass:\"container-icon\"},[_c(_setup.SvgIcon,{staticClass:\"tencent-cloud\",attrs:{\"icon-name\":\"tencent-cloud\",\"size\":\"custom\"}}),_c(_setup.SvgIcon,{staticClass:\"tencent-cloud-text\",attrs:{\"icon-name\":\"tencent-cloud-text\",\"size\":\"custom\"}})],1):_c('div',{staticClass:\"login-logo\"},[_c('img',{staticClass:\"login-top\",attrs:{\"src\":_setup.logoEn}})])]),_c('div',{staticClass:\"container-bottom\"},[_c('div',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.enterRoom),expression:\"enterRoom\"}],staticClass:\"join-room\"},[_c(_setup.SvgIcon,{staticClass:\"enter-icon\",attrs:{\"icon-name\":\"enter-room\",\"size\":\"custom\"}}),_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_setup.t('Join Room')))])],1),_c('div',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.createRoom),expression:\"createRoom\"}],staticClass:\"create-room\"},[_c(_setup.SvgIcon,{staticClass:\"add-icon\",attrs:{\"icon-name\":\"add-icon\",\"size\":\"custom\"}}),_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_setup.t('New Room')))])],1)])]):_vm._e(),(_setup.showRoomDetail || _setup.hasGivenRoomId )?_c('div',{staticClass:\"room-detail\"},[_c('div',{staticClass:\"room-detail-header\"},[_c(_setup.SvgIcon,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.handleClose),expression:\"handleClose\"}],staticClass:\"close-icon\",attrs:{\"icon-name\":\"close-back\",\"size\":\"custom\"}}),(_setup.isJoinRoom || _setup.hasGivenRoomId)?_c('span',{staticClass:\"room-detail-header-title\"},[_vm._v(_vm._s(_setup.t('Join Room')))]):_c('span',{staticClass:\"room-detail-header-title\"},[_vm._v(_vm._s(_setup.t('New Room')))])],1),_c('div',{staticClass:\"room-detail-middle\"},[_c('div',{staticClass:\"room-detail-info\"},[(_setup.isJoinRoom || _setup.hasGivenRoomId)?_c('div',{staticClass:\"room-detail-info-box\"},[_c('span',{staticClass:\"room-detail-title\"},[_vm._v(\" \"+_vm._s(_setup.t('Room ID')))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_setup.roomId),expression:\"roomId\"}],staticClass:\"roomid-input\",attrs:{\"type\":\"number\",\"placeholder\":_setup.t('Enter room ID'),\"maxlength\":\"10\",\"enterkeyhint\":\"complete\"},domProps:{\"value\":(_setup.roomId)},on:{\"keyup\":_setup.handleInput,\"input\":function($event){if($event.target.composing)return;_setup.roomId=$event.target.value}}})]):_c('div',{staticClass:\"room-detail-info-box\",on:{\"click\":_setup.chooseRoomType}},[_c('span',{staticClass:\"room-detail-title\"},[_vm._v(\" \"+_vm._s(_setup.t('Room Type')))]),_c('div',{staticClass:\"room-show-title\"},[_c('span',{staticClass:\"room-show-title\"},[_vm._v(_vm._s(_setup.roomType))])]),_c(_setup.SvgIcon,{staticClass:\"chevron-down-icon\",attrs:{\"icon-name\":\"chevron-down\",\"size\":\"custom\"}})],1),_c('div',{staticClass:\"room-detail-info-box\"},[_c('span',{staticClass:\"room-detail-title\"},[_vm._v(_vm._s(_setup.t('Your Name')))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_setup.currentUserName),expression:\"currentUserName\"}],staticClass:\"roomid-input\",attrs:{\"enterkeyhint\":\"complete\",\"maxlength\":\"16\",\"minlength\":\"1\"},domProps:{\"value\":(_setup.currentUserName)},on:{\"keyup\":_setup.handleInputName,\"input\":function($event){if($event.target.composing)return;_setup.currentUserName=$event.target.value}}})])]),_c('div',{staticClass:\"room-detail-setting\"},[_c('div',{staticClass:\"room-detail-setting-list\"},[_vm._v(\" \"+_vm._s(_setup.t('Turn on the microphone'))+\" \"),_c('div',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.toggle('isMicOn')),expression:\"() => toggle('isMicOn')\"}],staticClass:\"slider-box\",class:[_setup.isMicOn && 'slider-open']},[_c('span',{staticClass:\"slider-block\"})])]),_c('div',{staticClass:\"room-detail-setting-list\"},[_vm._v(\" \"+_vm._s(_setup.t('Turn on the video'))+\" \"),_c('div',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.toggle('isCamerOn')),expression:\"() => toggle('isCamerOn')\"}],staticClass:\"slider-box\",class:[_setup.isCamerOn && 'slider-open']},[_c('span',{staticClass:\"slider-block\"})])])])]),_c('div',{staticClass:\"room-detail-bottom\"},[(_setup.isJoinRoom || _setup.hasGivenRoomId)?_c('span',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.handleRoomOption('Join')),expression:\"() => handleRoomOption('Join')\"}],staticClass:\"button\"},[_vm._v(_vm._s(_setup.t('Join Room')))]):_c('span',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.handleRoomOption('New')),expression:\"() => handleRoomOption('New')\"}],staticClass:\"button\"},[_vm._v(_vm._s(_setup.t('New Room')))])])]):_vm._e(),(_setup.showMoreType)?_c('div',{staticClass:\"room-choose-mobile\"},[_c('div',{ref:\"moreTypeRef\",class:[_setup.showMoreType ? 'room-type-container' : 'close-room-type-container']},[_c('div',{staticClass:\"room-choose-button\"},[_c('span',{staticClass:\"choose-cancel\",on:{\"click\":function($event){_setup.showMoreType = false}}},[_vm._v(_vm._s(_setup.t('Cancel')))]),_c('span',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.handleConfirm),expression:\"handleConfirm\"}],staticClass:\"choose-confirm\"},[_vm._v(_vm._s(_setup.t('Sure')))])]),_c('div',{staticClass:\"room-type-hidden\"},[_c('span',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.chooseCurrentType('FreeToSpeak')),expression:\"() => chooseCurrentType('FreeToSpeak')\"}],staticClass:\"room-choose-title\",class:[_setup.mode === 'FreeToSpeak' && 'room-current-title']},[_vm._v(_vm._s(_setup.t('Free Speech Room')))]),_c('span',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.chooseCurrentType('SpeakAfterTakingSeat')),expression:\"() => chooseCurrentType('SpeakAfterTakingSeat')\"}],staticClass:\"room-choose-title\",class:[_setup.mode === 'SpeakAfterTakingSeat' && 'room-current-title']},[_vm._v(_vm._s(_setup.t('Raise Hand Room')))])])])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import i18n from '../../../locales/index';\nimport { ref, computed } from 'vue';\nimport { useI18n } from '../../../locales';\nimport logoCn from '../../../assets/imgs/logo.png';\nimport logoEn from '../../../assets/imgs/logo-en.png';\nexport default function useRoomControl() {\n const logo = computed(() => (i18n.global.locale.value === 'zh-CN' ? logoCn : logoEn));\n const isEN = computed(() => i18n.global.locale.value === 'en-US');\n const showCreateRoomOption = ref(false);\n\n const { t } = useI18n();\n\n\n return {\n logo,\n isEN,\n logoEn,\n t,\n showCreateRoomOption,\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { computed, ref, watch, onMounted, onUnmounted } from 'vue';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { useRoomStore } from '../../../stores/room';\nimport useRoomControl from './useRoomControlHooks';\nimport '../../../directives/vTap';\n\ninterface Props{\n userName: string\n givenRoomId: string | null\n}\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'RoomControlH5',\n props: {\n userName: null,\n givenRoomId: null\n },\n emits: ['create-room', 'enter-room', 'update-user-name'],\n setup(__props: any, { expose, emit }) {\n\nconst props = __props as {\n userName: string\n givenRoomId: string | null\n}\n\nconst {\n logoEn,\n t,\n isEN,\n} = useRoomControl();\n\nconst moreTypeRef = ref();\nconst roomStore = useRoomStore();\nconst showRoomDetail = ref(false);\nconst showMoreType = ref(false);\nconst isJoinRoom = ref(false);\nconst roomType = computed(() => (mode.value === 'FreeToSpeak' ? t('Free Speech Room') : t('Raise Hand Room')));\nconst isMicOn = ref(true);\nconst isCamerOn = ref(true);\nconst mode = ref('FreeToSpeak');\nconst roomId = ref('');\nconst tuiRoomParam = {\n isOpenCamera: true,\n isOpenMicrophone: true,\n defaultCameraId: '',\n defaultMicrophoneId: '',\n defaultSpeakerId: '',\n};\n\n\n\nexpose({\n getRoomParam,\n});\nconst currentUserName = ref(props.userName || `user_${Math.ceil(Math.random() * 10)}`);\nconst hasGivenRoomId = computed(() => (typeof props.givenRoomId === 'string' && props.givenRoomId !== ''));\n\nwatch(\n () => props.givenRoomId,\n (val) => {\n if (val) {\n roomId.value = val;\n }\n },\n { immediate: true },\n);\n\nfunction createRoom() {\n showRoomDetail.value = !showRoomDetail.value;\n isJoinRoom.value = false;\n}\nfunction enterRoom() {\n showRoomDetail.value = !showRoomDetail.value;\n isJoinRoom.value = true;\n}\nfunction chooseRoomType() {\n showMoreType.value = !showMoreType.value;\n}\nfunction chooseCurrentType(roomType: string) {\n mode.value = roomType;\n}\nfunction handleConfirm() {\n showMoreType.value = !showMoreType.value;\n}\nfunction handleClose() {\n showRoomDetail.value = false;\n showMoreType.value = false;\n}\nfunction toggle(type:string) {\n switch (type) {\n case 'isMicOn':\n isMicOn.value = !isMicOn.value;\n tuiRoomParam.isOpenMicrophone = isMicOn.value;\n break;\n case 'isCamerOn':\n isCamerOn.value = !isCamerOn.value;\n tuiRoomParam.isOpenCamera = isCamerOn.value;\n break;\n default:\n break;\n }\n}\nfunction getRoomParam() {\n tuiRoomParam.defaultCameraId = roomStore.currentCameraId;\n tuiRoomParam.defaultMicrophoneId = roomStore.currentMicrophoneId;\n tuiRoomParam.defaultSpeakerId = roomStore.currentSpeakerId;\n return tuiRoomParam;\n}\n\nfunction handleInput(e: any) {\n roomId.value = e.target.value;\n}\n\nfunction handleInputName(e: any) {\n currentUserName.value = e.target.value;\n}\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (showMoreType.value && !moreTypeRef.value.contains(event.target)) {\n showMoreType.value = false;\n }\n}\n\n\nfunction handleRoomOption(type:string) {\n emit('update-user-name', currentUserName.value);\n switch (type) {\n case 'Join':\n emit('enter-room', String(roomId.value));\n break;\n case 'New':\n emit('create-room', mode.value);\n break;\n default:\n break;\n }\n}\n\n\nonMounted(() => {\n document?.addEventListener('click', handleDocumentClick, true);\n});\n\nonUnmounted(() => {\n document?.removeEventListener('click', handleDocumentClick, true);\n});\n\n\nreturn { __sfc: true,logoEn, t, isEN, moreTypeRef, roomStore, showRoomDetail, showMoreType, isJoinRoom, roomType, isMicOn, isCamerOn, mode, roomId, tuiRoomParam, emit, props, currentUserName, hasGivenRoomId, createRoom, enterRoom, chooseRoomType, chooseCurrentType, handleConfirm, handleClose, toggle, getRoomParam, handleInput, handleInputName, handleDocumentClick, handleRoomOption, SvgIcon }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RoomControlH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RoomControlH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./RoomControlH5.vue?vue&type=template&id=6b65407c&scoped=true&\"\nimport script from \"./RoomControlH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./RoomControlH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./RoomControlH5.vue?vue&type=style&index=0&id=6b65407c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b65407c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"control-container\"},[_c('div',{staticClass:\"control-content\"},[_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showLogo),expression:\"showLogo\"}],staticClass:\"logo\",attrs:{\"src\":_setup.logo}}),(_setup.hasGivenRoomId)?_c('div',{staticClass:\"control-region\"},[_c('span',{staticClass:\"invite-title\"},[_vm._v(_vm._s(_setup.t('Join the room ?')))]),_c('span',{staticClass:\"invite-info\"},[_vm._v(_vm._s(_setup.t('You are invited to room '))+_vm._s(`${_vm.givenRoomId} `)+_vm._s(_setup.t('Room')))]),_c('div',{staticClass:\"button enter-given-room-button\",on:{\"click\":_setup.enterGivenRoom}},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_setup.t('Join')))])])]):_c('div',{staticClass:\"control-region\"},[_c('div',{staticClass:\"button create-room-button\",attrs:{\"type\":\"primary\"},on:{\"mouseenter\":_setup.handleMouseEnter,\"mouseleave\":_setup.handleMouseLeave}},[_c('div',{staticClass:\"create-room\"},[_c(_setup.SvgIcon,{attrs:{\"icon-name\":\"add-icon\"}}),_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_setup.t('New Room')))])],1),_c('div',{staticClass:\"connect-region\"}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showCreateRoomOption),expression:\"showCreateRoomOption\"}],staticClass:\"create-room-mode\"},[_c('div',{staticClass:\"create-room-option\",on:{\"click\":function($event){return _setup.createRoom('FreeToSpeak')}}},[_c(_setup.SvgIcon,{staticClass:\"icon\",attrs:{\"icon-name\":\"free-speech-icon\"}}),_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_setup.t('Free Speech Room')))])],1),_c('div',{staticClass:\"create-room-option\",on:{\"click\":function($event){return _setup.createRoom('SpeakAfterTakingSeat')}}},[_c(_setup.SvgIcon,{staticClass:\"icon\",attrs:{\"icon-name\":\"apply-speech-icon\"}}),_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_setup.t('Raise Hand Room')))])],1)])]),_c('div',{staticClass:\"button join-room-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_setup.enterRoom}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_setup.roomId),expression:\"roomId\"}],staticClass:\"input\",attrs:{\"placeholder\":_setup.t('Enter room ID'),\"maxlength\":\"10\"},domProps:{\"value\":(_setup.roomId)},on:{\"click\":function($event){$event.stopPropagation();},\"input\":function($event){if($event.target.composing)return;_setup.roomId=$event.target.value}}}),_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_setup.t('Join Room')))])])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, watch, computed } from 'vue';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport useRoomControl from './useRoomControlHooks';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'RoomControlPC',\n props: {\n showLogo: { type: Boolean, default: true },\n givenRoomId: null\n },\n emits: ['create-room', 'enter-room'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { showLogo: boolean, givenRoomId: string | null }\n\nconst {\n logo,\n showCreateRoomOption,\n t,\n} = useRoomControl();\n\n\n\nconst hasGivenRoomId = computed(() => (typeof props.givenRoomId === 'string' && props.givenRoomId !== ''));\nconst roomId = ref('');\n\n\n\nwatch(roomId, (val) => {\n roomId.value = val.replace(/[^\\d]/g, '');\n});\n\nfunction enterGivenRoom() {\n emit('enter-room', props.givenRoomId);\n}\nfunction handleMouseEnter() {\n showCreateRoomOption.value = true;\n}\n\nfunction handleMouseLeave() {\n showCreateRoomOption.value = false;\n}\n\nfunction createRoom(mode: string) {\n emit('create-room', mode);\n}\n\nfunction enterRoom() {\n if (!roomId.value) {\n return;\n }\n emit('enter-room', String(roomId.value));\n}\n\n\nreturn { __sfc: true,logo, showCreateRoomOption, t, props, hasGivenRoomId, roomId, emit, enterGivenRoom, handleMouseEnter, handleMouseLeave, createRoom, enterRoom, SvgIcon }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RoomControlPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RoomControlPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./RoomControlPC.vue?vue&type=template&id=e855f218&scoped=true&\"\nimport script from \"./RoomControlPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./RoomControlPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./RoomControlPC.vue?vue&type=style&index=0&id=e855f218&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e855f218\",\n null\n \n)\n\nexport default component.exports","import RoomControlH5 from './RoomControlH5.vue';\nimport RoomControlPc from './RoomControlPC.vue';\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst RoomControl = isMobile ? RoomControlH5 : RoomControlPc;\n\nexport default RoomControl;\n","/*eslint-disable*/\nvar e=\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},t=[],r=[],n=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,i=!1;function o(){i=!0;for(var e=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",n=0,o=e.length;n >18&63]+t[o>>12&63]+t[o>>6&63]+t[63&o]);return a.join(\"\")}function s(e){var r;i||o();for(var n=e.length,s=n%3,h=\"\",l=[],f=0,c=n-s;f c?c:f+16383));return 1===s?(r=e[n-1],h+=t[r>>2],h+=t[r<<4&63],h+=\"==\"):2===s&&(r=(e[n-2]<<8)+e[n-1],h+=t[r>>10],h+=t[r>>4&63],h+=t[r<<2&63],h+=\"=\"),l.push(h),l.join(\"\")}function h(e,t,r,n,i){var o,a,s=8*i-n-1,h=(1< >1,f=-7,c=r?i-1:0,u=r?-1:1,d=e[t+c];for(c+=u,o=d&(1<<-f)-1,d>>=-f,f+=s;f>0;o=256*o+e[t+c],c+=u,f-=8);for(a=o&(1<<-f)-1,o>>=-f,f+=n;f>0;a=256*a+e[t+c],c+=u,f-=8);if(0===o)o=1-l;else{if(o===h)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,n),o-=l}return(d?-1:1)*a*Math.pow(2,o-n)}function l(e,t,r,n,i,o){var a,s,h,l=8*o-i-1,f=(1<>1,u=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,_=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=f):(a=Math.floor(Math.log(t)/Math.LN2),t*(h=Math.pow(2,-a))<1&&(a--,h*=2),(t+=a+c>=1?u/h:u*Math.pow(2,1-c))*h>=2&&(a++,h/=2),a+c>=f?(s=0,a=f):a+c>=1?(s=(t*h-1)*Math.pow(2,i),a+=c):(s=t*Math.pow(2,c-1)*Math.pow(2,i),a=0));i>=8;e[r+d]=255&s,d+=p,s/=256,i-=8);for(a=a<0;e[r+d]=255&a,d+=p,a/=256,l-=8);e[r+d-p]|=128*_}var f={}.toString,c=Array.isArray||function(e){return\"[object Array]\"==f.call(e)};function u(){return p.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function d(e,t){if(u() =u())throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+u().toString(16)+\" bytes\");return 0|e}function y(e){return!(null==e||!e._isBuffer)}function m(e,t){if(y(e))return e.length;if(\"undefined\"!=typeof ArrayBuffer&&\"function\"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;\"string\"!=typeof e&&(e=\"\"+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":case void 0:return q(e).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return V(e).length;default:if(n)return q(e).length;t=(\"\"+t).toLowerCase(),n=!0}}function k(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(t>>>=0))return\"\";for(e||(e=\"utf8\");;)switch(e){case\"hex\":return O(this,t,r);case\"utf8\":case\"utf-8\":return C(this,t,r);case\"ascii\":return I(this,t,r);case\"latin1\":case\"binary\":return P(this,t,r);case\"base64\":return M(this,t,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return U(this,t,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+e);e=(e+\"\").toLowerCase(),n=!0}}function E(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function S(e,t,r,n,i){if(0===e.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if(\"string\"==typeof t&&(t=p.from(t,n)),y(t))return 0===t.length?-1:x(e,t,r,n,i);if(\"number\"==typeof t)return t&=255,p.TYPED_ARRAY_SUPPORT&&\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):x(e,[t],r,n,i);throw new TypeError(\"val must be string, number or Buffer\")}function x(e,t,r,n,i){var o,a=1,s=e.length,h=t.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,h/=2,r/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var f=-1;for(o=r;o s&&(r=s-h),o=r;o>=0;o--){for(var c=!0,u=0;ui&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError(\"Invalid hex string\");n>o/2&&(n=o/2);for(var a=0;a >8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function M(e,t,r){return 0===t&&r===e.length?s(e):s(e.slice(t,r))}function C(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i 239?4:l>223?3:l>191?2:1;if(i+c<=r)switch(c){case 1:l<128&&(f=l);break;case 2:128==(192&(o=e[i+1]))&&(h=(31&l)<<6|63&o)>127&&(f=h);break;case 3:o=e[i+1],a=e[i+2],128==(192&o)&&128==(192&a)&&(h=(15&l)<<12|(63&o)<<6|63&a)>2047&&(h<55296||h>57343)&&(f=h);break;case 4:o=e[i+1],a=e[i+2],s=e[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(h=(15&l)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&h<1114112&&(f=h)}null===f?(f=65533,c=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=c}return function(e){var t=e.length;if(t<=D)return String.fromCharCode.apply(String,e);var r=\"\",n=0;for(;n 0&&(e=this.toString(\"hex\",0,50).match(/.{2}/g).join(\" \"),this.length>50&&(e+=\" ... \")),\" \"},p.prototype.compare=function(e,t,r,n,i){if(!y(e))throw new TypeError(\"Argument must be a Buffer\");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError(\"out of range index\");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0),s=Math.min(o,a),h=this.slice(n,i),l=e.slice(t,r),f=0;f i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");n||(n=\"utf8\");for(var o=!1;;)switch(n){case\"hex\":return R(this,e,t,r);case\"utf8\":case\"utf-8\":return A(this,e,t,r);case\"ascii\":return B(this,e,t,r);case\"latin1\":case\"binary\":return z(this,e,t,r);case\"base64\":return L(this,e,t,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return T(this,e,t,r);default:if(o)throw new TypeError(\"Unknown encoding: \"+n);n=(\"\"+n).toLowerCase(),o=!0}},p.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};var D=4096;function I(e,t,r){var n=\"\";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i=\"\",o=t;o r)throw new RangeError(\"Trying to access beyond buffer length\")}function F(e,t,r,n,i,o){if(!y(e))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(t>i||t e.length)throw new RangeError(\"Index out of range\")}function N(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-r,2);i >>8*(n?i:1-i)}function Z(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-r,4);i >>8*(n?i:3-i)&255}function j(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function W(e,t,r,n,i){return i||j(e,0,r,4),l(e,t,r,n,23,4),r+4}function Y(e,t,r,n,i){return i||j(e,0,r,8),l(e,t,r,n,52,8),r+8}p.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t 0&&(i*=256);)n+=this[e+--t]*i;return n},p.prototype.readUInt8=function(e,t){return t||H(e,1,this.length),this[e]},p.prototype.readUInt16LE=function(e,t){return t||H(e,2,this.length),this[e]|this[e+1]<<8},p.prototype.readUInt16BE=function(e,t){return t||H(e,2,this.length),this[e]<<8|this[e+1]},p.prototype.readUInt32LE=function(e,t){return t||H(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},p.prototype.readUInt32BE=function(e,t){return t||H(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},p.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||H(e,t,this.length);for(var n=this[e],i=1,o=0;++o =(i*=128)&&(n-=Math.pow(2,8*t)),n},p.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||H(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},p.prototype.readInt8=function(e,t){return t||H(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},p.prototype.readInt16LE=function(e,t){t||H(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},p.prototype.readInt16BE=function(e,t){t||H(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},p.prototype.readInt32LE=function(e,t){return t||H(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},p.prototype.readInt32BE=function(e,t){return t||H(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},p.prototype.readFloatLE=function(e,t){return t||H(e,4,this.length),h(this,e,!0,23,4)},p.prototype.readFloatBE=function(e,t){return t||H(e,4,this.length),h(this,e,!1,23,4)},p.prototype.readDoubleLE=function(e,t){return t||H(e,8,this.length),h(this,e,!0,52,8)},p.prototype.readDoubleBE=function(e,t){return t||H(e,8,this.length),h(this,e,!1,52,8)},p.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||F(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[t]=255&e;++o =0&&(o*=256);)this[t+i]=e/o&255;return t+r},p.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,1,255,0),p.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},p.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,65535,0),p.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},p.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,65535,0),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},p.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,4294967295,0),p.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):Z(this,e,t,!0),t+4},p.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,4294967295,0),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Z(this,e,t,!1),t+4},p.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);F(this,e,t,r,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o >0)-s&255;return t+r},p.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);F(this,e,t,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+r},p.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,1,127,-128),p.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},p.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,32767,-32768),p.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},p.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,2,32767,-32768),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},p.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,2147483647,-2147483648),p.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):Z(this,e,t,!0),t+4},p.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||F(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),p.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Z(this,e,t,!1),t+4},p.prototype.writeFloatLE=function(e,t,r){return W(this,e,t,!0,r)},p.prototype.writeFloatBE=function(e,t,r){return W(this,e,t,!1,r)},p.prototype.writeDoubleLE=function(e,t,r){return Y(this,e,t,!0,r)},p.prototype.writeDoubleBE=function(e,t,r){return Y(this,e,t,!1,r)},p.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n =this.length)throw new RangeError(\"sourceStart out of bounds\");if(n<0)throw new RangeError(\"sourceEnd out of bounds\");n>this.length&&(n=this.length),e.length-t =0;--i)e[i+t]=this[i+r];else if(o<1e3||!p.TYPED_ARRAY_SUPPORT)for(i=0;i >>=0,r=void 0===r?this.length:r>>>0,e||(e=0),\"number\"==typeof e)for(o=t;o 55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function V(e){return function(e){var t,a,s,h,l,f;i||o();var c=e.length;if(c%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");l=\"=\"===e[c-2]?2:\"=\"===e[c-1]?1:0,f=new n(3*c/4-l),s=l>0?c-4:c;var u=0;for(t=0,a=0;t >16&255,f[u++]=h>>8&255,f[u++]=255&h;return 2===l?(h=r[e.charCodeAt(t)]<<2|r[e.charCodeAt(t+1)]>>4,f[u++]=255&h):1===l&&(h=r[e.charCodeAt(t)]<<10|r[e.charCodeAt(t+1)]<<4|r[e.charCodeAt(t+2)]>>2,f[u++]=h>>8&255,f[u++]=255&h),f}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\\s+|\\s+$/g,\"\")}(e).replace(K,\"\")).length<2)return\"\";for(;e.length%4!=0;)e+=\"=\";return e}(e))}function G(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function $(e){return null!=e&&(!!e._isBuffer||J(e)||function(e){return\"function\"==typeof e.readFloatLE&&\"function\"==typeof e.slice&&J(e.slice(0,0))}(e))}function J(e){return!!e.constructor&&\"function\"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;function Q(e,t){return e(t={exports:{}},t.exports),t.exports}var ee=Q(function(e,t){var r;e.exports=(r=r||function(e,t){var r=Object.create||function(){function e(){}return function(t){var r;return e.prototype=t,r=new e,e.prototype=null,r}}(),n={},i=n.lib={},o=i.Base={extend:function(e){var t=r(this);return e&&t.mixIn(e),t.hasOwnProperty(\"init\")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty(\"toString\")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},a=i.WordArray=o.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||h).stringify(this)},concat:function(e){var t=this.words,r=e.words,n=this.sigBytes,i=e.sigBytes;if(this.clamp(),n%4)for(var o=0;o>>2]>>>24-o%4*8&255;t[n+o>>>2]|=a<<24-(n+o)%4*8}else for(var o=0;o>>2]=r[o>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4)},clone:function(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var r,n=[],i=function(t){var t=t,r=987654321,n=4294967295;return function(){var i=((r=36969*(65535&r)+(r>>16)&n)<<16)+(t=18e3*(65535&t)+(t>>16)&n)&n;return i/=4294967296,(i+=.5)*(e.random()>.5?1:-1)}},o=0;o >>2]>>>24-i%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join(\"\")},parse:function(e){for(var t=e.length,r=[],n=0;n >>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new a.init(r,t/2)}},l=s.Latin1={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i >>2]>>>24-i%4*8&255;n.push(String.fromCharCode(o))}return n.join(\"\")},parse:function(e){for(var t=e.length,r=[],n=0;n >>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new a.init(r,t)}},f=s.Utf8={stringify:function(e){try{return decodeURIComponent(escape(l.stringify(e)))}catch(e){throw new Error(\"Malformed UTF-8 data\")}},parse:function(e){return l.parse(unescape(encodeURIComponent(e)))}},c=i.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(e){\"string\"==typeof e&&(e=f.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var r=this._data,n=r.words,i=r.sigBytes,o=this.blockSize,s=4*o,h=i/s,l=(h=t?e.ceil(h):e.max((0|h)-this._minBufferSize,0))*o,f=e.min(4*l,i);if(l){for(var c=0;c >>2]|=e[i]<<24-i%4*8;t.call(this,n,r)}else t.apply(this,arguments)}).prototype=e}}(),r.lib.WordArray)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.WordArray,n=e.enc;function i(e){return e<<8&4278255360|e>>>8&16711935}n.Utf16=n.Utf16BE={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i >>2]>>>16-i%4*8&65535;n.push(String.fromCharCode(o))}return n.join(\"\")},parse:function(e){for(var r=e.length,n=[],i=0;i >>1]|=e.charCodeAt(i)<<16-i%2*16;return t.create(n,2*r)}},n.Utf16LE={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],o=0;o >>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(a))}return n.join(\"\")},parse:function(e){for(var r=e.length,n=[],o=0;o >>1]|=i(e.charCodeAt(o)<<16-o%2*16);return t.create(n,2*r)}}}(),r.enc.Utf16)}),Q(function(e,t){var r,n,i;e.exports=(i=(n=r=ee).lib.WordArray,n.enc.Base64={stringify:function(e){var t=e.words,r=e.sigBytes,n=this._map;e.clamp();for(var i=[],o=0;o >>2]>>>24-o%4*8&255)<<16|(t[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|t[o+2>>>2]>>>24-(o+2)%4*8&255,s=0;s<4&&o+.75*s >>6*(3-s)&63));var h=n.charAt(64);if(h)for(;i.length%4;)i.push(h);return i.join(\"\")},parse:function(e){var t=e.length,r=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o >>6-a%4*2;n[o>>>2]|=(s|h)<<24-o%4*8,o++}return i.create(n,o)}(e,t,n)},_map:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"},r.enc.Base64)}),Q(function(e,t){var r;e.exports=(r=ee,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.algo,s=[];!function(){for(var t=0;t<64;t++)s[t]=4294967296*e.abs(e.sin(t+1))|0}();var h=a.MD5=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,i=e[n];e[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o=this._hash.words,a=e[t+0],h=e[t+1],d=e[t+2],p=e[t+3],_=e[t+4],g=e[t+5],v=e[t+6],w=e[t+7],b=e[t+8],y=e[t+9],m=e[t+10],k=e[t+11],E=e[t+12],S=e[t+13],x=e[t+14],R=e[t+15],A=o[0],B=o[1],z=o[2],L=o[3];A=l(A,B,z,L,a,7,s[0]),L=l(L,A,B,z,h,12,s[1]),z=l(z,L,A,B,d,17,s[2]),B=l(B,z,L,A,p,22,s[3]),A=l(A,B,z,L,_,7,s[4]),L=l(L,A,B,z,g,12,s[5]),z=l(z,L,A,B,v,17,s[6]),B=l(B,z,L,A,w,22,s[7]),A=l(A,B,z,L,b,7,s[8]),L=l(L,A,B,z,y,12,s[9]),z=l(z,L,A,B,m,17,s[10]),B=l(B,z,L,A,k,22,s[11]),A=l(A,B,z,L,E,7,s[12]),L=l(L,A,B,z,S,12,s[13]),z=l(z,L,A,B,x,17,s[14]),A=f(A,B=l(B,z,L,A,R,22,s[15]),z,L,h,5,s[16]),L=f(L,A,B,z,v,9,s[17]),z=f(z,L,A,B,k,14,s[18]),B=f(B,z,L,A,a,20,s[19]),A=f(A,B,z,L,g,5,s[20]),L=f(L,A,B,z,m,9,s[21]),z=f(z,L,A,B,R,14,s[22]),B=f(B,z,L,A,_,20,s[23]),A=f(A,B,z,L,y,5,s[24]),L=f(L,A,B,z,x,9,s[25]),z=f(z,L,A,B,p,14,s[26]),B=f(B,z,L,A,b,20,s[27]),A=f(A,B,z,L,S,5,s[28]),L=f(L,A,B,z,d,9,s[29]),z=f(z,L,A,B,w,14,s[30]),A=c(A,B=f(B,z,L,A,E,20,s[31]),z,L,g,4,s[32]),L=c(L,A,B,z,b,11,s[33]),z=c(z,L,A,B,k,16,s[34]),B=c(B,z,L,A,x,23,s[35]),A=c(A,B,z,L,h,4,s[36]),L=c(L,A,B,z,_,11,s[37]),z=c(z,L,A,B,w,16,s[38]),B=c(B,z,L,A,m,23,s[39]),A=c(A,B,z,L,S,4,s[40]),L=c(L,A,B,z,a,11,s[41]),z=c(z,L,A,B,p,16,s[42]),B=c(B,z,L,A,v,23,s[43]),A=c(A,B,z,L,y,4,s[44]),L=c(L,A,B,z,E,11,s[45]),z=c(z,L,A,B,R,16,s[46]),A=u(A,B=c(B,z,L,A,d,23,s[47]),z,L,a,6,s[48]),L=u(L,A,B,z,w,10,s[49]),z=u(z,L,A,B,x,15,s[50]),B=u(B,z,L,A,g,21,s[51]),A=u(A,B,z,L,E,6,s[52]),L=u(L,A,B,z,p,10,s[53]),z=u(z,L,A,B,m,15,s[54]),B=u(B,z,L,A,h,21,s[55]),A=u(A,B,z,L,b,6,s[56]),L=u(L,A,B,z,R,10,s[57]),z=u(z,L,A,B,v,15,s[58]),B=u(B,z,L,A,S,21,s[59]),A=u(A,B,z,L,_,6,s[60]),L=u(L,A,B,z,k,10,s[61]),z=u(z,L,A,B,d,15,s[62]),B=u(B,z,L,A,y,21,s[63]),o[0]=o[0]+A|0,o[1]=o[1]+B|0,o[2]=o[2]+z|0,o[3]=o[3]+L|0},_doFinalize:function(){var t=this._data,r=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32;var o=e.floor(n/4294967296),a=n;r[15+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(i+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),t.sigBytes=4*(r.length+1),this._process();for(var s=this._hash,h=s.words,l=0;l<4;l++){var f=h[l];h[l]=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8)}return s},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function l(e,t,r,n,i,o,a){var s=e+(t&r|~t&n)+i+a;return(s< >>32-o)+t}function f(e,t,r,n,i,o,a){var s=e+(t&n|r&~n)+i+a;return(s< >>32-o)+t}function c(e,t,r,n,i,o,a){var s=e+(t^r^n)+i+a;return(s< >>32-o)+t}function u(e,t,r,n,i,o,a){var s=e+(r^(t|~n))+i+a;return(s< >>32-o)+t}t.MD5=o._createHelper(h),t.HmacMD5=o._createHmacHelper(h)}(Math),r.MD5)}),Q(function(e,t){var r,n,i,o,a,s,h,l;e.exports=(i=(n=r=ee).lib,o=i.WordArray,a=i.Hasher,s=n.algo,h=[],l=s.SHA1=a.extend({_doReset:function(){this._hash=new o.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],s=r[4],l=0;l<80;l++){if(l<16)h[l]=0|e[t+l];else{var f=h[l-3]^h[l-8]^h[l-14]^h[l-16];h[l]=f<<1|f>>>31}var c=(n<<5|n>>>27)+s+h[l];c+=l<20?1518500249+(i&o|~i&a):l<40?1859775393+(i^o^a):l<60?(i&o|i&a|o&a)-1894007588:(i^o^a)-899497514,s=a,a=o,o=i<<30|i>>>2,i=n,n=c}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+a|0,r[4]=r[4]+s|0},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=Math.floor(r/4294967296),t[15+(n+64>>>9<<4)]=r,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}}),n.SHA1=a._createHelper(l),n.HmacSHA1=a._createHmacHelper(l),r.SHA1)}),Q(function(e,t){var r;e.exports=(r=ee,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.algo,s=[],h=[];!function(){function t(t){for(var r=e.sqrt(t),n=2;n<=r;n++)if(!(t%n))return!1;return!0}function r(e){return 4294967296*(e-(0|e))|0}for(var n=2,i=0;i<64;)t(n)&&(i<8&&(s[i]=r(e.pow(n,.5))),h[i]=r(e.pow(n,1/3)),i++),n++}();var l=[],f=a.SHA256=o.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],s=r[4],f=r[5],c=r[6],u=r[7],d=0;d<64;d++){if(d<16)l[d]=0|e[t+d];else{var p=l[d-15],_=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,g=l[d-2],v=(g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10;l[d]=_+l[d-7]+v+l[d-16]}var w=n&i^n&o^i&o,b=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),y=u+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&f^~s&c)+h[d]+l[d];u=c,c=f,f=s,s=a+y|0,a=o,o=i,i=n,n=y+(b+w)|0}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+a|0,r[4]=r[4]+s|0,r[5]=r[5]+f|0,r[6]=r[6]+c|0,r[7]=r[7]+u|0},_doFinalize:function(){var t=this._data,r=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;return r[i>>>5]|=128<<24-i%32,r[14+(i+64>>>9<<4)]=e.floor(n/4294967296),r[15+(i+64>>>9<<4)]=n,t.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=o._createHelper(f),t.HmacSHA256=o._createHmacHelper(f)}(Math),r.SHA256)}),Q(function(e,t){var r,n,i,o,a,s;e.exports=(i=(n=r=ee).lib.WordArray,o=n.algo,a=o.SHA256,s=o.SHA224=a.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=a._doFinalize.call(this);return e.sigBytes-=4,e}}),n.SHA224=a._createHelper(s),n.HmacSHA224=a._createHmacHelper(s),r.SHA224)}),Q(function(e,t){var r;e.exports=(r=ee,function(){var e=r,t=e.lib.Hasher,n=e.x64,i=n.Word,o=n.WordArray,a=e.algo;function s(){return i.create.apply(i,arguments)}var h=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],l=[];!function(){for(var e=0;e<80;e++)l[e]=s()}();var f=a.SHA512=t.extend({_doReset:function(){this._hash=new o.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],s=r[4],f=r[5],c=r[6],u=r[7],d=n.high,p=n.low,_=i.high,g=i.low,v=o.high,w=o.low,b=a.high,y=a.low,m=s.high,k=s.low,E=f.high,S=f.low,x=c.high,R=c.low,A=u.high,B=u.low,z=d,L=p,T=_,M=g,C=v,D=w,I=b,P=y,O=m,U=k,H=E,F=S,N=x,Z=R,j=A,W=B,Y=0;Y<80;Y++){var K=l[Y];if(Y<16)var X=K.high=0|e[t+2*Y],q=K.low=0|e[t+2*Y+1];else{var V=l[Y-15],G=V.high,$=V.low,J=(G>>>1|$<<31)^(G>>>8|$<<24)^G>>>7,Q=($>>>1|G<<31)^($>>>8|G<<24)^($>>>7|G<<25),ee=l[Y-2],te=ee.high,re=ee.low,ne=(te>>>19|re<<13)^(te<<3|re>>>29)^te>>>6,ie=(re>>>19|te<<13)^(re<<3|te>>>29)^(re>>>6|te<<26),oe=l[Y-7],ae=oe.high,se=oe.low,he=l[Y-16],le=he.high,fe=he.low;X=(X=(X=J+ae+((q=Q+se)>>>0 >>0?1:0))+ne+((q+=ie)>>>0>>0?1:0))+le+((q+=fe)>>>0 >>0?1:0),K.high=X,K.low=q}var ce,ue=O&H^~O&N,de=U&F^~U&Z,pe=z&T^z&C^T&C,_e=L&M^L&D^M&D,ge=(z>>>28|L<<4)^(z<<30|L>>>2)^(z<<25|L>>>7),ve=(L>>>28|z<<4)^(L<<30|z>>>2)^(L<<25|z>>>7),we=(O>>>14|U<<18)^(O>>>18|U<<14)^(O<<23|U>>>9),be=(U>>>14|O<<18)^(U>>>18|O<<14)^(U<<23|O>>>9),ye=h[Y],me=ye.high,ke=ye.low,Ee=j+we+((ce=W+be)>>>0 >>0?1:0),Se=ve+_e;j=N,W=Z,N=H,Z=F,H=O,F=U,O=I+(Ee=(Ee=(Ee=Ee+ue+((ce+=de)>>>0 >>0?1:0))+me+((ce+=ke)>>>0 >>0?1:0))+X+((ce+=q)>>>0 >>0?1:0))+((U=P+ce|0)>>>0>>0?1:0)|0,I=C,P=D,C=T,D=M,T=z,M=L,z=Ee+(ge+pe+(Se>>>0
>>0?1:0))+((L=ce+Se|0)>>>0 >>0?1:0)|0}p=n.low=p+L,n.high=d+z+(p>>>0 >>0?1:0),g=i.low=g+M,i.high=_+T+(g>>>0 >>0?1:0),w=o.low=w+D,o.high=v+C+(w>>>0 >>0?1:0),y=a.low=y+P,a.high=b+I+(y>>>0 >>0?1:0),k=s.low=k+U,s.high=m+O+(k>>>0>>0?1:0),S=f.low=S+F,f.high=E+H+(S>>>0
>>0?1:0),R=c.low=R+Z,c.high=x+N+(R>>>0 >>0?1:0),B=u.low=B+W,u.high=A+j+(B>>>0 >>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[30+(n+128>>>10<<5)]=Math.floor(r/4294967296),t[31+(n+128>>>10<<5)]=r,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=t.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});e.SHA512=t._createHelper(f),e.HmacSHA512=t._createHmacHelper(f)}(),r.SHA512)}),Q(function(e,t){var r,n,i,o,a,s,h,l;e.exports=(i=(n=r=ee).x64,o=i.Word,a=i.WordArray,s=n.algo,h=s.SHA512,l=s.SHA384=h.extend({_doReset:function(){this._hash=new a.init([new o.init(3418070365,3238371032),new o.init(1654270250,914150663),new o.init(2438529370,812702999),new o.init(355462360,4144912697),new o.init(1731405415,4290775857),new o.init(2394180231,1750603025),new o.init(3675008525,1694076839),new o.init(1203062813,3204075428)])},_doFinalize:function(){var e=h._doFinalize.call(this);return e.sigBytes-=16,e}}),n.SHA384=h._createHelper(l),n.HmacSHA384=h._createHmacHelper(l),r.SHA384)}),Q(function(e,t){var r;e.exports=(r=ee,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.x64.Word,s=t.algo,h=[],l=[],f=[];!function(){for(var e=1,t=0,r=0;r<24;r++){h[e+5*t]=(r+1)*(r+2)/2%64;var n=(2*e+3*t)%5;e=t%5,t=n}for(e=0;e<5;e++)for(t=0;t<5;t++)l[e+5*t]=t+(2*e+3*t)%5*5;for(var i=1,o=0;o<24;o++){for(var s=0,c=0,u=0;u<7;u++){if(1&i){var d=(1<>>24)|4278255360&(o<<24|o>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),(B=r[i]).high^=a,B.low^=o}for(var s=0;s<24;s++){for(var u=0;u<5;u++){for(var d=0,p=0,_=0;_<5;_++)d^=(B=r[u+5*_]).high,p^=B.low;var g=c[u];g.high=d,g.low=p}for(u=0;u<5;u++){var v=c[(u+4)%5],w=c[(u+1)%5],b=w.high,y=w.low;for(d=v.high^(b<<1|y>>>31),p=v.low^(y<<1|b>>>31),_=0;_<5;_++)(B=r[u+5*_]).high^=d,B.low^=p}for(var m=1;m<25;m++){var k=(B=r[m]).high,E=B.low,S=h[m];S<32?(d=k<