@lumiastream/tapo-cove 3.28.1 → 3.29.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/LICENSE +24 -0
- package/dist/index.d.mts +48 -1
- package/dist/index.d.ts +48 -1
- package/dist/index.js +1 -31
- package/dist/index.mjs +1 -15
- package/package.json +9 -6
package/LICENSE
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Lumia Stream Proprietary License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Lumia Stream
|
|
4
|
+
All rights reserved.
|
|
5
|
+
|
|
6
|
+
Permission is NOT granted to use, copy, modify, merge, publish, distribute,
|
|
7
|
+
sublicense, and/or sell copies of this software, in whole or in part, without
|
|
8
|
+
an explicit written agreement from Lumia Stream. Use of this software is
|
|
9
|
+
restricted to the terms provided with an official Lumia Stream license or
|
|
10
|
+
subscription agreement.
|
|
11
|
+
|
|
12
|
+
This license applies to all packages, libraries, source files, build
|
|
13
|
+
artifacts, and assets contained in this repository, including but not limited
|
|
14
|
+
to the `@lumiastream/*` packages published from this monorepo.
|
|
15
|
+
|
|
16
|
+
THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
SOFTWARE.
|
|
23
|
+
|
|
24
|
+
For licensing inquiries, contact: dev@lumiastream.com
|
package/dist/index.d.mts
CHANGED
|
@@ -89,6 +89,7 @@ declare class TapoApi {
|
|
|
89
89
|
device: {
|
|
90
90
|
id?: string;
|
|
91
91
|
host?: string;
|
|
92
|
+
info?: any;
|
|
92
93
|
};
|
|
93
94
|
state: LightState;
|
|
94
95
|
}) => Promise<boolean>;
|
|
@@ -101,6 +102,19 @@ declare class TapoApi {
|
|
|
101
102
|
}) => Promise<boolean>;
|
|
102
103
|
private loginDeviceByIp;
|
|
103
104
|
getDeviceInfoByIp(deviceIp: string): Promise<ITapo>;
|
|
105
|
+
getDevicesByIp(deviceIp: string): Promise<ITapo[]>;
|
|
106
|
+
/**
|
|
107
|
+
* Fetch the device's component map (`component_nego`). Returns `{ componentId: version }`.
|
|
108
|
+
* Useful for feature detection — e.g. presence of `energy_monitoring` flags a P304M/P210M
|
|
109
|
+
* strip that exposes per-outlet power draw. Pre-KLAP firmware may not implement this; in
|
|
110
|
+
* that case we return an empty map and callers should treat capability flags as unknown.
|
|
111
|
+
*/
|
|
112
|
+
getComponents(deviceIp: string): Promise<Record<string, number>>;
|
|
113
|
+
private _fetchComponents;
|
|
114
|
+
private _getOrCreateSession;
|
|
115
|
+
private _buildTapoFromDeviceInfo;
|
|
116
|
+
private _isKnownMultiSocketModel;
|
|
117
|
+
private _fetchChildDeviceList;
|
|
104
118
|
hasDeviceSession(deviceIp: string): boolean;
|
|
105
119
|
clearDeviceSession(deviceIp: string): void;
|
|
106
120
|
getSessionData(deviceIp: string): any;
|
|
@@ -121,6 +135,39 @@ declare const discover: (config: {
|
|
|
121
135
|
types?: ILumiaDeviceType[];
|
|
122
136
|
}) => Promise<any>;
|
|
123
137
|
|
|
138
|
+
type TapoLocalDiscoveryResult = {
|
|
139
|
+
ip: string;
|
|
140
|
+
mac?: string;
|
|
141
|
+
deviceId?: string;
|
|
142
|
+
deviceType?: string;
|
|
143
|
+
deviceModel?: string;
|
|
144
|
+
hwVersion?: string;
|
|
145
|
+
fwVersion?: string;
|
|
146
|
+
alias?: string;
|
|
147
|
+
owner?: string;
|
|
148
|
+
encryptType?: string;
|
|
149
|
+
httpPort?: number;
|
|
150
|
+
supportsHttps?: boolean;
|
|
151
|
+
raw?: any;
|
|
152
|
+
};
|
|
153
|
+
/**
|
|
154
|
+
* Local UDP discovery for Tapo / TP-Link SMART devices.
|
|
155
|
+
*
|
|
156
|
+
* Broadcasts a probe on UDP port 20002 across every active IPv4 interface and gathers
|
|
157
|
+
* device identity responses for `timeoutMs`. Returns an array of unique devices keyed by IP.
|
|
158
|
+
*
|
|
159
|
+
* Notes:
|
|
160
|
+
* - Requires no Tapo cloud credentials — works fully offline.
|
|
161
|
+
* - Some firmwares respond with an encrypted body we can't parse; those are filtered out.
|
|
162
|
+
* Users can still add them manually by IP. The `error_code` and `mgt_encrypt_schm` fields
|
|
163
|
+
* on parsed responses indicate whether KLAP or AES authentication is required next.
|
|
164
|
+
* - Devices that don't answer (older HS-series, deeply firewalled, on a separate VLAN, etc.)
|
|
165
|
+
* will simply not appear; the manual-IP path remains the fallback.
|
|
166
|
+
*/
|
|
167
|
+
declare const discoverLocalUdp: (opts?: {
|
|
168
|
+
timeoutMs?: number;
|
|
169
|
+
}) => Promise<TapoLocalDiscoveryResult[]>;
|
|
170
|
+
|
|
124
171
|
declare class KlapCipher {
|
|
125
172
|
private readonly key;
|
|
126
173
|
private readonly sig;
|
|
@@ -239,4 +286,4 @@ declare namespace tapo_constants {
|
|
|
239
286
|
};
|
|
240
287
|
}
|
|
241
288
|
|
|
242
|
-
export { LightState, TapoApi, TapoCloudApi, tapo_constants as TapoConstants, discover, discoverLocalDevices };
|
|
289
|
+
export { LightState, TapoApi, TapoCloudApi, tapo_constants as TapoConstants, discover, discoverLocalDevices, discoverLocalUdp };
|
package/dist/index.d.ts
CHANGED
|
@@ -89,6 +89,7 @@ declare class TapoApi {
|
|
|
89
89
|
device: {
|
|
90
90
|
id?: string;
|
|
91
91
|
host?: string;
|
|
92
|
+
info?: any;
|
|
92
93
|
};
|
|
93
94
|
state: LightState;
|
|
94
95
|
}) => Promise<boolean>;
|
|
@@ -101,6 +102,19 @@ declare class TapoApi {
|
|
|
101
102
|
}) => Promise<boolean>;
|
|
102
103
|
private loginDeviceByIp;
|
|
103
104
|
getDeviceInfoByIp(deviceIp: string): Promise<ITapo>;
|
|
105
|
+
getDevicesByIp(deviceIp: string): Promise<ITapo[]>;
|
|
106
|
+
/**
|
|
107
|
+
* Fetch the device's component map (`component_nego`). Returns `{ componentId: version }`.
|
|
108
|
+
* Useful for feature detection — e.g. presence of `energy_monitoring` flags a P304M/P210M
|
|
109
|
+
* strip that exposes per-outlet power draw. Pre-KLAP firmware may not implement this; in
|
|
110
|
+
* that case we return an empty map and callers should treat capability flags as unknown.
|
|
111
|
+
*/
|
|
112
|
+
getComponents(deviceIp: string): Promise<Record<string, number>>;
|
|
113
|
+
private _fetchComponents;
|
|
114
|
+
private _getOrCreateSession;
|
|
115
|
+
private _buildTapoFromDeviceInfo;
|
|
116
|
+
private _isKnownMultiSocketModel;
|
|
117
|
+
private _fetchChildDeviceList;
|
|
104
118
|
hasDeviceSession(deviceIp: string): boolean;
|
|
105
119
|
clearDeviceSession(deviceIp: string): void;
|
|
106
120
|
getSessionData(deviceIp: string): any;
|
|
@@ -121,6 +135,39 @@ declare const discover: (config: {
|
|
|
121
135
|
types?: ILumiaDeviceType[];
|
|
122
136
|
}) => Promise<any>;
|
|
123
137
|
|
|
138
|
+
type TapoLocalDiscoveryResult = {
|
|
139
|
+
ip: string;
|
|
140
|
+
mac?: string;
|
|
141
|
+
deviceId?: string;
|
|
142
|
+
deviceType?: string;
|
|
143
|
+
deviceModel?: string;
|
|
144
|
+
hwVersion?: string;
|
|
145
|
+
fwVersion?: string;
|
|
146
|
+
alias?: string;
|
|
147
|
+
owner?: string;
|
|
148
|
+
encryptType?: string;
|
|
149
|
+
httpPort?: number;
|
|
150
|
+
supportsHttps?: boolean;
|
|
151
|
+
raw?: any;
|
|
152
|
+
};
|
|
153
|
+
/**
|
|
154
|
+
* Local UDP discovery for Tapo / TP-Link SMART devices.
|
|
155
|
+
*
|
|
156
|
+
* Broadcasts a probe on UDP port 20002 across every active IPv4 interface and gathers
|
|
157
|
+
* device identity responses for `timeoutMs`. Returns an array of unique devices keyed by IP.
|
|
158
|
+
*
|
|
159
|
+
* Notes:
|
|
160
|
+
* - Requires no Tapo cloud credentials — works fully offline.
|
|
161
|
+
* - Some firmwares respond with an encrypted body we can't parse; those are filtered out.
|
|
162
|
+
* Users can still add them manually by IP. The `error_code` and `mgt_encrypt_schm` fields
|
|
163
|
+
* on parsed responses indicate whether KLAP or AES authentication is required next.
|
|
164
|
+
* - Devices that don't answer (older HS-series, deeply firewalled, on a separate VLAN, etc.)
|
|
165
|
+
* will simply not appear; the manual-IP path remains the fallback.
|
|
166
|
+
*/
|
|
167
|
+
declare const discoverLocalUdp: (opts?: {
|
|
168
|
+
timeoutMs?: number;
|
|
169
|
+
}) => Promise<TapoLocalDiscoveryResult[]>;
|
|
170
|
+
|
|
124
171
|
declare class KlapCipher {
|
|
125
172
|
private readonly key;
|
|
126
173
|
private readonly sig;
|
|
@@ -239,4 +286,4 @@ declare namespace tapo_constants {
|
|
|
239
286
|
};
|
|
240
287
|
}
|
|
241
288
|
|
|
242
|
-
export { LightState, TapoApi, TapoCloudApi, tapo_constants as TapoConstants, discover, discoverLocalDevices };
|
|
289
|
+
export { LightState, TapoApi, TapoCloudApi, tapo_constants as TapoConstants, discover, discoverLocalDevices, discoverLocalUdp };
|
package/dist/index.js
CHANGED
|
@@ -1,31 +1 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var lumiaRgbTypes = require('@lumiastream/lumia-rgb-types');
|
|
4
|
-
var C = require('axios');
|
|
5
|
-
var xe = require('@network-utils/arp-lookup');
|
|
6
|
-
var ie = require('local-devices');
|
|
7
|
-
var g = require('crypto');
|
|
8
|
-
var Se = require('util');
|
|
9
|
-
var lumiaRgbUtils = require('@lumiastream/lumia-rgb-utils');
|
|
10
|
-
var Le = require('http');
|
|
11
|
-
|
|
12
|
-
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
-
|
|
14
|
-
var C__default = /*#__PURE__*/_interopDefault(C);
|
|
15
|
-
var xe__default = /*#__PURE__*/_interopDefault(xe);
|
|
16
|
-
var ie__default = /*#__PURE__*/_interopDefault(ie);
|
|
17
|
-
var g__default = /*#__PURE__*/_interopDefault(g);
|
|
18
|
-
var Se__default = /*#__PURE__*/_interopDefault(Se);
|
|
19
|
-
var Le__default = /*#__PURE__*/_interopDefault(Le);
|
|
20
|
-
|
|
21
|
-
var ae=Object.defineProperty;var ce=(i,e)=>{for(var t in e)ae(i,t,{get:e[t],enumerable:!0});};var R=i=>Buffer.from(i,"base64").toString();var m=i=>{let e=i.error_code;if(e)switch(console.debug("[Tapo] errorCode: ",e),e){case 0:return;case-1010:throw new Error("Invalid public key length");case-1012:throw new Error("Invalid terminal UUID");case-1501:throw new Error("Invalid request or credentials");case-1002:throw new Error("Incorrect request");case-1003:throw new Error("JSON format error");case-20601:throw new Error("Incorrect email or password");case-20675:throw new Error("Cloud token expired or invalid");case 9999:throw new Error("Device token expired or invalid");default:throw new Error(`Unexpected Error Code: ${e} (${i.msg})`)}};var x=class{constructor(){this._values={};this.transition=e=>(this._values.transition_period=e,this);this.duration=this.transition;this.getValues=()=>this._values;}},w=class extends x{constructor(t){super();this.create=t=>(t&&Object.keys(t).forEach(s=>{let r;this.hasOwnProperty(s)&&(r=this[s],lumiaRgbUtils.isFunction(r)&&lumiaRgbUtils.isTruly(t[s])&&r.apply(this,[t[s]]));}),this);this.on=(t=!0)=>(this._values.device_on=t,this);this.turnOn=this.on;this.off=()=>(this.on(!1),this);this.turnOff=this.off;this.mode=(t="normal")=>(t==="normal"&&(this._values.color_temp=0),this._values.mode=t,this);this.hue=t=>(this._values.hue=t,this._values.color_temp=0,this);this.bri=t=>(this._values.brightness=t,this);this.brightness=this.bri;this.sat=t=>(this._values.saturation=t,this);this.saturation=this.sat;this.temp=t=>(this._values.color_temp=t,this);this.colorTemperature=this.temp;this.hsv=t=>{let s=[];return Array.isArray(t)?s=t:s=[t.h,t.s,t.v],this.hue(s[0]),this.sat(s[1]),this.bri(s[2]),this};this.rgb=t=>{let s;return Array.isArray(t)?s=lumiaRgbUtils.rgb2hsv(t):s=lumiaRgbUtils.rgb2hsv([t.r,t.g,t.b]),this.hsv(s)};this.color=t=>(Array.isArray(t)&&(t={r:t[0],g:t[1],b:t[2]}),t.ct?this.temp(t.ct):this.rgb({r:t.r,g:t.g,b:t.b}));t&&this.create(t);}};var $="aes-128-cbc",F=async(i,e,t)=>{let s=g.randomBytes(16),r=await C__default.default.post(`http://${t}/app/handshake1`,s,{responseType:"arraybuffer",withCredentials:!0,timeout:4e3}).catch(u=>{throw u?.response?.status===404?new Error("Klap protocol not supported"):new Error(`handshake1 failed: ${u}`)}),o=Buffer.from(r.data),n=r.headers["set-cookie"]?.[0],a=n?.substring(0,n.indexOf(";"))||"",c=o.slice(0,16),f=o.slice(16),d=ye(i,e),y=me(s,c,d);if(!Pe(y,f))throw new Error("email or password incorrect");let p=ge(s,c,d),h={};return h.Cookie=a,await C__default.default.post(`http://${t}/app/handshake2`,p,{responseType:"arraybuffer",headers:h,timeout:4e3}).catch(u=>{throw new Error(`handshake2 failed: ${u}`)}),le(t,s,c,d,a)},le=(i,e,t,s,r)=>{let o=we(e,t,s),n=ve(e,t,s),a=be(e,t,s),c=Be(n),f=h=>{let u=JSON.stringify(h),l=g.createCipheriv($,o,M(n,c));var B=l.update(A(u));return Buffer.concat([B,l.final()])},d=h=>{let u=g.createDecipheriv($,o,M(n,c));var l=u.update(h.slice(32));return JSON.parse(Buffer.concat([l,u.final()]).toString())},y=h=>{let u=f(h),l=v(Buffer.concat([a,c,u]));return Buffer.concat([l,u])};return {send:async h=>{c=ke(c);let u=y(h),l={};l.Cookie=r;let B=await C__default.default({method:"post",url:`http://${i}/app/request`,data:u,responseType:"arraybuffer",headers:l,timeout:4e3,params:{seq:c.readInt32BE()}}),_=d(B.data);return m(_),_.result},sessionCookie:r,cipher:{key:o,iv:n,seq:c}}},me=(i,e,t)=>v(Buffer.concat([i,e,t])),ge=(i,e,t)=>v(Buffer.concat([e,i,t])),ye=(i,e)=>v(Buffer.concat([N(i),N(e)])),we=(i,e,t)=>v(Buffer.concat([A("lsk"),i,e,t])).slice(0,16),ve=(i,e,t)=>v(Buffer.concat([A("iv"),i,e,t])),be=(i,e,t)=>v(Buffer.concat([A("ldk"),i,e,t])).slice(0,28),Be=i=>i.slice(i.length-4),M=(i,e)=>Buffer.concat([i.slice(0,12),e]),ke=i=>{let e=Buffer.alloc(4);return e.writeInt32BE(i.readInt32BE()+1),e},v=i=>g.createHash("sha256").update(i).digest(),N=i=>g.createHash("sha1").update(i).digest(),Pe=(i,e)=>i.compare(e)===0,A=i=>Buffer.from(i,"utf-8");var Te="rsa",W="aes-128-cbc",z="top secret",b=class{constructor(e,t){this.key=e;this.iv=t;}static toBase64(e){return Buffer.from(e.normalize("NFKC"),"utf-8").toString("base64")}static encodeUsername(e){let t=g__default.default.createHash("sha1");return t.update(e.normalize("NFKC")),t.digest("hex")}static createKeyPair(){return new Promise((e,t)=>{g__default.default.generateKeyPair("rsa",{modulusLength:1024},(s,r,o)=>{if(s)return t(s);let n=r.export({format:"pem",type:"spki"}).toString("base64"),a=o.export({format:"pem",type:"pkcs1"}).toString("base64");e({public:n,private:a});});})}encrypt(e){let t=g__default.default.createCipheriv("aes-128-cbc",this.key,this.iv);return `${t.update(e,"utf8","base64")}${t.final("base64")}`}decrypt(e){let t=g__default.default.createDecipheriv("aes-128-cbc",this.key,this.iv);return `${t.update(e,"base64","utf8")}${t.final("utf8")}`}},J=async()=>{let i={modulusLength:1024,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs1",format:"pem",cipher:"aes-256-cbc",passphrase:z}};return Se__default.default.promisify(g__default.default.generateKeyPair)(Te,i)},V=(i,e)=>{var t=g__default.default.createCipheriv(W,e.key,e.iv),s=t.update(Buffer.from(JSON.stringify(i)));return Buffer.concat([s,t.final()]).toString("base64")},j=(i,e)=>{var t=g__default.default.createDecipheriv(W,e.key,e.iv),s=t.update(Buffer.from(i,"base64"));return JSON.parse(Buffer.concat([s,t.final()]).toString())},Z=(i,e)=>{let t=Buffer.from(i,"base64");return g__default.default.privateDecrypt({key:e,padding:g__default.default.constants.RSA_PKCS1_PADDING,passphrase:z},t)},H=i=>Buffer.from(i).toString("base64");var Y=i=>{var e=g__default.default.createHash("sha1");return e.update(i),e.digest("hex")};var ee=async(i,e,t)=>{let s=await _e(t),r={method:"login_device",params:{username:H(Y(i)),password:H(e)},requestTimeMils:0},o=await X(r,s);return s.token=o.token,{send:a=>X(a,s),deviceKey:s}},_e=async i=>{let e=await J(),t={method:"handshake",params:{key:e.publicKey}},s=await C__default.default({method:"post",url:`http://${i}/app`,data:t,timeout:4e3});m(s.data);let r=s.headers["set-cookie"]?.[0],o=r?.substring(0,r.indexOf(";"))||"",n=Z(s.data.result.key,e.privateKey);return {key:n.subarray(0,16),iv:n.subarray(16,32),deviceIp:i,sessionCookie:o}},X=async(i,e)=>{let s={method:"securePassthrough",params:{request:V(i,e)}},r=await C__default.default({method:"post",url:`http://${e.deviceIp}/app?token=${e.token}`,data:s,headers:{Cookie:e.sessionCookie},timeout:4e3});m(r.data);let o=j(r.data.result.response,e);return m(o),o.result};var re=i=>typeof i?.message=="string"&&i.message.length>0?i.message:typeof i=="string"&&i.length>0?i:String(i??"Unknown error"),k=class{constructor(e){this._config={rawEmail:"",rawPassword:"",timeout:1e4,httpTimeout:4e3};this._deviceSessions=new Map;this.auth=async(e,t)=>{let s=t?.email||this._config.rawEmail,r=t?.password||this._config.rawPassword;if(this._config.rawEmail=s,this._config.rawPassword=r,!s||!r)throw new Error("Email and password are required for authentication");if(!e)throw new Error("Device IP address(es) required for authentication");return this.loginDeviceByIp(e,s,r)};this.setup=async(e,t)=>{let s=e.map(o=>o.host),r=await this.auth(s,t);return e.forEach(o=>{if(r.success.includes(o.host)){let n=this._deviceSessions.get(o.host);n&&this._deviceSessions.set(o.id,n);}}),r};this.sendState=async e=>{let t=e.device.host||e.device.id;if(!t)throw new Error("Device IP or ID is required");let s=this._deviceSessions.get(t);if(!s)throw new Error(`No session found for device ${t}. Please call auth or setup first.`);let o={method:"set_device_info",params:e.state.getValues()};s?.deviceKey&&(o.terminalUUID=lumiaRgbUtils.uuidv4());try{return await s.send(o),!0}catch{return !1}};this.sendPower=async e=>this.sendState({device:e.device,state:new w({on:e.power})});this._config={...this._config,...e},this._config.rawEmail=e?.email||"",this._config.rawPassword=e?.password||"";}async loginDeviceByIp(e,t,s){let r=t||this._config.rawEmail,o=s||this._config.rawPassword;if(!r||!o)throw new Error("Email and password are required for loginDeviceByIp");let n=Array.isArray(e)?e:[e],a={success:[],failed:[]},c=n.map(async f=>{try{try{let d=await F(r,o,f);this._deviceSessions.set(f,d),a.success.push(f);}catch(d){let y=re(d);try{let p=await ee(r,o,f);this._deviceSessions.set(f,p),a.success.push(f);}catch(p){let h=re(p),u=`Failed to login to device at ${f}. KLAP error: ${y}; Legacy error: ${h}`;a.failed.push({ip:f,error:u});}}}catch(d){a.failed.push({ip:f,error:d.message||"Unknown error"});}});if(await Promise.allSettled(c),!Array.isArray(e)&&a.failed.length>0)throw new Error(a.failed[0].error);return a}async getDeviceInfoByIp(e){let t=this._deviceSessions.get(e);if(!t){if(!(await this.auth(e,{email:this._config.rawEmail,password:this._config.rawPassword})).success.includes(e))throw new Error(`Failed to authenticate with device at ${e}. Please check your credentials.`);if(t=this._deviceSessions.get(e),!t)throw new Error(`Failed to establish session with device at ${e} after authentication.`)}let s={method:"get_device_info"};try{let r=await t.send(s),o=`Tapo Device (${e})`;return r.nickname&&(o=atob(r.nickname)),{id:r.device_id||`tapo-${e.replace(/\./g,"-")}`,name:o,address:`http://${e}`,host:e,lumiaInfo:{alias:o,identifier:r.device_id||`tapo-${e.replace(/\./g,"-")}`,serial:r.hw_id||r.mac||e,model:r.model||"Unknown Model",lumiaType:r.device_on!==void 0?lumiaRgbTypes.ILumiaDeviceType.PLUG:lumiaRgbTypes.ILumiaDeviceType.LIGHT,zonable:!1,maxZones:r.device_on!==void 0?0:1,zones:[],rgb:r.hue!==void 0||r.color_temp!==void 0,white:r.brightness!==void 0,connectionType:lumiaRgbTypes.ILumiaDeviceConnectionType.WIFI,brand:lumiaRgbTypes.ILumiaDeviceBrands.TAPO,product:r.model||"Tapo Device"},info:r}}catch(r){throw new Error(`Failed to get device info from ${e}: ${r.message}`)}}hasDeviceSession(e){return this._deviceSessions.has(e)}clearDeviceSession(e){this._deviceSessions.delete(e);}getSessionData(e){let t=this._deviceSessions.get(e);if(!t)throw new Error(`No session found for device ${e}. Please authenticate first.`);return {deviceIp:e,sessionCookie:t.sessionCookie,cipher:t.cipher,credentials:{email:this._config.rawEmail,password:this._config.rawPassword}}}};var E=class{constructor(e,t,s){let{iv:r,seq:o}=this.ivDerive(e,t,s);this.key=this.keyDerive(e,t,s),this.sig=this.sigDerive(e,t,s),this.iv=r,this.seq=o;}encrypt(e){if(this.seq+=1,typeof e=="string"&&(e=Buffer.from(e,"utf8")),!Buffer.isBuffer(e))throw new Error("msg must be a string or buffer");let t=g__default.default.createCipheriv("aes-128-cbc",this.key,this.ivSeq()),s=Buffer.concat([t.update(e),t.final()]),r=Buffer.alloc(4);r.writeInt32BE(this.seq,0);let o=g__default.default.createHash("sha256");o.update(Buffer.concat([this.sig,r,s]));let n=o.digest();return {encrypted:Buffer.concat([n,s]),seq:this.seq}}decrypt(e){if(!Buffer.isBuffer(e))return e;let t=g__default.default.createDecipheriv("aes-128-cbc",this.key,this.ivSeq());return Buffer.concat([t.update(e.subarray(32)),t.final()]).toString("utf8")}keyDerive(e,t,s){let r=Buffer.concat([Buffer.from("lsk"),e,t,s]);return g__default.default.createHash("sha256").update(r).digest().subarray(0,16)}ivDerive(e,t,s){let r=Buffer.concat([Buffer.from("iv"),e,t,s]),o=g__default.default.createHash("sha256").update(r).digest(),n=o.subarray(-4).readInt32BE(0);return {iv:o.subarray(0,12),seq:n}}sigDerive(e,t,s){let r=Buffer.concat([Buffer.from("ldk"),e,t,s]);return g__default.default.createHash("sha256").update(r).digest().subarray(0,28)}ivSeq(){let e=Buffer.alloc(4);e.writeInt32BE(this.seq,0);let t=Buffer.concat([this.iv,e]);if(t.length!==16)throw new Error("Length of iv is not 16");return t}};var S=class S{constructor(e){this._baseUrl="https://eu-wap.tplinkcloud.com/";this._config={rawEmail:"",rawPassword:"",email:"",password:"",authToken:null,timeout:1e4,httpTimeout:4e3};this._token="";this._devices=new Map;this.auth=async e=>{let t=e?.email||this._config.email,s=e?.password||this._config.password;if(!t||!s)throw new Error("Email and password are required for authentication");let r={method:"login",params:{appType:"Tapo_Ios",cloudPassword:s,cloudUserName:t,terminalUUID:lumiaRgbUtils.uuidv4()}},o=await C__default.default({method:"post",url:this._baseUrl,data:r});return m(o.data),this._token=o.data.result.token,this._token};this.setup=async(e,t)=>{let s=e.map(async o=>{let n=await this.handshake(o.host,void 0,!1,t);this._devices.set(o.id,n);}),r=[];try{r=await Promise.allSettled(s);}catch(o){console.error("tapo cloud setup err: ",o);}return {responses:r,devices:this._devices}};this.sendState=async e=>{let t=this._devices.get(e.device.id);if(!t)return Promise.resolve(!1);await this.handshake(t?.ip,t,!1);let s=e.state.getValues(),r=JSON.stringify({method:"set_device_info",params:s}),o=t.cipher.encrypt(r);if((await this.sessionPost(t.ip,"/request",o.encrypted,"arraybuffer",t.Cookie,{seq:o.seq.toString()})).status!==200)throw new Error("[KLAP] Request failed");return !0};this.sendPower=async e=>this.sendState({device:e.device,state:new w({on:e.power})});this.axiosInstance=C__default.default.create(),this.axiosInstance.defaults.timeout=e?.httpTimeout||4e3,this._config={...this._config,...e},this._config.rawEmail=this._config.email,this._config.rawPassword=this._config.password,this._config.email=b.toBase64(b.encodeUsername(this._config.email)),this._config.password=b.toBase64(this._config.password),this.terminalUUID=g__default.default.randomUUID();}async sessionPost(e,t,s,r,o,n){let a={Accept:"*/*","Content-Type":"application/octet-stream"};return o&&(process?.versions?.electron?a.BypassCookie=o:a.Cookie=o),C__default.default.post(`http://${e}/app${t}`,s,{responseType:r,params:n,headers:a,httpAgent:new Le__default.default.Agent({keepAlive:!1})})}needsNewHandshake(e){return !!(!e||!e.cipher||e.IsExpired||!e.Cookie)}async handshake(e,t,s=!1,r){if(!this.needsNewHandshake(t)&&!s)return;let{localSeed:o,remoteSeed:n,authHash:a,deviceSession:c}=await this.firstHandshake(e,void 0,r);return await this.secondHandshake(c,e,o,n,a,r)}async firstHandshake(e,t,s){let r=t||g__default.default.randomBytes(16),o=await this.sessionPost(e,"/handshake1",r,"arraybuffer");if(s?.debug("handshake1Result: ",o),o.status!==200)throw new Error("Handshake1 failed");if(o.headers["content-length"]!=="48")throw new Error("Handshake1 failed due to invalid content length");let n=o.headers["bypass-cookie"]||o.headers["set-cookie"]?.[0],a=Buffer.from(new Uint8Array(o.data)),[c,f]=n.split(";"),d=f.split("=").pop(),y=new q(d,e,c),p=a.subarray(0,16),h=a.subarray(16);s?.debug(`[KLAP] First handshake decoded successfully:
|
|
22
|
-
Remote Seed:`,p.toString("hex"),`
|
|
23
|
-
Server Hash:`,h.toString("hex"),`
|
|
24
|
-
Cookie:`,c);let u=this.hashAuth(this._config.rawEmail,this._config.rawPassword),l=this.sha256(Buffer.concat([r,p,u]));if(Buffer.compare(l,h)===0)return s?.debug("[KLAP] Local auth hash matches server hash"),{localSeed:r,remoteSeed:p,authHash:u,deviceSession:y};let B=this.sha256(Buffer.concat([r,p,this.hashAuth("","")]));if(Buffer.compare(B,h)===0)return s?.debug("[KLAP] [WARN] Empty auth hash matches server hash"),{localSeed:r,remoteSeed:p,authHash:B,deviceSession:y};let _=this.sha256(Buffer.concat([r,p,this.hashAuth(S.TP_TEST_USER,S.TP_TEST_PASSWORD)]));if(Buffer.compare(_,h)===0)return s?.debug("[KLAP] [WARN] Test auth hash matches server hash"),{localSeed:r,remoteSeed:p,authHash:_,deviceSession:y};throw new Error("Failed to verify server hash")}async secondHandshake(e,t,s,r,o,n){let a=this.sha256(Buffer.concat([r,s,o]));try{let c=await this.sessionPost(t,"/handshake2",a,"text",e.Cookie);if(c.status===200)return n?.debug("[KLAP] Second handshake successful"),e.completeHandshake(t,new E(s,r,o));n.warn("[KLAP] Second handshake failed",c.data);}catch(c){n.error("[KLAP] Second handshake failed:",c.response.data||c.message);}}sha256(e){return g__default.default.createHash("sha256").update(e).digest()}sha1(e){return g__default.default.createHash("sha1").update(e).digest()}hashAuth(e,t){return this.sha256(Buffer.concat([this.sha1(Buffer.from(e.normalize("NFKC"))),this.sha1(Buffer.from(t.normalize("NFKC")))]))}};S.TP_TEST_USER="test@tp-link.net",S.TP_TEST_PASSWORD="test";var T=S,q=class i{constructor(e,t,s,r){this.ip=t;this.cookie=s;this.cipher=r;this.handshakeCompleted=!1;this.rawTimeout=e,this.expireAt=new Date(Date.now()+parseInt(e)*1e3),r&&(this.handshakeCompleted=!0);}get IsExpired(){return this.expireAt.getTime()-Date.now()<=40*1e3}get Cookie(){return this.cookie}completeHandshake(e,t){return new i(this.rawTimeout,e,this.cookie,t)}};var Ce=["84:d8:1b","78:8c:b5","cc:ba:bd","e4:fa:c4","ac:84:c6","50:c7:bf"],He=5,U=i=>(i||"").replace(/[^a-fA-F0-9]/g,"").toLowerCase(),Ke=i=>{let e=U(i);return e.length!==12?(i||"").toLowerCase():e.match(/.{1,2}/g)?.join(":")||(i||"").toLowerCase()},qe=i=>{let e=(i||"").toLowerCase();return Ce.some(t=>e.startsWith(t))},Ue=async i=>{let e=U(i),t=Ke(i),s=0;for(;s<=He;){try{let n=await xe__default.default.toIP(t);if(n)return n}catch{}let o=(await ie__default.default({skipNameResolution:!0})).find(n=>U(n.mac)===e);if(o?.ip)return o.ip;s++;}},Oe=async i=>{let e=await ie__default.default({skipNameResolution:!0}),{email:t,password:s}=i;return e.filter(r=>qe(r.mac)).map(r=>({ip:r.ip,mac:r.mac,loginDevice:async()=>{let o=new k({email:t,password:s}),n=await o.auth(r.ip,{email:t,password:s});if(!n.success.includes(r.ip)){let a=n.failed.find(c=>c.ip===r.ip);throw new Error(a?.error||`Failed to authenticate with device ${r.ip}`)}return o}}))},$e=async i=>{let e=new T(i),t=i.token;!t&&i.email&&i.password&&(t=await e.auth({email:i.email,password:i.password}));let s={method:"getDeviceList"},r=await C__default.default({method:"post",url:`${e._baseUrl}?token=${t}`,data:s});m(r.data);let o=[];for(let n of r.data.result?.deviceList||[]){if(!n.ip){let a=await Ue(n.deviceMac);if(!a)continue;n.ip=a;}switch(n.deviceType){case"IOT.SMARTBULB":case"SMART.TAPOBULB":{if(i.types&&!i.types.includes(lumiaRgbTypes.ILumiaDeviceType.LIGHT))continue;let a=n.deviceType==="SMART.TAPOBULB",c=(a?R(n.alias):n.alias)??n.deviceName;o.push({name:c,id:n.deviceMac,address:`http://${n.ip}`,host:n.ip,lumiaInfo:{alias:c,identifier:n.deviceMac,serial:n.hwId,lumiaType:lumiaRgbTypes.ILumiaDeviceType.LIGHT,zonable:!1,maxZones:1,zones:[],rgb:!0,white:!0,connectionType:lumiaRgbTypes.ILumiaDeviceConnectionType.WIFI,brand:a?lumiaRgbTypes.ILumiaDeviceBrands.TPLINK:lumiaRgbTypes.ILumiaDeviceBrands.TPLINK,product:n?.deviceModel}});break}case"IOT.SMARTPLUGSWITCH":case"SMART.TAPOPLUG":{if(i.types&&!i.types.includes(lumiaRgbTypes.ILumiaDeviceType.PLUG))continue;let a=n.deviceType==="SMART.TAPOPLUG",c=(a?R(n.alias):n.alias)??n.deviceName;o.push({name:c,id:n.deviceMac,address:`http://${n.ip}`,host:n.ip,lumiaInfo:{alias:c,identifier:n.deviceMac,serial:n.hwId,lumiaType:lumiaRgbTypes.ILumiaDeviceType.PLUG,zonable:!1,maxZones:0,zones:[],rgb:!1,white:!1,connectionType:lumiaRgbTypes.ILumiaDeviceConnectionType.WIFI,brand:a?lumiaRgbTypes.ILumiaDeviceBrands.TPLINK:lumiaRgbTypes.ILumiaDeviceBrands.TPLINK,product:n?.deviceModel}});break}}}return o},Me=$e;var ne={};ce(ne,{DeviceResTypes:()=>Ge,DeviceSendValues:()=>Fe,ETapoDeviceTypes:()=>oe,TapoDeviceTypes:()=>Ne});var Ne={ALL:"all",BULBS:"bulb",LIGHTSTRIPS:"lightstrip",PLUGS:"plug"},oe=(r=>(r.ALL="all",r.BULBS="bulb",r.LIGHTSTRIPS="lightstrip",r.PLUGS="plug",r))(oe||{}),Ge={BULB:"IOT.SMARTPLUGSWITCH",PLUG:"IOT.SMARTPLUGSWITCH"},Fe={BULB:"smartlife.iot.smartbulb.lightingservice",LIGHTSTRIP:"smartlife.iot.lightStrip",PLUG:"system"};
|
|
25
|
-
|
|
26
|
-
exports.LightState = w;
|
|
27
|
-
exports.TapoApi = k;
|
|
28
|
-
exports.TapoCloudApi = T;
|
|
29
|
-
exports.TapoConstants = ne;
|
|
30
|
-
exports.discover = Me;
|
|
31
|
-
exports.discoverLocalDevices = Oe;
|
|
1
|
+
'use strict';const a0aH=a0d;function a0c(){const dP=['\x68\x61\x73\x68\x41\x75\x74\x68','\x62\x61\x73\x65\x36\x34','\x63\x68\x69\x6c\x64\x44\x65\x76\x69\x63\x65\x49\x64','\x72\x61\x77\x45\x6d\x61\x69\x6c','\x5b\x74\x61\x70\x6f\x5d\x20\x64\x69\x73\x63\x6f\x76\x65\x72\x79\x20\x66\x69\x6e\x69\x73\x68\x65\x64','\x64\x65\x76\x69\x63\x65\x4d\x61\x63','\x6e\x6f\x77','\x65\x6e\x63\x72\x79\x70\x74\x5f\x74\x79\x70\x65','\x5b\x4b\x4c\x41\x50\x5d\x20\x46\x69\x72\x73\x74\x20\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x20\x64\x65\x63\x6f\x64\x65\x64\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x3a\x0a\x52\x65\x6d\x6f\x74\x65\x20\x53\x65\x65\x64\x3a','\x64\x65\x66\x69\x6e\x65\x50\x72\x6f\x70\x65\x72\x74\x79','\x37\x6e\x63\x59\x6d\x6e\x6e','\x63\x6f\x6c\x6f\x72\x5f\x74\x65\x6d\x70','\x53\x4d\x41\x52\x54\x2e\x54\x41\x50\x4f\x48\x55\x42','\x70\x61\x73\x73\x77\x6f\x72\x64','\x6d\x61\x70','\x69\x73\x41\x72\x72\x61\x79','\x5f\x62\x61\x73\x65\x55\x72\x6c','\x64\x69\x67\x65\x73\x74','\x63\x6f\x6e\x73\x6f\x6c\x65','\x42\x79\x70\x61\x73\x73\x43\x6f\x6f\x6b\x69\x65','\x74\x65\x72\x6d\x69\x6e\x61\x6c\x55\x55\x49\x44','\x73\x74\x72\x69\x6e\x67','\x66\x69\x72\x73\x74\x48\x61\x6e\x64\x73\x68\x61\x6b\x65','\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x5f\x6c\x69\x73\x74','\x72\x73\x61','\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x6f\x63\x74\x65\x74\x2d\x73\x74\x72\x65\x61\x6d','\x63\x61\x74\x63\x68','\x2a\x2f\x2a','\x70\x72\x69\x76\x61\x74\x65\x4b\x65\x79','\x49\x4f\x54\x2e\x53\x4d\x41\x52\x54\x48\x55\x42','\x63\x6f\x6f\x6b\x69\x65','\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65','\x63\x6f\x6d\x70\x6c\x65\x74\x65\x48\x61\x6e\x64\x73\x68\x61\x6b\x65','\x5f\x69\x73\x4b\x6e\x6f\x77\x6e\x4d\x75\x6c\x74\x69\x53\x6f\x63\x6b\x65\x74\x4d\x6f\x64\x65\x6c','\x72\x61\x77\x50\x61\x73\x73\x77\x6f\x72\x64','\x66\x61\x69\x6c\x65\x64','\x70\x6b\x63\x73\x31','\x70\x6f\x77\x65\x72','\x4c\x49\x47\x48\x54\x53\x54\x52\x49\x50\x53','\x32\x35\x35\x2e\x32\x35\x35\x2e\x32\x35\x35\x2e\x32\x35\x35','\x2e\x20\x4b\x4c\x41\x50\x20\x65\x72\x72\x6f\x72\x3a\x20','\x6e\x65\x65\x64\x73\x4e\x65\x77\x48\x61\x6e\x64\x73\x68\x61\x6b\x65','\x35\x70\x55\x4f\x42\x6f\x4a','\x73\x68\x61\x31','\x74\x65\x73\x74\x40\x74\x70\x2d\x6c\x69\x6e\x6b\x2e\x6e\x65\x74','\x72\x67\x62','\x6f\x77\x6e\x65\x72','\x63\x6c\x65\x61\x72\x44\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e','\x6c\x6f\x67\x69\x6e\x5f\x64\x65\x76\x69\x63\x65','\x67\x65\x6e\x65\x72\x61\x74\x65\x4b\x65\x79\x50\x61\x69\x72','\x72\x65\x73\x75\x6c\x74','\x4e\x6f\x20\x73\x65\x73\x73\x69\x6f\x6e\x20\x66\x6f\x75\x6e\x64\x20\x66\x6f\x72\x20\x64\x65\x76\x69\x63\x65\x20','\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68','\x6d\x6f\x64\x65','\x35\x33\x30\x32\x37\x32\x38\x47\x6c\x45\x5a\x48\x75','\x73\x61\x74','\x31\x30\x38\x71\x43\x63\x64\x58\x70','\x68\x61\x73\x44\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e','\x64\x65\x62\x75\x67','\x73\x68\x61\x32\x35\x36','\x61\x6c\x6c\x53\x65\x74\x74\x6c\x65\x64','\x40\x6c\x75\x6d\x69\x61\x73\x74\x72\x65\x61\x6d\x2f\x6e\x65\x74\x77\x6f\x72\x6b\x2d\x63\x6f\x76\x65','\x61\x6c\x6c\x6f\x63','\x61\x6c\x6c','\x6c\x6f\x67\x69\x6e\x44\x65\x76\x69\x63\x65\x42\x79\x49\x70','\x6f\x62\x6a\x65\x63\x74','\x5b\x4b\x4c\x41\x50\x5d\x20\x53\x65\x63\x6f\x6e\x64\x20\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x20\x66\x61\x69\x6c\x65\x64\x3a','\x67\x65\x74\x44\x65\x76\x69\x63\x65\x49\x6e\x66\x6f\x42\x79\x49\x70','\x4e\x46\x4b\x43','\x62\x72\x69\x67\x68\x74\x6e\x65\x73\x73','\x72\x67\x62\x32\x68\x73\x76','\x74\x75\x72\x6e\x4f\x66\x66','\x68\x73\x76','\x70\x65\x6d','\x73\x75\x63\x63\x65\x73\x73','\x65\x78\x70\x69\x72\x65\x41\x74','\x54\x50\x4c\x49\x4e\x4b','\x6d\x61\x74\x63\x68','\x49\x6e\x76\x61\x6c\x69\x64\x20\x74\x65\x72\x6d\x69\x6e\x61\x6c\x20\x55\x55\x49\x44','\x76\x65\x72\x5f\x63\x6f\x64\x65','\x72\x65\x74\x75\x72\x6e\x20\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20','\x6c\x69\x67\x68\x74\x73\x74\x72\x69\x70','\x49\x4c\x75\x6d\x69\x61\x44\x65\x76\x69\x63\x65\x42\x72\x61\x6e\x64\x73','\x44\x65\x76\x69\x63\x65\x20\x49\x50\x20\x61\x64\x64\x72\x65\x73\x73\x28\x65\x73\x29\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x66\x6f\x72\x20\x61\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x69\x6f\x6e','\x54\x41\x50\x4f','\x49\x6e\x63\x6f\x72\x72\x65\x63\x74\x20\x65\x6d\x61\x69\x6c\x20\x6f\x72\x20\x70\x61\x73\x73\x77\x6f\x72\x64','\x6e\x75\x6d\x62\x65\x72','\x2f\x61\x70\x70\x2f\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x32','\x65\x72\x72\x6f\x72','\x69\x73\x5f\x73\x75\x70\x70\x6f\x72\x74\x5f\x68\x74\x74\x70\x73','\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x45\x72\x72\x6f\x72\x20\x43\x6f\x64\x65\x3a\x20','\x6f\x66\x66','\x67\x65\x74\x44\x65\x76\x69\x63\x65\x4c\x69\x73\x74','\x5f\x5f\x70\x72\x6f\x74\x6f\x5f\x5f','\x54\x61\x70\x6f\x20\x44\x65\x76\x69\x63\x65\x20\x28','\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x43\x6f\x6d\x70\x6c\x65\x74\x65\x64','\x39\x35\x36\x30\x31\x32\x30\x59\x6a\x59\x5a\x47\x4c','\x63\x72\x65\x61\x74\x65','\x68\x65\x78','\x63\x6f\x6c\x6f\x72\x54\x65\x6d\x70\x65\x72\x61\x74\x75\x72\x65','\x70\x6f\x73\x74','\x74\x79\x70\x65','\x5b\x4b\x4c\x41\x50\x5d\x20\x5b\x57\x41\x52\x4e\x5d\x20\x54\x65\x73\x74\x20\x61\x75\x74\x68\x20\x68\x61\x73\x68\x20\x6d\x61\x74\x63\x68\x65\x73\x20\x73\x65\x72\x76\x65\x72\x20\x68\x61\x73\x68','\x69\x6e\x64\x65\x78\x4f\x66','\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65','\x31\x31\x34\x37\x34\x34\x36\x61\x41\x53\x78\x46\x69','\x73\x65\x73\x73\x69\x6f\x6e\x50\x6f\x73\x74','\x74\x79\x70\x65\x73','\x64\x65\x76\x69\x63\x65\x5f\x6d\x6f\x64\x65\x6c','\x69\x73\x42\x75\x66\x66\x65\x72','\x74\x65\x73\x74','\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e','\x63\x69\x70\x68\x65\x72','\x67\x65\x74\x56\x61\x6c\x75\x65\x73','\x2d\x31\x35\x30\x31','\x73\x75\x62\x73\x74\x72\x69\x6e\x67','\x5b\x4b\x4c\x41\x50\x5d\x20\x53\x65\x63\x6f\x6e\x64\x20\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c','\x72\x61\x77\x54\x69\x6d\x65\x6f\x75\x74','\x36\x4e\x66\x72\x72\x74\x73','\x5f\x66\x65\x74\x63\x68\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73','\x64\x65\x76\x69\x63\x65\x5f\x74\x79\x70\x65','\x75\x74\x66\x2d\x38','\x74\x6f\x53\x74\x72\x69\x6e\x67','\x70\x72\x69\x76\x61\x74\x65\x44\x65\x63\x72\x79\x70\x74','\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79','\x63\x72\x65\x61\x74\x65\x48\x61\x73\x68','\x64\x65\x76\x69\x63\x65\x54\x79\x70\x65','\x5f\x64\x65\x76\x69\x63\x65\x73','\x50\x4c\x55\x47','\x3f\x74\x6f\x6b\x65\x6e\x3d','\x74\x6f\x70\x20\x73\x65\x63\x72\x65\x74','\x35\x30\x3a\x63\x37\x3a\x62\x66','\x49\x4c\x75\x6d\x69\x61\x44\x65\x76\x69\x63\x65\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x54\x79\x70\x65','\x49\x4f\x54\x2e\x53\x4d\x41\x52\x54\x42\x55\x4c\x42','\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x4d\x6f\x64\x65\x6c','\x63\x6c\x6f\x73\x65','\x20\x61\x66\x74\x65\x72\x20\x61\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x69\x6f\x6e\x2e','\x54\x50\x5f\x54\x45\x53\x54\x5f\x55\x53\x45\x52','\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x65\x72\x72\x6f\x72','\x63\x6f\x6e\x74\x72\x6f\x6c\x5f\x63\x68\x69\x6c\x64','\x68\x61\x6e\x64\x73\x68\x61\x6b\x65','\x32\x38\x34\x36\x35\x30\x44\x64\x74\x63\x52\x64','\x49\x73\x45\x78\x70\x69\x72\x65\x64','\x69\x6e\x66\x6f','\x39\x39\x39\x39','\x68\x75\x65','\x49\x6e\x76\x61\x6c\x69\x64\x20\x70\x75\x62\x6c\x69\x63\x20\x6b\x65\x79\x20\x6c\x65\x6e\x67\x74\x68','\x5b\x4b\x4c\x41\x50\x5d\x20\x5b\x57\x41\x52\x4e\x5d\x20\x45\x6d\x70\x74\x79\x20\x61\x75\x74\x68\x20\x68\x61\x73\x68\x20\x6d\x61\x74\x63\x68\x65\x73\x20\x73\x65\x72\x76\x65\x72\x20\x68\x61\x73\x68','\x74\x72\x61\x63\x65','\x63\x72\x79\x70\x74\x6f','\x48\x61\x6e\x64\x73\x68\x61\x6b\x65\x31\x20\x66\x61\x69\x6c\x65\x64\x20\x64\x75\x65\x20\x74\x6f\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x63\x6f\x6e\x74\x65\x6e\x74\x20\x6c\x65\x6e\x67\x74\x68','\x57\x49\x46\x49','\x40\x6c\x75\x6d\x69\x61\x73\x74\x72\x65\x61\x6d\x2f\x6c\x75\x6d\x69\x61\x2d\x72\x67\x62\x2d\x75\x74\x69\x6c\x73','\x76\x65\x72\x73\x69\x6f\x6e\x73','\x5f\x66\x65\x74\x63\x68\x43\x68\x69\x6c\x64\x44\x65\x76\x69\x63\x65\x4c\x69\x73\x74','\x54\x61\x70\x6f\x41\x70\x69','\x70\x6f\x70','\x73\x65\x6e\x64\x50\x6f\x77\x65\x72','\x38\x34\x3a\x64\x38\x3a\x31\x62','\x67\x65\x74\x44\x65\x76\x69\x63\x65\x73\x42\x79\x49\x70','\x0a\x53\x65\x72\x76\x65\x72\x20\x48\x61\x73\x68\x3a','\x73\x65\x74\x75\x70','\x67\x65\x74\x42\x72\x6f\x61\x64\x63\x61\x73\x74\x4e\x65\x74\x77\x6f\x72\x6b\x49\x6e\x74\x65\x72\x66\x61\x63\x65\x73','\x5f\x76\x61\x6c\x75\x65\x73','\x65\x6d\x61\x69\x6c','\x6a\x6f\x69\x6e','\x74\x6f\x42\x61\x73\x65\x36\x34','\x6d\x61\x63','\x6b\x65\x79\x44\x65\x72\x69\x76\x65','\x66\x75\x6e\x63\x74\x69\x6f\x6e','\x5f\x64\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e\x73','\x73\x65\x74','\x73\x74\x72\x69\x6e\x67\x69\x66\x79','\x6b\x65\x79\x73','\x73\x74\x61\x74\x75\x73','\x5f\x62\x75\x69\x6c\x64\x54\x61\x70\x6f\x46\x72\x6f\x6d\x44\x65\x76\x69\x63\x65\x49\x6e\x66\x6f','\x68\x61\x73','\x61\x63\x3a\x38\x34\x3a\x63\x36','\x5b\x74\x61\x70\x6f\x5d\x20\x64\x69\x73\x63\x6f\x76\x65\x72\x79\x20\x72\x65\x73\x70\x6f\x6e\x73\x65\x20\x63\x6f\x75\x6c\x64\x20\x6e\x6f\x74\x20\x62\x65\x20\x70\x61\x72\x73\x65\x64\x20\x61\x73\x20\x4a\x53\x4f\x4e\x20\x28\x6c\x69\x6b\x65\x6c\x79\x20\x65\x6e\x63\x72\x79\x70\x74\x65\x64\x20\x62\x6f\x64\x79\x29','\x40\x6c\x75\x6d\x69\x61\x73\x74\x72\x65\x61\x6d\x2f\x6c\x75\x6d\x69\x61\x2d\x72\x67\x62\x2d\x74\x79\x70\x65\x73','\x73\x65\x74\x2d\x63\x6f\x6f\x6b\x69\x65','\x2f\x61\x70\x70','\x61\x78\x69\x6f\x73\x49\x6e\x73\x74\x61\x6e\x63\x65','\x2f\x61\x70\x70\x2f\x72\x65\x71\x75\x65\x73\x74','\x65\x78\x70\x6f\x72\x74','\x72\x61\x6e\x64\x6f\x6d\x42\x79\x74\x65\x73','\x54\x61\x70\x6f\x20\x44\x65\x76\x69\x63\x65','\x2f\x72\x65\x71\x75\x65\x73\x74','\x67\x65\x74\x54\x69\x6d\x65','\x73\x65\x71','\x73\x69\x7a\x65','\x2f\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x31','\x63\x68\x69\x6c\x64\x5f\x64\x65\x76\x69\x63\x65\x5f\x6c\x69\x73\x74','\x66\x6f\x72\x45\x61\x63\x68','\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72','\x63\x72\x65\x61\x74\x65\x4b\x65\x79\x50\x61\x69\x72','\x45\x6d\x61\x69\x6c\x20\x61\x6e\x64\x20\x70\x61\x73\x73\x77\x6f\x72\x64\x20\x61\x72\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x66\x6f\x72\x20\x6c\x6f\x67\x69\x6e\x44\x65\x76\x69\x63\x65\x42\x79\x49\x70','\x61\x75\x74\x68','\x68\x77\x49\x64','\x61\x72\x72\x61\x79\x62\x75\x66\x66\x65\x72','\x68\x74\x74\x70\x3a\x2f\x2f','\x66\x77\x5f\x76\x65\x72','\x5f\x67\x65\x74\x4f\x72\x43\x72\x65\x61\x74\x65\x53\x65\x73\x73\x69\x6f\x6e','\x54\x61\x70\x6f\x43\x6c\x6f\x75\x64\x41\x70\x69','\x6d\x73\x67','\x64\x69\x73\x63\x6f\x76\x65\x72\x4c\x6f\x63\x61\x6c\x44\x65\x76\x69\x63\x65\x73','\x2f\x61\x70\x70\x3f\x74\x6f\x6b\x65\x6e\x3d','\x73\x70\x6b\x69','\x72\x65\x73\x70\x6f\x6e\x73\x65','\x67\x65\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73','\x73\x6d\x61\x72\x74\x6c\x69\x66\x65\x2e\x69\x6f\x74\x2e\x73\x6d\x61\x72\x74\x62\x75\x6c\x62\x2e\x6c\x69\x67\x68\x74\x69\x6e\x67\x73\x65\x72\x76\x69\x63\x65','\x69\x76\x44\x65\x72\x69\x76\x65','\x69\x76\x53\x65\x71','\x5f\x74\x6f\x6b\x65\x6e','\x61\x65\x73\x2d\x31\x32\x38\x2d\x63\x62\x63','\x5f\x63\x6f\x6e\x66\x69\x67','\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x32\x20\x66\x61\x69\x6c\x65\x64\x3a\x20','\x73\x75\x6d','\x70\x61\x72\x73\x65','\x64\x65\x76\x69\x63\x65\x4e\x61\x6d\x65','\x63\x6f\x6e\x63\x61\x74','\x64\x65\x76\x69\x63\x65\x4d\x6f\x64\x65\x6c','\x68\x74\x74\x70\x5f\x70\x6f\x72\x74','\x53\x4d\x41\x52\x54\x2e\x54\x41\x50\x4f\x42\x55\x4c\x42','\x74\x61\x70\x6f\x20\x63\x6c\x6f\x75\x64\x20\x73\x65\x74\x75\x70\x20\x65\x72\x72\x3a\x20','\x73\x65\x63\x75\x72\x65\x50\x61\x73\x73\x74\x68\x72\x6f\x75\x67\x68','\x72\x61\x6e\x64\x6f\x6d\x55\x55\x49\x44','\x66\x72\x6f\x6d','\x68\x6f\x73\x74','\x74\x65\x6d\x70','\x66\x69\x6e\x61\x6c','\x61\x70\x70\x6c\x79','\x63\x6f\x6e\x74\x65\x6e\x74\x2d\x6c\x65\x6e\x67\x74\x68','\x73\x6c\x69\x63\x65','\x75\x74\x69\x6c','\x45\x6d\x61\x69\x6c\x20\x61\x6e\x64\x20\x70\x61\x73\x73\x77\x6f\x72\x64\x20\x61\x72\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x66\x6f\x72\x20\x61\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x69\x6f\x6e','\x50\x33\x30\x34','\x32\x30\x33\x31\x31\x39\x6f\x68\x47\x6d\x64\x59','\x6d\x73\x67\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x20\x73\x74\x72\x69\x6e\x67\x20\x6f\x72\x20\x62\x75\x66\x66\x65\x72','\x64\x65\x76\x69\x63\x65\x4c\x69\x73\x74','\x69\x73\x54\x72\x75\x6c\x79','\x48\x61\x6e\x64\x73\x68\x61\x6b\x65\x31\x20\x66\x61\x69\x6c\x65\x64','\x64\x65\x66\x61\x75\x6c\x74','\x44\x65\x76\x69\x63\x65\x20\x74\x6f\x6b\x65\x6e\x20\x65\x78\x70\x69\x72\x65\x64\x20\x6f\x72\x20\x69\x6e\x76\x61\x6c\x69\x64','\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x61\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x65\x20\x77\x69\x74\x68\x20\x64\x65\x76\x69\x63\x65\x20\x61\x74\x20','\x20\x4f\x75\x74\x6c\x65\x74\x20','\x37\x38\x3a\x38\x63\x3a\x62\x35','\x66\x69\x6c\x74\x65\x72','\x73\x6f\x6d\x65','\x64\x69\x73\x63\x6f\x76\x65\x72','\x6c\x64\x6b','\x73\x69\x67','\x63\x6f\x6d\x70\x61\x72\x65','\x72\x65\x61\x64\x49\x6e\x74\x33\x32\x42\x45','\x77\x72\x69\x74\x65\x49\x6e\x74\x33\x32\x42\x45','\x73\x75\x62\x61\x72\x72\x61\x79','\x53\x4d\x41\x52\x54\x2e\x54\x41\x50\x4f\x50\x4c\x55\x47','\x64\x65\x76\x69\x63\x65\x5f\x69\x64','\x6c\x65\x6e\x67\x74\x68','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x4c\x65\x6e\x67\x74\x68\x20\x6f\x66\x20\x69\x76\x20\x69\x73\x20\x6e\x6f\x74\x20\x31\x36','\x6d\x6f\x64\x65\x6c','\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72\x69\x76','\x62\x79\x70\x61\x73\x73\x2d\x63\x6f\x6f\x6b\x69\x65','\x67\x65\x74','\x4c\x49\x47\x48\x54','\x64\x65\x76\x69\x63\x65\x5f\x6f\x6e','\x70\x6c\x75\x67','\x73\x65\x73\x73\x69\x6f\x6e\x43\x6f\x6f\x6b\x69\x65','\x70\x72\x6f\x74\x6f\x74\x79\x70\x65','\x74\x69\x6d\x65\x6f\x75\x74\x4d\x73','\x6c\x6f\x63\x61\x6c\x2d\x64\x65\x76\x69\x63\x65\x73','\x68\x65\x61\x64\x65\x72\x73','\x5b\x4b\x4c\x41\x50\x5d\x20\x4c\x6f\x63\x61\x6c\x20\x61\x75\x74\x68\x20\x68\x61\x73\x68\x20\x6d\x61\x74\x63\x68\x65\x73\x20\x73\x65\x72\x76\x65\x72\x20\x68\x61\x73\x68','\x62\x72\x69','\x73\x69\x67\x44\x65\x72\x69\x76\x65','\x6b\x65\x79','\x74\x6f\x6b\x65\x6e','\x62\x75\x6c\x62','\x63\x72\x65\x61\x74\x65\x43\x69\x70\x68\x65\x72\x69\x76','\x6c\x6f\x67','\x68\x77\x5f\x76\x65\x72','\x6d\x65\x73\x73\x61\x67\x65','\x6c\x6f\x67\x69\x6e','\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x5f\x6e\x65\x67\x6f','\x4b\x6c\x61\x70\x20\x70\x72\x6f\x74\x6f\x63\x6f\x6c\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64','\x49\x4c\x75\x6d\x69\x61\x44\x65\x76\x69\x63\x65\x54\x79\x70\x65','\x5b\x54\x61\x70\x6f\x5d\x20\x65\x72\x72\x6f\x72\x43\x6f\x64\x65\x3a\x20','\x2e\x20\x50\x6c\x65\x61\x73\x65\x20\x63\x68\x65\x63\x6b\x20\x79\x6f\x75\x72\x20\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73\x2e','\x68\x74\x74\x70','\x65\x6c\x65\x63\x74\x72\x6f\x6e','\x6d\x67\x74\x5f\x65\x6e\x63\x72\x79\x70\x74\x5f\x73\x63\x68\x6d','\x63\x63\x3a\x62\x61\x3a\x62\x64','\x67\x65\x74\x5f\x63\x68\x69\x6c\x64\x5f\x64\x65\x76\x69\x63\x65\x5f\x6c\x69\x73\x74','\x64\x65\x76\x69\x63\x65','\x64\x61\x74\x61','\x2e\x20\x50\x6c\x65\x61\x73\x65\x20\x63\x61\x6c\x6c\x20\x61\x75\x74\x68\x20\x6f\x72\x20\x73\x65\x74\x75\x70\x20\x66\x69\x72\x73\x74\x2e','\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x61\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x65\x20\x77\x69\x74\x68\x20\x64\x65\x76\x69\x63\x65\x20','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x65\x75\x2d\x77\x61\x70\x2e\x74\x70\x6c\x69\x6e\x6b\x63\x6c\x6f\x75\x64\x2e\x63\x6f\x6d\x2f','\x74\x61\x70\x6f\x2d','\x67\x65\x74\x5f\x64\x65\x76\x69\x63\x65\x5f\x69\x6e\x66\x6f','\x38\x35\x32\x35\x32\x34\x59\x49\x57\x70\x61\x68','\x50\x32\x31\x30\x4d','\x65\x6e\x63\x72\x79\x70\x74','\x75\x75\x69\x64\x76\x34','\x74\x65\x78\x74','\x70\x75\x62\x6c\x69\x63\x4b\x65\x79','\x72\x65\x70\x6c\x61\x63\x65','\x61\x64\x64\x72\x65\x73\x73','\x61\x6c\x69\x61\x73','\x49\x6e\x76\x61\x6c\x69\x64\x20\x72\x65\x71\x75\x65\x73\x74\x20\x6f\x72\x20\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73','\x64\x65\x63\x72\x79\x70\x74','\x41\x4c\x4c','\x62\x69\x6e\x64','\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x31\x52\x65\x73\x75\x6c\x74\x3a\x20','\x68\x74\x74\x70\x54\x69\x6d\x65\x6f\x75\x74','\x74\x69\x6d\x65\x6f\x75\x74','\x6e\x69\x63\x6b\x6e\x61\x6d\x65','\x65\x6e\x63\x6f\x64\x65\x55\x73\x65\x72\x6e\x61\x6d\x65','\x64\x65\x6c\x65\x74\x65','\x64\x67\x72\x61\x6d','\x49\x4f\x54\x2e\x53\x4d\x41\x52\x54\x50\x4c\x55\x47\x53\x57\x49\x54\x43\x48','\x42\x55\x4c\x42\x53','\x76\x61\x6c\x75\x65\x73','\x43\x6f\x6f\x6b\x69\x65','\x2d\x73\x6c\x6f\x74\x2d','\x73\x65\x6e\x64\x53\x74\x61\x74\x65','\x75\x74\x66\x38','\x43\x6c\x6f\x75\x64\x20\x74\x6f\x6b\x65\x6e\x20\x65\x78\x70\x69\x72\x65\x64\x20\x6f\x72\x20\x69\x6e\x76\x61\x6c\x69\x64','\x67\x65\x74\x53\x65\x73\x73\x69\x6f\x6e\x44\x61\x74\x61','\x75\x70\x64\x61\x74\x65','\x73\x65\x74\x5f\x64\x65\x76\x69\x63\x65\x5f\x69\x6e\x66\x6f','\x73\x61\x74\x75\x72\x61\x74\x69\x6f\x6e','\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x65\x73\x74\x61\x62\x6c\x69\x73\x68\x20\x73\x65\x73\x73\x69\x6f\x6e\x20\x77\x69\x74\x68\x20\x64\x65\x76\x69\x63\x65\x20\x61\x74\x20','\x73\x65\x6e\x64','\x0a\x43\x6f\x6f\x6b\x69\x65\x3a','\x33\x34\x35\x37\x35\x30\x31\x33\x42\x53\x51\x73\x55\x52','\x72\x65\x73\x6f\x6c\x76\x65','\x66\x69\x6e\x64','\x63\x68\x69\x6c\x64\x5f\x6e\x75\x6d','\x73\x65\x63\x6f\x6e\x64\x48\x61\x6e\x64\x73\x68\x61\x6b\x65','\x2e\x20\x50\x6c\x65\x61\x73\x65\x20\x61\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x65\x20\x66\x69\x72\x73\x74\x2e','\x70\x75\x73\x68','\x54\x61\x70\x6f\x43\x6f\x6e\x73\x74\x61\x6e\x74\x73'];a0c=function(){return dP;};return a0c();}(function(a,b){const a0ca={a:0x1f0,b:0x179,c:0x230,d:0x10d,e:0x190,f:0x253},aG=a0d,c=a();while(!![]){try{const d=parseInt(aG(a0ca.a))/0x1*(-parseInt(aG(a0ca.b))/0x2)+-parseInt(aG(0x16c))/0x3+parseInt(aG(a0ca.c))/0x4*(parseInt(aG(0x12d))/0x5)+-parseInt(aG(0x139))/0x6+parseInt(aG(a0ca.d))/0x7*(-parseInt(aG(0x163))/0x8)+parseInt(aG(0x13b))/0x9*(parseInt(aG(a0ca.e))/0xa)+parseInt(aG(a0ca.f))/0xb;if(d===b)break;else c['push'](c['shift']());}catch(e){c['push'](c['shift']());}}}(a0c,0x99234));var a0e=require(a0aH(0x1b6)),a0f=require('\x61\x78\x69\x6f\x73'),a0g=require('\x40\x6e\x65\x74\x77\x6f\x72\x6b\x2d\x75\x74\x69\x6c\x73\x2f\x61\x72\x70\x2d\x6c\x6f\x6f\x6b\x75\x70'),a0h=require(a0aH(0x212)),a0i=require(a0aH(0x198)),a0j=require(a0aH(0x1ed)),a0k=require(a0aH(0x19b)),a0l=require(a0aH(0x224)),a0m=require(a0aH(0x243)),a0n=require(a0aH(0x140));function a0o(c){const a0cf={a:0x115,b:0x192,c:0x1c5,d:0x210,e:0x17d},d=(function(){let g=!![];return function(h,i){const k=g?function(){if(i){const l=i['\x61\x70\x70\x6c\x79'](h,arguments);return i=null,l;}}:function(){};return g=![],k;};}()),f=d(this,function(){const aI=a0d;let g;try{const k=Function(aI(0x153)+'\x7b\x7d\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x22\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x22\x29\x28\x20\x29'+'\x29\x3b');g=k();}catch(l){g=window;}const h=g[aI(a0cf.a)]=g[aI(a0cf.a)]||{},i=['\x6c\x6f\x67','\x77\x61\x72\x6e',aI(a0cf.b),aI(0x15b),'\x65\x78\x63\x65\x70\x74\x69\x6f\x6e','\x74\x61\x62\x6c\x65',aI(0x197)];for(let n=0x0;n<i['\x6c\x65\x6e\x67\x74\x68'];n++){const o=d[aI(a0cf.c)][aI(a0cf.d)][aI(0x23c)](d),p=i[n],q=h[p]||o;o[aI(0x160)]=d[aI(0x23c)](d),o[aI(a0cf.e)]=q[aI(a0cf.e)][aI(0x23c)](q),h[p]=o;}});return f(),c&&c['\x5f\x5f\x65\x73\x4d\x6f\x64\x75\x6c\x65']?c:{'\x64\x65\x66\x61\x75\x6c\x74':c};}var a0p=a0o(a0f),a0q=a0o(a0g),a0r=a0o(a0h),a0s=a0o(a0i),a0t=a0o(a0j),a0u=a0o(a0l),a0v=a0o(a0m),a0w=Object['\x64\x65\x66\x69\x6e\x65\x50\x72\x6f\x70\x65\x72\x74\x79'],a0x=(a,b)=>{for(var c in b)a0w(a,c,{'\x67\x65\x74':b[c],'\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65':!0x0});},a0y=a=>Buffer['\x66\x72\x6f\x6d'](a,a0aH(0x25c))['\x74\x6f\x53\x74\x72\x69\x6e\x67'](),a0z=a=>{const a0ci={a:0x13d,b:0x222,c:0x151,d:0x239},aJ=a0aH;let b=a['\x65\x72\x72\x6f\x72\x5f\x63\x6f\x64\x65'];if(b)switch(console[aJ(a0ci.a)](aJ(a0ci.b),b),b){case 0x0:return;case-0x3f2:throw new Error(aJ(0x195));case-0x3f4:throw new Error(aJ(a0ci.c));case-0x5dd:throw new Error(aJ(a0ci.d));case-0x3ea:throw new Error('\x49\x6e\x63\x6f\x72\x72\x65\x63\x74\x20\x72\x65\x71\x75\x65\x73\x74');case-0x3eb:throw new Error('\x4a\x53\x4f\x4e\x20\x66\x6f\x72\x6d\x61\x74\x20\x65\x72\x72\x6f\x72');case-0x5079:throw new Error(aJ(0x158));case-0x50c3:throw new Error(aJ(0x24b));case 0x270f:throw new Error(aJ(0x1f6));default:throw new Error(aJ(0x15d)+b+'\x20\x28'+a[aJ(0x1cf)]+'\x29');}},a0A=class{constructor(){const a0cj={a:0x174},aK=a0aH;this['\x5f\x76\x61\x6c\x75\x65\x73']={},this[aK(0x172)]=a=>(this[aK(0x1a6)]['\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x5f\x70\x65\x72\x69\x6f\x64']=a,this),this['\x64\x75\x72\x61\x74\x69\x6f\x6e']=this['\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e'],this[aK(a0cj.a)]=()=>this[aK(0x1a6)];}},a0B=class extends a0A{constructor(a){const a0cn={a:0x15e,b:0x15e,c:0x215,d:0x148,e:0x13a,f:0x1e8,g:0x164},a0cl={a:0x112,b:0x194,c:0x13a},a0ck={a:0x17f,b:0x1f3,c:0x1ea},aL=a0aH;super(),this[aL(0x164)]=b=>(b&&Object[aL(0x1b0)](b)[aL(0x1c4)](c=>{const aM=aL;let d;this[aM(a0ck.a)](c)&&(d=this[c],a0k['\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e'](d)&&a0k[aM(a0ck.b)](b[c])&&d[aM(a0ck.c)](this,[b[c]]));}),this),this['\x6f\x6e']=(b=!0x0)=>(this[aL(0x1a6)][aL(0x20d)]=b,this),this['\x74\x75\x72\x6e\x4f\x6e']=this['\x6f\x6e'],this[aL(a0cn.a)]=()=>(this['\x6f\x6e'](!0x1),this),this[aL(0x14a)]=this[aL(a0cn.b)],this[aL(0x138)]=(b='\x6e\x6f\x72\x6d\x61\x6c')=>(b==='\x6e\x6f\x72\x6d\x61\x6c'&&(this[aL(0x1a6)][aL(0x10e)]=0x0),this[aL(0x1a6)][aL(0x138)]=b,this),this['\x68\x75\x65']=b=>(this['\x5f\x76\x61\x6c\x75\x65\x73'][aL(0x194)]=b,this[aL(0x1a6)]['\x63\x6f\x6c\x6f\x72\x5f\x74\x65\x6d\x70']=0x0,this),this[aL(a0cn.c)]=b=>(this[aL(0x1a6)]['\x62\x72\x69\x67\x68\x74\x6e\x65\x73\x73']=b,this),this[aL(a0cn.d)]=this[aL(0x215)],this[aL(a0cn.e)]=b=>(this['\x5f\x76\x61\x6c\x75\x65\x73']['\x73\x61\x74\x75\x72\x61\x74\x69\x6f\x6e']=b,this),this[aL(0x24f)]=this[aL(0x13a)],this[aL(a0cn.f)]=b=>(this[aL(0x1a6)][aL(0x10e)]=b,this),this[aL(0x166)]=this['\x74\x65\x6d\x70'],this[aL(0x14b)]=b=>{const aN=aL;let c=[];return Array[aN(a0cl.a)](b)?c=b:c=[b['\x68'],b['\x73'],b['\x76']],this[aN(a0cl.b)](c[0x0]),this[aN(a0cl.c)](c[0x1]),this[aN(0x215)](c[0x2]),this;},this[aL(0x130)]=b=>{const aO=aL;let c;return Array['\x69\x73\x41\x72\x72\x61\x79'](b)?c=a0k['\x72\x67\x62\x32\x68\x73\x76'](b):c=a0k[aO(0x149)]([b['\x72'],b['\x67'],b['\x62']]),this['\x68\x73\x76'](c);},this['\x63\x6f\x6c\x6f\x72']=b=>(Array[aL(0x112)](b)&&(b={'\x72':b[0x0],'\x67':b[0x1],'\x62':b[0x2]}),b['\x63\x74']?this[aL(0x1e8)](b['\x63\x74']):this['\x72\x67\x62']({'\x72':b['\x72'],'\x67':b['\x67'],'\x62':b['\x62']})),a&&this[aL(a0cn.g)](a);}},a0C=a0aH(0x1d9),a0D=0xfa0,a0E=async(k,q,v)=>{const a0cq={a:0x1ca,b:0x1e6,c:0x213,d:0x176,e:0x1ec},a0cp={a:0x1db},aP=a0aH;let G=a0i[aP(0x1bc)](0x10),I=await a0p[aP(0x1f5)]['\x70\x6f\x73\x74'](aP(0x1cb)+v+'\x2f\x61\x70\x70\x2f\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x31',G,{'\x72\x65\x73\x70\x6f\x6e\x73\x65\x54\x79\x70\x65':aP(a0cq.a),'\x77\x69\x74\x68\x43\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73':!0x0,'\x74\x69\x6d\x65\x6f\x75\x74':a0D})['\x63\x61\x74\x63\x68'](a9=>{const aQ=aP;throw a9?.['\x72\x65\x73\x70\x6f\x6e\x73\x65']?.[aQ(0x1b1)]===0x194?new Error(aQ(0x220)):new Error('\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x31\x20\x66\x61\x69\x6c\x65\x64\x3a\x20'+a9);}),L=Buffer[aP(a0cq.b)](I[aP(0x22a)]),R=I[aP(a0cq.c)]['\x73\x65\x74\x2d\x63\x6f\x6f\x6b\x69\x65']?.[0x0],U=R?.[aP(a0cq.d)](0x0,R[aP(0x16a)]('\x3b'))||'',V=L[aP(0x1ec)](0x0,0x10),a0=L[aP(a0cq.e)](0x10),a1=a0K(k,q),a2=a0I(G,V,a1);if(!a0T(a2,a0))throw new Error('\x65\x6d\x61\x69\x6c\x20\x6f\x72\x20\x70\x61\x73\x73\x77\x6f\x72\x64\x20\x69\x6e\x63\x6f\x72\x72\x65\x63\x74');let a3=a0J(G,V,a1),a4={'\x43\x6f\x6f\x6b\x69\x65':U};await a0p[aP(0x1f5)][aP(0x167)](aP(0x1cb)+v+aP(0x15a),a3,{'\x72\x65\x73\x70\x6f\x6e\x73\x65\x54\x79\x70\x65':'\x61\x72\x72\x61\x79\x62\x75\x66\x66\x65\x72','\x68\x65\x61\x64\x65\x72\x73':a4,'\x74\x69\x6d\x65\x6f\x75\x74':a0D})[aP(0x11d)](a9=>{const aR=aP;throw new Error(aR(a0cp.a)+a9);});let a5=a0L(G,V,a1),a6=a0M(G,V,a1),a7=a0N(G,V,a1),a8=a0O(a6);return{'\x6b\x65\x79':a5,'\x69\x76':a6,'\x73\x69\x67':a7,'\x73\x65\x71':a8,'\x73\x65\x73\x73\x69\x6f\x6e\x43\x6f\x6f\x6b\x69\x65':U};},a0F=async(b,c,d)=>{const a0cu={a:0x20f,b:0x173},a0cs={a:0x1f5,b:0x1ba,c:0x20f,d:0x200,e:0x217,f:0x135},a0cr={a:0x21d,b:0x193,c:0x206,d:0x206,e:0x175},aU=a0aH;let f=await a0E(b,c,d),g=k=>{const aS=a0d;let l=k?.[aS(0x1d3)]?.['\x73\x74\x61\x74\x75\x73'];if(l===0x191||l===0x193)return!0x0;let p=typeof k?.[aS(a0cr.a)]=='\x73\x74\x72\x69\x6e\x67'?k['\x6d\x65\x73\x73\x61\x67\x65']:'';return!!(p['\x69\x6e\x63\x6c\x75\x64\x65\x73'](aS(a0cr.b))||p[aS(a0cr.c)]('\x44\x65\x76\x69\x63\x65\x20\x74\x6f\x6b\x65\x6e\x20\x65\x78\x70\x69\x72\x65\x64')||p[aS(a0cr.d)](aS(a0cr.e))||p[aS(0x206)](aS(0x239)));},h=async k=>{const aT=a0d;f[aT(0x1c0)]=a0Q(f[aT(0x1c0)]);let q=a0G(f['\x6b\x65\x79'],f['\x69\x76'],f[aT(0x1c0)],k),v=a0R(Buffer[aT(0x1df)]([f[aT(0x1fe)],f['\x73\x65\x71'],q])),w=Buffer['\x63\x6f\x6e\x63\x61\x74']([v,q]),G=await a0p[aT(a0cs.a)]({'\x6d\x65\x74\x68\x6f\x64':aT(0x167),'\x75\x72\x6c':aT(0x1cb)+d+aT(a0cs.b),'\x64\x61\x74\x61':w,'\x72\x65\x73\x70\x6f\x6e\x73\x65\x54\x79\x70\x65':aT(0x1ca),'\x68\x65\x61\x64\x65\x72\x73':{'\x43\x6f\x6f\x6b\x69\x65':f[aT(a0cs.c)]},'\x74\x69\x6d\x65\x6f\x75\x74':a0D,'\x70\x61\x72\x61\x6d\x73':{'\x73\x65\x71':f[aT(0x1c0)][aT(a0cs.d)]()}}),I=a0H(f[aT(a0cs.e)],f['\x69\x76'],f['\x73\x65\x71'],Buffer['\x66\x72\x6f\x6d'](G['\x64\x61\x74\x61']));return a0z(I),I[aT(a0cs.f)];},i={'\x73\x65\x6e\x64':async k=>{try{return await h(k);}catch(l){if(!g(l))throw l;return f=await a0E(b,c,d),h(k);}}};return Object['\x64\x65\x66\x69\x6e\x65\x50\x72\x6f\x70\x65\x72\x74\x79'](i,aU(a0cu.a),{'\x67\x65\x74':()=>f[aU(0x20f)]}),Object[aU(0x264)](i,aU(a0cu.b),{'\x67\x65\x74':()=>({'\x6b\x65\x79':f['\x6b\x65\x79'],'\x69\x76':f['\x69\x76'],'\x73\x65\x71':f['\x73\x65\x71']})}),i;},a0G=(a,b,c,d)=>{const a0cv={a:0x1af,b:0x24d},aV=a0aH;let f=JSON[aV(a0cv.a)](d),g=a0i['\x63\x72\x65\x61\x74\x65\x43\x69\x70\x68\x65\x72\x69\x76'](a0C,a,a0P(b,c)),h=g[aV(a0cv.b)](a0U(f));return Buffer['\x63\x6f\x6e\x63\x61\x74']([h,g[aV(0x1e9)]()]);},a0H=(a,b,c,d)=>{const a0cw={a:0x24d,b:0x1dd,c:0x17d},aW=a0aH;let f=a0i[aW(0x209)](a0C,a,a0P(b,c)),g=f[aW(a0cw.a)](d[aW(0x1ec)](0x20));return JSON[aW(a0cw.b)](Buffer[aW(0x1df)]([g,f['\x66\x69\x6e\x61\x6c']()])[aW(a0cw.c)]());},a0I=(a,b,c)=>a0R(Buffer['\x63\x6f\x6e\x63\x61\x74']([a,b,c])),a0J=(a,b,c)=>a0R(Buffer[a0aH(0x1df)]([b,a,c])),a0K=(a,b)=>a0R(Buffer[a0aH(0x1df)]([a0S(a),a0S(b)])),a0L=(a,b,c)=>a0R(Buffer[a0aH(0x1df)]([a0U('\x6c\x73\x6b'),a,b,c]))[a0aH(0x1ec)](0x0,0x10),a0M=(a,b,c)=>a0R(Buffer[a0aH(0x1df)]([a0U('\x69\x76'),a,b,c])),a0N=(a,b,c)=>a0R(Buffer[a0aH(0x1df)]([a0U(a0aH(0x1fd)),a,b,c]))[a0aH(0x1ec)](0x0,0x1c),a0O=a=>a[a0aH(0x1ec)](a['\x6c\x65\x6e\x67\x74\x68']-0x4),a0P=(a,b)=>Buffer['\x63\x6f\x6e\x63\x61\x74']([a[a0aH(0x1ec)](0x0,0xc),b]),a0Q=a=>{const a0cx={a:0x141},aX=a0aH;let b=Buffer[aX(a0cx.a)](0x4);return b[aX(0x201)](a['\x72\x65\x61\x64\x49\x6e\x74\x33\x32\x42\x45']()+0x1),b;},a0R=a=>a0i['\x63\x72\x65\x61\x74\x65\x48\x61\x73\x68']('\x73\x68\x61\x32\x35\x36')[a0aH(0x24d)](a)[a0aH(0x114)](),a0S=a=>a0i[a0aH(0x180)](a0aH(0x12e))[a0aH(0x24d)](a)[a0aH(0x114)](),a0T=(a,b)=>a[a0aH(0x1ff)](b)===0x0,a0U=a=>Buffer['\x66\x72\x6f\x6d'](a,a0aH(0x17c)),a0V=a0aH(0x11b),a0W=a0aH(0x1d9),a0X=a0aH(0x185),a0Y=class{constructor(a,b){this['\x6b\x65\x79']=a,this['\x69\x76']=b;}static[a0aH(0x1a9)](a){const a0cz={a:0x147,b:0x17d},aY=a0aH;return Buffer[aY(0x1e6)](a[aY(0x122)](aY(a0cz.a)),aY(0x17c))[aY(a0cz.b)](aY(0x25c));}static[a0aH(0x241)](a){const a0cA={a:0x122},aZ=a0aH;let b=a0s[aZ(0x1f5)][aZ(0x180)](aZ(0x12e));return b[aZ(0x24d)](a[aZ(a0cA.a)](aZ(0x147))),b['\x64\x69\x67\x65\x73\x74'](aZ(0x165));}static[a0aH(0x1c6)](){const a0cC={a:0x1f5,b:0x134},a0cB={a:0x1bb,b:0x17d,c:0x127};return new Promise((a,b)=>{const b0=a0d;a0s[b0(a0cC.a)][b0(a0cC.b)]('\x72\x73\x61',{'\x6d\x6f\x64\x75\x6c\x75\x73\x4c\x65\x6e\x67\x74\x68':0x400},(c,d,f)=>{const b1=b0;if(c)return b(c);let g=d[b1(a0cB.a)]({'\x66\x6f\x72\x6d\x61\x74':b1(0x14c),'\x74\x79\x70\x65':'\x73\x70\x6b\x69'})[b1(a0cB.b)]('\x62\x61\x73\x65\x36\x34'),h=f[b1(0x1bb)]({'\x66\x6f\x72\x6d\x61\x74':'\x70\x65\x6d','\x74\x79\x70\x65':b1(a0cB.c)})[b1(0x17d)](b1(0x25c));a({'\x70\x75\x62\x6c\x69\x63':g,'\x70\x72\x69\x76\x61\x74\x65':h});});});}[a0aH(0x232)](a){const a0cE={a:0x1f5,b:0x217,c:0x24d,d:0x25c,e:0x25c},b2=a0aH;let b=a0s[b2(a0cE.a)]['\x63\x72\x65\x61\x74\x65\x43\x69\x70\x68\x65\x72\x69\x76']('\x61\x65\x73\x2d\x31\x32\x38\x2d\x63\x62\x63',this[b2(a0cE.b)],this['\x69\x76']);return''+b[b2(a0cE.c)](a,b2(0x24a),b2(a0cE.d))+b['\x66\x69\x6e\x61\x6c'](b2(a0cE.e));}[a0aH(0x23a)](a){const a0cF={a:0x209,b:0x1d9,c:0x24a},b3=a0aH;let b=a0s['\x64\x65\x66\x61\x75\x6c\x74'][b3(a0cF.a)](b3(a0cF.b),this[b3(0x217)],this['\x69\x76']);return''+b['\x75\x70\x64\x61\x74\x65'](a,'\x62\x61\x73\x65\x36\x34',b3(a0cF.c))+b['\x66\x69\x6e\x61\x6c'](b3(0x24a));}},a0Z=async()=>{const a0cG={a:0x14c,b:0x127},b4=a0aH;let a={'\x6d\x6f\x64\x75\x6c\x75\x73\x4c\x65\x6e\x67\x74\x68':0x400,'\x70\x75\x62\x6c\x69\x63\x4b\x65\x79\x45\x6e\x63\x6f\x64\x69\x6e\x67':{'\x74\x79\x70\x65':b4(0x1d2),'\x66\x6f\x72\x6d\x61\x74':b4(a0cG.a)},'\x70\x72\x69\x76\x61\x74\x65\x4b\x65\x79\x45\x6e\x63\x6f\x64\x69\x6e\x67':{'\x74\x79\x70\x65':b4(a0cG.b),'\x66\x6f\x72\x6d\x61\x74':b4(0x14c),'\x63\x69\x70\x68\x65\x72':'\x61\x65\x73\x2d\x32\x35\x36\x2d\x63\x62\x63','\x70\x61\x73\x73\x70\x68\x72\x61\x73\x65':a0X}};return a0t['\x64\x65\x66\x61\x75\x6c\x74']['\x70\x72\x6f\x6d\x69\x73\x69\x66\x79'](a0s[b4(0x1f5)][b4(0x134)])(a0V,a);},a0a0=(a,b)=>{const a0cH={a:0x1f5,b:0x21a,c:0x24d,d:0x1af},b5=a0aH;var c=a0s[b5(a0cH.a)][b5(a0cH.b)](a0W,b[b5(0x217)],b['\x69\x76']),d=c[b5(a0cH.c)](Buffer[b5(0x1e6)](JSON[b5(a0cH.d)](a)));return Buffer[b5(0x1df)]([d,c[b5(0x1e9)]()])[b5(0x17d)](b5(0x25c));},a0a1=(a,b)=>{const a0cI={a:0x217,b:0x1dd},b6=a0aH;var c=a0s['\x64\x65\x66\x61\x75\x6c\x74'][b6(0x209)](a0W,b[b6(a0cI.a)],b['\x69\x76']),d=c['\x75\x70\x64\x61\x74\x65'](Buffer['\x66\x72\x6f\x6d'](a,b6(0x25c)));return JSON[b6(a0cI.b)](Buffer['\x63\x6f\x6e\x63\x61\x74']([d,c[b6(0x1e9)]()])['\x74\x6f\x53\x74\x72\x69\x6e\x67']());},a0a2=(a,b)=>{const a0cJ={a:0x1f5},b7=a0aH;let c=Buffer[b7(0x1e6)](a,'\x62\x61\x73\x65\x36\x34');return a0s[b7(a0cJ.a)][b7(0x17e)]({'\x6b\x65\x79':b,'\x70\x61\x64\x64\x69\x6e\x67':a0s[b7(a0cJ.a)]['\x63\x6f\x6e\x73\x74\x61\x6e\x74\x73']['\x52\x53\x41\x5f\x50\x4b\x43\x53\x31\x5f\x50\x41\x44\x44\x49\x4e\x47'],'\x70\x61\x73\x73\x70\x68\x72\x61\x73\x65':a0X},c);},a0a3=a=>Buffer[a0aH(0x1e6)](a)[a0aH(0x17d)](a0aH(0x25c)),a0a4=a=>{const a0cK={a:0x12e,b:0x114},b8=a0aH;var b=a0s[b8(0x1f5)]['\x63\x72\x65\x61\x74\x65\x48\x61\x73\x68'](b8(a0cK.a));return b['\x75\x70\x64\x61\x74\x65'](a),b[b8(a0cK.b)](b8(0x165));},a0a5=async(a,b,c)=>{const a0cL={a:0x218},b9=a0aH;let d=await a0a6(c),f={'\x6d\x65\x74\x68\x6f\x64':b9(0x133),'\x70\x61\x72\x61\x6d\x73':{'\x75\x73\x65\x72\x6e\x61\x6d\x65':a0a3(a0a4(a)),'\x70\x61\x73\x73\x77\x6f\x72\x64':a0a3(b)},'\x72\x65\x71\x75\x65\x73\x74\x54\x69\x6d\x65\x4d\x69\x6c\x73':0x0},g=await a0a7(f,d);return d[b9(0x218)]=g[b9(a0cL.a)],{'\x73\x65\x6e\x64':h=>a0a7(h,d),'\x64\x65\x76\x69\x63\x65\x4b\x65\x79':d};},a0a6=async a=>{const a0cM={a:0x18f,b:0x1f5,c:0x1b8,d:0x22a,e:0x213,f:0x1b7,g:0x22a,h:0x135,i:0x202},ba=a0aH;let b=await a0Z(),c={'\x6d\x65\x74\x68\x6f\x64':ba(a0cM.a),'\x70\x61\x72\x61\x6d\x73':{'\x6b\x65\x79':b[ba(0x235)]}},d=await a0p[ba(a0cM.b)]({'\x6d\x65\x74\x68\x6f\x64':'\x70\x6f\x73\x74','\x75\x72\x6c':'\x68\x74\x74\x70\x3a\x2f\x2f'+a+ba(a0cM.c),'\x64\x61\x74\x61':c,'\x74\x69\x6d\x65\x6f\x75\x74':0xfa0});a0z(d[ba(a0cM.d)]);let f=d[ba(a0cM.e)][ba(a0cM.f)]?.[0x0],g=f?.['\x73\x75\x62\x73\x74\x72\x69\x6e\x67'](0x0,f['\x69\x6e\x64\x65\x78\x4f\x66']('\x3b'))||'',h=a0a2(d[ba(a0cM.g)][ba(a0cM.h)]['\x6b\x65\x79'],b[ba(0x11f)]);return{'\x6b\x65\x79':h[ba(a0cM.i)](0x0,0x10),'\x69\x76':h['\x73\x75\x62\x61\x72\x72\x61\x79'](0x10,0x20),'\x64\x65\x76\x69\x63\x65\x49\x70':a,'\x73\x65\x73\x73\x69\x6f\x6e\x43\x6f\x6f\x6b\x69\x65':g};},a0a7=async(a,b)=>{const a0cN={a:0x167,b:0x20f,c:0x22a,d:0x135,e:0x1d3},bb=a0aH;let c={'\x6d\x65\x74\x68\x6f\x64':bb(0x1e4),'\x70\x61\x72\x61\x6d\x73':{'\x72\x65\x71\x75\x65\x73\x74':a0a0(a,b)}},d=await a0p[bb(0x1f5)]({'\x6d\x65\x74\x68\x6f\x64':bb(a0cN.a),'\x75\x72\x6c':bb(0x1cb)+b['\x64\x65\x76\x69\x63\x65\x49\x70']+bb(0x1d1)+b['\x74\x6f\x6b\x65\x6e'],'\x64\x61\x74\x61':c,'\x68\x65\x61\x64\x65\x72\x73':{'\x43\x6f\x6f\x6b\x69\x65':b[bb(a0cN.b)]},'\x74\x69\x6d\x65\x6f\x75\x74':0xfa0});a0z(d['\x64\x61\x74\x61']);let e=a0a1(d[bb(a0cN.c)][bb(a0cN.d)][bb(a0cN.e)],b);return a0z(e),e['\x72\x65\x73\x75\x6c\x74'];},a0a8=a=>{const a0cO={a:0x1e6,b:0x25c,c:0x17c},bc=a0aH;if(typeof a!=bc(0x118)||!a['\x6c\x65\x6e\x67\x74\x68'])return'';try{return typeof atob==bc(0x1ac)?atob(a):Buffer[bc(a0cO.a)](a,bc(a0cO.b))[bc(0x17d)](bc(a0cO.c));}catch{return'';}},a0a9=a=>typeof a?.[a0aH(0x21d)]==a0aH(0x118)&&a[a0aH(0x21d)]['\x6c\x65\x6e\x67\x74\x68']>0x0?a[a0aH(0x21d)]:typeof a=='\x73\x74\x72\x69\x6e\x67'&&a[a0aH(0x205)]>0x0?a:String(a??'\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x65\x72\x72\x6f\x72'),a0aa=class{constructor(a){const a0cT={a:0x1da,b:0x1ad,c:0x1a0,d:0x1da,e:0x25e},a0cS={a:0x229,b:0x1e7,c:0x20b,d:0x25d,e:0x18e,f:0x117},a0cR={a:0x111,b:0x1fa,c:0x1c8},a0cQ={a:0x206,b:0x1e7,c:0x20b},a0cP={a:0x1a7,b:0x1da,c:0x110,d:0x1da,e:0x25e,f:0x1ee,g:0x156,h:0x143},bd=a0aH;this[bd(a0cT.a)]={'\x72\x61\x77\x45\x6d\x61\x69\x6c':'','\x72\x61\x77\x50\x61\x73\x73\x77\x6f\x72\x64':'','\x74\x69\x6d\x65\x6f\x75\x74':0x2710,'\x68\x74\x74\x70\x54\x69\x6d\x65\x6f\x75\x74':0xfa0},this[bd(a0cT.b)]=new Map(),this['\x61\x75\x74\x68']=async(b,c)=>{const be=bd;let d=c?.[be(a0cP.a)]||this[be(a0cP.b)][be(0x25e)],f=c?.[be(a0cP.c)]||this[be(a0cP.d)]['\x72\x61\x77\x50\x61\x73\x73\x77\x6f\x72\x64'];if(this[be(0x1da)][be(a0cP.e)]=d,this[be(a0cP.b)][be(0x125)]=f,!d||!f)throw new Error(be(a0cP.f));if(!b)throw new Error(be(a0cP.g));return this[be(a0cP.h)](b,d,f);},this[bd(0x1a4)]=async(b,c)=>{const bf=bd;let d=Array['\x66\x72\x6f\x6d'](new Set(b[bf(a0cR.a)](g=>g['\x68\x6f\x73\x74'])[bf(a0cR.b)](Boolean))),f=await this[bf(a0cR.c)](d,c);return b[bf(0x1c4)](g=>{const bg=bf;if(f[bg(0x14d)][bg(a0cQ.a)](g[bg(a0cQ.b)])){let h=this[bg(0x1ad)][bg(a0cQ.c)](g[bg(0x1e7)]);h&&this['\x5f\x64\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e\x73'][bg(0x1ae)](g['\x69\x64'],h);}}),f;},this[bd(0x249)]=async b=>{const bh=bd;let c=b[bh(a0cS.a)][bh(a0cS.b)]||b['\x64\x65\x76\x69\x63\x65']['\x69\x64'];if(!c)throw new Error('\x44\x65\x76\x69\x63\x65\x20\x49\x50\x20\x6f\x72\x20\x49\x44\x20\x69\x73\x20\x72\x65\x71\x75\x69\x72\x65\x64');let d=this[bh(0x1ad)][bh(a0cS.c)](c);if(!d)throw new Error(bh(0x136)+c+bh(0x22b));let f={'\x6d\x65\x74\x68\x6f\x64':bh(0x24e),'\x70\x61\x72\x61\x6d\x73':b['\x73\x74\x61\x74\x65']['\x67\x65\x74\x56\x61\x6c\x75\x65\x73']()},g=b[bh(0x229)]['\x69\x6e\x66\x6f']?.[bh(a0cS.d)],h=g?{'\x6d\x65\x74\x68\x6f\x64':bh(a0cS.e),'\x70\x61\x72\x61\x6d\x73':{'\x64\x65\x76\x69\x63\x65\x5f\x69\x64':g,'\x72\x65\x71\x75\x65\x73\x74\x44\x61\x74\x61':f}}:f;d?.['\x64\x65\x76\x69\x63\x65\x4b\x65\x79']&&(h[bh(a0cS.f)]=a0k['\x75\x75\x69\x64\x76\x34']());try{return await d[bh(0x251)](h),!0x0;}catch{return!0x1;}},this[bd(a0cT.c)]=async b=>this[bd(0x249)]({'\x64\x65\x76\x69\x63\x65':b[bd(0x229)],'\x73\x74\x61\x74\x65':new a0B({'\x6f\x6e':b[bd(0x128)]})}),(this['\x5f\x63\x6f\x6e\x66\x69\x67']={...this[bd(a0cT.a)],...a},this[bd(a0cT.d)][bd(a0cT.e)]=a?.[bd(0x1a7)]||'',this[bd(0x1da)]['\x72\x61\x77\x50\x61\x73\x73\x77\x6f\x72\x64']=a?.['\x70\x61\x73\x73\x77\x6f\x72\x64']||'');}async[a0aH(0x143)](b,d,f){const a0cV={a:0x1da,b:0x125,c:0x1c7,d:0x112,e:0x111,f:0x13f},a0cU={a:0x14d,b:0x259,c:0x12b,d:0x126,e:0x259},bi=a0aH;let g=d||this[bi(a0cV.a)][bi(0x25e)],h=f||this[bi(0x1da)][bi(a0cV.b)];if(!g||!h)throw new Error(bi(a0cV.c));let k=Array[bi(a0cV.d)](b)?b:[b],l={'\x73\x75\x63\x63\x65\x73\x73':[],'\x66\x61\x69\x6c\x65\x64':[]},p=k[bi(a0cV.e)](async q=>{const bj=bi;try{try{let v=await a0F(g,h,q);this[bj(0x1ad)][bj(0x1ae)](q,v),l[bj(a0cU.a)][bj(a0cU.b)](q);}catch(w){let G=a0a9(w);try{let I=await a0a5(g,h,q);this[bj(0x1ad)]['\x73\x65\x74'](q,I),l[bj(0x14d)]['\x70\x75\x73\x68'](q);}catch(L){let R=a0a9(L),U='\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x6c\x6f\x67\x69\x6e\x20\x74\x6f\x20\x64\x65\x76\x69\x63\x65\x20\x61\x74\x20'+q+bj(a0cU.c)+G+'\x3b\x20\x4c\x65\x67\x61\x63\x79\x20\x65\x72\x72\x6f\x72\x3a\x20'+R;l[bj(a0cU.d)][bj(a0cU.e)]({'\x69\x70':q,'\x65\x72\x72\x6f\x72':U});}}}catch(V){l[bj(0x126)][bj(0x259)]({'\x69\x70':q,'\x65\x72\x72\x6f\x72':V[bj(0x21d)]||bj(0x18d)});}});if(await Promise[bi(a0cV.f)](p),!Array[bi(0x112)](b)&&l[bi(0x126)]['\x6c\x65\x6e\x67\x74\x68']>0x0)throw new Error(l[bi(0x126)][0x0][bi(0x15b)]);return l;}async[a0aH(0x146)](a){const a0cW={a:0x1b2},bk=a0aH;let b=await(await this['\x5f\x67\x65\x74\x4f\x72\x43\x72\x65\x61\x74\x65\x53\x65\x73\x73\x69\x6f\x6e'](a))[bk(0x251)]({'\x6d\x65\x74\x68\x6f\x64':'\x67\x65\x74\x5f\x64\x65\x76\x69\x63\x65\x5f\x69\x6e\x66\x6f'});return this[bk(a0cW.a)](a,b);}async[a0aH(0x1a2)](a){const a0cY={a:0x1cd,b:0x251,c:0x11d,d:0x159,e:0x118,f:0x168,g:0x10f,h:0x120,i:0x208,k:0x21b,l:0x1b2,n:0x192,o:0x192,p:0x240,q:0x161,r:0x204,t:0x22e},a0cX={a:0x204,b:0x248,c:0x240,d:0x1f8,e:0x1cb,f:0x183,g:0x187},bl=a0aH;let b=await this[bl(a0cY.a)](a),c=await b[bl(a0cY.b)]({'\x6d\x65\x74\x68\x6f\x64':bl(0x22f)}),f=await this[bl(0x17a)](b)[bl(a0cY.c)](()=>({})),g=typeof c?.[bl(0x256)]==bl(a0cY.d)?c[bl(0x256)]:0x0,k=typeof c?.[bl(0x168)]==bl(a0cY.e)?c[bl(a0cY.f)]:'';if(!(!(k===bl(a0cY.g)||k===bl(a0cY.h))&&(k===bl(0x203)||k===bl(0x244)||!k)&&(g>0x0||this['\x5f\x69\x73\x4b\x6e\x6f\x77\x6e\x4d\x75\x6c\x74\x69\x53\x6f\x63\x6b\x65\x74\x4d\x6f\x64\x65\x6c'](c?.[bl(a0cY.i)])))){let w=this[bl(0x1b2)](a,c);return w[bl(0x192)]={...w['\x69\x6e\x66\x6f']||{},'\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73':f},[w];}let q=await this[bl(0x19d)](b);if(console[bl(a0cY.k)]('\x5b\x74\x61\x70\x6f\x5d\x20\x6d\x75\x6c\x74\x69\x2d\x73\x6f\x63\x6b\x65\x74\x20\x64\x65\x74\x65\x63\x74\x65\x64',{'\x69\x70':a,'\x6d\x6f\x64\x65\x6c':c?.[bl(a0cY.i)],'\x63\x68\x69\x6c\x64\x43\x6f\x75\x6e\x74':g,'\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73':f,'\x63\x68\x69\x6c\x64\x72\x65\x6e':q}),!q[bl(0x205)]){let G=this[bl(a0cY.l)](a,c);return G[bl(a0cY.n)]={...G[bl(a0cY.o)]||{},'\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73':f},[G];}let u=c?.[bl(0x240)]?a0a8(c[bl(a0cY.p)]):bl(a0cY.q)+a+'\x29',v=c?.[bl(a0cY.r)]||bl(a0cY.t)+a[bl(0x236)](/\./g,'\x2d');return q[bl(0x111)]((I,L)=>{const bm=bl;let R=I?.[bm(a0cX.a)]||v+bm(a0cX.b)+L,U=I?.[bm(a0cX.c)]?a0a8(I[bm(0x240)]):u+bm(a0cX.d)+(L+0x1),V=''+v+R;return{'\x69\x64':V,'\x6e\x61\x6d\x65':U,'\x61\x64\x64\x72\x65\x73\x73':bm(a0cX.e)+a,'\x68\x6f\x73\x74':a,'\x6c\x75\x6d\x69\x61\x49\x6e\x66\x6f':{'\x61\x6c\x69\x61\x73':U,'\x69\x64\x65\x6e\x74\x69\x66\x69\x65\x72':V,'\x73\x65\x72\x69\x61\x6c':I?.['\x68\x77\x5f\x69\x64']||I?.['\x6d\x61\x63']||R,'\x6d\x6f\x64\x65\x6c':I?.[bm(0x208)]||c?.['\x6d\x6f\x64\x65\x6c']||'\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x4d\x6f\x64\x65\x6c','\x6c\x75\x6d\x69\x61\x54\x79\x70\x65':a0e[bm(0x221)][bm(a0cX.f)],'\x7a\x6f\x6e\x61\x62\x6c\x65':!0x1,'\x6d\x61\x78\x5a\x6f\x6e\x65\x73':0x0,'\x7a\x6f\x6e\x65\x73':[],'\x72\x67\x62':!0x1,'\x77\x68\x69\x74\x65':!0x1,'\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x54\x79\x70\x65':a0e[bm(a0cX.g)]['\x57\x49\x46\x49'],'\x62\x72\x61\x6e\x64':a0e['\x49\x4c\x75\x6d\x69\x61\x44\x65\x76\x69\x63\x65\x42\x72\x61\x6e\x64\x73'][bm(0x157)],'\x70\x72\x6f\x64\x75\x63\x74':I?.[bm(0x208)]||c?.['\x6d\x6f\x64\x65\x6c']||'\x54\x61\x70\x6f\x20\x44\x65\x76\x69\x63\x65'},'\x69\x6e\x66\x6f':{...I,'\x69\x73\x43\x68\x69\x6c\x64':!0x0,'\x70\x61\x72\x65\x6e\x74\x44\x65\x76\x69\x63\x65\x49\x64':v,'\x63\x68\x69\x6c\x64\x44\x65\x76\x69\x63\x65\x49\x64':R,'\x70\x61\x72\x65\x6e\x74':c,'\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73':f}};});}async[a0aH(0x1d4)](a){const a0cZ={a:0x17a},bn=a0aH;let b=await this[bn(0x1cd)](a);return this[bn(a0cZ.a)](b);}async[a0aH(0x17a)](a){const a0d0={a:0x251,b:0x21f,c:0x11a,d:0x159},bo=a0aH;let b=(await a[bo(a0d0.a)]({'\x6d\x65\x74\x68\x6f\x64':bo(a0d0.b)}))?.[bo(a0d0.c)]||[],c={};for(let d of b)d?.['\x69\x64']&&(c[d['\x69\x64']]=typeof d[bo(0x152)]==bo(a0d0.d)?d['\x76\x65\x72\x5f\x63\x6f\x64\x65']:0x1);return c;}async[a0aH(0x1cd)](a){const a0d1={a:0x1ad,b:0x20b,c:0x1c8,d:0x255,e:0x250},bp=a0aH;let b=this[bp(a0d1.a)][bp(a0d1.b)](a);if(b)return b;let c=await this[bp(a0d1.c)](a,{'\x65\x6d\x61\x69\x6c':this['\x5f\x63\x6f\x6e\x66\x69\x67'][bp(0x25e)],'\x70\x61\x73\x73\x77\x6f\x72\x64':this[bp(0x1da)][bp(0x125)]});if(!c[bp(0x14d)][bp(0x206)](a)){let d=c['\x66\x61\x69\x6c\x65\x64'][bp(a0d1.d)](f=>f['\x69\x70']===a);throw new Error(d?.[bp(0x15b)]||bp(0x1f7)+a+bp(0x223));}if(b=this[bp(0x1ad)][bp(0x20b)](a),!b)throw new Error(bp(a0d1.e)+a+bp(0x18b));return b;}['\x5f\x62\x75\x69\x6c\x64\x54\x61\x70\x6f\x46\x72\x6f\x6d\x44\x65\x76\x69\x63\x65\x49\x6e\x66\x6f'](a,b){const a0d2={a:0x240,b:0x118,c:0x168,d:0x244,e:0x20d,f:0x194,g:0x148,h:0x204,i:0x236,k:0x1cb,l:0x204,n:0x1aa,o:0x208,p:0x20c,q:0x19a,r:0x155,t:0x157,u:0x1bd},bq=a0aH;let c=bq(0x161)+a+'\x29';b?.[bq(0x240)]&&(c=a0a8(b[bq(a0d2.a)]));let d=typeof b?.[bq(0x168)]==bq(a0d2.b)?b[bq(a0d2.c)]:'',f=d==='\x53\x4d\x41\x52\x54\x2e\x54\x41\x50\x4f\x50\x4c\x55\x47'||d===bq(a0d2.d)||!d&&b?.[bq(a0d2.e)]!==void 0x0&&b?.[bq(a0d2.f)]===void 0x0&&b?.[bq(a0d2.g)]===void 0x0;return{'\x69\x64':b?.[bq(a0d2.h)]||'\x74\x61\x70\x6f\x2d'+a[bq(a0d2.i)](/\./g,'\x2d'),'\x6e\x61\x6d\x65':c,'\x61\x64\x64\x72\x65\x73\x73':bq(a0d2.k)+a,'\x68\x6f\x73\x74':a,'\x6c\x75\x6d\x69\x61\x49\x6e\x66\x6f':{'\x61\x6c\x69\x61\x73':c,'\x69\x64\x65\x6e\x74\x69\x66\x69\x65\x72':b?.[bq(a0d2.l)]||'\x74\x61\x70\x6f\x2d'+a[bq(a0d2.i)](/\./g,'\x2d'),'\x73\x65\x72\x69\x61\x6c':b?.['\x68\x77\x5f\x69\x64']||b?.[bq(a0d2.n)]||a,'\x6d\x6f\x64\x65\x6c':b?.[bq(a0d2.o)]||bq(0x189),'\x6c\x75\x6d\x69\x61\x54\x79\x70\x65':f?a0e[bq(0x221)][bq(0x183)]:a0e[bq(0x221)][bq(a0d2.p)],'\x7a\x6f\x6e\x61\x62\x6c\x65':!0x1,'\x6d\x61\x78\x5a\x6f\x6e\x65\x73':f?0x0:0x1,'\x7a\x6f\x6e\x65\x73':[],'\x72\x67\x62':!f&&(b?.['\x68\x75\x65']!==void 0x0||b?.['\x63\x6f\x6c\x6f\x72\x5f\x74\x65\x6d\x70']!==void 0x0),'\x77\x68\x69\x74\x65':!f&&b?.['\x62\x72\x69\x67\x68\x74\x6e\x65\x73\x73']!==void 0x0,'\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x54\x79\x70\x65':a0e['\x49\x4c\x75\x6d\x69\x61\x44\x65\x76\x69\x63\x65\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x54\x79\x70\x65'][bq(a0d2.q)],'\x62\x72\x61\x6e\x64':a0e[bq(a0d2.r)][bq(a0d2.t)],'\x70\x72\x6f\x64\x75\x63\x74':b?.['\x6d\x6f\x64\x65\x6c']||bq(a0d2.u)},'\x69\x6e\x66\x6f':b};}[a0aH(0x124)](a){const a0d3={a:0x137,b:0x1ef,c:0x231},br=a0aH;if(!a)return!0x1;let b=a['\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65']();return b[br(a0d3.a)]('\x50\x33\x30\x30')||b['\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68'](br(a0d3.b))||b[br(a0d3.a)]('\x50\x33\x30\x36')||b[br(a0d3.a)]('\x50\x33\x31\x36')||b[br(a0d3.a)](br(a0d3.c));}async['\x5f\x66\x65\x74\x63\x68\x43\x68\x69\x6c\x64\x44\x65\x76\x69\x63\x65\x4c\x69\x73\x74'](b){const a0d4={a:0x251,b:0x228,c:0x1c3,d:0x205,e:0x205},bs=a0aH;let c=[],d=0x0;for(let f=0x0;f<0xa;f++){let g=await b[bs(a0d4.a)]({'\x6d\x65\x74\x68\x6f\x64':bs(a0d4.b),'\x70\x61\x72\x61\x6d\x73':{'\x73\x74\x61\x72\x74\x5f\x69\x6e\x64\x65\x78':d}}),h=g?.[bs(a0d4.c)]||[];c['\x70\x75\x73\x68'](...h);let k=typeof g?.[bs(0x1dc)]==bs(0x159)?g[bs(0x1dc)]:c[bs(0x205)];if(c[bs(a0d4.d)]>=k||h[bs(a0d4.e)]===0x0)break;d=c[bs(a0d4.d)];}return c;}[a0aH(0x13c)](a){return this['\x5f\x64\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e\x73']['\x68\x61\x73'](a);}[a0aH(0x132)](a){const a0d6={a:0x242},bt=a0aH;this[bt(0x1ad)][bt(a0d6.a)](a);}[a0aH(0x24c)](a){const a0d7={a:0x20b,b:0x125},bu=a0aH;let b=this[bu(0x1ad)][bu(a0d7.a)](a);if(!b)throw new Error('\x4e\x6f\x20\x73\x65\x73\x73\x69\x6f\x6e\x20\x66\x6f\x75\x6e\x64\x20\x66\x6f\x72\x20\x64\x65\x76\x69\x63\x65\x20'+a+bu(0x258));return{'\x64\x65\x76\x69\x63\x65\x49\x70':a,'\x73\x65\x73\x73\x69\x6f\x6e\x43\x6f\x6f\x6b\x69\x65':b[bu(0x20f)],'\x63\x69\x70\x68\x65\x72':b[bu(0x173)],'\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73':{'\x65\x6d\x61\x69\x6c':this[bu(0x1da)]['\x72\x61\x77\x45\x6d\x61\x69\x6c'],'\x70\x61\x73\x73\x77\x6f\x72\x64':this[bu(0x1da)][bu(a0d7.b)]}};}},a0ab=class{constructor(a,b,c){const a0d8={a:0x1d6},bv=a0aH;let {iv:d,seq:f}=this[bv(a0d8.a)](a,b,c);this['\x6b\x65\x79']=this[bv(0x1ab)](a,b,c),this[bv(0x1fe)]=this['\x73\x69\x67\x44\x65\x72\x69\x76\x65'](a,b,c),this['\x69\x76']=d,this[bv(0x1c0)]=f;}[a0aH(0x232)](a){const a0d9={a:0x1c0,b:0x118,c:0x1e6,d:0x170,e:0x1f1,f:0x21a,g:0x1d9,h:0x201,i:0x13e},bw=a0aH;if(this[bw(a0d9.a)]+=0x1,typeof a==bw(a0d9.b)&&(a=Buffer[bw(a0d9.c)](a,bw(0x24a))),!Buffer[bw(a0d9.d)](a))throw new Error(bw(a0d9.e));let b=a0s[bw(0x1f5)][bw(a0d9.f)](bw(a0d9.g),this['\x6b\x65\x79'],this['\x69\x76\x53\x65\x71']()),c=Buffer[bw(0x1df)]([b['\x75\x70\x64\x61\x74\x65'](a),b['\x66\x69\x6e\x61\x6c']()]),d=Buffer['\x61\x6c\x6c\x6f\x63'](0x4);d[bw(a0d9.h)](this[bw(0x1c0)],0x0);let f=a0s['\x64\x65\x66\x61\x75\x6c\x74'][bw(0x180)](bw(a0d9.i));f[bw(0x24d)](Buffer['\x63\x6f\x6e\x63\x61\x74']([this[bw(0x1fe)],d,c]));let g=f[bw(0x114)]();return{'\x65\x6e\x63\x72\x79\x70\x74\x65\x64':Buffer[bw(0x1df)]([g,c]),'\x73\x65\x71':this[bw(0x1c0)]};}[a0aH(0x23a)](a){const a0da={a:0x217,b:0x202,c:0x1e9},bx=a0aH;if(!Buffer[bx(0x170)](a))return a;let b=a0s[bx(0x1f5)]['\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72\x69\x76'](bx(0x1d9),this[bx(a0da.a)],this['\x69\x76\x53\x65\x71']());return Buffer[bx(0x1df)]([b['\x75\x70\x64\x61\x74\x65'](a[bx(a0da.b)](0x20)),b[bx(a0da.c)]()])[bx(0x17d)](bx(0x24a));}['\x6b\x65\x79\x44\x65\x72\x69\x76\x65'](a,b,c){const a0db={a:0x1df,b:0x1e6,c:0x180,d:0x24d},by=a0aH;let d=Buffer[by(a0db.a)]([Buffer[by(a0db.b)]('\x6c\x73\x6b'),a,b,c]);return a0s['\x64\x65\x66\x61\x75\x6c\x74'][by(a0db.c)]('\x73\x68\x61\x32\x35\x36')[by(a0db.d)](d)['\x64\x69\x67\x65\x73\x74']()[by(0x202)](0x0,0x10);}[a0aH(0x1d6)](a,b,c){const a0dc={a:0x1e6,b:0x180},bz=a0aH;let d=Buffer[bz(0x1df)]([Buffer[bz(a0dc.a)]('\x69\x76'),a,b,c]),f=a0s['\x64\x65\x66\x61\x75\x6c\x74'][bz(a0dc.b)](bz(0x13e))[bz(0x24d)](d)[bz(0x114)](),g=f[bz(0x202)](-0x4)[bz(0x200)](0x0);return{'\x69\x76':f['\x73\x75\x62\x61\x72\x72\x61\x79'](0x0,0xc),'\x73\x65\x71':g};}[a0aH(0x216)](a,b,c){const a0dd={a:0x1df,b:0x1e6,c:0x1fd,d:0x180,e:0x13e,f:0x114,g:0x202},bA=a0aH;let d=Buffer[bA(a0dd.a)]([Buffer[bA(a0dd.b)](bA(a0dd.c)),a,b,c]);return a0s['\x64\x65\x66\x61\x75\x6c\x74'][bA(a0dd.d)](bA(a0dd.e))[bA(0x24d)](d)[bA(a0dd.f)]()[bA(a0dd.g)](0x0,0x1c);}[a0aH(0x1d7)](){const a0de={a:0x1c0},bB=a0aH;let a=Buffer['\x61\x6c\x6c\x6f\x63'](0x4);a[bB(0x201)](this[bB(a0de.a)],0x0);let b=Buffer['\x63\x6f\x6e\x63\x61\x74']([this['\x69\x76'],a]);if(b['\x6c\x65\x6e\x67\x74\x68']!==0x10)throw new Error(bB(0x207));return b;}},a0ac=class a0aE{constructor(a){const a0dj={a:0x22d,b:0x1da,c:0x1d8,d:0x182,e:0x1a4,f:0x249,g:0x1f5,h:0x1b9,i:0x23f,k:0x1da,l:0x1a9,n:0x1a7,o:0x110,p:0x1da,q:0x110},a0di={a:0x182,b:0x254,c:0x18f,d:0x174,e:0x232,f:0x1be,g:0x1c0},a0dh={a:0x1e3},a0dg={a:0x18f,b:0x182,c:0x1ae},a0df={a:0x1a7,b:0x1da,c:0x1a7,d:0x110,e:0x1da,f:0x110,g:0x21e,h:0x1f5,i:0x113,k:0x22a},bC=a0aH;this[bC(0x113)]=bC(a0dj.a),this[bC(a0dj.b)]={'\x72\x61\x77\x45\x6d\x61\x69\x6c':'','\x72\x61\x77\x50\x61\x73\x73\x77\x6f\x72\x64':'','\x65\x6d\x61\x69\x6c':'','\x70\x61\x73\x73\x77\x6f\x72\x64':'','\x61\x75\x74\x68\x54\x6f\x6b\x65\x6e':null,'\x74\x69\x6d\x65\x6f\x75\x74':0x2710,'\x68\x74\x74\x70\x54\x69\x6d\x65\x6f\x75\x74':0xfa0},this[bC(a0dj.c)]='',this[bC(a0dj.d)]=new Map(),this['\x61\x75\x74\x68']=async b=>{const bD=bC;let c=b?.[bD(a0df.a)]||this[bD(a0df.b)][bD(a0df.c)],d=b?.[bD(a0df.d)]||this[bD(a0df.e)][bD(a0df.f)];if(!c||!d)throw new Error('\x45\x6d\x61\x69\x6c\x20\x61\x6e\x64\x20\x70\x61\x73\x73\x77\x6f\x72\x64\x20\x61\x72\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x66\x6f\x72\x20\x61\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x69\x6f\x6e');let f={'\x6d\x65\x74\x68\x6f\x64':bD(a0df.g),'\x70\x61\x72\x61\x6d\x73':{'\x61\x70\x70\x54\x79\x70\x65':'\x54\x61\x70\x6f\x5f\x49\x6f\x73','\x63\x6c\x6f\x75\x64\x50\x61\x73\x73\x77\x6f\x72\x64':d,'\x63\x6c\x6f\x75\x64\x55\x73\x65\x72\x4e\x61\x6d\x65':c,'\x74\x65\x72\x6d\x69\x6e\x61\x6c\x55\x55\x49\x44':a0k[bD(0x233)]()}},g=await a0p[bD(a0df.h)]({'\x6d\x65\x74\x68\x6f\x64':bD(0x167),'\x75\x72\x6c':this[bD(a0df.i)],'\x64\x61\x74\x61':f});return a0z(g[bD(a0df.k)]),this[bD(0x1d8)]=g[bD(a0df.k)]['\x72\x65\x73\x75\x6c\x74']['\x74\x6f\x6b\x65\x6e'],this[bD(0x1d8)];},this[bC(a0dj.e)]=async(b,c)=>{const bE=bC;let d=b[bE(0x111)](async g=>{const bF=bE;let h=await this[bF(a0dg.a)](g[bF(0x1e7)],void 0x0,!0x1,c);this[bF(a0dg.b)][bF(a0dg.c)](g['\x69\x64'],h);}),f=[];try{f=await Promise['\x61\x6c\x6c\x53\x65\x74\x74\x6c\x65\x64'](d);}catch(g){console['\x65\x72\x72\x6f\x72'](bE(a0dh.a),g);}return{'\x72\x65\x73\x70\x6f\x6e\x73\x65\x73':f,'\x64\x65\x76\x69\x63\x65\x73':this[bE(0x182)]};},this[bC(a0dj.f)]=async b=>{const bG=bC;let c=this[bG(a0di.a)][bG(0x20b)](b[bG(0x229)]['\x69\x64']);if(!c)return Promise[bG(a0di.b)](!0x1);await this[bG(a0di.c)](c?.['\x69\x70'],c,!0x1);let d=b['\x73\x74\x61\x74\x65'][bG(a0di.d)](),f=JSON[bG(0x1af)]({'\x6d\x65\x74\x68\x6f\x64':'\x73\x65\x74\x5f\x64\x65\x76\x69\x63\x65\x5f\x69\x6e\x66\x6f','\x70\x61\x72\x61\x6d\x73':d}),g=c[bG(0x173)][bG(a0di.e)](f);if((await this['\x73\x65\x73\x73\x69\x6f\x6e\x50\x6f\x73\x74'](c['\x69\x70'],bG(a0di.f),g['\x65\x6e\x63\x72\x79\x70\x74\x65\x64'],bG(0x1ca),c[bG(0x247)],{'\x73\x65\x71':g[bG(a0di.g)][bG(0x17d)]()}))[bG(0x1b1)]!==0xc8)throw new Error('\x5b\x4b\x4c\x41\x50\x5d\x20\x52\x65\x71\x75\x65\x73\x74\x20\x66\x61\x69\x6c\x65\x64');return!0x0;},this[bC(0x1a0)]=async b=>this['\x73\x65\x6e\x64\x53\x74\x61\x74\x65']({'\x64\x65\x76\x69\x63\x65':b[bC(0x229)],'\x73\x74\x61\x74\x65':new a0B({'\x6f\x6e':b[bC(0x128)]})}),(this['\x61\x78\x69\x6f\x73\x49\x6e\x73\x74\x61\x6e\x63\x65']=a0p[bC(a0dj.g)]['\x63\x72\x65\x61\x74\x65'](),this[bC(a0dj.h)]['\x64\x65\x66\x61\x75\x6c\x74\x73'][bC(a0dj.i)]=a?.[bC(0x23e)]||0xfa0,this['\x5f\x63\x6f\x6e\x66\x69\x67']={...this[bC(0x1da)],...a},this['\x5f\x63\x6f\x6e\x66\x69\x67'][bC(0x25e)]=this[bC(0x1da)][bC(0x1a7)],this[bC(a0dj.k)][bC(0x125)]=this[bC(0x1da)][bC(0x110)],this[bC(0x1da)][bC(0x1a7)]=a0Y[bC(a0dj.l)](a0Y['\x65\x6e\x63\x6f\x64\x65\x55\x73\x65\x72\x6e\x61\x6d\x65'](this[bC(0x1da)][bC(a0dj.n)])),this['\x5f\x63\x6f\x6e\x66\x69\x67'][bC(a0dj.o)]=a0Y[bC(0x1a9)](this[bC(a0dj.p)][bC(a0dj.q)]),this['\x74\x65\x72\x6d\x69\x6e\x61\x6c\x55\x55\x49\x44']=a0s[bC(a0dj.g)][bC(0x1e5)]());}async[a0aH(0x16d)](b,c,d,f,g,h){const a0dk={a:0x116,b:0x1f5},bH=a0aH;let k={'\x41\x63\x63\x65\x70\x74':bH(0x11e),'\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x54\x79\x70\x65':bH(0x11c)};return g&&(process?.[bH(0x19c)]?.[bH(0x225)]?k[bH(a0dk.a)]=g:k['\x43\x6f\x6f\x6b\x69\x65']=g),a0p[bH(0x1f5)]['\x70\x6f\x73\x74'](bH(0x1cb)+b+'\x2f\x61\x70\x70'+c,d,{'\x72\x65\x73\x70\x6f\x6e\x73\x65\x54\x79\x70\x65':f,'\x70\x61\x72\x61\x6d\x73':h,'\x68\x65\x61\x64\x65\x72\x73':k,'\x68\x74\x74\x70\x41\x67\x65\x6e\x74':new a0u[(bH(a0dk.b))]['\x41\x67\x65\x6e\x74']({'\x6b\x65\x65\x70\x41\x6c\x69\x76\x65':!0x1})});}[a0aH(0x12c)](a){const a0dl={a:0x191},bI=a0aH;return!!(!a||!a[bI(0x173)]||a[bI(a0dl.a)]||!a[bI(0x247)]);}async['\x68\x61\x6e\x64\x73\x68\x61\x6b\x65'](b,d,f=!0x1,g){const bJ=a0aH;if(!this[bJ(0x12c)](d)&&!f)return;let {localSeed:h,remoteSeed:k,authHash:l,deviceSession:p}=await this[bJ(0x119)](b,void 0x0,g);return await this[bJ(0x257)](p,b,h,k,l,g);}async[a0aH(0x119)](k,q,v){const a0dn={a:0x1bc,b:0x1c2,c:0x1ca,d:0x22a,e:0x202,f:0x202,g:0x263,h:0x1a3,i:0x17d,k:0x252,l:0x25b,n:0x1da,o:0x125,p:0x13e,q:0x1df,r:0x13d,t:0x214,u:0x1ff,v:0x13e,w:0x18c,G:0x169},bK=a0aH;let G=q||a0s['\x64\x65\x66\x61\x75\x6c\x74'][bK(a0dn.a)](0x10),I=await this[bK(0x16d)](k,bK(a0dn.b),G,bK(a0dn.c));if(v?.[bK(0x13d)](bK(0x23d),I),I[bK(0x1b1)]!==0xc8)throw new Error(bK(0x1f4));if(I[bK(0x213)][bK(0x1eb)]!=='\x34\x38')throw new Error(bK(0x199));let L=I['\x68\x65\x61\x64\x65\x72\x73'][bK(0x20a)]||I['\x68\x65\x61\x64\x65\x72\x73'][bK(0x1b7)]?.[0x0],R=Buffer['\x66\x72\x6f\x6d'](new Uint8Array(I[bK(a0dn.d)])),[U,V]=L['\x73\x70\x6c\x69\x74']('\x3b'),a0=V['\x73\x70\x6c\x69\x74']('\x3d')[bK(0x19f)](),a1=new a0ae(a0,k,U),a2=R[bK(a0dn.e)](0x0,0x10),a3=R[bK(a0dn.f)](0x10);v?.['\x64\x65\x62\x75\x67'](bK(a0dn.g),a2[bK(0x17d)](bK(0x165)),bK(a0dn.h),a3[bK(a0dn.i)]('\x68\x65\x78'),bK(a0dn.k),U);let a4=this[bK(a0dn.l)](this[bK(0x1da)][bK(0x25e)],this[bK(a0dn.n)][bK(a0dn.o)]),a5=this[bK(a0dn.p)](Buffer[bK(a0dn.q)]([G,a2,a4]));if(Buffer[bK(0x1ff)](a5,a3)===0x0)return v?.[bK(a0dn.r)](bK(a0dn.t)),{'\x6c\x6f\x63\x61\x6c\x53\x65\x65\x64':G,'\x72\x65\x6d\x6f\x74\x65\x53\x65\x65\x64':a2,'\x61\x75\x74\x68\x48\x61\x73\x68':a4,'\x64\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e':a1};let a6=this['\x73\x68\x61\x32\x35\x36'](Buffer[bK(a0dn.q)]([G,a2,this[bK(0x25b)]('','')]));if(Buffer[bK(a0dn.u)](a6,a3)===0x0)return v?.['\x64\x65\x62\x75\x67'](bK(0x196)),{'\x6c\x6f\x63\x61\x6c\x53\x65\x65\x64':G,'\x72\x65\x6d\x6f\x74\x65\x53\x65\x65\x64':a2,'\x61\x75\x74\x68\x48\x61\x73\x68':a6,'\x64\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e':a1};let a7=this[bK(a0dn.v)](Buffer['\x63\x6f\x6e\x63\x61\x74']([G,a2,this[bK(0x25b)](a0aE[bK(a0dn.w)],a0aE['\x54\x50\x5f\x54\x45\x53\x54\x5f\x50\x41\x53\x53\x57\x4f\x52\x44'])]));if(Buffer['\x63\x6f\x6d\x70\x61\x72\x65'](a7,a3)===0x0)return v?.[bK(0x13d)](bK(a0dn.G)),{'\x6c\x6f\x63\x61\x6c\x53\x65\x65\x64':G,'\x72\x65\x6d\x6f\x74\x65\x53\x65\x65\x64':a2,'\x61\x75\x74\x68\x48\x61\x73\x68':a7,'\x64\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e':a1};throw new Error('\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x76\x65\x72\x69\x66\x79\x20\x73\x65\x72\x76\x65\x72\x20\x68\x61\x73\x68');}async[a0aH(0x257)](b,d,f,g,h,k){const a0do={a:0x234,b:0x247,c:0x1b1,d:0x123,e:0x15b,f:0x1d3,g:0x22a},bL=a0aH;let l=this[bL(0x13e)](Buffer['\x63\x6f\x6e\x63\x61\x74']([g,f,h]));try{let p=await this['\x73\x65\x73\x73\x69\x6f\x6e\x50\x6f\x73\x74'](d,'\x2f\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x32',l,bL(a0do.a),b[bL(a0do.b)]);if(p[bL(a0do.c)]===0xc8)return k?.[bL(0x13d)](bL(0x177)),b[bL(a0do.d)](d,new a0ab(f,g,h));k['\x77\x61\x72\x6e']('\x5b\x4b\x4c\x41\x50\x5d\x20\x53\x65\x63\x6f\x6e\x64\x20\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x20\x66\x61\x69\x6c\x65\x64',p['\x64\x61\x74\x61']);}catch(q){k[bL(a0do.e)](bL(0x145),q[bL(a0do.f)][bL(a0do.g)]||q[bL(0x21d)]);}}[a0aH(0x13e)](a){const a0dp={a:0x1f5,b:0x13e},bM=a0aH;return a0s[bM(a0dp.a)]['\x63\x72\x65\x61\x74\x65\x48\x61\x73\x68'](bM(a0dp.b))[bM(0x24d)](a)['\x64\x69\x67\x65\x73\x74']();}[a0aH(0x12e)](a){const a0dq={a:0x1f5,b:0x180,c:0x12e,d:0x24d,e:0x114},bN=a0aH;return a0s[bN(a0dq.a)][bN(a0dq.b)](bN(a0dq.c))[bN(a0dq.d)](a)[bN(a0dq.e)]();}[a0aH(0x25b)](a,b){const a0dr={a:0x1df},bO=a0aH;return this[bO(0x13e)](Buffer[bO(a0dr.a)]([this[bO(0x12e)](Buffer['\x66\x72\x6f\x6d'](a[bO(0x122)]('\x4e\x46\x4b\x43'))),this[bO(0x12e)](Buffer['\x66\x72\x6f\x6d'](b['\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65'](bO(0x147))))]));}};a0ac[a0aH(0x18c)]=a0aH(0x12f),a0ac['\x54\x50\x5f\x54\x45\x53\x54\x5f\x50\x41\x53\x53\x57\x4f\x52\x44']=a0aH(0x171);var a0ad=a0ac,a0ae=class a0aF{constructor(a,b,c,d){const a0ds={a:0x173,b:0x162},bP=a0aH;this['\x69\x70']=b,this['\x63\x6f\x6f\x6b\x69\x65']=c,this[bP(a0ds.a)]=d,this[bP(0x162)]=!0x1,(this[bP(0x178)]=a,this['\x65\x78\x70\x69\x72\x65\x41\x74']=new Date(Date[bP(0x261)]()+parseInt(a)*0x3e8),d&&(this[bP(a0ds.b)]=!0x0));}get[a0aH(0x191)](){const a0dt={a:0x14e},bQ=a0aH;return this[bQ(a0dt.a)][bQ(0x1bf)]()-Date[bQ(0x261)]()<=0x28*0x3e8;}get[a0aH(0x247)](){const bR=a0aH;return this[bR(0x121)];}['\x63\x6f\x6d\x70\x6c\x65\x74\x65\x48\x61\x6e\x64\x73\x68\x61\x6b\x65'](a,b){return new a0aF(this['\x72\x61\x77\x54\x69\x6d\x65\x6f\x75\x74'],a,this['\x63\x6f\x6f\x6b\x69\x65'],b);}},a0af=[a0aH(0x1a1),a0aH(0x1f9),a0aH(0x227),'\x65\x34\x3a\x66\x61\x3a\x63\x34',a0aH(0x1b4),a0aH(0x186)],a0ag=0x5,a0ah=a=>(a||'')[a0aH(0x236)](/[^a-fA-F0-9]/g,'')['\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65'](),a0ai=a=>{const a0dw={a:0x150,b:0x1a8},bS=a0aH;let b=a0ah(a);return b[bS(0x205)]!==0xc?(a||'')['\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65']():b[bS(a0dw.a)](/.{1,2}/g)?.[bS(a0dw.b)]('\x3a')||(a||'')[bS(0x16b)]();},a0aj=a=>{const bT=a0aH;let b=(a||'')['\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65']();return a0af[bT(0x1fb)](c=>b['\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68'](c));},a0ak=async a=>{const a0dy={a:0x1f5},bU=a0aH;let b=a0ah(a),c=a0ai(a),d=0x0;for(;d<=a0ag;){try{let g=await a0q[bU(a0dy.a)]['\x74\x6f\x49\x50'](c);if(g)return g;}catch{}let f=(await a0r[bU(0x1f5)]({'\x73\x6b\x69\x70\x4e\x61\x6d\x65\x52\x65\x73\x6f\x6c\x75\x74\x69\x6f\x6e':!0x0}))['\x66\x69\x6e\x64'](h=>a0ah(h[bU(0x1aa)])===b);if(f?.['\x69\x70'])return f['\x69\x70'];d++;}},a0al=async a=>{const a0dA={a:0x1fa},a0dz={a:0x1c8,b:0x14d,c:0x15b,d:0x22c},bV=a0aH;let b=await a0r['\x64\x65\x66\x61\x75\x6c\x74']({'\x73\x6b\x69\x70\x4e\x61\x6d\x65\x52\x65\x73\x6f\x6c\x75\x74\x69\x6f\x6e':!0x0}),{email:c,password:d}=a;return b[bV(a0dA.a)](f=>a0aj(f[bV(0x1aa)]))[bV(0x111)](f=>({'\x69\x70':f['\x69\x70'],'\x6d\x61\x63':f[bV(0x1aa)],'\x6c\x6f\x67\x69\x6e\x44\x65\x76\x69\x63\x65':async()=>{const bW=bV;let g=new a0aa({'\x65\x6d\x61\x69\x6c':c,'\x70\x61\x73\x73\x77\x6f\x72\x64':d}),h=await g[bW(a0dz.a)](f['\x69\x70'],{'\x65\x6d\x61\x69\x6c':c,'\x70\x61\x73\x73\x77\x6f\x72\x64':d});if(!h[bW(a0dz.b)][bW(0x206)](f['\x69\x70'])){let k=h[bW(0x126)]['\x66\x69\x6e\x64'](l=>l['\x69\x70']===f['\x69\x70']);throw new Error(k?.[bW(a0dz.c)]||bW(a0dz.d)+f['\x69\x70']);}return g;}}));},a0am=async b=>{const a0dB={a:0x1a7,b:0x184,c:0x188,d:0x181,e:0x1e2,f:0x260,g:0x1cb,h:0x260,i:0x1c9,k:0x20c,l:0x19a,n:0x155,o:0x14f,p:0x244,q:0x203,r:0x16e,t:0x206,u:0x183,v:0x181,w:0x238,G:0x1de},bX=a0aH;let d=new a0ad(b),f=b['\x74\x6f\x6b\x65\x6e'];!f&&b[bX(a0dB.a)]&&b['\x70\x61\x73\x73\x77\x6f\x72\x64']&&(f=await d['\x61\x75\x74\x68']({'\x65\x6d\x61\x69\x6c':b[bX(0x1a7)],'\x70\x61\x73\x73\x77\x6f\x72\x64':b['\x70\x61\x73\x73\x77\x6f\x72\x64']}));let g={'\x6d\x65\x74\x68\x6f\x64':bX(0x15f)},h=await a0p[bX(0x1f5)]({'\x6d\x65\x74\x68\x6f\x64':bX(0x167),'\x75\x72\x6c':d['\x5f\x62\x61\x73\x65\x55\x72\x6c']+bX(a0dB.b)+f,'\x64\x61\x74\x61':g});a0z(h['\x64\x61\x74\x61']);let k=[];for(let l of h['\x64\x61\x74\x61'][bX(0x135)]?.[bX(0x1f2)]||[]){if(!l['\x69\x70']){let p=await a0ak(l[bX(0x260)]);if(!p)continue;l['\x69\x70']=p;}switch(l['\x64\x65\x76\x69\x63\x65\x54\x79\x70\x65']){case bX(a0dB.c):case bX(0x1e2):{if(b['\x74\x79\x70\x65\x73']&&!b['\x74\x79\x70\x65\x73'][bX(0x206)](a0e[bX(0x221)][bX(0x20c)]))continue;let q=l[bX(a0dB.d)]===bX(a0dB.e),u=(q?a0y(l['\x61\x6c\x69\x61\x73']):l[bX(0x238)])??l[bX(0x1de)];k[bX(0x259)]({'\x6e\x61\x6d\x65':u,'\x69\x64':l[bX(a0dB.f)],'\x61\x64\x64\x72\x65\x73\x73':bX(a0dB.g)+l['\x69\x70'],'\x68\x6f\x73\x74':l['\x69\x70'],'\x6c\x75\x6d\x69\x61\x49\x6e\x66\x6f':{'\x61\x6c\x69\x61\x73':u,'\x69\x64\x65\x6e\x74\x69\x66\x69\x65\x72':l[bX(a0dB.h)],'\x73\x65\x72\x69\x61\x6c':l[bX(a0dB.i)],'\x6c\x75\x6d\x69\x61\x54\x79\x70\x65':a0e['\x49\x4c\x75\x6d\x69\x61\x44\x65\x76\x69\x63\x65\x54\x79\x70\x65'][bX(a0dB.k)],'\x7a\x6f\x6e\x61\x62\x6c\x65':!0x1,'\x6d\x61\x78\x5a\x6f\x6e\x65\x73':0x1,'\x7a\x6f\x6e\x65\x73':[],'\x72\x67\x62':!0x0,'\x77\x68\x69\x74\x65':!0x0,'\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x54\x79\x70\x65':a0e[bX(0x187)][bX(a0dB.l)],'\x62\x72\x61\x6e\x64':q?a0e[bX(a0dB.n)][bX(a0dB.o)]:a0e[bX(0x155)]['\x54\x50\x4c\x49\x4e\x4b'],'\x70\x72\x6f\x64\x75\x63\x74':l?.['\x64\x65\x76\x69\x63\x65\x4d\x6f\x64\x65\x6c']}});break;}case bX(a0dB.p):case bX(a0dB.q):{if(b['\x74\x79\x70\x65\x73']&&!b[bX(a0dB.r)][bX(a0dB.t)](a0e[bX(0x221)][bX(a0dB.u)]))continue;let v=l[bX(a0dB.v)]==='\x53\x4d\x41\x52\x54\x2e\x54\x41\x50\x4f\x50\x4c\x55\x47',w=(v?a0y(l[bX(a0dB.w)]):l['\x61\x6c\x69\x61\x73'])??l[bX(a0dB.G)];k['\x70\x75\x73\x68']({'\x6e\x61\x6d\x65':w,'\x69\x64':l[bX(0x260)],'\x61\x64\x64\x72\x65\x73\x73':bX(0x1cb)+l['\x69\x70'],'\x68\x6f\x73\x74':l['\x69\x70'],'\x6c\x75\x6d\x69\x61\x49\x6e\x66\x6f':{'\x61\x6c\x69\x61\x73':w,'\x69\x64\x65\x6e\x74\x69\x66\x69\x65\x72':l['\x64\x65\x76\x69\x63\x65\x4d\x61\x63'],'\x73\x65\x72\x69\x61\x6c':l['\x68\x77\x49\x64'],'\x6c\x75\x6d\x69\x61\x54\x79\x70\x65':a0e[bX(0x221)][bX(a0dB.u)],'\x7a\x6f\x6e\x61\x62\x6c\x65':!0x1,'\x6d\x61\x78\x5a\x6f\x6e\x65\x73':0x0,'\x7a\x6f\x6e\x65\x73':[],'\x72\x67\x62':!0x1,'\x77\x68\x69\x74\x65':!0x1,'\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x54\x79\x70\x65':a0e['\x49\x4c\x75\x6d\x69\x61\x44\x65\x76\x69\x63\x65\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x54\x79\x70\x65']['\x57\x49\x46\x49'],'\x62\x72\x61\x6e\x64':v?a0e[bX(0x155)][bX(a0dB.o)]:a0e[bX(0x155)][bX(a0dB.o)],'\x70\x72\x6f\x64\x75\x63\x74':l?.[bX(0x1e0)]}});break;}}}return k;},a0an=a0am,a0ao;function a0d(a,b){a=a-0x10d;const c=a0c();let d=c[a];return d;}typeof window<'\x75'&&typeof window[a0aH(0x243)]!==void 0x0?a0ao=window[a0aH(0x243)]:a0ao=a0v[a0aH(0x1f5)];var a0ap=0x4e22,a0aq=a0aH(0x12a),a0ar=0xfa0,a0as=0x320,a0at=Buffer[a0aH(0x1e6)]('\x30\x32\x30\x30\x30\x30\x30\x31\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x34\x36\x33\x63\x62\x35\x64\x33',a0aH(0x165)),a0au=a=>{const bY=a0aH;if(!a||a[bY(0x205)]<0x10)return null;let b=a['\x73\x6c\x69\x63\x65'](0x10)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](bY(0x24a)),c=b['\x69\x6e\x64\x65\x78\x4f\x66']('\x7b');if(c<0x0)return null;try{return JSON[bY(0x1dd)](b[bY(0x1ec)](c));}catch{return null;}},a0av=a=>{const a0dD={a:0x1ac,b:0x25c},bZ=a0aH;if(!(typeof a!='\x73\x74\x72\x69\x6e\x67'||!a[bZ(0x205)]))try{return typeof atob==bZ(a0dD.a)?atob(a):Buffer[bZ(0x1e6)](a,bZ(a0dD.b))[bZ(0x17d)]('\x75\x74\x66\x2d\x38');}catch{return;}},a0aw=a=>{const a0dE={a:0x236,b:0x1a8},c0=a0aH;if(!a)return;let b=a[c0(a0dE.a)](/[^a-fA-F0-9]/g,'')[c0(0x16b)]();return b['\x6c\x65\x6e\x67\x74\x68']!==0xc?a:b[c0(0x150)](/.{1,2}/g)?.[c0(a0dE.b)]('\x3a');},a0ax=(a,b)=>{const a0dF={a:0x135,b:0x144,c:0x1aa,d:0x204,e:0x17b,f:0x208,g:0x21c,h:0x226,i:0x262},c1=a0aH;let c=b?.[c1(a0dF.a)]??b;if(!c||typeof c!=c1(a0dF.b))return null;let d=c['\x69\x70']||a['\x61\x64\x64\x72\x65\x73\x73'];return d?{'\x69\x70':d,'\x6d\x61\x63':a0aw(c[c1(a0dF.c)]),'\x64\x65\x76\x69\x63\x65\x49\x64':c[c1(a0dF.d)],'\x64\x65\x76\x69\x63\x65\x54\x79\x70\x65':c[c1(a0dF.e)],'\x64\x65\x76\x69\x63\x65\x4d\x6f\x64\x65\x6c':c[c1(0x16f)]||c[c1(a0dF.f)],'\x68\x77\x56\x65\x72\x73\x69\x6f\x6e':c[c1(a0dF.g)],'\x66\x77\x56\x65\x72\x73\x69\x6f\x6e':c[c1(0x1cc)],'\x61\x6c\x69\x61\x73':a0av(c[c1(0x240)])||c[c1(0x238)],'\x6f\x77\x6e\x65\x72':c[c1(0x131)],'\x65\x6e\x63\x72\x79\x70\x74\x54\x79\x70\x65':c[c1(a0dF.h)]?.[c1(a0dF.i)],'\x68\x74\x74\x70\x50\x6f\x72\x74':c[c1(0x226)]?.[c1(0x1e1)],'\x73\x75\x70\x70\x6f\x72\x74\x73\x48\x74\x74\x70\x73':c[c1(a0dF.h)]?.[c1(0x15c)],'\x72\x61\x77':b}:null;},a0ay=a=>{const a0dN={a:0x15b},a0dH={a:0x21b,b:0x1b5,c:0x1b3,d:0x1ae},a0dG={a:0x18a,b:0x246},c2=a0aH;let b=a?.[c2(0x211)]??a0ar;return new Promise((d,g)=>{const a0dM={a:0x1e6,b:0x1a5},a0dL={a:0x25f,b:0x1c1},a0dK={a:0x1c4},c4=c2;let h=new Map(),k,l,p,q=!0x1,v=()=>{const c3=a0d;if(!q){q=!0x0,l&&clearInterval(l),p&&clearTimeout(p);try{k?.[c3(a0dG.a)]();}catch{}d(Array['\x66\x72\x6f\x6d'](h[c3(a0dG.b)]()));}};try{k=a0ao['\x63\x72\x65\x61\x74\x65\x53\x6f\x63\x6b\x65\x74']('\x75\x64\x70\x34'),k['\x6f\x6e'](c4(0x21d),(w,G)=>{const c5=c4;console['\x6c\x6f\x67']('\x5b\x74\x61\x70\x6f\x5d\x20\x64\x69\x73\x63\x6f\x76\x65\x72\x79\x20\x72\x65\x73\x70\x6f\x6e\x73\x65',{'\x66\x72\x6f\x6d':G['\x61\x64\x64\x72\x65\x73\x73'],'\x62\x79\x74\x65\x73':w[c5(0x205)]});let I=a0au(w);if(!I){console[c5(a0dH.a)](c5(a0dH.b),{'\x66\x72\x6f\x6d':G[c5(0x237)]});return;}let L=a0ax(G,I);L&&(h[c5(a0dH.c)](L['\x69\x70'])||h[c5(a0dH.d)](L['\x69\x70'],L));}),k['\x6f\x6e'](c4(a0dN.a),w=>{if(!q){q=!0x0,l&&clearInterval(l),p&&clearTimeout(p);try{k?.['\x63\x6c\x6f\x73\x65']();}catch{}g(w);}}),k['\x62\x69\x6e\x64'](void 0x0,void 0x0,()=>{const a0dJ={a:0x205},c6=c4;try{k['\x73\x65\x74\x42\x72\x6f\x61\x64\x63\x61\x73\x74'](!0x0);}catch{}let w=Array[c6(a0dM.a)](new Set([a0aq,...a0n[c6(a0dM.b)]()]));console['\x6c\x6f\x67']('\x5b\x74\x61\x70\x6f\x5d\x20\x73\x74\x61\x72\x74\x69\x6e\x67\x20\x55\x44\x50\x20\x64\x69\x73\x63\x6f\x76\x65\x72\x79',{'\x70\x6f\x72\x74':a0ap,'\x62\x72\x6f\x61\x64\x63\x61\x73\x74\x54\x61\x72\x67\x65\x74\x73':w,'\x74\x69\x6d\x65\x6f\x75\x74\x4d\x73':b});let G=()=>{const c7=c6;w[c7(a0dK.a)](I=>{const c8=c7;try{k[c8(0x251)](a0at,0x0,a0at[c8(a0dJ.a)],a0ap,I);}catch(L){console['\x6c\x6f\x67']('\x5b\x74\x61\x70\x6f\x5d\x20\x64\x69\x73\x63\x6f\x76\x65\x72\x79\x20\x73\x65\x6e\x64\x20\x66\x61\x69\x6c\x65\x64',{'\x61\x64\x64\x72\x65\x73\x73':I,'\x65\x72\x72\x6f\x72':L?.['\x6d\x65\x73\x73\x61\x67\x65']});}});};G(),l=setInterval(G,a0as),p=setTimeout(()=>{const c9=c6;console[c9(0x21b)](c9(a0dL.a),{'\x66\x6f\x75\x6e\x64\x43\x6f\x75\x6e\x74':h[c9(a0dL.b)]}),v();},b);});}catch(w){q=!0x0,g(w);}});},a0az={};a0x(a0az,{'\x44\x65\x76\x69\x63\x65\x52\x65\x73\x54\x79\x70\x65\x73':()=>a0aC,'\x44\x65\x76\x69\x63\x65\x53\x65\x6e\x64\x56\x61\x6c\x75\x65\x73':()=>a0aD,'\x45\x54\x61\x70\x6f\x44\x65\x76\x69\x63\x65\x54\x79\x70\x65\x73':()=>a0aB,'\x54\x61\x70\x6f\x44\x65\x76\x69\x63\x65\x54\x79\x70\x65\x73':()=>a0aA});var a0aA={'\x41\x4c\x4c':a0aH(0x142),'\x42\x55\x4c\x42\x53':a0aH(0x219),'\x4c\x49\x47\x48\x54\x53\x54\x52\x49\x50\x53':'\x6c\x69\x67\x68\x74\x73\x74\x72\x69\x70','\x50\x4c\x55\x47\x53':a0aH(0x20e)},a0aB=(a=>(a[a0aH(0x23b)]=a0aH(0x142),a[a0aH(0x245)]=a0aH(0x219),a[a0aH(0x129)]=a0aH(0x154),a['\x50\x4c\x55\x47\x53']=a0aH(0x20e),a))(a0aB||{}),a0aC={'\x42\x55\x4c\x42':a0aH(0x244),'\x50\x4c\x55\x47':a0aH(0x244)},a0aD={'\x42\x55\x4c\x42':a0aH(0x1d5),'\x4c\x49\x47\x48\x54\x53\x54\x52\x49\x50':'\x73\x6d\x61\x72\x74\x6c\x69\x66\x65\x2e\x69\x6f\x74\x2e\x6c\x69\x67\x68\x74\x53\x74\x72\x69\x70','\x50\x4c\x55\x47':'\x73\x79\x73\x74\x65\x6d'};exports['\x4c\x69\x67\x68\x74\x53\x74\x61\x74\x65']=a0B,exports[a0aH(0x19e)]=a0aa,exports[a0aH(0x1ce)]=a0ad,exports[a0aH(0x25a)]=a0az,exports[a0aH(0x1fc)]=a0an,exports[a0aH(0x1d0)]=a0al,exports['\x64\x69\x73\x63\x6f\x76\x65\x72\x4c\x6f\x63\x61\x6c\x55\x64\x70']=a0ay;
|
package/dist/index.mjs
CHANGED
|
@@ -1,15 +1 @@
|
|
|
1
|
-
import { ILumiaDeviceType, ILumiaDeviceConnectionType, ILumiaDeviceBrands } from '@lumiastream/lumia-rgb-types';
|
|
2
|
-
import C from 'axios';
|
|
3
|
-
import xe from '@network-utils/arp-lookup';
|
|
4
|
-
import ie from 'local-devices';
|
|
5
|
-
import g, { randomBytes, createHash, createDecipheriv, createCipheriv } from 'crypto';
|
|
6
|
-
import Se from 'util';
|
|
7
|
-
import { isFunction, isTruly, rgb2hsv, uuidv4 } from '@lumiastream/lumia-rgb-utils';
|
|
8
|
-
import Le from 'http';
|
|
9
|
-
|
|
10
|
-
var ae=Object.defineProperty;var ce=(i,e)=>{for(var t in e)ae(i,t,{get:e[t],enumerable:!0});};var R=i=>Buffer.from(i,"base64").toString();var m=i=>{let e=i.error_code;if(e)switch(console.debug("[Tapo] errorCode: ",e),e){case 0:return;case-1010:throw new Error("Invalid public key length");case-1012:throw new Error("Invalid terminal UUID");case-1501:throw new Error("Invalid request or credentials");case-1002:throw new Error("Incorrect request");case-1003:throw new Error("JSON format error");case-20601:throw new Error("Incorrect email or password");case-20675:throw new Error("Cloud token expired or invalid");case 9999:throw new Error("Device token expired or invalid");default:throw new Error(`Unexpected Error Code: ${e} (${i.msg})`)}};var x=class{constructor(){this._values={};this.transition=e=>(this._values.transition_period=e,this);this.duration=this.transition;this.getValues=()=>this._values;}},w=class extends x{constructor(t){super();this.create=t=>(t&&Object.keys(t).forEach(s=>{let r;this.hasOwnProperty(s)&&(r=this[s],isFunction(r)&&isTruly(t[s])&&r.apply(this,[t[s]]));}),this);this.on=(t=!0)=>(this._values.device_on=t,this);this.turnOn=this.on;this.off=()=>(this.on(!1),this);this.turnOff=this.off;this.mode=(t="normal")=>(t==="normal"&&(this._values.color_temp=0),this._values.mode=t,this);this.hue=t=>(this._values.hue=t,this._values.color_temp=0,this);this.bri=t=>(this._values.brightness=t,this);this.brightness=this.bri;this.sat=t=>(this._values.saturation=t,this);this.saturation=this.sat;this.temp=t=>(this._values.color_temp=t,this);this.colorTemperature=this.temp;this.hsv=t=>{let s=[];return Array.isArray(t)?s=t:s=[t.h,t.s,t.v],this.hue(s[0]),this.sat(s[1]),this.bri(s[2]),this};this.rgb=t=>{let s;return Array.isArray(t)?s=rgb2hsv(t):s=rgb2hsv([t.r,t.g,t.b]),this.hsv(s)};this.color=t=>(Array.isArray(t)&&(t={r:t[0],g:t[1],b:t[2]}),t.ct?this.temp(t.ct):this.rgb({r:t.r,g:t.g,b:t.b}));t&&this.create(t);}};var $="aes-128-cbc",F=async(i,e,t)=>{let s=randomBytes(16),r=await C.post(`http://${t}/app/handshake1`,s,{responseType:"arraybuffer",withCredentials:!0,timeout:4e3}).catch(u=>{throw u?.response?.status===404?new Error("Klap protocol not supported"):new Error(`handshake1 failed: ${u}`)}),o=Buffer.from(r.data),n=r.headers["set-cookie"]?.[0],a=n?.substring(0,n.indexOf(";"))||"",c=o.slice(0,16),f=o.slice(16),d=ye(i,e),y=me(s,c,d);if(!Pe(y,f))throw new Error("email or password incorrect");let p=ge(s,c,d),h={};return h.Cookie=a,await C.post(`http://${t}/app/handshake2`,p,{responseType:"arraybuffer",headers:h,timeout:4e3}).catch(u=>{throw new Error(`handshake2 failed: ${u}`)}),le(t,s,c,d,a)},le=(i,e,t,s,r)=>{let o=we(e,t,s),n=ve(e,t,s),a=be(e,t,s),c=Be(n),f=h=>{let u=JSON.stringify(h),l=createCipheriv($,o,M(n,c));var B=l.update(A(u));return Buffer.concat([B,l.final()])},d=h=>{let u=createDecipheriv($,o,M(n,c));var l=u.update(h.slice(32));return JSON.parse(Buffer.concat([l,u.final()]).toString())},y=h=>{let u=f(h),l=v(Buffer.concat([a,c,u]));return Buffer.concat([l,u])};return {send:async h=>{c=ke(c);let u=y(h),l={};l.Cookie=r;let B=await C({method:"post",url:`http://${i}/app/request`,data:u,responseType:"arraybuffer",headers:l,timeout:4e3,params:{seq:c.readInt32BE()}}),_=d(B.data);return m(_),_.result},sessionCookie:r,cipher:{key:o,iv:n,seq:c}}},me=(i,e,t)=>v(Buffer.concat([i,e,t])),ge=(i,e,t)=>v(Buffer.concat([e,i,t])),ye=(i,e)=>v(Buffer.concat([N(i),N(e)])),we=(i,e,t)=>v(Buffer.concat([A("lsk"),i,e,t])).slice(0,16),ve=(i,e,t)=>v(Buffer.concat([A("iv"),i,e,t])),be=(i,e,t)=>v(Buffer.concat([A("ldk"),i,e,t])).slice(0,28),Be=i=>i.slice(i.length-4),M=(i,e)=>Buffer.concat([i.slice(0,12),e]),ke=i=>{let e=Buffer.alloc(4);return e.writeInt32BE(i.readInt32BE()+1),e},v=i=>createHash("sha256").update(i).digest(),N=i=>createHash("sha1").update(i).digest(),Pe=(i,e)=>i.compare(e)===0,A=i=>Buffer.from(i,"utf-8");var Te="rsa",W="aes-128-cbc",z="top secret",b=class{constructor(e,t){this.key=e;this.iv=t;}static toBase64(e){return Buffer.from(e.normalize("NFKC"),"utf-8").toString("base64")}static encodeUsername(e){let t=g.createHash("sha1");return t.update(e.normalize("NFKC")),t.digest("hex")}static createKeyPair(){return new Promise((e,t)=>{g.generateKeyPair("rsa",{modulusLength:1024},(s,r,o)=>{if(s)return t(s);let n=r.export({format:"pem",type:"spki"}).toString("base64"),a=o.export({format:"pem",type:"pkcs1"}).toString("base64");e({public:n,private:a});});})}encrypt(e){let t=g.createCipheriv("aes-128-cbc",this.key,this.iv);return `${t.update(e,"utf8","base64")}${t.final("base64")}`}decrypt(e){let t=g.createDecipheriv("aes-128-cbc",this.key,this.iv);return `${t.update(e,"base64","utf8")}${t.final("utf8")}`}},J=async()=>{let i={modulusLength:1024,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs1",format:"pem",cipher:"aes-256-cbc",passphrase:z}};return Se.promisify(g.generateKeyPair)(Te,i)},V=(i,e)=>{var t=g.createCipheriv(W,e.key,e.iv),s=t.update(Buffer.from(JSON.stringify(i)));return Buffer.concat([s,t.final()]).toString("base64")},j=(i,e)=>{var t=g.createDecipheriv(W,e.key,e.iv),s=t.update(Buffer.from(i,"base64"));return JSON.parse(Buffer.concat([s,t.final()]).toString())},Z=(i,e)=>{let t=Buffer.from(i,"base64");return g.privateDecrypt({key:e,padding:g.constants.RSA_PKCS1_PADDING,passphrase:z},t)},H=i=>Buffer.from(i).toString("base64");var Y=i=>{var e=g.createHash("sha1");return e.update(i),e.digest("hex")};var ee=async(i,e,t)=>{let s=await _e(t),r={method:"login_device",params:{username:H(Y(i)),password:H(e)},requestTimeMils:0},o=await X(r,s);return s.token=o.token,{send:a=>X(a,s),deviceKey:s}},_e=async i=>{let e=await J(),t={method:"handshake",params:{key:e.publicKey}},s=await C({method:"post",url:`http://${i}/app`,data:t,timeout:4e3});m(s.data);let r=s.headers["set-cookie"]?.[0],o=r?.substring(0,r.indexOf(";"))||"",n=Z(s.data.result.key,e.privateKey);return {key:n.subarray(0,16),iv:n.subarray(16,32),deviceIp:i,sessionCookie:o}},X=async(i,e)=>{let s={method:"securePassthrough",params:{request:V(i,e)}},r=await C({method:"post",url:`http://${e.deviceIp}/app?token=${e.token}`,data:s,headers:{Cookie:e.sessionCookie},timeout:4e3});m(r.data);let o=j(r.data.result.response,e);return m(o),o.result};var re=i=>typeof i?.message=="string"&&i.message.length>0?i.message:typeof i=="string"&&i.length>0?i:String(i??"Unknown error"),k=class{constructor(e){this._config={rawEmail:"",rawPassword:"",timeout:1e4,httpTimeout:4e3};this._deviceSessions=new Map;this.auth=async(e,t)=>{let s=t?.email||this._config.rawEmail,r=t?.password||this._config.rawPassword;if(this._config.rawEmail=s,this._config.rawPassword=r,!s||!r)throw new Error("Email and password are required for authentication");if(!e)throw new Error("Device IP address(es) required for authentication");return this.loginDeviceByIp(e,s,r)};this.setup=async(e,t)=>{let s=e.map(o=>o.host),r=await this.auth(s,t);return e.forEach(o=>{if(r.success.includes(o.host)){let n=this._deviceSessions.get(o.host);n&&this._deviceSessions.set(o.id,n);}}),r};this.sendState=async e=>{let t=e.device.host||e.device.id;if(!t)throw new Error("Device IP or ID is required");let s=this._deviceSessions.get(t);if(!s)throw new Error(`No session found for device ${t}. Please call auth or setup first.`);let o={method:"set_device_info",params:e.state.getValues()};s?.deviceKey&&(o.terminalUUID=uuidv4());try{return await s.send(o),!0}catch{return !1}};this.sendPower=async e=>this.sendState({device:e.device,state:new w({on:e.power})});this._config={...this._config,...e},this._config.rawEmail=e?.email||"",this._config.rawPassword=e?.password||"";}async loginDeviceByIp(e,t,s){let r=t||this._config.rawEmail,o=s||this._config.rawPassword;if(!r||!o)throw new Error("Email and password are required for loginDeviceByIp");let n=Array.isArray(e)?e:[e],a={success:[],failed:[]},c=n.map(async f=>{try{try{let d=await F(r,o,f);this._deviceSessions.set(f,d),a.success.push(f);}catch(d){let y=re(d);try{let p=await ee(r,o,f);this._deviceSessions.set(f,p),a.success.push(f);}catch(p){let h=re(p),u=`Failed to login to device at ${f}. KLAP error: ${y}; Legacy error: ${h}`;a.failed.push({ip:f,error:u});}}}catch(d){a.failed.push({ip:f,error:d.message||"Unknown error"});}});if(await Promise.allSettled(c),!Array.isArray(e)&&a.failed.length>0)throw new Error(a.failed[0].error);return a}async getDeviceInfoByIp(e){let t=this._deviceSessions.get(e);if(!t){if(!(await this.auth(e,{email:this._config.rawEmail,password:this._config.rawPassword})).success.includes(e))throw new Error(`Failed to authenticate with device at ${e}. Please check your credentials.`);if(t=this._deviceSessions.get(e),!t)throw new Error(`Failed to establish session with device at ${e} after authentication.`)}let s={method:"get_device_info"};try{let r=await t.send(s),o=`Tapo Device (${e})`;return r.nickname&&(o=atob(r.nickname)),{id:r.device_id||`tapo-${e.replace(/\./g,"-")}`,name:o,address:`http://${e}`,host:e,lumiaInfo:{alias:o,identifier:r.device_id||`tapo-${e.replace(/\./g,"-")}`,serial:r.hw_id||r.mac||e,model:r.model||"Unknown Model",lumiaType:r.device_on!==void 0?ILumiaDeviceType.PLUG:ILumiaDeviceType.LIGHT,zonable:!1,maxZones:r.device_on!==void 0?0:1,zones:[],rgb:r.hue!==void 0||r.color_temp!==void 0,white:r.brightness!==void 0,connectionType:ILumiaDeviceConnectionType.WIFI,brand:ILumiaDeviceBrands.TAPO,product:r.model||"Tapo Device"},info:r}}catch(r){throw new Error(`Failed to get device info from ${e}: ${r.message}`)}}hasDeviceSession(e){return this._deviceSessions.has(e)}clearDeviceSession(e){this._deviceSessions.delete(e);}getSessionData(e){let t=this._deviceSessions.get(e);if(!t)throw new Error(`No session found for device ${e}. Please authenticate first.`);return {deviceIp:e,sessionCookie:t.sessionCookie,cipher:t.cipher,credentials:{email:this._config.rawEmail,password:this._config.rawPassword}}}};var E=class{constructor(e,t,s){let{iv:r,seq:o}=this.ivDerive(e,t,s);this.key=this.keyDerive(e,t,s),this.sig=this.sigDerive(e,t,s),this.iv=r,this.seq=o;}encrypt(e){if(this.seq+=1,typeof e=="string"&&(e=Buffer.from(e,"utf8")),!Buffer.isBuffer(e))throw new Error("msg must be a string or buffer");let t=g.createCipheriv("aes-128-cbc",this.key,this.ivSeq()),s=Buffer.concat([t.update(e),t.final()]),r=Buffer.alloc(4);r.writeInt32BE(this.seq,0);let o=g.createHash("sha256");o.update(Buffer.concat([this.sig,r,s]));let n=o.digest();return {encrypted:Buffer.concat([n,s]),seq:this.seq}}decrypt(e){if(!Buffer.isBuffer(e))return e;let t=g.createDecipheriv("aes-128-cbc",this.key,this.ivSeq());return Buffer.concat([t.update(e.subarray(32)),t.final()]).toString("utf8")}keyDerive(e,t,s){let r=Buffer.concat([Buffer.from("lsk"),e,t,s]);return g.createHash("sha256").update(r).digest().subarray(0,16)}ivDerive(e,t,s){let r=Buffer.concat([Buffer.from("iv"),e,t,s]),o=g.createHash("sha256").update(r).digest(),n=o.subarray(-4).readInt32BE(0);return {iv:o.subarray(0,12),seq:n}}sigDerive(e,t,s){let r=Buffer.concat([Buffer.from("ldk"),e,t,s]);return g.createHash("sha256").update(r).digest().subarray(0,28)}ivSeq(){let e=Buffer.alloc(4);e.writeInt32BE(this.seq,0);let t=Buffer.concat([this.iv,e]);if(t.length!==16)throw new Error("Length of iv is not 16");return t}};var S=class S{constructor(e){this._baseUrl="https://eu-wap.tplinkcloud.com/";this._config={rawEmail:"",rawPassword:"",email:"",password:"",authToken:null,timeout:1e4,httpTimeout:4e3};this._token="";this._devices=new Map;this.auth=async e=>{let t=e?.email||this._config.email,s=e?.password||this._config.password;if(!t||!s)throw new Error("Email and password are required for authentication");let r={method:"login",params:{appType:"Tapo_Ios",cloudPassword:s,cloudUserName:t,terminalUUID:uuidv4()}},o=await C({method:"post",url:this._baseUrl,data:r});return m(o.data),this._token=o.data.result.token,this._token};this.setup=async(e,t)=>{let s=e.map(async o=>{let n=await this.handshake(o.host,void 0,!1,t);this._devices.set(o.id,n);}),r=[];try{r=await Promise.allSettled(s);}catch(o){console.error("tapo cloud setup err: ",o);}return {responses:r,devices:this._devices}};this.sendState=async e=>{let t=this._devices.get(e.device.id);if(!t)return Promise.resolve(!1);await this.handshake(t?.ip,t,!1);let s=e.state.getValues(),r=JSON.stringify({method:"set_device_info",params:s}),o=t.cipher.encrypt(r);if((await this.sessionPost(t.ip,"/request",o.encrypted,"arraybuffer",t.Cookie,{seq:o.seq.toString()})).status!==200)throw new Error("[KLAP] Request failed");return !0};this.sendPower=async e=>this.sendState({device:e.device,state:new w({on:e.power})});this.axiosInstance=C.create(),this.axiosInstance.defaults.timeout=e?.httpTimeout||4e3,this._config={...this._config,...e},this._config.rawEmail=this._config.email,this._config.rawPassword=this._config.password,this._config.email=b.toBase64(b.encodeUsername(this._config.email)),this._config.password=b.toBase64(this._config.password),this.terminalUUID=g.randomUUID();}async sessionPost(e,t,s,r,o,n){let a={Accept:"*/*","Content-Type":"application/octet-stream"};return o&&(process?.versions?.electron?a.BypassCookie=o:a.Cookie=o),C.post(`http://${e}/app${t}`,s,{responseType:r,params:n,headers:a,httpAgent:new Le.Agent({keepAlive:!1})})}needsNewHandshake(e){return !!(!e||!e.cipher||e.IsExpired||!e.Cookie)}async handshake(e,t,s=!1,r){if(!this.needsNewHandshake(t)&&!s)return;let{localSeed:o,remoteSeed:n,authHash:a,deviceSession:c}=await this.firstHandshake(e,void 0,r);return await this.secondHandshake(c,e,o,n,a,r)}async firstHandshake(e,t,s){let r=t||g.randomBytes(16),o=await this.sessionPost(e,"/handshake1",r,"arraybuffer");if(s?.debug("handshake1Result: ",o),o.status!==200)throw new Error("Handshake1 failed");if(o.headers["content-length"]!=="48")throw new Error("Handshake1 failed due to invalid content length");let n=o.headers["bypass-cookie"]||o.headers["set-cookie"]?.[0],a=Buffer.from(new Uint8Array(o.data)),[c,f]=n.split(";"),d=f.split("=").pop(),y=new q(d,e,c),p=a.subarray(0,16),h=a.subarray(16);s?.debug(`[KLAP] First handshake decoded successfully:
|
|
11
|
-
Remote Seed:`,p.toString("hex"),`
|
|
12
|
-
Server Hash:`,h.toString("hex"),`
|
|
13
|
-
Cookie:`,c);let u=this.hashAuth(this._config.rawEmail,this._config.rawPassword),l=this.sha256(Buffer.concat([r,p,u]));if(Buffer.compare(l,h)===0)return s?.debug("[KLAP] Local auth hash matches server hash"),{localSeed:r,remoteSeed:p,authHash:u,deviceSession:y};let B=this.sha256(Buffer.concat([r,p,this.hashAuth("","")]));if(Buffer.compare(B,h)===0)return s?.debug("[KLAP] [WARN] Empty auth hash matches server hash"),{localSeed:r,remoteSeed:p,authHash:B,deviceSession:y};let _=this.sha256(Buffer.concat([r,p,this.hashAuth(S.TP_TEST_USER,S.TP_TEST_PASSWORD)]));if(Buffer.compare(_,h)===0)return s?.debug("[KLAP] [WARN] Test auth hash matches server hash"),{localSeed:r,remoteSeed:p,authHash:_,deviceSession:y};throw new Error("Failed to verify server hash")}async secondHandshake(e,t,s,r,o,n){let a=this.sha256(Buffer.concat([r,s,o]));try{let c=await this.sessionPost(t,"/handshake2",a,"text",e.Cookie);if(c.status===200)return n?.debug("[KLAP] Second handshake successful"),e.completeHandshake(t,new E(s,r,o));n.warn("[KLAP] Second handshake failed",c.data);}catch(c){n.error("[KLAP] Second handshake failed:",c.response.data||c.message);}}sha256(e){return g.createHash("sha256").update(e).digest()}sha1(e){return g.createHash("sha1").update(e).digest()}hashAuth(e,t){return this.sha256(Buffer.concat([this.sha1(Buffer.from(e.normalize("NFKC"))),this.sha1(Buffer.from(t.normalize("NFKC")))]))}};S.TP_TEST_USER="test@tp-link.net",S.TP_TEST_PASSWORD="test";var T=S,q=class i{constructor(e,t,s,r){this.ip=t;this.cookie=s;this.cipher=r;this.handshakeCompleted=!1;this.rawTimeout=e,this.expireAt=new Date(Date.now()+parseInt(e)*1e3),r&&(this.handshakeCompleted=!0);}get IsExpired(){return this.expireAt.getTime()-Date.now()<=40*1e3}get Cookie(){return this.cookie}completeHandshake(e,t){return new i(this.rawTimeout,e,this.cookie,t)}};var Ce=["84:d8:1b","78:8c:b5","cc:ba:bd","e4:fa:c4","ac:84:c6","50:c7:bf"],He=5,U=i=>(i||"").replace(/[^a-fA-F0-9]/g,"").toLowerCase(),Ke=i=>{let e=U(i);return e.length!==12?(i||"").toLowerCase():e.match(/.{1,2}/g)?.join(":")||(i||"").toLowerCase()},qe=i=>{let e=(i||"").toLowerCase();return Ce.some(t=>e.startsWith(t))},Ue=async i=>{let e=U(i),t=Ke(i),s=0;for(;s<=He;){try{let n=await xe.toIP(t);if(n)return n}catch{}let o=(await ie({skipNameResolution:!0})).find(n=>U(n.mac)===e);if(o?.ip)return o.ip;s++;}},Oe=async i=>{let e=await ie({skipNameResolution:!0}),{email:t,password:s}=i;return e.filter(r=>qe(r.mac)).map(r=>({ip:r.ip,mac:r.mac,loginDevice:async()=>{let o=new k({email:t,password:s}),n=await o.auth(r.ip,{email:t,password:s});if(!n.success.includes(r.ip)){let a=n.failed.find(c=>c.ip===r.ip);throw new Error(a?.error||`Failed to authenticate with device ${r.ip}`)}return o}}))},$e=async i=>{let e=new T(i),t=i.token;!t&&i.email&&i.password&&(t=await e.auth({email:i.email,password:i.password}));let s={method:"getDeviceList"},r=await C({method:"post",url:`${e._baseUrl}?token=${t}`,data:s});m(r.data);let o=[];for(let n of r.data.result?.deviceList||[]){if(!n.ip){let a=await Ue(n.deviceMac);if(!a)continue;n.ip=a;}switch(n.deviceType){case"IOT.SMARTBULB":case"SMART.TAPOBULB":{if(i.types&&!i.types.includes(ILumiaDeviceType.LIGHT))continue;let a=n.deviceType==="SMART.TAPOBULB",c=(a?R(n.alias):n.alias)??n.deviceName;o.push({name:c,id:n.deviceMac,address:`http://${n.ip}`,host:n.ip,lumiaInfo:{alias:c,identifier:n.deviceMac,serial:n.hwId,lumiaType:ILumiaDeviceType.LIGHT,zonable:!1,maxZones:1,zones:[],rgb:!0,white:!0,connectionType:ILumiaDeviceConnectionType.WIFI,brand:a?ILumiaDeviceBrands.TPLINK:ILumiaDeviceBrands.TPLINK,product:n?.deviceModel}});break}case"IOT.SMARTPLUGSWITCH":case"SMART.TAPOPLUG":{if(i.types&&!i.types.includes(ILumiaDeviceType.PLUG))continue;let a=n.deviceType==="SMART.TAPOPLUG",c=(a?R(n.alias):n.alias)??n.deviceName;o.push({name:c,id:n.deviceMac,address:`http://${n.ip}`,host:n.ip,lumiaInfo:{alias:c,identifier:n.deviceMac,serial:n.hwId,lumiaType:ILumiaDeviceType.PLUG,zonable:!1,maxZones:0,zones:[],rgb:!1,white:!1,connectionType:ILumiaDeviceConnectionType.WIFI,brand:a?ILumiaDeviceBrands.TPLINK:ILumiaDeviceBrands.TPLINK,product:n?.deviceModel}});break}}}return o},Me=$e;var ne={};ce(ne,{DeviceResTypes:()=>Ge,DeviceSendValues:()=>Fe,ETapoDeviceTypes:()=>oe,TapoDeviceTypes:()=>Ne});var Ne={ALL:"all",BULBS:"bulb",LIGHTSTRIPS:"lightstrip",PLUGS:"plug"},oe=(r=>(r.ALL="all",r.BULBS="bulb",r.LIGHTSTRIPS="lightstrip",r.PLUGS="plug",r))(oe||{}),Ge={BULB:"IOT.SMARTPLUGSWITCH",PLUG:"IOT.SMARTPLUGSWITCH"},Fe={BULB:"smartlife.iot.smartbulb.lightingservice",LIGHTSTRIP:"smartlife.iot.lightStrip",PLUG:"system"};
|
|
14
|
-
|
|
15
|
-
export { w as LightState, k as TapoApi, T as TapoCloudApi, ne as TapoConstants, Me as discover, Oe as discoverLocalDevices };
|
|
1
|
+
function a1d(a,b){a=a-0x18f;const c=a1c();let d=c[a];return d;}const a1aA=a1d;(function(a,b){const a1c4={a:0x2d0,b:0x2ba,c:0x1ea,d:0x2d6,e:0x280},ax=a1d,c=a();while(!![]){try{const d=parseInt(ax(a1c4.a))/0x1+-parseInt(ax(0x1db))/0x2*(parseInt(ax(a1c4.b))/0x3)+parseInt(ax(0x262))/0x4+parseInt(ax(0x1b1))/0x5*(parseInt(ax(0x2c9))/0x6)+-parseInt(ax(0x2d7))/0x7*(-parseInt(ax(0x279))/0x8)+parseInt(ax(0x21e))/0x9*(parseInt(ax(a1c4.c))/0xa)+parseInt(ax(a1c4.d))/0xb*(-parseInt(ax(a1c4.e))/0xc);if(d===b)break;else c['push'](c['shift']());}catch(e){c['push'](c['shift']());}}}(a1c,0xb0cc3));const a1e=(function(){let a=!![];return function(b,c){const d=a?function(){const ay=a1d;if(c){const e=c[ay(0x21c)](b,arguments);return c=null,e;}}:function(){};return a=![],d;};}()),a1f=a1e(this,function(){const a1c9={a:0x2d4,b:0x2b7,c:0x274,d:0x22e,e:0x1b0,f:0x217},az=a1d;let a;try{const d=Function(az(a1c9.a)+az(a1c9.b)+'\x29\x3b');a=d();}catch(f){a=window;}const b=a[az(a1c9.c)]=a['\x63\x6f\x6e\x73\x6f\x6c\x65']||{},c=[az(a1c9.d),az(0x193),'\x69\x6e\x66\x6f',az(0x2a4),az(0x26b),az(a1c9.e),az(0x1c1)];for(let g=0x0;g<c[az(a1c9.f)];g++){const h=a1e[az(0x250)]['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65'][az(0x29b)](a1e),i=c[g],k=b[i]||h;h['\x5f\x5f\x70\x72\x6f\x74\x6f\x5f\x5f']=a1e[az(0x29b)](a1e),h[az(0x271)]=k[az(0x271)]['\x62\x69\x6e\x64'](k),b[i]=h;}});a1f();import{ILumiaDeviceType,ILumiaDeviceConnectionType,ILumiaDeviceBrands}from'\x40\x6c\x75\x6d\x69\x61\x73\x74\x72\x65\x61\x6d\x2f\x6c\x75\x6d\x69\x61\x2d\x72\x67\x62\x2d\x74\x79\x70\x65\x73';import a1g from'\x61\x78\x69\x6f\x73';import a1h from'\x40\x6e\x65\x74\x77\x6f\x72\x6b\x2d\x75\x74\x69\x6c\x73\x2f\x61\x72\x70\x2d\x6c\x6f\x6f\x6b\x75\x70';import a1i from'\x6c\x6f\x63\x61\x6c\x2d\x64\x65\x76\x69\x63\x65\x73';import a1j,{randomBytes,createHash,createCipheriv,createDecipheriv}from'\x63\x72\x79\x70\x74\x6f';import a1k from'\x75\x74\x69\x6c';import{isFunction,isTruly,rgb2hsv,uuidv4}from'\x40\x6c\x75\x6d\x69\x61\x73\x74\x72\x65\x61\x6d\x2f\x6c\x75\x6d\x69\x61\x2d\x72\x67\x62\x2d\x75\x74\x69\x6c\x73';import a1l from'\x68\x74\x74\x70';import a1m from'\x64\x67\x72\x61\x6d';import{getBroadcastNetworkInterfaces}from'\x40\x6c\x75\x6d\x69\x61\x73\x74\x72\x65\x61\x6d\x2f\x6e\x65\x74\x77\x6f\x72\x6b\x2d\x63\x6f\x76\x65';var a1n=Object[a1aA(0x27f)],a1o=(a,b)=>{for(var c in b)a1n(a,c,{'\x67\x65\x74':b[c],'\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65':!0x0});},a1p=a=>Buffer[a1aA(0x20f)](a,a1aA(0x2ad))[a1aA(0x271)](),a1q=a=>{const a1cb={a:0x268,b:0x283},aB=a1aA;let b=a['\x65\x72\x72\x6f\x72\x5f\x63\x6f\x64\x65'];if(b)switch(console['\x64\x65\x62\x75\x67']('\x5b\x54\x61\x70\x6f\x5d\x20\x65\x72\x72\x6f\x72\x43\x6f\x64\x65\x3a\x20',b),b){case 0x0:return;case-0x3f2:throw new Error(aB(a1cb.a));case-0x3f4:throw new Error(aB(0x222));case-0x5dd:throw new Error('\x49\x6e\x76\x61\x6c\x69\x64\x20\x72\x65\x71\x75\x65\x73\x74\x20\x6f\x72\x20\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73');case-0x3ea:throw new Error(aB(0x272));case-0x3eb:throw new Error(aB(a1cb.b));case-0x5079:throw new Error('\x49\x6e\x63\x6f\x72\x72\x65\x63\x74\x20\x65\x6d\x61\x69\x6c\x20\x6f\x72\x20\x70\x61\x73\x73\x77\x6f\x72\x64');case-0x50c3:throw new Error('\x43\x6c\x6f\x75\x64\x20\x74\x6f\x6b\x65\x6e\x20\x65\x78\x70\x69\x72\x65\x64\x20\x6f\x72\x20\x69\x6e\x76\x61\x6c\x69\x64');case 0x270f:throw new Error(aB(0x211));default:throw new Error(aB(0x198)+b+'\x20\x28'+a['\x6d\x73\x67']+'\x29');}},a1r=class{constructor(){const aC=a1aA;this[aC(0x2ca)]={},this['\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e']=a=>(this['\x5f\x76\x61\x6c\x75\x65\x73'][aC(0x297)]=a,this),this[aC(0x258)]=this[aC(0x1fc)],this[aC(0x277)]=()=>this[aC(0x2ca)];}},a1s=class extends a1r{constructor(a){const a1cg={a:0x1b3,b:0x286,c:0x27c,d:0x27c,e:0x249,f:0x1cc},a1cf={a:0x1b9},a1ce={a:0x1b9,b:0x27c},a1cd={a:0x24c},aD=a1aA;super(),this[aD(0x2bd)]=b=>(b&&Object['\x6b\x65\x79\x73'](b)[aD(0x223)](c=>{const aE=aD;let d;this[aE(a1cd.a)](c)&&(d=this[c],isFunction(d)&&isTruly(b[c])&&d['\x61\x70\x70\x6c\x79'](this,[b[c]]));}),this),this['\x6f\x6e']=(b=!0x0)=>(this[aD(0x2ca)][aD(0x2d3)]=b,this),this[aD(0x27b)]=this['\x6f\x6e'],this['\x6f\x66\x66']=()=>(this['\x6f\x6e'](!0x1),this),this['\x74\x75\x72\x6e\x4f\x66\x66']=this[aD(0x254)],this[aD(a1cg.a)]=(b=aD(0x22a))=>(b===aD(0x22a)&&(this[aD(0x2ca)][aD(0x2be)]=0x0),this[aD(0x2ca)][aD(0x1b3)]=b,this),this[aD(0x1ab)]=b=>(this[aD(0x2ca)]['\x68\x75\x65']=b,this['\x5f\x76\x61\x6c\x75\x65\x73'][aD(0x2be)]=0x0,this),this[aD(0x286)]=b=>(this[aD(0x2ca)]['\x62\x72\x69\x67\x68\x74\x6e\x65\x73\x73']=b,this),this[aD(0x22b)]=this[aD(a1cg.b)],this[aD(a1cg.c)]=b=>(this[aD(0x2ca)][aD(0x2d9)]=b,this),this[aD(0x2d9)]=this[aD(a1cg.d)],this[aD(0x295)]=b=>(this[aD(0x2ca)]['\x63\x6f\x6c\x6f\x72\x5f\x74\x65\x6d\x70']=b,this),this[aD(a1cg.e)]=this['\x74\x65\x6d\x70'],this[aD(a1cg.f)]=b=>{const aF=aD;let c=[];return Array[aF(a1ce.a)](b)?c=b:c=[b['\x68'],b['\x73'],b['\x76']],this[aF(0x1ab)](c[0x0]),this[aF(a1ce.b)](c[0x1]),this['\x62\x72\x69'](c[0x2]),this;},this[aD(0x1b8)]=b=>{const aG=aD;let c;return Array[aG(a1cf.a)](b)?c=rgb2hsv(b):c=rgb2hsv([b['\x72'],b['\x67'],b['\x62']]),this[aG(0x1cc)](c);},this[aD(0x216)]=b=>(Array[aD(0x1b9)](b)&&(b={'\x72':b[0x0],'\x67':b[0x1],'\x62':b[0x2]}),b['\x63\x74']?this['\x74\x65\x6d\x70'](b['\x63\x74']):this[aD(0x1b8)]({'\x72':b['\x72'],'\x67':b['\x67'],'\x62':b['\x62']})),a&&this['\x63\x72\x65\x61\x74\x65'](a);}},a1t=a1aA(0x243),a1u=0xfa0,a1v=async(k,q,v)=>{const a1cj={a:0x1de,b:0x2a3,c:0x1f4,d:0x1ee,e:0x21d,f:0x1c2,g:0x21f},a1ch={a:0x23f,b:0x1c9},aH=a1aA;let G=randomBytes(0x10),I=await a1g[aH(a1cj.a)]('\x68\x74\x74\x70\x3a\x2f\x2f'+v+aH(a1cj.b),G,{'\x72\x65\x73\x70\x6f\x6e\x73\x65\x54\x79\x70\x65':aH(0x1ed),'\x77\x69\x74\x68\x43\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73':!0x0,'\x74\x69\x6d\x65\x6f\x75\x74':a1u})[aH(0x23d)](a9=>{const aI=aH;throw a9?.['\x72\x65\x73\x70\x6f\x6e\x73\x65']?.[aI(a1ch.a)]===0x194?new Error(aI(a1ch.b)):new Error(aI(0x1df)+a9);}),L=Buffer[aH(0x20f)](I[aH(0x290)]),R=I[aH(0x2c6)][aH(a1cj.c)]?.[0x0],U=R?.[aH(0x26f)](0x0,R[aH(a1cj.d)]('\x3b'))||'',V=L[aH(0x21d)](0x0,0x10),a0=L[aH(a1cj.e)](0x10),a1=a1B(k,q),a2=a1z(G,V,a1);if(!a1K(a2,a0))throw new Error(aH(a1cj.f));let a3=a1A(G,V,a1),a4={'\x43\x6f\x6f\x6b\x69\x65':U};await a1g[aH(0x1de)](aH(a1cj.g)+v+aH(0x1a0),a3,{'\x72\x65\x73\x70\x6f\x6e\x73\x65\x54\x79\x70\x65':aH(0x1ed),'\x68\x65\x61\x64\x65\x72\x73':a4,'\x74\x69\x6d\x65\x6f\x75\x74':a1u})['\x63\x61\x74\x63\x68'](a9=>{const aJ=aH;throw new Error(aJ(0x1d3)+a9);});let a5=a1C(G,V,a1),a6=a1D(G,V,a1),a7=a1E(G,V,a1),a8=a1F(a6);return{'\x6b\x65\x79':a5,'\x69\x76':a6,'\x73\x69\x67':a7,'\x73\x65\x71':a8,'\x73\x65\x73\x73\x69\x6f\x6e\x43\x6f\x6f\x6b\x69\x65':U};},a1w=async(b,c,d)=>{const a1cn={a:0x27f,b:0x264},a1cl={a:0x1bd,b:0x1de,c:0x1dd,d:0x1bd,e:0x1e8,f:0x2bb},a1ck={a:0x1aa,b:0x19f,c:0x19f,d:0x2c3,e:0x1d0},aM=a1aA;let f=await a1v(b,c,d),g=k=>{const aK=a1d;let l=k?.['\x72\x65\x73\x70\x6f\x6e\x73\x65']?.['\x73\x74\x61\x74\x75\x73'];if(l===0x191||l===0x193)return!0x0;let p=typeof k?.[aK(a1ck.a)]=='\x73\x74\x72\x69\x6e\x67'?k['\x6d\x65\x73\x73\x61\x67\x65']:'';return!!(p[aK(a1ck.b)]('\x39\x39\x39\x39')||p[aK(a1ck.c)](aK(0x2a1))||p[aK(a1ck.c)](aK(a1ck.d))||p[aK(0x19f)](aK(a1ck.e)));},h=async k=>{const aL=a1d;f[aL(0x1bd)]=a1H(f[aL(0x1bd)]);let q=a1x(f[aL(0x1e3)],f['\x69\x76'],f['\x73\x65\x71'],k),v=a1I(Buffer[aL(0x1a1)]([f[aL(0x267)],f[aL(a1cl.a)],q])),w=Buffer['\x63\x6f\x6e\x63\x61\x74']([v,q]),G=await a1g({'\x6d\x65\x74\x68\x6f\x64':aL(a1cl.b),'\x75\x72\x6c':'\x68\x74\x74\x70\x3a\x2f\x2f'+d+aL(a1cl.c),'\x64\x61\x74\x61':w,'\x72\x65\x73\x70\x6f\x6e\x73\x65\x54\x79\x70\x65':aL(0x1ed),'\x68\x65\x61\x64\x65\x72\x73':{'\x43\x6f\x6f\x6b\x69\x65':f[aL(0x192)]},'\x74\x69\x6d\x65\x6f\x75\x74':a1u,'\x70\x61\x72\x61\x6d\x73':{'\x73\x65\x71':f[aL(a1cl.d)][aL(a1cl.e)]()}}),I=a1y(f[aL(0x1e3)],f['\x69\x76'],f['\x73\x65\x71'],Buffer[aL(0x20f)](G['\x64\x61\x74\x61']));return a1q(I),I[aL(a1cl.f)];},i={'\x73\x65\x6e\x64':async k=>{try{return await h(k);}catch(l){if(!g(l))throw l;return f=await a1v(b,c,d),h(k);}}};return Object[aM(a1cn.a)](i,'\x73\x65\x73\x73\x69\x6f\x6e\x43\x6f\x6f\x6b\x69\x65',{'\x67\x65\x74':()=>f['\x73\x65\x73\x73\x69\x6f\x6e\x43\x6f\x6f\x6b\x69\x65']}),Object[aM(a1cn.a)](i,aM(a1cn.b),{'\x67\x65\x74':()=>({'\x6b\x65\x79':f[aM(0x1e3)],'\x69\x76':f['\x69\x76'],'\x73\x65\x71':f[aM(0x1bd)]})}),i;},a1x=(a,b,c,d)=>{const a1co={a:0x1a1},aN=a1aA;let f=JSON[aN(0x1e0)](d),g=createCipheriv(a1t,a,a1G(b,c)),h=g['\x75\x70\x64\x61\x74\x65'](a1L(f));return Buffer[aN(a1co.a)]([h,g[aN(0x1e4)]()]);},a1y=(a,b,c,d)=>{const a1cp={a:0x230},aO=a1aA;let f=createDecipheriv(a1t,a,a1G(b,c)),g=f['\x75\x70\x64\x61\x74\x65'](d['\x73\x6c\x69\x63\x65'](0x20));return JSON[aO(a1cp.a)](Buffer[aO(0x1a1)]([g,f[aO(0x1e4)]()])['\x74\x6f\x53\x74\x72\x69\x6e\x67']());},a1z=(a,b,c)=>a1I(Buffer[a1aA(0x1a1)]([a,b,c])),a1A=(a,b,c)=>a1I(Buffer[a1aA(0x1a1)]([b,a,c])),a1B=(a,b)=>a1I(Buffer[a1aA(0x1a1)]([a1J(a),a1J(b)])),a1C=(a,b,c)=>a1I(Buffer[a1aA(0x1a1)]([a1L(a1aA(0x1e9)),a,b,c]))['\x73\x6c\x69\x63\x65'](0x0,0x10),a1D=(a,b,c)=>a1I(Buffer['\x63\x6f\x6e\x63\x61\x74']([a1L('\x69\x76'),a,b,c])),a1E=(a,b,c)=>a1I(Buffer[a1aA(0x1a1)]([a1L(a1aA(0x28a)),a,b,c]))[a1aA(0x21d)](0x0,0x1c),a1F=a=>a[a1aA(0x21d)](a[a1aA(0x217)]-0x4),a1G=(a,b)=>Buffer[a1aA(0x1a1)]([a[a1aA(0x21d)](0x0,0xc),b]),a1H=a=>{const a1cq={a:0x1e8},aP=a1aA;let b=Buffer[aP(0x2a8)](0x4);return b[aP(0x218)](a[aP(a1cq.a)]()+0x1),b;},a1I=a=>createHash(a1aA(0x1ba))[a1aA(0x29d)](a)[a1aA(0x1bf)](),a1J=a=>createHash(a1aA(0x282))[a1aA(0x29d)](a)[a1aA(0x1bf)](),a1K=(a,b)=>a['\x63\x6f\x6d\x70\x61\x72\x65'](b)===0x0,a1L=a=>Buffer['\x66\x72\x6f\x6d'](a,a1aA(0x209)),a1M='\x72\x73\x61',a1N=a1aA(0x243),a1O=a1aA(0x2dc),a1P=class{constructor(a,b){this['\x6b\x65\x79']=a,this['\x69\x76']=b;}static[a1aA(0x1f7)](a){const a1cs={a:0x20f,b:0x209,c:0x2ad},aQ=a1aA;return Buffer[aQ(a1cs.a)](a[aQ(0x1f3)]('\x4e\x46\x4b\x43'),aQ(a1cs.b))[aQ(0x271)](aQ(a1cs.c));}static[a1aA(0x270)](a){const a1ct={a:0x282,b:0x1f3,c:0x2ac,d:0x232},aR=a1aA;let b=a1j[aR(0x2a0)](aR(a1ct.a));return b[aR(0x29d)](a[aR(a1ct.b)](aR(a1ct.c))),b['\x64\x69\x67\x65\x73\x74'](aR(a1ct.d));}static[a1aA(0x234)](){const a1cv={a:0x257};return new Promise((a,b)=>{const a1cu={a:0x20a,b:0x1b6},aS=a1d;a1j[aS(a1cv.a)](aS(0x2aa),{'\x6d\x6f\x64\x75\x6c\x75\x73\x4c\x65\x6e\x67\x74\x68':0x400},(c,d,f)=>{const aT=aS;if(c)return b(c);let g=d[aT(a1cu.a)]({'\x66\x6f\x72\x6d\x61\x74':aT(a1cu.b),'\x74\x79\x70\x65':'\x73\x70\x6b\x69'})[aT(0x271)](aT(0x2ad)),h=f[aT(a1cu.a)]({'\x66\x6f\x72\x6d\x61\x74':aT(0x1b6),'\x74\x79\x70\x65':aT(0x251)})['\x74\x6f\x53\x74\x72\x69\x6e\x67']('\x62\x61\x73\x65\x36\x34');a({'\x70\x75\x62\x6c\x69\x63':g,'\x70\x72\x69\x76\x61\x74\x65':h});});});}[a1aA(0x220)](a){const a1cx={a:0x243,b:0x1e3},aU=a1aA;let b=a1j[aU(0x228)](aU(a1cx.a),this[aU(a1cx.b)],this['\x69\x76']);return''+b[aU(0x29d)](a,'\x75\x74\x66\x38','\x62\x61\x73\x65\x36\x34')+b[aU(0x1e4)]('\x62\x61\x73\x65\x36\x34');}[a1aA(0x2c8)](a){const a1cy={a:0x1e3,b:0x29d,c:0x1e4},aV=a1aA;let b=a1j[aV(0x1c0)](aV(0x243),this[aV(a1cy.a)],this['\x69\x76']);return''+b[aV(a1cy.b)](a,'\x62\x61\x73\x65\x36\x34','\x75\x74\x66\x38')+b[aV(a1cy.c)]('\x75\x74\x66\x38');}},a1Q=async()=>{const a1cz={a:0x1b6,b:0x251,c:0x1b6,d:0x21b},aW=a1aA;let a={'\x6d\x6f\x64\x75\x6c\x75\x73\x4c\x65\x6e\x67\x74\x68':0x400,'\x70\x75\x62\x6c\x69\x63\x4b\x65\x79\x45\x6e\x63\x6f\x64\x69\x6e\x67':{'\x74\x79\x70\x65':aW(0x195),'\x66\x6f\x72\x6d\x61\x74':aW(a1cz.a)},'\x70\x72\x69\x76\x61\x74\x65\x4b\x65\x79\x45\x6e\x63\x6f\x64\x69\x6e\x67':{'\x74\x79\x70\x65':aW(a1cz.b),'\x66\x6f\x72\x6d\x61\x74':aW(a1cz.c),'\x63\x69\x70\x68\x65\x72':'\x61\x65\x73\x2d\x32\x35\x36\x2d\x63\x62\x63','\x70\x61\x73\x73\x70\x68\x72\x61\x73\x65':a1O}};return a1k[aW(a1cz.d)](a1j[aW(0x257)])(a1M,a);},a1R=(a,b)=>{const a1cA={a:0x1e0,b:0x1e4,c:0x2ad},aX=a1aA;var c=a1j[aX(0x228)](a1N,b[aX(0x1e3)],b['\x69\x76']),d=c[aX(0x29d)](Buffer[aX(0x20f)](JSON[aX(a1cA.a)](a)));return Buffer[aX(0x1a1)]([d,c[aX(a1cA.b)]()])[aX(0x271)](aX(a1cA.c));},a1S=(a,b)=>{const a1cB={a:0x1c0,b:0x1e3,c:0x230,d:0x1a1},aY=a1aA;var c=a1j[aY(a1cB.a)](a1N,b[aY(a1cB.b)],b['\x69\x76']),d=c[aY(0x29d)](Buffer[aY(0x20f)](a,aY(0x2ad)));return JSON[aY(a1cB.c)](Buffer[aY(a1cB.d)]([d,c[aY(0x1e4)]()])['\x74\x6f\x53\x74\x72\x69\x6e\x67']());},a1T=(a,b)=>{const a1cC={a:0x1fa},aZ=a1aA;let c=Buffer[aZ(0x20f)](a,aZ(0x2ad));return a1j[aZ(0x199)]({'\x6b\x65\x79':b,'\x70\x61\x64\x64\x69\x6e\x67':a1j['\x63\x6f\x6e\x73\x74\x61\x6e\x74\x73'][aZ(a1cC.a)],'\x70\x61\x73\x73\x70\x68\x72\x61\x73\x65':a1O},c);},a1U=a=>Buffer['\x66\x72\x6f\x6d'](a)[a1aA(0x271)]('\x62\x61\x73\x65\x36\x34'),a1V=a=>{const a1cD={a:0x232},b0=a1aA;var b=a1j['\x63\x72\x65\x61\x74\x65\x48\x61\x73\x68']('\x73\x68\x61\x31');return b['\x75\x70\x64\x61\x74\x65'](a),b[b0(0x1bf)](b0(a1cD.a));},a1W=async(a,b,c)=>{const a1cE={a:0x28f,b:0x1f0},b1=a1aA;let d=await a1X(c),f={'\x6d\x65\x74\x68\x6f\x64':b1(a1cE.a),'\x70\x61\x72\x61\x6d\x73':{'\x75\x73\x65\x72\x6e\x61\x6d\x65':a1U(a1V(a)),'\x70\x61\x73\x73\x77\x6f\x72\x64':a1U(b)},'\x72\x65\x71\x75\x65\x73\x74\x54\x69\x6d\x65\x4d\x69\x6c\x73':0x0},g=await a1Y(f,d);return d[b1(0x1f0)]=g[b1(a1cE.b)],{'\x73\x65\x6e\x64':h=>a1Y(h,d),'\x64\x65\x76\x69\x63\x65\x4b\x65\x79':d};},a1X=async a=>{const a1cF={a:0x1af,b:0x25d,c:0x1de,d:0x290,e:0x2b4,f:0x265},b2=a1aA;let b=await a1Q(),c={'\x6d\x65\x74\x68\x6f\x64':b2(a1cF.a),'\x70\x61\x72\x61\x6d\x73':{'\x6b\x65\x79':b[b2(a1cF.b)]}},d=await a1g({'\x6d\x65\x74\x68\x6f\x64':b2(a1cF.c),'\x75\x72\x6c':b2(0x21f)+a+b2(0x1a4),'\x64\x61\x74\x61':c,'\x74\x69\x6d\x65\x6f\x75\x74':0xfa0});a1q(d[b2(a1cF.d)]);let f=d[b2(0x2c6)][b2(0x1f4)]?.[0x0],g=f?.[b2(0x26f)](0x0,f[b2(0x1ee)]('\x3b'))||'',h=a1T(d[b2(0x290)][b2(0x2bb)][b2(0x1e3)],b[b2(a1cF.e)]);return{'\x6b\x65\x79':h[b2(a1cF.f)](0x0,0x10),'\x69\x76':h[b2(a1cF.f)](0x10,0x20),'\x64\x65\x76\x69\x63\x65\x49\x70':a,'\x73\x65\x73\x73\x69\x6f\x6e\x43\x6f\x6f\x6b\x69\x65':g};},a1Y=async(a,b)=>{const a1cG={a:0x213,b:0x1de,c:0x190,d:0x290,e:0x2bb,f:0x2bb},b3=a1aA;let c={'\x6d\x65\x74\x68\x6f\x64':b3(a1cG.a),'\x70\x61\x72\x61\x6d\x73':{'\x72\x65\x71\x75\x65\x73\x74':a1R(a,b)}},d=await a1g({'\x6d\x65\x74\x68\x6f\x64':b3(a1cG.b),'\x75\x72\x6c':'\x68\x74\x74\x70\x3a\x2f\x2f'+b[b3(a1cG.c)]+'\x2f\x61\x70\x70\x3f\x74\x6f\x6b\x65\x6e\x3d'+b[b3(0x1f0)],'\x64\x61\x74\x61':c,'\x68\x65\x61\x64\x65\x72\x73':{'\x43\x6f\x6f\x6b\x69\x65':b[b3(0x192)]},'\x74\x69\x6d\x65\x6f\x75\x74':0xfa0});a1q(d[b3(a1cG.d)]);let e=a1S(d[b3(a1cG.d)][b3(a1cG.e)][b3(0x1cd)],b);return a1q(e),e[b3(a1cG.f)];},a1Z=a=>{const a1cH={a:0x269,b:0x217,c:0x236,d:0x2ad},b4=a1aA;if(typeof a!=b4(a1cH.a)||!a[b4(a1cH.b)])return'';try{return typeof atob==b4(a1cH.c)?atob(a):Buffer['\x66\x72\x6f\x6d'](a,b4(a1cH.d))['\x74\x6f\x53\x74\x72\x69\x6e\x67']('\x75\x74\x66\x2d\x38');}catch{return'';}},a1a0=a=>typeof a?.[a1aA(0x1aa)]=='\x73\x74\x72\x69\x6e\x67'&&a[a1aA(0x1aa)][a1aA(0x217)]>0x0?a['\x6d\x65\x73\x73\x61\x67\x65']:typeof a==a1aA(0x269)&&a['\x6c\x65\x6e\x67\x74\x68']>0x0?a:String(a??a1aA(0x298)),a1a1=class{constructor(a){const a1cM={a:0x2a2,b:0x2b8,c:0x240,d:0x212,e:0x1e7},a1cL={a:0x261,b:0x1d4,c:0x1d8,d:0x1d9,e:0x1dc,f:0x299},a1cK={a:0x20f,b:0x1ca},a1cJ={a:0x2ae,b:0x19f,c:0x1e6,d:0x261,e:0x2b6,f:0x261,g:0x1f2},a1cI={a:0x287,b:0x2c0,c:0x1be,d:0x2a6},b5=a1aA;this['\x5f\x63\x6f\x6e\x66\x69\x67']={'\x72\x61\x77\x45\x6d\x61\x69\x6c':'','\x72\x61\x77\x50\x61\x73\x73\x77\x6f\x72\x64':'','\x74\x69\x6d\x65\x6f\x75\x74':0x2710,'\x68\x74\x74\x70\x54\x69\x6d\x65\x6f\x75\x74':0xfa0},this[b5(0x261)]=new Map(),this[b5(0x241)]=async(b,c)=>{const b6=b5;let d=c?.[b6(0x212)]||this[b6(a1cI.a)]['\x72\x61\x77\x45\x6d\x61\x69\x6c'],f=c?.['\x70\x61\x73\x73\x77\x6f\x72\x64']||this[b6(a1cI.a)]['\x72\x61\x77\x50\x61\x73\x73\x77\x6f\x72\x64'];if(this[b6(a1cI.a)][b6(0x240)]=d,this[b6(0x287)][b6(0x1f5)]=f,!d||!f)throw new Error(b6(a1cI.b));if(!b)throw new Error(b6(a1cI.c));return this[b6(a1cI.d)](b,d,f);},this['\x73\x65\x74\x75\x70']=async(b,c)=>{const b7=b5;let d=Array[b7(a1cK.a)](new Set(b[b7(a1cK.b)](g=>g[b7(0x1e6)])['\x66\x69\x6c\x74\x65\x72'](Boolean))),f=await this['\x61\x75\x74\x68'](d,c);return b[b7(0x223)](g=>{const b8=b7;if(f[b8(a1cJ.a)][b8(a1cJ.b)](g[b8(a1cJ.c)])){let h=this[b8(a1cJ.d)][b8(a1cJ.e)](g['\x68\x6f\x73\x74']);h&&this[b8(a1cJ.f)][b8(a1cJ.g)](g['\x69\x64'],h);}}),f;},this[b5(a1cM.a)]=async b=>{const b9=b5;let c=b['\x64\x65\x76\x69\x63\x65']['\x68\x6f\x73\x74']||b[b9(0x2c5)]['\x69\x64'];if(!c)throw new Error(b9(0x245));let d=this[b9(a1cL.a)]['\x67\x65\x74'](c);if(!d)throw new Error(b9(a1cL.b)+c+b9(a1cL.c));let f={'\x6d\x65\x74\x68\x6f\x64':b9(a1cL.d),'\x70\x61\x72\x61\x6d\x73':b[b9(0x224)]['\x67\x65\x74\x56\x61\x6c\x75\x65\x73']()},g=b['\x64\x65\x76\x69\x63\x65'][b9(a1cL.e)]?.['\x63\x68\x69\x6c\x64\x44\x65\x76\x69\x63\x65\x49\x64'],h=g?{'\x6d\x65\x74\x68\x6f\x64':b9(0x23e),'\x70\x61\x72\x61\x6d\x73':{'\x64\x65\x76\x69\x63\x65\x5f\x69\x64':g,'\x72\x65\x71\x75\x65\x73\x74\x44\x61\x74\x61':f}}:f;d?.[b9(a1cL.f)]&&(h[b9(0x1ff)]=uuidv4());try{return await d['\x73\x65\x6e\x64'](h),!0x0;}catch{return!0x1;}},this[b5(a1cM.b)]=async b=>this['\x73\x65\x6e\x64\x53\x74\x61\x74\x65']({'\x64\x65\x76\x69\x63\x65':b[b5(0x2c5)],'\x73\x74\x61\x74\x65':new a1s({'\x6f\x6e':b[b5(0x219)]})}),(this[b5(0x287)]={...this['\x5f\x63\x6f\x6e\x66\x69\x67'],...a},this['\x5f\x63\x6f\x6e\x66\x69\x67'][b5(a1cM.c)]=a?.[b5(a1cM.d)]||'',this['\x5f\x63\x6f\x6e\x66\x69\x67']['\x72\x61\x77\x50\x61\x73\x73\x77\x6f\x72\x64']=a?.[b5(a1cM.e)]||'');}async[a1aA(0x2a6)](b,d,f){const a1cO={a:0x287,b:0x1ca,c:0x281,d:0x2a4},a1cN={a:0x261,b:0x25e,c:0x261,d:0x1a5,e:0x281,f:0x1aa},ba=a1aA;let g=d||this[ba(a1cO.a)]['\x72\x61\x77\x45\x6d\x61\x69\x6c'],h=f||this[ba(a1cO.a)][ba(0x1f5)];if(!g||!h)throw new Error(ba(0x2ab));let k=Array[ba(0x1b9)](b)?b:[b],l={'\x73\x75\x63\x63\x65\x73\x73':[],'\x66\x61\x69\x6c\x65\x64':[]},p=k[ba(a1cO.b)](async q=>{const bb=ba;try{try{let v=await a1w(g,h,q);this[bb(a1cN.a)][bb(0x1f2)](q,v),l[bb(0x2ae)][bb(a1cN.b)](q);}catch(w){let G=a1a0(w);try{let I=await a1W(g,h,q);this[bb(a1cN.c)][bb(0x1f2)](q,I),l['\x73\x75\x63\x63\x65\x73\x73']['\x70\x75\x73\x68'](q);}catch(L){let R=a1a0(L),U=bb(0x242)+q+bb(0x226)+G+bb(a1cN.d)+R;l[bb(0x281)]['\x70\x75\x73\x68']({'\x69\x70':q,'\x65\x72\x72\x6f\x72':U});}}}catch(V){l[bb(a1cN.e)][bb(0x25e)]({'\x69\x70':q,'\x65\x72\x72\x6f\x72':V[bb(a1cN.f)]||bb(0x298)});}});if(await Promise['\x61\x6c\x6c\x53\x65\x74\x74\x6c\x65\x64'](p),!Array[ba(0x1b9)](b)&&l[ba(0x281)][ba(0x217)]>0x0)throw new Error(l[ba(a1cO.c)][0x0][ba(a1cO.d)]);return l;}async[a1aA(0x206)](a){const a1cP={a:0x1c6,b:0x24f},bc=a1aA;let b=await(await this['\x5f\x67\x65\x74\x4f\x72\x43\x72\x65\x61\x74\x65\x53\x65\x73\x73\x69\x6f\x6e'](a))[bc(a1cP.a)]({'\x6d\x65\x74\x68\x6f\x64':bc(0x2b0)});return this[bc(a1cP.b)](a,b);}async[a1aA(0x259)](a){const a1cR={a:0x255,b:0x1c6,c:0x229,d:0x205,e:0x288,f:0x29e,g:0x22e,h:0x1dc,i:0x203,k:0x29c},a1cQ={a:0x203,b:0x21f,c:0x28c,d:0x28d,e:0x256,f:0x1ae},bd=a1aA;let b=await this[bd(a1cR.a)](a),c=await b[bd(a1cR.b)]({'\x6d\x65\x74\x68\x6f\x64':bd(0x2b0)}),f=await this[bd(0x19e)](b)[bd(0x23d)](()=>({})),g=typeof c?.[bd(a1cR.c)]==bd(a1cR.d)?c[bd(0x229)]:0x0,k=typeof c?.[bd(a1cR.e)]==bd(0x269)?c[bd(0x288)]:'';if(!(!(k==='\x53\x4d\x41\x52\x54\x2e\x54\x41\x50\x4f\x48\x55\x42'||k===bd(0x2c2))&&(k==='\x53\x4d\x41\x52\x54\x2e\x54\x41\x50\x4f\x50\x4c\x55\x47'||k===bd(0x21a)||!k)&&(g>0x0||this['\x5f\x69\x73\x4b\x6e\x6f\x77\x6e\x4d\x75\x6c\x74\x69\x53\x6f\x63\x6b\x65\x74\x4d\x6f\x64\x65\x6c'](c?.[bd(0x256)])))){let w=this['\x5f\x62\x75\x69\x6c\x64\x54\x61\x70\x6f\x46\x72\x6f\x6d\x44\x65\x76\x69\x63\x65\x49\x6e\x66\x6f'](a,c);return w['\x69\x6e\x66\x6f']={...w['\x69\x6e\x66\x6f']||{},'\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73':f},[w];}let q=await this[bd(a1cR.f)](b);if(console[bd(a1cR.g)](bd(0x247),{'\x69\x70':a,'\x6d\x6f\x64\x65\x6c':c?.[bd(0x256)],'\x63\x68\x69\x6c\x64\x43\x6f\x75\x6e\x74':g,'\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73':f,'\x63\x68\x69\x6c\x64\x72\x65\x6e':q}),!q[bd(0x217)]){let G=this[bd(0x24f)](a,c);return G[bd(0x1dc)]={...G[bd(a1cR.h)]||{},'\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73':f},[G];}let u=c?.[bd(a1cR.i)]?a1Z(c['\x6e\x69\x63\x6b\x6e\x61\x6d\x65']):bd(0x2db)+a+'\x29',v=c?.['\x64\x65\x76\x69\x63\x65\x5f\x69\x64']||bd(a1cR.k)+a[bd(0x27d)](/\./g,'\x2d');return q[bd(0x1ca)]((I,L)=>{const be=bd;let R=I?.[be(0x25a)]||v+'\x2d\x73\x6c\x6f\x74\x2d'+L,U=I?.[be(a1cQ.a)]?a1Z(I[be(0x203)]):u+be(0x2d1)+(L+0x1),V=''+v+R;return{'\x69\x64':V,'\x6e\x61\x6d\x65':U,'\x61\x64\x64\x72\x65\x73\x73':be(a1cQ.b)+a,'\x68\x6f\x73\x74':a,'\x6c\x75\x6d\x69\x61\x49\x6e\x66\x6f':{'\x61\x6c\x69\x61\x73':U,'\x69\x64\x65\x6e\x74\x69\x66\x69\x65\x72':V,'\x73\x65\x72\x69\x61\x6c':I?.[be(a1cQ.c)]||I?.[be(a1cQ.d)]||R,'\x6d\x6f\x64\x65\x6c':I?.['\x6d\x6f\x64\x65\x6c']||c?.[be(a1cQ.e)]||be(0x231),'\x6c\x75\x6d\x69\x61\x54\x79\x70\x65':ILumiaDeviceType[be(0x1a8)],'\x7a\x6f\x6e\x61\x62\x6c\x65':!0x1,'\x6d\x61\x78\x5a\x6f\x6e\x65\x73':0x0,'\x7a\x6f\x6e\x65\x73':[],'\x72\x67\x62':!0x1,'\x77\x68\x69\x74\x65':!0x1,'\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x54\x79\x70\x65':ILumiaDeviceConnectionType[be(0x201)],'\x62\x72\x61\x6e\x64':ILumiaDeviceBrands[be(a1cQ.f)],'\x70\x72\x6f\x64\x75\x63\x74':I?.[be(0x256)]||c?.[be(0x256)]||'\x54\x61\x70\x6f\x20\x44\x65\x76\x69\x63\x65'},'\x69\x6e\x66\x6f':{...I,'\x69\x73\x43\x68\x69\x6c\x64':!0x0,'\x70\x61\x72\x65\x6e\x74\x44\x65\x76\x69\x63\x65\x49\x64':v,'\x63\x68\x69\x6c\x64\x44\x65\x76\x69\x63\x65\x49\x64':R,'\x70\x61\x72\x65\x6e\x74':c,'\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73':f}};});}async['\x67\x65\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73'](a){const a1cS={a:0x255,b:0x19e},bf=a1aA;let b=await this[bf(a1cS.a)](a);return this[bf(a1cS.b)](b);}async['\x5f\x66\x65\x74\x63\x68\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73'](a){const a1cT={a:0x2dd,b:0x196,c:0x1c8},bg=a1aA;let b=(await a[bg(0x1c6)]({'\x6d\x65\x74\x68\x6f\x64':bg(a1cT.a)}))?.[bg(a1cT.b)]||[],c={};for(let d of b)d?.['\x69\x64']&&(c[d['\x69\x64']]=typeof d[bg(a1cT.c)]==bg(0x205)?d[bg(a1cT.c)]:0x1);return c;}async[a1aA(0x255)](a){const a1cU={a:0x261,b:0x2b6,c:0x1f5,d:0x19f,e:0x281,f:0x23b},bh=a1aA;let b=this[bh(a1cU.a)][bh(a1cU.b)](a);if(b)return b;let c=await this[bh(0x241)](a,{'\x65\x6d\x61\x69\x6c':this[bh(0x287)]['\x72\x61\x77\x45\x6d\x61\x69\x6c'],'\x70\x61\x73\x73\x77\x6f\x72\x64':this[bh(0x287)][bh(a1cU.c)]});if(!c['\x73\x75\x63\x63\x65\x73\x73'][bh(a1cU.d)](a)){let d=c[bh(a1cU.e)]['\x66\x69\x6e\x64'](f=>f['\x69\x70']===a);throw new Error(d?.['\x65\x72\x72\x6f\x72']||bh(a1cU.f)+a+'\x2e\x20\x50\x6c\x65\x61\x73\x65\x20\x63\x68\x65\x63\x6b\x20\x79\x6f\x75\x72\x20\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73\x2e');}if(b=this['\x5f\x64\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e\x73'][bh(0x2b6)](a),!b)throw new Error(bh(0x1b5)+a+'\x20\x61\x66\x74\x65\x72\x20\x61\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x69\x6f\x6e\x2e');return b;}['\x5f\x62\x75\x69\x6c\x64\x54\x61\x70\x6f\x46\x72\x6f\x6d\x44\x65\x76\x69\x63\x65\x49\x6e\x66\x6f'](a,b){const a1cV={a:0x203,b:0x1fe,c:0x22b,d:0x27d,e:0x29c,f:0x28c,g:0x2be,h:0x201,i:0x1ae,k:0x256},bi=a1aA;let c='\x54\x61\x70\x6f\x20\x44\x65\x76\x69\x63\x65\x20\x28'+a+'\x29';b?.[bi(a1cV.a)]&&(c=a1Z(b[bi(0x203)]));let d=typeof b?.['\x74\x79\x70\x65']==bi(0x269)?b[bi(0x288)]:'',f=d===bi(a1cV.b)||d===bi(0x21a)||!d&&b?.[bi(0x2d3)]!==void 0x0&&b?.['\x68\x75\x65']===void 0x0&&b?.[bi(a1cV.c)]===void 0x0;return{'\x69\x64':b?.[bi(0x25a)]||'\x74\x61\x70\x6f\x2d'+a[bi(a1cV.d)](/\./g,'\x2d'),'\x6e\x61\x6d\x65':c,'\x61\x64\x64\x72\x65\x73\x73':'\x68\x74\x74\x70\x3a\x2f\x2f'+a,'\x68\x6f\x73\x74':a,'\x6c\x75\x6d\x69\x61\x49\x6e\x66\x6f':{'\x61\x6c\x69\x61\x73':c,'\x69\x64\x65\x6e\x74\x69\x66\x69\x65\x72':b?.[bi(0x25a)]||bi(a1cV.e)+a['\x72\x65\x70\x6c\x61\x63\x65'](/\./g,'\x2d'),'\x73\x65\x72\x69\x61\x6c':b?.[bi(a1cV.f)]||b?.['\x6d\x61\x63']||a,'\x6d\x6f\x64\x65\x6c':b?.['\x6d\x6f\x64\x65\x6c']||bi(0x231),'\x6c\x75\x6d\x69\x61\x54\x79\x70\x65':f?ILumiaDeviceType[bi(0x1a8)]:ILumiaDeviceType['\x4c\x49\x47\x48\x54'],'\x7a\x6f\x6e\x61\x62\x6c\x65':!0x1,'\x6d\x61\x78\x5a\x6f\x6e\x65\x73':f?0x0:0x1,'\x7a\x6f\x6e\x65\x73':[],'\x72\x67\x62':!f&&(b?.[bi(0x1ab)]!==void 0x0||b?.[bi(a1cV.g)]!==void 0x0),'\x77\x68\x69\x74\x65':!f&&b?.['\x62\x72\x69\x67\x68\x74\x6e\x65\x73\x73']!==void 0x0,'\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x54\x79\x70\x65':ILumiaDeviceConnectionType[bi(a1cV.h)],'\x62\x72\x61\x6e\x64':ILumiaDeviceBrands[bi(a1cV.i)],'\x70\x72\x6f\x64\x75\x63\x74':b?.[bi(a1cV.k)]||bi(0x275)},'\x69\x6e\x66\x6f':b};}[a1aA(0x28b)](a){const a1cW={a:0x1e5,b:0x248,c:0x2a9,d:0x248,e:0x1c4},bj=a1aA;if(!a)return!0x1;let b=a[bj(0x1ad)]();return b['\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68'](bj(a1cW.a))||b[bj(a1cW.b)](bj(a1cW.c))||b[bj(a1cW.d)](bj(0x200))||b['\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68'](bj(a1cW.e))||b['\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68'](bj(0x19d));}async[a1aA(0x29e)](b){const a1cX={a:0x1c6,b:0x25e,c:0x217},bk=a1aA;let c=[],d=0x0;for(let f=0x0;f<0xa;f++){let g=await b[bk(a1cX.a)]({'\x6d\x65\x74\x68\x6f\x64':bk(0x2bc),'\x70\x61\x72\x61\x6d\x73':{'\x73\x74\x61\x72\x74\x5f\x69\x6e\x64\x65\x78':d}}),h=g?.[bk(0x294)]||[];c[bk(a1cX.b)](...h);let k=typeof g?.[bk(0x2b3)]==bk(0x205)?g['\x73\x75\x6d']:c[bk(0x217)];if(c[bk(a1cX.c)]>=k||h[bk(0x217)]===0x0)break;d=c[bk(0x217)];}return c;}[a1aA(0x19b)](a){const a1cY={a:0x261},bl=a1aA;return this[bl(a1cY.a)][bl(0x253)](a);}['\x63\x6c\x65\x61\x72\x44\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e'](a){const a1cZ={a:0x204},bm=a1aA;this['\x5f\x64\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e\x73'][bm(a1cZ.a)](a);}[a1aA(0x1e1)](a){const a1d0={a:0x2b6,b:0x1d4,c:0x240},bn=a1aA;let b=this['\x5f\x64\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e\x73'][bn(a1d0.a)](a);if(!b)throw new Error(bn(a1d0.b)+a+bn(0x1d2));return{'\x64\x65\x76\x69\x63\x65\x49\x70':a,'\x73\x65\x73\x73\x69\x6f\x6e\x43\x6f\x6f\x6b\x69\x65':b[bn(0x192)],'\x63\x69\x70\x68\x65\x72':b[bn(0x264)],'\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73':{'\x65\x6d\x61\x69\x6c':this['\x5f\x63\x6f\x6e\x66\x69\x67'][bn(a1d0.c)],'\x70\x61\x73\x73\x77\x6f\x72\x64':this[bn(0x287)][bn(0x1f5)]}};}},a1a2=class{constructor(a,b,c){const a1d1={a:0x1d6,b:0x267,c:0x2c1},bo=a1aA;let {iv:d,seq:f}=this[bo(a1d1.a)](a,b,c);this[bo(0x1e3)]=this[bo(0x2c4)](a,b,c),this[bo(a1d1.b)]=this[bo(a1d1.c)](a,b,c),this['\x69\x76']=d,this['\x73\x65\x71']=f;}[a1aA(0x220)](a){const a1d2={a:0x228,b:0x1e4,c:0x1bd,d:0x1ba,e:0x1a1},bp=a1aA;if(this[bp(0x1bd)]+=0x1,typeof a==bp(0x269)&&(a=Buffer[bp(0x20f)](a,bp(0x22f))),!Buffer['\x69\x73\x42\x75\x66\x66\x65\x72'](a))throw new Error(bp(0x238));let b=a1j[bp(a1d2.a)](bp(0x243),this['\x6b\x65\x79'],this[bp(0x20c)]()),c=Buffer[bp(0x1a1)]([b[bp(0x29d)](a),b[bp(a1d2.b)]()]),d=Buffer[bp(0x2a8)](0x4);d[bp(0x218)](this[bp(a1d2.c)],0x0);let f=a1j['\x63\x72\x65\x61\x74\x65\x48\x61\x73\x68'](bp(a1d2.d));f['\x75\x70\x64\x61\x74\x65'](Buffer[bp(a1d2.e)]([this[bp(0x267)],d,c]));let g=f[bp(0x1bf)]();return{'\x65\x6e\x63\x72\x79\x70\x74\x65\x64':Buffer[bp(0x1a1)]([g,c]),'\x73\x65\x71':this[bp(a1d2.c)]};}[a1aA(0x2c8)](a){const a1d3={a:0x1c0,b:0x243,c:0x1e3,d:0x271},bq=a1aA;if(!Buffer[bq(0x2da)](a))return a;let b=a1j[bq(a1d3.a)](bq(a1d3.b),this[bq(a1d3.c)],this[bq(0x20c)]());return Buffer[bq(0x1a1)]([b['\x75\x70\x64\x61\x74\x65'](a['\x73\x75\x62\x61\x72\x72\x61\x79'](0x20)),b[bq(0x1e4)]()])[bq(a1d3.d)]('\x75\x74\x66\x38');}[a1aA(0x2c4)](a,b,c){const a1d4={a:0x20f,b:0x1e9,c:0x2a0,d:0x1ba,e:0x1bf,f:0x265},br=a1aA;let d=Buffer[br(0x1a1)]([Buffer[br(a1d4.a)](br(a1d4.b)),a,b,c]);return a1j[br(a1d4.c)](br(a1d4.d))[br(0x29d)](d)[br(a1d4.e)]()[br(a1d4.f)](0x0,0x10);}[a1aA(0x1d6)](a,b,c){const a1d5={a:0x20f,b:0x1ba,c:0x265},bs=a1aA;let d=Buffer[bs(0x1a1)]([Buffer[bs(a1d5.a)]('\x69\x76'),a,b,c]),f=a1j[bs(0x2a0)](bs(a1d5.b))[bs(0x29d)](d)['\x64\x69\x67\x65\x73\x74'](),g=f['\x73\x75\x62\x61\x72\x72\x61\x79'](-0x4)['\x72\x65\x61\x64\x49\x6e\x74\x33\x32\x42\x45'](0x0);return{'\x69\x76':f[bs(a1d5.c)](0x0,0xc),'\x73\x65\x71':g};}[a1aA(0x2c1)](a,b,c){const a1d6={a:0x29d,b:0x265},bt=a1aA;let d=Buffer['\x63\x6f\x6e\x63\x61\x74']([Buffer[bt(0x20f)]('\x6c\x64\x6b'),a,b,c]);return a1j[bt(0x2a0)](bt(0x1ba))[bt(a1d6.a)](d)['\x64\x69\x67\x65\x73\x74']()[bt(a1d6.b)](0x0,0x1c);}[a1aA(0x20c)](){const a1d7={a:0x218},bu=a1aA;let a=Buffer[bu(0x2a8)](0x4);a[bu(a1d7.a)](this[bu(0x1bd)],0x0);let b=Buffer[bu(0x1a1)]([this['\x69\x76'],a]);if(b[bu(0x217)]!==0x10)throw new Error(bu(0x2d2));return b;}},a1a3=class a1av{constructor(a){const a1dc={a:0x1da,b:0x18f,c:0x252,d:0x2a2,e:0x22d,f:0x244,g:0x287,h:0x1e7,i:0x212,k:0x1ff,l:0x1cf},a1db={a:0x202,b:0x246,c:0x1af,d:0x1d9,e:0x264,f:0x263,g:0x2cd,h:0x1ed,i:0x210,k:0x1bd,l:0x1f6},a1da={a:0x1ca,b:0x1a7,c:0x1fb},a1d8={a:0x1de,b:0x2cb,c:0x18f},bv=a1aA;this['\x5f\x62\x61\x73\x65\x55\x72\x6c']=bv(a1dc.a),this[bv(0x287)]={'\x72\x61\x77\x45\x6d\x61\x69\x6c':'','\x72\x61\x77\x50\x61\x73\x73\x77\x6f\x72\x64':'','\x65\x6d\x61\x69\x6c':'','\x70\x61\x73\x73\x77\x6f\x72\x64':'','\x61\x75\x74\x68\x54\x6f\x6b\x65\x6e':null,'\x74\x69\x6d\x65\x6f\x75\x74':0x2710,'\x68\x74\x74\x70\x54\x69\x6d\x65\x6f\x75\x74':0xfa0},this[bv(a1dc.b)]='',this['\x5f\x64\x65\x76\x69\x63\x65\x73']=new Map(),this['\x61\x75\x74\x68']=async b=>{const bw=bv;let c=b?.[bw(0x212)]||this[bw(0x287)]['\x65\x6d\x61\x69\x6c'],d=b?.[bw(0x1e7)]||this[bw(0x287)]['\x70\x61\x73\x73\x77\x6f\x72\x64'];if(!c||!d)throw new Error(bw(0x2c0));let f={'\x6d\x65\x74\x68\x6f\x64':'\x6c\x6f\x67\x69\x6e','\x70\x61\x72\x61\x6d\x73':{'\x61\x70\x70\x54\x79\x70\x65':'\x54\x61\x70\x6f\x5f\x49\x6f\x73','\x63\x6c\x6f\x75\x64\x50\x61\x73\x73\x77\x6f\x72\x64':d,'\x63\x6c\x6f\x75\x64\x55\x73\x65\x72\x4e\x61\x6d\x65':c,'\x74\x65\x72\x6d\x69\x6e\x61\x6c\x55\x55\x49\x44':uuidv4()}},g=await a1g({'\x6d\x65\x74\x68\x6f\x64':bw(a1d8.a),'\x75\x72\x6c':this[bw(a1d8.b)],'\x64\x61\x74\x61':f});return a1q(g[bw(0x290)]),this[bw(0x18f)]=g['\x64\x61\x74\x61'][bw(0x2bb)]['\x74\x6f\x6b\x65\x6e'],this[bw(a1d8.c)];},this[bv(a1dc.c)]=async(b,c)=>{const a1d9={a:0x1af,b:0x1f2},bx=bv;let d=b[bx(a1da.a)](async g=>{const by=bx;let h=await this[by(a1d9.a)](g[by(0x1e6)],void 0x0,!0x1,c);this[by(0x202)][by(a1d9.b)](g['\x69\x64'],h);}),f=[];try{f=await Promise[bx(a1da.b)](d);}catch(g){console[bx(0x2a4)](bx(a1da.c),g);}return{'\x72\x65\x73\x70\x6f\x6e\x73\x65\x73':f,'\x64\x65\x76\x69\x63\x65\x73':this[bx(0x202)]};},this[bv(a1dc.d)]=async b=>{const bz=bv;let c=this[bz(a1db.a)][bz(0x2b6)](b[bz(0x2c5)]['\x69\x64']);if(!c)return Promise[bz(a1db.b)](!0x1);await this[bz(a1db.c)](c?.['\x69\x70'],c,!0x1);let d=b[bz(0x224)][bz(0x277)](),f=JSON['\x73\x74\x72\x69\x6e\x67\x69\x66\x79']({'\x6d\x65\x74\x68\x6f\x64':bz(a1db.d),'\x70\x61\x72\x61\x6d\x73':d}),g=c[bz(a1db.e)][bz(0x220)](f);if((await this['\x73\x65\x73\x73\x69\x6f\x6e\x50\x6f\x73\x74'](c['\x69\x70'],bz(a1db.f),g[bz(a1db.g)],bz(a1db.h),c[bz(a1db.i)],{'\x73\x65\x71':g[bz(a1db.k)][bz(0x271)]()}))[bz(0x23f)]!==0xc8)throw new Error(bz(a1db.l));return!0x0;},this[bv(0x2b8)]=async b=>this[bv(0x2a2)]({'\x64\x65\x76\x69\x63\x65':b[bv(0x2c5)],'\x73\x74\x61\x74\x65':new a1s({'\x6f\x6e':b[bv(0x219)]})}),(this[bv(0x2af)]=a1g[bv(0x2bd)](),this['\x61\x78\x69\x6f\x73\x49\x6e\x73\x74\x61\x6e\x63\x65'][bv(a1dc.e)][bv(0x24a)]=a?.[bv(a1dc.f)]||0xfa0,this[bv(a1dc.g)]={...this[bv(0x287)],...a},this[bv(a1dc.g)]['\x72\x61\x77\x45\x6d\x61\x69\x6c']=this[bv(a1dc.g)][bv(0x212)],this['\x5f\x63\x6f\x6e\x66\x69\x67'][bv(0x1f5)]=this[bv(a1dc.g)][bv(a1dc.h)],this['\x5f\x63\x6f\x6e\x66\x69\x67'][bv(0x212)]=a1P[bv(0x1f7)](a1P[bv(0x270)](this[bv(0x287)][bv(a1dc.i)])),this[bv(0x287)][bv(a1dc.h)]=a1P[bv(0x1f7)](this['\x5f\x63\x6f\x6e\x66\x69\x67'][bv(0x1e7)]),this[bv(a1dc.k)]=a1j[bv(a1dc.l)]());}async['\x73\x65\x73\x73\x69\x6f\x6e\x50\x6f\x73\x74'](b,c,d,f,g,h){const a1dd={a:0x1de},bA=a1aA;let k={'\x41\x63\x63\x65\x70\x74':bA(0x28e),'\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x54\x79\x70\x65':'\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x6f\x63\x74\x65\x74\x2d\x73\x74\x72\x65\x61\x6d'};return g&&(process?.[bA(0x23c)]?.[bA(0x2d8)]?k['\x42\x79\x70\x61\x73\x73\x43\x6f\x6f\x6b\x69\x65']=g:k[bA(0x210)]=g),a1g[bA(a1dd.a)](bA(0x21f)+b+bA(0x1a4)+c,d,{'\x72\x65\x73\x70\x6f\x6e\x73\x65\x54\x79\x70\x65':f,'\x70\x61\x72\x61\x6d\x73':h,'\x68\x65\x61\x64\x65\x72\x73':k,'\x68\x74\x74\x70\x41\x67\x65\x6e\x74':new a1l[(bA(0x1c7))]({'\x6b\x65\x65\x70\x41\x6c\x69\x76\x65':!0x1})});}[a1aA(0x25c)](a){const a1de={a:0x264},bB=a1aA;return!!(!a||!a[bB(a1de.a)]||a[bB(0x215)]||!a['\x43\x6f\x6f\x6b\x69\x65']);}async[a1aA(0x1af)](b,d,f=!0x1,g){const bC=a1aA;if(!this[bC(0x25c)](d)&&!f)return;let {localSeed:h,remoteSeed:k,authHash:l,deviceSession:p}=await this[bC(0x2df)](b,void 0x0,g);return await this[bC(0x1eb)](p,b,h,k,l,g);}async[a1aA(0x2df)](k,q,v){const a1dg={a:0x29f,b:0x27e,c:0x1a6,d:0x25b,e:0x2c6,f:0x2b9,g:0x232,h:0x276,i:0x278,k:0x1f5,l:0x1ba,n:0x1a1,o:0x2b1,p:0x29f},bD=a1aA;let G=q||a1j[bD(0x2b5)](0x10),I=await this['\x73\x65\x73\x73\x69\x6f\x6e\x50\x6f\x73\x74'](k,bD(0x1d1),G,bD(0x1ed));if(v?.[bD(a1dg.a)](bD(a1dg.b),I),I[bD(0x23f)]!==0xc8)throw new Error(bD(a1dg.c));if(I['\x68\x65\x61\x64\x65\x72\x73'][bD(0x208)]!=='\x34\x38')throw new Error(bD(a1dg.d));let L=I[bD(a1dg.e)][bD(a1dg.f)]||I[bD(a1dg.e)][bD(0x1f4)]?.[0x0],R=Buffer[bD(0x20f)](new Uint8Array(I['\x64\x61\x74\x61'])),[U,V]=L[bD(0x284)]('\x3b'),a0=V[bD(0x284)]('\x3d')[bD(0x19a)](),a1=new a1a5(a0,k,U),a2=R['\x73\x75\x62\x61\x72\x72\x61\x79'](0x0,0x10),a3=R[bD(0x265)](0x10);v?.[bD(0x29f)](bD(0x1b7),a2[bD(0x271)]('\x68\x65\x78'),bD(0x22c),a3['\x74\x6f\x53\x74\x72\x69\x6e\x67'](bD(a1dg.g)),bD(a1dg.h),U);let a4=this[bD(a1dg.i)](this['\x5f\x63\x6f\x6e\x66\x69\x67']['\x72\x61\x77\x45\x6d\x61\x69\x6c'],this[bD(0x287)][bD(a1dg.k)]),a5=this[bD(a1dg.l)](Buffer[bD(a1dg.n)]([G,a2,a4]));if(Buffer['\x63\x6f\x6d\x70\x61\x72\x65'](a5,a3)===0x0)return v?.['\x64\x65\x62\x75\x67'](bD(a1dg.o)),{'\x6c\x6f\x63\x61\x6c\x53\x65\x65\x64':G,'\x72\x65\x6d\x6f\x74\x65\x53\x65\x65\x64':a2,'\x61\x75\x74\x68\x48\x61\x73\x68':a4,'\x64\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e':a1};let a6=this[bD(0x1ba)](Buffer[bD(0x1a1)]([G,a2,this[bD(a1dg.i)]('','')]));if(Buffer[bD(0x25f)](a6,a3)===0x0)return v?.[bD(a1dg.a)](bD(0x239)),{'\x6c\x6f\x63\x61\x6c\x53\x65\x65\x64':G,'\x72\x65\x6d\x6f\x74\x65\x53\x65\x65\x64':a2,'\x61\x75\x74\x68\x48\x61\x73\x68':a6,'\x64\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e':a1};let a7=this[bD(a1dg.l)](Buffer[bD(0x1a1)]([G,a2,this['\x68\x61\x73\x68\x41\x75\x74\x68'](a1av[bD(0x225)],a1av[bD(0x2de)])]));if(Buffer['\x63\x6f\x6d\x70\x61\x72\x65'](a7,a3)===0x0)return v?.[bD(a1dg.p)]('\x5b\x4b\x4c\x41\x50\x5d\x20\x5b\x57\x41\x52\x4e\x5d\x20\x54\x65\x73\x74\x20\x61\x75\x74\x68\x20\x68\x61\x73\x68\x20\x6d\x61\x74\x63\x68\x65\x73\x20\x73\x65\x72\x76\x65\x72\x20\x68\x61\x73\x68'),{'\x6c\x6f\x63\x61\x6c\x53\x65\x65\x64':G,'\x72\x65\x6d\x6f\x74\x65\x53\x65\x65\x64':a2,'\x61\x75\x74\x68\x48\x61\x73\x68':a7,'\x64\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e':a1};throw new Error(bD(0x273));}async[a1aA(0x1eb)](b,d,f,g,h,k){const a1dh={a:0x1ba,b:0x197,c:0x2ce,d:0x290,e:0x1cd,f:0x1aa},bE=a1aA;let l=this[bE(a1dh.a)](Buffer[bE(0x1a1)]([g,f,h]));try{let p=await this[bE(0x191)](d,bE(0x235),l,bE(a1dh.b),b[bE(0x210)]);if(p[bE(0x23f)]===0xc8)return k?.[bE(0x29f)]('\x5b\x4b\x4c\x41\x50\x5d\x20\x53\x65\x63\x6f\x6e\x64\x20\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c'),b[bE(a1dh.c)](d,new a1a2(f,g,h));k[bE(0x193)](bE(0x1e2),p[bE(a1dh.d)]);}catch(q){k[bE(0x2a4)]('\x5b\x4b\x4c\x41\x50\x5d\x20\x53\x65\x63\x6f\x6e\x64\x20\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x20\x66\x61\x69\x6c\x65\x64\x3a',q[bE(a1dh.e)][bE(0x290)]||q[bE(a1dh.f)]);}}['\x73\x68\x61\x32\x35\x36'](a){const a1di={a:0x1ba},bF=a1aA;return a1j[bF(0x2a0)](bF(a1di.a))[bF(0x29d)](a)['\x64\x69\x67\x65\x73\x74']();}[a1aA(0x282)](a){const a1dj={a:0x29d},bG=a1aA;return a1j['\x63\x72\x65\x61\x74\x65\x48\x61\x73\x68'](bG(0x282))[bG(a1dj.a)](a)[bG(0x1bf)]();}['\x68\x61\x73\x68\x41\x75\x74\x68'](a,b){const a1dk={a:0x1ba,b:0x282,c:0x20f,d:0x2ac},bH=a1aA;return this[bH(a1dk.a)](Buffer[bH(0x1a1)]([this[bH(a1dk.b)](Buffer[bH(a1dk.c)](a[bH(0x1f3)]('\x4e\x46\x4b\x43'))),this[bH(a1dk.b)](Buffer[bH(0x20f)](b[bH(0x1f3)](bH(a1dk.d))))]));}};a1a3[a1aA(0x225)]=a1aA(0x2e0),a1a3[a1aA(0x2de)]=a1aA(0x285);var a1a4=a1a3,a1a5=class a1aw{constructor(a,b,c,d){const a1dl={a:0x26d,b:0x266},bI=a1aA;this['\x69\x70']=b,this[bI(0x2cf)]=c,this['\x63\x69\x70\x68\x65\x72']=d,this[bI(0x1f8)]=!0x1,(this[bI(a1dl.a)]=a,this[bI(a1dl.b)]=new Date(Date[bI(0x1c5)]()+parseInt(a)*0x3e8),d&&(this['\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x43\x6f\x6d\x70\x6c\x65\x74\x65\x64']=!0x0));}get[a1aA(0x215)](){const a1dm={a:0x266,b:0x1ce},bJ=a1aA;return this[bJ(a1dm.a)][bJ(a1dm.b)]()-Date[bJ(0x1c5)]()<=0x28*0x3e8;}get[a1aA(0x210)](){const bK=a1aA;return this[bK(0x2cf)];}[a1aA(0x2ce)](a,b){const a1do={a:0x26d,b:0x2cf},bL=a1aA;return new a1aw(this[bL(a1do.a)],a,this[bL(a1do.b)],b);}},a1a6=[a1aA(0x207),a1aA(0x2c7),'\x63\x63\x3a\x62\x61\x3a\x62\x64','\x65\x34\x3a\x66\x61\x3a\x63\x34',a1aA(0x292),a1aA(0x24e)],a1a7=0x5,a1a8=a=>(a||'')['\x72\x65\x70\x6c\x61\x63\x65'](/[^a-fA-F0-9]/g,'')[a1aA(0x20b)](),a1a9=a=>{const a1dp={a:0x26a},bM=a1aA;let b=a1a8(a);return b['\x6c\x65\x6e\x67\x74\x68']!==0xc?(a||'')['\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65']():b[bM(a1dp.a)](/.{1,2}/g)?.['\x6a\x6f\x69\x6e']('\x3a')||(a||'')[bM(0x20b)]();},a1aa=a=>{const a1dq={a:0x20b,b:0x2a7},bN=a1aA;let b=(a||'')[bN(a1dq.a)]();return a1a6[bN(a1dq.b)](c=>b[bN(0x248)](c));},a1ab=async a=>{const a1dr={a:0x1b2},bO=a1aA;let b=a1a8(a),c=a1a9(a),d=0x0;for(;d<=a1a7;){try{let g=await a1h['\x74\x6f\x49\x50'](c);if(g)return g;}catch{}let f=(await a1i({'\x73\x6b\x69\x70\x4e\x61\x6d\x65\x52\x65\x73\x6f\x6c\x75\x74\x69\x6f\x6e':!0x0}))[bO(a1dr.a)](h=>a1a8(h[bO(0x28d)])===b);if(f?.['\x69\x70'])return f['\x69\x70'];d++;}},a1ac=async a=>{const a1dt={a:0x1ca},a1ds={a:0x241,b:0x2ae,c:0x19f,d:0x281,e:0x2a4},bP=a1aA;let b=await a1i({'\x73\x6b\x69\x70\x4e\x61\x6d\x65\x52\x65\x73\x6f\x6c\x75\x74\x69\x6f\x6e':!0x0}),{email:c,password:d}=a;return b[bP(0x1b4)](f=>a1aa(f['\x6d\x61\x63']))[bP(a1dt.a)](f=>({'\x69\x70':f['\x69\x70'],'\x6d\x61\x63':f[bP(0x28d)],'\x6c\x6f\x67\x69\x6e\x44\x65\x76\x69\x63\x65':async()=>{const bQ=bP;let g=new a1a1({'\x65\x6d\x61\x69\x6c':c,'\x70\x61\x73\x73\x77\x6f\x72\x64':d}),h=await g[bQ(a1ds.a)](f['\x69\x70'],{'\x65\x6d\x61\x69\x6c':c,'\x70\x61\x73\x73\x77\x6f\x72\x64':d});if(!h[bQ(a1ds.b)][bQ(a1ds.c)](f['\x69\x70'])){let k=h[bQ(a1ds.d)][bQ(0x1b2)](l=>l['\x69\x70']===f['\x69\x70']);throw new Error(k?.[bQ(a1ds.e)]||bQ(0x1ac)+f['\x69\x70']);}return g;}}));},a1ad=async b=>{const a1du={a:0x1f0,b:0x241,c:0x1e7,d:0x2a5,e:0x1ec,f:0x19c,g:0x291,h:0x25e,i:0x2bf,k:0x237,l:0x21a,n:0x1fe,o:0x19c,p:0x25e,q:0x2bf,r:0x1a8,t:0x1cb},bR=a1aA;let d=new a1a4(b),f=b[bR(a1du.a)];!f&&b[bR(0x212)]&&b['\x70\x61\x73\x73\x77\x6f\x72\x64']&&(f=await d[bR(a1du.b)]({'\x65\x6d\x61\x69\x6c':b['\x65\x6d\x61\x69\x6c'],'\x70\x61\x73\x73\x77\x6f\x72\x64':b[bR(a1du.c)]}));let g={'\x6d\x65\x74\x68\x6f\x64':bR(0x2d5)},h=await a1g({'\x6d\x65\x74\x68\x6f\x64':bR(0x1de),'\x75\x72\x6c':d['\x5f\x62\x61\x73\x65\x55\x72\x6c']+'\x3f\x74\x6f\x6b\x65\x6e\x3d'+f,'\x64\x61\x74\x61':g});a1q(h['\x64\x61\x74\x61']);let k=[];for(let l of h[bR(0x290)][bR(0x2bb)]?.[bR(0x1bb)]||[]){if(!l['\x69\x70']){let p=await a1ab(l['\x64\x65\x76\x69\x63\x65\x4d\x61\x63']);if(!p)continue;l['\x69\x70']=p;}switch(l[bR(a1du.d)]){case bR(0x20e):case bR(a1du.e):{if(b[bR(a1du.f)]&&!b['\x74\x79\x70\x65\x73'][bR(0x19f)](ILumiaDeviceType[bR(0x2b2)]))continue;let q=l['\x64\x65\x76\x69\x63\x65\x54\x79\x70\x65']===bR(0x1ec),u=(q?a1p(l[bR(a1du.g)]):l[bR(0x291)])??l['\x64\x65\x76\x69\x63\x65\x4e\x61\x6d\x65'];k[bR(a1du.h)]({'\x6e\x61\x6d\x65':u,'\x69\x64':l[bR(a1du.i)],'\x61\x64\x64\x72\x65\x73\x73':bR(0x21f)+l['\x69\x70'],'\x68\x6f\x73\x74':l['\x69\x70'],'\x6c\x75\x6d\x69\x61\x49\x6e\x66\x6f':{'\x61\x6c\x69\x61\x73':u,'\x69\x64\x65\x6e\x74\x69\x66\x69\x65\x72':l['\x64\x65\x76\x69\x63\x65\x4d\x61\x63'],'\x73\x65\x72\x69\x61\x6c':l[bR(a1du.k)],'\x6c\x75\x6d\x69\x61\x54\x79\x70\x65':ILumiaDeviceType[bR(0x2b2)],'\x7a\x6f\x6e\x61\x62\x6c\x65':!0x1,'\x6d\x61\x78\x5a\x6f\x6e\x65\x73':0x1,'\x7a\x6f\x6e\x65\x73':[],'\x72\x67\x62':!0x0,'\x77\x68\x69\x74\x65':!0x0,'\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x54\x79\x70\x65':ILumiaDeviceConnectionType[bR(0x201)],'\x62\x72\x61\x6e\x64':q?ILumiaDeviceBrands[bR(0x1cb)]:ILumiaDeviceBrands['\x54\x50\x4c\x49\x4e\x4b'],'\x70\x72\x6f\x64\x75\x63\x74':l?.[bR(0x1f1)]}});break;}case bR(a1du.l):case bR(a1du.n):{if(b[bR(a1du.o)]&&!b['\x74\x79\x70\x65\x73'][bR(0x19f)](ILumiaDeviceType['\x50\x4c\x55\x47']))continue;let v=l[bR(0x2a5)]==='\x53\x4d\x41\x52\x54\x2e\x54\x41\x50\x4f\x50\x4c\x55\x47',w=(v?a1p(l['\x61\x6c\x69\x61\x73']):l['\x61\x6c\x69\x61\x73'])??l[bR(0x1f9)];k[bR(a1du.p)]({'\x6e\x61\x6d\x65':w,'\x69\x64':l[bR(0x2bf)],'\x61\x64\x64\x72\x65\x73\x73':bR(0x21f)+l['\x69\x70'],'\x68\x6f\x73\x74':l['\x69\x70'],'\x6c\x75\x6d\x69\x61\x49\x6e\x66\x6f':{'\x61\x6c\x69\x61\x73':w,'\x69\x64\x65\x6e\x74\x69\x66\x69\x65\x72':l[bR(a1du.q)],'\x73\x65\x72\x69\x61\x6c':l[bR(0x237)],'\x6c\x75\x6d\x69\x61\x54\x79\x70\x65':ILumiaDeviceType[bR(a1du.r)],'\x7a\x6f\x6e\x61\x62\x6c\x65':!0x1,'\x6d\x61\x78\x5a\x6f\x6e\x65\x73':0x0,'\x7a\x6f\x6e\x65\x73':[],'\x72\x67\x62':!0x1,'\x77\x68\x69\x74\x65':!0x1,'\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x54\x79\x70\x65':ILumiaDeviceConnectionType[bR(0x201)],'\x62\x72\x61\x6e\x64':v?ILumiaDeviceBrands[bR(a1du.t)]:ILumiaDeviceBrands['\x54\x50\x4c\x49\x4e\x4b'],'\x70\x72\x6f\x64\x75\x63\x74':l?.[bR(0x1f1)]}});break;}}}return k;},a1ae=a1ad,a1af;typeof window<'\x75'&&typeof window[a1aA(0x27a)]!==void 0x0?a1af=window[a1aA(0x27a)]:a1af=a1m;function a1c(){const dI=['\x73\x65\x74\x5f\x64\x65\x76\x69\x63\x65\x5f\x69\x6e\x66\x6f','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x65\x75\x2d\x77\x61\x70\x2e\x74\x70\x6c\x69\x6e\x6b\x63\x6c\x6f\x75\x64\x2e\x63\x6f\x6d\x2f','\x39\x31\x34\x41\x4c\x65\x6d\x62\x73','\x69\x6e\x66\x6f','\x2f\x61\x70\x70\x2f\x72\x65\x71\x75\x65\x73\x74','\x70\x6f\x73\x74','\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x31\x20\x66\x61\x69\x6c\x65\x64\x3a\x20','\x73\x74\x72\x69\x6e\x67\x69\x66\x79','\x67\x65\x74\x53\x65\x73\x73\x69\x6f\x6e\x44\x61\x74\x61','\x5b\x4b\x4c\x41\x50\x5d\x20\x53\x65\x63\x6f\x6e\x64\x20\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x20\x66\x61\x69\x6c\x65\x64','\x6b\x65\x79','\x66\x69\x6e\x61\x6c','\x50\x33\x30\x30','\x68\x6f\x73\x74','\x70\x61\x73\x73\x77\x6f\x72\x64','\x72\x65\x61\x64\x49\x6e\x74\x33\x32\x42\x45','\x6c\x73\x6b','\x35\x33\x38\x30\x62\x53\x66\x54\x55\x67','\x73\x65\x63\x6f\x6e\x64\x48\x61\x6e\x64\x73\x68\x61\x6b\x65','\x53\x4d\x41\x52\x54\x2e\x54\x41\x50\x4f\x42\x55\x4c\x42','\x61\x72\x72\x61\x79\x62\x75\x66\x66\x65\x72','\x69\x6e\x64\x65\x78\x4f\x66','\x6d\x67\x74\x5f\x65\x6e\x63\x72\x79\x70\x74\x5f\x73\x63\x68\x6d','\x74\x6f\x6b\x65\x6e','\x64\x65\x76\x69\x63\x65\x4d\x6f\x64\x65\x6c','\x73\x65\x74','\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65','\x73\x65\x74\x2d\x63\x6f\x6f\x6b\x69\x65','\x72\x61\x77\x50\x61\x73\x73\x77\x6f\x72\x64','\x5b\x4b\x4c\x41\x50\x5d\x20\x52\x65\x71\x75\x65\x73\x74\x20\x66\x61\x69\x6c\x65\x64','\x74\x6f\x42\x61\x73\x65\x36\x34','\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x43\x6f\x6d\x70\x6c\x65\x74\x65\x64','\x64\x65\x76\x69\x63\x65\x4e\x61\x6d\x65','\x52\x53\x41\x5f\x50\x4b\x43\x53\x31\x5f\x50\x41\x44\x44\x49\x4e\x47','\x74\x61\x70\x6f\x20\x63\x6c\x6f\x75\x64\x20\x73\x65\x74\x75\x70\x20\x65\x72\x72\x3a\x20','\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e','\x69\x73\x5f\x73\x75\x70\x70\x6f\x72\x74\x5f\x68\x74\x74\x70\x73','\x53\x4d\x41\x52\x54\x2e\x54\x41\x50\x4f\x50\x4c\x55\x47','\x74\x65\x72\x6d\x69\x6e\x61\x6c\x55\x55\x49\x44','\x50\x33\x30\x36','\x57\x49\x46\x49','\x5f\x64\x65\x76\x69\x63\x65\x73','\x6e\x69\x63\x6b\x6e\x61\x6d\x65','\x64\x65\x6c\x65\x74\x65','\x6e\x75\x6d\x62\x65\x72','\x67\x65\x74\x44\x65\x76\x69\x63\x65\x49\x6e\x66\x6f\x42\x79\x49\x70','\x38\x34\x3a\x64\x38\x3a\x31\x62','\x63\x6f\x6e\x74\x65\x6e\x74\x2d\x6c\x65\x6e\x67\x74\x68','\x75\x74\x66\x2d\x38','\x65\x78\x70\x6f\x72\x74','\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65','\x69\x76\x53\x65\x71','\x5b\x74\x61\x70\x6f\x5d\x20\x64\x69\x73\x63\x6f\x76\x65\x72\x79\x20\x73\x65\x6e\x64\x20\x66\x61\x69\x6c\x65\x64','\x49\x4f\x54\x2e\x53\x4d\x41\x52\x54\x42\x55\x4c\x42','\x66\x72\x6f\x6d','\x43\x6f\x6f\x6b\x69\x65','\x44\x65\x76\x69\x63\x65\x20\x74\x6f\x6b\x65\x6e\x20\x65\x78\x70\x69\x72\x65\x64\x20\x6f\x72\x20\x69\x6e\x76\x61\x6c\x69\x64','\x65\x6d\x61\x69\x6c','\x73\x65\x63\x75\x72\x65\x50\x61\x73\x73\x74\x68\x72\x6f\x75\x67\x68','\x70\x6c\x75\x67','\x49\x73\x45\x78\x70\x69\x72\x65\x64','\x63\x6f\x6c\x6f\x72','\x6c\x65\x6e\x67\x74\x68','\x77\x72\x69\x74\x65\x49\x6e\x74\x33\x32\x42\x45','\x70\x6f\x77\x65\x72','\x49\x4f\x54\x2e\x53\x4d\x41\x52\x54\x50\x4c\x55\x47\x53\x57\x49\x54\x43\x48','\x70\x72\x6f\x6d\x69\x73\x69\x66\x79','\x61\x70\x70\x6c\x79','\x73\x6c\x69\x63\x65','\x32\x31\x35\x37\x33\x52\x69\x50\x49\x4b\x6e','\x68\x74\x74\x70\x3a\x2f\x2f','\x65\x6e\x63\x72\x79\x70\x74','\x66\x77\x5f\x76\x65\x72','\x49\x6e\x76\x61\x6c\x69\x64\x20\x74\x65\x72\x6d\x69\x6e\x61\x6c\x20\x55\x55\x49\x44','\x66\x6f\x72\x45\x61\x63\x68','\x73\x74\x61\x74\x65','\x54\x50\x5f\x54\x45\x53\x54\x5f\x55\x53\x45\x52','\x2e\x20\x4b\x4c\x41\x50\x20\x65\x72\x72\x6f\x72\x3a\x20','\x73\x6d\x61\x72\x74\x6c\x69\x66\x65\x2e\x69\x6f\x74\x2e\x73\x6d\x61\x72\x74\x62\x75\x6c\x62\x2e\x6c\x69\x67\x68\x74\x69\x6e\x67\x73\x65\x72\x76\x69\x63\x65','\x63\x72\x65\x61\x74\x65\x43\x69\x70\x68\x65\x72\x69\x76','\x63\x68\x69\x6c\x64\x5f\x6e\x75\x6d','\x6e\x6f\x72\x6d\x61\x6c','\x62\x72\x69\x67\x68\x74\x6e\x65\x73\x73','\x0a\x53\x65\x72\x76\x65\x72\x20\x48\x61\x73\x68\x3a','\x64\x65\x66\x61\x75\x6c\x74\x73','\x6c\x6f\x67','\x75\x74\x66\x38','\x70\x61\x72\x73\x65','\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x4d\x6f\x64\x65\x6c','\x68\x65\x78','\x64\x65\x76\x69\x63\x65\x5f\x74\x79\x70\x65','\x63\x72\x65\x61\x74\x65\x4b\x65\x79\x50\x61\x69\x72','\x2f\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x32','\x66\x75\x6e\x63\x74\x69\x6f\x6e','\x68\x77\x49\x64','\x6d\x73\x67\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x20\x73\x74\x72\x69\x6e\x67\x20\x6f\x72\x20\x62\x75\x66\x66\x65\x72','\x5b\x4b\x4c\x41\x50\x5d\x20\x5b\x57\x41\x52\x4e\x5d\x20\x45\x6d\x70\x74\x79\x20\x61\x75\x74\x68\x20\x68\x61\x73\x68\x20\x6d\x61\x74\x63\x68\x65\x73\x20\x73\x65\x72\x76\x65\x72\x20\x68\x61\x73\x68','\x73\x65\x74\x42\x72\x6f\x61\x64\x63\x61\x73\x74','\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x61\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x65\x20\x77\x69\x74\x68\x20\x64\x65\x76\x69\x63\x65\x20\x61\x74\x20','\x76\x65\x72\x73\x69\x6f\x6e\x73','\x63\x61\x74\x63\x68','\x63\x6f\x6e\x74\x72\x6f\x6c\x5f\x63\x68\x69\x6c\x64','\x73\x74\x61\x74\x75\x73','\x72\x61\x77\x45\x6d\x61\x69\x6c','\x61\x75\x74\x68','\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x6c\x6f\x67\x69\x6e\x20\x74\x6f\x20\x64\x65\x76\x69\x63\x65\x20\x61\x74\x20','\x61\x65\x73\x2d\x31\x32\x38\x2d\x63\x62\x63','\x68\x74\x74\x70\x54\x69\x6d\x65\x6f\x75\x74','\x44\x65\x76\x69\x63\x65\x20\x49\x50\x20\x6f\x72\x20\x49\x44\x20\x69\x73\x20\x72\x65\x71\x75\x69\x72\x65\x64','\x72\x65\x73\x6f\x6c\x76\x65','\x5b\x74\x61\x70\x6f\x5d\x20\x6d\x75\x6c\x74\x69\x2d\x73\x6f\x63\x6b\x65\x74\x20\x64\x65\x74\x65\x63\x74\x65\x64','\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68','\x63\x6f\x6c\x6f\x72\x54\x65\x6d\x70\x65\x72\x61\x74\x75\x72\x65','\x74\x69\x6d\x65\x6f\x75\x74','\x76\x61\x6c\x75\x65\x73','\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79','\x6a\x6f\x69\x6e','\x35\x30\x3a\x63\x37\x3a\x62\x66','\x5f\x62\x75\x69\x6c\x64\x54\x61\x70\x6f\x46\x72\x6f\x6d\x44\x65\x76\x69\x63\x65\x49\x6e\x66\x6f','\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72','\x70\x6b\x63\x73\x31','\x73\x65\x74\x75\x70','\x68\x61\x73','\x6f\x66\x66','\x5f\x67\x65\x74\x4f\x72\x43\x72\x65\x61\x74\x65\x53\x65\x73\x73\x69\x6f\x6e','\x6d\x6f\x64\x65\x6c','\x67\x65\x6e\x65\x72\x61\x74\x65\x4b\x65\x79\x50\x61\x69\x72','\x64\x75\x72\x61\x74\x69\x6f\x6e','\x67\x65\x74\x44\x65\x76\x69\x63\x65\x73\x42\x79\x49\x70','\x64\x65\x76\x69\x63\x65\x5f\x69\x64','\x48\x61\x6e\x64\x73\x68\x61\x6b\x65\x31\x20\x66\x61\x69\x6c\x65\x64\x20\x64\x75\x65\x20\x74\x6f\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x63\x6f\x6e\x74\x65\x6e\x74\x20\x6c\x65\x6e\x67\x74\x68','\x6e\x65\x65\x64\x73\x4e\x65\x77\x48\x61\x6e\x64\x73\x68\x61\x6b\x65','\x70\x75\x62\x6c\x69\x63\x4b\x65\x79','\x70\x75\x73\x68','\x63\x6f\x6d\x70\x61\x72\x65','\x6f\x62\x6a\x65\x63\x74','\x5f\x64\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e\x73','\x33\x34\x36\x34\x38\x32\x30\x73\x7a\x61\x6e\x6d\x6e','\x2f\x72\x65\x71\x75\x65\x73\x74','\x63\x69\x70\x68\x65\x72','\x73\x75\x62\x61\x72\x72\x61\x79','\x65\x78\x70\x69\x72\x65\x41\x74','\x73\x69\x67','\x49\x6e\x76\x61\x6c\x69\x64\x20\x70\x75\x62\x6c\x69\x63\x20\x6b\x65\x79\x20\x6c\x65\x6e\x67\x74\x68','\x73\x74\x72\x69\x6e\x67','\x6d\x61\x74\x63\x68','\x65\x78\x63\x65\x70\x74\x69\x6f\x6e','\x6c\x69\x67\x68\x74\x73\x74\x72\x69\x70','\x72\x61\x77\x54\x69\x6d\x65\x6f\x75\x74','\x6f\x77\x6e\x65\x72','\x73\x75\x62\x73\x74\x72\x69\x6e\x67','\x65\x6e\x63\x6f\x64\x65\x55\x73\x65\x72\x6e\x61\x6d\x65','\x74\x6f\x53\x74\x72\x69\x6e\x67','\x49\x6e\x63\x6f\x72\x72\x65\x63\x74\x20\x72\x65\x71\x75\x65\x73\x74','\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x76\x65\x72\x69\x66\x79\x20\x73\x65\x72\x76\x65\x72\x20\x68\x61\x73\x68','\x63\x6f\x6e\x73\x6f\x6c\x65','\x54\x61\x70\x6f\x20\x44\x65\x76\x69\x63\x65','\x0a\x43\x6f\x6f\x6b\x69\x65\x3a','\x67\x65\x74\x56\x61\x6c\x75\x65\x73','\x68\x61\x73\x68\x41\x75\x74\x68','\x38\x62\x52\x73\x54\x51\x70','\x64\x67\x72\x61\x6d','\x74\x75\x72\x6e\x4f\x6e','\x73\x61\x74','\x72\x65\x70\x6c\x61\x63\x65','\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x31\x52\x65\x73\x75\x6c\x74\x3a\x20','\x64\x65\x66\x69\x6e\x65\x50\x72\x6f\x70\x65\x72\x74\x79','\x31\x32\x67\x6b\x7a\x67\x59\x4f','\x66\x61\x69\x6c\x65\x64','\x73\x68\x61\x31','\x4a\x53\x4f\x4e\x20\x66\x6f\x72\x6d\x61\x74\x20\x65\x72\x72\x6f\x72','\x73\x70\x6c\x69\x74','\x74\x65\x73\x74','\x62\x72\x69','\x5f\x63\x6f\x6e\x66\x69\x67','\x74\x79\x70\x65','\x63\x72\x65\x61\x74\x65\x53\x6f\x63\x6b\x65\x74','\x6c\x64\x6b','\x5f\x69\x73\x4b\x6e\x6f\x77\x6e\x4d\x75\x6c\x74\x69\x53\x6f\x63\x6b\x65\x74\x4d\x6f\x64\x65\x6c','\x68\x77\x5f\x69\x64','\x6d\x61\x63','\x2a\x2f\x2a','\x6c\x6f\x67\x69\x6e\x5f\x64\x65\x76\x69\x63\x65','\x64\x61\x74\x61','\x61\x6c\x69\x61\x73','\x61\x63\x3a\x38\x34\x3a\x63\x36','\x61\x64\x64\x72\x65\x73\x73','\x63\x68\x69\x6c\x64\x5f\x64\x65\x76\x69\x63\x65\x5f\x6c\x69\x73\x74','\x74\x65\x6d\x70','\x4c\x49\x47\x48\x54\x53\x54\x52\x49\x50\x53','\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x5f\x70\x65\x72\x69\x6f\x64','\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x65\x72\x72\x6f\x72','\x64\x65\x76\x69\x63\x65\x4b\x65\x79','\x5b\x74\x61\x70\x6f\x5d\x20\x64\x69\x73\x63\x6f\x76\x65\x72\x79\x20\x72\x65\x73\x70\x6f\x6e\x73\x65','\x62\x69\x6e\x64','\x74\x61\x70\x6f\x2d','\x75\x70\x64\x61\x74\x65','\x5f\x66\x65\x74\x63\x68\x43\x68\x69\x6c\x64\x44\x65\x76\x69\x63\x65\x4c\x69\x73\x74','\x64\x65\x62\x75\x67','\x63\x72\x65\x61\x74\x65\x48\x61\x73\x68','\x44\x65\x76\x69\x63\x65\x20\x74\x6f\x6b\x65\x6e\x20\x65\x78\x70\x69\x72\x65\x64','\x73\x65\x6e\x64\x53\x74\x61\x74\x65','\x2f\x61\x70\x70\x2f\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x31','\x65\x72\x72\x6f\x72','\x64\x65\x76\x69\x63\x65\x54\x79\x70\x65','\x6c\x6f\x67\x69\x6e\x44\x65\x76\x69\x63\x65\x42\x79\x49\x70','\x73\x6f\x6d\x65','\x61\x6c\x6c\x6f\x63','\x50\x33\x30\x34','\x72\x73\x61','\x45\x6d\x61\x69\x6c\x20\x61\x6e\x64\x20\x70\x61\x73\x73\x77\x6f\x72\x64\x20\x61\x72\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x66\x6f\x72\x20\x6c\x6f\x67\x69\x6e\x44\x65\x76\x69\x63\x65\x42\x79\x49\x70','\x4e\x46\x4b\x43','\x62\x61\x73\x65\x36\x34','\x73\x75\x63\x63\x65\x73\x73','\x61\x78\x69\x6f\x73\x49\x6e\x73\x74\x61\x6e\x63\x65','\x67\x65\x74\x5f\x64\x65\x76\x69\x63\x65\x5f\x69\x6e\x66\x6f','\x5b\x4b\x4c\x41\x50\x5d\x20\x4c\x6f\x63\x61\x6c\x20\x61\x75\x74\x68\x20\x68\x61\x73\x68\x20\x6d\x61\x74\x63\x68\x65\x73\x20\x73\x65\x72\x76\x65\x72\x20\x68\x61\x73\x68','\x4c\x49\x47\x48\x54','\x73\x75\x6d','\x70\x72\x69\x76\x61\x74\x65\x4b\x65\x79','\x72\x61\x6e\x64\x6f\x6d\x42\x79\x74\x65\x73','\x67\x65\x74','\x7b\x7d\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x22\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x22\x29\x28\x20\x29','\x73\x65\x6e\x64\x50\x6f\x77\x65\x72','\x62\x79\x70\x61\x73\x73\x2d\x63\x6f\x6f\x6b\x69\x65','\x33\x38\x36\x37\x51\x6f\x69\x47\x69\x4b','\x72\x65\x73\x75\x6c\x74','\x67\x65\x74\x5f\x63\x68\x69\x6c\x64\x5f\x64\x65\x76\x69\x63\x65\x5f\x6c\x69\x73\x74','\x63\x72\x65\x61\x74\x65','\x63\x6f\x6c\x6f\x72\x5f\x74\x65\x6d\x70','\x64\x65\x76\x69\x63\x65\x4d\x61\x63','\x45\x6d\x61\x69\x6c\x20\x61\x6e\x64\x20\x70\x61\x73\x73\x77\x6f\x72\x64\x20\x61\x72\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x66\x6f\x72\x20\x61\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x69\x6f\x6e','\x73\x69\x67\x44\x65\x72\x69\x76\x65','\x49\x4f\x54\x2e\x53\x4d\x41\x52\x54\x48\x55\x42','\x2d\x31\x35\x30\x31','\x6b\x65\x79\x44\x65\x72\x69\x76\x65','\x64\x65\x76\x69\x63\x65','\x68\x65\x61\x64\x65\x72\x73','\x37\x38\x3a\x38\x63\x3a\x62\x35','\x64\x65\x63\x72\x79\x70\x74','\x32\x31\x34\x39\x36\x33\x38\x63\x58\x6f\x4b\x77\x71','\x5f\x76\x61\x6c\x75\x65\x73','\x5f\x62\x61\x73\x65\x55\x72\x6c','\x68\x77\x5f\x76\x65\x72','\x65\x6e\x63\x72\x79\x70\x74\x65\x64','\x63\x6f\x6d\x70\x6c\x65\x74\x65\x48\x61\x6e\x64\x73\x68\x61\x6b\x65','\x63\x6f\x6f\x6b\x69\x65','\x31\x31\x31\x30\x30\x32\x38\x75\x7a\x4e\x67\x4f\x4a','\x20\x4f\x75\x74\x6c\x65\x74\x20','\x4c\x65\x6e\x67\x74\x68\x20\x6f\x66\x20\x69\x76\x20\x69\x73\x20\x6e\x6f\x74\x20\x31\x36','\x64\x65\x76\x69\x63\x65\x5f\x6f\x6e','\x72\x65\x74\x75\x72\x6e\x20\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20','\x67\x65\x74\x44\x65\x76\x69\x63\x65\x4c\x69\x73\x74','\x33\x39\x38\x35\x32\x31\x30\x39\x75\x41\x71\x44\x63\x59','\x39\x31\x38\x34\x34\x34\x31\x56\x4d\x4e\x4d\x57\x4b','\x65\x6c\x65\x63\x74\x72\x6f\x6e','\x73\x61\x74\x75\x72\x61\x74\x69\x6f\x6e','\x69\x73\x42\x75\x66\x66\x65\x72','\x54\x61\x70\x6f\x20\x44\x65\x76\x69\x63\x65\x20\x28','\x74\x6f\x70\x20\x73\x65\x63\x72\x65\x74','\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x5f\x6e\x65\x67\x6f','\x54\x50\x5f\x54\x45\x53\x54\x5f\x50\x41\x53\x53\x57\x4f\x52\x44','\x66\x69\x72\x73\x74\x48\x61\x6e\x64\x73\x68\x61\x6b\x65','\x74\x65\x73\x74\x40\x74\x70\x2d\x6c\x69\x6e\x6b\x2e\x6e\x65\x74','\x5f\x74\x6f\x6b\x65\x6e','\x64\x65\x76\x69\x63\x65\x49\x70','\x73\x65\x73\x73\x69\x6f\x6e\x50\x6f\x73\x74','\x73\x65\x73\x73\x69\x6f\x6e\x43\x6f\x6f\x6b\x69\x65','\x77\x61\x72\x6e','\x62\x75\x6c\x62','\x73\x70\x6b\x69','\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x5f\x6c\x69\x73\x74','\x74\x65\x78\x74','\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x45\x72\x72\x6f\x72\x20\x43\x6f\x64\x65\x3a\x20','\x70\x72\x69\x76\x61\x74\x65\x44\x65\x63\x72\x79\x70\x74','\x70\x6f\x70','\x68\x61\x73\x44\x65\x76\x69\x63\x65\x53\x65\x73\x73\x69\x6f\x6e','\x74\x79\x70\x65\x73','\x50\x32\x31\x30\x4d','\x5f\x66\x65\x74\x63\x68\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x2f\x61\x70\x70\x2f\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x32','\x63\x6f\x6e\x63\x61\x74','\x63\x6c\x6f\x73\x65','\x5b\x74\x61\x70\x6f\x5d\x20\x64\x69\x73\x63\x6f\x76\x65\x72\x79\x20\x72\x65\x73\x70\x6f\x6e\x73\x65\x20\x63\x6f\x75\x6c\x64\x20\x6e\x6f\x74\x20\x62\x65\x20\x70\x61\x72\x73\x65\x64\x20\x61\x73\x20\x4a\x53\x4f\x4e\x20\x28\x6c\x69\x6b\x65\x6c\x79\x20\x65\x6e\x63\x72\x79\x70\x74\x65\x64\x20\x62\x6f\x64\x79\x29','\x2f\x61\x70\x70','\x3b\x20\x4c\x65\x67\x61\x63\x79\x20\x65\x72\x72\x6f\x72\x3a\x20','\x48\x61\x6e\x64\x73\x68\x61\x6b\x65\x31\x20\x66\x61\x69\x6c\x65\x64','\x61\x6c\x6c\x53\x65\x74\x74\x6c\x65\x64','\x50\x4c\x55\x47','\x74\x69\x6d\x65\x6f\x75\x74\x4d\x73','\x6d\x65\x73\x73\x61\x67\x65','\x68\x75\x65','\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x61\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x65\x20\x77\x69\x74\x68\x20\x64\x65\x76\x69\x63\x65\x20','\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65','\x54\x41\x50\x4f','\x68\x61\x6e\x64\x73\x68\x61\x6b\x65','\x74\x61\x62\x6c\x65','\x35\x5a\x43\x51\x69\x77\x78','\x66\x69\x6e\x64','\x6d\x6f\x64\x65','\x66\x69\x6c\x74\x65\x72','\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x65\x73\x74\x61\x62\x6c\x69\x73\x68\x20\x73\x65\x73\x73\x69\x6f\x6e\x20\x77\x69\x74\x68\x20\x64\x65\x76\x69\x63\x65\x20\x61\x74\x20','\x70\x65\x6d','\x5b\x4b\x4c\x41\x50\x5d\x20\x46\x69\x72\x73\x74\x20\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x20\x64\x65\x63\x6f\x64\x65\x64\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x3a\x0a\x52\x65\x6d\x6f\x74\x65\x20\x53\x65\x65\x64\x3a','\x72\x67\x62','\x69\x73\x41\x72\x72\x61\x79','\x73\x68\x61\x32\x35\x36','\x64\x65\x76\x69\x63\x65\x4c\x69\x73\x74','\x61\x6c\x6c','\x73\x65\x71','\x44\x65\x76\x69\x63\x65\x20\x49\x50\x20\x61\x64\x64\x72\x65\x73\x73\x28\x65\x73\x29\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x66\x6f\x72\x20\x61\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x69\x6f\x6e','\x64\x69\x67\x65\x73\x74','\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72\x69\x76','\x74\x72\x61\x63\x65','\x65\x6d\x61\x69\x6c\x20\x6f\x72\x20\x70\x61\x73\x73\x77\x6f\x72\x64\x20\x69\x6e\x63\x6f\x72\x72\x65\x63\x74','\x73\x69\x7a\x65','\x50\x33\x31\x36','\x6e\x6f\x77','\x73\x65\x6e\x64','\x41\x67\x65\x6e\x74','\x76\x65\x72\x5f\x63\x6f\x64\x65','\x4b\x6c\x61\x70\x20\x70\x72\x6f\x74\x6f\x63\x6f\x6c\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64','\x6d\x61\x70','\x54\x50\x4c\x49\x4e\x4b','\x68\x73\x76','\x72\x65\x73\x70\x6f\x6e\x73\x65','\x67\x65\x74\x54\x69\x6d\x65','\x72\x61\x6e\x64\x6f\x6d\x55\x55\x49\x44','\x49\x6e\x76\x61\x6c\x69\x64\x20\x72\x65\x71\x75\x65\x73\x74\x20\x6f\x72\x20\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73','\x2f\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x31','\x2e\x20\x50\x6c\x65\x61\x73\x65\x20\x61\x75\x74\x68\x65\x6e\x74\x69\x63\x61\x74\x65\x20\x66\x69\x72\x73\x74\x2e','\x68\x61\x6e\x64\x73\x68\x61\x6b\x65\x32\x20\x66\x61\x69\x6c\x65\x64\x3a\x20','\x4e\x6f\x20\x73\x65\x73\x73\x69\x6f\x6e\x20\x66\x6f\x75\x6e\x64\x20\x66\x6f\x72\x20\x64\x65\x76\x69\x63\x65\x20','\x64\x65\x76\x69\x63\x65\x5f\x6d\x6f\x64\x65\x6c','\x69\x76\x44\x65\x72\x69\x76\x65','\x5b\x74\x61\x70\x6f\x5d\x20\x64\x69\x73\x63\x6f\x76\x65\x72\x79\x20\x66\x69\x6e\x69\x73\x68\x65\x64','\x2e\x20\x50\x6c\x65\x61\x73\x65\x20\x63\x61\x6c\x6c\x20\x61\x75\x74\x68\x20\x6f\x72\x20\x73\x65\x74\x75\x70\x20\x66\x69\x72\x73\x74\x2e'];a1c=function(){return dI;};return a1c();}var a1ag=0x4e22,a1ah='\x32\x35\x35\x2e\x32\x35\x35\x2e\x32\x35\x35\x2e\x32\x35\x35',a1ai=0xfa0,a1aj=0x320,a1ak=Buffer[a1aA(0x20f)]('\x30\x32\x30\x30\x30\x30\x30\x31\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x34\x36\x33\x63\x62\x35\x64\x33',a1aA(0x232)),a1al=a=>{const a1dv={a:0x1ee},bS=a1aA;if(!a||a[bS(0x217)]<0x10)return null;let b=a['\x73\x6c\x69\x63\x65'](0x10)['\x74\x6f\x53\x74\x72\x69\x6e\x67']('\x75\x74\x66\x38'),c=b[bS(a1dv.a)]('\x7b');if(c<0x0)return null;try{return JSON['\x70\x61\x72\x73\x65'](b['\x73\x6c\x69\x63\x65'](c));}catch{return null;}},a1am=a=>{const bT=a1aA;if(!(typeof a!=bT(0x269)||!a[bT(0x217)]))try{return typeof atob==bT(0x236)?atob(a):Buffer[bT(0x20f)](a,'\x62\x61\x73\x65\x36\x34')['\x74\x6f\x53\x74\x72\x69\x6e\x67'](bT(0x209));}catch{return;}},a1an=a=>{const a1dx={a:0x20b,b:0x217,c:0x26a,d:0x24d},bU=a1aA;if(!a)return;let b=a['\x72\x65\x70\x6c\x61\x63\x65'](/[^a-fA-F0-9]/g,'')[bU(a1dx.a)]();return b[bU(a1dx.b)]!==0xc?a:b[bU(a1dx.c)](/.{1,2}/g)?.[bU(a1dx.d)]('\x3a');},a1ao=(a,b)=>{const a1dy={a:0x2bb,b:0x260,c:0x203,d:0x26e,e:0x1ef,f:0x1fd},bV=a1aA;let c=b?.[bV(a1dy.a)]??b;if(!c||typeof c!=bV(a1dy.b))return null;let d=c['\x69\x70']||a[bV(0x293)];return d?{'\x69\x70':d,'\x6d\x61\x63':a1an(c['\x6d\x61\x63']),'\x64\x65\x76\x69\x63\x65\x49\x64':c['\x64\x65\x76\x69\x63\x65\x5f\x69\x64'],'\x64\x65\x76\x69\x63\x65\x54\x79\x70\x65':c[bV(0x233)],'\x64\x65\x76\x69\x63\x65\x4d\x6f\x64\x65\x6c':c[bV(0x1d5)]||c['\x6d\x6f\x64\x65\x6c'],'\x68\x77\x56\x65\x72\x73\x69\x6f\x6e':c[bV(0x2cc)],'\x66\x77\x56\x65\x72\x73\x69\x6f\x6e':c[bV(0x221)],'\x61\x6c\x69\x61\x73':a1am(c[bV(a1dy.c)])||c['\x61\x6c\x69\x61\x73'],'\x6f\x77\x6e\x65\x72':c[bV(a1dy.d)],'\x65\x6e\x63\x72\x79\x70\x74\x54\x79\x70\x65':c[bV(a1dy.e)]?.['\x65\x6e\x63\x72\x79\x70\x74\x5f\x74\x79\x70\x65'],'\x68\x74\x74\x70\x50\x6f\x72\x74':c[bV(0x1ef)]?.['\x68\x74\x74\x70\x5f\x70\x6f\x72\x74'],'\x73\x75\x70\x70\x6f\x72\x74\x73\x48\x74\x74\x70\x73':c[bV(0x1ef)]?.[bV(a1dy.f)],'\x72\x61\x77':b}:null;},a1ap=a=>{const a1dG={a:0x289,b:0x1aa},a1dF={a:0x20f},bW=a1aA;let b=a?.[bW(0x1a9)]??a1ai;return new Promise((d,g)=>{const a1dA={a:0x22e,b:0x29a,c:0x293,d:0x217,e:0x1a3,f:0x253},bY=bW;let h=new Map(),k,l,p,q=!0x1,v=()=>{const bX=a1d;if(!q){q=!0x0,l&&clearInterval(l),p&&clearTimeout(p);try{k?.[bX(0x1a2)]();}catch{}d(Array['\x66\x72\x6f\x6d'](h[bX(0x24b)]()));}};try{k=a1af[bY(a1dG.a)]('\x75\x64\x70\x34'),k['\x6f\x6e'](bY(a1dG.b),(w,G)=>{const bZ=bY;console[bZ(a1dA.a)](bZ(a1dA.b),{'\x66\x72\x6f\x6d':G[bZ(a1dA.c)],'\x62\x79\x74\x65\x73':w[bZ(a1dA.d)]});let I=a1al(w);if(!I){console[bZ(0x22e)](bZ(a1dA.e),{'\x66\x72\x6f\x6d':G['\x61\x64\x64\x72\x65\x73\x73']});return;}let L=a1ao(G,I);L&&(h[bZ(a1dA.f)](L['\x69\x70'])||h['\x73\x65\x74'](L['\x69\x70'],L));}),k['\x6f\x6e'](bY(0x2a4),w=>{const c0=bY;if(!q){q=!0x0,l&&clearInterval(l),p&&clearTimeout(p);try{k?.[c0(0x1a2)]();}catch{}g(w);}}),k[bY(0x29b)](void 0x0,void 0x0,()=>{const a1dC={a:0x1c6},c1=bY;try{k[c1(0x23a)](!0x0);}catch{}let w=Array[c1(a1dF.a)](new Set([a1ah,...getBroadcastNetworkInterfaces()]));console[c1(0x22e)]('\x5b\x74\x61\x70\x6f\x5d\x20\x73\x74\x61\x72\x74\x69\x6e\x67\x20\x55\x44\x50\x20\x64\x69\x73\x63\x6f\x76\x65\x72\x79',{'\x70\x6f\x72\x74':a1ag,'\x62\x72\x6f\x61\x64\x63\x61\x73\x74\x54\x61\x72\x67\x65\x74\x73':w,'\x74\x69\x6d\x65\x6f\x75\x74\x4d\x73':b});let G=()=>{w['\x66\x6f\x72\x45\x61\x63\x68'](I=>{const c2=a1d;try{k[c2(a1dC.a)](a1ak,0x0,a1ak[c2(0x217)],a1ag,I);}catch(L){console['\x6c\x6f\x67'](c2(0x20d),{'\x61\x64\x64\x72\x65\x73\x73':I,'\x65\x72\x72\x6f\x72':L?.['\x6d\x65\x73\x73\x61\x67\x65']});}});};G(),l=setInterval(G,a1aj),p=setTimeout(()=>{const c3=c1;console[c3(0x22e)](c3(0x1d7),{'\x66\x6f\x75\x6e\x64\x43\x6f\x75\x6e\x74':h[c3(0x1c3)]}),v();},b);});}catch(w){q=!0x0,g(w);}});},a1aq={};a1o(a1aq,{'\x44\x65\x76\x69\x63\x65\x52\x65\x73\x54\x79\x70\x65\x73':()=>a1at,'\x44\x65\x76\x69\x63\x65\x53\x65\x6e\x64\x56\x61\x6c\x75\x65\x73':()=>a1au,'\x45\x54\x61\x70\x6f\x44\x65\x76\x69\x63\x65\x54\x79\x70\x65\x73':()=>a1as,'\x54\x61\x70\x6f\x44\x65\x76\x69\x63\x65\x54\x79\x70\x65\x73':()=>a1ar});var a1ar={'\x41\x4c\x4c':a1aA(0x1bc),'\x42\x55\x4c\x42\x53':a1aA(0x194),'\x4c\x49\x47\x48\x54\x53\x54\x52\x49\x50\x53':a1aA(0x26c),'\x50\x4c\x55\x47\x53':a1aA(0x214)},a1as=(a=>(a['\x41\x4c\x4c']=a1aA(0x1bc),a['\x42\x55\x4c\x42\x53']=a1aA(0x194),a[a1aA(0x296)]=a1aA(0x26c),a['\x50\x4c\x55\x47\x53']=a1aA(0x214),a))(a1as||{}),a1at={'\x42\x55\x4c\x42':a1aA(0x21a),'\x50\x4c\x55\x47':a1aA(0x21a)},a1au={'\x42\x55\x4c\x42':a1aA(0x227),'\x4c\x49\x47\x48\x54\x53\x54\x52\x49\x50':'\x73\x6d\x61\x72\x74\x6c\x69\x66\x65\x2e\x69\x6f\x74\x2e\x6c\x69\x67\x68\x74\x53\x74\x72\x69\x70','\x50\x4c\x55\x47':'\x73\x79\x73\x74\x65\x6d'};export{a1s as LightState,a1a1 as TapoApi,a1a4 as TapoCloudApi,a1aq as TapoConstants,a1ae as discover,a1ac as discoverLocalDevices,a1ap as discoverLocalUdp};
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lumiastream/tapo-cove",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.29.1",
|
|
4
4
|
"private": false,
|
|
5
|
-
"license": "
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"copyright": "Copyright © 2026 Lumia Stream",
|
|
6
7
|
"main": "dist/index.js",
|
|
7
8
|
"module": "dist/index.mjs",
|
|
8
9
|
"types": "dist/index.d.ts",
|
|
@@ -15,7 +16,8 @@
|
|
|
15
16
|
},
|
|
16
17
|
"files": [
|
|
17
18
|
"dist",
|
|
18
|
-
"README.md"
|
|
19
|
+
"README.md",
|
|
20
|
+
"LICENSE"
|
|
19
21
|
],
|
|
20
22
|
"sideEffects": false,
|
|
21
23
|
"scripts": {
|
|
@@ -26,8 +28,9 @@
|
|
|
26
28
|
"lint": "tsc"
|
|
27
29
|
},
|
|
28
30
|
"dependencies": {
|
|
29
|
-
"@lumiastream/lumia-rgb-types": "^3.
|
|
30
|
-
"@lumiastream/lumia-rgb-utils": "^3.
|
|
31
|
+
"@lumiastream/lumia-rgb-types": "^3.29.1",
|
|
32
|
+
"@lumiastream/lumia-rgb-utils": "^3.29.1",
|
|
33
|
+
"@lumiastream/network-cove": "^3.29.1",
|
|
31
34
|
"@network-utils/arp-lookup": "^2.1.0",
|
|
32
35
|
"axios": "1.14.0",
|
|
33
36
|
"crypto": "1.0.1",
|
|
@@ -39,5 +42,5 @@
|
|
|
39
42
|
"tsup": "7.2.0",
|
|
40
43
|
"typescript": "5.1.6"
|
|
41
44
|
},
|
|
42
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "3a64a117043aac070cc609ea269363dfbe79d6ac"
|
|
43
46
|
}
|