dexbot 1.1.12 → 1.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/credential-daemon.d.ts.map +1 -1
  2. package/dist/credential-daemon.js +13 -4
  3. package/dist/credential-daemon.js.map +1 -1
  4. package/dist/market_adapter/core/market_adapter_service.d.ts.map +1 -1
  5. package/dist/market_adapter/core/market_adapter_service.js +6 -0
  6. package/dist/market_adapter/core/market_adapter_service.js.map +1 -1
  7. package/dist/market_adapter/market_adapter.d.ts.map +1 -1
  8. package/dist/market_adapter/market_adapter.js +6 -3
  9. package/dist/market_adapter/market_adapter.js.map +1 -1
  10. package/dist/modules/chain_orders.d.ts +5 -1
  11. package/dist/modules/chain_orders.d.ts.map +1 -1
  12. package/dist/modules/chain_orders.js +8 -4
  13. package/dist/modules/chain_orders.js.map +1 -1
  14. package/dist/modules/constants.d.ts +5 -0
  15. package/dist/modules/constants.d.ts.map +1 -1
  16. package/dist/modules/constants.js +28 -12
  17. package/dist/modules/constants.js.map +1 -1
  18. package/dist/modules/dexbot_class.d.ts +38 -0
  19. package/dist/modules/dexbot_class.d.ts.map +1 -1
  20. package/dist/modules/dexbot_class.js +449 -91
  21. package/dist/modules/dexbot_class.js.map +1 -1
  22. package/dist/modules/dexbot_credential_client.d.ts +3 -0
  23. package/dist/modules/dexbot_credential_client.d.ts.map +1 -1
  24. package/dist/modules/dexbot_credential_client.js +78 -43
  25. package/dist/modules/dexbot_credential_client.js.map +1 -1
  26. package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
  27. package/dist/modules/dexbot_maintenance_runtime.js +100 -4
  28. package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
  29. package/dist/modules/key_store.d.ts +2 -2
  30. package/dist/modules/key_store.d.ts.map +1 -1
  31. package/dist/modules/key_store.js +6 -1
  32. package/dist/modules/key_store.js.map +1 -1
  33. package/dist/modules/node_manager.d.ts +9 -0
  34. package/dist/modules/node_manager.d.ts.map +1 -1
  35. package/dist/modules/node_manager.js +35 -17
  36. package/dist/modules/node_manager.js.map +1 -1
  37. package/dist/modules/order/accounting.d.ts.map +1 -1
  38. package/dist/modules/order/accounting.js +36 -5
  39. package/dist/modules/order/accounting.js.map +1 -1
  40. package/dist/modules/order/async_lock.d.ts +21 -0
  41. package/dist/modules/order/async_lock.d.ts.map +1 -1
  42. package/dist/modules/order/async_lock.js +43 -3
  43. package/dist/modules/order/async_lock.js.map +1 -1
  44. package/dist/modules/order/grid.d.ts +26 -0
  45. package/dist/modules/order/grid.d.ts.map +1 -1
  46. package/dist/modules/order/grid.js +53 -0
  47. package/dist/modules/order/grid.js.map +1 -1
  48. package/dist/modules/order/grid_reconcile.d.ts.map +1 -1
  49. package/dist/modules/order/grid_reconcile.js +6 -3
  50. package/dist/modules/order/grid_reconcile.js.map +1 -1
  51. package/dist/modules/order/manager.d.ts +1 -3
  52. package/dist/modules/order/manager.d.ts.map +1 -1
  53. package/dist/modules/order/manager.js +15 -30
  54. package/dist/modules/order/manager.js.map +1 -1
  55. package/dist/modules/order/sync_engine.d.ts +9 -2
  56. package/dist/modules/order/sync_engine.d.ts.map +1 -1
  57. package/dist/modules/order/sync_engine.js +79 -5
  58. package/dist/modules/order/sync_engine.js.map +1 -1
  59. package/dist/modules/order/utils/order.d.ts.map +1 -1
  60. package/dist/modules/order/utils/order.js +17 -1
  61. package/dist/modules/order/utils/order.js.map +1 -1
  62. package/dist/modules/order/utils/system.d.ts +1 -0
  63. package/dist/modules/order/utils/system.d.ts.map +1 -1
  64. package/dist/modules/order/utils/system.js +90 -38
  65. package/dist/modules/order/utils/system.js.map +1 -1
  66. package/dist/modules/paths.d.ts +1 -0
  67. package/dist/modules/paths.d.ts.map +1 -1
  68. package/dist/modules/paths.js +1 -0
  69. package/dist/modules/paths.js.map +1 -1
  70. package/package.json +14 -4
@@ -362,9 +362,7 @@ class OrderManager {
362
362
  _gridPersistenceSuspendedReason;
363
363
  _pendingBroadcasts;
364
364
  _committedOrderIds;
365
- _gridDirty;
366
- _gridDirtyReasons;
367
- _gridDirtySince;
365
+ _gridDirtyAt;
368
366
  _metrics;
369
367
  _currentWorkingGrid;
370
368
  _cowEngine;
@@ -442,9 +440,7 @@ class OrderManager {
442
440
  this._gridPersistenceSuspendedReason = null;
443
441
  this._pendingBroadcasts = new Map();
444
442
  this._committedOrderIds = new Set();
445
- this._gridDirty = false;
446
- this._gridDirtyReasons = new Map();
447
- this._gridDirtySince = null;
443
+ this._gridDirtyAt = null;
448
444
  this._metrics = {
449
445
  fundRecalcCount: 0,
450
446
  invariantViolations: { buy: 0, sell: 0 },
@@ -848,12 +844,6 @@ class OrderManager {
848
844
  }
849
845
  const updatedOrder = deepFreeze({ ...nextOrder });
850
846
  const id = order.id;
851
- // Clean up committed order tracking on virtualization.
852
- // When a committed order transitions off-chain (fill/cancel), its orderId
853
- // is removed so the recovery sync guard doesn't incorrectly preserve it.
854
- if (oldOrder?.orderId && (updatedOrder.state === ORDER_STATES.VIRTUAL || updatedOrder.state === ORDER_STATES.SPREAD)) {
855
- this._committedOrderIds.delete(oldOrder.orderId);
856
- }
857
847
  Object.values(this._ordersByState).forEach(set => set.delete(id));
858
848
  Object.values(this._ordersByType).forEach(set => set.delete(id));
859
849
  if (this._ordersByState[updatedOrder.state]) {
@@ -913,21 +903,16 @@ class OrderManager {
913
903
  * @returns {void}
914
904
  */
915
905
  _markGridDirty(reason = 'unknown', orderId = null) {
916
- this._gridDirty = true;
917
- if (this._gridDirtySince == null) {
918
- this._gridDirtySince = Date.now();
906
+ if (this._gridDirtyAt == null) {
907
+ this._gridDirtyAt = Date.now();
919
908
  }
920
- const key = orderId ? `${reason}:${orderId}` : reason;
921
- this._gridDirtyReasons.set(key, (this._gridDirtyReasons.get(key) || 0) + 1);
922
909
  }
923
910
  /**
924
911
  * Clear the dirty flag after a successful flush. Internal helper.
925
912
  * @returns {void}
926
913
  */
927
914
  _clearGridDirty() {
928
- this._gridDirty = false;
929
- this._gridDirtySince = null;
930
- this._gridDirtyReasons.clear();
915
+ this._gridDirtyAt = null;
931
916
  }
932
917
  /**
933
918
  * Public read-only access to the dirty flag. Used by tick-end safety
@@ -935,7 +920,7 @@ class OrderManager {
935
920
  * @returns {boolean}
936
921
  */
937
922
  isGridDirty() {
938
- return this._gridDirty === true;
923
+ return this._gridDirtyAt !== null;
939
924
  }
940
925
  /**
941
926
  * If the master grid has been mutated since the last successful
@@ -952,15 +937,13 @@ class OrderManager {
952
937
  * @returns {Promise<{skipped?: boolean, suspended?: boolean, isValid?: boolean, reason?: string}>}
953
938
  */
954
939
  async flushGridDirty(contextLabel = 'flush-grid-dirty') {
955
- if (!this._gridDirty) {
940
+ if (this._gridDirtyAt == null) {
956
941
  return { skipped: true, reason: 'not-dirty' };
957
942
  }
958
943
  if (this._gridPersistenceSuspendedReason) {
959
944
  this.logger?.log?.(`[PERSISTENCE-FLUSH] Skipping dirty-flush while suspended: ${this._gridPersistenceSuspendedReason}`, 'warn');
960
945
  return { skipped: true, suspended: true, reason: this._gridPersistenceSuspendedReason };
961
946
  }
962
- const dirtyCount = this._gridDirtyReasons.size;
963
- const dirtySince = this._gridDirtySince;
964
947
  const result = await this.persistGrid(undefined);
965
948
  if (result && result.skipped === true) {
966
949
  // Persistence was deferred (suspension, validation, etc.) — keep
@@ -972,8 +955,7 @@ class OrderManager {
972
955
  return result;
973
956
  }
974
957
  this._clearGridDirty();
975
- this.logger?.log?.(`[PERSISTENCE-FLUSH] Flushed ${dirtyCount} dirty mutation context(s) ` +
976
- `(since ${new Date(dirtySince).toISOString()}) via ${contextLabel}`, 'info');
958
+ this.logger?.log?.(`[PERSISTENCE-FLUSH] Flushed dirty grid via ${contextLabel}`, 'info');
977
959
  return result || { isValid: true };
978
960
  }
979
961
  /**
@@ -1426,12 +1408,15 @@ class OrderManager {
1426
1408
  this._gridVersion++;
1427
1409
  committed = true;
1428
1410
  // Track orderIds from successful COW commits for recovery sync protection.
1429
- // Cleared on every commit to reflect only the current confirmed state.
1430
- this._committedOrderIds.clear();
1411
+ // Build a new set from the committed finalMap and atomically swap to
1412
+ // avoid the intermediate empty state that clear() creates — a crash
1413
+ // during clear()+repopulate would lose all committed IDs.
1414
+ const newCommittedIds = new Set();
1431
1415
  for (const [id, order] of finalMap.entries()) {
1432
1416
  if (order.orderId)
1433
- this._committedOrderIds.add(order.orderId);
1417
+ newCommittedIds.add(order.orderId);
1434
1418
  }
1419
+ this._committedOrderIds = newCommittedIds;
1435
1420
  const freshIndexes = workingGrid.getIndexes();
1436
1421
  this._ordersByState = {
1437
1422
  [ORDER_STATES.VIRTUAL]: freshIndexes[ORDER_STATES.VIRTUAL] || new Set(),
@@ -1525,7 +1510,7 @@ class OrderManager {
1525
1510
  // passes an explicit snapshotOrders (e.g. from the startup
1526
1511
  // storeGrid callback), the dirty flag is for the LIVE grid, not
1527
1512
  // the supplied snapshot, so we leave it alone.
1528
- if (snapshotOrders === undefined && this._gridDirty) {
1513
+ if (snapshotOrders === undefined && this._gridDirtyAt != null) {
1529
1514
  this._clearGridDirty();
1530
1515
  }
1531
1516
  return validation;
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../modules/order/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../modules/order/manager.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,kFAAkF;AAClF,mCAAmC;AACnC,kFAAkF;AAElF,MAAM,EACF,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,MAAM,EACN,SAAS,EACT,eAAe,EACf,eAAe,EAClB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAC5B,MAAM,EACF,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACpB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAC5B,MAAM,EACF,cAAc,EACd,cAAc,EACd,YAAY,EACZ,0BAA0B,EAC7B,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAC7B,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAChF,MAAM,EACF,aAAa,EACb,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACjB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAChC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAClD,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACnC,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAC3C,MAAM,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACnC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;AAEjD,kFAAkF;AAClF,kCAAkC;AAClC,kFAAkF;AAClF,EAAE;AACF,mDAAmD;AACnD,EAAE;AACF,kBAAkB;AAClB,0EAA0E;AAC1E,0EAA0E;AAC1E,EAAE;AACF,2EAA2E;AAC3E,EAAE;AACF,YAAY;AACZ,kEAAkE;AAClE,iDAAiD;AACjD,qFAAqF;AACrF,6DAA6D;AAC7D,qEAAqE;AACrE,4CAA4C;AAC5C,0EAA0E;AAC1E,EAAE;AACF,kBAAkB;AAClB,6EAA6E;AAC7E,6DAA6D;AAC7D,iEAAiE;AACjE,uEAAuE;AACvE,2EAA2E;AAC3E,EAAE;AACF,kCAAkC;AAClC,2EAA2E;AAC3E,mDAAmD;AACnD,4DAA4D;AAC5D,iEAAiE;AACjE,mEAAmE;AACnE,EAAE;AACF,4BAA4B;AAC5B,4EAA4E;AAC5E,mEAAmE;AACnE,kEAAkE;AAClE,2DAA2D;AAC3D,EAAE;AACF,kFAAkF;AAElF,MAAM,kBAAkB;IACpB,QAAQ,CAAM;IACd,MAAM,CAAM;IACZ,MAAM,CAAM;IACZ,MAAM,CAAM;IAEZ,YAAY,IAAI;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,KAAK,EACL,KAAK,GAAG,EAAE,EACV,UAAU,GAAG,IAAI,GAAG,EAAE,EACzB;QACG,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;QAE9E,MAAM,cAAc,GAAG;YACnB,gBAAgB,EAAE,UAAU;YAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,aAAa,EAAE,IAAI,CAAC,MAAM;YAC1B,KAAK;YACL,UAAU;YACV,KAAK;YACL,kBAAkB,EAAE,WAAW;SAClC,CAAC;QAEF,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAEtG,IAAI,oBAAoB,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,iCAAiC,CAAC;QACtF,MAAM,eAAe,GAAG,aAAa,CACjC,UAAU,EACV,UAAU,EACV,cAAc,EACd;YACI,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;YACpD,oBAAoB;SACvB,CACJ,CAAC;QAEF,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,kBAAkB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACvF,0BAA0B,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAEnF,MAAM,UAAU,GAAG;YACf,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS;YAC5C,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS;SAChD,CAAC;QAEF,MAAM,SAAS,GAAG,wBAAwB,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxF,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,iCAAiC,SAAS,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9E,OAAO,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,EAAE,IAAI,qCAAqC,CAAC;YACrF,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,qCAAqC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;YACxE,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QAErE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,iCAAiC,QAAQ,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,GAAG,CACZ,uBAAuB,gBAAgB,CAAC,MAAM,kBAAkB,YAAY,CAAC,MAAM,EAAE,EACrF,MAAM,CACT,CAAC;QAEF,OAAO,kBAAkB,CAAC;YACtB,OAAO,EAAE,gBAAgB;YACzB,YAAY;YACZ,WAAW;YACX,eAAe,EAAE,cAAc;YAC/B,gBAAgB,EAAE,QAAQ;SAC7B,CAAC,CAAC;IACP,CAAC;CACJ;AAED,kFAAkF;AAClF,2BAA2B;AAC3B,kFAAkF;AAElF,MAAM,YAAY;IACd,MAAM,CAAM;IACZ,SAAS,CAAM;IACf,QAAQ,CAAM;IACd,SAAS,CAAM;IACf,SAAS,CAAM;IACf,SAAS,CAAM;IACf,OAAO,CAAM;IACb,QAAQ,CAAM;IAEd,YAAY,UAAe,EAAE;QACzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,SAAS,GAAG;YACb,KAAK,EAAE,gBAAgB,CAAC,MAAM;YAC9B,kBAAkB,EAAE,IAAI;SAC3B,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG;YACZ,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,QAAQ,EAAE,KAAK;YACf,aAAa,EAAE,CAAC;SACnB,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG;YACb,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE;YACxC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE;SAC5C,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG;YACb,eAAe,EAAE,KAAK;SACzB,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG;YACb,cAAc,EAAE,KAAK;YACrB,SAAS,EAAE,CAAC;SACf,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG;YACX,gBAAgB,EAAE,IAAI;YACtB,qBAAqB,EAAE,IAAI;SAC9B,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG;YACZ,YAAY,EAAE,IAAI;YAClB,iBAAiB,EAAE,KAAK;SAC3B,CAAC;IAEN,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAChC,CAAC;IAED,iBAAiB,CAAC,KAAK;QACnB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,0BAA0B,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,gBAAgB,CAAC,WAAW,CAAC;IACjE,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,gBAAgB,CAAC,YAAY,CAAC;IAClE,CAAC;IAED,cAAc,CAAC,WAAW;QACtB,IAAI,CAAC,SAAS,CAAC,kBAAkB,GAAG,WAAW,CAAC;IACpD,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;IAC7C,CAAC;IAED,gBAAgB;QACZ,IAAI,CAAC,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAC7C,CAAC;IAED,qBAAqB;QACjB,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;IAClC,CAAC;IAED,gBAAgB,CAAC,OAAO;QACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7C,CAAC;IACL,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,gBAAgB;QACZ,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,IAAI;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC;IAChD,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtD,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;QACtC,CAAC;IACL,CAAC;IAED,cAAc;QACV,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,eAAe;QACX,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,KAAK,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;IAC1C,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,kFAAkF,EAAE,OAAO,CAAC,CAAC;IACpH,CAAC;IAED,gBAAgB;QACZ,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,oBAAoB;QAChB,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YAChE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACtD,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,2DAA2D,EAAE,MAAM,CAAC,CAAC;gBACxF,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;IACzC,CAAC;IAED,qBAAqB,CAAC,MAAM;QACxB,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG;YAC5B,GAAG,MAAM;YACT,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;SACjB,CAAC;IACN,CAAC;IAED,yBAAyB;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACrC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,0BAA0B,CAAC,MAAM;QAC7B,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG;YACjC,GAAG,MAAM;YACT,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;SACjB,CAAC;IACN,CAAC;IAED,8BAA8B;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAC1C,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,mBAAmB;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5C,CAAC;IACL,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,GAAG,KAAK,CAAC;IAC5C,CAAC;IAED,0BAA0B;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAC;IAC/C,CAAC;IAED,QAAQ;QACJ,OAAO;YACH,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE;YAC1D,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC9B,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;YAChC,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;YAChC,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;YAChC,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;SACjC,CAAC;IACN,CAAC;CACJ;AAED,kFAAkF;AAClF,iCAAiC;AACjC,kFAAkF;AAElF,MAAM,YAAY;IACd,MAAM,CAAM;IACZ,UAAU,CAAM;IAChB,MAAM,CAAM;IACZ,MAAM,CAAM;IACZ,WAAW,CAAM;IACjB,UAAU,CAAM;IAChB,UAAU,CAAM;IAChB,QAAQ,CAAM;IACd,IAAI,CAAM;IACV,MAAM,CAAM;IACZ,cAAc,CAA8B;IAC5C,aAAa,CAA8B;IAC3C,iBAAiB,CAAS;IAC1B,kBAAkB,CAAS;IAC3B,WAAW,CAAS;IACpB,MAAM,CAAM;IACZ,SAAS,CAAM;IACf,aAAa,CAAM;IACnB,KAAK,CAAM;IACX,qBAAqB,CAAM;IAC3B,qBAAqB,CAAM;IAC3B,iBAAiB,CAAU;IAC3B,4BAA4B,CAAQ;IACpC,cAAc,CAAgB;IAC9B,oBAAoB,CAAgB;IACpC,kBAAkB,CAAM;IACxB,SAAS,CAAM;IACf,mBAAmB,CAAM;IACzB,eAAe,CAAM;IACrB,SAAS,CAAM;IACf,SAAS,CAAM;IACf,wBAAwB,CAAW;IACnC,iBAAiB,CAAW;IAC5B,gBAAgB,CAAS;IACzB,mBAAmB,CAAU;IAC7B,oBAAoB,CAAU;IAC9B,qBAAqB,CAAM;IAC3B,kBAAkB,CAAU;IAC5B,YAAY,CAAS;IACrB,+BAA+B,CAAM;IACrC,kBAAkB,CAAgB;IAClC,kBAAkB,CAAc;IAChC,YAAY,CAAgB;IAE5B,QAAQ,CAAM;IACd,mBAAmB,CAAM;IACzB,UAAU,CAAM;IAChB,aAAa,CAAM;IACnB,UAAU,CAAkD;IAE5D;;OAEG;IACH,YAAY,SAA8B,EAAE;QACxC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1I,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC;QAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE;YAC/B,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,SAAS;YACxC,OAAO;YACP,cAAc,EAAE,aAAa,EAAE,MAAM,IAAI,SAAS;SACrD,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAExD,4EAA4E;QAC5E,4EAA4E;QAC5E,qDAAqD;QACrD,IAAI,CAAC,cAAc,GAAG;YAClB,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,GAAG,EAAE;YACjC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,EAAE;YAChC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,GAAG,EAAE;SACpC,CAAC;QACF,IAAI,CAAC,aAAa,GAAG;YACjB,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE;YAC5B,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE;YAC7B,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,EAAE;SAClC,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAE/B,sEAAsE;QACtE,oEAAoE;QACpE,yCAAyC;QACzC,+DAA+D;QAC/D,oDAAoD;QACpD,gDAAgD;QAChD,iDAAiD;QACjD,6DAA6D;QAC7D,uCAAuC;QACvC,IAAI,CAAC,eAAe,GAAG,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,mBAAmB,GAAG,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAE7D,IAAI,CAAC,wBAAwB,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1C,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC;QAC5C,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAGzB,IAAI,CAAC,QAAQ,GAAG;YACZ,eAAe,EAAE,CAAC;YAClB,mBAAmB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;YACxC,gBAAgB,EAAE,CAAC;YACnB,mBAAmB,EAAE,CAAC;YACtB,2BAA2B,EAAE,CAAC;YAC9B,kBAAkB,EAAE,CAAC;YACrB,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE;SAC/B,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,aAAa;QACT,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,UAAU,GAAG,IAAI,kBAAkB,CAAC;gBACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;aACtB,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,oBAAoB;QAChB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,kBAAkB,CAAC,KAAK;QACpB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,aAAa;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,cAAc;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,gBAAgB;QACZ,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,cAAc;QACV,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,eAAe;QACX,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAEpD,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAE9B,sEAAsE;YACtE,wEAAwE;YACxE,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACtB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACvB,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,wDAAwD,UAAU,CAAC,MAAM,IAAI;oBAC7E,iDAAiD,EACjD,MAAM,CACT,CAAC;YACN,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8EAA8E,EAAE,MAAM,CAAC,CAAC;QAC5G,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,iBAAiB;QACb,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,gBAAgB;QACZ,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,UAAU;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS;QACjD,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS;QAC5C,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC5E,CAAC;IAED,aAAa,CAAC,IAAI;QACd,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED;;OAEG;IACH,qBAAqB;QACjB,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACxF,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QACtF,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC;YAC7E,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YACvD,CAAC,CAAC,IAAI,CAAC;QACX,OAAO,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;IAClE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,oBAAoB,CAAC,SAAS,GAAG,MAAM,CAAC,yBAAyB;QACnE,IAAI,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;YAAE,OAAO;QAE5D,IAAI,WAAW,GAAG,IAAI,CAAC;QAEvB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YACpC,IAAI,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;gBAAE,OAAO;YAC5D,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC9B,IAAI,CAAC,qBAAqB,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBACjD,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC;gBACzC,CAAC,CAAC,CAAC;YACP,CAAC;YACD,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,MAAM,OAAO,CAAC,IAAI,CAAC;YACf,WAAW;YACX,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC1B,UAAU,CAAC,GAAG,EAAE;oBACZ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2CAA2C,EAAE,MAAM,CAAC,CAAC;oBACrE,OAAO,EAAE,CAAC;gBACd,CAAC,EAAE,SAAS,CAAC,CAAC;YAClB,CAAC,CAAC;SACL,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CAAC,SAAS;QAC9B,IAAI,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC1C,MAAM,IAAI,CAAC,iCAAiC,EAAE,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,iCAAiC;QACnC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,gCAAgC,EAAE,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpF,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC3C,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAM;QAC1B,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAEnC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/B,IAAI,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,qBAAqB,KAAK,UAAU,EAAE,CAAC;YACtG,IAAI,CAAC;gBACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACjC,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,2CAA2C,CAAC,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;YACvF,CAAC;YACD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAClC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACtC,CAAC;IACL,CAAC;IAED,kCAAkC;QAC9B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,iCAAiC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBAClD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YACnC,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED;;OAEG;IACH,uBAAuB;QACnB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QACzD,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,sBAAsB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAEnH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,MAAM,YAAY,GAAG,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACtH,MAAM,aAAa,GAAG,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE1H,IAAI,YAAY,KAAK,CAAC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtH,IAAI,aAAa,KAAK,CAAC;gBAAE,IAAI,CAAC,kCAAkC,EAAE,CAAC;QACvE,CAAC;QACD,IAAI,aAAa,KAAK,CAAC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzH,IAAI,cAAc,KAAK,CAAC;gBAAE,IAAI,CAAC,kCAAkC,EAAE,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QAElE,MAAM,YAAY,GAAG,YAAY,GAAG,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5F,MAAM,aAAa,GAAG,aAAa,GAAG,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE/F,IAAI,YAAY;YAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;QAC3G,IAAI,aAAa;YAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;IACnH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QAClB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC3C,OAAO,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7B,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,eAAe;QACX,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QAClB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAClC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,kBAAkB;QACd,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,mBAAmB;QACf,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,MAAM,EAAE,IAAI;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,IAAI,EAAE,OAAO;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,EAAE;QAC9C,0EAA0E;QAC1E,kEAAkE;QAClE,gEAAgE;QAChE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,EAAE;QACpC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,QAAQ;QACf,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC;QACvD,KAAK,MAAM,EAAE,IAAI,QAAQ;YAAE,IAAI,EAAE;gBAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3E,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,QAAQ;QACjB,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,KAAK,MAAM,EAAE,IAAI,QAAQ;YAAE,IAAI,EAAE;gBAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,EAAE;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/B,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAChD,IAAI,GAAG,GAAG,SAAS,EAAE,CAAC;gBAClB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;IACL,CAAC;IAED,4BAA4B,CAAC,UAA+B,EAAE;QAC1D,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;QAClE,CAAC;QAED,OAAO;YACH,cAAc,EAAE,OAAO,CAAC,cAAc,KAAK,IAAI;YAC/C,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACtE,CAAC;IACN,CAAC;IAED,uBAAuB,CAAC,UAA+B,EAAE;QACrD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,EAAE,OAAO,GAAG,EAAE;QAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;QACjE,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC3C,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,EAAE,OAAO,GAAG,EAAE;QAChE,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE3D,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC;YAC/F,IAAI,UAAU,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC;oBAC9B,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,OAAO;oBACP,OAAO,EAAE,UAAU,CAAC,OAAO;iBAC9B,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC5B,MAAM,GAAG,GAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBAC/C,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;oBAC3B,MAAM,GAAG,CAAC;gBACd,CAAC;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,uEAAuE;QACvE,uEAAuE;QACvE,uEAAuE;QACvE,IAAI,SAAS,GAAG,EAAE,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC;QAElD,8DAA8D;QAC9D,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QAC7E,IAAI,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3C,SAAS,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAC9D,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,UAAU,CAAC,2BAA2B,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;QACnH,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;QAClD,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QAEpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjE,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,CAAC,kCAAkC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAErD,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAEjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kCAAkC,CAAC,OAAO,EAAE,OAAO;QAC/C,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACxD,OAAO;QACX,CAAC;QAED,IAAI,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAC9B,0BAA0B,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,OAAO,GAAG,CAC9E,CAAC;YACF,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,OAAY,EAAE,CAAC;YACpB,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,8BAA8B,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACpF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,+CAA+C,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1G,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,EAAE,OAAO,GAAG,EAAE;QACtE,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;QACjE,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;OAUG;IACH,cAAc,CAAC,MAAM,GAAG,SAAS,EAAE,UAAkB,IAAI;QACrD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,eAAe;QACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,WAAW;QACP,OAAO,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,cAAc,CAAC,YAAY,GAAG,kBAAkB;QAClD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;YAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAClD,CAAC;QACD,IAAI,IAAI,CAAC,+BAA+B,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CACd,6DAA6D,IAAI,CAAC,+BAA+B,EAAE,EACnG,MAAM,CACT,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAC5F,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACpC,iEAAiE;YACjE,4CAA4C;YAC5C,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CACd,sDAAsD,YAAY,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,EACpG,MAAM,CACT,CAAC;YACF,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CACd,8CAA8C,YAAY,EAAE,EAC5D,MAAM,CACT,CAAC;QACF,OAAO,MAAM,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO;QAC3C,oDAAoD;QACpD,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAEnD,wDAAwD;QACxD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,wBAAwB,CAAC,CAAC;QACpF,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAEhD,IAAI,eAAe,EAAE,CAAC;YAClB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACtE,OAAO,eAAe,CAAC;QAC3B,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACrF,OAAO;YACH,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,KAAK;YAClB,WAAW;YACX,cAAc,EAAE,WAAW,CAAC,UAAU,EAAE;YACxC,eAAe,EAAE,IAAI,CAAC,WAAW;YACjC,OAAO,EAAE,KAAK;SACjB,CAAC;IACN,CAAC;IAED;;OAEG;IACH,0BAA0B;QACtB,uCAAuC;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAE/E,mCAAmC;QACnC,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,CAAC;QAC1E,MAAM,WAAW,GAAG,uBAAuB,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAC/F,MAAM,UAAU,GAAG,uBAAuB,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAE7F,2EAA2E;QAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;QACrD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;QACpD,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,oBAAoB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAErE,0FAA0F;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC;aAC9E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;aACjC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACzB,2EAA2E;QAC3E,MAAM,UAAU,GAAG,MAAM;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,cAAc,CAAC;aAC1E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAEvC,yFAAyF;QACzF,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC;aAC5E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;aACjC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACxB,0EAA0E;QAC1E,MAAM,SAAS,GAAG,KAAK;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,aAAa,CAAC;aACxE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAEvC,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACH,uBAAuB,CAAC,IAAI,EAAE,KAAK;QAC/B,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG;YAAE,OAAO,MAAM,CAAC;QACxB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClC,mEAAmE;YACnE,2CAA2C;YAC3C,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC1E,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,IAAI;QACvB,OAAO,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,eAAe;QACX,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,6CAA6C,EAAE,OAAO,CAAC,CAAC;gBAC/F,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;gBACjE,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;gBAChE,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,0BAA0B,KAAK,CAAC,KAAK,GAAG,EAAE,OAAO,CAAC,CAAC;gBACxF,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,yBAAyB,KAAK,CAAC,IAAI,GAAG,EAAE,OAAO,CAAC,CAAC;gBACtF,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAClE,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,sBAAsB,KAAK,yBAAyB,EAAE,OAAO,CAAC,CAAC;oBAClG,OAAO,KAAK,CAAC;gBACjB,CAAC;YACL,CAAC;QACL,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAChE,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,qBAAqB,IAAI,yBAAyB,EAAE,OAAO,CAAC,CAAC;oBAChG,OAAO,KAAK,CAAC;gBACjB,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,sBAAsB;QAClB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2DAA2D,EAAE,OAAO,CAAC,CAAC;YACtF,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,cAAc;QACV,IAAI,CAAC;YACD,MAAM,cAAc,GAAG;gBACnB,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,GAAG,EAAU;gBACzC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,EAAU;gBACxC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,GAAG,EAAU;aAC5C,CAAC;YACF,MAAM,aAAa,GAAG;gBAClB,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,EAAU;gBACpC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,EAAU;gBACrC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,EAAU;aAC1C,CAAC;YAEF,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpC,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACrC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oBACrC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,CAAC,CAAC;gBAClF,CAAC;YACL,CAAC;YAED,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;YACrC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YAEnC,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;gBACrD,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8CAA8C,EAAE,OAAO,CAAC,CAAC;YACzE,OAAO,KAAK,CAAC;QACjB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;YAC7E,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED;;OAEG;IACH,yBAAyB;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,8BAA8B;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,8BAA8B,EAAE,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CAAC,SAAS,EAAE,OAAO;QACzC,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CAAC,OAAO;QACzB,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,sBAAsB;QAClB,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,wBAAwB;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC;QAC1E,CAAC;QACD,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,IAAI,CAAC,CAAC;IACzG,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,kBAAgD,CAAC;QAC7D,MAAM,iBAAiB,GAAwB,CAAC,OAAO,eAAe,KAAK,QAAQ,CAAC;YAChF,CAAC,CAAC,EAAE,uBAAuB,EAAE,eAAe,EAAE;YAC9C,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QAE9B,MAAM,uBAAuB,GAAG,cAAc,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;QAC1F,MAAM,WAAW,GAAG,cAAc,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC;QACxD,MAAM,gBAAgB,GAAG,CAAC,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;QAC9D,MAAM,YAAY,GAAG,CAAC,CAAC,iBAAiB,CAAC,YAAY,CAAC;QAEtD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,yEAAyE;QACzE,mFAAmF;QACnF,6EAA6E;QAC7E,oBAAoB;QACpB,IAAI,uBAAuB,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,uBAAuB,eAAe,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,IAAI,CAAC,4BAA4B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,4BAA4B,CAAC,MAAM,sBAAsB,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,wBAAwB,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,aAAa,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACpD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACtC,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACpC,CAAC;QAED,OAAO;YACH,OAAO,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;YAC7B,OAAO;SACV,CAAC;IACN,CAAC;IAED;;OAEG;IACH,4BAA4B;QACxB,IAAI,CAAC,IAAI,CAAC,qBAAqB;YAAE,OAAO,KAAK,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACpD,IAAI,GAAG,GAAG,eAAe,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAEnD,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,iBAAiB;QACb,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB;YAC9C,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,qBAAqB;YACzC,CAAC,CAAC,CAAC,CAAC;QAER,OAAO;YACH,SAAS,EAAE,IAAI,CAAC,qBAAqB,KAAK,IAAI;YAC9C,iBAAiB,EAAE,eAAe;YAClC,UAAU,EAAE,eAAe,GAAG,eAAe,CAAC,UAAU;YACxD,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;YAC1C,kBAAkB,EAAE,IAAI,CAAC,4BAA4B,CAAC,MAAM;YAC5D,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC;SACtD,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE,cAAc;QACpC,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE;YAC1D,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;YACnD,oBAAoB,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,iCAAiC;SACnF,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CAAC,KAAK,GAAG,EAAE,EAAE,UAAU,GAAG,IAAI,GAAG,EAAE;QACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uCAAuC,EAAE,MAAM,CAAC,CAAC;QACjE,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC3C,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,KAAK,GAAG,EAAE,EAAE,UAAU,GAAG,IAAI,GAAG,EAAE;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,kBAAkB,CAAC,mDAAmD,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC;YACnC,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE;YACnC,KAAK;YACL,UAAU;SACb,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9C,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,iBAAiB,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC9D,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC;QAElC,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5E,0BAA0B,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAEjE,OAAO;YACH,GAAG,MAAM;YACT,OAAO;YACP,GAAG,gBAAgB,CAAC,OAAO,CAAC;SAC/B,CAAC;IACN,CAAC;IAED,yBAAyB,CAAC,WAAW,EAAE,cAAc;QACjD,OAAO,wBAAwB,CAAC,WAAW,EAAE,cAAc,EAAE;YACzD,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS;YAC5C,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS;SAChD,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED,+BAA+B,CAAC,WAAW,EAAE,aAAkC,EAAE;QAC7E,OAAO,sBAAsB,CAAC,WAAW,EAAE;YACvC,YAAY,EAAE,UAAU,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS;YACvE,aAAa,EAAE,UAAU,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS;SAC5E,CAAC,CAAC;IACP,CAAC;IAED,wBAAwB;QACpB,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;QACvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;QACxD,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC/C,MAAM,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAErD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CACX,0DAA0D,eAAe,UAAU,gBAAgB,KAAK;gBACxG,wCAAwC,CAC3C,CAAC;QACN,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CACX,+DAA+D,mBAAmB,KAAK;gBACvF,wCAAwC,CAC3C,CAAC;QACN,CAAC;QAED,oEAAoE;QACpE,4EAA4E;QAC5E,MAAM,sBAAsB,GAAG,gBAAgB,GAAG,IAAI,CAAC;QAEvD,OAAO;YACH,YAAY;YACZ,aAAa;YACb,sBAAsB;SACzB,CAAC;IACN,CAAC;IAED,kBAAkB,CAAC,OAAO,EAAE,UAAU;QAClC,OAAO,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,sBAAsB,CAAC,MAAM;QACzB,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,GAAG,EAAE;QAC/E,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;QAC3C,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,iBAAiB,CAAC;QAEtB,IAAI,CAAC;YACD,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACxD,CAAC;QAAC,OAAO,YAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,YAAY,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1D,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,EAAE;YAC/C,OAAO,EAAE,KAAK;YACd,cAAc,EAAE,IAAI,CAAC,YAAY;YACjC,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,iBAAiB;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC;YAClF,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,eAAe,GAAG,cAAc,CAAC,WAAW,EAAE;gBAChD,OAAO,EAAE,IAAI;gBACb,cAAc,EAAE,IAAI,CAAC,YAAY;gBACjC,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,iBAAiB;aACpB,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,eAAe,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC;gBACpF,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,OAAO;YACX,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,kCAAkC,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,QAAQ,WAAW,EACjF,OAAO,CACV,CAAC;YAEF,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;YACrC,0EAA0E;YAC1E,2EAA2E;YAC3E,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC3C,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;YACL,CAAC;YAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC;YACnC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,SAAS,GAAG,IAAI,CAAC;YAEjB,2EAA2E;YAC3E,qEAAqE;YACrE,oEAAoE;YACpE,0DAA0D;YAC1D,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;YAC1C,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC3C,IAAI,KAAK,CAAC,OAAO;oBAAE,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,CAAC,kBAAkB,GAAG,eAAe,CAAC;YAE1C,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;YAC9C,IAAI,CAAC,cAAc,GAAG;gBAClB,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE;gBACvE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE;gBACrE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE;aAC1E,CAAC;YACF,IAAI,CAAC,aAAa,GAAG;gBACjB,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE;gBAC7D,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE;gBAC/D,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE;aACtE,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAClC,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,QAAQ,IAAI,EAAE,OAAO,CAAC,CAAC;YAElE,IAAI,KAAK,CAAC,IAAI,GAAG,eAAe,CAAC,mBAAmB,EAAE,CAAC;gBACnD,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,mCAAmC,KAAK,CAAC,IAAI,2BAA2B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,EACnH,MAAM,CACT,CAAC;YACN,CAAC;QACL,CAAC;QAAC,OAAO,SAAc,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gDAAgD,SAAS,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;YAC9F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnD,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,+BAA+B,CAAC,UAA+B,EAAE;QAC7D,MAAM,MAAM,GAAG,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3E,MAAM,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,KAAK,KAAK,CAAC;QAE1E,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,uBAAuB,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;YAC9E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2CAA2C,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;YACrF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC3C,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,MAAM,GAAG,WAAW;QACvC,IAAI,CAAC,+BAA+B,GAAG,MAAM,CAAC;IAClD,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,MAAM,GAAG,IAAI;QAC/B,IAAI,CAAC,IAAI,CAAC,+BAA+B;YAAE,OAAO;QAClD,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,+CAA+C,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAC7E,MAAM,CACT,CAAC;QACF,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC;IAChD,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CAAC,cAAc;QAC5B,IAAI,IAAI,CAAC,+BAA+B,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,iEAAiE,IAAI,CAAC,+BAA+B,EAAE,EACvG,MAAM,CACT,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAC3G,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,+DAA+D,UAAU,CAAC,MAAM,EAAE,EAClF,MAAM,CACT,CAAC;YACF,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,MAAM,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAEpE,+DAA+D;QAC/D,8DAA8D;QAC9D,+DAA+D;QAC/D,gEAAgE;QAChE,2DAA2D;QAC3D,gEAAgE;QAChE,+CAA+C;QAC/C,IAAI,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;YAC5D,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3B,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,UAAU;QACN,OAAO;YACH,GAAG,IAAI,CAAC,QAAQ;YAChB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC7B,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;SAC1B,CAAC;IACN,CAAC;IAED,2BAA2B,CAAC,WAAW,EAAE,UAAU;QAC/C,OAAO,0BAA0B,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC/D,CAAC;IAED,oBAAoB,CAAC,OAAO;QACxB,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,0BAA0B,CAAC,WAAW,EAAE,OAAO,GAAG,KAAK;QACnD,IAAI,iBAAiB,CAAC;QACtB,IAAI,CAAC;YACD,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACxD,CAAC;QAAC,OAAO,YAAiB,EAAE,CAAC;YACzB,OAAO;gBACH,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,YAAY,CAAC,OAAO;gBAC5B,KAAK,EAAE,OAAO;aACjB,CAAC;QACN,CAAC;QAED,OAAO,cAAc,CAAC,WAAW,EAAE;YAC/B,OAAO;YACP,cAAc,EAAE,IAAI,CAAC,YAAY;YACjC,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,iBAAiB;SACpB,CAAC,CAAC;IACP,CAAC;IAED,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,eAAe,CAAC,KAAK;QACrB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,IAAI,IAAI,CAAC;IACzD,CAAC;IAED,IAAI,iBAAiB,CAAC,KAAK;QACvB,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;IAED,IAAI,sBAAsB;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,qBAAqB,IAAI,IAAI,CAAC;IAC9D,CAAC;IAED,IAAI,sBAAsB,CAAC,KAAK;QAC5B,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAED,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,IAAI,cAAc,CAAC,KAAK;QACpB,MAAM,QAAQ,GAAG;YACb,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,QAAQ,EAAE,KAAK;YACf,aAAa,EAAE,CAAC;YAChB,yBAAyB,EAAE,KAAK;SACnC,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG;YACnB,GAAG,QAAQ;YACX,GAAG,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;SACvD,CAAC;IACN,CAAC;IAED,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IACjC,CAAC;IAED,IAAI,eAAe,CAAC,KAAK;QACrB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO;QAEhD,MAAM,WAAW,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG;YACpB,GAAG,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;YAC7C,IAAI,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;SAClD,CAAC;IACN,CAAC;CAEJ;AAED,iBAAS,EAAE,YAAY,EAAE,CAAC"}
@@ -154,7 +154,7 @@ declare class SyncEngine {
154
154
  /**
155
155
  * Synchronize grid orders with blockchain open orders snapshot.
156
156
  * @param {Array|null} chainOrders - Array of blockchain order objects
157
- * @param {Object} [options={}] - Sync options (e.g., { skipAccounting: true })
157
+ * @param {Object} [options={}] - Sync options (e.g., { skipAccounting: true, protectCommittedOrders: true })
158
158
  * @returns {Promise<Object>} Result with filledOrders, updatedOrders, ordersNeedingCorrection
159
159
  */
160
160
  syncFromOpenOrders(chainOrders: any[] | null, options?: Record<string, any>): Promise<any>;
@@ -227,12 +227,19 @@ declare class SyncEngine {
227
227
  updatedOrders: any[];
228
228
  partialFill: boolean;
229
229
  requiresOpenOrdersSync: boolean;
230
+ ghostOrderId?: undefined;
230
231
  } | {
231
- ghostOrderId?: string;
232
232
  filledOrders: any[];
233
233
  updatedOrders: any[];
234
234
  partialFill: boolean;
235
+ ghostOrderId: string;
235
236
  requiresOpenOrdersSync?: undefined;
237
+ } | {
238
+ filledOrders: any[];
239
+ updatedOrders: any[];
240
+ partialFill: boolean;
241
+ requiresOpenOrdersSync?: undefined;
242
+ ghostOrderId?: undefined;
236
243
  }>;
237
244
  /**
238
245
  * High-level dispatcher for different blockchain synchronization sources.
@@ -1 +1 @@
1
- {"version":3,"file":"sync_engine.d.ts","sourceRoot":"","sources":["../../../modules/order/sync_engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AAkLH,cAAM,UAAU;IACZ,OAAO,CAAC,OAAO,CAAM;IACrB;;OAEG;gBACS,OAAO,EAAE,GAAG;IAIxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6DG;IACH;;;;;OAKG;IACG,kBAAkB,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAyErF;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,qBAAqB,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;;IA6HnF;;;;;;;;;;;;;;;OAeG;IACG,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9J,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,uBAAuB,EAAE,GAAG,EAAE,EAAE,oBAAoB,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;;IA6V5M;;;;;;OAMG;IACG,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;;;;;;;;;;;;IA2QtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;IACG,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IA0K5F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;IACG,gCAAgC;IA0CtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACG,gBAAgB;CAgCzB;AAED,SAAS,UAAU,CAAC"}
1
+ {"version":3,"file":"sync_engine.d.ts","sourceRoot":"","sources":["../../../modules/order/sync_engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AAkLH,cAAM,UAAU;IACZ,OAAO,CAAC,OAAO,CAAM;IACrB;;OAEG;gBACS,OAAO,EAAE,GAAG;IAIxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6DG;IACH;;;;;OAKG;IACG,kBAAkB,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IA4FrF;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,qBAAqB,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;;IA6HnF;;;;;;;;;;;;;;;OAeG;IACG,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9J,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,uBAAuB,EAAE,GAAG,EAAE,EAAE,oBAAoB,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;;IA8X5M;;;;;;OAMG;IACG,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;;;;;;;;;;;;;;;;;;;IAuStE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;IACG,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IA2K5F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;IACG,gCAAgC;IA0CtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACG,gBAAgB;CAgCzB;AAED,SAAS,UAAU,CAAC"}
@@ -322,7 +322,7 @@ class SyncEngine {
322
322
  /**
323
323
  * Synchronize grid orders with blockchain open orders snapshot.
324
324
  * @param {Array|null} chainOrders - Array of blockchain order objects
325
- * @param {Object} [options={}] - Sync options (e.g., { skipAccounting: true })
325
+ * @param {Object} [options={}] - Sync options (e.g., { skipAccounting: true, protectCommittedOrders: true })
326
326
  * @returns {Promise<Object>} Result with filledOrders, updatedOrders, ordersNeedingCorrection
327
327
  */
328
328
  async syncFromOpenOrders(chainOrders, options = {}) {
@@ -344,8 +344,10 @@ class SyncEngine {
344
344
  }
345
345
  mgr.logger?.log?.(`[SYNC] Starting synchronization from ${chainOrders?.length || 0} blockchain orders...`, 'info');
346
346
  const timeoutMs = TIMING.SYNC_LOCK_TIMEOUT_MS;
347
+ const forceReleaseMs = TIMING.SYNC_LOCK_FORCE_RELEASE_AGE_MS;
347
348
  let timedOut = false;
348
349
  let timeoutHandle;
350
+ let forceReleaseHandle;
349
351
  const syncStartedAt = Date.now();
350
352
  try {
351
353
  const result = await Promise.race([
@@ -356,6 +358,7 @@ class SyncEngine {
356
358
  `timeout won the race; next sync will reconcile chain state`, 'warn');
357
359
  return innerResult;
358
360
  }
361
+ clearTimeout(forceReleaseHandle);
359
362
  const unmatchedCount = Array.isArray(innerResult.unmatchedChainOrders)
360
363
  ? innerResult.unmatchedChainOrders.length
361
364
  : 0;
@@ -376,11 +379,24 @@ class SyncEngine {
376
379
  })
377
380
  ]);
378
381
  clearTimeout(timeoutHandle);
382
+ clearTimeout(forceReleaseHandle);
379
383
  return result;
380
384
  }
381
385
  catch (err) {
382
386
  clearTimeout(timeoutHandle);
387
+ clearTimeout(forceReleaseHandle);
383
388
  if (err.message?.includes('timed out')) {
389
+ // Gap 3: Schedule a force-release of the sync lock if the inner
390
+ // operation doesn't complete within the grace window. This prevents
391
+ // a single stuck sync from permanently blocking all subsequent syncs.
392
+ if (forceReleaseMs > 0 && mgr._syncLock && typeof mgr._syncLock.forceRelease === 'function') {
393
+ forceReleaseHandle = setTimeout(() => {
394
+ if (mgr._syncLock.isLocked()) {
395
+ const released = mgr._syncLock.forceRelease();
396
+ mgr.logger?.log?.(`[SYNC] Force-released sync lock (${released} queued ops cleared) after ${forceReleaseMs}ms grace period`, 'warn');
397
+ }
398
+ }, Math.max(1000, forceReleaseMs - (Date.now() - syncStartedAt)));
399
+ }
384
400
  mgr.logger?.log?.('[SYNC] Lock may be held by orphan after timeout; will release when inner work completes', 'warn');
385
401
  }
386
402
  mgr.logger?.log?.(`Sync lock error: ${err.message}`, 'error');
@@ -679,6 +695,18 @@ class SyncEngine {
679
695
  mgr.logger?.log?.(`[SYNC] Orphaned chain order ${chainOrderId} (${chainOrder.type}, price=${chainOrder.price}, ` +
680
696
  `size=${chainOrder.size}) — NOT adopted: duplicates price level of active ` +
681
697
  `${duplicatePriceOrder.id} (${duplicatePriceOrder.orderId} at ${duplicatePriceOrder.price})`, 'warn');
698
+ // Gap 2: Queue duplicate chain order for cancellation via the correction
699
+ // mechanism (called from _performSyncFromOpenOrders). Duplicate price levels
700
+ // block new placements. Cancelling proactively unblocks CREATEs.
701
+ queueCorrection({
702
+ gridOrder: duplicatePriceOrder,
703
+ chainOrderId,
704
+ expectedPrice: chainOrder.price,
705
+ size: chainOrder.size,
706
+ type: chainOrder.type,
707
+ isSurplus: true,
708
+ cancelOnly: true,
709
+ });
682
710
  continue;
683
711
  }
684
712
  const match = findMatchingGridOrderByOpenOrder({ orderId: chainOrderId, type: chainOrder.type, price: chainOrder.price, size: chainOrder.size }, {
@@ -763,7 +791,28 @@ class SyncEngine {
763
791
  }
764
792
  else if (match) {
765
793
  mgr.logger?.log?.(`Warning: Orphan chain order ${chainOrderId} matched grid order ${match.id}, ` +
766
- `but grid order was already matched to another chain order. Skipping to prevent double-assignment.`, 'warn');
794
+ `but grid order was already matched to another chain order. Queuing orphan for cancellation.`, 'warn');
795
+ queueCorrection({
796
+ gridOrder: match,
797
+ chainOrderId,
798
+ expectedPrice: chainOrder.price,
799
+ size: chainOrder.size,
800
+ type: chainOrder.type,
801
+ isSurplus: true,
802
+ cancelOnly: true,
803
+ });
804
+ // Also push to unmatchedChainOrders so the existing auto-cancel
805
+ // path at dexbot_class.ts:4262 can pick it up if the correction
806
+ // mechanism does not fire first.
807
+ unmatchedChainOrders.push({
808
+ chainOrderId,
809
+ type: chainOrder.type,
810
+ price: chainOrder.price,
811
+ size: chainOrder.size,
812
+ raw: rawChainOrders.get(chainOrderId),
813
+ reason: 'already-matched-slot',
814
+ candidateSlotId: match.id,
815
+ });
767
816
  }
768
817
  else {
769
818
  // No grid slot matched by type+price+size in the first pass.
@@ -1011,20 +1060,44 @@ class SyncEngine {
1011
1060
  const filledOrders = [];
1012
1061
  const updatedOrders = [];
1013
1062
  if (isEffectivelyFull) {
1014
- mgr.logger.log(`[SYNC] Full fill for order ${orderId} (slot ${matchedGridOrder.id}).`, 'info');
1015
1063
  const filledOrder = {
1016
1064
  ...matchedGridOrder,
1017
1065
  blockNum: blockNum,
1018
1066
  historyId: historyId,
1019
1067
  isMaker: isMaker // Preserve maker/taker flag for accurate fee calculation
1020
1068
  };
1069
+ if (ghostOrderId) {
1070
+ // Ghost order: the chain order still exists (other-side
1071
+ // rounding to 0) but the chain hasn't closed it yet. Keep
1072
+ // the slot PARTIAL with its orderId so guards
1073
+ // (validateCreateTargetSlots, reconcileGrid) see the slot
1074
+ // as occupied and will NOT generate a duplicate CREATE.
1075
+ // The best-effort cancel in dexbot_class cleans up the
1076
+ // chain order; the next sync cycle virtualizes the
1077
+ // confirmed-free slot.
1078
+ mgr.logger.log(`[SYNC] Ghost full fill for order ${orderId} (slot ${matchedGridOrder.id}): ` +
1079
+ `preserving orderId ${ghostOrderId} as PARTIAL to block duplicate CREATE.`, 'info');
1080
+ const ghostOrder = {
1081
+ ...matchedGridOrder,
1082
+ size: 0,
1083
+ state: ORDER_STATES.PARTIAL,
1084
+ orderId: ghostOrderId,
1085
+ };
1086
+ const ghostOk = await mgr._updateOrder(ghostOrder, 'handle-fill-ghost', { skipAccounting: false, fee: 0 });
1087
+ if (ghostOk === false) {
1088
+ mgr.logger.log(`[SYNC] Failed to apply ghost fill state for order ${orderId}`, 'warn');
1089
+ }
1090
+ filledOrders.push(filledOrder);
1091
+ return { filledOrders, updatedOrders, partialFill: false, ghostOrderId };
1092
+ }
1093
+ mgr.logger.log(`[SYNC] Full fill for order ${orderId} (slot ${matchedGridOrder.id}).`, 'info');
1021
1094
  const spreadOrder = convertToSpreadPlaceholder(matchedGridOrder);
1022
1095
  const fullOk = await mgr._updateOrder(spreadOrder, 'handle-fill-full', { skipAccounting: false, fee: 0 });
1023
1096
  if (fullOk === false) {
1024
1097
  mgr.logger.log(`[SYNC] Failed to convert filled order ${orderId} to spread placeholder`, 'warn');
1025
1098
  }
1026
1099
  filledOrders.push(filledOrder);
1027
- return { filledOrders, updatedOrders, partialFill: false, ...(ghostOrderId ? { ghostOrderId } : {}) };
1100
+ return { filledOrders, updatedOrders, partialFill: false };
1028
1101
  }
1029
1102
  else {
1030
1103
  mgr.logger.log(`[SYNC] Partial fill for order ${orderId} (slot ${matchedGridOrder.id}): newSize=${newSize}`, 'info');
@@ -1279,7 +1352,8 @@ class SyncEngine {
1279
1352
  // so they still use optimistic accounting deltas.
1280
1353
  return this.syncFromOpenOrders(chainData, {
1281
1354
  skipAccounting: false,
1282
- fillLockAlreadyHeld: options?.fillLockAlreadyHeld
1355
+ fillLockAlreadyHeld: options?.fillLockAlreadyHeld,
1356
+ protectCommittedOrders: options?.protectCommittedOrders
1283
1357
  });
1284
1358
  case 'periodicBlockchainFetch': {
1285
1359
  // This source is used after fetchAccountTotals() has refreshed