@tangle-network/sandbox 0.1.1 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +490 -2
- package/dist/auth/index.d.ts +2 -2
- package/dist/auth/index.js +271 -1
- package/dist/client-Uve6A5C6.js +2280 -0
- package/dist/collaboration/index.d.ts +1 -1
- package/dist/collaboration/index.js +2 -1
- package/dist/collaboration-CRyb5e8F.js +201 -0
- package/dist/core.d.ts +3 -3
- package/dist/core.js +4 -1
- package/dist/errors-BI75IXOM.d.ts +1177 -0
- package/dist/errors-CljiGR__.js +262 -0
- package/dist/{index-BuS8nl3b.d.ts → index-CCsA3S0D.d.ts} +6 -1
- package/dist/{index-t7xkzv0U.d.ts → index-DhNGZ0h4.d.ts} +3 -3
- package/dist/{index-gA-oRjOi.d.ts → index-Dpj1oB5i.d.ts} +35 -4
- package/dist/index.d.ts +109 -62
- package/dist/index.js +825 -1
- package/dist/openai/index.d.ts +642 -0
- package/dist/openai/index.js +1721 -0
- package/dist/platform-integrations.d.ts +2 -0
- package/dist/platform-integrations.js +2 -0
- package/dist/{sandbox-BvZ0-Iv7.d.ts → sandbox-aBpWqler.d.ts} +1528 -41
- package/dist/sandbox-ksXTNlo-.js +3394 -0
- package/dist/session-gateway/index.js +667 -1
- package/dist/tangle/index.d.ts +1 -1
- package/dist/tangle/index.js +2 -1
- package/dist/tangle-DQ05paN7.js +826 -0
- package/package.json +93 -34
- package/LICENSE +0 -11
- package/dist/client-Bi0PeV_x.js +0 -1
- package/dist/collaboration-CVvhPU8M.js +0 -1
- package/dist/errors-AIT8qikt.d.ts +0 -491
- package/dist/errors-CdMTv7uG.js +0 -1
- package/dist/sandbox-D1JnQIJx.js +0 -1
- package/dist/tangle-CSb9rjAh.js +0 -1
|
@@ -1 +1,667 @@
|
|
|
1
|
-
const a0_0x39caff=a0_0x5735;function a0_0x5735(_0x189256,_0x292214){_0x189256=_0x189256-0x195;const _0x262e63=a0_0x262e();let _0x5735d7=_0x262e63[_0x189256];if(a0_0x5735['\x4a\x77\x62\x4c\x71\x66']===undefined){var _0x3150ac=function(_0x1d7e47){const _0x3d46a7='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0x58d498='',_0x33a0e6='';for(let _0x5ce690=0x0,_0x5829c9,_0x3bfb97,_0x220a07=0x0;_0x3bfb97=_0x1d7e47['\x63\x68\x61\x72\x41\x74'](_0x220a07++);~_0x3bfb97&&(_0x5829c9=_0x5ce690%0x4?_0x5829c9*0x40+_0x3bfb97:_0x3bfb97,_0x5ce690++%0x4)?_0x58d498+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0xff&_0x5829c9>>(-0x2*_0x5ce690&0x6)):0x0){_0x3bfb97=_0x3d46a7['\x69\x6e\x64\x65\x78\x4f\x66'](_0x3bfb97);}for(let _0x723486=0x0,_0xd7884e=_0x58d498['\x6c\x65\x6e\x67\x74\x68'];_0x723486<_0xd7884e;_0x723486++){_0x33a0e6+='\x25'+('\x30\x30'+_0x58d498['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x723486)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x10))['\x73\x6c\x69\x63\x65'](-0x2);}return decodeURIComponent(_0x33a0e6);};a0_0x5735['\x6f\x6b\x50\x51\x71\x4b']=_0x3150ac,a0_0x5735['\x45\x6c\x48\x61\x4f\x41']={},a0_0x5735['\x4a\x77\x62\x4c\x71\x66']=!![];}const _0x1c6e1a=_0x262e63[0x0],_0xe910b3=_0x189256+_0x1c6e1a,_0x1b20ef=a0_0x5735['\x45\x6c\x48\x61\x4f\x41'][_0xe910b3];return!_0x1b20ef?(_0x5735d7=a0_0x5735['\x6f\x6b\x50\x51\x71\x4b'](_0x5735d7),a0_0x5735['\x45\x6c\x48\x61\x4f\x41'][_0xe910b3]=_0x5735d7):_0x5735d7=_0x1b20ef,_0x5735d7;}(function(_0x577904,_0x44853b){const _0x203fd0=a0_0x5735,_0x4cfbb1=_0x577904();while(!![]){try{const _0x38e1b6=-parseInt(_0x203fd0(0x25c))/0x1+-parseInt(_0x203fd0(0x26d))/0x2+parseInt(_0x203fd0(0x201))/0x3*(parseInt(_0x203fd0(0x28b))/0x4)+parseInt(_0x203fd0(0x2b0))/0x5+parseInt(_0x203fd0(0x1e1))/0x6*(-parseInt(_0x203fd0(0x1c3))/0x7)+parseInt(_0x203fd0(0x314))/0x8*(-parseInt(_0x203fd0(0x215))/0x9)+-parseInt(_0x203fd0(0x1b7))/0xa*(-parseInt(_0x203fd0(0x1e5))/0xb);if(_0x38e1b6===_0x44853b)break;else _0x4cfbb1['push'](_0x4cfbb1['shift']());}catch(_0x38174){_0x4cfbb1['push'](_0x4cfbb1['shift']());}}}(a0_0x262e,0x2460c));const a0_0x411647=a0_0x5f18;(function(_0x184aca,_0x5a7bc7){const _0x15ca1b=a0_0x5735,_0x414f7c={'\x6e\x77\x41\x6e\x4f':function(_0x550579){return _0x550579();},'\x6e\x7a\x45\x4f\x75':function(_0x9e2c88,_0x57ab05){return _0x9e2c88+_0x57ab05;},'\x44\x4b\x73\x6e\x5a':function(_0x242723,_0x33b855){return _0x242723/_0x33b855;},'\x41\x71\x73\x55\x6f':function(_0x1c7706,_0x4ea780){return _0x1c7706(_0x4ea780);},'\x72\x51\x62\x58\x78':function(_0x42db24,_0x561c91){return _0x42db24(_0x561c91);},'\x6d\x71\x69\x76\x6d':function(_0x4558ef,_0x5471e6){return _0x4558ef(_0x5471e6);},'\x79\x69\x69\x7a\x51':function(_0x28b30,_0x53390b){return _0x28b30*_0x53390b;},'\x42\x4d\x66\x6f\x6a':function(_0x20ec1e,_0x208690){return _0x20ec1e(_0x208690);},'\x62\x7a\x70\x58\x4d':function(_0x47bdb8,_0x13ffa6){return _0x47bdb8(_0x13ffa6);},'\x4d\x69\x56\x56\x6e':_0x15ca1b(0x380)},_0x48e635=a0_0x5f18,_0x37ec21=_0x414f7c[_0x15ca1b(0x19f)](_0x184aca);while(!![]){try{const _0x3c6fb7=_0x414f7c[_0x15ca1b(0x2e0)](_0x414f7c['\x6e\x7a\x45\x4f\x75'](_0x414f7c[_0x15ca1b(0x3ac)](_0x414f7c[_0x15ca1b(0x20f)](parseInt,_0x48e635(0x241)),0x1)*(-_0x414f7c['\x41\x71\x73\x55\x6f'](parseInt,_0x48e635(0x26d))/0x2),parseInt(_0x48e635(0x1e3))/0x3)+-parseInt(_0x48e635(0x22d))/0x4+_0x414f7c['\x44\x4b\x73\x6e\x5a'](parseInt(_0x414f7c[_0x15ca1b(0x2cd)](_0x48e635,0x24f)),0x5)+-parseInt(_0x414f7c['\x6d\x71\x69\x76\x6d'](_0x48e635,0x23a))/0x6+_0x414f7c[_0x15ca1b(0x3ac)](parseInt(_0x414f7c[_0x15ca1b(0x20f)](_0x48e635,0x1d6)),0x7),_0x414f7c['\x79\x69\x69\x7a\x51'](_0x414f7c[_0x15ca1b(0x23b)](parseInt,_0x414f7c[_0x15ca1b(0x236)](_0x48e635,0x266))/0x8,_0x414f7c['\x6d\x71\x69\x76\x6d'](parseInt,_0x48e635(0x290))/0x9));if(_0x3c6fb7===_0x5a7bc7)break;else _0x37ec21[_0x15ca1b(0x2fc)](_0x37ec21[_0x414f7c[_0x15ca1b(0x2ad)]]());}catch(_0x4a6670){_0x37ec21[_0x15ca1b(0x2fc)](_0x37ec21[_0x414f7c[_0x15ca1b(0x2ad)]]());}}}(a0_0x5ac7,0x6d325));const INITIAL_METRICS={'\x6c\x61\x73\x74\x50\x69\x6e\x67\x4c\x61\x74\x65\x6e\x63\x79\x4d\x73':null,'\x61\x76\x67\x50\x69\x6e\x67\x4c\x61\x74\x65\x6e\x63\x79\x4d\x73':null,'\x6d\x69\x73\x73\x65\x64\x50\x6f\x6e\x67\x43\x6f\x75\x6e\x74':0x0,'\x72\x65\x63\x6f\x6e\x6e\x65\x63\x74\x43\x6f\x75\x6e\x74':0x0,'\x6c\x61\x73\x74\x50\x6f\x6e\x67\x41\x74':null,'\x6c\x61\x73\x74\x52\x65\x63\x6f\x6e\x6e\x65\x63\x74\x41\x74':null,'\x71\x75\x61\x6c\x69\x74\x79':a0_0x411647(0x25a)};function calculateConnectionQuality(_0x59b02c,_0x68a2d6){const _0x2aed25=a0_0x5735,_0x4a99be={'\x7a\x77\x4a\x68\x42':_0x2aed25(0x326),'\x4c\x62\x73\x4f\x6b':_0x2aed25(0x1d2),'\x53\x73\x44\x51\x73':function(_0x7d01c7,_0x420412){return _0x7d01c7>=_0x420412;},'\x64\x6b\x56\x65\x41':function(_0x338381,_0xb86a1a){return _0x338381(_0xb86a1a);},'\x78\x43\x53\x43\x51':_0x2aed25(0x1d6),'\x44\x6d\x61\x49\x4d':function(_0x58f351,_0x2c44ec){return _0x58f351<_0x2c44ec;}},_0x3f4b2d=a0_0x411647,_0x2ff709={'\x46\x57\x63\x64\x66':_0x3f4b2d(0x25a),'\x6e\x56\x4c\x6c\x52':function(_0xa94fa9,_0x137bc3){return _0xa94fa9>=_0x137bc3;},'\x59\x70\x76\x58\x42':_0x4a99be['\x7a\x77\x4a\x68\x42'],'\x62\x69\x79\x4b\x75':function(_0x26e31c,_0x484658){return _0x26e31c!==_0x484658;},'\x4a\x56\x4d\x53\x57':function(_0xa49275,_0x4b1bb6){return _0xa49275>_0x4b1bb6;},'\x66\x73\x45\x42\x4e':_0x2aed25(0x1cc)};if(!_0x68a2d6)return _0x2ff709[_0x3f4b2d(0x28d)];const {avgPingLatencyMs:_0x235338,missedPongCount:_0x45954a,reconnectCount:_0x2912cb,lastReconnectAt:_0x2d48a}=_0x59b02c,_0x1f7437=_0x2d48a&&Date[_0x3f4b2d(0x228)]()-_0x2d48a<0x12c*0x3e8;if(_0x2ff709[_0x2aed25(0x371)](_0x45954a,0x2)||_0x1f7437&&_0x2912cb>0x1)return _0x2ff709[_0x4a99be[_0x2aed25(0x345)]];if(_0x4a99be['\x53\x73\x44\x51\x73'](_0x45954a,0x1)||_0x2ff709[_0x4a99be['\x64\x6b\x56\x65\x41'](_0x3f4b2d,0x293)](_0x235338,null)&&_0x2ff709[_0x3f4b2d(0x1e0)](_0x235338,0x3e8)||_0x1f7437)return _0x3f4b2d(0x271);if(_0x2ff709[_0x4a99be[_0x2aed25(0x258)]](_0x235338,null)&&_0x4a99be[_0x2aed25(0x2dc)](_0x235338,0x64)&&_0x2912cb===0x0)return _0x2ff709[_0x2aed25(0x1ce)];if(_0x235338!==null&&_0x235338<=0x12c)return _0x3f4b2d(0x280);return _0x3f4b2d(0x280);}function a0_0x262e(){const _0x3f5ed2=['\x71\x30\x31\x32\x73\x65\x6d\x59\x6f\x76\x75','\x6d\x74\x6a\x41\x43\x4d\x7a\x54\x74\x4b\x53','\x41\x66\x4c\x33\x72\x4d\x69','\x71\x74\x66\x51\x41\x75\x6a\x6e\x72\x57','\x71\x4a\x69\x31\x79\x4e\x4f\x59\x44\x4c\x76\x65\x7a\x78\x79\x59\x45\x4e\x43\x31\x6d\x61','\x45\x4a\x6a\x32\x6d\x68\x76\x6e\x44\x4c\x44\x63\x7a\x32\x79\x31\x44\x74\x6e\x59\x73\x65\x72\x4e\x44\x71','\x71\x30\x31\x32\x76\x30\x6a\x4e\x7a\x4a\x76\x31\x6d\x33\x6a\x77\x71\x30\x31\x4d\x74\x4e\x50\x58','\x43\x67\x4c\x55\x7a\x30\x58\x48\x44\x67\x76\x55\x79\x33\x4c\x69\x41\x78\x6e\x30\x42\x33\x6a\x35','\x45\x4a\x6a\x32\x6d\x68\x75\x5a\x43\x4b\x48\x65\x7a\x33\x75','\x43\x4e\x6e\x7a\x44\x4b\x75','\x45\x4e\x48\x69\x74\x68\x4b\x5a\x44\x4a\x62\x62\x44\x5a\x4c\x76\x42\x65\x35\x55\x6d\x68\x4c\x34\x41\x4a\x62\x36\x44\x33\x65','\x77\x4c\x7a\x41\x41\x4e\x4b','\x71\x77\x44\x4d\x76\x78\x50\x4e\x77\x65\x58\x30\x6d\x32\x6a\x6d\x71\x4b\x43','\x45\x75\x31\x6d\x6e\x78\x6d\x5a\x44\x71','\x45\x4e\x48\x69\x74\x68\x4b\x5a\x44\x4a\x62\x62\x44\x5a\x4c\x76\x43\x33\x44\x58','\x71\x78\x66\x5a\x76\x77\x38','\x42\x32\x35\x66\x43\x4e\x6a\x56\x43\x47','\x43\x4d\x76\x5a\x7a\x78\x72\x6e\x7a\x78\x72\x59\x41\x77\x6e\x5a','\x41\x32\x48\x55\x74\x67\x6d','\x44\x67\x54\x75\x72\x67\x57','\x44\x74\x6a\x4d\x77\x65\x65\x59\x7a\x71','\x6d\x74\x65\x33\x43\x30\x44\x65\x45\x4d\x35\x54','\x42\x4d\x58\x30\x42\x31\x61','\x79\x76\x6e\x72\x45\x4b\x6d','\x45\x78\x48\x32\x6d\x65\x69\x58\x41\x4b\x58\x35\x6d\x4a\x4c\x76\x71\x4b\x31\x32\x73\x4b\x72\x48','\x79\x77\x6a\x4a\x7a\x67\x76\x4d\x7a\x32\x48\x50\x41\x4d\x54\x53\x42\x77\x35\x56\x43\x68\x66\x59\x43\x33\x72\x31\x44\x4e\x44\x34\x45\x78\x50\x62\x71\x4b\x6e\x65\x72\x75\x7a\x68\x73\x65\x4c\x6b\x73\x30\x58\x6e\x74\x4b\x39\x71\x75\x76\x6a\x74\x76\x66\x76\x77\x76\x31\x48\x7a\x77\x4a\x61\x58\x6d\x4a\x6d\x30\x6e\x74\x79\x33\x6f\x64\x4b\x52\x6c\x5a\x30','\x75\x78\x66\x73\x42\x77\x34','\x79\x32\x48\x48\x42\x4d\x35\x4c\x42\x68\x6d','\x45\x74\x6e\x32\x77\x75\x6e\x6e\x44\x4c\x76\x65\x7a\x4d\x35\x6d\x71\x5a\x6e\x55\x75\x65\x69\x59\x6e\x77\x50\x36\x79\x71','\x73\x65\x6a\x59\x71\x4d\x47','\x41\x76\x6e\x4b\x72\x30\x43','\x45\x4a\x69\x35\x76\x4e\x50\x48','\x43\x78\x7a\x55\x7a\x4e\x4c\x6e\x76\x57','\x73\x78\x66\x69\x44\x75\x34','\x7a\x78\x48\x4c\x79\x33\x76\x30\x41\x77\x39\x55\x73\x77\x71','\x79\x33\x50\x66\x77\x67\x6d','\x42\x67\x66\x5a\x44\x66\x62\x50\x42\x4d\x44\x74\x7a\x77\x35\x30\x71\x78\x71','\x42\x76\x72\x58\x73\x31\x47','\x71\x4a\x69\x31\x43\x30\x72\x33\x6e\x74\x62\x62\x44\x5a\x66\x6d\x44\x75\x31\x32\x73\x68\x50\x4f\x73\x57','\x76\x30\x31\x30\x43\x4c\x65','\x75\x4b\x44\x63\x76\x76\x65','\x77\x66\x48\x51\x74\x30\x79','\x45\x4c\x76\x78\x7a\x30\x34','\x73\x4c\x6a\x31\x72\x32\x30','\x7a\x78\x7a\x4c\x42\x4e\x72\x5a\x75\x4d\x76\x4a\x7a\x77\x4c\x32\x7a\x77\x71','\x79\x32\x39\x55\x42\x4d\x76\x4a\x44\x67\x76\x4b','\x74\x33\x76\x67\x43\x32\x53','\x45\x4e\x7a\x30\x41\x4d\x79','\x74\x75\x6e\x32\x72\x65\x69','\x71\x4a\x69\x31\x44\x75\x69\x59\x76\x65\x58\x63\x73\x33\x79\x30\x71\x32\x44\x6d\x77\x75\x66\x33\x6e\x75\x34','\x44\x33\x4c\x5a\x79\x78\x79','\x41\x66\x62\x64\x42\x76\x79','\x73\x75\x72\x33\x74\x32\x30','\x45\x74\x69\x35\x76\x78\x50\x6e\x74\x65\x34','\x79\x4e\x50\x57\x77\x65\x30','\x44\x67\x39\x74\x44\x68\x6a\x50\x42\x4d\x43','\x72\x66\x44\x79\x43\x4c\x71','\x71\x5a\x6a\x32\x77\x65\x72\x33\x44\x4c\x76\x35\x6d\x4e\x7a\x51\x45\x4d\x65','\x45\x4e\x48\x51\x77\x75\x69\x5a\x41\x71','\x71\x4b\x31\x4d\x42\x32\x4f','\x43\x4b\x58\x65\x73\x4e\x50\x4e\x45\x71','\x75\x4d\x6e\x4f\x41\x33\x75','\x43\x68\x6e\x68\x42\x66\x79','\x43\x33\x62\x4d\x42\x31\x4f','\x7a\x31\x4c\x4a\x77\x77\x38','\x42\x77\x66\x34\x75\x4d\x76\x4a\x42\x32\x35\x55\x7a\x77\x6e\x30\x72\x67\x76\x53\x79\x78\x4c\x6e\x43\x57','\x72\x67\x44\x6d\x76\x68\x50\x34\x42\x4a\x62\x35\x44\x5a\x66\x78','\x7a\x66\x6a\x56\x45\x4d\x38','\x71\x30\x31\x32\x76\x30\x6a\x4e\x7a\x4a\x76\x53\x74\x77\x35\x77\x71\x4e\x48\x49\x75\x33\x50\x34\x43\x4b\x57','\x42\x4e\x44\x4d\x76\x65\x69','\x71\x5a\x6a\x32\x76\x78\x50\x4d\x79\x4c\x62\x63\x74\x75\x6d','\x43\x4d\x76\x48\x7a\x68\x4c\x74\x44\x67\x66\x30\x7a\x71','\x75\x77\x50\x4a\x41\x75\x38','\x79\x32\x39\x55\x44\x67\x66\x50\x42\x4d\x76\x59\x6c\x4e\x6a\x4c\x79\x77\x72\x35','\x73\x78\x50\x65\x43\x75\x47','\x77\x4c\x66\x52\x7a\x32\x43','\x45\x4e\x48\x36\x74\x65\x6a\x6f\x43\x4c\x50\x31\x74\x78\x7a\x6b\x45\x4e\x44\x6d\x6d\x4e\x50\x33\x43\x71','\x45\x67\x35\x56\x43\x30\x75','\x7a\x68\x4c\x31\x74\x77\x57','\x42\x66\x48\x73\x44\x78\x65','\x7a\x65\x54\x67\x72\x77\x4f','\x71\x4d\x44\x4d\x77\x4b\x72\x4d\x79\x4c\x62\x63\x74\x75\x72\x49\x72\x67\x65','\x42\x78\x72\x6c\x77\x67\x31\x4b\x7a\x74\x6a\x33\x45\x65\x48\x6f\x72\x77\x75\x58\x76\x47','\x43\x67\x4c\x55\x7a\x30\x4c\x55\x44\x67\x76\x59\x44\x4d\x66\x53','\x44\x30\x6e\x75\x44\x77\x34','\x71\x4a\x69\x31\x43\x33\x50\x34\x79\x4c\x6e\x35\x45\x65\x58\x58\x71\x30\x30\x35\x74\x4b\x6e\x6e\x44\x4c\x50\x64\x76\x57','\x44\x4d\x7a\x32\x44\x4e\x66\x31\x44\x71','\x71\x30\x31\x32\x73\x30\x72\x33\x42\x4b\x57','\x45\x65\x6e\x74\x71\x31\x65','\x71\x5a\x6e\x32\x73\x75\x6d\x59\x42\x4c\x4c\x62\x44\x32\x50\x6d','\x75\x75\x54\x65\x74\x33\x65','\x45\x4d\x44\x4d\x6d\x68\x4c\x58','\x6e\x5a\x75\x59\x6e\x74\x66\x59\x74\x33\x50\x4e\x7a\x75\x38','\x71\x33\x7a\x32\x76\x78\x4b\x59\x72\x57','\x79\x32\x39\x55\x42\x4d\x76\x4a\x44\x67\x4c\x56\x42\x4b\x31\x4c\x44\x68\x6a\x50\x79\x33\x6d','\x45\x4d\x44\x6d\x77\x4e\x4b\x59\x6f\x76\x76\x63\x74\x78\x7a\x6b\x72\x67\x44\x32\x73\x57','\x7a\x67\x66\x30\x79\x71','\x73\x31\x48\x6a\x7a\x4c\x75','\x72\x78\x76\x56\x74\x76\x76\x32','\x71\x4b\x30\x35\x6d\x57','\x76\x4c\x6e\x76\x73\x33\x65','\x43\x32\x4c\x55\x79\x32\x75','\x72\x32\x50\x31\x75\x67\x75','\x73\x4d\x72\x72\x76\x68\x6d','\x72\x4d\x39\x63\x71\x76\x43','\x71\x4e\x44\x6d\x76\x71','\x43\x4d\x76\x57\x42\x67\x66\x35\x75\x33\x72\x56\x43\x4d\x66\x4e\x7a\x75\x54\x4c\x45\x76\x62\x59\x7a\x77\x7a\x50\x45\x61','\x71\x5a\x6a\x32\x76\x78\x50\x48','\x74\x31\x62\x66\x74\x47','\x6e\x64\x65\x57\x6e\x5a\x71\x30\x44\x68\x72\x74\x42\x32\x7a\x64','\x71\x30\x31\x32\x76\x30\x6a\x4e\x7a\x4a\x75','\x7a\x67\x48\x68\x7a\x66\x47','\x43\x32\x76\x5a\x43\x32\x4c\x56\x42\x4c\x39\x4e\x79\x78\x72\x4c\x44\x32\x66\x35\x78\x57','\x72\x66\x48\x57\x79\x77\x65','\x7a\x67\x4c\x5a\x79\x32\x39\x55\x42\x4d\x76\x4a\x44\x67\x76\x4b','\x71\x30\x31\x32\x77\x4b\x69\x59\x77\x64\x6a\x36\x43\x71','\x74\x76\x50\x79\x43\x30\x71','\x71\x77\x44\x4d\x76\x78\x50\x4e\x77\x65\x58\x64\x74\x4d\x30','\x75\x31\x62\x36\x42\x77\x43','\x72\x75\x44\x53\x73\x30\x43','\x43\x31\x66\x56\x73\x68\x4f','\x7a\x78\x6a\x59\x42\x33\x69','\x74\x68\x76\x65\x41\x4e\x75','\x71\x30\x31\x32\x73\x4e\x50\x33\x74\x64\x6a\x36\x44\x33\x65','\x43\x65\x58\x7a\x73\x78\x43','\x44\x32\x35\x52\x41\x75\x79','\x45\x66\x62\x53\x41\x75\x69','\x43\x77\x72\x69\x41\x4c\x75','\x42\x77\x76\x5a\x43\x32\x66\x4e\x7a\x71','\x72\x67\x44\x32\x77\x75\x6a\x33\x74\x66\x76\x35\x44\x31\x44\x76\x71\x78\x43\x31\x76\x30\x72\x34\x43\x71','\x77\x65\x6a\x7a\x45\x66\x79','\x79\x30\x48\x74\x72\x31\x43','\x71\x78\x43\x31\x6d\x4e\x4c\x33\x77\x66\x62\x36\x7a\x4a\x4c\x78\x45\x78\x48\x6d\x75\x30\x69\x59\x7a\x4b\x53','\x71\x4a\x69\x31\x43\x75\x69\x5a\x41\x4a\x62\x58\x6d\x4c\x48\x77\x71\x5a\x6a\x32\x73\x57','\x44\x4d\x58\x4e\x75\x4e\x61','\x41\x67\x48\x67\x74\x67\x71','\x44\x31\x4c\x50\x41\x4d\x30','\x71\x76\x48\x6a\x43\x78\x6d','\x72\x65\x35\x59\x77\x4e\x6d\x57\x76\x57','\x6e\x64\x43\x33\x6e\x74\x7a\x74\x71\x32\x35\x74\x7a\x31\x4f','\x43\x32\x76\x5a\x43\x32\x4c\x56\x42\x4b\x4c\x4b','\x43\x67\x4c\x55\x7a\x57','\x71\x32\x48\x51\x76\x4e\x4b\x59\x44\x4c\x50\x64\x6d\x4e\x7a\x6c\x43\x4e\x48\x36\x74\x65\x6a\x6f\x43\x4d\x50\x36\x41\x67\x30','\x43\x32\x6e\x4f\x7a\x77\x72\x31\x42\x67\x76\x73\x7a\x77\x6e\x56\x42\x4d\x35\x4c\x79\x33\x71','\x42\x32\x35\x75\x42\x32\x54\x4c\x42\x4c\x6a\x4c\x7a\x4e\x6a\x4c\x43\x32\x47','\x71\x30\x31\x6c\x41\x76\x4f','\x71\x32\x43\x35\x76\x78\x4f\x58\x43\x4c\x62\x63\x44\x33\x7a\x77\x72\x68\x48\x59\x42\x4b\x6e\x78','\x73\x65\x66\x58\x77\x4b\x4b','\x71\x30\x31\x32\x75\x78\x50\x33\x42\x4a\x61','\x76\x4b\x72\x6d\x7a\x4d\x71','\x71\x5a\x6a\x6d\x73\x33\x50\x33\x42\x4b\x48\x64\x73\x30\x58\x6c','\x71\x4a\x69\x31\x7a\x4b\x6e\x6f\x41\x4c\x7a\x64\x72\x57','\x73\x68\x6a\x59\x42\x4d\x57','\x41\x77\x35\x4b\x7a\x78\x48\x70\x7a\x47','\x45\x78\x76\x79\x41\x30\x6a\x34\x44\x71','\x71\x32\x44\x32\x76\x78\x50\x4e\x74\x66\x76\x36\x6d\x67\x35\x69\x71\x4d\x44\x79\x73\x78\x4c\x33\x42\x4c\x6a\x64\x76\x57','\x41\x75\x6a\x68\x44\x76\x4b','\x41\x65\x6e\x51\x43\x78\x71','\x74\x30\x48\x4c\x76\x4b\x75','\x45\x74\x6a\x69\x73\x65\x6a\x6e\x6e\x75\x58\x63\x79\x71','\x71\x4a\x69\x31\x73\x4b\x6a\x4e\x6f\x76\x50\x36\x43\x71','\x45\x74\x6a\x79\x74\x68\x4c\x34\x41\x4e\x6e\x36\x45\x67\x6a\x74\x45\x78\x48\x6d\x44\x65\x72\x4e\x7a\x4a\x62\x36\x43\x71','\x71\x4a\x69\x31\x43\x30\x72\x33\x6e\x74\x62\x62\x44\x5a\x66\x6d\x43\x74\x69\x35\x76\x75\x6a\x6e\x44\x4b\x50\x65\x7a\x33\x7a\x6c','\x7a\x68\x76\x57\x42\x67\x4c\x4a\x79\x78\x72\x4c\x43\x31\x6e\x52\x41\x78\x62\x57\x7a\x77\x71','\x76\x78\x76\x69\x77\x78\x47','\x45\x74\x6e\x32\x77\x75\x6e\x6e\x44\x4c\x76\x65\x7a\x78\x79\x30\x45\x4e\x44\x55\x6d\x75\x72\x4e\x74\x66\x7a\x63\x73\x30\x58\x6c','\x71\x4d\x44\x4d\x77\x4b\x72\x4d\x79\x4c\x7a\x63\x74\x75\x72\x49\x72\x67\x65','\x44\x75\x31\x48\x72\x30\x53','\x71\x78\x43\x31\x75\x65\x72\x4e\x74\x65\x48\x63\x7a\x4d\x50\x6d\x45\x74\x69\x35\x76\x75\x6a\x6e\x44\x4b\x50\x65\x7a\x78\x6a\x6d\x71\x4d\x44\x4d\x6e\x78\x72\x34\x42\x71','\x45\x74\x69\x35\x76\x75\x6a\x6e\x44\x4b\x50\x65\x7a\x33\x7a\x6c\x43\x78\x48\x58','\x44\x68\x6a\x48\x79\x32\x54\x66\x45\x67\x76\x4a\x44\x78\x72\x50\x42\x32\x35\x64\x42\x32\x35\x30\x7a\x78\x48\x30','\x43\x30\x58\x36\x42\x4e\x75\x58\x71\x57','\x71\x4a\x69\x31\x43\x33\x50\x34\x79\x4c\x6e\x35\x45\x65\x58\x30\x72\x67\x44\x4d\x77\x75\x72\x48','\x74\x77\x4c\x77\x76\x4d\x34','\x79\x4b\x54\x4b\x71\x4c\x43','\x41\x65\x6a\x56\x75\x33\x4b','\x6e\x4a\x6d\x5a\x6e\x64\x47\x31\x74\x67\x6a\x7a\x45\x77\x6a\x78','\x44\x67\x76\x79\x77\x4e\x65\x59\x43\x71','\x45\x4d\x54\x34\x45\x4d\x38','\x71\x30\x35\x32\x76\x75\x72\x4e\x74\x66\x72\x36\x43\x5a\x76\x6c\x71\x78\x48\x55\x73\x4b\x69\x59\x6e\x76\x76\x36\x44\x32\x34\x57\x45\x4e\x44\x58','\x71\x32\x48\x51\x76\x4e\x4b\x59\x44\x4c\x50\x64\x6d\x64\x76\x69\x71\x4e\x44\x31','\x41\x78\x44\x33\x75\x4e\x47','\x72\x32\x54\x68\x72\x4d\x47','\x79\x4d\x66\x5a\x7a\x76\x76\x59\x42\x61','\x77\x4c\x4c\x6d\x72\x68\x61','\x71\x77\x44\x4d\x77\x47','\x43\x33\x72\x56\x43\x66\x62\x50\x42\x4d\x44\x6a\x42\x4e\x72\x4c\x43\x4e\x7a\x48\x42\x61','\x72\x32\x31\x5a\x73\x68\x43','\x74\x33\x6e\x70\x71\x32\x47','\x76\x68\x62\x48\x73\x4c\x47','\x76\x4d\x4c\x49\x72\x4d\x79','\x72\x67\x43\x35\x6d\x68\x4c\x33\x77\x67\x76\x64\x74\x74\x4c\x78\x71\x32\x44\x32\x73\x57','\x45\x78\x44\x59\x73\x57','\x71\x5a\x6a\x32\x77\x4b\x6d\x59\x74\x66\x7a\x63\x73\x30\x58\x6c','\x77\x75\x44\x33\x42\x32\x71','\x43\x4d\x76\x4a\x7a\x77\x4c\x32\x7a\x77\x71','\x43\x32\x76\x30\x73\x78\x72\x4c\x42\x71','\x71\x31\x44\x63\x45\x65\x71','\x72\x4d\x76\x75\x7a\x75\x75','\x71\x4d\x44\x4d\x77\x4b\x72\x4c\x44\x4a\x6a\x36\x44\x5a\x75\x57\x43\x33\x44\x58','\x71\x77\x44\x4d\x76\x78\x50\x4e\x77\x65\x58\x30\x44\x33\x7a\x41\x71\x5a\x6a\x4d\x74\x4e\x50\x58','\x45\x75\x31\x4d\x73\x4b\x65\x5a\x79\x4c\x4c\x36\x45\x67\x35\x41\x72\x68\x48\x51\x74\x67\x58\x6f\x72\x65\x48\x64\x74\x74\x76\x71\x71\x4b\x31\x64','\x43\x31\x76\x77\x74\x4e\x79','\x71\x5a\x6e\x59\x77\x75\x66\x33\x6e\x75\x35\x62\x44\x33\x4f\x31','\x72\x67\x43\x35\x75\x4e\x50\x33\x6e\x66\x76\x36\x45\x65\x48\x78\x71\x78\x48\x51\x74\x68\x50\x48','\x43\x4c\x66\x49\x77\x68\x47','\x74\x76\x72\x36\x44\x75\x57','\x42\x68\x62\x6c\x44\x31\x75','\x79\x32\x48\x48\x43\x4b\x6e\x56\x7a\x67\x76\x62\x44\x61','\x71\x32\x43\x35\x77\x75\x72\x4a\x6e\x76\x7a\x64\x7a\x33\x7a\x76\x45\x4e\x44\x58','\x72\x4b\x66\x67\x44\x4c\x43','\x72\x76\x50\x71\x77\x4d\x57','\x79\x32\x39\x55\x7a\x4d\x4c\x4e','\x44\x68\x4c\x57\x7a\x71','\x44\x74\x6a\x36\x42\x4b\x72\x6e\x71\x57','\x45\x4d\x44\x6d\x77\x4e\x4b\x59\x6f\x76\x76\x63\x74\x78\x7a\x6b\x72\x67\x65','\x75\x76\x62\x55\x71\x4e\x43','\x71\x32\x44\x6d\x76\x78\x50\x78','\x72\x67\x43\x35\x75\x4e\x50\x33\x6e\x61','\x7a\x76\x7a\x57\x71\x33\x47','\x72\x67\x31\x48\x73\x75\x30','\x71\x78\x48\x70\x7a\x75\x79','\x41\x78\x44\x76\x42\x68\x79','\x43\x33\x72\x48\x44\x67\x75','\x42\x4e\x50\x66\x74\x33\x75','\x45\x4a\x6a\x32\x6d\x68\x7a\x4e\x6f\x76\x6a\x36\x44\x5a\x71','\x79\x32\x39\x55\x42\x4d\x76\x4a\x44\x67\x76\x4b\x71\x78\x71','\x45\x67\x44\x49\x7a\x78\x65','\x7a\x4d\x58\x56\x42\x33\x69','\x43\x4d\x66\x55\x7a\x67\x39\x54','\x43\x78\x6e\x35\x79\x4c\x65','\x79\x75\x6e\x5a\x76\x66\x47','\x43\x67\x76\x55\x7a\x67\x4c\x55\x7a\x30\x6e\x48\x42\x67\x58\x49\x79\x77\x6e\x52\x43\x57','\x71\x32\x43\x35\x77\x75\x72\x48','\x43\x74\x6a\x59\x75\x33\x6a\x4e\x75\x57','\x73\x76\x72\x35\x75\x66\x71','\x43\x32\x66\x32\x7a\x76\x6a\x4c\x43\x67\x58\x48\x45\x76\x6e\x30\x79\x78\x72\x4c','\x42\x4c\x7a\x75\x79\x32\x57','\x71\x4a\x69\x31\x44\x65\x72\x4e\x7a\x4a\x62\x36\x44\x77\x35\x70\x45\x78\x43\x31\x74\x4e\x50\x58','\x43\x74\x6a\x79\x75\x68\x50\x33\x6e\x74\x62\x50\x7a\x33\x6a\x71\x71\x5a\x6a\x55\x76\x4b\x6a\x6e\x6e\x75\x58\x35\x6d\x33\x65','\x71\x4a\x69\x31\x42\x4e\x50\x34\x43\x4c\x4c\x62\x44\x32\x35\x41\x43\x74\x6a\x69\x73\x65\x6a\x6e\x72\x65\x57','\x77\x4e\x7a\x73\x77\x67\x30','\x42\x66\x6e\x4f\x43\x32\x4b','\x72\x65\x39\x56\x42\x31\x6d','\x43\x4d\x76\x4a\x42\x32\x35\x55\x7a\x77\x6e\x30\x76\x67\x4c\x54\x7a\x78\x69','\x45\x77\x6a\x69\x74\x75\x79','\x45\x4a\x6a\x32\x6d\x61','\x75\x32\x72\x75\x44\x65\x75','\x71\x32\x6e\x56\x42\x31\x43','\x42\x67\x66\x5a\x44\x66\x39\x4c\x44\x4d\x76\x55\x44\x66\x39\x50\x7a\x61','\x71\x5a\x6a\x32\x73\x65\x6e\x6e\x42\x4b\x39\x31\x7a\x32\x7a\x7a\x45\x78\x43\x58\x77\x47','\x7a\x4b\x72\x6f\x71\x4b\x47','\x43\x68\x76\x5a\x41\x61','\x72\x64\x6a\x32\x73\x75\x6d\x59\x6f\x75\x50\x62\x6d\x4e\x79\x57','\x41\x30\x50\x67\x77\x67\x6d','\x71\x5a\x6a\x32\x76\x78\x50\x4d\x72\x66\x62\x65\x7a\x30\x48\x5a\x45\x4e\x48\x55\x76\x30\x69\x59\x6e\x76\x50\x36\x43\x71','\x43\x77\x76\x31\x72\x4d\x75','\x72\x32\x39\x68\x42\x4b\x75','\x7a\x4d\x58\x59\x77\x67\x43','\x41\x67\x66\x5a','\x45\x4d\x7a\x67\x73\x68\x43','\x79\x32\x39\x55\x42\x4d\x76\x4a\x44\x66\x44\x4c\x79\x4c\x6e\x56\x79\x32\x54\x4c\x44\x61','\x45\x4e\x43\x31\x73\x68\x4c\x6e\x77\x65\x58\x59\x7a\x33\x7a\x6c\x72\x68\x48\x49\x75\x30\x66\x33\x42\x4b\x48\x65\x7a\x30\x58\x77\x71\x4b\x43','\x72\x32\x4c\x65\x45\x75\x34','\x71\x30\x31\x32\x73\x4b\x69\x59\x6e\x76\x76\x36\x44\x32\x34\x57\x43\x74\x69\x35\x6d\x75\x6a\x6f\x43\x71','\x77\x68\x7a\x78\x79\x76\x47','\x73\x68\x48\x33\x72\x76\x43','\x73\x76\x72\x6d\x7a\x77\x4f','\x71\x78\x48\x55\x43\x33\x50\x33\x45\x4c\x4c\x36\x45\x67\x35\x70\x71\x78\x43\x31\x74\x4e\x7a\x4e\x6f\x76\x6a\x36\x44\x5a\x71','\x45\x76\x72\x62\x77\x75\x75','\x72\x68\x48\x51\x75\x57','\x76\x76\x44\x72\x72\x30\x47','\x79\x75\x44\x36\x79\x33\x71','\x44\x4d\x75\x35\x42\x68\x6a\x31\x6e\x75\x7a\x31\x73\x33\x7a\x4e\x44\x75\x54\x32\x44\x68\x6e\x4d\x6f\x77\x44\x58\x44\x75\x58\x54\x43\x4e\x76\x58','\x42\x68\x4c\x74\x79\x4e\x4b','\x42\x78\x72\x50\x76\x32\x35\x41\x73\x64\x76\x31\x44\x76\x62\x59\x44\x4d\x44\x6c','\x6d\x74\x6d\x35\x6f\x64\x71\x34\x41\x4d\x72\x74\x43\x32\x6a\x31','\x72\x65\x35\x72\x45\x75\x57','\x42\x75\x50\x64\x6d\x4d\x35\x41\x43\x74\x76\x55\x45\x65\x48\x49\x44\x4d\x48\x32\x75\x33\x76\x48','\x71\x5a\x6a\x6d\x6e\x4e\x50\x58','\x43\x4a\x6a\x51\x71\x75\x76\x6d\x72\x57','\x71\x4e\x44\x4d\x6e\x68\x76\x6e\x44\x4b\x50\x63\x6d\x4a\x76\x76\x45\x4e\x44\x55\x6d\x68\x66\x34\x43\x4a\x62\x36\x44\x5a\x66\x78\x72\x67\x48\x54','\x71\x5a\x6a\x32\x6d\x61','\x71\x4d\x44\x32\x76\x78\x4f\x5a\x43\x4b\x38','\x76\x67\x39\x52\x7a\x77\x34\x47\x43\x4d\x76\x4d\x43\x4d\x76\x5a\x41\x63\x62\x4d\x79\x77\x4c\x53\x7a\x77\x71\x36\x69\x61','\x42\x4d\x72\x6c\x77\x67\x39\x4b\x42\x76\x50\x56\x41\x65\x72\x6c\x45\x74\x6a\x32\x73\x4e\x7a\x58','\x41\x75\x6a\x65\x42\x68\x65','\x73\x66\x62\x4a\x72\x30\x6d','\x43\x78\x7a\x6d\x42\x78\x4c\x6c\x71\x57','\x45\x64\x65\x35\x6d\x68\x50\x34\x42\x4a\x62\x34\x6d\x74\x47','\x43\x4e\x62\x70\x74\x30\x79','\x42\x4c\x50\x58\x6d\x32\x35\x6b\x41\x76\x48\x59\x6d\x4b\x48\x6d\x44\x30\x35\x6d\x7a\x71','\x45\x74\x69\x35\x76\x75\x72\x4e\x7a\x4c\x62\x63\x74\x78\x7a\x7a\x43\x33\x44\x58','\x43\x67\x39\x55\x7a\x31\x72\x50\x42\x77\x76\x56\x44\x78\x71','\x43\x67\x39\x56\x43\x47','\x42\x67\x66\x5a\x44\x66\x62\x50\x42\x4d\x44\x62\x44\x61','\x71\x4e\x44\x4d\x6e\x68\x6a\x4e\x44\x4b\x54\x65\x45\x67\x6a\x74\x71\x78\x44\x55\x73\x65\x72\x4e\x74\x66\x7a\x63\x74\x67\x35\x71\x72\x75\x31\x31','\x42\x77\x76\x5a\x43\x32\x66\x4e\x7a\x78\x6e\x73\x7a\x77\x6e\x4c\x41\x78\x7a\x4c\x7a\x61','\x7a\x4b\x6a\x63\x71\x78\x65','\x77\x4e\x7a\x35\x79\x75\x69','\x44\x65\x35\x74\x44\x68\x4f','\x73\x66\x50\x65\x72\x76\x4f','\x79\x30\x39\x63\x7a\x77\x43','\x7a\x67\x35\x35\x73\x65\x71','\x72\x68\x48\x49\x73\x33\x4c\x34\x43\x4b\x58\x32\x7a\x5a\x4c\x73\x45\x4e\x43\x30','\x7a\x65\x66\x4b\x43\x75\x34','\x71\x4a\x6a\x51\x75\x78\x50\x33\x42\x4a\x61','\x44\x30\x31\x6b\x45\x4c\x79','\x45\x4d\x7a\x69\x41\x4b\x6a\x6e\x6d\x61','\x45\x74\x6e\x32\x77\x75\x6e\x6e\x44\x4c\x76\x65\x7a\x4e\x6a\x77\x71\x74\x6a\x32\x76\x71','\x71\x4a\x69\x31\x44\x75\x69\x59\x76\x65\x58\x63\x73\x33\x79\x30\x71\x32\x44\x6d\x77\x78\x50\x33\x43\x71','\x7a\x67\x76\x53\x7a\x78\x72\x4c','\x41\x67\x66\x55\x7a\x67\x58\x4c\x76\x67\x39\x52\x7a\x77\x35\x66\x45\x68\x62\x50\x43\x4d\x4c\x55\x7a\x57','\x79\x32\x48\x48\x43\x4b\x66\x30','\x77\x78\x50\x6d\x73\x4c\x4f','\x44\x33\x76\x33\x44\x75\x43','\x71\x4e\x44\x32\x77\x4b\x6d\x59\x7a\x4b\x35\x36\x45\x67\x35\x5a\x45\x4e\x44\x55\x74\x65\x66\x34\x45\x4b\x58\x36\x79\x71','\x71\x30\x31\x32\x76\x30\x6a\x4e\x7a\x4a\x76\x53\x74\x4d\x6a\x7a\x71\x4a\x6a\x65\x77\x78\x50\x34\x42\x4c\x4f','\x43\x4c\x50\x36\x74\x67\x79','\x72\x67\x48\x6d\x76\x33\x50\x58','\x79\x33\x76\x59\x43\x4d\x76\x55\x44\x66\x6e\x4c\x43\x33\x6e\x50\x42\x32\x35\x6a\x7a\x61','\x7a\x33\x44\x7a\x7a\x76\x4b','\x41\x67\x66\x55\x7a\x67\x58\x4c\x75\x67\x39\x55\x7a\x57','\x41\x75\x76\x70\x71\x4d\x57','\x72\x4e\x48\x6d\x41\x32\x4b','\x74\x67\x6a\x5a\x74\x32\x53','\x7a\x65\x58\x54\x7a\x32\x4b','\x72\x68\x48\x49\x73\x33\x4c\x34\x43\x4b\x58\x58\x6d\x4a\x4c\x76\x71\x4b\x31\x32\x73\x4b\x72\x4e\x74\x66\x7a\x63\x73\x5a\x66\x6d\x72\x67\x48\x51\x75\x68\x4b\x5a\x42\x71','\x7a\x32\x76\x30','\x42\x31\x72\x52\x44\x77\x4f','\x44\x77\x7a\x69\x75\x33\x44\x6e\x7a\x71','\x79\x75\x44\x72\x42\x66\x4f','\x75\x75\x35\x75\x75\x67\x4f','\x71\x30\x31\x32\x73\x4b\x69\x59\x6e\x76\x76\x36\x44\x32\x34\x57\x43\x78\x48\x59\x6d\x68\x50\x33\x6d\x76\x44\x65\x41\x67\x30','\x72\x78\x76\x6e\x43\x32\x6d','\x43\x33\x7a\x4d\x42\x68\x6a\x34\x72\x57','\x75\x78\x6a\x7a\x43\x78\x4f','\x45\x74\x69\x35\x76\x75\x72\x4e\x7a\x4c\x62\x63\x74\x78\x7a\x7a\x42\x65\x35\x51\x74\x68\x4c\x33\x43\x4a\x76\x50\x7a\x33\x79\x59\x45\x4e\x43\x31\x6d\x67\x4c\x4f\x41\x4b\x58\x35\x6d\x4e\x7a\x71\x72\x65\x31\x32\x73\x32\x4c\x4f\x72\x66\x62\x65\x7a\x30\x48\x77\x72\x68\x48\x58\x72\x30\x6d\x59\x7a\x4c\x76\x36\x7a\x32\x50\x77\x72\x77\x76\x6d\x73\x57','\x43\x33\x4c\x66\x72\x77\x4f','\x42\x4e\x72\x35\x6d\x67\x39\x30\x43\x76\x44\x55\x73\x32\x34\x5a\x72\x68\x43\x58\x44\x68\x7a\x58','\x43\x67\x39\x55\x7a\x31\x72\x50\x42\x77\x76\x56\x44\x78\x72\x6e\x43\x57','\x42\x32\x72\x6d\x76\x65\x72\x6e\x77\x64\x66\x36\x74\x77\x75','\x44\x65\x76\x4c\x77\x4d\x4b','\x7a\x77\x35\x48\x79\x4d\x58\x4c\x72\x67\x76\x4b\x44\x78\x62\x53\x41\x77\x6e\x48\x44\x67\x4c\x56\x42\x47','\x45\x4d\x35\x62\x76\x75\x65','\x42\x32\x35\x73\x7a\x77\x6e\x56\x42\x4d\x35\x4c\x79\x33\x71','\x44\x78\x66\x31\x41\x68\x61','\x76\x4e\x72\x32\x76\x67\x57','\x43\x74\x66\x51\x74\x4e\x76\x4c\x6d\x61','\x79\x78\x66\x59\x41\x66\x4b','\x71\x4a\x69\x31\x7a\x65\x69\x59\x6e\x74\x62\x35\x44\x30\x58\x76\x45\x4e\x48\x51\x43\x33\x50\x33\x7a\x4b\x54\x66\x43\x71','\x76\x68\x48\x79\x77\x4d\x43','\x43\x4e\x76\x55\x44\x67\x4c\x54\x7a\x73\x35\x4b\x41\x78\x6e\x4a\x42\x32\x35\x55\x7a\x77\x6e\x30\x7a\x77\x71','\x76\x75\x72\x51\x71\x77\x65','\x43\x4d\x76\x59\x43\x4b\x76\x4e\x73\x57','\x45\x74\x6a\x79\x74\x68\x4c\x34\x41\x71','\x71\x4a\x69\x31\x43\x75\x69\x5a\x41\x4a\x62\x30\x6d\x32\x6a\x6d\x71\x4b\x31\x32\x73\x57','\x71\x4e\x44\x32\x77\x4b\x6d\x59\x7a\x4b\x35\x36\x43\x71','\x71\x30\x35\x32\x76\x75\x72\x4e\x74\x66\x72\x36\x43\x5a\x76\x6b\x71\x4a\x69\x31\x76\x78\x50\x33\x42\x4a\x62\x36\x44\x33\x65','\x7a\x4b\x7a\x34\x73\x68\x4b','\x71\x30\x31\x32\x76\x65\x69\x5a\x45\x4b\x58\x5a\x45\x68\x6a\x6d\x71\x4e\x65','\x43\x68\x6a\x56\x79\x32\x76\x5a\x43\x32\x76\x4b\x72\x78\x7a\x4c\x42\x4e\x72\x6a\x7a\x68\x6d','\x7a\x4b\x58\x4f\x74\x4e\x43','\x72\x67\x43\x35\x6d\x68\x4c\x33\x76\x57','\x76\x4c\x7a\x6c\x72\x76\x4b','\x42\x4d\x7a\x72\x75\x31\x6d','\x76\x4d\x50\x54\x43\x77\x65','\x71\x32\x44\x6d\x76\x78\x4f\x57\x74\x66\x76\x65\x7a\x33\x7a\x7a\x72\x65\x31\x4d\x75\x33\x72\x34\x42\x71','\x43\x32\x58\x50\x79\x32\x75','\x42\x4c\x7a\x6d\x42\x66\x69','\x71\x77\x44\x4d\x76\x78\x50\x4e\x77\x65\x58\x58\x6d\x4c\x48\x77\x71\x5a\x6a\x31','\x45\x74\x6a\x79\x76\x4b\x6d\x59\x44\x71','\x71\x4a\x69\x31\x43\x33\x50\x34\x79\x4c\x6e\x35\x45\x65\x58\x4b\x71\x4a\x69\x58\x76\x30\x6a\x4e\x44\x4a\x62\x36\x43\x71','\x43\x4d\x76\x4a\x42\x32\x35\x55\x7a\x77\x6e\x30\x71\x78\x72\x30\x7a\x77\x31\x57\x44\x68\x6d','\x44\x30\x39\x58\x44\x75\x4b','\x45\x78\x44\x32\x43\x33\x65\x57\x7a\x71','\x76\x78\x72\x36\x73\x4c\x69','\x45\x4a\x6a\x32\x6d\x68\x6e\x34\x43\x4b\x58\x63\x43\x71','\x76\x33\x6e\x50\x77\x65\x38','\x71\x30\x31\x32\x76\x30\x6a\x4e\x7a\x4a\x76\x31\x41\x67\x50\x77\x45\x4a\x6e\x51\x74\x65\x6d\x5a\x42\x71','\x71\x5a\x6a\x4d\x6d\x4e\x50\x32\x41\x4b\x58\x64\x7a\x31\x48\x69\x72\x78\x7a\x55\x6d\x68\x4c\x34\x43\x4b\x57','\x7a\x31\x48\x53\x74\x77\x4b','\x41\x4d\x48\x51\x77\x75\x71','\x79\x33\x7a\x6f\x77\x67\x75','\x43\x32\x48\x50\x7a\x4e\x71','\x43\x68\x72\x55\x42\x4b\x79','\x75\x4d\x4c\x55\x75\x4b\x53','\x71\x4d\x44\x4d\x6d\x68\x50\x33\x6e\x75\x50\x66\x44\x75\x48\x71\x71\x5a\x6e\x59\x76\x4b\x6e\x6f\x74\x68\x72\x62\x45\x66\x62\x6d','\x73\x66\x4c\x75\x72\x76\x79','\x72\x67\x48\x51\x73\x68\x4b\x59\x76\x67\x7a\x66\x7a\x33\x7a\x6b\x72\x68\x48\x59\x75\x65\x69\x59\x6e\x77\x72\x63\x6d\x4a\x75\x57\x45\x4e\x48\x69\x6d\x61','\x71\x5a\x6a\x32\x6d\x68\x6e\x34\x43\x4b\x58\x63\x43\x71','\x73\x32\x35\x41\x79\x76\x6d','\x79\x32\x39\x55\x42\x4d\x76\x4a\x44\x67\x4c\x56\x42\x49\x35\x4c\x43\x33\x72\x48\x79\x4d\x58\x50\x43\x32\x48\x4c\x7a\x61','\x42\x66\x66\x4e\x42\x4c\x43','\x7a\x32\x76\x30\x73\x78\x72\x4c\x42\x71','\x76\x67\x76\x53\x42\x78\x61','\x71\x4d\x43\x35\x73\x68\x50\x4d\x41\x4b\x58\x64\x7a\x31\x48\x69\x72\x78\x7a\x55\x6d\x68\x4c\x34\x43\x4b\x57','\x72\x75\x72\x4e\x41\x65\x57','\x42\x4d\x72\x48\x6e\x77\x35\x41\x43\x74\x72\x66\x74\x66\x61\x30\x44\x4e\x43\x58\x7a\x71','\x42\x67\x76\x55\x7a\x33\x72\x4f','\x44\x4d\x6e\x70\x73\x77\x75','\x42\x67\x66\x5a\x44\x65\x76\x32\x7a\x77\x35\x30\x73\x77\x71','\x43\x30\x31\x66\x45\x66\x4b','\x43\x4e\x76\x55\x44\x67\x4c\x54\x7a\x73\x35\x55\x42\x33\x72\x46\x7a\x4d\x39\x31\x42\x4d\x71','\x7a\x77\x58\x67\x42\x30\x75','\x44\x76\x62\x4f\x43\x75\x4f','\x71\x5a\x6a\x4d\x76\x78\x50\x4e\x41\x4c\x7a\x66\x7a\x75\x58\x6c','\x45\x65\x31\x4b\x74\x30\x34','\x75\x4d\x76\x58\x44\x77\x76\x5a\x44\x63\x62\x30\x41\x77\x31\x4c\x42\x33\x76\x30','\x7a\x75\x76\x7a\x43\x77\x65','\x43\x32\x76\x55\x7a\x66\x72\x4c\x43\x4d\x31\x50\x42\x4d\x66\x53\x73\x77\x35\x57\x44\x78\x71','\x44\x78\x50\x35\x71\x4e\x43','\x71\x75\x54\x65\x45\x4b\x30','\x71\x77\x44\x4d\x76\x78\x50\x4e\x77\x65\x58\x31\x7a\x5a\x4c\x76\x45\x4c\x43','\x71\x4d\x44\x4d\x77\x4b\x72\x4d\x79\x4c\x62\x63\x74\x75\x72\x30\x45\x4e\x43\x31\x6d\x68\x66\x34\x43\x71','\x44\x66\x6e\x48\x79\x33\x43','\x44\x68\x7a\x6f\x77\x4d\x34','\x72\x64\x66\x6d\x6d\x75\x6a\x4c\x43\x71','\x45\x4e\x43\x31\x73\x68\x4c\x6e\x77\x65\x58\x31\x74\x78\x7a\x78\x71\x4d\x44\x4d\x6e\x78\x76\x4e\x44\x4c\x4c\x64\x6d\x4b\x58\x41\x72\x67\x44\x32\x76\x78\x4b\x59\x44\x71','\x43\x76\x50\x55\x73\x4b\x57','\x44\x67\x39\x30\x79\x77\x57','\x45\x77\x31\x48\x7a\x4c\x69','\x43\x4b\x66\x6b\x42\x65\x57','\x43\x4d\x76\x57\x42\x67\x66\x35\x75\x33\x72\x56\x43\x4d\x66\x4e\x7a\x71','\x41\x67\x66\x55\x7a\x67\x58\x4c\x74\x77\x76\x5a\x43\x32\x66\x4e\x7a\x71','\x75\x67\x6e\x6c\x71\x75\x71','\x71\x4e\x44\x32\x77\x4b\x6d\x59\x7a\x4b\x35\x36\x45\x67\x35\x30\x45\x4e\x43\x31\x6d\x61','\x71\x30\x31\x32\x73\x4b\x69\x59\x6e\x76\x76\x36\x44\x32\x34\x57\x44\x4d\x44\x6d\x76\x68\x50\x34\x41\x71','\x72\x65\x54\x5a\x42\x4c\x4f','\x42\x66\x76\x36\x7a\x4d\x71','\x72\x67\x6a\x6e\x76\x4c\x69','\x44\x68\x4c\x73\x74\x75\x38','\x43\x5a\x6a\x71\x43\x4e\x72\x34\x71\x57','\x42\x78\x72\x4c\x77\x78\x6a\x6d\x41\x4d\x39\x33\x41\x67\x35\x5a','\x71\x4a\x6a\x75\x76\x33\x75\x5a\x71\x57','\x45\x4d\x44\x32\x75\x33\x50\x34\x43\x4b\x57','\x7a\x77\x4c\x5a\x73\x75\x4b','\x79\x33\x76\x59\x43\x4d\x76\x55\x44\x65\x76\x34\x7a\x77\x6e\x31\x44\x67\x4c\x56\x42\x4b\x4c\x4b','\x45\x74\x69\x35\x76\x75\x6a\x6e\x44\x4b\x50\x65\x7a\x33\x7a\x6c','\x71\x5a\x6a\x32\x73\x4b\x69\x59\x6e\x75\x54\x64\x6d\x77\x50\x6d\x71\x4e\x44\x4d\x75\x65\x6a\x6e\x74\x66\x76\x36\x76\x57','\x43\x32\x76\x55\x7a\x61','\x42\x4e\x44\x62\x42\x4b\x38','\x7a\x78\x6e\x52\x74\x4c\x75','\x79\x32\x7a\x4c\x7a\x4b\x38','\x76\x4b\x72\x4d\x42\x66\x6d','\x73\x77\x48\x51\x7a\x77\x69','\x71\x5a\x6a\x32\x6d\x68\x75\x5a\x43\x4b\x48\x65\x7a\x33\x75','\x43\x32\x76\x30\x75\x33\x72\x48\x44\x67\x75','\x76\x67\x39\x68\x73\x75\x30','\x41\x78\x6e\x73\x7a\x77\x7a\x59\x7a\x78\x6e\x4f\x41\x77\x35\x4e\x76\x67\x39\x52\x7a\x77\x34','\x7a\x77\x35\x48\x79\x4d\x58\x4c\x75\x4d\x76\x57\x42\x67\x66\x35\x75\x67\x76\x59\x43\x32\x4c\x5a\x44\x67\x76\x55\x79\x32\x75','\x41\x31\x6a\x77\x44\x4b\x53','\x73\x4c\x6a\x55\x41\x77\x53','\x71\x30\x35\x65\x42\x65\x69\x58\x79\x71','\x71\x4e\x44\x32\x77\x4b\x6d\x59\x7a\x4b\x35\x36\x44\x4e\x69\x31\x71\x32\x44\x31','\x41\x4d\x48\x56\x7a\x67\x69','\x77\x65\x4c\x53\x77\x4b\x53','\x71\x4a\x69\x31\x76\x68\x50\x34\x42\x4c\x50\x35\x44\x30\x72\x6d','\x71\x5a\x6e\x59\x76\x4b\x6e\x6e\x44\x71','\x41\x32\x31\x74\x42\x30\x75','\x43\x66\x44\x41\x73\x76\x6d','\x74\x66\x76\x33\x44\x67\x53','\x41\x75\x44\x64\x44\x78\x6d','\x41\x77\x76\x55\x43\x78\x65','\x72\x77\x58\x50\x73\x65\x69','\x6d\x74\x62\x56\x44\x78\x6a\x6b\x7a\x76\x65','\x43\x31\x76\x5a\x41\x78\x75','\x43\x4d\x76\x51\x75\x78\x61','\x44\x75\x31\x4d\x6d\x33\x76\x6d\x41\x71','\x71\x78\x48\x55\x43\x33\x50\x34\x79\x4c\x6e\x35\x45\x65\x58\x71\x71\x4b\x31\x64','\x45\x65\x44\x6a\x73\x4b\x30','\x41\x4c\x44\x71\x76\x67\x43','\x45\x77\x44\x62\x76\x75\x71','\x43\x33\x48\x78\x43\x4b\x57','\x71\x5a\x6e\x59\x76\x4b\x6e\x4d\x79\x4c\x62\x63\x74\x75\x72\x51\x71\x4b\x35\x59\x74\x65\x6e\x6f\x45\x4b\x48\x63\x79\x71','\x45\x74\x69\x35\x76\x75\x6a\x6e\x44\x4b\x50\x65\x7a\x4b\x72\x6d\x45\x75\x58\x55\x76\x4e\x4b\x59\x76\x65\x58\x65\x79\x71','\x44\x77\x39\x71\x7a\x4d\x75','\x6d\x74\x61\x31\x6e\x74\x47\x58\x44\x67\x6e\x7a\x44\x66\x76\x71','\x45\x67\x76\x62\x74\x66\x6d','\x43\x75\x66\x34\x79\x4b\x4b','\x43\x4b\x54\x77\x41\x33\x71','\x44\x68\x44\x4e\x71\x75\x65','\x71\x32\x43\x35\x76\x78\x50\x78','\x79\x75\x6a\x48\x74\x30\x57','\x7a\x75\x44\x33\x76\x4c\x61','\x7a\x68\x6a\x56\x43\x68\x62\x4c\x7a\x65\x6e\x56\x44\x77\x35\x30','\x7a\x78\x48\x4a\x7a\x77\x58\x53\x7a\x77\x35\x30','\x71\x4d\x43\x35\x73\x4e\x4c\x33\x77\x68\x72\x65\x7a\x5a\x4c\x7a\x45\x78\x44\x65\x74\x61','\x7a\x4e\x6e\x66\x71\x4b\x34','\x71\x5a\x6a\x32\x6d\x68\x75\x59\x44\x4c\x50\x64\x6d\x4b\x58\x77\x71\x4b\x54\x55\x76\x4b\x6a\x6f\x43\x4b\x58\x66\x41\x68\x65','\x73\x68\x72\x71\x45\x76\x71','\x44\x4d\x66\x52\x7a\x78\x4b','\x77\x78\x62\x32\x77\x65\x69','\x41\x78\x6e\x73\x7a\x78\x62\x53\x79\x78\x4c\x50\x42\x4d\x43','\x44\x4c\x4c\x56\x41\x4d\x6d','\x73\x4b\x58\x6f\x71\x78\x43','\x79\x4d\x4c\x35\x73\x33\x75','\x7a\x4e\x62\x58\x44\x66\x79','\x73\x76\x7a\x6b\x41\x65\x43','\x73\x4d\x58\x74\x42\x4c\x65','\x71\x4e\x44\x4d\x6e\x68\x72\x33\x74\x66\x50\x64\x6d\x4e\x7a\x6c\x44\x77\x43\x35\x76\x78\x4f\x5a\x42\x71','\x71\x74\x6a\x32\x6e\x75\x6e\x78','\x72\x67\x43\x35\x44\x65\x72\x4f\x41\x4c\x62\x63\x74\x75\x6d','\x45\x4a\x6a\x32\x6d\x68\x75\x5a\x43\x4b\x48\x65\x41\x67\x30','\x42\x4d\x39\x33','\x76\x65\x6e\x32\x73\x33\x43','\x41\x77\x6e\x77\x7a\x65\x4b','\x6d\x74\x6a\x34\x43\x75\x35\x41\x7a\x68\x79','\x71\x5a\x6e\x59\x73\x65\x6e\x6f\x43\x4e\x66\x62\x44\x5a\x76\x6f\x43\x33\x43\x31\x6d\x68\x50\x34\x41\x4a\x6a\x35\x44\x31\x43','\x79\x33\x76\x59\x43\x4d\x76\x55\x44\x66\x72\x56\x41\x32\x76\x55','\x71\x32\x44\x4d\x77\x75\x6d\x59\x44\x71','\x6e\x74\x79\x5a\x6f\x64\x75\x59\x6d\x31\x48\x74\x41\x75\x54\x62\x74\x61','\x42\x68\x7a\x77\x41\x4e\x4b','\x7a\x77\x50\x51\x41\x76\x61','\x45\x74\x69\x35\x76\x75\x6a\x6e\x44\x4b\x50\x65\x79\x71','\x43\x32\x58\x65\x79\x33\x4b','\x79\x30\x4c\x68\x79\x32\x4f','\x76\x75\x31\x6b\x43\x77\x6d','\x71\x30\x54\x65\x77\x78\x50\x34\x71\x57','\x45\x4c\x4c\x6c\x42\x30\x53','\x7a\x75\x50\x4d\x77\x4d\x57','\x71\x4e\x48\x55\x74\x4e\x48\x78','\x71\x32\x39\x55\x42\x4d\x76\x4a\x44\x67\x4c\x56\x42\x49\x62\x4a\x42\x67\x39\x5a\x7a\x77\x71','\x72\x75\x53\x31\x76\x68\x50\x6d\x42\x71','\x41\x67\x66\x55\x7a\x67\x58\x4c\x43\x4e\x6d','\x7a\x78\x48\x4c\x79\x33\x76\x30\x41\x77\x39\x55\x78\x32\x4c\x4b','\x72\x75\x6a\x56\x73\x4d\x6d','\x71\x77\x44\x4d\x76\x78\x50\x4e\x77\x65\x58\x32\x7a\x5a\x4c\x73\x45\x4e\x43\x31\x7a\x4b\x76\x4f\x79\x4c\x62\x64\x74\x75\x58\x76\x45\x4c\x43','\x7a\x65\x7a\x77\x75\x32\x79','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x65\x4c\x4b','\x41\x76\x76\x57\x71\x4d\x66\x71','\x43\x4d\x76\x48\x43\x32\x39\x55','\x42\x67\x39\x48\x7a\x66\x6a\x4c\x43\x67\x58\x48\x45\x76\x6e\x30\x79\x78\x72\x4c','\x71\x32\x43\x35\x76\x78\x4f\x58\x43\x4c\x62\x63\x44\x33\x7a\x77\x72\x68\x48\x58','\x79\x77\x72\x33\x76\x4c\x69','\x75\x67\x39\x55\x7a\x59\x62\x30\x41\x77\x31\x4c\x42\x33\x76\x30\x69\x63\x30\x47\x79\x32\x39\x55\x42\x4d\x76\x4a\x44\x67\x4c\x56\x42\x49\x62\x31\x42\x4e\x6a\x4c\x43\x33\x62\x56\x42\x4e\x6e\x50\x44\x4d\x75','\x76\x4e\x62\x41\x43\x32\x69','\x74\x75\x54\x4b\x41\x4d\x53'];a0_0x262e=function(){return _0x3f5ed2;};return a0_0x262e();}const DEFAULT_CONFIG={'\x74\x72\x61\x6e\x73\x70\x6f\x72\x74':a0_0x411647(0x1e9),'\x63\x68\x61\x6e\x6e\x65\x6c\x73':['\x2a'],'\x61\x75\x74\x6f\x52\x65\x63\x6f\x6e\x6e\x65\x63\x74':!![],'\x6d\x61\x78\x52\x65\x63\x6f\x6e\x6e\x65\x63\x74\x41\x74\x74\x65\x6d\x70\x74\x73':0xa,'\x69\x6e\x69\x74\x69\x61\x6c\x52\x65\x63\x6f\x6e\x6e\x65\x63\x74\x44\x65\x6c\x61\x79\x4d\x73':0x3e8,'\x6d\x61\x78\x52\x65\x63\x6f\x6e\x6e\x65\x63\x74\x44\x65\x6c\x61\x79\x4d\x73':0x7530,'\x70\x69\x6e\x67\x49\x6e\x74\x65\x72\x76\x61\x6c\x4d\x73':0x7530,'\x70\x6f\x6e\x67\x54\x69\x6d\x65\x6f\x75\x74\x4d\x73':0x2710,'\x6d\x61\x78\x4d\x69\x73\x73\x65\x64\x50\x6f\x6e\x67\x73':0x2,'\x65\x6e\x61\x62\x6c\x65\x44\x65\x64\x75\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e':!![],'\x6d\x61\x78\x44\x65\x64\x75\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x53\x69\x7a\x65':0x3e8,'\x65\x6e\x61\x62\x6c\x65\x52\x65\x70\x6c\x61\x79\x50\x65\x72\x73\x69\x73\x74\x65\x6e\x63\x65':![],'\x72\x65\x70\x6c\x61\x79\x53\x74\x6f\x72\x61\x67\x65\x4b\x65\x79\x50\x72\x65\x66\x69\x78':a0_0x39caff(0x270),'\x6c\x61\x74\x65\x6e\x63\x79\x48\x69\x73\x74\x6f\x72\x79\x53\x69\x7a\x65':0xa},STORAGE_KEYS={'\x6c\x61\x73\x74\x45\x76\x65\x6e\x74\x49\x64':a0_0x39caff(0x2f9),'\x65\x78\x65\x63\x75\x74\x69\x6f\x6e\x49\x64':a0_0x39caff(0x1f3),'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':a0_0x411647(0x261)},WIRE_TYPE_MAP={'\x73\x69\x64\x65\x63\x61\x72\x2e\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64':a0_0x411647(0x1f1),'\x73\x69\x64\x65\x63\x61\x72\x2e\x64\x69\x73\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64':a0_0x411647(0x235),'\x73\x69\x64\x65\x63\x61\x72\x2e\x6e\x6f\x74\x5f\x66\x6f\x75\x6e\x64':a0_0x411647(0x208),'\x73\x69\x64\x65\x63\x61\x72\x2e\x72\x65\x61\x64\x79':a0_0x411647(0x20e)};function a0_0x5f18(_0x354d1a,_0x29611a){const _0x334fa0=a0_0x39caff,_0x33690f={'\x54\x70\x61\x4a\x58':_0x334fa0(0x219),'\x6a\x57\x50\x54\x67':function(_0x2f963e,_0x1f48e2){return _0x2f963e%_0x1f48e2;},'\x47\x69\x44\x79\x4e':function(_0x53f12e,_0x53e245){return _0x53f12e+_0x53e245;},'\x43\x4d\x4b\x69\x5a':function(_0x4f8bbf,_0x1bb1d9){return _0x4f8bbf*_0x1bb1d9;},'\x61\x43\x73\x54\x58':function(_0x5e36c7,_0x2e9a8d){return _0x5e36c7%_0x2e9a8d;},'\x72\x70\x4f\x4f\x46':_0x334fa0(0x299),'\x4e\x51\x48\x55\x58':_0x334fa0(0x2d0),'\x77\x79\x73\x61\x76':_0x334fa0(0x237),'\x72\x5a\x7a\x4c\x66':function(_0x4c7fe1,_0x53b309){return _0x4c7fe1===_0x53b309;},'\x56\x44\x66\x6c\x53':'\x6b\x56\x70\x6b\x59\x51','\x6c\x58\x52\x75\x71':_0x334fa0(0x262),'\x65\x56\x70\x43\x78':function(_0x564a20,_0x1374f2){return _0x564a20+_0x1374f2;}};_0x354d1a=_0x354d1a-0x1d1;const _0x5b01ac=a0_0x5ac7();let _0x237f40=_0x5b01ac[_0x354d1a];if(_0x33690f[_0x334fa0(0x33e)](a0_0x5f18[_0x33690f[_0x334fa0(0x1a2)]],undefined)){var _0x3299f8=function(_0x24d46f){const _0x5d0beb=_0x334fa0,_0x4e0ea5=_0x33690f[_0x5d0beb(0x2bd)];let _0x2b5fb5='',_0x4ac691='';for(let _0x40c75d=0x0,_0x53773b,_0x4b471c,_0x323947=0x0;_0x4b471c=_0x24d46f[_0x5d0beb(0x339)](_0x323947++);~_0x4b471c&&(_0x53773b=_0x33690f[_0x5d0beb(0x1bd)](_0x40c75d,0x4)?_0x33690f[_0x5d0beb(0x307)](_0x33690f[_0x5d0beb(0x291)](_0x53773b,0x40),_0x4b471c):_0x4b471c,_0x33690f[_0x5d0beb(0x2e7)](_0x40c75d++,0x4))?_0x2b5fb5+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0xff&_0x53773b>>(-0x2*_0x40c75d&0x6)):0x0){_0x4b471c=_0x4e0ea5[_0x33690f[_0x5d0beb(0x322)]](_0x4b471c);}for(let _0xa708a5=0x0,_0x2cd192=_0x2b5fb5[_0x5d0beb(0x38f)];_0xa708a5<_0x2cd192;_0xa708a5++){_0x4ac691+='\x25'+_0x33690f[_0x5d0beb(0x307)]('\x30\x30',_0x2b5fb5[_0x33690f['\x4e\x51\x48\x55\x58']](_0xa708a5)[_0x33690f[_0x5d0beb(0x232)]](0x10))[_0x5d0beb(0x370)](-0x2);}return decodeURIComponent(_0x4ac691);};a0_0x5f18[_0x334fa0(0x1f8)]=_0x3299f8,a0_0x5f18[_0x33690f[_0x334fa0(0x24f)]]={},a0_0x5f18[_0x33690f[_0x334fa0(0x1a2)]]=!![];}const _0x154cb9=_0x5b01ac[0x0],_0x166732=_0x33690f[_0x334fa0(0x2db)](_0x354d1a,_0x154cb9),_0x1c7d52=a0_0x5f18['\x45\x75\x6f\x4d\x55\x76'][_0x166732];return!_0x1c7d52?(_0x237f40=a0_0x5f18['\x69\x55\x70\x42\x61\x50'](_0x237f40),a0_0x5f18[_0x334fa0(0x262)][_0x166732]=_0x237f40):_0x237f40=_0x1c7d52,_0x237f40;}var MemoryStorage=class{[a0_0x411647(0x229)]=new Map();[a0_0x411647(0x1fc)](_0x34b5eb){const _0x4db7f6=a0_0x39caff,_0x194020={'\x68\x71\x59\x4a\x41':function(_0x27b863,_0x1afbee){return _0x27b863(_0x1afbee);}},_0x477d3a=a0_0x411647;return this[_0x194020['\x68\x71\x59\x4a\x41'](_0x477d3a,0x229)][_0x4db7f6(0x348)](_0x34b5eb)??null;}[a0_0x411647(0x240)](_0x32980a,_0x5bdc1d){const _0x37bec1=a0_0x39caff,_0x3fb5a5={'\x4a\x52\x75\x47\x6d':function(_0xaa9355,_0x3222a7){return _0xaa9355(_0x3222a7);}},_0x5d0046=a0_0x411647;this[_0x3fb5a5[_0x37bec1(0x22b)](_0x5d0046,0x229)]['\x73\x65\x74'](_0x32980a,_0x5bdc1d);}[a0_0x411647(0x23b)](_0x394176){const _0x4a11ca=a0_0x39caff,_0x45e3fe=a0_0x411647;this[_0x45e3fe(0x229)][_0x4a11ca(0x337)](_0x394176);}},SessionGatewayClient=class{['\x77\x73']=null;[a0_0x411647(0x222)];[a0_0x411647(0x225)];[a0_0x411647(0x1d4)];[a0_0x411647(0x207)]=![];[a0_0x39caff(0x2df)]='\x64\x69\x73\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64';[a0_0x411647(0x283)]=null;[a0_0x411647(0x2a0)]=![];[a0_0x39caff(0x327)]=null;[a0_0x411647(0x1d8)]=null;[a0_0x411647(0x2a2)]=null;[a0_0x411647(0x238)]=0x0;[a0_0x411647(0x24e)]=0x0;[a0_0x39caff(0x329)]=0x0;[a0_0x411647(0x231)]=0x0;[a0_0x411647(0x2b1)]=0x0;['\x64\x75\x70\x6c\x69\x63\x61\x74\x65\x73\x53\x6b\x69\x70\x70\x65\x64']=0x0;[a0_0x411647(0x1e8)]=null;[a0_0x411647(0x1f8)]=null;[a0_0x411647(0x1f6)]=null;[a0_0x39caff(0x2e8)]=new Map();[a0_0x411647(0x219)]=0x0;[a0_0x411647(0x1d3)]=new Set();[a0_0x411647(0x20f)]=[];[a0_0x411647(0x1ef)]={...INITIAL_METRICS};[a0_0x39caff(0x391)]=null;[a0_0x39caff(0x19b)]=null;[a0_0x411647(0x21c)]=null;[a0_0x39caff(0x1d3)]=![];[a0_0x411647(0x29f)]={'\x74\x6f\x74\x61\x6c':0x0,'\x72\x65\x63\x65\x69\x76\x65\x64':0x0};constructor(_0xfc3a52){const _0x5288b0=a0_0x39caff,_0x554a3a={'\x61\x64\x77\x56\x52':function(_0x2854db,_0x36b258){return _0x2854db(_0x36b258);},'\x72\x68\x50\x42\x71':_0x5288b0(0x3a7),'\x66\x42\x42\x41\x71':function(_0x5db9b0,_0x23325f){return _0x5db9b0!==_0x23325f;},'\x6e\x56\x54\x63\x6c':function(_0x212177,_0x68b078){return _0x212177(_0x68b078);},'\x76\x59\x6f\x6a\x63':function(_0x226be3,_0x20f49c){return _0x226be3(_0x20f49c);},'\x65\x6a\x6a\x69\x50':function(_0x71d8de,_0x54df8e){return _0x71d8de(_0x54df8e);},'\x76\x61\x6b\x65\x79':_0x5288b0(0x241),'\x46\x65\x54\x65\x45':function(_0x3e148a,_0x2ab8b3){return _0x3e148a(_0x2ab8b3);},'\x5a\x56\x5a\x6a\x79':function(_0xf84994,_0x18faa6){return _0xf84994(_0x18faa6);}},_0x1c32ca=a0_0x411647,_0x474e92={'\x77\x59\x75\x6c\x44':_0x554a3a['\x61\x64\x77\x56\x52'](_0x1c32ca,0x274)};let _0x271bc5;if(_0xfc3a52[_0x554a3a['\x72\x68\x50\x42\x71']])_0x271bc5=_0xfc3a52[_0x1c32ca(0x27f)];else{if(_0x554a3a[_0x5288b0(0x32a)](typeof globalThis,'\x75\x6e\x64\x65\x66\x69\x6e\x65\x64')&&_0x474e92[_0x1c32ca(0x1eb)]in globalThis)try{const _0x5d98af=_0x1c32ca(0x26e);localStorage[_0x1c32ca(0x240)](_0x5d98af,_0x5d98af),localStorage[_0x1c32ca(0x23b)](_0x5d98af),_0x271bc5=localStorage;}catch{_0x271bc5=new MemoryStorage();}else _0x271bc5=new MemoryStorage();}this['\x63\x6f\x6e\x66\x69\x67']={'\x75\x72\x6c':_0xfc3a52[_0x554a3a[_0x5288b0(0x2ed)](_0x1c32ca,0x263)],'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0xfc3a52[_0x554a3a[_0x5288b0(0x1fc)](_0x1c32ca,0x1d5)],'\x74\x6f\x6b\x65\x6e':_0xfc3a52[_0x554a3a[_0x5288b0(0x1d4)](_0x1c32ca,0x24a)],'\x6f\x6e\x54\x6f\x6b\x65\x6e\x52\x65\x66\x72\x65\x73\x68':_0xfc3a52[_0x1c32ca(0x237)],'\x74\x72\x61\x6e\x73\x70\x6f\x72\x74':_0xfc3a52[_0x554a3a[_0x5288b0(0x2ed)](_0x1c32ca,0x1e1)]??DEFAULT_CONFIG[_0x1c32ca(0x1e1)],'\x63\x68\x61\x6e\x6e\x65\x6c\x73':_0xfc3a52[_0x1c32ca(0x200)]??DEFAULT_CONFIG[_0x5288b0(0x21b)],'\x61\x75\x74\x6f\x52\x65\x63\x6f\x6e\x6e\x65\x63\x74':_0xfc3a52[_0x1c32ca(0x2ab)]??DEFAULT_CONFIG[_0x1c32ca(0x2ab)],'\x6d\x61\x78\x52\x65\x63\x6f\x6e\x6e\x65\x63\x74\x41\x74\x74\x65\x6d\x70\x74\x73':_0xfc3a52['\x6d\x61\x78\x52\x65\x63\x6f\x6e\x6e\x65\x63\x74\x41\x74\x74\x65\x6d\x70\x74\x73']??DEFAULT_CONFIG[_0x1c32ca(0x269)],'\x69\x6e\x69\x74\x69\x61\x6c\x52\x65\x63\x6f\x6e\x6e\x65\x63\x74\x44\x65\x6c\x61\x79\x4d\x73':_0xfc3a52[_0x554a3a[_0x5288b0(0x1e7)](_0x1c32ca,0x295)]??DEFAULT_CONFIG[_0x1c32ca(0x295)],'\x6d\x61\x78\x52\x65\x63\x6f\x6e\x6e\x65\x63\x74\x44\x65\x6c\x61\x79\x4d\x73':_0xfc3a52[_0x554a3a[_0x5288b0(0x1d1)]]??DEFAULT_CONFIG[_0x554a3a[_0x5288b0(0x2ed)](_0x1c32ca,0x252)],'\x70\x69\x6e\x67\x49\x6e\x74\x65\x72\x76\x61\x6c\x4d\x73':_0xfc3a52[_0x554a3a[_0x5288b0(0x2c6)](_0x1c32ca,0x2b7)]??DEFAULT_CONFIG[_0x1c32ca(0x2b7)],'\x70\x6f\x6e\x67\x54\x69\x6d\x65\x6f\x75\x74\x4d\x73':_0xfc3a52[_0x1c32ca(0x1da)]??DEFAULT_CONFIG[_0x5288b0(0x354)],'\x6d\x61\x78\x4d\x69\x73\x73\x65\x64\x50\x6f\x6e\x67\x73':_0xfc3a52[_0x1c32ca(0x218)]??DEFAULT_CONFIG[_0x1c32ca(0x218)],'\x65\x6e\x61\x62\x6c\x65\x44\x65\x64\x75\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e':_0xfc3a52[_0x5288b0(0x357)]??DEFAULT_CONFIG[_0x1c32ca(0x226)],'\x6d\x61\x78\x44\x65\x64\x75\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x53\x69\x7a\x65':_0xfc3a52[_0x1c32ca(0x249)]??DEFAULT_CONFIG[_0x1c32ca(0x249)],'\x65\x6e\x61\x62\x6c\x65\x52\x65\x70\x6c\x61\x79\x50\x65\x72\x73\x69\x73\x74\x65\x6e\x63\x65':_0xfc3a52[_0x1c32ca(0x281)]??DEFAULT_CONFIG[_0x1c32ca(0x281)],'\x72\x65\x70\x6c\x61\x79\x53\x74\x6f\x72\x61\x67\x65':_0x271bc5,'\x72\x65\x70\x6c\x61\x79\x53\x74\x6f\x72\x61\x67\x65\x4b\x65\x79\x50\x72\x65\x66\x69\x78':_0xfc3a52[_0x1c32ca(0x298)]??DEFAULT_CONFIG[_0x5288b0(0x26a)],'\x6c\x61\x74\x65\x6e\x63\x79\x48\x69\x73\x74\x6f\x72\x79\x53\x69\x7a\x65':_0xfc3a52[_0x1c32ca(0x2b5)]??DEFAULT_CONFIG[_0x1c32ca(0x2b5)]},this[_0x1c32ca(0x225)]=_0xfc3a52[_0x1c32ca(0x225)]??{},this[_0x1c32ca(0x1d4)]=_0xfc3a52[_0x554a3a[_0x5288b0(0x20b)](_0x1c32ca,0x24a)];if(this[_0x5288b0(0x2d4)]['\x65\x6e\x61\x62\x6c\x65\x52\x65\x70\x6c\x61\x79\x50\x65\x72\x73\x69\x73\x74\x65\x6e\x63\x65'])this[_0x1c32ca(0x2bb)]();}[a0_0x411647(0x29d)](){const _0x1ba033=a0_0x39caff,_0x17fdac={'\x71\x64\x48\x6a\x55':_0x1ba033(0x2df),'\x68\x48\x6f\x6c\x67':function(_0x1059ea,_0x5c41e7){return _0x1059ea(_0x5c41e7);},'\x78\x66\x58\x79\x49':'\x72\x77\x4b\x6f\x50','\x48\x78\x77\x45\x57':function(_0x30bf9c,_0x17951c){return _0x30bf9c(_0x17951c);}},_0x8d653a=a0_0x411647,_0x219253={'\x72\x77\x4b\x6f\x50':function(_0x1f2ded,_0x3a5e14){return _0x1f2ded===_0x3a5e14;}};if(_0x219253[_0x8d653a(0x26a)](this[_0x17fdac[_0x1ba033(0x27f)]],_0x17fdac['\x68\x48\x6f\x6c\x67'](_0x8d653a,0x2b9))||_0x219253[_0x17fdac['\x78\x66\x58\x79\x49']](this[_0x17fdac[_0x1ba033(0x30a)](_0x8d653a,0x25e)],_0x8d653a(0x24b)))return;const _0x42aba7=this[_0x8d653a(0x2a0)];this[_0x8d653a(0x23e)](_0x42aba7?'\x72\x65\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6e\x67':_0x8d653a(0x24b)),this[_0x8d653a(0x28e)]();}[a0_0x39caff(0x305)](){const _0x2ca517=a0_0x39caff,_0x4dd74f={'\x47\x6a\x75\x50\x65':function(_0x56f2ee,_0x21d047){return _0x56f2ee(_0x21d047);},'\x4e\x76\x75\x59\x4d':function(_0x25b9b1,_0xc4a385){return _0x25b9b1(_0xc4a385);},'\x69\x47\x43\x75\x73':function(_0x475648,_0x2204ad){return _0x475648(_0x2204ad);},'\x48\x5a\x44\x45\x5a':function(_0x4c8a6a,_0x33856b){return _0x4c8a6a(_0x33856b);}},_0x41ee2d=a0_0x411647,_0xd87ce0=new URL(this[_0x41ee2d(0x222)][_0x41ee2d(0x263)]);_0xd87ce0[_0x4dd74f[_0x2ca517(0x266)](_0x41ee2d,0x223)][_0x41ee2d(0x267)](_0x41ee2d(0x24a),this[_0x4dd74f['\x4e\x76\x75\x59\x4d'](_0x41ee2d,0x1d4)]),this['\x77\x73']=new WebSocket(_0xd87ce0[_0x41ee2d(0x21e)]()),this['\x77\x73'][_0x4dd74f[_0x2ca517(0x1b4)](_0x41ee2d,0x27c)]=()=>this[_0x41ee2d(0x210)](),this['\x77\x73'][_0x41ee2d(0x213)]=_0x790b4d=>this['\x68\x61\x6e\x64\x6c\x65\x43\x6c\x6f\x73\x65'](_0x790b4d[_0x41ee2d(0x2a5)],_0x790b4d[_0x41ee2d(0x285)]),this['\x77\x73'][_0x41ee2d(0x1e6)]=_0x58459f=>{},this['\x77\x73'][_0x4dd74f[_0x2ca517(0x32d)](_0x41ee2d,0x220)]=_0x470d7e=>this[_0x2ca517(0x3a8)](_0x470d7e['\x64\x61\x74\x61']);}[a0_0x411647(0x1d7)](){const _0x5cdc45=a0_0x39caff,_0xcd35de={'\x66\x44\x4e\x42\x48':function(_0x24da4b,_0x1c2f7c){return _0x24da4b(_0x1c2f7c);}},_0x32591d=a0_0x411647,_0x34e5c2={'\x52\x61\x6c\x63\x6c':_0x32591d(0x1e4),'\x44\x44\x51\x78\x69':_0x32591d(0x25a)};this[_0xcd35de[_0x5cdc45(0x2fb)](_0x32591d,0x1ed)](),this['\x77\x73']&&(this['\x77\x73'][_0x32591d(0x23d)](0x3e8,_0x34e5c2[_0x32591d(0x239)]),this['\x77\x73']=null),this[_0xcd35de['\x66\x44\x4e\x42\x48'](_0x32591d,0x23e)](_0x34e5c2[_0x32591d(0x232)]);}async[a0_0x411647(0x273)](_0x521b6f){const _0xb5df2f=a0_0x39caff,_0x21ec51={'\x62\x52\x75\x71\x59':function(_0x6f2bb1,_0x35be09){return _0x6f2bb1(_0x35be09);},'\x61\x47\x51\x6c\x5a':function(_0x21781c,_0x440854){return _0x21781c(_0x440854);}},_0x246b73=a0_0x411647,_0xf5071f={'\x72\x4a\x6d\x70\x4a':'\x73\x75\x62\x73\x63\x72\x69\x62\x65'};return(await this[_0x21ec51['\x62\x52\x75\x71\x59'](_0x246b73,0x214)]({'\x74\x79\x70\x65':_0xf5071f[_0x21ec51[_0xb5df2f(0x34b)](_0x246b73,0x25d)],'\x63\x68\x61\x6e\x6e\x65\x6c\x73':_0x521b6f}))[_0x246b73(0x200)];}async['\x75\x6e\x73\x75\x62\x73\x63\x72\x69\x62\x65'](_0x51a7dc){const _0x5e3b39=a0_0x39caff,_0x23a65d={'\x73\x6c\x44\x63\x79':function(_0x55423a,_0x1456da){return _0x55423a(_0x1456da);}},_0x122bc0=a0_0x411647,_0xc38a19={'\x41\x59\x4c\x62\x47':_0x23a65d['\x73\x6c\x44\x63\x79'](_0x122bc0,0x216)};return(await this[_0x23a65d[_0x5e3b39(0x1e9)](_0x122bc0,0x214)]({'\x74\x79\x70\x65':_0xc38a19[_0x122bc0(0x294)],'\x63\x68\x61\x6e\x6e\x65\x6c\x73':_0x51a7dc}))[_0x5e3b39(0x21b)];}async[a0_0x39caff(0x28d)](){const _0x181202=a0_0x39caff,_0x511f36={'\x61\x53\x51\x7a\x43':function(_0x51dc95,_0x54f058){return _0x51dc95(_0x54f058);}},_0x51f021=a0_0x411647,_0x144df4={'\x50\x75\x64\x7a\x63':_0x181202(0x28d)},_0x52d651=Date[_0x51f021(0x228)]();return await this[_0x511f36['\x61\x53\x51\x7a\x43'](_0x51f021,0x214)]({'\x74\x79\x70\x65':_0x144df4[_0x511f36[_0x181202(0x217)](_0x51f021,0x1db)]}),Date[_0x181202(0x1de)]()-_0x52d651;}[a0_0x411647(0x27b)](_0x30d43c){const _0xa9cd93=a0_0x39caff,_0x10d0e9=a0_0x411647,_0x609d7d={'\x49\x7a\x44\x71\x48':_0x10d0e9(0x27b)};this[_0x10d0e9(0x2a9)]({'\x74\x79\x70\x65':_0x609d7d[_0xa9cd93(0x24a)],'\x73\x69\x6e\x63\x65':_0x30d43c});}[a0_0x39caff(0x39a)](_0x36e978,_0x111ba3){const _0x537aae=a0_0x39caff,_0x58c995={'\x7a\x59\x4b\x6f\x4b':function(_0x5188e9,_0x54fdee){return _0x5188e9(_0x54fdee);}},_0x48e0d8=a0_0x411647,_0x1d4ad3={'\x41\x57\x49\x6c\x76':_0x48e0d8(0x2ae)};if(!this[_0x58c995[_0x537aae(0x1ed)](_0x48e0d8,0x1f2)]())return![];return this[_0x48e0d8(0x2a9)]({'\x74\x79\x70\x65':_0x1d4ad3['\x41\x57\x49\x6c\x76'],'\x64\x61\x74\x61':{'\x74\x65\x72\x6d\x69\x6e\x61\x6c\x49\x64':_0x36e978,'\x69\x6e\x70\x75\x74':_0x111ba3}}),!![];}[a0_0x411647(0x21f)](_0x55b9df,_0x118ce9){const _0x5305ae=a0_0x39caff,_0x2f04ad={'\x43\x57\x42\x78\x44':function(_0x36bfb5,_0x4478da){return _0x36bfb5(_0x4478da);}},_0x346200=a0_0x411647;this[_0x2f04ad[_0x5305ae(0x2c5)](_0x346200,0x21c)]=_0x55b9df;if(_0x118ce9)this[_0x2f04ad[_0x5305ae(0x2c5)](_0x346200,0x287)]=_0x118ce9;this[_0x5305ae(0x2ec)]();}[a0_0x411647(0x1f0)](){const _0x979af3=a0_0x39caff,_0x10ae12={'\x6e\x66\x51\x53\x53':function(_0xff17e4,_0x231734){return _0xff17e4(_0x231734);},'\x69\x42\x47\x75\x59':function(_0x5cd4da,_0x17faad){return _0x5cd4da(_0x17faad);},'\x76\x6c\x67\x52\x70':_0x979af3(0x2a3),'\x4e\x57\x6b\x49\x53':function(_0x1c2618,_0x485409){return _0x1c2618(_0x485409);},'\x64\x4e\x45\x6c\x68':function(_0x5ee173,_0x420cfc){return _0x5ee173(_0x420cfc);},'\x47\x6d\x73\x48\x77':function(_0x2c647f,_0x28115c){return _0x2c647f(_0x28115c);}},_0x553325=a0_0x411647,_0x3f51ad={'\x69\x42\x44\x6c\x71':function(_0x45e471,_0xdd543d){return _0x45e471+_0xdd543d;}};this[_0x10ae12[_0x979af3(0x36d)](_0x553325,0x260)]=null,this[_0x10ae12[_0x979af3(0x29c)](_0x553325,0x287)]=null,this[_0x979af3(0x340)]=null,this[_0x553325(0x2a4)]=![],this[_0x553325(0x29f)]={'\x74\x6f\x74\x61\x6c':0x0,'\x72\x65\x63\x65\x69\x76\x65\x64':0x0},this[_0x553325(0x1d3)][_0x10ae12[_0x979af3(0x36d)](_0x553325,0x29e)](),this[_0x10ae12[_0x979af3(0x286)]]=0x0;if(this[_0x979af3(0x2d4)][_0x979af3(0x1a8)]){const _0x1cfc7d=this[_0x553325(0x222)][_0x979af3(0x26a)];try{this[_0x553325(0x222)][_0x979af3(0x3a7)][_0x10ae12[_0x979af3(0x36d)](_0x553325,0x23b)](_0x3f51ad[_0x979af3(0x31e)](_0x1cfc7d,STORAGE_KEYS[_0x10ae12[_0x979af3(0x36d)](_0x553325,0x260)])),this[_0x10ae12['\x4e\x57\x6b\x49\x53'](_0x553325,0x222)][_0x553325(0x27f)][_0x553325(0x23b)](_0x3f51ad['\x69\x42\x44\x6c\x71'](_0x1cfc7d,STORAGE_KEYS[_0x10ae12['\x64\x4e\x45\x6c\x68'](_0x553325,0x29b)])),this[_0x10ae12[_0x979af3(0x2bb)](_0x553325,0x222)][_0x979af3(0x3a7)][_0x553325(0x23b)](_0x3f51ad[_0x979af3(0x31e)](_0x1cfc7d,STORAGE_KEYS[_0x979af3(0x28c)]));}catch{}}}[a0_0x411647(0x257)](){const _0x360b3f=a0_0x39caff,_0x5e2edc={'\x4a\x52\x6e\x69\x6b':function(_0x3e6722,_0x407717){return _0x3e6722(_0x407717);}},_0x3cc417=a0_0x411647;return{'\x69\x73\x52\x65\x70\x6c\x61\x79\x69\x6e\x67':this[_0x5e2edc[_0x360b3f(0x1aa)](_0x3cc417,0x2a4)],'\x70\x72\x6f\x67\x72\x65\x73\x73':{...this[_0x3cc417(0x29f)]}};}[a0_0x411647(0x25f)](){const _0x2b5036=a0_0x39caff,_0x2f24fa={'\x77\x74\x47\x6e\x41':function(_0x2e9f3d,_0x4fe811){return _0x2e9f3d(_0x4fe811);},'\x78\x65\x41\x4c\x53':_0x2b5036(0x22c)},_0x909c32=a0_0x411647;return{'\x73\x74\x61\x74\x65':this[_0x909c32(0x25e)],'\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64\x41\x74':this[_0x2b5036(0x2e2)],'\x6c\x61\x73\x74\x50\x69\x6e\x67\x41\x74':this[_0x2f24fa['\x77\x74\x47\x6e\x41'](_0x909c32,0x29c)],'\x6c\x61\x73\x74\x50\x6f\x6e\x67\x41\x74':this[_0x909c32(0x1d8)],'\x72\x65\x63\x6f\x6e\x6e\x65\x63\x74\x41\x74\x74\x65\x6d\x70\x74\x73':this[_0x909c32(0x24e)],'\x6d\x65\x73\x73\x61\x67\x65\x73\x52\x65\x63\x65\x69\x76\x65\x64':this[_0x909c32(0x22c)],'\x6d\x65\x73\x73\x61\x67\x65\x73\x53\x65\x6e\x74':this[_0x909c32(0x231)],'\x65\x76\x65\x6e\x74\x73\x52\x65\x63\x65\x69\x76\x65\x64':this[_0x2f24fa[_0x2b5036(0x1c4)]],'\x64\x75\x70\x6c\x69\x63\x61\x74\x65\x73\x53\x6b\x69\x70\x70\x65\x64':this[_0x909c32(0x1d1)],'\x6d\x65\x74\x72\x69\x63\x73':{...this[_0x909c32(0x1ef)]},'\x72\x65\x70\x6c\x61\x79':this['\x67\x65\x74\x52\x65\x70\x6c\x61\x79\x53\x74\x61\x74\x65']()};}[a0_0x411647(0x28f)](){const _0x1e584d={'\x65\x71\x4b\x62\x6f':function(_0x4ef374,_0x8385c9){return _0x4ef374(_0x8385c9);}},_0x17300b=a0_0x411647;return this[_0x1e584d['\x65\x71\x4b\x62\x6f'](_0x17300b,0x25e)];}[a0_0x411647(0x1f2)](){const _0x14ffac=a0_0x411647;return this[_0x14ffac(0x25e)]===_0x14ffac(0x2b9);}[a0_0x411647(0x209)](){const _0xa6a1e5=a0_0x411647;return this[_0xa6a1e5(0x1ef)]['\x71\x75\x61\x6c\x69\x74\x79'];}[a0_0x411647(0x1ea)](){const _0x5f118a=a0_0x39caff,_0x1666b3={'\x50\x63\x4b\x41\x44':function(_0x4fb4e2,_0x5925a7){return _0x4fb4e2(_0x5925a7);}},_0x217c90=a0_0x411647;return{...this[_0x1666b3[_0x5f118a(0x3a9)](_0x217c90,0x1ef)]};}[a0_0x39caff(0x211)](){const _0xc7e0de=a0_0x39caff,_0x22efb9={'\x6c\x76\x56\x6a\x79':function(_0xf9e458,_0x2e36f9){return _0xf9e458(_0x2e36f9);},'\x55\x44\x6a\x41\x61':function(_0x3d301d,_0x18305a){return _0x3d301d(_0x18305a);}},_0x3c9f6d=a0_0x411647;this[_0x22efb9[_0xc7e0de(0x1e6)](_0x3c9f6d,0x20f)]=[],this[_0x3c9f6d(0x1ef)]={...INITIAL_METRICS},this[_0x3c9f6d(0x225)][_0x3c9f6d(0x1de)]?.(this[_0x22efb9[_0xc7e0de(0x361)](_0x3c9f6d,0x1ef)]);}[a0_0x411647(0x1e2)](_0x2b38ad){const _0xcb3c62=a0_0x39caff,_0x245b6f={'\x64\x68\x47\x64\x58':_0xcb3c62(0x1e3),'\x45\x44\x67\x68\x4c':function(_0x3b4f13,_0xab49ff){return _0x3b4f13===_0xab49ff;},'\x58\x58\x6a\x4f\x46':function(_0x35b44f,_0x33d937){return _0x35b44f(_0x33d937);},'\x58\x42\x59\x78\x56':function(_0x50f7ba,_0x20516a){return _0x50f7ba(_0x20516a);}},_0x40f13a=a0_0x411647;this[_0x245b6f[_0xcb3c62(0x26f)]]=_0x2b38ad;if(_0x245b6f[_0xcb3c62(0x38d)](this[_0x245b6f[_0xcb3c62(0x229)](_0x40f13a,0x25e)],_0x245b6f[_0xcb3c62(0x282)](_0x40f13a,0x2b9))&&this['\x77\x73'])this['\x77\x73'][_0x245b6f[_0xcb3c62(0x229)](_0x40f13a,0x23d)](0x3e8,_0x40f13a(0x22e));}[a0_0x411647(0x2b6)](){return this['\x63\x75\x72\x72\x65\x6e\x74\x54\x6f\x6b\x65\x6e'];}[a0_0x39caff(0x1a5)](_0x4afe82){const _0x48d6f1=a0_0x39caff,_0x1c3e05={'\x6c\x51\x67\x6e\x57':function(_0x916c92,_0x40a0e8){return _0x916c92(_0x40a0e8);},'\x62\x4b\x64\x42\x57':function(_0x12c8d8,_0x5b0d3d){return _0x12c8d8(_0x5b0d3d);},'\x63\x4f\x42\x65\x67':function(_0x5aafad,_0x56ebcb){return _0x5aafad(_0x56ebcb);}},_0x4ee7ea=a0_0x411647,_0x333814={'\x4b\x6a\x51\x4d\x77':function(_0x5c4325,_0x498ea8){return _0x5c4325!==_0x498ea8;}};_0x333814[_0x1c3e05[_0x48d6f1(0x389)](_0x4ee7ea,0x297)](this[_0x4ee7ea(0x25e)],_0x4afe82)&&(this[_0x4ee7ea(0x25e)]=_0x4afe82,this[_0x1c3e05[_0x48d6f1(0x2ae)](_0x4ee7ea,0x224)](),this[_0x1c3e05[_0x48d6f1(0x32e)](_0x4ee7ea,0x225)][_0x1c3e05[_0x48d6f1(0x2ae)](_0x4ee7ea,0x2af)]?.(_0x4afe82));}[a0_0x411647(0x210)](){const _0x3d7f93=a0_0x39caff,_0x2af5a3={'\x45\x6c\x69\x48\x42':'\x68\x61\x73\x43\x6f\x6e\x6e\x65\x63\x74\x65\x64\x42\x65\x66\x6f\x72\x65','\x6c\x55\x7a\x66\x64':_0x3d7f93(0x22d),'\x4d\x5a\x58\x73\x44':function(_0x467c13,_0x1d92a0){return _0x467c13(_0x1d92a0);},'\x56\x6a\x6d\x71\x61':'\x68\x61\x6e\x64\x6c\x65\x72\x73'},_0x2c5940=a0_0x411647,_0x4e2a32=this[_0x2af5a3[_0x3d7f93(0x1b6)]];this[_0x2c5940(0x2a0)]=!![],this[_0x2c5940(0x23e)](_0x2af5a3[_0x3d7f93(0x3ad)]),this[_0x2c5940(0x283)]=Date[_0x3d7f93(0x1de)](),this['\x72\x65\x63\x6f\x6e\x6e\x65\x63\x74\x41\x74\x74\x65\x6d\x70\x74\x73']=0x0,this[_0x2c5940(0x238)]=0x0,this[_0x2af5a3[_0x3d7f93(0x274)](_0x2c5940,0x291)](),this['\x72\x65\x73\x74\x6f\x72\x65\x53\x75\x62\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x73'](),_0x4e2a32&&(this[_0x2af5a3['\x4d\x5a\x58\x73\x44'](_0x2c5940,0x22a)](),this[_0x2af5a3[_0x3d7f93(0x36e)]][_0x3d7f93(0x359)]?.());}[a0_0x411647(0x227)](_0x56c90f,_0x252f5c){const _0x4e2a84=a0_0x39caff,_0x32d66a={'\x48\x41\x71\x5a\x49':function(_0x521a8c,_0x33aabb){return _0x521a8c(_0x33aabb);},'\x58\x64\x69\x56\x4a':function(_0x452a93,_0x4efc90){return _0x452a93(_0x4efc90);},'\x53\x73\x76\x6d\x71':_0x4e2a84(0x1be),'\x73\x55\x56\x4e\x76':function(_0x3c2347,_0x178fc5){return _0x3c2347(_0x178fc5);},'\x69\x45\x4f\x42\x6c':_0x4e2a84(0x28f)},_0x3d3851=a0_0x411647,_0x70f4b1={'\x79\x67\x41\x55\x44':function(_0x4f2baf,_0x2632d1){return _0x4f2baf<_0x2632d1;},'\x43\x64\x6c\x44\x6b':_0x4e2a84(0x272)};this[_0x3d3851(0x1ed)](),this[_0x3d3851(0x225)][_0x32d66a[_0x4e2a84(0x293)](_0x3d3851,0x244)]?.(_0x56c90f,_0x252f5c);if(this[_0x3d3851(0x222)][_0x32d66a['\x58\x64\x69\x56\x4a'](_0x3d3851,0x2ab)]&&_0x70f4b1[_0x32d66a['\x53\x73\x76\x6d\x71']](this[_0x3d3851(0x24e)],this[_0x32d66a[_0x4e2a84(0x2ca)](_0x3d3851,0x222)]['\x6d\x61\x78\x52\x65\x63\x6f\x6e\x6e\x65\x63\x74\x41\x74\x74\x65\x6d\x70\x74\x73']))this[_0x32d66a[_0x4e2a84(0x343)]]();else this[_0x3d3851(0x23e)](_0x70f4b1[_0x3d3851(0x205)]);}[a0_0x411647(0x282)](_0x3298c6){const _0xa6e1c5=a0_0x39caff,_0x570705={'\x6d\x54\x71\x4b\x58':function(_0x3bb274,_0x21436a){return _0x3bb274===_0x21436a;},'\x6a\x4f\x76\x46\x4c':function(_0x1a133d,_0x358cd9){return _0x1a133d>=_0x358cd9;},'\x46\x41\x46\x76\x57':'\x73\x74\x72\x69\x6e\x67','\x5a\x76\x79\x61\x42':function(_0x30a9b4,_0x1e8a6b){return _0x30a9b4(_0x1e8a6b);},'\x64\x58\x79\x50\x48':_0xa6e1c5(0x2d5),'\x51\x4e\x54\x50\x6a':function(_0x1c3476,_0x4955af){return _0x1c3476(_0x4955af);},'\x70\x74\x6e\x6e\x46':function(_0xd9c5db,_0x575a3d){return _0xd9c5db===_0x575a3d;},'\x52\x6c\x44\x5a\x6d':function(_0x25b3af,_0x49c354){return _0x25b3af!==_0x49c354;},'\x58\x76\x57\x61\x58':function(_0xfe7f38,_0x376d21){return _0xfe7f38(_0x376d21);},'\x4b\x58\x49\x66\x55':function(_0x556340,_0x5cff6e){return _0x556340(_0x5cff6e);},'\x4a\x6c\x53\x6e\x51':function(_0x4c3939,_0x5ee830){return _0x4c3939(_0x5ee830);},'\x59\x47\x77\x6f\x64':function(_0x430a57,_0x53c9cf){return _0x430a57(_0x53c9cf);},'\x62\x53\x58\x71\x53':function(_0x185063,_0x1038dc){return _0x185063 in _0x1038dc;},'\x54\x43\x76\x4b\x77':function(_0x6db2d4,_0x14c352){return _0x6db2d4(_0x14c352);},'\x4d\x6f\x4f\x6c\x77':_0xa6e1c5(0x303),'\x74\x6b\x54\x44\x6c':function(_0x2d590f,_0x23f1a6){return _0x2d590f>_0x23f1a6;},'\x44\x58\x70\x61\x61':_0xa6e1c5(0x369),'\x76\x63\x4f\x49\x65':_0xa6e1c5(0x2e4),'\x74\x64\x76\x62\x65':function(_0x44c030,_0x56f757){return _0x44c030*_0x56f757;},'\x64\x79\x75\x4d\x6c':'\x63\x6f\x6e\x66\x69\x67'},_0x1e3091=a0_0x411647,_0x1cbe5d={'\x72\x47\x72\x65\x77':_0x570705[_0xa6e1c5(0x2d2)],'\x41\x58\x49\x71\x73':function(_0x8bbfbf,_0x454f61){return _0x8bbfbf!==_0x454f61;},'\x6f\x6b\x70\x53\x77':function(_0x9545c4,_0x5c4211){return _0x570705['\x6d\x54\x71\x4b\x58'](_0x9545c4,_0x5c4211);},'\x47\x62\x5a\x7a\x58':_0x1e3091(0x28a),'\x50\x66\x6d\x4b\x74':_0x570705['\x5a\x76\x79\x61\x42'](_0x1e3091,0x26b),'\x4a\x4c\x4e\x41\x77':function(_0x23217b,_0x29ec16){return _0x570705['\x6a\x4f\x76\x46\x4c'](_0x23217b,_0x29ec16);}};this[_0x1e3091(0x22c)]++;try{const _0x2ad5c5=JSON[_0x1e3091(0x1e5)](_0x3298c6);if(!_0x2ad5c5[_0x570705['\x64\x58\x79\x50\x48']]&&_0x2ad5c5[_0x1e3091(0x28c)])_0x2ad5c5[_0x570705[_0xa6e1c5(0x34c)](_0x1e3091,0x201)]=_0x2ad5c5[_0x1e3091(0x28c)];if(_0x570705[_0xa6e1c5(0x381)](typeof _0x2ad5c5[_0x570705['\x5a\x76\x79\x61\x42'](_0x1e3091,0x201)],_0x1cbe5d[_0x1e3091(0x20c)])&&_0x1cbe5d[_0xa6e1c5(0x289)](WIRE_TYPE_MAP[_0x2ad5c5[_0x570705[_0xa6e1c5(0x32b)](_0x1e3091,0x201)]],void 0x0))_0x2ad5c5[_0x570705['\x5a\x76\x79\x61\x42'](_0x1e3091,0x201)]=WIRE_TYPE_MAP[_0x2ad5c5[_0x1e3091(0x201)]];if(_0x2ad5c5[_0x570705[_0xa6e1c5(0x32b)](_0x1e3091,0x27a)]&&typeof _0x2ad5c5[_0xa6e1c5(0x260)]===_0x1e3091(0x2ba)){const _0x502c20=_0x2ad5c5[_0x1e3091(0x27a)];if(_0x570705['\x52\x6c\x44\x5a\x6d'](_0x502c20[_0x570705[_0xa6e1c5(0x309)](_0x1e3091,0x250)],void 0x0)&&_0x1cbe5d[_0x570705[_0xa6e1c5(0x261)](_0x1e3091,0x22f)](_0x502c20[_0xa6e1c5(0x1f7)],void 0x0))_0x502c20[_0x1e3091(0x2b4)]=_0x502c20[_0x1e3091(0x250)];}if(_0x570705[_0xa6e1c5(0x381)](_0x2ad5c5[_0x570705[_0xa6e1c5(0x1d9)](_0x1e3091,0x201)],_0x1cbe5d[_0x1e3091(0x2b0)])&&!_0x2ad5c5[_0x1e3091(0x27a)]&&_0x2ad5c5[_0x570705['\x59\x47\x77\x6f\x64'](_0x1e3091,0x259)]){const {type:_0x523982,messageType:_0x4b7dfe,channel:_0x451c2d,id:_0x403ecb,sequenceId:_0x4fd10f,timestamp:_0x1765e1,..._0x575302}=_0x2ad5c5;_0x2ad5c5[_0x570705[_0xa6e1c5(0x32b)](_0x1e3091,0x27a)]=_0x575302;}if(_0x570705[_0xa6e1c5(0x225)](_0x2ad5c5['\x74\x79\x70\x65'],_0x1cbe5d[_0x570705[_0xa6e1c5(0x261)](_0x1e3091,0x286)])){this[_0xa6e1c5(0x342)](_0x2ad5c5[_0x1e3091(0x1fb)]);return;}if(_0x570705['\x62\x53\x58\x71\x53']('\x69\x64',_0x2ad5c5)&&_0x2ad5c5['\x69\x64']&&this[_0xa6e1c5(0x2d4)][_0x570705[_0xa6e1c5(0x1df)](_0x1e3091,0x226)]){const _0x2837a6=_0x2ad5c5['\x69\x64'];if(this[_0x570705[_0xa6e1c5(0x32b)](_0x1e3091,0x1d3)][_0x570705['\x4d\x6f\x4f\x6c\x77']](_0x2837a6)){this[_0x1e3091(0x1d1)]++;return;}this[_0x1e3091(0x1d3)][_0x570705[_0xa6e1c5(0x32b)](_0x1e3091,0x21d)](_0x2837a6);if(_0x570705[_0xa6e1c5(0x213)](this[_0x570705[_0xa6e1c5(0x271)]][_0x1e3091(0x268)],this[_0x570705[_0xa6e1c5(0x2c2)](_0x1e3091,0x222)][_0x1e3091(0x249)])){const _0x4fb286=Math[_0x570705[_0xa6e1c5(0x390)]](_0x570705['\x74\x64\x76\x62\x65'](this[_0x570705[_0xa6e1c5(0x24e)]][_0x1e3091(0x249)],0.1));let _0x4b82f1=0x0;for(const _0x406ce4 of this[_0x1e3091(0x1d3)]){if(_0x1cbe5d[_0xa6e1c5(0x1d5)](_0x4b82f1,_0x4fb286))break;this['\x70\x72\x6f\x63\x65\x73\x73\x65\x64\x45\x76\x65\x6e\x74\x49\x64\x73'][_0x1e3091(0x206)](_0x406ce4),_0x4b82f1++;}}this[_0x1e3091(0x260)]=_0x2837a6,this[_0x1e3091(0x20b)]();}this[_0x570705[_0xa6e1c5(0x309)](_0x1e3091,0x1ee)](_0x2ad5c5);}catch{}}[a0_0x411647(0x27e)](_0x4d8a5f){const _0x12458a=a0_0x39caff,_0x245c82={'\x78\x6e\x6f\x73\x45':function(_0x21bc85,_0x2b0dd1){return _0x21bc85(_0x2b0dd1);},'\x45\x75\x4d\x73\x63':function(_0x3f59c8,_0x3d35e0){return _0x3f59c8(_0x3d35e0);},'\x4a\x6d\x69\x61\x6e':function(_0xf2af73,_0x24ac83){return _0xf2af73(_0x24ac83);},'\x65\x6c\x46\x6f\x45':function(_0x59bfdc,_0x31540a){return _0x59bfdc(_0x31540a);}},_0x189529=a0_0x411647,_0xe70fd6={'\x61\x4c\x4a\x6d\x75':function(_0x36d9d4,_0x53702a){return _0x36d9d4-_0x53702a;}},_0xec077c=Date[_0x245c82[_0x12458a(0x24d)](_0x189529,0x228)]();this[_0x189529(0x1d8)]=_0x4d8a5f,this['\x6d\x69\x73\x73\x65\x64\x50\x6f\x6e\x67\x43\x6f\x75\x6e\x74']=0x0,this[_0x189529(0x2a1)]();if(this[_0x12458a(0x224)]){const _0x45a4db=_0xe70fd6[_0x189529(0x221)](_0xec077c,this[_0x189529(0x2a2)]);this[_0x189529(0x20f)][_0x12458a(0x2fc)](_0x45a4db);if(this[_0x245c82[_0x12458a(0x24d)](_0x189529,0x20f)][_0x245c82[_0x12458a(0x34e)](_0x189529,0x233)]>this[_0x245c82['\x4a\x6d\x69\x61\x6e'](_0x189529,0x222)][_0x189529(0x2b5)])this[_0x189529(0x20f)][_0x245c82[_0x12458a(0x394)](_0x189529,0x258)]();this[_0x189529(0x204)](_0x45a4db,_0xec077c);}}['\x64\x69\x73\x70\x61\x74\x63\x68\x4d\x65\x73\x73\x61\x67\x65'](_0x1b7071){const _0x561a1e=a0_0x39caff,_0x41029e={'\x64\x52\x6f\x7a\x6f':function(_0x213052,_0x5b2ea2){return _0x213052 in _0x5b2ea2;},'\x4d\x4b\x64\x6a\x6b':'\x74\x6f\x6b\x65\x6e\x2e\x65\x78\x70\x69\x72\x69\x6e\x67','\x51\x71\x52\x6d\x6e':function(_0x11323f,_0x1e5fff){return _0x11323f(_0x1e5fff);},'\x5a\x59\x4c\x44\x70':'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64','\x6b\x68\x6e\x4c\x63':function(_0xa90882,_0x3c2d3d){return _0xa90882(_0x3c2d3d);},'\x68\x68\x46\x4c\x64':function(_0x34a6dc,_0x7765a2){return _0x34a6dc(_0x7765a2);},'\x68\x4f\x61\x4c\x66':_0x561a1e(0x2b7),'\x75\x4d\x61\x47\x4b':_0x561a1e(0x393),'\x56\x69\x62\x46\x66':function(_0x4564bb,_0x15fa2c){return _0x4564bb(_0x15fa2c);},'\x49\x44\x77\x4f\x6d':function(_0x54791a,_0x47c168){return _0x54791a(_0x47c168);},'\x75\x50\x68\x71\x4a':_0x561a1e(0x260),'\x45\x42\x6f\x4a\x63':_0x561a1e(0x1f2),'\x68\x6d\x66\x4f\x49':_0x561a1e(0x210),'\x4a\x64\x51\x54\x73':function(_0x172c59,_0x575ac5){return _0x172c59(_0x575ac5);},'\x46\x78\x4c\x6b\x69':function(_0x51dc66,_0x33f902){return _0x51dc66(_0x33f902);},'\x53\x50\x7a\x6d\x67':function(_0x5af4d0,_0xc67f9d){return _0x5af4d0(_0xc67f9d);},'\x56\x49\x43\x65\x59':function(_0x25b141,_0x1114b9){return _0x25b141(_0x1114b9);},'\x77\x4d\x4a\x7a\x56':function(_0xa3deff,_0xa044b1){return _0xa3deff(_0xa044b1);},'\x79\x6d\x61\x66\x52':function(_0x6ac1ec,_0x2748de){return _0x6ac1ec(_0x2748de);},'\x45\x47\x6c\x4b\x47':function(_0x2beb70,_0x3abdd6){return _0x2beb70(_0x3abdd6);},'\x44\x57\x58\x72\x54':function(_0x1623db,_0x243eb0){return _0x1623db(_0x243eb0);},'\x72\x57\x6c\x71\x74':'\x72\x65\x63\x65\x69\x76\x65\x64','\x47\x6f\x47\x6e\x45':function(_0x3c7418,_0x338a6e){return _0x3c7418(_0x338a6e);},'\x74\x76\x4e\x5a\x6e':_0x561a1e(0x1d3),'\x47\x6b\x47\x46\x68':_0x561a1e(0x3a4),'\x74\x77\x67\x41\x41':function(_0x5955aa,_0x2bbc36){return _0x5955aa(_0x2bbc36);},'\x4f\x73\x4f\x43\x68':function(_0x2c46c7,_0x1a9831){return _0x2c46c7(_0x1a9831);},'\x50\x46\x63\x52\x6c':function(_0xa5fdd8,_0x363df7){return _0xa5fdd8(_0x363df7);},'\x74\x79\x52\x4d\x4f':_0x561a1e(0x338),'\x66\x68\x42\x45\x5a':_0x561a1e(0x265)},_0x4b07d5=a0_0x411647,_0x48da1a={'\x52\x61\x77\x52\x52':function(_0xd4e672,_0x229847){const _0x3e5558=_0x561a1e;return _0x41029e[_0x3e5558(0x243)](_0xd4e672,_0x229847);},'\x67\x52\x59\x59\x4f':_0x561a1e(0x279),'\x50\x79\x73\x58\x6e':_0x561a1e(0x388),'\x71\x55\x6e\x63\x68':_0x4b07d5(0x1f1),'\x43\x52\x67\x50\x4d':_0x4b07d5(0x2a8),'\x4c\x4c\x73\x43\x64':_0x4b07d5(0x247),'\x53\x66\x4d\x76\x67':_0x4b07d5(0x236),'\x57\x73\x69\x58\x4f':_0x41029e[_0x561a1e(0x1ff)],'\x54\x55\x55\x41\x45':_0x41029e['\x51\x71\x52\x6d\x6e'](_0x4b07d5,0x1f4)};if(_0x48da1a[_0x4b07d5(0x1df)]('\x69\x64',_0x1b7071)&&_0x1b7071['\x69\x64']){const _0x5765ba=this[_0x41029e[_0x561a1e(0x21a)](_0x4b07d5,0x22b)][_0x4b07d5(0x1d9)](_0x1b7071['\x69\x64']);if(_0x5765ba){this[_0x4b07d5(0x22b)][_0x41029e['\x51\x71\x52\x6d\x6e'](_0x4b07d5,0x206)](_0x1b7071['\x69\x64']);if(_0x1b7071['\x74\x79\x70\x65']===_0x48da1a[_0x4b07d5(0x215)])_0x5765ba[_0x41029e[_0x561a1e(0x21a)](_0x4b07d5,0x1ff)](new Error(_0x1b7071[_0x4b07d5(0x24d)]));else _0x5765ba[_0x4b07d5(0x278)](_0x4b07d5(0x27a)in _0x1b7071?_0x1b7071[_0x561a1e(0x260)]:void 0x0);return;}}switch(_0x1b7071[_0x561a1e(0x2d5)]){case _0x48da1a[_0x4b07d5(0x265)]:this['\x68\x61\x6e\x64\x6c\x65\x72\x73'][_0x4b07d5(0x245)]?.(_0x1b7071[_0x41029e[_0x561a1e(0x21a)](_0x4b07d5,0x27a)][_0x41029e[_0x561a1e(0x2b8)]]);break;case _0x48da1a[_0x41029e[_0x561a1e(0x212)](_0x4b07d5,0x26c)]:this[_0x561a1e(0x1f2)][_0x41029e[_0x561a1e(0x212)](_0x4b07d5,0x276)]?.(_0x1b7071[_0x4b07d5(0x27a)][_0x41029e['\x68\x68\x46\x4c\x64'](_0x4b07d5,0x2b4)],_0x1b7071[_0x4b07d5(0x27a)][_0x41029e['\x68\x4f\x61\x4c\x66']]);break;case _0x561a1e(0x360):this[_0x41029e['\x51\x71\x52\x6d\x6e'](_0x4b07d5,0x225)]['\x6f\x6e\x52\x75\x6e\x74\x69\x6d\x65\x44\x69\x73\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64']?.(_0x1b7071[_0x561a1e(0x260)][_0x4b07d5(0x2b4)],_0x1b7071[_0x4b07d5(0x27a)][_0x4b07d5(0x21a)]);break;case _0x41029e[_0x561a1e(0x2a7)]:this[_0x4b07d5(0x225)][_0x4b07d5(0x26f)]?.(_0x1b7071[_0x41029e[_0x561a1e(0x2be)](_0x4b07d5,0x27a)][_0x4b07d5(0x1d5)],_0x1b7071[_0x41029e[_0x561a1e(0x234)](_0x4b07d5,0x27a)][_0x4b07d5(0x242)],_0x1b7071[_0x41029e[_0x561a1e(0x395)]][_0x561a1e(0x1f9)]);break;case _0x561a1e(0x249):{const _0x13791c=_0x1b7071[_0x41029e[_0x561a1e(0x395)]],_0x5dd511=_0x13791c[_0x4b07d5(0x2b4)]??_0x13791c[_0x4b07d5(0x250)];if(_0x5dd511)this['\x68\x61\x6e\x64\x6c\x65\x72\x73'][_0x4b07d5(0x279)]?.(_0x5dd511);else this[_0x41029e[_0x561a1e(0x1f4)]][_0x41029e['\x68\x6d\x66\x4f\x49']]?.(_0x48da1a[_0x41029e['\x51\x71\x52\x6d\x6e'](_0x4b07d5,0x1d2)],_0x48da1a[_0x4b07d5(0x2a6)]);break;}case _0x4b07d5(0x20e):this[_0x4b07d5(0x225)][_0x4b07d5(0x212)]?.(_0x1b7071['\x64\x61\x74\x61']);break;case _0x4b07d5(0x272):this[_0x4b07d5(0x225)][_0x41029e[_0x561a1e(0x2be)](_0x4b07d5,0x284)]?.(_0x1b7071[_0x41029e[_0x561a1e(0x267)](_0x4b07d5,0x27a)][_0x4b07d5(0x2ac)],_0x1b7071['\x64\x61\x74\x61'][_0x41029e[_0x561a1e(0x344)](_0x4b07d5,0x251)],_0x1b7071[_0x4b07d5(0x27a)][_0x4b07d5(0x275)]);break;case _0x41029e[_0x561a1e(0x287)](_0x4b07d5,0x1dd):this[_0x4b07d5(0x225)][_0x41029e['\x51\x71\x52\x6d\x6e'](_0x4b07d5,0x1e7)]?.(_0x1b7071[_0x4b07d5(0x27a)][_0x41029e[_0x561a1e(0x276)](_0x4b07d5,0x2ac)]);break;case _0x41029e[_0x561a1e(0x21a)](_0x4b07d5,0x28a):this[_0x41029e['\x56\x49\x43\x65\x59'](_0x4b07d5,0x2b1)]++,this[_0x4b07d5(0x23c)](_0x1b7071[_0x4b07d5(0x27a)]),this[_0x41029e[_0x561a1e(0x333)](_0x4b07d5,0x225)][_0x41029e['\x79\x6d\x61\x66\x52'](_0x4b07d5,0x246)]?.(_0x1b7071[_0x4b07d5(0x259)],_0x1b7071[_0x41029e['\x45\x47\x6c\x4b\x47'](_0x4b07d5,0x27a)],_0x1b7071[_0x41029e[_0x561a1e(0x238)](_0x4b07d5,0x1f5)]);break;case _0x4b07d5(0x288):this[_0x4b07d5(0x2a4)]=!![],this[_0x4b07d5(0x29f)]={'\x74\x6f\x74\x61\x6c':_0x1b7071[_0x4b07d5(0x262)],'\x72\x65\x63\x65\x69\x76\x65\x64':0x0},this[_0x41029e[_0x561a1e(0x234)](_0x4b07d5,0x225)][_0x4b07d5(0x24c)]?.(_0x1b7071[_0x4b07d5(0x262)]);break;case _0x4b07d5(0x1f7):this[_0x4b07d5(0x29f)][_0x41029e['\x72\x57\x6c\x71\x74']]=_0x1b7071[_0x41029e[_0x561a1e(0x276)](_0x4b07d5,0x20d)],this[_0x41029e[_0x561a1e(0x1f4)]][_0x41029e[_0x561a1e(0x267)](_0x4b07d5,0x2ad)]?.(_0x1b7071[_0x561a1e(0x2c3)],this[_0x41029e[_0x561a1e(0x301)](_0x4b07d5,0x29f)][_0x41029e[_0x561a1e(0x3a5)](_0x4b07d5,0x262)]);break;case _0x48da1a[_0x4b07d5(0x234)]:this[_0x41029e[_0x561a1e(0x3a0)]]=![],this[_0x4b07d5(0x225)][_0x41029e[_0x561a1e(0x287)](_0x4b07d5,0x2aa)]?.(_0x1b7071[_0x41029e[_0x561a1e(0x2b6)]]);break;case _0x48da1a[_0x41029e[_0x561a1e(0x1c7)](_0x4b07d5,0x215)]:this[_0x4b07d5(0x225)][_0x41029e[_0x561a1e(0x2bc)](_0x4b07d5,0x1fe)]?.(_0x1b7071[_0x41029e['\x50\x46\x63\x52\x6c'](_0x4b07d5,0x24d)],_0x1b7071[_0x4b07d5(0x2a5)]);break;case _0x48da1a[_0x561a1e(0x37a)]:this[_0x561a1e(0x1f2)][_0x4b07d5(0x277)]?.(_0x1b7071[_0x41029e[_0x561a1e(0x277)](_0x4b07d5,0x27a)][_0x4b07d5(0x243)]),this[_0x41029e[_0x561a1e(0x195)]]();break;case _0x4b07d5(0x230):this[_0x561a1e(0x1f2)][_0x4b07d5(0x2b8)]?.();break;case _0x48da1a[_0x41029e[_0x561a1e(0x21a)](_0x4b07d5,0x1f9)]:this['\x68\x61\x6e\x64\x6c\x65\x72\x73'][_0x41029e[_0x561a1e(0x238)](_0x4b07d5,0x25b)]?.(_0x1b7071[_0x41029e[_0x561a1e(0x395)]][_0x561a1e(0x1cb)],_0x1b7071[_0x4b07d5(0x27a)][_0x41029e['\x66\x68\x42\x45\x5a']],_0x1b7071['\x64\x61\x74\x61'][_0x4b07d5(0x253)]);break;}}[a0_0x39caff(0x2aa)](_0x2963f5){const _0x446eb9=a0_0x39caff,_0x379571={'\x52\x47\x42\x55\x51':function(_0x59a63a,_0x3b7a48){return _0x59a63a(_0x3b7a48);},'\x53\x64\x54\x74\x45':'\x63\x75\x72\x72\x65\x6e\x74\x45\x78\x65\x63\x75\x74\x69\x6f\x6e\x49\x64'},_0x27a5af=a0_0x411647,_0x26987f={'\x44\x4d\x6d\x41\x6b':_0x27a5af(0x2ba)};if(typeof _0x2963f5!==_0x26987f[_0x379571[_0x446eb9(0x228)](_0x27a5af,0x1dc)]||_0x2963f5===null)return;const _0x15158b=_0x2963f5;_0x15158b[_0x27a5af(0x29b)]&&(this[_0x379571[_0x446eb9(0x2f7)]]=_0x15158b[_0x446eb9(0x222)],this[_0x379571['\x52\x47\x42\x55\x51'](_0x27a5af,0x20b)]()),_0x15158b[_0x379571[_0x446eb9(0x228)](_0x27a5af,0x201)]===_0x27a5af(0x299)&&_0x15158b[_0x379571[_0x446eb9(0x228)](_0x27a5af,0x1d5)]&&(this[_0x379571['\x52\x47\x42\x55\x51'](_0x27a5af,0x21c)]=_0x15158b[_0x27a5af(0x1d5)],this[_0x27a5af(0x20b)]());}async[a0_0x411647(0x202)](){const _0x255e8b=a0_0x39caff,_0x36691f={'\x4f\x62\x44\x55\x57':function(_0x44eed6,_0x4e36e5){return _0x44eed6(_0x4e36e5);},'\x4b\x6d\x49\x4e\x68':_0x255e8b(0x1a7),'\x46\x71\x46\x6b\x68':_0x255e8b(0x31c)},_0x4873ef=a0_0x411647,_0x8d16fc={'\x4c\x66\x4c\x70\x64':_0x4873ef(0x254)};if(!this[_0x4873ef(0x222)][_0x36691f['\x4f\x62\x44\x55\x57'](_0x4873ef,0x237)]||this[_0x4873ef(0x207)])return;this[_0x36691f['\x4b\x6d\x49\x4e\x68']]=!![];try{const _0x237688=await this[_0x4873ef(0x222)][_0x255e8b(0x290)]();this[_0x4873ef(0x1e2)](_0x237688[_0x4873ef(0x24a)]);}catch(_0x15256d){this[_0x4873ef(0x225)][_0x4873ef(0x1fe)]?.(_0x36691f['\x46\x71\x46\x6b\x68']+(_0x15256d instanceof Error?_0x15256d[_0x255e8b(0x280)]:String(_0x15256d)),_0x8d16fc[_0x4873ef(0x2b3)]);}finally{this[_0x255e8b(0x1a7)]=![];}}[a0_0x411647(0x2a9)](_0x475331){const _0x25210d=a0_0x39caff,_0x5ed22e={'\x5a\x75\x78\x6b\x7a':_0x25210d(0x247),'\x6b\x6d\x53\x6f\x45':function(_0x490f15,_0x4b5279){return _0x490f15(_0x4b5279);}},_0x124e10=a0_0x411647,_0x19b9a5={'\x41\x53\x45\x62\x6c':function(_0x4a2576,_0x52f7a1){return _0x4a2576===_0x52f7a1;}};_0x19b9a5[_0x124e10(0x217)](this['\x77\x73']?.[_0x5ed22e['\x5a\x75\x78\x6b\x7a']],WebSocket[_0x25210d(0x26c)])&&(this['\x77\x73'][_0x124e10(0x2a9)](JSON[_0x124e10(0x270)](_0x475331)),this[_0x5ed22e[_0x25210d(0x1b1)](_0x124e10,0x231)]++);}['\x73\x65\x6e\x64\x57\x69\x74\x68\x52\x65\x73\x70\x6f\x6e\x73\x65'](_0x401967){const _0x20b931=a0_0x39caff,_0x46d57d={'\x54\x65\x6c\x6d\x70':function(_0x148db1,_0x103555){return _0x148db1(_0x103555);},'\x51\x72\x59\x71\x7a':function(_0x48b4b0,_0x1d60f2){return _0x48b4b0(_0x1d60f2);},'\x49\x65\x6f\x6d\x68':function(_0x36a3de,_0x4e8500){return _0x36a3de+_0x4e8500;},'\x56\x77\x50\x43\x47':function(_0x25deed,_0x138d05){return _0x25deed(_0x138d05);},'\x64\x4b\x46\x45\x6a':function(_0x31a442,_0x5b0c12){return _0x31a442(_0x5b0c12);}},_0x58be4e={'\x71\x73\x79\x62\x51':_0x20b931(0x398)};return new Promise((_0x581c96,_0x6008ad)=>{const _0x54371b=_0x20b931,_0x58cf99=a0_0x5f18,_0x43032f=_0x46d57d['\x49\x65\x6f\x6d\x68'](_0x58cf99(0x248),++this[_0x58cf99(0x219)]);this[_0x58cf99(0x22b)][_0x46d57d['\x56\x77\x50\x43\x47'](_0x58cf99,0x267)](_0x43032f,{'\x72\x65\x73\x6f\x6c\x76\x65':_0x581c96,'\x72\x65\x6a\x65\x63\x74':_0x6008ad}),setTimeout(()=>{const _0x1eff8d=a0_0x5735,_0xe12a86=_0x58cf99;this[_0x46d57d[_0x1eff8d(0x38b)](_0xe12a86,0x22b)][_0xe12a86(0x296)](_0x43032f)&&(this['\x70\x65\x6e\x64\x69\x6e\x67\x43\x61\x6c\x6c\x62\x61\x63\x6b\x73'][_0xe12a86(0x206)](_0x43032f),_0x46d57d[_0x1eff8d(0x350)](_0x6008ad,new Error(_0x58be4e[_0x1eff8d(0x2e6)])));},0x2710),this[_0x46d57d[_0x54371b(0x250)](_0x58cf99,0x2a9)]({..._0x401967,'\x69\x64':_0x43032f});});}[a0_0x411647(0x1ec)](){const _0x333b7c=a0_0x39caff,_0x41ad62={'\x6b\x4a\x46\x58\x63':_0x333b7c(0x391),'\x61\x42\x61\x4f\x4c':function(_0x168278,_0x1acd6b){return _0x168278(_0x1acd6b);},'\x73\x4d\x45\x78\x59':'\x63\x75\x72\x72\x65\x6e\x74\x45\x78\x65\x63\x75\x74\x69\x6f\x6e\x49\x64','\x78\x47\x49\x4a\x4d':function(_0x291771,_0x13e07a){return _0x291771(_0x13e07a);},'\x64\x41\x64\x71\x4e':function(_0x3e4e37,_0x3888a7){return _0x3e4e37(_0x3888a7);},'\x44\x4f\x6f\x6f\x53':function(_0x31b5af,_0x43d3a3){return _0x31b5af(_0x43d3a3);}},_0x21f9fd=a0_0x411647,_0xc6c3bb=this[_0x21f9fd(0x222)][_0x21f9fd(0x200)],_0x1e3aa0={};if(this[_0x41ad62[_0x333b7c(0x2fe)]])_0x1e3aa0[_0x21f9fd(0x260)]=this[_0x41ad62[_0x333b7c(0x1c9)](_0x21f9fd,0x260)];if(this[_0x41ad62[_0x333b7c(0x392)]])_0x1e3aa0[_0x41ad62[_0x333b7c(0x1bc)](_0x21f9fd,0x29b)]=this[_0x41ad62[_0x333b7c(0x331)](_0x21f9fd,0x287)];if(this[_0x21f9fd(0x21c)])_0x1e3aa0[_0x21f9fd(0x1d5)]=this[_0x21f9fd(0x21c)];const _0x6d0f00=Object[_0x21f9fd(0x256)](_0x1e3aa0)[_0x41ad62[_0x333b7c(0x2f3)](_0x21f9fd,0x233)]>0x0;_0x6d0f00&&(this[_0x41ad62[_0x333b7c(0x331)](_0x21f9fd,0x2a4)]=!![],this[_0x21f9fd(0x29f)]={'\x74\x6f\x74\x61\x6c':0x0,'\x72\x65\x63\x65\x69\x76\x65\x64':0x0}),this[_0x21f9fd(0x2a9)]({'\x74\x79\x70\x65':_0x21f9fd(0x273),'\x63\x68\x61\x6e\x6e\x65\x6c\x73':_0xc6c3bb,..._0x6d0f00?{'\x72\x65\x70\x6c\x61\x79\x4f\x70\x74\x69\x6f\x6e\x73':_0x1e3aa0}:{}});}[a0_0x411647(0x291)](){const _0x3b97eb=a0_0x39caff,_0x1e8338={'\x6a\x68\x6a\x59\x44':function(_0x1128c3,_0xd9f934){return _0x1128c3(_0xd9f934);},'\x52\x5a\x4a\x5a\x5a':function(_0x1897ab,_0x71ad62){return _0x1897ab(_0x71ad62);}},_0x48c4e3=a0_0x411647,_0x369244={'\x64\x58\x49\x6e\x6d':function(_0x58ff5c,_0x5b30dd,_0x17ad32){return _0x58ff5c(_0x5b30dd,_0x17ad32);}};this[_0x3b97eb(0x2ba)](),this[_0x3b97eb(0x253)]=_0x369244[_0x1e8338[_0x3b97eb(0x37e)](_0x48c4e3,0x289)](setInterval,()=>{const _0x333866=_0x48c4e3;this[_0x333866(0x25c)]();},this[_0x1e8338['\x52\x5a\x4a\x5a\x5a'](_0x48c4e3,0x222)][_0x48c4e3(0x2b7)]);}[a0_0x39caff(0x2ba)](){const _0xcd71d3=a0_0x39caff,_0x5137b5={'\x51\x6a\x63\x69\x4f':function(_0x3eaffd,_0x342000){return _0x3eaffd(_0x342000);}},_0xd72fd6=a0_0x411647,_0x1d06df={'\x6b\x52\x48\x6e\x68':function(_0x18dc14,_0x192296){return _0x18dc14(_0x192296);}};this[_0xd72fd6(0x1f8)]&&(_0x1d06df[_0xd72fd6(0x2a7)](clearInterval,this[_0x5137b5[_0xcd71d3(0x248)](_0xd72fd6,0x1f8)]),this[_0xcd71d3(0x253)]=null);}[a0_0x411647(0x25c)](){const _0x26d409=a0_0x39caff,_0x14766f={'\x7a\x6b\x78\x7a\x6f':function(_0x2c146c,_0x30c843){return _0x2c146c(_0x30c843);},'\x77\x75\x77\x75\x47':function(_0x396a9a,_0x351e51){return _0x396a9a(_0x351e51);},'\x74\x4e\x53\x74\x7a':function(_0x5a5397,_0x4be9fd){return _0x5a5397(_0x4be9fd);},'\x48\x42\x72\x42\x68':function(_0x242fb8,_0x351107){return _0x242fb8(_0x351107);},'\x7a\x66\x46\x48\x77':function(_0x36bf11,_0x153f56){return _0x36bf11(_0x153f56);},'\x66\x64\x4a\x6e\x47':function(_0x5efe49,_0x595b12){return _0x5efe49(_0x595b12);},'\x54\x6f\x47\x49\x4d':function(_0x4040d0,_0x2b192b){return _0x4040d0(_0x2b192b);},'\x54\x78\x58\x5a\x67':function(_0x5bfc08,_0x125a0f){return _0x5bfc08(_0x125a0f);},'\x52\x42\x45\x50\x63':_0x26d409(0x224),'\x66\x70\x71\x74\x56':_0x26d409(0x19e),'\x41\x78\x4f\x65\x46':function(_0x362fbd,_0x159e8b){return _0x362fbd(_0x159e8b);}},_0x160860=a0_0x411647,_0x4ea2c8={'\x49\x51\x4b\x45\x78':function(_0x5ba806,_0x2357fa){return _0x5ba806-_0x2357fa;},'\x72\x65\x6a\x51\x70':_0x14766f[_0x26d409(0x32c)](_0x160860,0x1fd)};if(this['\x77\x73']?.[_0x26d409(0x247)]!==WebSocket[_0x14766f['\x77\x75\x77\x75\x47'](_0x160860,0x203)])return;const _0x208650=this[_0x160860(0x1d8)]?_0x4ea2c8[_0x160860(0x1f3)](Date[_0x14766f[_0x26d409(0x21d)](_0x160860,0x228)](),this[_0x160860(0x1d8)]):0x0;if(this[_0x160860(0x1d8)]&&_0x208650>this[_0x14766f[_0x26d409(0x304)](_0x160860,0x222)][_0x160860(0x1da)]){this[_0x160860(0x238)]++,this[_0x14766f['\x66\x64\x4a\x6e\x47'](_0x160860,0x224)]();if(this[_0x160860(0x238)]>=this[_0x26d409(0x2d4)][_0x160860(0x218)]){this['\x77\x73']?.[_0x14766f[_0x26d409(0x1a6)](_0x160860,0x23d)](0xfa0,_0x26d409(0x1fd));return;}}this[_0x160860(0x29c)]=Date[_0x14766f[_0x26d409(0x35f)](_0x160860,0x228)](),this[_0x14766f['\x52\x42\x45\x50\x63']]=Date[_0x14766f['\x7a\x6b\x78\x7a\x6f'](_0x160860,0x228)](),this[_0x14766f[_0x26d409(0x1d7)]]({'\x74\x79\x70\x65':_0x4ea2c8[_0x26d409(0x1b9)]}),this[_0x14766f[_0x26d409(0x2dd)](_0x160860,0x1f6)]=setTimeout(()=>{const _0x4917cd=_0x26d409,_0x38f0d7=_0x160860;this[_0x14766f[_0x4917cd(0x2b2)](_0x38f0d7,0x238)]++,this[_0x14766f[_0x4917cd(0x33b)](_0x38f0d7,0x224)]();},this[_0x26d409(0x2d4)][_0x14766f[_0x26d409(0x32c)](_0x160860,0x1da)]);}[a0_0x411647(0x2a1)](){const _0x19abdd=a0_0x39caff,_0x52f0bd={'\x66\x46\x78\x48\x79':function(_0x182357,_0x39ed85){return _0x182357(_0x39ed85);}},_0x40c9ea=a0_0x411647;this[_0x52f0bd[_0x19abdd(0x367)](_0x40c9ea,0x1f6)]&&(clearTimeout(this[_0x19abdd(0x325)]),this[_0x40c9ea(0x1f6)]=null);}[a0_0x411647(0x20a)](){const _0x270fd6=a0_0x39caff,_0x55bbc4={'\x72\x73\x59\x76\x45':function(_0x1dcdf8,_0x453810){return _0x1dcdf8(_0x453810);},'\x47\x67\x72\x6d\x6d':_0x270fd6(0x375),'\x67\x77\x59\x65\x59':'\x6d\x61\x78\x52\x65\x63\x6f\x6e\x6e\x65\x63\x74\x44\x65\x6c\x61\x79\x4d\x73','\x49\x51\x68\x45\x4d':function(_0x2ecdf7,_0x5c81c0){return _0x2ecdf7*_0x5c81c0;},'\x79\x54\x41\x59\x45':function(_0x3fcee4,_0x105248){return _0x3fcee4(_0x105248);},'\x77\x4f\x71\x75\x49':_0x270fd6(0x2e5),'\x55\x4d\x4a\x71\x63':function(_0x2189df,_0x2265c4,_0x32228d){return _0x2189df(_0x2265c4,_0x32228d);}},_0x10d221=a0_0x411647,_0x342c92={'\x50\x58\x6c\x5a\x61':function(_0x4afb41,_0x40882e){return _0x4afb41*_0x40882e;},'\x61\x65\x52\x43\x41':function(_0x2c8e7b,_0xa1cb2b){return _0x2c8e7b-_0xa1cb2b;}};if(this[_0x55bbc4[_0x270fd6(0x209)](_0x10d221,0x1e8)])return;this[_0x55bbc4['\x47\x67\x72\x6d\x6d']]++;const _0x3c87d1=Math[_0x10d221(0x264)](this[_0x10d221(0x222)][_0x10d221(0x295)]*0x2**(this[_0x10d221(0x24e)]-0x1),this[_0x55bbc4['\x72\x73\x59\x76\x45'](_0x10d221,0x222)][_0x55bbc4[_0x270fd6(0x341)]]),_0x2adb01=_0x342c92['\x50\x58\x6c\x5a\x61'](_0x55bbc4['\x49\x51\x68\x45\x4d'](_0x3c87d1,0.3),_0x342c92[_0x10d221(0x29a)](_0x342c92[_0x55bbc4['\x79\x54\x41\x59\x45'](_0x10d221,0x27d)](Math[_0x55bbc4[_0x270fd6(0x376)]](),0x2),0x1));this[_0x55bbc4[_0x270fd6(0x30d)](_0x10d221,0x1e8)]=_0x55bbc4[_0x270fd6(0x1eb)](setTimeout,()=>{const _0xb0762d=_0x270fd6,_0x324f35=_0x10d221;this[_0xb0762d(0x2f4)]=null,this[_0x324f35(0x29d)]();},_0x3c87d1+_0x2adb01);}[a0_0x411647(0x1ed)](){const _0x188187=a0_0x39caff,_0x23906c={'\x6f\x54\x6b\x75\x6a':_0x188187(0x1f0),'\x4a\x64\x52\x43\x41':'\x72\x65\x63\x6f\x6e\x6e\x65\x63\x74\x54\x69\x6d\x65\x72','\x74\x63\x56\x59\x51':function(_0x1aee95,_0x22b5da){return _0x1aee95(_0x22b5da);},'\x72\x4b\x56\x6b\x74':function(_0x28bc4f,_0x239eb8){return _0x28bc4f(_0x239eb8);},'\x73\x79\x45\x45\x6a':function(_0x4d14cd,_0x192b21){return _0x4d14cd(_0x192b21);},'\x49\x6f\x6f\x61\x4c':_0x188187(0x2e8)},_0xda7bda=a0_0x411647,_0x169169={'\x76\x74\x73\x4b\x4c':_0x23906c[_0x188187(0x349)]};this[_0xda7bda(0x255)](),this['\x63\x6c\x65\x61\x72\x50\x6f\x6e\x67\x54\x69\x6d\x65\x6f\x75\x74'](),this[_0x23906c['\x4a\x64\x52\x43\x41']]&&(_0x23906c['\x74\x63\x56\x59\x51'](clearTimeout,this[_0x23906c[_0x188187(0x1c6)](_0xda7bda,0x1e8)]),this[_0x23906c['\x73\x79\x45\x45\x6a'](_0xda7bda,0x1e8)]=null);for(const [_0x33477,_0x348c22]of this[_0x23906c[_0x188187(0x352)](_0xda7bda,0x22b)]){_0x348c22[_0x23906c['\x74\x63\x56\x59\x51'](_0xda7bda,0x1ff)](new Error(_0x169169[_0xda7bda(0x2a3)])),this[_0x23906c['\x49\x6f\x6f\x61\x4c']][_0xda7bda(0x206)](_0x33477);}}[a0_0x411647(0x204)](_0x38919d,_0x1d818e){const _0x348650=a0_0x39caff,_0x48ca8b={'\x4d\x54\x7a\x75\x4c':function(_0x187fbe,_0x44cbe3){return _0x187fbe>_0x44cbe3;},'\x6c\x53\x68\x73\x69':function(_0x1c6b89,_0x31912b){return _0x1c6b89(_0x31912b);},'\x41\x58\x76\x46\x6d':function(_0x268ffe,_0x38b4bd){return _0x268ffe/_0x38b4bd;},'\x4b\x6e\x5a\x61\x53':function(_0x13c49a,_0x2171a4){return _0x13c49a(_0x2171a4);},'\x55\x74\x7a\x4a\x52':function(_0x2ab027,_0x604d8f){return _0x2ab027(_0x604d8f);}},_0x485978=a0_0x411647,_0x30ba6b=_0x48ca8b[_0x348650(0x2ce)](this[_0x48ca8b[_0x348650(0x2f2)](_0x485978,0x20f)][_0x48ca8b[_0x348650(0x2f2)](_0x485978,0x233)],0x0)?_0x48ca8b['\x41\x58\x76\x46\x6d'](this[_0x485978(0x20f)][_0x48ca8b[_0x348650(0x2f2)](_0x485978,0x211)]((_0x3ea3ce,_0x4a9f23)=>_0x3ea3ce+_0x4a9f23,0x0),this[_0x48ca8b['\x6c\x53\x68\x73\x69'](_0x485978,0x20f)][_0x48ca8b[_0x348650(0x387)](_0x485978,0x233)]):null;this[_0x48ca8b[_0x348650(0x378)](_0x485978,0x1ef)]={...this[_0x485978(0x1ef)],'\x6c\x61\x73\x74\x50\x69\x6e\x67\x4c\x61\x74\x65\x6e\x63\x79\x4d\x73':_0x38919d,'\x61\x76\x67\x50\x69\x6e\x67\x4c\x61\x74\x65\x6e\x63\x79\x4d\x73':_0x30ba6b,'\x6d\x69\x73\x73\x65\x64\x50\x6f\x6e\x67\x43\x6f\x75\x6e\x74':this[_0x485978(0x238)],'\x6c\x61\x73\x74\x50\x6f\x6e\x67\x41\x74':_0x1d818e},this[_0x485978(0x224)]();}[a0_0x411647(0x224)](){const _0x57c473=a0_0x39caff,_0x14bf49={'\x48\x50\x63\x47\x43':function(_0x35bd6d,_0x4d7276){return _0x35bd6d(_0x4d7276);},'\x65\x69\x73\x49\x49':function(_0x5bf0f7,_0x582850){return _0x5bf0f7(_0x582850);}},_0x3c9111=a0_0x411647,_0x220ea5={'\x71\x48\x52\x51\x58':function(_0x4405da,_0x26f9b9){return _0x4405da===_0x26f9b9;},'\x64\x6e\x79\x48\x44':function(_0x207428,_0x15e232,_0x3e9da6){return _0x207428(_0x15e232,_0x3e9da6);}},_0x5cb09b=_0x220ea5[_0x14bf49[_0x57c473(0x31f)](_0x3c9111,0x23f)](this[_0x57c473(0x2df)],_0x14bf49[_0x57c473(0x19a)](_0x3c9111,0x2b9)),_0x147d93=_0x220ea5[_0x57c473(0x32f)](calculateConnectionQuality,this[_0x3c9111(0x1ef)],_0x5cb09b);this[_0x3c9111(0x1ef)][_0x14bf49[_0x57c473(0x31f)](_0x3c9111,0x292)]!==_0x147d93&&(this[_0x3c9111(0x1ef)]={...this[_0x14bf49['\x48\x50\x63\x47\x43'](_0x3c9111,0x1ef)],'\x71\x75\x61\x6c\x69\x74\x79':_0x147d93},this[_0x14bf49['\x65\x69\x73\x49\x49'](_0x3c9111,0x225)][_0x3c9111(0x1de)]?.(this[_0x14bf49[_0x57c473(0x19a)](_0x3c9111,0x1ef)]));}[a0_0x411647(0x22a)](){const _0x44f638=a0_0x39caff,_0x1b8b29={'\x5a\x51\x6b\x67\x67':function(_0x1c19c3,_0x3d2e49){return _0x1c19c3(_0x3d2e49);},'\x49\x54\x79\x50\x54':_0x44f638(0x25e)},_0x5a56c2=a0_0x411647,_0x20498f={'\x53\x61\x71\x6b\x61':function(_0x24a62f,_0xbeed26){return _0x24a62f+_0xbeed26;}},_0x3effb4=Date[_0x1b8b29['\x5a\x51\x6b\x67\x67'](_0x5a56c2,0x228)]();this[_0x5a56c2(0x1ef)]={...this[_0x5a56c2(0x1ef)],'\x72\x65\x63\x6f\x6e\x6e\x65\x63\x74\x43\x6f\x75\x6e\x74':_0x20498f[_0x1b8b29[_0x44f638(0x24b)](_0x5a56c2,0x28b)](this[_0x1b8b29[_0x44f638(0x2eb)]][_0x5a56c2(0x21b)],0x1),'\x6c\x61\x73\x74\x52\x65\x63\x6f\x6e\x6e\x65\x63\x74\x41\x74':_0x3effb4},this[_0x44f638(0x207)]=[],this[_0x5a56c2(0x224)]();}[a0_0x39caff(0x1fa)](){const _0x494d29=a0_0x39caff,_0x2b81c6={'\x5a\x76\x52\x58\x6d':_0x494d29(0x1a8),'\x4c\x55\x77\x74\x6b':function(_0x1ec26b,_0x227b52){return _0x1ec26b(_0x227b52);},'\x79\x62\x48\x4d\x46':_0x494d29(0x3a7),'\x65\x47\x77\x56\x50':_0x494d29(0x38a),'\x73\x4c\x53\x67\x68':function(_0x4c8f53,_0x3481b3){return _0x4c8f53+_0x3481b3;},'\x70\x57\x5a\x49\x53':function(_0xd0bea1,_0x178e81){return _0xd0bea1(_0x178e81);},'\x75\x42\x48\x48\x57':function(_0x29f63b,_0x2a3e3d){return _0x29f63b(_0x2a3e3d);},'\x63\x78\x6e\x59\x51':function(_0x52fd83,_0x4e4806){return _0x52fd83+_0x4e4806;},'\x63\x6a\x70\x5a\x46':function(_0x997082,_0x3aac39){return _0x997082(_0x3aac39);}},_0x180f87=a0_0x411647,_0x244346={'\x7a\x4e\x6d\x66\x53':function(_0x2f00e3,_0xf84f75){return _0x2f00e3+_0xf84f75;}};if(!this[_0x180f87(0x222)][_0x2b81c6[_0x494d29(0x2f1)]])return;const _0x1705da=this[_0x180f87(0x222)][_0x2b81c6[_0x494d29(0x1b3)](_0x180f87,0x298)];try{this['\x6c\x61\x73\x74\x45\x76\x65\x6e\x74\x49\x64']=this[_0x180f87(0x222)][_0x2b81c6[_0x494d29(0x2f5)]][_0x2b81c6[_0x494d29(0x1ca)]](_0x2b81c6['\x73\x4c\x53\x67\x68'](_0x1705da,STORAGE_KEYS[_0x494d29(0x391)])),this[_0x494d29(0x19b)]=this['\x63\x6f\x6e\x66\x69\x67'][_0x494d29(0x3a7)][_0x2b81c6[_0x494d29(0x1b2)](_0x180f87,0x1fc)](_0x244346[_0x180f87(0x1fa)](_0x1705da,STORAGE_KEYS[_0x2b81c6[_0x494d29(0x1b3)](_0x180f87,0x29b)])),this[_0x2b81c6['\x75\x42\x48\x48\x57'](_0x180f87,0x21c)]=this[_0x180f87(0x222)][_0x180f87(0x27f)][_0x180f87(0x1fc)](_0x2b81c6['\x63\x78\x6e\x59\x51'](_0x1705da,STORAGE_KEYS[_0x2b81c6['\x63\x6a\x70\x5a\x46'](_0x180f87,0x1d5)]));}catch{}}[a0_0x411647(0x20b)](){const _0x445819=a0_0x39caff,_0x2ed619={'\x63\x66\x65\x66\x4f':function(_0x2404a8,_0x2ac1af){return _0x2404a8(_0x2ac1af);},'\x41\x4b\x44\x7a\x4d':'\x6c\x61\x73\x74\x45\x76\x65\x6e\x74\x49\x64','\x66\x4c\x68\x4e\x77':function(_0x1ebaf5,_0x190955){return _0x1ebaf5(_0x190955);},'\x44\x67\x6f\x70\x73':function(_0x5da108,_0x5bc33b){return _0x5da108(_0x5bc33b);},'\x78\x50\x6c\x69\x42':_0x445819(0x19b),'\x70\x4b\x6f\x4b\x56':function(_0x445bd7,_0x248338){return _0x445bd7+_0x248338;},'\x4c\x75\x44\x6a\x75':function(_0x2a83cc,_0x3ca695){return _0x2a83cc(_0x3ca695);}},_0x14ca41=a0_0x411647,_0x275d04={'\x61\x63\x55\x67\x44':function(_0x45e7a9,_0x471907){return _0x45e7a9+_0x471907;}};if(!this[_0x14ca41(0x222)][_0x2ed619['\x63\x66\x65\x66\x4f'](_0x14ca41,0x281)])return;const _0x328701=this[_0x2ed619[_0x445819(0x1a1)](_0x14ca41,0x222)][_0x445819(0x26a)];try{if(this[_0x2ed619[_0x445819(0x1a1)](_0x14ca41,0x260)])this[_0x14ca41(0x222)][_0x2ed619[_0x445819(0x1a1)](_0x14ca41,0x27f)][_0x14ca41(0x240)](_0x328701+STORAGE_KEYS[_0x2ed619[_0x445819(0x39c)]],this[_0x2ed619[_0x445819(0x1a1)](_0x14ca41,0x260)]);if(this[_0x2ed619[_0x445819(0x36a)](_0x14ca41,0x287)])this[_0x2ed619['\x44\x67\x6f\x70\x73'](_0x14ca41,0x222)][_0x445819(0x3a7)][_0x14ca41(0x240)](_0x275d04[_0x14ca41(0x2b2)](_0x328701,STORAGE_KEYS[_0x14ca41(0x29b)]),this[_0x2ed619[_0x445819(0x27e)]]);if(this[_0x14ca41(0x21c)])this[_0x14ca41(0x222)][_0x14ca41(0x27f)][_0x445819(0x2c4)](_0x2ed619['\x70\x4b\x6f\x4b\x56'](_0x328701,STORAGE_KEYS[_0x2ed619['\x4c\x75\x44\x6a\x75'](_0x14ca41,0x1d5)]),this[_0x2ed619[_0x445819(0x27a)](_0x14ca41,0x21c)]);}catch{}}};function a0_0x5ac7(){const _0x5200e0=a0_0x39caff,_0x3d7b55={'\x46\x6f\x42\x41\x57':_0x5200e0(0x28e),'\x78\x4d\x64\x4f\x4e':_0x5200e0(0x335),'\x74\x53\x61\x63\x77':_0x5200e0(0x2c1),'\x43\x63\x6f\x6f\x57':_0x5200e0(0x2d7),'\x70\x4c\x59\x49\x77':_0x5200e0(0x2a6),'\x61\x6c\x43\x78\x6b':'\x75\x68\x76\x4b\x45\x4d\x6d','\x44\x4e\x51\x79\x4c':'\x72\x65\x31\x54\x71\x77\x53','\x61\x47\x7a\x63\x74':'\x43\x67\x39\x59\x44\x63\x35\x4a\x42\x67\x39\x5a\x7a\x77\x71','\x65\x73\x6b\x4e\x55':_0x5200e0(0x1ba),'\x6b\x52\x56\x76\x4b':_0x5200e0(0x285),'\x73\x51\x6f\x48\x7a':_0x5200e0(0x3ab),'\x48\x74\x50\x79\x54':_0x5200e0(0x2fd),'\x71\x5a\x6e\x4a\x4c':'\x7a\x32\x76\x30\x71\x32\x39\x55\x42\x4d\x76\x4a\x44\x67\x4c\x56\x42\x4b\x31\x4c\x44\x68\x6a\x50\x79\x33\x6d','\x56\x70\x5a\x73\x62':_0x5200e0(0x3a1),'\x54\x6f\x67\x74\x4c':'\x7a\x67\x4c\x5a\x43\x67\x66\x30\x79\x32\x48\x6e\x7a\x78\x6e\x5a\x79\x77\x44\x4c','\x63\x76\x4e\x58\x65':'\x79\x32\x39\x55\x42\x4d\x76\x4a\x44\x67\x4c\x56\x42\x4b\x31\x4c\x44\x68\x6a\x50\x79\x33\x6d','\x49\x71\x48\x75\x4e':'\x41\x78\x6e\x64\x42\x32\x35\x55\x7a\x77\x6e\x30\x7a\x77\x71','\x55\x50\x50\x5a\x5a':_0x5200e0(0x1fb),'\x6c\x79\x53\x62\x79':_0x5200e0(0x33d),'\x72\x41\x4a\x6c\x4c':_0x5200e0(0x1f1),'\x75\x7a\x79\x42\x77':_0x5200e0(0x2d9),'\x75\x6f\x50\x66\x65':_0x5200e0(0x297),'\x69\x77\x55\x6c\x76':_0x5200e0(0x294),'\x69\x53\x64\x47\x47':_0x5200e0(0x33f),'\x4f\x73\x68\x62\x74':_0x5200e0(0x1f5),'\x77\x6e\x6b\x69\x46':_0x5200e0(0x199),'\x49\x68\x6a\x65\x62':'\x43\x32\x6e\x4f\x7a\x77\x72\x31\x42\x67\x76\x73\x7a\x77\x6e\x56\x42\x4d\x35\x4c\x79\x33\x71','\x71\x41\x78\x62\x49':_0x5200e0(0x257),'\x64\x4c\x6d\x67\x69':_0x5200e0(0x2a0),'\x55\x57\x51\x47\x48':'\x7a\x31\x6a\x7a\x77\x75\x38','\x65\x4a\x66\x5a\x6c':_0x5200e0(0x220),'\x4e\x56\x4f\x49\x43':_0x5200e0(0x1da),'\x61\x75\x52\x6e\x4f':_0x5200e0(0x23a),'\x73\x70\x66\x6f\x5a':_0x5200e0(0x21c),'\x74\x45\x65\x5a\x69':_0x5200e0(0x1dc),'\x51\x4b\x44\x4f\x71':_0x5200e0(0x1cf),'\x67\x59\x63\x59\x6f':_0x5200e0(0x1af),'\x49\x56\x4a\x68\x47':_0x5200e0(0x235),'\x6e\x6c\x74\x6f\x50':_0x5200e0(0x2fa),'\x55\x58\x62\x52\x58':'\x44\x78\x62\x4b\x79\x78\x72\x4c\x71\x32\x39\x55\x42\x4d\x76\x4a\x44\x67\x4c\x56\x42\x4c\x66\x31\x79\x77\x58\x50\x44\x68\x4b','\x7a\x6e\x41\x55\x41':_0x5200e0(0x275),'\x7a\x55\x57\x67\x4e':_0x5200e0(0x38e),'\x52\x63\x68\x6b\x75':_0x5200e0(0x198),'\x72\x67\x74\x66\x47':_0x5200e0(0x362),'\x73\x55\x73\x69\x75':_0x5200e0(0x31b),'\x41\x42\x7a\x63\x41':_0x5200e0(0x2b3),'\x70\x77\x55\x47\x4b':_0x5200e0(0x244),'\x45\x5a\x50\x5a\x6c':'\x75\x4d\x66\x53\x79\x32\x57','\x55\x46\x56\x72\x65':_0x5200e0(0x31d),'\x65\x45\x59\x71\x61':_0x5200e0(0x373),'\x51\x50\x6e\x42\x77':_0x5200e0(0x1a4),'\x67\x6f\x67\x44\x76':_0x5200e0(0x386),'\x6f\x44\x75\x71\x41':_0x5200e0(0x355),'\x56\x74\x76\x54\x6c':'\x42\x32\x35\x64\x42\x32\x35\x55\x7a\x77\x6e\x30','\x68\x43\x6a\x71\x74':_0x5200e0(0x204),'\x4f\x6a\x6b\x6a\x6c':_0x5200e0(0x1ef),'\x56\x47\x79\x64\x73':_0x5200e0(0x2da),'\x49\x54\x4c\x65\x6a':'\x79\x32\x39\x55\x42\x4d\x76\x4a\x44\x67\x4c\x55\x7a\x57','\x52\x69\x6e\x52\x4b':_0x5200e0(0x296),'\x56\x44\x4c\x66\x64':'\x43\x68\x6a\x56\x44\x67\x39\x4a\x42\x32\x57','\x48\x77\x41\x61\x54':'\x42\x77\x66\x34\x75\x4d\x76\x4a\x42\x32\x35\x55\x7a\x77\x6e\x30\x72\x67\x76\x53\x79\x78\x4c\x6e\x43\x57','\x6c\x70\x4b\x77\x55':_0x5200e0(0x1c0),'\x44\x62\x4d\x56\x52':_0x5200e0(0x205),'\x6a\x68\x6f\x64\x62':_0x5200e0(0x25f),'\x58\x49\x6c\x5a\x4b':'\x42\x32\x35\x63\x79\x77\x6e\x52\x43\x68\x6a\x4c\x43\x33\x6e\x31\x43\x4d\x76\x78\x79\x78\x6a\x55\x41\x77\x35\x4e','\x68\x42\x6f\x53\x79':_0x5200e0(0x246),'\x67\x58\x6c\x4d\x69':'\x43\x4b\x50\x54\x43\x65\x4f','\x77\x43\x54\x75\x6e':'\x43\x33\x72\x48\x44\x67\x75','\x55\x75\x48\x59\x78':_0x5200e0(0x2c7),'\x4b\x52\x42\x55\x65':_0x5200e0(0x36b),'\x48\x72\x72\x6e\x6c':_0x5200e0(0x30e),'\x70\x73\x47\x6c\x56':_0x5200e0(0x1c8),'\x56\x53\x55\x4b\x71':_0x5200e0(0x25d),'\x73\x78\x57\x72\x4c':_0x5200e0(0x313),'\x69\x63\x56\x64\x49':_0x5200e0(0x321),'\x63\x49\x47\x63\x6a':_0x5200e0(0x2cb),'\x4f\x75\x46\x73\x6b':_0x5200e0(0x259),'\x71\x65\x75\x46\x65':_0x5200e0(0x2b4),'\x61\x6d\x53\x6d\x51':_0x5200e0(0x231),'\x61\x71\x72\x68\x59':_0x5200e0(0x273),'\x69\x65\x6e\x71\x71':_0x5200e0(0x35e),'\x75\x71\x75\x68\x70':_0x5200e0(0x25b),'\x77\x59\x69\x6a\x6d':_0x5200e0(0x34a),'\x74\x70\x42\x51\x64':_0x5200e0(0x39d),'\x66\x6c\x72\x58\x67':_0x5200e0(0x3a2),'\x68\x59\x77\x46\x62':'\x43\x4d\x76\x57\x42\x67\x66\x35\x6c\x4e\x6e\x30\x79\x78\x6a\x30','\x64\x46\x56\x53\x66':_0x5200e0(0x214),'\x69\x77\x77\x52\x78':_0x5200e0(0x208),'\x4f\x48\x65\x56\x45':_0x5200e0(0x1e2),'\x68\x58\x51\x71\x7a':_0x5200e0(0x196),'\x59\x7a\x4c\x4a\x5a':_0x5200e0(0x20a),'\x7a\x76\x74\x6a\x66':_0x5200e0(0x251),'\x57\x4d\x74\x72\x51':_0x5200e0(0x1e8),'\x54\x67\x72\x4c\x45':_0x5200e0(0x39e),'\x65\x49\x79\x4f\x43':_0x5200e0(0x28a),'\x68\x50\x43\x6d\x56':_0x5200e0(0x26b),'\x4d\x43\x76\x44\x42':_0x5200e0(0x374),'\x56\x56\x4b\x45\x59':'\x79\x77\x6e\x76\x7a\x30\x71','\x78\x67\x62\x65\x71':_0x5200e0(0x396),'\x48\x59\x54\x45\x56':_0x5200e0(0x383),'\x63\x7a\x45\x58\x63':_0x5200e0(0x2e1),'\x6e\x77\x66\x54\x42':_0x5200e0(0x332),'\x63\x48\x53\x47\x57':'\x7a\x68\x76\x57\x42\x67\x4c\x4a\x79\x78\x72\x4c\x43\x31\x6e\x52\x41\x78\x62\x57\x7a\x77\x71'},_0x3229e5=[_0x5200e0(0x35c),_0x3d7b55[_0x5200e0(0x268)],_0x3d7b55[_0x5200e0(0x397)],_0x3d7b55[_0x5200e0(0x39f)],_0x5200e0(0x353),_0x3d7b55[_0x5200e0(0x2f8)],_0x3d7b55[_0x5200e0(0x27c)],_0x5200e0(0x2f6),_0x5200e0(0x292),_0x3d7b55['\x61\x6c\x43\x78\x6b'],_0x3d7b55[_0x5200e0(0x315)],_0x3d7b55[_0x5200e0(0x310)],_0x5200e0(0x2f0),_0x3d7b55[_0x5200e0(0x1a0)],_0x5200e0(0x2ab),'\x44\x68\x6a\x48\x42\x4e\x6e\x57\x42\x33\x6a\x30',_0x5200e0(0x330),_0x5200e0(0x323),_0x5200e0(0x2ef),_0x5200e0(0x1e4),'\x42\x32\x35\x4c\x43\x4e\x6a\x56\x43\x47',_0x3d7b55[_0x5200e0(0x1a9)],_0x3d7b55[_0x5200e0(0x278)],_0x3d7b55[_0x5200e0(0x1d0)],_0x3d7b55[_0x5200e0(0x3a3)],_0x3d7b55[_0x5200e0(0x1fe)],'\x43\x4d\x76\x5a\x44\x67\x39\x59\x7a\x76\x6e\x31\x79\x4e\x6e\x4a\x43\x4d\x4c\x57\x44\x67\x4c\x56\x42\x4e\x6d','\x79\x32\x58\x4c\x79\x77\x35\x31\x43\x61',_0x3d7b55['\x54\x6f\x67\x74\x4c'],_0x3d7b55[_0x5200e0(0x37f)],_0x5200e0(0x2a1),_0x5200e0(0x366),_0x3d7b55[_0x5200e0(0x221)],_0x5200e0(0x34f),_0x5200e0(0x2c9),_0x5200e0(0x239),_0x3d7b55['\x55\x50\x50\x5a\x5a'],_0x3d7b55[_0x5200e0(0x312)],'\x43\x67\x4c\x55\x7a\x30\x4c\x55\x44\x67\x76\x59\x44\x4d\x66\x53',_0x5200e0(0x256),_0x3d7b55[_0x5200e0(0x3a6)],_0x5200e0(0x242),_0x5200e0(0x379),_0x3d7b55[_0x5200e0(0x39b)],_0x3d7b55[_0x5200e0(0x1c2)],_0x3d7b55[_0x5200e0(0x2de)],'\x79\x32\x48\x48\x42\x4d\x35\x4c\x42\x68\x6d',_0x3d7b55[_0x5200e0(0x21e)],_0x3d7b55['\x4f\x73\x68\x62\x74'],'\x74\x31\x62\x66\x74\x47',_0x5200e0(0x347),_0x5200e0(0x2ea),_0x3d7b55[_0x5200e0(0x27d)],_0x5200e0(0x30c),'\x43\x4e\x76\x55\x44\x67\x4c\x54\x7a\x73\x35\x55\x42\x33\x72\x46\x7a\x4d\x39\x31\x42\x4d\x71','\x7a\x32\x76\x30\x71\x32\x39\x55\x42\x4d\x76\x4a\x44\x67\x4c\x56\x42\x4c\x66\x31\x79\x77\x58\x50\x44\x68\x4b',_0x3d7b55[_0x5200e0(0x1a3)],_0x5200e0(0x37c),_0x5200e0(0x1ec),_0x5200e0(0x27b),'\x43\x4e\x76\x55\x44\x67\x4c\x54\x7a\x73\x35\x59\x7a\x77\x66\x4b\x45\x71','\x43\x67\x4c\x55\x7a\x30\x58\x48\x44\x67\x76\x55\x79\x33\x4c\x69\x41\x78\x6e\x30\x42\x33\x6a\x35',_0x5200e0(0x20c),_0x3d7b55[_0x5200e0(0x1c5)],_0x5200e0(0x226),_0x3d7b55[_0x5200e0(0x346)],_0x5200e0(0x2ff),_0x3d7b55[_0x5200e0(0x30f)],'\x44\x77\x35\x5a\x44\x77\x6a\x5a\x79\x33\x6a\x50\x79\x4d\x75',_0x3d7b55[_0x5200e0(0x1ee)],_0x3d7b55['\x4e\x56\x4f\x49\x43'],'\x42\x77\x76\x5a\x43\x32\x66\x4e\x7a\x75\x4c\x4b\x71\x32\x39\x31\x42\x4e\x72\x4c\x43\x47',_0x3d7b55['\x61\x75\x52\x6e\x4f'],_0x5200e0(0x308),_0x3d7b55[_0x5200e0(0x23f)],_0x5200e0(0x2c0),_0x3d7b55[_0x5200e0(0x356)],_0x3d7b55[_0x5200e0(0x25a)],_0x3d7b55[_0x5200e0(0x240)],_0x5200e0(0x29a),_0x3d7b55[_0x5200e0(0x1d8)],_0x3d7b55[_0x5200e0(0x216)],_0x3d7b55['\x55\x58\x62\x52\x58'],_0x3d7b55[_0x5200e0(0x358)],_0x5200e0(0x306),_0x5200e0(0x372),_0x5200e0(0x263),_0x5200e0(0x1b0),'\x44\x68\x6a\x48\x79\x32\x54\x73\x7a\x77\x6e\x56\x42\x4d\x35\x4c\x79\x33\x72\x50\x42\x32\x34',_0x5200e0(0x29b),_0x5200e0(0x33c),_0x3d7b55[_0x5200e0(0x22a)],'\x76\x67\x39\x52\x7a\x77\x34\x47\x43\x4d\x76\x4d\x43\x4d\x76\x5a\x41\x67\x76\x4b',_0x3d7b55[_0x5200e0(0x23d)],_0x5200e0(0x2cc),_0x5200e0(0x3aa),_0x3d7b55['\x72\x67\x74\x66\x47'],_0x3d7b55[_0x5200e0(0x1b8)],_0x5200e0(0x2d6),_0x3d7b55['\x41\x42\x7a\x63\x41'],_0x3d7b55['\x70\x77\x55\x47\x4b'],'\x42\x32\x35\x75\x42\x32\x54\x4c\x42\x4c\x6a\x4c\x7a\x4e\x6a\x4c\x43\x32\x47','\x42\x77\x4c\x5a\x43\x32\x76\x4b\x75\x67\x39\x55\x7a\x30\x6e\x56\x44\x77\x35\x30',_0x3d7b55[_0x5200e0(0x2d3)],_0x3d7b55['\x55\x46\x56\x72\x65'],_0x5200e0(0x368),_0x5200e0(0x385),_0x3d7b55[_0x5200e0(0x399)],_0x3d7b55[_0x5200e0(0x2d8)],'\x43\x75\x48\x73\x75\x76\x47',_0x3d7b55['\x67\x6f\x67\x44\x76'],_0x3d7b55['\x6f\x44\x75\x71\x41'],_0x5200e0(0x324),_0x5200e0(0x19d),'\x42\x32\x35\x65\x41\x78\x6e\x4a\x42\x32\x35\x55\x7a\x77\x6e\x30',_0x3d7b55[_0x5200e0(0x35b)],_0x3d7b55[_0x5200e0(0x29d)],_0x5200e0(0x284),_0x3d7b55['\x4f\x6a\x6b\x6a\x6c'],_0x5200e0(0x328),_0x3d7b55['\x56\x47\x79\x64\x73'],_0x3d7b55[_0x5200e0(0x30b)],_0x5200e0(0x2ac),_0x5200e0(0x365),_0x5200e0(0x34d),_0x5200e0(0x316),_0x3d7b55[_0x5200e0(0x382)],_0x3d7b55[_0x5200e0(0x295)],_0x3d7b55['\x48\x77\x41\x61\x54'],_0x5200e0(0x2bf),_0x5200e0(0x311),_0x3d7b55[_0x5200e0(0x2cf)],_0x5200e0(0x1db),_0x3d7b55[_0x5200e0(0x3ae)],'\x43\x32\x48\x50\x7a\x4e\x71',_0x5200e0(0x29f),_0x3d7b55[_0x5200e0(0x1ad)],_0x3d7b55[_0x5200e0(0x1ae)],_0x3d7b55[_0x5200e0(0x2af)],_0x3d7b55[_0x5200e0(0x37d)],_0x3d7b55[_0x5200e0(0x254)],_0x5200e0(0x1dd),_0x3d7b55[_0x5200e0(0x2a4)],'\x43\x32\x76\x5a\x43\x32\x4c\x56\x42\x4c\x39\x50\x7a\x61',_0x3d7b55['\x4b\x52\x42\x55\x65'],_0x3d7b55[_0x5200e0(0x298)],_0x5200e0(0x269),'\x75\x68\x4c\x5a\x77\x67\x34',_0x5200e0(0x197),_0x5200e0(0x31a),_0x5200e0(0x317),_0x5200e0(0x319),_0x5200e0(0x1ab),_0x3d7b55[_0x5200e0(0x23e)],_0x3d7b55[_0x5200e0(0x264)],_0x3d7b55[_0x5200e0(0x1bf)],_0x3d7b55[_0x5200e0(0x1e0)],'\x42\x32\x35\x73\x44\x77\x35\x30\x41\x77\x31\x4c\x74\x4d\x39\x30\x72\x4d\x39\x31\x42\x4d\x71',_0x3d7b55[_0x5200e0(0x1ea)],'\x7a\x67\x76\x4e\x43\x4d\x66\x4b\x7a\x77\x71',_0x5200e0(0x2d1),_0x3d7b55[_0x5200e0(0x22e)],_0x5200e0(0x1cd),_0x3d7b55[_0x5200e0(0x300)],_0x5200e0(0x2a2),_0x3d7b55['\x61\x6d\x53\x6d\x51'],_0x3d7b55[_0x5200e0(0x35d)],_0x3d7b55[_0x5200e0(0x1b5)],_0x3d7b55[_0x5200e0(0x35a)],_0x5200e0(0x26e),'\x42\x32\x35\x56\x43\x67\x76\x55',_0x3d7b55[_0x5200e0(0x288)],_0x3d7b55['\x74\x70\x42\x51\x64'],_0x5200e0(0x206),_0x5200e0(0x21f),_0x3d7b55[_0x5200e0(0x302)],_0x5200e0(0x2c8),_0x5200e0(0x2a9),_0x5200e0(0x364),_0x5200e0(0x200),'\x75\x67\x7a\x54\x73\x33\x71',_0x5200e0(0x2a5),_0x3d7b55[_0x5200e0(0x202)],_0x5200e0(0x334),'\x79\x77\x44\x4c\x42\x4e\x71\x55\x7a\x78\x7a\x4c\x42\x4e\x71',_0x3d7b55[_0x5200e0(0x1f6)],_0x5200e0(0x1ac),_0x5200e0(0x23c),_0x5200e0(0x1c1),_0x3d7b55[_0x5200e0(0x2b5)],_0x5200e0(0x252),_0x3d7b55[_0x5200e0(0x29e)],'\x43\x78\x76\x48\x42\x67\x4c\x30\x45\x71',_0x5200e0(0x20d),_0x5200e0(0x320),_0x5200e0(0x2a8),_0x5200e0(0x2b9),_0x3d7b55['\x68\x58\x51\x71\x7a'],'\x43\x4d\x76\x57\x42\x67\x66\x35\x75\x33\x72\x56\x43\x4d\x66\x4e\x7a\x75\x54\x4c\x45\x76\x62\x59\x7a\x77\x7a\x50\x45\x61',_0x3d7b55[_0x5200e0(0x33a)],_0x5200e0(0x377),_0x5200e0(0x20e),_0x3d7b55[_0x5200e0(0x22f)],_0x3d7b55[_0x5200e0(0x227)],_0x5200e0(0x363),_0x5200e0(0x37b),'\x41\x67\x66\x5a\x71\x32\x39\x55\x42\x4d\x76\x4a\x44\x67\x76\x4b\x71\x4d\x76\x4d\x42\x33\x6a\x4c','\x79\x32\x58\x4c\x79\x78\x6a\x71\x42\x32\x35\x4e\x76\x67\x4c\x54\x7a\x77\x39\x31\x44\x61',_0x3d7b55['\x54\x67\x72\x4c\x45'],_0x3d7b55['\x65\x49\x79\x4f\x43'],_0x5200e0(0x1bb),'\x79\x32\x39\x4b\x7a\x71',_0x5200e0(0x2b1),_0x5200e0(0x203),_0x5200e0(0x351),_0x3d7b55[_0x5200e0(0x233)],_0x3d7b55[_0x5200e0(0x230)],_0x5200e0(0x218),_0x5200e0(0x2e9),_0x5200e0(0x255),_0x5200e0(0x281),_0x5200e0(0x2ee),_0x5200e0(0x318),_0x5200e0(0x24c),_0x3d7b55[_0x5200e0(0x36c)],'\x74\x67\x7a\x6d\x43\x67\x71',_0x3d7b55[_0x5200e0(0x2e3)],_0x3d7b55[_0x5200e0(0x384)],_0x3d7b55[_0x5200e0(0x223)],_0x5200e0(0x36f),_0x5200e0(0x336),_0x5200e0(0x19c),_0x3d7b55[_0x5200e0(0x245)],_0x5200e0(0x38c),_0x3d7b55[_0x5200e0(0x283)]];return a0_0x5ac7=function(){return _0x3229e5;},a0_0x5ac7();}export{INITIAL_METRICS,SessionGatewayClient,calculateConnectionQuality};
|
|
1
|
+
//#region src/session-gateway/types.ts
|
|
2
|
+
/**
|
|
3
|
+
* Default connection metrics.
|
|
4
|
+
*/
|
|
5
|
+
const INITIAL_METRICS = {
|
|
6
|
+
lastPingLatencyMs: null,
|
|
7
|
+
avgPingLatencyMs: null,
|
|
8
|
+
missedPongCount: 0,
|
|
9
|
+
reconnectCount: 0,
|
|
10
|
+
lastPongAt: null,
|
|
11
|
+
lastReconnectAt: null,
|
|
12
|
+
quality: "disconnected"
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Calculate connection quality from metrics.
|
|
16
|
+
*/
|
|
17
|
+
function calculateConnectionQuality(metrics, isConnected) {
|
|
18
|
+
if (!isConnected) return "disconnected";
|
|
19
|
+
const { avgPingLatencyMs, missedPongCount, reconnectCount, lastReconnectAt } = metrics;
|
|
20
|
+
const recentReconnect = lastReconnectAt && Date.now() - lastReconnectAt < 300 * 1e3;
|
|
21
|
+
if (missedPongCount >= 2 || recentReconnect && reconnectCount > 1) return "poor";
|
|
22
|
+
if (missedPongCount >= 1 || avgPingLatencyMs !== null && avgPingLatencyMs > 1e3 || recentReconnect) return "degraded";
|
|
23
|
+
if (avgPingLatencyMs !== null && avgPingLatencyMs < 100 && reconnectCount === 0) return "excellent";
|
|
24
|
+
if (avgPingLatencyMs !== null && avgPingLatencyMs <= 300) return "good";
|
|
25
|
+
return "good";
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
//#region src/session-gateway/client.ts
|
|
29
|
+
/**
|
|
30
|
+
* SessionGatewayClient
|
|
31
|
+
*
|
|
32
|
+
* WebSocket client for Sandbox API session streaming.
|
|
33
|
+
* Browser-safe: no Node.js APIs.
|
|
34
|
+
*/
|
|
35
|
+
const DEFAULT_CONFIG = {
|
|
36
|
+
transport: "websocket",
|
|
37
|
+
channels: ["*"],
|
|
38
|
+
autoReconnect: true,
|
|
39
|
+
maxReconnectAttempts: 10,
|
|
40
|
+
initialReconnectDelayMs: 1e3,
|
|
41
|
+
maxReconnectDelayMs: 3e4,
|
|
42
|
+
pingIntervalMs: 3e4,
|
|
43
|
+
pongTimeoutMs: 1e4,
|
|
44
|
+
maxMissedPongs: 2,
|
|
45
|
+
enableDeduplication: true,
|
|
46
|
+
maxDeduplicationSize: 1e3,
|
|
47
|
+
enableReplayPersistence: false,
|
|
48
|
+
replayStorageKeyPrefix: "session_gateway_",
|
|
49
|
+
latencyHistorySize: 10
|
|
50
|
+
};
|
|
51
|
+
const STORAGE_KEYS = {
|
|
52
|
+
lastEventId: "last_event_id",
|
|
53
|
+
executionId: "execution_id",
|
|
54
|
+
sessionId: "session_id"
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Legacy wire-protocol message type map. The current server emits the
|
|
58
|
+
* `sidecar.*` message types; the SDK surfaces the canonical `runtime.*`
|
|
59
|
+
* names. Kept at module scope so it isn't re-allocated per inbound
|
|
60
|
+
* WebSocket message.
|
|
61
|
+
*/
|
|
62
|
+
const WIRE_TYPE_MAP = {
|
|
63
|
+
"sidecar.connected": "runtime.connected",
|
|
64
|
+
"sidecar.disconnected": "runtime.disconnected",
|
|
65
|
+
"sidecar.not_found": "runtime.not_found",
|
|
66
|
+
"sidecar.ready": "runtime.ready"
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Memory-based storage fallback when localStorage is not available.
|
|
70
|
+
*/
|
|
71
|
+
var MemoryStorage = class {
|
|
72
|
+
store = /* @__PURE__ */ new Map();
|
|
73
|
+
getItem(key) {
|
|
74
|
+
return this.store.get(key) ?? null;
|
|
75
|
+
}
|
|
76
|
+
setItem(key, value) {
|
|
77
|
+
this.store.set(key, value);
|
|
78
|
+
}
|
|
79
|
+
removeItem(key) {
|
|
80
|
+
this.store.delete(key);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
var SessionGatewayClient = class {
|
|
84
|
+
ws = null;
|
|
85
|
+
config;
|
|
86
|
+
handlers;
|
|
87
|
+
currentToken;
|
|
88
|
+
isRefreshingToken = false;
|
|
89
|
+
state = "disconnected";
|
|
90
|
+
connectedAt = null;
|
|
91
|
+
hasConnectedBefore = false;
|
|
92
|
+
lastPingAt = null;
|
|
93
|
+
lastPongAt = null;
|
|
94
|
+
lastPingSentAt = null;
|
|
95
|
+
missedPongCount = 0;
|
|
96
|
+
reconnectAttempts = 0;
|
|
97
|
+
messagesReceived = 0;
|
|
98
|
+
messagesSent = 0;
|
|
99
|
+
eventsReceived = 0;
|
|
100
|
+
duplicatesSkipped = 0;
|
|
101
|
+
reconnectTimer = null;
|
|
102
|
+
pingInterval = null;
|
|
103
|
+
pongTimeout = null;
|
|
104
|
+
pendingCallbacks = /* @__PURE__ */ new Map();
|
|
105
|
+
messageIdCounter = 0;
|
|
106
|
+
processedEventIds = /* @__PURE__ */ new Set();
|
|
107
|
+
pingLatencyHistory = [];
|
|
108
|
+
connectionMetrics = { ...INITIAL_METRICS };
|
|
109
|
+
lastEventId = null;
|
|
110
|
+
currentExecutionId = null;
|
|
111
|
+
currentSessionId = null;
|
|
112
|
+
isReplaying = false;
|
|
113
|
+
replayProgress = {
|
|
114
|
+
total: 0,
|
|
115
|
+
received: 0
|
|
116
|
+
};
|
|
117
|
+
constructor(config) {
|
|
118
|
+
let storage;
|
|
119
|
+
if (config.replayStorage) storage = config.replayStorage;
|
|
120
|
+
else if (typeof globalThis !== "undefined" && "localStorage" in globalThis) try {
|
|
121
|
+
const testKey = "__test__";
|
|
122
|
+
localStorage.setItem(testKey, testKey);
|
|
123
|
+
localStorage.removeItem(testKey);
|
|
124
|
+
storage = localStorage;
|
|
125
|
+
} catch {
|
|
126
|
+
storage = new MemoryStorage();
|
|
127
|
+
}
|
|
128
|
+
else storage = new MemoryStorage();
|
|
129
|
+
this.config = {
|
|
130
|
+
url: config.url,
|
|
131
|
+
sessionId: config.sessionId,
|
|
132
|
+
token: config.token,
|
|
133
|
+
onTokenRefresh: config.onTokenRefresh,
|
|
134
|
+
transport: config.transport ?? DEFAULT_CONFIG.transport,
|
|
135
|
+
channels: config.channels ?? DEFAULT_CONFIG.channels,
|
|
136
|
+
autoReconnect: config.autoReconnect ?? DEFAULT_CONFIG.autoReconnect,
|
|
137
|
+
maxReconnectAttempts: config.maxReconnectAttempts ?? DEFAULT_CONFIG.maxReconnectAttempts,
|
|
138
|
+
initialReconnectDelayMs: config.initialReconnectDelayMs ?? DEFAULT_CONFIG.initialReconnectDelayMs,
|
|
139
|
+
maxReconnectDelayMs: config.maxReconnectDelayMs ?? DEFAULT_CONFIG.maxReconnectDelayMs,
|
|
140
|
+
pingIntervalMs: config.pingIntervalMs ?? DEFAULT_CONFIG.pingIntervalMs,
|
|
141
|
+
pongTimeoutMs: config.pongTimeoutMs ?? DEFAULT_CONFIG.pongTimeoutMs,
|
|
142
|
+
maxMissedPongs: config.maxMissedPongs ?? DEFAULT_CONFIG.maxMissedPongs,
|
|
143
|
+
enableDeduplication: config.enableDeduplication ?? DEFAULT_CONFIG.enableDeduplication,
|
|
144
|
+
maxDeduplicationSize: config.maxDeduplicationSize ?? DEFAULT_CONFIG.maxDeduplicationSize,
|
|
145
|
+
enableReplayPersistence: config.enableReplayPersistence ?? DEFAULT_CONFIG.enableReplayPersistence,
|
|
146
|
+
replayStorage: storage,
|
|
147
|
+
replayStorageKeyPrefix: config.replayStorageKeyPrefix ?? DEFAULT_CONFIG.replayStorageKeyPrefix,
|
|
148
|
+
latencyHistorySize: config.latencyHistorySize ?? DEFAULT_CONFIG.latencyHistorySize
|
|
149
|
+
};
|
|
150
|
+
this.handlers = config.handlers ?? {};
|
|
151
|
+
this.currentToken = config.token;
|
|
152
|
+
if (this.config.enableReplayPersistence) this.loadReplayState();
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Connect to the session gateway.
|
|
156
|
+
*/
|
|
157
|
+
connect() {
|
|
158
|
+
if (this.state === "connected" || this.state === "connecting") return;
|
|
159
|
+
const isReconnect = this.hasConnectedBefore;
|
|
160
|
+
this.setState(isReconnect ? "reconnecting" : "connecting");
|
|
161
|
+
this.connectWebSocket();
|
|
162
|
+
}
|
|
163
|
+
connectWebSocket() {
|
|
164
|
+
const url = new URL(this.config.url);
|
|
165
|
+
url.searchParams.set("token", this.currentToken);
|
|
166
|
+
this.ws = new WebSocket(url.toString());
|
|
167
|
+
this.ws.onopen = () => this.handleOpen();
|
|
168
|
+
this.ws.onclose = (event) => this.handleClose(event.code, event.reason);
|
|
169
|
+
this.ws.onerror = (_event) => {};
|
|
170
|
+
this.ws.onmessage = (event) => this.handleMessage(event.data);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Disconnect from the session gateway.
|
|
174
|
+
*/
|
|
175
|
+
disconnect() {
|
|
176
|
+
this.cleanup();
|
|
177
|
+
if (this.ws) {
|
|
178
|
+
this.ws.close(1e3, "Client disconnect");
|
|
179
|
+
this.ws = null;
|
|
180
|
+
}
|
|
181
|
+
this.setState("disconnected");
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Subscribe to additional channels.
|
|
185
|
+
*/
|
|
186
|
+
async subscribe(channels) {
|
|
187
|
+
return (await this.sendWithResponse({
|
|
188
|
+
type: "subscribe",
|
|
189
|
+
channels
|
|
190
|
+
})).channels;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Unsubscribe from channels.
|
|
194
|
+
*/
|
|
195
|
+
async unsubscribe(channels) {
|
|
196
|
+
return (await this.sendWithResponse({
|
|
197
|
+
type: "unsubscribe",
|
|
198
|
+
channels
|
|
199
|
+
})).channels;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Send a ping and wait for pong.
|
|
203
|
+
*/
|
|
204
|
+
async ping() {
|
|
205
|
+
const start = Date.now();
|
|
206
|
+
await this.sendWithResponse({ type: "ping" });
|
|
207
|
+
return Date.now() - start;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Request replay of events since a timestamp.
|
|
211
|
+
*/
|
|
212
|
+
replay(since) {
|
|
213
|
+
this.send({
|
|
214
|
+
type: "replay",
|
|
215
|
+
since
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Send terminal input via WebSocket.
|
|
220
|
+
*/
|
|
221
|
+
sendTerminalInput(terminalId, input) {
|
|
222
|
+
if (!this.isConnected()) return false;
|
|
223
|
+
this.send({
|
|
224
|
+
type: "terminal.input",
|
|
225
|
+
data: {
|
|
226
|
+
terminalId,
|
|
227
|
+
input
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
return true;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Set the current session/execution context for event tracking.
|
|
234
|
+
*/
|
|
235
|
+
setSessionContext(sessionId, executionId) {
|
|
236
|
+
this.currentSessionId = sessionId;
|
|
237
|
+
if (executionId) this.currentExecutionId = executionId;
|
|
238
|
+
this.saveReplayState();
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Clear replay state (call when session ends).
|
|
242
|
+
*/
|
|
243
|
+
clearReplayState() {
|
|
244
|
+
this.lastEventId = null;
|
|
245
|
+
this.currentExecutionId = null;
|
|
246
|
+
this.currentSessionId = null;
|
|
247
|
+
this.isReplaying = false;
|
|
248
|
+
this.replayProgress = {
|
|
249
|
+
total: 0,
|
|
250
|
+
received: 0
|
|
251
|
+
};
|
|
252
|
+
this.processedEventIds.clear();
|
|
253
|
+
this.duplicatesSkipped = 0;
|
|
254
|
+
if (this.config.enableReplayPersistence) {
|
|
255
|
+
const prefix = this.config.replayStorageKeyPrefix;
|
|
256
|
+
try {
|
|
257
|
+
this.config.replayStorage.removeItem(prefix + STORAGE_KEYS.lastEventId);
|
|
258
|
+
this.config.replayStorage.removeItem(prefix + STORAGE_KEYS.executionId);
|
|
259
|
+
this.config.replayStorage.removeItem(prefix + STORAGE_KEYS.sessionId);
|
|
260
|
+
} catch {}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Get current replay state for UI indicators.
|
|
265
|
+
*/
|
|
266
|
+
getReplayState() {
|
|
267
|
+
return {
|
|
268
|
+
isReplaying: this.isReplaying,
|
|
269
|
+
progress: { ...this.replayProgress }
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Get connection statistics.
|
|
274
|
+
*/
|
|
275
|
+
getStats() {
|
|
276
|
+
return {
|
|
277
|
+
state: this.state,
|
|
278
|
+
connectedAt: this.connectedAt,
|
|
279
|
+
lastPingAt: this.lastPingAt,
|
|
280
|
+
lastPongAt: this.lastPongAt,
|
|
281
|
+
reconnectAttempts: this.reconnectAttempts,
|
|
282
|
+
messagesReceived: this.messagesReceived,
|
|
283
|
+
messagesSent: this.messagesSent,
|
|
284
|
+
eventsReceived: this.eventsReceived,
|
|
285
|
+
duplicatesSkipped: this.duplicatesSkipped,
|
|
286
|
+
metrics: { ...this.connectionMetrics },
|
|
287
|
+
replay: this.getReplayState()
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
getState() {
|
|
291
|
+
return this.state;
|
|
292
|
+
}
|
|
293
|
+
isConnected() {
|
|
294
|
+
return this.state === "connected";
|
|
295
|
+
}
|
|
296
|
+
getConnectionQuality() {
|
|
297
|
+
return this.connectionMetrics.quality;
|
|
298
|
+
}
|
|
299
|
+
getConnectionMetrics() {
|
|
300
|
+
return { ...this.connectionMetrics };
|
|
301
|
+
}
|
|
302
|
+
resetMetrics() {
|
|
303
|
+
this.pingLatencyHistory = [];
|
|
304
|
+
this.connectionMetrics = { ...INITIAL_METRICS };
|
|
305
|
+
this.handlers.onMetricsChange?.(this.connectionMetrics);
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Update the auth token and reconnect with the new token.
|
|
309
|
+
*/
|
|
310
|
+
updateToken(token) {
|
|
311
|
+
this.currentToken = token;
|
|
312
|
+
if (this.state === "connected" && this.ws) this.ws.close(1e3, "Token refreshed");
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Get the current auth token.
|
|
316
|
+
*/
|
|
317
|
+
getToken() {
|
|
318
|
+
return this.currentToken;
|
|
319
|
+
}
|
|
320
|
+
setState(state) {
|
|
321
|
+
if (this.state !== state) {
|
|
322
|
+
this.state = state;
|
|
323
|
+
this.updateConnectionQuality();
|
|
324
|
+
this.handlers.onStateChange?.(state);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
handleOpen() {
|
|
328
|
+
const isReconnect = this.hasConnectedBefore;
|
|
329
|
+
this.hasConnectedBefore = true;
|
|
330
|
+
this.setState("connected");
|
|
331
|
+
this.connectedAt = Date.now();
|
|
332
|
+
this.reconnectAttempts = 0;
|
|
333
|
+
this.missedPongCount = 0;
|
|
334
|
+
this.startPingInterval();
|
|
335
|
+
this.restoreSubscriptions();
|
|
336
|
+
if (isReconnect) {
|
|
337
|
+
this.trackReconnection();
|
|
338
|
+
this.handlers.onReconnect?.();
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
handleClose(code, reason) {
|
|
342
|
+
this.cleanup();
|
|
343
|
+
this.handlers.onDisconnect?.(code, reason);
|
|
344
|
+
if (this.config.autoReconnect && this.reconnectAttempts < this.config.maxReconnectAttempts) {
|
|
345
|
+
this.setState("reconnecting");
|
|
346
|
+
this.scheduleReconnect();
|
|
347
|
+
} else this.setState("disconnected");
|
|
348
|
+
}
|
|
349
|
+
handleMessage(data) {
|
|
350
|
+
this.messagesReceived++;
|
|
351
|
+
try {
|
|
352
|
+
const raw = JSON.parse(data);
|
|
353
|
+
if (!raw.type && raw.messageType) raw.type = raw.messageType;
|
|
354
|
+
if (typeof raw.type === "string" && WIRE_TYPE_MAP[raw.type] !== void 0) raw.type = WIRE_TYPE_MAP[raw.type];
|
|
355
|
+
if (raw.data && typeof raw.data === "object") {
|
|
356
|
+
const d = raw.data;
|
|
357
|
+
if (d.sidecarId !== void 0 && d.sandboxId === void 0) d.sandboxId = d.sidecarId;
|
|
358
|
+
}
|
|
359
|
+
if (raw.type === "agent.event" && !raw.data && raw.channel) {
|
|
360
|
+
const { type, messageType, channel, id, sequenceId, timestamp, ...rest } = raw;
|
|
361
|
+
raw.data = rest;
|
|
362
|
+
}
|
|
363
|
+
const message = raw;
|
|
364
|
+
if (message.type === "pong") {
|
|
365
|
+
this.handlePong(message.timestamp);
|
|
366
|
+
this.dispatchMessage(message);
|
|
367
|
+
return;
|
|
368
|
+
}
|
|
369
|
+
if ("id" in message && message.id && this.config.enableDeduplication) {
|
|
370
|
+
const eventId = message.id;
|
|
371
|
+
if (this.processedEventIds.has(eventId)) {
|
|
372
|
+
this.duplicatesSkipped++;
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
this.processedEventIds.add(eventId);
|
|
376
|
+
if (this.processedEventIds.size > this.config.maxDeduplicationSize) {
|
|
377
|
+
const entriesToRemove = Math.floor(this.config.maxDeduplicationSize * .1);
|
|
378
|
+
let removed = 0;
|
|
379
|
+
for (const oldId of this.processedEventIds) {
|
|
380
|
+
if (removed >= entriesToRemove) break;
|
|
381
|
+
this.processedEventIds.delete(oldId);
|
|
382
|
+
removed++;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
this.lastEventId = eventId;
|
|
386
|
+
this.saveReplayState();
|
|
387
|
+
}
|
|
388
|
+
this.dispatchMessage(message);
|
|
389
|
+
} catch {}
|
|
390
|
+
}
|
|
391
|
+
handlePong(timestamp) {
|
|
392
|
+
const now = Date.now();
|
|
393
|
+
this.lastPongAt = timestamp;
|
|
394
|
+
this.missedPongCount = 0;
|
|
395
|
+
this.clearPongTimeout();
|
|
396
|
+
if (this.lastPingSentAt) {
|
|
397
|
+
const latency = now - this.lastPingSentAt;
|
|
398
|
+
this.pingLatencyHistory.push(latency);
|
|
399
|
+
if (this.pingLatencyHistory.length > this.config.latencyHistorySize) this.pingLatencyHistory.shift();
|
|
400
|
+
this.updateConnectionMetrics(latency, now);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
dispatchMessage(message) {
|
|
404
|
+
if ("id" in message && message.id) {
|
|
405
|
+
const callback = this.pendingCallbacks.get(message.id);
|
|
406
|
+
if (callback) {
|
|
407
|
+
this.pendingCallbacks.delete(message.id);
|
|
408
|
+
if (message.type === "error") callback.reject(new Error(message.message));
|
|
409
|
+
else callback.resolve("data" in message ? message.data : void 0);
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
switch (message.type) {
|
|
414
|
+
case "connection.established":
|
|
415
|
+
this.handlers.onConnect?.(message.data.sessionId);
|
|
416
|
+
break;
|
|
417
|
+
case "runtime.connected":
|
|
418
|
+
this.handlers.onRuntimeConnected?.(message.data.sandboxId, message.data.baseUrl);
|
|
419
|
+
break;
|
|
420
|
+
case "runtime.disconnected":
|
|
421
|
+
this.handlers.onRuntimeDisconnected?.(message.data.sandboxId, message.data.error);
|
|
422
|
+
break;
|
|
423
|
+
case "runtime.not_found":
|
|
424
|
+
this.handlers.onRuntimeNotFound?.(message.data.sessionId, message.data.containerId, message.data.reason);
|
|
425
|
+
break;
|
|
426
|
+
case "container.ready": {
|
|
427
|
+
const data = message.data;
|
|
428
|
+
const id = data.sandboxId ?? data.sidecarId;
|
|
429
|
+
if (id) this.handlers.onContainerReady?.(id);
|
|
430
|
+
else this.handlers.onError?.("container.ready event received without sandboxId", "invalid_payload");
|
|
431
|
+
break;
|
|
432
|
+
}
|
|
433
|
+
case "runtime.ready":
|
|
434
|
+
this.handlers.onRuntimeReady?.(message.data);
|
|
435
|
+
break;
|
|
436
|
+
case "port.opened":
|
|
437
|
+
this.handlers.onPortOpened?.(message.data.port, message.data.protocol, message.data.processName);
|
|
438
|
+
break;
|
|
439
|
+
case "port.closed":
|
|
440
|
+
this.handlers.onPortClosed?.(message.data.port);
|
|
441
|
+
break;
|
|
442
|
+
case "agent.event":
|
|
443
|
+
this.eventsReceived++;
|
|
444
|
+
this.trackExecutionContext(message.data);
|
|
445
|
+
this.handlers.onAgentEvent?.(message.channel, message.data, message.sequenceId);
|
|
446
|
+
break;
|
|
447
|
+
case "replay.start":
|
|
448
|
+
this.isReplaying = true;
|
|
449
|
+
this.replayProgress = {
|
|
450
|
+
total: message.total,
|
|
451
|
+
received: 0
|
|
452
|
+
};
|
|
453
|
+
this.handlers.onReplayStart?.(message.total);
|
|
454
|
+
break;
|
|
455
|
+
case "replay.progress":
|
|
456
|
+
this.replayProgress.received = message.received;
|
|
457
|
+
this.handlers.onReplayProgress?.(message.received, this.replayProgress.total);
|
|
458
|
+
break;
|
|
459
|
+
case "replay.complete":
|
|
460
|
+
this.isReplaying = false;
|
|
461
|
+
this.handlers.onReplayComplete?.(message.total);
|
|
462
|
+
break;
|
|
463
|
+
case "error":
|
|
464
|
+
this.handlers.onError?.(message.message, message.code);
|
|
465
|
+
break;
|
|
466
|
+
case "token.expiring":
|
|
467
|
+
this.handlers.onTokenExpiring?.(message.data.secondsRemaining);
|
|
468
|
+
this.handleTokenExpiring();
|
|
469
|
+
break;
|
|
470
|
+
case "token.expired":
|
|
471
|
+
this.handlers.onTokenExpired?.();
|
|
472
|
+
break;
|
|
473
|
+
case "backpressure.warning":
|
|
474
|
+
this.handlers.onBackpressureWarning?.(message.data.droppedCount, message.data.since, message.data.totalDropped);
|
|
475
|
+
break;
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
trackExecutionContext(data) {
|
|
479
|
+
if (typeof data !== "object" || data === null) return;
|
|
480
|
+
const eventData = data;
|
|
481
|
+
if (eventData.executionId) {
|
|
482
|
+
this.currentExecutionId = eventData.executionId;
|
|
483
|
+
this.saveReplayState();
|
|
484
|
+
}
|
|
485
|
+
if (eventData.type === "execution.started" && eventData.sessionId) {
|
|
486
|
+
this.currentSessionId = eventData.sessionId;
|
|
487
|
+
this.saveReplayState();
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
async handleTokenExpiring() {
|
|
491
|
+
if (!this.config.onTokenRefresh || this.isRefreshingToken) return;
|
|
492
|
+
this.isRefreshingToken = true;
|
|
493
|
+
try {
|
|
494
|
+
const result = await this.config.onTokenRefresh();
|
|
495
|
+
this.updateToken(result.token);
|
|
496
|
+
} catch (error) {
|
|
497
|
+
this.handlers.onError?.(`Token refresh failed: ${error instanceof Error ? error.message : String(error)}`, "TOKEN_REFRESH_FAILED");
|
|
498
|
+
} finally {
|
|
499
|
+
this.isRefreshingToken = false;
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
send(message) {
|
|
503
|
+
if (this.ws?.readyState === WebSocket.OPEN) {
|
|
504
|
+
this.ws.send(JSON.stringify(message));
|
|
505
|
+
this.messagesSent++;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
sendWithResponse(message) {
|
|
509
|
+
return new Promise((resolve, reject) => {
|
|
510
|
+
const id = `msg_${++this.messageIdCounter}`;
|
|
511
|
+
this.pendingCallbacks.set(id, {
|
|
512
|
+
resolve,
|
|
513
|
+
reject
|
|
514
|
+
});
|
|
515
|
+
setTimeout(() => {
|
|
516
|
+
if (this.pendingCallbacks.has(id)) {
|
|
517
|
+
this.pendingCallbacks.delete(id);
|
|
518
|
+
reject(/* @__PURE__ */ new Error("Request timeout"));
|
|
519
|
+
}
|
|
520
|
+
}, 1e4);
|
|
521
|
+
this.send({
|
|
522
|
+
...message,
|
|
523
|
+
id
|
|
524
|
+
});
|
|
525
|
+
});
|
|
526
|
+
}
|
|
527
|
+
restoreSubscriptions() {
|
|
528
|
+
const channels = this.config.channels;
|
|
529
|
+
const replayOptions = {};
|
|
530
|
+
if (this.lastEventId) replayOptions.lastEventId = this.lastEventId;
|
|
531
|
+
if (this.currentExecutionId) replayOptions.executionId = this.currentExecutionId;
|
|
532
|
+
if (this.currentSessionId) replayOptions.sessionId = this.currentSessionId;
|
|
533
|
+
const hasReplayState = Object.keys(replayOptions).length > 0;
|
|
534
|
+
if (hasReplayState) {
|
|
535
|
+
this.isReplaying = true;
|
|
536
|
+
this.replayProgress = {
|
|
537
|
+
total: 0,
|
|
538
|
+
received: 0
|
|
539
|
+
};
|
|
540
|
+
}
|
|
541
|
+
this.send({
|
|
542
|
+
type: "subscribe",
|
|
543
|
+
channels,
|
|
544
|
+
...hasReplayState ? { replayOptions } : {}
|
|
545
|
+
});
|
|
546
|
+
}
|
|
547
|
+
startPingInterval() {
|
|
548
|
+
this.stopPingInterval();
|
|
549
|
+
this.pingInterval = setInterval(() => {
|
|
550
|
+
this.sendPing();
|
|
551
|
+
}, this.config.pingIntervalMs);
|
|
552
|
+
}
|
|
553
|
+
stopPingInterval() {
|
|
554
|
+
if (this.pingInterval) {
|
|
555
|
+
clearInterval(this.pingInterval);
|
|
556
|
+
this.pingInterval = null;
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
sendPing() {
|
|
560
|
+
if (this.ws?.readyState !== WebSocket.OPEN) return;
|
|
561
|
+
const timeSinceLastPong = this.lastPongAt ? Date.now() - this.lastPongAt : 0;
|
|
562
|
+
if (this.lastPongAt && timeSinceLastPong > this.config.pongTimeoutMs) {
|
|
563
|
+
this.missedPongCount++;
|
|
564
|
+
this.connectionMetrics = {
|
|
565
|
+
...this.connectionMetrics,
|
|
566
|
+
missedPongCount: this.missedPongCount
|
|
567
|
+
};
|
|
568
|
+
this.updateConnectionQuality();
|
|
569
|
+
if (this.missedPongCount >= this.config.maxMissedPongs) {
|
|
570
|
+
this.ws?.close(4e3, "Pong timeout - connection unresponsive");
|
|
571
|
+
return;
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
this.lastPingAt = Date.now();
|
|
575
|
+
this.lastPingSentAt = Date.now();
|
|
576
|
+
this.send({ type: "ping" });
|
|
577
|
+
this.pongTimeout = setTimeout(() => {
|
|
578
|
+
this.missedPongCount++;
|
|
579
|
+
this.connectionMetrics = {
|
|
580
|
+
...this.connectionMetrics,
|
|
581
|
+
missedPongCount: this.missedPongCount
|
|
582
|
+
};
|
|
583
|
+
this.updateConnectionQuality();
|
|
584
|
+
if (this.missedPongCount >= this.config.maxMissedPongs) this.ws?.close(4e3, "Pong timeout - connection unresponsive");
|
|
585
|
+
}, this.config.pongTimeoutMs);
|
|
586
|
+
}
|
|
587
|
+
clearPongTimeout() {
|
|
588
|
+
if (this.pongTimeout) {
|
|
589
|
+
clearTimeout(this.pongTimeout);
|
|
590
|
+
this.pongTimeout = null;
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
scheduleReconnect() {
|
|
594
|
+
if (this.reconnectTimer) return;
|
|
595
|
+
this.reconnectAttempts++;
|
|
596
|
+
const delay = Math.min(this.config.initialReconnectDelayMs * 2 ** (this.reconnectAttempts - 1), this.config.maxReconnectDelayMs);
|
|
597
|
+
const jitter = delay * .3 * (Math.random() * 2 - 1);
|
|
598
|
+
this.reconnectTimer = setTimeout(() => {
|
|
599
|
+
this.reconnectTimer = null;
|
|
600
|
+
this.connect();
|
|
601
|
+
}, delay + jitter);
|
|
602
|
+
}
|
|
603
|
+
cleanup() {
|
|
604
|
+
this.stopPingInterval();
|
|
605
|
+
this.clearPongTimeout();
|
|
606
|
+
if (this.reconnectTimer) {
|
|
607
|
+
clearTimeout(this.reconnectTimer);
|
|
608
|
+
this.reconnectTimer = null;
|
|
609
|
+
}
|
|
610
|
+
for (const [id, callback] of this.pendingCallbacks) {
|
|
611
|
+
callback.reject(/* @__PURE__ */ new Error("Connection closed"));
|
|
612
|
+
this.pendingCallbacks.delete(id);
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
updateConnectionMetrics(latency, pongTime) {
|
|
616
|
+
const avgLatency = this.pingLatencyHistory.length > 0 ? this.pingLatencyHistory.reduce((a, b) => a + b, 0) / this.pingLatencyHistory.length : null;
|
|
617
|
+
this.connectionMetrics = {
|
|
618
|
+
...this.connectionMetrics,
|
|
619
|
+
lastPingLatencyMs: latency,
|
|
620
|
+
avgPingLatencyMs: avgLatency,
|
|
621
|
+
missedPongCount: this.missedPongCount,
|
|
622
|
+
lastPongAt: pongTime
|
|
623
|
+
};
|
|
624
|
+
this.updateConnectionQuality();
|
|
625
|
+
}
|
|
626
|
+
updateConnectionQuality() {
|
|
627
|
+
const isConnected = this.state === "connected";
|
|
628
|
+
const quality = calculateConnectionQuality(this.connectionMetrics, isConnected);
|
|
629
|
+
if (this.connectionMetrics.quality !== quality) {
|
|
630
|
+
this.connectionMetrics = {
|
|
631
|
+
...this.connectionMetrics,
|
|
632
|
+
quality
|
|
633
|
+
};
|
|
634
|
+
this.handlers.onMetricsChange?.(this.connectionMetrics);
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
trackReconnection() {
|
|
638
|
+
const now = Date.now();
|
|
639
|
+
this.connectionMetrics = {
|
|
640
|
+
...this.connectionMetrics,
|
|
641
|
+
reconnectCount: this.connectionMetrics.reconnectCount + 1,
|
|
642
|
+
lastReconnectAt: now
|
|
643
|
+
};
|
|
644
|
+
this.pingLatencyHistory = [];
|
|
645
|
+
this.updateConnectionQuality();
|
|
646
|
+
}
|
|
647
|
+
loadReplayState() {
|
|
648
|
+
if (!this.config.enableReplayPersistence) return;
|
|
649
|
+
const prefix = this.config.replayStorageKeyPrefix;
|
|
650
|
+
try {
|
|
651
|
+
this.lastEventId = this.config.replayStorage.getItem(prefix + STORAGE_KEYS.lastEventId);
|
|
652
|
+
this.currentExecutionId = this.config.replayStorage.getItem(prefix + STORAGE_KEYS.executionId);
|
|
653
|
+
this.currentSessionId = this.config.replayStorage.getItem(prefix + STORAGE_KEYS.sessionId);
|
|
654
|
+
} catch {}
|
|
655
|
+
}
|
|
656
|
+
saveReplayState() {
|
|
657
|
+
if (!this.config.enableReplayPersistence) return;
|
|
658
|
+
const prefix = this.config.replayStorageKeyPrefix;
|
|
659
|
+
try {
|
|
660
|
+
if (this.lastEventId) this.config.replayStorage.setItem(prefix + STORAGE_KEYS.lastEventId, this.lastEventId);
|
|
661
|
+
if (this.currentExecutionId) this.config.replayStorage.setItem(prefix + STORAGE_KEYS.executionId, this.currentExecutionId);
|
|
662
|
+
if (this.currentSessionId) this.config.replayStorage.setItem(prefix + STORAGE_KEYS.sessionId, this.currentSessionId);
|
|
663
|
+
} catch {}
|
|
664
|
+
}
|
|
665
|
+
};
|
|
666
|
+
//#endregion
|
|
667
|
+
export { INITIAL_METRICS, SessionGatewayClient, calculateConnectionQuality };
|