react-native-email-imap-smtp 0.3.31 → 0.3.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/android/src/main/java/com/margelo/nitro/emailimapsmtp/EmailImapSmtp.kt +125 -56
- package/lib/typescript/server/src/imapHandler.d.ts +5 -0
- package/lib/typescript/server/src/imapHandler.d.ts.map +1 -1
- package/lib/typescript/server/src/index.d.ts.map +1 -1
- package/lib/typescript/server/src/smtpHandler.d.ts.map +1 -1
- package/lib/typescript/src/EmailImapSmtp.nitro.d.ts +2 -0
- package/lib/typescript/src/EmailImapSmtp.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +2 -0
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JSmtpServerInfo.hpp +8 -3
- package/nitrogen/generated/android/c++/JVariant_ImapServerInfo_SmtpServerInfo.hpp +1 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/SmtpServerInfo.kt +9 -4
- package/nitrogen/generated/ios/EmailImapSmtp-Swift-Cxx-Bridge.hpp +15 -15
- package/nitrogen/generated/ios/swift/SmtpServerInfo.swift +19 -1
- package/nitrogen/generated/shared/c++/SmtpServerInfo.hpp +7 -2
- package/package.json +1 -1
- package/server/lib/imapHandler.d.ts +5 -0
- package/server/lib/imapHandler.d.ts.map +1 -1
- package/server/lib/imapHandler.js +68 -22
- package/server/lib/imapHandler.js.map +1 -1
- package/server/lib/index.d.ts.map +1 -1
- package/server/lib/index.js +24 -9
- package/server/lib/index.js.map +1 -1
- package/server/lib/smtpHandler.d.ts.map +1 -1
- package/server/lib/smtpHandler.js +76 -8
- package/server/lib/smtpHandler.js.map +1 -1
- package/server/src/imapHandler.ts +72 -23
- package/server/src/imapflow.d.ts +31 -0
- package/server/src/index.ts +50 -16
- package/server/src/smtpHandler.ts +310 -242
- package/src/EmailImapSmtp.nitro.ts +2 -0
- package/src/types.ts +2 -0
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
|
|
33
33
|
#include <string>
|
|
34
34
|
#include <vector>
|
|
35
|
+
#include <optional>
|
|
35
36
|
|
|
36
37
|
namespace margelo::nitro::emailimapsmtp {
|
|
37
38
|
|
|
@@ -43,10 +44,11 @@ namespace margelo::nitro::emailimapsmtp {
|
|
|
43
44
|
std::string serverName SWIFT_PRIVATE;
|
|
44
45
|
std::vector<std::string> capabilities SWIFT_PRIVATE;
|
|
45
46
|
std::vector<std::string> supportedAuthMethods SWIFT_PRIVATE;
|
|
47
|
+
std::optional<double> maxMessageSize SWIFT_PRIVATE;
|
|
46
48
|
|
|
47
49
|
public:
|
|
48
50
|
SmtpServerInfo() = default;
|
|
49
|
-
explicit SmtpServerInfo(std::string serverName, std::vector<std::string> capabilities, std::vector<std::string> supportedAuthMethods): serverName(serverName), capabilities(capabilities), supportedAuthMethods(supportedAuthMethods) {}
|
|
51
|
+
explicit SmtpServerInfo(std::string serverName, std::vector<std::string> capabilities, std::vector<std::string> supportedAuthMethods, std::optional<double> maxMessageSize): serverName(serverName), capabilities(capabilities), supportedAuthMethods(supportedAuthMethods), maxMessageSize(maxMessageSize) {}
|
|
50
52
|
|
|
51
53
|
public:
|
|
52
54
|
friend bool operator==(const SmtpServerInfo& lhs, const SmtpServerInfo& rhs) = default;
|
|
@@ -64,7 +66,8 @@ namespace margelo::nitro {
|
|
|
64
66
|
return margelo::nitro::emailimapsmtp::SmtpServerInfo(
|
|
65
67
|
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "serverName"))),
|
|
66
68
|
JSIConverter<std::vector<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "capabilities"))),
|
|
67
|
-
JSIConverter<std::vector<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "supportedAuthMethods")))
|
|
69
|
+
JSIConverter<std::vector<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "supportedAuthMethods"))),
|
|
70
|
+
JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "maxMessageSize")))
|
|
68
71
|
);
|
|
69
72
|
}
|
|
70
73
|
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::emailimapsmtp::SmtpServerInfo& arg) {
|
|
@@ -72,6 +75,7 @@ namespace margelo::nitro {
|
|
|
72
75
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "serverName"), JSIConverter<std::string>::toJSI(runtime, arg.serverName));
|
|
73
76
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "capabilities"), JSIConverter<std::vector<std::string>>::toJSI(runtime, arg.capabilities));
|
|
74
77
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "supportedAuthMethods"), JSIConverter<std::vector<std::string>>::toJSI(runtime, arg.supportedAuthMethods));
|
|
78
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "maxMessageSize"), JSIConverter<std::optional<double>>::toJSI(runtime, arg.maxMessageSize));
|
|
75
79
|
return obj;
|
|
76
80
|
}
|
|
77
81
|
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
@@ -85,6 +89,7 @@ namespace margelo::nitro {
|
|
|
85
89
|
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "serverName")))) return false;
|
|
86
90
|
if (!JSIConverter<std::vector<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "capabilities")))) return false;
|
|
87
91
|
if (!JSIConverter<std::vector<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "supportedAuthMethods")))) return false;
|
|
92
|
+
if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "maxMessageSize")))) return false;
|
|
88
93
|
return true;
|
|
89
94
|
}
|
|
90
95
|
};
|
package/package.json
CHANGED
|
@@ -18,6 +18,11 @@ export declare function moveEmails(sessionId: string, uids: number[], destinatio
|
|
|
18
18
|
export declare function copyEmails(sessionId: string, uids: number[], destinationMailbox: string): Promise<void>;
|
|
19
19
|
export declare function deleteEmails(sessionId: string, uids: number[]): Promise<any>;
|
|
20
20
|
export declare function expunge(sessionId: string): Promise<void>;
|
|
21
|
+
/** 判断错误是否为连接断开类(message + code),供路由层决定是否重连重试 */
|
|
22
|
+
export declare function isConnectionError(err: any): boolean;
|
|
23
|
+
/** 会话客户端是否已死(补充判断:message 未命中但客户端确实断了,也应重连重试)。
|
|
24
|
+
* 会话不存在或已被显式断开 → 返回 false(不该自动重连)。 */
|
|
25
|
+
export declare function isSessionClosed(sessionId: string): boolean;
|
|
21
26
|
export declare function fetchAttachment(sessionId: string, uid: number, partId: string): Promise<any | null>;
|
|
22
27
|
export declare function fetchAllAttachments(sessionId: string, uid: number): Promise<any[]>;
|
|
23
28
|
export declare function startIdle(sessionId: string, callback: (notification: any) => void): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imapHandler.d.ts","sourceRoot":"","sources":["../src/imapHandler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"imapHandler.d.ts","sourceRoot":"","sources":["../src/imapHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,8 @@ exports.moveEmails = moveEmails;
|
|
|
23
23
|
exports.copyEmails = copyEmails;
|
|
24
24
|
exports.deleteEmails = deleteEmails;
|
|
25
25
|
exports.expunge = expunge;
|
|
26
|
+
exports.isConnectionError = isConnectionError;
|
|
27
|
+
exports.isSessionClosed = isSessionClosed;
|
|
26
28
|
exports.fetchAttachment = fetchAttachment;
|
|
27
29
|
exports.fetchAllAttachments = fetchAllAttachments;
|
|
28
30
|
exports.startIdle = startIdle;
|
|
@@ -42,6 +44,12 @@ function getSession(sessionId) {
|
|
|
42
44
|
}
|
|
43
45
|
return s;
|
|
44
46
|
}
|
|
47
|
+
/** 取会话并确保连接存活:若已断开则静默重建新 ImapFlow 并重选邮箱,再返回(静默重连入口) */
|
|
48
|
+
async function ensureSession(sessionId) {
|
|
49
|
+
const s = getSession(sessionId);
|
|
50
|
+
await ensureConnected(s);
|
|
51
|
+
return s;
|
|
52
|
+
}
|
|
45
53
|
function flagsSetToArray(flags) {
|
|
46
54
|
if (!flags)
|
|
47
55
|
return [];
|
|
@@ -212,7 +220,7 @@ async function disconnect(sessionId) {
|
|
|
212
220
|
}
|
|
213
221
|
// ─── 列出邮箱 ──────────────────────────────────────────────
|
|
214
222
|
async function listMailboxes(sessionId) {
|
|
215
|
-
const s =
|
|
223
|
+
const s = await ensureSession(sessionId);
|
|
216
224
|
const list = await s.client.list();
|
|
217
225
|
return list.map((mbox) => ({
|
|
218
226
|
name: mbox.name,
|
|
@@ -224,7 +232,7 @@ async function listMailboxes(sessionId) {
|
|
|
224
232
|
}
|
|
225
233
|
// ─── 选择邮箱 ──────────────────────────────────────────────
|
|
226
234
|
async function selectMailbox(sessionId, mailbox, readOnly) {
|
|
227
|
-
const s =
|
|
235
|
+
const s = await ensureSession(sessionId);
|
|
228
236
|
const lock = await s.client.getMailboxLock(mailbox);
|
|
229
237
|
try {
|
|
230
238
|
const mbox = await s.client.mailboxOpen(mailbox, { readOnly });
|
|
@@ -266,7 +274,7 @@ async function selectMailbox(sessionId, mailbox, readOnly) {
|
|
|
266
274
|
}
|
|
267
275
|
// ─── 刷新邮箱 ──────────────────────────────────────────────
|
|
268
276
|
async function refreshMailbox(sessionId) {
|
|
269
|
-
const s =
|
|
277
|
+
const s = await ensureSession(sessionId);
|
|
270
278
|
const mailbox = s.currentMailbox ?? 'INBOX';
|
|
271
279
|
const lock = await s.client.getMailboxLock(mailbox);
|
|
272
280
|
try {
|
|
@@ -307,7 +315,7 @@ async function refreshMailbox(sessionId) {
|
|
|
307
315
|
}
|
|
308
316
|
// ─── 获取文件夹列表 ─────────────────────────────────────────
|
|
309
317
|
async function fetchFolders(sessionId) {
|
|
310
|
-
const s =
|
|
318
|
+
const s = await ensureSession(sessionId);
|
|
311
319
|
const list = await s.client.list();
|
|
312
320
|
const folders = list.map((mbox) => ({
|
|
313
321
|
name: mbox.name,
|
|
@@ -346,23 +354,23 @@ async function fetchFolders(sessionId) {
|
|
|
346
354
|
}
|
|
347
355
|
// ─── 创建/删除/重命名/订阅文件夹 ──────────────────────────
|
|
348
356
|
async function createFolder(sessionId, folderName) {
|
|
349
|
-
const s =
|
|
357
|
+
const s = await ensureSession(sessionId);
|
|
350
358
|
await s.client.mailboxCreate(folderName);
|
|
351
359
|
}
|
|
352
360
|
async function deleteFolder(sessionId, folderName) {
|
|
353
|
-
const s =
|
|
361
|
+
const s = await ensureSession(sessionId);
|
|
354
362
|
await s.client.mailboxDelete(folderName);
|
|
355
363
|
}
|
|
356
364
|
async function renameFolder(sessionId, oldName, newName) {
|
|
357
|
-
const s =
|
|
365
|
+
const s = await ensureSession(sessionId);
|
|
358
366
|
await s.client.mailboxRename(oldName, newName);
|
|
359
367
|
}
|
|
360
368
|
async function subscribeFolder(sessionId, folderName) {
|
|
361
|
-
const s =
|
|
369
|
+
const s = await ensureSession(sessionId);
|
|
362
370
|
await s.client.mailboxSubscribe(folderName);
|
|
363
371
|
}
|
|
364
372
|
async function unsubscribeFolder(sessionId, folderName) {
|
|
365
|
-
const s =
|
|
373
|
+
const s = await ensureSession(sessionId);
|
|
366
374
|
await s.client.mailboxUnsubscribe(folderName);
|
|
367
375
|
}
|
|
368
376
|
// ─── 获取邮件 ──────────────────────────────────────────────
|
|
@@ -408,7 +416,7 @@ function decodePartText(buf, charset) {
|
|
|
408
416
|
}
|
|
409
417
|
}
|
|
410
418
|
async function fetchEmails(sessionId, options) {
|
|
411
|
-
const s =
|
|
419
|
+
const s = await ensureSession(sessionId);
|
|
412
420
|
const mailbox = options.mailbox ?? 'INBOX';
|
|
413
421
|
const lock = await s.client.getMailboxLock(mailbox);
|
|
414
422
|
try {
|
|
@@ -533,7 +541,7 @@ async function fetchEmails(sessionId, options) {
|
|
|
533
541
|
}
|
|
534
542
|
// ─── 按UID获取单封邮件 ─────────────────────────────────────
|
|
535
543
|
async function fetchEmailByUID(sessionId, uid) {
|
|
536
|
-
const s =
|
|
544
|
+
const s = await ensureSession(sessionId);
|
|
537
545
|
for await (const msg of s.client.fetch({ uid: String(uid) }, {
|
|
538
546
|
uid: true,
|
|
539
547
|
flags: true,
|
|
@@ -551,7 +559,7 @@ async function fetchEmailByUID(sessionId, uid) {
|
|
|
551
559
|
}
|
|
552
560
|
// ─── 搜索邮件 ──────────────────────────────────────────────
|
|
553
561
|
async function searchEmails(sessionId, criteria) {
|
|
554
|
-
const s =
|
|
562
|
+
const s = await ensureSession(sessionId);
|
|
555
563
|
const mailbox = criteria.mailbox ?? 'INBOX';
|
|
556
564
|
const lock = await s.client.getMailboxLock(mailbox);
|
|
557
565
|
try {
|
|
@@ -687,7 +695,7 @@ async function searchEmails(sessionId, criteria) {
|
|
|
687
695
|
}
|
|
688
696
|
// ─── 标记操作 ──────────────────────────────────────────────
|
|
689
697
|
async function markAsRead(sessionId, uids, silent) {
|
|
690
|
-
const s =
|
|
698
|
+
const s = await ensureSession(sessionId);
|
|
691
699
|
// 批量:一条 range 命令完成所有 UID,避免逐封往返
|
|
692
700
|
await s.client.messageFlagsAdd({ uid: uids.join(',') }, ['\\Seen'], {
|
|
693
701
|
silent,
|
|
@@ -695,7 +703,7 @@ async function markAsRead(sessionId, uids, silent) {
|
|
|
695
703
|
});
|
|
696
704
|
}
|
|
697
705
|
async function markAsFlagged(sessionId, uids, flagged) {
|
|
698
|
-
const s =
|
|
706
|
+
const s = await ensureSession(sessionId);
|
|
699
707
|
const range = { uid: uids.join(',') };
|
|
700
708
|
if (flagged) {
|
|
701
709
|
await s.client.messageFlagsAdd(range, ['\\Flagged'], { uid: true });
|
|
@@ -705,19 +713,19 @@ async function markAsFlagged(sessionId, uids, flagged) {
|
|
|
705
713
|
}
|
|
706
714
|
}
|
|
707
715
|
async function moveEmails(sessionId, uids, destinationMailbox) {
|
|
708
|
-
const s =
|
|
716
|
+
const s = await ensureSession(sessionId);
|
|
709
717
|
await s.client.messageMove({ uid: uids.join(',') }, destinationMailbox, {
|
|
710
718
|
uid: true,
|
|
711
719
|
});
|
|
712
720
|
}
|
|
713
721
|
async function copyEmails(sessionId, uids, destinationMailbox) {
|
|
714
|
-
const s =
|
|
722
|
+
const s = await ensureSession(sessionId);
|
|
715
723
|
await s.client.messageCopy({ uid: uids.join(',') }, destinationMailbox, {
|
|
716
724
|
uid: true,
|
|
717
725
|
});
|
|
718
726
|
}
|
|
719
727
|
async function deleteEmails(sessionId, uids) {
|
|
720
|
-
const s =
|
|
728
|
+
const s = await ensureSession(sessionId);
|
|
721
729
|
// 批量:一次 messageDelete 完成;失败则整批计入 failed(不再逐封往返)
|
|
722
730
|
try {
|
|
723
731
|
await s.client.messageDelete({ uid: uids.join(',') }, { uid: true });
|
|
@@ -732,7 +740,7 @@ async function deleteEmails(sessionId, uids) {
|
|
|
732
740
|
}
|
|
733
741
|
}
|
|
734
742
|
async function expunge(sessionId) {
|
|
735
|
-
const s =
|
|
743
|
+
const s = await ensureSession(sessionId);
|
|
736
744
|
const mailbox = s.currentMailbox ?? 'INBOX';
|
|
737
745
|
const lock = await s.client.getMailboxLock(mailbox);
|
|
738
746
|
try {
|
|
@@ -756,7 +764,17 @@ async function ensureConnected(s) {
|
|
|
756
764
|
const alive = !client.isClosed && client.state !== client.states.LOGOUT;
|
|
757
765
|
if (alive)
|
|
758
766
|
return;
|
|
759
|
-
// 连接已关闭 →
|
|
767
|
+
// 连接已关闭 → 重建新实例。并发安全:多个请求同时发现断开时
|
|
768
|
+
// 共享同一个重连 Promise(s.reconnecting),只真正重连一次,避免重连风暴。
|
|
769
|
+
if (s.reconnecting) {
|
|
770
|
+
return s.reconnecting;
|
|
771
|
+
}
|
|
772
|
+
s.reconnecting = doReconnect(s).finally(() => {
|
|
773
|
+
s.reconnecting = null;
|
|
774
|
+
});
|
|
775
|
+
return s.reconnecting;
|
|
776
|
+
}
|
|
777
|
+
async function doReconnect(s) {
|
|
760
778
|
if (!s.config) {
|
|
761
779
|
throw new Error('IMAP connection lost, but no config to reconnect');
|
|
762
780
|
}
|
|
@@ -777,6 +795,16 @@ async function ensureConnected(s) {
|
|
|
777
795
|
logger: false,
|
|
778
796
|
});
|
|
779
797
|
await newClient.connect();
|
|
798
|
+
// 重连期间若会话已被显式断开,则放弃这条新连接
|
|
799
|
+
if (!s.connected) {
|
|
800
|
+
try {
|
|
801
|
+
await newClient.logout();
|
|
802
|
+
}
|
|
803
|
+
catch {
|
|
804
|
+
/* ignore */
|
|
805
|
+
}
|
|
806
|
+
return;
|
|
807
|
+
}
|
|
780
808
|
s.client = newClient;
|
|
781
809
|
s.connected = true;
|
|
782
810
|
// 重建后需重新选中原邮箱(download/fetch 依赖当前 mailbox)
|
|
@@ -785,6 +813,24 @@ async function ensureConnected(s) {
|
|
|
785
813
|
}
|
|
786
814
|
console.log('[ensureConnected] reconnected, mailbox:', s.currentMailbox);
|
|
787
815
|
}
|
|
816
|
+
// ─── 断线判定(供路由层决定是否自动重试)──────────────────
|
|
817
|
+
/** 判断错误是否为连接断开类(message + code),供路由层决定是否重连重试 */
|
|
818
|
+
function isConnectionError(err) {
|
|
819
|
+
if (!err)
|
|
820
|
+
return false;
|
|
821
|
+
const msg = String(err?.message ?? '').toLowerCase();
|
|
822
|
+
const code = String(err?.code ?? '').toLowerCase();
|
|
823
|
+
const re = /connection closed|connection lost|disconnected|socket closed|socket hang up|econnreset|etimedout|econnrefused|broken pipe|server closed|closed connection|network error|operation timed out/i;
|
|
824
|
+
return re.test(msg) || re.test(code);
|
|
825
|
+
}
|
|
826
|
+
/** 会话客户端是否已死(补充判断:message 未命中但客户端确实断了,也应重连重试)。
|
|
827
|
+
* 会话不存在或已被显式断开 → 返回 false(不该自动重连)。 */
|
|
828
|
+
function isSessionClosed(sessionId) {
|
|
829
|
+
const s = sessions.get(sessionId);
|
|
830
|
+
if (!s || !s.connected)
|
|
831
|
+
return false;
|
|
832
|
+
return s.client.isClosed || s.client.state === s.client.states.LOGOUT;
|
|
833
|
+
}
|
|
788
834
|
/** 给 Promise 加超时,避免死连接上无限挂起 */
|
|
789
835
|
function withTimeout(p, ms, label) {
|
|
790
836
|
return new Promise((resolve, reject) => {
|
|
@@ -836,7 +882,7 @@ async function fetchAttachment(sessionId, uid, partId) {
|
|
|
836
882
|
}
|
|
837
883
|
}
|
|
838
884
|
async function fetchAllAttachments(sessionId, uid) {
|
|
839
|
-
const s =
|
|
885
|
+
const s = await ensureSession(sessionId);
|
|
840
886
|
// 确保已选中 mailbox(download() 依赖 this.mailbox,未选中会静默返回 {})
|
|
841
887
|
const mailbox = s.currentMailbox ?? 'INBOX';
|
|
842
888
|
if (!s.client.mailbox || s.client.mailbox.path !== mailbox) {
|
|
@@ -965,7 +1011,7 @@ function stopIdle(sessionId) {
|
|
|
965
1011
|
}
|
|
966
1012
|
// ─── Quota ─────────────────────────────────────────────────
|
|
967
1013
|
async function getQuota(sessionId, root) {
|
|
968
|
-
const s =
|
|
1014
|
+
const s = await ensureSession(sessionId);
|
|
969
1015
|
const quota = await s.client.getQuota(root);
|
|
970
1016
|
if (!quota) {
|
|
971
1017
|
return {
|
|
@@ -986,7 +1032,7 @@ async function getQuota(sessionId, root) {
|
|
|
986
1032
|
}
|
|
987
1033
|
// ─── Append ───────────────────────────────────────────────
|
|
988
1034
|
async function appendMessage(sessionId, mailbox, rawMimeData, flags) {
|
|
989
|
-
const s =
|
|
1035
|
+
const s = await ensureSession(sessionId);
|
|
990
1036
|
const content = Buffer.from(rawMimeData, 'base64');
|
|
991
1037
|
// APPENDLIMIT(RFC 7889):服务器接受的最大单封邮件字节数。
|
|
992
1038
|
// imapflow 已把它解析成数字;未通告时返回 boolean|undefined → 跳过检查。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imapHandler.js","sourceRoot":"","sources":["../src/imapHandler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"imapHandler.js","sourceRoot":"","sources":["../src/imapHandler.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,kCAAkC;AAClC,+DAA+D;;AA2J/D,0BA8CC;AAID,gCAWC;AAID,sCAUC;AAID,sCA6CC;AAID,wCAwCC;AAID,oCAuCC;AAID,oCAMC;AAED,oCAMC;AAED,oCAOC;AAED,0CAMC;AAED,8CAMC;AAmDD,kCAsIC;AAID,0CAuBC;AAID,oCA+IC;AAID,gCAWC;AAED,sCAYC;AAED,gCASC;AAED,gCASC;AAED,oCAgBC;AAED,0BAYC;AAmED,8CAOC;AAID,0CAIC;AAaD,0CAkDC;AAED,kDAuIC;AAMD,8BAKC;AAED,4BAEC;AAID,4BAmBC;AAID,sCAgCC;AAID,4CAEC;AA3rCD,uCAAuD;AACvD,2CAA0C;AAC1C,+BAAoC;AAcpC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;AAEhD,6DAA6D;AAE7D,SAAS,UAAU,CAAC,SAAiB;IACnC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,uDAAuD;AACvD,KAAK,UAAU,aAAa,CAAC,SAAiB;IAC5C,MAAM,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,eAAe,CAAC,CAAC,CAAC,CAAC;IACzB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,eAAe,CAAC,KAA8B;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,UAAU,CACjB,KAA+D;IAE/D,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;QAClB,KAAK,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;KACvB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,SAAkC;IACtD,MAAM,OAAO,GAA2B;QACtC,QAAQ,EAAE,MAAM;QAChB,YAAY,EAAE,UAAU;QACxB,WAAW,EAAE,SAAS;QACtB,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,QAAQ;KACrB,CAAC;IACF,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CACxD,CAAC;AACJ,CAAC;AAED,oCAAoC;AACpC,KAAK,UAAU,WAAW,CACxB,MAA0B;IAE1B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAY,EAAC,MAAM,CAAC,CAAC;QAC1C,OAAO;YACL,IAAI,EAAG,MAAM,CAAC,IAAe,IAAI,SAAS;YAC1C,IAAI,EAAG,MAAM,CAAC,IAAe,IAAI,SAAS;SAC3C,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,GAAQ,EACR,GAAW,EACX,IAAuC;IAEvC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,GAAG,CAAC,OAAO,YAAY,MAAM,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;gBACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW;IACX,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACjC,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC;YAAE,QAAQ,GAAG,MAAM,CAAC;aACzB,IAAI,CAAC,IAAI,CAAC;YAAE,QAAQ,GAAG,KAAK,CAAC;IACpC,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,QAAQ,GAAG,MAAM,CAAC;IACpB,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3D,QAAQ,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,sCAAsC;IACtC,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC;IAC7B,MAAM,QAAQ,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;IAC7E,MAAM,OAAO,GAAG,EAAE,EAAE,UAAU,EAAE,OAAO,IAAI,OAAO,CAAC;IAEnD,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,cAAc,EAAE,GAAG;QACnB,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAE;QAChC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QACtE,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,IAAI,IAAI,CAAC;QACpC,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,IAAI,IAAI,CAAC;QACpC,GAAG,EAAE,UAAU,CAAC,QAAQ,EAAE,GAAG,IAAI,IAAI,CAAC;QACtC,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC;QAC9C,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,IAAI,QAAQ,EAAE,IAAI,IAAI,EAAE;QAC7D,YAAY,EACV,GAAG,CAAC,YAAY,YAAY,IAAI;YAC9B,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE;YAChC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;QACpC,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;YACtB,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;YACtB,mBAAmB,EAAE,EAAE;SACxB;QACD,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QAC9B,OAAO;QACP,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC;QACnB,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE;QAC7D,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,SAAS;QAC9C,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;QAC3C,QAAQ;QACR,WAAW,EAAE,KAAK;QAClB,QAAQ;QACR,OAAO;KACR,CAAC;AACJ,CAAC;AAED,6DAA6D;AAEtD,KAAK,UAAU,OAAO,CAAC,MAAW;IACvC,MAAM,SAAS,GAAG,IAAA,SAAM,GAAE,CAAC;IAE3B,MAAM,MAAM,GAAG,IAAI,mBAAQ,CAAC;QAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,GAAG;QACxB,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,IAAI;QAC1B,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM,CAAC,QAAQ;YACrB,IAAI,EAAE,MAAM,CAAC,QAAQ;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC;QACD,iBAAiB,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;QAC1C,eAAe,EAAE,KAAK;QACtB,GAAG,EAAE;YACH,kBAAkB,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI;SACpD;QACD,MAAM,EAAE,MAAM,CAAC,KAAK;YAClB,CAAC,CAAC;gBACE,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC;gBAClD,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC;gBACnD,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC;gBACrD,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE;oBAClB,IAAI,MAAM,CAAC,KAAK;wBAAE,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;gBACrD,CAAC;aACF;YACH,CAAC,CAAC,KAAK;KACV,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS;YACT,UAAU,EAAE;gBACV,UAAU,EAAG,MAAM,CAAC,UAAkB,EAAE,UAAU,IAAI,MAAM,CAAC,IAAI;gBACjE,YAAY,EAAE,MAAM,CAAC,YAAY;oBAC/B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;oBACxC,CAAC,CAAC,EAAE;gBACN,YAAY,EAAE,KAAK;aACpB;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,mBAAmB,EAAE,CAAC;IACvE,CAAC;AACH,CAAC;AAED,2DAA2D;AAEpD,KAAK,UAAU,UAAU,CAAC,SAAiB;IAChD,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,CAAC;QACN,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,0DAA0D;AAEnD,KAAK,UAAU,aAAa,CAAC,SAAiB;IACnD,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;QAClC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK;KACrC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,0DAA0D;AAEnD,KAAK,UAAU,aAAa,CACjC,SAAiB,EACjB,OAAe,EACf,QAAiB;IAEjB,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/D,eAAe;QACf,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;YACxC,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,IAAI;YACjB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,CAAC,CAAC,cAAc,GAAG,OAAO,CAAC;QAC3B,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EACL,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;gBAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;gBACtB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;YACzB,WAAW,EACT,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;gBAClC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC1B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;YACnC,YAAY,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC;YAC9B,WAAW,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC;YAC3B,WAAW,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC;YAC3B,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,IAAI,CAAC,aAAa;gBAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC5B,CAAC,CAAC,SAAS;YACb,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,cAAc,EAAE,IAAI,CAAC,cAAc;gBACjC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;gBACtC,CAAC,CAAC,EAAE;SACP,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED,0DAA0D;AAEnD,KAAK,UAAU,cAAc,CAAC,SAAiB;IACpD,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,CAAC,CAAC,cAAc,IAAI,OAAO,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;YACxC,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,IAAI;YACjB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EACL,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;gBAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;gBACtB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;YACzB,WAAW,EACT,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;gBAClC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC1B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;YACnC,YAAY,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC;YAC9B,WAAW,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC;YAC3B,WAAW,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC;YAC3B,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,IAAI,CAAC,aAAa;gBAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC5B,CAAC,CAAC,SAAS;YACb,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,cAAc,EAAE,IAAI,CAAC,cAAc;gBACjC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;gBACtC,CAAC,CAAC,EAAE;SACP,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED,wDAAwD;AAEjD,KAAK,UAAU,YAAY,CAAC,SAAiB;IAClD,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;QAC7B,QAAQ,EAAE,EAAc;QACxB,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;QAClC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK;QACpC,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;KACf,CAAC,CAAC,CAAC;IAEJ,SAAS;IACT,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,MAAM;gBAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,SAAS;IACT,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;gBACvC,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACH,CAAC,CAAC,YAAY,GAAG,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC;YAClC,CAAC,CAAC,WAAW,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,aAAa;QACf,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,iDAAiD;AAE1C,KAAK,UAAU,YAAY,CAChC,SAAiB,EACjB,UAAkB;IAElB,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,SAAiB,EACjB,UAAkB;IAElB,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,SAAiB,EACjB,OAAe,EACf,OAAe;IAEf,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,SAAiB,EACjB,UAAkB;IAElB,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,SAAiB,EACjB,UAAkB;IAElB,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;AAChD,CAAC;AAED,0DAA0D;AAE1D,iGAAiG;AACjG,SAAS,aAAa,CACpB,EAAO;IAKP,MAAM,GAAG,GAGL,EAAE,CAAC;IACP,SAAS,IAAI,CAAC,IAAS,EAAE,MAAc;QACrC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,CAAS,EAAE,EAAE;gBAChD,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;QACzC,IAAI,IAAI,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACrD,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC;QAC9C,CAAC;aAAM,IAAI,IAAI,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACb,OAAO,GAAG,CAAC;AACb,CAAC;AAED,oEAAoE;AACpE,SAAS,cAAc,CAAC,GAAW,EAAE,OAAgB;IACnD,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7E,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAQ,CAAC;QAC3C,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;IAC3B,CAAC;IACD,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,QAAQ,CAAC,EAAoB,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,SAAiB,EACjB,OAAY;IAEZ,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;IAE3C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,2BAA2B;QAC3B,MAAM,eAAe,GACnB,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC;QACxD,MAAM,IAAI,GAAG,eAAe;YAC1B,CAAC,CAAE,CAAC,CAAC,MAAM,CAAC,OAAe;YAC3B,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC,cAAc,GAAG,OAAO,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QAE/B,SAAS;QACT,IAAI,KAAK,GAAiB,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QACzC,IAAI,SAAS,GAAsB,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QAEjD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC3D,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;gBAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;gBACtB,KAAK;oBACH,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAS,EAAE,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC;gBACtB,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;YACnD,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACvB,KAAK,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5C,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC;YACtB,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YACvB,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7C,IAAI,IAAI,GAAG,EAAE;gBAAE,OAAO,EAAE,CAAC;YACzB,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC;YACtB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;YAC5C,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QACtC,CAAC;QAED,OAAO;QACP,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,EAAE,GAAQ,EAAE,CAAC;YACnB,IAAI,OAAO,CAAC,KAAK;gBAAE,EAAE,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,OAAO,CAAC,MAAM;gBAAE,EAAE,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACzD,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;QAC9B,CAAC;QAED,kDAAkD;QAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC;QAC7C,MAAM,MAAM,GAAQ;YAClB,GAAG,EAAE,IAAI;YACT,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,2CAA2C;QAC3C,MAAM,OAAO,GAAU,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAe,CAAC;QACrC,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,SAAS,GAGF,IAAI,CAAC;QAChB,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;YACjE,GAAG,EAAE,CAAC;YACN,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC1B,IAAI,QAAQ,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;gBAChD,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,IAAI,QAAQ,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACjE,MAAM,SAAS,GAAU,EAAE,CAAC;YAC5B,IAAI,SAAS,CAAC,KAAK;gBAAE,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAClE,IAAI,SAAS,CAAC,IAAI;gBAAE,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAChE,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAClC,KAAK,EACL,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EACxB,SAAS,CACV,EAAE,CAAC;gBACF,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,KAAK,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;oBACzB,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAO,EAAE,EAAE;YACtE,IAAI,IAAkD,CAAC;YACvD,IAAI,QAAQ,IAAI,YAAY,IAAI,SAAS,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,CAC9B,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC/D,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;oBACpB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACzC,IAAI,GAAG;wBACL,IAAI,GAAG;4BACL,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;4BACf,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;yBACnD,CAAC;gBACN,CAAC;gBACD,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;oBACnB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxC,IAAI,GAAG;wBACL,IAAI,GAAG;4BACL,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;4BACf,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;yBAClD,CAAC;gBACN,CAAC;YACH,CAAC;YACD,OAAO,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,QAAQ,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED,uDAAuD;AAEhD,KAAK,UAAU,eAAe,CACnC,SAAiB,EACjB,GAAW;IAEX,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CACpC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EACpB;QACE,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;QACd,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;KACb,EACD,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,EAAE,CAAC;QACF,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpE,OAAO,gBAAgB,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0DAA0D;AAEnD,KAAK,UAAU,YAAY,CAChC,SAAiB,EACjB,QAAa;IAEb,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC;IAE5C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,oBAAoB;QACpB,MAAM,eAAe,GACnB,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC;QACxD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,WAAW,GAAiB,EAAE,CAAC;QAErC,IAAI,QAAQ,CAAC,IAAI;YAAE,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACpD,IAAI,QAAQ,CAAC,OAAO;YAAE,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC7D,IAAI,QAAQ,CAAC,IAAI;YAAE,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACpD,IAAI,QAAQ,CAAC,EAAE;YAAE,WAAW,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;QAC9C,IAAI,QAAQ,CAAC,IAAI;YAAE,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACpD,IAAI,QAAQ,CAAC,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjE,IAAI,QAAQ,CAAC,MAAM;YAAE,WAAW,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,QAAQ,CAAC,EAAE;YAAE,WAAW,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,QAAQ,CAAC,SAAS;YACpB,WAAW,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,QAAQ,CAAC,UAAU;YACrB,WAAW,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;YAAE,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC3E,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;YAAE,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAClE,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;YACjC,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC3C,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YAAE,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QACrE,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;YAAE,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC3E,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;YAAE,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QACxE,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;YAAE,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QAE3E,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,WAAW,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAQ,CAAC;QACnD,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACxE,CAAC;QAED,+BAA+B;QAC/B,MAAM,UAAU,GAAqB,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;YACtE,GAAG,EAAE,IAAI;SACV,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEtD,IAAI,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAC3B,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACzC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC;QAC9C,MAAM,MAAM,GAAQ;YAClB,GAAG,EAAE,IAAI;YACT,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,2CAA2C;QAC3C,MAAM,OAAO,GAAU,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAe,CAAC;QACrC,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,SAAS,GAGF,IAAI,CAAC;QAChB,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CACpC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAQ,EAAE,EAC9B,MAAM,EACN,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,EAAE,CAAC;YACF,GAAG,EAAE,CAAC;YACN,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC1B,IAAI,QAAQ,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;gBAChD,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,IAAI,QAAQ,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACjE,MAAM,SAAS,GAAU,EAAE,CAAC;YAC5B,IAAI,SAAS,CAAC,KAAK;gBAAE,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAClE,IAAI,SAAS,CAAC,IAAI;gBAAE,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAChE,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAClC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAQ,EAAE,EAC9B,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EACxB,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,EAAE,CAAC;gBACF,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,KAAK,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;oBACzB,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAO,EAAE,EAAE;YACtE,IAAI,IAAkD,CAAC;YACvD,IAAI,QAAQ,IAAI,YAAY,IAAI,SAAS,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,CAC9B,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC/D,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;oBACpB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACzC,IAAI,GAAG;wBACL,IAAI,GAAG;4BACL,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;4BACf,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;yBACnD,CAAC;gBACN,CAAC;gBACD,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;oBACnB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxC,IAAI,GAAG;wBACL,IAAI,GAAG;4BACL,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;4BACf,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;yBAClD,CAAC;gBACN,CAAC;YACH,CAAC;YACD,OAAO,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED,0DAA0D;AAEnD,KAAK,UAAU,UAAU,CAC9B,SAAiB,EACjB,IAAc,EACd,MAAe;IAEf,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,gCAAgC;IAChC,MAAM,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;QAClE,MAAM;QACN,GAAG,EAAE,IAAI;KACV,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,SAAiB,EACjB,IAAc,EACd,OAAgB;IAEhB,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACtC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,SAAiB,EACjB,IAAc,EACd,kBAA0B;IAE1B,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,kBAAkB,EAAE;QACtE,GAAG,EAAE,IAAI;KACV,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,SAAiB,EACjB,IAAc,EACd,kBAA0B;IAE1B,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,kBAAkB,EAAE;QACtE,GAAG,EAAE,IAAI;KACV,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,SAAiB,EACjB,IAAc;IAEd,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,gDAAgD;IAChD,IAAI,CAAC;QACH,MAAM,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACvC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO;YACL,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,GAAG,EAAE,OAAO,IAAI,eAAe;SACvC,CAAC;IACJ,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,SAAiB;IAC7C,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,CAAC,CAAC,cAAc,IAAI,OAAO,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACpC,2CAA2C;QAC3C,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC9B,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED,yDAAyD;AAEzD;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAAC,CAAc;IAC3C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IACxE,IAAI,KAAK;QAAE,OAAO;IAElB,iCAAiC;IACjC,kDAAkD;IAClD,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;QACnB,OAAO,CAAC,CAAC,YAAY,CAAC;IACxB,CAAC;IACD,CAAC,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QAC3C,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,CAAC,YAAY,CAAC;AACxB,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,CAAc;IACvC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,mBAAQ,CAAC;QAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG;QACrB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI;QACvB,IAAI,EAAE;YACJ,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B;QACD,iBAAiB,EAAE,GAAG,CAAC,OAAO,IAAI,KAAK;QACvC,eAAe,EAAE,KAAK;QACtB,GAAG,EAAE,EAAE,kBAAkB,EAAE,GAAG,CAAC,gBAAgB,IAAI,IAAI,EAAE;QACzD,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IACH,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;IAC1B,yBAAyB;IACzB,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QACD,OAAO;IACT,CAAC;IACD,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;IACnB,2CAA2C;IAC3C,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;QACrB,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;AAC3E,CAAC;AAED,2CAA2C;AAE3C,gDAAgD;AAChD,SAAgB,iBAAiB,CAAC,GAAQ;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACnD,MAAM,EAAE,GACN,8LAA8L,CAAC;IACjM,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED;uCACuC;AACvC,SAAgB,eAAe,CAAC,SAAiB;IAC/C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AACxE,CAAC;AAED,+BAA+B;AAC/B,SAAS,WAAW,CAAI,CAAa,EAAE,EAAU,EAAE,KAAa;IAC9D,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1E,CAAC,CAAC,IAAI,CACJ,CAAC,CAAC,EAAE,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3C,CAAC,CAAC,EAAE,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,SAAiB,EACjB,GAAW,EACX,MAAc;IAEd,MAAM,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAEhC,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,8CAA8C;QAC9C,0CAA0C;QAC1C,gDAAgD;QAChD,mCAAmC;QACnC,uDAAuD;QACvD,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,iBAAiB,IAAI,IAAI,GAAG,IAAI,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAChE,KAAK,EACL,YAAY,MAAM,EAAE,CACrB,CAAC;QACF,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO;YACL,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE;YACtC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,0BAA0B;YACjE,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,MAAM;YACpB,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAChC,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,KAAK,QAAQ;YAClE,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,YAAY;YAC7D,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO;SAC/B,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO,MAAM,UAAU,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,qBAAqB;QACrB,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3E,IAAI,CAAC;YACH,MAAM,eAAe,CAAC,CAAC,CAAC,CAAC;YACzB,OAAO,MAAM,UAAU,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,EAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,mBAAmB,CACvC,SAAiB,EACjB,GAAW;IAEX,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IAEzC,wDAAwD;IACxD,MAAM,OAAO,GAAG,CAAC,CAAC,cAAc,IAAI,OAAO,CAAC;IAC5C,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3D,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC,CAAC,cAAc,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,4CAA4C;IAC5C,6DAA6D;IAC7D,uDAAuD;IACvD,uCAAuC;IACvC,IAAI,aAAa,GAAQ,IAAI,CAAC;IAC9B,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CACpC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EACpB,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAClC,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,EAAE,CAAC;QACF,IAAI,CAAC,aAAa;YAAE,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;IACxD,CAAC;IACD,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,CAAC;IAE9B,sCAAsC;IACtC,OAAO,CAAC,GAAG,CACT,sCAAsC,EACtC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAC9B,CAAC;IAEF,gDAAgD;IAChD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,MAAM,cAAc,GAA2B,EAAE,CAAC;IAClD,MAAM,aAAa,GAA2B,EAAE,CAAC;IACjD,SAAS,IAAI,CAAC,IAAS,EAAE,MAAc;QACrC,4CAA4C;QAC5C,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,CAAS,EAAE,EAAE;gBAChD,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,mDAAmD;QACnD,0DAA0D;QAC1D,kCAAkC;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,YAAY,GAChB,IAAI,CAAC,WAAW,KAAK,YAAY;YACjC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ;YACtC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;QAC1B,IAAI,YAAY,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,IAAI,GAAG,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,kDAAkD;YAClD,sDAAsD;YACtD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;gBACpD,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YAChC,CAAC;YACD,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;gBAC9D,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1C,CAAC;YACD,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACtC,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;IAEnD,SAAS;IACT,MAAM,OAAO,GAAU,EAAE,CAAC;IAC1B,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1D,IAAI,GAAG,EAAE,CAAC;gBACR,kBAAkB;gBAClB,6BAA6B;gBAC7B,iDAAiD;gBACjD,oCAAoC;gBACpC,iDAAiD;gBACjD,mDAAmD;gBACnD,kCAAkC;gBAClC,+CAA+C;gBAC/C,yCAAyC;gBACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;gBACnC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC;gBACtD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;yBACjD,WAAW,EAAE;yBACb,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACtB,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;oBACzC,MAAM,YAAY,GAAG,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,GAAG,CAAC,CAAC;oBAEpE,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;wBAC7B,yBAAyB;wBACzB,2BAA2B;wBAC3B,iDAAiD;wBACjD,MAAM,UAAU,GAAa;4BAC3B,QAAQ;4BACR,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;yBACjD,CAAC;wBACF,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;wBAClE,IAAI,CAAC,OAAO,EAAE,CAAC;4BACb,MAAM,GAAG,GAAG,iBAAiB,GAAG,CAAC,QAAQ,OAAO,MAAM,WAAW,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;4BACzF,OAAO,CAAC,IAAI,CAAC,wCAAwC,GAAG,QAAQ,CAAC,CAAC;4BAClE,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC;wBAC7B,CAAC;oBACH,CAAC;yBAAM,IAAI,QAAQ,EAAE,CAAC;wBACpB,gDAAgD;wBAChD,iCAAiC;wBACjC,IAAI,MAAM,GAAG,QAAQ,GAAG,GAAG,EAAE,CAAC;4BAC5B,MAAM,GAAG,GAAG,WAAW,GAAG,CAAC,QAAQ,OAAO,MAAM,WAAW,QAAQ,UAAU,CAAC;4BAC9E,OAAO,CAAC,IAAI,CAAC,wCAAwC,GAAG,QAAQ,CAAC,CAAC;4BAClE,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC;wBAC7B,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE,MAAM,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,UAAU;QACZ,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CACT,mCAAmC,EACnC,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAC/B,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,8DAA8D;AAE9D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuC,CAAC;AAErE,SAAgB,SAAS,CACvB,SAAiB,EACjB,QAAqC;IAErC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,QAAQ,CAAC,SAAiB;IACxC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,8DAA8D;AAEvD,KAAK,UAAU,QAAQ,CAAC,SAAiB,EAAE,IAAa;IAC7D,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,IAAI,IAAI,EAAE;SACjB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC;QACrC,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC;QACvC,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI;QAClC,aAAa,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK;QACpC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE;KAC/B,CAAC;AACJ,CAAC;AAED,6DAA6D;AAEtD,KAAK,UAAU,aAAa,CACjC,SAAiB,EACjB,OAAe,EACf,WAAmB,EACnB,KAAsB;IAEtB,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAEnD,yCAAyC;IACzC,qDAAqD;IACrD,0DAA0D;IAC1D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC7D,IACE,OAAO,WAAW,KAAK,QAAQ;QAC/B,WAAW,GAAG,CAAC;QACf,OAAO,CAAC,MAAM,GAAG,WAAW,EAC5B,CAAC;QACD,MAAM,IAAI,KAAK,CACb,QAAQ,OAAO,CAAC,MAAM,2BAA2B,WAAW,KAAK,CAClE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;IACpE,CAAC;IACD,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAC/B,CAAC;AACJ,CAAC;AAED,0DAA0D;AAE1D,SAAgB,gBAAgB;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkHA,OAAO,OAAO,MAAM,SAAS,CAAC;AAO9B,QAAA,MAAM,GAAG,EAAE,OAAO,CAAC,OAAmB,CAAC;AACvC,QAAA,MAAM,MAAM,mHAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkHA,OAAO,OAAO,MAAM,SAAS,CAAC;AAO9B,QAAA,MAAM,GAAG,EAAE,OAAO,CAAC,OAAmB,CAAC;AACvC,QAAA,MAAM,MAAM,mHAAoB,CAAC;AA4fjC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAsB,WAAW,CAC/B,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC,CAuBvB;AAQD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC"}
|
package/server/lib/index.js
CHANGED
|
@@ -222,6 +222,21 @@ app.use((req, _res, next) => {
|
|
|
222
222
|
// ══════════════════════════════════════════════════════════════
|
|
223
223
|
// IMAP Routes
|
|
224
224
|
// ══════════════════════════════════════════════════════════════
|
|
225
|
+
// ─── 带静默重连的 IMAP 读操作包装 ─────────────────────────
|
|
226
|
+
/** 连接类错误 → 静默重连(fn 内部 ensureSession 会自动重连)→ 同参数重试一次。
|
|
227
|
+
* 只用于读操作;写操作不自动重试(避免断线重试造成重复执行)。 */
|
|
228
|
+
async function withImapReconnect(sessionId, fn) {
|
|
229
|
+
try {
|
|
230
|
+
return await fn();
|
|
231
|
+
}
|
|
232
|
+
catch (err) {
|
|
233
|
+
if (imap.isConnectionError(err) || imap.isSessionClosed(sessionId)) {
|
|
234
|
+
console.log('[imap] connection error, auto-reconnect & retry:', err?.message);
|
|
235
|
+
return await fn(); // 只重试一次;再失败则向上抛
|
|
236
|
+
}
|
|
237
|
+
throw err;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
225
240
|
// ─── 连接 ─────────────────────────────────────────────────
|
|
226
241
|
app.post('/api/imap/connect', async (req, res) => {
|
|
227
242
|
try {
|
|
@@ -244,7 +259,7 @@ app.post('/api/imap/disconnect', async (req, res) => {
|
|
|
244
259
|
// ─── 邮箱/文件夹 ──────────────────────────────────────────
|
|
245
260
|
app.post('/api/imap/listMailboxes', async (req, res) => {
|
|
246
261
|
try {
|
|
247
|
-
const result = await imap.listMailboxes(req.body.sessionId);
|
|
262
|
+
const result = await withImapReconnect(req.body.sessionId, () => imap.listMailboxes(req.body.sessionId));
|
|
248
263
|
res.json(result);
|
|
249
264
|
}
|
|
250
265
|
catch (err) {
|
|
@@ -253,7 +268,7 @@ app.post('/api/imap/listMailboxes', async (req, res) => {
|
|
|
253
268
|
});
|
|
254
269
|
app.post('/api/imap/selectMailbox', async (req, res) => {
|
|
255
270
|
try {
|
|
256
|
-
const result = await imap.selectMailbox(req.body.sessionId, req.body.mailbox, req.body.readOnly ?? false);
|
|
271
|
+
const result = await withImapReconnect(req.body.sessionId, () => imap.selectMailbox(req.body.sessionId, req.body.mailbox, req.body.readOnly ?? false));
|
|
257
272
|
res.json(result);
|
|
258
273
|
}
|
|
259
274
|
catch (err) {
|
|
@@ -262,7 +277,7 @@ app.post('/api/imap/selectMailbox', async (req, res) => {
|
|
|
262
277
|
});
|
|
263
278
|
app.post('/api/imap/refreshMailbox', async (req, res) => {
|
|
264
279
|
try {
|
|
265
|
-
const result = await imap.refreshMailbox(req.body.sessionId);
|
|
280
|
+
const result = await withImapReconnect(req.body.sessionId, () => imap.refreshMailbox(req.body.sessionId));
|
|
266
281
|
res.json(result);
|
|
267
282
|
}
|
|
268
283
|
catch (err) {
|
|
@@ -271,7 +286,7 @@ app.post('/api/imap/refreshMailbox', async (req, res) => {
|
|
|
271
286
|
});
|
|
272
287
|
app.post('/api/imap/fetchFolders', async (req, res) => {
|
|
273
288
|
try {
|
|
274
|
-
const result = await imap.fetchFolders(req.body.sessionId);
|
|
289
|
+
const result = await withImapReconnect(req.body.sessionId, () => imap.fetchFolders(req.body.sessionId));
|
|
275
290
|
res.json(result);
|
|
276
291
|
}
|
|
277
292
|
catch (err) {
|
|
@@ -326,7 +341,7 @@ app.post('/api/imap/unsubscribeFolder', async (req, res) => {
|
|
|
326
341
|
// ─── 获取邮件 ─────────────────────────────────────────────
|
|
327
342
|
app.post('/api/imap/fetchEmails', async (req, res) => {
|
|
328
343
|
try {
|
|
329
|
-
const result = await imap.fetchEmails(req.body.sessionId, req.body.options);
|
|
344
|
+
const result = await withImapReconnect(req.body.sessionId, () => imap.fetchEmails(req.body.sessionId, req.body.options));
|
|
330
345
|
res.json(result);
|
|
331
346
|
}
|
|
332
347
|
catch (err) {
|
|
@@ -335,7 +350,7 @@ app.post('/api/imap/fetchEmails', async (req, res) => {
|
|
|
335
350
|
});
|
|
336
351
|
app.post('/api/imap/fetchEmailByUID', async (req, res) => {
|
|
337
352
|
try {
|
|
338
|
-
const result = await imap.fetchEmailByUID(req.body.sessionId, req.body.uid);
|
|
353
|
+
const result = await withImapReconnect(req.body.sessionId, () => imap.fetchEmailByUID(req.body.sessionId, req.body.uid));
|
|
339
354
|
res.json(result);
|
|
340
355
|
}
|
|
341
356
|
catch (err) {
|
|
@@ -344,7 +359,7 @@ app.post('/api/imap/fetchEmailByUID', async (req, res) => {
|
|
|
344
359
|
});
|
|
345
360
|
app.post('/api/imap/searchEmails', async (req, res) => {
|
|
346
361
|
try {
|
|
347
|
-
const result = await imap.searchEmails(req.body.sessionId, req.body.criteria);
|
|
362
|
+
const result = await withImapReconnect(req.body.sessionId, () => imap.searchEmails(req.body.sessionId, req.body.criteria));
|
|
348
363
|
res.json(result);
|
|
349
364
|
}
|
|
350
365
|
catch (err) {
|
|
@@ -418,7 +433,7 @@ app.post('/api/imap/fetchAttachment', async (req, res) => {
|
|
|
418
433
|
});
|
|
419
434
|
app.post('/api/imap/fetchAllAttachments', async (req, res) => {
|
|
420
435
|
try {
|
|
421
|
-
const result = await imap.fetchAllAttachments(req.body.sessionId, req.body.uid);
|
|
436
|
+
const result = await withImapReconnect(req.body.sessionId, () => imap.fetchAllAttachments(req.body.sessionId, req.body.uid));
|
|
422
437
|
res.json(result);
|
|
423
438
|
}
|
|
424
439
|
catch (err) {
|
|
@@ -450,7 +465,7 @@ app.post('/api/imap/stopIdle', async (req, res) => {
|
|
|
450
465
|
// ─── Quota & Append ───────────────────────────────────────
|
|
451
466
|
app.post('/api/imap/getQuota', async (req, res) => {
|
|
452
467
|
try {
|
|
453
|
-
const result = await imap.getQuota(req.body.sessionId, req.body.root);
|
|
468
|
+
const result = await withImapReconnect(req.body.sessionId, () => imap.getQuota(req.body.sessionId, req.body.root));
|
|
454
469
|
res.json(result);
|
|
455
470
|
}
|
|
456
471
|
catch (err) {
|