@powersync/service-core-tests 0.17.2 → 0.18.1

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.
Files changed (46) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/test-utils/AbstractStreamTestContext.d.ts +1 -1
  3. package/dist/test-utils/AbstractStreamTestContext.js +2 -3
  4. package/dist/test-utils/AbstractStreamTestContext.js.map +1 -1
  5. package/dist/test-utils/StorageDataHelpers.d.ts +3 -2
  6. package/dist/test-utils/StorageDataHelpers.js +40 -2
  7. package/dist/test-utils/StorageDataHelpers.js.map +1 -1
  8. package/dist/test-utils/general-utils.d.ts +3 -1
  9. package/dist/test-utils/general-utils.js +13 -1
  10. package/dist/test-utils/general-utils.js.map +1 -1
  11. package/dist/test-utils/storage-combinations.d.ts +13 -0
  12. package/dist/test-utils/storage-combinations.js +26 -0
  13. package/dist/test-utils/storage-combinations.js.map +1 -0
  14. package/dist/test-utils/stream_utils.d.ts +0 -1
  15. package/dist/test-utils/stream_utils.js +0 -10
  16. package/dist/test-utils/stream_utils.js.map +1 -1
  17. package/dist/test-utils/test-utils-index.d.ts +1 -0
  18. package/dist/test-utils/test-utils-index.js +1 -0
  19. package/dist/test-utils/test-utils-index.js.map +1 -1
  20. package/dist/tests/register-compacting-tests.js +15 -15
  21. package/dist/tests/register-compacting-tests.js.map +1 -1
  22. package/dist/tests/register-data-storage-checkpoint-tests.js +132 -14
  23. package/dist/tests/register-data-storage-checkpoint-tests.js.map +1 -1
  24. package/dist/tests/register-data-storage-data-tests.js +116 -96
  25. package/dist/tests/register-data-storage-data-tests.js.map +1 -1
  26. package/dist/tests/register-parameter-compacting-tests.js +3 -2
  27. package/dist/tests/register-parameter-compacting-tests.js.map +1 -1
  28. package/dist/tests/register-sync-tests.js +267 -82
  29. package/dist/tests/register-sync-tests.js.map +1 -1
  30. package/dist/tests/util.d.ts +6 -0
  31. package/dist/tests/util.js +12 -0
  32. package/dist/tests/util.js.map +1 -1
  33. package/package.json +4 -4
  34. package/src/test-utils/AbstractStreamTestContext.ts +2 -3
  35. package/src/test-utils/StorageDataHelpers.ts +45 -2
  36. package/src/test-utils/general-utils.ts +27 -3
  37. package/src/test-utils/storage-combinations.ts +51 -0
  38. package/src/test-utils/stream_utils.ts +0 -11
  39. package/src/test-utils/test-utils-index.ts +1 -0
  40. package/src/tests/register-compacting-tests.ts +15 -15
  41. package/src/tests/register-data-storage-checkpoint-tests.ts +161 -14
  42. package/src/tests/register-data-storage-data-tests.ts +132 -134
  43. package/src/tests/register-parameter-compacting-tests.ts +3 -2
  44. package/src/tests/register-sync-tests.ts +288 -84
  45. package/src/tests/util.ts +13 -0
  46. package/tsconfig.tsbuildinfo +1 -1
@@ -1,6 +1,7 @@
1
1
  import { storage, updateSyncRulesFromYaml } from '@powersync/service-core';
2
2
  import { expect, test } from 'vitest';
3
3
  import * as test_utils from '../test-utils/test-utils-index.js';
4
+ import { compactActive } from './util.js';
4
5
  /**
5
6
  * @example
6
7
  * ```TypeScript
@@ -28,7 +29,10 @@ bucket_definitions:
28
29
  const abortController = new AbortController();
29
30
  context.onTestFinished(() => abortController.abort());
30
31
  const iter = bucketStorage
31
- .watchCheckpointChanges({ user_id: 'user1', signal: abortController.signal })[Symbol.asyncIterator]();
32
+ .watchCheckpointChanges({
33
+ user_id: 'user1',
34
+ signal: abortController.signal
35
+ })[Symbol.asyncIterator]();
32
36
  await using writer = await bucketStorage.createWriter(test_utils.BATCH_OPTIONS);
33
37
  await writer.markAllSnapshotDone('1/1');
34
38
  const writeCheckpoint = await createManagedWriteCheckpoint(bucketStorage, {
@@ -64,7 +68,10 @@ bucket_definitions:
64
68
  const abortController = new AbortController();
65
69
  context.onTestFinished(() => abortController.abort());
66
70
  const iter = bucketStorage
67
- .watchCheckpointChanges({ user_id: 'user1', signal: abortController.signal })[Symbol.asyncIterator]();
71
+ .watchCheckpointChanges({
72
+ user_id: 'user1',
73
+ signal: abortController.signal
74
+ })[Symbol.asyncIterator]();
68
75
  await writer.keepalive('5/0');
69
76
  const result = await iter.next();
70
77
  expect(result).toMatchObject({
@@ -82,7 +89,7 @@ bucket_definitions:
82
89
  user_id: 'user1'
83
90
  });
84
91
  // We have to trigger a new keepalive after the checkpoint, at least to cover postgres storage.
85
- // This is what is effetively triggered with RouteAPI.createReplicationHead().
92
+ // This is what is effectively triggered by RouteAPI.createReplicationHead().
86
93
  // MongoDB storage doesn't explicitly need this anymore.
87
94
  await writer.keepalive('6/0');
88
95
  let result2 = await iter.next();
@@ -101,7 +108,7 @@ bucket_definitions:
101
108
  }
102
109
  });
103
110
  });
104
- test('custom write checkpoints - checkpoint after write', async (context) => {
111
+ test('managed write checkpoints - client supplied ids are monotonic', async () => {
105
112
  await using factory = await generateStorageFactory();
106
113
  const r = await factory.configureSyncRules(updateSyncRulesFromYaml(`
107
114
  bucket_definitions:
@@ -112,13 +119,73 @@ bucket_definitions:
112
119
  storageVersion
113
120
  }));
114
121
  const bucketStorage = factory.getInstance(r.persisted_sync_rules);
115
- bucketStorage.setWriteCheckpointMode(storage.WriteCheckpointMode.CUSTOM);
122
+ const first = await createManagedWriteCheckpointResult(bucketStorage, {
123
+ user_id: 'user1',
124
+ heads: { '1': '5/0' },
125
+ checkpoint_request_id: 42n
126
+ });
127
+ expect(first.writeCheckpoints.get('user1')).toEqual(42n);
128
+ expect(first.shouldAdvance).toBe(true);
129
+ await expect(bucketStorage.lastWriteCheckpoint({ user_id: 'user1', heads: { '1': '5/0' } })).resolves.toEqual(42n);
130
+ const stale = await createManagedWriteCheckpointResult(bucketStorage, {
131
+ user_id: 'user1',
132
+ heads: { '1': '8/0' },
133
+ checkpoint_request_id: 41n
134
+ });
135
+ expect(stale.writeCheckpoints.get('user1')).toEqual(42n);
136
+ // The stored checkpoint is unchanged but has not been processed by replication
137
+ // yet, so the source marker must still be forced (e.g. for a retry after a
138
+ // previous attempt failed to advance the marker).
139
+ expect(stale.shouldAdvance).toBe(true);
140
+ await expect(bucketStorage.lastWriteCheckpoint({ user_id: 'user1', heads: { '1': '6/0' } })).resolves.toEqual(42n);
141
+ const retried = await createManagedWriteCheckpointResult(bucketStorage, {
142
+ user_id: 'user1',
143
+ heads: { '1': '8/0' },
144
+ checkpoint_request_id: 42n
145
+ });
146
+ expect(retried.writeCheckpoints.get('user1')).toEqual(42n);
147
+ // Same as above: the duplicate request still points at a pending checkpoint.
148
+ expect(retried.shouldAdvance).toBe(true);
149
+ await expect(bucketStorage.lastWriteCheckpoint({ user_id: 'user1', heads: { '1': '6/0' } })).resolves.toEqual(42n);
150
+ const advanced = await createManagedWriteCheckpointResult(bucketStorage, {
151
+ user_id: 'user1',
152
+ heads: { '1': '8/0' },
153
+ checkpoint_request_id: 43n
154
+ });
155
+ expect(advanced.writeCheckpoints.get('user1')).toEqual(43n);
156
+ expect(advanced.shouldAdvance).toBe(true);
157
+ await expect(bucketStorage.lastWriteCheckpoint({ user_id: 'user1', heads: { '1': '7/0' } })).resolves.toBeNull();
158
+ await expect(bucketStorage.lastWriteCheckpoint({ user_id: 'user1', heads: { '1': '8/0' } })).resolves.toEqual(43n);
159
+ const generated = await createManagedWriteCheckpointResult(bucketStorage, {
160
+ user_id: 'user1',
161
+ heads: { '1': '9/0' }
162
+ });
163
+ expect(generated.writeCheckpoints.get('user1')).toEqual(44n);
164
+ expect(generated.shouldAdvance).toBe(true);
165
+ });
166
+ test.runIf((storageVersion ?? 1) < 3)('custom write checkpoints - checkpoint after write', async (context) => {
167
+ await using factory = await generateStorageFactory();
168
+ const r = await factory.configureSyncRules(updateSyncRulesFromYaml(`
169
+ bucket_definitions:
170
+ mybucket:
171
+ data: []
172
+ `, {
173
+ validate: false,
174
+ storageVersion
175
+ }));
176
+ const bucketStorage = factory.getInstance(r.persisted_sync_rules);
177
+ bucketStorage.setWriteCheckpointMode({
178
+ mode: storage.WriteCheckpointMode.CUSTOM
179
+ });
116
180
  await using writer = await bucketStorage.createWriter(test_utils.BATCH_OPTIONS);
117
181
  await writer.markAllSnapshotDone('1/1');
118
182
  const abortController = new AbortController();
119
183
  context.onTestFinished(() => abortController.abort());
120
184
  const iter = bucketStorage
121
- .watchCheckpointChanges({ user_id: 'user1', signal: abortController.signal })[Symbol.asyncIterator]();
185
+ .watchCheckpointChanges({
186
+ user_id: 'user1',
187
+ signal: abortController.signal
188
+ })[Symbol.asyncIterator]();
122
189
  writer.addCustomWriteCheckpoint({
123
190
  checkpoint: 5n,
124
191
  user_id: 'user1'
@@ -136,7 +203,7 @@ bucket_definitions:
136
203
  }
137
204
  });
138
205
  });
139
- test('custom write checkpoints - standalone checkpoint', async (context) => {
206
+ test.runIf((storageVersion ?? 1) < 3)('custom write checkpoints - standalone checkpoint', async (context) => {
140
207
  await using factory = await generateStorageFactory();
141
208
  const r = await factory.configureSyncRules(updateSyncRulesFromYaml(`
142
209
  bucket_definitions:
@@ -147,13 +214,18 @@ bucket_definitions:
147
214
  storageVersion
148
215
  }));
149
216
  const bucketStorage = factory.getInstance(r.persisted_sync_rules);
150
- bucketStorage.setWriteCheckpointMode(storage.WriteCheckpointMode.CUSTOM);
217
+ bucketStorage.setWriteCheckpointMode({
218
+ mode: storage.WriteCheckpointMode.CUSTOM
219
+ });
151
220
  await using writer = await bucketStorage.createWriter(test_utils.BATCH_OPTIONS);
152
221
  await writer.markAllSnapshotDone('1/1');
153
222
  const abortController = new AbortController();
154
223
  context.onTestFinished(() => abortController.abort());
155
224
  const iter = bucketStorage
156
- .watchCheckpointChanges({ user_id: 'user1', signal: abortController.signal })[Symbol.asyncIterator]();
225
+ .watchCheckpointChanges({
226
+ user_id: 'user1',
227
+ signal: abortController.signal
228
+ })[Symbol.asyncIterator]();
157
229
  // Flush to clear state
158
230
  await writer.flush();
159
231
  writer.addCustomWriteCheckpoint({
@@ -173,7 +245,7 @@ bucket_definitions:
173
245
  }
174
246
  });
175
247
  });
176
- test('custom write checkpoints - write after checkpoint', async (context) => {
248
+ test.runIf((storageVersion ?? 1) < 3)('custom write checkpoints - write after checkpoint', async (context) => {
177
249
  await using factory = await generateStorageFactory();
178
250
  const r = await factory.configureSyncRules(updateSyncRulesFromYaml(`
179
251
  bucket_definitions:
@@ -184,13 +256,18 @@ bucket_definitions:
184
256
  storageVersion
185
257
  }));
186
258
  const bucketStorage = factory.getInstance(r.persisted_sync_rules);
187
- bucketStorage.setWriteCheckpointMode(storage.WriteCheckpointMode.CUSTOM);
259
+ bucketStorage.setWriteCheckpointMode({
260
+ mode: storage.WriteCheckpointMode.CUSTOM
261
+ });
188
262
  await using writer = await bucketStorage.createWriter(test_utils.BATCH_OPTIONS);
189
263
  await writer.markAllSnapshotDone('1/1');
190
264
  const abortController = new AbortController();
191
265
  context.onTestFinished(() => abortController.abort());
192
266
  const iter = bucketStorage
193
- .watchCheckpointChanges({ user_id: 'user1', signal: abortController.signal })[Symbol.asyncIterator]();
267
+ .watchCheckpointChanges({
268
+ user_id: 'user1',
269
+ signal: abortController.signal
270
+ })[Symbol.asyncIterator]();
194
271
  await writer.keepalive('5/0');
195
272
  const result = await iter.next();
196
273
  expect(result).toMatchObject({
@@ -237,11 +314,52 @@ bucket_definitions:
237
314
  }
238
315
  });
239
316
  });
317
+ test.runIf((storageVersion ?? 1) < 3)('custom write checkpoints - checkpoint request markers are temporary', async () => {
318
+ await using factory = await generateStorageFactory();
319
+ const r = await factory.configureSyncRules(updateSyncRulesFromYaml(`
320
+ bucket_definitions:
321
+ mybucket:
322
+ data: []
323
+ `, {
324
+ validate: false,
325
+ storageVersion
326
+ }));
327
+ const bucketStorage = factory.getInstance(r.persisted_sync_rules);
328
+ bucketStorage.setWriteCheckpointMode({
329
+ mode: storage.WriteCheckpointMode.CUSTOM
330
+ });
331
+ await using writer = await bucketStorage.createWriter(test_utils.BATCH_OPTIONS);
332
+ await writer.markAllSnapshotDone('1/1');
333
+ writer.addCustomWriteCheckpoint({
334
+ checkpoint: 5n,
335
+ user_id: 'persistent'
336
+ });
337
+ writer.addCustomWriteCheckpoint({
338
+ checkpoint: 6n,
339
+ user_id: 'temporary',
340
+ checkpoint_requested_at: new Date('2024-01-01T00:00:00.000Z')
341
+ });
342
+ await writer.flush();
343
+ await writer.keepalive('1/1');
344
+ await expect(bucketStorage.lastWriteCheckpoint({ user_id: 'persistent' })).resolves.toEqual(5n);
345
+ await expect(bucketStorage.lastWriteCheckpoint({ user_id: 'temporary' })).resolves.toEqual(6n);
346
+ await compactActive(factory, {
347
+ compactBuckets: [],
348
+ deleteCheckpointRequestsBefore: new Date(Date.now() + 1_000)
349
+ });
350
+ await expect(bucketStorage.lastWriteCheckpoint({ user_id: 'persistent' })).resolves.toEqual(5n);
351
+ await expect(bucketStorage.lastWriteCheckpoint({ user_id: 'temporary' })).resolves.toBeNull();
352
+ });
240
353
  }
241
354
  async function createManagedWriteCheckpoint(bucketStorage, checkpoint) {
242
- const checkpoints = await bucketStorage.createManagedWriteCheckpoints([checkpoint]);
243
- const writeCheckpoint = checkpoints.get(checkpoint.user_id);
355
+ const result = await createManagedWriteCheckpointResult(bucketStorage, checkpoint);
356
+ const writeCheckpoint = result.writeCheckpoints.get(checkpoint.user_id);
244
357
  expect(writeCheckpoint).not.toBeUndefined();
245
358
  return writeCheckpoint;
246
359
  }
360
+ async function createManagedWriteCheckpointResult(bucketStorage, checkpoint) {
361
+ const result = await bucketStorage.createManagedWriteCheckpoints([checkpoint]);
362
+ expect(result.writeCheckpoints.get(checkpoint.user_id)).not.toBeUndefined();
363
+ return result;
364
+ }
247
365
  //# sourceMappingURL=register-data-storage-checkpoint-tests.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register-data-storage-checkpoint-tests.js","sourceRoot":"","sources":["../../src/tests/register-data-storage-checkpoint-tests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-data-storage-checkpoint-tests.js","sourceRoot":"","sources":["../../src/tests/register-data-storage-checkpoint-tests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;;;;;;GASG;AACH,MAAM,UAAU,kCAAkC,CAAC,MAAiC;IAClF,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,CAAC;IAC9C,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAE7C,IAAI,CAAC,oDAAoD,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC3E,YAAY,OAAO,GAAG,MAAM,sBAAsB,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,kBAAkB,CACxC,uBAAuB,CACrB;;;;KAIH,EACG;YACE,QAAQ,EAAE,KAAK;YACf,cAAc;SACf,CACF,CACF,CAAC;QACF,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAqB,CAAC,CAAC;QAEnE,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,aAAa;aACvB,sBAAsB,CAAC;YACtB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,eAAe,CAAC,MAAM;SAC/B,CAAC,CACD,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAE3B,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAExC,MAAM,eAAe,GAAG,MAAM,4BAA4B,CAAC,aAAa,EAAE;YACxE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;YACrB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC3B,IAAI,EAAE,KAAK;YACX,KAAK,EAAE;gBACL,IAAI,EAAE;oBACJ,UAAU,EAAE,EAAE;oBACd,GAAG,EAAE,KAAK;iBACX;gBACD,eAAe,EAAE,eAAe;aACjC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oDAAoD,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC3E,YAAY,OAAO,GAAG,MAAM,sBAAsB,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,kBAAkB,CACxC,uBAAuB,CACrB;;;;KAIH,EACG;YACE,QAAQ,EAAE,KAAK;YACf,cAAc;SACf,CACF,CACF,CAAC;QACF,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAqB,CAAC,CAAC;QAEnE,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAExC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,aAAa;aACvB,sBAAsB,CAAC;YACtB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,eAAe,CAAC,MAAM;SAC/B,CAAC,CACD,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAE3B,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC3B,IAAI,EAAE,KAAK;YACX,KAAK,EAAE;gBACL,IAAI,EAAE;oBACJ,UAAU,EAAE,EAAE;oBACd,GAAG,EAAE,KAAK;iBACX;gBACD,eAAe,EAAE,IAAI;aACtB;SACF,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,MAAM,4BAA4B,CAAC,aAAa,EAAE;YACxE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;YACrB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,+FAA+F;QAC/F,6EAA6E;QAC7E,wDAAwD;QACxD,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE9B,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,EAAE,CAAC;YACtC,8EAA8E;YAC9E,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;YAC5B,IAAI,EAAE,KAAK;YACX,KAAK,EAAE;gBACL,IAAI,EAAE;oBACJ,UAAU,EAAE,EAAE;oBACd,GAAG,EAAE,KAAK;iBACX;gBACD,eAAe,EAAE,eAAe;aACjC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC/E,YAAY,OAAO,GAAG,MAAM,sBAAsB,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,kBAAkB,CACxC,uBAAuB,CACrB;;;;KAIH,EACG;YACE,QAAQ,EAAE,KAAK;YACf,cAAc;SACf,CACF,CACF,CAAC;QACF,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAqB,CAAC,CAAC;QAEnE,MAAM,KAAK,GAAG,MAAM,kCAAkC,CAAC,aAAa,EAAE;YACpE,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;YACrB,qBAAqB,EAAE,GAAG;SAC3B,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEnH,MAAM,KAAK,GAAG,MAAM,kCAAkC,CAAC,aAAa,EAAE;YACpE,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;YACrB,qBAAqB,EAAE,GAAG;SAC3B,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzD,+EAA+E;QAC/E,2EAA2E;QAC3E,kDAAkD;QAClD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEnH,MAAM,OAAO,GAAG,MAAM,kCAAkC,CAAC,aAAa,EAAE;YACtE,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;YACrB,qBAAqB,EAAE,GAAG;SAC3B,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3D,6EAA6E;QAC7E,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEnH,MAAM,QAAQ,GAAG,MAAM,kCAAkC,CAAC,aAAa,EAAE;YACvE,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;YACrB,qBAAqB,EAAE,GAAG;SAC3B,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACjH,MAAM,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEnH,MAAM,SAAS,GAAG,MAAM,kCAAkC,CAAC,aAAa,EAAE;YACxE,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,mDAAmD,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC3G,YAAY,OAAO,GAAG,MAAM,sBAAsB,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,kBAAkB,CACxC,uBAAuB,CACrB;;;;KAIH,EACG;YACE,QAAQ,EAAE,KAAK;YACf,cAAc;SACf,CACF,CACF,CAAC;QACF,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAqB,CAAC,CAAC;QACnE,aAAa,CAAC,sBAAsB,CAAC;YACnC,IAAI,EAAE,OAAO,CAAC,mBAAmB,CAAC,MAAM;SACzC,CAAC,CAAC;QAEH,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAExC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,aAAa;aACvB,sBAAsB,CAAC;YACtB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,eAAe,CAAC,MAAM;SAC/B,CAAC,CACD,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAE3B,MAAM,CAAC,wBAAwB,CAAC;YAC9B,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC3B,IAAI,EAAE,KAAK;YACX,KAAK,EAAE;gBACL,IAAI,EAAE;oBACJ,GAAG,EAAE,KAAK;iBACX;gBACD,eAAe,EAAE,EAAE;aACpB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kDAAkD,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC1G,YAAY,OAAO,GAAG,MAAM,sBAAsB,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,kBAAkB,CACxC,uBAAuB,CACrB;;;;KAIH,EACG;YACE,QAAQ,EAAE,KAAK;YACf,cAAc;SACf,CACF,CACF,CAAC;QACF,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAqB,CAAC,CAAC;QACnE,aAAa,CAAC,sBAAsB,CAAC;YACnC,IAAI,EAAE,OAAO,CAAC,mBAAmB,CAAC,MAAM;SACzC,CAAC,CAAC;QAEH,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAExC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,aAAa;aACvB,sBAAsB,CAAC;YACtB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,eAAe,CAAC,MAAM;SAC/B,CAAC,CACD,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAE3B,uBAAuB;QACvB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAErB,MAAM,CAAC,wBAAwB,CAAC;YAC9B,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC3B,IAAI,EAAE,KAAK;YACX,KAAK,EAAE;gBACL,IAAI,EAAE;oBACJ,GAAG,EAAE,KAAK;iBACX;gBACD,eAAe,EAAE,EAAE;aACpB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,mDAAmD,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC3G,YAAY,OAAO,GAAG,MAAM,sBAAsB,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,kBAAkB,CACxC,uBAAuB,CACrB;;;;KAIH,EACG;YACE,QAAQ,EAAE,KAAK;YACf,cAAc;SACf,CACF,CACF,CAAC;QACF,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAqB,CAAC,CAAC;QACnE,aAAa,CAAC,sBAAsB,CAAC;YACnC,IAAI,EAAE,OAAO,CAAC,mBAAmB,CAAC,MAAM;SACzC,CAAC,CAAC;QAEH,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAExC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,aAAa;aACvB,sBAAsB,CAAC;YACtB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,eAAe,CAAC,MAAM;SAC/B,CAAC,CACD,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAE3B,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC3B,IAAI,EAAE,KAAK;YACX,KAAK,EAAE;gBACL,IAAI,EAAE;oBACJ,GAAG,EAAE,KAAK;iBACX;gBACD,eAAe,EAAE,IAAI;aACtB;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,wBAAwB,CAAC;YAC9B,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE9B,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;YAC5B,IAAI,EAAE,KAAK;YACX,KAAK,EAAE;gBACL,IAAI,EAAE;gBACJ,6EAA6E;gBAC7E,aAAa;iBACd;gBACD,eAAe,EAAE,EAAE;aACpB;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,wBAAwB,CAAC;YAC9B,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE9B,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;YAC5B,IAAI,EAAE,KAAK;YACX,KAAK,EAAE;gBACL,IAAI,EAAE;gBACJ,kFAAkF;gBAClF,aAAa;iBACd;gBACD,eAAe,EAAE,EAAE;aACpB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CACnC,qEAAqE,EACrE,KAAK,IAAI,EAAE;QACT,YAAY,OAAO,GAAG,MAAM,sBAAsB,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,kBAAkB,CACxC,uBAAuB,CACrB;;;;KAIL,EACK;YACE,QAAQ,EAAE,KAAK;YACf,cAAc;SACf,CACF,CACF,CAAC;QACF,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAqB,CAAC,CAAC;QACnE,aAAa,CAAC,sBAAsB,CAAC;YACnC,IAAI,EAAE,OAAO,CAAC,mBAAmB,CAAC,MAAM;SACzC,CAAC,CAAC;QAEH,YAAY,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAExC,MAAM,CAAC,wBAAwB,CAAC;YAC9B,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,wBAAwB,CAAC;YAC9B,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,WAAW;YACpB,uBAAuB,EAAE,IAAI,IAAI,CAAC,0BAA0B,CAAC;SAC9D,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE9B,MAAM,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChG,MAAM,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE/F,MAAM,aAAa,CAAC,OAAO,EAAE;YAC3B,cAAc,EAAE,EAAE;YAClB,8BAA8B,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;SAC7D,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChG,MAAM,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAChG,CAAC,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,aAA6C,EAC7C,UAAiD;IAEjD,MAAM,MAAM,GAAG,MAAM,kCAAkC,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACnF,MAAM,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACxE,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC5C,OAAO,eAAgB,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,kCAAkC,CAC/C,aAA6C,EAC7C,UAAiD;IAEjD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,6BAA6B,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/E,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC5E,OAAO,MAAM,CAAC;AAChB,CAAC"}