@nopeek/chat 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -125,6 +125,11 @@ export declare class NoPeek extends Emitter {
125
125
  private reqCounter;
126
126
  private pending;
127
127
  private channelKeys;
128
+ /** channelId -> (rawKeyB64 -> key): decrypt-only HISTORY keys. When a channel
129
+ * key is superseded (newer welcome, divergence heal, backup merge) the old
130
+ * key moves here instead of being dropped, so every message ever sent stays
131
+ * decryptable on every device. Persisted and carried in encrypted backups. */
132
+ private channelKeyRings;
128
133
  private mlsGroupToChannel;
129
134
  /** Latest known presence per user, updated on every presence frame (incl. the
130
135
  * connect-time snapshot that may arrive before app listeners attach). */
@@ -185,6 +190,10 @@ export declare class NoPeek extends Emitter {
185
190
  private registerDeviceNow;
186
191
  private persistDevice;
187
192
  private persistChannelKeys;
193
+ /** Add a decrypt-only history key to a channel's ring (deduped by raw bytes;
194
+ * the current send key is never ringed). Returns whether the ring grew.
195
+ * Callers persist — this only mutates in-memory state. */
196
+ private ringAdd;
188
197
  private ensureKeyPackages;
189
198
  connectWs(): Promise<void>;
190
199
  /** Heartbeat: keep the socket alive while foregrounded so the server's idle
@@ -206,21 +215,38 @@ export declare class NoPeek extends Emitter {
206
215
  sendFrame(frame: Record<string, unknown>): Promise<unknown>;
207
216
  private handleFrame;
208
217
  private handleWelcome;
209
- /** Fetch any welcomes we missed while offline. */
218
+ /** Fetch any welcomes we missed while offline. Folds EVERY welcome addressed
219
+ * to this device, oldest → newest: the newest becomes the send key and the
220
+ * earlier ones land in the history ring, so a device that missed a rotation
221
+ * still reads the whole backlog. */
210
222
  syncChannelKey(channelId: string, mlsGroupId: string): Promise<boolean>;
211
- /** Channels already checked for a self-addressed welcome this session. */
212
- private selfWelcomeChecked;
223
+ /** Channels already reconciled against the group's welcome history this session. */
224
+ private keyReconChecked;
213
225
  /**
214
- * Self-heal for channels created before establishKeys wrapped the welcome to
215
- * the creator's OWN device: if this device HOLDS the channel key but no
216
- * welcome in the group addresses this deviceId, post one (wrapped to
217
- * ourselves). A future device that restores this identity from the encrypted
218
- * backup or an already-restored device sharing this deviceId can then
219
- * pull the key via syncChannelKey even when the backup's channel-key map is
220
- * stale. Runs at most once per channel per device (persisted mark);
221
- * best-effort and safe to fire-and-forget.
226
+ * Group-key reconciliation runs once per channel per device (persisted
227
+ * mark) BEFORE the first send, so a device can never encrypt into the void
228
+ * with a key the rest of the group doesn't hold. Cases:
229
+ * - we hold a key but NO welcome addresses this device (legacy creator-only
230
+ * key): post a self-addressed welcome so any backup-restored successor of
231
+ * this identity can always pull the key (the 0.2.2 self-heal);
232
+ * - a welcome addresses us with a DIFFERENT key (this device diverged — e.g.
233
+ * the pre-0.2.3 restored-device bug or missed a rotation): adopt the
234
+ * group's newest key for sending, keep the old one in the history ring,
235
+ * and publish the adopted key to ALL member devices (bots included) so
236
+ * everyone converges on one send key;
237
+ * - keys already match: just mark. Best-effort; retried on failure.
222
238
  */
239
+ reconcileChannelKey(channelId: string, mlsGroupId: string | null | undefined): Promise<void>;
240
+ /** Back-compat alias: the 0.2.2 self-welcome heal is now part of reconcileChannelKey. */
223
241
  ensureSelfWelcome(channelId: string, mlsGroupId: string | null | undefined): Promise<void>;
242
+ /** Append a welcome carrying `wrapped` at the steady-state epoch. Only
243
+ * `commit` handshakes are epoch-guarded server-side; welcomes append freely
244
+ * (same as the member-add flow). */
245
+ private postWelcome;
246
+ /** Wrap `key` to every member device (claiming key packages) plus this device
247
+ * and post it as a welcome — the convergence carrier after a divergence heal.
248
+ * Members whose packages can't be claimed heal later via sync/backup. */
249
+ private publishKeyToMembers;
224
250
  /** In-flight key recoveries, deduped per channel so a burst of undecryptable
225
251
  * frames triggers a single welcome sync rather than one fetch per message. */
226
252
  private keyRecovery;
@@ -254,6 +280,12 @@ export declare class NoPeek extends Emitter {
254
280
  * or `{ password?, recoveryCode? }`.
255
281
  */
256
282
  backup(secrets?: BackupSecrets | string): Promise<string>;
283
+ /** Fold a decrypted backup payload's keys into this device's key store:
284
+ * channels we have NO key for adopt the backup's key; a key that differs
285
+ * from what we hold (either direction) lands in the history ring — nothing
286
+ * is ever overwritten-and-lost. Returns the channels that gained a key.
287
+ * Callers persist. */
288
+ private foldBackupKeys;
257
289
  /** Where the current backup envelope's raw data key is cached on this device.
258
290
  * Sensitivity-equivalent to the channel keys (`nopeek:<user>:channelKeys`)
259
291
  * already persisted in the same store — it decrypts a payload containing
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -60,7 +60,12 @@ export class NoPeek extends Emitter {
60
60
  ws = null;
61
61
  reqCounter = 0;
62
62
  pending = new Map();
63
- channelKeys = new Map(); // channelId -> AES key
63
+ channelKeys = new Map(); // channelId -> AES key (the SEND key)
64
+ /** channelId -> (rawKeyB64 -> key): decrypt-only HISTORY keys. When a channel
65
+ * key is superseded (newer welcome, divergence heal, backup merge) the old
66
+ * key moves here instead of being dropped, so every message ever sent stays
67
+ * decryptable on every device. Persisted and carried in encrypted backups. */
68
+ channelKeyRings = new Map();
64
69
  mlsGroupToChannel = new Map();
65
70
  /** Latest known presence per user, updated on every presence frame (incl. the
66
71
  * connect-time snapshot that may arrive before app listeners attach). */
@@ -189,6 +194,22 @@ export class NoPeek extends Emitter {
189
194
  this.channelKeys.set(chId, await importChannelKey(raw));
190
195
  }
191
196
  }
197
+ const savedRings = await this.store.get(`nopeek:${this.userId}:channelKeyRings`);
198
+ if (savedRings) {
199
+ for (const [chId, raws] of Object.entries(JSON.parse(savedRings))) {
200
+ const ring = new Map();
201
+ for (const raw of raws) {
202
+ try {
203
+ ring.set(raw, await importChannelKey(raw));
204
+ }
205
+ catch {
206
+ /* skip a corrupt entry */
207
+ }
208
+ }
209
+ if (ring.size)
210
+ this.channelKeyRings.set(chId, ring);
211
+ }
212
+ }
192
213
  return;
193
214
  }
194
215
  this.keys = await generateDeviceKeys();
@@ -244,6 +265,29 @@ export class NoPeek extends Emitter {
244
265
  for (const [chId, key] of this.channelKeys)
245
266
  out[chId] = await exportChannelKey(key);
246
267
  await this.store.set(`nopeek:${this.userId}:channelKeys`, JSON.stringify(out));
268
+ const rings = {};
269
+ for (const [chId, ring] of this.channelKeyRings)
270
+ if (ring.size)
271
+ rings[chId] = [...ring.keys()];
272
+ await this.store.set(`nopeek:${this.userId}:channelKeyRings`, JSON.stringify(rings));
273
+ }
274
+ /** Add a decrypt-only history key to a channel's ring (deduped by raw bytes;
275
+ * the current send key is never ringed). Returns whether the ring grew.
276
+ * Callers persist — this only mutates in-memory state. */
277
+ async ringAdd(channelId, key, rawB64) {
278
+ const raw = rawB64 ?? (await exportChannelKey(key));
279
+ const primary = this.channelKeys.get(channelId);
280
+ if (primary && (await exportChannelKey(primary)) === raw)
281
+ return false;
282
+ let ring = this.channelKeyRings.get(channelId);
283
+ if (!ring) {
284
+ ring = new Map();
285
+ this.channelKeyRings.set(channelId, ring);
286
+ }
287
+ if (ring.has(raw))
288
+ return false;
289
+ ring.set(raw, key);
290
+ return true;
247
291
  }
248
292
  async ensureKeyPackages() {
249
293
  const { available } = await this.api("GET", `/v1/apps/${this.appId}/users/${this.userId}/devices/${this.deviceId}/key-packages`);
@@ -483,8 +527,20 @@ export class NoPeek extends Emitter {
483
527
  if (!mine)
484
528
  return;
485
529
  const key = await unwrapChannelKey(mine, this.keys.privateKeyJwk);
486
- this.channelKeys.set(welcome.channelId, key);
530
+ const raw = await exportChannelKey(key);
487
531
  this.mlsGroupToChannel.set(hs.mlsGroupId, welcome.channelId);
532
+ const prev = this.channelKeys.get(welcome.channelId);
533
+ const prevRaw = prev ? await exportChannelKey(prev) : null;
534
+ if (prevRaw === raw)
535
+ return; // already the key we hold
536
+ // A newer welcome SUPERSEDES the held key for sending — that's how every
537
+ // member device converges after a rotation or a divergence heal. The
538
+ // displaced key is NEVER dropped: it moves to the history ring (AFTER the
539
+ // swap, so the ring's dedupe-against-primary guard can't reject it) and
540
+ // all messages sent under it keep decrypting.
541
+ this.channelKeys.set(welcome.channelId, key);
542
+ if (prev && prevRaw)
543
+ await this.ringAdd(welcome.channelId, prev, prevRaw);
488
544
  await this.persistChannelKeys();
489
545
  this.emit("channelKeyReceived", { channelId: welcome.channelId });
490
546
  }
@@ -492,66 +548,114 @@ export class NoPeek extends Emitter {
492
548
  /* not a dev-suite welcome or not for us */
493
549
  }
494
550
  }
495
- /** Fetch any welcomes we missed while offline. */
551
+ /** Fetch any welcomes we missed while offline. Folds EVERY welcome addressed
552
+ * to this device, oldest → newest: the newest becomes the send key and the
553
+ * earlier ones land in the history ring, so a device that missed a rotation
554
+ * still reads the whole backlog. */
496
555
  async syncChannelKey(channelId, mlsGroupId) {
497
556
  if (this.channelKeys.has(channelId))
498
557
  return true;
499
558
  const { handshakes } = await this.api("GET", `/v1/apps/${this.appId}/mls/groups/${mlsGroupId}/handshakes?sinceEpoch=0`);
500
- for (const hs of handshakes.reverse()) {
559
+ for (const hs of handshakes) {
501
560
  if (hs.kind === "welcome" && hs.recipientDeviceIds?.includes(this.deviceId)) {
502
561
  await this.handleWelcome({ mlsGroupId, payload: hs.payload });
503
- if (this.channelKeys.has(channelId))
504
- return true;
505
562
  }
506
563
  }
507
- return false;
564
+ return this.channelKeys.has(channelId);
508
565
  }
509
- /** Channels already checked for a self-addressed welcome this session. */
510
- selfWelcomeChecked = new Set();
566
+ /** Channels already reconciled against the group's welcome history this session. */
567
+ keyReconChecked = new Set();
511
568
  /**
512
- * Self-heal for channels created before establishKeys wrapped the welcome to
513
- * the creator's OWN device: if this device HOLDS the channel key but no
514
- * welcome in the group addresses this deviceId, post one (wrapped to
515
- * ourselves). A future device that restores this identity from the encrypted
516
- * backup or an already-restored device sharing this deviceId can then
517
- * pull the key via syncChannelKey even when the backup's channel-key map is
518
- * stale. Runs at most once per channel per device (persisted mark);
519
- * best-effort and safe to fire-and-forget.
569
+ * Group-key reconciliation runs once per channel per device (persisted
570
+ * mark) BEFORE the first send, so a device can never encrypt into the void
571
+ * with a key the rest of the group doesn't hold. Cases:
572
+ * - we hold a key but NO welcome addresses this device (legacy creator-only
573
+ * key): post a self-addressed welcome so any backup-restored successor of
574
+ * this identity can always pull the key (the 0.2.2 self-heal);
575
+ * - a welcome addresses us with a DIFFERENT key (this device diverged — e.g.
576
+ * the pre-0.2.3 restored-device bug or missed a rotation): adopt the
577
+ * group's newest key for sending, keep the old one in the history ring,
578
+ * and publish the adopted key to ALL member devices (bots included) so
579
+ * everyone converges on one send key;
580
+ * - keys already match: just mark. Best-effort; retried on failure.
520
581
  */
521
- async ensureSelfWelcome(channelId, mlsGroupId) {
582
+ async reconcileChannelKey(channelId, mlsGroupId) {
522
583
  if (!mlsGroupId || this.deriveChannelKey || !this.deviceId)
523
584
  return; // preshared mode has no welcomes
524
- const key = this.channelKeys.get(channelId);
525
- if (!key)
585
+ const local = this.channelKeys.get(channelId);
586
+ if (!local)
526
587
  return;
527
- if (this.selfWelcomeChecked.has(channelId))
588
+ if (this.keyReconChecked.has(channelId))
528
589
  return;
529
- this.selfWelcomeChecked.add(channelId);
530
- const mark = `nopeek:${this.userId}:selfWelcomed:${channelId}`;
590
+ this.keyReconChecked.add(channelId);
591
+ const mark = `nopeek:${this.userId}:keyRecon1:${channelId}`;
531
592
  try {
532
593
  if (await this.store.get(mark))
533
594
  return;
534
595
  const { handshakes } = await this.api("GET", `/v1/apps/${this.appId}/mls/groups/${mlsGroupId}/handshakes?sinceEpoch=0`);
535
- const covered = handshakes.some((h) => h.kind === "welcome" && h.recipientDeviceIds?.includes(this.deviceId));
536
- if (!covered) {
537
- const wrapped = await wrapChannelKey(key, [{ deviceId: this.deviceId, publicKeyJwk: this.keys.publicKeyJwk }]);
538
- const welcome = { suite: "npdev-1", channelId, wrapped };
539
- // Only `commit` handshakes are epoch-guarded server-side; welcomes
540
- // append at the steady-state epoch (same as the member-add flow).
541
- await this.api("POST", `/v1/apps/${this.appId}/mls/groups/${mlsGroupId}/handshakes`, {
542
- epoch: 1,
543
- kind: "welcome",
544
- senderDeviceId: this.deviceId,
545
- recipientDeviceIds: [this.deviceId],
546
- payload: b64.enc(new TextEncoder().encode(JSON.stringify(welcome))),
547
- });
596
+ const addressed = handshakes.filter((h) => h.kind === "welcome" && h.recipientDeviceIds?.includes(this.deviceId));
597
+ if (!addressed.length) {
598
+ const wrapped = await wrapChannelKey(local, [{ deviceId: this.deviceId, publicKeyJwk: this.keys.publicKeyJwk }]);
599
+ await this.postWelcome(mlsGroupId, channelId, wrapped);
600
+ }
601
+ else {
602
+ const localRaw = await exportChannelKey(local);
603
+ for (const hs of addressed)
604
+ await this.handleWelcome({ mlsGroupId, payload: hs.payload });
605
+ const now = this.channelKeys.get(channelId) ?? local;
606
+ if ((await exportChannelKey(now)) !== localRaw) {
607
+ // We DIVERGED and just adopted the group key — but other members (a
608
+ // bot that only ever saw the original welcome, a peer that held the
609
+ // key we abandoned) may lack it. Publish it to every member device.
610
+ await this.publishKeyToMembers(channelId, mlsGroupId, now);
611
+ }
548
612
  }
549
613
  await this.store.set(mark, "1");
550
614
  }
551
615
  catch {
552
- this.selfWelcomeChecked.delete(channelId); // retry on a later ensureKey
616
+ this.keyReconChecked.delete(channelId); // retry on a later ensureKey
553
617
  }
554
618
  }
619
+ /** Back-compat alias: the 0.2.2 self-welcome heal is now part of reconcileChannelKey. */
620
+ async ensureSelfWelcome(channelId, mlsGroupId) {
621
+ return this.reconcileChannelKey(channelId, mlsGroupId);
622
+ }
623
+ /** Append a welcome carrying `wrapped` at the steady-state epoch. Only
624
+ * `commit` handshakes are epoch-guarded server-side; welcomes append freely
625
+ * (same as the member-add flow). */
626
+ async postWelcome(mlsGroupId, channelId, wrapped) {
627
+ const welcome = { suite: "npdev-1", channelId, wrapped };
628
+ await this.api("POST", `/v1/apps/${this.appId}/mls/groups/${mlsGroupId}/handshakes`, {
629
+ epoch: 1,
630
+ kind: "welcome",
631
+ senderDeviceId: this.deviceId,
632
+ recipientDeviceIds: wrapped.map((w) => w.deviceId),
633
+ payload: b64.enc(new TextEncoder().encode(JSON.stringify(welcome))),
634
+ });
635
+ }
636
+ /** Wrap `key` to every member device (claiming key packages) plus this device
637
+ * and post it as a welcome — the convergence carrier after a divergence heal.
638
+ * Members whose packages can't be claimed heal later via sync/backup. */
639
+ async publishKeyToMembers(channelId, mlsGroupId, key) {
640
+ const recipients = [];
641
+ const { members } = await this.api("GET", `/v1/apps/${this.appId}/channels/${channelId}/members`);
642
+ for (const m of members) {
643
+ try {
644
+ const { keyPackages } = await this.api("POST", `/v1/apps/${this.appId}/users/${m.userId}/key-packages/claim`);
645
+ for (const kp of keyPackages) {
646
+ if (kp.deviceId === this.deviceId)
647
+ continue; // self added below with the known local key
648
+ const parsed = JSON.parse(new TextDecoder().decode(b64.dec(kp.data)));
649
+ recipients.push({ deviceId: kp.deviceId, publicKeyJwk: parsed.pub });
650
+ }
651
+ }
652
+ catch {
653
+ /* a member with no claimable packages converges via sync/backup later */
654
+ }
655
+ }
656
+ recipients.push({ deviceId: this.deviceId, publicKeyJwk: this.keys.publicKeyJwk });
657
+ await this.postWelcome(mlsGroupId, channelId, await wrapChannelKey(key, recipients));
658
+ }
555
659
  /** In-flight key recoveries, deduped per channel so a burst of undecryptable
556
660
  * frames triggers a single welcome sync rather than one fetch per message. */
557
661
  keyRecovery = new Map();
@@ -634,7 +738,7 @@ export class NoPeek extends Emitter {
634
738
  let rawDK = await exportRawKeyB64(dataKey);
635
739
  let reusedDK = false;
636
740
  const carried = {};
637
- let remoteChannelKeys = null;
741
+ let remotePayload = null;
638
742
  try {
639
743
  const { backups } = await this.api("GET", `/v1/apps/${this.appId}/users/${this.userId}/history-backups`);
640
744
  const newest = backups[0];
@@ -680,8 +784,7 @@ export class NoPeek extends Emitter {
680
784
  const res = await fetch(newest.downloadUrl);
681
785
  if (res.ok) {
682
786
  const ct = b64.enc(new Uint8Array(await res.arrayBuffer()));
683
- const payload = await decryptPayload(await importRawKeyB64(candidate), ct);
684
- remoteChannelKeys = payload.channelKeys ?? null;
787
+ remotePayload = await decryptPayload(await importRawKeyB64(candidate), ct);
685
788
  oldDK = candidate; // decrypt success ⇒ the cached dk is the live one
686
789
  }
687
790
  }
@@ -715,26 +818,21 @@ export class NoPeek extends Emitter {
715
818
  }
716
819
  // Merge: keys from the existing backup that this device lacks stay in the
717
820
  // new payload (and heal this device's local key store while we're at it).
718
- if (remoteChannelKeys) {
719
- let healed = false;
720
- for (const [chId, raw] of Object.entries(remoteChannelKeys)) {
721
- if (this.channelKeys.has(chId))
722
- continue;
723
- try {
724
- this.channelKeys.set(chId, await importChannelKey(raw));
725
- healed = true;
726
- }
727
- catch {
728
- /* skip a corrupt entry */
729
- }
730
- }
731
- if (healed)
821
+ // A remote key that DIFFERS from ours goes to the history ring — a refresh
822
+ // must never erase a key some other device is still decrypting with.
823
+ if (remotePayload) {
824
+ const healed = await this.foldBackupKeys(remotePayload);
825
+ if (healed.length)
732
826
  await this.persistChannelKeys();
733
827
  }
734
828
  const channelKeys = {};
735
829
  for (const [chId, k] of this.channelKeys)
736
830
  channelKeys[chId] = await exportChannelKey(k);
737
- const ciphertext = await encryptPayload(dataKey, { v: 2, device: { deviceId: this.deviceId, keys: this.keys }, channelKeys });
831
+ const channelKeyRings = {};
832
+ for (const [chId, ring] of this.channelKeyRings)
833
+ if (ring.size)
834
+ channelKeyRings[chId] = [...ring.keys()];
835
+ const ciphertext = await encryptPayload(dataKey, { v: 2, device: { deviceId: this.deviceId, keys: this.keys }, channelKeys, channelKeyRings });
738
836
  const iterations = 210_000;
739
837
  const wraps = { ...carried };
740
838
  for (const [kind, secret] of [["password", s.password], ["recovery", s.recoveryCode]]) {
@@ -778,6 +876,40 @@ export class NoPeek extends Emitter {
778
876
  }
779
877
  return rec.backupId;
780
878
  }
879
+ /** Fold a decrypted backup payload's keys into this device's key store:
880
+ * channels we have NO key for adopt the backup's key; a key that differs
881
+ * from what we hold (either direction) lands in the history ring — nothing
882
+ * is ever overwritten-and-lost. Returns the channels that gained a key.
883
+ * Callers persist. */
884
+ async foldBackupKeys(payload) {
885
+ const touched = new Set();
886
+ for (const [chId, raw] of Object.entries(payload.channelKeys ?? {})) {
887
+ try {
888
+ if (!this.channelKeys.has(chId)) {
889
+ this.channelKeys.set(chId, await importChannelKey(raw));
890
+ touched.add(chId);
891
+ }
892
+ else if (await this.ringAdd(chId, await importChannelKey(raw), raw)) {
893
+ touched.add(chId);
894
+ }
895
+ }
896
+ catch {
897
+ /* skip a corrupt entry */
898
+ }
899
+ }
900
+ for (const [chId, raws] of Object.entries(payload.channelKeyRings ?? {})) {
901
+ for (const raw of raws) {
902
+ try {
903
+ if (await this.ringAdd(chId, await importChannelKey(raw), raw))
904
+ touched.add(chId);
905
+ }
906
+ catch {
907
+ /* skip a corrupt entry */
908
+ }
909
+ }
910
+ }
911
+ return [...touched];
912
+ }
781
913
  /** Where the current backup envelope's raw data key is cached on this device.
782
914
  * Sensitivity-equivalent to the channel keys (`nopeek:<user>:channelKeys`)
783
915
  * already persisted in the same store — it decrypts a payload containing
@@ -816,18 +948,7 @@ export class NoPeek extends Emitter {
816
948
  const ct = b64.enc(new Uint8Array(await res.arrayBuffer()));
817
949
  // Throws if the envelope was re-keyed by another device (stale cached dk).
818
950
  const payload = await decryptPayload(await importRawKeyB64(rawDK), ct);
819
- const added = [];
820
- for (const [chId, raw] of Object.entries(payload.channelKeys ?? {})) {
821
- if (this.channelKeys.has(chId))
822
- continue;
823
- try {
824
- this.channelKeys.set(chId, await importChannelKey(raw));
825
- added.push(chId);
826
- }
827
- catch {
828
- /* skip a corrupt entry */
829
- }
830
- }
951
+ const added = await this.foldBackupKeys(payload);
831
952
  if (added.length) {
832
953
  await this.persistChannelKeys();
833
954
  for (const chId of added)
@@ -899,9 +1020,7 @@ export class NoPeek extends Emitter {
899
1020
  }
900
1021
  }
901
1022
  await this.adoptBackedUpDevice(payload.device);
902
- for (const [chId, raw] of Object.entries(payload.channelKeys)) {
903
- this.channelKeys.set(chId, await importChannelKey(raw));
904
- }
1023
+ await this.foldBackupKeys(payload);
905
1024
  await this.persistChannelKeys();
906
1025
  return Object.keys(payload.channelKeys).length;
907
1026
  }
@@ -961,9 +1080,7 @@ export class NoPeek extends Emitter {
961
1080
  /* store hiccup — restore itself succeeded */
962
1081
  }
963
1082
  await this.adoptBackedUpDevice(payload.device);
964
- for (const [chId, raw] of Object.entries(payload.channelKeys)) {
965
- this.channelKeys.set(chId, await importChannelKey(raw));
966
- }
1083
+ await this.foldBackupKeys(payload);
967
1084
  await this.persistChannelKeys();
968
1085
  return Object.keys(payload.channelKeys).length;
969
1086
  }
@@ -1140,17 +1257,20 @@ export class NoPeek extends Emitter {
1140
1257
  if (env.ciphertext) {
1141
1258
  if (!this.channelKeys.has(channelId))
1142
1259
  await this.deriveAndSet(channelId);
1143
- const key = this.channelKeys.get(channelId);
1144
- if (!key) {
1145
- base.decryptionFailed = true;
1146
- return base;
1147
- }
1148
- try {
1149
- base.body = await decryptPayload(key, String(env.ciphertext));
1150
- }
1151
- catch {
1152
- base.decryptionFailed = true;
1260
+ // Send key first, then the history ring — messages encrypted under a
1261
+ // superseded key (rotation, divergence heal) stay readable forever.
1262
+ const primary = this.channelKeys.get(channelId);
1263
+ const candidates = [...(primary ? [primary] : []), ...(this.channelKeyRings.get(channelId)?.values() ?? [])];
1264
+ for (const key of candidates) {
1265
+ try {
1266
+ base.body = await decryptPayload(key, String(env.ciphertext));
1267
+ return base;
1268
+ }
1269
+ catch {
1270
+ /* wrong key for this message — try the next candidate */
1271
+ }
1153
1272
  }
1273
+ base.decryptionFailed = true;
1154
1274
  }
1155
1275
  return base;
1156
1276
  }
@@ -1201,7 +1321,10 @@ export class Channel {
1201
1321
  /** E2EE key ceremony (creator side). */
1202
1322
  async establishKeys(memberIds) {
1203
1323
  const key = await generateChannelKey();
1204
- this.np.setChannelKey(this.channelId, key);
1324
+ // NOTE: the minted key is NOT adopted yet — only the winner of the epoch
1325
+ // 0→1 commit below may use it. Adopting first was the root cause of the
1326
+ // "restored device sends with a key nobody else holds" bug: a device that
1327
+ // LOST the race kept the orphan key locally and encrypted into the void.
1205
1328
  // Wrap for EVERY member device — peers, the creator's OTHER devices, and
1206
1329
  // (crucially) this device itself. The self-wrap makes the welcome a durable
1207
1330
  // second carrier of the key: a future device that restores this identity
@@ -1229,13 +1352,15 @@ export class Channel {
1229
1352
  }
1230
1353
  }
1231
1354
  recipients.push({ deviceId: this.np.deviceId, publicKeyJwk: this.np.devicePublicKeyJwk });
1232
- // advance epoch 0 -> 1 (server-enforced single writer)
1355
+ // advance epoch 0 -> 1 (server-enforced single writer). Losing this race
1356
+ // throws STALE_EPOCH — and the minted key is discarded with the throw.
1233
1357
  await this.np.api("POST", `/v1/apps/${this.np.appId}/mls/groups/${this.record.mlsGroupId}/handshakes`, {
1234
1358
  epoch: 0,
1235
1359
  kind: "commit",
1236
1360
  senderDeviceId: this.np.deviceId,
1237
1361
  payload: b64.enc(new TextEncoder().encode(JSON.stringify({ suite: "npdev-1", op: "init" }))),
1238
1362
  });
1363
+ this.np.setChannelKey(this.channelId, key); // commit won — the key is canonical
1239
1364
  if (recipients.length) {
1240
1365
  const wrapped = await wrapChannelKey(key, recipients);
1241
1366
  const welcome = { suite: "npdev-1", channelId: this.channelId, wrapped };
@@ -1253,9 +1378,11 @@ export class Channel {
1253
1378
  if (!this.e2ee)
1254
1379
  return true;
1255
1380
  if (this.np.getChannelKey(this.channelId)) {
1256
- // We hold the key — make sure a welcome addressed to THIS device exists in
1257
- // the group so a backup-restored successor of this identity can pull it.
1258
- void this.np.ensureSelfWelcome(this.channelId, this.record.mlsGroupId);
1381
+ // We hold a key — reconcile it against the group's welcome history ONCE
1382
+ // (posting the missing self-welcome, or ADOPTING the group's newer key if
1383
+ // this device had diverged) BEFORE it is ever used to send. Awaited so a
1384
+ // diverged device can never fire off even one message under a dead key.
1385
+ await this.np.reconcileChannelKey(this.channelId, this.record.mlsGroupId);
1259
1386
  return true;
1260
1387
  }
1261
1388
  if (await this.np.deriveAndSet(this.channelId))
@@ -1264,10 +1391,25 @@ export class Channel {
1264
1391
  return false;
1265
1392
  if (await this.np.syncChannelKey(this.channelId, this.record.mlsGroupId))
1266
1393
  return true;
1394
+ // Still keyless — a key-holding device may have refreshed the backup since
1395
+ // we restored. Recovering the EXISTING key always beats minting a new one.
1396
+ try {
1397
+ if (await this.np.hasCachedBackupKey()) {
1398
+ await this.np.refreshKeysFromBackup();
1399
+ if (this.np.getChannelKey(this.channelId))
1400
+ return true;
1401
+ }
1402
+ }
1403
+ catch {
1404
+ /* stale cached dk or no backup — fall through */
1405
+ }
1267
1406
  // No key and no welcome yet — e.g. the channel was created server-side, or the
1268
1407
  // original creator's key was lost. Bootstrap the ceremony as the originator:
1269
1408
  // the server enforces a single epoch-0→1 writer, so if a peer races us we lose
1270
- // the commit and fall back to pulling their welcome.
1409
+ // the commit (STALE_EPOCH) and fall back to pulling their welcome — and since
1410
+ // establishKeys only adopts its key AFTER winning, losing leaves no orphan
1411
+ // key behind. If no key is reachable at all, sending fails closed rather
1412
+ // than encrypting under a key no other device could ever obtain.
1271
1413
  try {
1272
1414
  const { members } = await this.np.api("GET", `/v1/apps/${this.np.appId}/channels/${this.channelId}/members`);
1273
1415
  await this.establishKeys(members.map((m) => m.userId));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,GAAG,EACH,YAAY,EACZ,cAAc,EACd,eAAe,EACf,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAElB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,cAAc,GAGf,MAAM,aAAa,CAAC;AA+ErB,MAAM,WAAW;IACP,CAAC,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,GAAG,CAAC,CAAS;QACX,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC/B,CAAC;IACD,GAAG,CAAC,CAAS,EAAE,CAAS;QACtB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,CAAC;CACF;AAED,MAAM,YAAY,GAAG,GAAkB,EAAE;IACvC,IAAI,CAAC;QACH,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACxC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC5F,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB;IAClB,CAAC;IACD,OAAO,IAAI,WAAW,EAAE,CAAC;AAC3B,CAAC,CAAC;AAkCF;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAI/B,MAAM,OAAO;IACH,SAAS,GAAG,IAAI,GAAG,EAA6C,CAAC;IACzE,EAAE,CAAC,KAAa,EAAE,EAA8B;QAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,EAAkC,CAAC,CAAC;QACnE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,GAAG,CAAC,KAAa,EAAE,EAAY;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,EAAkC,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,KAAa,EAAE,GAAG,IAAe;QACpC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAChE,CAAC;CACF;AAED,MAAM,OAAO,MAAO,SAAQ,OAAO;IACxB,MAAM,CAAS;IACf,KAAK,CAAS;IACd,MAAM,CAAS;IACxB,QAAQ,CAAU;IACV,KAAK,CAAS;IACd,KAAK,CAAgB;IACrB,IAAI,CAAiB;IACrB,EAAE,GAAqB,IAAI,CAAC;IAC5B,UAAU,GAAG,CAAC,CAAC;IACf,OAAO,GAAG,IAAI,GAAG,EAAyE,CAAC;IAC3F,WAAW,GAAG,IAAI,GAAG,EAAqB,CAAC,CAAC,sCAAsC;IAC1F;;;mFAG+E;IACvE,eAAe,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC5D,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtD;8EAC0E;IAClE,aAAa,GAAG,IAAI,GAAG,EAAuE,CAAC;IAC/F,cAAc,GAAG,IAAI,CAAC;IACtB,MAAM,GAAG,KAAK,CAAC;IACvB;;mEAE+D;IACvD,SAAS,GAAG,KAAK,CAAC;IAClB,SAAS,GAA0C,IAAI,CAAC;IACxD,QAAQ,CAAS;IACjB,MAAM,CAAU;IAChB,iBAAiB,CAAU;IACnC;2EACuE;IAC/D,sBAAsB,GAAkB,IAAI,CAAC;IACrD;;;;sEAIkE;IAC1D,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,QAAQ,CAAW;IACnB,gBAAgB,CAA6C;IAEtE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAoB;QACvC,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,EAAE,CAAC,YAAY,EAAE,CAAC;QACxB,yEAAyE;QACzE,8EAA8E;QAC9E,8EAA8E;QAC9E,4EAA4E;QAC5E,wEAAwE;QACxE,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,EAAE,CAAC,iBAAiB,EAAE,CAAC;YAC7B,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;QACvB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;8EAG0E;IAC1E,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;IACvC,CAAC;IAED,YAAoB,IAAoB;QACtC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,IAAI,YAAY,EAAE,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC;QAC3C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,KAAK,IAAI,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,4EAA4E;IAE5E,iFAAiF;IACjF,eAAe,CAAC,GAAqB;QACnC,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,sEAAsE;IACtE,SAAS,CAAC,MAAiC;QACzC,OAAO,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED;iFAC6E;IACpE,IAAI,CAAC,KAAa,EAAE,GAAG,IAAe;QAC7C,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAA2D,CAAC;YAC5E,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,gBAAgB,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC;gBAAE,OAAO;YACnG,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC;gBAAE,OAAO;QACxF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,wFAAwF;IACxF,KAAK,CAAC,YAAY,CAAC,SAAiB;QAClC,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO,KAAK,CAAC;QACzC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QACjD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,GAAG,CAAc,MAAc,EAAE,IAAY,EAAE,IAAc;QACjE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,EAAE;YAC/C,MAAM;YACN,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;gBACrC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/D;YACD,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC5D,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACnD,OAAO,SAAc,CAAC;QACxB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsD,CAAC;QACnF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9G,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0EAA0E;IAClE,KAAK,CAAC,YAAY;QACxB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;QACnE,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAA8C,CAAC;YAC9E,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAChC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,MAAM,cAAc,CAAC,CAAC;YAC5E,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAA2B,CAAC,EAAE,CAAC;oBAC1F,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,MAAM,kBAAkB,CAAC,CAAC;YACjF,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAA6B,CAAC,EAAE,CAAC;oBAC9F,MAAM,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;oBAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;wBACvB,IAAI,CAAC;4BACH,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC7C,CAAC;wBAAC,MAAM,CAAC;4BACP,0BAA0B;wBAC5B,CAAC;oBACH,CAAC;oBACD,IAAI,IAAI,CAAC,IAAI;wBAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACvC,6EAA6E;QAC7E,yEAAyE;QACzE,4DAA4D;QAC5D,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO;QACnC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC9C,CAAC;IAED;kFAC8E;IAC9E,IAAI,gBAAgB;QAClB,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,0EAA0E;IAC1E,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACvD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;IACtD,CAAC;IAED,iFAAiF;IACzE,KAAK,CAAC,iBAAiB;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAuB,MAAM,EAAE,YAAY,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,MAAM,UAAU,EAAE;YACjH,aAAa,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACxF,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,GAAG,IAAI,CAAC,QAAQ,SAAS;SACvC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,MAAM,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACrH,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACpF,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,MAAM,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/E,MAAM,KAAK,GAA6B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe;YAAE,IAAI,IAAI,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/F,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,MAAM,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACvF,CAAC;IAED;;+DAE2D;IACnD,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,GAAc,EAAE,MAAe;QACtE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,OAAO,IAAI,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QACvE,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAClC,KAAK,EACL,YAAY,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,QAAQ,eAAe,CACpF,CAAC;QACF,IAAI,SAAS,IAAI,EAAE;YAAE,OAAO;QAC5B,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACvE,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,QAAQ,eAAe,EAAE;YAC1G,WAAW,EAAE,MAAM,OAAO,CAAC,GAAG,CAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBACtC,WAAW,EAAE,CAAC;gBACd,IAAI;gBACJ,QAAQ,EAAE,MAAM,SAAS,CAAC,IAAI,CAAC;gBAC/B,SAAS;aACV,CAAC,CAAC,CACJ;SACF,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,SAAS;QACP,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9H,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YACb,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACnF,EAAE,CAAC,SAAS,GAAG,CAAC,EAAgB,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YAC9G,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE;gBAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC1B,sEAAsE;gBACtE,oEAAoE;gBACpE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;oBACpC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC,CAAC;YACF,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE;gBAChB,YAAY,CAAC,WAAW,CAAC,CAAC;gBAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;qFAEiF;IACzE,SAAS;QACf,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI;oBAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7F,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;QACH,CAAC,EAAE,MAAM,CAAC,CAAC;IACb,CAAC;IAEO,QAAQ;QACd,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;uEAEmE;IACnE,OAAO;QACL,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;QACD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IACjB,CAAC;IAED;;qFAEiF;IACjF,eAAe,CAAC,KAAa;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,wDAAwD;IACxD,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACtE,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,SAAS,CAAC,KAA8B;QACtC,MAAM,KAAK,GAAG,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACnD,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;oBAAE,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxG,CAAC,EAAE,MAAM,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAiD,EAAE,WAAwB,EAAE,WAA2C;QAChJ,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,SAAS;gBACZ,YAAY,CAAC,WAAW,CAAC,CAAC;gBAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAC9B,WAAW,EAAE,EAAE,CAAC;gBAChB,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAC9C,MAAM;YACR,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChD,IAAI,CAAC,EAAE,CAAC;oBACN,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC1E,IAAI,CAAC,EAAE,CAAC;oBACN,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzE,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC5B,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,aAAa,CAAC;YACnB,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,IAAI,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAkC,CAAC,CAAC;gBACrF,2EAA2E;gBAC3E,oEAAoE;gBACpE,wEAAwE;gBACxE,oEAAoE;gBACpE,yEAAyE;gBACzE,2DAA2D;gBAC3D,IAAI,SAAS,CAAC,gBAAgB,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;oBACtD,IAAI,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;wBACtD,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAkC,CAAC,CAAC;oBACnF,CAAC;gBACH,CAAC;gBACD,wEAAwE;gBACxE,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,KAAK,UAAU,IAAI,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC1E,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;wBACpB,SAAS,EAAE,SAAS,CAAC,SAAS;wBAC9B,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,eAAe;wBACzC,MAAM,EAAE,SAAS,CAAC,YAAY;wBAC9B,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK;wBAC3B,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK;qBAC/B,CAAC,CAAC;oBACH,MAAM;gBACR,CAAC;gBACD,iEAAiE;gBACjE,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,KAAK,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC3E,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC7D,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,SAAS,CAAC,YAAY,EAAG,SAAS,CAAC,IAAI,CAAC,aAA0B,IAAI,EAAE,CAAC,CAAC;oBAC7G,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;wBACpB,SAAS,EAAE,SAAS,CAAC,SAAS;wBAC9B,aAAa;wBACb,MAAM,EAAE,SAAS,CAAC,YAAY;wBAC9B,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE;wBAC7C,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;qBACzC,CAAC,CAAC;oBACH,MAAM;gBACR,CAAC;gBACD,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;oBACtE,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC9D,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,IAA8B,CAAC;oBAC/D,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;oBAClE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;wBAChB,SAAS,EAAE,SAAS,CAAC,SAAS;wBAC9B,cAAc;wBACd,MAAM,EAAE,SAAS,CAAC,YAAY;wBAC9B,QAAQ;wBACR,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;qBAC1C,CAAC,CAAC;oBACH,MAAM;gBACR,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;gBAClF,MAAM;YACR,CAAC;YACD,KAAK,kBAAkB;gBACrB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;gBACpC,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC3B,MAAM;YACR,KAAK,QAAQ;gBACX,kEAAkE;gBAClE,sEAAsE;gBACtE,mDAAmD;gBACnD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC3B,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC5B,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;oBAC3C,MAAM,EAAE,KAAK,CAAC,MAA8B;oBAC5C,UAAU,EAAG,KAAK,CAAC,UAA4B,IAAI,IAAI;iBACxD,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,eAAe,CAAC;YACrB,KAAK,aAAa,CAAC;YACnB,KAAK,iBAAiB;gBACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,EAAE,GAAG,KAAK,CAAC,SAAkE,CAAC;gBACpF,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS;oBAAE,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBACxD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBAC9B,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,0EAA0E;IAClE,KAAK,CAAC,aAAa,CAAC,EAA2C;QACrE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAIvE,CAAC;YACF,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvE,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClE,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3D,IAAI,OAAO,KAAK,GAAG;gBAAE,OAAO,CAAC,0BAA0B;YACvD,yEAAyE;YACzE,qEAAqE;YACrE,0EAA0E;YAC1E,wEAAwE;YACxE,8CAA8C;YAC9C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC7C,IAAI,IAAI,IAAI,OAAO;gBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1E,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;IACH,CAAC;IAED;;;yCAGqC;IACrC,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,UAAkB;QACxD,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QACjD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CACnC,KAAK,EACL,YAAY,IAAI,CAAC,KAAK,eAAe,UAAU,0BAA0B,CAC1E,CAAC;QACF,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC5B,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,CAAC,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5E,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,oFAAoF;IAC5E,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAE5C;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,mBAAmB,CAAC,SAAiB,EAAE,UAAqC;QAChF,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,iCAAiC;QACrG,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO;QAChD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,UAAU,IAAI,CAAC,MAAM,cAAc,SAAS,EAAE,CAAC;QAC5D,IAAI,CAAC;YACH,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO;YACvC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CACnC,KAAK,EACL,YAAY,IAAI,CAAC,KAAK,eAAe,UAAU,0BAA0B,CAC1E,CAAC;YACF,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClH,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBACjH,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC/C,KAAK,MAAM,EAAE,IAAI,SAAS;oBAAE,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC1F,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;gBACrD,IAAI,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAC/C,oEAAoE;oBACpE,oEAAoE;oBACpE,oEAAoE;oBACpE,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;YACD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,6BAA6B;QACvE,CAAC;IACH,CAAC;IAED,yFAAyF;IACzF,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,UAAqC;QAC9E,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAED;;yCAEqC;IAC7B,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,SAAiB,EAAE,OAAqB;QACpF,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QACzD,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,KAAK,eAAe,UAAU,aAAa,EAAE;YACnF,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,SAAS;YACf,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YAClD,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;SACpE,CAAC,CAAC;IACL,CAAC;IAED;;8EAE0E;IAClE,KAAK,CAAC,mBAAmB,CAAC,SAAiB,EAAE,UAAkB,EAAE,GAAc;QACrF,MAAM,UAAU,GAAqD,EAAE,CAAC;QACxE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAChC,KAAK,EACL,YAAY,IAAI,CAAC,KAAK,aAAa,SAAS,UAAU,CACvD,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CACpC,MAAM,EACN,YAAY,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC,MAAM,qBAAqB,CAC9D,CAAC;gBACF,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;oBAC7B,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;wBAAE,SAAS,CAAC,4CAA4C;oBACzF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAwB,CAAC;oBAC7F,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,yEAAyE;YAC3E,CAAC;QACH,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACnF,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IACvF,CAAC;IAED;mFAC+E;IACvE,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE1D;;;;;;OAMG;IACK,iBAAiB,CAAC,SAAiB;QACzC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;gBACd,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACnD,OAAO,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;gBACnC,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;YACL,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACnC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,aAAa,CAAC,SAAiB;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IACjD,CAAC;IAED,uFAAuF;IACvF,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,4EAA4E;IAE5E,+EAA+E;IAC/E,KAAK,CAAC,eAAe,CAAC,KAAkB;QACtC,MAAM,GAAG,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACvC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAC3C,MAAM,EACN,YAAY,IAAI,CAAC,KAAK,UAAU,EAChC,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,CAC/B,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAC;QAC3H,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IACxF,CAAC;IAED,6EAA6E;IAE7E;;;;;;OAMG;IACH;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,CAAC,UAAkC,EAAE;QAC/C,MAAM,CAAC,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAE5E,6EAA6E;QAC7E,6EAA6E;QAC7E,8EAA8E;QAC9E,yEAAyE;QACzE,EAAE;QACF,2EAA2E;QAC3E,yEAAyE;QACzE,2EAA2E;QAC3E,uEAAuE;QACvE,2EAA2E;QAC3E,yEAAyE;QACzE,yBAAyB;QACzB,IAAI,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACzC,IAAI,KAAK,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,IAAI,aAAa,GAAgG,IAAI,CAAC;QACtH,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAChC,KAAK,EACL,YAAY,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,MAAM,kBAAkB,CAC9D,CAAC;YACF,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,EAAE,GAAG,MAAM,EAAE,aAAa,CAAC;YACjC,IAAI,MAAM,IAAI,EAAE,EAAE,MAAM,KAAK,YAAY,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;gBACtD,IAAI,KAAK,GAAkB,IAAI,CAAC;gBAChC,MAAM,SAAS,GAAuD;oBACpE,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC;oBACxB,CAAC,UAAU,EAAE,CAAC,CAAC,gBAAgB,CAAC;oBAChC,CAAC,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC;iBAC7B,CAAC;gBACF,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;oBACvC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC9C,IAAI,CAAC,CAAC;wBAAE,SAAS;oBACjB,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,MAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;wBACjE,KAAK,GAAG,CAAC,MAAM,cAAc,CAAiB,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;wBAClE,MAAM;oBACR,CAAC;oBAAC,MAAM,CAAC;wBACP,yDAAyD;oBAC3D,CAAC;gBACH,CAAC;gBACD,uEAAuE;gBACvE,wEAAwE;gBACxE,uEAAuE;gBACvE,mEAAmE;gBACnE,kEAAkE;gBAClE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB;oBAAE,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACnE,wEAAwE;gBACxE,8DAA8D;gBAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBAC9E,0EAA0E;gBAC1E,0EAA0E;gBAC1E,yEAAyE;gBACzE,wEAAwE;gBACxE,wDAAwD;gBACxD,MAAM,SAAS,GAAG,KAAK,IAAI,QAAQ,CAAC;gBACpC,IAAI,SAAS,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;oBACpC,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;wBAC5C,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;4BACX,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;4BAC5D,aAAa,GAAG,MAAM,cAAc,CAClC,MAAM,eAAe,CAAC,SAAS,CAAC,EAChC,EAAE,CACH,CAAC;4BACF,KAAK,GAAG,SAAS,CAAC,CAAC,kDAAkD;wBACvE,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,iFAAiF;oBACnF,CAAC;gBACH,CAAC;gBACD,IAAI,KAAK,EAAE,CAAC;oBACV,QAAQ,GAAG,IAAI,CAAC;oBAChB,KAAK,GAAG,KAAK,CAAC;oBACd,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;oBACvC,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,UAAU,CAAU,EAAE,CAAC;wBACrD,MAAM,QAAQ,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;wBACnE,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;4BAAE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAClE,CAAC;oBACD,mEAAmE;oBACnE,sEAAsE;oBACtE,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM;wBAAE,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;gBACxD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;QACD,0EAA0E;QAC1E,sDAAsD;QACtD,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,2EAA2E;QAC3E,qEAAqE;QACrE,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACxD,IAAI,MAAM,CAAC,MAAM;gBAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACrD,CAAC;QAED,MAAM,WAAW,GAA2B,EAAE,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW;YAAE,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,eAAe,GAA6B,EAAE,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe;YAAE,IAAI,IAAI,CAAC,IAAI;gBAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzG,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;QAE/I,MAAM,UAAU,GAAG,OAAO,CAAC;QAC3B,MAAM,KAAK,GAA4B,EAAE,GAAG,OAAO,EAAE,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC,CAAU,EAAE,CAAC;YAC/F,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5E,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YAC5D,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACxF,CAAC;QAED,2EAA2E;QAC3E,uEAAuE;QACvE,gEAAgE;QAChE,yEAAyE;QACzE,2EAA2E;QAC3E,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YACtC,IAAI,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;gBACxC,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7G,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2EAA2E;QAC7E,CAAC;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAC/C,MAAM,EACN,YAAY,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,MAAM,kBAAkB,EAC7D,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,YAAY,EAAE,CAC9F,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAC;QAC5H,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,2EAA2E;QAC3E,mDAAmD;QACnD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,gDAAgD;QAClD,CAAC;QACD,OAAO,GAAG,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED;;;;2BAIuB;IACf,KAAK,CAAC,cAAc,CAAC,OAG5B;QACC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;qBAAM,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,gBAAgB,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;oBACtE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,0BAA0B;YAC5B,CAAC;QACH,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,CAAC;YACzE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC;oBACH,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,gBAAgB,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;wBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACpF,CAAC;gBAAC,MAAM,CAAC;oBACP,0BAA0B;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;IACtB,CAAC;IAED;;;8EAG0E;IAClE,gBAAgB;QACtB,OAAO,UAAU,IAAI,CAAC,MAAM,WAAW,CAAC;IAC1C,CAAC;IAED;yEACqE;IACrE,KAAK,CAAC,kBAAkB;QACtB,IAAI,CAAC;YACH,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,qBAAqB;QACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;QAC/G,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAChC,KAAK,EACL,YAAY,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,MAAM,kBAAkB,CAC9D,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC5D,2EAA2E;QAC3E,MAAM,OAAO,GAAG,MAAM,cAAc,CAClC,MAAM,eAAe,CAAC,KAAK,CAAC,EAC5B,EAAE,CACH,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChC,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,OAA+B;QAC3C,MAAM,CAAC,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAChC,KAAK,EACL,YAAY,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,MAAM,kBAAkB,CAC9D,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACvE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,eAAe;QACtC,MAAM,EAAE,GAAG,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC;QAEjC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAE5D,IAAI,OAIH,CAAC;QAEF,IAAI,EAAE,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAC/B,IAAI,OAAO,GAAqB,IAAI,CAAC;YACrC,IAAI,KAAK,GAAkB,IAAI,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC,CAAU,EAAE,CAAC;gBAC/F,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,CAAC,CAAC;oBAAE,SAAS;gBACjB,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;oBAChE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,cAAc,CAAiB,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;oBACpE,OAAO,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;oBACpC,KAAK,GAAG,EAAE,CAAC;oBACX,MAAM;gBACR,CAAC;gBAAC,MAAM,CAAC;oBACP,+CAA+C;gBACjD,CAAC;YACH,CAAC;YACD,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;YACzG,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC5C,2EAA2E;YAC3E,0EAA0E;YAC1E,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC,CAAC;gBACvD,CAAC;gBAAC,MAAM,CAAC;oBACP,6CAA6C;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,2EAA2E;YAC3E,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,QAAQ,CAAC;YAC1C,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACpE,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;YAChE,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE/C,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;IACjD,CAAC;IAED,4EAA4E;IAE5E,+EAA+E;IACvE,SAAS,CAA0E;IAC3F;qFACiF;IACzE,gBAAgB,GAAkB,IAAI,CAAC;IAE/C,iFAAiF;IACzE,KAAK,CAAC,YAAY;QACxB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC;QACxD,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAC7B,KAAK,EACL,YAAY,IAAI,CAAC,KAAK,oBAAoB,CAC3C,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,6CAA6C;QACtE,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAChC,KAAK,EACL,YAAY,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,MAAM,kBAAkB,CAC9D,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACvE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,eAAe;QACtC,MAAM,EAAE,GAAG,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,IAAI,CAAC,GAAG,EAAE,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAEtE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAC3B,MAAM,EACN,YAAY,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,MAAM,gCAAgC,EAC3E,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CACzB,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;QAE1C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,cAAc,CAIjC,OAAO,EAAE,EAAE,CAAC,CAAC;QAEhB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC,iDAAiD;QAC7E,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,uCAAuC;QAC5F,CAAC;QAAC,MAAM,CAAC;YACP,6CAA6C;QAC/C,CAAC;QACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;IACjD,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,mBAAmB,CAAC,MAAkD;QAClF,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,OAAO;QAC9C,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ;YAAE,OAAO,CAAC,0BAA0B;QACzE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,sBAAsB,CAAC;QACnF,IAAI,WAAW;YAAE,OAAO;QAExB,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC3C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE3B,0EAA0E;QAC1E,iEAAiE;QACjE,IAAI,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,MAAM,YAAY,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC5G,CAAC;QAED,0EAA0E;QAC1E,2EAA2E;QAC3E,sDAAsD;QACtD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,QAAQ,GAAG,SAA8B,CAAC;YAC/C,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,4EAA4E;QAC5E,wDAAwD;QACxD,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;YACf,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,4DAA4D;YAChF,IAAI,CAAC;gBACH,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;QACD,6EAA6E;QAC7E,yEAAyE;QACzE,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,iEAAiE;IACjE,KAAK,CAAC,SAAS;QACb,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAyB,KAAK,EAAE,YAAY,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,MAAM,kBAAkB,CAAC,CAAC;QACjI,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,eAAe,CAAC,GAAwD;QAC5E,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,2BAA2B;QAC3E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,KAAK,UAAU,IAAI,EAAE,EAAE;YAC5E,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,EAAE;SACnD,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/E,OAAO,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,gGAAgG;IAChG,QAAQ,GAAmC,IAAI,CAAC;IAEhD,oEAAoE;IACpE,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAA+C,KAAK,EAAE,YAAY,IAAI,CAAC,KAAK,WAAW,CAAC,CAAC;YACnH,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,2EAA2E;IAC3E,WAAW,CAAC,MAAc;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAChD,CAAC;IACD,QAAQ,CAAC,MAAc;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,QAAQ,CAAC;IAC7D,CAAC;IAED,2EAA2E;IAC3E,yEAAyE;IACjE,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;IACrD,cAAc,CAAC,aAAqB,EAAE,MAAc,EAAE,SAAmB;QAC/E,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;QAClD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;YAC7C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC;IACD,sEAAsE;IACtE,aAAa,CAAC,aAAqB,EAAE,MAAc,EAAE,SAAmB;QACtE,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;IACD,6EAA6E;IAC7E,WAAW,CAAC,aAAqB;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IACD,UAAU,CAAC,aAAqB;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACnE,CAAC;IAED,0EAA0E;IAC1E,kFAAkF;IAC1E,KAAK,GAAG,IAAI,GAAG,EAA+C,CAAC;IAC/D,UAAU,CAAC,cAAsB,EAAE,MAAc,EAAE,QAAgC;QACzF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IACD,sEAAsE;IACtE,SAAS,CAAC,cAAsB,EAAE,MAAc,EAAE,QAAgC;QAChF,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IACD,kFAAkF;IAClF,WAAW,CAAC,cAAsB;QAIhC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,EAAc,EAAE,EAAE,EAAE,EAAc,EAAE,KAAK,EAAE,EAAc,EAAE,CAAC;QAClF,IAAI,MAAM;YAAE,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,MAAM;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/D,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;IAC1G,CAAC;IACD,MAAM,CAAC,cAAsB;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAClE,CAAC;IAED,aAAa,CAAC,SAAiB,EAAE,GAAc;QAC7C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACrC,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAA4B;QAChD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxC,MAAM,IAAI,GAAqB;YAC7B,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;YAChC,SAAS;YACT,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;YACtC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YACpB,cAAc,EAAG,GAAG,CAAC,cAAgC,IAAI,IAAI;YAC7D,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;YAChC,QAAQ,EAAG,GAAG,CAAC,QAA0B,IAAI,IAAI;YACjD,UAAU,EAAG,GAAG,CAAC,UAA4B,IAAI,IAAI;YACrD,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;SACnC,CAAC;QACF,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAChC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,SAAqC,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YACzE,qEAAqE;YACrE,oEAAoE;YACpE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7G,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,IAAI,CAAC,IAAI,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC9D,OAAO,IAAI,CAAC;gBACd,CAAC;gBAAC,MAAM,CAAC;oBACP,yDAAyD;gBAC3D,CAAC;YACH,CAAC;YACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAcD,MAAM,QAAQ;IACQ;IAApB,YAAoB,EAAU;QAAV,OAAE,GAAF,EAAE,CAAQ;IAAG,CAAC;IAElC,KAAK,CAAC,IAAI;QACR,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAgC,KAAK,EAAE,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,WAAW,CAAC,CAAC;QACnH,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAiB;QACzB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAgB,KAAK,EAAE,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,aAAa,SAAS,EAAE,CAAC,CAAC;QACvG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,IAAwG;QACnH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAgB,MAAM,EAAE,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,WAAW,EAAE,IAAI,CAAC,CAAC;QACjG,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1C,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACtD,qEAAqE;YACrE,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBACnE,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,MAAM,OAAO,OAAO;IAER;IACD;IAFT,YACU,EAAU,EACX,MAAqB;QADpB,OAAE,GAAF,EAAE,CAAQ;QACX,WAAM,GAAN,MAAM,CAAe;IAC3B,CAAC;IAEJ,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,aAAa,CAAC,SAAmB;QACrC,MAAM,GAAG,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACvC,yEAAyE;QACzE,wEAAwE;QACxE,0EAA0E;QAC1E,yEAAyE;QAEzE,yEAAyE;QACzE,4EAA4E;QAC5E,yEAAyE;QACzE,wEAAwE;QACxE,4EAA4E;QAC5E,2EAA2E;QAC3E,8BAA8B;QAC9B,MAAM,UAAU,GAAqD,EAAE,CAAC;QACxE,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3D,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CACvC,MAAM,EACN,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,UAAU,MAAM,qBAAqB,CAC/D,CAAC;gBACF,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;oBAC7B,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,QAAQ;wBAAE,SAAS,CAAC,4CAA4C;oBAC5F,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAwB,CAAC;oBAC7F,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,uEAAuE;gBACvE,wEAAwE;gBACxE,IAAI,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,MAAM;oBAAE,MAAM,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAE1F,yEAAyE;QACzE,uEAAuE;QACvE,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,eAAe,IAAI,CAAC,MAAM,CAAC,UAAU,aAAa,EAAE;YACrG,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,QAAQ;YACd,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ;YAChC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;SAC7F,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,oCAAoC;QAEhF,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;YACzE,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,eAAe,IAAI,CAAC,MAAM,CAAC,UAAU,aAAa,EAAE;gBACrG,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,SAAS;gBACf,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ;gBAChC,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAClD,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;aACpE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,wEAAwE;YACxE,0EAA0E;YAC1E,yEAAyE;YACzE,wEAAwE;YACxE,MAAM,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAC1C,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QAEtF,2EAA2E;QAC3E,2EAA2E;QAC3E,IAAI,CAAC;YACH,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC;gBACvC,MAAM,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC;gBACtC,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;oBAAE,OAAO,IAAI,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;QACnD,CAAC;QAED,+EAA+E;QAC/E,6EAA6E;QAC7E,+EAA+E;QAC/E,8EAA8E;QAC9E,2EAA2E;QAC3E,yEAAyE;QACzE,iEAAiE;QACjE,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CACnC,KAAK,EACL,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,aAAa,IAAI,CAAC,SAAS,UAAU,CAC/D,CAAC;YACF,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;gBAAE,OAAO,IAAI,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,wEAAwE;QAC1E,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACxE,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,WAAW,CACf,OAAgC,EAChC,OAA8D,EAAE;QAEhE,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACvH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACnG,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;YACtG,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;gBACnC,IAAI,EAAE,cAAc;gBACpB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,eAAe;gBACf,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,QAAQ,EAAE,CAAC;gBACX,UAAU;aACX,CAAC,CAAyC,CAAC;YAC5C,OAAO,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;YACnC,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,eAAe;YACf,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,EAAE,IAAI,EAAG,OAAO,CAAC,IAAe,IAAI,MAAM,EAAE,GAAG,OAAO,EAAE;SACpE,CAAC,CAAyC,CAAC;QAC5C,OAAO,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAyI;QAClJ,OAAO,IAAI,CAAC,WAAW,CACrB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EACtG,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CACxC,CAAC;IACJ,CAAC;IAED,yEAAyE;IAEzE,gFAAgF;IAChF,KAAK,CAAC,cAAc,CAAC,CAAkB,EAAE,OAAsD,EAAE;QAC/F,0EAA0E;QAC1E,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAChC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;YAChC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;SACjF,CAAC,CAAC;QACH,MAAM,KAAK,GAAgF,CAAC;YAC1F,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YAC3E,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC7C,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAClC,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAClC,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,IAAI,CAAC,WAAW,CACrB;YACE,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,OAAO;YAClB,WAAW,EAAE;gBACX;oBACE,OAAO,EAAE,EAAE,CAAC,OAAO;oBACnB,UAAU,EAAE,EAAE,CAAC,UAAU;oBACzB,EAAE,EAAE,EAAE,CAAC,EAAE;oBACT,IAAI,EAAE,EAAE,CAAC,IAAI;oBACb,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,GAAG,KAAK;iBACT;aACF;SACF,EACD,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CACxC,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,KAAK,CAAC,QAAQ,CAAC,IAA2E,EAAE,IAA4H;QACtN,OAAO,IAAI,CAAC,cAAc,CACxB;YACE,KAAK,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM;YACzB,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,0BAA0B;YACpD,SAAS,EAAE,IAAI,EAAE,SAAS;YAC1B,KAAK,EAAE,IAAI,EAAE,KAAK;YAClB,MAAM,EAAE,IAAI,EAAE,MAAM;YACpB,WAAW,EAAE,IAAI,EAAE,WAAW;SAC/B,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAC3B,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,eAAe,CAAC,GAA8E;QAClG,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,IAAI,0BAA0B,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAyG;QACtH,MAAM,EAAE,GAAG,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC,WAAW,CAAC;YACtB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE;gBACJ,EAAE;gBACF,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACjE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;gBAChC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK;gBAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB;SACF,CAAC,CAAC;IACL,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,QAAQ,CAAC,aAAqB,EAAE,SAAmB;QACvD,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA0J;QAC1K,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,KAAkJ;QACxK,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,cAAsB,EAAE,QAAgC;QACjE,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,GAAW,EAAE,KAAc;QACzD,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,2EAA2E;IAC3E,sEAAsE;IACtE,0EAA0E;IAC1E,yDAAyD;IAEzD;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,IAA6C;QAC7D,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACvF,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,IAA8B;QAChD,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,IAA4E;QAC7F,OAAO,IAAI,CAAC,WAAW,CAAC;YACtB,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,IAA2C;QACvE,4EAA4E;QAC5E,mEAAmE;QACnE,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvE,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC5C,0EAA0E;YAC1E,2EAA2E;YAC3E,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;YACnE,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,aAAa,IAAI,CAAC,SAAS,aAAa,SAAS,EAAE,EAAE;gBACvG,QAAQ,EAAE,CAAC;gBACX,UAAU;aACX,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,aAAa,IAAI,CAAC,SAAS,aAAa,SAAS,EAAE,EAAE;gBACvG,SAAS,EAAE,OAAO;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CAAC,OAAoC,EAAE;QACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CACpC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,EAC5C,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CACxC,CAAC;QACF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEpC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,QAAQ,GAAG,GAAG,CAAC,CAAC,uCAAuC;QAC3D,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAyC,IAAI,CAAC;QACvD,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,2EAA2E;QAC3E,4EAA4E;QAC5E,IAAI,KAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;QAE7C,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,UAAU,EAAE,CAAC;YACb,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBAC5B,IAAI,SAAS;oBAAE,OAAO,CAAC,kDAAkD;gBACzE,MAAM,IAAI,GAAG,MAAM,CAAC;gBACpB,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,QAAQ;oBAAE,OAAO,CAAC,gCAAgC;gBACxE,QAAQ,GAAG,IAAI,CAAC;gBAChB,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxD,CAAC;gBAAC,MAAM,CAAC;oBACP,wEAAwE;gBAC1E,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,CAAC,QAAiB,EAAE,EAAE;YACrC,IAAI,SAAS;gBAAE,OAAO;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;YACtC,IAAI,QAAQ,IAAI,KAAK,IAAI,kBAAkB,EAAE,CAAC;gBAC5C,KAAK,EAAE,CAAC;YACV,CAAC;iBAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBAClB,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,CAAC,CAAC;YACxD,CAAC;QACH,CAAC,CAAC;QAEF,0EAA0E;QAC1E,gEAAgE;QAChE,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7F,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAY,EAAiB,EAAE;YACrD,SAAS,GAAG,IAAI,CAAC;YACjB,UAAU,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,yCAAyC;YACpE,yEAAyE;YACzE,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9D,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC,CAAC;QAEF,OAAO;YACL,SAAS;YACT,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACxB,IAAI,SAAS,IAAI,CAAC,KAAK;oBAAE,OAAO;gBAChC,MAAM,IAAI,KAAK,CAAC;gBAChB,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE;gBACxB,IAAI,SAAS;oBAAE,OAAO;gBACtB,MAAM,GAAG,IAAI,CAAC;gBACd,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,EAAE,KAAK,EAAE,SAAkB,EAA6B,EAAE;gBAC5D,MAAM,KAAK,GAAG,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,MAAM,IAAI,GAAG,CAAC;gBAC5D,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACtB,OAAO;oBACL,GAAG,OAAO;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;oBACnC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACnC,CAAC;YACJ,CAAC;YACD,IAAI,EAAE,KAAK,EAAE,IAAY,EAAiB,EAAE;gBAC1C,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAiB;QAC5B,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,aAAa,IAAI,CAAC,SAAS,aAAa,SAAS,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAiB,EAAE,KAAa,EAAE,KAAuB,KAAK;QACxE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAChH,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;gBACtB,IAAI,EAAE,cAAc;gBACpB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,eAAe,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBACxF,QAAQ,EAAE,CAAC;gBACX,UAAU;aACX,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,aAAa,IAAI,CAAC,SAAS,aAAa,SAAS,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/H,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,aAAa,IAAI,CAAC,SAAS,aAAa,SAAS,oBAAoB,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzJ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,QAAiB;QACtB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACtH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAC9B,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACxG,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA+C,EAAE;QAC7D,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CACpC,KAAK,EACL,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,aAAa,IAAI,CAAC,SAAS,aAAa,MAAM,EAAE,CAC1E,CAAC;QACF,MAAM,GAAG,GAAuB,EAAE,CAAC;QACnC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC7C,gFAAgF;YAChF,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;gBAAE,SAAS;YAChD,wEAAwE;YACxE,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,UAAU;gBAAE,SAAS;YAC1C,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC5B,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,eAAyB,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,IAA8B,CAAC,CAAC;gBAC3G,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;gBACjC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,eAAyB,EAAE,CAAC,CAAC,YAAY,EAAG,CAAC,CAAC,IAAI,CAAC,aAA0B,IAAI,EAAE,CAAC,CAAC;gBAClH,SAAS;YACX,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,WAAW,CAAC,aAAqB;QAC/B,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;IACD,UAAU,CAAC,aAAqB;QAC9B,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IACD,WAAW,CAAC,cAAsB;QAChC,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,CAAC,cAAsB;QAC3B,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAED,EAAE,CACA,KAAiH,EACjH,EAA4B;QAE5B,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,OAA+B,EAAE,EAAE;YAC5D,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;gBAAG,EAA2B,CAAC,OAAO,CAAC,CAAC;QACxG,CAAC,CAAU,CAAC,CAAC;IACf,CAAC;CACF;AAED,OAAO,EAAE,GAAG,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEhF,8EAA8E;AAC9E,yEAAyE;AACzE,6EAA6E;AAC7E,wDAAwD;AACxD,8EAA8E;AAE9E,2EAA2E;AAC3E,MAAM,UAAU,SAAS,CAAC,OAAkF,EAAE;IAC5G,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5C,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzC,IAAI,IAAI,CAAC,OAAO;YAAE,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9D,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC7B,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;YACpC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpD,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,oCAAoC;AACpC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3F,oBAAoB;AACpB,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AAChE,yDAAyD;AACzD,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;AAE3F;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAU,EAAE,GAAG,GAAG,GAAG;IAC5D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;IACzC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAC3C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAS,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5F,OAAO,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACtG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nopeek/chat",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "NoPeek client SDK — E2EE chat your servers can't read.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",