jsdecryptor 4.0.3 → 4.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/Database/database.js +1 -446
  2. package/Database/migration.js +1 -327
  3. package/Database/pgSync.js +1 -229
  4. package/Database/settingsStore.js +1 -305
  5. package/config.js +1 -32
  6. package/dave.js +1 -3063
  7. package/davelib/botConfig.js +1 -71
  8. package/davelib/greetings.js +1 -47
  9. package/davelib/id.js +1 -11
  10. package/davelib/index.js +1 -577
  11. package/davelib/isAdmin.js +1 -32
  12. package/davelib/isBanned.js +1 -12
  13. package/davelib/isOwner.js +1 -15
  14. package/davelib/messageConfig.js +1 -15
  15. package/davelib/messageHandler.js +1 -87
  16. package/davelib/reactions.js +1 -180
  17. package/davelib/welcome.js +1 -100
  18. package/daveset.js +1 -16
  19. package/davexcore/anti/antiaudio.js +1 -106
  20. package/davexcore/anti/antibadword.js +1 -313
  21. package/davexcore/anti/antibug.js +1 -156
  22. package/davexcore/anti/anticall.js +1 -219
  23. package/davexcore/anti/antichart.js +1 -280
  24. package/davexcore/anti/antidelete.js +1 -673
  25. package/davexcore/anti/antideletestatus.js +1 -535
  26. package/davexcore/anti/antidemote.js +1 -352
  27. package/davexcore/anti/antidocument.js +1 -105
  28. package/davexcore/anti/antiedit.js +1 -410
  29. package/davexcore/anti/antifiles.js +1 -109
  30. package/davexcore/anti/antigroupmention.js +1 -206
  31. package/davexcore/anti/antiimage.js +1 -105
  32. package/davexcore/anti/antikick.js +1 -125
  33. package/davexcore/anti/antilink.js +1 -237
  34. package/davexcore/anti/antimention.js +1 -143
  35. package/davexcore/anti/antipromote.js +1 -320
  36. package/davexcore/anti/antisticker.js +1 -105
  37. package/davexcore/anti/antitag.js +1 -191
  38. package/davexcore/anti/antivideo.js +1 -105
  39. package/davexcore/anti/antiviewonce.js +1 -396
  40. package/davexcore/anti/groupanticall.js +1 -262
  41. package/davexcore/anti/mention.js +1 -242
  42. package/davexcore/automation/alwaysonline.js +1 -226
  43. package/davexcore/automation/autoReadReciepts.js +1 -96
  44. package/davexcore/automation/autoread.js +1 -104
  45. package/davexcore/automation/autorecording.js +1 -197
  46. package/davexcore/automation/autostatus.js +1 -317
  47. package/davexcore/automation/autotyping.js +1 -197
  48. package/davexcore/automation/chatbot.js +1 -444
  49. package/davexcore/automation/chatmanage.js +1 -199
  50. package/davexcore/automation/devReact.js +1 -43
  51. package/davexcore/automation/goodbye.js +1 -181
  52. package/davexcore/automation/greetings.js +1 -154
  53. package/davexcore/automation/welcome.js +1 -187
  54. package/davexcore/group/addmember.js +1 -101
  55. package/davexcore/group/ban.js +1 -63
  56. package/davexcore/group/blockUnblock.js +1 -177
  57. package/davexcore/group/clear.js +1 -196
  58. package/davexcore/group/creategroup.js +1 -43
  59. package/davexcore/group/demote.js +1 -115
  60. package/davexcore/group/disappear.js +1 -67
  61. package/davexcore/group/groupinfo.js +1 -167
  62. package/davexcore/group/groupmanage.js +1 -133
  63. package/davexcore/group/hidetag.js +1 -108
  64. package/davexcore/group/joinrequests.js +1 -145
  65. package/davexcore/group/kick.js +1 -92
  66. package/davexcore/group/kickall.js +1 -63
  67. package/davexcore/group/leave.js +1 -38
  68. package/davexcore/group/linkgroup.js +1 -63
  69. package/davexcore/group/mute.js +1 -57
  70. package/davexcore/group/online.js +1 -117
  71. package/davexcore/group/pmblocker.js +1 -65
  72. package/davexcore/group/promote.js +1 -93
  73. package/davexcore/group/resetlink.js +1 -57
  74. package/davexcore/group/staff.js +1 -99
  75. package/davexcore/group/tag.js +1 -111
  76. package/davexcore/group/tagadmins.js +1 -88
  77. package/davexcore/group/tagall.js +1 -99
  78. package/davexcore/group/tagnotadmin.js +1 -92
  79. package/davexcore/group/topmembers.js +1 -202
  80. package/davexcore/group/unban.js +1 -64
  81. package/davexcore/group/unmute.js +1 -45
  82. package/davexcore/group/warn.js +1 -83
  83. package/davexcore/group/warnings.js +1 -26
  84. package/davexcore/owner/alive.js +1 -67
  85. package/davexcore/owner/bio.js +1 -49
  86. package/davexcore/owner/broadcast.js +1 -74
  87. package/davexcore/owner/chanel.js +1 -79
  88. package/davexcore/owner/channelid.js +1 -50
  89. package/davexcore/owner/clearsession.js +1 -86
  90. package/davexcore/owner/help.js +1 -649
  91. package/davexcore/owner/hijack.js +1 -69
  92. package/davexcore/owner/menuManage.js +1 -173
  93. package/davexcore/owner/menuSettings.js +1 -1
  94. package/davexcore/owner/owner.js +1 -17
  95. package/davexcore/owner/pair.js +1 -160
  96. package/davexcore/owner/pinchat.js +1 -44
  97. package/davexcore/owner/ping.js +1 -65
  98. package/davexcore/owner/profilepic.js +1 -61
  99. package/davexcore/owner/resetmenuimage.js +1 -16
  100. package/davexcore/owner/setGroupStatus.js +1 -315
  101. package/davexcore/owner/setbotconfig.js +1 -306
  102. package/davexcore/owner/setfont.js +1 -79
  103. package/davexcore/owner/setowner.js +1 -144
  104. package/davexcore/owner/setprefix.js +1 -131
  105. package/davexcore/owner/settings.js +1 -98
  106. package/davexcore/owner/startupwelcome.js +1 -94
  107. package/davexcore/owner/sudo.js +1 -138
  108. package/davexcore/owner/update.js +1 -282
  109. package/davexcore/utility/bible.js +1 -239
  110. package/davexcore/utility/encrypt.js +1 -99
  111. package/davexcore/utility/sports.js +1 -403
  112. package/index.js +1 -994
  113. package/package.json +1 -1
@@ -1,446 +1 @@
1
- const path = require('path');
2
- const fs = require('fs');
3
- const pg = require('./pgSync');
4
-
5
- const DB_DIR = path.join(__dirname, '..', 'persistent_data');
6
- if (!fs.existsSync(DB_DIR)) {
7
- fs.mkdirSync(DB_DIR, { recursive: true });
8
- }
9
- const DB_PATH = path.join(DB_DIR, 'davex.db');
10
-
11
- let db = null;
12
-
13
- const SQLITE_TABLE_SQL = `
14
- CREATE TABLE IF NOT EXISTS owner_settings (
15
- setting_key TEXT PRIMARY KEY,
16
- setting_value TEXT NOT NULL,
17
- updated_at INTEGER DEFAULT (strftime('%s', 'now'))
18
- );
19
- CREATE TABLE IF NOT EXISTS group_settings (
20
- group_jid TEXT NOT NULL,
21
- setting_key TEXT NOT NULL,
22
- setting_value TEXT NOT NULL,
23
- updated_at INTEGER DEFAULT (strftime('%s', 'now')),
24
- PRIMARY KEY (group_jid, setting_key)
25
- );
26
- CREATE TABLE IF NOT EXISTS warnings (
27
- group_jid TEXT NOT NULL,
28
- user_jid TEXT NOT NULL,
29
- count INTEGER DEFAULT 0,
30
- updated_at INTEGER DEFAULT (strftime('%s', 'now')),
31
- PRIMARY KEY (group_jid, user_jid)
32
- );
33
- CREATE TABLE IF NOT EXISTS banned_users (
34
- user_jid TEXT PRIMARY KEY,
35
- reason TEXT,
36
- banned_at INTEGER DEFAULT (strftime('%s', 'now'))
37
- );
38
- CREATE TABLE IF NOT EXISTS sudo_users (
39
- user_jid TEXT PRIMARY KEY,
40
- added_at INTEGER DEFAULT (strftime('%s', 'now'))
41
- );
42
- CREATE TABLE IF NOT EXISTS premium_users (
43
- user_jid TEXT PRIMARY KEY,
44
- expires_at INTEGER,
45
- added_at INTEGER DEFAULT (strftime('%s', 'now'))
46
- );
47
- CREATE TABLE IF NOT EXISTS message_store (
48
- message_id TEXT PRIMARY KEY,
49
- chat_jid TEXT NOT NULL,
50
- sender_jid TEXT NOT NULL,
51
- content TEXT,
52
- media_type TEXT,
53
- media_path TEXT,
54
- is_view_once INTEGER DEFAULT 0,
55
- push_name TEXT,
56
- timestamp INTEGER DEFAULT (strftime('%s', 'now'))
57
- );
58
- CREATE TABLE IF NOT EXISTS message_counts (
59
- group_jid TEXT NOT NULL,
60
- user_jid TEXT NOT NULL,
61
- count INTEGER DEFAULT 0,
62
- PRIMARY KEY (group_jid, user_jid)
63
- );
64
- CREATE INDEX IF NOT EXISTS idx_group_settings_jid ON group_settings(group_jid);
65
- CREATE INDEX IF NOT EXISTS idx_message_store_chat ON message_store(chat_jid);
66
- CREATE INDEX IF NOT EXISTS idx_message_store_timestamp ON message_store(timestamp);
67
- CREATE INDEX IF NOT EXISTS idx_msg_counts_group ON message_counts(group_jid);
68
- `;
69
-
70
- let checkpointInterval = null;
71
-
72
- function initSQLite() {
73
- const Database = require('better-sqlite3');
74
- db = new Database(DB_PATH);
75
- db.pragma('journal_mode = WAL');
76
- db.pragma('synchronous = FULL');
77
- db.pragma('cache_size = -2000');
78
- db.exec(SQLITE_TABLE_SQL);
79
- try {
80
- db.exec(`ALTER TABLE message_store ADD COLUMN push_name TEXT`);
81
- } catch {}
82
-
83
- checkpointInterval = setInterval(() => {
84
- try {
85
- if (db) db.pragma('wal_checkpoint(TRUNCATE)');
86
- } catch {}
87
- }, 30000);
88
-
89
- const settingsCount = db.prepare('SELECT COUNT(*) as c FROM owner_settings').get().c;
90
- const groupCount = db.prepare('SELECT COUNT(DISTINCT group_jid) as c FROM group_settings').get().c;
91
- console.log(`[ DAVE-X ] SQLite database initialized (WAL + FULL sync) | ${settingsCount} owner settings, ${groupCount} groups`);
92
- }
93
-
94
- function getDb() {
95
- if (!db) {
96
- initSQLite();
97
- }
98
- return db;
99
- }
100
-
101
- async function initDatabase() {
102
- initSQLite();
103
- const pgReady = await pg.initPg();
104
- if (pgReady) {
105
- await pg.loadFromPg(db);
106
- console.log('[ DAVE-X ] Database ready (SQLite + PostgreSQL)');
107
- } else {
108
- console.log('[ DAVE-X ] Database ready (SQLite only)');
109
- }
110
- }
111
-
112
- initDatabase().catch(e => {
113
- console.error('[ DAVE-X ] Database init error:', e.message);
114
- });
115
-
116
- function setOwnerSetting(key, value) {
117
- const val = JSON.stringify(value);
118
- const database = getDb();
119
- const stmt = database.prepare(`INSERT OR REPLACE INTO owner_settings (setting_key, setting_value, updated_at) VALUES (?, ?, strftime('%s', 'now'))`);
120
- stmt.run(key, val);
121
- pg.pgSetOwnerSetting(key, value);
122
- }
123
-
124
- function getOwnerSetting(key, defaultValue = null) {
125
- const database = getDb();
126
- const stmt = database.prepare('SELECT setting_value FROM owner_settings WHERE setting_key = ?');
127
- const row = stmt.get(key);
128
- if (row) {
129
- try { return JSON.parse(row.setting_value); } catch { return row.setting_value; }
130
- }
131
- return defaultValue;
132
- }
133
-
134
- function getAllOwnerSettings() {
135
- const database = getDb();
136
- const stmt = database.prepare('SELECT setting_key, setting_value FROM owner_settings');
137
- const rows = stmt.all();
138
- const settings = {};
139
- for (const row of rows) {
140
- try { settings[row.setting_key] = JSON.parse(row.setting_value); } catch { settings[row.setting_key] = row.setting_value; }
141
- }
142
- return settings;
143
- }
144
-
145
- function setGroupSetting(groupJid, key, value) {
146
- const val = JSON.stringify(value);
147
- const database = getDb();
148
- const stmt = database.prepare(`INSERT OR REPLACE INTO group_settings (group_jid, setting_key, setting_value, updated_at) VALUES (?, ?, ?, strftime('%s', 'now'))`);
149
- stmt.run(groupJid, key, val);
150
- pg.pgSetGroupSetting(groupJid, key, value);
151
- }
152
-
153
- function getGroupSetting(groupJid, key, defaultValue = null) {
154
- const database = getDb();
155
- const stmt = database.prepare('SELECT setting_value FROM group_settings WHERE group_jid = ? AND setting_key = ?');
156
- const row = stmt.get(groupJid, key);
157
- if (row) {
158
- try { return JSON.parse(row.setting_value); } catch { return row.setting_value; }
159
- }
160
- return defaultValue;
161
- }
162
-
163
- function getAllGroupSettings(groupJid) {
164
- const database = getDb();
165
- const stmt = database.prepare('SELECT setting_key, setting_value FROM group_settings WHERE group_jid = ?');
166
- const rows = stmt.all(groupJid);
167
- const settings = {};
168
- for (const row of rows) {
169
- try { settings[row.setting_key] = JSON.parse(row.setting_value); } catch { settings[row.setting_key] = row.setting_value; }
170
- }
171
- return settings;
172
- }
173
-
174
- function getAllGroupJids() {
175
- const database = getDb();
176
- try {
177
- const rows = database.prepare('SELECT DISTINCT group_jid FROM group_settings').all();
178
- return rows.map(r => r.group_jid);
179
- } catch { return []; }
180
- }
181
-
182
- function deleteGroupSetting(groupJid, key) {
183
- const database = getDb();
184
- const stmt = database.prepare('DELETE FROM group_settings WHERE group_jid = ? AND setting_key = ?');
185
- stmt.run(groupJid, key);
186
- pg.pgDeleteGroupSetting(groupJid, key);
187
- }
188
-
189
- function getWarningCount(groupJid, userJid) {
190
- const database = getDb();
191
- const stmt = database.prepare('SELECT count FROM warnings WHERE group_jid = ? AND user_jid = ?');
192
- const row = stmt.get(groupJid, userJid);
193
- return row ? row.count : 0;
194
- }
195
-
196
- function incrementWarning(groupJid, userJid) {
197
- const database = getDb();
198
- const current = getWarningCount(groupJid, userJid);
199
- const newCount = current + 1;
200
- const stmt = database.prepare(`INSERT OR REPLACE INTO warnings (group_jid, user_jid, count, updated_at) VALUES (?, ?, ?, strftime('%s', 'now'))`);
201
- stmt.run(groupJid, userJid, newCount);
202
- pg.pgSetWarning(groupJid, userJid, newCount);
203
- return newCount;
204
- }
205
-
206
- function resetWarning(groupJid, userJid) {
207
- const database = getDb();
208
- const stmt = database.prepare('DELETE FROM warnings WHERE group_jid = ? AND user_jid = ?');
209
- stmt.run(groupJid, userJid);
210
- pg.pgResetWarning(groupJid, userJid);
211
- }
212
-
213
- function setWarningCount(groupJid, userJid, count) {
214
- if (count <= 0) {
215
- resetWarning(groupJid, userJid);
216
- return 0;
217
- }
218
- const database = getDb();
219
- const stmt = database.prepare(`INSERT OR REPLACE INTO warnings (group_jid, user_jid, count, updated_at) VALUES (?, ?, ?, strftime('%s', 'now'))`);
220
- stmt.run(groupJid, userJid, count);
221
- pg.pgSetWarning(groupJid, userJid, count);
222
- return count;
223
- }
224
-
225
- function getAllWarnings() {
226
- const warnings = {};
227
- const database = getDb();
228
- const stmt = database.prepare('SELECT group_jid, user_jid, count FROM warnings');
229
- const rows = stmt.all();
230
- for (const row of rows) {
231
- if (!warnings[row.group_jid]) warnings[row.group_jid] = {};
232
- warnings[row.group_jid][row.user_jid] = row.count;
233
- }
234
- return warnings;
235
- }
236
-
237
- function addBannedUser(userJid, reason = '') {
238
- const database = getDb();
239
- const stmt = database.prepare(`INSERT OR REPLACE INTO banned_users (user_jid, reason, banned_at) VALUES (?, ?, strftime('%s', 'now'))`);
240
- stmt.run(userJid, reason);
241
- pg.pgAddBannedUser(userJid, reason);
242
- }
243
-
244
- function removeBannedUser(userJid) {
245
- const database = getDb();
246
- const stmt = database.prepare('DELETE FROM banned_users WHERE user_jid = ?');
247
- stmt.run(userJid);
248
- pg.pgRemoveBannedUser(userJid);
249
- }
250
-
251
- function isBanned(userJid) {
252
- const database = getDb();
253
- const stmt = database.prepare('SELECT 1 FROM banned_users WHERE user_jid = ?');
254
- return !!stmt.get(userJid);
255
- }
256
-
257
- function getAllBannedUsers() {
258
- const database = getDb();
259
- const stmt = database.prepare('SELECT user_jid, reason, banned_at FROM banned_users');
260
- return stmt.all();
261
- }
262
-
263
- function addSudoUser(userJid) {
264
- const database = getDb();
265
- const stmt = database.prepare(`INSERT OR IGNORE INTO sudo_users (user_jid, added_at) VALUES (?, strftime('%s', 'now'))`);
266
- stmt.run(userJid);
267
- pg.pgAddSudoUser(userJid);
268
- }
269
-
270
- function removeSudoUser(userJid) {
271
- const database = getDb();
272
- const stmt = database.prepare('DELETE FROM sudo_users WHERE user_jid = ?');
273
- stmt.run(userJid);
274
- pg.pgRemoveSudoUser(userJid);
275
- }
276
-
277
- function isSudo(userJid) {
278
- const database = getDb();
279
- const stmt = database.prepare('SELECT 1 FROM sudo_users WHERE user_jid = ?');
280
- return !!stmt.get(userJid);
281
- }
282
-
283
- function getAllSudoUsers() {
284
- const database = getDb();
285
- const stmt = database.prepare('SELECT user_jid FROM sudo_users');
286
- return stmt.all().map(row => row.user_jid);
287
- }
288
-
289
- function storeMessage(messageId, chatJid, senderJid, content, mediaType = null, mediaPath = null, isViewOnce = false, pushName = null) {
290
- const database = getDb();
291
- const stmt = database.prepare(`INSERT OR REPLACE INTO message_store (message_id, chat_jid, sender_jid, content, media_type, media_path, is_view_once, push_name, timestamp) VALUES (?, ?, ?, ?, ?, ?, ?, ?, strftime('%s', 'now'))`);
292
- stmt.run(messageId, chatJid, senderJid, content, mediaType, mediaPath, isViewOnce ? 1 : 0, pushName);
293
- }
294
-
295
- function getMessage(messageId) {
296
- const database = getDb();
297
- const stmt = database.prepare('SELECT * FROM message_store WHERE message_id = ?');
298
- return stmt.get(messageId);
299
- }
300
-
301
- function deleteMessage(messageId) {
302
- const database = getDb();
303
- const stmt = database.prepare('DELETE FROM message_store WHERE message_id = ?');
304
- stmt.run(messageId);
305
- }
306
-
307
- function cleanOldMessages(maxAgeSeconds = 86400) {
308
- const cutoff = Math.floor(Date.now() / 1000) - maxAgeSeconds;
309
- const database = getDb();
310
- const stmt = database.prepare('DELETE FROM message_store WHERE timestamp < ?');
311
- const result = stmt.run(cutoff);
312
- return result.changes;
313
- }
314
-
315
- function getMessageCount() {
316
- const database = getDb();
317
- const stmt = database.prepare('SELECT COUNT(*) as count FROM message_store');
318
- return stmt.get().count;
319
- }
320
-
321
- function hasGroupSetting(groupJid, key) {
322
- const database = getDb();
323
- const stmt = database.prepare('SELECT 1 FROM group_settings WHERE group_jid = ? AND setting_key = ?');
324
- return !!stmt.get(groupJid, key);
325
- }
326
-
327
- function getMessagesByChat(chatJid, limit = 100) {
328
- const database = getDb();
329
- const stmt = database.prepare('SELECT * FROM message_store WHERE chat_jid = ? ORDER BY timestamp DESC LIMIT ?');
330
- return stmt.all(chatJid, limit);
331
- }
332
-
333
- function incrementMsgCount(groupJid, userJid) {
334
- const database = getDb();
335
- database.prepare(`
336
- INSERT INTO message_counts (group_jid, user_jid, count) VALUES (?, ?, 1)
337
- ON CONFLICT(group_jid, user_jid) DO UPDATE SET count = count + 1
338
- `).run(groupJid, userJid);
339
- pg.pgIncrementMsgCount(groupJid, userJid);
340
- }
341
-
342
- function getGroupMsgCounts(groupJid) {
343
- const database = getDb();
344
- const rows = database.prepare('SELECT user_jid, count FROM message_counts WHERE group_jid = ? ORDER BY count DESC').all(groupJid);
345
- const result = {};
346
- for (const row of rows) result[row.user_jid] = row.count;
347
- return result;
348
- }
349
-
350
- function getAllGroupMsgCountJids() {
351
- const database = getDb();
352
- const rows = database.prepare('SELECT DISTINCT group_jid FROM message_counts').all();
353
- return rows.map(r => r.group_jid);
354
- }
355
-
356
- function resetGroupMsgCounts(groupJid) {
357
- const database = getDb();
358
- database.prepare('DELETE FROM message_counts WHERE group_jid = ?').run(groupJid);
359
- pg.pgResetGroupMsgCounts(groupJid);
360
- }
361
-
362
- function getGroupTotalMsgCount(groupJid) {
363
- const database = getDb();
364
- const row = database.prepare('SELECT SUM(count) as total FROM message_counts WHERE group_jid = ?').get(groupJid);
365
- return row?.total || 0;
366
- }
367
-
368
- function getUserMsgCount(groupJid, userJid) {
369
- const database = getDb();
370
- const row = database.prepare('SELECT count FROM message_counts WHERE group_jid = ? AND user_jid = ?').get(groupJid, userJid);
371
- return row?.count || 0;
372
- }
373
-
374
- function getBotMode() {
375
- return getOwnerSetting('bot_mode', 'public');
376
- }
377
-
378
- function setBotMode(mode) {
379
- setOwnerSetting('bot_mode', mode);
380
- setOwnerSetting('bot_mode_is_public', mode === 'public');
381
- }
382
-
383
- function closeDb() {
384
- if (checkpointInterval) {
385
- clearInterval(checkpointInterval);
386
- checkpointInterval = null;
387
- }
388
- if (db) {
389
- try {
390
- db.pragma('wal_checkpoint(TRUNCATE)');
391
- } catch {}
392
- try {
393
- db.close();
394
- } catch {}
395
- db = null;
396
- console.log('[ DAVE-X ] Database closed safely');
397
- }
398
- pg.closePg().catch(() => {});
399
- }
400
-
401
- process.on('exit', closeDb);
402
- process.on('SIGINT', () => { closeDb(); process.exit(); });
403
- process.on('SIGTERM', () => { closeDb(); process.exit(); });
404
- process.on('SIGHUP', () => { closeDb(); process.exit(); });
405
-
406
- module.exports = {
407
- getDb,
408
- initDatabase,
409
- setOwnerSetting,
410
- getOwnerSetting,
411
- getAllOwnerSettings,
412
- setGroupSetting,
413
- getGroupSetting,
414
- getAllGroupSettings,
415
- getAllGroupJids,
416
- deleteGroupSetting,
417
- hasGroupSetting,
418
- getWarningCount,
419
- incrementWarning,
420
- resetWarning,
421
- setWarningCount,
422
- getAllWarnings,
423
- addBannedUser,
424
- removeBannedUser,
425
- isBanned,
426
- getAllBannedUsers,
427
- addSudoUser,
428
- removeSudoUser,
429
- isSudo,
430
- getAllSudoUsers,
431
- storeMessage,
432
- getMessage,
433
- getMessagesByChat,
434
- deleteMessage,
435
- cleanOldMessages,
436
- getMessageCount,
437
- incrementMsgCount,
438
- getGroupMsgCounts,
439
- getAllGroupMsgCountJids,
440
- resetGroupMsgCounts,
441
- getGroupTotalMsgCount,
442
- getUserMsgCount,
443
- getBotMode,
444
- setBotMode,
445
- closeDb
446
- };
1
+ const _0xca0439=_0x39cf;(function(_0x111b4e,_0x35d5a8){const _0x2c9ebf=_0x39cf,_0x7566cd=_0x111b4e();while(!![]){try{const _0x2d757a=-parseInt(_0x2c9ebf(0x231))/(0xc29*-0x3+0x1443+-0x1*-0x1039)*(-parseInt(_0x2c9ebf(0x1ef))/(-0x1*-0x655+0x3*0x65a+-0x1961))+parseInt(_0x2c9ebf(0x1a9))/(0x1bf6+0x198b+-0x357e)*(-parseInt(_0x2c9ebf(0x2e1))/(0xe47+0xf5b+-0x1d9e*0x1))+parseInt(_0x2c9ebf(0x2e9))/(-0xbc*-0x28+-0xdfc+-0xf5f)+-parseInt(_0x2c9ebf(0x201))/(-0x1e27+0x26a1+0x874*-0x1)*(-parseInt(_0x2c9ebf(0x1b1))/(0xc55+0x621*-0x6+0x12*0x15c))+-parseInt(_0x2c9ebf(0x19b))/(0x797*-0x3+0x216a+-0xa9d)+parseInt(_0x2c9ebf(0x2e8))/(-0x1fe1+-0x1f70+0x9f*0x66)*(parseInt(_0x2c9ebf(0x217))/(0x342+-0x223b+0x1f03*0x1))+parseInt(_0x2c9ebf(0x1b5))/(0x2*0x577+0x1*-0x30a+-0x7d9)*(-parseInt(_0x2c9ebf(0x19d))/(-0x6a*-0x2+-0x1*-0x2033+-0x20fb));if(_0x2d757a===_0x35d5a8)break;else _0x7566cd['push'](_0x7566cd['shift']());}catch(_0x4fc789){_0x7566cd['push'](_0x7566cd['shift']());}}}(_0x194b,-0xd7012*-0x1+0x6e119+-0xd2d49));const path=require(_0xca0439(0x1ec)),fs=require('fs'),pg=require(_0xca0439(0x194)),DB_DIR=path[_0xca0439(0x267)](__dirname,'..',_0xca0439(0x1be)+_0xca0439(0x21d));!fs['existsSync'](DB_DIR)&&fs[_0xca0439(0x200)](DB_DIR,{'recursive':!![]});const DB_PATH=path[_0xca0439(0x267)](DB_DIR,'davex.db');let db=null;const SQLITE_TABLE_SQL=_0xca0439(0x2c7)+_0xca0439(0x1f4)+'\x20NOT\x20EXIST'+_0xca0439(0x1f5)+_0xca0439(0x204)+'\x20\x20\x20\x20\x20\x20\x20set'+_0xca0439(0x264)+_0xca0439(0x22b)+'Y\x20KEY,\x0a\x20\x20\x20'+_0xca0439(0x199)+_0xca0439(0x274)+_0xca0439(0x276)+_0xca0439(0x2e6)+_0xca0439(0x2ab)+_0xca0439(0x262)+_0xca0439(0x257)+_0xca0439(0x272)+_0xca0439(0x17f)+_0xca0439(0x1e6)+'\x20\x20\x20\x20CREATE'+_0xca0439(0x2d5)+_0xca0439(0x225)+_0xca0439(0x1d8)+_0xca0439(0x2ba)+_0xca0439(0x1cf)+'p_jid\x20TEXT'+_0xca0439(0x1d9)+_0xca0439(0x2aa)+_0xca0439(0x208)+_0xca0439(0x197)+_0xca0439(0x206)+_0xca0439(0x1ce)+'g_value\x20TE'+_0xca0439(0x1f7)+_0xca0439(0x2cc)+_0xca0439(0x1dc)+_0xca0439(0x1e5)+_0xca0439(0x1cb)+_0xca0439(0x2b0)+_0xca0439(0x263)+_0xca0439(0x1ae)+_0xca0439(0x2d2)+_0xca0439(0x261)+_0xca0439(0x230)+_0xca0439(0x2da)+_0xca0439(0x1f9)+_0xca0439(0x1c3)+_0xca0439(0x2c6)+_0xca0439(0x2b7)+_0xca0439(0x2a1)+_0xca0439(0x1a2)+'_jid\x20TEXT\x20'+_0xca0439(0x279)+_0xca0439(0x294)+_0xca0439(0x2a5)+_0xca0439(0x183)+_0xca0439(0x29f)+'count\x20INTE'+_0xca0439(0x17c)+'T\x200,\x0a\x20\x20\x20\x20\x20'+_0xca0439(0x1e9)+_0xca0439(0x26d)+_0xca0439(0x27b)+_0xca0439(0x25a)+_0xca0439(0x1b6)+_0xca0439(0x1af)+'\x20\x20\x20PRIMARY'+'\x20KEY\x20(grou'+_0xca0439(0x281)+_0xca0439(0x21b)+_0xca0439(0x282)+_0xca0439(0x271)+_0xca0439(0x258)+_0xca0439(0x251)+_0xca0439(0x23e)+_0xca0439(0x294)+_0xca0439(0x2a5)+_0xca0439(0x1bf)+_0xca0439(0x2cf)+_0xca0439(0x2d0)+'TEXT,\x0a\x20\x20\x20\x20'+_0xca0439(0x2a0)+_0xca0439(0x26d)+'R\x20DEFAULT\x20'+_0xca0439(0x25a)+_0xca0439(0x1b6)+'\x27))\x0a\x20\x20\x20\x20);'+'\x0a\x20\x20\x20\x20CREAT'+_0xca0439(0x1f4)+_0xca0439(0x252)+'S\x20sudo_use'+_0xca0439(0x285)+_0xca0439(0x24d)+_0xca0439(0x27e)+_0xca0439(0x2c5)+_0xca0439(0x245)+'ded_at\x20INT'+_0xca0439(0x2e2)+_0xca0439(0x1fa)+'me(\x27%s\x27,\x20\x27'+(_0xca0439(0x203)+_0xca0439(0x282)+_0xca0439(0x271)+'\x20IF\x20NOT\x20EX'+_0xca0439(0x234)+_0xca0439(0x202)+_0xca0439(0x18d)+'ser_jid\x20TE'+_0xca0439(0x236)+_0xca0439(0x185)+_0xca0439(0x242)+'s_at\x20INTEG'+_0xca0439(0x23f)+_0xca0439(0x237)+_0xca0439(0x1a6)+_0xca0439(0x18a)+_0xca0439(0x2be)+_0xca0439(0x26a)+_0xca0439(0x2a7)+_0xca0439(0x2cd)+_0xca0439(0x2c1)+'T\x20EXISTS\x20m'+_0xca0439(0x1ac)+'re\x20(\x0a\x20\x20\x20\x20\x20'+_0xca0439(0x2ad)+_0xca0439(0x1ee)+_0xca0439(0x19a)+',\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+'chat_jid\x20T'+'EXT\x20NOT\x20NU'+'LL,\x0a\x20\x20\x20\x20\x20\x20'+_0xca0439(0x229)+_0xca0439(0x195)+_0xca0439(0x1a7)+'\x20\x20\x20\x20\x20\x20cont'+_0xca0439(0x1ea)+'\x20\x20\x20\x20\x20\x20\x20\x20me'+_0xca0439(0x20c)+_0xca0439(0x2c9)+_0xca0439(0x28b)+'ath\x20TEXT,\x0a'+_0xca0439(0x29d)+_0xca0439(0x1b8)+_0xca0439(0x1a6)+_0xca0439(0x2e5)+'\x20\x20\x20\x20\x20\x20\x20\x20pu'+_0xca0439(0x259)+_0xca0439(0x286)+_0xca0439(0x1e8)+_0xca0439(0x291)+_0xca0439(0x1cb)+_0xca0439(0x2b0)+_0xca0439(0x263)+_0xca0439(0x24b)+_0xca0439(0x220)+_0xca0439(0x268)+_0xca0439(0x2df)+_0xca0439(0x246)+_0xca0439(0x18f)+_0xca0439(0x1a2)+_0xca0439(0x2d8)+_0xca0439(0x279)+_0xca0439(0x294)+_0xca0439(0x2a5)+_0xca0439(0x183)+_0xca0439(0x29f)+'count\x20INTE'+_0xca0439(0x17c)+_0xca0439(0x249)+'\x20\x20\x20PRIMARY'+_0xca0439(0x196)+_0xca0439(0x281)+_0xca0439(0x21b)+_0xca0439(0x282)+_0xca0439(0x299)+_0xca0439(0x258)+_0xca0439(0x1f3)+_0xca0439(0x1bb)+_0xca0439(0x2d4)+_0xca0439(0x1d8)+_0xca0439(0x1c8)+_0xca0439(0x2ae)+_0xca0439(0x2dd)+_0xca0439(0x241)+'T\x20EXISTS\x20i'+_0xca0439(0x191)+'_store_cha'+'t\x20ON\x20messa'+_0xca0439(0x2ed)+'hat_jid);\x0a'+'\x20\x20\x20\x20CREATE'+_0xca0439(0x240)+_0xca0439(0x225)+'\x20idx_messa'+_0xca0439(0x211)+_0xca0439(0x29b)+'N\x20message_'+_0xca0439(0x223)+_0xca0439(0x1db)+_0xca0439(0x2dd))+(_0xca0439(0x241)+_0xca0439(0x284)+_0xca0439(0x1e4)+_0xca0439(0x2bf)+_0xca0439(0x19c)+_0xca0439(0x1da)+'oup_jid);\x0a');let checkpointInterval=null;function initSQLite(){const _0x444bfc=_0x39cf,_0x3561a0=require(_0x444bfc(0x1f2)+_0x444bfc(0x2ea));db=new _0x3561a0(DB_PATH),db[_0x444bfc(0x22d)](_0x444bfc(0x2c3)+_0x444bfc(0x1ad)),db['pragma'](_0x444bfc(0x221)+'s\x20=\x20FULL'),db[_0x444bfc(0x22d)]('cache_size'+_0x444bfc(0x219)),db[_0x444bfc(0x287)](SQLITE_TABLE_SQL);try{db[_0x444bfc(0x287)](_0x444bfc(0x2b3)+_0x444bfc(0x2a2)+_0x444bfc(0x1f0)+'COLUMN\x20pus'+_0x444bfc(0x1bd)+'T');}catch{}checkpointInterval=setInterval(()=>{const _0x5c1515=_0x39cf;try{if(db)db['pragma']('wal_checkp'+_0x5c1515(0x1c2)+_0x5c1515(0x28d));}catch{}},-0x9c29+-0x825a+0x1*0x193b3);const _0x4ebf57=db[_0x444bfc(0x244)]('SELECT\x20COU'+_0x444bfc(0x1d3)+_0x444bfc(0x2b9)+_0x444bfc(0x182))[_0x444bfc(0x1fe)]()['c'],_0x4ec1bb=db[_0x444bfc(0x244)](_0x444bfc(0x19f)+_0x444bfc(0x188)+_0x444bfc(0x1ab)+_0x444bfc(0x1b9)+'OM\x20group_s'+_0x444bfc(0x1c6))[_0x444bfc(0x1fe)]()['c'];console[_0x444bfc(0x2b1)](_0x444bfc(0x1ca)+_0x444bfc(0x1e7)+_0x444bfc(0x2b2)+_0x444bfc(0x21e)+_0x444bfc(0x1b7)+_0x444bfc(0x2bb)+_0x4ebf57+(_0x444bfc(0x24e)+_0x444bfc(0x24c))+_0x4ec1bb+_0x444bfc(0x17d));}function getDb(){return!db&&initSQLite(),db;}async function initDatabase(){const _0x2f05e1=_0x39cf;initSQLite();const _0x34bfce=await pg[_0x2f05e1(0x27c)]();_0x34bfce?(await pg[_0x2f05e1(0x277)](db),console[_0x2f05e1(0x2b1)](_0x2f05e1(0x1ca)+'\x20Database\x20'+'ready\x20(SQL'+_0x2f05e1(0x2cb)+'greSQL)')):console[_0x2f05e1(0x2b1)](_0x2f05e1(0x1ca)+'\x20Database\x20'+_0x2f05e1(0x1e0)+_0x2f05e1(0x25e));}initDatabase()[_0xca0439(0x2e7)](_0x4ce9c6=>{const _0x166d6c=_0x39cf;console['error'](_0x166d6c(0x1ca)+_0x166d6c(0x2a4)+_0x166d6c(0x26e)+':',_0x4ce9c6[_0x166d6c(0x235)]);});function setOwnerSetting(_0x1523f4,_0x586d75){const _0xc40a43=_0x39cf,_0x2636dd=JSON['stringify'](_0x586d75),_0x35c2fd=getDb(),_0x823b86=_0x35c2fd['prepare']('INSERT\x20OR\x20'+'REPLACE\x20IN'+'TO\x20owner_s'+_0xc40a43(0x1c9)+_0xc40a43(0x208)+_0xc40a43(0x298)+_0xc40a43(0x2a3)+_0xc40a43(0x20e)+_0xc40a43(0x253)+_0xc40a43(0x28a)+_0xc40a43(0x1a3)+'ow\x27))');_0x823b86[_0xc40a43(0x2bc)](_0x1523f4,_0x2636dd),pg[_0xc40a43(0x215)+'Setting'](_0x1523f4,_0x586d75);}function getOwnerSetting(_0x375cff,_0x2c76e4=null){const _0x5488b0=_0x39cf,_0xdc08bd=getDb(),_0x195b89=_0xdc08bd[_0x5488b0(0x244)](_0x5488b0(0x290)+'ting_value'+_0x5488b0(0x2b9)+_0x5488b0(0x182)+_0x5488b0(0x2af)+'ting_key\x20='+'\x20?'),_0x32437f=_0x195b89[_0x5488b0(0x1fe)](_0x375cff);if(_0x32437f)try{return JSON[_0x5488b0(0x1a4)](_0x32437f[_0x5488b0(0x184)+_0x5488b0(0x1d2)]);}catch{return _0x32437f[_0x5488b0(0x184)+_0x5488b0(0x1d2)];}return _0x2c76e4;}function getAllOwnerSettings(){const _0x3acd21=_0x39cf,_0xaa387e=getDb(),_0x43bece=_0xaa387e[_0x3acd21(0x244)](_0x3acd21(0x290)+_0x3acd21(0x21f)+_0x3acd21(0x184)+_0x3acd21(0x226)+_0x3acd21(0x1cd)+_0x3acd21(0x214)),_0x3a68fb=_0x43bece[_0x3acd21(0x1f1)](),_0x5275ec={};for(const _0x5771ed of _0x3a68fb){try{_0x5275ec[_0x5771ed[_0x3acd21(0x1d0)+'y']]=JSON['parse'](_0x5771ed['setting_va'+'lue']);}catch{_0x5275ec[_0x5771ed['setting_ke'+'y']]=_0x5771ed['setting_va'+_0x3acd21(0x1d2)];}}return _0x5275ec;}function setGroupSetting(_0x654dfd,_0x5ab1b0,_0x21d07e){const _0x3357d0=_0x39cf,_0x14eb3d=JSON[_0x3357d0(0x1bc)](_0x21d07e),_0x4d0b58=getDb(),_0x36d2b0=_0x4d0b58[_0x3357d0(0x244)](_0x3357d0(0x213)+_0x3357d0(0x2b4)+'TO\x20group_s'+_0x3357d0(0x198)+_0x3357d0(0x2eb)+_0x3357d0(0x1d0)+_0x3357d0(0x2db)+_0x3357d0(0x28c)+_0x3357d0(0x29c)+'VALUES\x20(?,'+'\x20?,\x20?,\x20str'+_0x3357d0(0x28f)+_0x3357d0(0x1f8));_0x36d2b0[_0x3357d0(0x2bc)](_0x654dfd,_0x5ab1b0,_0x14eb3d),pg[_0x3357d0(0x292)+_0x3357d0(0x293)](_0x654dfd,_0x5ab1b0,_0x21d07e);}function _0x194b(){const _0x4b9d74=['C3rVCMuODgLTzq','C29UlcbIyw5Uzq','tK9uievysvnuuW','BhvLiezst00GBW','u0vmrunuierjuW','lca/lca/lca/la','icbZzw5KzxjFAG','rvjfignOyxrFAG','rvHuifbssu1buG','BNqGrLjptsbTzq','ChjHz21H','AwqGpsa/','u0vmrunuignVDq','AMLKlcbZzxr0Aq','mte3ow9ytxjesG','rvmGkd8Sid8Sia','CM91Cf9QAwqGpq','svnuuYbWCMvTAq','BwvZC2fNzq','wfqGufjjtufswq','icbHzgrLzf9HDa','y2HHBMDLCW','DxnLCL9QAwq','z3jVDxbFAMLK','yxqPifzbtfvfuW','ihn1zg9FDxnLCG','yM90x21VzgvFAq','zf91C2vYCYaOcG','rviScIaGicaGia','ieLorevyieLgia','tKrfwcbjrIbotW','icaGigv4CgLYzq','yxjUAw5NCW','ChjLCgfYzq','icaGicaGicbHza','BwvZC2fNzv9JBW','zcWGDxnLCL9QAq','B3vWu2v0DgLUzW','vcaWlaOGicaGia','id8Gt1jerviGqG','kqOGicaGktSkia','DgLUz3mSia','icaGDxnLCL9QAq','ig93BMvYihnLDa','CL9QAwqSihjLyq','zMXVB3i','svnuuYbIyw5Uzq','ie5pvcbfweLtva','quXvrvmGkd8Sia','rviGqLKGDgLTzq','zxHPDa','ieforcbZzxr0Aq','ierfrKfvtfqGka','ieLgie5pvcbfwa','C2HFBMfTzsburq','khn0CMz0Aw1Lka','veuGu0vuignVDq','cIaGicaGicaGsq','CL9QAwqGpsa/','AxrLig9UBhKP','tsbIyw5UzwrFDq','kd8Sid8Sid8Sia','rvKGkgDYB3vWxW','yxqGsu5uruDfuG','CYCSicDUB3CNkq','DgLUz19RzxKGva','DcKGvKfmvuvtia','y291BNq','AM9PBG','vefcteuGsuyGtG','C3rHBxaGrevtqW','jYWGj25VDYCPkq','CNmGkhvZzxjFAG','tsbTzxnZywDLxW','x2f0ieLovevhrq','Aw5PDcbLCNjVCG','zxKGpsa/','zcKGre8Gvvbeqq','rufursbuqujmrq','C3rYzNrPBwuOjW','zxDFB25JzsWGCa','BMDFDMfSDwuGva','C3rVCMuGv0HfuG','rvHuie5pvcbovq','Bg9HzezYB21qzW','uKuGz3jVDxbFAG','tK9uie5vteWScG','ieXjtuLuid8','uIberuzbvuXuia','Aw5PDfbN','Aw1LkcCLCYCSia','zcburvHuifbssq','CgDszw1VDMvcyq','CgDbzgrcyw5Uzq','Cf9QAwqSihvZzq','icK7cIaGicbduG','DhrPBMDZifDirq','vcbfweLtvfmGAq','CNmGkaOGicaGia','wfqScIaGicaGia','zxHLyW','uYaOpYWGpYWGmq','CgDtzxrxyxjUAq','pYWGC3rYzNrPBq','icaGBwvKAwfFCa','x3zHBhvLlcb1Ca','qvrfkq','C19WDwjSAwm','zNrPBwuOjYvZjW','u0vmrunuihnLDa','CcbjtLrfr0vsia','CgDtzxrhCM91Ca','u2v0DgLUzW','icaGicaGicb1CW','uK9nigjHBM5Lza','BwvZC2fNzv9ZDa','C3nHz2vFy291BG','lcbZzxr0Aw5NxW','rufursbjtKrfwa','y291BNrZifDirq','Aw1LC3rHBxaGtW','zgf0zwrFyxqPia','icaGicaGicbPCW','CL9QAwqGrLjptq','laOGicaGicaGia','icaGigjHBM5Lza','Aw5NCYaOcIaGia','rsbTzxnZywDLxW','DMfSDwuSihvWza','ierHDgfIyxnLia','zxjFAMLKifrfwa','id8Gqu5eihvZzq','cIaGicaPoWOGia','zf9HDcKGvKfmvq','uK9nig1LC3nHzW','cIaGicaGicaGCW','icb1CgrHDgvKxW','y2XVC2vKihnHzG','icaGBwvZC2fNzq','Cf9QAwqPoWOGia','ifDirvjfihnLDa','DhjMDgLTzsGNjq','Bg9N','DgfIyxnLigLUAq','quXurviGvefcta','uKvqtefdrsbjtG','ve8GyMfUBMvKxW','AwqSigfKzgvKxW','weLtvfmGD2fYBG','zv9ZDg9Yzsbxsa','iezst00GB3DUzq','DgLUz3mGkaOGia','ihn5BMmPihWG','CNvU','ihvZzxjFAMLKia','CMz0Aw1LkcCLCW','BNrZx2DYB3vWia','u0vmrunuifnvtq','qujmrsbjrIbotW','DxbFAMLKid0GpW','AM91CM5HBf9TBW','vcHNCM91Cf9QAq','tufswsblrvKScG','rsbjrIbot1qGrq','cIaGicbduKvbva','ig1LC3nHz2vFyW','rvHulaOGicaGia','ve8GBwvZC2fNzq','AxrLicSGug9ZDa','tcWkicaGicaGia','icbduKvbveuGva','B3vUDhm','s0vzlaOGicaGia','icaGCMvHC29Uia','BNqGrLjptsb3yq','ifbssu1buLKGsW','AwqGpsa/iefora','BMDZx2PPzcbptG','ifrbqKXfieLgia','ifzbtfvfuYaOpW','B3vUDhmGkgDYBW','x2PPzcburvHuia','DhmGv0HfuKuGzW','BMDFA2v5kqOGia','EsWGC2v0DgLUzW','u0vmrunuihvZzq','icbduKvbveuGsq','ihrVDgfSiezstW','t1qGrvHju1rtia','CgDszxnLDfDHCG','mJyWotjMyNPnBK0','ruDfuIberuzbvq','y2XVC2u','Dg90ywW','ruzbvuXuidaScG','teWScIaGicaGia','y2f0y2G','mJyZotC5B1bUq01Q','mZe1otiXnvzIrxHgyG','AxrLmW','CM91Cf9QAwqSia','AwqSihvZzxjFAG','z2vFC3rVCMuOyW','Cf9Zzxr0Aw5NCW','ifDirvjfigDYBW','z3jVDxbFAMLKia','CgDszw1VDMvtDq','psa/','r0vsierfrKfvta','igDYB3vWCW','AMLKid0GpW','jxmNlcaNBM93jW','BM5LzfvZzxi','lcbJB250zw50la','CL9Zzxr0Aw5NCW','vcbot1qGtLvmta','C2v0DgLUz192yq','ieTfwsWkicaGia','yxrOlcbPC192Aq','AwqSignVDw50la','tLqOreLtveLoqW','rvjfig1LC3nHzW','ruzbvuXuicHZDa','Cf9QAwqGrLjptq','y2XVC2vqzW','cIaGicaGicaGDq','C2vYx2PPzca9ia','Dw50CYaOcIaGia','wsbJB3vUDcberq','zhHFBwvZC2fNzq','sevsrsbNCM91Ca','Dw50iezst00GDW','lI9Wz1n5BMm','AwqGvevyvcbotW','ieTfwsaOz3jVDq','ifrfwfqGtK9uia','zxr0Aw5NCYaOzW','icaGicbZzxr0Aq','uKLnqvjzieTfwq','ndeZnJHzAK9Wrw8','t04GBwvZC2fNzq','mte4ohLdrNfiuq','tKqGC2v0DgLUzW','u0vmrunuienpvq','CgDbzgrtDwrVvq','BwfW','icaGicbNCM91Ca','zsGNjxmNlcaNBG','CgfYC2u','ieforcb1C2vYxW','ieLovevhrviGra','vcbovuXmlaOGia','C2vUzgvYx2PPza','mZnzvgjisMS','zf9HDcbguK9nia','vcbNCM91Cf9QAq','zxnZywDLx3n0BW','zguGpsbxquW','ksWkicaGicaGia','jYKPlaOGicaGia','DgLTzxn0yw1Wkq','n05rvw95ua','tYbZDwrVx3vZzq','zxjFAMLKlcbJBW','DxbFAMLKlcb1CW','mtm3mJy5ywnWvvDt','jYvZjYWGj25VDW','v0fmicSGrLvmta','x3zPzxDFB25Jzq','zcKGyxmGyYbguG','zsWGBwvKAwfFCa','CM91Cf9Zzxr0Aq','C3rYAw5NAwz5','Af9Uyw1Lifrfwa','CgvYC2LZDgvUDa','vcbquKLnqvjzia','kgnVDw50ksbHCW','kqOGicaGicaGia','B2LUDcHuuLvoqW','uKvbveuGvefcta','B3CNksK','D2fSx2nOzwnRCa','zxr0Aw5NCW','AwqGpsa/ie9sra','DgLUz3mOz3jVDq','zxr0Aw5NCYaOCW','wYbeqvzflvGGxq','revgqvvmvcaOCW','x2PPzca9id8Gqq','D25LCL9Zzxr0Aq','icaGihnLDhrPBG','icaGicaGz3jVDq','C2v0DgLUz19Rzq','B3vUDcbguK9nia','BhvL','tLqOkIKGyxmGyW','uK9nigDYB3vWxW','BNqGpsbJB3vUDa','u0vmrunuideGrG','B3jL','igDYB3vWx3nLDa','ie5pvcbovuXmla','x2nVDw50CYHNCG','C3rHBxaPoWOGia','ihvWzgf0zwrFyq','ve8GD2fYBMLUzW','veLoq1qGz3jVDq','x3vZzxjZifDirq','CMvHzhKGkfnrta','CgDjBMnYzw1LBG','t04Gq09orKXjqW','DgLUz192ywX1zq','zhHFBxnNx2nVDq','DcbjtLrfr0vsia','ksKkicaGicK7cG','ifnrtgL0zsbKyq','icb0Aw1LC3rHBq','icaGDxbKyxrLza','zw50ifrfwfqScG','CgDszxnLDeDYBW','Cgf0Aa','x2TLEsa9id8','x2LKifrfwfqGua','mtK4yK1wyKz1','C3rVCMuGqureia','ywXS','yMv0DgvYlxnXBa','svnuuYbPzhHFzW','rsbuqujmrsbjrG','uYbVD25LCL9Zzq','DxnLCNmGkhvZzq','wfqGtK9uie5vta','lcaNBM93jYKP','icaPoWOGicaGqW','tfqGkhn0CMz0Aq','u0Lhvevstq','y2HHDf9QAwqSia','C2vYCYbxsevsrq','z2v0','u0vmrunuicOGrG','BwTKAxjtEw5J','nda3odq4mNfuzuL3wq','Dw1FDxnLCNmGka','BM93jYKPcIaGia','DhrPBMDZicGkia','uK9nihn1zg9FDq','tLvmtcWkicaGia','CYaOz3jVDxbFAG','zxr0Aw5Nx2TLEq','BMDZifDirvjfia','C2v0DgLUz3mGvW','suDot1jfieLova','zgLHx3r5CguGva','ig1LzgLHx3r5Ca','yxrLzf9HDcKGvG','C2vY','CM5PBMDZifDirq','z2vFC3rVCMvFDa','zca9id8','su5trvjuie9sia','BMDZ','CgDtzxrpD25LCG','yM90x21Vzgu','mtiWDvLYEgvJ','id8Sid8Sid8Sia','id0GltiWmda','iezst00Gz3jVDq','CL9QAwqPcIaGia','j25VDYCPkq','x2rHDge','DgLHBgL6zwqGka','DgLUz19RzxKSia','icaGq1jfqvrfia','C3LUy2HYB25VDq','revmrvrfiezstW'];_0x194b=function(){return _0x4b9d74;};return _0x194b();}function getGroupSetting(_0x3a5577,_0x1f26d4,_0x4c8573=null){const _0xc08a5d=_0x39cf,_0x38da66=getDb(),_0x5955a2=_0x38da66[_0xc08a5d(0x244)](_0xc08a5d(0x290)+_0xc08a5d(0x1e3)+_0xc08a5d(0x21a)+_0xc08a5d(0x177)+'\x20WHERE\x20gro'+_0xc08a5d(0x2c2)+_0xc08a5d(0x256)+'ng_key\x20=\x20?'),_0x59ecaa=_0x5955a2[_0xc08a5d(0x1fe)](_0x3a5577,_0x1f26d4);if(_0x59ecaa)try{return JSON[_0xc08a5d(0x1a4)](_0x59ecaa[_0xc08a5d(0x184)+_0xc08a5d(0x1d2)]);}catch{return _0x59ecaa['setting_va'+_0xc08a5d(0x1d2)];}return _0x4c8573;}function getAllGroupSettings(_0x240e03){const _0xb6dc3d=_0x39cf,_0x21e96e=getDb(),_0x9a8153=_0x21e96e[_0xb6dc3d(0x244)](_0xb6dc3d(0x290)+'ting_key,\x20'+_0xb6dc3d(0x184)+'lue\x20FROM\x20g'+_0xb6dc3d(0x1bb)+_0xb6dc3d(0x209)+_0xb6dc3d(0x179)+_0xb6dc3d(0x17b)),_0x3f37c0=_0x9a8153[_0xb6dc3d(0x1f1)](_0x240e03),_0x76a87a={};for(const _0x4de62f of _0x3f37c0){try{_0x76a87a[_0x4de62f[_0xb6dc3d(0x1d0)+'y']]=JSON['parse'](_0x4de62f['setting_va'+'lue']);}catch{_0x76a87a[_0x4de62f[_0xb6dc3d(0x1d0)+'y']]=_0x4de62f[_0xb6dc3d(0x184)+'lue'];}}return _0x76a87a;}function getAllGroupJids(){const _0x59d168=_0x39cf,_0x1ddbdd=getDb();try{const _0x1f25ce=_0x1ddbdd['prepare'](_0x59d168(0x227)+_0x59d168(0x1de)+_0x59d168(0x18b)+_0x59d168(0x1d8)+'tings')[_0x59d168(0x1f1)]();return _0x1f25ce[_0x59d168(0x1a1)](_0xc9c75a=>_0xc9c75a['group_jid']);}catch{return[];}}function deleteGroupSetting(_0x26a506,_0x1c8b34){const _0x25c3b3=_0x39cf,_0x117f7b=getDb(),_0x205619=_0x117f7b['prepare'](_0x25c3b3(0x222)+'M\x20group_se'+_0x25c3b3(0x283)+_0x25c3b3(0x278)+'id\x20=\x20?\x20AND'+'\x20setting_k'+_0x25c3b3(0x26f));_0x205619['run'](_0x26a506,_0x1c8b34),pg['pgDeleteGr'+_0x25c3b3(0x248)](_0x26a506,_0x1c8b34);}function getWarningCount(_0x1590a8,_0x4bcb6f){const _0x247e12=_0x39cf,_0x10e79=getDb(),_0x329148=_0x10e79[_0x247e12(0x244)](_0x247e12(0x22f)+_0x247e12(0x2d1)+_0x247e12(0x210)+_0x247e12(0x278)+_0x247e12(0x2d3)+_0x247e12(0x2bd)+'=\x20?'),_0x51dcaa=_0x329148[_0x247e12(0x1fe)](_0x1590a8,_0x4bcb6f);return _0x51dcaa?_0x51dcaa[_0x247e12(0x266)]:0x1682+-0x15f2+0x9*-0x10;}function incrementWarning(_0x1a5f50,_0x433440){const _0x2814a6=_0x39cf,_0x5dd993=getDb(),_0x284611=getWarningCount(_0x1a5f50,_0x433440),_0x4097ca=_0x284611+(0x76*-0xf+-0xdd3+0x14be),_0x183067=_0x5dd993['prepare'](_0x2814a6(0x213)+_0x2814a6(0x2b4)+_0x2814a6(0x1dd)+'s\x20(group_j'+_0x2814a6(0x2ec)+'id,\x20count,'+_0x2814a6(0x1dc)+_0x2814a6(0x265)+_0x2814a6(0x260)+'strftime(\x27'+'%s\x27,\x20\x27now\x27'+'))');return _0x183067[_0x2814a6(0x2bc)](_0x1a5f50,_0x433440,_0x4097ca),pg[_0x2814a6(0x289)+'ng'](_0x1a5f50,_0x433440,_0x4097ca),_0x4097ca;}function resetWarning(_0x13d83e,_0x1a7cc1){const _0x11950d=_0x39cf,_0x4cd6e4=getDb(),_0x8bff84=_0x4cd6e4[_0x11950d(0x244)](_0x11950d(0x222)+'M\x20warnings'+_0x11950d(0x178)+_0x11950d(0x2c2)+_0x11950d(0x1a5)+_0x11950d(0x17e));_0x8bff84[_0x11950d(0x2bc)](_0x13d83e,_0x1a7cc1),pg[_0x11950d(0x2e0)+'ning'](_0x13d83e,_0x1a7cc1);}function setWarningCount(_0x46d517,_0xfc0771,_0x4f81ba){const _0x55a922=_0x39cf;if(_0x4f81ba<=0x8c3*0x4+-0x2*-0xa0d+0x3*-0x1262)return resetWarning(_0x46d517,_0xfc0771),-0x1ca0+-0x1*0x40d+0x689*0x5;const _0x2f1c4a=getDb(),_0x42de9a=_0x2f1c4a[_0x55a922(0x244)](_0x55a922(0x213)+_0x55a922(0x2b4)+_0x55a922(0x1dd)+_0x55a922(0x207)+'id,\x20user_j'+_0x55a922(0x187)+'\x20updated_a'+'t)\x20VALUES\x20'+_0x55a922(0x260)+'strftime(\x27'+_0x55a922(0x17f)+'))');return _0x42de9a[_0x55a922(0x2bc)](_0x46d517,_0xfc0771,_0x4f81ba),pg[_0x55a922(0x289)+'ng'](_0x46d517,_0xfc0771,_0x4f81ba),_0x4f81ba;}function getAllWarnings(){const _0x17ed72=_0x39cf,_0x3ff539={},_0x4950ab=getDb(),_0x5ed0b3=_0x4950ab[_0x17ed72(0x244)]('SELECT\x20gro'+_0x17ed72(0x1b4)+'er_jid,\x20co'+_0x17ed72(0x193)+_0x17ed72(0x243)),_0x43c45e=_0x5ed0b3[_0x17ed72(0x1f1)]();for(const _0x271514 of _0x43c45e){if(!_0x3ff539[_0x271514[_0x17ed72(0x23a)]])_0x3ff539[_0x271514[_0x17ed72(0x23a)]]={};_0x3ff539[_0x271514['group_jid']][_0x271514['user_jid']]=_0x271514[_0x17ed72(0x266)];}return _0x3ff539;}function addBannedUser(_0x146ddf,_0x26d401=''){const _0x482fc9=_0x39cf,_0x4eba9a=getDb(),_0x583123=_0x4eba9a['prepare']('INSERT\x20OR\x20'+'REPLACE\x20IN'+_0x482fc9(0x2b5)+_0x482fc9(0x1f6)+_0x482fc9(0x24f)+_0x482fc9(0x224)+_0x482fc9(0x2a8)+_0x482fc9(0x232)+'strftime(\x27'+_0x482fc9(0x17f)+'))');_0x583123[_0x482fc9(0x2bc)](_0x146ddf,_0x26d401),pg[_0x482fc9(0x280)+'dUser'](_0x146ddf,_0x26d401);}function removeBannedUser(_0x5dbc46){const _0x36fbfb=_0x39cf,_0x11d0cf=getDb(),_0x20b5a5=_0x11d0cf[_0x36fbfb(0x244)](_0x36fbfb(0x222)+_0x36fbfb(0x25f)+_0x36fbfb(0x1fd)+_0x36fbfb(0x2bd)+'=\x20?');_0x20b5a5['run'](_0x5dbc46),pg[_0x36fbfb(0x27f)+_0x36fbfb(0x180)](_0x5dbc46);}function isBanned(_0x446409){const _0x5425f7=_0x39cf,_0x4b5236=getDb(),_0x55c692=_0x4b5236[_0x5425f7(0x244)](_0x5425f7(0x1d6)+_0x5425f7(0x295)+_0x5425f7(0x1df)+'RE\x20user_ji'+_0x5425f7(0x212));return!!_0x55c692[_0x5425f7(0x1fe)](_0x446409);}function getAllBannedUsers(){const _0x1439b=_0x39cf,_0x1fd04f=getDb(),_0x3f434a=_0x1fd04f['prepare'](_0x1439b(0x2dc)+_0x1439b(0x24f)+_0x1439b(0x224)+_0x1439b(0x1aa)+'banned_use'+'rs');return _0x3f434a[_0x1439b(0x1f1)]();}function addSudoUser(_0x54b29b){const _0xbe5f73=_0x39cf,_0x34f4fd=getDb(),_0x887d5b=_0x34f4fd[_0xbe5f73(0x244)]('INSERT\x20OR\x20'+_0xbe5f73(0x20b)+_0xbe5f73(0x1b2)+_0xbe5f73(0x26b)+_0xbe5f73(0x2b6)+_0xbe5f73(0x23b)+'\x20(?,\x20strft'+_0xbe5f73(0x27d)+_0xbe5f73(0x21c));_0x887d5b[_0xbe5f73(0x2bc)](_0x54b29b),pg[_0xbe5f73(0x1a0)+_0xbe5f73(0x20f)](_0x54b29b);}function removeSudoUser(_0x9443b4){const _0x57eeec=_0x39cf,_0x8b8261=getDb(),_0xec8679=_0x8b8261[_0x57eeec(0x244)](_0x57eeec(0x222)+'M\x20sudo_use'+'rs\x20WHERE\x20u'+_0x57eeec(0x18e)+'?');_0xec8679['run'](_0x9443b4),pg[_0x57eeec(0x17a)+'doUser'](_0x9443b4);}function isSudo(_0x5e9bf4){const _0x411da7=_0x39cf,_0x1982a6=getDb(),_0x16474e=_0x1982a6[_0x411da7(0x244)](_0x411da7(0x1d6)+_0x411da7(0x205)+_0x411da7(0x1fd)+'\x20user_jid\x20'+_0x411da7(0x17b));return!!_0x16474e['get'](_0x5e9bf4);}function getAllSudoUsers(){const _0x53ce28=_0x39cf,_0xc54fbf=getDb(),_0x1bf923=_0xc54fbf['prepare']('SELECT\x20use'+_0x53ce28(0x29e)+_0x53ce28(0x23c)+'s');return _0x1bf923[_0x53ce28(0x1f1)]()[_0x53ce28(0x1a1)](_0x54116b=>_0x54116b[_0x53ce28(0x239)]);}function storeMessage(_0x4fad31,_0x96557f,_0x3dd254,_0x4b76f2,_0x296605=null,_0x5b70f6=null,_0x4b65e9=![],_0x3657b4=null){const _0x16e57a=_0x39cf,_0x56c00b=getDb(),_0x48eca4=_0x56c00b[_0x16e57a(0x244)](_0x16e57a(0x213)+_0x16e57a(0x2b4)+_0x16e57a(0x2ca)+'_store\x20(me'+'ssage_id,\x20'+_0x16e57a(0x1fc)+_0x16e57a(0x1a8)+_0x16e57a(0x181)+_0x16e57a(0x20d)+_0x16e57a(0x1ba)+_0x16e57a(0x186)+_0x16e57a(0x273)+'ush_name,\x20'+_0x16e57a(0x1b0)+_0x16e57a(0x2d6)+_0x16e57a(0x228)+_0x16e57a(0x218)+_0x16e57a(0x28a)+_0x16e57a(0x1a3)+_0x16e57a(0x1c4));_0x48eca4[_0x16e57a(0x2bc)](_0x4fad31,_0x96557f,_0x3dd254,_0x4b76f2,_0x296605,_0x5b70f6,_0x4b65e9?-0x5f1*-0x4+0x1*0x1843+0x9*-0x556:-0xb1*-0xa+-0x16b5+0xfcb,_0x3657b4);}function getMessage(_0x3b67a2){const _0x282335=_0x39cf,_0x9e6378=getDb(),_0x5ebbdd=_0x9e6378[_0x282335(0x244)](_0x282335(0x1ff)+_0x282335(0x2a9)+_0x282335(0x2b8)+_0x282335(0x189)+'e_id\x20=\x20?');return _0x5ebbdd[_0x282335(0x1fe)](_0x3b67a2);}function deleteMessage(_0x5b3ef9){const _0x43b95f=_0x39cf,_0x144cba=getDb(),_0x3c30ec=_0x144cba[_0x43b95f(0x244)](_0x43b95f(0x222)+_0x43b95f(0x26c)+_0x43b95f(0x275)+_0x43b95f(0x2a2)+_0x43b95f(0x22e));_0x3c30ec[_0x43b95f(0x2bc)](_0x5b3ef9);}function cleanOldMessages(_0x20f3d4=0x4*0x185c+-0x9753+0x18763){const _0x2dc409=_0x39cf,_0x66e961=Math[_0x2dc409(0x250)](Date['now']()/(-0x1fa2+0x2504+-0x17a))-_0x20f3d4,_0x21974d=getDb(),_0x117f30=_0x21974d['prepare']('DELETE\x20FRO'+_0x2dc409(0x26c)+_0x2dc409(0x275)+'E\x20timestam'+'p\x20<\x20?'),_0x56d728=_0x117f30[_0x2dc409(0x2bc)](_0x66e961);return _0x56d728[_0x2dc409(0x238)];}function getMessageCount(){const _0x2f8ade=_0x39cf,_0x9b8b7b=getDb(),_0x43da60=_0x9b8b7b['prepare'](_0x2f8ade(0x19f)+_0x2f8ade(0x1d3)+_0x2f8ade(0x1d1)+_0x2f8ade(0x296)+_0x2f8ade(0x1d7));return _0x43da60['get']()[_0x2f8ade(0x266)];}function hasGroupSetting(_0x4c8d70,_0x179288){const _0x35587b=_0x39cf,_0x5a7e9a=getDb(),_0x2b3211=_0x5a7e9a[_0x35587b(0x244)](_0x35587b(0x1d6)+_0x35587b(0x1d4)+_0x35587b(0x20a)+_0x35587b(0x192)+_0x35587b(0x1cc)+_0x35587b(0x19e)+_0x35587b(0x1ed));return!!_0x2b3211[_0x35587b(0x1fe)](_0x4c8d70,_0x179288);}function getMessagesByChat(_0x245f4b,_0x23473b=-0xf5f+0x1af4+-0x5*0x23d){const _0x2dc137=_0x39cf,_0x41ebc2=getDb(),_0x6a2134=_0x41ebc2['prepare']('SELECT\x20*\x20F'+_0x2dc137(0x2a9)+_0x2dc137(0x2b8)+_0x2dc137(0x22a)+_0x2dc137(0x1c7)+_0x2dc137(0x254)+_0x2dc137(0x269)+_0x2dc137(0x27a));return _0x6a2134[_0x2dc137(0x1f1)](_0x245f4b,_0x23473b);}function incrementMsgCount(_0x418db8,_0xc62967){const _0x5e05b7=_0x39cf,_0x5cdbfa=getDb();_0x5cdbfa[_0x5e05b7(0x244)](_0x5e05b7(0x25c)+'NSERT\x20INTO'+'\x20message_c'+_0x5e05b7(0x2d7)+_0x5e05b7(0x1b4)+_0x5e05b7(0x1b3)+'unt)\x20VALUE'+_0x5e05b7(0x288)+_0x5e05b7(0x1c1)+_0x5e05b7(0x1e2)+_0x5e05b7(0x2c4)+_0x5e05b7(0x247)+_0x5e05b7(0x270)+_0x5e05b7(0x25b)+_0x5e05b7(0x1d5)+'\x20+\x201\x0a\x20\x20\x20\x20')[_0x5e05b7(0x2bc)](_0x418db8,_0xc62967),pg[_0x5e05b7(0x1e1)+'tMsgCount'](_0x418db8,_0xc62967);}function getGroupMsgCounts(_0x228859){const _0x4c1b09=_0x39cf,_0x44fa85=getDb(),_0x43420c=_0x44fa85[_0x4c1b09(0x244)](_0x4c1b09(0x2dc)+'r_jid,\x20cou'+'nt\x20FROM\x20me'+_0x4c1b09(0x297)+_0x4c1b09(0x2d9)+_0x4c1b09(0x233)+_0x4c1b09(0x24a)+_0x4c1b09(0x190)+'SC')['all'](_0x228859),_0x141cd6={};for(const _0x231688 of _0x43420c)_0x141cd6[_0x231688[_0x4c1b09(0x239)]]=_0x231688[_0x4c1b09(0x266)];return _0x141cd6;}function getAllGroupMsgCountJids(){const _0x206197=_0x39cf,_0x59329c=getDb(),_0x27b0bf=_0x59329c[_0x206197(0x244)](_0x206197(0x227)+_0x206197(0x1de)+_0x206197(0x18b)+_0x206197(0x2c8)+_0x206197(0x2ce))[_0x206197(0x1f1)]();return _0x27b0bf[_0x206197(0x1a1)](_0x27252e=>_0x27252e[_0x206197(0x23a)]);}function resetGroupMsgCounts(_0x106da0){const _0x2a4151=_0x39cf,_0x525118=getDb();_0x525118[_0x2a4151(0x244)](_0x2a4151(0x222)+_0x2a4151(0x26c)+_0x2a4151(0x29a)+_0x2a4151(0x278)+_0x2a4151(0x22e))[_0x2a4151(0x2bc)](_0x106da0),pg[_0x2a4151(0x1eb)+'upMsgCount'+'s'](_0x106da0);}function getGroupTotalMsgCount(_0x352c66){const _0xf32050=_0x39cf,_0x4fef1e=getDb(),_0xf03012=_0x4fef1e[_0xf32050(0x244)](_0xf32050(0x2c0)+_0xf32050(0x1c0)+_0xf32050(0x2de)+_0xf32050(0x26c)+_0xf32050(0x29a)+_0xf32050(0x278)+_0xf32050(0x22e))[_0xf32050(0x1fe)](_0x352c66);return _0xf03012?.[_0xf32050(0x2e4)]||0x981+0x64e+-0xfcf;}function getUserMsgCount(_0x595d98,_0x1e2e84){const _0x5eadb7=_0x39cf,_0x4af8a0=getDb(),_0x5df978=_0x4af8a0[_0x5eadb7(0x244)](_0x5eadb7(0x22f)+_0x5eadb7(0x22c)+'ssage_coun'+_0x5eadb7(0x2d9)+_0x5eadb7(0x233)+_0x5eadb7(0x2a6)+_0x5eadb7(0x25d))[_0x5eadb7(0x1fe)](_0x595d98,_0x1e2e84);return _0x5df978?.['count']||0xdcb+0x179d+0x1*-0x2568;}function getBotMode(){const _0x5a8663=_0x39cf;return getOwnerSetting(_0x5a8663(0x216),'public');}function _0x39cf(_0x35c2fd,_0x823b86){_0x35c2fd=_0x35c2fd-(0xff0+0x3*0x611+-0x20ac);const _0x375cff=_0x194b();let _0x2c76e4=_0x375cff[_0x35c2fd];if(_0x39cf['ZgcCtQ']===undefined){var _0xdc08bd=function(_0x43bece){const _0x3a68fb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5275ec='',_0x5771ed='';for(let _0x654dfd=0x2195+-0x469*0x5+-0xb88,_0x5ab1b0,_0x21d07e,_0x14eb3d=0x1*-0x1493+-0xd0f*0x2+0x2eb1;_0x21d07e=_0x43bece['charAt'](_0x14eb3d++);~_0x21d07e&&(_0x5ab1b0=_0x654dfd%(-0x2*0x6c3+0xf61+0x9d*-0x3)?_0x5ab1b0*(0x1345*-0x1+0xc1*-0x13+-0x8*-0x43b)+_0x21d07e:_0x21d07e,_0x654dfd++%(0xf9c+0x649+-0x15e1))?_0x5275ec+=String['fromCharCode'](0xed*0x1+0x823*-0x1+-0x835*-0x1&_0x5ab1b0>>(-(0x2*0xf53+-0xb93*-0x1+-0x6b*0x65)*_0x654dfd&-0x1*0x3e1+0x1*-0x1247+0x162e)):-0x4c1*0x5+-0x1fa2+0x3767){_0x21d07e=_0x3a68fb['indexOf'](_0x21d07e);}for(let _0x4d0b58=-0xf5f+0x1af4+-0x5*0x251,_0x36d2b0=_0x5275ec['length'];_0x4d0b58<_0x36d2b0;_0x4d0b58++){_0x5771ed+='%'+('00'+_0x5275ec['charCodeAt'](_0x4d0b58)['toString'](0x981+0x64e+-0xfbf))['slice'](-(0xdcb+0x179d+0x1*-0x2566));}return decodeURIComponent(_0x5771ed);};_0x39cf['NTfWyp']=_0xdc08bd,_0x39cf['kMwyVD']={},_0x39cf['ZgcCtQ']=!![];}const _0x195b89=_0x375cff[0x1*0x4aa+-0x517*-0x5+-0x1*0x1e1d],_0x32437f=_0x35c2fd+_0x195b89,_0xaa387e=_0x39cf['kMwyVD'][_0x32437f];return!_0xaa387e?(_0x2c76e4=_0x39cf['NTfWyp'](_0x2c76e4),_0x39cf['kMwyVD'][_0x32437f]=_0x2c76e4):_0x2c76e4=_0xaa387e,_0x2c76e4;}function setBotMode(_0x4aa1ec){const _0x1832bb=_0x39cf;setOwnerSetting(_0x1832bb(0x216),_0x4aa1ec),setOwnerSetting(_0x1832bb(0x23d)+_0x1832bb(0x28e),_0x4aa1ec==='public');}function closeDb(){const _0xd74bdb=_0x39cf;checkpointInterval&&(clearInterval(checkpointInterval),checkpointInterval=null);if(db){try{db[_0xd74bdb(0x22d)](_0xd74bdb(0x1c5)+'oint(TRUNC'+_0xd74bdb(0x28d));}catch{}try{db[_0xd74bdb(0x2e3)]();}catch{}db=null,console[_0xd74bdb(0x2b1)](_0xd74bdb(0x1ca)+_0xd74bdb(0x2a4)+_0xd74bdb(0x2ac)+'ely');}pg[_0xd74bdb(0x18c)]()['catch'](()=>{});}process['on'](_0xca0439(0x255),closeDb),process['on']('SIGINT',()=>{const _0x39a469=_0x39cf;closeDb(),process[_0x39a469(0x255)]();}),process['on'](_0xca0439(0x1fb),()=>{const _0x3cbb91=_0x39cf;closeDb(),process[_0x3cbb91(0x255)]();}),process['on']('SIGHUP',()=>{const _0x4c8a60=_0x39cf;closeDb(),process[_0x4c8a60(0x255)]();}),module['exports']={'getDb':getDb,'initDatabase':initDatabase,'setOwnerSetting':setOwnerSetting,'getOwnerSetting':getOwnerSetting,'getAllOwnerSettings':getAllOwnerSettings,'setGroupSetting':setGroupSetting,'getGroupSetting':getGroupSetting,'getAllGroupSettings':getAllGroupSettings,'getAllGroupJids':getAllGroupJids,'deleteGroupSetting':deleteGroupSetting,'hasGroupSetting':hasGroupSetting,'getWarningCount':getWarningCount,'incrementWarning':incrementWarning,'resetWarning':resetWarning,'setWarningCount':setWarningCount,'getAllWarnings':getAllWarnings,'addBannedUser':addBannedUser,'removeBannedUser':removeBannedUser,'isBanned':isBanned,'getAllBannedUsers':getAllBannedUsers,'addSudoUser':addSudoUser,'removeSudoUser':removeSudoUser,'isSudo':isSudo,'getAllSudoUsers':getAllSudoUsers,'storeMessage':storeMessage,'getMessage':getMessage,'getMessagesByChat':getMessagesByChat,'deleteMessage':deleteMessage,'cleanOldMessages':cleanOldMessages,'getMessageCount':getMessageCount,'incrementMsgCount':incrementMsgCount,'getGroupMsgCounts':getGroupMsgCounts,'getAllGroupMsgCountJids':getAllGroupMsgCountJids,'resetGroupMsgCounts':resetGroupMsgCounts,'getGroupTotalMsgCount':getGroupTotalMsgCount,'getUserMsgCount':getUserMsgCount,'getBotMode':getBotMode,'setBotMode':setBotMode,'closeDb':closeDb};