@meterio/sumer-js 0.1.40 → 0.1.42

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.
@@ -153,7 +153,7 @@ async function redeemFaceValue(market, amount, providers, deadline, signature, o
153
153
  const cTokenAddress = (0, constants_1.getAddress)(this._network.name, market);
154
154
  const redemptionManagerAddress = (0, constants_1.getAddress)(this._network.name, 'RedemptionManager');
155
155
  const parameters = [cTokenAddress.toLowerCase(), amount, providers, deadline, signature];
156
- const trxOptions = Object.assign({ _sumerProvider: this._provider, abi: abi_1.abi.Comptroller }, options);
156
+ const trxOptions = Object.assign({ _sumerProvider: this._provider, abi: abi_1.abi.RedemptionManager }, options);
157
157
  return eth.trx(redemptionManagerAddress, 'redeemFaceValue', parameters, trxOptions);
158
158
  }
159
159
  exports.redeemFaceValue = redeemFaceValue;
@@ -1 +1 @@
1
- {"version":3,"file":"comptroller.js","sourceRoot":"","sources":["../../src/comptroller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comptroller.js","sourceRoot":"","sources":["../../src/comptroller.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@ export declare namespace IComptroller {
32
32
  };
33
33
  }
34
34
  export interface ComptrollerInterface extends Interface {
35
- getFunction(nameOrSignature: "CAPPER_ROLE" | "COMP_LOGIC" | "DEFAULT_ADMIN_ROLE" | "PAUSER_ROLE" | "_borrowGuardianPaused" | "_getBorrowCapGuardian" | "_getPauseGuardian" | "_mintGuardianPaused" | "_setBorrowCapGuardian" | "_setBorrowPaused" | "_setCloseFactor" | "_setLiquidationIncentive" | "_setMarketBorrowCaps" | "_setMaxSupply" | "_setMintPaused" | "_setPauseGuardian" | "_setPriceOracle" | "_setProtocolPaused" | "_setSeizePaused" | "_setTransferPaused" | "_supportMarket" | "accountAssets" | "accountLiquidity" | "allMarkets" | "assetGroupIdToIndex" | "borrowAllowed" | "borrowCapGuardian" | "borrowCaps" | "borrowGuardianPaused" | "checkMembership" | "cleanAssetGroup" | "closeFactorMantissa" | "compLogic" | "enterMarkets" | "enterMarketsForAll" | "exitMarket" | "getAccountLiquidity" | "getAccountSafeLimit" | "getAllAssetGroup" | "getAllMarkets" | "getAssetGroup" | "getAssetGroupByIndex" | "getAssetGroupNum" | "getAssetsIn" | "getCollateralRate" | "getCompAddress" | "getHypotheticalAccountLiquidity" | "getRoleAdmin" | "getRoleMember" | "getRoleMemberCount" | "getUnderlyingPriceNormalized" | "governanceToken" | "grantRole" | "hasRole" | "heteroLiquidationIncentiveMantissa" | "homoLiquidationIncentiveMantissa" | "initialize" | "isComptroller" | "isListed" | "liquidateBorrowAllowed" | "liquidationIncentiveMantissa" | "marketGroupId" | "markets" | "maxSupply" | "minSuBorrowValue" | "mintAllowed" | "mintGuardianPaused" | "oracle" | "pauseGuardian" | "redeemAllowed" | "removeAssetGroup" | "renounceRole" | "repayBorrowAllowed" | "revokeRole" | "seizeAllowed" | "seizeGuardianPaused" | "setAccountLiquidity" | "setAssetGroup" | "setCompLogic" | "setCompSpeed" | "setGovTokenAddress" | "setMinSuBorrowValue" | "setTimelock" | "suTokenRateMantissa" | "supportsInterface" | "sutokenLiquidationIncentiveMantissa" | "timelock" | "transferAllowed" | "transferGuardianPaused"): FunctionFragment;
35
+ getFunction(nameOrSignature: "CAPPER_ROLE" | "COMP_LOGIC" | "DEFAULT_ADMIN_ROLE" | "PAUSER_ROLE" | "_borrowGuardianPaused" | "_getBorrowCapGuardian" | "_getPauseGuardian" | "_mintGuardianPaused" | "_setBorrowCapGuardian" | "_setBorrowPaused" | "_setCloseFactor" | "_setLiquidationIncentive" | "_setMarketBorrowCaps" | "_setMaxSupply" | "_setMintPaused" | "_setPauseGuardian" | "_setPriceOracle" | "_setProtocolPaused" | "_setSeizePaused" | "_setTransferPaused" | "_supportMarket" | "accountAssets" | "accountLiquidity" | "allMarkets" | "assetGroupIdToIndex" | "borrowAllowed" | "borrowCapGuardian" | "borrowCaps" | "borrowGuardianPaused" | "checkMembership" | "cleanAssetGroup" | "closeFactorMantissa" | "compLogic" | "enterMarkets" | "enterMarketsForAll" | "exitMarket" | "getAccountLiquidity" | "getAccountSafeLimit" | "getAllAssetGroup" | "getAllMarkets" | "getAssetGroup" | "getAssetGroupByIndex" | "getAssetGroupNum" | "getAssetsIn" | "getCollateralRate" | "getCompAddress" | "getHypotheticalAccountLiquidity" | "getRoleAdmin" | "getRoleMember" | "getRoleMemberCount" | "getUnderlyingPriceNormalized" | "governanceToken" | "grantRole" | "hasRole" | "heteroLiquidationIncentiveMantissa" | "homoLiquidationIncentiveMantissa" | "initialize" | "isComptroller" | "isListed" | "liquidateBorrowAllowed" | "liquidationIncentiveMantissa" | "marketGroupId" | "markets" | "maxSupply" | "minSuBorrowValue" | "mintAllowed" | "mintGuardianPaused" | "oracle" | "pauseGuardian" | "redeemAllowed" | "redemptionManager" | "removeAssetGroup" | "renounceRole" | "repayBorrowAllowed" | "revokeRole" | "seizeAllowed" | "seizeGuardianPaused" | "setAccountLiquidity" | "setAssetGroup" | "setCompLogic" | "setCompSpeed" | "setGovTokenAddress" | "setMinSuBorrowValue" | "setRedemptionManager" | "setTimelock" | "suTokenRateMantissa" | "supportsInterface" | "sutokenLiquidationIncentiveMantissa" | "timelock" | "transferAllowed" | "transferGuardianPaused"): FunctionFragment;
36
36
  getEvent(nameOrSignatureOrTopic: "ActionPaused" | "Initialized" | "MarketEntered" | "MarketExited" | "MarketListed" | "NewAssetGroup" | "NewBorrowCap" | "NewBorrowCapGuardian" | "NewCloseFactor" | "NewLiquidationIncentive" | "NewPauseGuardian" | "NewPriceOracle" | "RemoveAssetGroup" | "RoleAdminChanged" | "RoleGranted" | "RoleRevoked" | "SetMaxSupply"): EventFragment;
37
37
  encodeFunctionData(functionFragment: "CAPPER_ROLE", values?: undefined): string;
38
38
  encodeFunctionData(functionFragment: "COMP_LOGIC", values?: undefined): string;
@@ -114,6 +114,7 @@ export interface ComptrollerInterface extends Interface {
114
114
  encodeFunctionData(functionFragment: "oracle", values?: undefined): string;
115
115
  encodeFunctionData(functionFragment: "pauseGuardian", values?: undefined): string;
116
116
  encodeFunctionData(functionFragment: "redeemAllowed", values: [AddressLike, AddressLike, BigNumberish]): string;
117
+ encodeFunctionData(functionFragment: "redemptionManager", values?: undefined): string;
117
118
  encodeFunctionData(functionFragment: "removeAssetGroup", values: [BigNumberish]): string;
118
119
  encodeFunctionData(functionFragment: "renounceRole", values: [BytesLike, AddressLike]): string;
119
120
  encodeFunctionData(functionFragment: "repayBorrowAllowed", values: [AddressLike, AddressLike, AddressLike, BigNumberish]): string;
@@ -134,6 +135,7 @@ export interface ComptrollerInterface extends Interface {
134
135
  encodeFunctionData(functionFragment: "setCompSpeed", values: [AddressLike, BigNumberish, BigNumberish]): string;
135
136
  encodeFunctionData(functionFragment: "setGovTokenAddress", values: [AddressLike]): string;
136
137
  encodeFunctionData(functionFragment: "setMinSuBorrowValue", values: [BigNumberish]): string;
138
+ encodeFunctionData(functionFragment: "setRedemptionManager", values: [AddressLike]): string;
137
139
  encodeFunctionData(functionFragment: "setTimelock", values: [AddressLike]): string;
138
140
  encodeFunctionData(functionFragment: "suTokenRateMantissa", values?: undefined): string;
139
141
  encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string;
@@ -211,6 +213,7 @@ export interface ComptrollerInterface extends Interface {
211
213
  decodeFunctionResult(functionFragment: "oracle", data: BytesLike): Result;
212
214
  decodeFunctionResult(functionFragment: "pauseGuardian", data: BytesLike): Result;
213
215
  decodeFunctionResult(functionFragment: "redeemAllowed", data: BytesLike): Result;
216
+ decodeFunctionResult(functionFragment: "redemptionManager", data: BytesLike): Result;
214
217
  decodeFunctionResult(functionFragment: "removeAssetGroup", data: BytesLike): Result;
215
218
  decodeFunctionResult(functionFragment: "renounceRole", data: BytesLike): Result;
216
219
  decodeFunctionResult(functionFragment: "repayBorrowAllowed", data: BytesLike): Result;
@@ -223,6 +226,7 @@ export interface ComptrollerInterface extends Interface {
223
226
  decodeFunctionResult(functionFragment: "setCompSpeed", data: BytesLike): Result;
224
227
  decodeFunctionResult(functionFragment: "setGovTokenAddress", data: BytesLike): Result;
225
228
  decodeFunctionResult(functionFragment: "setMinSuBorrowValue", data: BytesLike): Result;
229
+ decodeFunctionResult(functionFragment: "setRedemptionManager", data: BytesLike): Result;
226
230
  decodeFunctionResult(functionFragment: "setTimelock", data: BytesLike): Result;
227
231
  decodeFunctionResult(functionFragment: "suTokenRateMantissa", data: BytesLike): Result;
228
232
  decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result;
@@ -811,6 +815,7 @@ export interface Comptroller extends BaseContract {
811
815
  ], [
812
816
  void
813
817
  ], "nonpayable">;
818
+ redemptionManager: TypedContractMethod<[], [string], "view">;
814
819
  removeAssetGroup: TypedContractMethod<[
815
820
  groupId: BigNumberish
816
821
  ], [
@@ -884,6 +889,11 @@ export interface Comptroller extends BaseContract {
884
889
  ], [
885
890
  void
886
891
  ], "nonpayable">;
892
+ setRedemptionManager: TypedContractMethod<[
893
+ _redemptionManager: AddressLike
894
+ ], [
895
+ void
896
+ ], "nonpayable">;
887
897
  setTimelock: TypedContractMethod<[
888
898
  _timelock: AddressLike
889
899
  ], [
@@ -1131,6 +1141,7 @@ export interface Comptroller extends BaseContract {
1131
1141
  ], [
1132
1142
  void
1133
1143
  ], "nonpayable">;
1144
+ getFunction(nameOrSignature: "redemptionManager"): TypedContractMethod<[], [string], "view">;
1134
1145
  getFunction(nameOrSignature: "removeAssetGroup"): TypedContractMethod<[groupId: BigNumberish], [bigint], "nonpayable">;
1135
1146
  getFunction(nameOrSignature: "renounceRole"): TypedContractMethod<[
1136
1147
  role: BytesLike,
@@ -1192,6 +1203,11 @@ export interface Comptroller extends BaseContract {
1192
1203
  ], [
1193
1204
  void
1194
1205
  ], "nonpayable">;
1206
+ getFunction(nameOrSignature: "setRedemptionManager"): TypedContractMethod<[
1207
+ _redemptionManager: AddressLike
1208
+ ], [
1209
+ void
1210
+ ], "nonpayable">;
1195
1211
  getFunction(nameOrSignature: "setTimelock"): TypedContractMethod<[_timelock: AddressLike], [void], "nonpayable">;
1196
1212
  getFunction(nameOrSignature: "suTokenRateMantissa"): TypedContractMethod<[], [bigint], "view">;
1197
1213
  getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">;
@@ -1,7 +1,7 @@
1
1
  import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
2
2
  import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "../../common";
3
3
  export interface RedemptionManagerInterface extends Interface {
4
- getFunction(nameOrSignature: "BETA" | "DECIMAL_PRECISION" | "DEFAULT_ADMIN_ROLE" | "MAX_BORROWING_FEE" | "MINUTE_DECAY_FACTOR" | "REDEMPTION_FEE_FLOOR" | "SECONDS_IN_ONE_MINUTE" | "_calcNewBaseRate" | "baseRate" | "baseRateMap" | "calcActualRepayAndSeize" | "comptroller" | "decayBaseRateFromBorrowing" | "getCurrentRedemptionRate" | "getRedemptionRate" | "getRoleAdmin" | "getRoleMember" | "getRoleMemberCount" | "grantRole" | "hasRole" | "initialize" | "lastFeeOperationTime" | "lastFeeOperationTimeMap" | "redeemFaceValue" | "redeemFaceValueWithPermit" | "redeemFaceValueWithProviderPreview" | "redemptionSigner" | "renounceRole" | "revokeRole" | "setComptroller" | "setRedemptionSigner" | "supportsInterface"): FunctionFragment;
4
+ getFunction(nameOrSignature: "BETA" | "DECIMAL_PRECISION" | "DEFAULT_ADMIN_ROLE" | "MAX_BORROWING_FEE" | "MINUTE_DECAY_FACTOR" | "REDEMPTION_FEE_FLOOR" | "SECONDS_IN_ONE_MINUTE" | "baseRate" | "baseRateMap" | "calcActualRepayAndSeize" | "comptroller" | "decayBaseRateFromBorrowing" | "getCurrentRedemptionRate" | "getRedemptionRate" | "getRoleAdmin" | "getRoleMember" | "getRoleMemberCount" | "grantRole" | "hasRole" | "initialize" | "lastFeeOperationTime" | "lastFeeOperationTimeMap" | "redeemFaceValue" | "redeemFaceValueWithPermit" | "redeemFaceValueWithProviderPreview" | "redemptionSigner" | "renounceRole" | "revokeRole" | "setComptroller" | "setRedemptionSigner" | "supportsInterface"): FunctionFragment;
5
5
  getEvent(nameOrSignatureOrTopic: "BaseRateUpdated" | "Initialized" | "LastFeeOpTimeUpdated" | "NewComptroller" | "NewRedemptionSigner" | "RoleAdminChanged" | "RoleGranted" | "RoleRevoked"): EventFragment;
6
6
  encodeFunctionData(functionFragment: "BETA", values?: undefined): string;
7
7
  encodeFunctionData(functionFragment: "DECIMAL_PRECISION", values?: undefined): string;
@@ -10,7 +10,6 @@ export interface RedemptionManagerInterface extends Interface {
10
10
  encodeFunctionData(functionFragment: "MINUTE_DECAY_FACTOR", values?: undefined): string;
11
11
  encodeFunctionData(functionFragment: "REDEMPTION_FEE_FLOOR", values?: undefined): string;
12
12
  encodeFunctionData(functionFragment: "SECONDS_IN_ONE_MINUTE", values?: undefined): string;
13
- encodeFunctionData(functionFragment: "_calcNewBaseRate", values: [AddressLike, BigNumberish, BigNumberish]): string;
14
13
  encodeFunctionData(functionFragment: "baseRate", values?: undefined): string;
15
14
  encodeFunctionData(functionFragment: "baseRateMap", values: [AddressLike]): string;
16
15
  encodeFunctionData(functionFragment: "calcActualRepayAndSeize", values: [BigNumberish, AddressLike, AddressLike, AddressLike]): string;
@@ -50,7 +49,6 @@ export interface RedemptionManagerInterface extends Interface {
50
49
  decodeFunctionResult(functionFragment: "MINUTE_DECAY_FACTOR", data: BytesLike): Result;
51
50
  decodeFunctionResult(functionFragment: "REDEMPTION_FEE_FLOOR", data: BytesLike): Result;
52
51
  decodeFunctionResult(functionFragment: "SECONDS_IN_ONE_MINUTE", data: BytesLike): Result;
53
- decodeFunctionResult(functionFragment: "_calcNewBaseRate", data: BytesLike): Result;
54
52
  decodeFunctionResult(functionFragment: "baseRate", data: BytesLike): Result;
55
53
  decodeFunctionResult(functionFragment: "baseRateMap", data: BytesLike): Result;
56
54
  decodeFunctionResult(functionFragment: "calcActualRepayAndSeize", data: BytesLike): Result;
@@ -213,13 +211,6 @@ export interface RedemptionManager extends BaseContract {
213
211
  MINUTE_DECAY_FACTOR: TypedContractMethod<[], [bigint], "view">;
214
212
  REDEMPTION_FEE_FLOOR: TypedContractMethod<[], [bigint], "view">;
215
213
  SECONDS_IN_ONE_MINUTE: TypedContractMethod<[], [bigint], "view">;
216
- _calcNewBaseRate: TypedContractMethod<[
217
- asset: AddressLike,
218
- redeemAmount: BigNumberish,
219
- _totalSupply: BigNumberish
220
- ], [
221
- bigint
222
- ], "view">;
223
214
  baseRate: TypedContractMethod<[], [bigint], "view">;
224
215
  baseRateMap: TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
225
216
  calcActualRepayAndSeize: TypedContractMethod<[
@@ -346,13 +337,6 @@ export interface RedemptionManager extends BaseContract {
346
337
  getFunction(nameOrSignature: "MINUTE_DECAY_FACTOR"): TypedContractMethod<[], [bigint], "view">;
347
338
  getFunction(nameOrSignature: "REDEMPTION_FEE_FLOOR"): TypedContractMethod<[], [bigint], "view">;
348
339
  getFunction(nameOrSignature: "SECONDS_IN_ONE_MINUTE"): TypedContractMethod<[], [bigint], "view">;
349
- getFunction(nameOrSignature: "_calcNewBaseRate"): TypedContractMethod<[
350
- asset: AddressLike,
351
- redeemAmount: BigNumberish,
352
- _totalSupply: BigNumberish
353
- ], [
354
- bigint
355
- ], "view">;
356
340
  getFunction(nameOrSignature: "baseRate"): TypedContractMethod<[], [bigint], "view">;
357
341
  getFunction(nameOrSignature: "baseRateMap"): TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
358
342
  getFunction(nameOrSignature: "calcActualRepayAndSeize"): TypedContractMethod<[
@@ -14,7 +14,7 @@ export declare class Comptroller__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): Comptroller__factory;
17
- static readonly bytecode = "0x6080806040523461001657614f6c908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c9182627e3dd21461364e5750816301ffc9a7146135db5781630914888d1461344e578163098c76f51461340e578163141a7a65146133ef57816318c882a5146132de5781631dbd1aa91461325957816321af456914610e1857816324008a6214613224578163243cdb55146131fd578163248a9ca3146131d257816324a3d62214612807578163250d71e71461306e5781632a6a6065146130305781632d70db7814612f315781632f2ff15d14612e87578163317b0b7714612e1757816336085d4614612d34578163360f5a0114612d0b57816336568abe14612c79578163391957d714612abd5781633bcf7ec1146129905781633bd38381146128de5781633c94786f146128b757816347bd11ad146128985781634a584432146128605781634ada90af146128305781634cab0f2d146128075781634e79238f146127885781634ede8e6a146127695781634ef4c3e11461253157816352d84d1e14612506578163554994f2146124dd57816355ee1fe1146124615781635ec88c79146123b35781635f5af1aa146121f35781635f87769b146121695781635fc7e71e14611f9a578163607ef6c114611e715781636322b51314611b935781636d154ea514611b55578163731f0c2b14611b1757816373a19dc5146118755781637dc0d1d01461184c578163840f82ac146117f457816384b92720146114e057816387f76303146114b95781638e8f294b146114605781638ebf63641461133c5781639010d07c146112fb57816391d14854146112b5578163929fe9a11461125f57816395ee8208146112395781639cc7becf146112015781639d1b5a0a146111d85781639d8ef7e6146111aa578163a217fddf1461118f578163aa6fb5c014611150578163abfceffc146110d7578163ac0b0bb7146110b0578163b0772d0b14611023578163b3030a6314610fe3578163bc1fc18a14610fa8578163bdacb30314610f68578163bdcdc25814610f11578163c299823814610e41578163c42e5b2b14610e18578163c7108b4314610def578163c91033b014610dcd578163ca15c87314610da5578163ce8b680514610d86578163d02f735114610c3b578163d1eb167e14610c08578163d33219b414610bdf578163d547741f14610ba3578163da3d454c146107dc578163dce1544914610783578163e4295d411461073d578163e63ab1e914610714578163e6653f3d146106ed578163e8755446146106ce578163e8762110146106af578163eabe7d9114610691578163ede4edd014610664578163eebc3a99146105e0578163f21d125014610590578163f794062e14610552578163f8717d4014610422575063f96dae0a146103f757600080fd5b3461041e578160031936011261041e5760d15490516001600160a01b039091168152602090f35b5080fd5b83833461041e5761043236613a60565b90918580526020966065885285872033600052885260ff8660002054161580610525575b610517578115801561050d575b6104ff5750855b81811061047a5787878751908152f35b806104896104fa928587614aea565b6001600160a01b039035816104a76104a285888c614aea565b614afa565b168a5260ce8b52888a20556104c06104a283868a614aea565b167fb65effed4883ea5c94b76be51cffe6df198456313627302a7726e8a3de19dbea8a6104ee84888a614aea565b358a51908152a2614161565b61046a565b855163b4fa3fb360e01b8152fd5b5082821415610463565b8551633a73e24b60e21b8152fd5b50600080516020614ef783398151915287526065885285872033600052885260ff86600020541615610456565b50503461041e57602036600319011261041e5760209160ff9082906001600160a01b0361057d613732565b16815260cc855220541690519015158152f35b50503461041e57602036600319011261041e576105dc906105c96105c36105b5613855565b6105bd61497c565b50614598565b506149bb565b90519182916020835260208301906138ad565b0390f35b83833461041e57606036600319011261041e577fc435a64a252a70e1626526c36dd5dba2119d3d877951ff6fefdea93d062ade9c60c060209435602435906044359061062a613b09565b60ca549260cf5460d054928060ca558260cf558460d05588519586528a860152878501526060840152608083015260a0820152a151908152f35b50503461041e57602036600319011261041e5760209061068a610685613732565b614318565b9051908152f35b83346106ac576106a96106a336613947565b91614c94565b80f35b80fd5b50503461041e578160031936011261041e5760209060d0549051908152f35b50503461041e578160031936011261041e5760209060c9549051908152f35b50503461041e578160031936011261041e5760209060ff60d55460a81c1690519015158152f35b50503461041e578160031936011261041e5760209051600080516020614ed78339815191528152f35b90503461077f57602036600319011261077f5780359161075b613b09565b670de0b6b3a7640000831061077257505060de5580f35b51635012e14560e01b8152fd5b8280fd5b50503461041e578060031936011261041e5761079d613732565b6001600160a01b03908116835260cb602052818320805460243594908510156106ac57506020936107cd916139c9565b92905490519260031b1c168152f35b90503461077f576107ec36613947565b9060ff60df9593955416610b945760018060a01b03908186169182885260209660d7885260ff868a205416610b845783895260cc885261083a60ff878b205416610834614184565b906141b1565b83895260cc88526001868a2001928281169384600052895260ff87600020541615610b39575b506024888360db541688519283809263fc57d4df60e01b8252898d8301525afa908115610a6f578a91610b0c575b5015610afc5783895260d988528589205480610a79575b508551637f4e225760e11b81529780898981885afa8015610a6f578798998b98979891610a42575b5015610962575b50509060849160dc541684519586948593634e79238f60e01b85528a850152602484015289604484015260648301525afa908115610958578491610929575b5061091c578280f35b51633a23d82560e01b8152fd5b6109499150823d8411610951575b61094181836136e4565b810190614582565b905038610913565b503d610937565b82513d86823e3d90fd5b9091929394516395dd919360e01b815233898201528181602481895afa918215610a38579087918b936109f9575b5050906109b26109b8926109ac670de0b6b3a764000095614d6c565b92613ec0565b90613e97565b0460de54908180151591826109ef575b50506109d9579081869493926108d4565b8660249187519163e4504b1f60e01b8352820152fd5b10905081386109c8565b8193508092503d8311610a31575b610a1181836136e4565b81010312610a2c5751856109b2670de0b6b3a7640000610990565b600080fd5b503d610a07565b88513d8c823e3d90fd5b610a629150823d8411610a68575b610a5a81836136e4565b810190614b0e565b386108cd565b503d610a50565b87513d8c823e3d90fd5b86516308f7a6e360e31b815289818a81895afa8015610af25787908c90610ac1575b610aa59250613ec0565b1015610ab157386108a5565b85516353977d1f60e01b81528790fd5b50508981813d8311610aeb575b610ad881836136e4565b81010312610a2c5786610aa59151610a9b565b503d610ace565b88513d8d823e3d90fd5b85516348fa9b2b60e11b81528790fd5b90508881813d8311610b32575b610b2381836136e4565b81010312610a2c57513861088e565b503d610b19565b843303610b7457610b4a90336141dd565b5083895260cc88526001868a2001836000528852610b6e60ff8760002054166142fb565b38610860565b86516318e2bacb60e11b81528890fd5b855163095865a360e11b81528790fd5b505051632bc2c01360e21b8152fd5b9190503461077f578060031936011261077f576106a99135610bda6001610bc861371c565b93838752606560205286200154613d03565b613e0e565b50503461041e578160031936011261041e5760dd5490516001600160a01b039091168152602090f35b50503461041e57602036600319011261041e5760ff8160209382610c2a613855565b16815260d485522054169051908152f35b9190503461077f57610c4c366139e1565b5050509060ff60df5416610b945760ff60d55460b81c16610d77576001600160a01b0390811680865260cc6020908152848720549193909160ff1680610d65575b610c9990610834614184565b84519382858881635fe3b56760e01b948582525afa948515610d5b579087918996610d34575b5086519081529183918391829087165afa918215610d2a57908392918892610cfd575b505016911603610cf0578280f35b51630c73eb0560e01b8152fd5b610d1c9250803d10610d23575b610d1481836136e4565b810190614e97565b3880610ce2565b503d610d0a565b85513d89823e3d90fd5b859391965091610d518593843d8611610d2357610d1481836136e4565b9691935091610cbf565b86513d8a823e3d90fd5b5080831687528487205460ff16610c8d565b5050516307f4077b60e11b8152fd5b50503461041e578160031936011261041e5760209060ca549051908152f35b90503461077f57602036600319011261077f5760209282913581526097845220549051908152f35b50503461041e578160031936011261041e5760209060ff60d354169051908152f35b50503461041e578160031936011261041e5760209051600080516020614ef78339815191528152f35b50503461041e578160031936011261041e5760d85490516001600160a01b039091168152602090f35b8284346106ac5790610e5236613748565b91825190610e5f82613705565b610e6b845191826136e4565b828152610e7783613705565b6020958287019491601f1901368637835b828110610ecd5750505083519485948186019282875251809352850193925b828110610eb657505050500390f35b835185528695509381019392810192600101610ea7565b9596949592949392610f0690610ef6336001600160a01b03610eef8487614170565b51166141dd565b610f008289614170565b52614161565b969594929396610e88565b83833461041e57610f2136613814565b93905060ff60df9392935416610f595760ff60d55460b01c16610f4a57506106a9939450614c94565b5163cd1fda9f60e01b81528590fd5b51632bc2c01360e21b81528590fd5b83346106ac5760203660031901126106ac57610f82613732565b610f8a613b09565b60018060a01b03166001600160601b0360a01b60dd54161760dd5580f35b50503461041e578160031936011261041e57602090517f750fc7a006f78e0009a09aa4bf97546d802b8f6c9d27e623dd7cc78951321eaf8152f35b83346106ac5760203660031901126106ac57610ffd613732565b611005613b09565b60018060a01b03166001600160601b0360a01b60da54161760da5580f35b8284346106ac57806003193601126106ac57815191829160cd5480855260208095019460cd83527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e92905b828210611090576105dc8686611086828b03836136e4565b5191829182613ac5565b83546001600160a01b03168752958601956001938401939091019061106e565b50503461041e578160031936011261041e5760209060ff60d55460b81c1690519015158152f35b50503461041e576020908160031936011261077f576001600160a01b0392836110fe613732565b16815260cb8352818120938251908194808754938481520196845280842093915b838310611137576105dc8787611086828c03836136e4565b845481168852968101966001948501949092019161111f565b50503461041e57602036600319011261041e5760209160ff9082906001600160a01b0361117b613732565b16815260cc8552205460081c169051908152f35b50503461041e578160031936011261041e5751908152602090f35b50503461041e578060031936011261041e5760209061068a6111ca613732565b6111d261371c565b90614b26565b50503461041e578160031936011261041e5760d15490516001600160a01b039091168152602090f35b50503461041e57602036600319011261041e5760209181906001600160a01b03611229613732565b16815260ce845220549051908152f35b50503461041e57602036600319011261041e5760209061068a61125a613732565b614d6c565b50503461041e578060031936011261041e5760209161127c613732565b906001600160a01b039060019084908361129461371c565b16815260cc875220019116600052825260ff81600020541690519015158152f35b90503461077f578160031936011261077f57816020936112d361371c565b9235815260658552209060018060a01b0316600052825260ff81600020541690519015158152f35b90503461077f578160031936011261077f5760209261132691358152609784528260243591206139c9565b905491519160018060a01b039160031b1c168152f35b83833461041e576020928360031936011261077f576113596137d6565b9081156113ea578380526065855282842033600052855260ff836000205416156113dc575060a0600080516020614f17833981519152915b15159360d55460ff60b01b8660b01b169060ff60b01b19161760d555835190815260608682015260086060820152672a3930b739b332b960c11b60808201528484820152a151908152f35b8251634755657960e01b8152fd5b8380526065855282842033600052855260ff8360002054161580611433575b611425575060a0600080516020614f1783398151915291611391565b8251630e8e849b60e41b8152fd5b50600080516020614ed783398151915284526065855282842033600052855260ff83600020541615611409565b50503461041e57602036600319011261041e5760609181906001600160a01b03611488613732565b16815260cc602052209060ff600283549301541660ff8251938181161515855260081c166020840152151590820152f35b50503461041e578160031936011261041e5760209060ff60d55460b01c1690519015158152f35b83833461041e57608036600319011261041e576114fb613732565b926024359060ff821694858303610a2c57604435916064359161151c613b09565b60018060a01b03908181169586895260209960cc8b5260ff898b20541661179157156117e457888089518c810190637f4e225760e11b8252878152611560816136ae565b519082865af13d156117df573d61157681613aaa565b906115838b5192836136e4565b81528a8c3d92013e5b806117d5575b156117a15786895260cc8a526001888a209161ff0083549160081b169061ffff1916171790558760cd54905b81811061176b5750600160401b81101561175657906115e6826001611605940160cd5561397c565b90919082549060031b9160018060a01b03809116831b921b1916179055565b6116498651611613816136ae565b601c81527f626c6f636b206e756d62657220657863656564732033322062697473000000008a82015264010000000043106141b1565b60da541690813b156117525784604488928389519586948593633ace041560e11b855284015263ffffffff431660248401525af1801561174857868893928692611726575b50507f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f6837fb65effed4883ea5c94b76be51cffe6df198456313627302a7726e8a3de19dbea957fcf583bb0c569eb967f806b11601c4cb93c10310485c67add5f8362c2f212321f828a51868152a1838a5260d9825280898b20558851908152a283865260ce825280858720558451908152a251908152f35b90929493506117359150613669565b6117445790859083868961168e565b8480fd5b85513d88823e3d90fd5b8680fd5b604184634e487b7160e01b6000525260246000fd5b87846117768361397c565b90549060031b1c16146117915761178c90614161565b6115be565b8851634d5eeb4960e01b81528590fd5b875162461bcd60e51b81528085018b9052600e60248201526d31b7b73a3930b1ba1032b93937b960911b6044820152606490fd5b50813b1515611592565b61158c565b8751631b47388560e11b81528490fd5b90503461077f57602036600319011261077f5761180f613732565b611817613b09565b6001600160a01b031691821561183f5750506001600160601b0360a01b60d154161760d15580f35b5163e6c4247b60e01b8152fd5b50503461041e578160031936011261041e5760db5490516001600160a01b039091168152602090f35b83833461041e5760e036600319011261041e57611890613855565b92602435906001600160401b038211611b135736602383011215611b135781810135946118bc86613aaa565b906118c9855192836136e4565b868252602096878301943660248383010111611b0f5781889260248b930188378401015260443591606435946084359060a4359260c43594611909613b09565b60d35415611aaf575b898b8d60ff8094169a8b835260d482528484842054169081158015611aa3575b8015611a8d575b15611a0e575050938a96938360c09a979360d48f986119b57f878e48ed20dc6724a982e6ed357e7ad8d32f3a8550cc2d946046e3a708545e799f9d9a8d908f6119e49b519261198784613692565b835289858401528783015260608201528a60808201528b60a08201528f8d90820152600160e08201526147c3565b6119c28560d354166147e6565b9b835252209716968760ff198254161790558c51928392839251928391613865565b8101039020988a519586528c860152898501526060840152608083015260a0820152a35b51908152f35b9492508b9c9798999a9650809b9350611a279150614598565b50541603611a7f575091611a74959391611a7a989795938a5198611a4a8a613692565b89528c890152898801526060870152608086015260a085015260c0840152600160e0840152614598565b9061466a565b611a08565b895163e70616f160e01b8152fd5b508c86611a9984614598565b5054161415611939565b5060d354821015611932565b611b0a8a51611abd81613692565b8c81528b518e611acc826136ae565b6007825266125b9d985b1a5960ca1b818301528201528c8c8201528c60608201528c60808201528c60a08201528c60c08201528c60e08201526147c3565b611912565b8780fd5b8380fd5b50503461041e57602036600319011261041e5760209160ff9082906001600160a01b03611b42613732565b16815260d6855220541690519015158152f35b50503461041e57602036600319011261041e5760209160ff9082906001600160a01b03611b80613732565b16815260d7855220541690519015158152f35b83833461041e5761012036600319011261041e57611baf613732565b92611bb861371c565b936044356001600160a01b0381811691829003610a2c5760643590808216809203610a2c5760843593818516809503610a2c57875460ff8160081c161596878098611e64575b8015611e4d575b15611df35750918899611c84899a99937fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e229560ff19908b8d6001848416179055611de2575b508b80528560209c8d93606585528783832091169485600052528d60ff83600020541615611da8575b508052505060978b52848d20613fec565b506001600160601b0360a01b958660d154161760d155670de0b6b3a764000060d25516808560db54161760db558151906000825288820152a18160da54161760da5560dc54161760dc557f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd98360a4358060c95581519087825285820152a17fc435a64a252a70e1626526c36dd5dba2119d3d877951ff6fefdea93d062ade9c60c060c4358060ca5560e4358060cf5561010435908160d0556801158e460913d0000060de55875192898452878401528888840152606083015287608083015260a0820152a1611d71578280f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a181808280f35b6065908280525220826000528c52600186600020918254161790558c813391600080516020614eb78339815191528180a48d858e8d611c73565b61ffff1916610101178c558e611c4a565b60849060208a519162461bcd60e51b8352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152fd5b50303b158015611c055750600160ff831614611c05565b50600160ff831610611bfe565b90503461077f57611e8136613a60565b90939294918680526020936065855283882033600052855260ff8460002054161580611f6d575b611f5f5781158015611f55575b611f475750865b818110611ec7578780f35b8082611ed7611f4293868a614aea565b3589611eef6104a28560018060a01b03958694614aea565b168b5260d98852868b2055611f086104a283868c614aea565b167f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f687611f3684888c614aea565b358851908152a2614161565b611ebc565b835163b4fa3fb360e01b8152fd5b5082821415611eb5565b8351633a73e24b60e21b8152fd5b50600080516020614ef783398151915288526065855283882033600052855260ff84600020541615611ea8565b9190503461077f57611fab366139e1565b939092915060018060a01b038091169081885260209260cc84528160ff888b20541615918215612156575b50506121465785516395dd919360e01b8152938116878501819052928085602481865afa94851561213c57899561210d575b508651630c71782360e41b815281818a81875afa918215610a38579088949392918b926120f0575b50501561205257505050501061204557505080f35b5163e46c155960e01b8152fd5b60849060dc54169383519485938492634e79238f60e01b84528b840152602483015260006044830152600060648301525afa9081156120e65786916120c7575b50156120b8576120ad670de0b6b3a76400009160c954613e97565b041061204557505080f35b50505163095bf33360e01b8152fd5b6120de9150843d86116109515761094181836136e4565b905038612092565b84513d88823e3d90fd5b6121069250803d10610a6857610a5a81836136e4565b3880612030565b9080955081813d8311612135575b61212581836136e4565b81010312610a2c57519338612008565b503d61211b565b87513d8b823e3d90fd5b85516334b04fe360e11b81528790fd5b168952508588205460ff16158138611fd6565b9190503461077f57606036600319011261077f5782612186613732565b61218e613b09565b60da546001600160a01b039190821690813b15611b13578360649286519788958694635f87769b60e01b86521690840152602435602484015260443560448401525af19081156121ea57506121e1575080f35b6106a990613669565b513d84823e3d90fd5b83833461041e576020928360031936011261077f57612210613732565b612218613b09565b6001600160a01b039081169182156123a5575090816122fe7f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e9360d5541692600080516020614ed78339815191528088526065808a5261227d6001898b200154613d03565b818952808a52878920868a528a5260ff888a205416612360575b81895260978a526122aa86898b20614071565b50826001600160601b0360a01b60d554161760d555818952808a526122d46001898b200154613d03565b818952808a52878920838a528a5260ff888a2054161561232a575b50875260978852858720613fec565b5060d55484516001600160a01b0393841681529116909116602082015280604081015b0390a151908152f35b81895289528688208289528952868820805460ff19166001179055338282600080516020614eb78339815191528b80a4896122ef565b818952808a52878920868a528a52878920805460ff191690553386837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8c80a4612297565b835163e6c4247b60e01b8152fd5b83833461041e57602036600319011261041e57806123cf613732565b608460018060a01b03918260dc541684519788948593634e79238f60e01b855216908301528660248301528660448301528660648301525afa928315612456578293612431575b50516000815260208101919091526040810191909152606090f35b8161244e9294506105dc93503d85116109515761094181836136e4565b929091612416565b5051903d90823e3d90fd5b50503461041e57602036600319011261041e57906020917fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e226124a1613732565b6124a9613b09565b60db80546001600160a01b039283166001600160a01b03198216811790925584519216825260208201528060408101612321565b50503461041e578160031936011261041e5760dc5490516001600160a01b039091168152602090f35b90503461077f57602036600319011261077f57359160cd548310156106ac575061132660209261397c565b9190503461077f5761254236613947565b9160ff60df54166127595760018060a01b038091169081875260209260d6845260ff86892054166127495782885260cc845261258660ff878a205416610834614184565b85516361bfb47160e11b815291811687830181905291608081602481875afa801561213c57898a928b9261270f575b506125c9906125c26142d1565b90156141b1565b848a5260cc86526001888b2001848b52865260ff888b205416159182612706575b50816126fd575b506126b3575b505080865260ce825283862054159283159283612629575b505050501561261c578280f35b516354db2d5d60e11b8152fd5b929350909183612640575b5050503880808061260f565b84516318160ddd60e01b8152929350909181818781875afa908115610d2a578791612685575b5060ce9261267391613ec0565b92865252818420541015388080612634565b90508181813d83116126ac575b61269c81836136e4565b81010312611752575160ce612666565b503d612692565b8233036126ed576126c490336141dd565b5081875260cc835260018588200190875282526126e660ff85882054166142fb565b38806125f7565b855163094d2b6d60e21b81528790fd5b905015386125f1565b159150386125ea565b90506125c99250612737915060803d8111612742575b61272f81836136e4565b8101906142af565b5092909291906125b5565b503d612725565b8551636be9245d60e11b81528790fd5b50505051632bc2c01360e21b8152fd5b50503461041e578160031936011261041e5760209060cf549051908152f35b83833461041e57806127993661390e565b60dc548551634e79238f60e01b81526001600160a01b03958616998101998a5293851660208a0152604089019290925260608801529095869290839003608001918391165afa9283156124565782936124315750516000815260208101919091526040810191909152606090f35b50503461041e578160031936011261041e5760d55490516001600160a01b039091168152602090f35b50503461041e578160031936011261041e5760609060ca549060cf549060d0549181519384526020840152820152f35b50503461041e57602036600319011261041e5760209181906001600160a01b03612888613732565b16815260d9845220549051908152f35b50503461041e578160031936011261041e5760209060d2549051908152f35b50503461041e578160031936011261041e5760209060ff60d55460a01c1690519015158152f35b9190503461077f5760206128f13661390e565b60dc5486516354f2052160e11b81526001600160a01b039586169881019889529385166020890152604088019290925260608701529094859290839003608001918391165afa91821561298657839261294f575b6020838351908152f35b9091506020813d821161297e575b8161296a602093836136e4565b8101031261077f5760209250519038612945565b3d915061295d565b81513d85823e3d90fd5b83833461041e576129a0366137e5565b908115612a3d57838052606560205282842033855260205260ff838520541615612a2d5781602095612a01600080516020614f17833981519152948660a0955b600180881b03169889815260d68b52209060ff801983541691151516179055565b8451958652606087870152606086015263135a5b9d60e21b60808601521515938484820152a151908152f35b8251634755657960e01b81528590fd5b838052606560205282842033855260205260ff83852054161580612a90575b612a805781602095612a01600080516020614f17833981519152948660a0956129e0565b8251630e8e849b60e41b81528590fd5b50600080516020614ed78339815191528452606560205282842033855260205260ff838520541615612a5c565b8391503461041e5760208060031936011261077f57612ada613732565b91612ae3613b09565b6001600160a01b03838116918215612c6b575094612bc9612bea9260977feda98690e518e9a05f8ec6837663e188211b2da8f4906648b323f2c1d4434e29979860d8541695600080516020614ef7833981519152808b528a612ba2600188606593848752612b55838383200154613d03565b8581528487528181208d8252875260ff8282205416612c26575b858152878752612b818d838320614071565b5060d880546001600160a01b0319168a179055858152848752200154613d03565b818c52808352868c20858d52835260ff878d20541615612bf0575b508a5252828820613fec565b50516001600160a01b03928316815292909116602083015281906040820190565b0390a180f35b818c528252858b20848c528252858b20805460ff19166001179055338482600080516020614eb78339815191528e80a48b612bbd565b8581528487528181208d82528752818120805460ff19169055338d877ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8480a4612b6f565b865163e6c4247b60e01b8152fd5b8391503461041e578260031936011261041e57612c9461371c565b90336001600160a01b03831603612cb057906106a99135613e0e565b608490602085519162461bcd60e51b8352820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152fd5b50503461041e578160031936011261041e5760da5490516001600160a01b039091168152602090f35b8284346106ac57806003193601126106ac5760d354612d5281613705565b91612d5f845193846136e4565b81835260d3815260209283810192827f915c3eb987b20e1af620c1403197bf687fb7f18513b3a73fde6e78c7072c41a6855b838310612df257505050508451938085019181865251809252858501958260051b8601019392955b828710612dc65785850386f35b909192938280612de2600193603f198a820301865288516138ad565b9601920196019592919092612db9565b600888600192612e05859b98999b6149bb565b81520192019201919096949396612d91565b83833461041e57602036600319011261041e57823592612e35613b09565b8315612e7957507f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd98160209460c954908060c955825191825286820152a151908152f35b905163ee0bdbdf60e01b8152fd5b9190503461077f578060031936011261077f57612ef69135906097612eaa61371c565b9280865260209060658252612ec460018589200154613d03565b808752606582528387206001600160a01b039095168088529482528387205460ff1615612efa575b8652528320613fec565b5080f35b808752606582528387208588528252838720805460ff19166001179055338582600080516020614eb78339815191528a80a4612eec565b83833461041e576020928360031936011261077f57612f4e6137d6565b908115612fcc5783805260658552828420338552855260ff8385205416156113dc575060a0600080516020614f17833981519152915b15159360d55460ff60b81b8660b81b169060ff60b81b19161760d555835190815260608682015260056060820152645365697a6560d81b60808201528484820152a151908152f35b83805260658552828420338552855260ff83852054161580613005575b611425575060a0600080516020614f1783398151915291612f84565b50600080516020614ed7833981519152845260658552828420338552855260ff838520541615612fe9565b50503461041e57602036600319011261041e5760209061304e6137d6565b613056613b09565b15159060ff1960df541660ff83161760df5551908152f35b83833461041e576020928360031936011261077f5761308b613855565b613093613b09565b60ff8060d354169181806130ae6130a9866147e6565b614598565b50541691169384875260d48852828688205416926130ce6130a9866147e6565b506130d885614598565b9290926131c05791817f3142b1d766c6799b48d5083bdb3ef6e5a2d93657c1a073fba6c4cf5a93f3d0be9795938c979593830361314c575b50505050875260d4835285872060ff1991828254161790556131306148d1565b84875260d483528587209081541690558451908152a251908152f35b6007826131b795838395541660ff1987541617865561317160018301600188016147f9565b60028201546002870155600382015460038701558082015490860155600581015460058601556006810154600686015501541691019060ff801983541691151516179055565b89808080613110565b634e487b7160e01b8a5289845260248afd5b90503461077f57602036600319011261077f5781602093600192358152606585522001549051908152f35b50503461041e57602036600319011261041e576105dc906105c961321f613855565b614abe565b50503461041e5760ff6106a99161323a36613814565b5050506001600160a01b0316845260cc60205283205416610834614184565b50503461041e578160031936011261041e57613273613b09565b815b60d3549060ff9182821610156132b1576132ac9161329282614598565b505416845260d4602052828420805460ff1916905561496b565b613275565b8360ff8060d35416825b81838216106132c8578380f35b6132d9906132d46148d1565b61496b565b6132bb565b83833461041e576132ee366137e5565b93841561337f57838052606560205282842033855260205260ff8385205416156113dc575060a08461334f60209685600080516020614f17833981519152955b600180871b03169788815260d78a52209060ff801983541691151516179055565b83519485526060868601526006606086015265426f72726f7760d01b60808601521515938484820152a151908152f35b838052606560205282842033855260205260ff838520541615806133c2575b611425575060a08461334f60209685600080516020614f178339815191529561332e565b50600080516020614ed78339815191528452606560205282842033855260205260ff83852054161561339e565b50503461041e578160031936011261041e5760209060de549051908152f35b83346106ac5760203660031901126106ac57613428613732565b613430613b09565b60018060a01b03166001600160601b0360a01b60dc54161760dc5580f35b9190503461077f5761345f36613748565b613467613b09565b805191845b60cd548110156135d75761347f8161397c565b90546001600160a01b0360039290921b1c811690875b8681106134ad575050506134a890614161565b61346c565b816134be82889495989a969a614170565b5116908551916370a0823160e01b835280868401526020602493818186818d5afa9081156135cd578d9161359c575b501590811591613526575b506135099350613515575b50614161565b96929694919094613495565b61351f90886141dd565b5038613503565b8091508c8951958680926305eff7ef60e21b8252868c8301528d5af1908115613592578c9161355e575b5061350993501515386134f8565b905083813d831161358b575b61357481836136e4565b8101031261358757613509925138613550565b8a80fd5b503d61356a565b88513d8e823e3d90fd5b90508181813d83116135c6575b6135b381836136e4565b810103126135c25751386134ed565b8c80fd5b503d6135a9565b89513d8f823e3d90fd5b8580f35b90503461077f57602036600319011261077f57359063ffffffff60e01b821680920361077f5760209250635a05180f60e01b8214918215613620575b50519015158152f35b909150637965db0b60e01b811490811561363d575b509038613617565b6301ffc9a760e01b14905038613635565b84903461041e578160031936011261041e5780600160209252f35b6001600160401b03811161367c57604052565b634e487b7160e01b600052604160045260246000fd5b61010081019081106001600160401b0382111761367c57604052565b604081019081106001600160401b0382111761367c57604052565b608081019081106001600160401b0382111761367c57604052565b90601f801991011681019081106001600160401b0382111761367c57604052565b6001600160401b03811161367c5760051b60200190565b602435906001600160a01b0382168203610a2c57565b600435906001600160a01b0382168203610a2c57565b602080600319830112610a2c57600435916001600160401b038311610a2c5780602384011215610a2c57826004013561378081613705565b9361378e60405195866136e4565b81855260248486019260051b820101928311610a2c57602401905b8282106137b7575050505090565b81356001600160a01b0381168103610a2c5781529083019083016137a9565b600435908115158203610a2c57565b6040906003190112610a2c576004356001600160a01b0381168103610a2c57906024358015158103610a2c5790565b6080906003190112610a2c576001600160a01b036004358181168103610a2c57916024358281168103610a2c57916044359081168103610a2c579060643590565b6004359060ff82168203610a2c57565b60005b8381106138785750506000910152565b8181015183820152602001613868565b906020916138a181518092818552858086019101613865565b601f01601f1916010190565b9060ff825116815260e0806138d16020850151610100806020870152850190613888565b9360408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151151591015290565b6080906003190112610a2c576001600160a01b03906004358281168103610a2c57916024359081168103610a2c57906044359060643590565b6060906003190112610a2c576001600160a01b03906004358281168103610a2c57916024359081168103610a2c579060443590565b60cd548110156139b35760cd6000527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e0190600090565b634e487b7160e01b600052603260045260246000fd5b80548210156139b35760005260206000200190600090565b60a0906003190112610a2c576001600160a01b03906004358281168103610a2c57916024358181168103610a2c57916044358281168103610a2c57916064359081168103610a2c579060843590565b9181601f84011215610a2c578235916001600160401b038311610a2c576020808501948460051b010111610a2c57565b6040600319820112610a2c576001600160401b0391600435838111610a2c5782613a8c91600401613a30565b93909392602435918211610a2c57613aa691600401613a30565b9091565b6001600160401b03811161367c57601f01601f191660200190565b6020908160408183019282815285518094520193019160005b828110613aec575050505090565b83516001600160a01b031685529381019392810192600101613ade565b3360009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602090815260408083205490929060ff1615613b4b57505050565b613b5433613ede565b9080845190613b62826136c9565b60428252848201926060368537825115613cef5760308453825190600191821015613cef5790607860218501536041915b818311613c8157505050613c3f576048613c3b938693613c1f93613c10985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a860152613be7815180928c603789019101613865565b8401917001034b99036b4b9b9b4b733903937b6329607d1b603784015251809386840190613865565b010360288101875201856136e4565b5192839262461bcd60e51b845260048401526024830190613888565b0390fd5b60648486519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f81166010811015613cdb576f181899199a1a9b1b9c1cb0b131b232b360811b901a613cb18587613ecd565b5360041c928015613cc757600019019190613b93565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b60009080825260209060658252604092838120338252835260ff848220541615613d2d5750505050565b613d3633613ede565b91845190613d43826136c9565b60428252848201926060368537825115613cef5760308453825190600191821015613cef5790607860218501536041915b818311613dc857505050613c3f576048613c3b938693613c1f93613c10985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a860152613be7815180928c603789019101613865565b909192600f81166010811015613cdb576f181899199a1a9b1b9c1cb0b131b232b360811b901a613df88587613ecd565b5360041c928015613cc757600019019190613d74565b906040613e4c9260009080825260656020528282209360018060a01b03169384835260205260ff8383205416613e4f575b8152609760205220614071565b50565b808252606560205282822084835260205282822060ff1981541690553384827ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8580a4613e3f565b81810292918115918404141715613eaa57565b634e487b7160e01b600052601160045260246000fd5b91908201809211613eaa57565b9081518110156139b3570160200190565b60405190606082018281106001600160401b0382111761367c57604052602a82526020820160403682378251156139b3576030905381516001908110156139b357607860218401536029905b808211613f7e575050613f3a5790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f81166010811015613fd7576f181899199a1a9b1b9c1cb0b131b232b360811b901a613fad8486613ecd565b5360041c918015613fc2576000190190613f2a565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fd5b9190600183016000908282528060205260408220541560001461406b57845494600160401b8610156140575783614047614030886001604098999a018555846139c9565b819391549060031b91821b91600019901b19161790565b9055549382526020522055600190565b634e487b7160e01b83526041600452602483fd5b50925050565b9060018201906000928184528260205260408420549081151560001461415a576000199180830181811161414657825490848201918211614132578082036140fd575b505050805480156140e9578201916140cc83836139c9565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b61411d61410d61403093866139c9565b90549060031b1c928392866139c9565b905586528460205260408620553880806140b4565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b87526011600452602487fd5b5050505090565b6000198114613eaa5760010190565b80518210156139b35760209160051b010190565b60405190614191826136ae565b60118252701b585c9ad95d081b9bdd081b1a5cdd1959607a1b6020830152565b156141b95750565b60405162461bcd60e51b815260206004820152908190613c3b906024830190613888565b6001600160a01b03808216600090815260cc6020526040812080549194939260019261420e9060ff16610834614184565b841685520160205260408320805460ff811661415a5760ff1916600117905560cb60205260408320805490600160401b82101561429b57826115e68361427c9360017f3ab23ab0d51cccc0c3085aec51f99228625aa1a922b3a8ca89a26b0f2027a1a59897960181556139c9565b604080516001600160a01b03928316815292909116602083015290a190565b634e487b7160e01b85526041600452602485fd5b9190826080910312610a2c578151916020810151916060604083015192015190565b604051906142de826136ae565b600e82526d39b730b839b437ba1032b93937b960911b6020830152565b1561430257565b634e487b7160e01b600052600160045260246000fd5b604080516361bfb47160e11b81523360048201526001600160a01b03838116939091608081602481885afa80156145775760008092819261454d575b50614361906125c26142d1565b61453c57614370903383614c94565b8360005260209260cc845260019384826000200133600052815281600020805460ff81161561452f5760ff1916905560cb8152816000209482519081968791848254948581520191600052846000209060005b8686821061451757505050506143db925003866136e4565b845194859660005b8881106144e5575b5050506143ff859660cb93949596106142fb565b3360005252806000209283549460001995868101908111613eaa5761445b918361442c61443693896139c9565b93905492896139c9565b92909360031b1c169082549060031b9160018060a01b03809116831b921b1916179055565b83549384156144cf577fe699a64c18b07ac5b7301aa273f36a2287239eb9501d81950672794afba29a0d956144c795019161449683836139c9565b815460039190911b9290921b19909116905555516001600160a01b0390911681523360208201529081906040820190565b0390a1600090565b634e487b7160e01b600052603160045260246000fd5b81876144f18386614170565b5116146145065761450190614161565b6143e3565b96506143ff915060cb9050386143eb565b83548b1685528b9550909301929181019181016143c3565b5050505050505050600090565b8351631a4e452560e31b8152600490fd5b9050614361925061456c915060803d81116127425761272f81836136e4565b509290929190614354565b84513d6000823e3d90fd5b9190826040910312610a2c576020825192015190565b60d3548110156139b35760d360005260031b7f915c3eb987b20e1af620c1403197bf687fb7f18513b3a73fde6e78c7072c41a60190600090565b90600182811c92168015614602575b60208310146145ec57565b634e487b7160e01b600052602260045260246000fd5b91607f16916145e1565b818110614617575050565b6000815560010161460c565b9190601f811161463257505050565b61465e926000526020600020906020601f840160051c83019310614660575b601f0160051c019061460c565b565b9091508190614651565b906147ad5760ff82511660ff19825416178155600191828201602080830151948551916001600160401b03831161367c576146af836146a986546145d2565b86614623565b80601f8411600114614739575091808060e095936007979561465e9a60009461472e575b50501b916000199060031b1c19161790555b60408101516002850155606081015160038501556080810151600485015560a0810151600585015560c081015160068501550151151591019060ff801983541691151516179055565b0151925038806146d3565b9193949596601f1984168660005283600020936000905b8282106147965750509260e09592859261465e9a9996600799961061477d575b505050811b0190556146e5565b015160001960f88460031b161c19169055388080614770565b808886978294978701518155019601940190614750565b634e487b7160e01b600052600060045260246000fd5b60d35490600160401b82101561367c57611a7482600161465e940160d355614598565b60ff6000199116019060ff8211613eaa57565b908082146148cd5761480b81546145d2565b906001600160401b03821161367c57819061482a826146a986546145d2565b600090601f831160011461486157600092614856575b50508160011b916000199060031b1c1916179055565b015490503880614840565b81526020808220858352818320935090601f1985169083905b8282106148b457505090846001959493921061489b575b505050811b019055565b015460001960f88460031b161c19169055388080614891565b849581929585015481556001809101960194019061487a565b5050565b60d35480156144cf57600019016148e781614598565b6147ad576007600091828155826001820161490281546145d2565b8061492e575b50506002820155826003820155826004820155826005820155826006820155015560d355565b82601f8211600114614946575050555b823880614908565b9091808252614964601f60208420940160051c84016001850161460c565b555561493e565b60ff1660ff8114613eaa5760010190565b6040519061498982613692565b8160e0600091828152606060208201528260408201528260608201528260808201528260a08201528260c08201520152565b906040516149c881613692565b809260ff81541682526001808201604051916000918054906149e9826145d2565b80865291838116908115614a945750600114614a58575b50505060e09282614a1760ff9460079403826136e4565b6020860152600281015460408601526003810154606086015260048101546080860152600581015460a0860152600681015460c08601520154161515910152565b90925060005260209182600020916000925b828410614a81575050508201018282614a17614a00565b8054868501860152928401928101614a6a565b60ff191660208088019190915292151560051b86019092019350859250849150614a179050614a00565b60ff90614ac961497c565b501660005260d4602052614ae76105c360ff60406000205416614598565b90565b91908110156139b35760051b0190565b356001600160a01b0381168103610a2c5790565b90816020910312610a2c57518015158103610a2c5790565b60018060a01b038091169060009082825260209060cc825260409460ff868520541615614c8357169283835260cc825260ff858420541615614c725780835260cc825260ff8584205460081c169380845260ff8685205460081c16928651928184600481637f4e225760e11b948582525afa938415614c68578694614c47575b508190600489518095819382525afa948515614c3c5794614c1d575b505015614bfd578203614bef5715614be257614bdd90614abe565b015190565b60609150614bdd90614abe565b5060a09150614bdd90614abe565b919250508103614c1257614bdd608091614abe565b614bdd60c091614abe565b614c34929450803d10610a6857610a5a81836136e4565b913880614bc2565b8751903d90823e3d90fd5b82919450614c6190823d8411610a6857610a5a81836136e4565b9390614ba6565b88513d88823e3d90fd5b84516334b04fe360e11b8152600490fd5b85516334b04fe360e11b8152600490fd5b9160018060a01b038093169160009280845260cc602052604094614cc060ff8787205416610834614184565b81855260cc6020528060018787200193169283865260205260ff868620541615614d6457859260849160dc541684519586948593634e79238f60e01b85526004850152602484015260448301528660648301525afa918215614d595791614d3a575b50614d2a5750565b51633a23d82560e01b8152600490fd5b614d519150823d84116109515761094181836136e4565b905038614d22565b8351903d90823e3d90fd5b505050505050565b60db5460405163fc57d4df60e01b81526001600160a01b0392831660048201819052929091602091829184916024918391165afa918215614e4a57600092614e68575b5081928215614e5657816004916040519283809263313ce56760e01b82525afa918215614e4a57600092614e12575b505060ff1660128110614df057505090565b601290810392508211613eaa57604d8211613eaa57614ae791600a0a90613e97565b81813d8311614e43575b614e2681836136e4565b8101031261041e57519060ff821682036106ac575060ff38614dde565b503d614e1c565b6040513d6000823e3d90fd5b6040516348fa9b2b60e11b8152600490fd5b90918282813d8311614e90575b614e7f81836136e4565b810103126106ac5750519038614daf565b503d614e75565b90816020910312610a2c57516001600160a01b0381168103610a2c579056fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a585dbb3f830c4325b9ffb1ad42c16ada76c518747b0fb7ee297b261fc6a0f29f71aec636243f9709bb0007ae15e9afb8150ab01716d75fd7573be5cc096e03b0a264697066735822122090c855cbdf6448cc0cc53638013e71dc558d7626b6f9e5db73fffb1f9cbc0a0364736f6c63430008130033";
17
+ static readonly bytecode = "0x608080604052346100165761502b908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b60009260e08435811c9283627e3dd21461370d5750826301ffc9a7146136995782630914888d1461350c578263098c76f5146134cc5782630df9ef2c14613488578263141a7a651461346857826318c882a5146133565782631dbd1aa9146132d057826321af456914610e3b57826324008a621461329a578263243cdb5514613272578263248a9ca31461324657826324a3d62214612847578263250d71e7146130e15782632a6a6065146130a35782632d70db7814612fa35782632f2ff15d14612ef9578263317b0b7714612e885782633278eb0414612e5e57826336085d4614612d7b578263360f5a0114612d5157826336568abe14612cbf578263391957d714612b035782633bcf7ec1146129d55782633bd38381146129235782633c94786f146128fb57826347bd11ad146128db5782634a584432146128a25782634ada90af146128715782634cab0f2d146128475782634e79238f146127c75782634ede8e6a146127a75782634ef4c3e11461256d57826352d84d1e14612541578263554994f21461251757826355ee1fe11461249a5782635ec88c79146123eb5782635f5af1aa1461222a5782635f87769b146121a05782635fc7e71e14611fd1578263607ef6c114611ea75782636322b51314611bc85782636d154ea514611b89578263731f0c2b14611b4a57826373a19dc5146118ab5782637dc0d1d014611881578263840f82ac1461182857826384b927201461151357826387f76303146114eb5782638e8f294b146114915782638ebf63641461136c5782639010d07c1461132a57826391d14854146112e3578263929fe9a11461128c57826395ee8208146112655782639cc7becf1461122c5782639d1b5a0a146112025782639d8ef7e6146111d3578263a217fddf146111b7578263aa6fb5c014611177578263abfceffc146110fd578263ac0b0bb7146110d5578263b0772d0b14611048578263b3030a6314611008578263bc1fc18a14610fcc578263bdacb30314610f8c578263bdcdc25814610f35578263c299823814610e65578263c42e5b2b14610e3b578263c7108b4314610e11578263c91033b014610dee578263ca15c87314610dc5578263ce8b680514610da5578263d02f735114610c58578263d1eb167e14610c24578263d33219b414610bfa578263d547741f14610bbe578263da3d454c146107f457508163dce154491461079b578163e4295d4114610755578163e63ab1e91461072c578163e6653f3d14610705578163e8755446146106e6578163e8762110146106c7578163eabe7d91146106a9578163ede4edd01461067c578163eebc3a99146105f8578163f21d1250146105a8578163f794062e1461056a578163f8717d401461043a575063f96dae0a1461040f57600080fd5b3461043657816003193601126104365760d15490516001600160a01b039091168152602090f35b5080fd5b8383346104365761044a36613b1f565b90918580526020966065885285872033600052885260ff866000205416158061053d575b61052f5781158015610525575b6105175750855b8181106104925787878751908152f35b806104a1610512928587614ba9565b6001600160a01b039035816104bf6104ba85888c614ba9565b614bb9565b168a5260ce8b52888a20556104d86104ba83868a614ba9565b167fb65effed4883ea5c94b76be51cffe6df198456313627302a7726e8a3de19dbea8a61050684888a614ba9565b358a51908152a2614220565b610482565b855163b4fa3fb360e01b8152fd5b508282141561047b565b8551633a73e24b60e21b8152fd5b50600080516020614fb683398151915287526065885285872033600052885260ff8660002054161561046e565b5050346104365760203660031901126104365760209160ff9082906001600160a01b036105956137f1565b16815260cc855220541690519015158152f35b505034610436576020366003190112610436576105f4906105e16105db6105cd613914565b6105d5614a3b565b50614657565b50614a7a565b905191829160208352602083019061396c565b0390f35b838334610436576060366003190112610436577fc435a64a252a70e1626526c36dd5dba2119d3d877951ff6fefdea93d062ade9c60c0602094356024359060443590610642613bc8565b60ca549260cf5460d054928060ca558260cf558460d05588519586528a860152878501526060840152608083015260a0820152a151908152f35b505034610436576020366003190112610436576020906106a261069d6137f1565b6143d7565b9051908152f35b83346106c4576106c16106bb36613a06565b91614d53565b80f35b80fd5b50503461043657816003193601126104365760209060d0549051908152f35b50503461043657816003193601126104365760209060c9549051908152f35b50503461043657816003193601126104365760209060ff60d55460a81c1690519015158152f35b50503461043657816003193601126104365760209051600080516020614f968339815191528152f35b90503461079757602036600319011261079757803591610773613bc8565b670de0b6b3a7640000831061078a57505060df5580f35b51635012e14560e01b8152fd5b8280fd5b5050346104365780600319360112610436576107b56137f1565b6001600160a01b03908116835260cb602052818320805460243594908510156106c457506020936107e591613a88565b92905490519260031b1c168152f35b84918434610bba5760ff61080736613a06565b929091955416610bab5760018060a01b03908186169182885260209660d7885260ff868a205416610b9b5783895260cc885261085160ff878b20541661084b614243565b90614270565b83895260cc88526001868a2001928281169384600052895260ff87600020541615610b50575b506024888360db541688519283809263fc57d4df60e01b8252898d8301525afa908115610a86578a91610b23575b5015610b135783895260d988528589205480610a90575b508551637f4e225760e11b81529780898981885afa8015610a86578798998b98979891610a59575b5015610979575b50509060849160dc541684519586948593634e79238f60e01b85528a850152602484015289604484015260648301525afa90811561096f578491610940575b50610933578280f35b51633a23d82560e01b8152fd5b6109609150823d8411610968575b61095881836137a3565b810190614641565b90508461092a565b503d61094e565b82513d86823e3d90fd5b9091929394516395dd919360e01b815233898201528181602481895afa918215610a4f579087918b93610a10575b5050906109c96109cf926109c3670de0b6b3a764000095614e2b565b92613f7f565b90613f56565b0460df5490818015159182610a06575b50506109f0579081869493926108eb565b8660249187519163e4504b1f60e01b8352820152fd5b109050818a6109df565b8193508092503d8311610a48575b610a2881836137a3565b81010312610a435751856109c9670de0b6b3a76400006109a7565b600080fd5b503d610a1e565b88513d8c823e3d90fd5b610a799150823d8411610a7f575b610a7181836137a3565b810190614bcd565b8b6108e4565b503d610a67565b87513d8c823e3d90fd5b86516308f7a6e360e31b815289818a81895afa8015610b095787908c90610ad8575b610abc9250613f7f565b1015610ac857896108bc565b85516353977d1f60e01b81528790fd5b50508981813d8311610b02575b610aef81836137a3565b81010312610a435786610abc9151610ab2565b503d610ae5565b88513d8d823e3d90fd5b85516348fa9b2b60e11b81528790fd5b90508881813d8311610b49575b610b3a81836137a3565b81010312610a4357518a6108a5565b503d610b30565b843303610b8b57610b61903361429c565b5083895260cc88526001868a2001836000528852610b8560ff8760002054166143ba565b89610877565b86516318e2bacb60e11b81528890fd5b855163095865a360e11b81528790fd5b505051632bc2c01360e21b8152fd5b8380fd5b848285346107975780600319360112610797576106c19135610bf56001610be36137db565b93838752606560205286200154613dc2565b613ecd565b5050503461043657816003193601126104365760dd5490516001600160a01b039091168152602090f35b505050346104365760203660031901126104365760ff8160209382610c47613914565b16815260d485522054169051908152f35b9092915034610bba5760ff90610c6d36613aa0565b5050509290915416610bab5760ff60d55460b81c16610d96576001600160a01b0390811680865260cc6020908152848720549193909160ff1680610d84575b610cb89061084b614243565b84519382858881635fe3b56760e01b948582525afa948515610d7a579087918996610d53575b5086519081529183918391829087165afa918215610d4957908392918892610d1c575b505016911603610d0f578280f35b51630c73eb0560e01b8152fd5b610d3b9250803d10610d42575b610d3381836137a3565b810190614f56565b3880610d01565b503d610d29565b85513d89823e3d90fd5b859391965091610d708593843d8611610d4257610d3381836137a3565b9691935091610cde565b86513d8a823e3d90fd5b5080831687528487205460ff16610cac565b5050516307f4077b60e11b8152fd5b5050503461043657816003193601126104365760209060ca549051908152f35b509050346107975760203660031901126107975760209282913581526097845220549051908152f35b5050503461043657816003193601126104365760209060ff60d354169051908152f35b5050503461043657816003193601126104365760209051600080516020614fb68339815191528152f35b5050503461043657816003193601126104365760d85490516001600160a01b039091168152602090f35b8385346106c45790610e7636613807565b91825190610e83826137c4565b610e8f845191826137a3565b828152610e9b836137c4565b6020958287019491601f1901368637835b828110610ef15750505083519485948186019282875251809352850193925b828110610eda57505050500390f35b835185528695509381019392810192600101610ecb565b9596949592949392610f2a90610f1a336001600160a01b03610f13848761422f565b511661429c565b610f24828961422f565b52614220565b969594929396610eac565b838591346107975760ff610f48366138d3565b959293919490505416610f7d5760ff60d55460b01c16610f6e57506106c1939450614d53565b5163cd1fda9f60e01b81528590fd5b51632bc2c01360e21b81528590fd5b84346106c45760203660031901126106c457610fa66137f1565b610fae613bc8565b60018060a01b03166001600160601b0360a01b60dd54161760dd5580f35b50505034610436578160031936011261043657602090517f750fc7a006f78e0009a09aa4bf97546d802b8f6c9d27e623dd7cc78951321eaf8152f35b84346106c45760203660031901126106c4576110226137f1565b61102a613bc8565b60018060a01b03166001600160601b0360a01b60da54161760da5580f35b8385346106c457806003193601126106c457815191829160cd5480855260208095019460cd83527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e92905b8282106110b5576105f486866110ab828b03836137a3565b5191829182613b84565b83546001600160a01b031687529586019560019384019390910190611093565b5050503461043657816003193601126104365760209060ff60d55460b81c1690519015158152f35b505050346104365760209081600319360112610797576001600160a01b0392836111256137f1565b16815260cb8352818120938251908194808754938481520196845280842093915b83831061115e576105f487876110ab828c03836137a3565b8454811688529681019660019485019490920191611146565b505050346104365760203660031901126104365760209160ff9082906001600160a01b036111a36137f1565b16815260cc8552205460081c169051908152f35b5050503461043657816003193601126104365751908152602090f35b505050346104365780600319360112610436576020906106a26111f46137f1565b6111fc6137db565b90614be5565b5050503461043657816003193601126104365760d15490516001600160a01b039091168152602090f35b505050346104365760203660031901126104365760209181906001600160a01b036112556137f1565b16815260ce845220549051908152f35b50505034610436576020366003190112610436576020906106a26112876137f1565b614e2b565b505050346104365780600319360112610436576020916112aa6137f1565b906001600160a01b03906001908490836112c26137db565b16815260cc875220019116600052825260ff81600020541690519015158152f35b50905034610797578160031936011261079757816020936113026137db565b9235815260658552209060018060a01b0316600052825260ff81600020541690519015158152f35b509050346107975781600319360112610797576020926113569135815260978452826024359120613a88565b905491519160018060a01b039160031b1c168152f35b5083833461043657602092836003193601126107975761138a613895565b90811561141b578380526065855282842033600052855260ff8360002054161561140d575060a0600080516020614fd6833981519152915b15159360d55460ff60b01b8660b01b169060ff60b01b19161760d555835190815260608682015260086060820152672a3930b739b332b960c11b60808201528484820152a151908152f35b8251634755657960e01b8152fd5b8380526065855282842033600052855260ff8360002054161580611464575b611456575060a0600080516020614fd6833981519152916113c2565b8251630e8e849b60e41b8152fd5b50600080516020614f9683398151915284526065855282842033600052855260ff8360002054161561143a565b505050346104365760203660031901126104365760609181906001600160a01b036114ba6137f1565b16815260cc602052209060ff600283549301541660ff8251938181161515855260081c166020840152151590820152f35b5050503461043657816003193601126104365760209060ff60d55460b01c1690519015158152f35b508383346104365760803660031901126104365761152f6137f1565b926024359060ff821694858303610a43576044359160643591611550613bc8565b60018060a01b03908181169586895260209960cc8b5260ff898b2054166117c5571561181857888089518c810190637f4e225760e11b82528781526115948161376d565b519082865af13d15611813573d6115aa81613b69565b906115b78b5192836137a3565b81528a8c3d92013e5b80611809575b156117d55786895260cc8a526001888a209161ff0083549160081b169061ffff1916171790558760cd54905b81811061179f5750600160401b81101561178a579061161a826001611639940160cd55613a3b565b90919082549060031b9160018060a01b03809116831b921b1916179055565b61167d86516116478161376d565b601c81527f626c6f636b206e756d62657220657863656564732033322062697473000000008a8201526401000000004310614270565b60da541690813b156117865784604488928389519586948593633ace041560e11b855284015263ffffffff431660248401525af1801561177c5786889392869261175a575b50507f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f6837fb65effed4883ea5c94b76be51cffe6df198456313627302a7726e8a3de19dbea957fcf583bb0c569eb967f806b11601c4cb93c10310485c67add5f8362c2f212321f828a51868152a1838a5260d9825280898b20558851908152a283865260ce825280858720558451908152a251908152f35b90929493506117699150613728565b611778579085908386896116c2565b8480fd5b85513d88823e3d90fd5b8680fd5b604184634e487b7160e01b6000525260246000fd5b87846117aa83613a3b565b90549060031b1c16146117c5576117c090614220565b6115f2565b8851634d5eeb4960e01b81528590fd5b875162461bcd60e51b81528085018b9052600e60248201526d31b7b73a3930b1ba1032b93937b960911b6044820152606490fd5b50813b15156115c6565b6115c0565b8751631b47388560e11b81528490fd5b50905034610797576020366003190112610797576118446137f1565b61184c613bc8565b6001600160a01b03169182156118745750506001600160601b0360a01b60d154161760d15580f35b5163e6c4247b60e01b8152fd5b5050503461043657816003193601126104365760db5490516001600160a01b039091168152602090f35b848483346107975783600319360112610797576118c6613914565b90602435916001600160401b03831161177857366023840112156117785782820135956118f287613b69565b916118ff865193846137a3565b878352602097888401953660248383010111611b465781899260248c930189378501015260443592606435956084359160a43593898b8d60c43598611942613bc8565b60d35415611ae7575b60ff8095169b8c845260d483528585852054169081158015611adb575b8015611ac5575b15611a4857505093838a979360d48f948f9b987f878e48ed20dc6724a982e6ed357e7ad8d32f3a8550cc2d946046e3a708545e799f9d9a9660c09f8f928f92918e8e600194611a1e9f978e6119ef9951986119c98a613751565b89528a8901528c8801526060870152608086015260a085015260c0840152820152614882565b6119fc8560d354166148a5565b9b835252209716968760ff198254161790558c51928392839251928391613924565b8101039020988a519586528c860152898501526060840152608083015260a0820152a35b51908152f35b94508c9d9750809c9350611a60919b96959250614657565b50541603611ab7575092611ab29897959260019592611aac98958e8d519b611a878d613751565b8c528b01528b8a01526060890152608088015260a087015260c0860152840152614657565b90614729565b611a42565b8a5163e70616f160e01b8152fd5b508d87611ad184614657565b505416141561196f565b5060d354821015611968565b611b418451611af581613751565b8481528551611b038161376d565b6007815266125b9d985b1a5960ca1b858201528482015284868201528460608201528460808201528460a08201528460c08201528483820152614882565b61194b565b8880fd5b505050346104365760203660031901126104365760209160ff9082906001600160a01b03611b766137f1565b16815260d6855220541690519015158152f35b505050346104365760203660031901126104365760209160ff9082906001600160a01b03611bb56137f1565b16815260d7855220541690519015158152f35b508383346104365761012036600319011261043657611be56137f1565b92611bee6137db565b936044356001600160a01b0381811691829003610a435760643590808216809203610a435760843593818516809503610a4357875460ff8160081c161596878098611e9a575b8015611e83575b15611e295750918899611cba899a99937fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e229560ff19908b8d6001848416179055611e18575b508b80528560209c8d93606585528783832091169485600052528d60ff83600020541615611dde575b508052505060978b52848d206140ab565b506001600160601b0360a01b958660d154161760d155670de0b6b3a764000060d25516808560db54161760db558151906000825288820152a18160da54161760da5560dc54161760dc557f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd98360a4358060c95581519087825285820152a17fc435a64a252a70e1626526c36dd5dba2119d3d877951ff6fefdea93d062ade9c60c060c4358060ca5560e4358060cf5561010435908160d0556801158e460913d0000060df55875192898452878401528888840152606083015287608083015260a0820152a1611da7578280f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a181808280f35b6065908280525220826000528c52600186600020918254161790558c813391600080516020614f768339815191528180a48d858e8d611ca9565b61ffff1916610101178c558e611c80565b60849060208a519162461bcd60e51b8352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152fd5b50303b158015611c3b5750600160ff831614611c3b565b50600160ff831610611c34565b5090503461079757611eb836613b1f565b90939294918680526020936065855283882033600052855260ff8460002054161580611fa4575b611f965781158015611f8c575b611f7e5750865b818110611efe578780f35b8082611f0e611f7993868a614ba9565b3589611f266104ba8560018060a01b03958694614ba9565b168b5260d98852868b2055611f3f6104ba83868c614ba9565b167f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f687611f6d84888c614ba9565b358851908152a2614220565b611ef3565b835163b4fa3fb360e01b8152fd5b5082821415611eec565b8351633a73e24b60e21b8152fd5b50600080516020614fb683398151915288526065855283882033600052855260ff84600020541615611edf565b8482853461079757611fe236613aa0565b939092915060018060a01b038091169081885260209260cc84528160ff888b2054161591821561218d575b505061217d5785516395dd919360e01b8152938116878501819052928085602481865afa948515612173578995612144575b508651630c71782360e41b815281818a81875afa918215610a4f579088949392918b92612127575b50501561208957505050501061207c57505080f35b5163e46c155960e01b8152fd5b60849060dc54169383519485938492634e79238f60e01b84528b840152602483015260006044830152600060648301525afa90811561211d5786916120fe575b50156120ef576120e4670de0b6b3a76400009160c954613f56565b041061207c57505080f35b50505163095bf33360e01b8152fd5b6121159150843d86116109685761095881836137a3565b9050866120c9565b84513d88823e3d90fd5b61213d9250803d10610a7f57610a7181836137a3565b8a80612067565b9080955081813d831161216c575b61215c81836137a3565b81010312610a435751938961203f565b503d612152565b87513d8b823e3d90fd5b85516334b04fe360e11b81528790fd5b168952508588205460ff1615818a61200d565b8482853461079757606036600319011261079757826121bd6137f1565b6121c5613bc8565b60da546001600160a01b039190821690813b15610bba578360649286519788958694635f87769b60e01b86521690840152602435602484015260443560448401525af19081156122215750612218575080f35b6106c190613728565b513d84823e3d90fd5b508383346104365760209283600319360112610797576122486137f1565b612250613bc8565b6001600160a01b039081169182156123dd575090816123367f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e9360d5541692600080516020614f968339815191528088526065808a526122b56001898b200154613dc2565b818952808a52878920868a528a5260ff888a205416612398575b81895260978a526122e286898b20614130565b50826001600160601b0360a01b60d554161760d555818952808a5261230c6001898b200154613dc2565b818952808a52878920838a528a5260ff888a20541615612362575b508752609788528587206140ab565b5060d55484516001600160a01b0393841681529116909116602082015280604081015b0390a151908152f35b81895289528688208289528952868820805460ff19166001179055338282600080516020614f768339815191528b80a489612327565b818952808a52878920868a528a52878920805460ff191690553386837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8c80a46122cf565b835163e6c4247b60e01b8152fd5b5083833461043657602036600319011261043657806124086137f1565b608460018060a01b03918260dc541684519788948593634e79238f60e01b855216908301528660248301528660448301528660648301525afa92831561248f57829361246a575b50516000815260208101919091526040810191909152606090f35b816124879294506105f493503d85116109685761095881836137a3565b92909161244f565b5051903d90823e3d90fd5b5050503461043657602036600319011261043657906020917fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e226124db6137f1565b6124e3613bc8565b60db80546001600160a01b039283166001600160a01b03198216811790925584519216825260208201528060408101612359565b5050503461043657816003193601126104365760dc5490516001600160a01b039091168152602090f35b5090503461079757602036600319011261079757359160cd548310156106c45750611356602092613a3b565b9092915034610bba5760ff9061258236613a06565b93909254166127975760018060a01b038091169081875260209260d6845260ff86892054166127875782885260cc84526125c460ff878a20541661084b614243565b85516361bfb47160e11b815291811687830181905291608081602481875afa801561217357898a928b9261274d575b5061260790612600614390565b9015614270565b848a5260cc86526001888b2001848b52865260ff888b205416159182612744575b508161273b575b506126f1575b505080865260ce825283862054159283159283612667575b505050501561265a578280f35b516354db2d5d60e11b8152fd5b92935090918361267e575b5050503880808061264d565b84516318160ddd60e01b8152929350909181818781875afa908115610d495787916126c3575b5060ce926126b191613f7f565b92865252818420541015388080612672565b90508181813d83116126ea575b6126da81836137a3565b81010312611786575160ce6126a4565b503d6126d0565b82330361272b57612702903361429c565b5081875260cc8352600185882001908752825261272460ff85882054166143ba565b3880612635565b855163094d2b6d60e21b81528790fd5b9050153861262f565b15915038612628565b90506126079250612775915060803d8111612780575b61276d81836137a3565b81019061436e565b5092909291906125f3565b503d612763565b8551636be9245d60e11b81528790fd5b50505051632bc2c01360e21b8152fd5b5050503461043657816003193601126104365760209060cf549051908152f35b5083833461043657806127d9366139cd565b60dc548551634e79238f60e01b81526001600160a01b03958616998101998a5293851660208a0152604089019290925260608801529095869290839003608001918391165afa92831561248f57829361246a5750516000815260208101919091526040810191909152606090f35b5050503461043657816003193601126104365760d55490516001600160a01b039091168152602090f35b5050503461043657816003193601126104365760609060ca549060cf549060d0549181519384526020840152820152f35b505050346104365760203660031901126104365760209181906001600160a01b036128cb6137f1565b16815260d9845220549051908152f35b5050503461043657816003193601126104365760209060d2549051908152f35b5050503461043657816003193601126104365760209060ff60d55460a01c1690519015158152f35b84828534610797576020612936366139cd565b60dc5486516354f2052160e11b81526001600160a01b039586169881019889529385166020890152604088019290925260608701529094859290839003608001918391165afa9182156129cb578392612994575b6020838351908152f35b9091506020813d82116129c3575b816129af602093836137a3565b81010312610797576020925051908361298a565b3d91506129a2565b81513d85823e3d90fd5b50838334610436576129e6366138a4565b908115612a8357838052606560205282842033855260205260ff838520541615612a735781602095612a47600080516020614fd6833981519152948660a0955b600180881b03169889815260d68b52209060ff801983541691151516179055565b8451958652606087870152606086015263135a5b9d60e21b60808601521515938484820152a151908152f35b8251634755657960e01b81528590fd5b838052606560205282842033855260205260ff83852054161580612ad6575b612ac65781602095612a47600080516020614fd6833981519152948660a095612a26565b8251630e8e849b60e41b81528590fd5b50600080516020614f968339815191528452606560205282842033855260205260ff838520541615612aa2565b838583346104365760208060031936011261079757612b206137f1565b91612b29613bc8565b6001600160a01b03838116918215612cb1575094612c0f612c309260977feda98690e518e9a05f8ec6837663e188211b2da8f4906648b323f2c1d4434e29979860d8541695600080516020614fb6833981519152808b528a612be8600188606593848752612b9b838383200154613dc2565b8581528487528181208d8252875260ff8282205416612c6c575b858152878752612bc78d838320614130565b5060d880546001600160a01b0319168a179055858152848752200154613dc2565b818c52808352868c20858d52835260ff878d20541615612c36575b508a52528288206140ab565b50516001600160a01b03928316815292909116602083015281906040820190565b0390a180f35b818c528252858b20848c528252858b20805460ff19166001179055338482600080516020614f768339815191528e80a48b612c03565b8581528487528181208d82528752818120805460ff19169055338d877ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8480a4612bb5565b865163e6c4247b60e01b8152fd5b83858334610436578260031936011261043657612cda6137db565b90336001600160a01b03831603612cf657906106c19135613ecd565b608490602085519162461bcd60e51b8352820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152fd5b5050503461043657816003193601126104365760da5490516001600160a01b039091168152602090f35b8385346106c457806003193601126106c45760d354612d99816137c4565b91612da6845193846137a3565b81835260d3815260209283810192827f915c3eb987b20e1af620c1403197bf687fb7f18513b3a73fde6e78c7072c41a6855b838310612e3957505050508451938085019181865251809252858501958260051b8601019392955b828710612e0d5785850386f35b909192938280612e29600193603f198a8203018652885161396c565b9601920196019592919092612e00565b600888600192612e4c859b98999b614a7a565b81520192019201919096949396612dd8565b5050503461043657816003193601126104365760de5490516001600160a01b039091168152602090f35b5083833461043657602036600319011261043657823592612ea7613bc8565b8315612eeb57507f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd98160209460c954908060c955825191825286820152a151908152f35b905163ee0bdbdf60e01b8152fd5b84828534610797578060031936011261079757612f689135906097612f1c6137db565b9280865260209060658252612f3660018589200154613dc2565b808752606582528387206001600160a01b039095168088529482528387205460ff1615612f6c575b86525283206140ab565b5080f35b808752606582528387208588528252838720805460ff19166001179055338582600080516020614f768339815191528a80a4612f5e565b50838334610436576020928360031936011261079757612fc1613895565b90811561303f5783805260658552828420338552855260ff83852054161561140d575060a0600080516020614fd6833981519152915b15159360d55460ff60b81b8660b81b169060ff60b81b19161760d555835190815260608682015260056060820152645365697a6560d81b60808201528484820152a151908152f35b83805260658552828420338552855260ff83852054161580613078575b611456575060a0600080516020614fd683398151915291612ff7565b50600080516020614f96833981519152845260658552828420338552855260ff83852054161561305c565b8490843461079757602036600319011261079757602092506130c3613895565b6130cb613bc8565b15159160ff1981541660ff841617905551908152f35b508383346104365760209283600319360112610797576130ff613914565b613107613bc8565b60ff8060d3541691818061312261311d866148a5565b614657565b50541691169384875260d488528286882054169261314261311d866148a5565b5061314c85614657565b9290926132345791817f3142b1d766c6799b48d5083bdb3ef6e5a2d93657c1a073fba6c4cf5a93f3d0be9795938c97959383036131c0575b50505050875260d4835285872060ff1991828254161790556131a4614990565b84875260d483528587209081541690558451908152a251908152f35b60078261322b95838395541660ff198754161786556131e560018301600188016148b8565b60028201546002870155600382015460038701558082015490860155600581015460058601556006810154600686015501541691019060ff801983541691151516179055565b89808080613184565b634e487b7160e01b8a5289845260248afd5b509050346107975760203660031901126107975781602093600192358152606585522001549051908152f35b50505034610436576020366003190112610436576105f4906105e1613295613914565b614b7d565b505050346104365760ff6106c1916132b1366138d3565b5050506001600160a01b0316845260cc6020528320541661084b614243565b505050346104365781600319360112610436576132eb613bc8565b815b60d3549060ff918282161015613329576133249161330a82614657565b505416845260d4602052828420805460ff19169055614a2a565b6132ed565b8360ff8060d35416825b8183821610613340578380f35b6133519061334c614990565b614a2a565b613333565b5083833461043657613367366138a4565b9384156133f857838052606560205282842033855260205260ff83852054161561140d575060a0846133c860209685600080516020614fd6833981519152955b600180871b03169788815260d78a52209060ff801983541691151516179055565b83519485526060868601526006606086015265426f72726f7760d01b60808601521515938484820152a151908152f35b838052606560205282842033855260205260ff8385205416158061343b575b611456575060a0846133c860209685600080516020614fd6833981519152956133a7565b50600080516020614f968339815191528452606560205282842033855260205260ff838520541615613417565b5050503461043657816003193601126104365760209060df549051908152f35b84823461043657602036600319011261043657356001600160a01b03811690819003610436576134b6613bc8565b6001600160601b0360a01b60de54161760de5580f35b84346106c45760203660031901126106c4576134e66137f1565b6134ee613bc8565b60018060a01b03166001600160601b0360a01b60dc54161760dc5580f35b848285346107975761351d36613807565b613525613bc8565b805191845b60cd548110156136955761353d81613a3b565b90546001600160a01b0360039290921b1c811690875b86811061356b5750505061356690614220565b61352a565b8161357c82889495989a969a61422f565b5116908551916370a0823160e01b835280868401526020602493818186818d5afa90811561368b578d9161365a575b5015908115916135e4575b506135c793506135d3575b50614220565b96929694919094613553565b6135dd908861429c565b508a6135c1565b8091508c8951958680926305eff7ef60e21b8252868c8301528d5af1908115613650578c9161361c575b506135c7935015158c6135b6565b905083813d8311613649575b61363281836137a3565b81010312613645576135c792518c61360e565b8a80fd5b503d613628565b88513d8e823e3d90fd5b90508181813d8311613684575b61367181836137a3565b8101031261368057518d6135ab565b8c80fd5b503d613667565b89513d8f823e3d90fd5b8580f35b5090503461079757602036600319011261079757359063ffffffff60e01b82168092036107975760209250635a05180f60e01b82149182156136df575b50519015158152f35b909150637965db0b60e01b81149081156136fc575b5090386136d6565b6301ffc9a760e01b149050386136f4565b85903461043657816003193601126104365780600160209252f35b6001600160401b03811161373b57604052565b634e487b7160e01b600052604160045260246000fd5b61010081019081106001600160401b0382111761373b57604052565b604081019081106001600160401b0382111761373b57604052565b608081019081106001600160401b0382111761373b57604052565b90601f801991011681019081106001600160401b0382111761373b57604052565b6001600160401b03811161373b5760051b60200190565b602435906001600160a01b0382168203610a4357565b600435906001600160a01b0382168203610a4357565b602080600319830112610a4357600435916001600160401b038311610a435780602384011215610a4357826004013561383f816137c4565b9361384d60405195866137a3565b81855260248486019260051b820101928311610a4357602401905b828210613876575050505090565b81356001600160a01b0381168103610a43578152908301908301613868565b600435908115158203610a4357565b6040906003190112610a43576004356001600160a01b0381168103610a4357906024358015158103610a435790565b6080906003190112610a43576001600160a01b036004358181168103610a4357916024358281168103610a4357916044359081168103610a43579060643590565b6004359060ff82168203610a4357565b60005b8381106139375750506000910152565b8181015183820152602001613927565b9060209161396081518092818552858086019101613924565b601f01601f1916010190565b9060ff825116815260e0806139906020850151610100806020870152850190613947565b9360408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151151591015290565b6080906003190112610a43576001600160a01b03906004358281168103610a4357916024359081168103610a4357906044359060643590565b6060906003190112610a43576001600160a01b03906004358281168103610a4357916024359081168103610a43579060443590565b60cd54811015613a725760cd6000527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e0190600090565b634e487b7160e01b600052603260045260246000fd5b8054821015613a725760005260206000200190600090565b60a0906003190112610a43576001600160a01b03906004358281168103610a4357916024358181168103610a4357916044358281168103610a4357916064359081168103610a43579060843590565b9181601f84011215610a43578235916001600160401b038311610a43576020808501948460051b010111610a4357565b6040600319820112610a43576001600160401b0391600435838111610a435782613b4b91600401613aef565b93909392602435918211610a4357613b6591600401613aef565b9091565b6001600160401b03811161373b57601f01601f191660200190565b6020908160408183019282815285518094520193019160005b828110613bab575050505090565b83516001600160a01b031685529381019392810192600101613b9d565b3360009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602090815260408083205490929060ff1615613c0a57505050565b613c1333613f9d565b9080845190613c2182613788565b60428252848201926060368537825115613dae5760308453825190600191821015613dae5790607860218501536041915b818311613d4057505050613cfe576048613cfa938693613cde93613ccf985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a860152613ca6815180928c603789019101613924565b8401917001034b99036b4b9b9b4b733903937b6329607d1b603784015251809386840190613924565b010360288101875201856137a3565b5192839262461bcd60e51b845260048401526024830190613947565b0390fd5b60648486519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f81166010811015613d9a576f181899199a1a9b1b9c1cb0b131b232b360811b901a613d708587613f8c565b5360041c928015613d8657600019019190613c52565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b60009080825260209060658252604092838120338252835260ff848220541615613dec5750505050565b613df533613f9d565b91845190613e0282613788565b60428252848201926060368537825115613dae5760308453825190600191821015613dae5790607860218501536041915b818311613e8757505050613cfe576048613cfa938693613cde93613ccf985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a860152613ca6815180928c603789019101613924565b909192600f81166010811015613d9a576f181899199a1a9b1b9c1cb0b131b232b360811b901a613eb78587613f8c565b5360041c928015613d8657600019019190613e33565b906040613f0b9260009080825260656020528282209360018060a01b03169384835260205260ff8383205416613f0e575b8152609760205220614130565b50565b808252606560205282822084835260205282822060ff1981541690553384827ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8580a4613efe565b81810292918115918404141715613f6957565b634e487b7160e01b600052601160045260246000fd5b91908201809211613f6957565b908151811015613a72570160200190565b60405190606082018281106001600160401b0382111761373b57604052602a8252602082016040368237825115613a7257603090538151600190811015613a7257607860218401536029905b80821161403d575050613ff95790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f81166010811015614096576f181899199a1a9b1b9c1cb0b131b232b360811b901a61406c8486613f8c565b5360041c918015614081576000190190613fe9565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fd5b9190600183016000908282528060205260408220541560001461412a57845494600160401b86101561411657836141066140ef886001604098999a01855584613a88565b819391549060031b91821b91600019901b19161790565b9055549382526020522055600190565b634e487b7160e01b83526041600452602483fd5b50925050565b906001820190600092818452826020526040842054908115156000146142195760001991808301818111614205578254908482019182116141f1578082036141bc575b505050805480156141a85782019161418b8383613a88565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b6141dc6141cc6140ef9386613a88565b90549060031b1c92839286613a88565b90558652846020526040862055388080614173565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b87526011600452602487fd5b5050505090565b6000198114613f695760010190565b8051821015613a725760209160051b010190565b604051906142508261376d565b60118252701b585c9ad95d081b9bdd081b1a5cdd1959607a1b6020830152565b156142785750565b60405162461bcd60e51b815260206004820152908190613cfa906024830190613947565b6001600160a01b03808216600090815260cc602052604081208054919493926001926142cd9060ff1661084b614243565b841685520160205260408320805460ff81166142195760ff1916600117905560cb60205260408320805490600160401b82101561435a578261161a8361433b9360017f3ab23ab0d51cccc0c3085aec51f99228625aa1a922b3a8ca89a26b0f2027a1a5989796018155613a88565b604080516001600160a01b03928316815292909116602083015290a190565b634e487b7160e01b85526041600452602485fd5b9190826080910312610a43578151916020810151916060604083015192015190565b6040519061439d8261376d565b600e82526d39b730b839b437ba1032b93937b960911b6020830152565b156143c157565b634e487b7160e01b600052600160045260246000fd5b604080516361bfb47160e11b81523360048201526001600160a01b03838116939091608081602481885afa80156146365760008092819261460c575b5061442090612600614390565b6145fb5761442f903383614d53565b8360005260209260cc845260019384826000200133600052815281600020805460ff8116156145ee5760ff1916905560cb8152816000209482519081968791848254948581520191600052846000209060005b868682106145d6575050505061449a925003866137a3565b845194859660005b8881106145a4575b5050506144be859660cb93949596106143ba565b3360005252806000209283549460001995868101908111613f695761451a91836144eb6144f59389613a88565b9390549289613a88565b92909360031b1c169082549060031b9160018060a01b03809116831b921b1916179055565b835493841561458e577fe699a64c18b07ac5b7301aa273f36a2287239eb9501d81950672794afba29a0d956145869501916145558383613a88565b815460039190911b9290921b19909116905555516001600160a01b0390911681523360208201529081906040820190565b0390a1600090565b634e487b7160e01b600052603160045260246000fd5b81876145b0838661422f565b5116146145c5576145c090614220565b6144a2565b96506144be915060cb9050386144aa565b83548b1685528b955090930192918101918101614482565b5050505050505050600090565b8351631a4e452560e31b8152600490fd5b9050614420925061462b915060803d81116127805761276d81836137a3565b509290929190614413565b84513d6000823e3d90fd5b9190826040910312610a43576020825192015190565b60d354811015613a725760d360005260031b7f915c3eb987b20e1af620c1403197bf687fb7f18513b3a73fde6e78c7072c41a60190600090565b90600182811c921680156146c1575b60208310146146ab57565b634e487b7160e01b600052602260045260246000fd5b91607f16916146a0565b8181106146d6575050565b600081556001016146cb565b9190601f81116146f157505050565b61471d926000526020600020906020601f840160051c8301931061471f575b601f0160051c01906146cb565b565b9091508190614710565b9061486c5760ff82511660ff19825416178155600191828201602080830151948551916001600160401b03831161373b5761476e836147688654614691565b866146e2565b80601f84116001146147f8575091808060e095936007979561471d9a6000946147ed575b50501b916000199060031b1c19161790555b60408101516002850155606081015160038501556080810151600485015560a0810151600585015560c081015160068501550151151591019060ff801983541691151516179055565b015192503880614792565b9193949596601f1984168660005283600020936000905b8282106148555750509260e09592859261471d9a9996600799961061483c575b505050811b0190556147a4565b015160001960f88460031b161c1916905538808061482f565b80888697829497870151815501960194019061480f565b634e487b7160e01b600052600060045260246000fd5b60d35490600160401b82101561373b57611aac82600161471d940160d355614657565b60ff6000199116019060ff8211613f6957565b9080821461498c576148ca8154614691565b906001600160401b03821161373b5781906148e9826147688654614691565b600090601f831160011461492057600092614915575b50508160011b916000199060031b1c1916179055565b0154905038806148ff565b81526020808220858352818320935090601f1985169083905b82821061497357505090846001959493921061495a575b505050811b019055565b015460001960f88460031b161c19169055388080614950565b8495819295850154815560018091019601940190614939565b5050565b60d354801561458e57600019016149a681614657565b61486c57600760009182815582600182016149c18154614691565b806149ed575b50506002820155826003820155826004820155826005820155826006820155015560d355565b82601f8211600114614a05575050555b8238806149c7565b9091808252614a23601f60208420940160051c8401600185016146cb565b55556149fd565b60ff1660ff8114613f695760010190565b60405190614a4882613751565b8160e0600091828152606060208201528260408201528260608201528260808201528260a08201528260c08201520152565b90604051614a8781613751565b809260ff8154168252600180820160405191600091805490614aa882614691565b80865291838116908115614b535750600114614b17575b50505060e09282614ad660ff9460079403826137a3565b6020860152600281015460408601526003810154606086015260048101546080860152600581015460a0860152600681015460c08601520154161515910152565b90925060005260209182600020916000925b828410614b40575050508201018282614ad6614abf565b8054868501860152928401928101614b29565b60ff191660208088019190915292151560051b86019092019350859250849150614ad69050614abf565b60ff90614b88614a3b565b501660005260d4602052614ba66105db60ff60406000205416614657565b90565b9190811015613a725760051b0190565b356001600160a01b0381168103610a435790565b90816020910312610a4357518015158103610a435790565b60018060a01b038091169060009082825260209060cc825260409460ff868520541615614d4257169283835260cc825260ff858420541615614d315780835260cc825260ff8584205460081c169380845260ff8685205460081c16928651928184600481637f4e225760e11b948582525afa938415614d27578694614d06575b508190600489518095819382525afa948515614cfb5794614cdc575b505015614cbc578203614cae5715614ca157614c9c90614b7d565b015190565b60609150614c9c90614b7d565b5060a09150614c9c90614b7d565b919250508103614cd157614c9c608091614b7d565b614c9c60c091614b7d565b614cf3929450803d10610a7f57610a7181836137a3565b913880614c81565b8751903d90823e3d90fd5b82919450614d2090823d8411610a7f57610a7181836137a3565b9390614c65565b88513d88823e3d90fd5b84516334b04fe360e11b8152600490fd5b85516334b04fe360e11b8152600490fd5b9160018060a01b038093169160009280845260cc602052604094614d7f60ff878720541661084b614243565b81855260cc6020528060018787200193169283865260205260ff868620541615614e2357859260849160dc541684519586948593634e79238f60e01b85526004850152602484015260448301528660648301525afa918215614e185791614df9575b50614de95750565b51633a23d82560e01b8152600490fd5b614e109150823d84116109685761095881836137a3565b905038614de1565b8351903d90823e3d90fd5b505050505050565b60db5460405163fc57d4df60e01b81526001600160a01b0392831660048201819052929091602091829184916024918391165afa918215614f0957600092614f27575b5081928215614f1557816004916040519283809263313ce56760e01b82525afa918215614f0957600092614ed1575b505060ff1660128110614eaf57505090565b601290810392508211613f6957604d8211613f6957614ba691600a0a90613f56565b81813d8311614f02575b614ee581836137a3565b8101031261043657519060ff821682036106c4575060ff38614e9d565b503d614edb565b6040513d6000823e3d90fd5b6040516348fa9b2b60e11b8152600490fd5b90918282813d8311614f4f575b614f3e81836137a3565b810103126106c45750519038614e6e565b503d614f34565b90816020910312610a4357516001600160a01b0381168103610a43579056fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a585dbb3f830c4325b9ffb1ad42c16ada76c518747b0fb7ee297b261fc6a0f29f71aec636243f9709bb0007ae15e9afb8150ab01716d75fd7573be5cc096e03b0a264697066735822122014223ecf1232a5e75a15b3fc2feaca4c5b4502700d8aacaa04e5578b924f276564736f6c63430008130033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [];
20
20
  readonly name: "AddReservesMarketNotFresh";
@@ -1765,6 +1765,16 @@ export declare class Comptroller__factory extends ContractFactory {
1765
1765
  readonly outputs: readonly [];
1766
1766
  readonly stateMutability: "nonpayable";
1767
1767
  readonly type: "function";
1768
+ }, {
1769
+ readonly inputs: readonly [];
1770
+ readonly name: "redemptionManager";
1771
+ readonly outputs: readonly [{
1772
+ readonly internalType: "contract IRedemptionManager";
1773
+ readonly name: "";
1774
+ readonly type: "address";
1775
+ }];
1776
+ readonly stateMutability: "view";
1777
+ readonly type: "function";
1768
1778
  }, {
1769
1779
  readonly inputs: readonly [{
1770
1780
  readonly internalType: "uint8";
@@ -1961,6 +1971,16 @@ export declare class Comptroller__factory extends ContractFactory {
1961
1971
  readonly outputs: readonly [];
1962
1972
  readonly stateMutability: "nonpayable";
1963
1973
  readonly type: "function";
1974
+ }, {
1975
+ readonly inputs: readonly [{
1976
+ readonly internalType: "contract IRedemptionManager";
1977
+ readonly name: "_redemptionManager";
1978
+ readonly type: "address";
1979
+ }];
1980
+ readonly name: "setRedemptionManager";
1981
+ readonly outputs: readonly [];
1982
+ readonly stateMutability: "nonpayable";
1983
+ readonly type: "function";
1964
1984
  }, {
1965
1985
  readonly inputs: readonly [{
1966
1986
  readonly internalType: "address";