@paraswap/dex-lib 4.7.14-multi-route.3 → 4.7.14-multi-route.5

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.
@@ -6,6 +6,7 @@ const utils_1 = require("../utils");
6
6
  const types_1 = require("./types");
7
7
  const constants_1 = require("./constants");
8
8
  const ExecutorBytecodeBuilder_1 = require("./ExecutorBytecodeBuilder");
9
+ const utils_2 = require("./utils");
9
10
  const { utils: { hexlify, hexDataLength, hexConcat, hexZeroPad, solidityPack }, } = ethers_1.ethers;
10
11
  /**
11
12
  * Class to build bytecode for Executor01 - simpleSwap (SINGLE_STEP) with 100% on a path and multiSwap with 100% amounts on each path (HORIZONTAL_SEQUENCE)
@@ -158,6 +159,7 @@ class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder_1.ExecutorByteco
158
159
  const swap = routes[0].swaps[index];
159
160
  const curExchangeParam = exchangeParams[index];
160
161
  const dexCallData = this.buildDexCallData({
162
+ priceRouteType: params.priceRouteType,
161
163
  routes,
162
164
  routeIndex: 0,
163
165
  swapIndex: index,
@@ -268,10 +270,12 @@ class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder_1.ExecutorByteco
268
270
  throw new Error(`Executor01BytecodeBuilder doesn't support multi-route`);
269
271
  }
270
272
  const _routes = routes.filter(r => r.type === 'single-route');
271
- const flags = this.buildFlags(priceRoute.bestRoute, _routes, exchangeParams, priceRoute.srcToken, maybeWethCallData);
273
+ const priceRouteType = (0, utils_2.getPriceRouteType)(priceRoute);
274
+ const flags = this.buildFlags(priceRoute.bestRoute, _routes, exchangeParams, priceRoute.srcToken, priceRouteType, maybeWethCallData);
272
275
  let swapsCalldata = exchangeParams.reduce((acc, ep, index) => hexConcat([
273
276
  acc,
274
277
  this.buildSingleSwapCallData({
278
+ priceRouteType,
275
279
  routes: priceRoute.bestRoute,
276
280
  exchangeParams,
277
281
  index,
@@ -1 +1 @@
1
- {"version":3,"file":"Executor01BytecodeBuilder.js","sourceRoot":"","sources":["../../src/executor/Executor01BytecodeBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Executor01BytecodeBuilder.js","sourceRoot":"","sources":["../../src/executor/Executor01BytecodeBuilder.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { OptimalRoute, OptimalRate, OptimalSwap, OptimalSwapExchange } from '@pa
2
2
  import { DexExchangeBuildParam } from '../types';
3
3
  import { Executors, Flag, RouteBuildSwaps } from './types';
4
4
  import { DepositWithdrawReturn } from '../dex/weth/types';
5
- import { BuildSwapFlagsParams, DexCallDataParams, ExecutorBytecodeBuilder, SingleSwapCallDataParams } from './ExecutorBytecodeBuilder';
5
+ import { BuildSwapFlagsParams, DexCallDataParams, ExecutorBytecodeBuilder, PriceRouteType, SingleSwapCallDataParams } from './ExecutorBytecodeBuilder';
6
6
  export type Executor02SingleSwapCallDataParams = {
7
7
  routeIndex: number;
8
8
  swapIndex: number;
@@ -80,7 +80,7 @@ export declare class Executor02BytecodeBuilder extends ExecutorBytecodeBuilder<E
80
80
  private doesSwapNeedToBeAsVerticalBranch;
81
81
  private buildVerticalBranchingFlag;
82
82
  protected buildSingleSwapCallData(params: SingleSwapCallDataParams<Executor02SingleSwapCallDataParams>): string;
83
- protected buildSingleRouteCallData(routes: OptimalRoute[], exchangeParams: DexExchangeBuildParam[], route: OptimalRoute, routeIndex: number, flags: {
83
+ protected buildSingleRouteCallData(routes: OptimalRoute[], priceRouteType: PriceRouteType, exchangeParams: DexExchangeBuildParam[], route: OptimalRoute, routeIndex: number, flags: {
84
84
  approves: Flag[];
85
85
  dexes: Flag[];
86
86
  wrap: Flag;
@@ -6,6 +6,7 @@ const types_1 = require("./types");
6
6
  const utils_1 = require("../utils");
7
7
  const ExecutorBytecodeBuilder_1 = require("./ExecutorBytecodeBuilder");
8
8
  const constants_1 = require("./constants");
9
+ const utils_2 = require("./utils");
9
10
  const { utils: { hexlify, hexDataLength, hexConcat, hexZeroPad, solidityPack }, } = ethers_1.ethers;
10
11
  /**
11
12
  * Class to build bytecode for Executor02 - simpleSwap with N DEXs (VERTICAL_BRANCH), multiSwaps (VERTICAL_BRANCH_HORIZONTAL_SEQUENCE) and megaswaps (NESTED_VERTICAL_BRANCH_HORIZONTAL_SEQUENCE)
@@ -331,7 +332,7 @@ class Executor02BytecodeBuilder extends ExecutorBytecodeBuilder_1.ExecutorByteco
331
332
  const fromAmountPos = hexDataLength(data) - 64 - 28; // 64 (position), 28 (selector padding);
332
333
  return this.packVerticalBranchingCallData(data, fromAmountPos, destTokenPos < 0 ? 0 : destTokenPos, flag);
333
334
  }
334
- buildSingleSwapExchangeCallData(routes, routeIndex, swapIndex, swapExchangeIndex, exchangeParams, flags, addedWrapToSwapExchangeMap, allowToAddWrap = true, prevBranchWasWrapped = false, unwrapToSwapMap, srcToken, destToken, maybeWethCallData, hasMultipleSwapExchanges, isMultiOrMegaSwap) {
335
+ buildSingleSwapExchangeCallData(routes, priceRouteType, routeIndex, swapIndex, swapExchangeIndex, exchangeParams, flags, addedWrapToSwapExchangeMap, allowToAddWrap = true, prevBranchWasWrapped = false, unwrapToSwapMap, srcToken, destToken, maybeWethCallData, hasMultipleSwapExchanges, isMultiOrMegaSwap) {
335
336
  const isSimpleSwap = routes.length === 1 && routes[0].swaps.length === 1;
336
337
  let swapExchangeCallData = '';
337
338
  const swap = routes[routeIndex].swaps[swapIndex];
@@ -348,6 +349,7 @@ class Executor02BytecodeBuilder extends ExecutorBytecodeBuilder_1.ExecutorByteco
348
349
  }));
349
350
  const curExchangeParam = exchangeParams[exchangeParamIndex];
350
351
  const dexCallData = this.buildDexCallData({
352
+ priceRouteType,
351
353
  routes,
352
354
  routeIndex,
353
355
  swapIndex,
@@ -712,7 +714,7 @@ class Executor02BytecodeBuilder extends ExecutorBytecodeBuilder_1.ExecutorByteco
712
714
  return flag;
713
715
  }
714
716
  buildSingleSwapCallData(params) {
715
- const { routes, exchangeParams, routeIndex, swapIndex, flags, maybeWethCallData, wrapToSwapMap, unwrapToSwapMap, wrapToSwapExchangeMap, swap, srcToken, destToken, } = params;
717
+ const { routes, exchangeParams, routeIndex, swapIndex, flags, maybeWethCallData, wrapToSwapMap, unwrapToSwapMap, wrapToSwapExchangeMap, swap, srcToken, destToken, priceRouteType, } = params;
716
718
  const isLastSwap = swapIndex === routes[routeIndex].swaps.length - 1;
717
719
  const isMegaSwap = routes.length > 1;
718
720
  const isMultiSwap = !isMegaSwap && routes[routeIndex].swaps.length > 1;
@@ -726,7 +728,7 @@ class Executor02BytecodeBuilder extends ExecutorBytecodeBuilder_1.ExecutorByteco
726
728
  let swapCallData = swapExchanges.reduce((acc, _swapExchange, swapExchangeIndex) => {
727
729
  return hexConcat([
728
730
  acc,
729
- this.buildSingleSwapExchangeCallData(routes, routeIndex, swapIndex, swapExchangeIndex, exchangeParams, flags, wrapToSwapExchangeMap, !wrapToSwapMap[swapIndex - 1], wrapToSwapMap[swapIndex - 1], unwrapToSwapMap, srcToken, destToken, maybeWethCallData, swap.swapExchanges.length > 1, isMultiSwap || isMegaSwap),
731
+ this.buildSingleSwapExchangeCallData(routes, priceRouteType, routeIndex, swapIndex, swapExchangeIndex, exchangeParams, flags, wrapToSwapExchangeMap, !wrapToSwapMap[swapIndex - 1], wrapToSwapMap[swapIndex - 1], unwrapToSwapMap, srcToken, destToken, maybeWethCallData, swap.swapExchanges.length > 1, isMultiSwap || isMegaSwap),
730
732
  ]);
731
733
  }, '0x');
732
734
  if (needToAppendWrapCallData) {
@@ -747,7 +749,7 @@ class Executor02BytecodeBuilder extends ExecutorBytecodeBuilder_1.ExecutorByteco
747
749
  ? this.appendWrapEthCallData(swapCallData, maybeWethCallData)
748
750
  : swapCallData;
749
751
  }
750
- buildSingleRouteCallData(routes, exchangeParams, route, routeIndex, flags, sender, srcToken, destToken, maybeWethCallData) {
752
+ buildSingleRouteCallData(routes, priceRouteType, exchangeParams, route, routeIndex, flags, sender, srcToken, destToken, maybeWethCallData) {
751
753
  const isMegaSwap = routes.length > 1;
752
754
  const { swaps } = route;
753
755
  const appendedWrapToSwapExchangeMap = {};
@@ -756,6 +758,7 @@ class Executor02BytecodeBuilder extends ExecutorBytecodeBuilder_1.ExecutorByteco
756
758
  const callData = swaps.reduce((swapAcc, swap, swapIndex) => hexConcat([
757
759
  swapAcc,
758
760
  this.buildSingleSwapCallData({
761
+ priceRouteType,
759
762
  routes,
760
763
  exchangeParams,
761
764
  routeIndex,
@@ -812,10 +815,11 @@ class Executor02BytecodeBuilder extends ExecutorBytecodeBuilder_1.ExecutorByteco
812
815
  const needSendNativeEth = (0, utils_1.isETHAddress)(priceRoute.destToken);
813
816
  const routeNeedsRootWrapEth = this.doesRouteNeedsRootWrapEth(priceRoute.bestRoute, exchangeParams, priceRoute.srcToken);
814
817
  const routeNeedsRootUnwrapEth = this.doesRouteNeedsRootUnwrapEth(priceRoute.bestRoute, exchangeParams, priceRoute.destToken);
815
- const flags = this.buildFlags(priceRoute.bestRoute, _routes, exchangeParams, priceRoute.srcToken, maybeWethCallData);
818
+ const priceRouteType = (0, utils_2.getPriceRouteType)(priceRoute);
819
+ const flags = this.buildFlags(priceRoute.bestRoute, _routes, exchangeParams, priceRoute.srcToken, priceRouteType, maybeWethCallData);
816
820
  let swapsCalldata = priceRoute.bestRoute.reduce((routeAcc, route, routeIndex) => hexConcat([
817
821
  routeAcc,
818
- this.buildSingleRouteCallData(priceRoute.bestRoute, exchangeParams, route, routeIndex, flags, sender, priceRoute.srcToken, priceRoute.destToken, maybeWethCallData),
822
+ this.buildSingleRouteCallData(priceRoute.bestRoute, priceRouteType, exchangeParams, route, routeIndex, flags, sender, priceRoute.srcToken, priceRoute.destToken, maybeWethCallData),
819
823
  ]), '0x');
820
824
  // hack to do wrap/unwrap before the priceRoute execution
821
825
  // first make wrap/unwrap, then execute mega swap as vertical branch
@@ -1 +1 @@
1
- {"version":3,"file":"Executor02BytecodeBuilder.js","sourceRoot":"","sources":["../../src/executor/Executor02BytecodeBuilder.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAWhC,mCAAuE;AACvE,oCAAwC;AAExC,uEAKmC;AACnC,2CASqB;AAErB,MAAM,EACJ,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,GACvE,GAAG,eAAM,CAAC;AAkBX;;GAEG;AACH,MAAa,yBAA0B,SAAQ,iDAG9C;IACC,IAAI,GAAG,iBAAS,CAAC,GAAG,CAAC;IACrB;;;;;;;;;;;;OAYG;IACO,oBAAoB,CAAC,MAA4B;QAIzD,MAAM,EACJ,MAAM,EACN,cAAc,EACd,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,iBAAiB,GAClB,GAAG,MAAM,CAAC;QACX,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,SAAS,CAAC,CAAC;QAE1C,MAAM,aAAa,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;QACzD,MAAM,EACJ,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,kCAAkC,EAClC,qCAAqC,EACrC,qBAAqB,EACrB,kCAAkC,GACnC,GAAG,aAAa,CAAC;QAElB,MAAM,QAAQ,GAAG,cAAc,IAAI,QAAQ,IAAI,iBAAiB,EAAE,OAAO,CAAC;QAC1E,MAAM,UAAU,GACd,cAAc,IAAI,SAAS,IAAI,iBAAiB,EAAE,QAAQ,CAAC;QAC7D,MAAM,YAAY,GAChB,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,kBAAU,CAAC,OAAO,CAAC;QAExE,MAAM,4BAA4B,GAChC,qCAAqC;YACrC,CAAC,YAAY,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAExD,IAAI,OAAO,GAAG,4BAA4B;YACxC,CAAC,CAAC,YAAI,CAAC,qDAAqD;YAC5D,CAAC,CAAC,YAAI,CAAC,gDAAgD,CAAC,CAAC,SAAS;QACpE,IAAI,WAAW,GACb,YAAI,CAAC,qDAAqD,CAAC,CAAC,IAAI;QAElE,IAAI,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,OAAO,GAAG,mBAAmB;gBAC3B,CAAC,CAAC,CAAC,kCAAkC;oBACnC,CAAC,CAAC,YAAI,CAAC,2DAA2D,CAAC,IAAI;oBACvE,CAAC,CAAC,YAAI,CAAC,mFAAmF,CAAC,KAAK;gBAClG,CAAC,CAAC,CAAC,kCAAkC;oBACrC,CAAC,CAAC,YAAI,CAAC,gEAAgE,CAAC,IAAI;oBAC5E,CAAC,CAAC,YAAI,CAAC,mFAAmF,CAAC,CAAC,KAAK;QACrG,CAAC;aAAM,IAAI,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,OAAO,GAAG,4BAA4B;gBACpC,CAAC,CAAC,YAAI,CAAC,oDAAoD;gBAC3D,CAAC,CAAC,YAAI,CAAC,+CAA+C,CAAC,CAAC,SAAS;QACrE,CAAC;aAAM,IAAI,CAAC,mBAAmB,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,EAAE,CAAC;YAC7D,OAAO,GAAG,4BAA4B;gBACpC,CAAC,CAAC,YAAI,CAAC,0DAA0D;gBACjE,CAAC,CAAC,YAAI,CAAC,qDAAqD,CAAC,CAAC,UAAU;QAC5E,CAAC;QAED,iEAAiE;QACjE,0EAA0E;QAC1E,IAAI,qBAAqB,EAAE,CAAC;YAC1B,OAAO;gBACL,YAAI,CAAC,gEAAgE,CAAC;QAC1E,CAAC;QAED,OAAO;YACL,OAAO;YACP,WAAW;SACZ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACO,uBAAuB,CAAC,MAA4B;QAI5D,MAAM,EACJ,MAAM,EACN,cAAc,EACd,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,iBAAiB,GAClB,GAAG,MAAM,CAAC;QACX,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEpC,MAAM,aAAa,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAEzD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QACrC,MAAM,sBAAsB,GAAG,IAAI,CAAC,gCAAgC,CAClE,MAAM,EACN,UAAU,EACV,IAAI,CACL,CAAC;QAEF,MAAM,oBAAoB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,uDAAuD;QAC5G,MAAM,WAAW,GAAG,SAAS,KAAK,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,CAAC,WAAW,IAAI,SAAS,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAExE,MAAM,EACJ,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,kCAAkC,EAClC,qCAAqC,EACrC,WAAW,EACX,kCAAkC,EAClC,qBAAqB,GACtB,GAAG,aAAa,CAAC;QAElB,MAAM,QAAQ,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,UAAU,GACd,CAAC,WAAW,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC;YACtE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE1C,MAAM,YAAY,GAChB,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,kBAAU,CAAC,OAAO,CAAC;QAExE,MAAM,4BAA4B,GAChC,qCAAqC;YACrC,CAAC,YAAY,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAExD,MAAM,mBAAmB,GACvB,CAAC,YAAY;YACX,oBAAoB;YACpB,CAAC,sBAAsB;YACvB,CAAC,UAAU,CAAC;YACd,CAAC,mBAAmB,CAAC;QAEvB,MAAM,UAAU,GACd,cAAc,IAAI,SAAS,IAAI,iBAAiB,EAAE,QAAQ,CAAC;QAE7D,MAAM,WAAW,GAAG,QAAQ,IAAI,CAAC,cAAc,CAAC;QAChD,MAAM,mBAAmB,GAAG,SAAS,IAAI,CAAC,cAAc,CAAC;QAEzD,MAAM,gCAAgC,GACpC,IAAI,CAAC,gCAAgC,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAEtE,4DAA4D;QAC5D,MAAM,gCAAgC,GACpC,IAAI,CAAC,gCAAgC,CACnC,MAAM,EACN,IAAI,EACJ,cAAc,EACd,kBAAkB,CACnB,CAAC;QAEJ,uHAAuH;QACvH,MAAM,0BAA0B,GAC9B,CAAC,UAAU;YACT,CAAC,CAAC,sBAAsB;gBACtB,CAAC,sBAAsB,IAAI,gCAAgC,CAAC,CAAC;YAC/D,CAAC,gCAAgC,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;YAClE,CAAC,oBAAoB,IAAI,CAAC,sBAAsB,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnE,IAAI,OAAa,CAAC;QAClB,IAAI,WAAW,GACb,YAAI,CAAC,qDAAqD,CAAC,CAAC,IAAI;QAElE,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,uBAAuB,GAC3B,4BAA4B,IAAI,CAAC,kCAAkC,CAAC;YACtE,OAAO;gBACL,0BAA0B,IAAI,mBAAmB;oBAC/C,CAAC,CAAC,uBAAuB;wBACvB,CAAC,CAAC,YAAI,CAAC,gEAAgE,CAAC,IAAI;wBAC5E,CAAC,CAAC,YAAI,CAAC,wFAAwF,CAAC,KAAK;oBACvG,CAAC,CAAC,mBAAmB;wBACrB,CAAC,CAAC,uBAAuB;4BACvB,CAAC,CAAC,YAAI,CAAC,2DAA2D,CAAC,IAAI;4BACvE,CAAC,CAAC,YAAI,CAAC,mFAAmF,CAAC,KAAK;wBAClG,CAAC,CAAC,uBAAuB;4BACzB,CAAC,CAAC,YAAI,CAAC,gEAAgE,CAAC,IAAI;4BAC5E,CAAC,CAAC,YAAI,CAAC,mFAAmF,CAAC,CAAC,KAAK;QACvG,CAAC;aAAM,IAAI,mBAAmB,EAAE,CAAC;YAC/B,OAAO;gBACL,0BAA0B,IAAI,mBAAmB;oBAC/C,CAAC,CAAC,4BAA4B,IAAI,mBAAmB;wBACnD,CAAC,CAAC,YAAI,CAAC,oDAAoD,CAAC,IAAI;wBAChE,CAAC,CAAC,YAAI,CAAC,+CAA+C,CAAC,IAAI;oBAC7D,CAAC,CAAC,4BAA4B,IAAI,mBAAmB;wBACrD,CAAC,CAAC,YAAI,CAAC,qDAAqD,CAAC,IAAI;wBACjE,CAAC,CAAC,YAAI,CAAC,gDAAgD,CAAC,CAAC,IAAI;QACnE,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,0BAA0B,IAAI,mBAAmB;oBAC/C,CAAC,CAAC,4BAA4B;wBAC5B,CAAC,CAAC,YAAI,CAAC,0DAA0D,CAAC,IAAI;wBACtE,CAAC,CAAC,YAAI,CAAC,qDAAqD,CAAC,KAAK;oBACpE,CAAC,CAAC,4BAA4B;wBAC9B,CAAC,CAAC,YAAI,CAAC,qDAAqD,CAAC,IAAI;wBACjE,CAAC,CAAC,YAAI,CAAC,gDAAgD,CAAC,CAAC,IAAI;QACnE,CAAC;QAED,iEAAiE;QACjE,0EAA0E;QAC1E,IAAI,qBAAqB,EAAE,CAAC;YAC1B,OAAO;gBACL,YAAI,CAAC,gEAAgE,CAAC;QAC1E,CAAC;QAED,OAAO;YACL,OAAO;YACP,WAAW;SACZ,CAAC;IACJ,CAAC;IAES,gBAAgB,CACxB,MAAsD;QAEtD,MAAM,EACJ,MAAM,EACN,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,SAAS,EACT,IAAI,EACJ,SAAS,GACV,GAAG,MAAM,CAAC;QAEX,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,aAAa,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;QACzD,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,GAClE,aAAa,CAAC;QAEhB,MAAM,uBAAuB,GAAG,IAAI,CAAC,2BAA2B,CAC9D,MAAM,EACN,cAAc,EACd,SAAS,CACV,CAAC;QAEF,MAAM,UAAU;QACd,4DAA4D;QAC5D,IAAI,CAAC,gCAAgC,CACnC,MAAM,EACN,IAAI,EACJ,cAAc,EACd,kBAAkB,CACnB,IAAI,aAAa,CAAC,WAAW,CAAC;QAEjC,MAAM,8BAA8B,GAClC,UAAU;YACV,IAAA,oBAAY,EAAC,IAAI,CAAC,SAAS,CAAC;YAC5B,IAAI,CAAC,gCAAgC,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAEtE,MAAM,eAAe,GACnB,aAAa,CAAC,eAAe,KAAK,SAAS;YAC3C,CAAC,uBAAuB;YACxB,CAAC,8BAA8B,CAAC,qEAAqE;YACnG,CAAC,CAAC,aAAa,CAAC,eAAe;YAC/B,CAAC,CAAC,qCAAyB,CAAC;QAEhC,MAAM,sBAAsB,GAAG,IAAI,CAAC,gCAAgC,CAClE,MAAM,EACN,UAAU,EACV,IAAI,CACL,CAAC;QACF,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,8BAA8B,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAE1D,MAAM,eAAe,GACnB,IAAA,oBAAY,EAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,cAAc;YAC3C,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;YACpC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAElC,MAAM,gBAAgB,GACpB,IAAA,oBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,cAAc;YAC5C,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;YACpC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAEnC,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAC3C,YAAY,EACZ,eAAe,CAChB,CAAC;QAEF,IACE,sBAAsB;YACtB,CAAC,8BAA8B,IAAI,CAAC,yBAAyB,CAAC,EAC9D,CAAC;YACD,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAC3C,YAAY,EACZ,gBAAgB,CACjB,CAAC;QACJ,CAAC;QAED,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,8BAA8B,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjE,MAAM,kBAAkB,GAAG,YAAY;iBACpC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;iBACjB,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/C,YAAY,GAAG,CAAC,kBAAkB,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,aAAa,CAAC,mBAAmB,EAAE,CAAC;gBACtC,aAAa,GAAG,aAAa,CAAC,mBAAmB,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,GAAG,eAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CACpD,CAAC,SAAS,CAAC,EACX,CAAC,YAAY,CAAC,SAAS,CAAC,CACzB,CAAC;gBACF,MAAM,eAAe,GAAG,YAAY;qBACjC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;qBACjB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;gBAEzC,aAAa;oBACX,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CACvB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,IAAI,kBAAU,CAAC,OAAO,EACpC,IAAI,EACJ,SAAS,EACT,eAAe,CAChB,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAC1B,MAAsB,EACtB,cAAuC,EACvC,QAAgB,EAChB,UAAkB,EAClB,IAAiB,EACjB,kBAA0B,EAC1B,0BAAmC,EACnC,qCAAqC,GAAG,KAAK;QAE7C,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC;QAEpC,IAAI,+BAAwC,CAAC;QAC7C,IAAI,kBAAkB,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5B,+BAA+B;gBAC7B,IAAA,oBAAY,EAAC,eAAe,CAAC;oBAC7B,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,cAAc;wBAChD,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,cAAc;4BACjD,qCAAqC,CAAC,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,+BAA+B;gBAC7B,IAAA,oBAAY,EAAC,eAAe,CAAC;oBAC7B,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACnE,CAAC;QAED,IACE,+BAA+B;YAC/B,IAAA,oBAAY,EAAC,eAAe,CAAC;YAC7B,CAAC,0BAA0B,EAC3B,CAAC;YACD,eAAe;gBACb,kBAAkB,GAAG,CAAC,CAAC;oBACrB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;oBACzD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC;QAC7D,CAAC;QAED,IAAI,sBAAsB,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;QAC3D,IAAI,WAAmB,CAAC;QAExB,IAAI,UAAU,KAAK,wCAA4B,EAAE,CAAC;YAChD,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,IAAA,oBAAY,EAAC,sBAAsB,CAAC,EAAE,CAAC;YAChD,WAAW,GAAG,oDAAwC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,MAAM,iBAAiB,GAAG,QAAQ;iBAC/B,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;iBACjB,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAErD,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,YAAY,CACjB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EACxC;YACE,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,gBAAgB;YAClE,WAAW,EAAE,cAAc;YAC3B,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa;YACnE,QAAQ,EAAE,gBAAgB;SAC3B,CACF,CAAC;IACJ,CAAC;IAEO,yBAAyB,CAAC,YAAoB;QACpD,OAAO,YAAY,CACjB,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EACpD;YACE,0BAAc,EAAE,gBAAgB;YAChC,yBAAa,EAAE,oBAAoB;YACnC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,kBAAkB;YAC/C,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,kBAAkB;YACxE,YAAY,EAAE,WAAW;SAC1B,CACF,CAAC;IACJ,CAAC;IAEO,6BAA6B,CACnC,qBAA6B,EAC7B,aAAqB,EACrB,YAAoB,EACpB,IAAU;QAEV,OAAO,YAAY,CACjB;YACE,SAAS;YACT,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,OAAO;SACR,EACD;YACE,0BAAc,EAAE,0DAA0D;YAC1E,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,sBAAsB;YACpF,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB;YACvD,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe;YACrD,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB;YAC7C,UAAU,CAAC,OAAO,CAAC,kBAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU;YACzE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO;YACrC,qBAAqB,EAAE,iBAAiB;SACzC,CACF,CAAC;IACJ,CAAC;IAEO,8BAA8B,CACpC,MAAsB,EACtB,UAAkB,EAClB,cAAuC,EACvC,IAAiB,EACjB,YAAoB,EACpB,IAAU,EACV,MAAM,GAAG,KAAK;QAEd,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,oBAAoB,CAAC,CAAC;QAErD,IAAI,2BAA2B,GAAG,KAAK,CAAC;QACxC,IAAI,gCAAgC,GAAG,KAAK,CAAC;QAC7C,IAAI,YAAoB,CAAC;QAEzB,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,CAC5D,MAAM,EACN,IAAI,EACJ,cAAc,CACf,CAAC;gBACF,gCAAgC;oBAC9B,IAAI,CAAC,gCAAgC,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACN,2BAA2B,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAChD,IAAI,CAAC,2BAA2B,CAC9B,MAAM,EACN,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EACnC,cAAc,CACf,CACF,CAAC;gBACF,gCAAgC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACrD,IAAI,CAAC,gCAAgC,CACnC,MAAM,EACN,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EACnC,cAAc,CACf,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QAE1D,IACE,SAAS;YACT,gCAAgC;YAChC,CAAC,2BAA2B,EAC5B,CAAC;YACD,YAAY,GAAG,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,MAAM,kBAAkB,GAAG,IAAI;iBAC5B,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;iBACjB,OAAO,CACN,CAAC,SAAS;gBACR,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE;gBACpE,CAAC,CAAC,oBAAoB,CAAC,WAAW,EAAE,CACrC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CACpB,CAAC;YAEJ,YAAY,GAAG,kBAAkB,GAAG,CAAC,GAAG,EAAE,CAAC;QAC7C,CAAC;QAED,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,wCAAwC;QAE7F,OAAO,IAAI,CAAC,6BAA6B,CACvC,IAAI,EACJ,aAAa,EACb,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,EACnC,IAAI,CACL,CAAC;IACJ,CAAC;IAEO,+BAA+B,CACrC,MAAsB,EACtB,UAAkB,EAClB,SAAiB,EACjB,iBAAyB,EACzB,cAAuC,EACvC,KAAsD,EACtD,0BAAsD,EACtD,cAAc,GAAG,IAAI,EACrB,oBAAoB,GAAG,KAAK,EAC5B,eAA2C,EAC3C,QAAgB,EAChB,SAAiB,EACjB,iBAAyC,EACzC,wBAAkC,EAClC,iBAA2B;QAE3B,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;QACzE,IAAI,oBAAoB,GAAG,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAE3D,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAC3B,IAAI,sBAAsB,GAAG,CAAC,CAAC;QAE/B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CACjB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACxB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;gBACnC,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC;oBAChC,kBAAkB,GAAG,sBAAsB,CAAC;gBAC9C,CAAC;gBACD,sBAAsB,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,gBAAgB,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAE5D,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACxC,MAAM;YACN,UAAU;YACV,SAAS;YACT,iBAAiB;YACjB,cAAc;YACd,kBAAkB;YAClB,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC;YACrC,YAAY;YACZ,SAAS;SACV,CAAC,CAAC;QAEH,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;YAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAClD,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EACrC,gBAAgB,CAAC,qBAAqB,CACvC,CAAC;YACF,oBAAoB,GAAG,SAAS,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,oBAAoB,GAAG,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,UAAU,GAAG,SAAS,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,kBAAkB,KAAK,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAEhE,IAAI,gBAAgB,CAAC,0BAA0B,EAAE,CAAC;YAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CACjD,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,UAAU,EAAE;gBACjD,gBAAgB,CAAC,0BAA0B;gBAC3C,YAAY,CAAC,SAAS;aACvB,CAAC,EACF,IAAA,oBAAY,EAAC,IAAI,CAAC,QAAQ,CAAC;gBACzB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;gBACvC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAChC,CAAC;YAEF,oBAAoB,GAAG,SAAS,CAAC;gBAC/B,gBAAgB;gBAChB,oBAAoB;aACrB,CAAC,CAAC;QACL,CAAC;QAED,IACE,CAAC,IAAA,oBAAY,EAAC,IAAI,CAAC,QAAQ,CAAC;YAC5B,CAAC,gBAAgB,CAAC,0BAA0B;YAC5C,CAAC,gBAAgB,CAAC,YAAY;YAC9B,gBAAgB,CAAC,WAAW,EAC5B,CAAC;YACD,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAC/C,gBAAgB,CAAC,WAAW,CAAC,MAAM,EACnC,gBAAgB,CAAC,WAAW,CAAC,KAAK,EAClC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAClC,gBAAgB,CAAC,eAAe,CACjC,CAAC;YAEF,oBAAoB,GAAG,SAAS,CAAC,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,gBAAgB,CAAC,cAAc,EAAE,CAAC;YACpC,IAAI,IAAA,oBAAY,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,IAAI,mBAAmB,GAAG,IAAI,CAAC;gBAC/B,IACE,gBAAgB,CAAC,WAAW;oBAC5B,CAAC,gBAAgB,CAAC,0BAA0B;oBAC5C,CAAC,gBAAgB,CAAC,YAAY,EAC9B,CAAC;oBACD,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAC7C,gBAAgB,CAAC,WAAW,CAAC,MAAM,EACnC,gBAAgB,CAAC,WAAW,CAAC,KAAK,EAClC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAClC,gBAAgB,CAAC,eAAe,CACjC,CAAC;gBACJ,CAAC;gBAED,MAAM,cAAc,GAAG,SAAS,KAAK,CAAC,CAAC;gBACvC,IAAI,QAAQ,GAAG,KAAK,CAAC;gBACrB,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;oBACzD,MAAM,gCAAgC,GACpC,IAAI,CAAC,gCAAgC,CACnC,MAAM,EACN,QAAQ,EACR,cAAc,CACf,CAAC;oBACJ,QAAQ,GAAG,CAAC,gCAAgC,CAAC;gBAC/C,CAAC;gBAED,IAAI,eAAe,GAAG,IAAI,CAAC;gBAC3B,IACE,iBAAiB;oBACjB,iBAAiB,CAAC,OAAO;oBACzB,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC;oBACjE,cAAc;oBACd,CAAC,0BAA0B,CACzB,GAAG,UAAU,IAAI,SAAS,IAAI,iBAAiB,EAAE,CAClD;oBACD,CAAC,QAAQ,EACT,CAAC;oBACD,eAAe,GAAG,IAAI,CAAC,oBAAoB,CACzC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EACrC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAClC,YAAI,CAAC,2DAA2D,CACjE,CAAC;oBACF,0BAA0B,CACxB,GAAG,UAAU,IAAI,SAAS,IAAI,iBAAiB,EAAE,CAClD,GAAG,IAAI,CAAC;gBACX,CAAC;gBAED,oBAAoB,GAAG,SAAS,CAAC;oBAC/B,mBAAmB;oBACnB,eAAe;oBACf,oBAAoB;iBACrB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,UAAU,GAAG,iBAAiB,IAAI,wBAAwB,CAAC;YACjE,yBAAyB;YACzB,IACE,iBAAiB;gBACjB,iBAAiB,CAAC,QAAQ;gBAC1B,CAAC,CAAC,CAAC,UAAU,IAAI,IAAA,oBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC5C,CAAC,UAAU;wBACT,IAAA,oBAAY,EAAC,IAAI,CAAC,SAAS,CAAC;wBAC5B,IAAI,CAAC,gCAAgC,CACnC,MAAM,EACN,IAAI,EACJ,cAAc,CACf,CAAC,CAAC,EACP,CAAC;gBACD,IAAI,gBAAgB,GAAG,IAAI,CAAC;gBAE5B,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,WAAW,CAAC;gBAEvD,MAAM,aAAa,GACjB,YAAY;oBACZ,CAAC,UAAU;wBACT,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAC/B,MAAM,EACN,cAAc,EACd,SAAS,CACV;wBACH,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAC/B,MAAM,EACN,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,EACvC,cAAc,CACf;4BACD,IAAI,CAAC,kCAAkC,CACrC,MAAM,EACN,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,EACvC,cAAc,CACf,CAAC,CAAC;gBAET,4DAA4D;gBAC5D,MAAM,UAAU,GACd,aAAa;oBACb,IAAI,CAAC,gCAAgC,CACnC,MAAM,EACN,IAAI,EACJ,cAAc,EACd,kBAAkB,CACnB,CAAC;gBAEJ,IAAI,iBAAiB,IAAI,UAAU,EAAE,CAAC;oBACpC,eAAe,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;oBAClC,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAC5C,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EACrC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CACpC,CAAC;gBACJ,CAAC;gBAED,oBAAoB,GAAG,SAAS,CAAC;oBAC/B,oBAAoB;oBACpB,gBAAgB;iBACjB,CAAC,CAAC;gBAEH,IAAI,YAAY,IAAI,CAAC,UAAU,IAAI,iBAAiB,CAAC,EAAE,CAAC;oBACtD,MAAM,wBAAwB,GAAG,IAAI,CAAC,6BAA6B,EAAE,CAAC;oBACtE,oBAAoB,GAAG,SAAS,CAAC;wBAC/B,oBAAoB;wBACpB,wBAAwB;qBACzB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,qCAAqC,GAAG,KAAK,CAAC;QAClD,IACE,IAAA,oBAAY,EAAC,IAAI,CAAC,QAAQ,CAAC;YAC3B,iBAAiB;YACjB,iBAAiB,CAAC,QAAQ;YAC1B,CAAC,gBAAgB,CAAC,cAAc;YAChC,CAAC,eAAe,CAAC,SAAS,GAAG,CAAC,CAAC,EAC/B,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACzD,IAAI,4BAA4B,GAAY,KAAK,CAAC;YAElD,IAAI,QAAQ,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACtC,4BAA4B,GAAG,IAAI,CAAC,4BAA4B,CAC9D,MAAM,EACN,QAAQ,EACR,cAAc,CACf,CAAC;YACJ,CAAC;YAED,IAAI,oBAAoB,IAAI,4BAA4B,EAAE,CAAC;gBACzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAClD,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EACrC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CACpC,CAAC;gBAEF,oBAAoB,GAAG,SAAS,CAAC;oBAC/B,gBAAgB;oBAChB,oBAAoB;iBACrB,CAAC,CAAC;gBACH,qCAAqC,GAAG,IAAI,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,IACE,UAAU;YACV,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,mBAAmB;YACvD,CAAC,IAAA,oBAAY,EAAC,IAAI,CAAC,SAAS,CAAC;YAC7B,SAAS,KAAK,IAAI,CAAC,SAAS,EAC5B,CAAC;YACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CACjD,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,UAAU,EAAE;gBACjD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB;gBAC5C,YAAY,CAAC,UAAU;aACxB,CAAC,EACF,IAAI,CAAC,SAAS,CACf,CAAC;YAEF,oBAAoB,GAAG,SAAS,CAAC;gBAC/B,oBAAoB;gBACpB,gBAAgB;aACjB,CAAC,CAAC;QACL,CAAC;QAED,IACE,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,mBAAmB;YACvD,IAAA,oBAAY,EAAC,IAAI,CAAC,SAAS,CAAC;YAC5B,UAAU;YACV,mGAAmG;YACnG,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,EACpE,CAAC;YACD,MAAM,wBAAwB,GAAG,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACtE,oBAAoB,GAAG,SAAS,CAAC;gBAC/B,oBAAoB;gBACpB,wBAAwB;aACzB,CAAC,CAAC;QACL,CAAC;QAED,+FAA+F;QAC/F,IAAI,wBAAwB,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,oBAAoB,CAC9B,MAAM,EACN,cAAc,EACd,oBAAoB,EACpB,YAAY,CAAC,OAAO,EACpB,IAAI,EACJ,kBAAkB,EAClB,0BAA0B,CACxB,GAAG,UAAU,IAAI,SAAS,IAAI,iBAAiB,EAAE,CAClD,EACD,qCAAqC,CACtC,CAAC;QACJ,CAAC;QAED,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAEO,qBAAqB,CAC3B,QAAgB,EAChB,iBAAyC,EACzC,qBAAqB,GAAG,KAAK;QAE7B,IAAI,iBAAiB,EAAE,OAAO,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,qBAAqB;gBACpC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAC5B,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAClC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,CACnE;gBACH,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;YAEvC,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAC/C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,EAClE,QAAQ,EACR,qBAAqB;gBACnB,CAAC,CAAC,YAAI,CAAC,gEAAgE,CAAC,IAAI;gBAC5E,CAAC,CAAC,YAAI,CAAC,2DAA2D,EAAE,IAAI;YAC1E,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC9B,CAAC;YAEF,OAAO,SAAS,CAAC,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,4BAA4B,CAClC,MAAsB,EACtB,IAAiB,EACjB,cAAuC;QAEvC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACtC,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CACxB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;oBACnC,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;wBACzB,KAAK,GAAG,iBAAiB,CAAC;oBAC5B,CAAC;oBACD,iBAAiB,EAAE,CAAC;gBACtB,CAAC,CAAC,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YAE/C,OAAO,gBAAgB,CAAC,cAAc,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,2BAA2B,CACjC,MAAsB,EACtB,IAAiB,EACjB,cAAuC;QAEvC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACzC,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBACxB,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;wBAC1C,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;4BACzB,KAAK,GAAG,iBAAiB,CAAC;wBAC5B,CAAC;wBACD,iBAAiB,EAAE,CAAC;oBACtB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YAE/C,OAAO,gBAAgB,CAAC,cAAc,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAEO,gCAAgC,CACtC,MAAsB,EACtB,IAAiB,EACjB,cAAuC,EACvC,kBAA0B;QAE1B,MAAM,gCAAgC,GAAa,EAAE,CAAC;QAEtD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACjC,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBAC5B,OAAO,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;wBAC9C,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;4BACzB,KAAK,GAAG,iBAAiB,CAAC;wBAC5B,CAAC;wBACD,iBAAiB,EAAE,CAAC;oBACtB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,gCAAgC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,OAAO,CACL,cAAc,CAAC,WAAW,CACxB,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,CAC5B,aAAa,CAAC,cAAc,KAAK,IAAI;YACrC,gCAAgC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChD,GAAG,KAAK,CAAC,CAAC;YACR,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,GAAG,EACT,CAAC,CAAC,CACH,KAAK,kBAAkB,CACzB,CAAC;IACJ,CAAC;IAEO,mCAAmC,CACzC,MAAsB,EACtB,IAAiB,EACjB,cAAuC;QAEvC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACvC,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBACxB,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;wBAC1C,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;4BACzB,KAAK,GAAG,iBAAiB,CAAC;wBAC5B,CAAC;wBACD,iBAAiB,EAAE,CAAC;oBACtB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YAE/C,OAAO,gBAAgB,CAAC,cAAc,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,uCAAuC,CAC7C,MAAsB,EACtB,IAAiB,EACjB,cAAuC;QAEvC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACvC,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBACxB,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;wBAC1C,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;4BACzB,KAAK,GAAG,iBAAiB,CAAC;wBAC5B,CAAC;wBACD,iBAAiB,EAAE,CAAC;oBACtB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YAE/C,OAAO,CAAC,gBAAgB,CAAC,cAAc,IAAI,gBAAgB,CAAC,WAAW,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,gCAAgC,CACtC,MAAsB,EACtB,IAAiB,EACjB,cAAuC;QAEvC,OAAO,IAAI,CAAC,aAAa;aACtB,GAAG,CAAC,KAAK,CAAC,EAAE;YACX,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CACxB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;oBACnC,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;wBACzB,KAAK,GAAG,iBAAiB,CAAC;oBAC5B,CAAC;oBACD,iBAAiB,EAAE,CAAC;gBACtB,CAAC,CAAC,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YAE/C,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC;QAC1C,CAAC,CAAC;aACD,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAEO,4BAA4B,CAClC,MAAsB,EACtB,IAAiB,EACjB,cAAuC;QAEvC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,aAAa;aACtB,GAAG,CAAC,KAAK,CAAC,EAAE;YACX,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CACxB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;oBACnC,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;wBACzB,KAAK,GAAG,iBAAiB,CAAC;oBAC5B,CAAC;oBACD,iBAAiB,EAAE,CAAC;gBACtB,CAAC,CAAC,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YAE/C,OAAO,gBAAgB,CAAC,cAAc,CAAC;QACzC,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAC5B,CAAC;IAEO,kCAAkC,CACxC,MAAsB,EACtB,IAAiB,EACjB,cAAuC;QAEvC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,aAAa;aACtB,GAAG,CAAC,KAAK,CAAC,EAAE;YACX,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CACxB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;oBACnC,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;wBACzB,KAAK,GAAG,iBAAiB,CAAC;oBAC5B,CAAC;oBACD,iBAAiB,EAAE,CAAC;gBACtB,CAAC,CAAC,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YAE/C,OAAO,gBAAgB,CAAC,cAAc,CAAC;QACzC,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEO,gCAAgC,CACtC,MAAsB,EACtB,UAAkB,EAClB,IAAiB;QAEjB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAEvE,OAAO,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACtE,CAAC;IAEO,0BAA0B,CAChC,MAAsB,EACtB,IAAiB,EACjB,cAAuC,EACvC,UAAkB,EAClB,SAAiB,EACjB,SAAiB;QAEjB,IAAI,IAAI,GAAG,YAAI,CAAC,qDAAqD,CAAC,CAAC,KAAK;QAE5E,MAAM,UAAU,GAAG,SAAS,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAErE,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,QAAQ,GACZ,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAChE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC;YACjD,MAAM,wBAAwB,GAAG,iBAAiB;iBAC/C,GAAG,CAAC,KAAK,CAAC,EAAE;gBACX,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,IAAI,iBAAiB,GAAG,CAAC,CAAC;gBAC1B,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CACrC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;oBACnC,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;wBACzB,KAAK,GAAG,iBAAiB,CAAC;oBAC5B,CAAC;oBACD,iBAAiB,EAAE,CAAC;gBACtB,CAAC,CAAC,CACH,CAAC;gBAEF,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;gBAE/C,OAAO,CACL,gBAAgB,CAAC,cAAc,IAAI,CAAC,gBAAgB,CAAC,WAAW,CACjE,CAAC;YACJ,CAAC,CAAC;iBACD,QAAQ,CAAC,IAAI,CAAC,CAAC;YAElB,MAAM,YAAY,GAAG,SAAS,IAAI,CAAC,wBAAwB,CAAC;YAE5D,IAAI,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC/B,IAAI,GAAG,YAAI,CAAC,gDAAgD,CAAC,CAAC,IAAI;YACpE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE/C,IAAI,SAAS,EAAE,CAAC;gBACd,IACE,IAAI,CAAC,gCAAgC,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,EACnE,CAAC;oBACD,IAAI,GAAG,YAAI,CAAC,+CAA+C,CAAC,CAAC,IAAI;gBACnE,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAES,uBAAuB,CAC/B,MAAoE;QAEpE,MAAM,EACJ,MAAM,EACN,cAAc,EACd,UAAU,EACV,SAAS,EACT,KAAK,EACL,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,IAAI,EACJ,QAAQ,EACR,SAAS,GACV,GAAG,MAAM,CAAC;QACX,MAAM,UAAU,GAAG,SAAS,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAEvE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QAE/B,MAAM,sBAAsB,GAAG,IAAI,CAAC,gCAAgC,CAClE,MAAM,EACN,UAAU,EACV,IAAI,CACL,CAAC;QAEF,MAAM,gCAAgC,GACpC,IAAI,CAAC,gCAAgC,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAEtE,MAAM,wBAAwB,GAC5B,IAAA,oBAAY,EAAC,IAAI,CAAC,SAAS,CAAC;YAC5B,gCAAgC;YAChC,CAAC,UAAU;YACX,iBAAiB,EAAE,OAAO,CAAC;QAE7B,IAAI,YAAY,GAAG,aAAa,CAAC,MAAM,CACrC,CAAC,GAAG,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE;YACxC,OAAO,SAAS,CAAC;gBACf,GAAG;gBACH,IAAI,CAAC,+BAA+B,CAClC,MAAM,EACN,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,qBAAqB,EACrB,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC,EAC7B,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC,EAC5B,eAAe,EACf,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAC7B,WAAW,IAAI,UAAU,CAC1B;aACF,CAAC,CAAC;QACL,CAAC,EACD,IAAI,CACL,CAAC;QAEF,IAAI,wBAAwB,EAAE,CAAC;YAC7B,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,OAAO,wBAAwB;gBAC7B,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,iBAAiB,CAAC;gBAC7D,CAAC,CAAC,YAAY,CAAC;QACnB,CAAC;QAED,IAAI,sBAAsB,EAAE,CAAC;YAC3B,MAAM,qBAAqB,GAAG,IAAI,CAAC,8BAA8B,CAC/D,MAAM,EACN,UAAU,EACV,cAAc,EACd,IAAI,EACJ,YAAY,EACZ,IAAI,CAAC,0BAA0B,CAC7B,MAAM,EACN,IAAI,EACJ,cAAc,EACd,UAAU,EACV,SAAS,EACT,SAAS,CACV,CACF,CAAC;YAEF,OAAO,wBAAwB;gBAC7B,CAAC,CAAC,IAAI,CAAC,qBAAqB,CACxB,qBAAqB,EACrB,iBAAiB,EACjB,IAAI,CACL;gBACH,CAAC,CAAC,qBAAqB,CAAC;QAC5B,CAAC;QAED,OAAO,wBAAwB;YAC7B,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,iBAAiB,CAAC;YAC7D,CAAC,CAAC,YAAY,CAAC;IACnB,CAAC;IAES,wBAAwB,CAChC,MAAsB,EACtB,cAAuC,EACvC,KAAmB,EACnB,UAAkB,EAClB,KAAsD,EACtD,MAAc,EACd,QAAgB,EAChB,SAAiB,EACjB,iBAAyC;QAEzC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAErC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QAExB,MAAM,6BAA6B,GAAG,EAAE,CAAC;QACzC,MAAM,kBAAkB,GAAG,EAAE,CAAC;QAC9B,MAAM,eAAe,GAAG,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC3B,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAC3B,SAAS,CAAC;YACR,OAAO;YACP,IAAI,CAAC,uBAAuB,CAAC;gBAC3B,MAAM;gBACN,cAAc;gBACd,UAAU;gBACV,SAAS;gBACT,KAAK;gBACL,MAAM;gBACN,qBAAqB,EAAE,6BAA6B;gBACpD,aAAa,EAAE,kBAAkB;gBACjC,eAAe;gBACf,iBAAiB;gBACjB,IAAI;gBACJ,KAAK,EAAE,CAAC;gBACR,QAAQ;gBACR,SAAS;aACV,CAAC;SACH,CAAC,EACJ,IAAI,CACL,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,oBAAoB,CAC9B,MAAM,EACN,cAAc,EACd,QAAQ,EACR,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EACd,6CAAiC,EACjC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC9C,MAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC9D,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,yBAAyB,CAC/B,MAAsB,EACtB,cAAuC,EACvC,QAAgB;QAEhB,IAAI,CAAC,IAAA,oBAAY,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,4BAA4B,GAAG,IAAI,CAAC,4BAA4B,CACpE,MAAM,EACN,SAAS,EACT,cAAc,CACf,CAAC;YAEF,OAAO,4BAA4B,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,2BAA2B,CACjC,MAAsB,EACtB,cAA2D,EAC3D,SAAiB;QAEjB,IAAI,CAAC,IAAA,oBAAY,EAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACrD,MAAM,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,CAClE,MAAM,EACN,QAAQ,EACR,cAAc,CACf,CAAC;YAEF,OAAO,2BAA2B,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAmB,CAAC,iBAAS,CAAC,GAAG,CAAC,CAAC;IACvE,CAAC;IAEM,aAAa,CAClB,UAAuB,EACvB,MAAyB,EACzB,cAAuC,EACvC,MAAc,EACd,iBAAyC;QAEzC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QAE9D,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAE5E,MAAM,WAAW,GACf,iBAAiB,EAAE,OAAO,IAAI,IAAA,oBAAY,EAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,aAAa,GACjB,iBAAiB,EAAE,QAAQ,IAAI,IAAA,oBAAY,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpE,MAAM,iBAAiB,GAAG,IAAA,oBAAY,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,qBAAqB,GAAG,IAAI,CAAC,yBAAyB,CAC1D,UAAU,CAAC,SAAS,EACpB,cAAc,EACd,UAAU,CAAC,QAAQ,CACpB,CAAC;QACF,MAAM,uBAAuB,GAAG,IAAI,CAAC,2BAA2B,CAC9D,UAAU,CAAC,SAAS,EACpB,cAAc,EACd,UAAU,CAAC,SAAS,CACrB,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAC3B,UAAU,CAAC,SAAS,EACpB,OAAO,EACP,cAAc,EACd,UAAU,CAAC,QAAQ,EACnB,iBAAiB,CAClB,CAAC;QAEF,IAAI,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAC7C,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAC9B,SAAS,CAAC;YACR,QAAQ;YACR,IAAI,CAAC,wBAAwB,CAC3B,UAAU,CAAC,SAAS,EACpB,cAAc,EACd,KAAK,EACL,UAAU,EACV,KAAK,EACL,MAAM,EACN,UAAU,CAAC,QAAQ,EACnB,UAAU,CAAC,SAAS,EACpB,iBAAiB,CAClB;SACF,CAAC,EACJ,IAAI,CACL,CAAC;QAEF,yDAAyD;QACzD,oEAAoE;QACpE,IAAI,UAAU,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC,EAAE,CAAC;YACjD,MAAM,cAAc,GAClB,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxD,aAAa,GAAG,IAAI,CAAC,8BAA8B,CACjD,UAAU,CAAC,SAAS,EACpB,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAC/B,cAAc,EACd,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EACrD,aAAa,EACb,WAAW;gBACT,CAAC,CAAC,YAAI,CAAC,qDAAqD,CAAC,IAAI;gBACjE,CAAC,CAAC,YAAI,CAAC,0DAA0D,EAAE,IAAI;YACzE,IAAI,CACL,CAAC;QACJ,CAAC;QAED,WAAW;QACX,IAAI,WAAW,IAAI,qBAAqB,EAAE,CAAC;YACzC,IAAI,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EACpD,iBAAiB,CAAC,OAAQ,CAAC,QAAQ,EACnC,YAAI,CAAC,2DAA2D,CACjE,CAAC;YAEF,IAAI,CAAC,CAAC,UAAU,IAAI,WAAW,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC9C,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC;oBAC3D,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,IAAI,CAAC,aAAa;yBACf,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;wBACrB,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;oBAC9C,CAAC,CAAC;yBACD,MAAM,CAAS,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;wBAC1B,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC;wBAClB,OAAO,GAAG,CAAC;oBACb,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEZ,eAAe,GAAG,YAAY,CAC5B,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAC/B;oBACE,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC;oBACvD,UAAU,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;oBACtC,eAAe;iBAChB,CACF,CAAC;YACJ,CAAC;YAED,aAAa,GAAG,SAAS,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,iDAAiD;QACjD,IACE,aAAa;YACb,uBAAuB;YACvB,CAAC,WAAW,IAAI,UAAU,CAAC,EAC3B,CAAC;YACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAClD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EACpD,iBAAiB,CAAC,QAAS,CAAC,QAAQ,CACrC,CAAC;YACF,aAAa,GAAG,SAAS,CAAC,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,0EAA0E;QAC1E,IACE,iBAAiB;YACjB,uBAAuB;YACvB,CAAC,WAAW,IAAI,UAAU,CAAC,EAC3B,CAAC;YACD,MAAM,wBAAwB,GAAG,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACtE,aAAa,GAAG,SAAS,CAAC,CAAC,aAAa,EAAE,wBAAwB,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,CAAC,WAAW,IAAI,aAAa,CAAC,IAAI,UAAU,CAAC,IAAI,WAAW,EAAE,CAAC;YAClE,aAAa,GAAG,IAAI,CAAC,oBAAoB,CACvC,UAAU,CAAC,SAAS,EACpB,cAAc,EACd,aAAa,EACb,wCAA4B,EAC5B,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAChC,6CAAiC,EACjC,KAAK,CACN,CAAC;QACJ,CAAC;QAED,OAAO,YAAY,CACjB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAC7B;YACE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,kBAAkB;YAC/C,UAAU,CACR,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,2BAAe,CAAC,EAAE,wDAAwD;YACjH,EAAE,CACH;YACD,aAAa,EAAE,WAAW;SAC3B,CACF,CAAC;IACJ,CAAC;CACF;AAvgDD,8DAugDC"}
1
+ {"version":3,"file":"Executor02BytecodeBuilder.js","sourceRoot":"","sources":["../../src/executor/Executor02BytecodeBuilder.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { OptimalRate } from '@paraswap/core';
2
2
  import { DexExchangeBuildParam } from '../types';
3
3
  import { BuildSwap, Executors, Flag, RouteBuildSwaps, SingleRouteBuildSwaps } from './types';
4
4
  import { DepositWithdrawReturn } from '../dex/weth/types';
5
- import { BuildSwapFlagsParams, DexCallDataParams, ExecutorBytecodeBuilder, SingleSwapCallDataParams } from './ExecutorBytecodeBuilder';
5
+ import { BuildSwapFlagsParams, DexCallDataParams, ExecutorBytecodeBuilder, PriceRouteType, SingleSwapCallDataParams } from './ExecutorBytecodeBuilder';
6
6
  export type Executor02SingleSwapCallDataParams = {
7
7
  routeIndex: number;
8
8
  swapIndex: number;
@@ -18,10 +18,13 @@ export type Executor02SingleSwapCallDataParams = {
18
18
  swap: BuildSwap;
19
19
  srcToken: string;
20
20
  destToken: string;
21
- singleRoutes: SingleRouteBuildSwaps<BuildSwap>[];
21
+ swaps: BuildSwap[];
22
+ rootUnwrapEth: boolean;
23
+ rootWrapEth: boolean;
22
24
  };
23
25
  export type MultiRouteExecutor02DexCallDataParams = {
24
- singleRoutes: SingleRouteBuildSwaps<BuildSwap>[];
26
+ rootUnwrapEth: boolean;
27
+ swap: BuildSwap;
25
28
  destToken: string;
26
29
  };
27
30
  /**
@@ -32,7 +35,7 @@ export declare class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecod
32
35
  /**
33
36
  * Executor02 Flags:
34
37
  * switch (flag % 4):
35
- * case 0: don't instert fromAmount
38
+ * case 0: don't insert fromAmount
36
39
  * case 1: sendEth equal to fromAmount
37
40
  * case 2: sendEth equal to fromAmount + insert fromAmount
38
41
  * case 3: insert fromAmount
@@ -79,11 +82,11 @@ export declare class Executor02BytecodeBuilderMultiRoute extends ExecutorBytecod
79
82
  private doesSwapNeedToBeAsVerticalBranch;
80
83
  private buildVerticalBranchingFlag;
81
84
  protected buildSingleSwapCallData(params: SingleSwapCallDataParams<Executor02SingleSwapCallDataParams>): string;
82
- protected buildSingleRouteCallData(singleRoutes: SingleRouteBuildSwaps<BuildSwap>[], route: SingleRouteBuildSwaps<BuildSwap>, routeIndex: number, flags: {
85
+ protected buildSingleRouteCallData(route: SingleRouteBuildSwaps<BuildSwap>, routeIndex: number, flags: {
83
86
  approves: Flag[];
84
87
  dexes: Flag[];
85
88
  wrap: Flag;
86
- }, sender: string, srcToken: string, destToken: string, maybeWethCallData?: DepositWithdrawReturn): string;
89
+ }, sender: string, srcToken: string, destToken: string, priceRouteType: PriceRouteType, rootUnwrapEth: boolean, rootWrapEth: boolean, maybeWethCallData?: DepositWithdrawReturn): string;
87
90
  private doesRouteNeedsRootWrapEth;
88
91
  private doesRouteNeedsRootUnwrapEth;
89
92
  getAddress(): string;