@sumicom/quicksave 0.3.0 → 0.4.0

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.
@@ -8,7 +8,9 @@ import { homedir } from 'os';
8
8
  export class MessageHandler {
9
9
  repos;
10
10
  agentVersion = '0.1.0';
11
- currentRepoPath;
11
+ defaultRepoPath;
12
+ clientRepos = new Map(); // peerAddress -> repoPath
13
+ repoLocks = new Map(); // repoPath -> peerAddress holding lock
12
14
  availableRepos;
13
15
  aiService = null;
14
16
  constructor(repos, _license) {
@@ -17,11 +19,35 @@ export class MessageHandler {
17
19
  this.repos.set(repo.path, new GitOperations(repo.path));
18
20
  }
19
21
  this.availableRepos = repos;
20
- this.currentRepoPath = repos[0].path;
21
- // License handling will be implemented later
22
+ this.defaultRepoPath = repos[0].path;
22
23
  }
23
- get git() {
24
- return this.repos.get(this.currentRepoPath);
24
+ getClientRepoPath(peerAddress) {
25
+ return this.clientRepos.get(peerAddress) || this.defaultRepoPath;
26
+ }
27
+ getGit(peerAddress) {
28
+ const repoPath = this.getClientRepoPath(peerAddress);
29
+ return this.repos.get(repoPath);
30
+ }
31
+ acquireRepoLock(repoPath, peerAddress) {
32
+ const holder = this.repoLocks.get(repoPath);
33
+ if (holder && holder !== peerAddress) {
34
+ return false;
35
+ }
36
+ this.repoLocks.set(repoPath, peerAddress);
37
+ return true;
38
+ }
39
+ releaseRepoLock(repoPath, peerAddress) {
40
+ if (this.repoLocks.get(repoPath) === peerAddress) {
41
+ this.repoLocks.delete(repoPath);
42
+ }
43
+ }
44
+ removeClient(peerAddress) {
45
+ this.clientRepos.delete(peerAddress);
46
+ for (const [repoPath, holder] of this.repoLocks) {
47
+ if (holder === peerAddress) {
48
+ this.repoLocks.delete(repoPath);
49
+ }
50
+ }
25
51
  }
26
52
  getAiService() {
27
53
  const apiKey = getAnthropicApiKey();
@@ -33,45 +59,53 @@ export class MessageHandler {
33
59
  }
34
60
  return this.aiService;
35
61
  }
36
- async handleMessage(message) {
62
+ async handleMessage(message, peerAddress = 'default') {
37
63
  try {
38
64
  switch (message.type) {
39
65
  case 'handshake':
40
- return this.handleHandshake(message);
66
+ return this.handleHandshake(message, peerAddress);
41
67
  case 'ping':
42
68
  return createMessage('pong', { timestamp: Date.now() });
43
69
  case 'git:status':
44
- return this.handleStatus(message);
70
+ return this.handleStatus(message, peerAddress);
45
71
  case 'git:diff':
46
- return this.handleDiff(message);
72
+ return this.handleDiff(message, peerAddress);
47
73
  case 'git:stage':
48
- return this.handleStage(message);
74
+ return this.handleStage(message, peerAddress);
49
75
  case 'git:unstage':
50
- return this.handleUnstage(message);
76
+ return this.handleUnstage(message, peerAddress);
51
77
  case 'git:stage-patch':
52
- return this.handleStagePatch(message);
78
+ return this.handleStagePatch(message, peerAddress);
53
79
  case 'git:unstage-patch':
54
- return this.handleUnstagePatch(message);
80
+ return this.handleUnstagePatch(message, peerAddress);
55
81
  case 'git:commit':
56
- return this.handleCommit(message);
82
+ return this.handleCommit(message, peerAddress);
57
83
  case 'git:log':
58
- return this.handleLog(message);
84
+ return this.handleLog(message, peerAddress);
59
85
  case 'git:branches':
60
- return this.handleBranches();
86
+ return this.handleBranches(peerAddress);
61
87
  case 'git:checkout':
62
- return this.handleCheckout(message);
88
+ return this.handleCheckout(message, peerAddress);
63
89
  case 'git:discard':
64
- return this.handleDiscard(message);
90
+ return this.handleDiscard(message, peerAddress);
91
+ case 'git:untrack':
92
+ return this.handleUntrack(message, peerAddress);
93
+ case 'git:gitignore-add':
94
+ return this.handleGitignoreAdd(message, peerAddress);
95
+ case 'git:gitignore-read':
96
+ return this.handleGitignoreRead(message, peerAddress);
97
+ case 'git:gitignore-write':
98
+ return this.handleGitignoreWrite(message, peerAddress);
65
99
  case 'ai:generate-commit-summary':
66
- return this.handleGenerateCommitSummary(message);
100
+ return this.handleGenerateCommitSummary(message, peerAddress);
67
101
  case 'ai:set-api-key':
68
102
  return this.handleSetApiKey(message);
69
103
  case 'ai:get-api-key-status':
70
104
  return this.handleGetApiKeyStatus(message);
71
105
  case 'agent:list-repos':
72
- return this.handleListRepos(message);
106
+ return this.handleListRepos(message, peerAddress);
73
107
  case 'agent:switch-repo':
74
- return this.handleSwitchRepo(message);
108
+ return this.handleSwitchRepo(message, peerAddress);
75
109
  case 'agent:browse-directory':
76
110
  return this.handleBrowseDirectory(message);
77
111
  case 'agent:add-repo':
@@ -85,32 +119,41 @@ export class MessageHandler {
85
119
  return this.createErrorResponse(message.id, 'HANDLER_ERROR', errorMessage);
86
120
  }
87
121
  }
88
- handleHandshake(message) {
122
+ handleHandshake(message, peerAddress) {
89
123
  const response = createMessage('handshake:ack', {
90
124
  success: true,
91
125
  agentVersion: this.agentVersion,
92
- repoPath: this.currentRepoPath,
126
+ repoPath: this.getClientRepoPath(peerAddress),
93
127
  availableRepos: this.availableRepos,
94
128
  });
95
129
  response.id = message.id;
96
130
  return response;
97
131
  }
98
- async handleStatus(message) {
99
- const status = await this.git.getStatus();
132
+ async handleStatus(message, peerAddress) {
133
+ const status = await this.getGit(peerAddress).getStatus();
100
134
  const response = createMessage('git:status:response', status);
101
135
  response.id = message.id;
102
136
  return response;
103
137
  }
104
- async handleDiff(message) {
138
+ async handleDiff(message, peerAddress) {
105
139
  const { path, staged } = message.payload;
106
- const diff = await this.git.getDiff(path, staged);
140
+ const diff = await this.getGit(peerAddress).getDiff(path, staged);
107
141
  const response = createMessage('git:diff:response', diff);
108
142
  response.id = message.id;
109
143
  return response;
110
144
  }
111
- async handleStage(message) {
145
+ async handleStage(message, peerAddress) {
146
+ const repoPath = this.getClientRepoPath(peerAddress);
147
+ if (!this.acquireRepoLock(repoPath, peerAddress)) {
148
+ const response = createMessage('git:stage:response', {
149
+ success: false,
150
+ error: 'Repository is busy — another device is performing an operation',
151
+ });
152
+ response.id = message.id;
153
+ return response;
154
+ }
112
155
  try {
113
- await this.git.stage(message.payload.paths);
156
+ await this.getGit(peerAddress).stage(message.payload.paths);
114
157
  const response = createMessage('git:stage:response', { success: true });
115
158
  response.id = message.id;
116
159
  return response;
@@ -123,10 +166,22 @@ export class MessageHandler {
123
166
  response.id = message.id;
124
167
  return response;
125
168
  }
169
+ finally {
170
+ this.releaseRepoLock(repoPath, peerAddress);
171
+ }
126
172
  }
127
- async handleUnstage(message) {
173
+ async handleUnstage(message, peerAddress) {
174
+ const repoPath = this.getClientRepoPath(peerAddress);
175
+ if (!this.acquireRepoLock(repoPath, peerAddress)) {
176
+ const response = createMessage('git:unstage:response', {
177
+ success: false,
178
+ error: 'Repository is busy — another device is performing an operation',
179
+ });
180
+ response.id = message.id;
181
+ return response;
182
+ }
128
183
  try {
129
- await this.git.unstage(message.payload.paths);
184
+ await this.getGit(peerAddress).unstage(message.payload.paths);
130
185
  const response = createMessage('git:unstage:response', { success: true });
131
186
  response.id = message.id;
132
187
  return response;
@@ -139,10 +194,22 @@ export class MessageHandler {
139
194
  response.id = message.id;
140
195
  return response;
141
196
  }
197
+ finally {
198
+ this.releaseRepoLock(repoPath, peerAddress);
199
+ }
142
200
  }
143
- async handleStagePatch(message) {
201
+ async handleStagePatch(message, peerAddress) {
202
+ const repoPath = this.getClientRepoPath(peerAddress);
203
+ if (!this.acquireRepoLock(repoPath, peerAddress)) {
204
+ const response = createMessage('git:stage-patch:response', {
205
+ success: false,
206
+ error: 'Repository is busy — another device is performing an operation',
207
+ });
208
+ response.id = message.id;
209
+ return response;
210
+ }
144
211
  try {
145
- await this.git.stagePatch(message.payload.patch);
212
+ await this.getGit(peerAddress).stagePatch(message.payload.patch);
146
213
  const response = createMessage('git:stage-patch:response', { success: true });
147
214
  response.id = message.id;
148
215
  return response;
@@ -155,10 +222,22 @@ export class MessageHandler {
155
222
  response.id = message.id;
156
223
  return response;
157
224
  }
225
+ finally {
226
+ this.releaseRepoLock(repoPath, peerAddress);
227
+ }
158
228
  }
159
- async handleUnstagePatch(message) {
229
+ async handleUnstagePatch(message, peerAddress) {
230
+ const repoPath = this.getClientRepoPath(peerAddress);
231
+ if (!this.acquireRepoLock(repoPath, peerAddress)) {
232
+ const response = createMessage('git:unstage-patch:response', {
233
+ success: false,
234
+ error: 'Repository is busy — another device is performing an operation',
235
+ });
236
+ response.id = message.id;
237
+ return response;
238
+ }
160
239
  try {
161
- await this.git.unstagePatch(message.payload.patch);
240
+ await this.getGit(peerAddress).unstagePatch(message.payload.patch);
162
241
  const response = createMessage('git:unstage-patch:response', { success: true });
163
242
  response.id = message.id;
164
243
  return response;
@@ -171,11 +250,23 @@ export class MessageHandler {
171
250
  response.id = message.id;
172
251
  return response;
173
252
  }
253
+ finally {
254
+ this.releaseRepoLock(repoPath, peerAddress);
255
+ }
174
256
  }
175
- async handleCommit(message) {
257
+ async handleCommit(message, peerAddress) {
258
+ const repoPath = this.getClientRepoPath(peerAddress);
259
+ if (!this.acquireRepoLock(repoPath, peerAddress)) {
260
+ const response = createMessage('git:commit:response', {
261
+ success: false,
262
+ error: 'Repository is busy — another device is performing an operation',
263
+ });
264
+ response.id = message.id;
265
+ return response;
266
+ }
176
267
  try {
177
268
  const { message: commitMessage, description } = message.payload;
178
- const hash = await this.git.commit(commitMessage, description);
269
+ const hash = await this.getGit(peerAddress).commit(commitMessage, description);
179
270
  const response = createMessage('git:commit:response', {
180
271
  success: true,
181
272
  hash,
@@ -191,25 +282,37 @@ export class MessageHandler {
191
282
  response.id = message.id;
192
283
  return response;
193
284
  }
285
+ finally {
286
+ this.releaseRepoLock(repoPath, peerAddress);
287
+ }
194
288
  }
195
- async handleLog(message) {
289
+ async handleLog(message, peerAddress) {
196
290
  const limit = message.payload.limit || 50;
197
- const commits = await this.git.getLog(limit);
291
+ const commits = await this.getGit(peerAddress).getLog(limit);
198
292
  const response = createMessage('git:log:response', { commits });
199
293
  response.id = message.id;
200
294
  return response;
201
295
  }
202
- async handleBranches() {
203
- const { branches, current } = await this.git.getBranches();
296
+ async handleBranches(peerAddress) {
297
+ const { branches, current } = await this.getGit(peerAddress).getBranches();
204
298
  return createMessage('git:branches:response', {
205
299
  branches,
206
300
  current,
207
301
  });
208
302
  }
209
- async handleCheckout(message) {
303
+ async handleCheckout(message, peerAddress) {
304
+ const repoPath = this.getClientRepoPath(peerAddress);
305
+ if (!this.acquireRepoLock(repoPath, peerAddress)) {
306
+ const response = createMessage('git:checkout:response', {
307
+ success: false,
308
+ error: 'Repository is busy — another device is performing an operation',
309
+ });
310
+ response.id = message.id;
311
+ return response;
312
+ }
210
313
  try {
211
314
  const { branch, create } = message.payload;
212
- await this.git.checkout(branch, create);
315
+ await this.getGit(peerAddress).checkout(branch, create);
213
316
  const response = createMessage('git:checkout:response', { success: true });
214
317
  response.id = message.id;
215
318
  return response;
@@ -222,10 +325,22 @@ export class MessageHandler {
222
325
  response.id = message.id;
223
326
  return response;
224
327
  }
328
+ finally {
329
+ this.releaseRepoLock(repoPath, peerAddress);
330
+ }
225
331
  }
226
- async handleDiscard(message) {
332
+ async handleDiscard(message, peerAddress) {
333
+ const repoPath = this.getClientRepoPath(peerAddress);
334
+ if (!this.acquireRepoLock(repoPath, peerAddress)) {
335
+ const response = createMessage('git:discard:response', {
336
+ success: false,
337
+ error: 'Repository is busy — another device is performing an operation',
338
+ });
339
+ response.id = message.id;
340
+ return response;
341
+ }
227
342
  try {
228
- await this.git.discard(message.payload.paths);
343
+ await this.getGit(peerAddress).discard(message.payload.paths);
229
344
  const response = createMessage('git:discard:response', { success: true });
230
345
  response.id = message.id;
231
346
  return response;
@@ -238,8 +353,101 @@ export class MessageHandler {
238
353
  response.id = message.id;
239
354
  return response;
240
355
  }
356
+ finally {
357
+ this.releaseRepoLock(repoPath, peerAddress);
358
+ }
359
+ }
360
+ async handleUntrack(message, peerAddress) {
361
+ const repoPath = this.getClientRepoPath(peerAddress);
362
+ if (!this.acquireRepoLock(repoPath, peerAddress)) {
363
+ const response = createMessage('git:untrack:response', {
364
+ success: false,
365
+ error: 'Repository is busy — another device is performing an operation',
366
+ });
367
+ response.id = message.id;
368
+ return response;
369
+ }
370
+ try {
371
+ await this.getGit(peerAddress).untrack(message.payload.paths);
372
+ const response = createMessage('git:untrack:response', { success: true });
373
+ response.id = message.id;
374
+ return response;
375
+ }
376
+ catch (error) {
377
+ const response = createMessage('git:untrack:response', {
378
+ success: false,
379
+ error: error instanceof Error ? error.message : 'Failed to untrack files',
380
+ });
381
+ response.id = message.id;
382
+ return response;
383
+ }
384
+ finally {
385
+ this.releaseRepoLock(repoPath, peerAddress);
386
+ }
387
+ }
388
+ async handleGitignoreAdd(message, peerAddress) {
389
+ const repoPath = this.getClientRepoPath(peerAddress);
390
+ if (!this.acquireRepoLock(repoPath, peerAddress)) {
391
+ const response = createMessage('git:gitignore-add:response', {
392
+ success: false,
393
+ error: 'Repository is busy — another device is performing an operation',
394
+ });
395
+ response.id = message.id;
396
+ return response;
397
+ }
398
+ try {
399
+ await this.getGit(peerAddress).addToGitignore(message.payload.pattern);
400
+ const response = createMessage('git:gitignore-add:response', { success: true });
401
+ response.id = message.id;
402
+ return response;
403
+ }
404
+ catch (error) {
405
+ const response = createMessage('git:gitignore-add:response', {
406
+ success: false,
407
+ error: error instanceof Error ? error.message : 'Failed to add to .gitignore',
408
+ });
409
+ response.id = message.id;
410
+ return response;
411
+ }
412
+ finally {
413
+ this.releaseRepoLock(repoPath, peerAddress);
414
+ }
415
+ }
416
+ async handleGitignoreRead(message, peerAddress) {
417
+ const { content, exists } = await this.getGit(peerAddress).readGitignore();
418
+ const response = createMessage('git:gitignore-read:response', { content, exists });
419
+ response.id = message.id;
420
+ return response;
421
+ }
422
+ async handleGitignoreWrite(message, peerAddress) {
423
+ const repoPath = this.getClientRepoPath(peerAddress);
424
+ if (!this.acquireRepoLock(repoPath, peerAddress)) {
425
+ const response = createMessage('git:gitignore-write:response', {
426
+ success: false,
427
+ error: 'Repository is busy — another device is performing an operation',
428
+ });
429
+ response.id = message.id;
430
+ return response;
431
+ }
432
+ try {
433
+ await this.getGit(peerAddress).writeGitignore(message.payload.content);
434
+ const response = createMessage('git:gitignore-write:response', { success: true });
435
+ response.id = message.id;
436
+ return response;
437
+ }
438
+ catch (error) {
439
+ const response = createMessage('git:gitignore-write:response', {
440
+ success: false,
441
+ error: error instanceof Error ? error.message : 'Failed to write .gitignore',
442
+ });
443
+ response.id = message.id;
444
+ return response;
445
+ }
446
+ finally {
447
+ this.releaseRepoLock(repoPath, peerAddress);
448
+ }
241
449
  }
242
- async handleGenerateCommitSummary(message) {
450
+ async handleGenerateCommitSummary(message, peerAddress) {
243
451
  const aiService = this.getAiService();
244
452
  if (!aiService) {
245
453
  const response = createMessage('ai:generate-commit-summary:response', {
@@ -251,7 +459,8 @@ export class MessageHandler {
251
459
  return response;
252
460
  }
253
461
  try {
254
- const status = await this.git.getStatus();
462
+ const git = this.getGit(peerAddress);
463
+ const status = await git.getStatus();
255
464
  if (status.staged.length === 0) {
256
465
  const response = createMessage('ai:generate-commit-summary:response', {
257
466
  success: false,
@@ -262,7 +471,7 @@ export class MessageHandler {
262
471
  return response;
263
472
  }
264
473
  // Collect diffs for all staged files
265
- const diffs = await Promise.all(status.staged.map((file) => this.git.getDiff(file.path, true)));
474
+ const diffs = await Promise.all(status.staged.map((file) => git.getDiff(file.path, true)));
266
475
  // Generate summary (uses internal queue and cache)
267
476
  const result = await aiService.generateSummary({
268
477
  diffs,
@@ -316,7 +525,7 @@ export class MessageHandler {
316
525
  response.id = message.id;
317
526
  return response;
318
527
  }
319
- async handleListRepos(message) {
528
+ async handleListRepos(message, peerAddress) {
320
529
  // Refresh branch info for all repos
321
530
  const repos = [];
322
531
  for (const repo of this.availableRepos) {
@@ -331,24 +540,24 @@ export class MessageHandler {
331
540
  }
332
541
  const response = createMessage('agent:list-repos:response', {
333
542
  repos,
334
- current: this.currentRepoPath,
543
+ current: this.getClientRepoPath(peerAddress),
335
544
  });
336
545
  response.id = message.id;
337
546
  return response;
338
547
  }
339
- handleSwitchRepo(message) {
548
+ handleSwitchRepo(message, peerAddress) {
340
549
  const { path } = message.payload;
341
550
  // Check if the requested repo is in our available repos
342
551
  if (!this.repos.has(path)) {
343
552
  const response = createMessage('agent:switch-repo:response', {
344
553
  success: false,
345
- newPath: this.currentRepoPath,
554
+ newPath: this.getClientRepoPath(peerAddress),
346
555
  error: `Repository not available: ${path}`,
347
556
  });
348
557
  response.id = message.id;
349
558
  return response;
350
559
  }
351
- this.currentRepoPath = path;
560
+ this.clientRepos.set(peerAddress, path);
352
561
  const response = createMessage('agent:switch-repo:response', {
353
562
  success: true,
354
563
  newPath: path,
@@ -1 +1 @@
1
- {"version":3,"file":"messageHandler.js","sourceRoot":"","sources":["../../src/handlers/messageHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,GAwCd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,MAAM,OAAO,cAAc;IACjB,KAAK,CAA6B;IAClC,YAAY,GAAG,OAAO,CAAC;IACvB,eAAe,CAAS;IACxB,cAAc,CAAe;IAC7B,SAAS,GAAgC,IAAI,CAAC;IAEtD,YAAY,KAAmB,EAAE,QAAkB;QACjD,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrC,6CAA6C;IAC/C,CAAC;IAED,IAAY,GAAG;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAE,CAAC;IAC/C,CAAC;IAEO,YAAY;QAClB,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,8CAA8C;QAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAgB;QAClC,IAAI,CAAC;YACH,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,WAAW;oBACd,OAAO,IAAI,CAAC,eAAe,CAAC,OAAoC,CAAC,CAAC;gBACpE,KAAK,MAAM;oBACT,OAAO,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC1D,KAAK,YAAY;oBACf,OAAO,IAAI,CAAC,YAAY,CAAC,OAAwC,CAAC,CAAC;gBACrE,KAAK,UAAU;oBACb,OAAO,IAAI,CAAC,UAAU,CAAC,OAAsC,CAAC,CAAC;gBACjE,KAAK,WAAW;oBACd,OAAO,IAAI,CAAC,WAAW,CAAC,OAAuC,CAAC,CAAC;gBACnE,KAAK,aAAa;oBAChB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAyC,CAAC,CAAC;gBACvE,KAAK,iBAAiB;oBACpB,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAA4C,CAAC,CAAC;gBAC7E,KAAK,mBAAmB;oBACtB,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAA8C,CAAC,CAAC;gBACjF,KAAK,YAAY;oBACf,OAAO,IAAI,CAAC,YAAY,CAAC,OAAwC,CAAC,CAAC;gBACrE,KAAK,SAAS;oBACZ,OAAO,IAAI,CAAC,SAAS,CAAC,OAAqC,CAAC,CAAC;gBAC/D,KAAK,cAAc;oBACjB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC/B,KAAK,cAAc;oBACjB,OAAO,IAAI,CAAC,cAAc,CAAC,OAA0C,CAAC,CAAC;gBACzE,KAAK,aAAa;oBAChB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAyC,CAAC,CAAC;gBACvE,KAAK,4BAA4B;oBAC/B,OAAO,IAAI,CAAC,2BAA2B,CAAC,OAAuD,CAAC,CAAC;gBACnG,KAAK,gBAAgB;oBACnB,OAAO,IAAI,CAAC,eAAe,CAAC,OAA2C,CAAC,CAAC;gBAC3E,KAAK,uBAAuB;oBAC1B,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;gBAC7C,KAAK,kBAAkB;oBACrB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBACvC,KAAK,mBAAmB;oBACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAA4C,CAAC,CAAC;gBAC7E,KAAK,wBAAwB;oBAC3B,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAiD,CAAC,CAAC;gBACvF,KAAK,gBAAgB;oBACnB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAyC,CAAC,CAAC;gBACvE;oBACE,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,EAAE,sBAAsB,EAAE,yBAAyB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACjH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,OAAkC;QACxD,MAAM,QAAQ,GAAG,aAAa,CAAsB,eAAe,EAAE;YACnE,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,IAAI,CAAC,eAAe;YAC9B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,OAAsC;QAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,aAAa,CAAwB,qBAAqB,EAAE,MAAM,CAAC,CAAC;QACrF,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAoC;QAC3D,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,aAAa,CAAsB,mBAAmB,EAAE,IAAI,CAAC,CAAC;QAC/E,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,OAAqC;QAC7D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,aAAa,CAAuB,oBAAoB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9F,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,aAAa,CAAuB,oBAAoB,EAAE;gBACzE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB;aACxE,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,OAAuC;QACjE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,aAAa,CAAyB,sBAAsB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAClG,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,aAAa,CAAyB,sBAAsB,EAAE;gBAC7E,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB;aAC1E,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,OAA0C;QACvE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,aAAa,CAA4B,0BAA0B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACzG,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,aAAa,CAA4B,0BAA0B,EAAE;gBACpF,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB;aACxE,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,OAA4C;QAC3E,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAG,aAAa,CAA8B,4BAA4B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7G,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,aAAa,CAA8B,4BAA4B,EAAE;gBACxF,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB;aAC1E,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,OAAsC;QAC/D,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;YAChE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,aAAa,CAAwB,qBAAqB,EAAE;gBAC3E,OAAO,EAAE,IAAI;gBACb,IAAI;aACL,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,aAAa,CAAwB,qBAAqB,EAAE;gBAC3E,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB;aACnE,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,OAAmC;QACzD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,aAAa,CAAqB,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACpF,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC3D,OAAO,aAAa,CAA0B,uBAAuB,EAAE;YACrE,QAAQ;YACR,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAAwC;QACnE,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;YAC3C,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,aAAa,CAA0B,uBAAuB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACpG,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,aAAa,CAA0B,uBAAuB,EAAE;gBAC/E,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB;aACrE,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,OAAuC;QACjE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,aAAa,CAAyB,sBAAsB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAClG,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,aAAa,CAAyB,sBAAsB,EAAE;gBAC7E,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B;aAC5E,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,OAAqD;QAErD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEtC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,aAAa,CAC5B,qCAAqC,EACrC;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,oCAAoC;gBAC3C,SAAS,EAAE,YAAY;aACxB,CACF,CAAC;YACF,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,aAAa,CAC5B,qCAAqC,EACrC;oBACE,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,gCAAgC;oBACvC,SAAS,EAAE,mBAAmB;iBAC/B,CACF,CAAC;gBACF,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;gBACzB,OAAO,QAAQ,CAAC;YAClB,CAAC;YAED,qCAAqC;YACrC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAEhG,mDAAmD;YACnD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC;gBAC7C,KAAK;gBACL,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO;gBAChC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK;aAC7B,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,aAAa,CAC5B,qCAAqC,EACrC;gBACE,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CACF,CAAC;YACF,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC;YAC3F,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAExD,MAAM,QAAQ,GAAG,aAAa,CAC5B,qCAAqC,EACrC;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,YAAY;gBACnB,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW;aACtD,CACF,CAAC;YACF,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,OAAyC;QAC/D,IAAI,CAAC;YACH,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,aAAa,CAA2B,yBAAyB,EAAE;gBAClF,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,aAAa,CAA2B,yBAAyB,EAAE;gBAClF,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;aACzE,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,OAAgB;QAC5C,MAAM,QAAQ,GAAG,aAAa,CAAiC,gCAAgC,EAAE;YAC/F,UAAU,EAAE,kBAAkB,EAAE;SACjC,CAAC,CAAC;QACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAAgB;QAC5C,oCAAoC;QACpC,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,aAAa,CAA2B,2BAA2B,EAAE;YACpF,KAAK;YACL,OAAO,EAAE,IAAI,CAAC,eAAe;SAC9B,CAAC,CAAC;QACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,gBAAgB,CAAC,OAA0C;QACjE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;QAEjC,wDAAwD;QACxD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,aAAa,CAA4B,4BAA4B,EAAE;gBACtF,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,IAAI,CAAC,eAAe;gBAC7B,KAAK,EAAE,6BAA6B,IAAI,EAAE;aAC3C,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,MAAM,QAAQ,GAAG,aAAa,CAA4B,4BAA4B,EAAE;YACtF,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,OAA+C;QAE/C,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;QAExD,IAAI,CAAC;YACH,MAAM,OAAO,GAAqB,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAEzE,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;gBAC/B,8CAA8C;gBAC9C,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBAExC,6CAA6C;gBAC7C,IAAI,SAAS,GAAG,KAAK,CAAC;gBACtB,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;wBACvC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;wBACpC,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;oBACpC,CAAC;oBAAC,MAAM,CAAC;wBACP,iBAAiB;oBACnB,CAAC;gBACH,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW;oBACX,SAAS;iBACV,CAAC,CAAC;YACL,CAAC;YAED,+CAA+C;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpB,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,WAAW;oBAAE,OAAO,CAAC,CAAC,CAAC;gBAC/C,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW;oBAAE,OAAO,CAAC,CAAC;gBAC9C,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,wBAAwB;YACxB,MAAM,UAAU,GAAG,aAAa,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAEzE,MAAM,QAAQ,GAAG,aAAa,CAAiC,iCAAiC,EAAE;gBAChG,IAAI,EAAE,aAAa;gBACnB,UAAU;gBACV,OAAO;aACR,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,aAAa,CAAiC,iCAAiC,EAAE;gBAChG,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC;gBAClC,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B;aAC3E,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,OAAuC;QAEvC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;QAE3C,yBAAyB;QACzB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,aAAa,CAAyB,yBAAyB,EAAE;gBAChF,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,0BAA0B;aAClC,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,mDAAmD;YACnD,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;YAE5C,kBAAkB;YAClB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAe;gBAC1B,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC;gBACxB,aAAa,EAAE,OAAO;aACvB,CAAC;YACF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAElC,MAAM,QAAQ,GAAG,aAAa,CAAyB,yBAAyB,EAAE;gBAChF,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,aAAa,CAAyB,yBAAyB,EAAE;gBAChF,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B;aAC3E,CAAC,CAAC;YACH,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,EAAU,EAAE,IAAY,EAAE,OAAe;QACnE,MAAM,QAAQ,GAAG,aAAa,CAAe,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACzE,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;QACjB,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"messageHandler.js","sourceRoot":"","sources":["../../src/handlers/messageHandler.ts"],"names":[],"mappings":"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"}