@nymphjs/driver-mysql 1.0.0-beta.120 → 1.0.0-beta.122

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,22 @@
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.122](https://forge.sciactive.com/sciactive/nymphjs/compare/v1.0.0-beta.121...v1.0.0-beta.122) (2026-09-22)
7
+
8
+ ### Bug Fixes
9
+
10
+ - issues causing failing tests and update other tests ([f249bb9](https://forge.sciactive.com/sciactive/nymphjs/commits/f249bb97cfd9edb5559c11c2c1e6c1c8a07af7d8))
11
+
12
+ ### Features
13
+
14
+ - save and delete now throw on errors instead of returning false, refresh throws on db errors ([536db88](https://forge.sciactive.com/sciactive/nymphjs/commits/536db8804ac515cd3e1e9c30b104f674e267916a))
15
+
16
+ # [1.0.0-beta.121](https://forge.sciactive.com/sciactive/nymphjs/compare/v1.0.0-beta.120...v1.0.0-beta.121) (2026-09-17)
17
+
18
+ ### Bug Fixes
19
+
20
+ - improve transaction creation on root instance, move tilmeld entity tests to exported artifacts ([9f48d27](https://forge.sciactive.com/sciactive/nymphjs/commits/9f48d279c2fba9ae188e52fe996f50e58a39d4a7))
21
+
6
22
  # [1.0.0-beta.120](https://forge.sciactive.com/sciactive/nymphjs/compare/v1.0.0-beta.119...v1.0.0-beta.120) (2026-09-01)
7
23
 
8
24
  **Note:** Version bump only for package @nymphjs/driver-mysql
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Nymph MySQL Driver
2
2
 
3
- Powerful object data storage and querying.
3
+ Application Data and Access Framework for Node.js and the browser.
4
+
5
+ https://nymph.io/
4
6
 
5
7
  The MySQL driver lets you configure Nymph to query and save data to a MySQL database.
6
8
 
@@ -36,7 +38,7 @@ See the [config declaration file](src/conf/d.ts).
36
38
 
37
39
  # License
38
40
 
39
- Copyright 2021-2025 SciActive Inc
41
+ Copyright 2021-2026 SciActive Inc
40
42
 
41
43
  Licensed under the Apache License, Version 2.0 (the "License");
42
44
  you may not use this file except in compliance with the License.
@@ -4,6 +4,7 @@ import { MySQLDriverConfig } from './conf/index.js';
4
4
  type MySQLDriverTransaction = {
5
5
  connection: PoolConnection | null;
6
6
  count: number;
7
+ latestPromise: Promise<any>;
7
8
  };
8
9
  /**
9
10
  * The MySQL Nymph database driver.
@@ -141,7 +142,7 @@ export default class MySQLDriver extends NymphDriver {
141
142
  rollback(name: string): Promise<boolean>;
142
143
  saveEntity(entity: EntityInterface): Promise<boolean>;
143
144
  setUID(name: string, curUid: number): Promise<boolean>;
144
- protected internalTransaction(name: string): Promise<MySQLDriverTransaction>;
145
+ protected internalTransaction(name: string, setOnSelf?: boolean): Promise<MySQLDriverTransaction>;
145
146
  startTransaction(name: string): Promise<import("@nymphjs/nymph").Nymph>;
146
147
  private removeTilmeldOldRows;
147
148
  needsMigration(): Promise<'json' | 'tokens' | 'tilmeldColumns' | false>;
@@ -1,6 +1,6 @@
1
1
  import mysql from 'mysql2';
2
2
  import SqlString from 'sqlstring';
3
- import { NymphDriver, EntityUniqueConstraintError, InvalidParametersError, NotConfiguredError, QueryFailedError, UnableToConnectError, xor, } from '@nymphjs/nymph';
3
+ import { NymphDriver, EntityConflictError, EntityInvalidDataError, EntityUniqueConstraintError, InvalidParametersError, NotConfiguredError, QueryFailedError, UnableToConnectError, xor, } from '@nymphjs/nymph';
4
4
  import { makeTableSuffix } from '@nymphjs/guid';
5
5
  import { MySQLDriverConfigDefaults as defaults, } from './conf/index.js';
6
6
  /**
@@ -327,7 +327,7 @@ export default class MySQLDriver extends NymphDriver {
327
327
  }
328
328
  else if (errorCode === 2006) {
329
329
  // If the MySQL server disconnected, reconnect to it.
330
- if (!this.connect()) {
330
+ if (!(await this.connect())) {
331
331
  throw new QueryFailedError('Query failed: ' + e?.errno + ' - ' + e?.message, query, e?.errno);
332
332
  }
333
333
  try {
@@ -345,18 +345,26 @@ export default class MySQLDriver extends NymphDriver {
345
345
  queryArray(query, { etypes = [], params = {}, } = {}) {
346
346
  const { query: newQuery, params: newParams } = this.translateQuery(query, params);
347
347
  return this.query(async () => {
348
- const results = await new Promise((resolve, reject) => {
349
- try {
350
- (this.transaction?.connection ?? this.link).query(newQuery, newParams, (error, results) => {
351
- if (error) {
352
- reject(error);
353
- }
354
- resolve(results);
355
- });
356
- }
357
- catch (e) {
358
- reject(e);
348
+ const results = await new Promise(async (resolve, reject) => {
349
+ // Only do one query at a time in transations.
350
+ let myResolve = () => { };
351
+ const myPromise = new Promise((resolve) => {
352
+ myResolve = resolve;
353
+ });
354
+ if (this.transaction) {
355
+ const latestPromise = this.transaction.latestPromise;
356
+ this.transaction.latestPromise = myPromise;
357
+ await latestPromise;
359
358
  }
359
+ (this.transaction?.connection ?? this.link).query(newQuery, newParams, (error, results) => {
360
+ if (error) {
361
+ reject(error);
362
+ }
363
+ else {
364
+ resolve(results);
365
+ }
366
+ myResolve();
367
+ });
360
368
  });
361
369
  return results;
362
370
  }, `${query} -- ${JSON.stringify(params)}`, etypes);
@@ -364,37 +372,54 @@ export default class MySQLDriver extends NymphDriver {
364
372
  queryGet(query, { etypes = [], params = {}, } = {}) {
365
373
  const { query: newQuery, params: newParams } = this.translateQuery(query, params);
366
374
  return this.query(async () => {
367
- const results = await new Promise((resolve, reject) => {
368
- try {
369
- (this.transaction?.connection ?? this.link).query(newQuery, newParams, (error, results) => {
370
- if (error) {
371
- reject(error);
372
- }
373
- resolve(results);
374
- });
375
- }
376
- catch (e) {
377
- reject(e);
375
+ const results = await new Promise(async (resolve, reject) => {
376
+ // Only do one query at a time in transations.
377
+ let myResolve = () => { };
378
+ const myPromise = new Promise((resolve) => {
379
+ myResolve = resolve;
380
+ });
381
+ if (this.transaction) {
382
+ const latestPromise = this.transaction.latestPromise;
383
+ this.transaction.latestPromise = myPromise;
384
+ await latestPromise;
378
385
  }
386
+ (this.transaction?.connection ?? this.link).query(newQuery, newParams, (error, results) => {
387
+ if (error) {
388
+ reject(error);
389
+ }
390
+ else {
391
+ resolve(results);
392
+ }
393
+ myResolve();
394
+ });
379
395
  });
380
396
  return results[0];
381
397
  }, `${query} -- ${JSON.stringify(params)}`, etypes);
382
398
  }
383
- queryRun(query, { etypes = [], params = {}, } = {}) {
399
+ queryRun(query, { etypes = [], params = {}, transaction, } = {}) {
384
400
  const { query: newQuery, params: newParams } = this.translateQuery(query, params);
385
401
  return this.query(async () => {
386
- const results = await new Promise((resolve, reject) => {
387
- try {
388
- (this.transaction?.connection ?? this.link).query(newQuery, newParams, (error, results) => {
389
- if (error) {
390
- reject(error);
391
- }
392
- resolve(results);
393
- });
394
- }
395
- catch (e) {
396
- reject(e);
402
+ const results = await new Promise(async (resolve, reject) => {
403
+ // Only do one query at a time in transations.
404
+ let myResolve = () => { };
405
+ const myPromise = new Promise((resolve) => {
406
+ myResolve = resolve;
407
+ });
408
+ const trans = transaction ?? this.transaction;
409
+ if (trans) {
410
+ const latestPromise = trans.latestPromise;
411
+ trans.latestPromise = myPromise;
412
+ await latestPromise;
397
413
  }
414
+ (trans?.connection ?? this.link).query(newQuery, newParams, (error, results) => {
415
+ if (error) {
416
+ reject(error);
417
+ }
418
+ else {
419
+ resolve(results);
420
+ }
421
+ myResolve();
422
+ });
398
423
  });
399
424
  return { changes: results.changedRows ?? 0 };
400
425
  }, `${query} -- ${JSON.stringify(params)}`, etypes);
@@ -2432,7 +2457,7 @@ export default class MySQLDriver extends NymphDriver {
2432
2457
  const result = await this.saveEntityRowLike(entity, async ({ guid, tags, data, sdata, uniques, cdate, etype }) => {
2433
2458
  if (Object.keys(data).length === 0 &&
2434
2459
  Object.keys(sdata).length === 0) {
2435
- return false;
2460
+ throw new EntityInvalidDataError('Entity contains no data.');
2436
2461
  }
2437
2462
  let { user, group, acUser, acGroup, acOther, acRead, acWrite, acFull, } = this.removeAndReturnACValues(etype, data, sdata);
2438
2463
  await this.queryRun(`INSERT INTO ${MySQLDriver.escape(`${this.prefix}entities_${etype}`)} (\`guid\`, \`tags\`, \`cdate\`, \`mdate\`, \`user\`, \`group\`, \`acUser\`, \`acGroup\`, \`acOther\`, \`acRead\`, \`acWrite\`, \`acFull\`) VALUES (UNHEX(@guid), @tags, @cdate, @cdate, ${user == null ? '@user' : 'UNHEX(@user)'}, ${group == null ? '@group' : 'UNHEX(@group)'}, @acUser, @acGroup, @acOther, @acRead, @acWrite, @acFull);`, {
@@ -2456,7 +2481,7 @@ export default class MySQLDriver extends NymphDriver {
2456
2481
  }, async ({ entity, guid, tags, data, sdata, uniques, mdate, etype }) => {
2457
2482
  if (Object.keys(data).length === 0 &&
2458
2483
  Object.keys(sdata).length === 0) {
2459
- return false;
2484
+ throw new EntityInvalidDataError('Entity contains no data.');
2460
2485
  }
2461
2486
  let { user, group, acUser, acGroup, acOther, acRead, acWrite, acFull, } = this.removeAndReturnACValues(etype, data, sdata);
2462
2487
  if (this.config.rowLocking) {
@@ -2547,6 +2572,9 @@ export default class MySQLDriver extends NymphDriver {
2547
2572
  if (this.config.tableLocking) {
2548
2573
  await this.queryRun('UNLOCK TABLES;');
2549
2574
  }
2575
+ if (!success && info.changes === 0) {
2576
+ throw new EntityConflictError("Entity either doesn't exist or is newer in the DB.");
2577
+ }
2550
2578
  return success;
2551
2579
  }, async () => {
2552
2580
  await this.internalTransaction('nymph-save');
@@ -2555,7 +2583,7 @@ export default class MySQLDriver extends NymphDriver {
2555
2583
  if (inTransaction) {
2556
2584
  inTransaction = false;
2557
2585
  if (success) {
2558
- await this.commit('nymph-save');
2586
+ success = await this.commit('nymph-save');
2559
2587
  }
2560
2588
  else {
2561
2589
  await this.rollback('nymph-save');
@@ -2585,33 +2613,36 @@ export default class MySQLDriver extends NymphDriver {
2585
2613
  });
2586
2614
  return true;
2587
2615
  }
2588
- async internalTransaction(name) {
2616
+ async internalTransaction(name, setOnSelf = true) {
2589
2617
  if (name == null || typeof name !== 'string' || name.length === 0) {
2590
2618
  throw new InvalidParametersError('Transaction start attempted without a name.');
2591
2619
  }
2592
- if (!this.transaction || this.transaction.count === 0) {
2620
+ let transaction = this.transaction;
2621
+ if (!transaction) {
2593
2622
  // Lock to one connection.
2594
- this.transaction = {
2623
+ transaction = {
2595
2624
  count: 0,
2596
2625
  connection: await this.getConnection(),
2626
+ latestPromise: Promise.resolve(),
2597
2627
  };
2598
- if (this.config.transactions) {
2599
- // We're not in a transaction yet, so start one.
2600
- await this.queryRun('START TRANSACTION;');
2628
+ if (setOnSelf) {
2629
+ this.transaction = transaction;
2601
2630
  }
2602
2631
  }
2632
+ if (this.config.transactions && transaction.count === 0) {
2633
+ // We're not in a transaction yet, so start one.
2634
+ await this.queryRun('START TRANSACTION;', { transaction });
2635
+ }
2636
+ transaction.count++;
2603
2637
  if (this.config.transactions) {
2604
- await this.queryRun(`SAVEPOINT ${MySQLDriver.escape(name)};`);
2638
+ await this.queryRun(`SAVEPOINT ${MySQLDriver.escape(name)};`, {
2639
+ transaction,
2640
+ });
2605
2641
  }
2606
- this.transaction.count++;
2607
- return this.transaction;
2642
+ return transaction;
2608
2643
  }
2609
2644
  async startTransaction(name) {
2610
- const inTransaction = await this.inTransaction();
2611
- const transaction = await this.internalTransaction(name);
2612
- if (!inTransaction) {
2613
- this.transaction = null;
2614
- }
2645
+ const transaction = await this.internalTransaction(name, false);
2615
2646
  const nymph = this.nymph.clone();
2616
2647
  nymph.driver.transaction = transaction;
2617
2648
  return nymph;
@@ -1 +1 @@
1
- {"version":3,"file":"MySQLDriver.js","sourceRoot":"","sources":["../src/MySQLDriver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,QAAQ,CAAC;AAC3B,OAAO,SAAS,MAAM,WAAW,CAAC;AAOlC,OAAO,EACL,WAAW,EAUX,2BAA2B,EAC3B,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,GAAG,GACJ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAEL,yBAAyB,IAAI,QAAQ,GACtC,MAAM,iBAAiB,CAAC;AAOzB;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAC3C,MAAM,CAAoB;IACzB,WAAW,CAAc;IACvB,MAAM,CAAS;IACf,SAAS,GAAY,KAAK,CAAC;IACrC,iFAAiF;IACvE,IAAI,CAAO;IACX,WAAW,GAAkC,IAAI,CAAC;IAE5D,MAAM,CAAC,MAAM,CAAC,KAAa;QACzB,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,KAAa;QAC9B,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,YACE,MAAkC,EAClC,IAAW,EACX,WAAoC;QAEpC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,QAAQ,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,WAAW,GAAG,gBAAgB,IAAI;YACrC,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;IAED;;;;OAIG;IACI,KAAK;QACV,OAAO,IAAI,WAAW,CACpB,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,aAAa,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAC1E,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO;QAClB,uDAAuD;QACvD,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,UAAU,GAAmB,MAAM,IAAI,OAAO,CAClD,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAClB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACnC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CACjC,CACJ,CAAC;gBACF,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;QAED,iCAAiC;QACjC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;oBAC3B,GAAG,IAAI,CAAC,WAAW;oBACnB,OAAO,EAAE,aAAa;iBACvB,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IACE,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW;oBACrC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,OAAO;oBACjC,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,UAAU;oBACxC,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO,EACrC,CAAC;oBACD,MAAM,IAAI,kBAAkB,CAC1B,mDAAmD,CACpD,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,oBAAoB,CAAC,qBAAqB,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACI,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,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACI,WAAW;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,KAAa;QAC7C,2BAA2B;QAC3B,MAAM,IAAI,CAAC,QAAQ,CACjB,8BAA8B,WAAW,CAAC,MAAM,CAC9C,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC;;;;;;;;;;;;;;;;;;;;;;;;;;mBA0BY,IAAI,CAAC,MAAM,CAAC,MAAM;mDACc,CAC9C,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAC,KAAa;QACrD,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,kCAAkC,CACpC,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,mCAAmC,CACrC,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,0CAA0C,CAC5C,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,2CAA2C,CAC7C,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,2CAA2C,CAC7C,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,kCAAkC,CACpC,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,mCAAmC,CACrC,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,kCAAkC,CACpC,CAAC;QACF,MAAM,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,4BAA4B,CAAC,KAAa;QACtD,MAAM,IAAI,CAAC,QAAQ,CACjB,sCAAsC,WAAW,CAAC,MAAM,CACtD,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,sCAAsC,CACxC,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CACjB,wCAAwC,WAAW,CAAC,MAAM,CACxD,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,wCAAwC,CAC1C,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CACjB,iCAAiC,WAAW,CAAC,MAAM,CACjD,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,4BAA4B,CAC9B,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CACjB,kCAAkC,WAAW,CAAC,MAAM,CAClD,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,6BAA6B,CAC/B,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CACjB,kCAAkC,WAAW,CAAC,MAAM,CAClD,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,6BAA6B,CAC/B,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CACjB,0CAA0C,WAAW,CAAC,MAAM,CAC1D,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,gBAAgB,CAClB,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CACjB,2CAA2C,WAAW,CAAC,MAAM,CAC3D,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,iBAAiB,CACnB,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CACjB,0CAA0C,WAAW,CAAC,MAAM,CAC1D,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,gBAAgB,CAClB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,KAAa;QACzC,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,UAAU,GAAG,eAAe,WAAW,CAAC,MAAM,CAC5C,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,8BAA8B,CAAC;QAClC,CAAC;QACD,yBAAyB;QACzB,MAAM,IAAI,CAAC,QAAQ,CACjB,8BAA8B,WAAW,CAAC,MAAM,CAC9C,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B;wCACiC,UAAU;;;;;;;;;;;;;;;;;mBAiB/B,IAAI,CAAC,MAAM,CAAC,MAAM;mDACc,CAC9C,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,KAAa;QAC/C,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,UAAU,GAAG,eAAe,WAAW,CAAC,MAAM,CAC5C,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,8BAA8B,CAAC;QAClC,CAAC;QACD,+BAA+B;QAC/B,MAAM,IAAI,CAAC,QAAQ,CACjB,8BAA8B,WAAW,CAAC,MAAM,CAC9C,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC;wCACiC,UAAU;;;;;;;;;;;;mBAY/B,IAAI,CAAC,MAAM,CAAC,MAAM;mDACc,CAC9C,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,KAAa;QAC3C,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,UAAU,GAAG,eAAe,WAAW,CAAC,MAAM,CAC5C,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,8BAA8B,CAAC;QAClC,CAAC;QACD,2BAA2B;QAC3B,MAAM,IAAI,CAAC,QAAQ,CACjB,8BAA8B,WAAW,CAAC,MAAM,CAC9C,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC;wCACiC,UAAU;;;;;;;;mBAQ/B,IAAI,CAAC,MAAM,CAAC,MAAM;mDACc,CAC9C,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,KAAa;QAC5C,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,UAAU,GAAG,eAAe,WAAW,CAAC,MAAM,CAC5C,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,8BAA8B,CAAC;QAClC,CAAC;QACD,mCAAmC;QACnC,0CAA0C;QAC1C,MAAM,IAAI,CAAC,QAAQ,CACjB,8BAA8B,WAAW,CAAC,MAAM,CAC9C,GAAG,IAAI,CAAC,MAAM,WAAW,KAAK,EAAE,CACjC;wCACiC,UAAU;;;;;mBAK/B,IAAI,CAAC,MAAM,CAAC,MAAM;mDACc,CAC9C,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,YAAY,CAAC,KAAK,GAAkB,IAAI;QACpD,MAAM,IAAI,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAC;QAC7D,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,wBAAwB;YACxB,MAAM,IAAI,CAAC,QAAQ,CACjB,8BAA8B,WAAW,CAAC,MAAM,CAC9C,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB;;;;mBAIU,IAAI,CAAC,MAAM,CAAC,MAAM;mDACc,CAC5C,CAAC;QACJ,CAAC;QACD,IACE,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,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,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,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,KAAK,CACjB,QAAW,EACX,KAAa,EACb,MAAM,GAAa,EAAE;QAGrB,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO,MAAM,QAAQ,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,CAAC,EAAE,KAAK,CAAC;YAC3B,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;gBACtD,8CAA8C;gBAC9C,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,gBAAgB,CACxB,gBAAgB,GAAG,EAAE,EAAE,KAAK,GAAG,KAAK,GAAG,EAAE,EAAE,OAAO,EAClD,KAAK,EACL,EAAE,EAAE,KAAK,CACV,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBAC9B,MAAM,IAAI,2BAA2B,CAAC,8BAA8B,CAAC,CAAC;YACxE,CAAC;iBAAM,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBAC9B,qDAAqD;gBACrD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;oBACpB,MAAM,IAAI,gBAAgB,CACxB,gBAAgB,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,OAAO,EAChD,KAAK,EACL,CAAC,EAAE,KAAK,CACT,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC;oBACH,OAAO,MAAM,QAAQ,EAAE,CAAC;gBAC1B,CAAC;gBAAC,OAAO,EAAO,EAAE,CAAC;oBACjB,MAAM,IAAI,gBAAgB,CACxB,gBAAgB,GAAG,EAAE,EAAE,KAAK,GAAG,KAAK,GAAG,EAAE,EAAE,OAAO,EAClD,KAAK,EACL,EAAE,EAAE,KAAK,CACV,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,gBAAgB,CACxB,gBAAgB,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,OAAO,EAChD,KAAK,EACL,CAAC,EAAE,KAAK,CACT,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,UAAU,CAChB,KAAa,EACb,EACE,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EAAE,GACZ,GAGG,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,GAAQ,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACzD,IAAI,CAAC;oBACH,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAC/C,QAAQ,EACR,SAAS,EACT,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;wBACjB,IAAI,KAAK,EAAE,CAAC;4BACV,MAAM,CAAC,KAAK,CAAC,CAAC;wBAChB,CAAC;wBACD,OAAO,CAAC,OAAO,CAAC,CAAC;oBACnB,CAAC,CACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,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,GACZ,GAGG,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,GAAQ,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACzD,IAAI,CAAC;oBACH,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAC/C,QAAQ,EACR,SAAS,EACT,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;wBACjB,IAAI,KAAK,EAAE,CAAC;4BACV,MAAM,CAAC,KAAK,CAAC,CAAC;wBAChB,CAAC;wBACD,OAAO,CAAC,OAAO,CAAC,CAAC;oBACnB,CAAC,CACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;QACpB,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,GACZ,GAGG,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,GAAQ,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACzD,IAAI,CAAC;oBACH,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAC/C,QAAQ,EACR,SAAS,EACT,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;wBACjB,IAAI,KAAK,EAAE,CAAC;4BACV,MAAM,CAAC,KAAK,CAAC,CAAC;wBAChB,CAAC;wBACD,OAAO,CAAC,OAAO,CAAC,CAAC;oBACnB,CAAC,CACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC;QAC/C,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,sBAAsB,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,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAAqB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxE,CAAC;QACD,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,OAAO,EAAE,CAAC;YACvC,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,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,+BAA+B,EAChC;gBACE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACf,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,+BAA+B,EAChC;gBACE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACf,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,+BAA+B,EAChC;gBACE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACf,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,+BAA+B,EAChC;gBACE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACf,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,WAAW,KAAK,EAAE,CACjC,+BAA+B,EAChC;gBACE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACf,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC;YACrE,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACpC,MAAM,CAAC,CAAC;QACV,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAClC,6CAA6C;QAC7C,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,sBAAsB,CAAC,wBAAwB,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,wBAAwB,EACzB;YACE,MAAM,EAAE;gBACN,IAAI;aACL;SACF,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,KAAa;QACnC,MAAM,OAAO,GAIP,EAAE,CAAC;QAET,KAAK,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI;YAC1B,CAAC,MAAM,EAAE,OAAO,CAAC;YACjB,CAAC,YAAY,EAAE,iBAAiB,CAAC;YACjC,CAAC,QAAQ,EAAE,sBAAsB,CAAC;SAKjC,EAAE,CAAC;YACJ,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,UAAU,CAC5C,qBAAqB,WAAW,CAAC,MAAM,CACrC,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,KAAK,EAAE,CAClC,2DAA2D,EAC5D;gBACE,MAAM,EAAE;oBACN,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,KAAK,eAAe,MAAM,EAAE;iBAChE;aACF,CACF,CAAC;YACF,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC;oBACX,KAAK;oBACL,IAAI,EAAG,eAAe,CAAC,QAAmB,CAAC,SAAS,CAClD,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,KAAK,aAAa,CAAC,MAAM,EACnD,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAChD;oBACD,QAAQ,EACN,CAAE,eAAe,CAAC,UAAqB,CAAC,KAAK,CAC3C,8CAA8C,CAC/C,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,KAAa,EACb,UAIC;QAED,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,WAAW,CAAC,MAAM,CAChC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,cAAc,UAAU,CAAC,IAAI,OAAO,CAChE,mBAAmB,WAAW,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,kBAAkB,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,yDAAyD,CACzH,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,WAAW,CAAC,MAAM,CAChC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,cAAc,UAAU,CAAC,IAAI,SAAS,CAClE,mBAAmB,WAAW,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,kBAAkB,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CACvF,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,WAAW,CAAC,MAAM,CAChC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,cAAc,UAAU,CAAC,IAAI,SAAS,CAClE,mBAAmB,WAAW,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,kBAAkB,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAClF,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,WAAW,CAAC,MAAM,CAChC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,cAAc,UAAU,CAAC,IAAI,SAAS,CAClE,mBAAmB,WAAW,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,kBAAkB,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAClF,CAAC;QACJ,CAAC;aAAM,IAAI,UAAU,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,WAAW,CAAC,MAAM,CAChC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,cAAc,UAAU,CAAC,IAAI,iBAAiB,CAChF,mBAAmB,WAAW,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,kBAAkB,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,+BAA+B,CAC/F,CAAC;QACJ,CAAC;aAAM,IAAI,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,QAAQ,CACjB,gBAAgB,WAAW,CAAC,MAAM,CAChC,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,cAAc,UAAU,CAAC,IAAI,sBAAsB,CACjF,mBAAmB,WAAW,CAAC,MAAM,CACpC,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,kBAAkB,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,yCAAyC,CACzG,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,KAAa,EACb,KAAuC,EACvC,IAAY;QAEZ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC;YACH,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACrB,MAAM,IAAI,CAAC,QAAQ,CACjB,cAAc,WAAW,CAAC,MAAM,CAC9B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,cAAc,IAAI,OAAO,CACrD,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAAC,GAAG,CAC7D,CAAC;gBACF,MAAM,IAAI,CAAC,QAAQ,CACjB,cAAc,WAAW,CAAC,MAAM,CAC9B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,cAAc,IAAI,SAAS,CACvD,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAAC,GAAG,CAC7D,CAAC;gBACF,MAAM,IAAI,CAAC,QAAQ,CACjB,cAAc,WAAW,CAAC,MAAM,CAC9B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,cAAc,IAAI,SAAS,CACvD,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAAC,GAAG,CAC7D,CAAC;gBACF,MAAM,IAAI,CAAC,QAAQ,CACjB,cAAc,WAAW,CAAC,MAAM,CAC9B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,cAAc,IAAI,SAAS,CACvD,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAAC,GAAG,CAC7D,CAAC;YACJ,CAAC;iBAAM,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;gBAClC,MAAM,IAAI,CAAC,QAAQ,CACjB,cAAc,WAAW,CAAC,MAAM,CAC9B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,cAAc,IAAI,iBAAiB,CACrE,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CAAC,GAAG,CACnE,CAAC;YACJ,CAAC;iBAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,CAAC,QAAQ,CACjB,cAAc,WAAW,CAAC,MAAM,CAC9B,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,cAAc,IAAI,sBAAsB,CACtE,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAAC,GAAG,CAC/D,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,SAAS,KAAK,IAAI,EAAE,CAAC;gBAC1B,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,SAAS;QACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAClC,gIAAgI,EAChI;YACE,MAAM,EAAE;gBACN,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBACxB,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,GAAG;aACxC;SACF,CACF,CAAC;QACF,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,CAAC,kBAAkB;QAK9B,IACE,MAAM;YACJ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE;;;;qBAII,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE;CAC/C;SACM,EACD,CAAC;YACD,OAAO;QACT,CAAC;QAED,IACE,MAAM;YACJ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE;;;;;;CAMhB;SACM,EACD,CAAC;YACD,OAAO;QACT,CAAC;QAED,eAAe;QACf,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAC9B,iBAAiB,WAAW,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,qBAAqB,CACvB,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;gBACtE,OAAO;YACT,CAAC;QACH,CAAC;QAED,IACE,MAAM;YACJ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE;;;;;;CAMhB;SACM,EACD,CAAC;YACD,OAAO;QACT,CAAC;QAED,kBAAkB;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,mBAAmB;YACnB,MAAM,YAAY,GAAG,CACnB,MAAM,IAAI,CAAC,UAAU,CACnB;iBACO,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAAC;sBAChD,WAAW,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B;+BACoB,CACtB,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;qBAC1B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACZ,KAAK,CAAC,GAAG,CAAC;qBACV,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC;qBAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;gBACb,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;gBAChC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;gBAChC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;gBAChC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;gBAClC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;gBACpC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;gBACpC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3D,IAAI,mBAAmB,GAAa,EAAE,CAAC;gBACvC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,CAAC,CAAC;gBACzD,mBAAmB,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC7D,mBAAmB,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC7D,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;oBAC/B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;wBACjB,mBAAmB,CAAC,IAAI,CACtB,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,wBAAwB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CACrE,CAAC;oBACJ,CAAC;oBACD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;wBAClB,mBAAmB,CAAC,IAAI,CACtB,WAAW,IAAI,CAAC,SAAS,CAAC,CAAC,wBAAwB,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,CACxE,CAAC;oBACJ,CAAC;oBACD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;wBACnB,mBAAmB,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACjE,CAAC;oBACD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;wBACpB,mBAAmB,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACnE,CAAC;oBACD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;wBACpB,mBAAmB,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACnE,CAAC;oBACD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;wBACnB,mBAAmB,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACjE,CAAC;oBACD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;wBACpB,mBAAmB,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACnE,CAAC;oBACD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;wBACnB,mBAAmB,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACjE,CAAC;gBACH,CAAC;gBACD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;oBAC7B,wDAAwD;oBACxD,4DAA4D;oBAC5D,GAAG,CAAC;wBACF,MAAM,KAAK,GACT,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,GAAG;4BACvB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;4BACpC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,GAAG;gCACzB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;gCACpC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,GAAG;oCACzB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;oCAClC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;wBAC5B,mBAAmB,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;wBAC3D,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;oBACN,yCAAyC;oBACzC,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;gBAC9B,CAAC;gBACD,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAE7B,IAAI,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;oBACtE,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,eAAe,CACrB,OAAgB,EAChB,kBAAuC,EACvC,KAAa,EACb,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAChB,MAAM,GAAyB,EAAE,EACjC,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,EAAE,EAChB,MAAM,GAAa,EAAE,EACrB,YAAY,GAAuB,SAAS,EAC5C,oBAAoB,GAA2C,SAAS;QAExE,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,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,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACjE,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAC9C,kBAAkB,EAClB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;YACtC,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,iBAAiB;oCACjB,IAAI;oCACJ,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;wBACzB,CAAC;wBACD,MAAM;oBACR,KAAK,KAAK,CAAC;oBACX,KAAK,MAAM;wBACT,IAAI,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;4BAC9B,IAAI,QAAQ,EAAE,CAAC;gCACb,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;oCAC9B,IAAI,QAAQ,EAAE,CAAC;wCACb,QAAQ,IAAI,MAAM,CAAC;oCACrB,CAAC;oCACD,MAAM,GAAG,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;oCAChC,QAAQ,IAAI,OAAO,GAAG,sBAAsB,GAAG,GAAG,CAAC;oCACnD,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC;gCACnC,CAAC;4BACH,CAAC;iCAAM,CAAC;gCACN,MAAM,GAAG,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gCAChC,QAAQ,IAAI,OAAO,GAAG,sBAAsB,GAAG,GAAG,CAAC;gCACnD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;4BACjD,CAAC;wBACH,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,eAAe,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BAC5C,IAAI,UAAU,GAAG,EAAE,CAAC;4BACpB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;gCAC9B,UAAU,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;4BACjD,CAAC;4BACD,QAAQ;gCACN,SAAS;oCACT,OAAO;oCACP,qBAAqB;oCACrB,eAAe;oCACf,mBAAmB,CAAC;4BACtB,MAAM,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC;wBACvC,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,IACE,MAAM,KAAK,OAAO;gCAClB,MAAM,KAAK,OAAO;gCAClB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;oCACzB,CAAC,MAAM,KAAK,MAAM;wCAChB,MAAM,KAAK,OAAO;wCAClB,MAAM,KAAK,QAAQ;wCACnB,MAAM,KAAK,SAAS;wCACpB,MAAM,KAAK,SAAS;wCACpB,MAAM,KAAK,QAAQ;wCACnB,MAAM,KAAK,SAAS;wCACpB,MAAM,KAAK,QAAQ,CAAC,CAAC,EACzB,CAAC;gCACD,QAAQ;oCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,GAAG;wCACH,OAAO;wCACP,GAAG;wCACH,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;wCAC1B,eAAe,CAAC;4BACpB,CAAC;iCAAM,CAAC;gCACN,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gCACjC,QAAQ;oCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,6BAA6B;wCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;wCACjD,gBAAgB;wCAChB,OAAO;wCACP,sBAAsB;wCACtB,IAAI;wCACJ,GAAG,CAAC;gCACN,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;4BACxB,CAAC;wBACH,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,IACE,MAAM,KAAK,OAAO;gCAClB,MAAM,KAAK,OAAO;gCAClB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;oCACzB,CAAC,MAAM,KAAK,MAAM;wCAChB,MAAM,KAAK,OAAO;wCAClB,MAAM,KAAK,QAAQ;wCACnB,MAAM,KAAK,SAAS;wCACpB,MAAM,KAAK,SAAS;wCACpB,MAAM,KAAK,QAAQ;wCACnB,MAAM,KAAK,SAAS;wCACpB,MAAM,KAAK,QAAQ,CAAC,CAAC,EACzB,CAAC;gCACD,QAAQ;oCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,GAAG;wCACH,OAAO;wCACP,GAAG;wCACH,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;wCAC1B,eAAe,CAAC;4BACpB,CAAC;iCAAM,CAAC;gCACN,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gCACjC,QAAQ;oCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,6BAA6B;wCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;wCACjD,gBAAgB;wCAChB,OAAO;wCACP,sBAAsB;wCACtB,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,IACE,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;gCACzB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,EAC/B,CAAC;4BACD,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,GAAG;oCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC/B,IAAI;oCACJ,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;wBAC1B,CAAC;6BAAM,IACL,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;4BAC1B,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,EACnD,CAAC;4BACD,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,GAAG;oCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC/B,UAAU;oCACV,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnC,CAAC;6BAAM,IACL,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;4BAC1B,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;gCACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;gCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,EAC3B,CAAC;4BACD,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,GAAG;oCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC/B,IAAI;oCACJ,KAAK,CAAC;4BACR,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gCACxC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;gCACnC,CAAC,CAAC,EAAE,CAAC;wBACT,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACjD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACjD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,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,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gCACxB,QAAQ;oCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,6BAA6B;wCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;wCACjD,gBAAgB;wCAChB,OAAO;wCACP,sBAAsB;wCACtB,IAAI;wCACJ,kEAAkE;wCAClE,KAAK;wCACL,0BAA0B,CAAC;4BAC/B,CAAC;iCAAM,CAAC;gCACN,QAAQ;oCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,6BAA6B;wCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;wCACjD,gBAAgB;wCAChB,OAAO;wCACP,sBAAsB;wCACtB,IAAI;wCACJ,oBAAoB;wCACpB,KAAK;wCACL,YAAY,CAAC;4BACjB,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,SAAS,CAAC;oBACf,KAAK,UAAU;wBACb,IACE,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;gCACzB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,EAC/B,CAAC;4BACD,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,GAAG;oCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC/B,IAAI;oCACJ,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;wBAC1B,CAAC;6BAAM,IACL,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;4BAC1B,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,EACnD,CAAC;4BACD,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,GAAG;oCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC/B,UAAU;oCACV,KAAK;oCACL,GAAG,CAAC;4BACN,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnC,CAAC;6BAAM,IACL,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;4BAC1B,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;gCACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;gCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,EAC3B,CAAC;4BACD,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,MAAM,UAAU,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACvC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,SAAS;oCACT,OAAO;oCACP,GAAG;oCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC/B,cAAc;oCACd,UAAU;oCACV,mBAAmB,CAAC;4BACtB,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACzC,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACjD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,8BAA8B;oCAC9B,KAAK;oCACL,IAAI,CAAC;4BACP,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;wBACzB,CAAC;wBACD,MAAM;oBACR,KAAK,QAAQ,CAAC;oBACd,KAAK,SAAS;wBACZ,IACE,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;gCACzB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM;oCACrB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;oCACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAC9B,CAAC;4BACD,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BACD,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;wBAC1D,CAAC;6BAAM,CAAC;4BACN,IAAI,QAAQ,EAAE,CAAC;gCACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BAC1C,CAAC;4BAED,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CACpD,QAAQ,CAAC,CAAC,CAAC,CACZ,CAAC;4BAEF,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;gCAC3B,QAAQ;oCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;4BAC1D,CAAC;iCAAM,CAAC;gCACN,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gCAEjC,MAAM,cAAc,GAAG,CAAC,IAAgB,EAAE,EAAE;oCAC1C,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;oCAClC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;oCAC3B,OAAO,CACL,6BAA6B;wCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;wCACnD,gBAAgB;wCAChB,OAAO;wCACP,sBAAsB;wCACtB,IAAI;wCACJ,gBAAgB;wCAChB,KAAK;wCACL,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;wCAC3C,GAAG,CACJ,CAAC;gCACJ,CAAC,CAAC;gCAEF,MAAM,eAAe,GAAG,CAAC,MAAwB,EAAE,EAAE;oCACnD,MAAM,gBAAgB,GAAG,eAAe,EAAE,CAAC;oCAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;wCAChD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;wCAClC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;wCAC5B,OAAO;4CACL,UAAU,EACR,CAAC,KAAK,CAAC;gDACL,CAAC,CAAC,OAAO;oDACP,WAAW,CAAC,MAAM,CAChB,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,KAAK,CAChC;oDACD,IAAI;oDACJ,gBAAgB;oDAChB,GAAG;gDACL,CAAC,CAAC,OAAO;oDACP,WAAW,CAAC,MAAM,CAChB,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,KAAK,CAChC;oDACD,IAAI;oDACJ,gBAAgB;oDAChB,CAAC;oDACD,OAAO;oDACP,gBAAgB;oDAChB,CAAC;oDACD,aAAa;oDACb,gBAAgB;oDAChB,gBAAgB;oDAChB,gBAAgB;oDAChB,CAAC;oDACD,aAAa;oDACb,gBAAgB;oDAChB,gBAAgB;oDAChB,gBAAgB;oDAChB,CAAC;oDACD,iBAAiB;oDACjB,gBAAgB;oDAChB,iBAAiB;oDACjB,CAAC;4CACP,WAAW,EACT,GAAG;gDACH,gBAAgB;gDAChB,CAAC;gDACD,YAAY;gDACZ,KAAK;gDACL,CAAC,KAAK,CAAC,SAAS;oDACd,CAAC,CAAC,QAAQ,GAAG,gBAAgB,GAAG,CAAC,GAAG,eAAe;oDACnD,CAAC,CAAC,EAAE,CAAC;yCACV,CAAC;oCACJ,CAAC,CAAC,CAAC;oCACH,OAAO,CACL,kBAAkB;wCAClB,gBAAgB;wCAChB,WAAW;wCACX,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;wCACnD,UAAU;wCACV,gBAAgB;wCAChB,WAAW;wCACX,OAAO;wCACP,eAAe;wCACf,gBAAgB;wCAChB,YAAY;wCACZ,IAAI;wCACJ,OAAO;wCACP,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;wCACxD,GAAG,CACJ,CAAC;gCACJ,CAAC,CAAC;gCAEF,MAAM,aAAa,GAAG,CACpB,IAIoB,EACZ,EAAE;oCACV,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wCAC3B,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;oCAC/B,CAAC;yCAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;wCAC/B,OAAO,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oCAC9C,CAAC;yCAAM,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;wCAC9B,IAAI,UAAU,GAAa,EAAE,CAAC;wCAC9B,KAAK,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;4CAClC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;wCAC1C,CAAC;wCACD,OAAO,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;oCAC7C,CAAC;oCACD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;gCAC9B,CAAC,CAAC;gCAEF,uCAAuC;gCACvC,IAAI,WAAW,GAAa,EAAE,CAAC;gCAC/B,KAAK,IAAI,IAAI,IAAI,cAAc,EAAE,CAAC;oCAChC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;gCACxC,CAAC;gCAED,QAAQ;oCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,GAAG;wCACH,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;wCACzB,GAAG,CAAC;gCAEN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC7B,CAAC;wBACH,CAAC;wBACD,MAAM;oBACR,KAAK,OAAO,CAAC;oBACb,KAAK,QAAQ;wBACX,IACE,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;gCACzB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM;oCACrB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;oCACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAC9B,CAAC;4BACD,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,GAAG;oCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC/B,WAAW;oCACX,KAAK;oCACL,GAAG,CAAC;4BACN,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,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACjD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,wBAAwB;oCACxB,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,IACE,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;gCACzB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM;oCACrB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;oCACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAC9B,CAAC;4BACD,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,GAAG;oCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC/B,WAAW;oCACX,KAAK;oCACL,GAAG,CAAC;4BACN,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,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACjD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,qCAAqC;oCACrC,KAAK;oCACL,IAAI,CAAC;4BACP,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,IACE,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;gCACzB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM;oCACrB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;oCACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAC9B,CAAC;4BACD,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,GAAG;oCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC/B,SAAS;oCACT,KAAK;oCACL,GAAG,CAAC;4BACN,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,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACjD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,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,IACE,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;gCACzB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM;oCACrB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;oCACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAC9B,CAAC;4BACD,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,GAAG;oCACH,OAAO;oCACP,GAAG;oCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC/B,SAAS;oCACT,KAAK;oCACL,GAAG,CAAC;4BACN,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,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACjD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,mCAAmC;oCACnC,KAAK;oCACL,IAAI,CAAC;4BACP,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,IACE,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;gCACzB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM;oCACrB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;oCACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAC9B,CAAC;4BACD,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,GAAG;oCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC/B,IAAI;oCACJ,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;wBAC1B,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACjD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,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,IACE,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;gCACzB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM;oCACrB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;oCACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAC9B,CAAC;4BACD,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,GAAG;oCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC/B,KAAK;oCACL,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;wBAC1B,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACjD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,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,IACE,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;gCACzB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM;oCACrB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;oCACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAC9B,CAAC;4BACD,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,GAAG;oCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC/B,IAAI;oCACJ,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;wBAC1B,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACjD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,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,IACE,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;4BACvB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;gCACzB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM;oCACrB,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;oCACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;oCACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;oCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAC9B,CAAC;4BACD,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,GAAG;oCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC/B,KAAK;oCACL,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;wBAC1B,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;oCACjD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,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,IACE,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;4BAC1B,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,EACnD,CAAC;4BACD,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,OAAO;oCACP,GAAG;oCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC/B,UAAU;oCACV,IAAI;oCACJ,GAAG,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;wBAC1B,CAAC;6BAAM,IACL,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;4BAC1B,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;gCACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;gCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,EAC3B,CAAC;4BACD,MAAM,UAAU,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACvC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,SAAS;oCACT,OAAO;oCACP,GAAG;oCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAC/B,cAAc;oCACd,UAAU;oCACV,mBAAmB,CAAC;4BACtB,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC;wBACtC,CAAC;6BAAM,CAAC;4BACN,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;oCACvD,gBAAgB;oCAChB,OAAO;oCACP,sBAAsB;oCACtB,IAAI;oCACJ,0BAA0B;oCAC1B,IAAI;oCACJ,IAAI,CAAC;4BACP,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;wBAC1B,CAAC;wBACD,MAAM;oBACR,KAAK,UAAU,CAAC;oBAChB,KAAK,WAAW;wBACd,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CACrC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAC5C,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,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gCACzC,GAAG;gCACH,UAAU,CAAC,KAAK;gCAChB,GAAG,CAAC;wBACN,MAAM;oBACR,KAAK,MAAM,CAAC;oBACZ,KAAK,OAAO;wBACV,MAAM,oBAAoB,GAAG,eAAe,EAAE,CAAC;wBAC/C,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,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;wBAC1C,CAAC;wBACD,IACE,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;4BAC1B,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,EACnD,CAAC;4BACD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CACpC;gCACE,GAAG,WAAW;gCACd,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,IAAI;gCAC9B,MAAM,EAAE,MAAM;gCACd,KAAK,EAAE,eAAe;6BACvB,EACD,aAAa,EACb,eAAe,CAAC,KAAK,EACrB,KAAK,EACL,MAAM,EACN,KAAK,EACL,eAAe,EAAE,EACjB,MAAM,EACN,GAAG;gCACD,oBAAoB;gCACpB,GAAG;gCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAClC,CAAC;4BAEF,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,KAAK,CAAC;oCACrD,IAAI;oCACJ,oBAAoB;oCACpB,UAAU;oCACV,oBAAoB;oCACpB,UAAU;oCACV,OAAO;oCACP,sBAAsB;oCACtB,SAAS,CAAC,KAAK;oCACf,IAAI,CAAC;wBACT,CAAC;6BAAM,IACL,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;4BAC1B,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;gCACvB,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS;gCACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,EAC3B,CAAC;4BACD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CACpC;gCACE,GAAG,WAAW;gCACd,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,IAAI;gCAC9B,MAAM,EAAE,MAAM;gCACd,KAAK,EAAE,eAAe;6BACvB,EACD,aAAa,EACb,eAAe,CAAC,KAAK,EACrB,KAAK,EACL,MAAM,EACN,KAAK,EACL,eAAe,EAAE,EACjB,MAAM,EACN,SAAS,EACT,CAAC,IAAI,EAAE,EAAE,CACP,OAAO;gCACP,GAAG;gCACH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gCAC/B,+BAA+B;gCAC/B,IAAI;gCACJ,WAAW,CACd,CAAC;4BAEF,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,UAAU;oCACV,SAAS,CAAC,KAAK;oCACf,GAAG,CAAC;wBACR,CAAC;6BAAM,CAAC;4BACN,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CACpC;gCACE,GAAG,WAAW;gCACd,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,IAAI;gCAC9B,MAAM,EAAE,MAAM;gCACd,KAAK,EAAE,eAAe;6BACvB,EACD,aAAa,EACb,eAAe,CAAC,KAAK,EACrB,KAAK,EACL,MAAM,EACN,KAAK,EACL,eAAe,EAAE,EACjB,MAAM,EACN,GAAG,GAAG,oBAAoB,GAAG,cAAc,CAC5C,CAAC;4BACF,MAAM,QAAQ,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;4BACrC,QAAQ;gCACN,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oCACzC,6BAA6B;oCAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;oCACvD,IAAI;oCACJ,oBAAoB;oCACpB,UAAU;oCACV,oBAAoB;oCACpB,UAAU;oCACV,OAAO;oCACP,eAAe;oCACf,oBAAoB;oCACpB,WAAW;oCACX,QAAQ;oCACR,eAAe;oCACf,SAAS,CAAC,KAAK;oCACf,IAAI,CAAC;4BACP,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACjC,CAAC;wBACD,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,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,GAAG,EAAE,CAAC;YACZ,WAAW,GAAG,EAAE,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,OAAO;oBACV,MAAM,GAAG,YAAY,MAAM,aAAa,KAAK,EAAE,CAAC;oBAChD,WAAW,GAAG,YAAY,OAAO,aAAa,KAAK,EAAE,CAAC;oBACtD,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,GAAG,YAAY,MAAM,aAAa,KAAK,EAAE,CAAC;oBAChD,WAAW,GAAG,YAAY,OAAO,aAAa,KAAK,EAAE,CAAC;oBACtD,MAAM;gBACR;oBACE,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;oBACjC,QAAQ,GAAG;;qBAEA,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;gCACtC,IAAI;mCACD,KAAK,eAAe,KAAK;gBAC5C,MAAM,OAAO,MAAM,aAAa,MAAM,WAAW,CAAC;oBACxD,aAAa,GAAG;;qBAEL,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;gCACtC,IAAI;mCACD,KAAK,eAAe,KAAK;gBAC5C,MAAM,OAAO,OAAO,aAAa,MAAM,WAAW,CAAC;oBACzD,MAAM,GAAG,YAAY,MAAM,cAAc,KAAK,KAAK,MAAM,cAAc,KAAK,EAAE,CAAC;oBAC/E,WAAW,GAAG,MAAM,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACpB,MAAM;YACV,CAAC;QACH,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,MAAM,UAAU,GAAG,oBAAoB;oBACrC,CAAC,CAAC,GAAG,oBAAoB,CAAC,GAAG,OAAO,WAAW,CAAC,OAAO;oBACvD,CAAC,CAAC,YAAY;wBACZ,CAAC,CAAC,GAAG,OAAO,aAAa,YAAY,OAAO;wBAC5C,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBAC/B,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;wBACpB,KAAK,GAAG,gBAAgB,UAAU;yBACrB,OAAO;uBACT,WAAW,CAAC,MAAM,CACvB,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,OAAO;wBACJ,UAAU,IAAI,WAAW,IAAI,KAAK,GAAG,MAAM;kBACjD,UAAU,EAAE,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG,gBAAgB,OAAO;qBACtB,WAAW,CAAC,MAAM,CACvB,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,OAAO;sBACJ,UAAU,IAAI,WAAW,GAAG,CAAC;oBACzC,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACrC,MAAM,UAAU,GACd,WAAW,KAAK,EAAE;wBAChB,CAAC,CAAC,aAAa,OAAO,aAAa;wBACnC,CAAC,CAAC,GAAG,OAAO,WAAW,CAAC;oBAC5B,KAAK,GAAG,UAAU,UAAU;mBACnB,WAAW,CAAC,MAAM,CACvB,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,OAAO;cACV,aAAa;oBACP,UAAU,IAAI,WAAW;cAC/B,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,YAAY,KAAK,GAAG,MAAM,EAAE,CAAC;gBAC3F,CAAC;qBAAM,CAAC;oBACN,KAAK,GAAG;0BACQ,MAAM;gBAChB,MAAM;gBACN,MAAM;gBACN,MAAM;0BACI,MAAM;0BACN,MAAM;gBAChB,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;mBACH,WAAW,CAAC,MAAM,CACvB,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,MAAM;wBACC,WAAW,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,IAAI,MAAM,OAAO,MAAM,aAAa,MAAM;cACzC,QAAQ;;uBAEC,OAAO;qBACT,WAAW,CAAC,MAAM,CACvB,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,OAAO;gBACV,aAAa;sBACP,UAAU,IAAI,WAAW;gBAC/B,WAAW,GAAG,KAAK,GAAG,MAAM;gBAC5B,MAAM,OAAO,MAAM,aAAa,MAAM;cACxC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,WAAW,CAAC;gBAC/D,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,MAAM,UAAU,GAAG,oBAAoB;oBACrC,CAAC,CAAC,UAAU,oBAAoB,CAAC,GAAG,OAAO,WAAW,CAAC,EAAE;oBACzD,CAAC,CAAC,YAAY;wBACZ,CAAC,CAAC,UAAU,OAAO,aAAa,YAAY,EAAE;wBAC9C,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBAC/B,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;wBACpB,KAAK,GAAG,gBAAgB,UAAU;yBACrB,OAAO;uBACT,WAAW,CAAC,MAAM,CACvB,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM;kBACxC,UAAU,EAAE,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG,gBAAgB,OAAO;qBACtB,WAAW,CAAC,MAAM,CACvB,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;oBAChC,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACrC,MAAM,UAAU,GACd,WAAW,KAAK,EAAE;wBAChB,CAAC,CAAC,aAAa,OAAO,aAAa;wBACnC,CAAC,CAAC,GAAG,OAAO,WAAW,CAAC;oBAC5B,KAAK,GAAG,UAAU,UAAU;mBACnB,WAAW,CAAC,MAAM,CACvB,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,OAAO;cACV,aAAa;cACb,UAAU;cACV,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,YAAY,KAAK,GAAG,MAAM,EAAE,CAAC;gBAC3F,CAAC;qBAAM,CAAC;oBACN,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;wBACpB,KAAK,GAAG;4BACQ,MAAM;kBAChB,MAAM;kBACN,MAAM;kBACN,MAAM;4BACI,MAAM;4BACN,MAAM;kBAChB,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;qBACH,WAAW,CAAC,MAAM,CACvB,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,MAAM;0BACC,WAAW,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,IAAI,MAAM,OAAO,MAAM,aAAa,MAAM;gBACzC,QAAQ;;yBAEC,OAAO;uBACT,WAAW,CAAC,MAAM,CACvB,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,OAAO;kBACV,aAAa;kBACb,UAAU;kBACV,WAAW,GAAG,KAAK,GAAG,MAAM;kBAC5B,MAAM,OAAO,MAAM,aAAa,MAAM;gBACxC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,WAAW,CAAC;oBAC/D,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG;4BACQ,MAAM;kBAChB,MAAM;kBACN,MAAM;kBACN,MAAM;4BACI,MAAM;4BACN,MAAM;kBAChB,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;kBACN,MAAM;qBACH,WAAW,CAAC,MAAM,CACvB,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,IAAI,MAAM;0BACC,WAAW,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,IAAI,MAAM,OAAO,MAAM,aAAa,MAAM;gBACzC,QAAQ;gBACR,oBAAoB,CAAC,CAAC,CAAC,SAAS,oBAAoB,CAAC,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,MAAM,aAAa,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;gBAC7I,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,WAAW,CAAC;oBAC/D,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,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACrE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CACvB,CAAC;QACF,OAAO;YACL,MAAM;SACP,CAAC;IACJ,CAAC;IAkBM,KAAK,CAAC,WAAW,CACtB,OAAO,GAAe,EAAE,EACxB,GAAG,SAAqB;QAIxB,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,kBAAkB;QAChE,uCAAuC;QACvC,OAAO,EACP,SAAS,EACT,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAChC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,EAC9C,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,EACF,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBACjB,CAAC,CAAC,GAAG,CAAC,IAAI;qBACL,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACZ,KAAK,CAAC,GAAG,CAAC;qBACV,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC;gBACjC,CAAC,CAAC,EAAE;YACR,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;YAChE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;YAChE,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;YACjD,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;YACnD,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;SAClD,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,GAAG,CAAC,MAAM,CAAC;gBAC5B,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG;oBACjB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;oBAC5B,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG;wBACjB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;wBAC1B,CAAC,CAAC,GAAG,CAAC,KAAK;SACpB,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,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAChC,2BAA2B,WAAW,CAAC,MAAM,CAC3C,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,wBAAwB,EACzB;YACE,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI;aACX;SACF,CACF,CAAC;QACF,OAAQ,MAAM,EAAE,OAAyB,IAAI,IAAI,CAAC;IACpD,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,MAOzB;QACC,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,MAO/B;QACC,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,MAOlC;QACC,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACxE,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,EACE,IAAI,EACJ,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,GAQN,EACD,EAAE,IAAI,GAAG,SAAS,EAAE,GAAsC,EAAE;QAE5D,IAAI,CAAC;YACH,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,+BAA+B,EAChC;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,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,+BAA+B,EAChC;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,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,+BAA+B,EAChC;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CACF,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,+BAA+B,EAChC;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CACF,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,WAAW,KAAK,EAAE,CACjC,+BAA+B,EAChC;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CACF,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5B,QAAQ,GAAG,EAAE,CAAC;YAEd,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GACpE,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBAEjD,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,4LAA4L,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,6DAA6D,EAChV;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;wBACJ,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;wBAChC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAClC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAClC,IAAI;wBACJ,KAAK;wBACL,MAAM;wBACN,OAAO;wBACP,OAAO;wBACP,MAAM,EAAE,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;wBAC9C,OAAO,EAAE,OAAO,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;wBACjD,MAAM,EAAE,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;qBAC/C;iBACF,CACF,CAAC;gBAEF,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;4BAC1B,CAAC,CAAC,GAAG;4BACL,CAAC,CAAC,GAAG,CAAC;oBACZ,MAAM,SAAS,GAAG,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;oBAEtD,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,oKAAoK,EACrK;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;4BACJ,IAAI;4BACJ,YAAY;4BACZ,SAAS;4BACT,MAAM,EAAE,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE;4BACjD,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;4BACrD,MAAM,EAAE,CAAC,CAAC,MAAM;yBACjB;qBACF,CACF,CACF,CAAC;oBAEF,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,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,uFAAuF,EACxF;4BACE,MAAM,EAAE,CAAC,KAAK,CAAC;4BACf,MAAM,EAAE;gCACN,IAAI;gCACJ,IAAI;gCACJ,SAAS;6BACV;yBACF,CACF,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;gBACzB,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GACpE,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBAEjD,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,UAAU,WAAW,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,iBAAiB,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,eAAe,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,6JAA6J,EAC/Q;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;wBACJ,KAAK;wBACL,MAAM;wBACN,OAAO;wBACP,OAAO;wBACP,MAAM,EAAE,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;wBAC9C,OAAO,EAAE,OAAO,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;wBACjD,MAAM,EAAE,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;wBAC9C,IAAI;qBACL;iBACF,CACF,CACF,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAE5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;oBACvB,IAAI,WAAW,GAAkB,IAAI,CAAC;oBACtC,IAAI,CAAC;wBACH,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACtE,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBAChB,gBAAgB;oBAClB,CAAC;oBAED,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;wBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;wBACpD,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;4BACrB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;4BAC5C,MAAM,MAAM,GAAyB;gCACnC,IAAI;gCACJ,IAAI;6BACL,CAAC;4BACF,MAAM,MAAM,GAAa,EAAE,CAAC;4BAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gCAC/B,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;gCAClC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;gCACxC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;gCAChC,MAAM,CAAC,IAAI,CACT,8BAA8B;oCAC5B,CAAC;oCACD,aAAa;oCACb,CAAC;oCACD,SAAS;oCACT,CAAC;oCACD,GAAG,CACN,CAAC;4BACJ,CAAC;4BAED,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,mEAAmE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EACxF;gCACE,MAAM,EAAE,CAAC,KAAK,CAAC;gCACf,MAAM;6BACP,CACF,CACF,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;oBAC3C,IAAI;oBACJ,KAAK;oBACL,KAAK;oBACL,IAAI;oBACJ,IAAI,EAAE,EAAE;oBACR,KAAK;iBACN,CAAC,CAAC;gBACH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,WAAW,KAAK,EAAE,CACjC,yDAAyD,EAC1D;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;4BACJ,MAAM;yBACP;qBACF,CACF,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE;wBACjB,IAAI,CAAC,YAAY,2BAA2B,EAAE,CAAC;4BAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAC1B,OAAO,EACP,uDAAuD,IAAI,eAAe,KAAK,OAAO,MAAM,GAAG,CAChG,CAAC;wBACJ,CAAC;wBACD,OAAO,CAAC,CAAC;oBACX,CAAC,CAAC,CACH,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC;YACrE,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAmC;QACrE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;YAC3D,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,6FAA6F,EAC9F;gBACE,MAAM,EAAE;oBACN,IAAI;oBACJ,KAAK;iBACN;aACF,CACF,CAAC;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC;YAClE,MAAM,IAAI,CAAC,QAAQ,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC9B,mBAAmB,WAAW,CAAC,WAAW,CACxC,GAAG,IAAI,CAAC,MAAM,QAAQ,IAAI,EAAE,CAC7B,oBAAoB,CACtB,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,gBAAgB,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,+FAA+F,EAChG;gBACE,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAChC,2BAA2B,WAAW,CAAC,MAAM,CAC3C,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,wBAAwB,EACzB;gBACE,MAAM,EAAE;oBACN,IAAI;iBACL;aACF,CACF,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CACjB,uBAAuB,WAAW,CAAC,WAAW,CAC5C,GAAG,IAAI,CAAC,MAAM,QAAQ,IAAI,EAAE,CAC7B,IAAI,CACN,CAAC;YACF,MAAM,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;QAClC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC/D,IAAI,CAAC,EAAE,OAAO,KAAK,6BAA6B,GAAG,IAAI,EAAE,CAAC;gBACxD,MAAM,IAAI,CAAC,QAAQ,CACjB,uBAAuB,WAAW,CAAC,WAAW,CAC5C,GAAG,IAAI,CAAC,MAAM,QAAQ,IAAI,EAAE,CAC7B,IAAI,CACN,CAAC;YACJ,CAAC;YACD,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,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CACjB,UAAU,WAAW,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,iDAAiD,EAClD;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,sBAAsB,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,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,yBAAyB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5E,CAAC;QACD,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,OAAO,EAAE,CAAC;YACvC,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,OAAiB,EACjB,KAAa,EACb,EAAE;YACF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAE5D,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;wBACzB,CAAC,CAAC,GAAG;wBACL,CAAC,CAAC,GAAG,CAAC;gBACZ,MAAM,SAAS,GAAG,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;gBAEvD,MAAM,QAAQ,GAAG,EAAE,CAAC;gBAEpB,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,oKAAoK,EACrK;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;wBACJ,IAAI;wBACJ,YAAY;wBACZ,SAAS;wBACT,MAAM,EAAE,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE;wBAChD,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;wBACnD,MAAM,EAAE,CAAC,CAAC,KAAK;qBAChB;iBACF,CACF,CACF,CAAC;gBAEF,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,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,uFAAuF,EACxF;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;4BACJ,IAAI;4BACJ,SAAS;yBACV;qBACF,CACF,CACF,CAAC;gBACJ,CAAC;gBAED,IAAI,WAAW,GAAkB,IAAI,CAAC;gBACtC,IAAI,CAAC;oBACH,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACpD,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,gBAAgB;gBAClB,CAAC;gBAED,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;oBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBACpD,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;wBACrB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;wBAC5C,MAAM,MAAM,GAAyB;4BACnC,IAAI;4BACJ,IAAI;yBACL,CAAC;wBACF,MAAM,MAAM,GAAa,EAAE,CAAC;wBAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;4BAC/B,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;4BAClC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;4BACxC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;4BAChC,MAAM,CAAC,IAAI,CACT,8BAA8B;gCAC5B,CAAC;gCACD,aAAa;gCACb,CAAC;gCACD,SAAS;gCACT,CAAC;gCACD,GAAG,CACN,CAAC;wBACJ,CAAC;wBAED,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,mEAAmE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EACxF;4BACE,MAAM,EAAE,CAAC,KAAK,CAAC;4BACf,MAAM;yBACP,CACF,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC,CAAC;YAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,WAAW,KAAK,EAAE,CACjC,yDAAyD,EAC1D;wBACE,MAAM,EAAE,CAAC,KAAK,CAAC;wBACf,MAAM,EAAE;4BACN,IAAI;4BACJ,MAAM;yBACP;qBACF,CACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAI,CAAC,YAAY,2BAA2B,EAAE,CAAC;wBAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAC1B,OAAO,EACP,qDAAqD,IAAI,eAAe,KAAK,OAAO,MAAM,GAAG,CAC9F,CAAC;oBACJ,CAAC;oBACD,MAAM,CAAC,CAAC;gBACV,CAAC;YACH,CAAC;YACD,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,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC3D,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,IAAI,EACF,IAAI,EACJ,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,MAAM,GACP,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACrD,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,4LAA4L,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,6DAA6D,EAChV;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;wBACJ,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;wBAChC,KAAK;wBACL,IAAI;wBACJ,KAAK;wBACL,MAAM;wBACN,OAAO;wBACP,OAAO;wBACP,MAAM,EAAE,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;wBAC9C,OAAO,EAAE,OAAO,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;wBACjD,MAAM,EAAE,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;qBAC/C;iBACF,CACF,CAAC;gBACF,MAAM,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBACpD,OAAO,IAAI,CAAC;YACd,CAAC,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;gBACnE,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,IAAI,EACF,IAAI,EACJ,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,MAAM,GACP,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACrD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;oBAC3B,MAAM,QAAQ,GAAG,EAAE,CAAC;oBACpB,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,iBAAiB,WAAW,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,qDAAqD,EACtD;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,iBAAiB,WAAW,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,qDAAqD,EACtD;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,iBAAiB,WAAW,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,qDAAqD,EACtD;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,iBAAiB,WAAW,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,qDAAqD,EACtD;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,iBAAiB,WAAW,CAAC,MAAM,CACjC,GAAG,IAAI,CAAC,MAAM,WAAW,KAAK,EAAE,CACjC,qDAAqD,EACtD;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;gBAC9B,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;oBAC7B,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,WAAW,WAAW,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,WAAW,WAAW,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,WAAW,WAAW,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,WAAW,WAAW,CAAC,MAAM,CAC5B,GAAG,IAAI,CAAC,MAAM,WAAW,KAAK,EAAE,CACjC,SAAS,CACX,CAAC;gBACJ,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC9B,UAAU,WAAW,CAAC,MAAM,CAC1B,GAAG,IAAI,CAAC,MAAM,YAAY,KAAK,EAAE,CAClC,mDAAmD,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,eAAe,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,sLAAsL,EAC1U;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;wBAChC,KAAK;wBACL,IAAI;wBACJ,KAAK;wBACL,MAAM;wBACN,OAAO;wBACP,OAAO;wBACP,MAAM,EAAE,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;wBAC9C,OAAO,EAAE,OAAO,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;wBACjD,MAAM,EAAE,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;wBAC9C,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,OAAO,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,QAAQ,GAAG,EAAE,CAAC;oBACpB,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CACX,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,+BAA+B,EAChC;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,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,+BAA+B,EAChC;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,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,+BAA+B,EAChC;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,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,WAAW,KAAK,EAAE,CACjC,+BAA+B,EAChC;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,OAAO,EAAE,KAAK,CAAC,CAAC;oBACpD,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;oBAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBACxC,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,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;YACnE,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,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,MAAM,CACrB,+FAA+F,EAChG;YACE,MAAM,EAAE;gBACN,IAAI;gBACJ,MAAM;aACP;SACF,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAES,KAAK,CAAC,mBAAmB,CAAC,IAAY;QAC9C,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,sBAAsB,CAC9B,6CAA6C,CAC9C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACtD,0BAA0B;YAC1B,IAAI,CAAC,WAAW,GAAG;gBACjB,KAAK,EAAE,CAAC;gBACR,UAAU,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE;aACvC,CAAC;YACF,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC7B,gDAAgD;gBAChD,MAAM,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,CAAC;QAED,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,MAAsB,CAAC,WAAW,GAAG,WAAW,CAAC;QAExD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,KAAa;QAC9C,MAAM,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,KAAK,IAAI,IAAI,IAAI;gBACf,MAAM;gBACN,OAAO;gBACP,QAAQ;gBACR,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,SAAS;gBACT,QAAQ;aACT,EAAE,CAAC;gBACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,QAAQ,KAAK,EAAE,CAC9B,wBAAwB,EACzB;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CAAC;gBACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,cAAc,KAAK,EAAE,CACpC,wBAAwB,EACzB;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CAAC;gBACF,MAAM,IAAI,CAAC,QAAQ,CACjB,eAAe,WAAW,CAAC,MAAM,CAC/B,GAAG,IAAI,CAAC,MAAM,UAAU,KAAK,EAAE,CAChC,wBAAwB,EACzB;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE;wBACN,IAAI;qBACL;iBACF,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAC1B,OAAO,EACP,+BAA+B,CAAC,GAAG,CACpC,CAAC;YACF,MAAM,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;YACjD,MAAM,CAAC,CAAC;QACV,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,cAAc;QAGzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC/B,wIAAwI,EACxI;YACE,MAAM,EAAE;gBACN,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBACxB,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,GAAG;aACpC;SACF,CACF,CAAC;QACF,IAAI,KAAK,EAAE,UAAU,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAChC,qIAAqI,EACrI;gBACE,MAAM,EAAE;oBACN,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBACxB,KAAK,EAAE,KAAK,CAAC,UAAU;iBACxB;aACF,CACF,CAAC;YACF,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBACpB,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAChC,4IAA4I,EAC5I;YACE,MAAM,EAAE;gBACN,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBACxB,UAAU,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,GAAG;aAC1C;SACF,CACF,CAAC;QACF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAClC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAChC,wIAAwI,EACxI;YACE,MAAM,EAAE;gBACN,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBACxB,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,GAAG;aACxC;SACF,CACF,CAAC;QACF,IAAI,MAAM,EAAE,UAAU,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAChC,qIAAqI,EACrI;gBACE,MAAM,EAAE;oBACN,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBACxB,KAAK,EAAE,MAAM,CAAC,UAAU;iBACzB;aACF,CACF,CAAC;YACF,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBACpB,OAAO,gBAAgB,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,aAAwE;QAExE,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YAEtC,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;aAAM,IAAI,aAAa,KAAK,gBAAgB,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YAEtC,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;aAAM,IAAI,aAAa,KAAK,sBAAsB,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YAEtC,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"MySQLDriver.js","sourceRoot":"","sources":["../src/MySQLDriver.ts"],"names":[],"mappings":"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"}
@@ -13,11 +13,11 @@ const mysqlConfig = {
13
13
  };
14
14
  const nymph = new Nymph({}, new MySQLDriver(mysqlConfig));
15
15
  describe('MySQLDriver', () => {
16
- EntitiesTest(nymph, it);
17
- UIDTest(nymph, it);
18
- ExportImportTest(nymph, it);
16
+ EntitiesTest(nymph, describe, it);
17
+ UIDTest(nymph, describe, it);
18
+ ExportImportTest(nymph, describe, it);
19
19
  const tilmeldNymph = nymph.clone();
20
- TilmeldTest(tilmeldNymph, it);
20
+ TilmeldTest(tilmeldNymph, describe, it);
21
21
  afterAll(async () => {
22
22
  await nymph.driver.disconnect(); // avoid jest open handle error
23
23
  });
@@ -1 +1 @@
1
- {"version":3,"file":"MySQLDriver.test.js","sourceRoot":"","sources":["../src/MySQLDriver.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EACL,YAAY,EACZ,OAAO,EACP,gBAAgB,GACjB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAErE,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C,iDAAiD;AACjD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAEvB,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,OAAO;CAClB,CAAC;AAEF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AAE1D,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAE5B,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IACnC,WAAW,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAE9B,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"}
1
+ {"version":3,"file":"MySQLDriver.test.js","sourceRoot":"","sources":["../src/MySQLDriver.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EACL,YAAY,EACZ,OAAO,EACP,gBAAgB,GACjB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAErE,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C,iDAAiD;AACjD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAEvB,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,OAAO;CAClB,CAAC;AAEF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AAE1D,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC7B,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEtC,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IACnC,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAExC,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/package.json CHANGED
@@ -1,14 +1,17 @@
1
1
  {
2
2
  "name": "@nymphjs/driver-mysql",
3
- "version": "1.0.0-beta.120",
3
+ "version": "1.0.0-beta.122",
4
4
  "description": "Nymph.js - MySQL DB Driver",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "keywords": [
9
9
  "nymph",
10
- "ORM",
11
- "object relational mapper"
10
+ "nymph.js",
11
+ "application data framework",
12
+ "application data and access framework",
13
+ "nymph driver",
14
+ "mysql"
12
15
  ],
13
16
  "scripts": {
14
17
  "clean": "test -d dist && rm -r dist || true",
@@ -36,14 +39,14 @@
36
39
  },
37
40
  "license": "Apache-2.0",
38
41
  "dependencies": {
39
- "@nymphjs/guid": "^1.0.0-beta.120",
40
- "@nymphjs/nymph": "^1.0.0-beta.120",
42
+ "@nymphjs/guid": "^1.0.0-beta.122",
43
+ "@nymphjs/nymph": "^1.0.0-beta.122",
41
44
  "@sciactive/tokenizer": "^3.4.0",
42
45
  "mysql2": "^3.23.4",
43
46
  "sqlstring": "^2.3.3"
44
47
  },
45
48
  "devDependencies": {
46
- "@nymphjs/tilmeld": "^1.0.0-beta.120",
49
+ "@nymphjs/tilmeld": "^1.0.0-beta.122",
47
50
  "@swc/core": "^1.16.1",
48
51
  "@swc/jest": "^0.2.39",
49
52
  "@tsconfig/recommended": "^1.0.13",
@@ -55,5 +58,5 @@
55
58
  "ts-node": "^10.9.2",
56
59
  "typescript": "^7.0.2"
57
60
  },
58
- "gitHead": "f5cf090d09c74a3eab0073018b4c8b2273962117"
61
+ "gitHead": "dcadf992c4b11c444c27f2c515ad5ad39ceddc54"
59
62
  }
@@ -23,12 +23,12 @@ const mysqlConfig = {
23
23
  const nymph = new Nymph({}, new MySQLDriver(mysqlConfig));
24
24
 
25
25
  describe('MySQLDriver', () => {
26
- EntitiesTest(nymph, it);
27
- UIDTest(nymph, it);
28
- ExportImportTest(nymph, it);
26
+ EntitiesTest(nymph, describe, it);
27
+ UIDTest(nymph, describe, it);
28
+ ExportImportTest(nymph, describe, it);
29
29
 
30
30
  const tilmeldNymph = nymph.clone();
31
- TilmeldTest(tilmeldNymph, it);
31
+ TilmeldTest(tilmeldNymph, describe, it);
32
32
 
33
33
  afterAll(async () => {
34
34
  await nymph.driver.disconnect(); // avoid jest open handle error
@@ -18,6 +18,8 @@ import {
18
18
  type FormattedSelector,
19
19
  type Options,
20
20
  type Selector,
21
+ EntityConflictError,
22
+ EntityInvalidDataError,
21
23
  EntityUniqueConstraintError,
22
24
  InvalidParametersError,
23
25
  NotConfiguredError,
@@ -35,6 +37,7 @@ import {
35
37
  type MySQLDriverTransaction = {
36
38
  connection: PoolConnection | null;
37
39
  count: number;
40
+ latestPromise: Promise<any>;
38
41
  };
39
42
 
40
43
  /**
@@ -505,7 +508,7 @@ export default class MySQLDriver extends NymphDriver {
505
508
  throw new EntityUniqueConstraintError(`Unique constraint violation.`);
506
509
  } else if (errorCode === 2006) {
507
510
  // If the MySQL server disconnected, reconnect to it.
508
- if (!this.connect()) {
511
+ if (!(await this.connect())) {
509
512
  throw new QueryFailedError(
510
513
  'Query failed: ' + e?.errno + ' - ' + e?.message,
511
514
  query,
@@ -547,21 +550,29 @@ export default class MySQLDriver extends NymphDriver {
547
550
  );
548
551
  return this.query(
549
552
  async () => {
550
- const results: any = await new Promise((resolve, reject) => {
551
- try {
552
- (this.transaction?.connection ?? this.link).query(
553
- newQuery,
554
- newParams,
555
- (error, results) => {
556
- if (error) {
557
- reject(error);
558
- }
559
- resolve(results);
560
- },
561
- );
562
- } catch (e) {
563
- reject(e);
553
+ const results: any = await new Promise(async (resolve, reject) => {
554
+ // Only do one query at a time in transations.
555
+ let myResolve: (value: void | PromiseLike<void>) => void = () => {};
556
+ const myPromise = new Promise<void>((resolve) => {
557
+ myResolve = resolve;
558
+ });
559
+ if (this.transaction) {
560
+ const latestPromise = this.transaction.latestPromise;
561
+ this.transaction.latestPromise = myPromise;
562
+ await latestPromise;
564
563
  }
564
+ (this.transaction?.connection ?? this.link).query(
565
+ newQuery,
566
+ newParams,
567
+ (error, results) => {
568
+ if (error) {
569
+ reject(error);
570
+ } else {
571
+ resolve(results);
572
+ }
573
+ myResolve();
574
+ },
575
+ );
565
576
  });
566
577
  return results;
567
578
  },
@@ -586,21 +597,29 @@ export default class MySQLDriver extends NymphDriver {
586
597
  );
587
598
  return this.query(
588
599
  async () => {
589
- const results: any = await new Promise((resolve, reject) => {
590
- try {
591
- (this.transaction?.connection ?? this.link).query(
592
- newQuery,
593
- newParams,
594
- (error, results) => {
595
- if (error) {
596
- reject(error);
597
- }
598
- resolve(results);
599
- },
600
- );
601
- } catch (e) {
602
- reject(e);
600
+ const results: any = await new Promise(async (resolve, reject) => {
601
+ // Only do one query at a time in transations.
602
+ let myResolve: (value: void | PromiseLike<void>) => void = () => {};
603
+ const myPromise = new Promise<void>((resolve) => {
604
+ myResolve = resolve;
605
+ });
606
+ if (this.transaction) {
607
+ const latestPromise = this.transaction.latestPromise;
608
+ this.transaction.latestPromise = myPromise;
609
+ await latestPromise;
603
610
  }
611
+ (this.transaction?.connection ?? this.link).query(
612
+ newQuery,
613
+ newParams,
614
+ (error, results) => {
615
+ if (error) {
616
+ reject(error);
617
+ } else {
618
+ resolve(results);
619
+ }
620
+ myResolve();
621
+ },
622
+ );
604
623
  });
605
624
  return results[0];
606
625
  },
@@ -614,9 +633,11 @@ export default class MySQLDriver extends NymphDriver {
614
633
  {
615
634
  etypes = [],
616
635
  params = {},
636
+ transaction,
617
637
  }: {
618
638
  etypes?: string[];
619
639
  params?: { [k: string]: any };
640
+ transaction?: MySQLDriverTransaction;
620
641
  } = {},
621
642
  ) {
622
643
  const { query: newQuery, params: newParams } = this.translateQuery(
@@ -625,21 +646,30 @@ export default class MySQLDriver extends NymphDriver {
625
646
  );
626
647
  return this.query(
627
648
  async () => {
628
- const results: any = await new Promise((resolve, reject) => {
629
- try {
630
- (this.transaction?.connection ?? this.link).query(
631
- newQuery,
632
- newParams,
633
- (error, results) => {
634
- if (error) {
635
- reject(error);
636
- }
637
- resolve(results);
638
- },
639
- );
640
- } catch (e) {
641
- reject(e);
649
+ const results: any = await new Promise(async (resolve, reject) => {
650
+ // Only do one query at a time in transations.
651
+ let myResolve: (value: void | PromiseLike<void>) => void = () => {};
652
+ const myPromise = new Promise<void>((resolve) => {
653
+ myResolve = resolve;
654
+ });
655
+ const trans = transaction ?? this.transaction;
656
+ if (trans) {
657
+ const latestPromise = trans.latestPromise;
658
+ trans.latestPromise = myPromise;
659
+ await latestPromise;
642
660
  }
661
+ (trans?.connection ?? this.link).query(
662
+ newQuery,
663
+ newParams,
664
+ (error, results) => {
665
+ if (error) {
666
+ reject(error);
667
+ } else {
668
+ resolve(results);
669
+ }
670
+ myResolve();
671
+ },
672
+ );
643
673
  });
644
674
  return { changes: results.changedRows ?? 0 };
645
675
  },
@@ -3258,7 +3288,7 @@ export default class MySQLDriver extends NymphDriver {
3258
3288
  Object.keys(data).length === 0 &&
3259
3289
  Object.keys(sdata).length === 0
3260
3290
  ) {
3261
- return false;
3291
+ throw new EntityInvalidDataError('Entity contains no data.');
3262
3292
  }
3263
3293
  let {
3264
3294
  user,
@@ -3299,7 +3329,7 @@ export default class MySQLDriver extends NymphDriver {
3299
3329
  Object.keys(data).length === 0 &&
3300
3330
  Object.keys(sdata).length === 0
3301
3331
  ) {
3302
- return false;
3332
+ throw new EntityInvalidDataError('Entity contains no data.');
3303
3333
  }
3304
3334
  let {
3305
3335
  user,
@@ -3479,6 +3509,11 @@ export default class MySQLDriver extends NymphDriver {
3479
3509
  if (this.config.tableLocking) {
3480
3510
  await this.queryRun('UNLOCK TABLES;');
3481
3511
  }
3512
+ if (!success && info.changes === 0) {
3513
+ throw new EntityConflictError(
3514
+ "Entity either doesn't exist or is newer in the DB.",
3515
+ );
3516
+ }
3482
3517
  return success;
3483
3518
  },
3484
3519
  async () => {
@@ -3489,7 +3524,7 @@ export default class MySQLDriver extends NymphDriver {
3489
3524
  if (inTransaction) {
3490
3525
  inTransaction = false;
3491
3526
  if (success) {
3492
- await this.commit('nymph-save');
3527
+ success = await this.commit('nymph-save');
3493
3528
  } else {
3494
3529
  await this.rollback('nymph-save');
3495
3530
  }
@@ -3526,40 +3561,45 @@ export default class MySQLDriver extends NymphDriver {
3526
3561
  return true;
3527
3562
  }
3528
3563
 
3529
- protected async internalTransaction(name: string) {
3564
+ protected async internalTransaction(name: string, setOnSelf = true) {
3530
3565
  if (name == null || typeof name !== 'string' || name.length === 0) {
3531
3566
  throw new InvalidParametersError(
3532
3567
  'Transaction start attempted without a name.',
3533
3568
  );
3534
3569
  }
3535
3570
 
3536
- if (!this.transaction || this.transaction.count === 0) {
3571
+ let transaction = this.transaction;
3572
+
3573
+ if (!transaction) {
3537
3574
  // Lock to one connection.
3538
- this.transaction = {
3575
+ transaction = {
3539
3576
  count: 0,
3540
3577
  connection: await this.getConnection(),
3578
+ latestPromise: Promise.resolve(),
3541
3579
  };
3542
- if (this.config.transactions) {
3543
- // We're not in a transaction yet, so start one.
3544
- await this.queryRun('START TRANSACTION;');
3580
+ if (setOnSelf) {
3581
+ this.transaction = transaction;
3545
3582
  }
3546
3583
  }
3547
3584
 
3548
- if (this.config.transactions) {
3549
- await this.queryRun(`SAVEPOINT ${MySQLDriver.escape(name)};`);
3585
+ if (this.config.transactions && transaction.count === 0) {
3586
+ // We're not in a transaction yet, so start one.
3587
+ await this.queryRun('START TRANSACTION;', { transaction });
3550
3588
  }
3551
3589
 
3552
- this.transaction.count++;
3590
+ transaction.count++;
3553
3591
 
3554
- return this.transaction;
3592
+ if (this.config.transactions) {
3593
+ await this.queryRun(`SAVEPOINT ${MySQLDriver.escape(name)};`, {
3594
+ transaction,
3595
+ });
3596
+ }
3597
+
3598
+ return transaction;
3555
3599
  }
3556
3600
 
3557
3601
  public async startTransaction(name: string) {
3558
- const inTransaction = await this.inTransaction();
3559
- const transaction = await this.internalTransaction(name);
3560
- if (!inTransaction) {
3561
- this.transaction = null;
3562
- }
3602
+ const transaction = await this.internalTransaction(name, false);
3563
3603
 
3564
3604
  const nymph = this.nymph.clone();
3565
3605
  (nymph.driver as MySQLDriver).transaction = transaction;