@openora/core 0.4.1-canary.59 → 0.4.1-canary.62
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/dist/.tsbuildinfo +1 -1
- package/dist/admin-console/plugin.d.ts +2 -0
- package/dist/admin-console/plugin.d.ts.map +1 -1
- package/dist/analytics/plugin.d.ts +2 -0
- package/dist/analytics/plugin.d.ts.map +1 -1
- package/dist/audit/plugin.d.ts +2 -0
- package/dist/audit/plugin.d.ts.map +1 -1
- package/dist/audit/plugin.js +13 -0
- package/dist/audit/plugin.js.map +1 -1
- package/dist/casino/gaming/plugin.d.ts +2 -0
- package/dist/casino/gaming/plugin.d.ts.map +1 -1
- package/dist/casino/lobby/plugin.d.ts +2 -0
- package/dist/casino/lobby/plugin.d.ts.map +1 -1
- package/dist/cms/plugin.d.ts +2 -0
- package/dist/cms/plugin.d.ts.map +1 -1
- package/dist/compliance/plugin.d.ts +2 -0
- package/dist/compliance/plugin.d.ts.map +1 -1
- package/dist/contracts/adapters/audit.d.ts +1 -1
- package/dist/contracts/adapters/audit.d.ts.map +1 -1
- package/dist/contracts/adapters/audit.js.map +1 -1
- package/dist/contracts/adapters/gift-commands.d.ts +54 -0
- package/dist/contracts/adapters/gift-commands.d.ts.map +1 -0
- package/dist/contracts/adapters/gift-commands.js +11 -0
- package/dist/contracts/adapters/gift-commands.js.map +1 -0
- package/dist/contracts/adapters/index.d.ts +4 -0
- package/dist/contracts/adapters/index.d.ts.map +1 -1
- package/dist/contracts/adapters/index.js +2 -0
- package/dist/contracts/adapters/index.js.map +1 -1
- package/dist/contracts/adapters/rain-commands.d.ts +23 -0
- package/dist/contracts/adapters/rain-commands.d.ts.map +1 -0
- package/dist/contracts/adapters/rain-commands.js +12 -0
- package/dist/contracts/adapters/rain-commands.js.map +1 -0
- package/dist/contracts/schemas/chat-command-metadata.d.ts +12 -0
- package/dist/contracts/schemas/chat-command-metadata.d.ts.map +1 -1
- package/dist/contracts/schemas/chat-command-metadata.js +10 -0
- package/dist/contracts/schemas/chat-command-metadata.js.map +1 -1
- package/dist/contracts/schemas/chat-command.d.ts +25 -0
- package/dist/contracts/schemas/chat-command.d.ts.map +1 -1
- package/dist/contracts/schemas/chat-command.js +13 -1
- package/dist/contracts/schemas/chat-command.js.map +1 -1
- package/dist/contracts/schemas/events.d.ts +15 -3
- package/dist/contracts/schemas/events.d.ts.map +1 -1
- package/dist/contracts/schemas/events.js +17 -6
- package/dist/contracts/schemas/events.js.map +1 -1
- package/dist/contracts/schemas/identity.d.ts +2 -1
- package/dist/contracts/schemas/identity.d.ts.map +1 -1
- package/dist/contracts/schemas/identity.js +5 -1
- package/dist/contracts/schemas/identity.js.map +1 -1
- package/dist/engagement/chat/__tests__/chat.service.int.test.js +211 -8
- package/dist/engagement/chat/__tests__/chat.service.int.test.js.map +1 -1
- package/dist/engagement/chat/contract/index.d.ts +154 -8
- package/dist/engagement/chat/contract/index.d.ts.map +1 -1
- package/dist/engagement/chat/contract/index.js +44 -2
- package/dist/engagement/chat/contract/index.js.map +1 -1
- package/dist/engagement/chat/drizzle/migrations/0004_panoramic_robin_chapel.sql +6 -0
- package/dist/engagement/chat/drizzle/migrations/meta/0004_snapshot.json +666 -0
- package/dist/engagement/chat/drizzle/migrations/meta/_journal.json +7 -0
- package/dist/engagement/chat/plugin.d.ts +2 -0
- package/dist/engagement/chat/plugin.d.ts.map +1 -1
- package/dist/engagement/chat/router/index.d.ts +126 -8
- package/dist/engagement/chat/router/index.d.ts.map +1 -1
- package/dist/engagement/chat/router/index.js +10 -2
- package/dist/engagement/chat/router/index.js.map +1 -1
- package/dist/engagement/chat/schema/index.d.ts +50 -0
- package/dist/engagement/chat/schema/index.d.ts.map +1 -1
- package/dist/engagement/chat/schema/index.js +15 -3
- package/dist/engagement/chat/schema/index.js.map +1 -1
- package/dist/engagement/chat/service/chat.service.d.ts +95 -9
- package/dist/engagement/chat/service/chat.service.d.ts.map +1 -1
- package/dist/engagement/chat/service/chat.service.js +115 -24
- package/dist/engagement/chat/service/chat.service.js.map +1 -1
- package/dist/engagement/chat-commands/contract/index.d.ts +143 -71
- package/dist/engagement/chat-commands/contract/index.d.ts.map +1 -1
- package/dist/engagement/chat-commands/contract/index.js +48 -70
- package/dist/engagement/chat-commands/contract/index.js.map +1 -1
- package/dist/engagement/chat-commands/plugin.d.ts +3 -1
- package/dist/engagement/chat-commands/plugin.d.ts.map +1 -1
- package/dist/engagement/chat-commands/plugin.js +4 -4
- package/dist/engagement/chat-commands/plugin.js.map +1 -1
- package/dist/engagement/chat-commands/router/index.d.ts +149 -83
- package/dist/engagement/chat-commands/router/index.d.ts.map +1 -1
- package/dist/engagement/chat-commands/router/index.js +36 -26
- package/dist/engagement/chat-commands/router/index.js.map +1 -1
- package/dist/engagement/chat-commands/seed/index.d.ts.map +1 -1
- package/dist/engagement/chat-commands/seed/index.js +12 -0
- package/dist/engagement/chat-commands/seed/index.js.map +1 -1
- package/dist/engagement/chat-commands/service/__tests__/chat-commands.service.test.js +197 -733
- package/dist/engagement/chat-commands/service/__tests__/chat-commands.service.test.js.map +1 -1
- package/dist/engagement/chat-commands/service/chat-commands.service.d.ts +43 -68
- package/dist/engagement/chat-commands/service/chat-commands.service.d.ts.map +1 -1
- package/dist/engagement/chat-commands/service/chat-commands.service.js +138 -571
- package/dist/engagement/chat-commands/service/chat-commands.service.js.map +1 -1
- package/dist/engagement/contracts.d.ts +1 -0
- package/dist/engagement/contracts.d.ts.map +1 -1
- package/dist/engagement/contracts.js +1 -0
- package/dist/engagement/contracts.js.map +1 -1
- package/dist/engagement/index.d.ts +1 -0
- package/dist/engagement/index.d.ts.map +1 -1
- package/dist/engagement/index.js +1 -0
- package/dist/engagement/index.js.map +1 -1
- package/dist/engagement/notifications/plugin.d.ts +2 -0
- package/dist/engagement/notifications/plugin.d.ts.map +1 -1
- package/dist/engagement/server.d.ts +1 -0
- package/dist/engagement/server.d.ts.map +1 -1
- package/dist/engagement/server.js +1 -0
- package/dist/engagement/server.js.map +1 -1
- package/dist/engagement/social-transfers/contract/index.d.ts +67 -0
- package/dist/engagement/social-transfers/contract/index.d.ts.map +1 -0
- package/dist/engagement/social-transfers/contract/index.js +21 -0
- package/dist/engagement/social-transfers/contract/index.js.map +1 -0
- package/dist/engagement/social-transfers/drizzle/migrations/0000_clammy_rattler.sql +46 -0
- package/dist/engagement/social-transfers/drizzle/migrations/meta/0000_snapshot.json +287 -0
- package/dist/engagement/social-transfers/drizzle/migrations/meta/_journal.json +13 -0
- package/dist/engagement/social-transfers/drizzle.config.d.ts +4 -0
- package/dist/engagement/social-transfers/drizzle.config.d.ts.map +1 -0
- package/dist/engagement/social-transfers/drizzle.config.js +21 -0
- package/dist/engagement/social-transfers/drizzle.config.js.map +1 -0
- package/dist/engagement/social-transfers/index.d.ts +3 -0
- package/dist/engagement/social-transfers/index.d.ts.map +1 -0
- package/dist/engagement/social-transfers/index.js +6 -0
- package/dist/engagement/social-transfers/index.js.map +1 -0
- package/dist/engagement/social-transfers/migrate.d.ts +5 -0
- package/dist/engagement/social-transfers/migrate.d.ts.map +1 -0
- package/dist/engagement/social-transfers/migrate.js +17 -0
- package/dist/engagement/social-transfers/migrate.js.map +1 -0
- package/dist/engagement/social-transfers/plugin.d.ts +111 -0
- package/dist/engagement/social-transfers/plugin.d.ts.map +1 -0
- package/dist/engagement/social-transfers/plugin.js +24 -0
- package/dist/engagement/social-transfers/plugin.js.map +1 -0
- package/dist/engagement/social-transfers/router/index.d.ts +59 -0
- package/dist/engagement/social-transfers/router/index.d.ts.map +1 -0
- package/dist/engagement/social-transfers/router/index.js +25 -0
- package/dist/engagement/social-transfers/router/index.js.map +1 -0
- package/dist/engagement/social-transfers/schema/index.d.ts +609 -0
- package/dist/engagement/social-transfers/schema/index.d.ts.map +1 -0
- package/dist/engagement/social-transfers/schema/index.js +61 -0
- package/dist/engagement/social-transfers/schema/index.js.map +1 -0
- package/dist/engagement/social-transfers/service/__tests__/social-transfers.service.test.d.ts +2 -0
- package/dist/engagement/social-transfers/service/__tests__/social-transfers.service.test.d.ts.map +1 -0
- package/dist/engagement/social-transfers/service/__tests__/social-transfers.service.test.js +672 -0
- package/dist/engagement/social-transfers/service/__tests__/social-transfers.service.test.js.map +1 -0
- package/dist/engagement/social-transfers/service/social-transfers.service.d.ts +72 -0
- package/dist/engagement/social-transfers/service/social-transfers.service.d.ts.map +1 -0
- package/dist/engagement/social-transfers/service/social-transfers.service.js +726 -0
- package/dist/engagement/social-transfers/service/social-transfers.service.js.map +1 -0
- package/dist/iam/plugin.d.ts +2 -0
- package/dist/iam/plugin.d.ts.map +1 -1
- package/dist/iam/service/iam.service.d.ts +1 -1
- package/dist/pam/identity/__tests__/identity.service.int.test.js +47 -2
- package/dist/pam/identity/__tests__/identity.service.int.test.js.map +1 -1
- package/dist/pam/identity/__tests__/phone-login.service.int.test.js +23 -2
- package/dist/pam/identity/__tests__/phone-login.service.int.test.js.map +1 -1
- package/dist/pam/identity/plugin.d.ts +2 -0
- package/dist/pam/identity/plugin.d.ts.map +1 -1
- package/dist/pam/identity/service/identity.service.d.ts.map +1 -1
- package/dist/pam/identity/service/identity.service.js +29 -1
- package/dist/pam/identity/service/identity.service.js.map +1 -1
- package/dist/pam/identity/service/phone-login.service.d.ts.map +1 -1
- package/dist/pam/identity/service/phone-login.service.js +23 -0
- package/dist/pam/identity/service/phone-login.service.js.map +1 -1
- package/dist/pam/player-management/__tests__/player.router.int.test.js +27 -4
- package/dist/pam/player-management/__tests__/player.router.int.test.js.map +1 -1
- package/dist/pam/player-management/__tests__/player.service.int.test.js +159 -6
- package/dist/pam/player-management/__tests__/player.service.int.test.js.map +1 -1
- package/dist/pam/player-management/contract/index.d.ts +39 -0
- package/dist/pam/player-management/contract/index.d.ts.map +1 -1
- package/dist/pam/player-management/contract/index.js +33 -1
- package/dist/pam/player-management/contract/index.js.map +1 -1
- package/dist/pam/player-management/plugin.d.ts +3 -1
- package/dist/pam/player-management/plugin.d.ts.map +1 -1
- package/dist/pam/player-management/plugin.js +3 -3
- package/dist/pam/player-management/plugin.js.map +1 -1
- package/dist/pam/player-management/router/index.d.ts +21 -0
- package/dist/pam/player-management/router/index.d.ts.map +1 -1
- package/dist/pam/player-management/router/index.js +12 -2
- package/dist/pam/player-management/router/index.js.map +1 -1
- package/dist/pam/player-management/service/player.service.d.ts +10 -3
- package/dist/pam/player-management/service/player.service.d.ts.map +1 -1
- package/dist/pam/player-management/service/player.service.js +66 -3
- package/dist/pam/player-management/service/player.service.js.map +1 -1
- package/dist/pam/player-note/__tests__/player-note.router.int.test.d.ts +2 -0
- package/dist/pam/player-note/__tests__/player-note.router.int.test.d.ts.map +1 -0
- package/dist/pam/player-note/__tests__/player-note.router.int.test.js +52 -0
- package/dist/pam/player-note/__tests__/player-note.router.int.test.js.map +1 -0
- package/dist/pam/player-note/plugin.d.ts +49 -46
- package/dist/pam/player-note/plugin.d.ts.map +1 -1
- package/dist/pam/player-note/plugin.js +3 -1
- package/dist/pam/player-note/plugin.js.map +1 -1
- package/dist/pam/player-note/router/index.d.ts +2 -1
- package/dist/pam/player-note/router/index.d.ts.map +1 -1
- package/dist/pam/player-note/router/index.js +13 -2
- package/dist/pam/player-note/router/index.js.map +1 -1
- package/dist/pam/profile/plugin.d.ts +2 -0
- package/dist/pam/profile/plugin.d.ts.map +1 -1
- package/dist/pam/tag/plugin.d.ts +2 -0
- package/dist/pam/tag/plugin.d.ts.map +1 -1
- package/dist/server/auth/permissions.d.ts +24 -0
- package/dist/server/auth/permissions.d.ts.map +1 -1
- package/dist/server/auth/permissions.js +4 -0
- package/dist/server/auth/permissions.js.map +1 -1
- package/dist/server/runtime/core-token-catalog.d.ts +2 -0
- package/dist/server/runtime/core-token-catalog.d.ts.map +1 -1
- package/dist/server/runtime/core-token-catalog.js +3 -1
- package/dist/server/runtime/core-token-catalog.js.map +1 -1
- package/dist/wallet/__tests__/wallet.service.int.test.js +7 -0
- package/dist/wallet/__tests__/wallet.service.int.test.js.map +1 -1
- package/dist/wallet/plugin.d.ts +2 -0
- package/dist/wallet/plugin.d.ts.map +1 -1
- package/dist/wallet/router/index.js +1 -1
- package/dist/wallet/router/index.js.map +1 -1
- package/dist/wallet/service/wallet.service.d.ts.map +1 -1
- package/dist/wallet/service/wallet.service.js +16 -0
- package/dist/wallet/service/wallet.service.js.map +1 -1
- package/package.json +21 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type EventBus, DrizzleService } from '@openora/core/server';
|
|
2
2
|
import type { ClientMeta, RealtimeTransport, CommandMetadata, ChatSystemMessage, AdminUserDirectory } from '@openora/core/contracts';
|
|
3
3
|
import type { User } from '@openora/core/pam/schema/identity';
|
|
4
|
-
import type { AdminRoomSortBy, ChatRoom, ChatMessage, ChatRoomCategory, SortOrder } from '../contract/index.js';
|
|
4
|
+
import type { AdminRoomSortBy, BlockedUserSortBy, IgnoredUserSortBy, ChatRoom, ChatMessage, ChatRoomCategory, SortOrder } from '../contract/index.js';
|
|
5
5
|
export declare const ChatRoomNotFoundError: new (id: string) => Error;
|
|
6
6
|
export declare const ChatRoomOwnershipError: new () => Error;
|
|
7
7
|
export declare const ChatMessageNotFoundError: new (id: string) => Error;
|
|
@@ -119,10 +119,18 @@ export declare class ChatService {
|
|
|
119
119
|
command: "block";
|
|
120
120
|
targetUserId: string;
|
|
121
121
|
displayName: string;
|
|
122
|
+
} | {
|
|
123
|
+
command: "unblock";
|
|
124
|
+
targetUserId: string;
|
|
125
|
+
displayName: string;
|
|
122
126
|
} | {
|
|
123
127
|
command: "ignore";
|
|
124
128
|
targetUserId: string;
|
|
125
129
|
displayName: string;
|
|
130
|
+
} | {
|
|
131
|
+
command: "unignore";
|
|
132
|
+
targetUserId: string;
|
|
133
|
+
displayName: string;
|
|
126
134
|
} | {
|
|
127
135
|
command: "donate";
|
|
128
136
|
recipientId: string;
|
|
@@ -169,10 +177,18 @@ export declare class ChatService {
|
|
|
169
177
|
command: "block";
|
|
170
178
|
targetUserId: string;
|
|
171
179
|
displayName: string;
|
|
180
|
+
} | {
|
|
181
|
+
command: "unblock";
|
|
182
|
+
targetUserId: string;
|
|
183
|
+
displayName: string;
|
|
172
184
|
} | {
|
|
173
185
|
command: "ignore";
|
|
174
186
|
targetUserId: string;
|
|
175
187
|
displayName: string;
|
|
188
|
+
} | {
|
|
189
|
+
command: "unignore";
|
|
190
|
+
targetUserId: string;
|
|
191
|
+
displayName: string;
|
|
176
192
|
} | {
|
|
177
193
|
command: "donate";
|
|
178
194
|
recipientId: string;
|
|
@@ -216,10 +232,18 @@ export declare class ChatService {
|
|
|
216
232
|
command: "block";
|
|
217
233
|
targetUserId: string;
|
|
218
234
|
displayName: string;
|
|
235
|
+
} | {
|
|
236
|
+
command: "unblock";
|
|
237
|
+
targetUserId: string;
|
|
238
|
+
displayName: string;
|
|
219
239
|
} | {
|
|
220
240
|
command: "ignore";
|
|
221
241
|
targetUserId: string;
|
|
222
242
|
displayName: string;
|
|
243
|
+
} | {
|
|
244
|
+
command: "unignore";
|
|
245
|
+
targetUserId: string;
|
|
246
|
+
displayName: string;
|
|
223
247
|
} | {
|
|
224
248
|
command: "donate";
|
|
225
249
|
recipientId: string;
|
|
@@ -260,10 +284,18 @@ export declare class ChatService {
|
|
|
260
284
|
command: "block";
|
|
261
285
|
targetUserId: string;
|
|
262
286
|
displayName: string;
|
|
287
|
+
} | {
|
|
288
|
+
command: "unblock";
|
|
289
|
+
targetUserId: string;
|
|
290
|
+
displayName: string;
|
|
263
291
|
} | {
|
|
264
292
|
command: "ignore";
|
|
265
293
|
targetUserId: string;
|
|
266
294
|
displayName: string;
|
|
295
|
+
} | {
|
|
296
|
+
command: "unignore";
|
|
297
|
+
targetUserId: string;
|
|
298
|
+
displayName: string;
|
|
267
299
|
} | {
|
|
268
300
|
command: "donate";
|
|
269
301
|
recipientId: string;
|
|
@@ -276,20 +308,74 @@ export declare class ChatService {
|
|
|
276
308
|
username: string;
|
|
277
309
|
isDeleted: boolean;
|
|
278
310
|
}, "createdAt">>;
|
|
279
|
-
listBlockedUsers(blockerId
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
311
|
+
listBlockedUsers({ blockerId, page, limit, sortBy, sortOrder, }: {
|
|
312
|
+
blockerId: User['id'];
|
|
313
|
+
page: number;
|
|
314
|
+
limit: number;
|
|
315
|
+
sortBy: BlockedUserSortBy;
|
|
316
|
+
sortOrder: SortOrder;
|
|
317
|
+
}): Promise<{
|
|
318
|
+
items: import("@openora/core/server").SerializedRow<{
|
|
319
|
+
blockedId: string;
|
|
320
|
+
createdAt: Date;
|
|
321
|
+
}, "createdAt">[];
|
|
322
|
+
total: number;
|
|
323
|
+
page: number;
|
|
324
|
+
limit: number;
|
|
325
|
+
}>;
|
|
326
|
+
/** Backoffice-only, site-wide: every active block relationship, not just the caller's. */
|
|
327
|
+
adminListBlockedUsers({ page, limit, sortBy, sortOrder, }: {
|
|
328
|
+
page: number;
|
|
329
|
+
limit: number;
|
|
330
|
+
sortBy: BlockedUserSortBy;
|
|
331
|
+
sortOrder: SortOrder;
|
|
332
|
+
}): Promise<{
|
|
333
|
+
items: import("@openora/core/server").SerializedRow<{
|
|
334
|
+
blockerId: string;
|
|
335
|
+
blockedId: string;
|
|
336
|
+
createdAt: Date;
|
|
337
|
+
}, "createdAt">[];
|
|
338
|
+
total: number;
|
|
339
|
+
page: number;
|
|
340
|
+
limit: number;
|
|
341
|
+
}>;
|
|
283
342
|
blockUser(blockerId: User['id'], blockedId: User['id'], meta?: ClientMeta): Promise<{
|
|
284
343
|
readonly success: true;
|
|
285
344
|
}>;
|
|
286
345
|
unblockUser(blockerId: User['id'], blockedId: User['id'], meta?: ClientMeta): Promise<{
|
|
287
346
|
readonly success: true;
|
|
288
347
|
}>;
|
|
289
|
-
listIgnoredUsers(ignorerId
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
348
|
+
listIgnoredUsers({ ignorerId, page, limit, sortBy, sortOrder, }: {
|
|
349
|
+
ignorerId: User['id'];
|
|
350
|
+
page: number;
|
|
351
|
+
limit: number;
|
|
352
|
+
sortBy: IgnoredUserSortBy;
|
|
353
|
+
sortOrder: SortOrder;
|
|
354
|
+
}): Promise<{
|
|
355
|
+
items: import("@openora/core/server").SerializedRow<{
|
|
356
|
+
ignoredId: string;
|
|
357
|
+
createdAt: Date;
|
|
358
|
+
}, "createdAt">[];
|
|
359
|
+
total: number;
|
|
360
|
+
page: number;
|
|
361
|
+
limit: number;
|
|
362
|
+
}>;
|
|
363
|
+
/** Backoffice-only, site-wide: every active ignore relationship, not just the caller's. */
|
|
364
|
+
adminListIgnoredUsers({ page, limit, sortBy, sortOrder, }: {
|
|
365
|
+
page: number;
|
|
366
|
+
limit: number;
|
|
367
|
+
sortBy: IgnoredUserSortBy;
|
|
368
|
+
sortOrder: SortOrder;
|
|
369
|
+
}): Promise<{
|
|
370
|
+
items: import("@openora/core/server").SerializedRow<{
|
|
371
|
+
ignorerId: string;
|
|
372
|
+
ignoredId: string;
|
|
373
|
+
createdAt: Date;
|
|
374
|
+
}, "createdAt">[];
|
|
375
|
+
total: number;
|
|
376
|
+
page: number;
|
|
377
|
+
limit: number;
|
|
378
|
+
}>;
|
|
293
379
|
ignoreUser(ignorerId: User['id'], ignoredId: User['id'], meta?: ClientMeta): Promise<{
|
|
294
380
|
readonly success: true;
|
|
295
381
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.service.d.ts","sourceRoot":"","sources":["../../../../src/engagement/chat/service/chat.service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,QAAQ,EAMb,cAAc,EAMf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAS9D,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,SAAS,EACV,MAAM,sBAAsB,CAAC;AAS9B,eAAO,MAAM,qBAAqB,2BAAgC,CAAC;AACnE,eAAO,MAAM,sBAAsB,iBAAiC,CAAC;AACrE,eAAO,MAAM,wBAAwB,2BAAmC,CAAC;AACzE,eAAO,MAAM,yBAAyB,iBAAoC,CAAC;AAE3E,eAAO,MAAM,uBAAuB,iBAGnC,CAAC;AAEF,eAAO,MAAM,kBAAkB,iBAG9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,iBAG/B,CAAC;AAEF,eAAO,MAAM,yBAAyB,iBAGrC,CAAC;AAEF,eAAO,MAAM,yBAAyB,iBAGrC,CAAC;AAEF,eAAO,MAAM,0BAA0B,iBAGtC,CAAC;AAEF,eAAO,MAAM,6BAA6B,6BAGzC,CAAC;AAEF,eAAO,MAAM,mBAAmB,+BAG/B,CAAC;AAEF,eAAO,MAAM,sBAAsB,+BAGlC,CAAC;AAEF,eAAO,MAAM,yBAAyB,+BAGrC,CAAC;AAEF,eAAO,MAAM,2BAA2B,iBAGvC,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.service.d.ts","sourceRoot":"","sources":["../../../../src/engagement/chat/service/chat.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,10 @@ function toRoom(record) {
|
|
|
35
35
|
function toMessage(record) {
|
|
36
36
|
return serializeRow(record, { dateFields: ['createdAt'] });
|
|
37
37
|
}
|
|
38
|
+
const BLOCKED_USER_SORT_COLUMNS = { createdAt: chatUserBlock.createdAt };
|
|
39
|
+
const IGNORED_USER_SORT_COLUMNS = {
|
|
40
|
+
createdAt: chatUserIgnore.createdAt,
|
|
41
|
+
};
|
|
38
42
|
function generateJoinCode() {
|
|
39
43
|
return Array.from({ length: JOIN_CODE_LENGTH }, () => {
|
|
40
44
|
const ch = JOIN_CODE_ALPHABET[randomInt(0, JOIN_CODE_ALPHABET.length)];
|
|
@@ -110,14 +114,14 @@ export class ChatService {
|
|
|
110
114
|
const rows = await this.drizzle.db
|
|
111
115
|
.select({ blockedId: chatUserBlock.blockedId })
|
|
112
116
|
.from(chatUserBlock)
|
|
113
|
-
.where(eq(chatUserBlock.blockerId, viewerId));
|
|
117
|
+
.where(and(eq(chatUserBlock.blockerId, viewerId), isNull(chatUserBlock.removedAt)));
|
|
114
118
|
return new Set(rows.map((r) => r.blockedId));
|
|
115
119
|
}
|
|
116
120
|
async ignoredIdsFor(viewerId) {
|
|
117
121
|
const rows = await this.drizzle.db
|
|
118
122
|
.select({ ignoredId: chatUserIgnore.ignoredId })
|
|
119
123
|
.from(chatUserIgnore)
|
|
120
|
-
.where(eq(chatUserIgnore.ignorerId, viewerId));
|
|
124
|
+
.where(and(eq(chatUserIgnore.ignorerId, viewerId), isNull(chatUserIgnore.removedAt)));
|
|
121
125
|
return new Set(rows.map((r) => r.ignoredId));
|
|
122
126
|
}
|
|
123
127
|
async excludedSenderIdsFor(viewerId) {
|
|
@@ -292,23 +296,66 @@ export class ChatService {
|
|
|
292
296
|
void this.transport.publish(chatChannel(null), message);
|
|
293
297
|
return message;
|
|
294
298
|
}
|
|
295
|
-
async listBlockedUsers(blockerId) {
|
|
296
|
-
const
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
.
|
|
301
|
-
|
|
299
|
+
async listBlockedUsers({ blockerId, page, limit, sortBy, sortOrder, }) {
|
|
300
|
+
const dir = sortOrder === 'asc' ? asc : desc;
|
|
301
|
+
const col = BLOCKED_USER_SORT_COLUMNS[sortBy];
|
|
302
|
+
const where = and(eq(chatUserBlock.blockerId, blockerId), isNull(chatUserBlock.removedAt));
|
|
303
|
+
const [rows, [{ n }]] = await Promise.all([
|
|
304
|
+
this.drizzle.db
|
|
305
|
+
.select({ blockedId: chatUserBlock.blockedId, createdAt: chatUserBlock.createdAt })
|
|
306
|
+
.from(chatUserBlock)
|
|
307
|
+
.where(where)
|
|
308
|
+
.orderBy(dir(col))
|
|
309
|
+
.limit(limit)
|
|
310
|
+
.offset(pageToOffset(page, limit)),
|
|
311
|
+
this.drizzle.db.select({ n: count() }).from(chatUserBlock).where(where),
|
|
312
|
+
]);
|
|
313
|
+
return {
|
|
314
|
+
items: rows.map((r) => serializeRow(r, { dateFields: ['createdAt'] })),
|
|
315
|
+
total: Number(n),
|
|
316
|
+
page,
|
|
317
|
+
limit,
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
/** Backoffice-only, site-wide: every active block relationship, not just the caller's. */
|
|
321
|
+
async adminListBlockedUsers({ page, limit, sortBy, sortOrder, }) {
|
|
322
|
+
const dir = sortOrder === 'asc' ? asc : desc;
|
|
323
|
+
const col = BLOCKED_USER_SORT_COLUMNS[sortBy];
|
|
324
|
+
const where = isNull(chatUserBlock.removedAt);
|
|
325
|
+
const [rows, [{ n }]] = await Promise.all([
|
|
326
|
+
this.drizzle.db
|
|
327
|
+
.select({
|
|
328
|
+
blockerId: chatUserBlock.blockerId,
|
|
329
|
+
blockedId: chatUserBlock.blockedId,
|
|
330
|
+
createdAt: chatUserBlock.createdAt,
|
|
331
|
+
})
|
|
332
|
+
.from(chatUserBlock)
|
|
333
|
+
.where(where)
|
|
334
|
+
.orderBy(dir(col))
|
|
335
|
+
.limit(limit)
|
|
336
|
+
.offset(pageToOffset(page, limit)),
|
|
337
|
+
this.drizzle.db.select({ n: count() }).from(chatUserBlock).where(where),
|
|
338
|
+
]);
|
|
339
|
+
return {
|
|
340
|
+
items: rows.map((r) => serializeRow(r, { dateFields: ['createdAt'] })),
|
|
341
|
+
total: Number(n),
|
|
342
|
+
page,
|
|
343
|
+
limit,
|
|
344
|
+
};
|
|
302
345
|
}
|
|
303
346
|
async blockUser(blockerId, blockedId, meta) {
|
|
304
347
|
if (blockerId === blockedId) {
|
|
305
348
|
throw new ChatSelfBlockError();
|
|
306
349
|
}
|
|
307
|
-
// Idempotent: re-blocking is a no-op, so only
|
|
350
|
+
// Idempotent: re-blocking while already (actively) blocked is a no-op, so only
|
|
351
|
+
// the first block emits an event. The pair unique index is partial (removedAt
|
|
352
|
+
// IS NULL), so a block after a prior unblock conflicts with nothing and inserts
|
|
353
|
+
// a fresh active row - the removed row stays as history. No explicit conflict
|
|
354
|
+
// target: this table has exactly one unique constraint (the partial pair index).
|
|
308
355
|
const inserted = await this.drizzle.db
|
|
309
356
|
.insert(chatUserBlock)
|
|
310
357
|
.values({ blockerId, blockedId })
|
|
311
|
-
.onConflictDoNothing(
|
|
358
|
+
.onConflictDoNothing()
|
|
312
359
|
.returning();
|
|
313
360
|
if (inserted.length > 0) {
|
|
314
361
|
this.events.emit('chat.user.blocked', {
|
|
@@ -321,9 +368,12 @@ export class ChatService {
|
|
|
321
368
|
return { success: true };
|
|
322
369
|
}
|
|
323
370
|
async unblockUser(blockerId, blockedId, meta) {
|
|
371
|
+
// Soft-delete: the partial unique index guarantees at most one active (removedAt
|
|
372
|
+
// IS NULL) row per pair, so this is that row, or no-op if already unblocked.
|
|
324
373
|
const removed = await this.drizzle.db
|
|
325
|
-
.
|
|
326
|
-
.
|
|
374
|
+
.update(chatUserBlock)
|
|
375
|
+
.set({ removedAt: new Date() })
|
|
376
|
+
.where(and(eq(chatUserBlock.blockerId, blockerId), eq(chatUserBlock.blockedId, blockedId), isNull(chatUserBlock.removedAt)))
|
|
327
377
|
.returning();
|
|
328
378
|
if (removed.length > 0) {
|
|
329
379
|
this.events.emit('chat.user.unblocked', {
|
|
@@ -335,23 +385,62 @@ export class ChatService {
|
|
|
335
385
|
}
|
|
336
386
|
return { success: true };
|
|
337
387
|
}
|
|
338
|
-
async listIgnoredUsers(ignorerId) {
|
|
339
|
-
const
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
.
|
|
344
|
-
|
|
388
|
+
async listIgnoredUsers({ ignorerId, page, limit, sortBy, sortOrder, }) {
|
|
389
|
+
const dir = sortOrder === 'asc' ? asc : desc;
|
|
390
|
+
const col = IGNORED_USER_SORT_COLUMNS[sortBy];
|
|
391
|
+
const where = and(eq(chatUserIgnore.ignorerId, ignorerId), isNull(chatUserIgnore.removedAt));
|
|
392
|
+
const [rows, [{ n }]] = await Promise.all([
|
|
393
|
+
this.drizzle.db
|
|
394
|
+
.select({ ignoredId: chatUserIgnore.ignoredId, createdAt: chatUserIgnore.createdAt })
|
|
395
|
+
.from(chatUserIgnore)
|
|
396
|
+
.where(where)
|
|
397
|
+
.orderBy(dir(col))
|
|
398
|
+
.limit(limit)
|
|
399
|
+
.offset(pageToOffset(page, limit)),
|
|
400
|
+
this.drizzle.db.select({ n: count() }).from(chatUserIgnore).where(where),
|
|
401
|
+
]);
|
|
402
|
+
return {
|
|
403
|
+
items: rows.map((r) => serializeRow(r, { dateFields: ['createdAt'] })),
|
|
404
|
+
total: Number(n),
|
|
405
|
+
page,
|
|
406
|
+
limit,
|
|
407
|
+
};
|
|
408
|
+
}
|
|
409
|
+
/** Backoffice-only, site-wide: every active ignore relationship, not just the caller's. */
|
|
410
|
+
async adminListIgnoredUsers({ page, limit, sortBy, sortOrder, }) {
|
|
411
|
+
const dir = sortOrder === 'asc' ? asc : desc;
|
|
412
|
+
const col = IGNORED_USER_SORT_COLUMNS[sortBy];
|
|
413
|
+
const where = isNull(chatUserIgnore.removedAt);
|
|
414
|
+
const [rows, [{ n }]] = await Promise.all([
|
|
415
|
+
this.drizzle.db
|
|
416
|
+
.select({
|
|
417
|
+
ignorerId: chatUserIgnore.ignorerId,
|
|
418
|
+
ignoredId: chatUserIgnore.ignoredId,
|
|
419
|
+
createdAt: chatUserIgnore.createdAt,
|
|
420
|
+
})
|
|
421
|
+
.from(chatUserIgnore)
|
|
422
|
+
.where(where)
|
|
423
|
+
.orderBy(dir(col))
|
|
424
|
+
.limit(limit)
|
|
425
|
+
.offset(pageToOffset(page, limit)),
|
|
426
|
+
this.drizzle.db.select({ n: count() }).from(chatUserIgnore).where(where),
|
|
427
|
+
]);
|
|
428
|
+
return {
|
|
429
|
+
items: rows.map((r) => serializeRow(r, { dateFields: ['createdAt'] })),
|
|
430
|
+
total: Number(n),
|
|
431
|
+
page,
|
|
432
|
+
limit,
|
|
433
|
+
};
|
|
345
434
|
}
|
|
346
435
|
async ignoreUser(ignorerId, ignoredId, meta) {
|
|
347
436
|
if (ignorerId === ignoredId) {
|
|
348
437
|
throw new ChatSelfIgnoreError();
|
|
349
438
|
}
|
|
350
|
-
// Idempotent
|
|
439
|
+
// Idempotent + soft-delete-aware - see blockUser's comment, same pattern.
|
|
351
440
|
const inserted = await this.drizzle.db
|
|
352
441
|
.insert(chatUserIgnore)
|
|
353
442
|
.values({ ignorerId, ignoredId })
|
|
354
|
-
.onConflictDoNothing(
|
|
443
|
+
.onConflictDoNothing()
|
|
355
444
|
.returning();
|
|
356
445
|
if (inserted.length > 0) {
|
|
357
446
|
this.events.emit('chat.user.ignored', {
|
|
@@ -364,9 +453,11 @@ export class ChatService {
|
|
|
364
453
|
return { success: true };
|
|
365
454
|
}
|
|
366
455
|
async unignoreUser(ignorerId, ignoredId, meta) {
|
|
456
|
+
// Soft-delete - see unblockUser's comment, same pattern.
|
|
367
457
|
const removed = await this.drizzle.db
|
|
368
|
-
.
|
|
369
|
-
.
|
|
458
|
+
.update(chatUserIgnore)
|
|
459
|
+
.set({ removedAt: new Date() })
|
|
460
|
+
.where(and(eq(chatUserIgnore.ignorerId, ignorerId), eq(chatUserIgnore.ignoredId, ignoredId), isNull(chatUserIgnore.removedAt)))
|
|
370
461
|
.returning();
|
|
371
462
|
if (removed.length > 0) {
|
|
372
463
|
this.events.emit('chat.user.unignored', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.service.js","sourceRoot":"","sources":["../../../../src/engagement/chat/service/chat.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAEL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAEf,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,oBAAoB,GAErB,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAEzD,OAAO,EACL,QAAQ,EACR,WAAW,EACX,aAAa,EACb,cAAc,EACd,cAAc,EACd,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,yBAAyB,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAE3E,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CACtD,yBAAyB,EACzB,GAAG,EAAE,CAAC,kDAAkD,CACzD,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CACjD,oBAAoB,EACpB,GAAG,EAAE,CAAC,2BAA2B,CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAClD,qBAAqB,EACrB,GAAG,EAAE,CAAC,4BAA4B,CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CACxD,2BAA2B,EAC3B,sCAAsC,CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CACxD,2BAA2B,EAC3B,4BAA4B,CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CACzD,4BAA4B,EAC5B,uDAAuD,CACxD,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,iBAAiB,CAC5D,+BAA+B,EAC/B,CAAC,IAAY,EAAE,EAAE,CAAC,iCAAiC,IAAI,EAAE,CAC1D,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAClD,qBAAqB,EACrB,CAAC,MAAsB,EAAE,EAAE,CAAC,6BAA6B,MAAM,EAAE,CAClE,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CACrD,wBAAwB,EACxB,CAAC,MAAsB,EAAE,EAAE,CAAC,iCAAiC,MAAM,EAAE,CACtE,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CACxD,2BAA2B,EAC3B,CAAC,MAAsB,EAAE,EAAE,CAAC,oCAAoC,MAAM,EAAE,CACzE,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,iBAAiB,CAC1D,6BAA6B,EAC7B,GAAG,EAAE,CAAC,iCAAiC,CACxC,CAAC;AAEF,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,uBAAuB,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED,SAAS,MAAM,CAAC,MAAoC;IAClD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAClD,OAAO,YAAY,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,SAAS,CAAC,MAAuC;IACxD,OAAO,YAAY,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE;QACnD,MAAM,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;QACvE,OAAO,EAAE,IAAI,GAAG,CAAC;IACnB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAClD,IAAI,IAAI,GAAG,GAAG,wBAAwB,GAAG,UAAU,EAAE,EAAE,CAAC;IACxD,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACzC,IAAI,GAAG,GAAG,wBAAwB,GAAG,UAAU,EAAE,EAAE,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B,CAAC,CAAU;IAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;AAC5B,CAAC;AAED,MAAM,OAAO,WAAW;IAEH;IACA;IACA;IACA;IAJnB,YACmB,OAAuB,EACvB,MAAgB,EAChB,SAA4B,EAC5B,SAA6B;QAH7B,YAAO,GAAP,OAAO,CAAgB;QACvB,WAAM,GAAN,MAAM,CAAU;QAChB,cAAS,GAAT,SAAS,CAAmB;QAC5B,cAAS,GAAT,SAAS,CAAoB;IAC7C,CAAC;IAEJ,iBAAiB,CACf,MAA6B,EAC7B,QAAwC,EACxC,QAAqB,EACrB,eAAuB,UAAU,EAAE;QAEnC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,gBAAgB,GAAG,QAAQ,IAAI,aAAa,YAAY,EAAE,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACzC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;QACxD,IAAI,OAAO,GAAmC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QAC1E,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,CAAC,OAAoB,EAAE,EAAE;YACvC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5C,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;QACF,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;iBAChC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,EAAc,CAAC;iBAClC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACZ,OAAO,GAAG,GAAG,CAAC;gBACd,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;oBAC9B,OAAO,CAAC,OAAO,CAAC,CAAC;gBACnB,CAAC;gBACD,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACP,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAc,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;YAC7E,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAA6B;QAChD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACxE,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAoB;QAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aAC/B,MAAM,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC;aAC9C,IAAI,CAAC,aAAa,CAAC;aACnB,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChD,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAoB;QAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aAC/B,MAAM,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC;aAC/C,IAAI,CAAC,cAAc,CAAC;aACpB,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjD,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,QAAoB;QACrD,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC3C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;SAC7B,CAAC,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAAkB,EAAE,QAAgB;QACnE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aAChC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;aAC3B,IAAI,CAAC,IAAI,CAAC;aACV,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;aAC1B,KAAK,CAAC,CAAC,CAAC,CAAC;QACZ,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,QAAQ,IAAI,WAAW,CAAC;IACtD,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,gBAAgB,CAAC,MAAsB,EAAE,QAAqB;QAClE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aACjC,MAAM,EAAE;aACR,IAAI,CAAC,QAAQ,CAAC;aACd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;aAC/D,KAAK,CAAC,CAAC,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;iBACnC,MAAM,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC;iBACjC,IAAI,CAAC,cAAc,CAAC;iBACpB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;iBAClF,KAAK,CAAC,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAqB;QACnC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aACtC,MAAM,EAAE;aACR,IAAI,CAAC,QAAQ,CAAC;aACd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;aACnE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAEpC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aACpC,MAAM,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC;aACzC,IAAI,CAAC,cAAc,CAAC;aACpB,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE9C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aACvC,MAAM,EAAE;aACR,IAAI,CAAC,QAAQ,CAAC;aACd,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,EAC5B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC1B,OAAO,CACL,QAAQ,CAAC,EAAE,EACX,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAC/B,CACF,CACF;aACA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAEpC,OAAO,CAAC,GAAG,WAAW,EAAE,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EACnB,IAAI,EACJ,KAAK,EACL,MAAM,EACN,SAAS,GAMV;QACC,MAAM,GAAG,GAAG,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QACnE,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,EAAE;iBACZ,MAAM,EAAE;iBACR,IAAI,CAAC,QAAQ,CAAC;iBACd,KAAK,CAAC,KAAK,CAAC;iBACZ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBACjB,KAAK,CAAC,KAAK,CAAC;iBACZ,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;SACnE,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAqD;QACnF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EACpB,MAAM,EACN,KAAK,GAAG,qBAAqB,EAC7B,MAAM,EACN,QAAQ,GAMT;QACC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE9C,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QACtF,IAAI,MAAM,EAAE,CAAC;YACX,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aACnC,MAAM,EAAE;aACR,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;aACzB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;aACpC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChB,OAAO,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,UAAmC,EACnC,QAAqB;QAErB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EACpB,MAAM,EACN,QAAQ,EACR,MAAM,EACN,OAAO,GAMR;QACC,uFAAuF;QACvF,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE5C,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aACnC,MAAM,CAAC,WAAW,CAAC;aACnB,MAAM,CAAC;YACN,MAAM;YACN,MAAM;YACN,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,WAAW;SACrB,CAAC;aACD,SAAS,EAAE,CAAC;QAEf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACpC,SAAS,EAAE,MAAM,CAAC,EAAE;YACpB,MAAM;YACN,MAAM;SACP,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAqB,EAAE,MAAkB;QAC3D,MAAM,OAAO,GAAG,cAAc,CAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAC9E,IAAI,wBAAwB,CAAC,EAAE,CAAC,CACjC,CAAC;QACF,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,yBAAyB,EAAE,CAAC,CAAC;QAEzE,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aAClB,MAAM,CAAC,WAAW,CAAC;aACnB,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;aACxB,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAEjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAW,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,KAAK,GAAG,qBAAqB,EAAE,QAAqB;QAC1E,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QAClF,MAAM,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aACnC,MAAM,EAAE;aACR,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;aACzB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;aACpC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChB,OAAO,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAkB,EAAE,QAAgB,EAAE,OAAe;QAC3E,uFAAuF;QACvF,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aACnC,MAAM,CAAC,WAAW,CAAC;aACnB,MAAM,CAAC;YACN,MAAM,EAAE,IAAI;YACZ,MAAM;YACN,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,WAAW;SACrB,CAAC;aACD,SAAS,EAAE,CAAC;QAEf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACpC,SAAS,EAAE,MAAM,CAAC,EAAE;YACpB,MAAM,EAAE,IAAI;YACZ,MAAM;SACP,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAqB;QAC1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aAC/B,MAAM,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC;aAClF,IAAI,CAAC,aAAa,CAAC;aACnB,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aAC7C,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAAqB,EAAE,SAAqB,EAAE,IAAiB;QAC7E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACjC,CAAC;QAED,8EAA8E;QAC9E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aACnC,MAAM,CAAC,aAAa,CAAC;aACrB,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;aAChC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;aACnF,SAAS,EAAE,CAAC;QAEf,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBACpC,SAAS;gBACT,SAAS;gBACT,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI;gBACpB,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,IAAI;aACnC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAW,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAqB,EAAE,SAAqB,EAAE,IAAiB;QAC/E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aAClC,MAAM,CAAC,aAAa,CAAC;aACrB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;aAC1F,SAAS,EAAE,CAAC;QAEf,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBACtC,SAAS;gBACT,SAAS;gBACT,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI;gBACpB,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,IAAI;aACnC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAW,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAqB;QAC1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aAC/B,MAAM,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC;aACpF,IAAI,CAAC,cAAc,CAAC;aACpB,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aAC9C,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAqB,EAAE,SAAqB,EAAE,IAAiB;QAC9E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAClC,CAAC;QAED,+EAA+E;QAC/E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aACnC,MAAM,CAAC,cAAc,CAAC;aACtB,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;aAChC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;aACrF,SAAS,EAAE,CAAC;QAEf,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBACpC,SAAS;gBACT,SAAS;gBACT,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI;gBACpB,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,IAAI;aACnC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAW,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAqB,EAAE,SAAqB,EAAE,IAAiB;QAChF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aAClC,MAAM,CAAC,cAAc,CAAC;aACtB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;aAC5F,SAAS,EAAE,CAAC;QAEf,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBACtC,SAAS;gBACT,SAAS;gBACT,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI;gBACpB,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,IAAI;aACnC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAW,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAAoB;QAC3C,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EACf,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,EAAE,EACF,SAAS,GAMG;QACZ,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aACrC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;aAC3B,IAAI,CAAC,QAAQ,CAAC;aACd,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAC9B,KAAK,CAAC,CAAC,CAAC,CAAC;QACZ,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,yBAAyB,EAAE,CAAC;QACxC,CAAC;QACD,IAAI,MAAoC,CAAC;QACzC,IAAI,CAAC;YACH,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;iBAC7B,MAAM,CAAC,QAAQ,CAAC;iBAChB,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;iBAChC,SAAS,EAAE,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,2BAA2B,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,yBAAyB,EAAE,CAAC;YACxC,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACpC,MAAM,EAAE,MAAM,CAAC,EAAE;YACjB,IAAI;YACJ,IAAI;YACJ,QAAQ;YACR,OAAO;YACP,EAAE,EAAE,EAAE,IAAI,IAAI;YACd,SAAS,EAAE,SAAS,IAAI,IAAI;SAC7B,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EACf,EAAE,EACF,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,EAAE,EACF,SAAS,GAOG;QACZ,MAAM,QAAQ,GAAG,cAAc,CAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aAClB,MAAM,EAAE;aACR,IAAI,CAAC,QAAQ,CAAC;aACd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;aAC3D,KAAK,CAAC,CAAC,CAAC,EACX,IAAI,qBAAqB,CAAC,EAAE,CAAC,CAC9B,CAAC;QACF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;iBAClC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;iBAC3B,IAAI,CAAC,QAAQ,CAAC;iBACd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;iBACxD,KAAK,CAAC,CAAC,CAAC,CAAC;YACZ,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,yBAAyB,EAAE,CAAC;YACxC,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAA0C,EAAE,CAAC;QACxD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC5B,CAAC;QACD,IAAI,OAAqC,CAAC;QAC1C,IAAI,CAAC;YACH,OAAO,GAAG,cAAc,CACtB,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;iBAClB,MAAM,CAAC,QAAQ,CAAC;iBAChB,GAAG,CAAC,KAAK,CAAC;iBACV,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;iBAC3D,SAAS,EAAE,EACd,IAAI,qBAAqB,CAAC,EAAE,CAAC,CAC9B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,2BAA2B,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,yBAAyB,EAAE,CAAC;YACxC,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACpC,MAAM,EAAE,EAAE;YACV,OAAO;YACP,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;YACjF,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;YAC7E,EAAE,EAAE,EAAE,IAAI,IAAI;YACd,SAAS,EAAE,SAAS,IAAI,IAAI;SAC7B,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,EACtB,MAAM,EACN,MAAM,EACN,EAAE,EACF,SAAS,GAIG;QACZ,MAAM,IAAI,GAAG,cAAc,CACzB,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aAClB,MAAM,EAAE;aACR,IAAI,CAAC,QAAQ,CAAC;aACd,KAAK,CACJ,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CACvF;aACA,KAAK,CAAC,CAAC,CAAC,EACX,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAClC,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,sBAAsB,EAAE,CAAC;QACrC,CAAC;QACD,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,sBAAsB,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aAClB,MAAM,CAAC,QAAQ,CAAC;aAChB,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;aAC9B,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YAC5C,MAAM;YACN,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,EAAE,IAAI,IAAI;YACd,SAAS,EAAE,SAAS,IAAI,IAAI;SAC7B,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAW,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAkB,EAAE,OAAoB,EAAE,IAAiB;QAC1E,MAAM,OAAO,GAAG,cAAc,CAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aAClB,MAAM,CAAC,QAAQ,CAAC;aAChB,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;aAC9B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;aAC3D,SAAS,CAAC;YACT,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC,EACJ,IAAI,qBAAqB,CAAC,EAAE,CAAC,CAC9B,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACpC,MAAM,EAAE,EAAE;YACV,OAAO;YACP,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;YAC9E,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI;YACpB,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,IAAI;SACnC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAW,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,EACtB,MAAM,EACN,IAAI,EACJ,EAAE,EACF,SAAS,GAIG;QACZ,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CACrD,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;oBACzC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;yBACxB,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;yBAC1B,IAAI,CAAC,QAAQ,CAAC;yBACd,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,EAC9B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,EAC5B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC3B,CACF,CAAC;oBACJ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,4BAA4B,EAAE,CAAC;wBAClD,MAAM,IAAI,yBAAyB,EAAE,CAAC;oBACxC,CAAC;oBAED,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;yBACnB,MAAM,CAAC,QAAQ,CAAC;yBAChB,MAAM,CAAC;wBACN,IAAI;wBACJ,IAAI;wBACJ,QAAQ,EAAE,kBAAkB;wBAC5B,QAAQ,EAAE,KAAK;wBACf,QAAQ;wBACR,SAAS,EAAE,MAAM;qBAClB,CAAC;yBACD,SAAS,EAAE,CAAC;oBACf,MAAM,CAAC;yBACJ,MAAM,CAAC,cAAc,CAAC;yBACtB,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;yBACtD,mBAAmB,EAAE,CAAC;oBACzB,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CACH,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;oBAC5C,MAAM,EAAE,MAAM,CAAC,EAAE;oBACjB,SAAS,EAAE,MAAM;oBACjB,EAAE,EAAE,EAAE,IAAI,IAAI;oBACd,SAAS,EAAE,SAAS,IAAI,IAAI;iBAC7B,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,OAAO,GAAG,CAAC,IAAI,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClD,SAAS;gBACX,CAAC;gBACD,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC;QACD,2DAA2D;QAC3D,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EACb,MAAM,EACN,QAAQ,EACR,EAAE,EACF,SAAS,GAIG;QACZ,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aACtC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;aAC3B,IAAI,CAAC,QAAQ,CAAC;aACd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;aACvE,KAAK,CAAC,CAAC,CAAC,CAAC;QACZ,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CACjE,oBAAoB,CAAC,CAAC,EAAE,aAAa,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;iBACnB,MAAM,EAAE;iBACR,IAAI,CAAC,QAAQ,CAAC;iBACd,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAC7B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAC/B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC3B,CACF;iBACA,KAAK,CAAC,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,6BAA6B,CAAC,QAAQ,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;iBAClB,MAAM,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC;iBAC9B,IAAI,CAAC,WAAW,CAAC;iBACjB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;iBAC3E,KAAK,CAAC,CAAC,CAAC,CAAC;YACZ,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,+DAA+D;YAC/D,MAAM,QAAQ,GAAG,MAAM,CAAC;iBACrB,MAAM,CAAC,cAAc,CAAC;iBACtB,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;iBACnC,mBAAmB,EAAE;iBACrB,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CACH,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAC1C,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM;gBACN,EAAE,EAAE,EAAE,IAAI,IAAI;gBACd,SAAS,EAAE,SAAS,IAAI,IAAI;aAC7B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EACd,MAAM,EACN,MAAM,EACN,EAAE,EACF,SAAS,GAIG;QACZ,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CACtD,oBAAoB,CAAC,CAAC,EAAE,aAAa,MAAM,EAAE,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;iBACxB,MAAM,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC;iBACrC,IAAI,CAAC,cAAc,CAAC;iBACpB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;iBAChF,KAAK,CAAC,CAAC,CAAC,CAAC;YACZ,IAAI,SAAS,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;gBACpC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC;qBAC3B,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;qBAC7B,IAAI,CAAC,cAAc,CAAC;qBACpB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;gBACvF,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,0BAA0B,EAAE,CAAC;gBACzC,CAAC;YACH,CAAC;YACD,OAAO,CAAC;iBACL,MAAM,CAAC,cAAc,CAAC;iBACtB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;iBAChF,SAAS,EAAE,CAAC;QACjB,CAAC,CAAC,CACH,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBACxC,MAAM;gBACN,MAAM;gBACN,EAAE,EAAE,EAAE,IAAI,IAAI;gBACd,SAAS,EAAE,SAAS,IAAI,IAAI;aAC7B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAW,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EACf,WAAW,EACX,MAAM,EACN,MAAM,EACN,EAAE,EACF,SAAS,GAKG;QACZ,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,2BAA2B,EAAE,CAAC;QAC1C,CAAC;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;iBAClB,MAAM,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC;iBACrC,IAAI,CAAC,cAAc,CAAC;iBACpB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;iBACrF,KAAK,CAAC,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACrC,MAAM,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,CAAC;iBACL,MAAM,CAAC,cAAc,CAAC;iBACtB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;iBAChF,SAAS,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAC1C,MAAM;gBACN,MAAM;gBACN,QAAQ,EAAE,WAAW;gBACrB,EAAE,EAAE,EAAE,IAAI,IAAI;gBACd,SAAS,EAAE,SAAS,IAAI,IAAI;aAC7B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC;QAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAW,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EACd,WAAW,EACX,MAAM,EACN,MAAM,EACN,EAAE,EACF,SAAS,GAKG;QACZ,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,2BAA2B,EAAE,CAAC;QAC1C,CAAC;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACjD,yDAAyD;QACzD,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CACtC,oBAAoB,CAAC,CAAC,EAAE,aAAa,MAAM,EAAE,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;iBAClB,MAAM,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC;iBACrC,IAAI,CAAC,cAAc,CAAC;iBACpB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;iBACrF,KAAK,CAAC,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACrC,MAAM,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM,CAAC;iBACJ,MAAM,CAAC,WAAW,CAAC;iBACnB,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;iBACjD,mBAAmB,EAAE,CAAC;YACzB,MAAM,CAAC;iBACJ,MAAM,CAAC,cAAc,CAAC;iBACtB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC,CAAC,CACH,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YAC1C,MAAM;YACN,MAAM;YACN,QAAQ,EAAE,WAAW;YACrB,EAAE,EAAE,EAAE,IAAI,IAAI;YACd,SAAS,EAAE,SAAS,IAAI,IAAI;SAC7B,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC;QAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAW,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAKvB;QACC,MAAM,EAAE,GAAI,IAAI,CAAC,EAA4B,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACjE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE;aACtB,MAAM,CAAC,WAAW,CAAC;aACnB,MAAM,CAAC;YACN,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;aACD,SAAS,EAAE,CAAC;QACf,MAAM,GAAG,GAAsB;YAC7B,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;SAC1C,CAAC;QACF,mFAAmF;QACnF,kFAAkF;QAClF,gFAAgF;QAChF,iEAAiE;QACjE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAqD;QAC3F,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;aAClC,MAAM,CAAC;YACN,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,QAAQ,EAAE,cAAc,CAAC,QAAQ;SAClC,CAAC;aACD,IAAI,CAAC,cAAc,CAAC;aACpB,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aACxC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACnF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,YAAY,CACV,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAC1D,EAAE,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE,CAC7B,CACF,CAAC;IACJ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"chat.service.js","sourceRoot":"","sources":["../../../../src/engagement/chat/service/chat.service.ts"],"names":[],"mappings":"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"}
|