@powersync/service-module-mssql 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +84 -0
- package/dist/api/MSSQLRouteAPIAdapter.js +26 -34
- package/dist/api/MSSQLRouteAPIAdapter.js.map +1 -1
- package/dist/common/MSSQLSourceTable.d.ts +12 -2
- package/dist/common/MSSQLSourceTable.js +30 -4
- package/dist/common/MSSQLSourceTable.js.map +1 -1
- package/dist/replication/CDCPoller.d.ts +13 -36
- package/dist/replication/CDCPoller.js +173 -129
- package/dist/replication/CDCPoller.js.map +1 -1
- package/dist/replication/CDCStream.d.ts +11 -14
- package/dist/replication/CDCStream.js +109 -103
- package/dist/replication/CDCStream.js.map +1 -1
- package/dist/replication/CaptureReconciler.d.ts +47 -0
- package/dist/replication/CaptureReconciler.js +155 -0
- package/dist/replication/CaptureReconciler.js.map +1 -0
- package/dist/replication/MSSQLConnectionManager.d.ts +1 -0
- package/dist/replication/MSSQLConnectionManager.js +19 -14
- package/dist/replication/MSSQLConnectionManager.js.map +1 -1
- package/dist/replication/MSSQLTableReconciliationContext.d.ts +21 -0
- package/dist/replication/MSSQLTableReconciliationContext.js +7 -0
- package/dist/replication/MSSQLTableReconciliationContext.js.map +1 -0
- package/dist/replication/SchemaChange.d.ts +67 -0
- package/dist/replication/SchemaChange.js +31 -0
- package/dist/replication/SchemaChange.js.map +1 -0
- package/dist/types/types.d.ts +8 -0
- package/dist/types/types.js +9 -0
- package/dist/types/types.js.map +1 -1
- package/dist/utils/mssql.js +1 -1
- package/dist/utils/schema.d.ts +14 -1
- package/dist/utils/schema.js +40 -45
- package/dist/utils/schema.js.map +1 -1
- package/package.json +4 -4
- package/src/api/MSSQLRouteAPIAdapter.ts +27 -33
- package/src/common/MSSQLSourceTable.ts +32 -4
- package/src/replication/CDCPoller.ts +206 -162
- package/src/replication/CDCStream.ts +142 -151
- package/src/replication/CaptureReconciler.ts +186 -0
- package/src/replication/MSSQLConnectionManager.ts +23 -14
- package/src/replication/MSSQLTableReconciliationContext.ts +29 -0
- package/src/replication/SchemaChange.ts +79 -0
- package/src/types/types.ts +21 -0
- package/src/utils/mssql.ts +1 -1
- package/src/utils/schema.ts +57 -58
- package/test/src/CDCPoller.test.ts +382 -0
- package/test/src/CDCStream.test.ts +6 -2
- package/test/src/CDCStreamTestContext.ts +7 -0
- package/test/src/CaptureReconciler.test.ts +171 -0
- package/test/src/MSSQLSourceTable.test.ts +30 -0
- package/test/src/config.test.ts +37 -0
- package/test/src/schema-changes.test.ts +513 -249
- package/test/src/schema.test.ts +17 -0
- package/test/src/util.ts +70 -6
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -8,8 +8,11 @@ import { MSSQLSourceTable } from '../common/MSSQLSourceTable.js';
|
|
|
8
8
|
import { MSSQLSourceTableCache } from '../common/MSSQLSourceTableCache.js';
|
|
9
9
|
import { checkRetentionThresholds, checkSourceConfiguration, createCheckpoint, getCaptureInstances, getLatestLSN, getLatestReplicatedLSN, isIColumnMetadata } from '../utils/mssql.js';
|
|
10
10
|
import { getReplicationIdentityColumns, getTablesFromPattern } from '../utils/schema.js';
|
|
11
|
-
import {
|
|
11
|
+
import { CaptureInstanceMissingError, createCaptureReconciler, SourceTableUnavailableError } from './CaptureReconciler.js';
|
|
12
|
+
import { CDCPoller } from './CDCPoller.js';
|
|
12
13
|
import { BatchedSnapshotQuery, SimpleSnapshotQuery } from './MSSQLSnapshotQuery.js';
|
|
14
|
+
import { MSSQLTableReconciliationState } from './MSSQLTableReconciliationContext.js';
|
|
15
|
+
import { SchemaChangeType } from './SchemaChange.js';
|
|
13
16
|
export var SnapshotStatus;
|
|
14
17
|
(function (SnapshotStatus) {
|
|
15
18
|
SnapshotStatus["INITIAL"] = "initial";
|
|
@@ -43,6 +46,9 @@ export class CDCStream {
|
|
|
43
46
|
logger;
|
|
44
47
|
tableCache = new MSSQLSourceTableCache();
|
|
45
48
|
replicationLag = new ReplicationLagTracker();
|
|
49
|
+
// Latest capture instance warning emitted for each source table.
|
|
50
|
+
warnedNewerCaptureObjectId = new Map();
|
|
51
|
+
warnedSchemaChangeCount = new Map();
|
|
46
52
|
constructor(options) {
|
|
47
53
|
this.options = options;
|
|
48
54
|
this.logger = options.logger ?? defaultLogger;
|
|
@@ -99,6 +105,8 @@ export class CDCStream {
|
|
|
99
105
|
}
|
|
100
106
|
async populateTableCache() {
|
|
101
107
|
const sourceTables = this.syncRules.getSourceTables();
|
|
108
|
+
// Loaded once for all patterns - this reads the CDC metadata for the entire database.
|
|
109
|
+
const captureInstances = await getCaptureInstances({ connectionManager: this.connections });
|
|
102
110
|
await this.storage.startBatch({
|
|
103
111
|
logger: this.logger,
|
|
104
112
|
zeroLSN: LSN.ZERO,
|
|
@@ -106,76 +114,93 @@ export class CDCStream {
|
|
|
106
114
|
storeCurrentData: false
|
|
107
115
|
}, async (batch) => {
|
|
108
116
|
for (let tablePattern of sourceTables) {
|
|
109
|
-
await this.getQualifiedTableNames(batch, tablePattern);
|
|
117
|
+
await this.getQualifiedTableNames(batch, tablePattern, captureInstances);
|
|
110
118
|
}
|
|
111
119
|
});
|
|
112
120
|
}
|
|
113
|
-
async getQualifiedTableNames(batch, tablePattern) {
|
|
121
|
+
async getQualifiedTableNames(batch, tablePattern, captureInstances) {
|
|
114
122
|
if (tablePattern.connectionTag != this.connections.connectionTag) {
|
|
115
123
|
return [];
|
|
116
124
|
}
|
|
117
|
-
const captureInstances = await getCaptureInstances({ connectionManager: this.connections });
|
|
118
125
|
const matchedTables = await getTablesFromPattern(this.connections, tablePattern);
|
|
126
|
+
if (matchedTables.length == 0) {
|
|
127
|
+
await this.reportUnavailableTable(batch, {
|
|
128
|
+
state: MSSQLTableReconciliationState.TABLE_MISSING,
|
|
129
|
+
source: {
|
|
130
|
+
connectionTag: this.connectionTag,
|
|
131
|
+
name: tablePattern.name,
|
|
132
|
+
schema: tablePattern.schema,
|
|
133
|
+
objectId: undefined,
|
|
134
|
+
// Replica identity metadata is unavailable when the physical table does not exist.
|
|
135
|
+
replicaIdColumns: []
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}
|
|
119
139
|
const tables = [];
|
|
120
140
|
for (const matchedTable of matchedTables) {
|
|
121
|
-
const captureInstanceDetails = captureInstances.get(matchedTable.objectId);
|
|
122
|
-
if (!captureInstanceDetails) {
|
|
123
|
-
// Match Postgres publication handling: If the source table cannot stream changes yet,
|
|
124
|
-
// don't resolve it into storage. Once CDC is enabled, the schema poller detects the
|
|
125
|
-
// new capture instance and resolves/snapshots it then.
|
|
126
|
-
this.logger.info(`Skipping ${tablePattern.schema}.${matchedTable.name} - not enabled for CDC. This table will not be replicated until CDC is enabled for it.`);
|
|
127
|
-
continue;
|
|
128
|
-
}
|
|
129
141
|
// TODO: Check RLS settings for table
|
|
130
142
|
const replicaIdColumns = await getReplicationIdentityColumns({
|
|
131
143
|
connectionManager: this.connections,
|
|
132
144
|
tableName: matchedTable.name,
|
|
133
145
|
schema: matchedTable.schema
|
|
134
146
|
});
|
|
135
|
-
const
|
|
147
|
+
const source = {
|
|
136
148
|
connectionTag: this.connectionTag,
|
|
137
149
|
name: matchedTable.name,
|
|
138
150
|
schema: matchedTable.schema,
|
|
139
151
|
objectId: matchedTable.objectId,
|
|
140
152
|
replicaIdColumns: replicaIdColumns.columns
|
|
141
|
-
}
|
|
142
|
-
|
|
153
|
+
};
|
|
154
|
+
const captureInstanceDetails = captureInstances.get(matchedTable.objectId);
|
|
155
|
+
if (!captureInstanceDetails?.instances.length) {
|
|
156
|
+
await this.reportUnavailableTable(batch, {
|
|
157
|
+
state: MSSQLTableReconciliationState.CDC_DISABLED,
|
|
158
|
+
source
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
const table = await this.processTable(batch, {
|
|
163
|
+
state: MSSQLTableReconciliationState.READY,
|
|
164
|
+
source,
|
|
165
|
+
captureInstances: captureInstanceDetails.instances
|
|
166
|
+
});
|
|
167
|
+
tables.push(table);
|
|
168
|
+
}
|
|
143
169
|
}
|
|
144
170
|
return tables;
|
|
145
171
|
}
|
|
146
|
-
async processTable(batch,
|
|
147
|
-
|
|
148
|
-
|
|
172
|
+
async processTable(batch, context) {
|
|
173
|
+
const { source } = context;
|
|
174
|
+
if (!source.objectId && typeof source.objectId != 'number') {
|
|
175
|
+
throw new ReplicationAssertionError(`objectId expected, got ${typeof source.objectId}`);
|
|
149
176
|
}
|
|
177
|
+
// Load all source metadata before resolving so the storage transaction does no source I/O.
|
|
150
178
|
const resolved = await batch.resolveTables({
|
|
151
179
|
connection_id: this.connectionId,
|
|
152
|
-
source
|
|
180
|
+
source,
|
|
181
|
+
reconcileSourceTables: createCaptureReconciler(context)
|
|
153
182
|
});
|
|
154
|
-
const resolvedTable = new MSSQLSourceTable(
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
else {
|
|
159
|
-
resolvedTable.setCaptureInstance(captureInstance);
|
|
183
|
+
const resolvedTable = new MSSQLSourceTable(source, resolved.tables);
|
|
184
|
+
resolvedTable.setCaptureInstance(context.captureInstances);
|
|
185
|
+
if (!resolvedTable.enabledForCDC()) {
|
|
186
|
+
throw new ReplicationAssertionError(`No capture instance matching the persisted binding is available for table ${resolvedTable.toQualifiedName()}`);
|
|
160
187
|
}
|
|
161
188
|
this.tableCache.set(resolvedTable);
|
|
162
189
|
// Drop conflicting tables. This includes for example renamed tables.
|
|
163
190
|
await batch.drop(resolved.dropTables);
|
|
164
|
-
//
|
|
165
|
-
//
|
|
166
|
-
// 2. AND the table is enabled for CDC with a valid capture instance.
|
|
167
|
-
const snapshotCandidates = resolved.tables.filter((candidate) => snapshot && !candidate.snapshotComplete && candidate.syncAny);
|
|
168
|
-
const shouldSnapshot = snapshotCandidates.length > 0 && resolvedTable.enabledForCDC();
|
|
169
|
-
if (shouldSnapshot) {
|
|
170
|
-
// Truncate tables in case a previous snapshot was interrupted.
|
|
171
|
-
await batch.truncate(snapshotCandidates);
|
|
172
|
-
// Start the snapshot(s) inside a transaction.
|
|
173
|
-
for (const candidate of snapshotCandidates) {
|
|
174
|
-
await this.snapshotTableInTx(batch, resolvedTable, candidate);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
191
|
+
// Snapshotting is driven by startInitialReplication, which picks up any source table that is
|
|
192
|
+
// not snapshot-complete after the table cache has been populated.
|
|
177
193
|
return resolvedTable;
|
|
178
194
|
}
|
|
195
|
+
async reportUnavailableTable(batch, context) {
|
|
196
|
+
await batch.resolveTables({
|
|
197
|
+
connection_id: this.connectionId,
|
|
198
|
+
source: context.source,
|
|
199
|
+
reconcileSourceTables: createCaptureReconciler(context)
|
|
200
|
+
});
|
|
201
|
+
// Unavailable-state reconciliation must reject; this enforces the Promise<never> contract if it returns.
|
|
202
|
+
throw new ReplicationAssertionError(`Unavailable source-table reconciliation unexpectedly completed for ${context.source.schema}.${context.source.name}`);
|
|
203
|
+
}
|
|
179
204
|
async snapshotTableInTx(batch, physicalTable, sourceTable) {
|
|
180
205
|
// Note: We use the "Read Committed" isolation level here, not snapshot isolation.
|
|
181
206
|
// The data may change during the transaction, but that is compensated for in the streaming
|
|
@@ -345,9 +370,16 @@ export class CDCStream {
|
|
|
345
370
|
break;
|
|
346
371
|
case SnapshotStatus.LIMITED_RESNAPSHOT:
|
|
347
372
|
for (const table of specificTablesToResnapshot) {
|
|
373
|
+
if (table.captureInstance == null) {
|
|
374
|
+
throw new ReplicationAssertionError(`No capture instance bound for table ${table.toQualifiedName()} while re-snapshotting`);
|
|
375
|
+
}
|
|
348
376
|
await batch.drop(table.getReplicatedSourceTables());
|
|
349
|
-
//
|
|
350
|
-
await this.processTable(batch,
|
|
377
|
+
// Re-resolve against the bound instance only, so the new record keeps the same pin.
|
|
378
|
+
await this.processTable(batch, {
|
|
379
|
+
state: MSSQLTableReconciliationState.READY,
|
|
380
|
+
source: table.ref,
|
|
381
|
+
captureInstances: [table.captureInstance]
|
|
382
|
+
});
|
|
351
383
|
}
|
|
352
384
|
break;
|
|
353
385
|
default:
|
|
@@ -470,7 +502,6 @@ export class CDCStream {
|
|
|
470
502
|
connectionManager: this.connections,
|
|
471
503
|
eventHandler,
|
|
472
504
|
getReplicatedTables: () => this.tableCache.getAll(),
|
|
473
|
-
sourceTables: this.syncRules.getSourceTables(),
|
|
474
505
|
startLSN,
|
|
475
506
|
logger: this.logger,
|
|
476
507
|
additionalConfig: this.options.additionalConfig,
|
|
@@ -544,82 +575,57 @@ export class CDCStream {
|
|
|
544
575
|
};
|
|
545
576
|
}
|
|
546
577
|
async handleSchemaChange(batch, change) {
|
|
547
|
-
let actionedSchemaChange = true;
|
|
548
578
|
switch (change.type) {
|
|
549
579
|
case SchemaChangeType.TABLE_RENAME:
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
}
|
|
559
|
-
break;
|
|
560
|
-
case SchemaChangeType.TABLE_CREATE:
|
|
561
|
-
await this.handleCreateOrUpdateTable(batch, change.newTable, change.newCaptureInstance);
|
|
562
|
-
break;
|
|
580
|
+
// Continuing could commit past unread changes because the rename has no known LSN.
|
|
581
|
+
throw new SourceTableUnavailableError(`Table ${change.table.toQualifiedName()} has been renamed to [${change.newTable.name}]. ` +
|
|
582
|
+
`Deploy a new sync config that uses the new name to replicate it again. ` +
|
|
583
|
+
`Its already-replicated data is retained until then.`);
|
|
584
|
+
case SchemaChangeType.TABLE_DROP:
|
|
585
|
+
throw new SourceTableUnavailableError(`Table ${change.table.toQualifiedName()} has been dropped from the source. Deploy a new sync config ` +
|
|
586
|
+
`that no longer includes it. Its already-replicated data is retained until the new sync config ` +
|
|
587
|
+
`becomes active.`);
|
|
563
588
|
case SchemaChangeType.TABLE_COLUMN_CHANGES:
|
|
564
|
-
|
|
565
|
-
actionedSchemaChange = false;
|
|
589
|
+
this.warnColumnChanges(change.table, change.captureInstance);
|
|
566
590
|
break;
|
|
567
|
-
case SchemaChangeType.NEW_CAPTURE_INSTANCE:
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
this.
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
591
|
+
case SchemaChangeType.NEW_CAPTURE_INSTANCE: {
|
|
592
|
+
// Warn once per newer instance and keep polling the pinned one.
|
|
593
|
+
const { table, newCaptureInstance } = change;
|
|
594
|
+
if (this.warnedNewerCaptureObjectId.get(table.objectId) !== newCaptureInstance.objectId) {
|
|
595
|
+
this.logger.warn(`A newer CDC capture instance (object id ${newCaptureInstance.objectId}) is available for table ${table.toQualifiedName()}, ` +
|
|
596
|
+
`but the current replication process remains pinned to capture instance object id ${table.pinnedCaptureObjectId}. ` +
|
|
597
|
+
`Deploy a new sync config to adopt the new capture instance, and keep the current instance ` +
|
|
598
|
+
`available until that sync config becomes active.`);
|
|
599
|
+
this.warnedNewerCaptureObjectId.set(table.objectId, newCaptureInstance.objectId);
|
|
600
|
+
}
|
|
576
601
|
break;
|
|
602
|
+
}
|
|
577
603
|
case SchemaChangeType.MISSING_CAPTURE_INSTANCE:
|
|
578
|
-
//
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
604
|
+
// A replacement may have a different schema, so never adopt it in place.
|
|
605
|
+
throw new CaptureInstanceMissingError(`The CDC capture instance for table ${change.table.toQualifiedName()} (pinned to object id ` +
|
|
606
|
+
`${change.table.pinnedCaptureObjectId}) is no longer available. ` +
|
|
607
|
+
`PowerSync cannot continue replicating the table - a dropped capture instance cannot be ` +
|
|
608
|
+
`restored, because re-enabling CDC creates a new one with a different object id. ` +
|
|
609
|
+
(change.replacementInstance
|
|
610
|
+
? `Deploy a new sync config to adopt the replacement.`
|
|
611
|
+
: `Re-enable CDC for this table, then deploy a new sync config.`));
|
|
583
612
|
default:
|
|
584
613
|
throw new ReplicationAssertionError(`Unknown schema change type: ${change.type}`);
|
|
585
614
|
}
|
|
586
|
-
//
|
|
587
|
-
if (actionedSchemaChange) {
|
|
588
|
-
await createCheckpoint(this.connections);
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
async handleCreateOrUpdateTable(batch, table, captureInstance) {
|
|
592
|
-
const replicaIdColumns = await getReplicationIdentityColumns({
|
|
593
|
-
connectionManager: this.connections,
|
|
594
|
-
tableName: table.name,
|
|
595
|
-
schema: table.schema
|
|
596
|
-
});
|
|
597
|
-
await this.processTable(batch, {
|
|
598
|
-
connectionTag: this.connectionTag,
|
|
599
|
-
name: table.name,
|
|
600
|
-
schema: table.schema,
|
|
601
|
-
objectId: table.objectId,
|
|
602
|
-
replicaIdColumns: replicaIdColumns.columns
|
|
603
|
-
}, captureInstance, true);
|
|
615
|
+
// Warning-only changes do not need a checkpoint.
|
|
604
616
|
}
|
|
605
617
|
/**
|
|
606
|
-
*
|
|
607
|
-
*
|
|
608
|
-
* Due to the way CDC works, users are prevented from making column schema changes that affect the replication identities of a table.
|
|
609
|
-
* If changes like that are required, CDC has to be disabled and re-enabled for the table. This would then be handled by the detection of the new
|
|
610
|
-
* capture instance.
|
|
611
|
-
* @param table
|
|
612
|
-
* @param captureInstance
|
|
618
|
+
* Warn about column drift while continuing with the pinned capture schema.
|
|
613
619
|
*/
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
if (table.
|
|
617
|
-
table.captureInstance?.pendingSchemaChanges.length === captureInstance.pendingSchemaChanges.length) {
|
|
620
|
+
warnColumnChanges(table, captureInstance) {
|
|
621
|
+
const changeCount = captureInstance.pendingSchemaChanges.length;
|
|
622
|
+
if (this.warnedSchemaChangeCount.get(table.objectId) === changeCount) {
|
|
618
623
|
return;
|
|
619
624
|
}
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
625
|
+
this.logger.warn(`Schema drift detected for table ${table.toQualifiedName()}. Until a new sync config becomes active, ` +
|
|
626
|
+
`replication continues against the captured schema, so these changes are not replicated. Deploy a new ` +
|
|
627
|
+
`sync config to pick them up.\n Pending schema changes:\n ${captureInstance.pendingSchemaChanges.join(', \n')}`);
|
|
628
|
+
this.warnedSchemaChangeCount.set(table.objectId, changeCount);
|
|
623
629
|
}
|
|
624
630
|
/**
|
|
625
631
|
* Convert CDC row data to SqliteRow format.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CDCStream.js","sourceRoot":"","sources":["../../src/replication/CDCStream.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,uBAAuB,EACvB,MAAM,IAAI,aAAa,EACvB,SAAS,EAET,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,0BAA0B,EAE1B,qBAAqB,EAErB,OAAO,EACR,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,GAAG,MAAM,OAAO,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,EAGrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAmB,SAAS,EAAgB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE5F,OAAO,EAAE,oBAAoB,EAAsB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAuBxG,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,mCAAiB,CAAA;IACjB,+BAAa,CAAA;IACb,2DAAyC,CAAA;AAC3C,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAcD,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,mBAAoB,SAAQ,uBAAuB;IAC9D,YAAY,OAAe,EAAE,KAAU;QACrC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,SAAS;IAWA;IAVH,SAAS,CAAqB;IAC9B,OAAO,CAAiC;IACxC,WAAW,CAAyB;IACpC,WAAW,CAAc;IACzB,MAAM,CAAS;IAEzB,UAAU,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAExC,cAAc,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAErD,YAAoB,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QAC3C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACnG,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACzC,CAAC;IAED,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,IAAI,qBAAqB;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC;IACnD,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAClD,CAAC;IAED,IAAI,YAAY;QACd,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;QAC1C,0BAA0B;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC;QACX,CAAC;QACD;;WAEG;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;IACxC,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,MAAM,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QACtD,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAC3B;YACE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,GAAG,CAAC,IAAI;YACjB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,gBAAgB,EAAE,KAAK;SACxB,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;YACd,KAAK,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;gBACtC,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YACzD,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,KAAiC,EACjC,YAA0B;QAE1B,IAAI,YAAY,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;YACjE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5F,MAAM,aAAa,GAAoB,MAAM,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAElG,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,QAAkB,CAAC,CAAC;YACrF,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC5B,sFAAsF;gBACtF,oFAAoF;gBACpF,uDAAuD;gBACvD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,YAAY,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,IAAI,wFAAwF,CAC7I,CAAC;gBACF,SAAS;YACX,CAAC;YAED,qCAAqC;YAErC,MAAM,gBAAgB,GAAG,MAAM,6BAA6B,CAAC;gBAC3D,iBAAiB,EAAE,IAAI,CAAC,WAAW;gBACnC,SAAS,EAAE,YAAY,CAAC,IAAI;gBAC5B,MAAM,EAAE,YAAY,CAAC,MAAM;aAC5B,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CACnC,KAAK,EACL;gBACE,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,gBAAgB,EAAE,gBAAgB,CAAC,OAAO;aAC3C,EACD,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,EACnC,KAAK,CACN,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,KAAiC,EACjC,KAA6B,EAC7B,eAAuC,EACvC,QAAiB;QAEjB,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC;YACzD,MAAM,IAAI,yBAAyB,CAAC,0BAA0B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC;YACzC,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEnE,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,sCAAsC,aAAa,CAAC,eAAe,EAAE,kEAAkE,CACxI,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEnC,qEAAqE;QACrE,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEtC,eAAe;QACf,qFAAqF;QACrF,qEAAqE;QACrE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC/C,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,gBAAgB,IAAI,SAAS,CAAC,OAAO,CAC5E,CAAC;QACF,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;QAEtF,IAAI,cAAc,EAAE,CAAC;YACnB,+DAA+D;YAC/D,MAAM,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YAEzC,8CAA8C;YAC9C,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;gBAC3C,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,KAAiC,EACjC,aAA+B,EAC/B,WAAgC;QAEhC,kFAAkF;QAClF,2FAA2F;QAC3F,yBAAyB;QACzB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAC/D,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;YAEzE,uBAAuB;YACvB,uFAAuF;YACvF,uEAAuE;YACvE,EAAE;YACF,8CAA8C;YAC9C,sDAAsD;YACtD,4FAA4F;YAC5F,kGAAkG;YAClG,yFAAyF;YACzF,4BAA4B;YAC5B,wFAAwF;YACxF,iDAAiD;YACjD,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7D,kGAAkG;YAClG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,kBAAkB,CAAC,GAAG,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1G,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,eAAe,aAAa,CAAC,eAAe,EAAE,kCAAkC,eAAe,CAAC,QAAQ,EAAE,EAAE,CAC7G,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,KAAiC,EACjC,WAA4B,EAC5B,aAA+B,EAC/B,WAAgC;QAEhC,IAAI,mBAAmB,GAAG,WAAW,CAAC,cAAc,EAAE,mBAAmB,CAAC;QAC1E,IAAI,eAAe,GAAG,WAAW,CAAC,cAAc,EAAE,eAAe,IAAI,CAAC,CAAC;QACvE,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,KAAyB,CAAC;QAC9B,iCAAiC;QACjC,+DAA+D;QAC/D,6DAA6D;QAC7D,IAAI,oBAAoB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/C,+DAA+D;YAC/D,MAAM,UAAU,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACnD,KAAK,GAAG,IAAI,oBAAoB,CAC9B,WAAW,EACX,aAAa,CAAC,eAAe,EAAE,EAC/B,WAAW,EACX,IAAI,CAAC,iBAAiB,EACtB,WAAW,CAAC,cAAc,EAAE,OAAO,IAAI,IAAI,CAC5C,CAAC;YACF,IAAI,WAAW,CAAC,cAAc,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC;gBAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,gBAAgB,aAAa,CAAC,eAAe,EAAE,IAAI,WAAW,CAAC,sBAAsB,EAAE,oBAAoB,UAAU,CAAC,IAAI,MAAO,KAA8B,CAAC,OAAO,EAAE,CAC1K,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,gBAAgB,aAAa,CAAC,eAAe,EAAE,IAAI,WAAW,CAAC,sBAAsB,EAAE,cAAc,CACtG,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,yCAAyC;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,gBAAgB,aAAa,CAAC,eAAe,EAAE,IAAI,WAAW,CAAC,sBAAsB,EAAE,kBAAkB,CAC1G,CAAC;YACF,KAAK,GAAG,IAAI,mBAAmB,CAAC,WAAW,EAAE,aAAa,CAAC,eAAe,EAAE,CAAC,CAAC;YAC9E,eAAe,GAAG,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QAEzB,IAAI,gBAAgB,GAAG,IAAI,CAAC;QAC5B,OAAO,gBAAgB,EAAE,CAAC;YACxB,uBAAuB;YACvB,+DAA+D;YAC/D,qDAAqD;YACrD,qDAAqD;YACrD,IAAI,oBAAoB,GAAG,CAAC,CAAC;YAC7B,IAAI,OAAO,GAA+B,IAAI,CAAC;YAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;gBAClC,IAAI,OAAO,IAAI,IAAI,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;oBACjD,OAAO,GAAG,MAAM,CAAC;oBACjB,SAAS;gBACX,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,MAAM,IAAI,yBAAyB,CAAC,yBAAyB,CAAC,CAAC;oBACjE,CAAC;oBACD,MAAM,QAAQ,GAAmB,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBACnE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAQ,QAAQ,CAAC,CAAC;oBAC5D,0DAA0D;oBAC1D,MAAM,KAAK,CAAC,IAAI,CAAC;wBACf,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;wBACpC,WAAW;wBACX,MAAM,EAAE,SAAS;wBACjB,eAAe,EAAE,SAAS;wBAC1B,KAAK,EAAE,GAAG;wBACV,cAAc,EAAE,0BAA0B,CAAC,GAAG,EAAE,WAAW,CAAC,gBAAgB,CAAC;qBAC9E,CAAC,CAAC;oBAEH,eAAe,EAAE,CAAC;oBAClB,oBAAoB,EAAE,CAAC;oBACvB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACpE,CAAC;gBAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;YAED,2CAA2C;YAC3C,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YAEpB,IAAI,OAA+B,CAAC;YACpC,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;gBAC1C,OAAO,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAC;YACzC,CAAC;YACD,IAAI,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;gBACvD,kFAAkF;gBAClF,+EAA+E;gBAC/E,wFAAwF;gBACxF,gBAAgB;gBAChB,mBAAmB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;gBAClF,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YACpC,CAAC;YACD,MAAM,kBAAkB,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,WAAW,EAAE;gBACtE,OAAO,EAAE,OAAO;gBAChB,eAAe,EAAE,eAAe;gBAChC,mBAAmB,EAAE,mBAAmB;aACzC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;YACtD,WAAW,GAAG,kBAAkB,CAAC;YAEjC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC7B,+BAA+B;gBAC/B,MAAM,IAAI,uBAAuB,CAAC,iCAAiC,CAAC,CAAC;YACvE,CAAC;YAED,gGAAgG;YAChG,IAAI,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAClD,gBAAgB,GAAG,KAAK,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,aAAa,CAAC,eAAe,EAAE,IAAI,WAAW,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;YAC9G,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,oBAAoB,CAAC,KAAuB,EAAE,WAA6B;QAC/E,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;QAC7F,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,KAAK,CAC3F;;;yBAGmB,CACpB,CAAC;QACF,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,uBAAuB,CAAC,cAAoC;QAChE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,0BAA0B,EAAE,GAAG,cAAc,CAAC;QAEzE,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAC3B;YACE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,GAAG,CAAC,IAAI;YACjB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,gBAAgB,EAAE,KAAK;YACvB,gBAAgB,EAAE,IAAI;SACvB,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;YACd,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,cAAc,CAAC,OAAO;oBACzB,sFAAsF;oBACtF,WAAW,GAAG,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC1E,MAAM,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;oBACtC,MAAM,SAAS,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACpE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,WAAW,mBAAmB,SAAS,GAAG,CAAC,CAAC;oBACpF,MAAM;gBACR,KAAK,cAAc,CAAC,MAAM;oBACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,WAAW,GAAG,CAAC,CAAC;oBACzD,MAAM;gBACR,KAAK,cAAc,CAAC,kBAAkB;oBACpC,KAAK,MAAM,KAAK,IAAI,0BAA2B,EAAE,CAAC;wBAChD,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC;wBACpD,kCAAkC;wBAClC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;oBAC1E,CAAC;oBACD,MAAM;gBACR;oBACE,MAAM,IAAI,yBAAyB,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC;YAClF,CAAC;YAED,MAAM,gBAAgB,GAA4E,EAAE,CAAC;YACrG,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC7C,MAAM,sBAAsB,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBACzG,IAAI,sBAAsB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,eAAe,EAAE,4BAA4B,CAAC,CAAC;oBACzF,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;oBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAAC;oBACvF,SAAS;gBACX,CAAC;gBAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBACrD,KAAK,MAAM,WAAW,IAAI,sBAAsB,EAAE,CAAC;oBACjD,MAAM,kBAAkB,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,WAAW,EAAE;wBACtE,mBAAmB,EAAE,KAAK;qBAC3B,CAAC,CAAC;oBACH,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;oBACtD,gBAAgB,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;YAED,KAAK,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,gBAAgB,EAAE,CAAC;gBAC9D,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;gBAChE,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;YAED,6EAA6E;YAC7E,0EAA0E;YAC1E,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,KAAK,CAAC,gBAAgB,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzD,MAAM,KAAK,CAAC,MAAM,CAAC,WAAY,CAAC,CAAC;YAEjC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,8CAA8C,WAAW,OAAO,eAAe,oBAAoB,CACpG,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iDAAiD,WAAW,GAAG,CAAC,CAAC;YACpF,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,qBAAqB,CAAC,6BAA6B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACxD,IAAI,cAAc,CAAC,MAAM,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC;YAClD,MAAM,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,mBAAmB;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAE9C,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,0BAA0B,GAA0B,IAAI,GAAG,EAAE,CAAC;YACpE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU;iBAC9B,MAAM,EAAE;iBACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC9F,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,0BAA0B,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC,CAC9H,CAAC;gBACF,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,CAAC;YAED,uFAAuF;YACvF,mDAAmD;YAEnD,MAAM,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAU,CAAC,CAAC;YACxD,kDAAkD;YAClD,MAAM,+BAA+B,GAAG,MAAM,wBAAwB,CAAC;gBACrE,aAAa,EAAE,aAAa;gBAC5B,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBAChC,iBAAiB,EAAE,IAAI,CAAC,WAAW;aACpC,CAAC,CAAC;YACH,IAAI,+BAA+B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,4GAA4G,+BAA+B,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAClM,CAAC;gBACF,+BAA+B,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5F,CAAC;YACD,IAAI,0BAA0B,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACxC,OAAO;oBACL,MAAM,EAAE,cAAc,CAAC,kBAAkB;oBACzC,WAAW,EAAE,MAAM,CAAC,SAAS;oBAC7B,0BAA0B,EAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC;iBACnE,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,MAAM,EAAE,cAAc,CAAC,IAAI;oBAC3B,WAAW,EAAE,IAAI;iBAClB,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO;gBACjF,WAAW,EAAE,MAAM,CAAC,SAAS;aAC9B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAC3B;YACE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,GAAG,CAAC,IAAI;YACjB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,gBAAgB,EAAE,KAAK;YACvB,gBAAgB,EAAE,KAAK;SACxB,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;YACd,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;gBAChC,MAAM,IAAI,yBAAyB,CAAC,0CAA0C,CAAC,CAAC;YAClF,CAAC;YACD,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAEpD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;gBAC3B,iBAAiB,EAAE,IAAI,CAAC,WAAW;gBACnC,YAAY;gBACZ,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACnD,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE;gBAC9C,QAAQ;gBACR,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB;gBAC/C,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,qBAAqB;aAC1D,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAC/B,OAAO,EACP,KAAK,IAAI,EAAE;gBACT,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACtB,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;YAEF,MAAM,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;YACxD,MAAM,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACvC,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,KAAiC;QAC1D,OAAO;YACL,QAAQ,EAAE,KAAK,EAAE,GAAQ,EAAE,KAAuB,EAAE,OAA4B,EAAE,EAAE;gBAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAChD,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,yBAAyB,EAAE,EAAE,CAAC;oBAC5D,MAAM,KAAK,CAAC,IAAI,CAAC;wBACf,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;wBACpC,WAAW;wBACX,MAAM,EAAE,SAAS;wBACjB,eAAe,EAAE,SAAS;wBAC1B,KAAK,EAAE,QAAQ;wBACf,cAAc,EAAE,0BAA0B,CAAC,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC;qBACnF,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpE,CAAC;YACD,QAAQ,EAAE,KAAK,EAAE,QAAa,EAAE,SAAc,EAAE,KAAuB,EAAE,OAA4B,EAAE,EAAE;gBACvG,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACrD,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,yBAAyB,EAAE,EAAE,CAAC;oBAC5D,MAAM,KAAK,CAAC,IAAI,CAAC;wBACf,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;wBACpC,WAAW;wBACX,MAAM,EAAE,SAAS;wBACjB,eAAe,EAAE,0BAA0B,CAAC,SAAS,EAAE,WAAW,CAAC,gBAAgB,CAAC;wBACpF,KAAK,EAAE,QAAQ;wBACf,cAAc,EAAE,0BAA0B,CAAC,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC;qBACnF,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpE,CAAC;YACD,QAAQ,EAAE,KAAK,EAAE,GAAQ,EAAE,KAAuB,EAAE,OAA4B,EAAE,EAAE;gBAClF,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACjD,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,yBAAyB,EAAE,EAAE,CAAC;oBAC5D,MAAM,KAAK,CAAC,IAAI,CAAC;wBACf,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;wBACpC,WAAW;wBACX,MAAM,EAAE,SAAS;wBACjB,eAAe,EAAE,0BAA0B,CAAC,SAAS,EAAE,WAAW,CAAC,gBAAgB,CAAC;wBACpF,KAAK,EAAE,SAAS;wBAChB,cAAc,EAAE,SAAS;qBAC1B,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpE,CAAC;YACD,QAAQ,EAAE,KAAK,EAAE,GAAW,EAAE,gBAAwB,EAAE,EAAE;gBACxD,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;oBACpD,uBAAuB,EAAE,IAAI,CAAC,cAAc,CAAC,uBAAuB;iBACrE,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBACzF,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;gBACtC,CAAC;YACH,CAAC;YACD,cAAc,EAAE,KAAK,EAAE,YAA0B,EAAE,EAAE;gBACnD,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YACrD,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAiC,EAAE,MAAoB;QAC9E,IAAI,oBAAoB,GAAG,IAAI,CAAC;QAEhC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,gBAAgB,CAAC,YAAY;gBAChC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAM,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,SAAS,SAAS,CAAC,eAAe,EAAE,qBAAqB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CACnH,CAAC;gBAEF,mCAAmC;gBACnC,MAAM,UAAU,GAAG,SAAS,CAAC,yBAAyB,EAAE,CAAC;gBACzD,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC7B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAE3C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACpB,MAAM,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,kBAAmB,CAAC,CAAC;gBAC3F,CAAC;gBACD,MAAM;YACR,KAAK,gBAAgB,CAAC,YAAY;gBAChC,MAAM,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAS,EAAE,MAAM,CAAC,kBAAmB,CAAC,CAAC;gBAC1F,MAAM;YACR,KAAK,gBAAgB,CAAC,oBAAoB;gBACxC,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAM,EAAE,MAAM,CAAC,kBAAmB,CAAC,CAAC;gBAC1E,oBAAoB,GAAG,KAAK,CAAC;gBAC7B,MAAM;YACR,KAAK,gBAAgB,CAAC,oBAAoB;gBACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,+CAA+C,MAAM,CAAC,KAAM,CAAC,eAAe,EAAE,4BAA4B,CAC3G,CAAC;gBACF,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAM,CAAC,yBAAyB,EAAE,CAAC,CAAC;gBAC5D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAM,CAAC,QAAQ,CAAC,CAAC;gBAE/C,MAAM,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAM,CAAC,GAAG,EAAE,MAAM,CAAC,kBAAmB,CAAC,CAAC;gBAC3F,MAAM;YACR,KAAK,gBAAgB,CAAC,UAAU;gBAC9B,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAM,CAAC,yBAAyB,EAAE,CAAC,CAAC;gBAC5D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAM,CAAC,QAAQ,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,gBAAgB,CAAC,wBAAwB;gBAC5C,2DAA2D;gBAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,SAAS,MAAM,CAAC,KAAM,CAAC,eAAe,EAAE,oEAAoE,CAC7G,CAAC;gBACF,MAAM,CAAC,KAAM,CAAC,oBAAoB,EAAE,CAAC;gBACrC,oBAAoB,GAAG,KAAK,CAAC;gBAC7B,MAAM;YACR;gBACE,MAAM,IAAI,yBAAyB,CAAC,+BAA+B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,kDAAkD;QAClD,IAAI,oBAAoB,EAAE,CAAC;YACzB,MAAM,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,yBAAyB,CACrC,KAAiC,EACjC,KAA2B,EAC3B,eAAgC;QAEhC,MAAM,gBAAgB,GAAG,MAAM,6BAA6B,CAAC;YAC3D,iBAAiB,EAAE,IAAI,CAAC,WAAW;YACnC,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,YAAY,CACrB,KAAK,EACL;YACE,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,gBAAgB,EAAE,gBAAgB,CAAC,OAAO;SAC3C,EACD,eAAe,EACf,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,mBAAmB,CAAC,KAAuB,EAAE,eAAgC;QACzF,iDAAiD;QACjD,IACE,KAAK,CAAC,eAAe,EAAE,QAAQ,KAAK,eAAe,CAAC,QAAQ;YAC5D,KAAK,CAAC,eAAe,EAAE,oBAAoB,CAAC,MAAM,KAAK,eAAe,CAAC,oBAAoB,CAAC,MAAM,EAClG,CAAC;YACD,OAAO;QACT,CAAC;QAED,uEAAuE;QACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,mCAAmC,KAAK,CAAC,eAAe,EAAE,kGAAkG,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAChN,CAAC;QACF,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACK,WAAW,CAAC,GAAQ,EAAE,OAA4B;QACxD,MAAM,QAAQ,GAAmB,cAAc,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAElE,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAQ,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IAC5C,CAAC;IAEO,KAAK;QACX,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,SAAS;QACpB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChE,MAAM,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"CDCStream.js","sourceRoot":"","sources":["../../src/replication/CDCStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ServiceError } from '@powersync/lib-services-framework';
|
|
2
|
+
import { JsonValue, SourceTableCandidate, storage } from '@powersync/service-core';
|
|
3
|
+
import * as t from 'ts-codec';
|
|
4
|
+
import type { MSSQLTableReconciliationContext } from './MSSQLTableReconciliationContext.js';
|
|
5
|
+
/**
|
|
6
|
+
* The pinned capture instance was dropped and cannot be replaced in this stream.
|
|
7
|
+
*/
|
|
8
|
+
export declare class CaptureInstanceMissingError extends ServiceError {
|
|
9
|
+
constructor(message: string);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A configured table does not exist or does not have CDC enabled yet.
|
|
13
|
+
*/
|
|
14
|
+
export declare class SourceTableNotReadyError extends ServiceError {
|
|
15
|
+
constructor(message: string);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* A replicated table is unavailable or no longer matches its persisted source binding.
|
|
19
|
+
*/
|
|
20
|
+
export declare class SourceTableUnavailableError extends ServiceError {
|
|
21
|
+
constructor(message: string);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Persisted capture-table identity. Names are not enough because SQL Server can reuse them.
|
|
25
|
+
*/
|
|
26
|
+
export declare const MSSQLSourceMetadata: t.ObjectCodec<{
|
|
27
|
+
captureTableObjectId: t.IdentityCodec<t.CodecType.Number>;
|
|
28
|
+
}>;
|
|
29
|
+
export type MSSQLSourceMetadata = t.Decoded<typeof MSSQLSourceMetadata>;
|
|
30
|
+
/**
|
|
31
|
+
* Parse persisted capture metadata, returning null for legacy records.
|
|
32
|
+
*/
|
|
33
|
+
export declare function readCaptureMetadata(value: JsonValue): MSSQLSourceMetadata | null;
|
|
34
|
+
/**
|
|
35
|
+
* Reconcile a discovered source-table state against persisted bindings. Ready tables reconcile
|
|
36
|
+
* against capture instances ordered newest first. New and legacy bindings use the newest instance;
|
|
37
|
+
* pinned bindings keep their instance or fail if it is gone.
|
|
38
|
+
*/
|
|
39
|
+
export declare function createCaptureReconciler(context: MSSQLTableReconciliationContext): ({ source, candidates }: storage.SourceTableCandidateReconcilerInput) => {
|
|
40
|
+
compatibleTables: SourceTableCandidate[];
|
|
41
|
+
incompatibleTables: SourceTableCandidate[];
|
|
42
|
+
newTableValues: {
|
|
43
|
+
sourceMetadata: {
|
|
44
|
+
captureTableObjectId: number;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
};
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { ErrorCode, ReplicationAssertionError, ServiceError } from '@powersync/lib-services-framework';
|
|
2
|
+
import { storage } from '@powersync/service-core';
|
|
3
|
+
import * as t from 'ts-codec';
|
|
4
|
+
import { toQualifiedTableName } from '../utils/mssql.js';
|
|
5
|
+
import { MSSQLTableReconciliationState } from './MSSQLTableReconciliationContext.js';
|
|
6
|
+
/**
|
|
7
|
+
* The pinned capture instance was dropped and cannot be replaced in this stream.
|
|
8
|
+
*/
|
|
9
|
+
export class CaptureInstanceMissingError extends ServiceError {
|
|
10
|
+
constructor(message) {
|
|
11
|
+
super(ErrorCode.PSYNC_S1601, message);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A configured table does not exist or does not have CDC enabled yet.
|
|
16
|
+
*/
|
|
17
|
+
export class SourceTableNotReadyError extends ServiceError {
|
|
18
|
+
constructor(message) {
|
|
19
|
+
super(ErrorCode.PSYNC_S1602, message);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* A replicated table is unavailable or no longer matches its persisted source binding.
|
|
24
|
+
*/
|
|
25
|
+
export class SourceTableUnavailableError extends ServiceError {
|
|
26
|
+
constructor(message) {
|
|
27
|
+
super(ErrorCode.PSYNC_S1603, message);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Persisted capture-table identity. Names are not enough because SQL Server can reuse them.
|
|
32
|
+
*/
|
|
33
|
+
export const MSSQLSourceMetadata = t.object({
|
|
34
|
+
captureTableObjectId: t.number
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* Parse persisted capture metadata, returning null for legacy records.
|
|
38
|
+
*/
|
|
39
|
+
export function readCaptureMetadata(value) {
|
|
40
|
+
if (value == null) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
return MSSQLSourceMetadata.decode(value);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Reconcile a discovered source-table state against persisted bindings. Ready tables reconcile
|
|
47
|
+
* against capture instances ordered newest first. New and legacy bindings use the newest instance;
|
|
48
|
+
* pinned bindings keep their instance or fail if it is gone.
|
|
49
|
+
*/
|
|
50
|
+
export function createCaptureReconciler(context) {
|
|
51
|
+
return (({ source, candidates }) => {
|
|
52
|
+
if (context.state === MSSQLTableReconciliationState.TABLE_MISSING) {
|
|
53
|
+
if (candidates.length > 0) {
|
|
54
|
+
// The table is missing, but we already recorded it. Display the corresponding error.
|
|
55
|
+
throw sourceTableUnavailableError(source);
|
|
56
|
+
}
|
|
57
|
+
throw new SourceTableNotReadyError(`Source table ${toQualifiedTableName(source.schema, source.name)} from the sync configuration does not ` +
|
|
58
|
+
`exist. Create the table and enable CDC for it.`);
|
|
59
|
+
}
|
|
60
|
+
// Apply capture pinning after the shared identity check.
|
|
61
|
+
const compatible = [];
|
|
62
|
+
const incompatibleTables = [];
|
|
63
|
+
for (const candidate of candidates) {
|
|
64
|
+
if (storage.sourceIdentityCompatible(source, candidate)) {
|
|
65
|
+
compatible.push(candidate);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
incompatibleTables.push(candidate);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (compatible.length === 0) {
|
|
72
|
+
if (candidates.length > 0) {
|
|
73
|
+
// An overlapping persisted binding with a different source identity is not a new table.
|
|
74
|
+
// This can happen when a table is dropped and recreated while replication is stopped.
|
|
75
|
+
// Reusing the old snapshot or replacing it during a normal job restart would silently
|
|
76
|
+
// adopt a different physical table without a sync config deployment boundary.
|
|
77
|
+
throw sourceTableUnavailableError(source);
|
|
78
|
+
}
|
|
79
|
+
if (context.state === MSSQLTableReconciliationState.CDC_DISABLED) {
|
|
80
|
+
throw new SourceTableNotReadyError(`CDC is not enabled for source table ${toQualifiedTableName(source.schema, source.name)}, which ` +
|
|
81
|
+
`matches the sync configuration. Enable CDC for this table to start replicating it.`);
|
|
82
|
+
}
|
|
83
|
+
// Pin a new binding to the newest instance.
|
|
84
|
+
const newest = context.captureInstances[0];
|
|
85
|
+
return {
|
|
86
|
+
compatibleTables: [],
|
|
87
|
+
incompatibleTables,
|
|
88
|
+
newTableValues: { sourceMetadata: captureMetadata(newest.objectId) }
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
// At least one compatible candidate anchors this process to the discovered source identity.
|
|
92
|
+
// Any remaining incompatible candidates are stale overlapping records, so storage may remove
|
|
93
|
+
// them without adopting a replacement table or changing the binding this process uses.
|
|
94
|
+
if (context.state === MSSQLTableReconciliationState.CDC_DISABLED) {
|
|
95
|
+
throw new CaptureInstanceMissingError(`CDC is no longer enabled for source table ${toQualifiedTableName(source.schema, source.name)}. ` +
|
|
96
|
+
`Re-enable CDC, then redeploy the sync config to adopt the replacement capture instance. Its ` +
|
|
97
|
+
`already-replicated data is retained until the redeployed sync config becomes active.`);
|
|
98
|
+
}
|
|
99
|
+
const availableInstances = context.captureInstances;
|
|
100
|
+
const pinnedObjectIds = new Set();
|
|
101
|
+
let metadataFreeCount = 0;
|
|
102
|
+
for (const candidate of compatible) {
|
|
103
|
+
const metadata = readCaptureMetadata(candidate.sourceMetadata);
|
|
104
|
+
if (metadata == null) {
|
|
105
|
+
metadataFreeCount += 1;
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
pinnedObjectIds.add(metadata.captureTableObjectId);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Never guess which capture schema existing snapshots belong to.
|
|
112
|
+
if (pinnedObjectIds.size > 0 && metadataFreeCount > 0) {
|
|
113
|
+
throw new ReplicationAssertionError(`Source table ${toQualifiedTableName(source.schema, source.name)} has a mixture of legacy (metadata-free) and ` +
|
|
114
|
+
`capture-instance-pinned records. This is invalid persisted state.`);
|
|
115
|
+
}
|
|
116
|
+
// All records for a physical table must use the same capture instance.
|
|
117
|
+
if (pinnedObjectIds.size > 1) {
|
|
118
|
+
throw new ReplicationAssertionError(`Source table ${toQualifiedTableName(source.schema, source.name)} has multiple persisted capture identities ` +
|
|
119
|
+
`(${[...pinnedObjectIds].join(', ')}). This is invalid persisted state.`);
|
|
120
|
+
}
|
|
121
|
+
if (pinnedObjectIds.size === 0) {
|
|
122
|
+
// Backfill legacy records with the instance the old code would have selected.
|
|
123
|
+
const newest = availableInstances[0];
|
|
124
|
+
const sourceMetadata = captureMetadata(newest.objectId);
|
|
125
|
+
return {
|
|
126
|
+
compatibleTables: compatible.map((candidate) => candidate.withSourceMetadata(sourceMetadata)),
|
|
127
|
+
incompatibleTables,
|
|
128
|
+
newTableValues: { sourceMetadata }
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
const [captureTableObjectId] = [...pinnedObjectIds];
|
|
132
|
+
const available = availableInstances.some((instance) => instance.objectId === captureTableObjectId);
|
|
133
|
+
if (!available) {
|
|
134
|
+
// A replacement may capture a different schema, so do not adopt it in place.
|
|
135
|
+
throw new CaptureInstanceMissingError(`The CDC capture instance (object id ${captureTableObjectId}) for source table ` +
|
|
136
|
+
`${toQualifiedTableName(source.schema, source.name)} is no longer available. Deploy a new sync config to ` +
|
|
137
|
+
`replicate this table against a new capture instance.`);
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
compatibleTables: compatible,
|
|
141
|
+
incompatibleTables,
|
|
142
|
+
newTableValues: { sourceMetadata: captureMetadata(captureTableObjectId) }
|
|
143
|
+
};
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
function captureMetadata(captureTableObjectId) {
|
|
147
|
+
return { captureTableObjectId };
|
|
148
|
+
}
|
|
149
|
+
function sourceTableUnavailableError(source) {
|
|
150
|
+
return new SourceTableUnavailableError(`Table ${toQualifiedTableName(source.schema, source.name)} no longer matches the source table binding ` +
|
|
151
|
+
`selected by this replication process. It may have been dropped and recreated, renamed, or had its ` +
|
|
152
|
+
`replication identity changed. Redeploy the sync config to adopt the replacement. Its already-replicated ` +
|
|
153
|
+
`data is retained until the redeployed sync config becomes active.`);
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=CaptureReconciler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CaptureReconciler.js","sourceRoot":"","sources":["../../src/replication/CaptureReconciler.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ export declare const DEFAULT_SCHEMA = "dbo";
|
|
|
6
6
|
export interface MSSQLConnectionManagerListener {
|
|
7
7
|
onEnded(): void;
|
|
8
8
|
}
|
|
9
|
+
export declare function createConnectionPoolConfig(options: NormalizedMSSQLConnectionConfig, poolOptions: sql.PoolOpts<sql.Connection>): sql.config;
|
|
9
10
|
export declare class MSSQLConnectionManager extends BaseObserver<MSSQLConnectionManagerListener> {
|
|
10
11
|
options: NormalizedMSSQLConnectionConfig;
|
|
11
12
|
private readonly pool;
|