bullmq 5.63.1 → 5.64.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.
@@ -14,6 +14,7 @@ import { AsyncFifoQueue } from './async-fifo-queue';
14
14
  import { DelayedError, RateLimitError, RATE_LIMIT_ERROR, WaitingChildrenError, WaitingError, UnrecoverableError, } from './errors';
15
15
  import { SpanKind, TelemetryAttributes } from '../enums';
16
16
  import { JobScheduler } from './job-scheduler';
17
+ import { LockManager } from './lock-manager';
17
18
  const ONE_SECOND = 1000;
18
19
  // 10 seconds is the maximum time a BZPOPMIN can block.
19
20
  const maximumBlockTimeout = 10;
@@ -35,8 +36,8 @@ export class Worker extends QueueBase {
35
36
  this.abortDelayController = null;
36
37
  this.blockUntil = 0;
37
38
  this.drained = false;
38
- this.extendLocksTimer = null;
39
39
  this.limitUntil = 0;
40
+ this.processorAcceptsSignal = false;
40
41
  this.waiting = null;
41
42
  this.running = false;
42
43
  this.mainLoopRunning = null;
@@ -62,9 +63,18 @@ export class Worker extends QueueBase {
62
63
  this.opts.lockRenewTime =
63
64
  this.opts.lockRenewTime || this.opts.lockDuration / 2;
64
65
  this.id = v4();
66
+ // Initialize lock manager with worker context
67
+ this.lockManager = new LockManager(this, {
68
+ lockRenewTime: this.opts.lockRenewTime,
69
+ lockDuration: this.opts.lockDuration,
70
+ workerId: this.id,
71
+ workerName: this.opts.name,
72
+ });
65
73
  if (processor) {
66
74
  if (typeof processor === 'function') {
67
75
  this.processFn = processor;
76
+ // Check if processor accepts signal parameter (3rd parameter)
77
+ this.processorAcceptsSignal = processor.length >= 3;
68
78
  }
69
79
  else {
70
80
  // SANDBOXED
@@ -122,6 +132,13 @@ export class Worker extends QueueBase {
122
132
  this.blockingConnection.on('error', error => this.emit('error', error));
123
133
  this.blockingConnection.on('ready', () => setTimeout(() => this.emit('ready'), 0));
124
134
  }
135
+ /**
136
+ * Public accessor method for LockManager to extend locks.
137
+ * This delegates to the protected scripts object.
138
+ */
139
+ async extendJobLocks(jobIds, tokens, duration) {
140
+ return this.scripts.extendLocks(jobIds, tokens, duration);
141
+ }
125
142
  emit(event, ...args) {
126
143
  return super.emit(event, ...args);
127
144
  }
@@ -137,8 +154,8 @@ export class Worker extends QueueBase {
137
154
  super.once(event, listener);
138
155
  return this;
139
156
  }
140
- callProcessJob(job, token) {
141
- return this.processFn(job, token);
157
+ callProcessJob(job, token, signal) {
158
+ return this.processFn(job, token, signal);
142
159
  }
143
160
  createJob(data, jobId) {
144
161
  return this.Job.fromJSON(this, data, jobId);
@@ -153,6 +170,26 @@ export class Worker extends QueueBase {
153
170
  await super.waitUntilReady();
154
171
  return this.blockingConnection.client;
155
172
  }
173
+ /**
174
+ * Cancels a specific job currently being processed by this worker.
175
+ * The job's processor function will receive an abort signal.
176
+ *
177
+ * @param jobId - The ID of the job to cancel
178
+ * @param reason - Optional reason for the cancellation
179
+ * @returns true if the job was found and cancelled, false otherwise
180
+ */
181
+ cancelJob(jobId, reason) {
182
+ return this.lockManager.cancelJob(jobId, reason);
183
+ }
184
+ /**
185
+ * Cancels all jobs currently being processed by this worker.
186
+ * All active job processor functions will receive abort signals.
187
+ *
188
+ * @param reason - Optional reason for the cancellation
189
+ */
190
+ cancelAllJobs(reason) {
191
+ this.lockManager.cancelAllJobs(reason);
192
+ }
156
193
  set concurrency(concurrency) {
157
194
  if (typeof concurrency !== 'number' ||
158
195
  concurrency < 1 ||
@@ -197,6 +234,9 @@ export class Worker extends QueueBase {
197
234
  return;
198
235
  }
199
236
  await this.startStalledCheckTimer();
237
+ if (!this.opts.skipLockRenewal) {
238
+ this.lockManager.start();
239
+ }
200
240
  const client = await this.client;
201
241
  const bclient = await this.blockingConnection.client;
202
242
  this.mainLoopRunning = this.mainLoop(client, bclient);
@@ -224,8 +264,6 @@ export class Worker extends QueueBase {
224
264
  */
225
265
  async mainLoop(client, bclient) {
226
266
  const asyncFifoQueue = new AsyncFifoQueue();
227
- const jobsInProgress = new Set();
228
- this.startLockExtenderTimer(jobsInProgress);
229
267
  let tokenPostfix = 0;
230
268
  while ((!this.closing && !this.paused) || asyncFifoQueue.numTotal() > 0) {
231
269
  /**
@@ -268,7 +306,7 @@ export class Worker extends QueueBase {
268
306
  } while (!job && asyncFifoQueue.numQueued() > 0);
269
307
  if (job) {
270
308
  const token = job.token;
271
- asyncFifoQueue.add(this.processJob(job, token, () => asyncFifoQueue.numTotal() <= this._concurrency, jobsInProgress));
309
+ asyncFifoQueue.add(this.processJob(job, token, () => asyncFifoQueue.numTotal() <= this._concurrency));
272
310
  }
273
311
  else if (asyncFifoQueue.numQueued() === 0) {
274
312
  await this.waitForRateLimit();
@@ -485,7 +523,7 @@ export class Worker extends QueueBase {
485
523
  return job;
486
524
  }
487
525
  }
488
- async processJob(job, token, fetchNextCallback = () => true, jobsInProgress) {
526
+ async processJob(job, token, fetchNextCallback = () => true) {
489
527
  var _a, _b;
490
528
  const srcPropagationMedatada = (_b = (_a = job.opts) === null || _a === void 0 ? void 0 : _a.telemetry) === null || _b === void 0 ? void 0 : _b.metadata;
491
529
  return this.trace(SpanKind.CONSUMER, 'process', this.name, async (span) => {
@@ -498,22 +536,24 @@ export class Worker extends QueueBase {
498
536
  });
499
537
  this.emit('active', job, 'waiting');
500
538
  const processedOn = Date.now();
501
- const inProgressItem = { job, ts: processedOn };
539
+ const abortController = this.lockManager.trackJob(job.id, token, processedOn, this.processorAcceptsSignal);
502
540
  try {
503
541
  const unrecoverableErrorMessage = this.getUnrecoverableErrorMessage(job);
504
542
  if (unrecoverableErrorMessage) {
505
- const failed = await this.retryIfFailed(() => this.handleFailed(new UnrecoverableError(unrecoverableErrorMessage), job, token, fetchNextCallback, jobsInProgress, inProgressItem, span), { delayInMs: this.opts.runRetryDelay, span });
543
+ const failed = await this.retryIfFailed(() => this.handleFailed(new UnrecoverableError(unrecoverableErrorMessage), job, token, fetchNextCallback, span), { delayInMs: this.opts.runRetryDelay, span });
506
544
  return failed;
507
545
  }
508
- jobsInProgress.add(inProgressItem);
509
- const result = await this.callProcessJob(job, token);
510
- return await this.retryIfFailed(() => this.handleCompleted(result, job, token, fetchNextCallback, jobsInProgress, inProgressItem, span), { delayInMs: this.opts.runRetryDelay, span });
546
+ const result = await this.callProcessJob(job, token, abortController
547
+ ? abortController.signal
548
+ : undefined);
549
+ return await this.retryIfFailed(() => this.handleCompleted(result, job, token, fetchNextCallback, span), { delayInMs: this.opts.runRetryDelay, span });
511
550
  }
512
551
  catch (err) {
513
- const failed = await this.retryIfFailed(() => this.handleFailed(err, job, token, fetchNextCallback, jobsInProgress, inProgressItem, span), { delayInMs: this.opts.runRetryDelay, span, onlyEmitError: true });
552
+ const failed = await this.retryIfFailed(() => this.handleFailed(err, job, token, fetchNextCallback, span), { delayInMs: this.opts.runRetryDelay, span, onlyEmitError: true });
514
553
  return failed;
515
554
  }
516
555
  finally {
556
+ this.lockManager.untrackJob(job.id);
517
557
  span === null || span === void 0 ? void 0 : span.setAttributes({
518
558
  [TelemetryAttributes.JobFinishedTimestamp]: Date.now(),
519
559
  [TelemetryAttributes.JobProcessedTimestamp]: processedOn,
@@ -530,8 +570,7 @@ export class Worker extends QueueBase {
530
570
  return 'job started more than allowable limit';
531
571
  }
532
572
  }
533
- async handleCompleted(result, job, token, fetchNextCallback = () => true, jobsInProgress, inProgressItem, span) {
534
- jobsInProgress.delete(inProgressItem);
573
+ async handleCompleted(result, job, token, fetchNextCallback = () => true, span) {
535
574
  if (!this.connection.closing) {
536
575
  const completed = await job.moveToCompleted(result, token, fetchNextCallback() && !(this.closing || this.paused));
537
576
  this.emit('completed', job, result, 'active');
@@ -543,8 +582,7 @@ export class Worker extends QueueBase {
543
582
  return this.nextJobFromJobData(jobData, jobId, token);
544
583
  }
545
584
  }
546
- async handleFailed(err, job, token, fetchNextCallback = () => true, jobsInProgress, inProgressItem, span) {
547
- jobsInProgress.delete(inProgressItem);
585
+ async handleFailed(err, job, token, fetchNextCallback = () => true, span) {
548
586
  if (!this.connection.closing) {
549
587
  // Check if the job was manually rate-limited
550
588
  if (err.message === RATE_LIMIT_ERROR) {
@@ -563,10 +601,11 @@ export class Worker extends QueueBase {
563
601
  }
564
602
  const result = await job.moveToFailed(err, token, fetchNextCallback() && !(this.closing || this.paused));
565
603
  this.emit('failed', job, err, 'active');
566
- span === null || span === void 0 ? void 0 : span.addEvent('job failed', {
567
- [TelemetryAttributes.JobFailedReason]: err.message,
568
- });
604
+ // Note: result can be undefined if moveToFailed fails (e.g., lock was lost)
569
605
  if (result) {
606
+ span === null || span === void 0 ? void 0 : span.addEvent('job failed', {
607
+ [TelemetryAttributes.JobFailedReason]: err.message,
608
+ });
570
609
  const [jobData, jobId, rateLimitDelay, delayUntil] = result;
571
610
  this.updateDelays(rateLimitDelay, delayUntil);
572
611
  return this.nextJobFromJobData(jobData, jobId, token);
@@ -663,6 +702,7 @@ export class Worker extends QueueBase {
663
702
  () => {
664
703
  return force || this.whenCurrentJobsFinished(false);
665
704
  },
705
+ () => this.lockManager.close(),
666
706
  () => { var _a; return (_a = this.childPool) === null || _a === void 0 ? void 0 : _a.clean(); },
667
707
  () => this.blockingConnection.close(force),
668
708
  () => this.connection.close(force),
@@ -676,7 +716,6 @@ export class Worker extends QueueBase {
676
716
  this.emit('error', err);
677
717
  }
678
718
  }
679
- clearTimeout(this.extendLocksTimer);
680
719
  (_b = this.stalledCheckStopper) === null || _b === void 0 ? void 0 : _b.call(this);
681
720
  this.closed = true;
682
721
  this.emit('closed');
@@ -723,40 +762,6 @@ export class Worker extends QueueBase {
723
762
  });
724
763
  }
725
764
  }
726
- startLockExtenderTimer(jobsInProgress) {
727
- if (!this.opts.skipLockRenewal) {
728
- clearTimeout(this.extendLocksTimer);
729
- if (!this.closed) {
730
- this.extendLocksTimer = setTimeout(async () => {
731
- // Get all the jobs whose locks expire in less than 1/2 of the lockRenewTime
732
- const now = Date.now();
733
- const jobsToExtend = [];
734
- for (const item of jobsInProgress) {
735
- const { job, ts } = item;
736
- if (!ts) {
737
- item.ts = now;
738
- continue;
739
- }
740
- if (ts + this.opts.lockRenewTime / 2 < now) {
741
- item.ts = now;
742
- jobsToExtend.push(job);
743
- }
744
- }
745
- try {
746
- if (jobsToExtend.length) {
747
- await this.extendLocks(jobsToExtend);
748
- }
749
- }
750
- catch (err) {
751
- if (isNotConnectionError(err)) {
752
- this.emit('error', err);
753
- }
754
- }
755
- this.startLockExtenderTimer(jobsInProgress);
756
- }, this.opts.lockRenewTime / 2);
757
- }
758
- }
759
- }
760
765
  /**
761
766
  * Returns a promise that resolves when active jobs are cleared
762
767
  *
@@ -812,20 +817,6 @@ export class Worker extends QueueBase {
812
817
  }
813
818
  } while (++retry < maxRetries);
814
819
  }
815
- async extendLocks(jobs) {
816
- await this.trace(SpanKind.INTERNAL, 'extendLocks', this.name, async (span) => {
817
- span === null || span === void 0 ? void 0 : span.setAttributes({
818
- [TelemetryAttributes.WorkerId]: this.id,
819
- [TelemetryAttributes.WorkerName]: this.opts.name,
820
- [TelemetryAttributes.WorkerJobsToExtendLocks]: jobs.map(job => job.id),
821
- });
822
- const erroredJobIds = await this.scripts.extendLocks(jobs.map(job => job.id), jobs.map(job => job.token), this.opts.lockDuration);
823
- for (const jobId of erroredJobIds) {
824
- // TODO: Send signal to process function that the job has been lost.
825
- this.emit('error', new Error(`could not renew lock for job ${jobId}`));
826
- }
827
- });
828
- }
829
820
  async moveStalledJobsToWait() {
830
821
  await this.trace(SpanKind.INTERNAL, 'moveStalledJobsToWait', this.name, async (span) => {
831
822
  const stalled = await this.scripts.moveStalledJobsToWait();
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/classes/worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,gEAAgE;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAaxD,OAAO,EACL,KAAK,EACL,YAAY,EACZ,oBAAoB,EACpB,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB,uDAAuD;AACvD,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,yCAAyC;AACzC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAkHpC;;;;;;GAMG;AACH,MAAM,OAAO,MAIX,SAAQ,SAAS;IAwBjB,MAAM,CAAC,cAAc;QACnB,OAAO,IAAI,cAAc,EAAE,CAAC;IAC9B,CAAC;IAED,YACE,IAAY,EACZ,SAA2E,EAC3E,IAAoB,EACpB,UAAmC;QAEnC,KAAK,CACH,IAAI,gCAEF,UAAU,EAAE,CAAC,EACb,WAAW,EAAE,CAAC,EACd,YAAY,EAAE,KAAK,EACnB,eAAe,EAAE,CAAC,EAClB,eAAe,EAAE,KAAK,EACtB,OAAO,EAAE,IAAI,EACb,aAAa,EAAE,KAAK,IACjB,IAAI,KACP,kBAAkB,EAAE,IAAI,KAE1B,UAAU,CACX,CAAC;QA5CI,yBAAoB,GAA2B,IAAI,CAAC;QAEpD,eAAU,GAAG,CAAC,CAAC;QAGf,YAAO,GAAG,KAAK,CAAC;QAChB,qBAAgB,GAA0B,IAAI,CAAC;QAC/C,eAAU,GAAG,CAAC,CAAC;QAGf,YAAO,GAA2B,IAAI,CAAC;QAOrC,YAAO,GAAG,KAAK,CAAC;QAChB,oBAAe,GAAyB,IAAI,CAAC;QA4BrD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,IACE,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,QAAQ;YAC7C,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,EAC7B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,IACE,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,KAAK,QAAQ;YAChD,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAChC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,IACE,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,QAAQ;YAC7C,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,EAC9B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QAEzC,IAAI,CAAC,IAAI,CAAC,aAAa;YACrB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QAExD,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;QAEf,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;gBACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,YAAY;gBACZ,IAAI,SAAS,YAAY,GAAG,EAAE,CAAC;oBAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC9B,MAAM,IAAI,KAAK,CACb,OAAO,SAAS,0CAA0C,CAC3D,CAAC;oBACJ,CAAC;oBACD,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;oBACnE,MAAM,aAAa,GACjB,SAAS;wBACT,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAEtE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;wBAClC,MAAM,IAAI,KAAK,CAAC,QAAQ,aAAa,iBAAiB,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;gBAED,wEAAwE;gBACxE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC;gBAC5D,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBACnE,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAE3D,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB;oBAC3C,CAAC,CAAC,qBAAqB;oBACvB,CAAC,CAAC,oBAAoB,CAAC;gBAEzB,IAAI,CAAC;oBACH,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,iCAAiC;gBAC9D,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB;wBACzC,CAAC,CAAC,gBAAgB;wBAClB,CAAC,CAAC,SAAS,CAAC;oBACd,YAAY,GAAG,IAAI,CAAC,IAAI,CACtB,OAAO,CAAC,GAAG,EAAE,EACb,oBAAoB,QAAQ,EAAE,CAC/B,CAAC;oBACF,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC5B,CAAC;gBAED,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC;oBAC7B,QAAQ,EAAE,YAAY;oBACtB,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;oBAC5C,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB;oBAC9C,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,oBAAoB;iBACrD,CAAC,CAAC;gBAEH,IAAI,CAAC,SAAS,GAAG,OAAO,CACtB,SAAS,EACT,IAAI,CAAC,SAAS,CACf,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACtB,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAClB,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,kBAAkB,GAAG,IAAI,eAAe,CAC3C,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;YAC9B,CAAC,CAAS,IAAI,CAAC,UAAW,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;YACxD,CAAC,iCAAM,IAAI,CAAC,UAAU,KAAE,cAAc,GAAE,EAC1C;YACE,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACxC,CACF,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CACvC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CACxC,CAAC;IACJ,CAAC;IAED,IAAI,CACF,KAAQ,EACR,GAAG,IAAmE;QAEtE,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,GAAG,CACD,SAAY,EACZ,QAA2D;QAE3D,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAA2D;QAE3D,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAA2D;QAE3D,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAES,cAAc,CACtB,GAAwC,EACxC,KAAa;QAEb,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAES,SAAS,CACjB,IAAgB,EAChB,KAAa;QAEb,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAoB,EAAE,IAAI,EAAE,KAAK,CAIzD,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;IACxC,CAAC;IAED,IAAI,WAAW,CAAC,WAAmB;QACjC,IACE,OAAO,WAAW,KAAK,QAAQ;YAC/B,WAAW,GAAG,CAAC;YACf,CAAC,QAAQ,CAAC,WAAW,CAAC,EACtB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,OAAO,CAAS,KAAK,EAAC,OAAO,EAAC,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;gBACrC,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,kCAC9B,IAAI,CAAC,IAAI,KACZ,UAAU,IACV,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,OAAO,CAAe,KAAK,EAAC,OAAO,EAAC,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;gBACrC,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,kCAC1C,IAAI,CAAC,IAAI,KACZ,UAAU,IACV,CAAC;gBACH,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAEpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;YACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;YAErD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAEtD,0DAA0D;YAC1D,MAAM,IAAI,CAAC,eAAe,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC5B,MAAA,IAAI,CAAC,oBAAoB,0CAAE,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,oBAAoB,GAAG,IAAI,eAAe,EAAE,CAAC;YAElD,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAE9D,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,QAAQ,CAAC,MAAmB,EAAE,OAAoB;QAC9D,MAAM,cAAc,GAAG,IAAI,cAAc,EAIrC,CAAC;QACL,MAAM,cAAc,GAAG,IAAI,GAAG,EAA4B,CAAC;QAC3D,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;QAE5C,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;YACxE;;;eAGG;YACH,OACE,CAAC,IAAI,CAAC,OAAO;gBACb,CAAC,IAAI,CAAC,MAAM;gBACZ,CAAC,IAAI,CAAC,OAAO;gBACb,cAAc,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY;gBAC7C,CAAC,IAAI,CAAC,aAAa,EAAE,EACrB,CAAC;gBACD,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,YAAY,EAAE,EAAE,CAAC;gBAE7C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAIlC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE;oBAClE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;oBAClC,aAAa,EAAE,IAAI;iBACpB,CAAC,CAAC;gBACH,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAE/B,IAAI,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;oBAClD,oFAAoF;oBACpF,MAAM;gBACR,CAAC;gBAED,gGAAgG;gBAChG,0CAA0C;gBAC1C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC;gBAE7B,8EAA8E;gBAC9E,IAAI,CAAC,GAAG,IAAI,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;oBAC1C,MAAM;gBACR,CAAC;gBAED,qGAAqG;gBACrG,2BAA2B;gBAC3B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM;gBACR,CAAC;YACH,CAAC;YAED,sFAAsF;YACtF,kCAAkC;YAClC,IAAI,GAA+C,CAAC;YACpD,GAAG,CAAC;gBACF,GAAG,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;YACrC,CAAC,QAAQ,CAAC,GAAG,IAAI,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;YAEjD,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;gBACxB,cAAc,CAAC,GAAG,CAChB,IAAI,CAAC,UAAU,CACwB,GAAG,EACxC,KAAK,EACL,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,EACpD,cAAc,CACf,CACF,CAAC;YACJ,CAAC;iBAAM,IAAI,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,EAAE,KAAK,GAAG,IAAI,KAAwB,EAAE;;QACtE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CACpC,MAAM,IAAI,CAAC,MAAM,EACjB,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EACpC,KAAK,EACL,EAAE,KAAK,EAAE,CACV,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CACf,QAAQ,CAAC,QAAQ,EACjB,YAAY,EACZ,IAAI,CAAC,IAAI,EACT,KAAK,EAAC,IAAI,EAAC,EAAE;YACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;gBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;gBACvC,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,IAAI;gBAC1C,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBAChD,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;gBAC9D,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE;aACzC,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC;QACjB,CAAC,EACD,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,SAAS,0CAAE,QAAQ,CACnC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,MAAmB,EACnB,OAAoB,EACpB,KAAa,EACb,EAAE,KAAK,GAAG,IAAI,KAAwB,EAAE;QAExC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACzD,IAAI,CAAC;gBACH,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;gBAErC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;oBAC7D,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,YAAoB;QAClC,MAAM,IAAI,CAAC,KAAK,CACd,QAAQ,CAAC,QAAQ,EACjB,WAAW,EACX,IAAI,CAAC,IAAI,EACT,KAAK,EAAC,IAAI,EAAC,EAAE;YACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;gBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;gBACvC,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,YAAY;aACpD,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAC9B,MAAM,CAAC,GAAG,CACR,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,MAAM,CAAC,gBAAgB,EACvB,IAAI,EACJ,YAAY,CACb,CACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,cAAc;YACxD,CAAC,CAAC;;qDAEuC;gBACvC,KAAK;YACP,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC;IAEO,aAAa;QACnB,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtC,CAAC;IAES,KAAK,CAAC,YAAY,CAC1B,MAAmB,EACnB,KAAa,EACb,IAAa;QAEb,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,CAAC,GAC7C,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,OAAoB,EACpB,UAAkB;QAElB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,OAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBAC3C,IAAI,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;gBAEpD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;oBACrB,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,gBAAgB;wBAClE,CAAC,CAAC,YAAY;wBACd,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAE5B,sEAAsE;oBACtE,iEAAiE;oBACjE,6CAA6C;oBAC7C,OAAO,GAAG,UAAU,CAClB,KAAK,IAAI,EAAE;wBACT,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACpC,CAAC,EACD,YAAY,GAAG,IAAI,GAAG,IAAI,CAC3B,CAAC;oBAEF,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,8DAA8D;oBAEnF,8EAA8E;oBAC9E,iBAAiB;oBACjB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;oBACtE,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC;wBAErC,IAAI,MAAM,EAAE,CAAC;4BACX,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;4BACtC,mFAAmF;4BACnF,8CAA8C;4BAC9C,IAAI,UAAU,IAAI,aAAa,GAAG,UAAU,EAAE,CAAC;gCAC7C,OAAO,UAAU,CAAC;4BACpB,CAAC;4BACD,OAAO,aAAa,CAAC;wBACvB,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,oBAAoB,CAAQ,KAAK,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAS,KAAK,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAES,eAAe,CAAC,UAAkB;QAC1C,MAAM,IAAI,GAAiC,IAAI,CAAC,IAAI,CAAC;QAErD,8BAA8B;QAC9B,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3C,yCAAyC;YACzC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;gBACpB,OAAO,UAAU,CAAC;YACpB,CAAC;iBAAM,IAAI,UAAU,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,EAAE,CAAC;gBACxD,OAAO,IAAI,CAAC,mBAAmB,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,8DAA8D;gBAC9D,oEAAoE;gBACpE,+DAA+D;gBAC/D,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,EAAE,mBAAmB,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAES,iBAAiB,CAAC,KAAa;QACvC,sDAAsD;QACtD,8DAA8D;QAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CACT,YAAqB,EACrB,eAAiC;QAEjC,MAAM,KAAK,CAAC,YAAY,IAAI,YAAY,EAAE,eAAe,CAAC,CAAC;IAC7D,CAAC;IAEO,YAAY,CAAC,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC7C,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAES,KAAK,CAAC,kBAAkB,CAChC,OAAoB,EACpB,KAAc,EACd,KAAc;QAEd,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3C,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;YAElB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,aAAa,CACtB,KAAK,IAAI,EAAE;oBACT,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC/D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC;wBAC7C,MAAM,YAAY,CAAC,kBAAkB;wBACnC,gDAAgD;wBAChD,wDAAwD;wBACxD,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,IAAI,CAAC,MAAM,EACf,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,IAAI,EACR,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,CACxC,CAAC;oBACJ,CAAC;yBAAM,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;wBACjC,MAAM,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE;4BAC7D,QAAQ,EAAE,KAAK;yBAChB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,EACD,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CACvC,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,sEAAsE;gBACtE,iEAAiE;gBACjE,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtE,MAAM,eAAe,GAAG,IAAI,KAAK,CAC/B,oDAAoD,YAAY,EAAE,CACnE,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;gBAEpC,wDAAwD;gBACxD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CACd,GAAwC,EACxC,KAAa,EACb,iBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI,EAC9B,cAA6C;;QAE7C,MAAM,sBAAsB,GAAG,MAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,SAAS,0CAAE,QAAQ,CAAC;QAE7D,OAAO,IAAI,CAAC,KAAK,CACf,QAAQ,CAAC,QAAQ,EACjB,SAAS,EACT,IAAI,CAAC,IAAI,EACT,KAAK,EAAC,IAAI,EAAC,EAAE;YACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;gBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;gBACvC,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBAChD,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE;gBACnC,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI;gBACvC,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,YAAY;aACxD,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAEpC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;YAEhD,IAAI,CAAC;gBACH,MAAM,yBAAyB,GAC7B,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,yBAAyB,EAAE,CAAC;oBAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAKrC,GAAG,EAAE,CACH,IAAI,CAAC,YAAY,CACf,IAAI,kBAAkB,CAAC,yBAAyB,CAAC,EACjD,GAAG,EACH,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,IAAI,CACL,EACH,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAC7C,CAAC;oBACF,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAEnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACrD,OAAO,MAAM,IAAI,CAAC,aAAa,CAK7B,GAAG,EAAE,CACH,IAAI,CAAC,eAAe,CAClB,MAAM,EACN,GAAG,EACH,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,IAAI,CACL,EACH,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAC7C,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAKrC,GAAG,EAAE,CACH,IAAI,CAAC,YAAY,CACR,GAAG,EACV,GAAG,EACH,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,IAAI,CACL,EACH,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAClE,CAAC;gBACF,OAAO,MAAM,CAAC;YAChB,CAAC;oBAAS,CAAC;gBACT,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;oBAClB,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE;oBACtD,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,EAAE,WAAW;iBACzD,CAAC,CAAC;YACL,CAAC;QACH,CAAC,EACD,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAEO,4BAA4B,CAClC,GAAwC;QAExC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,eAAe,CAAC;QAC7B,CAAC;QACD,IACE,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAC5B,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC,eAAe,EAClD,CAAC;YACD,OAAO,uCAAuC,CAAC;QACjD,CAAC;IACH,CAAC;IAES,KAAK,CAAC,eAAe,CAC7B,MAAkB,EAClB,GAAwC,EACxC,KAAa,EACb,iBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI,EAC9B,cAA6C,EAC7C,cAAwC,EACxC,IAAW;QAEX,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,eAAe,CACzC,MAAM,EACN,KAAK,EACL,iBAAiB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CACtD,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAE9C,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,eAAe,EAAE;gBAC9B,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aACxD,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,CAAC,GAAG,SAAS,IAAI,EAAE,CAAC;YACrE,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YAE9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAES,KAAK,CAAC,YAAY,CAC1B,GAAU,EACV,GAAwC,EACxC,KAAa,EACb,iBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI,EAC9B,cAA6C,EAC7C,cAAwC,EACxC,IAAW;QAEX,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7B,6CAA6C;YAC7C,IAAI,GAAG,CAAC,OAAO,KAAK,gBAAgB,EAAE,CAAC;gBACrC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAClE,IAAI,CAAC,UAAU,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,OAAO;YACT,CAAC;YAED,IACE,GAAG,YAAY,YAAY;gBAC3B,GAAG,CAAC,IAAI,IAAI,cAAc;gBAC1B,GAAG,YAAY,YAAY;gBAC3B,GAAG,CAAC,IAAI,IAAI,cAAc;gBAC1B,GAAG,YAAY,oBAAoB;gBACnC,GAAG,CAAC,IAAI,IAAI,sBAAsB,EAClC,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;gBACjC,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CACnC,GAAG,EACH,KAAK,EACL,iBAAiB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CACtD,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YAExC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,YAAY,EAAE;gBAC3B,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,OAAO;aACnD,CAAC,CAAC;YAEH,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,CAAC,GAAG,MAAM,CAAC;gBAC5D,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;gBAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,eAAyB;QACnC,MAAM,IAAI,CAAC,KAAK,CACd,QAAQ,CAAC,QAAQ,EACjB,OAAO,EACP,IAAI,CAAC,IAAI,EACT,KAAK,EAAC,IAAI,EAAC,EAAE;;YACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;gBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;gBACvC,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBAChD,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,EAAE,eAAe;aAC7D,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBACvC,CAAC;gBACD,MAAA,IAAI,CAAC,mBAAmB,oDAAI,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAO,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;gBAC9D,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;oBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;oBACvC,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;iBACjD,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBAEpB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACN,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK;QACvB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;YACzB,MAAM,IAAI,CAAC,KAAK,CACd,QAAQ,CAAC,QAAQ,EACjB,OAAO,EACP,IAAI,CAAC,IAAI,EACT,KAAK,EAAC,IAAI,EAAC,EAAE;;gBACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;oBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;oBACvC,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;oBAChD,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,KAAK;iBAC9C,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;gBACtC,MAAA,IAAI,CAAC,oBAAoB,0CAAE,KAAK,EAAE,CAAC;gBAEnC,qCAAqC;gBACrC,MAAM,aAAa,GAAG;oBACpB,GAAG,EAAE;wBACH,OAAO,KAAK,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;oBACtD,CAAC;oBACD,GAAG,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,EAAE,CAAA,EAAA;oBAC7B,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC;oBAC1C,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;iBACnC,CAAC;gBAEF,kFAAkF;gBAClF,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;oBACpC,IAAI,CAAC;wBACH,MAAM,OAAO,EAAE,CAAC;oBAClB,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAS,GAAG,CAAC,CAAC;oBACjC,CAAC;gBACH,CAAC;gBAED,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACpC,MAAA,IAAI,CAAC,mBAAmB,oDAAI,CAAC;gBAE7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,sBAAsB;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,KAAK,CACd,QAAQ,CAAC,QAAQ,EACjB,wBAAwB,EACxB,IAAI,CAAC,IAAI,EACT,KAAK,EAAC,IAAI,EAAC,EAAE;oBACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;wBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;wBACvC,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;qBACjD,CAAC,CAAC;oBAEH,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;wBAChC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAS,GAAG,CAAC,CAAC;oBACjC,CAAC,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;YAEpE,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gBAChC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC/D,IAAI,CAAC,mBAAmB,GAAG,GAAG,EAAE;oBAC9B,YAAY,CAAC,OAAO,CAAC,CAAC;oBACtB,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,sBAAsB,CAC5B,cAA6C;QAE7C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAEpC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;oBAC5C,4EAA4E;oBAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvB,MAAM,YAAY,GAAG,EAAE,CAAC;oBAExB,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;wBAClC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;wBACzB,IAAI,CAAC,EAAE,EAAE,CAAC;4BACR,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;4BACd,SAAS;wBACX,CAAC;wBAED,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;4BAC3C,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;4BACd,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACzB,CAAC;oBACH,CAAC;oBAED,IAAI,CAAC;wBACH,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;4BACxB,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;wBACvC,CAAC;oBACH,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,IAAI,oBAAoB,CAAC,GAAY,CAAC,EAAE,CAAC;4BACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAS,GAAG,CAAC,CAAC;wBACjC,CAAC;oBACH,CAAC;oBAED,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;gBAC9C,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,uBAAuB,CAAC,SAAS,GAAG,IAAI;QACpD,EAAE;QACF,sFAAsF;QACtF,EAAE;QACF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,4EAA4E;YAC5E,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,eAAe,CAAC;QAC7B,CAAC;QAED,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,EAAoB,EACpB,IAKC;;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC;QAE/C,GAAG,CAAC;YACF,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,EAAE,CAAC;YACpB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAA,IAAI,CAAC,IAAI,0CAAE,eAAe,CAAS,GAAI,CAAC,OAAO,CAAC,CAAC;gBAEjD,IAAI,oBAAoB,CAAQ,GAAG,CAAC,EAAE,CAAC;oBACrC,uGAAuG;oBACvG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;wBAClC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAS,GAAG,CAAC,CAAC;oBACjC,CAAC;oBAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;wBACvB,OAAO;oBACT,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,CAAC;oBACZ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACpD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBAC9D,CAAC;oBAED,IAAI,KAAK,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;wBAC5B,qDAAqD;wBACrD,MAAM,GAAG,CAAC;oBACZ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,QAAQ,EAAE,KAAK,GAAG,UAAU,EAAE;IACjC,CAAC;IAES,KAAK,CAAC,WAAW,CAAC,IAAW;QACrC,MAAM,IAAI,CAAC,KAAK,CACd,QAAQ,CAAC,QAAQ,EACjB,aAAa,EACb,IAAI,CAAC,IAAI,EACT,KAAK,EAAC,IAAI,EAAC,EAAE;YACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;gBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;gBACvC,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBAChD,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC,GAAG,CACrD,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CACd;aACF,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAClD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,CACvB,CAAC;YAEF,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;gBAClC,oEAAoE;gBAEpE,IAAI,CAAC,IAAI,CACP,OAAO,EACP,IAAI,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CACnD,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,MAAM,IAAI,CAAC,KAAK,CACd,QAAQ,CAAC,QAAQ,EACjB,uBAAuB,EACvB,IAAI,CAAC,IAAI,EACT,KAAK,EAAC,IAAI,EAAC,EAAE;YACX,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAE3D,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;gBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;gBACvC,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBAChD,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAAE,OAAO;aACjD,CAAC,CAAC;YAEH,OAAO,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;gBAChC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,aAAa,EAAE;oBAC5B,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK;iBACnC,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAC3B,GAAwC,EACxC,KAAa;QAEb,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/classes/worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,gEAAgE;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAaxD,OAAO,EACL,KAAK,EACL,YAAY,EACZ,oBAAoB,EACpB,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAA4B,MAAM,gBAAgB,CAAC;AAEvE,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB,uDAAuD;AACvD,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,yCAAyC;AACzC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAgIpC;;;;;;GAMG;AACH,MAAM,OAAO,MAIX,SAAQ,SAAS;IAyBjB,MAAM,CAAC,cAAc;QACnB,OAAO,IAAI,cAAc,EAAE,CAAC;IAC9B,CAAC;IAED,YACE,IAAY,EACZ,SAA2E,EAC3E,IAAoB,EACpB,UAAmC;QAEnC,KAAK,CACH,IAAI,gCAEF,UAAU,EAAE,CAAC,EACb,WAAW,EAAE,CAAC,EACd,YAAY,EAAE,KAAK,EACnB,eAAe,EAAE,CAAC,EAClB,eAAe,EAAE,KAAK,EACtB,OAAO,EAAE,IAAI,EACb,aAAa,EAAE,KAAK,IACjB,IAAI,KACP,kBAAkB,EAAE,IAAI,KAE1B,UAAU,CACX,CAAC;QA7CI,yBAAoB,GAA2B,IAAI,CAAC;QAEpD,eAAU,GAAG,CAAC,CAAC;QAGf,YAAO,GAAG,KAAK,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QAEf,2BAAsB,GAAG,KAAK,CAAC;QAG/B,YAAO,GAA2B,IAAI,CAAC;QAOrC,YAAO,GAAG,KAAK,CAAC;QAChB,oBAAe,GAAyB,IAAI,CAAC;QA4BrD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,IACE,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,QAAQ;YAC7C,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,EAC7B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,IACE,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,KAAK,QAAQ;YAChD,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAChC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,IACE,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,QAAQ;YAC7C,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,EAC9B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QAEzC,IAAI,CAAC,IAAI,CAAC,aAAa;YACrB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QAExD,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;QAEf,8CAA8C;QAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAgC,EAAE;YACnE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;YACtC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;YACpC,QAAQ,EAAE,IAAI,CAAC,EAAE;YACjB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;SAC3B,CAAC,CAAC;QAEH,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;gBACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC3B,8DAA8D;gBAC9D,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,YAAY;gBACZ,IAAI,SAAS,YAAY,GAAG,EAAE,CAAC;oBAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC9B,MAAM,IAAI,KAAK,CACb,OAAO,SAAS,0CAA0C,CAC3D,CAAC;oBACJ,CAAC;oBACD,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;oBACnE,MAAM,aAAa,GACjB,SAAS;wBACT,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAEtE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;wBAClC,MAAM,IAAI,KAAK,CAAC,QAAQ,aAAa,iBAAiB,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;gBAED,wEAAwE;gBACxE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC;gBAC5D,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBACnE,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAE3D,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB;oBAC3C,CAAC,CAAC,qBAAqB;oBACvB,CAAC,CAAC,oBAAoB,CAAC;gBAEzB,IAAI,CAAC;oBACH,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,iCAAiC;gBAC9D,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB;wBACzC,CAAC,CAAC,gBAAgB;wBAClB,CAAC,CAAC,SAAS,CAAC;oBACd,YAAY,GAAG,IAAI,CAAC,IAAI,CACtB,OAAO,CAAC,GAAG,EAAE,EACb,oBAAoB,QAAQ,EAAE,CAC/B,CAAC;oBACF,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC5B,CAAC;gBAED,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC;oBAC7B,QAAQ,EAAE,YAAY;oBACtB,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;oBAC5C,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB;oBAC9C,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,oBAAoB;iBACrD,CAAC,CAAC;gBAEH,IAAI,CAAC,SAAS,GAAG,OAAO,CACtB,SAAS,EACT,IAAI,CAAC,SAAS,CACf,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACtB,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAClB,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,kBAAkB,GAAG,IAAI,eAAe,CAC3C,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;YAC9B,CAAC,CAAS,IAAI,CAAC,UAAW,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;YACxD,CAAC,iCAAM,IAAI,CAAC,UAAU,KAAE,cAAc,GAAE,EAC1C;YACE,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACxC,CACF,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CACvC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CACxC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAClB,MAAgB,EAChB,MAAgB,EAChB,QAAgB;QAEhB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,CACF,KAAQ,EACR,GAAG,IAAmE;QAEtE,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,GAAG,CACD,SAAY,EACZ,QAA2D;QAE3D,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAA2D;QAE3D,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAA2D;QAE3D,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAES,cAAc,CACtB,GAAwC,EACxC,KAAa,EACb,MAAoB;QAEpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAES,SAAS,CACjB,IAAgB,EAChB,KAAa;QAEb,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAoB,EAAE,IAAI,EAAE,KAAK,CAIzD,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;IACxC,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,KAAa,EAAE,MAAe;QACtC,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,MAAe;QAC3B,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,WAAW,CAAC,WAAmB;QACjC,IACE,OAAO,WAAW,KAAK,QAAQ;YAC/B,WAAW,GAAG,CAAC;YACf,CAAC,QAAQ,CAAC,WAAW,CAAC,EACtB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,OAAO,CAAS,KAAK,EAAC,OAAO,EAAC,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;gBACrC,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,kCAC9B,IAAI,CAAC,IAAI,KACZ,UAAU,IACV,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,OAAO,CAAe,KAAK,EAAC,OAAO,EAAC,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;gBACrC,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,kCAC1C,IAAI,CAAC,IAAI,KACZ,UAAU,IACV,CAAC;gBACH,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAEpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC/B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAC3B,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;YACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;YAErD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAEtD,0DAA0D;YAC1D,MAAM,IAAI,CAAC,eAAe,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC5B,MAAA,IAAI,CAAC,oBAAoB,0CAAE,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,oBAAoB,GAAG,IAAI,eAAe,EAAE,CAAC;YAElD,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAE9D,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,QAAQ,CAAC,MAAmB,EAAE,OAAoB;QAC9D,MAAM,cAAc,GAAG,IAAI,cAAc,EAIrC,CAAC;QAEL,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;YACxE;;;eAGG;YACH,OACE,CAAC,IAAI,CAAC,OAAO;gBACb,CAAC,IAAI,CAAC,MAAM;gBACZ,CAAC,IAAI,CAAC,OAAO;gBACb,cAAc,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY;gBAC7C,CAAC,IAAI,CAAC,aAAa,EAAE,EACrB,CAAC;gBACD,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,YAAY,EAAE,EAAE,CAAC;gBAE7C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAIlC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE;oBAClE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;oBAClC,aAAa,EAAE,IAAI;iBACpB,CAAC,CAAC;gBACH,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAE/B,IAAI,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;oBAClD,oFAAoF;oBACpF,MAAM;gBACR,CAAC;gBAED,gGAAgG;gBAChG,0CAA0C;gBAC1C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC;gBAE7B,8EAA8E;gBAC9E,IAAI,CAAC,GAAG,IAAI,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;oBAC1C,MAAM;gBACR,CAAC;gBAED,qGAAqG;gBACrG,2BAA2B;gBAC3B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM;gBACR,CAAC;YACH,CAAC;YAED,sFAAsF;YACtF,kCAAkC;YAClC,IAAI,GAA+C,CAAC;YACpD,GAAG,CAAC;gBACF,GAAG,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;YACrC,CAAC,QAAQ,CAAC,GAAG,IAAI,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;YAEjD,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;gBACxB,cAAc,CAAC,GAAG,CAChB,IAAI,CAAC,UAAU,CACwB,GAAG,EACxC,KAAK,EACL,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CACrD,CACF,CAAC;YACJ,CAAC;iBAAM,IAAI,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,EAAE,KAAK,GAAG,IAAI,KAAwB,EAAE;;QACtE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CACpC,MAAM,IAAI,CAAC,MAAM,EACjB,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EACpC,KAAK,EACL,EAAE,KAAK,EAAE,CACV,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CACf,QAAQ,CAAC,QAAQ,EACjB,YAAY,EACZ,IAAI,CAAC,IAAI,EACT,KAAK,EAAC,IAAI,EAAC,EAAE;YACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;gBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;gBACvC,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,IAAI;gBAC1C,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBAChD,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;gBAC9D,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE;aACzC,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC;QACjB,CAAC,EACD,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,SAAS,0CAAE,QAAQ,CACnC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,MAAmB,EACnB,OAAoB,EACpB,KAAa,EACb,EAAE,KAAK,GAAG,IAAI,KAAwB,EAAE;QAExC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACzD,IAAI,CAAC;gBACH,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;gBAErC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;oBAC7D,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,YAAoB;QAClC,MAAM,IAAI,CAAC,KAAK,CACd,QAAQ,CAAC,QAAQ,EACjB,WAAW,EACX,IAAI,CAAC,IAAI,EACT,KAAK,EAAC,IAAI,EAAC,EAAE;YACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;gBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;gBACvC,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,YAAY;aACpD,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAC9B,MAAM,CAAC,GAAG,CACR,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,MAAM,CAAC,gBAAgB,EACvB,IAAI,EACJ,YAAY,CACb,CACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,cAAc;YACxD,CAAC,CAAC;;qDAEuC;gBACvC,KAAK;YACP,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC;IAEO,aAAa;QACnB,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtC,CAAC;IAES,KAAK,CAAC,YAAY,CAC1B,MAAmB,EACnB,KAAa,EACb,IAAa;QAEb,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,CAAC,GAC7C,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,OAAoB,EACpB,UAAkB;QAElB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,OAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBAC3C,IAAI,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;gBAEpD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;oBACrB,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,gBAAgB;wBAClE,CAAC,CAAC,YAAY;wBACd,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAE5B,sEAAsE;oBACtE,iEAAiE;oBACjE,6CAA6C;oBAC7C,OAAO,GAAG,UAAU,CAClB,KAAK,IAAI,EAAE;wBACT,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACpC,CAAC,EACD,YAAY,GAAG,IAAI,GAAG,IAAI,CAC3B,CAAC;oBAEF,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,8DAA8D;oBAEnF,8EAA8E;oBAC9E,iBAAiB;oBACjB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;oBACtE,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC;wBAErC,IAAI,MAAM,EAAE,CAAC;4BACX,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;4BACtC,mFAAmF;4BACnF,8CAA8C;4BAC9C,IAAI,UAAU,IAAI,aAAa,GAAG,UAAU,EAAE,CAAC;gCAC7C,OAAO,UAAU,CAAC;4BACpB,CAAC;4BACD,OAAO,aAAa,CAAC;wBACvB,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,oBAAoB,CAAQ,KAAK,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAS,KAAK,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAES,eAAe,CAAC,UAAkB;QAC1C,MAAM,IAAI,GAAiC,IAAI,CAAC,IAAI,CAAC;QAErD,8BAA8B;QAC9B,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3C,yCAAyC;YACzC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;gBACpB,OAAO,UAAU,CAAC;YACpB,CAAC;iBAAM,IAAI,UAAU,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,EAAE,CAAC;gBACxD,OAAO,IAAI,CAAC,mBAAmB,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,8DAA8D;gBAC9D,oEAAoE;gBACpE,+DAA+D;gBAC/D,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,EAAE,mBAAmB,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAES,iBAAiB,CAAC,KAAa;QACvC,sDAAsD;QACtD,8DAA8D;QAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CACT,YAAqB,EACrB,eAAiC;QAEjC,MAAM,KAAK,CAAC,YAAY,IAAI,YAAY,EAAE,eAAe,CAAC,CAAC;IAC7D,CAAC;IAEO,YAAY,CAAC,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC7C,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAES,KAAK,CAAC,kBAAkB,CAChC,OAAoB,EACpB,KAAc,EACd,KAAc;QAEd,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3C,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;YAElB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,aAAa,CACtB,KAAK,IAAI,EAAE;oBACT,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC/D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC;wBAC7C,MAAM,YAAY,CAAC,kBAAkB;wBACnC,gDAAgD;wBAChD,wDAAwD;wBACxD,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,IAAI,CAAC,MAAM,EACf,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,IAAI,EACR,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,CACxC,CAAC;oBACJ,CAAC;yBAAM,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;wBACjC,MAAM,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE;4BAC7D,QAAQ,EAAE,KAAK;yBAChB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,EACD,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CACvC,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,sEAAsE;gBACtE,iEAAiE;gBACjE,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtE,MAAM,eAAe,GAAG,IAAI,KAAK,CAC/B,oDAAoD,YAAY,EAAE,CACnE,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;gBAEpC,wDAAwD;gBACxD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CACd,GAAwC,EACxC,KAAa,EACb,iBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI;;QAE9B,MAAM,sBAAsB,GAAG,MAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,SAAS,0CAAE,QAAQ,CAAC;QAE7D,OAAO,IAAI,CAAC,KAAK,CACf,QAAQ,CAAC,QAAQ,EACjB,SAAS,EACT,IAAI,CAAC,IAAI,EACT,KAAK,EAAC,IAAI,EAAC,EAAE;YACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;gBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;gBACvC,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBAChD,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE;gBACnC,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI;gBACvC,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,YAAY;aACxD,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAEpC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE/B,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAC/C,GAAG,CAAC,EAAE,EACN,KAAK,EACL,WAAW,EACX,IAAI,CAAC,sBAAsB,CAC5B,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,yBAAyB,GAC7B,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,yBAAyB,EAAE,CAAC;oBAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAKrC,GAAG,EAAE,CACH,IAAI,CAAC,YAAY,CACf,IAAI,kBAAkB,CAAC,yBAAyB,CAAC,EACjD,GAAG,EACH,KAAK,EACL,iBAAiB,EACjB,IAAI,CACL,EACH,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAC7C,CAAC;oBACF,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CACtC,GAAG,EACH,KAAK,EACL,eAAe;oBACb,CAAC,CAAE,eAAe,CAAC,MAAsB;oBACzC,CAAC,CAAC,SAAS,CACd,CAAC;gBACF,OAAO,MAAM,IAAI,CAAC,aAAa,CAK7B,GAAG,EAAE,CACH,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,CAAC,EACnE,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAC7C,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAKrC,GAAG,EAAE,CACH,IAAI,CAAC,YAAY,CACR,GAAG,EACV,GAAG,EACH,KAAK,EACL,iBAAiB,EACjB,IAAI,CACL,EACH,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAClE,CAAC;gBACF,OAAO,MAAM,CAAC;YAChB,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAEpC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;oBAClB,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE;oBACtD,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,EAAE,WAAW;iBACzD,CAAC,CAAC;YACL,CAAC;QACH,CAAC,EACD,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAEO,4BAA4B,CAClC,GAAwC;QAExC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,eAAe,CAAC;QAC7B,CAAC;QACD,IACE,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAC5B,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC,eAAe,EAClD,CAAC;YACD,OAAO,uCAAuC,CAAC;QACjD,CAAC;IACH,CAAC;IAES,KAAK,CAAC,eAAe,CAC7B,MAAkB,EAClB,GAAwC,EACxC,KAAa,EACb,iBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI,EAC9B,IAAW;QAEX,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,eAAe,CACzC,MAAM,EACN,KAAK,EACL,iBAAiB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CACtD,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAE9C,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,eAAe,EAAE;gBAC9B,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aACxD,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,CAAC,GAAG,SAAS,IAAI,EAAE,CAAC;YACrE,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YAE9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAES,KAAK,CAAC,YAAY,CAC1B,GAAU,EACV,GAAwC,EACxC,KAAa,EACb,iBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI,EAC9B,IAAW;QAEX,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7B,6CAA6C;YAC7C,IAAI,GAAG,CAAC,OAAO,KAAK,gBAAgB,EAAE,CAAC;gBACrC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAClE,IAAI,CAAC,UAAU,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,OAAO;YACT,CAAC;YAED,IACE,GAAG,YAAY,YAAY;gBAC3B,GAAG,CAAC,IAAI,IAAI,cAAc;gBAC1B,GAAG,YAAY,YAAY;gBAC3B,GAAG,CAAC,IAAI,IAAI,cAAc;gBAC1B,GAAG,YAAY,oBAAoB;gBACnC,GAAG,CAAC,IAAI,IAAI,sBAAsB,EAClC,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;gBACjC,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CACnC,GAAG,EACH,KAAK,EACL,iBAAiB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CACtD,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YAExC,4EAA4E;YAC5E,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,YAAY,EAAE;oBAC3B,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,OAAO;iBACnD,CAAC,CAAC;gBAEH,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,CAAC,GAAG,MAAM,CAAC;gBAC5D,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;gBAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,eAAyB;QACnC,MAAM,IAAI,CAAC,KAAK,CACd,QAAQ,CAAC,QAAQ,EACjB,OAAO,EACP,IAAI,CAAC,IAAI,EACT,KAAK,EAAC,IAAI,EAAC,EAAE;;YACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;gBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;gBACvC,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBAChD,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,EAAE,eAAe;aAC7D,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBACvC,CAAC;gBACD,MAAA,IAAI,CAAC,mBAAmB,oDAAI,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAO,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;gBAC9D,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;oBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;oBACvC,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;iBACjD,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBAEpB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACN,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK;QACvB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;YACzB,MAAM,IAAI,CAAC,KAAK,CACd,QAAQ,CAAC,QAAQ,EACjB,OAAO,EACP,IAAI,CAAC,IAAI,EACT,KAAK,EAAC,IAAI,EAAC,EAAE;;gBACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;oBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;oBACvC,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;oBAChD,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,KAAK;iBAC9C,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;gBACtC,MAAA,IAAI,CAAC,oBAAoB,0CAAE,KAAK,EAAE,CAAC;gBAEnC,qCAAqC;gBACrC,MAAM,aAAa,GAAG;oBACpB,GAAG,EAAE;wBACH,OAAO,KAAK,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;oBACtD,CAAC;oBACD,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;oBAC9B,GAAG,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,EAAE,CAAA,EAAA;oBAC7B,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC;oBAC1C,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;iBACnC,CAAC;gBAEF,kFAAkF;gBAClF,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;oBACpC,IAAI,CAAC;wBACH,MAAM,OAAO,EAAE,CAAC;oBAClB,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAS,GAAG,CAAC,CAAC;oBACjC,CAAC;gBACH,CAAC;gBAED,MAAA,IAAI,CAAC,mBAAmB,oDAAI,CAAC;gBAE7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,sBAAsB;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,KAAK,CACd,QAAQ,CAAC,QAAQ,EACjB,wBAAwB,EACxB,IAAI,CAAC,IAAI,EACT,KAAK,EAAC,IAAI,EAAC,EAAE;oBACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;wBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;wBACvC,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;qBACjD,CAAC,CAAC;oBAEH,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;wBAChC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAS,GAAG,CAAC,CAAC;oBACjC,CAAC,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;YAEpE,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gBAChC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC/D,IAAI,CAAC,mBAAmB,GAAG,GAAG,EAAE;oBAC9B,YAAY,CAAC,OAAO,CAAC,CAAC;oBACtB,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,uBAAuB,CAAC,SAAS,GAAG,IAAI;QACpD,EAAE;QACF,sFAAsF;QACtF,EAAE;QACF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,4EAA4E;YAC5E,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,eAAe,CAAC;QAC7B,CAAC;QAED,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,EAAoB,EACpB,IAKC;;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC;QAE/C,GAAG,CAAC;YACF,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,EAAE,CAAC;YACpB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAA,IAAI,CAAC,IAAI,0CAAE,eAAe,CAAS,GAAI,CAAC,OAAO,CAAC,CAAC;gBAEjD,IAAI,oBAAoB,CAAQ,GAAG,CAAC,EAAE,CAAC;oBACrC,uGAAuG;oBACvG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;wBAClC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAS,GAAG,CAAC,CAAC;oBACjC,CAAC;oBAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;wBACvB,OAAO;oBACT,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,CAAC;oBACZ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACpD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBAC9D,CAAC;oBAED,IAAI,KAAK,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;wBAC5B,qDAAqD;wBACrD,MAAM,GAAG,CAAC;oBACZ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,QAAQ,EAAE,KAAK,GAAG,UAAU,EAAE;IACjC,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,MAAM,IAAI,CAAC,KAAK,CACd,QAAQ,CAAC,QAAQ,EACjB,uBAAuB,EACvB,IAAI,CAAC,IAAI,EACT,KAAK,EAAC,IAAI,EAAC,EAAE;YACX,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAE3D,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;gBAClB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE;gBACvC,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBAChD,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAAE,OAAO;aACjD,CAAC,CAAC;YAEH,OAAO,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;gBAChC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,aAAa,EAAE;oBAC5B,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK;iBACnC,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAC3B,GAAwC,EACxC,KAAa;QAEb,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF"}