@nymphjs/driver-postgresql 1.0.0-beta.55 → 1.0.0-beta.56

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 CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.0.0-beta.56](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.55...v1.0.0-beta.56) (2024-06-11)
7
+
8
+ ### Bug Fixes
9
+
10
+ - import entities without transaction ([db56609](https://github.com/sciactive/nymphjs/commit/db56609efaadc16d5d1bbc8e9b50084aa8a076b9))
11
+
12
+ ### Features
13
+
14
+ - make transaction optional during import and off by default ([08d79f8](https://github.com/sciactive/nymphjs/commit/08d79f8f803c846ac79c0c489fc754437dae082b))
15
+
6
16
  # [1.0.0-beta.55](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.54...v1.0.0-beta.55) (2024-05-26)
7
17
 
8
18
  **Note:** Version bump only for package @nymphjs/driver-postgresql
@@ -9,6 +9,9 @@ type PostgreSQLDriverTransaction = {
9
9
  connection: PostgreSQLDriverConnection | null;
10
10
  count: number;
11
11
  };
12
+ /**
13
+ * The PostgreSQL Nymph database driver.
14
+ */
12
15
  export default class PostgreSQLDriver extends NymphDriver {
13
16
  config: PostgreSQLDriverConfig;
14
17
  private postgresqlConfig;
@@ -19,12 +22,38 @@ export default class PostgreSQLDriver extends NymphDriver {
19
22
  static escape(input: string): string;
20
23
  static escapeValue(input: string): string;
21
24
  constructor(config: Partial<PostgreSQLDriverConfig>, link?: Pool, transaction?: PostgreSQLDriverTransaction);
25
+ /**
26
+ * This is used internally by Nymph. Don't call it yourself.
27
+ *
28
+ * @returns A clone of this instance.
29
+ */
22
30
  clone(): PostgreSQLDriver;
23
31
  private getConnection;
32
+ /**
33
+ * Connect to the PostgreSQL database.
34
+ *
35
+ * @returns Whether this instance is connected to a PostgreSQL database.
36
+ */
24
37
  connect(): Promise<true>;
38
+ /**
39
+ * Disconnect from the PostgreSQL database.
40
+ *
41
+ * @returns Whether this instance is connected to a PostgreSQL database.
42
+ */
25
43
  disconnect(): Promise<false>;
26
44
  inTransaction(): Promise<boolean>;
45
+ /**
46
+ * Check connection status.
47
+ *
48
+ * @returns Whether this instance is connected to a PostgreSQL database.
49
+ */
27
50
  isConnected(): boolean;
51
+ /**
52
+ * Create entity tables in the database.
53
+ *
54
+ * @param etype The entity type to create a table for. If this is blank, the default tables are created.
55
+ * @returns True on success, false on failure.
56
+ */
28
57
  private createTables;
29
58
  private translateQuery;
30
59
  private query;
@@ -35,6 +64,16 @@ export default class PostgreSQLDriver extends NymphDriver {
35
64
  deleteEntityByID(guid: string, className?: EntityConstructor | string | null): Promise<boolean>;
36
65
  deleteUID(name: string): Promise<boolean>;
37
66
  protected exportEntities(writeLine: (line: string) => void): Promise<void>;
67
+ /**
68
+ * Generate the PostgreSQL query.
69
+ * @param options The options array.
70
+ * @param formattedSelectors The formatted selector array.
71
+ * @param etype
72
+ * @param count Used to track internal params.
73
+ * @param params Used to store internal params.
74
+ * @param subquery Whether only a subquery should be returned.
75
+ * @returns The SQL query.
76
+ */
38
77
  private makeEntityQuery;
39
78
  protected performQuery(options: Options, formattedSelectors: FormattedSelector[], etype: string): {
40
79
  result: any;
@@ -47,7 +86,7 @@ export default class PostgreSQLDriver extends NymphDriver {
47
86
  }, ...selectors: Selector[]): Promise<string[]>;
48
87
  getEntities<T extends EntityConstructor = EntityConstructor>(options?: Options<T>, ...selectors: Selector[]): Promise<ReturnType<T['factorySync']>[]>;
49
88
  getUID(name: string): Promise<number | null>;
50
- import(filename: string): Promise<boolean>;
89
+ import(filename: string, transaction?: boolean): Promise<boolean>;
51
90
  newUID(name: string): Promise<number>;
52
91
  renameUID(oldName: string, newName: string): Promise<boolean>;
53
92
  rollback(name: string): Promise<boolean>;
@@ -8,6 +8,9 @@ const pg_format_1 = __importDefault(require("pg-format"));
8
8
  const nymph_1 = require("@nymphjs/nymph");
9
9
  const guid_1 = require("@nymphjs/guid");
10
10
  const conf_1 = require("./conf");
11
+ /**
12
+ * The PostgreSQL Nymph database driver.
13
+ */
11
14
  class PostgreSQLDriver extends nymph_1.NymphDriver {
12
15
  static escape(input) {
13
16
  return pg_format_1.default.ident(input);
@@ -40,6 +43,11 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
40
43
  this.connect();
41
44
  }
42
45
  }
46
+ /**
47
+ * This is used internally by Nymph. Don't call it yourself.
48
+ *
49
+ * @returns A clone of this instance.
50
+ */
43
51
  clone() {
44
52
  return new PostgreSQLDriver(this.config, this.link, this.transaction ?? undefined);
45
53
  }
@@ -53,7 +61,13 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
53
61
  ? resolve({ client, done })
54
62
  : reject('No client returned from connect.')));
55
63
  }
64
+ /**
65
+ * Connect to the PostgreSQL database.
66
+ *
67
+ * @returns Whether this instance is connected to a PostgreSQL database.
68
+ */
56
69
  async connect() {
70
+ // If we think we're connected, try pinging the server.
57
71
  try {
58
72
  if (this.connected) {
59
73
  const connection = await new Promise((resolve, reject) => this.link.connect((err, client, done) => err
@@ -73,6 +87,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
73
87
  catch (e) {
74
88
  this.connected = false;
75
89
  }
90
+ // Connecting, selecting database
76
91
  if (!this.connected) {
77
92
  try {
78
93
  this.link = new pg_1.Pool(this.postgresqlConfig);
@@ -92,6 +107,11 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
92
107
  }
93
108
  return this.connected;
94
109
  }
110
+ /**
111
+ * Disconnect from the PostgreSQL database.
112
+ *
113
+ * @returns Whether this instance is connected to a PostgreSQL database.
114
+ */
95
115
  async disconnect() {
96
116
  if (this.connected) {
97
117
  await new Promise((resolve) => this.link.end(() => resolve(0)));
@@ -102,11 +122,23 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
102
122
  async inTransaction() {
103
123
  return !!this.transaction;
104
124
  }
125
+ /**
126
+ * Check connection status.
127
+ *
128
+ * @returns Whether this instance is connected to a PostgreSQL database.
129
+ */
105
130
  isConnected() {
106
131
  return this.connected;
107
132
  }
133
+ /**
134
+ * Create entity tables in the database.
135
+ *
136
+ * @param etype The entity type to create a table for. If this is blank, the default tables are created.
137
+ * @returns True on success, false on failure.
138
+ */
108
139
  async createTables(etype = null) {
109
140
  if (etype != null) {
141
+ // Create the entity table.
110
142
  await this.queryRun(`CREATE TABLE IF NOT EXISTS ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} (
111
143
  "guid" BYTEA NOT NULL,
112
144
  "tags" TEXT[],
@@ -121,6 +153,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
121
153
  await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_mdate`)} ON ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} USING btree ("mdate");`);
122
154
  await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_tags`)};`);
123
155
  await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}_id_tags`)} ON ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} USING gin ("tags");`);
156
+ // Create the data table.
124
157
  await this.queryRun(`CREATE TABLE IF NOT EXISTS ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} (
125
158
  "guid" BYTEA NOT NULL,
126
159
  "name" TEXT NOT NULL,
@@ -138,6 +171,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
138
171
  await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_guid_name__user`)} ON ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} USING btree ("guid") WHERE "name" = 'user'::text;`);
139
172
  await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_guid_name__group`)};`);
140
173
  await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}_id_guid_name__group`)} ON ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} USING btree ("guid") WHERE "name" = 'group'::text;`);
174
+ // Create the data comparisons table.
141
175
  await this.queryRun(`CREATE TABLE IF NOT EXISTS ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} (
142
176
  "guid" BYTEA NOT NULL,
143
177
  "name" TEXT NOT NULL,
@@ -157,6 +191,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
157
191
  await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_guid_name_truthy`)} ON ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} USING btree ("guid", "name") WHERE "truthy" = TRUE;`);
158
192
  await this.queryRun(`DROP INDEX IF EXISTS ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_guid_name_falsy`)};`);
159
193
  await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}_id_guid_name_falsy`)} ON ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} USING btree ("guid", "name") WHERE "truthy" <> TRUE;`);
194
+ // Create the references table.
160
195
  await this.queryRun(`CREATE TABLE IF NOT EXISTS ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} (
161
196
  "guid" BYTEA NOT NULL,
162
197
  "name" TEXT NOT NULL,
@@ -174,6 +209,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
174
209
  await this.queryRun(`CREATE INDEX ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}_id_reference`)} ON ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} USING btree ("reference");`);
175
210
  }
176
211
  else {
212
+ // Create the UID table.
177
213
  await this.queryRun(`CREATE TABLE IF NOT EXISTS ${PostgreSQLDriver.escape(`${this.prefix}uids`)} (
178
214
  "name" TEXT NOT NULL,
179
215
  "cur_uid" BIGINT NOT NULL,
@@ -203,6 +239,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
203
239
  catch (e) {
204
240
  const errorCode = e?.code;
205
241
  if (errorCode === '42P01' && (await this.createTables())) {
242
+ // If the tables don't exist yet, create them.
206
243
  for (let etype of etypes) {
207
244
  await this.createTables(etype);
208
245
  }
@@ -326,6 +363,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
326
363
  throw e;
327
364
  }
328
365
  await this.commit('nymph-delete');
366
+ // Remove any cached versions of this entity.
329
367
  if (this.nymph.config.cache) {
330
368
  this.cleanCache(guid);
331
369
  }
@@ -353,6 +391,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
353
391
  writeLine('# UIDs');
354
392
  writeLine('#');
355
393
  writeLine('');
394
+ // Export UIDs.
356
395
  let uids = await this.queryIter(`SELECT * FROM ${PostgreSQLDriver.escape(`${this.prefix}uids`)} ORDER BY "name";`);
357
396
  for (const uid of uids) {
358
397
  writeLine(`<${uid.name}>[${uid.cur_uid}]`);
@@ -362,6 +401,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
362
401
  writeLine('# Entities');
363
402
  writeLine('#');
364
403
  writeLine('');
404
+ // Get the etypes.
365
405
  const tables = await this.queryIter('SELECT relname FROM pg_stat_user_tables ORDER BY relname;');
366
406
  const etypes = [];
367
407
  for (const tableRow of tables) {
@@ -371,6 +411,7 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
371
411
  }
372
412
  }
373
413
  for (const etype of etypes) {
414
+ // Export entities.
374
415
  const dataIterator = (await this.queryIter(`SELECT encode(e."guid", 'hex') AS "guid", e."tags", e."cdate", e."mdate", d."name" AS "dname", d."value" AS "dvalue", c."string", c."number"
375
416
  FROM ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} e
376
417
  LEFT JOIN ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} d ON e."guid"=d."guid"
@@ -386,6 +427,8 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
386
427
  writeLine(`\tcdate=${JSON.stringify(cdate)}`);
387
428
  writeLine(`\tmdate=${JSON.stringify(mdate)}`);
388
429
  if (datum.value.dname != null) {
430
+ // This do will keep going and adding the data until the
431
+ // next entity is reached. $row will end on the next entity.
389
432
  do {
390
433
  const value = datum.value.dvalue === 'N'
391
434
  ? JSON.stringify(Number(datum.value.number))
@@ -397,12 +440,23 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
397
440
  } while (!datum.done && datum.value.guid === guid);
398
441
  }
399
442
  else {
443
+ // Make sure that datum is incremented :)
400
444
  datum = dataIterator.next();
401
445
  }
402
446
  }
403
447
  }
404
448
  return;
405
449
  }
450
+ /**
451
+ * Generate the PostgreSQL query.
452
+ * @param options The options array.
453
+ * @param formattedSelectors The formatted selector array.
454
+ * @param etype
455
+ * @param count Used to track internal params.
456
+ * @param params Used to store internal params.
457
+ * @param subquery Whether only a subquery should be returned.
458
+ * @returns The SQL query.
459
+ */
406
460
  makeEntityQuery(options, formattedSelectors, etype, count = { i: 0 }, params = {}, subquery = false, tableSuffix = '', etypes = []) {
407
461
  if (typeof options.class?.alterOptions === 'function') {
408
462
  options = options.class.alterOptions(options);
@@ -1374,7 +1428,9 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
1374
1428
  };
1375
1429
  }
1376
1430
  async getEntities(options = {}, ...selectors) {
1377
- const { result: resultPromise, process } = this.getEntitiesRowLike(options, selectors, (options, formattedSelectors, etype) => this.performQuery(options, formattedSelectors, etype), () => {
1431
+ const { result: resultPromise, process } = this.getEntitiesRowLike(
1432
+ // @ts-ignore: options is correct here.
1433
+ options, selectors, (options, formattedSelectors, etype) => this.performQuery(options, formattedSelectors, etype), () => {
1378
1434
  const next = result.next();
1379
1435
  return next.done ? null : next.value;
1380
1436
  }, () => undefined, (row) => Number(row.count), (row) => row.guid, (row) => ({
@@ -1407,114 +1463,136 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
1407
1463
  });
1408
1464
  return result?.cur_uid == null ? null : Number(result.cur_uid);
1409
1465
  }
1410
- async import(filename) {
1466
+ async import(filename, transaction) {
1411
1467
  try {
1412
1468
  const result = await this.importFromFile(filename, async (guid, tags, sdata, etype) => {
1413
- await this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} WHERE "guid"=decode(@guid, 'hex');`, {
1414
- etypes: [etype],
1415
- params: {
1416
- guid,
1417
- },
1418
- });
1419
- await this.queryRun(`INSERT INTO ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} ("guid", "tags", "cdate", "mdate") VALUES (decode(@guid, 'hex'), @tags, @cdate, @mdate);`, {
1420
- etypes: [etype],
1421
- params: {
1422
- guid,
1423
- tags,
1424
- cdate: isNaN(Number(JSON.parse(sdata.cdate)))
1425
- ? null
1426
- : Number(JSON.parse(sdata.cdate)),
1427
- mdate: isNaN(Number(JSON.parse(sdata.mdate)))
1428
- ? null
1429
- : Number(JSON.parse(sdata.mdate)),
1430
- },
1431
- });
1432
- const promises = [];
1433
- promises.push(this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} WHERE "guid"=decode(@guid, 'hex');`, {
1434
- etypes: [etype],
1435
- params: {
1436
- guid,
1437
- },
1438
- }));
1439
- promises.push(this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} WHERE "guid"=decode(@guid, 'hex');`, {
1440
- etypes: [etype],
1441
- params: {
1442
- guid,
1443
- },
1444
- }));
1445
- promises.push(this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} WHERE "guid"=decode(@guid, 'hex');`, {
1446
- etypes: [etype],
1447
- params: {
1448
- guid,
1449
- },
1450
- }));
1451
- await Promise.all(promises);
1452
- delete sdata.cdate;
1453
- delete sdata.mdate;
1454
- for (const name in sdata) {
1455
- const value = sdata[name];
1456
- const uvalue = JSON.parse(value);
1457
- if (value === undefined) {
1458
- continue;
1459
- }
1460
- const storageValue = typeof uvalue === 'number'
1461
- ? 'N'
1462
- : typeof uvalue === 'string'
1463
- ? 'S'
1464
- : value;
1469
+ try {
1470
+ await this.internalTransaction(`nymph-import-entity-${guid}`);
1471
+ await this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} WHERE "guid"=decode(@guid, 'hex');`, {
1472
+ etypes: [etype],
1473
+ params: {
1474
+ guid,
1475
+ },
1476
+ });
1477
+ await this.queryRun(`INSERT INTO ${PostgreSQLDriver.escape(`${this.prefix}entities_${etype}`)} ("guid", "tags", "cdate", "mdate") VALUES (decode(@guid, 'hex'), @tags, @cdate, @mdate);`, {
1478
+ etypes: [etype],
1479
+ params: {
1480
+ guid,
1481
+ tags,
1482
+ cdate: isNaN(Number(JSON.parse(sdata.cdate)))
1483
+ ? null
1484
+ : Number(JSON.parse(sdata.cdate)),
1485
+ mdate: isNaN(Number(JSON.parse(sdata.mdate)))
1486
+ ? null
1487
+ : Number(JSON.parse(sdata.mdate)),
1488
+ },
1489
+ });
1465
1490
  const promises = [];
1466
- promises.push(this.queryRun(`INSERT INTO ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} ("guid", "name", "value") VALUES (decode(@guid, 'hex'), @name, @storageValue);`, {
1491
+ promises.push(this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} WHERE "guid"=decode(@guid, 'hex');`, {
1492
+ etypes: [etype],
1493
+ params: {
1494
+ guid,
1495
+ },
1496
+ }));
1497
+ promises.push(this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} WHERE "guid"=decode(@guid, 'hex');`, {
1467
1498
  etypes: [etype],
1468
1499
  params: {
1469
1500
  guid,
1470
- name,
1471
- storageValue,
1472
1501
  },
1473
1502
  }));
1474
- promises.push(this.queryRun(`INSERT INTO ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} ("guid", "name", "truthy", "string", "number") VALUES (decode(@guid, 'hex'), @name, @truthy, @string, @number);`, {
1503
+ promises.push(this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} WHERE "guid"=decode(@guid, 'hex');`, {
1475
1504
  etypes: [etype],
1476
1505
  params: {
1477
1506
  guid,
1478
- name,
1479
- truthy: !!uvalue,
1480
- string: `${uvalue}`,
1481
- number: isNaN(Number(uvalue)) ? null : Number(uvalue),
1482
1507
  },
1483
1508
  }));
1484
- const references = this.findReferences(value);
1485
- for (const reference of references) {
1486
- promises.push(this.queryRun(`INSERT INTO ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} ("guid", "name", "reference") VALUES (decode(@guid, 'hex'), @name, decode(@reference, 'hex'));`, {
1509
+ await Promise.all(promises);
1510
+ delete sdata.cdate;
1511
+ delete sdata.mdate;
1512
+ for (const name in sdata) {
1513
+ const value = sdata[name];
1514
+ const uvalue = JSON.parse(value);
1515
+ if (value === undefined) {
1516
+ continue;
1517
+ }
1518
+ const storageValue = typeof uvalue === 'number'
1519
+ ? 'N'
1520
+ : typeof uvalue === 'string'
1521
+ ? 'S'
1522
+ : value;
1523
+ const promises = [];
1524
+ promises.push(this.queryRun(`INSERT INTO ${PostgreSQLDriver.escape(`${this.prefix}data_${etype}`)} ("guid", "name", "value") VALUES (decode(@guid, 'hex'), @name, @storageValue);`, {
1525
+ etypes: [etype],
1526
+ params: {
1527
+ guid,
1528
+ name,
1529
+ storageValue,
1530
+ },
1531
+ }));
1532
+ promises.push(this.queryRun(`INSERT INTO ${PostgreSQLDriver.escape(`${this.prefix}comparisons_${etype}`)} ("guid", "name", "truthy", "string", "number") VALUES (decode(@guid, 'hex'), @name, @truthy, @string, @number);`, {
1487
1533
  etypes: [etype],
1488
1534
  params: {
1489
1535
  guid,
1490
1536
  name,
1491
- reference,
1537
+ truthy: !!uvalue,
1538
+ string: `${uvalue}`,
1539
+ number: isNaN(Number(uvalue)) ? null : Number(uvalue),
1492
1540
  },
1493
1541
  }));
1542
+ const references = this.findReferences(value);
1543
+ for (const reference of references) {
1544
+ promises.push(this.queryRun(`INSERT INTO ${PostgreSQLDriver.escape(`${this.prefix}references_${etype}`)} ("guid", "name", "reference") VALUES (decode(@guid, 'hex'), @name, decode(@reference, 'hex'));`, {
1545
+ etypes: [etype],
1546
+ params: {
1547
+ guid,
1548
+ name,
1549
+ reference,
1550
+ },
1551
+ }));
1552
+ }
1494
1553
  }
1554
+ await Promise.all(promises);
1555
+ await this.commit(`nymph-import-entity-${guid}`);
1556
+ }
1557
+ catch (e) {
1558
+ await this.rollback(`nymph-import-entity-${guid}`);
1559
+ throw e;
1495
1560
  }
1496
- await Promise.all(promises);
1497
1561
  }, async (name, curUid) => {
1498
- await this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}uids`)} WHERE "name"=@name;`, {
1499
- params: {
1500
- name,
1501
- },
1502
- });
1503
- await this.queryRun(`INSERT INTO ${PostgreSQLDriver.escape(`${this.prefix}uids`)} ("name", "cur_uid") VALUES (@name, @curUid);`, {
1504
- params: {
1505
- name,
1506
- curUid,
1507
- },
1508
- });
1562
+ try {
1563
+ await this.internalTransaction(`nymph-import-uid-${name}`);
1564
+ await this.queryRun(`DELETE FROM ${PostgreSQLDriver.escape(`${this.prefix}uids`)} WHERE "name"=@name;`, {
1565
+ params: {
1566
+ name,
1567
+ },
1568
+ });
1569
+ await this.queryRun(`INSERT INTO ${PostgreSQLDriver.escape(`${this.prefix}uids`)} ("name", "cur_uid") VALUES (@name, @curUid);`, {
1570
+ params: {
1571
+ name,
1572
+ curUid,
1573
+ },
1574
+ });
1575
+ await this.commit(`nymph-import-uid-${name}`);
1576
+ }
1577
+ catch (e) {
1578
+ await this.rollback(`nymph-import-uid-${name}`);
1579
+ throw e;
1580
+ }
1509
1581
  }, async () => {
1510
- await this.internalTransaction('nymph-import');
1582
+ if (transaction) {
1583
+ await this.internalTransaction('nymph-import');
1584
+ }
1511
1585
  }, async () => {
1512
- await this.commit('nymph-import');
1586
+ if (transaction) {
1587
+ await this.commit('nymph-import');
1588
+ }
1513
1589
  });
1514
1590
  return result;
1515
1591
  }
1516
1592
  catch (e) {
1517
- await this.rollback('nymph-import');
1593
+ if (transaction) {
1594
+ await this.rollback('nymph-import');
1595
+ }
1518
1596
  return false;
1519
1597
  }
1520
1598
  }
@@ -1775,10 +1853,12 @@ class PostgreSQLDriver extends nymph_1.NymphDriver {
1775
1853
  throw new nymph_1.InvalidParametersError('Transaction start attempted without a name.');
1776
1854
  }
1777
1855
  if (!this.transaction || this.transaction.count === 0) {
1856
+ // Lock to one connection.
1778
1857
  this.transaction = {
1779
1858
  count: 0,
1780
1859
  connection: await this.getConnection(),
1781
1860
  };
1861
+ // We're not in a transaction yet, so start one.
1782
1862
  await this.queryRun('BEGIN;');
1783
1863
  }
1784
1864
  await this.queryRun(`SAVEPOINT ${PostgreSQLDriver.escape(name)};`);
@@ -1 +1 @@
1
- {"version":3,"file":"PostgreSQLDriver.js","sourceRoot":"","sources":["../src/PostgreSQLDriver.ts"],"names":[],"mappings":";;;;;AAAA,2BAA+D;AAC/D,0DAA+B;AAC/B,0CAcwB;AACxB,wCAAgD;AAEhD,iCAGgB;AAehB,MAAqB,gBAAiB,SAAQ,mBAAW;IASvD,MAAM,CAAC,MAAM,CAAC,KAAa;QACzB,OAAO,mBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,KAAa;QAC9B,OAAO,mBAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,YACE,MAAuC,EACvC,IAAW,EACX,WAAyC;QAEzC,KAAK,EAAE,CAAC;QAlBA,cAAS,GAAY,KAAK,CAAC;QAG3B,gBAAW,GAAuC,IAAI,CAAC;QAgB/D,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,qCAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;QACzC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAC9D,IAAI,CAAC,MAAM,CAAC;QACd,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,IAAI;YAC1C,IAAI;YACJ,IAAI;YACJ,QAAQ;YACR,QAAQ;YACR,IAAI;SACL,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACjC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAOM,KAAK;QACV,OAAO,IAAI,gBAAgB,CACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,IAAI,SAAS,CAC9B,CAAC;IACJ,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;YACpE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CACtC,GAAG;YACD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACb,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBAC3B,CAAC,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAC/C,CACF,CAAC;IACJ,CAAC;IAOM,KAAK,CAAC,OAAO;QAElB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,UAAU,GAA+B,MAAM,IAAI,OAAO,CAC9D,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CACtC,GAAG;oBACD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBACb,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;wBAC3B,CAAC,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAC/C,CACJ,CAAC;gBACF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACpC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;oBACpD,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC;oBACD,OAAO,CAAC,CAAC,CAAC,CAAC;gBACb,CAAC,CAAC,CACH,CAAC;gBACF,UAAU,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;QAGD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,GAAG,IAAI,SAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IACE,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,WAAW;oBAC1C,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,OAAO;oBACtC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,KAAK,UAAU;oBAC7C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,KAAK,OAAO,EAC1C,CAAC;oBACD,MAAM,IAAI,0BAAkB,CAC1B,mDAAmD,CACpD,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,4BAAoB,CAAC,qBAAqB,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAOM,KAAK,CAAC,UAAU;QACrB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,aAAa;QACxB,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAOM,WAAW;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAQO,KAAK,CAAC,YAAY,CAAC,QAAuB,IAAI;QACpD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAElB,MAAM,IAAI,CAAC,QAAQ,CACjB,8BAA8B,gBAAgB,CAAC,MAAM,CACnD,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC;;;;;;+BAMsB,CACxB,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,aAAa,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAC3D,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,wBAAwB,gBAAgB,CAAC,MAAM,CAC7C,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,WAAW,CAC3C,GAAG,CACL,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,gBAAgB,CAAC,MAAM,CACrC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,WAAW,CAC3C,OAAO,gBAAgB,CAAC,MAAM,CAC7B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,yBAAyB,CAC3B,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,wBAAwB,gBAAgB,CAAC,MAAM,CAC7C,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,WAAW,CAC3C,GAAG,CACL,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,gBAAgB,CAAC,MAAM,CACrC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,WAAW,CAC3C,OAAO,gBAAgB,CAAC,MAAM,CAC7B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,yBAAyB,CAC3B,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,wBAAwB,gBAAgB,CAAC,MAAM,CAC7C,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,UAAU,CAC1C,GAAG,CACL,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,gBAAgB,CAAC,MAAM,CACrC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,UAAU,CAC1C,OAAO,gBAAgB,CAAC,MAAM,CAC7B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,sBAAsB,CACxB,CAAC;YAEF,MAAM,IAAI,CAAC,QAAQ,CACjB,8BAA8B,gBAAgB,CAAC,MAAM,CACnD,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B;;;;;;yBAMgB,gBAAgB,CAAC,MAAM,CAClC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC;+BACkB,CACxB,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,aAAa,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAC3D,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,wBAAwB,gBAAgB,CAAC,MAAM,CAC7C,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,UAAU,CACtC,GAAG,CACL,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,gBAAgB,CAAC,MAAM,CACrC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,UAAU,CACtC,OAAO,gBAAgB,CAAC,MAAM,CAC7B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,wBAAwB,CAC1B,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,wBAAwB,gBAAgB,CAAC,MAAM,CAC7C,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,UAAU,CACtC,GAAG,CACL,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,gBAAgB,CAAC,MAAM,CACrC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,UAAU,CACtC,OAAO,gBAAgB,CAAC,MAAM,CAC7B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,wBAAwB,CAC1B,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,wBAAwB,gBAAgB,CAAC,MAAM,CAC7C,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,qBAAqB,CACjD,GAAG,CACL,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,gBAAgB,CAAC,MAAM,CACrC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,qBAAqB,CACjD,OAAO,gBAAgB,CAAC,MAAM,CAC7B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,oDAAoD,CACtD,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,wBAAwB,gBAAgB,CAAC,MAAM,CAC7C,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,sBAAsB,CAClD,GAAG,CACL,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,gBAAgB,CAAC,MAAM,CACrC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,sBAAsB,CAClD,OAAO,gBAAgB,CAAC,MAAM,CAC7B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,qDAAqD,CACvD,CAAC;YAEF,MAAM,IAAI,CAAC,QAAQ,CACjB,8BAA8B,gBAAgB,CAAC,MAAM,CACnD,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,EAAE,CACrC;;;;;;;;yBAQgB,gBAAgB,CAAC,MAAM,CAClC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC;+BACkB,CACxB,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,EAAE,CACrC,aAAa,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAC3D,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,wBAAwB,gBAAgB,CAAC,MAAM,CAC7C,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,UAAU,CAC7C,GAAG,CACL,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,gBAAgB,CAAC,MAAM,CACrC,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,UAAU,CAC7C,OAAO,gBAAgB,CAAC,MAAM,CAC7B,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,EAAE,CACrC,wBAAwB,CAC1B,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,wBAAwB,gBAAgB,CAAC,MAAM,CAC7C,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,UAAU,CAC7C,GAAG,CACL,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,gBAAgB,CAAC,MAAM,CACrC,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,UAAU,CAC7C,OAAO,gBAAgB,CAAC,MAAM,CAC7B,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,EAAE,CACrC,wBAAwB,CAC1B,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,wBAAwB,gBAAgB,CAAC,MAAM,CAC7C,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,sBAAsB,CACzD,GAAG,CACL,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,gBAAgB,CAAC,MAAM,CACrC,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,sBAAsB,CACzD,OAAO,gBAAgB,CAAC,MAAM,CAC7B,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,EAAE,CACrC,sDAAsD,CACxD,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,wBAAwB,gBAAgB,CAAC,MAAM,CAC7C,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,qBAAqB,CACxD,GAAG,CACL,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,gBAAgB,CAAC,MAAM,CACrC,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,qBAAqB,CACxD,OAAO,gBAAgB,CAAC,MAAM,CAC7B,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,EAAE,CACrC,uDAAuD,CACzD,CAAC;YAEF,MAAM,IAAI,CAAC,QAAQ,CACjB,8BAA8B,gBAAgB,CAAC,MAAM,CACnD,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC;;;;;;yBAMgB,gBAAgB,CAAC,MAAM,CAClC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC;+BACkB,CACxB,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,aAAa,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAC3D,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,wBAAwB,gBAAgB,CAAC,MAAM,CAC7C,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,UAAU,CAC5C,GAAG,CACL,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,gBAAgB,CAAC,MAAM,CACrC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,UAAU,CAC5C,OAAO,gBAAgB,CAAC,MAAM,CAC7B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,wBAAwB,CAC1B,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,wBAAwB,gBAAgB,CAAC,MAAM,CAC7C,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,UAAU,CAC5C,GAAG,CACL,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,gBAAgB,CAAC,MAAM,CACrC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,UAAU,CAC5C,OAAO,gBAAgB,CAAC,MAAM,CAC7B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,wBAAwB,CAC1B,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,wBAAwB,gBAAgB,CAAC,MAAM,CAC7C,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,eAAe,CACjD,GAAG,CACL,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,gBAAgB,CAAC,MAAM,CACrC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,eAAe,CACjD,OAAO,gBAAgB,CAAC,MAAM,CAC7B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,6BAA6B,CAC/B,CAAC;QACJ,CAAC;aAAM,CAAC;YAEN,MAAM,IAAI,CAAC,QAAQ,CACjB,8BAA8B,gBAAgB,CAAC,MAAM,CACnD,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB;;;;iCAIwB,CAC1B,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,aAAa,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAC3D,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,cAAc,CACpB,SAAiB,EACjB,UAAgC;QAEhC,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,IAAI,KAAK,GAAG,SAAS,CAAC;QAEtB,IAAI,UAAU,GAAG,eAAe,CAAC;QACjC,IAAI,KAAK,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/B,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,KAAK,CACjB,QAAW,EACX,KAAa,EACb,SAAmB,EAAE;QAGrB,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,CAAC;YAC1B,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;gBAEzD,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;oBACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC;gBACD,IAAI,CAAC;oBACH,OAAO,MAAM,QAAQ,EAAE,CAAC;gBAC1B,CAAC;gBAAC,OAAO,EAAO,EAAE,CAAC;oBACjB,MAAM,IAAI,wBAAgB,CACxB,gBAAgB,GAAG,EAAE,EAAE,IAAI,GAAG,KAAK,GAAG,EAAE,EAAE,OAAO,EACjD,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC;IACH,CAAC;IAEO,SAAS,CACf,KAAa,EACb,EACE,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EAAE,MAIT,EAAE;QAEN,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,cAAc,CAChE,KAAK,EACL,MAAM,CACP,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CACf,KAAK,IAAI,EAAE;YACT,MAAM,OAAO,GAAqB,MAAM,IAAI,OAAO,CACjD,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAClB,IAAI,CAAC;oBACH,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC;yBAChD,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC;yBAC1B,IAAI,CACH,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAC7B,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CACzB,CAAC;gBACN,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC;YACH,CAAC,CACF,CAAC;YACF,OAAO,OAAO,CAAC,IAAI,CAAC;QACtB,CAAC,EACD,GAAG,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EACvC,MAAM,CACP,CAAC;IACJ,CAAC;IAEO,QAAQ,CACd,KAAa,EACb,EACE,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EAAE,MAIT,EAAE;QAEN,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,cAAc,CAChE,KAAK,EACL,MAAM,CACP,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CACf,KAAK,IAAI,EAAE;YACT,MAAM,OAAO,GAAqB,MAAM,IAAI,OAAO,CACjD,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAClB,IAAI,CAAC;oBACH,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC;yBAChD,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC;yBAC1B,IAAI,CACH,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAC7B,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CACzB,CAAC;gBACN,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC;YACH,CAAC,CACF,CAAC;YACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,EACD,GAAG,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EACvC,MAAM,CACP,CAAC;IACJ,CAAC;IAEO,QAAQ,CACd,KAAa,EACb,EACE,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EAAE,MAIT,EAAE;QAEN,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,cAAc,CAChE,KAAK,EACL,MAAM,CACP,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CACf,KAAK,IAAI,EAAE;YACT,MAAM,OAAO,GAAqB,MAAM,IAAI,OAAO,CACjD,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAClB,IAAI,CAAC;oBACH,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC;yBAChD,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC;yBAC1B,IAAI,CACH,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAC7B,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CACzB,CAAC;gBACN,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC;YACH,CAAC,CACF,CAAC;YACF,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;QAC7C,CAAC,EACD,GAAG,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EACvC,MAAM,CACP,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,8BAAsB,CAC9B,8CAA8C,CAC/C,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAAqB,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3E,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAC3B,IAAY,EACZ,SAA6C;QAE7C,IAAI,WAA8B,CAAC;QACnC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACvD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC;YACxE,WAAW,GAAG,cAAc,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,SAAS,CAAC;QAC1B,CAAC;QACD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAChC,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,qCAAqC,EACtC;gBACE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACf,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,qCAAqC,EACtC;gBACE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACf,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,EAAE,CACrC,qCAAqC,EACtC;gBACE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACf,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,qCAAqC,EACtC;gBACE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACf,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACpC,MAAM,CAAC,CAAC;QACV,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAElC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,IAAY;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,8BAAsB,CAAC,wBAAwB,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,sBAAsB,EACvB;YACE,MAAM,EAAE;gBACN,IAAI;aACL;SACF,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAES,KAAK,CAAC,cAAc,CAAC,SAAiC;QAC9D,SAAS,CAAC,OAAO,CAAC,CAAC;QACnB,SAAS,CAAC,4BAA4B,CAAC,CAAC;QACxC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC/B,SAAS,CAAC,GAAG,CAAC,CAAC;QACf,SAAS,CAAC,qBAAqB,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;QAC/D,SAAS,CAAC,EAAE,CAAC,CAAC;QAEd,SAAS,CAAC,GAAG,CAAC,CAAC;QACf,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpB,SAAS,CAAC,GAAG,CAAC,CAAC;QACf,SAAS,CAAC,EAAE,CAAC,CAAC;QAGd,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAC7B,iBAAiB,gBAAgB,CAAC,MAAM,CACtC,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,mBAAmB,CACrB,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,SAAS,CAAC,EAAE,CAAC,CAAC;QACd,SAAS,CAAC,GAAG,CAAC,CAAC;QACf,SAAS,CAAC,YAAY,CAAC,CAAC;QACxB,SAAS,CAAC,GAAG,CAAC,CAAC;QACf,SAAS,CAAC,EAAE,CAAC,CAAC;QAGd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CACjC,2DAA2D,CAC5D,CAAC;QACF,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC/B,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAE3B,MAAM,YAAY,GAAG,CACnB,MAAM,IAAI,CAAC,SAAS,CAClB;iBACO,gBAAgB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAAC;sBACrD,gBAAgB,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B;uBACY,gBAAgB,CAAC,MAAM,CAClC,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,EAAE,CACrC;6BACkB,CACpB,CACF,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrB,IAAI,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;gBAChC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;gBAChC,SAAS,CAAC,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,CAAC,CAAC;gBAC1C,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC9C,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC9C,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;oBAG9B,GAAG,CAAC;wBACF,MAAM,KAAK,GACT,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG;4BACxB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BAC5C,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG;gCAC5B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;gCACpC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;wBACzB,SAAS,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;wBAC7C,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;oBAC9B,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;gBACrD,CAAC;qBAAM,CAAC;oBAEN,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;IACT,CAAC;IAYO,eAAe,CACrB,OAAgB,EAChB,kBAAuC,EACvC,KAAa,EACb,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAChB,SAA+B,EAAE,EACjC,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,EAAE,EAChB,SAAmB,EAAE;QAErB,IAAI,OAAO,OAAO,CAAC,KAAK,EAAE,YAAY,KAAK,UAAU,EAAE,CAAC;YACtD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,KAAK,WAAW,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,QAAQ,WAAW,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAC9C,kBAAkB,EAClB,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;YAClC,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;gBAC7B,QAAQ,GAAG,EAAE,CAAC;oBACZ,KAAK,MAAM,CAAC;oBACZ,KAAK,OAAO;wBACV,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;4BAC/B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,kBAAkB;oCAClB,IAAI;oCACJ,UAAU,CAAC;4BACb,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;wBACzB,CAAC;wBACD,MAAM;oBACR,KAAK,KAAK,CAAC;oBACX,KAAK,MAAM;wBACT,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;4BAC9B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,GAAG,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAChC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,GAAG;oCACH,eAAe,CAAC;4BAClB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBACzB,CAAC;wBACD,MAAM;oBACR,KAAK,SAAS,CAAC;oBACf,KAAK,UAAU;wBACb,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;4BAC9B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,QAAQ;gCACN,OAAO;oCACP,UAAU;oCACV,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,yBAAyB;oCACzB,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACtD,iBAAiB;oCACjB,IAAI;oCACJ,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;wBACxB,CAAC;wBACD,MAAM;oBACR,KAAK,QAAQ,CAAC;oBACd,KAAK,SAAS;wBACZ,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;4BAC9B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gCACvB,QAAQ;oCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,GAAG;wCACH,OAAO;wCACP,oBAAoB,CAAC;gCACvB,MAAM;4BACR,CAAC;iCAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gCAC9B,QAAQ;oCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,GAAG;wCACH,OAAO;wCACP,oBAAoB,CAAC;gCACvB,MAAM;4BACR,CAAC;iCAAM,CAAC;gCACN,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gCACjC,QAAQ;oCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,OAAO;wCACP,iCAAiC;wCACjC,gBAAgB,CAAC,MAAM,CACrB,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,KAAK,CACrC;wCACD,iBAAiB;wCACjB,IAAI;wCACJ,qBAAqB,CAAC;gCACxB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;4BACxB,CAAC;wBACH,CAAC;wBACD,MAAM;oBACR,KAAK,OAAO,CAAC;oBACb,KAAK,QAAQ;wBACX,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,YAAY;oCACZ,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACxB,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,YAAY;oCACZ,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACxB,MAAM;wBACR,CAAC;6BAAM,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;4BAC3C,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,iCAAiC;oCACjC,gBAAgB,CAAC,MAAM,CACrB,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,KAAK,CACrC;oCACD,iBAAiB;oCACjB,IAAI;oCACJ,iBAAiB;oCACjB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC9B,CAAC;6BAAM,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;4BAC3C,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,iCAAiC;oCACjC,gBAAgB,CAAC,MAAM,CACrB,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,KAAK,CACrC;oCACD,iBAAiB;oCACjB,IAAI;oCACJ,iBAAiB;oCACjB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC9B,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,IAAI,MAAc,CAAC;4BACnB,IACE,QAAQ,CAAC,CAAC,CAAC,YAAY,MAAM;gCAC7B,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,EAC7C,CAAC;gCACD,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;4BACrD,CAAC;iCAAM,CAAC;gCACN,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvC,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,iCAAiC;oCACjC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACtD,iBAAiB;oCACjB,IAAI;oCACJ,gBAAgB;oCAChB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;wBACzB,CAAC;wBACD,MAAM;oBACR,KAAK,SAAS,CAAC;oBACf,KAAK,UAAU;wBACb,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,WAAW;oCACX,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACxB,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,WAAW;oCACX,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACxB,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,IAAI,MAAc,CAAC;4BACnB,IAAI,WAAmB,CAAC;4BACxB,IACE,QAAQ,CAAC,CAAC,CAAC,YAAY,MAAM;gCAC7B,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,EAC7C,CAAC;gCACD,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;gCACnD,WAAW,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;4BAC/C,CAAC;iCAAM,CAAC;gCACN,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACrC,WAAW,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;4BACjC,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;gCACpC,MAAM,WAAW,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gCACxC,QAAQ;oCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,GAAG;wCACH,OAAO;wCACP,iCAAiC;wCACjC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;wCACtD,iBAAiB;wCACjB,IAAI;wCACJ,iBAAiB;wCACjB,KAAK;wCACL,qBAAqB;wCACrB,OAAO;wCACP,iCAAiC;wCACjC,gBAAgB,CAAC,MAAM,CACrB,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,KAAK,CACrC;wCACD,iBAAiB;wCACjB,IAAI;wCACJ,iBAAiB;wCACjB,WAAW;wCACX,IAAI,CAAC;gCACP,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;4BACpC,CAAC;iCAAM,CAAC;gCACN,QAAQ;oCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,OAAO;wCACP,iCAAiC;wCACjC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;wCACtD,iBAAiB;wCACjB,IAAI;wCACJ,iBAAiB;wCACjB,KAAK;wCACL,iBAAiB,CAAC;4BACtB,CAAC;4BACD,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;wBACzB,CAAC;wBACD,MAAM;oBACR,KAAK,OAAO,CAAC;oBACb,KAAK,QAAQ;wBACX,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,cAAc;oCACd,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,cAAc;oCACd,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,iCAAiC;oCACjC,gBAAgB,CAAC,MAAM,CACrB,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,KAAK,CACrC;oCACD,iBAAiB;oCACjB,IAAI;oCACJ,mBAAmB;oCACnB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC9B,CAAC;wBACD,MAAM;oBACR,KAAK,QAAQ,CAAC;oBACd,KAAK,SAAS;wBACZ,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,eAAe;oCACf,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,eAAe;oCACf,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,iCAAiC;oCACjC,gBAAgB,CAAC,MAAM,CACrB,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,KAAK,CACrC;oCACD,iBAAiB;oCACjB,IAAI;oCACJ,oBAAoB;oCACpB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC9B,CAAC;wBACD,MAAM;oBACR,KAAK,MAAM,CAAC;oBACZ,KAAK,OAAO;wBACV,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,iBAAiB;oCACjB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,iBAAiB;oCACjB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,iCAAiC;oCACjC,gBAAgB,CAAC,MAAM,CACrB,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,KAAK,CACrC;oCACD,iBAAiB;oCACjB,IAAI;oCACJ,sBAAsB;oCACtB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC9B,CAAC;wBACD,MAAM;oBACR,KAAK,OAAO,CAAC;oBACb,KAAK,QAAQ;wBACX,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,kBAAkB;oCAClB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,kBAAkB;oCAClB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,iCAAiC;oCACjC,gBAAgB,CAAC,MAAM,CACrB,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,KAAK,CACrC;oCACD,iBAAiB;oCACjB,IAAI;oCACJ,uBAAuB;oCACvB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC9B,CAAC;wBACD,MAAM;oBACR,KAAK,IAAI,CAAC;oBACV,KAAK,KAAK;wBACR,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,YAAY;oCACZ,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACxB,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,YAAY;oCACZ,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACxB,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,iCAAiC;oCACjC,gBAAgB,CAAC,MAAM,CACrB,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,KAAK,CACrC;oCACD,iBAAiB;oCACjB,IAAI;oCACJ,iBAAiB;oCACjB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1B,CAAC;wBACD,MAAM;oBACR,KAAK,KAAK,CAAC;oBACX,KAAK,MAAM;wBACT,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,aAAa;oCACb,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACxB,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,aAAa;oCACb,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACxB,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,iCAAiC;oCACjC,gBAAgB,CAAC,MAAM,CACrB,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,KAAK,CACrC;oCACD,iBAAiB;oCACjB,IAAI;oCACJ,kBAAkB;oCAClB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1B,CAAC;wBACD,MAAM;oBACR,KAAK,IAAI,CAAC;oBACV,KAAK,KAAK;wBACR,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,YAAY;oCACZ,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACxB,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,YAAY;oCACZ,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACxB,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,iCAAiC;oCACjC,gBAAgB,CAAC,MAAM,CACrB,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,KAAK,CACrC;oCACD,iBAAiB;oCACjB,IAAI;oCACJ,iBAAiB;oCACjB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1B,CAAC;wBACD,MAAM;oBACR,KAAK,KAAK,CAAC;oBACX,KAAK,MAAM;wBACT,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BAC5B,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,aAAa;oCACb,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACxB,MAAM;wBACR,CAAC;6BAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;4BACnC,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,aAAa;oCACb,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACxB,MAAM;wBACR,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAClC,QAAQ;gCACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,iCAAiC;oCACjC,gBAAgB,CAAC,MAAM,CACrB,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,KAAK,CACrC;oCACD,iBAAiB;oCACjB,IAAI;oCACJ,kBAAkB;oCAClB,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1B,CAAC;wBACD,MAAM;oBACR,KAAK,KAAK,CAAC;oBACX,KAAK,MAAM;wBACT,IAAI,QAAgB,CAAC;wBACrB,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;4BACpC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACzB,CAAC;6BAAM,IAAI,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;4BACjC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBAC9B,CAAC;6BAAM,CAAC;4BACN,QAAQ,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC9B,CAAC;wBACD,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;wBAC1C,CAAC;wBACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;wBACjC,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;wBACjC,QAAQ;4BACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gCACzC,OAAO;gCACP,iCAAiC;gCACjC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;gCAC5D,iBAAiB;gCACjB,IAAI;gCACJ,2BAA2B;gCAC3B,IAAI;gCACJ,WAAW,CAAC;wBACd,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;wBACxB,MAAM;oBACR,KAAK,UAAU,CAAC;oBAChB,KAAK,WAAW;wBACd,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CACnC,OAAO,EACP,CAAC,QAAQ,CAAC,EACV,KAAK,EACL,KAAK,EACL,MAAM,EACN,IAAI,EACJ,WAAW,EACX,MAAM,CACP,CAAC;wBACF,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;wBAC1C,CAAC;wBACD,QAAQ;4BACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gCACzC,GAAG;gCACH,QAAQ,CAAC,KAAK;gCACd,GAAG,CAAC;wBACN,MAAM;oBACR,KAAK,MAAM,CAAC;oBACZ,KAAK,OAAO;wBACV,MAAM,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAGjD,CAAC;wBACF,MAAM,eAAe,GAAG,WAAW,CAAC,KAA0B,CAAC;wBAC/D,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;wBACnC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CACpC,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,EAC1D,aAAa,EACb,eAAe,CAAC,KAAK,EACrB,KAAK,EACL,MAAM,EACN,KAAK,EACL,IAAA,sBAAe,GAAE,EACjB,MAAM,CACP,CAAC;wBACF,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;wBAC1C,CAAC;wBACD,MAAM,QAAQ,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;wBACrC,QAAQ;4BACN,CAAC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gCACzC,OAAO;gCACP,iCAAiC;gCACjC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;gCAC5D,iBAAiB;gCACjB,QAAQ;gCACR,uBAAuB;gCACvB,SAAS,CAAC,KAAK;gCACf,IAAI,CAAC;wBACP,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC/B,MAAM;gBACV,CAAC;YACH,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CACF,CAAC;QAEF,IAAI,MAAc,CAAC;QACnB,IAAI,WAAmB,CAAC;QACxB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,OAAO;gBACV,MAAM,GAAG,GAAG,MAAM,WAAW,KAAK,EAAE,CAAC;gBACrC,WAAW,GAAG,GAAG,OAAO,WAAW,KAAK,EAAE,CAAC;gBAC3C,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,GAAG,GAAG,MAAM,WAAW,KAAK,EAAE,CAAC;gBACrC,WAAW,GAAG,GAAG,OAAO,WAAW,KAAK,EAAE,CAAC;gBAC3C,MAAM;YACR;gBACE,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjC,QAAQ,GAAG;;mBAEA,gBAAgB,CAAC,MAAM,CAC5B,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,KAAK,CACrC;4BACe,IAAI;+BACD,KAAK,aAAa,KAAK;cACxC,MAAM,OAAO,MAAM,WAAW,MAAM,SAAS,CAAC;gBACpD,aAAa,GAAG;;mBAEL,gBAAgB,CAAC,MAAM,CAC5B,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,KAAK,CACrC;4BACe,IAAI;+BACD,KAAK,aAAa,KAAK;cACxC,MAAM,OAAO,OAAO,WAAW,MAAM,SAAS,CAAC;gBACrD,MAAM,GAAG,GAAG,MAAM,YAAY,KAAK,KAAK,MAAM,YAAY,KAAK,EAAE,CAAC;gBAClE,WAAW,GAAG,MAAM,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBACpB,MAAM;QACV,CAAC;QAED,IAAI,KAAa,CAAC;QAClB,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,GAAG,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,IAAI,KAAK,GAAG,EAAE,CAAC;gBACf,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;oBACvB,KAAK,GAAG,UAAU,IAAI,CAAC,KAAK,CAC1B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CACzD,EAAE,CAAC;gBACN,CAAC;gBACD,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;oBACxB,MAAM,GAAG,WAAW,IAAI,CAAC,KAAK,CAC5B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAC3D,EAAE,CAAC;gBACN,CAAC;gBACD,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBAC/B,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;wBACpB,KAAK,GAAG,gBAAgB,UAAU;+BACf,OAAO;uBACf,gBAAgB,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,OAAO;yBACH,WAAW,IAAI,KAAK,GAAG,MAAM;kBACpC,UAAU,EAAE,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG,gBAAgB,OAAO;qBACtB,gBAAgB,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,OAAO;uBACH,WAAW,GAAG,CAAC;oBAC5B,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACrC,MAAM,UAAU,GACd,WAAW,KAAK,EAAE;wBAChB,CAAC,CAAC,UAAU,OAAO,iBAAiB;wBACpC,CAAC,CAAC,GAAG,OAAO,SAAS,CAAC;oBAC1B,KAAK,GAAG,UAAU,UAAU;mBACnB,gBAAgB,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,OAAO;cACV,aAAa;qBACN,WAAW;uBACT,WAAW,KAAK,OAAO,UAAU,KAAK,GAAG,MAAM,EAAE,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACN,KAAK,GAAG;uBACK,MAAM;gBACb,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;mBACH,gBAAgB,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,MAAM;wBACC,gBAAgB,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,IAAI,MAAM,OAAO,MAAM,WAAW,MAAM;yBAC5B,gBAAgB,CAAC,MAAM,CAClC,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,EAAE,CACrC,IAAI,MAAM,OAAO,MAAM,WAAW,MAAM,eAAe,MAAM,WAAW,MAAM;cAC7E,QAAQ;;uBAEC,OAAO;qBACT,gBAAgB,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,OAAO;gBACV,aAAa;uBACN,WAAW;yBACT,WAAW,GAAG,KAAK,GAAG,MAAM;gBACrC,MAAM,OAAO,MAAM,WAAW,MAAM;uBAC7B,MAAM,KAAK,MAAM,SAAS,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,GAAG,EAAE,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,IAAI,KAAK,GAAG,EAAE,CAAC;gBACf,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;oBACvB,KAAK,GAAG,UAAU,IAAI,CAAC,KAAK,CAC1B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CACzD,EAAE,CAAC;gBACN,CAAC;gBACD,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;oBACxB,MAAM,GAAG,WAAW,IAAI,CAAC,KAAK,CAC5B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAC3D,EAAE,CAAC;gBACN,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBAC/B,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;wBACpB,KAAK,GAAG,gBAAgB,UAAU;+BACf,OAAO;uBACf,gBAAgB,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,OAAO,GAAG,KAAK,GAAG,MAAM;kBAC3B,UAAU,EAAE,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG,gBAAgB,OAAO;qBACtB,gBAAgB,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,OAAO,EAAE,CAAC;oBACnB,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACrC,MAAM,UAAU,GACd,WAAW,KAAK,EAAE;wBAChB,CAAC,CAAC,UAAU,OAAO,iBAAiB;wBACpC,CAAC,CAAC,GAAG,OAAO,SAAS,CAAC;oBAC1B,KAAK,GAAG,UAAU,UAAU;mBACnB,gBAAgB,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,OAAO;cACV,aAAa;uBACJ,WAAW,KAAK,OAAO,UAAU,KAAK,GAAG,MAAM,EAAE,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACN,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;wBACpB,KAAK,GAAG;yBACK,MAAM;kBACb,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;qBACH,gBAAgB,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,MAAM;0BACC,gBAAgB,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,IAAI,MAAM,OAAO,MAAM,WAAW,MAAM;2BAC5B,gBAAgB,CAAC,MAAM,CAClC,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,EAAE,CACrC,IAAI,MAAM,OAAO,MAAM,WAAW,MAAM,eAAe,MAAM,WAAW,MAAM;gBAC7E,QAAQ;;yBAEC,OAAO;uBACT,gBAAgB,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,OAAO;kBACV,aAAa;2BACJ,WAAW,GAAG,KAAK,GAAG,MAAM;kBACrC,MAAM,OAAO,MAAM,WAAW,MAAM;yBAC7B,MAAM,KAAK,MAAM,SAAS,CAAC;oBAC1C,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG;yBACK,MAAM;kBACb,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;qBACH,gBAAgB,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,MAAM;0BACC,gBAAgB,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,IAAI,MAAM,OAAO,MAAM,WAAW,MAAM;2BAC5B,gBAAgB,CAAC,MAAM,CAClC,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,EAAE,CACrC,IAAI,MAAM,OAAO,MAAM,WAAW,MAAM,eAAe,MAAM,WAAW,MAAM;gBAC7E,QAAQ;yBACC,MAAM,KAAK,MAAM,SAAS,CAAC;oBAC1C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAED,OAAO;YACL,KAAK;YACL,MAAM;YACN,MAAM;SACP,CAAC;IACJ,CAAC;IAES,YAAY,CACpB,OAAgB,EAChB,kBAAuC,EACvC,KAAa;QAIb,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CACpD,OAAO,EACP,kBAAkB,EAClB,KAAK,CACN,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACpE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CACvB,CAAC;QACF,OAAO;YACL,MAAM;SACP,CAAC;IACJ,CAAC;IAcM,KAAK,CAAC,WAAW,CACtB,UAAsB,EAAE,EACxB,GAAG,SAAqB;QAExB,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAEhE,OAAO,EACP,SAAS,EACT,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,CACrC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,CAAC,EACvD,GAAG,EAAE;YACH,MAAM,IAAI,GAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACvC,CAAC,EACD,GAAG,EAAE,CAAC,SAAS,EACf,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAC1B,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EACjB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACR,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;YAC1D,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;SAC3D,CAAC,EACF,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACR,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EACJ,GAAG,CAAC,KAAK,KAAK,GAAG;gBACf,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACpC,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG;oBACnB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;oBAC5B,CAAC,CAAC,GAAG,CAAC,KAAK;SAChB,CAAC,CACH,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;QACnC,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;QACxB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,KAAK,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,8BAAsB,CAAC,yBAAyB,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAChC,yBAAyB,gBAAgB,CAAC,MAAM,CAC9C,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,sBAAsB,EACvB;YACE,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI;aACX;SACF,CACF,CAAC;QACF,OAAO,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,QAAgB;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CACtC,QAAQ,EACR,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACjC,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,qCAAqC,EACtC;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CAAC;gBACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,2FAA2F,EAC5F;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;wBACJ,IAAI;wBACJ,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;4BAC3C,CAAC,CAAC,IAAI;4BACN,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACnC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;4BAC3C,CAAC,CAAC,IAAI;4BACN,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;qBACpC;iBACF,CACF,CAAC;gBACF,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,qCAAqC,EACtC;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CACF,CAAC;gBACF,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,EAAE,CACrC,qCAAqC,EACtC;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CACF,CAAC;gBACF,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,qCAAqC,EACtC;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CACF,CAAC;gBACF,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC5B,OAAO,KAAK,CAAC,KAAK,CAAC;gBACnB,OAAO,KAAK,CAAC,KAAK,CAAC;gBACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,SAAS;oBACX,CAAC;oBACD,MAAM,YAAY,GAChB,OAAO,MAAM,KAAK,QAAQ;wBACxB,CAAC,CAAC,GAAG;wBACL,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ;4BAC5B,CAAC,CAAC,GAAG;4BACL,CAAC,CAAC,KAAK,CAAC;oBACZ,MAAM,QAAQ,GAAG,EAAE,CAAC;oBACpB,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,iFAAiF,EAClF;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;4BACJ,IAAI;4BACJ,YAAY;yBACb;qBACF,CACF,CACF,CAAC;oBACF,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,EAAE,CACrC,kHAAkH,EACnH;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;4BACJ,IAAI;4BACJ,MAAM,EAAE,CAAC,CAAC,MAAM;4BAChB,MAAM,EAAE,GAAG,MAAM,EAAE;4BACnB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;yBACtD;qBACF,CACF,CACF,CAAC;oBACF,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAC9C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;wBACnC,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,iGAAiG,EAClG;4BACE,MAAM,EAAE,CAAC,KAAK,CAAC;4BACf,MAAM,EAAE;gCACN,IAAI;gCACJ,IAAI;gCACJ,SAAS;6BACV;yBACF,CACF,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC,EACD,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;gBACrB,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,sBAAsB,EACvB;oBACE,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CAAC;gBACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,+CAA+C,EAChD;oBACE,MAAM,EAAE;wBACN,IAAI;wBACJ,MAAM;qBACP;iBACF,CACF,CAAC;YACJ,CAAC,EACD,KAAK,IAAI,EAAE;gBACT,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;YACjD,CAAC,EACD,KAAK,IAAI,EAAE;gBACT,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YACpC,CAAC,CACF,CAAC;YAEF,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,8BAAsB,CAAC,yBAAyB,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,MAAM,GAAuB,SAAS,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC9B,yBAAyB,gBAAgB,CAAC,MAAM,CAC9C,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,iCAAiC,EAClC;gBACE,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;YACF,MAAM,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClE,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,MAAM,GAAG,CAAC,CAAC;gBACX,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,+CAA+C,EAChD;oBACE,MAAM,EAAE;wBACN,IAAI;wBACJ,MAAM;qBACP;iBACF,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC;gBACT,MAAM,IAAI,CAAC,QAAQ,CACjB,UAAU,gBAAgB,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,4CAA4C,EAC7C;oBACE,MAAM,EAAE;wBACN,IAAI;wBACJ,MAAM;qBACP;iBACF,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACpC,MAAM,CAAC,CAAC;QACV,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,OAAe,EAAE,OAAe;QACrD,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACvC,MAAM,IAAI,8BAAsB,CAAC,yBAAyB,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CACjB,UAAU,gBAAgB,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,6CAA6C,EAC9C;YACE,MAAM,EAAE;gBACN,OAAO;gBACP,OAAO;aACR;SACF,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,IAAY;QAChC,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,8BAAsB,CAC9B,gDAAgD,CACjD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CACjB,yBAAyB,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAC1D,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,MAAuB;QAC7C,MAAM,UAAU,GAAG,KAAK,EACtB,IAAY,EACZ,IAAgB,EAChB,KAA2B,EAC3B,KAAa,EACb,EAAE;YACF,MAAM,cAAc,GAAG,KAAK,EAC1B,IAAY,EACZ,KAAU,EACV,MAAc,EACd,EAAE;gBACF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,OAAO;gBACT,CAAC;gBACD,MAAM,YAAY,GAChB,OAAO,KAAK,KAAK,QAAQ;oBACvB,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;wBAC3B,CAAC,CAAC,GAAG;wBACL,CAAC,CAAC,MAAM,CAAC;gBACb,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,iFAAiF,EAClF;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;wBACJ,IAAI;wBACJ,YAAY;qBACb;iBACF,CACF,CACF,CAAC;gBACF,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,EAAE,CACrC,kHAAkH,EACnH;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;wBACJ,IAAI;wBACJ,MAAM,EAAE,CAAC,CAAC,KAAK;wBACf,MAAM,EAAE,GAAG,KAAK,EAAE;wBAClB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBACpD;iBACF,CACF,CACF,CAAC;gBACF,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBAC/C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;oBACnC,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,iGAAiG,EAClG;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;4BACJ,IAAI;4BACJ,SAAS;yBACV;qBACF,CACF,CACF,CAAC;gBACJ,CAAC;gBACD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC,CAAC;YACF,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrE,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACnE,CAAC;QACH,CAAC,CAAC;QACF,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACzC,MAAM,EACN,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACvD,IACE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;oBAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAC/B,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,2FAA2F,EAC5F;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;wBACJ,IAAI;wBACJ,KAAK;qBACN;iBACF,CACF,CAAC;gBACF,MAAM,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC3C,OAAO,IAAI,CAAC;YACd,CAAC,EACD,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACtD,IACE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;oBAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAC/B,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,iBAAiB,gBAAgB,CAAC,MAAM,CACtC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,gDAAgD,EACjD;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CACF,CAAC;gBACF,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,iBAAiB,gBAAgB,CAAC,MAAM,CACtC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,gDAAgD,EACjD;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CACF,CAAC;gBACF,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,iBAAiB,gBAAgB,CAAC,MAAM,CACtC,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,EAAE,CACrC,gDAAgD,EACjD;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CACF,CAAC;gBACF,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,iBAAiB,gBAAgB,CAAC,MAAM,CACtC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,gDAAgD,EACjD;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CACF,CAAC;gBACF,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC9B,UAAU,gBAAgB,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,6FAA6F,EAC9F;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;wBACJ,KAAK;wBACL,IAAI;wBACJ,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC/D;iBACF,CACF,CAAC;gBACF,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;oBACxB,MAAM,QAAQ,GAAG,EAAE,CAAC;oBACpB,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,qCAAqC,EACtC;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;yBACL;qBACF,CACF,CACF,CAAC;oBACF,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,eAAe,KAAK,EAAE,CACrC,qCAAqC,EACtC;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;yBACL;qBACF,CACF,CACF,CAAC;oBACF,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,qCAAqC,EACtC;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;yBACL;qBACF,CACF,CACF,CAAC;oBACF,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC5B,MAAM,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBAC3C,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC,EACD,KAAK,IAAI,EAAE;gBACT,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;gBAC7C,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC,EACD,KAAK,EAAE,OAAO,EAAE,EAAE;gBAChB,IAAI,aAAa,EAAE,CAAC;oBAClB,aAAa,GAAG,KAAK,CAAC;oBACtB,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAClC,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC,CACF,CAAC;YAEF,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACpC,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,MAAc;QAC9C,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,8BAAsB,CAAC,yBAAyB,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,sBAAsB,EACvB;gBACE,MAAM,EAAE;oBACN,IAAI;oBACJ,MAAM;iBACP;aACF,CACF,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,gBAAgB,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,+CAA+C,EAChD;gBACE,MAAM,EAAE;oBACN,IAAI;oBACJ,MAAM;iBACP;aACF,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACpC,MAAM,CAAC,CAAC;QACV,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,IAAY;QAC5C,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,8BAAsB,CAC9B,6CAA6C,CAC9C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YAEtD,IAAI,CAAC,WAAW,GAAG;gBACjB,KAAK,EAAE,CAAC;gBACR,UAAU,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE;aACvC,CAAC;YAEF,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEnE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEzB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACxC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QACjD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,KAAK,CAAC,MAA2B,CAAC,WAAW,GAAG,WAAW,CAAC;QAE7D,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAn+ED,mCAm+EC"}
1
+ {"version":3,"file":"PostgreSQLDriver.js","sourceRoot":"","sources":["../src/PostgreSQLDriver.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const nymph_1 = require("@nymphjs/nymph");
7
7
  const PostgreSQLDriver_1 = __importDefault(require("./PostgreSQLDriver"));
8
+ // When using remote server, this can be helpful.
8
9
  jest.setTimeout(60000);
9
10
  const postgresqlConfig = {
10
11
  host: 'localhost',
@@ -18,7 +19,7 @@ describe('PostgreSQLDriver', () => {
18
19
  (0, nymph_1.UIDTest)(nymph, it);
19
20
  (0, nymph_1.ExportImportTest)(nymph, it);
20
21
  afterAll(async () => {
21
- await nymph.driver.disconnect();
22
+ await nymph.driver.disconnect(); // avoid jest open handle error
22
23
  });
23
24
  });
24
25
  //# sourceMappingURL=PostgreSQLDriver.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PostgreSQLDriver.test.js","sourceRoot":"","sources":["../src/PostgreSQLDriver.test.ts"],"names":[],"mappings":";;;;;AAAA,0CAA+E;AAE/E,0EAAkD;AAGlD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAEvB,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,OAAO;CAClB,CAAC;AAEF,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,EAAE,EAAE,IAAI,0BAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEpE,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAA,mBAAW,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvB,IAAA,eAAO,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,IAAA,wBAAgB,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAE5B,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"PostgreSQLDriver.test.js","sourceRoot":"","sources":["../src/PostgreSQLDriver.test.ts"],"names":[],"mappings":";;;;;AAAA,0CAA+E;AAE/E,0EAAkD;AAElD,iDAAiD;AACjD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAEvB,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,OAAO;CAClB,CAAC;AAEF,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,EAAE,EAAE,IAAI,0BAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEpE,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAA,mBAAW,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvB,IAAA,eAAO,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,IAAA,wBAAgB,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAE5B,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,+BAA+B;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/dist/conf/d.d.ts CHANGED
@@ -1,10 +1,36 @@
1
1
  import type { PoolConfig } from 'pg';
2
+ /**
3
+ * PostgreSQL Driver Config
4
+ */
2
5
  export interface PostgreSQLDriverConfig {
6
+ /**
7
+ * The host on which to connect to Postgres. Can include a port, like
8
+ * hostname:port.
9
+ */
3
10
  host: string;
11
+ /**
12
+ * The port on which to connect to Postgres.
13
+ */
4
14
  port: number;
15
+ /**
16
+ * The Postgres user.
17
+ */
5
18
  user: string;
19
+ /**
20
+ * The Postgres password.
21
+ */
6
22
  password: string;
23
+ /**
24
+ * The Postgres database.
25
+ */
7
26
  database: string;
27
+ /**
28
+ * If you need to use custom options, like SSL, you can provide them here in
29
+ * place of the above options.
30
+ */
8
31
  customPoolConfig: PoolConfig | null;
32
+ /**
33
+ * The Postgres table name prefix.
34
+ */
9
35
  prefix: string;
10
36
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nymphjs/driver-postgresql",
3
- "version": "1.0.0-beta.55",
3
+ "version": "1.0.0-beta.56",
4
4
  "description": "Nymph.js - PostgreSQL DB Driver",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",
@@ -33,8 +33,8 @@
33
33
  },
34
34
  "license": "Apache-2.0",
35
35
  "dependencies": {
36
- "@nymphjs/guid": "^1.0.0-beta.55",
37
- "@nymphjs/nymph": "^1.0.0-beta.55",
36
+ "@nymphjs/guid": "^1.0.0-beta.56",
37
+ "@nymphjs/nymph": "^1.0.0-beta.56",
38
38
  "pg": "^8.11.3",
39
39
  "pg-format": "^1.0.4"
40
40
  },
@@ -47,5 +47,5 @@
47
47
  "ts-jest": "^29.1.2",
48
48
  "typescript": "^5.3.3"
49
49
  },
50
- "gitHead": "452a8744e000a1f1a68cb2f1e6b6f1c0253df0f6"
50
+ "gitHead": "ec53fa4391757e66c3aca331dd97b778fcb6f913"
51
51
  }
@@ -1960,58 +1960,16 @@ export default class PostgreSQLDriver extends NymphDriver {
1960
1960
  return result?.cur_uid == null ? null : Number(result.cur_uid);
1961
1961
  }
1962
1962
 
1963
- public async import(filename: string) {
1963
+ public async import(filename: string, transaction?: boolean) {
1964
1964
  try {
1965
1965
  const result = await this.importFromFile(
1966
1966
  filename,
1967
1967
  async (guid, tags, sdata, etype) => {
1968
- await this.queryRun(
1969
- `DELETE FROM ${PostgreSQLDriver.escape(
1970
- `${this.prefix}entities_${etype}`,
1971
- )} WHERE "guid"=decode(@guid, 'hex');`,
1972
- {
1973
- etypes: [etype],
1974
- params: {
1975
- guid,
1976
- },
1977
- },
1978
- );
1979
- await this.queryRun(
1980
- `INSERT INTO ${PostgreSQLDriver.escape(
1981
- `${this.prefix}entities_${etype}`,
1982
- )} ("guid", "tags", "cdate", "mdate") VALUES (decode(@guid, 'hex'), @tags, @cdate, @mdate);`,
1983
- {
1984
- etypes: [etype],
1985
- params: {
1986
- guid,
1987
- tags,
1988
- cdate: isNaN(Number(JSON.parse(sdata.cdate)))
1989
- ? null
1990
- : Number(JSON.parse(sdata.cdate)),
1991
- mdate: isNaN(Number(JSON.parse(sdata.mdate)))
1992
- ? null
1993
- : Number(JSON.parse(sdata.mdate)),
1994
- },
1995
- },
1996
- );
1997
- const promises = [];
1998
- promises.push(
1999
- this.queryRun(
2000
- `DELETE FROM ${PostgreSQLDriver.escape(
2001
- `${this.prefix}data_${etype}`,
2002
- )} WHERE "guid"=decode(@guid, 'hex');`,
2003
- {
2004
- etypes: [etype],
2005
- params: {
2006
- guid,
2007
- },
2008
- },
2009
- ),
2010
- );
2011
- promises.push(
2012
- this.queryRun(
1968
+ try {
1969
+ await this.internalTransaction(`nymph-import-entity-${guid}`);
1970
+ await this.queryRun(
2013
1971
  `DELETE FROM ${PostgreSQLDriver.escape(
2014
- `${this.prefix}comparisons_${etype}`,
1972
+ `${this.prefix}entities_${etype}`,
2015
1973
  )} WHERE "guid"=decode(@guid, 'hex');`,
2016
1974
  {
2017
1975
  etypes: [etype],
@@ -2019,124 +1977,186 @@ export default class PostgreSQLDriver extends NymphDriver {
2019
1977
  guid,
2020
1978
  },
2021
1979
  },
2022
- ),
2023
- );
2024
- promises.push(
2025
- this.queryRun(
2026
- `DELETE FROM ${PostgreSQLDriver.escape(
2027
- `${this.prefix}references_${etype}`,
2028
- )} WHERE "guid"=decode(@guid, 'hex');`,
1980
+ );
1981
+ await this.queryRun(
1982
+ `INSERT INTO ${PostgreSQLDriver.escape(
1983
+ `${this.prefix}entities_${etype}`,
1984
+ )} ("guid", "tags", "cdate", "mdate") VALUES (decode(@guid, 'hex'), @tags, @cdate, @mdate);`,
2029
1985
  {
2030
1986
  etypes: [etype],
2031
1987
  params: {
2032
1988
  guid,
1989
+ tags,
1990
+ cdate: isNaN(Number(JSON.parse(sdata.cdate)))
1991
+ ? null
1992
+ : Number(JSON.parse(sdata.cdate)),
1993
+ mdate: isNaN(Number(JSON.parse(sdata.mdate)))
1994
+ ? null
1995
+ : Number(JSON.parse(sdata.mdate)),
2033
1996
  },
2034
1997
  },
2035
- ),
2036
- );
2037
- await Promise.all(promises);
2038
- delete sdata.cdate;
2039
- delete sdata.mdate;
2040
- for (const name in sdata) {
2041
- const value = sdata[name];
2042
- const uvalue = JSON.parse(value);
2043
- if (value === undefined) {
2044
- continue;
2045
- }
2046
- const storageValue =
2047
- typeof uvalue === 'number'
2048
- ? 'N'
2049
- : typeof uvalue === 'string'
2050
- ? 'S'
2051
- : value;
1998
+ );
2052
1999
  const promises = [];
2053
2000
  promises.push(
2054
2001
  this.queryRun(
2055
- `INSERT INTO ${PostgreSQLDriver.escape(
2002
+ `DELETE FROM ${PostgreSQLDriver.escape(
2056
2003
  `${this.prefix}data_${etype}`,
2057
- )} ("guid", "name", "value") VALUES (decode(@guid, 'hex'), @name, @storageValue);`,
2004
+ )} WHERE "guid"=decode(@guid, 'hex');`,
2058
2005
  {
2059
2006
  etypes: [etype],
2060
2007
  params: {
2061
2008
  guid,
2062
- name,
2063
- storageValue,
2064
2009
  },
2065
2010
  },
2066
2011
  ),
2067
2012
  );
2068
2013
  promises.push(
2069
2014
  this.queryRun(
2070
- `INSERT INTO ${PostgreSQLDriver.escape(
2015
+ `DELETE FROM ${PostgreSQLDriver.escape(
2071
2016
  `${this.prefix}comparisons_${etype}`,
2072
- )} ("guid", "name", "truthy", "string", "number") VALUES (decode(@guid, 'hex'), @name, @truthy, @string, @number);`,
2017
+ )} WHERE "guid"=decode(@guid, 'hex');`,
2018
+ {
2019
+ etypes: [etype],
2020
+ params: {
2021
+ guid,
2022
+ },
2023
+ },
2024
+ ),
2025
+ );
2026
+ promises.push(
2027
+ this.queryRun(
2028
+ `DELETE FROM ${PostgreSQLDriver.escape(
2029
+ `${this.prefix}references_${etype}`,
2030
+ )} WHERE "guid"=decode(@guid, 'hex');`,
2073
2031
  {
2074
2032
  etypes: [etype],
2075
2033
  params: {
2076
2034
  guid,
2077
- name,
2078
- truthy: !!uvalue,
2079
- string: `${uvalue}`,
2080
- number: isNaN(Number(uvalue)) ? null : Number(uvalue),
2081
2035
  },
2082
2036
  },
2083
2037
  ),
2084
2038
  );
2085
- const references = this.findReferences(value);
2086
- for (const reference of references) {
2039
+ await Promise.all(promises);
2040
+ delete sdata.cdate;
2041
+ delete sdata.mdate;
2042
+ for (const name in sdata) {
2043
+ const value = sdata[name];
2044
+ const uvalue = JSON.parse(value);
2045
+ if (value === undefined) {
2046
+ continue;
2047
+ }
2048
+ const storageValue =
2049
+ typeof uvalue === 'number'
2050
+ ? 'N'
2051
+ : typeof uvalue === 'string'
2052
+ ? 'S'
2053
+ : value;
2054
+ const promises = [];
2055
+ promises.push(
2056
+ this.queryRun(
2057
+ `INSERT INTO ${PostgreSQLDriver.escape(
2058
+ `${this.prefix}data_${etype}`,
2059
+ )} ("guid", "name", "value") VALUES (decode(@guid, 'hex'), @name, @storageValue);`,
2060
+ {
2061
+ etypes: [etype],
2062
+ params: {
2063
+ guid,
2064
+ name,
2065
+ storageValue,
2066
+ },
2067
+ },
2068
+ ),
2069
+ );
2087
2070
  promises.push(
2088
2071
  this.queryRun(
2089
2072
  `INSERT INTO ${PostgreSQLDriver.escape(
2090
- `${this.prefix}references_${etype}`,
2091
- )} ("guid", "name", "reference") VALUES (decode(@guid, 'hex'), @name, decode(@reference, 'hex'));`,
2073
+ `${this.prefix}comparisons_${etype}`,
2074
+ )} ("guid", "name", "truthy", "string", "number") VALUES (decode(@guid, 'hex'), @name, @truthy, @string, @number);`,
2092
2075
  {
2093
2076
  etypes: [etype],
2094
2077
  params: {
2095
2078
  guid,
2096
2079
  name,
2097
- reference,
2080
+ truthy: !!uvalue,
2081
+ string: `${uvalue}`,
2082
+ number: isNaN(Number(uvalue)) ? null : Number(uvalue),
2098
2083
  },
2099
2084
  },
2100
2085
  ),
2101
2086
  );
2087
+ const references = this.findReferences(value);
2088
+ for (const reference of references) {
2089
+ promises.push(
2090
+ this.queryRun(
2091
+ `INSERT INTO ${PostgreSQLDriver.escape(
2092
+ `${this.prefix}references_${etype}`,
2093
+ )} ("guid", "name", "reference") VALUES (decode(@guid, 'hex'), @name, decode(@reference, 'hex'));`,
2094
+ {
2095
+ etypes: [etype],
2096
+ params: {
2097
+ guid,
2098
+ name,
2099
+ reference,
2100
+ },
2101
+ },
2102
+ ),
2103
+ );
2104
+ }
2102
2105
  }
2106
+ await Promise.all(promises);
2107
+ await this.commit(`nymph-import-entity-${guid}`);
2108
+ } catch (e: any) {
2109
+ await this.rollback(`nymph-import-entity-${guid}`);
2110
+ throw e;
2103
2111
  }
2104
- await Promise.all(promises);
2105
2112
  },
2106
2113
  async (name, curUid) => {
2107
- await this.queryRun(
2108
- `DELETE FROM ${PostgreSQLDriver.escape(
2109
- `${this.prefix}uids`,
2110
- )} WHERE "name"=@name;`,
2111
- {
2112
- params: {
2113
- name,
2114
+ try {
2115
+ await this.internalTransaction(`nymph-import-uid-${name}`);
2116
+ await this.queryRun(
2117
+ `DELETE FROM ${PostgreSQLDriver.escape(
2118
+ `${this.prefix}uids`,
2119
+ )} WHERE "name"=@name;`,
2120
+ {
2121
+ params: {
2122
+ name,
2123
+ },
2114
2124
  },
2115
- },
2116
- );
2117
- await this.queryRun(
2118
- `INSERT INTO ${PostgreSQLDriver.escape(
2119
- `${this.prefix}uids`,
2120
- )} ("name", "cur_uid") VALUES (@name, @curUid);`,
2121
- {
2122
- params: {
2123
- name,
2124
- curUid,
2125
+ );
2126
+ await this.queryRun(
2127
+ `INSERT INTO ${PostgreSQLDriver.escape(
2128
+ `${this.prefix}uids`,
2129
+ )} ("name", "cur_uid") VALUES (@name, @curUid);`,
2130
+ {
2131
+ params: {
2132
+ name,
2133
+ curUid,
2134
+ },
2125
2135
  },
2126
- },
2127
- );
2136
+ );
2137
+ await this.commit(`nymph-import-uid-${name}`);
2138
+ } catch (e: any) {
2139
+ await this.rollback(`nymph-import-uid-${name}`);
2140
+ throw e;
2141
+ }
2128
2142
  },
2129
2143
  async () => {
2130
- await this.internalTransaction('nymph-import');
2144
+ if (transaction) {
2145
+ await this.internalTransaction('nymph-import');
2146
+ }
2131
2147
  },
2132
2148
  async () => {
2133
- await this.commit('nymph-import');
2149
+ if (transaction) {
2150
+ await this.commit('nymph-import');
2151
+ }
2134
2152
  },
2135
2153
  );
2136
2154
 
2137
2155
  return result;
2138
2156
  } catch (e: any) {
2139
- await this.rollback('nymph-import');
2157
+ if (transaction) {
2158
+ await this.rollback('nymph-import');
2159
+ }
2140
2160
  return false;
2141
2161
  }
2142
2162
  }
package/tsconfig.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "lib": ["ES2021"],
6
6
  "target": "ES2021",
7
7
  "noImplicitAny": true,
8
- "removeComments": true,
8
+ "removeComments": false,
9
9
  "sourceMap": true,
10
10
  "outDir": "dist",
11
11
  "resolveJsonModule": true,