@kamino-finance/klend-sdk 7.1.8 → 7.1.10

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 (32) hide show
  1. package/dist/classes/market.d.ts +26 -0
  2. package/dist/classes/market.d.ts.map +1 -1
  3. package/dist/classes/market.js +76 -1
  4. package/dist/classes/market.js.map +1 -1
  5. package/dist/classes/obligation.d.ts +36 -3
  6. package/dist/classes/obligation.d.ts.map +1 -1
  7. package/dist/classes/obligation.js +158 -29
  8. package/dist/classes/obligation.js.map +1 -1
  9. package/dist/classes/reserve.d.ts +5 -0
  10. package/dist/classes/reserve.d.ts.map +1 -1
  11. package/dist/classes/reserve.js +13 -0
  12. package/dist/classes/reserve.js.map +1 -1
  13. package/dist/classes/vault.js +1 -1
  14. package/dist/classes/vault.js.map +1 -1
  15. package/dist/lending_operations/repay_with_collateral_operations.js +2 -2
  16. package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
  17. package/dist/lending_operations/swap_collateral_operations.js +2 -2
  18. package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
  19. package/dist/leverage/operations.d.ts.map +1 -1
  20. package/dist/leverage/operations.js +8 -8
  21. package/dist/leverage/operations.js.map +1 -1
  22. package/dist/manager/client_kamino_manager.js +7 -1
  23. package/dist/manager/client_kamino_manager.js.map +1 -1
  24. package/package.json +3 -3
  25. package/src/classes/market.ts +96 -1
  26. package/src/classes/obligation.ts +216 -45
  27. package/src/classes/reserve.ts +17 -0
  28. package/src/classes/vault.ts +1 -1
  29. package/src/lending_operations/repay_with_collateral_operations.ts +2 -2
  30. package/src/lending_operations/swap_collateral_operations.ts +2 -2
  31. package/src/leverage/operations.ts +8 -11
  32. package/src/manager/client_kamino_manager.ts +7 -1
@@ -316,15 +316,15 @@ class KaminoObligation {
316
316
  }
317
317
  return activeElevationGroups;
318
318
  }
319
- simulateDepositChange(obligationDeposits, changeInLamports, changeReserve, collateralExchangeRates) {
319
+ simulateDepositChange(obligationDeposits, depositChange, collateralExchangeRates) {
320
320
  const newDeposits = [];
321
- const depositIndex = obligationDeposits.findIndex((deposit) => deposit.depositReserve === changeReserve);
321
+ const depositIndex = obligationDeposits.findIndex((deposit) => deposit.depositReserve === depositChange.reserveAddress);
322
322
  // Always copy the previous deposits and modify the changeReserve one if it exists
323
323
  for (let i = 0; i < obligationDeposits.length; i++) {
324
- if (obligationDeposits[i].depositReserve === changeReserve) {
324
+ if (obligationDeposits[i].depositReserve === depositChange.reserveAddress) {
325
325
  const coll = { ...obligationDeposits[i] };
326
- const exchangeRate = collateralExchangeRates.get(changeReserve);
327
- const changeInCollateral = new decimal_js_1.default(changeInLamports).mul(exchangeRate).toFixed(0);
326
+ const exchangeRate = collateralExchangeRates.get(depositChange.reserveAddress);
327
+ const changeInCollateral = new decimal_js_1.default(depositChange.amountChangeLamports).mul(exchangeRate).toFixed(0);
328
328
  const updatedDeposit = new decimal_js_1.default(obligationDeposits[i].depositedAmount.toNumber()).add(changeInCollateral);
329
329
  coll.depositedAmount = new bn_js_1.default((0, utils_1.positiveOrZero)(updatedDeposit).toString());
330
330
  newDeposits.push(new types_1.ObligationCollateral(coll));
@@ -340,22 +340,24 @@ class KaminoObligation {
340
340
  throw new Error('No available borrows to modify');
341
341
  }
342
342
  const coll = { ...obligationDeposits[firstBorrowIndexAvailable] };
343
- const exchangeRate = collateralExchangeRates.get(changeReserve);
344
- const changeInCollateral = new decimal_js_1.default(changeInLamports).mul(exchangeRate).toFixed(0);
343
+ const exchangeRate = collateralExchangeRates.get(depositChange.reserveAddress);
344
+ const changeInCollateral = new decimal_js_1.default(depositChange.amountChangeLamports).mul(exchangeRate).toFixed(0);
345
345
  coll.depositedAmount = new bn_js_1.default((0, utils_1.positiveOrZero)(new decimal_js_1.default(changeInCollateral)).toString());
346
- coll.depositReserve = changeReserve;
346
+ coll.depositReserve = depositChange.reserveAddress;
347
347
  newDeposits[firstBorrowIndexAvailable] = new types_1.ObligationCollateral(coll);
348
348
  }
349
349
  return newDeposits;
350
350
  }
351
- simulateBorrowChange(obligationBorrows, changeInLamports, changeReserve, cumulativeBorrowRate) {
351
+ simulateBorrowChange(obligationBorrows, borrowChange, cumulativeBorrowRate) {
352
352
  const newBorrows = [];
353
- const borrowIndex = obligationBorrows.findIndex((borrow) => borrow.borrowReserve === changeReserve);
353
+ const borrowIndex = obligationBorrows.findIndex((borrow) => borrow.borrowReserve === borrowChange.reserveAddress);
354
354
  // Always copy the previous borrows and modify the changeReserve one if it exists
355
355
  for (let i = 0; i < obligationBorrows.length; i++) {
356
- if (obligationBorrows[i].borrowReserve === changeReserve) {
356
+ if (obligationBorrows[i].borrowReserve === borrowChange.reserveAddress) {
357
357
  const borrow = { ...obligationBorrows[borrowIndex] };
358
- const newBorrowedAmount = new fraction_1.Fraction(borrow.borrowedAmountSf).toDecimal().add(changeInLamports);
358
+ const newBorrowedAmount = new fraction_1.Fraction(borrow.borrowedAmountSf)
359
+ .toDecimal()
360
+ .add(borrowChange.amountChangeLamports);
359
361
  const newBorrowedAmountSf = fraction_1.Fraction.fromDecimal((0, utils_1.positiveOrZero)(newBorrowedAmount)).getValue();
360
362
  borrow.borrowedAmountSf = newBorrowedAmountSf;
361
363
  newBorrows.push(new types_1.ObligationLiquidity(borrow));
@@ -371,8 +373,8 @@ class KaminoObligation {
371
373
  throw new Error('No available borrows to modify');
372
374
  }
373
375
  const borrow = { ...obligationBorrows[firstBorrowIndexAvailable] };
374
- borrow.borrowedAmountSf = fraction_1.Fraction.fromDecimal(new decimal_js_1.default(changeInLamports)).getValue();
375
- borrow.borrowReserve = changeReserve;
376
+ borrow.borrowedAmountSf = fraction_1.Fraction.fromDecimal(new decimal_js_1.default(borrowChange.amountChangeLamports)).getValue();
377
+ borrow.borrowReserve = borrowChange.reserveAddress;
376
378
  borrow.cumulativeBorrowRateBsf = {
377
379
  padding: [],
378
380
  value: [fraction_1.Fraction.fromDecimal(cumulativeBorrowRate).getValue(), new bn_js_1.default(0), new bn_js_1.default(0), new bn_js_1.default(0)],
@@ -414,28 +416,40 @@ class KaminoObligation {
414
416
  if (amountCollateral === undefined || mintCollateral === undefined) {
415
417
  throw Error('amountCollateral & mintCollateral are required for deposit action');
416
418
  }
417
- newObligationDeposits = this.simulateDepositChange(this.state.deposits, amountCollateral.toNumber(), collateralReservePk, collateralExchangeRates);
419
+ newObligationDeposits = this.simulateDepositChange(this.state.deposits, {
420
+ reserveAddress: collateralReservePk,
421
+ amountChangeLamports: amountCollateral,
422
+ }, collateralExchangeRates);
418
423
  break;
419
424
  }
420
425
  case 'borrow': {
421
426
  if (amountDebt === undefined || mintDebt === undefined) {
422
427
  throw Error('amountDebt & mintDebt are required for borrow action');
423
428
  }
424
- newObligationBorrows = this.simulateBorrowChange(this.state.borrows, amountDebt.toNumber(), debtReservePk, debtReserveCumulativeBorrowRate);
429
+ newObligationBorrows = this.simulateBorrowChange(this.state.borrows, {
430
+ reserveAddress: debtReservePk,
431
+ amountChangeLamports: amountDebt,
432
+ }, debtReserveCumulativeBorrowRate);
425
433
  break;
426
434
  }
427
435
  case 'repay': {
428
436
  if (amountDebt === undefined || mintDebt === undefined) {
429
437
  throw Error('amountDebt & mintDebt are required for repay action');
430
438
  }
431
- newObligationBorrows = this.simulateBorrowChange(this.state.borrows, amountDebt.neg().toNumber(), debtReservePk, debtReserveCumulativeBorrowRate);
439
+ newObligationBorrows = this.simulateBorrowChange(this.state.borrows, {
440
+ reserveAddress: debtReservePk,
441
+ amountChangeLamports: amountDebt.neg(),
442
+ }, debtReserveCumulativeBorrowRate);
432
443
  break;
433
444
  }
434
445
  case 'withdraw': {
435
446
  if (amountCollateral === undefined || mintCollateral === undefined) {
436
447
  throw Error('amountCollateral & mintCollateral are required for withdraw action');
437
448
  }
438
- newObligationDeposits = this.simulateDepositChange(this.state.deposits, amountCollateral.neg().toNumber(), collateralReservePk, collateralExchangeRates);
449
+ newObligationDeposits = this.simulateDepositChange(this.state.deposits, {
450
+ reserveAddress: collateralReservePk,
451
+ amountChangeLamports: amountCollateral.neg(),
452
+ }, collateralExchangeRates);
439
453
  break;
440
454
  }
441
455
  case 'depositAndBorrow': {
@@ -445,8 +459,14 @@ class KaminoObligation {
445
459
  mintDebt === undefined) {
446
460
  throw Error('amountColl & amountDebt & mintCollateral & mintDebt are required for depositAndBorrow action');
447
461
  }
448
- newObligationDeposits = this.simulateDepositChange(this.state.deposits, amountCollateral.toNumber(), collateralReservePk, collateralExchangeRates);
449
- newObligationBorrows = this.simulateBorrowChange(this.state.borrows, amountDebt.toNumber(), debtReservePk, debtReserveCumulativeBorrowRate);
462
+ newObligationDeposits = this.simulateDepositChange(this.state.deposits, {
463
+ reserveAddress: collateralReservePk,
464
+ amountChangeLamports: amountCollateral,
465
+ }, collateralExchangeRates);
466
+ newObligationBorrows = this.simulateBorrowChange(this.state.borrows, {
467
+ reserveAddress: debtReservePk,
468
+ amountChangeLamports: amountDebt,
469
+ }, debtReserveCumulativeBorrowRate);
450
470
  break;
451
471
  }
452
472
  case 'repayAndWithdraw': {
@@ -456,8 +476,14 @@ class KaminoObligation {
456
476
  mintDebt === undefined) {
457
477
  throw Error('amountColl & amountDebt & mintCollateral & mintDebt are required for repayAndWithdraw action');
458
478
  }
459
- newObligationDeposits = this.simulateDepositChange(this.state.deposits, amountCollateral.neg().toNumber(), collateralReservePk, collateralExchangeRates);
460
- newObligationBorrows = this.simulateBorrowChange(this.state.borrows, amountDebt.neg().toNumber(), debtReservePk, debtReserveCumulativeBorrowRate);
479
+ newObligationDeposits = this.simulateDepositChange(this.state.deposits, {
480
+ reserveAddress: collateralReservePk,
481
+ amountChangeLamports: amountCollateral.neg(),
482
+ }, collateralExchangeRates);
483
+ newObligationBorrows = this.simulateBorrowChange(this.state.borrows, {
484
+ reserveAddress: debtReservePk,
485
+ amountChangeLamports: amountDebt.neg(),
486
+ }, debtReserveCumulativeBorrowRate);
461
487
  break;
462
488
  }
463
489
  default: {
@@ -485,8 +511,14 @@ class KaminoObligation {
485
511
  const additionalReserves = [withdrawReserveAddress, depositReserveAddress].filter((reserveAddress) => !market.isReserveInObligation(this, reserveAddress));
486
512
  const { collateralExchangeRates } = KaminoObligation.getRatesForObligation(market, this.state, slot, additionalReserves);
487
513
  let newObligationDeposits = this.state.deposits;
488
- newObligationDeposits = this.simulateDepositChange(newObligationDeposits, withdrawAmountLamports.neg().toNumber(), withdrawReserveAddress, collateralExchangeRates);
489
- newObligationDeposits = this.simulateDepositChange(newObligationDeposits, depositAmountLamports.toNumber(), depositReserveAddress, collateralExchangeRates);
514
+ newObligationDeposits = this.simulateDepositChange(newObligationDeposits, {
515
+ reserveAddress: withdrawReserveAddress,
516
+ amountChangeLamports: withdrawAmountLamports.neg(),
517
+ }, collateralExchangeRates);
518
+ newObligationDeposits = this.simulateDepositChange(newObligationDeposits, {
519
+ reserveAddress: depositReserveAddress,
520
+ amountChangeLamports: depositAmountLamports,
521
+ }, collateralExchangeRates);
490
522
  const { refreshedStats } = this.calculatePositions(market, newObligationDeposits, this.state.borrows, newElevationGroup, collateralExchangeRates, null);
491
523
  const newStats = refreshedStats;
492
524
  newStats.netAccountValue = newStats.userTotalDeposit.minus(newStats.userTotalBorrow);
@@ -634,14 +666,61 @@ class KaminoObligation {
634
666
  positions,
635
667
  };
636
668
  }
637
- getMaxLoanLtvGivenElevationGroup(market, elevationGroup, slot) {
669
+ getMaxLoanLtvAndLiquidationLtvGivenElevationGroup(market, elevationGroup, slot) {
638
670
  const getOraclePx = (reserve) => reserve.getOracleMarketPrice();
639
671
  const { collateralExchangeRates } = KaminoObligation.getRatesForObligation(market, this.state, slot);
640
- const { borrowLimit, userTotalCollateralDeposit } = KaminoObligation.calculateObligationDeposits(market, this.state.deposits, collateralExchangeRates, elevationGroup, getOraclePx);
641
- if (borrowLimit.eq(0) || userTotalCollateralDeposit.eq(0)) {
642
- return new decimal_js_1.default(0);
672
+ const { borrowLimit, userTotalCollateralDeposit, borrowLiquidationLimit } = KaminoObligation.calculateObligationDeposits(market, this.state.deposits, collateralExchangeRates, elevationGroup, getOraclePx);
673
+ if (userTotalCollateralDeposit.eq(0)) {
674
+ return { maxLtv: new decimal_js_1.default(0), liquidationLtv: new decimal_js_1.default(0) };
643
675
  }
644
- return borrowLimit.div(userTotalCollateralDeposit);
676
+ return {
677
+ maxLtv: borrowLimit.div(userTotalCollateralDeposit),
678
+ liquidationLtv: borrowLiquidationLimit.div(userTotalCollateralDeposit),
679
+ };
680
+ }
681
+ /**
682
+ * Creates a new KaminoObligation with simulated position changes applied.
683
+ * This allows you to model what the obligation would look like with deposits/borrows
684
+ * without actually executing those transactions.
685
+ *
686
+ * @param market - The KaminoMarket instance
687
+ * @param slot - The slot number for rate calculations
688
+ * @param depositChanges - Optional array of deposit changes to apply
689
+ * @param borrowChanges - Optional array of borrow changes to apply
690
+ * @returns A new KaminoObligation instance with the changes applied
691
+ */
692
+ withPositionChanges(market, slot, depositChanges, borrowChanges) {
693
+ const reservesToRefresh = [];
694
+ if (depositChanges) {
695
+ reservesToRefresh.push(...depositChanges.map((change) => change.reserveAddress));
696
+ }
697
+ if (borrowChanges) {
698
+ reservesToRefresh.push(...borrowChanges.map((change) => change.reserveAddress));
699
+ }
700
+ const { collateralExchangeRates, cumulativeBorrowRates } = KaminoObligation.getRatesForObligation(market, this.state, slot, reservesToRefresh);
701
+ let newDeposits = this.state.deposits;
702
+ if (depositChanges) {
703
+ for (const depositChange of depositChanges) {
704
+ newDeposits = this.simulateDepositChange(newDeposits, depositChange, collateralExchangeRates);
705
+ }
706
+ }
707
+ let newBorrows = this.state.borrows;
708
+ if (borrowChanges) {
709
+ for (const borrowChange of borrowChanges) {
710
+ const reserve = market.getReserveByAddress(borrowChange.reserveAddress);
711
+ if (!reserve) {
712
+ throw new Error(`Reserve not found: ${borrowChange.reserveAddress}`);
713
+ }
714
+ newBorrows = this.simulateBorrowChange(newBorrows, borrowChange, reserve.getCumulativeBorrowRate());
715
+ }
716
+ }
717
+ // Create a deep copy of the obligation state and override deposits/borrows
718
+ const newObligationState = new accounts_1.Obligation({
719
+ ...this.state,
720
+ deposits: newDeposits,
721
+ borrows: newBorrows,
722
+ });
723
+ return new KaminoObligation(market, this.obligationAddress, newObligationState, collateralExchangeRates, cumulativeBorrowRates);
645
724
  }
646
725
  /*
647
726
  How much of a given token can a user borrow extra given an elevation group,
@@ -720,6 +799,27 @@ class KaminoObligation {
720
799
  return decimal_js_1.default.min(maxBorrowAmount, liquidityAvailablePostMigration);
721
800
  }
722
801
  }
802
+ /*
803
+ Same as getMaxBorrowAmountV2 but assumes a deposit is made first, calculating
804
+ the new borrow power after the deposit, without overriding the obligation itself.
805
+
806
+ * @param market - The KaminoMarket instance.
807
+ * @param liquidityMint - The liquidity mint Address.
808
+ * @param slot - The slot number.
809
+ * @param elevationGroup - The elevation group number (default: this.state.elevationGroup).
810
+ * @returns The maximum borrow amount as a Decimal.
811
+ * @throws Error if the reserve is not found.
812
+ */
813
+ getMaxBorrowAmountV2WithDeposit(market, liquidityMint, slot, elevationGroup = this.state.elevationGroup, depositAmountLamports, depositReserveAddress) {
814
+ const depositChanges = [
815
+ {
816
+ reserveAddress: depositReserveAddress,
817
+ amountChangeLamports: depositAmountLamports,
818
+ },
819
+ ];
820
+ const obligationWithDeposit = this.withPositionChanges(market, slot, depositChanges);
821
+ return obligationWithDeposit.getMaxBorrowAmountV2(market, liquidityMint, slot, elevationGroup);
822
+ }
723
823
  /*
724
824
  Returns true if the loan is eligible for the elevation group, including for the default one.
725
825
  * @param market - The KaminoMarket object representing the market.
@@ -899,6 +999,35 @@ class KaminoObligation {
899
999
  .mul(depositReserve.getMintFactor());
900
1000
  return decimal_js_1.default.max(0, decimal_js_1.default.min(userDepositPositionAmount, maxWithdrawAmount, reserveWithdrawalLimit));
901
1001
  }
1002
+ /**
1003
+ * Same as getMaxWithdrawAmount but assumes a repay is made first, calculating
1004
+ * the new withdraw power after the repay, without overriding the obligation itself.
1005
+ *
1006
+ * @param market - The KaminoMarket instance.
1007
+ * @param tokenMint - The liquidity mint Address.
1008
+ * @param slot - The slot number.
1009
+ * @param repayAmountLamports - The amount to repay in lamports (use U64_MAX for full repay).
1010
+ * @param repayReserveAddress - The reserve address of the borrow being repaid.
1011
+ * @returns The maximum withdraw amount as a Decimal.
1012
+ * @throws Error if the reserve is not found.
1013
+ */
1014
+ getMaxWithdrawAmountWithRepay(market, tokenMint, slot, repayAmountLamports, repayReserveAddress) {
1015
+ const repayReserve = market.getReserveByAddress(repayReserveAddress);
1016
+ if (!repayReserve) {
1017
+ throw new Error('Reserve not found');
1018
+ }
1019
+ const repayAmount = repayAmountLamports.equals(utils_2.U64_MAX)
1020
+ ? this.getBorrowAmountByReserve(repayReserve)
1021
+ : repayAmountLamports;
1022
+ const borrowChanges = [
1023
+ {
1024
+ reserveAddress: repayReserveAddress,
1025
+ amountChangeLamports: repayAmount.neg(), // as it's a repay
1026
+ },
1027
+ ];
1028
+ const obligationWithRepay = this.withPositionChanges(market, slot, undefined, borrowChanges);
1029
+ return obligationWithRepay.getMaxWithdrawAmount(market, tokenMint, slot);
1030
+ }
902
1031
  getObligationLiquidityByReserve(reserveAddress) {
903
1032
  const obligationLiquidity = this.state.borrows.find((borrow) => borrow.borrowReserve === reserveAddress);
904
1033
  if (!obligationLiquidity) {
@@ -1 +1 @@
1
- {"version":3,"file":"obligation.js","sourceRoot":"","sources":["../../src/classes/obligation.ts"],"names":[],"mappings":";;;;;;AAgoDA,gDAEC;AAloDD,yCAAyC;AACzC,qCAAgE;AAChE,4DAAiC;AAEjC,yDAAwD;AAExD,kDAAuB;AACvB,yCAAmD;AACnD,mDAKiC;AACjC,mCAAsD;AACtD,oCAQkB;AAElB,uDAA0D;AA0E1D,MAAa,gBAAgB;IAC3B,iBAAiB,CAAU;IAE3B,KAAK,CAAa;IAElB;;OAEG;IACH,QAAQ,CAAyB;IAEjC;;OAEG;IACH,OAAO,CAAyB;IAEhC,cAAc,CAAkB;IAEhC,aAAa,CAAS;IAEtB;;;;;;;OAOG;IACH,YACE,MAAoB,EACpB,iBAA0B,EAC1B,UAAsB,EACtB,uBAA8C,EAC9C,qBAA4C;QAE5C,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;QAExB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,kBAAkB,CACnE,MAAM,EACN,UAAU,CAAC,QAAQ,EACnB,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,cAAc,EACzB,uBAAuB,EACvB,qBAAqB,CACtB,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,MAAoB,EACpB,eAAgC,IAAA,UAAI,GAAE,EACtC,eAAgC,IAAA,UAAI,GAAE;QAEtC,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,YAAgC,CAAC;QACrC,MAAM,IAAI,GAAG,IAAA,yBAAiB,EAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oCAA4B,EAAE,CAAC,EAAE,EAAE,CAAC;YACtD,MAAM,GAAG,GAAG,MAAM,IAAA,gCAAwB,EACxC,MAAM,CAAC,UAAU,EAAE,EACnB,IAAI,CAAC,KAAK,CAAC,KAAK,EAChB;gBACE,GAAG,QAAQ;gBACX,EAAE,EAAE,CAAC;aACN,EACD,MAAM,CAAC,SAAS,CACjB,CAAC;YACF,IAAI,GAAG,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACnC,YAAY,GAAG,CAAC,CAAC;gBACjB,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAA0B,EAAE,iBAA0B;QACtE,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,UAAU,GAAG,qBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE7E,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,GAAG,gBAAgB,CAAC,qBAAqB,CAC/F,YAAY,EACZ,UAAU,EACV,GAAG,CAAC,OAAO,CAAC,IAAI,CACjB,CAAC;QACF,OAAO,IAAI,gBAAgB,CACzB,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,uBAAuB,EACvB,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,YAA0B,EAC1B,mBAA8B,EAC9B,IAAW;QAEX,IAAI,WAAW,GAAG,IAAI,CAAC;QACvB,IAAI,WAAkC,CAAC;QACvC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC7C,YAAY,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;gBACtC,qBAAU,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,mBAAmB,EAAE,YAAY,CAAC,SAAS,CAAC;aAC7F,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,MAAM,qBAAU,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,mBAAmB,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACnH,CAAC;QACD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC1D,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC5D,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,gBAAgB,CAAC,qBAAqB,CACpC,YAAY,EACZ,UAAU,EACV,uBAAuB,EACvB,qBAAqB,EACrB,WAAW,CACZ,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,IAAI,gBAAgB,CACzB,YAAY,EACZ,mBAAmB,CAAC,CAAC,CAAC,EACtB,UAAU,EACV,uBAAuB,EACvB,qBAAqB,CACtB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uCAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAClF,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,OAAO,IAAI,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,SAAS,EAAE,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,gCAAgC;QAC9B,OAAO,IAAI,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,SAAS,EAAE,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,wBAAwB;QACtB,OAAO,IAAI,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,SAAS,EAAE,CAAC;IACnE,CAAC;IAED;;;OAGG;IACH,uBAAuB;QACrB,OAAO,IAAI,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,SAAS,EAAE,CAAC;IACrE,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,OAA6B;QACjD,OAAO,IAAI,mBAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC;IACzD,CAAC;IAED,kBAAkB,CAAC,OAAgB;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,mBAAmB,CAAC,OAAgB;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,eAAe,CAAC,IAAa;QAC3B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wBAAwB,CAAC,OAAsB;QAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QAClG,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,gBAAgB,CAAC,IAAa;QAC5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,yBAAyB,CAAC,OAAsB;QAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACnG,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,MAA2B;QAC9C,OAAO,IAAI,mBAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC;IACxD,CAAC;IAED;;;OAGG;IACH,8BAA8B,CAAC,MAA2B;QACxD,OAAO,IAAI,mBAAQ,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,SAAS,EAAE,CAAC;IAC5E,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,mCAAmC,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC3G,CAAC;IAED;;;;;;;;;OASG;IACH,cAAc;QACZ,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC9F,CAAC;IAED;;OAEG;IACH,eAAe;QACb,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACvF,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAChD,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;IAC7C,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,0BAAkB,EAAE,CAAC;YAC/C,OAAO,IAAA,UAAI,GAAE,CAAC;QAChB,CAAC;QACD,OAAO,IAAA,UAAI,EAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,MAAoB,EAAE,cAAuB;QACnE,OAAO,gBAAgB,CAAC,gBAAgB,CACtC,MAAM,EACN,MAAM,CAAC,2BAA2B,CAAC,cAAc,CAAC,EAClD,IAAI,CAAC,KAAK,CAAC,cAAc,CAC1B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,YAA0B;QAC3C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;QACnD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBACrF,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAE,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,IAAI,IAAA,uBAAe,EAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjF,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAE,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;QACD,OAAO,gBAAgB,CAAC,6BAA6B,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,CAAC,6BAA6B,CAAC,QAA8B;QACjE,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,KAAK,MAAM,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBAClE,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBACxD,IAAI,KAAK,EAAE,CAAC;wBACV,qBAAqB,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;oBACvD,CAAC;yBAAM,CAAC;wBACN,qBAAqB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,qBAAqB,GAAG,IAAI,KAAK,EAAU,CAAC;QAClD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,qBAAqB,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7D,IAAI,KAAK,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAC9B,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,qBAAqB,CACnB,kBAA0C,EAC1C,gBAAwB,EACxB,aAAsB,EACtB,uBAA8C;QAE9C,MAAM,WAAW,GAA2B,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,KAAK,aAAa,CAAC,CAAC;QAEzG,kFAAkF;QAClF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,aAAa,EAAE,CAAC;gBAC3D,MAAM,IAAI,GAA+B,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtE,MAAM,YAAY,GAAG,uBAAuB,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;gBACjE,MAAM,kBAAkB,GAAG,IAAI,oBAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACtF,MAAM,cAAc,GAAG,IAAI,oBAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAC7G,IAAI,CAAC,eAAe,GAAG,IAAI,eAAE,CAAC,IAAA,sBAAc,EAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACzE,WAAW,CAAC,IAAI,CAAC,IAAI,4BAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,qDAAqD;YACrD,MAAM,yBAAyB,GAAG,kBAAkB,CAAC,SAAS,CAC5D,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,KAAK,0BAAkB,CAC3D,CAAC;YAEF,IAAI,yBAAyB,KAAK,CAAC,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,IAAI,GAA+B,EAAE,GAAG,kBAAkB,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAC9F,MAAM,YAAY,GAAG,uBAAuB,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;YACjE,MAAM,kBAAkB,GAAG,IAAI,oBAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACtF,IAAI,CAAC,eAAe,GAAG,IAAI,eAAE,CAAC,IAAA,sBAAc,EAAC,IAAI,oBAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YAEpC,WAAW,CAAC,yBAAyB,CAAC,GAAG,IAAI,4BAAoB,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,oBAAoB,CAClB,iBAAwC,EACxC,gBAAwB,EACxB,aAAsB,EACtB,oBAA6B;QAE7B,MAAM,UAAU,GAA0B,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,KAAK,aAAa,CAAC,CAAC;QAEpG,iFAAiF;QACjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,aAAa,EAAE,CAAC;gBACzD,MAAM,MAAM,GAA8B,EAAE,GAAG,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChF,MAAM,iBAAiB,GAAY,IAAI,mBAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC3G,MAAM,mBAAmB,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAA,sBAAc,EAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC/F,MAAM,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;gBAE9C,UAAU,CAAC,IAAI,CAAC,IAAI,2BAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YACvB,qDAAqD;YACrD,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,SAAS,CAC3D,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,KAAK,0BAAkB,CACxD,CAAC;YAEF,IAAI,yBAAyB,KAAK,CAAC,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,MAAM,GAA8B,EAAE,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAC9F,MAAM,CAAC,gBAAgB,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,oBAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACzF,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;YACrC,MAAM,CAAC,uBAAuB,GAAG;gBAC/B,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,CAAC,mBAAQ,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,eAAE,CAAC,CAAC,CAAC,EAAE,IAAI,eAAE,CAAC,CAAC,CAAC,EAAE,IAAI,eAAE,CAAC,CAAC,CAAC,CAAC;aAChG,CAAC;YACF,UAAU,CAAC,yBAAyB,CAAC,GAAG,IAAI,2BAAmB,CAAC,MAAM,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,yCAAyC;IACzC,2BAA2B,CAAC,MAU3B;QAKC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC1F,IAAI,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,MAAM,mBAAmB,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1G,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAExF,MAAM,kBAAkB,GAAc,EAAE,CAAC;QACzC,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACtC,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,EAAE,uBAAuB,EAAE,GAAG,gBAAgB,CAAC,qBAAqB,CACxE,MAAM,EACN,IAAI,CAAC,KAAK,EACV,MAAM,CAAC,IAAI,EACX,kBAAkB,CACnB,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,CAAC,sBAAsB,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QAElF,IAAI,WAAW,GAA2B,IAAI,GAAG,CAAoB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACnG,IAAI,UAAU,GAA2B,IAAI,GAAG,CAAoB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAEjG,0FAA0F;QAC1F,uFAAuF;QACvF,kEAAkE;QAElE,MAAM,+BAA+B,GAAG,QAAQ;YAC9C,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAE,CAAC,uBAAuB,EAAE;YAC9D,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAChD,IAAI,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAE9C,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,gBAAgB,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;oBACnE,MAAM,KAAK,CAAC,mEAAmE,CAAC,CAAC;gBACnF,CAAC;gBACD,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAChD,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB,gBAAgB,CAAC,QAAQ,EAAE,EAC3B,mBAAoB,EACpB,uBAAuB,CACxB,CAAC;gBACF,MAAM;YACR,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,UAAU,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACvD,MAAM,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBACtE,CAAC;gBAED,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,EAClB,UAAU,CAAC,QAAQ,EAAE,EACrB,aAAc,EACd,+BAAgC,CACjC,CAAC;gBACF,MAAM;YACR,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,IAAI,UAAU,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACvD,MAAM,KAAK,CAAC,qDAAqD,CAAC,CAAC;gBACrE,CAAC;gBAED,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,EAClB,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAC3B,aAAc,EACd,+BAAgC,CACjC,CAAC;gBAEF,MAAM;YACR,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,gBAAgB,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;oBACnE,MAAM,KAAK,CAAC,oEAAoE,CAAC,CAAC;gBACpF,CAAC;gBACD,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAChD,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB,gBAAgB,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EACjC,mBAAoB,EACpB,uBAAuB,CACxB,CAAC;gBACF,MAAM;YACR,CAAC;YACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,IACE,gBAAgB,KAAK,SAAS;oBAC9B,UAAU,KAAK,SAAS;oBACxB,cAAc,KAAK,SAAS;oBAC5B,QAAQ,KAAK,SAAS,EACtB,CAAC;oBACD,MAAM,KAAK,CAAC,8FAA8F,CAAC,CAAC;gBAC9G,CAAC;gBACD,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAChD,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB,gBAAgB,CAAC,QAAQ,EAAE,EAC3B,mBAAoB,EACpB,uBAAuB,CACxB,CAAC;gBAEF,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,EAClB,UAAU,CAAC,QAAQ,EAAE,EACrB,aAAc,EACd,+BAAgC,CACjC,CAAC;gBACF,MAAM;YACR,CAAC;YACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,IACE,gBAAgB,KAAK,SAAS;oBAC9B,UAAU,KAAK,SAAS;oBACxB,cAAc,KAAK,SAAS;oBAC5B,QAAQ,KAAK,SAAS,EACtB,CAAC;oBACD,MAAM,KAAK,CAAC,8FAA8F,CAAC,CAAC;gBAC9G,CAAC;gBACD,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAChD,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB,gBAAgB,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EACjC,mBAAoB,EACpB,uBAAuB,CACxB,CAAC;gBACF,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,EAClB,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAC3B,aAAc,EACd,+BAAgC,CACjC,CAAC;gBACF,MAAM;YACR,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,KAAK,CAAC,uBAAuB,MAAM,kCAAkC,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,kBAAkB,CACnE,MAAM,EACN,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,IAAI,CACL,CAAC;QAEF,QAAQ,GAAG,cAAc,CAAC;QAC1B,WAAW,GAAG,QAAQ,CAAC;QACvB,UAAU,GAAG,OAAO,CAAC;QAErB,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACrF,QAAQ,CAAC,WAAW,GAAG,IAAA,mBAAW,EAChC,QAAQ,CAAC,mCAAmC,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAC5F,CAAC;QACF,QAAQ,CAAC,QAAQ,GAAG,IAAA,mBAAW,EAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QAE/F,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,UAAU;SACpB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,8BAA8B,CAAC,MAQ9B;QACC,MAAM,EACJ,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,MAAM,EACN,IAAI,GACL,GAAG,MAAM,CAAC;QAEX,MAAM,kBAAkB,GAAG,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,CAAC,MAAM,CAC/E,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,cAAc,CAAC,CACxE,CAAC;QAEF,MAAM,EAAE,uBAAuB,EAAE,GAAG,gBAAgB,CAAC,qBAAqB,CACxE,MAAM,EACN,IAAI,CAAC,KAAK,EACV,IAAI,EACJ,kBAAkB,CACnB,CAAC;QAEF,IAAI,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAChD,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAChD,qBAAqB,EACrB,sBAAsB,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EACvC,sBAAsB,EACtB,uBAAuB,CACxB,CAAC;QACF,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAChD,qBAAqB,EACrB,qBAAqB,CAAC,QAAQ,EAAE,EAChC,qBAAqB,EACrB,uBAAuB,CACxB,CAAC;QAEF,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAChD,MAAM,EACN,qBAAqB,EACrB,IAAI,CAAC,KAAK,CAAC,OAAO,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,IAAI,CACL,CAAC;QAEF,MAAM,QAAQ,GAAG,cAAc,CAAC;QAChC,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACrF,QAAQ,CAAC,WAAW,GAAG,IAAA,mBAAW,EAChC,QAAQ,CAAC,mCAAmC,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAC5F,CAAC;QACF,QAAQ,CAAC,QAAQ,GAAG,IAAA,mBAAW,EAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QAC/F,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,8BAA8B,GAAG,CAC/B,MAAoB,EACpB,OAAsB,EACtB,MAA2B,EAC3B,WAAiB,EACR,EAAE;QACX,MAAM,uBAAuB,GAAG,OAAO,CAAC,gCAAgC,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEnH,MAAM,0BAA0B,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEpF,IAAI,uBAAuB,CAAC,EAAE,CAAC,0BAA0B,CAAC,EAAE,CAAC;YAC3D,OAAO,uBAAuB,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,CAAC,WAAW,GAAG,CAAC,OAAsB,EAAE,EAAE;QAC9C,OAAO,OAAO,CAAC,oBAAoB,EAAE,CAAC;IACxC,CAAC,CAAC;IAEF,kBAAkB,CAChB,MAAoB,EACpB,kBAA0C,EAC1C,iBAAwC,EACxC,cAAsB,EACtB,uBAA8C,EAC9C,qBAAmD,EACnD,cAAmD,gBAAgB,CAAC,WAAW;QAM/E,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,2BAA2B,CAC1E,MAAM,EACN,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,WAAW,CACZ,CAAC;QAEF,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,0BAA0B,CACxE,MAAM,EACN,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,WAAW,CACZ,CAAC;QAEF,MAAM,6BAA6B,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,KAAK,CAClF,sBAAsB,CAAC,eAAe,CACvC,CAAC;QAEF,kBAAkB;QAClB,MAAM,6BAA6B,GAAG,CAAC,CAAC;QAExC,OAAO;YACL,QAAQ,EAAE,uBAAuB,CAAC,QAAQ;YAC1C,OAAO,EAAE,sBAAsB,CAAC,OAAO;YACvC,cAAc,EAAE;gBACd,WAAW,EAAE,uBAAuB,CAAC,WAAW;gBAChD,sBAAsB,EAAE,uBAAuB,CAAC,sBAAsB;gBACtE,eAAe,EAAE,sBAAsB,CAAC,eAAe;gBACvD,mCAAmC,EAAE,sBAAsB,CAAC,mCAAmC;gBAC/F,gBAAgB,EAAE,uBAAuB,CAAC,gBAAgB;gBAC1D,0BAA0B,EAAE,uBAAuB,CAAC,0BAA0B;gBAC9E,4BAA4B,EAAE,uBAAuB,CAAC,4BAA4B;gBAClF,cAAc,EAAE,uBAAuB,CAAC,cAAc;gBACtD,iBAAiB,EAAE,sBAAsB,CAAC,mCAAmC,CAAC,SAAS,CACrF,uBAAuB,CAAC,WAAW,CACpC;gBACD,eAAe,EAAE,6BAA6B;gBAC9C,QAAQ,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,SAAS,CAAC,6BAA6B,CAAC;gBAC3F,WAAW,EAAE,sBAAsB,CAAC,mCAAmC,CAAC,SAAS,CAC/E,uBAAuB,CAAC,0BAA0B,CACnD;gBACD,6BAA6B;aAC9B;SACF,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,2BAA2B,CACvC,MAAoB,EACpB,kBAA0C,EAC1C,uBAAqD,EACrD,cAAsB,EACtB,KAA0C;QAE1C,IAAI,gBAAgB,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,0BAA0B,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,4BAA4B,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,WAAW,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,sBAAsB,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QAE5C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,IAAI,CAAC,IAAA,uBAAe,EAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC3D,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,uDAAuD,OAAO,CAAC,cAAc,iEAAiE,OAAO,CAAC,eAAe,EAAE,CACxK,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YAEtG,IAAI,YAAqB,CAAC;YAC1B,IAAI,uBAAuB,KAAK,IAAI,EAAE,CAAC;gBACrC,YAAY,GAAG,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,YAAY,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;YACrD,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,oBAAO,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAEvF,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;YAEtF,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAEzD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,0BAA0B,GAAG,0BAA0B,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC/E,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,4BAA4B,GAAG,4BAA4B,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACnF,CAAC;YAED,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3D,sBAAsB,GAAG,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;YAEzF,MAAM,QAAQ,GAAa;gBACzB,cAAc,EAAE,OAAO,CAAC,OAAO;gBAC/B,WAAW,EAAE,OAAO,CAAC,gBAAgB,EAAE;gBACvC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE;gBACnC,MAAM,EAAE,YAAY;gBACpB,oBAAoB,EAAE,eAAe;aACtC,CAAC;YACF,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO;YACL,QAAQ;YACR,gBAAgB;YAChB,0BAA0B;YAC1B,4BAA4B;YAC5B,WAAW;YACX,cAAc,EAAE,IAAA,mBAAW,EAAC,sBAAsB,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YACrF,sBAAsB;SACvB,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,0BAA0B,CACtC,MAAoB,EACpB,iBAAwC,EACxC,qBAAmD,EACnD,cAAsB,EACtB,KAA0C;QAE1C,IAAI,eAAe,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,mCAAmC,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC,IAAA,uBAAe,EAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;gBACzD,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,sDACE,MAAM,CAAC,aACT,gEAAgE,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAC3G,CAAC;YACJ,CAAC;YAED,MAAM,8BAA8B,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACxF,IAAI,oBAAoB,CAAC;YACzB,IAAI,qBAAqB,KAAK,IAAI,EAAE,CAAC;gBACnC,oBAAoB,GAAG,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;YAC3D,CAAC;YAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC;iBAC1D,GAAG,CAAC,oBAAoB,CAAC;iBACzB,SAAS,CAAC,8BAA8B,CAAC,CAAC;YAE7C,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;YAE3F,MAAM,YAAY,GAAG,gBAAgB,CAAC,yBAAyB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YACzF,MAAM,kCAAkC,GAAG,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAE5E,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,oBAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvC,SAAS,IAAI,CAAC,CAAC;YACjB,CAAC;YAED,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACvD,mCAAmC,GAAG,mCAAmC,CAAC,IAAI,CAC5E,kCAAkC,CACnC,CAAC;YAEF,MAAM,QAAQ,GAAa;gBACzB,cAAc,EAAE,OAAO,CAAC,OAAO;gBAC/B,WAAW,EAAE,OAAO,CAAC,gBAAgB,EAAE;gBACvC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE;gBACnC,MAAM,EAAE,YAAY;gBACpB,oBAAoB,EAAE,cAAc;aACrC,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;QAED,OAAO;YACL,OAAO;YACP,eAAe;YACf,mCAAmC;YACnC,SAAS;SACV,CAAC;IACJ,CAAC;IAED,gCAAgC,CAAC,MAAoB,EAAE,cAAsB,EAAE,IAAU;QACvF,MAAM,WAAW,GAAG,CAAC,OAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC/E,MAAM,EAAE,uBAAuB,EAAE,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAErG,MAAM,EAAE,WAAW,EAAE,0BAA0B,EAAE,GAAG,gBAAgB,CAAC,2BAA2B,CAC9F,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB,uBAAuB,EACvB,cAAc,EACd,WAAW,CACZ,CAAC;QAEF,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,0BAA0B,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,WAAW,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;MAcE;IACF,cAAc,CACZ,MAAoB,EACpB,aAAsB,EACtB,IAAU,EACV,iBAAyB,IAAI,CAAC,KAAK,CAAC,cAAc;QAElD,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,uBAAuB,GAC3B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,KAAK,CAAC,CAAC;QAExF,MAAM,YAAY,GAAG,gBAAgB,CAAC,yBAAyB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAEzF,MAAM,WAAW,GAAG,CAAC,OAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC/E,MAAM,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,GAAG,gBAAgB,CAAC,qBAAqB,CAC/F,MAAM,EACN,IAAI,CAAC,KAAK,EACV,IAAI,CACL,CAAC;QAEF,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,2BAA2B,CAClE,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB,uBAAuB,EACvB,cAAc,EACd,WAAW,CACZ,CAAC;QAEF,MAAM,EAAE,mCAAmC,EAAE,GAAG,gBAAgB,CAAC,0BAA0B,CACzF,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,OAAO,EAClB,qBAAqB,EACrB,cAAc,EACd,WAAW,CACZ,CAAC;QAEF,MAAM,wBAAwB,GAAG,WAAW,CAAC,4BAA4B;aACtE,KAAK,CAAC,mCAAmC,CAAC;aAC1C,GAAG,CAAC,YAAY,CAAC;aACjB,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;aACnC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QAEhC,wDAAwD;QACxD,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACjD,MAAM,cAAc,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACxE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,8BAA8B,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC3F,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,IAAI,kBAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QAEhD,qBAAqB;QACrB,kBAAkB,GAAG,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,SAAS,GAAG,wBAAwB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAEnE,MAAM,eAAe,GAAG,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEhE,OAAO,oBAAO,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;MAUE;IACF,oBAAoB,CAClB,MAAoB,EACpB,aAAsB,EACtB,IAAU,EACV,iBAAyB,IAAI,CAAC,KAAK,CAAC,cAAc;QAElD,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,4CAA4C,CAC7E,MAAM,EACN,CAAC,cAAc,CAAC,EAChB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CACjC,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAEzF,IAAI,cAAc,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YACjD,OAAO,oBAAO,CAAC,GAAG,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,qHAAqH;YACrH,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,oBAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACpG,MAAM,+BAA+B,GAAG,oBAAO,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YAClG,OAAO,oBAAO,CAAC,GAAG,CAAC,eAAe,EAAE,+BAA+B,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED;;;;;;MAME;IACF,+BAA+B,CAAC,MAAoB,EAAE,IAAU,EAAE,cAAsB;QACtF,mFAAmF;QACnF,2DAA2D;QAC3D,yDAAyD;QACzD,2BAA2B;QAE3B,MAAM,eAAe,GAAc,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,MAAM,cAAc,GAAc,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAElE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,sFAAsF;YACtF,MAAM,kBAAkB,GAAG,MAAM,CAAC,mCAAmC,EAAE,CAAC;YACxE,MAAM,yBAAyB,GAAG,kBAAkB,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;YAEzE,qBAAqB;YACrB,MAAM,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CACzD,yBAAyB,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAC1D,CAAC;YACF,MAAM,gBAAgB,GACpB,cAAc,CAAC,MAAM,KAAK,CAAC;gBAC3B,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,yBAAyB,CAAC,WAAW,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/F,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC3C,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,MAAM,WAAW,GAAG,CAAC,OAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC/E,MAAM,EAAE,uBAAuB,EAAE,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAErG,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,2BAA2B,CAClE,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB,uBAAuB,EACvB,cAAc,EACd,WAAW,CACZ,CAAC;QAEF,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,mCAAmC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEtG,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;;;MAIE;IACF,+BAA+B,CAAC,MAAoB;QAClD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,wCAAwC,CAAC,YAAY,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO,MAAM,CAAC,wCAAwC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,kBAAkB,CAChB,MAAoB,EACpB,aAAsB,EACtB,IAAU,EACV,qBAA8B;QAE9B,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAEvD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;QAC5C,MAAM,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;QACpE,IAAI,qBAAqB,GAAG,CAAC,GAAG,sBAAsB,CAAC,CAAC,MAAM,CAC5D,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,OAAO,CACzE,CAAC;QAEF,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACjD,MAAM,cAAc,GAAG,MAAM,CAAC,2BAA2B,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAEhF,MAAM,yBAAyB,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;YAE9E,qBAAqB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3G,CAAC;QAED,IAAI,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QAC/C,IAAI,qBAAqB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,kCAAkC,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;gBACrF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;gBAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;gBAC5D,OAAO,SAAU,CAAC,MAAM,GAAG,SAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,cAAc,GAAG,kCAAkC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,MAAM,uBAAuB,GAC3B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,KAAK,CAAC,CAAC;QAExF,MAAM,YAAY,GAAG,gBAAgB,CAAC,yBAAyB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAEzF,MAAM,wBAAwB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,4BAA4B;aAC1F,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,mCAAmC,CAAC;aAC9D,GAAG,CAAC,YAAY,CAAC;aACjB,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;aACnC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QAChC,MAAM,sBAAsB,GAAG,OAAO,CAAC,2BAA2B,EAAE,CAAC;QACrE,IAAI,wBAAwB,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAEjG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAChC,MAAM,cAAc,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC1E,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,8BAA8B,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC3F,wBAAwB,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,eAAe,GAAG,oBAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,sBAAsB,EAAE,wBAAwB,CAAC,CAAC;QAE9G,MAAM,iBAAiB,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;QAChH,eAAe,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC,CAAC,oBAAO,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAiB,CAAC;YACjD,CAAC,CAAC,eAAe,CAAC;QAEpB,IAAI,kBAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QAEhD,qBAAqB;QACrB,kBAAkB,GAAG,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAE1D,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEjD,MAAM,qBAAqB,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,sCAAsC,GAAG,GAAG,CAAC;QAChG,MAAM,uBAAuB,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;QAEpE,IAAI,qBAAqB,GAAG,CAAC,IAAI,uBAAuB,GAAG,qBAAqB,EAAE,CAAC;YACjF,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,qBAAqB,GAAG,CAAC,IAAI,uBAAuB,GAAG,qBAAqB,EAAE,CAAC;YACxF,MAAM,2BAA2B,GAAG,IAAI,oBAAO,CAAC,qBAAqB,GAAG,uBAAuB,CAAC,CAAC,GAAG,CAClG,OAAO,CAAC,cAAc,EAAE,CACzB,CAAC;YACF,eAAe,GAAG,oBAAO,CAAC,GAAG,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,oCAAoC,GAAG,IAAI,oBAAO,CAAC,eAAO,CAAC,CAAC;QAEhE,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7B,oCAAoC,GAAG,OAAO;iBAC3C,mCAAmC,EAAE;iBACrC,GAAG,CAAC,OAAO,CAAC,sCAAsC,EAAE,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,IAAI,8BAA8B,GAAG,IAAI,oBAAO,CAAC,eAAO,CAAC,CAAC;YAC1D,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBACjD,MAAM,cAAc,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAExE,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACvC,CAAC;gBAED,MAAM,+BAA+B,GAAG,cAAc;qBACnD,+CAA+C,CAAC,cAAc,GAAG,CAAC,CAAC;qBACnE,GAAG,CAAC,cAAc,CAAC,kDAAkD,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;gBAE9F,8BAA8B,GAAG,oBAAO,CAAC,GAAG,CAC1C,IAAI,oBAAO,CAAC,CAAC,CAAC,EACd,oBAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,8BAA8B,CAAC,CAC7E,CAAC;YACJ,CAAC;YACD,oCAAoC,GAAG,8BAA8B,CAAC;QACxE,CAAC;QAED,eAAe,GAAG,oBAAO,CAAC,GAAG,CAAC,eAAe,EAAE,oCAAoC,CAAC,CAAC;QAErF,OAAO,oBAAO,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IACtD,CAAC;IAED,oBAAoB,CAAC,MAAoB,EAAE,SAAkB,EAAE,IAAU;QACvE,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAE1D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,yBAAyB,GAAG,cAAc,CAAC,2BAA2B,EAAE,CAAC;QAC/E,MAAM,qBAAqB,GAAG,cAAc;aACzC,+BAA+B,EAAE;aACjC,GAAG,CAAC,cAAc,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5D,MAAM,sBAAsB,GAAG,oBAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;QAE7F,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAE7E,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,yBAAyB,GAAG,mBAAmB,CAAC,MAAM,CAAC;QAE7D,IAAI,IAAI,CAAC,cAAc,CAAC,mCAAmC,CAAC,MAAM,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,OAAO,oBAAO,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,gBAAgB,CACjE,MAAM,EACN,cAAc,EACd,IAAI,CAAC,KAAK,CAAC,cAAc,CAC1B,CAAC;QACF,gDAAgD;QAChD,IAAI,IAAI,CAAC,cAAc,CAAC,mCAAmC,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;YACjG,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,gBAAyB,CAAC;QAC9B,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,gBAAgB,GAAG,yBAAyB,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,0CAA0C;YAC1C,iEAAiE;YACjE,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW;iBAC/C,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,mCAAmC,CAAC;iBAC5D,GAAG,CAAC,aAAa,CAAC;iBAClB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,4CAA4C;QAC7D,CAAC;QAED,MAAM,iBAAiB,GAAG,gBAAgB;aACvC,GAAG,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC;aAC1C,GAAG,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC;QAEvC,OAAO,oBAAO,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,iBAAiB,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED,+BAA+B,CAAC,cAAuB;QACrD,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,KAAK,cAAc,CAAC,CAAC;QAEzG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,gDAAgD,cAAc,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,MAA2B;QAChD,OAAO,IAAI,mBAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAA2B;QACxD,OAAO,IAAA,sBAAW,EAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACrD,CAAC;IAEM,MAAM,CAAC,qBAAqB,CACjC,YAA0B,EAC1B,UAAsB,EACtB,IAAU,EACV,qBAAgC,EAAE;QAKlC,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,uCAAuC,CACtF,YAAY,EACZ,UAAU,EACV,IAAI,EACJ,kBAAkB,CACnB,CAAC;QACF,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,qCAAqC,CAClF,YAAY,EACZ,UAAU,EACV,IAAI,EACJ,kBAAkB,CACnB,CAAC;QAEF,OAAO;YACL,uBAAuB;YACvB,qBAAqB;SACtB,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,qBAAqB,CACjC,YAA0B,EAC1B,UAAsB,EACtB,uBAA8C,EAC9C,qBAA4C,EAC5C,IAAU;QAEV,gBAAgB,CAAC,uCAAuC,CAAC,YAAY,EAAE,uBAAuB,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAClH,gBAAgB,CAAC,qCAAqC,CAAC,YAAY,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAChH,CAAC;IAED,MAAM,CAAC,uCAAuC,CAC5C,YAA0B,EAC1B,UAAsB,EACtB,IAAU,EACV,kBAA6B;QAE7B,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAoB,CAAC;QAE5D,4EAA4E;QAC5E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAW,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC5C,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,IAAI,IAAA,uBAAe,EAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAClC,MAAM,eAAe,GAAG,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAE,CAAC;YACnE,MAAM,sBAAsB,GAAG,eAAe,CAAC,kCAAkC,CAC/E,IAAI,EACJ,YAAY,CAAC,KAAK,CAAC,cAAc,CAClC,CAAC;YACF,uBAAuB,CAAC,GAAG,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,uCAAuC,CAC5C,YAA0B,EAC1B,uBAA8C,EAC9C,UAAsB,EACtB,IAAU;QAEV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBACpG,MAAM,OAAO,GAAG,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAE,CAAC;gBAC1E,MAAM,sBAAsB,GAAG,OAAO,CAAC,kCAAkC,CACvE,IAAI,EACJ,YAAY,CAAC,KAAK,CAAC,cAAc,CAClC,CAAC;gBACF,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,qCAAqC,CAC1C,YAA0B,EAC1B,UAAsB,EACtB,IAAU,EACV,qBAAgC,EAAE;QAElC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAW,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,IAAA,uBAAe,EAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1C,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,IAAI,IAAA,uBAAe,EAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAoB,CAAC;QAE1D,8DAA8D;QAC9D,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAClC,MAAM,eAAe,GAAG,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAE,CAAC;YACnE,MAAM,oBAAoB,GAAG,eAAe,CAAC,gCAAgC,CAC3E,IAAI,EACJ,YAAY,CAAC,KAAK,CAAC,cAAc,CAClC,CAAC;YACF,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,qCAAqC,CAC1C,YAA0B,EAC1B,qBAA4C,EAC5C,UAAsB,EACtB,IAAU;QAEV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,IAAA,uBAAe,EAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC9F,MAAM,OAAO,GAAG,YAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAE,CAAC;gBACxE,MAAM,oBAAoB,GAAG,OAAO,CAAC,gCAAgC,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC/G,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,yBAAyB,CAAC,OAAsB,EAAE,cAAsB;QACpF,MAAM,uBAAuB,GAC3B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,KAAK,CAAC,CAAC;QACxF,IAAI,uBAAuB,EAAE,CAAC;YAC5B,OAAO,IAAI,oBAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,oBAAO,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,gBAAgB,CAC5B,MAAoB,EACpB,OAAsB,EACtB,cAAsB;QAEtB,MAAM,uBAAuB,GAC3B,cAAc,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACxF,IAAI,uBAAuB,EAAE,CAAC;YAC5B,MAAM,EAAE,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;YACrF,OAAO;gBACL,MAAM,EAAE,IAAI,oBAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;gBACtC,cAAc,EAAE,IAAI,oBAAO,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;aAChE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,WAAW,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5D,OAAO;gBACL,MAAM,EAAE,IAAI,oBAAO,CAAC,WAAW,CAAC;gBAChC,cAAc,EAAE,IAAI,oBAAO,CAAC,oBAAoB,CAAC;aAClD,CAAC;QACJ,CAAC;IACH,CAAC;;AAzhDH,4CA0hDC;AAED,yFAAyF;AACzF,SAAgB,kBAAkB,CAAC,UAA6C;IAC9E,OAAO,mBAAmB,IAAI,UAAU,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"obligation.js","sourceRoot":"","sources":["../../src/classes/obligation.ts"],"names":[],"mappings":";;;;;;AA2yDA,gDAEC;AA7yDD,yCAAyC;AACzC,qCAAgE;AAChE,4DAAiC;AAEjC,yDAAwD;AAExD,kDAAuB;AACvB,yCAAmD;AACnD,mDAKiC;AACjC,mCAAsD;AACtD,oCAQkB;AAElB,uDAA0D;AA+E1D,MAAa,gBAAgB;IAC3B,iBAAiB,CAAU;IAE3B,KAAK,CAAa;IAElB;;OAEG;IACH,QAAQ,CAAyB;IAEjC;;OAEG;IACH,OAAO,CAAyB;IAEhC,cAAc,CAAkB;IAEhC,aAAa,CAAS;IAEtB;;;;;;;OAOG;IACH,YACE,MAAoB,EACpB,iBAA0B,EAC1B,UAAsB,EACtB,uBAA8C,EAC9C,qBAA4C;QAE5C,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;QAExB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,kBAAkB,CACnE,MAAM,EACN,UAAU,CAAC,QAAQ,EACnB,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,cAAc,EACzB,uBAAuB,EACvB,qBAAqB,CACtB,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,MAAoB,EACpB,eAAgC,IAAA,UAAI,GAAE,EACtC,eAAgC,IAAA,UAAI,GAAE;QAEtC,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,YAAgC,CAAC;QACrC,MAAM,IAAI,GAAG,IAAA,yBAAiB,EAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oCAA4B,EAAE,CAAC,EAAE,EAAE,CAAC;YACtD,MAAM,GAAG,GAAG,MAAM,IAAA,gCAAwB,EACxC,MAAM,CAAC,UAAU,EAAE,EACnB,IAAI,CAAC,KAAK,CAAC,KAAK,EAChB;gBACE,GAAG,QAAQ;gBACX,EAAE,EAAE,CAAC;aACN,EACD,MAAM,CAAC,SAAS,CACjB,CAAC;YACF,IAAI,GAAG,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACnC,YAAY,GAAG,CAAC,CAAC;gBACjB,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAA0B,EAAE,iBAA0B;QACtE,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,UAAU,GAAG,qBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE7E,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,GAAG,gBAAgB,CAAC,qBAAqB,CAC/F,YAAY,EACZ,UAAU,EACV,GAAG,CAAC,OAAO,CAAC,IAAI,CACjB,CAAC;QACF,OAAO,IAAI,gBAAgB,CACzB,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,uBAAuB,EACvB,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,YAA0B,EAC1B,mBAA8B,EAC9B,IAAW;QAEX,IAAI,WAAW,GAAG,IAAI,CAAC;QACvB,IAAI,WAAkC,CAAC;QACvC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC7C,YAAY,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;gBACtC,qBAAU,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,mBAAmB,EAAE,YAAY,CAAC,SAAS,CAAC;aAC7F,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,MAAM,qBAAU,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,mBAAmB,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACnH,CAAC;QACD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC1D,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC5D,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,gBAAgB,CAAC,qBAAqB,CACpC,YAAY,EACZ,UAAU,EACV,uBAAuB,EACvB,qBAAqB,EACrB,WAAW,CACZ,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,IAAI,gBAAgB,CACzB,YAAY,EACZ,mBAAmB,CAAC,CAAC,CAAC,EACtB,UAAU,EACV,uBAAuB,EACvB,qBAAqB,CACtB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uCAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAClF,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,OAAO,IAAI,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,SAAS,EAAE,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,gCAAgC;QAC9B,OAAO,IAAI,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,SAAS,EAAE,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,wBAAwB;QACtB,OAAO,IAAI,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,SAAS,EAAE,CAAC;IACnE,CAAC;IAED;;;OAGG;IACH,uBAAuB;QACrB,OAAO,IAAI,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,SAAS,EAAE,CAAC;IACrE,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,OAA6B;QACjD,OAAO,IAAI,mBAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC;IACzD,CAAC;IAED,kBAAkB,CAAC,OAAgB;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,mBAAmB,CAAC,OAAgB;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,eAAe,CAAC,IAAa;QAC3B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wBAAwB,CAAC,OAAsB;QAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QAClG,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,gBAAgB,CAAC,IAAa;QAC5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,yBAAyB,CAAC,OAAsB;QAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACnG,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,MAA2B;QAC9C,OAAO,IAAI,mBAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC;IACxD,CAAC;IAED;;;OAGG;IACH,8BAA8B,CAAC,MAA2B;QACxD,OAAO,IAAI,mBAAQ,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,SAAS,EAAE,CAAC;IAC5E,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,mCAAmC,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC3G,CAAC;IAED;;;;;;;;;OASG;IACH,cAAc;QACZ,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC9F,CAAC;IAED;;OAEG;IACH,eAAe;QACb,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACvF,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAChD,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;IAC7C,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,0BAAkB,EAAE,CAAC;YAC/C,OAAO,IAAA,UAAI,GAAE,CAAC;QAChB,CAAC;QACD,OAAO,IAAA,UAAI,EAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,MAAoB,EAAE,cAAuB;QACnE,OAAO,gBAAgB,CAAC,gBAAgB,CACtC,MAAM,EACN,MAAM,CAAC,2BAA2B,CAAC,cAAc,CAAC,EAClD,IAAI,CAAC,KAAK,CAAC,cAAc,CAC1B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,YAA0B;QAC3C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;QACnD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBACrF,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAE,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,IAAI,IAAA,uBAAe,EAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjF,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAE,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;QACD,OAAO,gBAAgB,CAAC,6BAA6B,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,CAAC,6BAA6B,CAAC,QAA8B;QACjE,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,KAAK,MAAM,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBAClE,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBACxD,IAAI,KAAK,EAAE,CAAC;wBACV,qBAAqB,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;oBACvD,CAAC;yBAAM,CAAC;wBACN,qBAAqB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,qBAAqB,GAAG,IAAI,KAAK,EAAU,CAAC;QAClD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,qBAAqB,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7D,IAAI,KAAK,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAC9B,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,qBAAqB,CACnB,kBAA0C,EAC1C,aAA6B,EAC7B,uBAA8C;QAE9C,MAAM,WAAW,GAA2B,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAC/C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,KAAK,aAAa,CAAC,cAAc,CACrE,CAAC;QAEF,kFAAkF;QAClF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,aAAa,CAAC,cAAc,EAAE,CAAC;gBAC1E,MAAM,IAAI,GAA+B,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtE,MAAM,YAAY,GAAG,uBAAuB,CAAC,GAAG,CAAC,aAAa,CAAC,cAAc,CAAE,CAAC;gBAChF,MAAM,kBAAkB,GAAG,IAAI,oBAAO,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACxG,MAAM,cAAc,GAAG,IAAI,oBAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAC7G,IAAI,CAAC,eAAe,GAAG,IAAI,eAAE,CAAC,IAAA,sBAAc,EAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACzE,WAAW,CAAC,IAAI,CAAC,IAAI,4BAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,qDAAqD;YACrD,MAAM,yBAAyB,GAAG,kBAAkB,CAAC,SAAS,CAC5D,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,KAAK,0BAAkB,CAC3D,CAAC;YAEF,IAAI,yBAAyB,KAAK,CAAC,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,IAAI,GAA+B,EAAE,GAAG,kBAAkB,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAC9F,MAAM,YAAY,GAAG,uBAAuB,CAAC,GAAG,CAAC,aAAa,CAAC,cAAc,CAAE,CAAC;YAChF,MAAM,kBAAkB,GAAG,IAAI,oBAAO,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACxG,IAAI,CAAC,eAAe,GAAG,IAAI,eAAE,CAAC,IAAA,sBAAc,EAAC,IAAI,oBAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC;YAEnD,WAAW,CAAC,yBAAyB,CAAC,GAAG,IAAI,4BAAoB,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,oBAAoB,CAClB,iBAAwC,EACxC,YAA4B,EAC5B,oBAA6B;QAE7B,MAAM,UAAU,GAA0B,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,KAAK,YAAY,CAAC,cAAc,CAAC,CAAC;QAElH,iFAAiF;QACjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,YAAY,CAAC,cAAc,EAAE,CAAC;gBACvE,MAAM,MAAM,GAA8B,EAAE,GAAG,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChF,MAAM,iBAAiB,GAAY,IAAI,mBAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC;qBACrE,SAAS,EAAE;qBACX,GAAG,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;gBAC1C,MAAM,mBAAmB,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAA,sBAAc,EAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC/F,MAAM,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;gBAE9C,UAAU,CAAC,IAAI,CAAC,IAAI,2BAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YACvB,qDAAqD;YACrD,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,SAAS,CAC3D,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,KAAK,0BAAkB,CACxD,CAAC;YAEF,IAAI,yBAAyB,KAAK,CAAC,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,MAAM,GAA8B,EAAE,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAC9F,MAAM,CAAC,gBAAgB,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,oBAAO,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1G,MAAM,CAAC,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC;YACnD,MAAM,CAAC,uBAAuB,GAAG;gBAC/B,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,CAAC,mBAAQ,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,eAAE,CAAC,CAAC,CAAC,EAAE,IAAI,eAAE,CAAC,CAAC,CAAC,EAAE,IAAI,eAAE,CAAC,CAAC,CAAC,CAAC;aAChG,CAAC;YACF,UAAU,CAAC,yBAAyB,CAAC,GAAG,IAAI,2BAAmB,CAAC,MAAM,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,yCAAyC;IACzC,2BAA2B,CAAC,MAU3B;QAKC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC1F,IAAI,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,MAAM,mBAAmB,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1G,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAExF,MAAM,kBAAkB,GAAc,EAAE,CAAC;QACzC,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACtC,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,EAAE,uBAAuB,EAAE,GAAG,gBAAgB,CAAC,qBAAqB,CACxE,MAAM,EACN,IAAI,CAAC,KAAK,EACV,MAAM,CAAC,IAAI,EACX,kBAAkB,CACnB,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,CAAC,sBAAsB,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QAElF,IAAI,WAAW,GAA2B,IAAI,GAAG,CAAoB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACnG,IAAI,UAAU,GAA2B,IAAI,GAAG,CAAoB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAEjG,0FAA0F;QAC1F,uFAAuF;QACvF,kEAAkE;QAElE,MAAM,+BAA+B,GAAG,QAAQ;YAC9C,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAE,CAAC,uBAAuB,EAAE;YAC9D,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAChD,IAAI,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAE9C,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,gBAAgB,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;oBACnE,MAAM,KAAK,CAAC,mEAAmE,CAAC,CAAC;gBACnF,CAAC;gBACD,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAChD,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB;oBACE,cAAc,EAAE,mBAAoB;oBACpC,oBAAoB,EAAE,gBAAgB;iBACvC,EACD,uBAAuB,CACxB,CAAC;gBACF,MAAM;YACR,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,UAAU,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACvD,MAAM,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBACtE,CAAC;gBAED,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,EAClB;oBACE,cAAc,EAAE,aAAc;oBAC9B,oBAAoB,EAAE,UAAU;iBACjC,EACD,+BAAgC,CACjC,CAAC;gBACF,MAAM;YACR,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,IAAI,UAAU,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACvD,MAAM,KAAK,CAAC,qDAAqD,CAAC,CAAC;gBACrE,CAAC;gBAED,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,EAClB;oBACE,cAAc,EAAE,aAAc;oBAC9B,oBAAoB,EAAE,UAAU,CAAC,GAAG,EAAE;iBACvC,EACD,+BAAgC,CACjC,CAAC;gBAEF,MAAM;YACR,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,gBAAgB,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;oBACnE,MAAM,KAAK,CAAC,oEAAoE,CAAC,CAAC;gBACpF,CAAC;gBACD,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAChD,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB;oBACE,cAAc,EAAE,mBAAoB;oBACpC,oBAAoB,EAAE,gBAAgB,CAAC,GAAG,EAAE;iBAC7C,EACD,uBAAuB,CACxB,CAAC;gBACF,MAAM;YACR,CAAC;YACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,IACE,gBAAgB,KAAK,SAAS;oBAC9B,UAAU,KAAK,SAAS;oBACxB,cAAc,KAAK,SAAS;oBAC5B,QAAQ,KAAK,SAAS,EACtB,CAAC;oBACD,MAAM,KAAK,CAAC,8FAA8F,CAAC,CAAC;gBAC9G,CAAC;gBACD,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAChD,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB;oBACE,cAAc,EAAE,mBAAoB;oBACpC,oBAAoB,EAAE,gBAAgB;iBACvC,EACD,uBAAuB,CACxB,CAAC;gBAEF,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,EAClB;oBACE,cAAc,EAAE,aAAc;oBAC9B,oBAAoB,EAAE,UAAU;iBACjC,EACD,+BAAgC,CACjC,CAAC;gBACF,MAAM;YACR,CAAC;YACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,IACE,gBAAgB,KAAK,SAAS;oBAC9B,UAAU,KAAK,SAAS;oBACxB,cAAc,KAAK,SAAS;oBAC5B,QAAQ,KAAK,SAAS,EACtB,CAAC;oBACD,MAAM,KAAK,CAAC,8FAA8F,CAAC,CAAC;gBAC9G,CAAC;gBACD,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAChD,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB;oBACE,cAAc,EAAE,mBAAoB;oBACpC,oBAAoB,EAAE,gBAAgB,CAAC,GAAG,EAAE;iBAC7C,EACD,uBAAuB,CACxB,CAAC;gBACF,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,EAClB;oBACE,cAAc,EAAE,aAAc;oBAC9B,oBAAoB,EAAE,UAAU,CAAC,GAAG,EAAE;iBACvC,EACD,+BAAgC,CACjC,CAAC;gBACF,MAAM;YACR,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,KAAK,CAAC,uBAAuB,MAAM,kCAAkC,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,kBAAkB,CACnE,MAAM,EACN,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,IAAI,CACL,CAAC;QAEF,QAAQ,GAAG,cAAc,CAAC;QAC1B,WAAW,GAAG,QAAQ,CAAC;QACvB,UAAU,GAAG,OAAO,CAAC;QAErB,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACrF,QAAQ,CAAC,WAAW,GAAG,IAAA,mBAAW,EAChC,QAAQ,CAAC,mCAAmC,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAC5F,CAAC;QACF,QAAQ,CAAC,QAAQ,GAAG,IAAA,mBAAW,EAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QAE/F,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,UAAU;SACpB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,8BAA8B,CAAC,MAQ9B;QACC,MAAM,EACJ,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,MAAM,EACN,IAAI,GACL,GAAG,MAAM,CAAC;QAEX,MAAM,kBAAkB,GAAG,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,CAAC,MAAM,CAC/E,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,cAAc,CAAC,CACxE,CAAC;QAEF,MAAM,EAAE,uBAAuB,EAAE,GAAG,gBAAgB,CAAC,qBAAqB,CACxE,MAAM,EACN,IAAI,CAAC,KAAK,EACV,IAAI,EACJ,kBAAkB,CACnB,CAAC;QAEF,IAAI,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAChD,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAChD,qBAAqB,EACrB;YACE,cAAc,EAAE,sBAAsB;YACtC,oBAAoB,EAAE,sBAAsB,CAAC,GAAG,EAAE;SACnD,EACD,uBAAuB,CACxB,CAAC;QACF,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAChD,qBAAqB,EACrB;YACE,cAAc,EAAE,qBAAqB;YACrC,oBAAoB,EAAE,qBAAqB;SAC5C,EACD,uBAAuB,CACxB,CAAC;QAEF,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAChD,MAAM,EACN,qBAAqB,EACrB,IAAI,CAAC,KAAK,CAAC,OAAO,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,IAAI,CACL,CAAC;QAEF,MAAM,QAAQ,GAAG,cAAc,CAAC;QAChC,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACrF,QAAQ,CAAC,WAAW,GAAG,IAAA,mBAAW,EAChC,QAAQ,CAAC,mCAAmC,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAC5F,CAAC;QACF,QAAQ,CAAC,QAAQ,GAAG,IAAA,mBAAW,EAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QAC/F,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,8BAA8B,GAAG,CAC/B,MAAoB,EACpB,OAAsB,EACtB,MAA2B,EAC3B,WAAiB,EACR,EAAE;QACX,MAAM,uBAAuB,GAAG,OAAO,CAAC,gCAAgC,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEnH,MAAM,0BAA0B,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEpF,IAAI,uBAAuB,CAAC,EAAE,CAAC,0BAA0B,CAAC,EAAE,CAAC;YAC3D,OAAO,uBAAuB,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,CAAC,WAAW,GAAG,CAAC,OAAsB,EAAE,EAAE;QAC9C,OAAO,OAAO,CAAC,oBAAoB,EAAE,CAAC;IACxC,CAAC,CAAC;IAEF,kBAAkB,CAChB,MAAoB,EACpB,kBAA0C,EAC1C,iBAAwC,EACxC,cAAsB,EACtB,uBAA8C,EAC9C,qBAAmD,EACnD,cAAmD,gBAAgB,CAAC,WAAW;QAM/E,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,2BAA2B,CAC1E,MAAM,EACN,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,WAAW,CACZ,CAAC;QAEF,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,0BAA0B,CACxE,MAAM,EACN,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,WAAW,CACZ,CAAC;QAEF,MAAM,6BAA6B,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,KAAK,CAClF,sBAAsB,CAAC,eAAe,CACvC,CAAC;QAEF,kBAAkB;QAClB,MAAM,6BAA6B,GAAG,CAAC,CAAC;QAExC,OAAO;YACL,QAAQ,EAAE,uBAAuB,CAAC,QAAQ;YAC1C,OAAO,EAAE,sBAAsB,CAAC,OAAO;YACvC,cAAc,EAAE;gBACd,WAAW,EAAE,uBAAuB,CAAC,WAAW;gBAChD,sBAAsB,EAAE,uBAAuB,CAAC,sBAAsB;gBACtE,eAAe,EAAE,sBAAsB,CAAC,eAAe;gBACvD,mCAAmC,EAAE,sBAAsB,CAAC,mCAAmC;gBAC/F,gBAAgB,EAAE,uBAAuB,CAAC,gBAAgB;gBAC1D,0BAA0B,EAAE,uBAAuB,CAAC,0BAA0B;gBAC9E,4BAA4B,EAAE,uBAAuB,CAAC,4BAA4B;gBAClF,cAAc,EAAE,uBAAuB,CAAC,cAAc;gBACtD,iBAAiB,EAAE,sBAAsB,CAAC,mCAAmC,CAAC,SAAS,CACrF,uBAAuB,CAAC,WAAW,CACpC;gBACD,eAAe,EAAE,6BAA6B;gBAC9C,QAAQ,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,SAAS,CAAC,6BAA6B,CAAC;gBAC3F,WAAW,EAAE,sBAAsB,CAAC,mCAAmC,CAAC,SAAS,CAC/E,uBAAuB,CAAC,0BAA0B,CACnD;gBACD,6BAA6B;aAC9B;SACF,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,2BAA2B,CACvC,MAAoB,EACpB,kBAA0C,EAC1C,uBAAqD,EACrD,cAAsB,EACtB,KAA0C;QAE1C,IAAI,gBAAgB,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,0BAA0B,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,4BAA4B,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,WAAW,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,sBAAsB,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QAE5C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,IAAI,CAAC,IAAA,uBAAe,EAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC3D,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,uDAAuD,OAAO,CAAC,cAAc,iEAAiE,OAAO,CAAC,eAAe,EAAE,CACxK,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YAEtG,IAAI,YAAqB,CAAC;YAC1B,IAAI,uBAAuB,KAAK,IAAI,EAAE,CAAC;gBACrC,YAAY,GAAG,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,YAAY,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;YACrD,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,oBAAO,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAEvF,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;YAEtF,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAEzD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,0BAA0B,GAAG,0BAA0B,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC/E,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,4BAA4B,GAAG,4BAA4B,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACnF,CAAC;YAED,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3D,sBAAsB,GAAG,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;YAEzF,MAAM,QAAQ,GAAa;gBACzB,cAAc,EAAE,OAAO,CAAC,OAAO;gBAC/B,WAAW,EAAE,OAAO,CAAC,gBAAgB,EAAE;gBACvC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE;gBACnC,MAAM,EAAE,YAAY;gBACpB,oBAAoB,EAAE,eAAe;aACtC,CAAC;YACF,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO;YACL,QAAQ;YACR,gBAAgB;YAChB,0BAA0B;YAC1B,4BAA4B;YAC5B,WAAW;YACX,cAAc,EAAE,IAAA,mBAAW,EAAC,sBAAsB,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YACrF,sBAAsB;SACvB,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,0BAA0B,CACtC,MAAoB,EACpB,iBAAwC,EACxC,qBAAmD,EACnD,cAAsB,EACtB,KAA0C;QAE1C,IAAI,eAAe,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,mCAAmC,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC,IAAA,uBAAe,EAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;gBACzD,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,sDACE,MAAM,CAAC,aACT,gEAAgE,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAC3G,CAAC;YACJ,CAAC;YAED,MAAM,8BAA8B,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACxF,IAAI,oBAAoB,CAAC;YACzB,IAAI,qBAAqB,KAAK,IAAI,EAAE,CAAC;gBACnC,oBAAoB,GAAG,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;YAC3D,CAAC;YAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC;iBAC1D,GAAG,CAAC,oBAAoB,CAAC;iBACzB,SAAS,CAAC,8BAA8B,CAAC,CAAC;YAE7C,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;YAE3F,MAAM,YAAY,GAAG,gBAAgB,CAAC,yBAAyB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YACzF,MAAM,kCAAkC,GAAG,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAE5E,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,oBAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvC,SAAS,IAAI,CAAC,CAAC;YACjB,CAAC;YAED,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACvD,mCAAmC,GAAG,mCAAmC,CAAC,IAAI,CAC5E,kCAAkC,CACnC,CAAC;YAEF,MAAM,QAAQ,GAAa;gBACzB,cAAc,EAAE,OAAO,CAAC,OAAO;gBAC/B,WAAW,EAAE,OAAO,CAAC,gBAAgB,EAAE;gBACvC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE;gBACnC,MAAM,EAAE,YAAY;gBACpB,oBAAoB,EAAE,cAAc;aACrC,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;QAED,OAAO;YACL,OAAO;YACP,eAAe;YACf,mCAAmC;YACnC,SAAS;SACV,CAAC;IACJ,CAAC;IAED,iDAAiD,CAC/C,MAAoB,EACpB,cAAsB,EACtB,IAAU;QAEV,MAAM,WAAW,GAAG,CAAC,OAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC/E,MAAM,EAAE,uBAAuB,EAAE,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAErG,MAAM,EAAE,WAAW,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,GACvE,gBAAgB,CAAC,2BAA2B,CAC1C,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB,uBAAuB,EACvB,cAAc,EACd,WAAW,CACZ,CAAC;QAEJ,IAAI,0BAA0B,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,OAAO,EAAE,MAAM,EAAE,IAAI,oBAAO,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,oBAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,CAAC;QAED,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,0BAA0B,CAAC;YACnD,cAAc,EAAE,sBAAsB,CAAC,GAAG,CAAC,0BAA0B,CAAC;SACvE,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,mBAAmB,CACjB,MAAoB,EACpB,IAAU,EACV,cAAiC,EACjC,aAAgC;QAEhC,MAAM,iBAAiB,GAAc,EAAE,CAAC;QAExC,IAAI,cAAc,EAAE,CAAC;YACnB,iBAAiB,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,aAAa,EAAE,CAAC;YAClB,iBAAiB,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,GAAG,gBAAgB,CAAC,qBAAqB,CAC/F,MAAM,EACN,IAAI,CAAC,KAAK,EACV,IAAI,EACJ,iBAAiB,CAClB,CAAC;QAEF,IAAI,WAAW,GAA2B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC9D,IAAI,cAAc,EAAE,CAAC;YACnB,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;gBAC3C,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,aAAa,EAAE,uBAAuB,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;QAED,IAAI,UAAU,GAA0B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3D,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;gBACxE,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;gBACvE,CAAC;gBACD,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;YACtG,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,MAAM,kBAAkB,GAAG,IAAI,qBAAU,CAAC;YACxC,GAAG,IAAI,CAAC,KAAK;YACb,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,UAAU;SACpB,CAAC,CAAC;QAEH,OAAO,IAAI,gBAAgB,CACzB,MAAM,EACN,IAAI,CAAC,iBAAiB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;MAcE;IACF,cAAc,CACZ,MAAoB,EACpB,aAAsB,EACtB,IAAU,EACV,iBAAyB,IAAI,CAAC,KAAK,CAAC,cAAc;QAElD,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,uBAAuB,GAC3B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,KAAK,CAAC,CAAC;QAExF,MAAM,YAAY,GAAG,gBAAgB,CAAC,yBAAyB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAEzF,MAAM,WAAW,GAAG,CAAC,OAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC/E,MAAM,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,GAAG,gBAAgB,CAAC,qBAAqB,CAC/F,MAAM,EACN,IAAI,CAAC,KAAK,EACV,IAAI,CACL,CAAC;QAEF,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,2BAA2B,CAClE,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB,uBAAuB,EACvB,cAAc,EACd,WAAW,CACZ,CAAC;QAEF,MAAM,EAAE,mCAAmC,EAAE,GAAG,gBAAgB,CAAC,0BAA0B,CACzF,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,OAAO,EAClB,qBAAqB,EACrB,cAAc,EACd,WAAW,CACZ,CAAC;QAEF,MAAM,wBAAwB,GAAG,WAAW,CAAC,4BAA4B;aACtE,KAAK,CAAC,mCAAmC,CAAC;aAC1C,GAAG,CAAC,YAAY,CAAC;aACjB,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;aACnC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QAEhC,wDAAwD;QACxD,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACjD,MAAM,cAAc,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACxE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,8BAA8B,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC3F,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,IAAI,kBAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QAEhD,qBAAqB;QACrB,kBAAkB,GAAG,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,SAAS,GAAG,wBAAwB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAEnE,MAAM,eAAe,GAAG,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEhE,OAAO,oBAAO,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;MAUE;IACF,oBAAoB,CAClB,MAAoB,EACpB,aAAsB,EACtB,IAAU,EACV,iBAAyB,IAAI,CAAC,KAAK,CAAC,cAAc;QAElD,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,4CAA4C,CAC7E,MAAM,EACN,CAAC,cAAc,CAAC,EAChB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CACjC,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAEzF,IAAI,cAAc,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YACjD,OAAO,oBAAO,CAAC,GAAG,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,qHAAqH;YACrH,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,oBAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACpG,MAAM,+BAA+B,GAAG,oBAAO,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YAClG,OAAO,oBAAO,CAAC,GAAG,CAAC,eAAe,EAAE,+BAA+B,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED;;;;;;;;;;MAUE;IACF,+BAA+B,CAC7B,MAAoB,EACpB,aAAsB,EACtB,IAAU,EACV,iBAAyB,IAAI,CAAC,KAAK,CAAC,cAAc,EAClD,qBAA8B,EAC9B,qBAA8B;QAE9B,MAAM,cAAc,GAAG;YACrB;gBACE,cAAc,EAAE,qBAAqB;gBACrC,oBAAoB,EAAE,qBAAqB;aAC5C;SACF,CAAC;QACF,MAAM,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAErF,OAAO,qBAAqB,CAAC,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IACjG,CAAC;IAED;;;;;;MAME;IACF,+BAA+B,CAAC,MAAoB,EAAE,IAAU,EAAE,cAAsB;QACtF,mFAAmF;QACnF,2DAA2D;QAC3D,yDAAyD;QACzD,2BAA2B;QAE3B,MAAM,eAAe,GAAc,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,MAAM,cAAc,GAAc,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAElE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,sFAAsF;YACtF,MAAM,kBAAkB,GAAG,MAAM,CAAC,mCAAmC,EAAE,CAAC;YACxE,MAAM,yBAAyB,GAAG,kBAAkB,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;YAEzE,qBAAqB;YACrB,MAAM,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CACzD,yBAAyB,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAC1D,CAAC;YACF,MAAM,gBAAgB,GACpB,cAAc,CAAC,MAAM,KAAK,CAAC;gBAC3B,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,yBAAyB,CAAC,WAAW,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/F,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC3C,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,MAAM,WAAW,GAAG,CAAC,OAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC/E,MAAM,EAAE,uBAAuB,EAAE,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAErG,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,2BAA2B,CAClE,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB,uBAAuB,EACvB,cAAc,EACd,WAAW,CACZ,CAAC;QAEF,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,mCAAmC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEtG,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;;;MAIE;IACF,+BAA+B,CAAC,MAAoB;QAClD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,wCAAwC,CAAC,YAAY,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO,MAAM,CAAC,wCAAwC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,kBAAkB,CAChB,MAAoB,EACpB,aAAsB,EACtB,IAAU,EACV,qBAA8B;QAE9B,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAEvD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;QAC5C,MAAM,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;QACpE,IAAI,qBAAqB,GAAG,CAAC,GAAG,sBAAsB,CAAC,CAAC,MAAM,CAC5D,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,OAAO,CACzE,CAAC;QAEF,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACjD,MAAM,cAAc,GAAG,MAAM,CAAC,2BAA2B,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAEhF,MAAM,yBAAyB,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;YAE9E,qBAAqB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3G,CAAC;QAED,IAAI,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QAC/C,IAAI,qBAAqB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,kCAAkC,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;gBACrF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;gBAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;gBAC5D,OAAO,SAAU,CAAC,MAAM,GAAG,SAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,cAAc,GAAG,kCAAkC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,MAAM,uBAAuB,GAC3B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,KAAK,CAAC,CAAC;QAExF,MAAM,YAAY,GAAG,gBAAgB,CAAC,yBAAyB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAEzF,MAAM,wBAAwB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,4BAA4B;aAC1F,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,mCAAmC,CAAC;aAC9D,GAAG,CAAC,YAAY,CAAC;aACjB,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;aACnC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QAChC,MAAM,sBAAsB,GAAG,OAAO,CAAC,2BAA2B,EAAE,CAAC;QACrE,IAAI,wBAAwB,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAEjG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAChC,MAAM,cAAc,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC1E,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,8BAA8B,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC3F,wBAAwB,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,eAAe,GAAG,oBAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,sBAAsB,EAAE,wBAAwB,CAAC,CAAC;QAE9G,MAAM,iBAAiB,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;QAChH,eAAe,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC,CAAC,oBAAO,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAiB,CAAC;YACjD,CAAC,CAAC,eAAe,CAAC;QAEpB,IAAI,kBAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QAEhD,qBAAqB;QACrB,kBAAkB,GAAG,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAE1D,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEjD,MAAM,qBAAqB,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,sCAAsC,GAAG,GAAG,CAAC;QAChG,MAAM,uBAAuB,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;QAEpE,IAAI,qBAAqB,GAAG,CAAC,IAAI,uBAAuB,GAAG,qBAAqB,EAAE,CAAC;YACjF,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,qBAAqB,GAAG,CAAC,IAAI,uBAAuB,GAAG,qBAAqB,EAAE,CAAC;YACxF,MAAM,2BAA2B,GAAG,IAAI,oBAAO,CAAC,qBAAqB,GAAG,uBAAuB,CAAC,CAAC,GAAG,CAClG,OAAO,CAAC,cAAc,EAAE,CACzB,CAAC;YACF,eAAe,GAAG,oBAAO,CAAC,GAAG,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,oCAAoC,GAAG,IAAI,oBAAO,CAAC,eAAO,CAAC,CAAC;QAEhE,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7B,oCAAoC,GAAG,OAAO;iBAC3C,mCAAmC,EAAE;iBACrC,GAAG,CAAC,OAAO,CAAC,sCAAsC,EAAE,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,IAAI,8BAA8B,GAAG,IAAI,oBAAO,CAAC,eAAO,CAAC,CAAC;YAC1D,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBACjD,MAAM,cAAc,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAExE,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACvC,CAAC;gBAED,MAAM,+BAA+B,GAAG,cAAc;qBACnD,+CAA+C,CAAC,cAAc,GAAG,CAAC,CAAC;qBACnE,GAAG,CAAC,cAAc,CAAC,kDAAkD,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;gBAE9F,8BAA8B,GAAG,oBAAO,CAAC,GAAG,CAC1C,IAAI,oBAAO,CAAC,CAAC,CAAC,EACd,oBAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,8BAA8B,CAAC,CAC7E,CAAC;YACJ,CAAC;YACD,oCAAoC,GAAG,8BAA8B,CAAC;QACxE,CAAC;QAED,eAAe,GAAG,oBAAO,CAAC,GAAG,CAAC,eAAe,EAAE,oCAAoC,CAAC,CAAC;QAErF,OAAO,oBAAO,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IACtD,CAAC;IAED,oBAAoB,CAAC,MAAoB,EAAE,SAAkB,EAAE,IAAU;QACvE,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAE1D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,yBAAyB,GAAG,cAAc,CAAC,2BAA2B,EAAE,CAAC;QAC/E,MAAM,qBAAqB,GAAG,cAAc;aACzC,+BAA+B,EAAE;aACjC,GAAG,CAAC,cAAc,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5D,MAAM,sBAAsB,GAAG,oBAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;QAE7F,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAE7E,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,yBAAyB,GAAG,mBAAmB,CAAC,MAAM,CAAC;QAE7D,IAAI,IAAI,CAAC,cAAc,CAAC,mCAAmC,CAAC,MAAM,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,OAAO,oBAAO,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,gBAAgB,CACjE,MAAM,EACN,cAAc,EACd,IAAI,CAAC,KAAK,CAAC,cAAc,CAC1B,CAAC;QACF,gDAAgD;QAChD,IAAI,IAAI,CAAC,cAAc,CAAC,mCAAmC,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;YACjG,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,gBAAyB,CAAC;QAC9B,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,gBAAgB,GAAG,yBAAyB,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,0CAA0C;YAC1C,iEAAiE;YACjE,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW;iBAC/C,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,mCAAmC,CAAC;iBAC5D,GAAG,CAAC,aAAa,CAAC;iBAClB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,4CAA4C;QAC7D,CAAC;QAED,MAAM,iBAAiB,GAAG,gBAAgB;aACvC,GAAG,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC;aAC1C,GAAG,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC;QAEvC,OAAO,oBAAO,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,iBAAiB,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED;;;;;;;;;;;OAWG;IACH,6BAA6B,CAC3B,MAAoB,EACpB,SAAkB,EAClB,IAAU,EACV,mBAA4B,EAC5B,mBAA4B;QAE5B,MAAM,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,eAAO,CAAC;YACrD,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC;YAC7C,CAAC,CAAC,mBAAmB,CAAC;QACxB,MAAM,aAAa,GAAG;YACpB;gBACE,cAAc,EAAE,mBAAmB;gBACnC,oBAAoB,EAAE,WAAW,CAAC,GAAG,EAAE,EAAE,kBAAkB;aAC5D;SACF,CAAC;QACF,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAE7F,OAAO,mBAAmB,CAAC,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,+BAA+B,CAAC,cAAuB;QACrD,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,KAAK,cAAc,CAAC,CAAC;QAEzG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,gDAAgD,cAAc,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,MAA2B;QAChD,OAAO,IAAI,mBAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAA2B;QACxD,OAAO,IAAA,sBAAW,EAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACrD,CAAC;IAEM,MAAM,CAAC,qBAAqB,CACjC,YAA0B,EAC1B,UAAsB,EACtB,IAAU,EACV,qBAAgC,EAAE;QAKlC,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,uCAAuC,CACtF,YAAY,EACZ,UAAU,EACV,IAAI,EACJ,kBAAkB,CACnB,CAAC;QACF,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,qCAAqC,CAClF,YAAY,EACZ,UAAU,EACV,IAAI,EACJ,kBAAkB,CACnB,CAAC;QAEF,OAAO;YACL,uBAAuB;YACvB,qBAAqB;SACtB,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,qBAAqB,CACjC,YAA0B,EAC1B,UAAsB,EACtB,uBAA8C,EAC9C,qBAA4C,EAC5C,IAAU;QAEV,gBAAgB,CAAC,uCAAuC,CAAC,YAAY,EAAE,uBAAuB,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAClH,gBAAgB,CAAC,qCAAqC,CAAC,YAAY,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAChH,CAAC;IAED,MAAM,CAAC,uCAAuC,CAC5C,YAA0B,EAC1B,UAAsB,EACtB,IAAU,EACV,kBAA6B;QAE7B,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAoB,CAAC;QAE5D,4EAA4E;QAC5E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAW,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC5C,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,IAAI,IAAA,uBAAe,EAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAClC,MAAM,eAAe,GAAG,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAE,CAAC;YACnE,MAAM,sBAAsB,GAAG,eAAe,CAAC,kCAAkC,CAC/E,IAAI,EACJ,YAAY,CAAC,KAAK,CAAC,cAAc,CAClC,CAAC;YACF,uBAAuB,CAAC,GAAG,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,uCAAuC,CAC5C,YAA0B,EAC1B,uBAA8C,EAC9C,UAAsB,EACtB,IAAU;QAEV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBACpG,MAAM,OAAO,GAAG,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAE,CAAC;gBAC1E,MAAM,sBAAsB,GAAG,OAAO,CAAC,kCAAkC,CACvE,IAAI,EACJ,YAAY,CAAC,KAAK,CAAC,cAAc,CAClC,CAAC;gBACF,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,qCAAqC,CAC1C,YAA0B,EAC1B,UAAsB,EACtB,IAAU,EACV,qBAAgC,EAAE;QAElC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAW,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,IAAA,uBAAe,EAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1C,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,IAAI,IAAA,uBAAe,EAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAoB,CAAC;QAE1D,8DAA8D;QAC9D,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAClC,MAAM,eAAe,GAAG,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAE,CAAC;YACnE,MAAM,oBAAoB,GAAG,eAAe,CAAC,gCAAgC,CAC3E,IAAI,EACJ,YAAY,CAAC,KAAK,CAAC,cAAc,CAClC,CAAC;YACF,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,qCAAqC,CAC1C,YAA0B,EAC1B,qBAA4C,EAC5C,UAAsB,EACtB,IAAU;QAEV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,IAAA,uBAAe,EAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC9F,MAAM,OAAO,GAAG,YAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAE,CAAC;gBACxE,MAAM,oBAAoB,GAAG,OAAO,CAAC,gCAAgC,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC/G,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,yBAAyB,CAAC,OAAsB,EAAE,cAAsB;QACpF,MAAM,uBAAuB,GAC3B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,KAAK,CAAC,CAAC;QACxF,IAAI,uBAAuB,EAAE,CAAC;YAC5B,OAAO,IAAI,oBAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,oBAAO,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,gBAAgB,CAC5B,MAAoB,EACpB,OAAsB,EACtB,cAAsB;QAEtB,MAAM,uBAAuB,GAC3B,cAAc,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACxF,IAAI,uBAAuB,EAAE,CAAC;YAC5B,MAAM,EAAE,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;YACrF,OAAO;gBACL,MAAM,EAAE,IAAI,oBAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;gBACtC,cAAc,EAAE,IAAI,oBAAO,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;aAChE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,WAAW,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5D,OAAO;gBACL,MAAM,EAAE,IAAI,oBAAO,CAAC,WAAW,CAAC;gBAChC,cAAc,EAAE,IAAI,oBAAO,CAAC,oBAAoB,CAAC;aAClD,CAAC;QACJ,CAAC;IACH,CAAC;;AA/rDH,4CAgsDC;AAED,yFAAyF;AACzF,SAAgB,kBAAkB,CAAC,UAA6C;IAC9E,OAAO,mBAAmB,IAAI,UAAU,CAAC;AAC3C,CAAC"}
@@ -19,6 +19,7 @@ export declare class KaminoReserve {
19
19
  private farmData;
20
20
  private rpc;
21
21
  private readonly recentSlotDurationMs;
22
+ private metadata?;
22
23
  constructor(state: Reserve, address: Address, tokenOraclePrice: TokenOracleData, connection: Rpc<KaminoReserveRpcApi>, recentSlotDurationMs: number);
23
24
  static initialize(address: Address, state: Reserve, tokenOraclePrice: TokenOracleData, rpc: Rpc<KaminoReserveRpcApi>, recentSlotDurationMs: number): KaminoReserve;
24
25
  static initializeFromAddress(address: Address, rpc: Rpc<KaminoReserveRpcApi>, recentSlotDurationMs: number, reserveState?: Reserve, oracleAccounts?: AllOracleAccounts): Promise<KaminoReserve>;
@@ -26,6 +27,10 @@ export declare class KaminoReserve {
26
27
  * @returns the parsed token symbol of the reserve
27
28
  */
28
29
  getTokenSymbol(): string;
30
+ /**
31
+ * @returns list of logo names and human readable oracle descriptions
32
+ */
33
+ getOracleMetadata(): Promise<[string, string][]>;
29
34
  /**
30
35
  * @returns the total borrowed amount of the reserve in lamports
31
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"reserve.d.ts","sourceRoot":"","sources":["../../src/classes/reserve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reserve.d.ts","sourceRoot":"","sources":["../../src/classes/reserve.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ const system_1 = require("@solana-program/system");
27
27
  const sysvars_1 = require("@solana/sysvars");
28
28
  const signer_1 = require("../utils/signer");
29
29
  const farm_utils_1 = require("./farm_utils");
30
+ const scope_sdk_1 = require("@kamino-finance/scope-sdk");
30
31
  exports.DEFAULT_RECENT_SLOT_DURATION_MS = 450;
31
32
  class KaminoReserve {
32
33
  state;
@@ -37,6 +38,7 @@ class KaminoReserve {
37
38
  farmData = { fetched: false, farmStates: [] };
38
39
  rpc;
39
40
  recentSlotDurationMs;
41
+ metadata;
40
42
  constructor(state, address, tokenOraclePrice, connection, recentSlotDurationMs) {
41
43
  this.state = state;
42
44
  this.address = address;
@@ -70,6 +72,17 @@ class KaminoReserve {
70
72
  getTokenSymbol() {
71
73
  return (0, utils_2.parseTokenSymbol)(this.state.config.tokenInfo.name);
72
74
  }
75
+ /**
76
+ * @returns list of logo names and human readable oracle descriptions
77
+ */
78
+ async getOracleMetadata() {
79
+ if (!this.metadata) {
80
+ const scope = new scope_sdk_1.Scope('mainnet-beta', this.rpc);
81
+ const { priceFeed, priceChain } = this.state.config.tokenInfo.scopeConfiguration;
82
+ this.metadata = await scope.getChainMetadata({ prices: priceFeed }, priceChain);
83
+ }
84
+ return this.metadata.map((m) => [m.provider, m.name]);
85
+ }
73
86
  /**
74
87
  * @returns the total borrowed amount of the reserve in lamports
75
88
  */