@whetstone-research/doppler-sdk 1.0.39 → 1.0.41

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.
@@ -1,12 +1,12 @@
1
1
  import { Address, WalletClient, Hex, Hash, Account, PublicClient, TransactionReceipt } from 'viem';
2
- import { mainnet, sepolia, arbitrum, base, baseSepolia, ink, unichain } from 'viem/chains';
2
+ import { mainnet, arbitrum, base, baseSepolia, bsc, ink, unichain } from 'viem/chains';
3
3
 
4
4
  declare const CHAIN_IDS: {
5
5
  readonly MAINNET: 1;
6
- readonly ETH_SEPOLIA: 11155111;
7
6
  readonly ARBITRUM: 42161;
8
7
  readonly BASE: 8453;
9
8
  readonly BASE_SEPOLIA: 84532;
9
+ readonly BSC: 56;
10
10
  readonly INK: 57073;
11
11
  readonly ROBINHOOD: 4663;
12
12
  readonly UNICHAIN: 130;
@@ -47,7 +47,6 @@ interface ChainAddresses {
47
47
  v4Migrator: Address;
48
48
  v4MigratorSplit?: Address;
49
49
  dopplerHookMigrator?: Address;
50
- rehypeDopplerHookMigrator?: Address;
51
50
  v4MigratorHook?: Address;
52
51
  noOpMigrator?: Address;
53
52
  governanceFactory: Address;
@@ -55,7 +54,6 @@ interface ChainAddresses {
55
54
  launchpadGovernanceFactory?: Address;
56
55
  streamableFeesLocker?: Address;
57
56
  streamableFeesLockerV2?: Address;
58
- topUpDistributor?: Address;
59
57
  universalRouter: Address;
60
58
  univ2Router02?: Address;
61
59
  permit2: Address;
@@ -79,7 +77,7 @@ declare const SUPPORTED_CHAIN_IDS: SupportedChainId[];
79
77
  */
80
78
  declare function isSupportedChainId(id: number): id is SupportedChainId;
81
79
 
82
- type SupportedChain = typeof mainnet | typeof sepolia | typeof arbitrum | typeof base | typeof baseSepolia | typeof ink | typeof unichain;
80
+ type SupportedChain = typeof mainnet | typeof arbitrum | typeof base | typeof baseSepolia | typeof bsc | typeof ink | typeof unichain;
83
81
  type SupportedPublicClient = unknown;
84
82
  interface StandardTokenConfig {
85
83
  type: 'standard';
@@ -193,13 +191,13 @@ type VestingConfig = {
193
191
  amounts?: never;
194
192
  allocations: VestingAllocationConfig[];
195
193
  };
196
- declare const NO_OP_ENABLED_CHAIN_IDS: readonly [1, 11155111, 42161, 8453, 84532, 130, 1301, 4663, 10143, 143];
194
+ declare const NO_OP_ENABLED_CHAIN_IDS: readonly [1, 42161, 8453, 84532, 56, 130, 1301, 4663, 10143, 143];
197
195
  type NoOpEnabledChainId = (typeof NO_OP_ENABLED_CHAIN_IDS)[number];
198
196
  /**
199
197
  * Check if a chain supports no-op governance
200
198
  */
201
199
  declare function isNoOpEnabledChain(chainId: number): chainId is NoOpEnabledChainId;
202
- declare const LAUNCHPAD_ENABLED_CHAIN_IDS: readonly [1, 42161, 8453, 84532, 4663, 143];
200
+ declare const LAUNCHPAD_ENABLED_CHAIN_IDS: readonly [1, 42161, 8453, 84532, 56, 4663, 143];
203
201
  type LaunchpadEnabledChainId = (typeof LAUNCHPAD_ENABLED_CHAIN_IDS)[number];
204
202
  /**
205
203
  * Check if a chain supports launchpad governance
@@ -210,7 +208,9 @@ type GovernanceDefault = {
210
208
  };
211
209
  interface GovernanceCustom {
212
210
  type: 'custom';
211
+ /** Duration in token-clock units; seconds for timestamp-clock deployments. */
213
212
  initialVotingDelay: number;
213
+ /** Duration in token-clock units; seconds for timestamp-clock deployments. */
214
214
  initialVotingPeriod: number;
215
215
  initialProposalThreshold: bigint;
216
216
  }
@@ -262,30 +262,6 @@ interface MulticurvePoolState {
262
262
  poolKey: V4PoolKey;
263
263
  farTick: number;
264
264
  }
265
- interface RehypeDopplerHookMigratorConfig {
266
- hookAddress?: Address;
267
- buybackDestination: Address;
268
- customFee: number;
269
- feeRoutingMode?: RehypeFeeRoutingMode | 'directBuyback' | 'routeToBeneficiaryFees';
270
- feeDistributionInfo?: RehypeFeeDistributionInfo;
271
- /**
272
- * @deprecated Use feeDistributionInfo.* fields instead.
273
- * If feeDistributionInfo is omitted, legacy percentages are mirrored to both rows.
274
- */
275
- assetBuybackPercentWad?: bigint;
276
- /**
277
- * @deprecated Use feeDistributionInfo.* fields instead.
278
- */
279
- numeraireBuybackPercentWad?: bigint;
280
- /**
281
- * @deprecated Use feeDistributionInfo.* fields instead.
282
- */
283
- beneficiaryPercentWad?: bigint;
284
- /**
285
- * @deprecated Use feeDistributionInfo.* fields instead.
286
- */
287
- lpPercentWad?: bigint;
288
- }
289
265
  interface DopplerHookMigratorConfig {
290
266
  type: 'dopplerHookMigrator';
291
267
  fee: number;
@@ -297,7 +273,6 @@ interface DopplerHookMigratorConfig {
297
273
  hookAddress: Address;
298
274
  onInitializationCalldata?: `0x${string}`;
299
275
  };
300
- rehype?: RehypeDopplerHookMigratorConfig;
301
276
  proceedsSplit?: {
302
277
  recipient: Address;
303
278
  share: bigint;
@@ -689,6 +664,29 @@ interface RehypeFeeDistributionInfo {
689
664
  numeraireFeesToBeneficiaryWad: bigint;
690
665
  numeraireFeesToLpWad: bigint;
691
666
  }
667
+ interface RehypeIntegratorFeeConfig {
668
+ /**
669
+ * Rehype integrator address. Defaults to the launch's top-level integrator.
670
+ */
671
+ integrator?: Address;
672
+ /**
673
+ * Share of the gross Rehype hook fee, in millionths.
674
+ * Valid range: 1 through 750_000.
675
+ */
676
+ feeShare: number;
677
+ /**
678
+ * Portion of asset-denominated fees converted to numeraire.
679
+ * Denominator: 1_000_000_000. Defaults to 0.
680
+ */
681
+ assetFeesToNumeraireRatio?: number;
682
+ /**
683
+ * Portion of numeraire-denominated fees converted to asset.
684
+ * Denominator: 1_000_000_000. Defaults to 0.
685
+ */
686
+ numeraireFeesToAssetRatio?: number;
687
+ /** Whether processed fees are automatically paid to the integrator. */
688
+ automaticPayout?: boolean;
689
+ }
692
690
  declare enum RehypeFeeRoutingMode {
693
691
  DirectBuyback = 0,
694
692
  RouteToBeneficiaryFees = 1
@@ -701,6 +699,7 @@ type RehypeDopplerHookInitializerCommonConfig = {
701
699
  durationSeconds?: number | bigint;
702
700
  startingTime?: number | bigint | Date;
703
701
  feeDistributionInfo?: RehypeFeeDistributionInfo;
702
+ integratorFeeConfig?: RehypeIntegratorFeeConfig;
704
703
  /**
705
704
  * @deprecated Use startFee/endFee instead. When provided alone, maps to startFee=endFee=customFee.
706
705
  */
@@ -935,7 +934,6 @@ interface ModuleAddressOverrides {
935
934
  v4Migrator?: Address;
936
935
  v4MigratorSplit?: Address;
937
936
  dopplerHookMigrator?: Address;
938
- rehypeDopplerHookMigrator?: Address;
939
937
  noOpMigrator?: Address;
940
938
  }
941
939
 
@@ -956,11 +954,9 @@ declare class DopplerFactory<C extends SupportedChainId = SupportedChainId> {
956
954
  private isDopplerERC20V1BalanceLimitActive;
957
955
  private usesDefaultDopplerERC20V1Integration;
958
956
  private resolveGovernanceBalanceLimitExclusions;
957
+ private governanceDuration;
959
958
  private resolveGovernanceFactoryAddress;
960
- private shouldAutoExcludeGovernanceTimelock;
961
959
  private resolveMigrationLockerBalanceLimitExclusions;
962
- private withDopplerERC20V1EncodedBalanceLimitExclusions;
963
- private withSimulationGovernanceTimelockExclusion;
964
960
  private withDopplerERC20V1BalanceLimitExclusions;
965
961
  private deriveCreate2Address;
966
962
  private predictDopplerERC20V1TokenAddress;
@@ -1361,8 +1357,9 @@ declare class MulticurvePool {
1361
1357
  private client;
1362
1358
  private walletClient?;
1363
1359
  private tokenAddress;
1360
+ private recordedInitializer?;
1364
1361
  private get rpc();
1365
- constructor(client: SupportedPublicClient, walletClient: WalletClient | undefined, tokenAddress: Address);
1362
+ constructor(client: SupportedPublicClient, walletClient: WalletClient | undefined, tokenAddress: Address, recordedInitializer?: Address);
1366
1363
  /**
1367
1364
  * Get the token address for this pool
1368
1365
  * This is also the lookup key used to retrieve pool state from the initializer
@@ -1473,11 +1470,27 @@ interface RehypePoolInfo {
1473
1470
  numeraire: Address;
1474
1471
  buybackDst: Address;
1475
1472
  }
1476
- interface RehypePosition {
1477
- tickLower: number;
1478
- tickUpper: number;
1479
- liquidity: bigint;
1480
- salt: Hex;
1473
+ interface RehypeIntegratorRoutingConfig {
1474
+ integrator: Address;
1475
+ assetFeesToNumeraireRatio: number;
1476
+ numeraireFeesToAssetRatio: number;
1477
+ automaticPayout: boolean;
1478
+ }
1479
+ interface RehypeIntegratorFees {
1480
+ fees0: bigint;
1481
+ fees1: bigint;
1482
+ }
1483
+ interface AirlockAssetData {
1484
+ numeraire: Address;
1485
+ timelock: Address;
1486
+ governance: Address;
1487
+ liquidityMigrator: Address;
1488
+ poolInitializer: Address;
1489
+ poolOrHook: Address;
1490
+ migrationPool: Address;
1491
+ numTokensToSell: bigint;
1492
+ totalSupply: bigint;
1493
+ integrator: Address;
1481
1494
  }
1482
1495
 
1483
1496
  declare class RehypeDopplerHookInitializer {
@@ -1530,41 +1543,35 @@ declare class RehypeDopplerHookInitializer {
1530
1543
  getFeeDistributionInfo(poolId: Hex): Promise<RehypeFeeDistributionInfo>;
1531
1544
  getFeeRoutingMode(poolId: Hex): Promise<number>;
1532
1545
  getFeeSchedule(poolId: Hex): Promise<RehypeFeeSchedule>;
1533
- getHookFees(poolId: Hex): Promise<RehypeHookFees>;
1534
- getPoolInfo(poolId: Hex): Promise<RehypePoolInfo>;
1535
- private requireWalletClient;
1536
- }
1537
-
1538
- /** @deprecated Use RehypeDopplerHookInitializer instead. */
1539
- declare const RehypeDopplerHook: typeof RehypeDopplerHookInitializer;
1540
- /** @deprecated Use RehypeDopplerHookInitializer instead. */
1541
- type RehypeDopplerHook = RehypeDopplerHookInitializer;
1542
-
1543
- declare class RehypeDopplerHookMigrator {
1544
- private client;
1545
- private walletClient?;
1546
- private hookAddress;
1547
- private get rpc();
1548
- constructor(client: SupportedPublicClient, walletClient: WalletClient | undefined, hookAddress: Address);
1549
- getAddress(): Address;
1550
- collectFees(asset: Address): Promise<{
1551
- amount0: bigint;
1552
- amount1: bigint;
1546
+ getIntegratorFeeShare(poolId: Hex): Promise<number>;
1547
+ getIntegratorRoutingConfig(poolId: Hex): Promise<RehypeIntegratorRoutingConfig>;
1548
+ getPendingIntegratorFees(poolId: Hex): Promise<RehypeIntegratorFees>;
1549
+ getClaimableIntegratorFees(poolId: Hex): Promise<RehypeIntegratorFees>;
1550
+ setIntegratorConversionRatios(poolId: Hex, assetFeesToNumeraireRatio: number, numeraireFeesToAssetRatio: number): Promise<{
1553
1551
  transactionHash: Hash;
1554
1552
  }>;
1555
- claimAirlockOwnerFees(asset: Address): Promise<{
1553
+ setIntegratorAutomaticPayout(poolId: Hex, automaticPayout: boolean): Promise<{
1554
+ transactionHash: Hash;
1555
+ }>;
1556
+ setIntegrator(poolId: Hex, newIntegrator: Address): Promise<{
1557
+ transactionHash: Hash;
1558
+ }>;
1559
+ claimIntegratorFees(asset: Address, to: Address): Promise<{
1556
1560
  fees0: bigint;
1557
1561
  fees1: bigint;
1558
1562
  transactionHash: Hash;
1559
1563
  }>;
1560
- setFeeDistribution(poolId: Hex, feeDistributionInfo: RehypeFeeDistributionInfo): Promise<Hash>;
1561
- getFeeDistributionInfo(poolId: Hex): Promise<RehypeFeeDistributionInfo>;
1562
- getFeeRoutingMode(poolId: Hex): Promise<number>;
1563
1564
  getHookFees(poolId: Hex): Promise<RehypeHookFees>;
1564
1565
  getPoolInfo(poolId: Hex): Promise<RehypePoolInfo>;
1565
- getPosition(poolId: Hex): Promise<RehypePosition>;
1566
+ private waitForSuccessfulReceipt;
1567
+ private requireWalletClient;
1566
1568
  }
1567
1569
 
1570
+ /** @deprecated Use RehypeDopplerHookInitializer instead. */
1571
+ declare const RehypeDopplerHook: typeof RehypeDopplerHookInitializer;
1572
+ /** @deprecated Use RehypeDopplerHookInitializer instead. */
1573
+ type RehypeDopplerHook = RehypeDopplerHookInitializer;
1574
+
1568
1575
  interface OpeningAuctionPosition {
1569
1576
  owner: Address;
1570
1577
  tickLower: number;
@@ -2542,6 +2549,11 @@ declare class DopplerERC20V1 {
2542
2549
  getDelegates(account: Address): Promise<Address>;
2543
2550
  getVotes(account: Address): Promise<bigint>;
2544
2551
  getPastVotes(account: Address, timepoint: bigint): Promise<bigint>;
2552
+ /**
2553
+ * Get historical voting-unit supply at a token clock timepoint.
2554
+ * Read CLOCK_MODE to determine whether a deployment uses timestamps or blocks.
2555
+ */
2556
+ getPastTotalSupply(timepoint: bigint): Promise<bigint>;
2545
2557
  getVotesTotalSupply(): Promise<bigint>;
2546
2558
  getPastVotesTotalSupply(timepoint: bigint): Promise<bigint>;
2547
2559
  getClock(): Promise<number>;
@@ -2557,6 +2569,8 @@ declare class DopplerERC20V1 {
2557
2569
  isPoolLocked(): Promise<boolean>;
2558
2570
  getVestingStart(): Promise<bigint>;
2559
2571
  getVestedTotalAmount(): Promise<bigint>;
2572
+ /** Get a beneficiary's vesting allocation that has not been released. */
2573
+ getTotalUnreleasedOf(beneficiary: Address): Promise<bigint>;
2560
2574
  getVestingScheduleCount(): Promise<bigint>;
2561
2575
  getVestingSchedule(scheduleId: bigint): Promise<{
2562
2576
  cliffDuration: bigint;
@@ -2723,33 +2737,6 @@ declare class Eth {
2723
2737
  getBalanceOf(account: Address): Promise<bigint>;
2724
2738
  }
2725
2739
 
2726
- interface TopUpParams {
2727
- asset: Address;
2728
- numeraire: Address;
2729
- amount: bigint;
2730
- }
2731
- interface TopUpTransaction {
2732
- to: Address;
2733
- data: Hex;
2734
- value?: bigint;
2735
- }
2736
- interface TopUpSimulationResult {
2737
- request: Parameters<WalletClient['writeContract']>[0];
2738
- }
2739
- declare class TopUpDistributor {
2740
- private publicClient;
2741
- private walletClient?;
2742
- private topUpDistributorAddress;
2743
- private get rpc();
2744
- constructor(publicClient: SupportedPublicClient, walletClient: WalletClient | undefined, topUpDistributorAddress: Address);
2745
- getAddress(): Address;
2746
- buildTopUpTransaction(params: TopUpParams): TopUpTransaction;
2747
- simulateTopUp(params: TopUpParams, account?: Address | Account): Promise<TopUpSimulationResult>;
2748
- topUp(params: TopUpParams, options?: {
2749
- gas?: bigint;
2750
- }): Promise<Hash>;
2751
- }
2752
-
2753
2740
  /**
2754
2741
  * A token position held by Bundler for linear vesting.
2755
2742
  *
@@ -2820,6 +2807,64 @@ declare class Bundler {
2820
2807
  }): Promise<Hash>;
2821
2808
  }
2822
2809
 
2810
+ interface MigrationRefund {
2811
+ recipient: Address;
2812
+ currency0: Address;
2813
+ currency1: Address;
2814
+ amount0: bigint;
2815
+ amount1: bigint;
2816
+ exists: boolean;
2817
+ }
2818
+ declare class DopplerHookMigrator {
2819
+ private readonly client;
2820
+ private readonly walletClient?;
2821
+ private readonly address;
2822
+ private get rpc();
2823
+ constructor(client: SupportedPublicClient, walletClient: WalletClient | undefined, address: Address);
2824
+ getAddress(): Address;
2825
+ getMigrationRefund(poolId: Hex): Promise<MigrationRefund>;
2826
+ getTotalClaimableMigrationRefund(currency: Address): Promise<bigint>;
2827
+ getLockerAddress(): Promise<Address>;
2828
+ getMigrationPoolId(asset: Address): Promise<Hex>;
2829
+ claimMigrationRefund(poolId: Hex, to: Address): Promise<{
2830
+ amount0: bigint;
2831
+ amount1: bigint;
2832
+ transactionHash: Hash;
2833
+ }>;
2834
+ }
2835
+
2836
+ interface StreamableFeesStream {
2837
+ poolKey: V4PoolKey;
2838
+ recipient: Address;
2839
+ startDate: number;
2840
+ lockDuration: number;
2841
+ unlockDate: number;
2842
+ isUnlocked: boolean;
2843
+ }
2844
+ declare class StreamableFeesLockerV2 {
2845
+ private readonly client;
2846
+ private readonly walletClient?;
2847
+ private readonly address;
2848
+ private get rpc();
2849
+ constructor(client: SupportedPublicClient, walletClient: WalletClient | undefined, address: Address);
2850
+ getAddress(): Address;
2851
+ getStream(poolId: Hex): Promise<StreamableFeesStream>;
2852
+ getBeneficiaryShares(poolId: Hex, beneficiary: Address): Promise<bigint>;
2853
+ getCumulatedFees(poolId: Hex): Promise<{
2854
+ fees0: bigint;
2855
+ fees1: bigint;
2856
+ }>;
2857
+ collectFees(poolId: Hex): Promise<{
2858
+ fees0: bigint;
2859
+ fees1: bigint;
2860
+ transactionHash: Hash;
2861
+ }>;
2862
+ unlock(poolId: Hex): Promise<{
2863
+ transactionHash: Hash;
2864
+ }>;
2865
+ private waitForSuccessfulReceipt;
2866
+ }
2867
+
2823
2868
  /** Optional Bundler custody schedule for a builder-configured dev buy. */
2824
2869
  type BuilderDevBuyVestingInput = {
2825
2870
  permissionlessClaim?: boolean;
@@ -3146,7 +3191,6 @@ declare class DynamicAuctionBuilder<C extends SupportedChainId> implements BaseA
3146
3191
  withV4Migrator(address: Address): this;
3147
3192
  withV4MigratorSplit(address: Address): this;
3148
3193
  withDopplerHookMigrator(address: Address): this;
3149
- withRehypeDopplerHookMigrator(address: Address): this;
3150
3194
  withNoOpMigrator(address: Address): this;
3151
3195
  build(): CreateDynamicAuctionParams<C>;
3152
3196
  }
@@ -3256,15 +3300,15 @@ declare class MulticurveBuilder<C extends SupportedChainId> implements BaseAucti
3256
3300
  *
3257
3301
  * When configured, the hook will be initialized with the pool and will handle:
3258
3302
  * - Custom swap fees
3259
- * - Fee distribution to beneficiaries, LPs, and buyback destinations
3260
- *
3303
+ * - Residual fee distribution to beneficiaries, LPs, and buyback destinations
3304
+ * - An optional, independently routed integrator share of gross hook fees
3261
3305
  * IMPORTANT:
3262
3306
  * - The hook address must be whitelisted in the DopplerHookInitializer
3263
3307
  * - Fee distribution percentages must sum to exactly WAD (1e18 = 100%)
3264
- *
3308
+ * - integratorFeeConfig.integrator defaults to withIntegrator(address)
3265
3309
  * @example
3266
3310
  * ```typescript
3267
- * builder.withRehypeDopplerHookInitializer({
3311
+ * builder.withIntegrator('0x...').withRehypeDopplerHookInitializer({
3268
3312
  * hookAddress: '0x...',
3269
3313
  * buybackDestination: '0x...',
3270
3314
  * startFee: 3000, // 0.3%
@@ -3280,6 +3324,11 @@ declare class MulticurveBuilder<C extends SupportedChainId> implements BaseAucti
3280
3324
  * numeraireFeesToBeneficiaryWad: parseEther('0.3'),
3281
3325
  * numeraireFeesToLpWad: parseEther('0.3'),
3282
3326
  * },
3327
+ * integratorFeeConfig: {
3328
+ * feeShare: 200_000, // 20% of the Rehype hook fee
3329
+ * assetFeesToNumeraireRatio: 500_000_000, // Convert 50%
3330
+ * automaticPayout: false,
3331
+ * },
3283
3332
  * })
3284
3333
  * ```
3285
3334
  */
@@ -3465,7 +3514,6 @@ declare class DopplerSDK<C extends SupportedChainId = SupportedChainId> {
3465
3514
  chainId: C;
3466
3515
  private _factory?;
3467
3516
  private _quoter?;
3468
- private _topUpDistributor?;
3469
3517
  private _bundler?;
3470
3518
  constructor(config: DopplerSDKConfig);
3471
3519
  /**
@@ -3476,14 +3524,6 @@ declare class DopplerSDK<C extends SupportedChainId = SupportedChainId> {
3476
3524
  * Get the quoter instance for price queries
3477
3525
  */
3478
3526
  get quoter(): Quoter;
3479
- /**
3480
- * Get the configured TopUpDistributor instance for split-migrator top-ups.
3481
- */
3482
- get topUpDistributor(): TopUpDistributor;
3483
- /**
3484
- * Get a TopUpDistributor instance using the chain default or an explicit override.
3485
- */
3486
- getTopUpDistributor(topUpDistributorAddress?: Address): TopUpDistributor;
3487
3527
  /**
3488
3528
  * Gets the Bundler client configured for this chain.
3489
3529
  *
@@ -3516,11 +3556,10 @@ declare class DopplerSDK<C extends SupportedChainId = SupportedChainId> {
3516
3556
  getRehypeDopplerHookInitializer(hookAddress: Address): Promise<RehypeDopplerHookInitializer>;
3517
3557
  /** @deprecated Use getRehypeDopplerHookInitializer instead. */
3518
3558
  getRehypeDopplerHook(hookAddress: Address): Promise<RehypeDopplerHook>;
3519
- /**
3520
- * Get a RehypeDopplerHookMigrator instance for interacting with migrator-side rehype hook state.
3521
- * @param hookAddress The address of the RehypeDopplerHookMigrator
3522
- */
3523
- getRehypeDopplerHookMigrator(hookAddress: Address): Promise<RehypeDopplerHookMigrator>;
3559
+ getDopplerHookMigrator(address?: Address): DopplerHookMigrator;
3560
+ getDopplerHookMigratorForAsset(asset: Address): Promise<DopplerHookMigrator>;
3561
+ getStreamableFeesLockerV2(address: Address): StreamableFeesLockerV2;
3562
+ getStreamableFeesLockerForAsset(asset: Address): Promise<StreamableFeesLockerV2>;
3524
3563
  /**
3525
3564
  * Get an OpeningAuction instance for interacting with an opening auction hook.
3526
3565
  * @param hookAddress The address of the opening auction hook
@@ -3613,6 +3652,7 @@ declare class DopplerSDK<C extends SupportedChainId = SupportedChainId> {
3613
3652
  * Get the airlock owner address for the configured chain
3614
3653
  */
3615
3654
  getAirlockOwner(): Promise<Address>;
3655
+ getAirlockAssetData(asset: Address): Promise<AirlockAssetData>;
3616
3656
  /**
3617
3657
  * Convenience helper for building the airlock beneficiary entry with the default 5% (0.05e18 WAD shares)
3618
3658
  */
@@ -3675,8 +3715,8 @@ declare const DEFAULT_V3_START_TICK = 175000;
3675
3715
  declare const DEFAULT_V3_END_TICK = 225000;
3676
3716
  declare const DEFAULT_V3_NUM_POSITIONS = 15;
3677
3717
  declare const DEFAULT_V3_FEE = 10000;
3678
- declare const DEFAULT_V3_INITIAL_VOTING_DELAY = 172800;
3679
- declare const DEFAULT_V3_INITIAL_VOTING_PERIOD = 1209600;
3718
+ declare const DEFAULT_V3_INITIAL_VOTING_DELAY = 86400;
3719
+ declare const DEFAULT_V3_INITIAL_VOTING_PERIOD: number;
3680
3720
  declare const DEFAULT_V3_INITIAL_PROPOSAL_THRESHOLD = 0n;
3681
3721
  declare const DEFAULT_V3_VESTING_DURATION: bigint;
3682
3722
  declare const DEFAULT_V3_INITIAL_SUPPLY: bigint;
@@ -3684,8 +3724,8 @@ declare const DEFAULT_V3_NUM_TOKENS_TO_SELL: bigint;
3684
3724
  declare const DEFAULT_V3_YEARLY_MINT_RATE: bigint;
3685
3725
  declare const DEFAULT_V3_PRE_MINT: bigint;
3686
3726
  declare const DEFAULT_V3_MAX_SHARE_TO_BE_SOLD: bigint;
3687
- declare const DEFAULT_V4_INITIAL_VOTING_DELAY = 7200;
3688
- declare const DEFAULT_V4_INITIAL_VOTING_PERIOD = 50400;
3727
+ declare const DEFAULT_V4_INITIAL_VOTING_DELAY = 86400;
3728
+ declare const DEFAULT_V4_INITIAL_VOTING_PERIOD: number;
3689
3729
  declare const DEFAULT_V4_INITIAL_PROPOSAL_THRESHOLD = 0n;
3690
3730
  declare const DEFAULT_V4_YEARLY_MINT_RATE: bigint;
3691
3731
  declare const DEFAULT_OPENING_AUCTION_DURATION = 86400;
@@ -4047,6 +4087,13 @@ declare function normalizeBeneficiaries<T extends {
4047
4087
  shares: bigint;
4048
4088
  }>(beneficiaries: readonly T[], label: string): [T, ...T[]];
4049
4089
 
4090
+ interface NormalizedRehypeIntegratorFeeConfig {
4091
+ integrator: Address;
4092
+ feeShare: number;
4093
+ assetFeesToNumeraireRatio: number;
4094
+ numeraireFeesToAssetRatio: number;
4095
+ automaticPayout: boolean;
4096
+ }
4050
4097
  type NormalizedCommonConfig = {
4051
4098
  hookAddress: Address;
4052
4099
  startFee: number;
@@ -4054,6 +4101,7 @@ type NormalizedCommonConfig = {
4054
4101
  durationSeconds: number;
4055
4102
  startingTime: number;
4056
4103
  feeDistributionInfo: RehypeFeeDistributionInfo;
4104
+ integratorFeeConfig?: NormalizedRehypeIntegratorFeeConfig;
4057
4105
  graduationCalldata?: Hex;
4058
4106
  graduationMarketCap?: number;
4059
4107
  numerairePrice?: number;
@@ -4075,15 +4123,10 @@ type NormalizedRehypeDopplerHookInitializerConfig = NormalizedBuybackConfig | No
4075
4123
  * been configured. `buybackDestination` and `controllerOverride` configure the
4076
4124
  * same on-chain `buybackDst` field and cannot be used together.
4077
4125
  */
4078
- declare function normalizeRehypeDopplerHookInitializerConfig(config: RehypeDopplerHookInitializerConfig, controllerOverride?: Address): NormalizedRehypeDopplerHookInitializerConfig;
4126
+ declare function normalizeRehypeDopplerHookInitializerConfig(config: RehypeDopplerHookInitializerConfig, controllerOverride?: Address, fallbackIntegrator?: Address): NormalizedRehypeDopplerHookInitializerConfig;
4079
4127
 
4080
4128
  declare function encodeRehypeDopplerHookInitializerData(numeraire: Address, config: NormalizedRehypeDopplerHookInitializerConfig): Hex;
4081
4129
 
4082
- declare function encodeRehypeDopplerHookMigratorCalldata(params: {
4083
- numeraire: Address;
4084
- config: RehypeDopplerHookMigratorConfig;
4085
- }): Hex;
4086
-
4087
4130
  interface ParseAirlockCreateReceiptParams {
4088
4131
  receipt: TransactionReceipt;
4089
4132
  expectedAirlock: Address;
@@ -5028,9 +5071,9 @@ declare const feeClaimsInitializerAbi: readonly [{
5028
5071
  readonly inputs: readonly [];
5029
5072
  }];
5030
5073
 
5031
- declare const _default$6: "0x60a06040523461057b57604051601f615c0338819003918201601f19168301916001600160401b0383118484101761057f578084926101c09460405283398101031261057b5780516001600160a01b038116810361057b5760208201516040830151906060840151608085015160a08601519061007e60c088016105b3565b9161008b60e089016105b3565b91610100890151946100a06101208b016105b3565b976101408b0151978815988915810361057b576101608d01516101808e01516001600160a01b0381169e919d91908f0361057b576101a001519062ffffff821680920361057b576080525f6101a06100f6610593565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201525f6101a0610154610593565b6001815260016020820152600160408201528260608201528260808201528260a0820152600160c0820152600160e082015260016101008201528261012082015282610140820152826101608201528261018082015201526120003016151560011480159061056a575b8015610559575b801561054c575b801561053f575b8015610532575b8015610522575b8015610512575b8015610502575b80156104f6575b80156104ea575b80156104de575b80156104d2575b80156104c6575b6104b35762ffffff1960165416176016558442116104a4578660020b8860020b91818303610463575b5050508484101561045457838503858111610440578a60020b5f811380159061042b575b61041c578915610408578982066103f9578c156103eb57600f8d116103eb578484116103dc5761029861029d928b81046017558b6105c1565b610658565b628000008110156103cf5762ffffff19601854169062ffffff1617601855600d55600e55600f5560105560115562ffffff6012549160181b65ffffff0000001692169065ffffffffffff1916171760125560135562ffffff63ff000000601454921560181b1692169063ffffffff1916171760145560155560018060a01b0319600c541617600c5560405161552f90816106d48239608051818181601c01528181610205015281816102a80152818161045c0152818161050c0152818161098701528181610a1e01528181610af501528181610b9201528181610c5a01528181610e8301528181610f3a0152818161103d015281816110b201528181611d2c01528181611de40152818161217801528181613b8301528181613c4d01528181613fe9015281816140f40152614be40152f35b6335278d125f526004601cfd5b638cc99b7b60e01b5f5260045ffd5b6287e39960e61b5f5260045ffd5b6388ac089760e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6312469eb560e11b5f5260045ffd5b5061043a81610298848d6105c1565b1561025f565b634e487b7160e01b5f52601160045260245ffd5b63536a71af60e01b5f5260045ffd5b8061049b575b610483578a9182610491575b5050610483575f808061023b565b6264847d60e41b5f5260045ffd5b1390505f80610475565b50808212610469565b632ca4094f60e21b5f5260045ffd5b630732d7b560e51b5f523060045260245ffd5b50600130161515610212565b5060023016151561020b565b50600430161515610204565b506008301615156101fd565b506010301615156101f6565b50602030161515600114156101ef565b50604030161515600114156101e8565b50608030161515600114156101e1565b50610100301615156101da565b50610200301615156101d3565b50610400301615156101cc565b5061080030161515600114156101c5565b5061100030161515600114156101be565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b604051906101c082016001600160401b0381118382101761057f57604052565b51908160020b820361057b57565b90670de0b6b3a76400008202905f19670de0b6b3a764000084099282808510940393808503948584111561057b571461065157670de0b6b3a764000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b808202905f1983820990828083109203918083039283670de0b6b3a7640000111561057b57146106c2577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac1066993670de0b6b3a7640000910990828211900360ee1b910360121c170290565b5050670de0b6b3a76400009150049056fe608080604052600436101561005b575b50361561001a575f80fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57005b6393c866c160e01b5f5260045ffd5b5f905f3560e01c908163182148ef146111155750806318cb1700146110f357806321d0ee701461109f578063259982e51461102a578063392e53cd1461100857806339518b5e14610feb578063514ea4bf14610f96578063575e24b414610ee357806357d775f814610ec65780636c2bbe7e14610e705780636c47a6c314610e535780636fe7e6eb14610c19578063897479cb14610bfb57806390ebab0a14610bdd57806391dd734614610b5e5780639ce110d714610b355780639f063efc14610ade578063a4dee15514610ab9578063b137392914610a98578063b356603014610a74578063b47b2fb1146109c6578063b6a8b0fa14610970578063c19d93fb14610921578063c4e833ce146107b6578063c70dfb4f14610795578063ce5494bb146104cb578063d0c52e21146104a9578063d65b4cb91461048b578063dc4c90d314610446578063dc98354e14610276578063dcf93f3214610250578063e1b4af69146101ee5763ee4644300361000f57346101eb57806003193601126101eb576020600d54604051908152f35b80fd5b50346101eb57600490610200366112dc565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303925061024491505057630a85dc2960e01b8152fd5b63570c108560e11b8152fd5b50346101eb57806003193601126101eb57602060ff60145460181c166040519015158152f35b50346101eb5760e03660031901126101eb5761029061116b565b5060a03660231901126101eb576102a561128e565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104375760085460ff81166104295760ff19166001176008556001600160a01b03602435908116908181036104255750600980546001600160a01b0319169190911790556044356001600160a01b038116908181036104255750600a80546001600160a01b03191691909117905560643562ffffff8116810361042157600a5461035a612061565b60b81b62ffffff60b81b169162ffffff60a01b9060a01b169065ffffffffffff60a01b19161717600a5560a43560018060a01b03811680910361042157600b80546001600160a01b031916919091179055601e6103b5612061565b60020b136104125760145460020b6103cb612061565b60020b9081156103fe570760020b6103ef57604051636e4c1aa760e11b8152602090f35b6312469eb560e11b8152600490fd5b634e487b7160e01b83526012600452602483fd5b63013840ad60e51b8152600490fd5b5080fd5b8280fd5b62dc149f60e41b8252600482fd5b63570c108560e11b8152600490fd5b50346101eb57806003193601126101eb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101eb57806003193601126101eb576020600f54604051908152f35b50346101eb57806003193601126101eb5760ff60209154166040519015158152f35b50346101eb5760203660031901126101eb576104e561116b565b600c546001600160a01b031633036107865760ff825460081c161580610765575b610756577f000000000000000000000000000000000000000000000000000000000000000061059d8361057561058360405161054181611333565b610549611f3d565b815260018060a01b03871660208201528360408201526001606082015260405192839160208301611f8a565b03601f1981018352826113b4565b604051809381926348c8949160e01b8352600483016112b2565b0381836001600160a01b0387165af190811561074b57916105d785926105e2959460e09791610729575b50602080825183010191016114d8565b600695919554613282565b9161064160018060a01b0360095416926106306105fe856145cf565b948761061f8761061760018060a01b03600a54166145cf565b9a8b94614611565b600a546001600160a01b0316614611565b60a061063a611f3d565b2090614754565b5050600954600a5492976001600160a01b039182169791909316946106879250610678906001600160801b03608086901d16611472565b926001600160801b0316611472565b906001600160801b0381111561071a57506001600160801b03915b506001600160801b0381111561070b57506001600160801b03935b604080516001600160a01b0397909716875260208701919091526001600160801b03608085811d821692880192909252918216606087015285019190915290811660a08401521660c0820152f35b6001600160801b0316936106bd565b6001600160801b0316916106a2565b61074591503d8086833e61073d81836113b4565b810190611fcb565b5f6105c7565b6040513d86823e3d90fd5b63051a2a5560e51b8252600482fd5b50600454600e5411158061077a575b15610506565b50601154421015610774565b638341a67960e01b8252600482fd5b50346101eb57806003193601126101eb57602060125460020b604051908152f35b50346101eb57806003193601126101eb576020816101c0926101a06040516107dd81611362565b82815282858201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201528060405161083b81611362565b60018152838101600181526040820160018152606083018481526080840185815260a0850186815260c08601906001825260e087019260018452610100880194600186526101208901968a88526101408a01988b8a526101a06101608c019b8d8d5261018081019d8e52019c8d526040519d8e916001835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b50346101eb57806003193601126101eb5760c064ffffffffff600154166002546003546004546005549160065493604051958652602086015260408501526060840152608083015260a0820152f35b50346101eb57600490610982366112dc565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330392506102449150505763567d91d160e01b8152fd5b50346101eb576101603660031901126101eb576109e161116b565b5060a03660231901126101eb5760603660c31901126101eb57610144356001600160401b03811161042157610a1a903690600401611195565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610437576040610a5a610124356140d7565b82516001600160e01b03199092168252600f0b6020820152f35b50346101eb57806003193601126101eb57602060125460181c60020b604051908152f35b50346101eb57806003193601126101eb57602060145460020b604051908152f35b50346101eb57806003193601126101eb5760ff6020915460081c166040519015158152f35b50346101eb57600490610af036611225565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330393506102449250505057630a85dc2960e01b8152fd5b50346101eb57806003193601126101eb57600c546040516001600160a01b039091168152602090f35b50346101eb5760203660031901126101eb576004356001600160401b03811161042157610b8f903690600401611195565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361043757610bd9610bcd848461168f565b604051918291826112b2565b0390f35b50346101eb57806003193601126101eb576020601554604051908152f35b50346101eb57806003193601126101eb576020600e54604051908152f35b5034610e4057610100366003190112610e4057610c3461116b565b60a0366023190112610e4057610c4861128e565b5060e435908160020b809203610e40577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169133839003610e445762ffffff6016541691833b15610e4057604051635275965160e01b815292602435906001600160a01b038216808303610e40576004860152604435946001600160a01b038616808703610e4057602482015260643562ffffff8116808203610e40576044830152608435918260020b808403610e4057606482015260a435936001600160a01b038516808603610e4057608483015260a48201525f8160c481838d5af18015610e3557610e07575b509488979461057594610da6948a9994610dc29960405196610d5a88611333565b60405194610d678661137e565b85526020850152604084015260608301526080820152835260018060a01b03166020830152604082015285606082015260405192839160208301611f8a565b6040519485809481936348c8949160e01b8352600483016112b2565b03925af18015610dfc57610de3575b604051636fe7e6eb60e01b8152602090f35b610df6913d8091833e61073d81836113b4565b5f610dd1565b6040513d84823e3d90fd5b610da69399509461057594610e245f610dc299949a959b986113b4565b5f9a94509450949791969095610d39565b6040513d5f823e3d90fd5b5f80fd5b63570c108560e11b5f5260045ffd5b34610e40575f366003190112610e40576020601154604051908152f35b34610e4057610e7e36611225565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039350610e449250505057630a85dc2960e01b5f5260045ffd5b34610e40575f366003190112610e40576020601354604051908152f35b34610e4057610140366003190112610e4057610efd61116b565b5060a0366023190112610e405760603660c3190112610e4057610124356001600160401b038111610e4057610f36903690600401611195565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610e4457606062ffffff610f766120bd565b906040939293519363ffffffff60e01b1684526020840152166040820152f35b34610e40576020366003190112610e40576004355f526007602052608060405f205460ff604051918060020b83528060181c60020b6020840152600180851b038160301c16604084015260b01c166060820152f35b34610e40575f366003190112610e40576020601054604051908152f35b34610e40575f366003190112610e4057602060ff600854166040519015158152f35b34610e4057611038366111c2565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039050610e4457306001600160a01b03909116036110905760405163259982e560e01b8152602090f35b636d1ed89b60e01b5f5260045ffd5b34610e40576110ad366111c2565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039150610e44905057630a85dc2960e01b5f5260045ffd5b34610e40575f366003190112610e4057602062ffffff60165416604051908152f35b34610e40575f366003190112610e4057600954600a54600b546001600160a01b039283168452818316602085015260a082811c62ffffff16604086015260b89290921c60020b6060850152909116608083015290f35b600435906001600160a01b0382168203610e4057565b35906001600160a01b0382168203610e4057565b9181601f84011215610e40578235916001600160401b038311610e405760208381860195010111610e4057565b90610160600319830112610e40576004356001600160a01b0381168103610e40579160a0602319820112610e4057602491608060c319830112610e405760c49161014435906001600160401b038211610e405761122191600401611195565b9091565b906101a0600319830112610e40576004356001600160a01b0381168103610e40579160a0602319820112610e4057602491608060c319830112610e405760c4916101443591610164359161018435906001600160401b038211610e405761122191600401611195565b60c435906001600160a01b0382168203610e4057565b35908160020b8203610e4057565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b610120600319820112610e40576004356001600160a01b0381168103610e40579160a0602319830112610e405760249160c4359160e4359161010435906001600160401b038211610e405761122191600401611195565b608081019081106001600160401b0382111761134e57604052565b634e487b7160e01b5f52604160045260245ffd5b6101c081019081106001600160401b0382111761134e57604052565b60a081019081106001600160401b0382111761134e57604052565b606081019081106001600160401b0382111761134e57604052565b601f909101601f19168101906001600160401b0382119082101761134e57604052565b359062ffffff82168203610e4057565b91908260a0910312610e40576040516113ff8161137e565b608061144b81839561141081611181565b855261141e60208201611181565b602086015261142f604082016113d7565b6040860152611440606082016112a4565b606086015201611181565b910152565b600201908160021161145e57565b634e487b7160e01b5f52601160045260245ffd5b9190820180921161145e57565b9060405161148c81611333565b9154600281810b8452601882901c900b6020840152603081901c6001600160801b0316604084015260b01c60ff166060830152565b600f0b60016001607f1b0319811461145e575f0390565b9190826040910312610e40576020825192015190565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b9061016092611542836060936114ee565b805160020b60a0840152602081015160020b60c0840152604081015160e084015201516101008201526101406101208201525f6101408201520190565b6001600160a01b03918216815291166020820152604081019190915260600190565b9190820391821161145e57565b6001600160401b03811161134e5760051b60200190565b906115cf826115ae565b6115dc60405191826113b4565b82815280926115ed601f19916115ae565b01905f5b8281106115fd57505050565b60209060405161160c81611333565b5f81525f838201525f60408201525f6060820152828285010152016115f1565b8051156116395760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156116395760400190565b80518210156116395760209160051b010190565b9081549060181b65ffffff000000169065ffffff0000001916179055565b919082015f61010084830312610e40576116b5604051926116af84611333565b856113e7565b938483526116c560a08201611181565b80602085015260e06116d960c084016112a4565b92836040870152013580151594858203610e40576060015260018060a01b03169060020b92611c4e5750600164ffffffffff1981541617600155606084019261173c845160020b61173761172c85614ef6565b60125460020b61209f565b614f2e565b6014549060ff8260181c165f14611c3b5761175a9160020b9061209f565b945b61176584613378565b61176e85613378565b956040519561177c87611399565b808752602087018181526118d8604089019a888c526118d0600d54956117a06136a5565b956118088c6118036117fa6117db6117d26117c96117c46117bf61480d565b614ea2565b6136c3565b60135490614e80565b60105490614ebe565b6117f46117eb60105480936115a1565b916011546115a1565b90615033565b600d5490615113565b6136d4565b8c929083811315611c2c5761186b9293508981115f14611c275750885b928d60185460020b835160020b8082135f14611c1f5750905b50818a5260145460181c60ff1615611c105761185f9150895160020b61209f565b905b5160020b90614f2e565b60020b60208701525b855160020b966020870197885160020b14155f14611c055760ff60145460181c166118c5836118a68a5160020b613378565b8b516001600160801b039491906118bf9060020b613378565b91614fcc565b1660408801526115a1565b90848861374b565b996118eb6118e68c51611450565b6115c5565b985160020b915160020b9060018060801b03905116906040519261190e84611333565b8352602083015260408201526001606082015261192a8861162c565b526119348761162c565b50805160020b915160020b90604060018060801b0391015116906040519261195b84611333565b835260208301526040820152600260608201526119778661164d565b526119818561164d565b50835b8751811015611a3457611997818961165d565b515160020b60206119a8838b61165d565b51015160020b6001600160801b0360406119c2858d61165d565b51015116836003019182600311611a2057611a1992600195949260ff92604051946119ec86611333565b855260208501526040840152166060820152611a0783611450565b90611a12828b61165d565b528861165d565b5001611984565b634e487b7160e01b89526011600452602489fd5b50611a429293969585613a82565b611a4b8261162c565b516001855260076020526040852090805162ffffff198354169062ffffff16178255611a7e602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b16179055611ac58261164d565b516002855260076020526040852090805162ffffff198354169062ffffff16178255611af8602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b16179055835b8351811015611be557611b53611b4d82611450565b8461165d565b518160030180600311611bd1579060019291875260076020526040872090805162ffffff198354169062ffffff16178255611b95602082015160020b83611671565b604081015190825490606060ff60b01b91015160b01b16918560301b8660b01b039060301b16908560301b8660b81b0319161717905501611b38565b634e487b7160e01b87526011600452602487fd5b509291505060405190611bf96020836113b4565b81525f36602083013790565b8b60408801526115a1565b611c199161335b565b90611861565b90509061183e565b611825565b50508087526020870152611874565b611c489160020b9061335b565b9461175c565b925f9250829160015b6015546003018060031161145e57811015611ddc57805f526007602052611c8060405f2061147f565b60408101516001600160801b031680611c9e575b5050600101611c57565b611d279160409160ff6014999598995460181c1691825f14611dce57805160020b925b15611db95760ff6060611ce3611cde602085015160020b95613263565b6114c1565b9201511691845193611cf485611333565b60020b845260020b6020840152600f0b838301526060820152815180938192632d35e7ed60e11b83528c60048401611531565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610e3557600192611d7e925f905f92611d86575b50611d789192613282565b96613282565b93905f611c94565b611d789250611dac915060403d8111611db2575b611da481836113b4565b8101906114d8565b91611d6d565b503d611d9a565b60ff6060611ce3611cde845160020b95613263565b602081015160020b92611cc1565b5091929390947f000000000000000000000000000000000000000000000000000000000000000091611e1860018060a01b0383511630856132c4565b926020830192611e3260018060a01b0385511630846132c4565b945f8113611ed6575b5050848413611e6a575b5050505050604051916020830152604082015260408152611e676060826113b4565b90565b91516001600160a01b039283169216823b15611ed25791611ea6939185809460405196879586948593630b0d9c0960e01b85526004850161157f565b03925af18015610dfc57611ebd575b808080611e45565b611ec88280926113b4565b6101eb5780611eb5565b8480fd5b90516001600160a01b0383811692911690823b15610e4057611f1392855f809460405196879586948593630b0d9c0960e01b85526004850161157f565b03925af18015610e3557611f28575b80611e3b565b611f359195505f906113b4565b5f935f611f22565b60405190611f4a8261137e565b6009546001600160a01b039081168352600a54808216602085015260a081901c62ffffff16604085015260b81c60020b6060840152600b54166080830152565b91909160e06060610100830194611fa28482516114ee565b60208101516001600160a01b031660a0850152604081015160020b60c085015201511515910152565b602081830312610e40578051906001600160401b038211610e40570181601f82011215610e40578051906001600160401b03821161134e576040519261201b601f8401601f1916602001856113b4565b82845260208383010111610e4057815f9260208093018386015e8301015290565b600f91820b910b019060016001607f1b0319821260016001607f1b0383131761145e57565b6084358060020b8103610e405790565b60020b627fffff19811461145e575f0390565b60020b60010190627fffff8213627fffff1983121761145e57565b9060020b9060020b0190627fffff198212627fffff83131761145e57565b5f80549160ff8360081c16613254576010544210613245576120dd61480d565b64ffffffffff600154161015613234575f9260115442101580613229575b612e7e575b509060ff5f5416155f14612e105761211661480d565b9060015461212b64ffffffffff8216846115a1565b64ffffffffff1990911664ffffffffff84161760015560035460025f526007602052946121645f8051602061550383398151915261147f565b9461219c60a06121753660246113e7565b207f0000000000000000000000000000000000000000000000000000000000000000614754565b505050946121a986614841565b608435978860020b90818a14159283610e40578a6121c691614f2e565b905f916121d68d600554906136d4565b5f198a0194908a861161145e575f8f966121f26121f791613a72565b614fac565b80971115911280612e09575b15612cac575050506122249192505160020b9161221e615332565b90614ebe565b955b60018111612c165750612262908a60055561225c670de0b6b3a764000061224f89600254614ebe565b9880612c0d575b05614ef6565b9061209f565b90612c09578761227191614f2e565b9061228d8861173761172c670de0b6b3a76400005f9905614ef6565b9760145460ff8160181c165f14612bf6576122ab9060020b8a61209f565b955b8960ff60145460181c16809b811580612be6575b15612baa57505050612ba6576122d7908361209f565b945b6122e283613378565b986122ec87613378565b908b15612b9d5715612aea5760016123058c8c84615420565b91818060a01b038c1690828060a01b0316038060ff1d9081011891818060801b031661233183826150ca565b928260601b9109151516015b975b60155461234e6118e682611450565b9060018a52600760205261236460408b2061147f565b61236d8361162c565b526123778261162c565b5060028a52600760205261238d60408b2061147f565b6123968361164d565b526123a08261164d565b50895b818110612aa25750506123c1906123bb3660246113e7565b90614afa565b5060145460181c60ff1699908a156129fc576044356001600160a01b03811681036129f857612402906123f3906145cf565b6001600160801b038316611472565b6006549061241a906001600160801b038316906115a1565b916024356001600160a01b03811681036129f4579e6118e69f936124728e969461245d8c9561244b89879a506145cf565b9060801d6001600160801b0316611472565b60809190911d6001600160801b0316906115a1565b9e5b61247f3660246113e7565b906124886136a5565b958361299457505050505060020b80825260208201528260408201525b604081018051909c6125ab916125a391612591916001600160801b031615612985575b6124d33660246113e7565b906124fa6124df6136a5565b976118036117fa6117db6117d26117c96117c46117bf61480d565b88808213156129715750818111156129685750612555815b928d606060185460020b920191825160020b8082135f146129605750905b60020b90818b5260ff60145460181c165f14611c105761185f91508a5160020b61209f565b60020b60208801525b865160020b976020880198895160020b14155f14612956575060ff60145460181c166118c5836118a68a5160020b613378565b878561259e3660246113e7565b61374b565b9e8f51611450565b9b6020825160020b92015160020b9060018060801b0390511690604051926125d284611333565b835260208301526040820152600160608201526125ee8c61162c565b526125f88b61162c565b50805160020b915160020b90604060018060801b0391015116906040519261261f84611333565b8352602083015260408201526002606082015261263b8a61164d565b526126458961164d565b50875b8b518110156126f9578b602061266d83612662818561165d565b515160020b9361165d565b51015160020b8d60406126878560018060801b039361165d565b510151168360030191826003116126e5579260ff6126de938f9360019796604051946126b286611333565b8552602085015260408401521660608201526126d76126d085611450565b809361165d565b528c61165d565b5001612648565b634e487b7160e01b8d52601160045260248dfd5b50612719919293949596999a979a6127123660246113e7565b918a613a82565b6127228761162c565b5160018a52600760205260408a2090805162ffffff198354169062ffffff16178255612755602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b1617905561279c8761164d565b5160028a52600760205260408a2090805162ffffff198354169062ffffff161782556127cf602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b16179055885b6015548110156128fc578651811061285957806003018060031161284557906001918b5260076020528a60408120555b0161280f565b634e487b7160e01b8b52601160045260248bfd5b61286b61286582611450565b8961165d565b5181600301806003116128e85790600192918c52600760205260408c2090805162ffffff198354169062ffffff161782556128ad602082015160020b83611671565b604081015190825490606060ff60b01b91015160b01b16918560301b8660b01b039060301b16908560301b8660b81b0319161717905561283f565b634e487b7160e01b8c52601160045260248cfd5b5090919295507f223157ec47d7bd04fa3ed10c0a8adb38faf97b51ec856a777425a2e39253bd739450608093966040519360020b845260020b602084015260020b60408301526060820152a15b6315d7892d60e21b929190565b60408801526115a1565b905090612530565b61255590612512565b9250508b60020b808852602088015261255e565b602085015160020b85526124c8565b838111156129ad5750506129a89450614ca4565b6124a5565b92509350506129e991508c60020b84528960020b60208501526129cf8d613378565b6001600160801b0393906129e28c613378565b9115614fcc565b1660408201526124a5565b8c80fd5b8a80fd5b6024356001600160a01b03811681036129f857612a2f90612a1c906145cf565b608083901d6001600160801b0316611472565b60065490612a4b90608083901d6001600160801b0316906115a1565b916044356001600160a01b03811681036129f4579e6118e69f93612a9c8e9694612a8b8c95612a7c89879a506145cf565b906001600160801b0316611472565b6001600160801b03909116906115a1565b9e612474565b80600301806003116128e857906001918c526007602052612ae360408d20612ad2612acc84611450565b9161147f565b612adc828861165d565b528561165d565b50016123a3565b612af58b8b836153dd565b8a826001600160a01b0380831690821611612b92575b506001600160a01b038316918215612b865760601b600160601b600160e01b0316926001600160a01b03828116929190910316612b4982828661527d565b938215612b725709612b63575b808206151591040161233d565b906001019081612b56575b8880fd5b634e487b7160e01b8c52601260045260248cfd5b62bfc9218b526004601cfd5b8c935090505f612b0b565b5050869761233f565b8680fd5b91989392509081612bd5575b50612bc2575b506122d9565b612bce9196508361335b565b945f612bbc565b905060020b8460020b13155f612bb6565b508060020b8760020b12156122c1565b612c039060020b8a61335b565b956122ad565b8580fd5b89600255612256565b612c1f906136ec565b5f198101818111611a20576121f2612c3691613a72565b808c10612c44575b50612226565b612c59612c52989298615332565b918d615033565b670de0b6b3a76400000390670de0b6b3a76400008211612c9857612c8a612c919392670de0b6b3a764000092614e80565b0590614ebe565b955f612c3e565b634e487b7160e01b8a52601160045260248afd5b9192909115612d0957505083612b6e578a612cc691614f2e565b91612cd2612c52615332565b670de0b6b3a76400000390670de0b6b3a76400008211612c9857612c8a612d039392670de0b6b3a764000092614e80565b95612226565b93509350975050612d2f60125460020b670de0b6b3a76400006002540560020b9061209f565b60185460020b5f9381135f14612dfe57905b6014549260ff8460181c1692835f14612deb57612d61915160020b61209f565b915b829985610e4057612db394612d7b8e612dab96614f2e565b938315612dd857612d8f9160020b9061209f565b915b15612dc3578160020b8160020b135f14612dbc575061335b565b60020b614e5c565b955f9695612226565b905061335b565b8160020b8160020b125f14612dbc575061335b565b612de59160020b9061335b565b91612d91565b612df8915160020b61335b565b91612d63565b505f92508990612d41565b5080612203565b915060ff60145460181c168080612e67575b8115612e47575b50612e38576240000090612949565b63016ccb0760e01b5f5260045ffd5b90501580612e56575b5f612e29565b5060c4358015158114612e50575f80fd5b905060c43580159081158103610e40575090612e22565b600454600e54111561321a5760019060ff1916175f557fe8775e4a58023f399765c3455b45eebcc45ad6b99607a1163f02e1318430970c5f80a1612ed3612ecb60a06121753660246113e7565b505050614841565b601554612ee26118e682611450565b60015f52600760205290612f025f805160206154e383398151915261147f565b612f0b8361162c565b52612f158261162c565b5060025f526007602052612f355f8051602061550383398151915261147f565b612f3e8361164d565b52612f488261164d565b505f5b8181106131e9575050612f63906123bb3660246113e7565b5060145460181c60ff1690811561319e576044356001600160a01b0381168103610e4057612fce918491612fb8906001600160801b0390612fa3906145cf565b16600f0b60018060801b0392600f0b9061203c565b165b60035490612fc93660246113e7565b614ca4565b90604080519290612fdf81856113b4565b60018452601f19015f5b81811061316f575050805160020b6020820191825160020b90604060018060801b0391015116906040519261301d84611333565b835260208301526040820152600160608201526130398461162c565b526130438361162c565b505160020b901561314657608435928360020b8403610e405761308061307a613075613093948761309898509061209f565b613378565b91613378565b9061308c3660246113e7565b9184613a82565b61162c565b5160015f52600760205260405f2090805162ffffff198354169062ffffff161782556130cb602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b161790555f5b6015546001810180911161145e5781101561313f578061312c600192611450565b5f5260076020525f60408120550161310b565b505f612100565b608435928360020b8403610e405761308061307a6130756130939461225c886130989950612071565b60209060405161317e81611333565b5f81525f838201525f60408201525f606082015282828801015201612fe9565b6024356001600160a01b0381168103610e4057612fce9184916131e3906001600160801b03906131cd906145cf565b6001600160801b039360801d9116600f0b61203c565b16612fba565b80600301908160031161145e576001915f52600760205261321360405f20612ad2612acc84611450565b5001612f4b565b631ed9bcf960e01b5f5260045ffd5b5060ff8116156120fb565b6315d7892d60e21b92505f91508190565b630fc95b4360e01b5f5260045ffd5b636fce6c3960e01b5f5260045ffd5b6001607f1b81101561327557600f0b90565b6335278d125f526004601cfd5b6132a5906132978360801d8260801d01614ed9565b92600f0b90600f0b01614ed9565b60018060801b03169060801b1790565b90816020910312610e40575190565b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa908115610e35575f91613311575090565b90506020813d602011613338575b8161332c602093836113b4565b81010312610e40575190565b3d915061331f565b60020b5f190190627fffff198212627fffff83131761145e57565b600291820b910b0390627fffff198212627fffff83131761145e57565b60020b908160ff1d82810118620d89e881116136925763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b189160028116613676575b6004811661365a575b6008811661363e575b60108116613622575b60208116613606575b604081166135ea575b608081166135ce575b61010081166135b2575b6102008116613596575b610400811661357a575b610800811661355e575b6110008116613542575b6120008116613526575b614000811661350a575b61800081166134ee575b6201000081166134d2575b6202000081166134b7575b62040000811661349c575b6208000016613483575b5f1261347b575b0160201c90565b5f1904613474565b6b048a170391f7dc42444e8fa290910260801c9061346d565b6d2216e584f5fa1ea926041bedfe9890920260801c91613463565b916e5d6af8dedb81196699c329225ee6040260801c91613458565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c9161344d565b916f31be135f97d08fd981231505542fcfa60260801c91613442565b916f70d869a156d2a1b890bb3df62baf32f70260801c91613438565b916fa9f746462d870fdf8a65dc1f90e061e50260801c9161342e565b916fd097f3bdfd2022b8845ad8f792aa58250260801c91613424565b916fe7159475a2c29b7443b29c7fa6e889d90260801c9161341a565b916ff3392b0822b70005940c7a398e4b70f30260801c91613410565b916ff987a7253ac413176f2b074cf7815e540260801c91613406565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c916133fc565b916ffe5dee046a99a2a811c461f1969c30530260801c916133f2565b916fff2ea16466c96a3843ec78b326b528610260801c916133e9565b916fff973b41fa98c081472e6896dfb254c00260801c916133e0565b916fffcb9843d60f6159c9db58835c9266440260801c916133d7565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c916133ce565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c916133c5565b916ffff97272373d413259a46990580e213a0260801c916133bc565b826345c3193d60e11b5f5260045260245ffd5b604051906136b282611399565b5f6040838281528260208201520152565b905f19820191821360011661145e57565b81810392915f13801582851316918412161761145e57565b801561145e575f190190565b60020b9060020b90811561371a57627fffff1981145f1983141661145e570590565b634e487b7160e01b5f52601260045260245ffd5b8181029291811591840414171561145e57565b811561371a570490565b9291909161375761480d565b613764601354809261372e565b906137726010548093611472565b9060115492838311613a46575b61378761480d565b6001810180911161145e576137a49261379f9161372e565b611472565b91808311613a3e575b50808214613a01576137e06137cf6137e6936117f46117eb60105480936115a1565b916117f46117eb60105480936115a1565b906115a1565b936015549384805b6139c0575b5061380a6020613814920194855160020b9061335b565b8560020b906136f8565b918461384b60ff60145460181c1694855f1461398657606085015160020b90818160020b125f1461397f57505b97600d5490615113565b9180613857838561372e565b1161396f575050925b5160020b9461386e856115ae565b9561387c60405197886113b4565b858752601f1961388b876115ae565b015f5b8181106139585750505f905b8682106138ab575050505050505090565b6138b5828961165d565b519060020b905260016138e76138d9846138cf858c61165d565b515160020b61209f565b606086015160020b90614f2e565b9160206138f4828b61165d565b51018360020b9052613939878a613932602061392786613921613917828761165d565b515160020b613378565b9461165d565b51015160020b613378565b9089614fcc565b6040613945838c61165d565b510190838060801b03169052019061389a565b6020906139636136a5565b82828c0101520161388e565b6139799250613741565b92613860565b9050613841565b60608501613997815160020b612071565b60020b8260020b125f146139ad57505b976117fa565b6139bb91505160020b612071565b6139a7565b945f19860186811161145e576139d590615001565b6139de87615001565b036139fb576139ef6139f5916136ec565b956136ec565b806137ee565b946137f3565b505050505050604051613a156020826113b4565b5f81525f805b818110613a2757505090565b602090613a326136a5565b82828601015201613a1b565b91505f6137ad565b83925061377f565b805115158252602080820151908301526040908101516001600160a01b0316910152565b600160ff1b811461145e575f0390565b9392916001600160a01b039182169116818103613f83575b50505f915f5b8451811015613c0d576001600160801b036040613abd838861165d565b51015116613ace575b600101613aa0565b613b7e90604060ff60145460181c16805f14613bf557613aee838961165d565b515160020b905b15613be1576020613b06848a61165d565b51015160020b5b613b2c6001600160801b0384613b23878d61165d565b51015116613263565b60ff6060613b3a878d61165d565b5101511691845193613b4b85611333565b60020b845260020b6020840152600f0b838301526060820152815180948192632d35e7ed60e11b83528860048401611531565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610e3557600192613bc4575b509050613ac6565b613bdb9060403d8111611db257611da481836113b4565b50613bbc565b613beb838961165d565b515160020b613b0d565b6020613c01848a61165d565b51015160020b90613af5565b509190928051905f19820191821161145e57602091613c2b9161165d565b5101516018549060181b65ffffff000000169065ffffff0000001916176018557f0000000000000000000000000000000000000000000000000000000000000000613c8060018060a01b0385511630836132c4565b906020850194613c9a60018060a01b0387511630846132c4565b925f8113613f1c575b848413613ea7575b848112613db4575b5050828212613cc4575b5050509050565b84516001600160a01b039081169591169190823b15613db05760405195632961046560e21b87526004870152838660248183875af195861561074b57849596613d93575b505160209291613d2d916001600160a01b0316908390613d2790613a72565b91614611565b600460405180958193630476982d60e21b83525af1908115613d875750613d58575b80808392613cbd565b613d799060203d602011613d80575b613d7181836113b4565b8101906132b5565b505f613d4f565b503d613d67565b604051903d90823e3d90fd5b84613da29195929394956113b4565b613db057908392915f613d08565b8380fd5b81516001600160a01b03848116939116833b15612ba65760405190632961046560e21b82526004820152868160248183885af18015613e9c57908791613e87575b505080516001600160a01b031680613e73575b50516001600160a01b0316613e6957613e22602091613a72565b915b600460405180948193630476982d60e21b83525af1801561074b57613e4a575b80613cb3565b613e629060203d602011613d8057613d7181836113b4565b505f613e44565b5060208491613e24565b613e819084613d2785613a72565b5f613e08565b81613e91916113b4565b612c0957855f613df5565b6040513d89823e3d90fd5b86516001600160a01b038481169116813b15612ba65785613ee392889283604051809681958294630b0d9c0960e01b845230906004850161157f565b03925af18015613f1157908691613efc575b5050613cab565b81613f06916113b4565b611ed257845f613ef5565b6040513d88823e3d90fd5b81516001600160a01b03908116908416803b15610e4057825f91613f599383604051809681958294630b0d9c0960e01b845230906004850161157f565b03925af18015610e3557613f6e575b50613ca3565b613f7b9195505f906113b4565b5f935f613f68565b60405191613f9083611399565b81108252600160208301526040820152613fc860405191633cf3645360e21b8352613fbe60048401856114ee565b60a4830190613a4e565b6101206101048201525f610124820152602081610144815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610e355761401c575b80613a9a565b6140349060203d602011613d8057613d7181836113b4565b505f614016565b6101409290916140c391906001600160a01b0361405782611181565b1684526001600160a01b0361406e60208301611181565b16602085015262ffffff614084604083016113d7565b166040850152614096606082016112a4565b60020b60608501526001600160a01b03906140b390608001611181565b16608084015260a0830190613a4e565b6101206101008201525f6101208201520190565b60ff5f54166145c1576141299060a06140f13660246113e7565b207f00000000000000000000000000000000000000000000000000000000000000009061411e8183614754565b949290969150614841565b60145460181c60ff1680156145ae5760185460181c60020b8260020b135b60015f5260076020525f805160206154e38339815191525460020b9082156145a257818460020b12905b156144c05750505050906141ea91602060ff60145460181c16805f146144ac576141a561307560185460181c60020b612084565b604051916141b283611399565b151582526001838301526001600160a01b031660408083019190915251633cf3645360e21b815294859182919060246004840161403b565b03815f6001600160a01b0386165af18015610e3557614479575b61420e9250614754565b50509050925b60c435908115158203610e405762ffffff91610fff9182911561447057165b169116620f42408183020491010360ff60145460181c165f146143c757608082901d5f600f82900b1261438257600354614276916001600160801b031690611472565b6003555b600f82900b5f81126143285750505f805160206154c3833981519152916142ad60609260018060801b03166004546115a1565b6004555b600454600f548110156142e4575b600354906040519260020b835260208301526040820152a163b47b2fb160e01b905f90565b61010061ff00195f5416175f557f628a470bfdde264ef77cd19acfbfca22b3e4413adaf5837ec9fbc0043e35793f602061431c61480d565b604051908152a16142bf565b62ffffff919250614338906114c1565b9116620f42400391620f4240831161145e575f805160206154c38339815191529260609261437a91614372916001600160801b031661518e565b600454611472565b6004556142b1565b61438b906114c1565b62ffffff8216620f42400390620f4240821161145e576143bf916143b7916001600160801b031661518e565b6003546115a1565b60035561427a565b90600f81900b5f811261443357506003546143ec906001600160801b03831690611472565b6003555b60801d905f600f83900b1261442557505f805160206154c38339815191529161437a60609260018060801b03166004546115a1565b9061433862ffffff916114c1565b61443c906114c1565b62ffffff8316620f42400390620f4240821161145e57614468916143b7916001600160801b031661518e565b6003556143f0565b600c1c16614233565b6020833d6020116144a4575b81614492602093836113b4565b81010312610e405761420e9250614204565b3d9150614485565b6141a561307560185460181c60020b613340565b97949392976144d3575b50505050614214565b614534949750906144f0602092825f146145995761307590613340565b604051916144fd83611399565b1582526001838301526001600160a01b031660408083019190915251633cf3645360e21b815294859182919060246004840161403b565b03815f6001600160a01b0386165af18015610e3557614566575b6145589250614754565b50509050925f8080806144ca565b6020833d602011614591575b8161457f602093836113b4565b81010312610e4057614558925061454e565b3d9150614572565b61307590612084565b818460020b1390614171565b60185460181c60020b8260020b12614147565b5063b47b2fb160e01b905f90565b6001600160a01b0316806145e257504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115610e35575f91613311575090565b9091906001600160a01b038116908161469f5750505f80808093855af1156146365750565b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b60205f604481949682604095865198899363a9059cbb60e01b855260018060a01b0316600485015260248401525af13d15601f3d116001855114161716928281528260208201520152156146f05750565b6040516390bfb86560e01b8152600481019190915263a9059cbb60e01b602482015260806044820152601f3d01601f191660a0810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b919060209060405182810191825260066040820152604081526147786060826113b4565b519020604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa918215610e35575f926147d9575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b9091506020813d602011614805575b816147f5602093836113b4565b81010312610e405751905f6147b1565b3d91506147e8565b60105480421061483b5761482461482d91426115a1565b60135490613741565b6001810180911161145e5790565b50600190565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b031611614ada57602081901b600160201b600160c01b0316808015610e4057693627a301d71055774c859160ff8260018060801b031060071b83811c60018060401b031060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c821060031b177b01c1818141808140018080c0814100004181408140c0c100414140c160221b6f8421084210842108cc6318c6db6d54be85831c1c601f161a17169160808310155f14614ace5750607e1982011c5b800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c600160321b90800260cd1c169d600160331b9060cc1c169c600160341b9060cb1c169b600160351b9060ca1c169a600160361b9060c91c1699600160371b9060c81c1698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c1690607f190160401b1717171717171717171717171717026fdb2df09e81959a81455e260799a0632f6f028f6481ab7f045a5af012a19d003aa919820160801d60020b910160801d60020b918282145f14614aaa5750905090565b6001600160a01b0390811690614abf84613378565b1611614ac9575090565b905090565b905081607f031b61491e565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b91905f905f905f5b8551811015614c8d576001600160801b036040614b1f838961165d565b51015116614b30575b600101614b02565b9192614bdf604060ff60145460181c16805f14614c7557614b51868a61165d565b515160020b905b15614c61576020614b69878b61165d565b51015160020b5b8960ff6060614b9b8a6139216001600160801b0389614b8f848961165d565b51015116600f0b6114c1565b5101511691845193614bac85611333565b60020b845260020b6020840152600f0b838301526060820152815180938192632d35e7ed60e11b83528760048401611531565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610e3557600192614c36925f905f92614c3e575b50614c309192613282565b95613282565b929050614b28565b614c309250614c5b915060403d8111611db257611da481836113b4565b91614c25565b614c6b868a61165d565b515160020b614b70565b6020614c81878b61165d565b51015160020b90614b58565b505091909250614c9f82600654613282565b600655565b9093929193614cb16136a5565b9480614e0457505f5b6001600160a01b031680614cde5750505060020b80835260208301525f6040830152565b919250614de991614d9090606090614d829060b56001600160881b03821160071b82811c6001600160481b031060061b1782811c64ffffffffff1060051b1782811c62ffffff1060041b17600181811c9290921b9083901c62010000010260121c80830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c908190048111900360301b6001600160a01b0316614841565b940193845160020b90614f2e565b92614dd1602087019460020b9182865260ff60145460181c1692835f14614df15750614dc690865160020b905160020b9061335b565b60020b808852613378565b93516001600160801b0394906129e29060020b613378565b166040830152565b614dff915160020b9061209f565b614dc6565b8160ff60145460181c165f14614e3d5750600654614e3891614e329160801d6001600160801b0316906115a1565b826152fd565b614cba565b600654614e3892614e57916001600160801b0316906115a1565b6152fd565b90670de0b6b3a7640000820291808305670de0b6b3a7640000149015171561145e57565b81810292915f8212600160ff1b82141661145e57818405149015171561145e57565b9060018201915f60018412911290801582169115161761145e57565b9190915f838201938412911290801582169115161761145e57565b9081600f0b918203614ee757565b6393dafdf160e01b5f5260045ffd5b80628000000160181c15614f11576335278d125f526004601cfd5b60020b90565b9060020b9060020b02908160020b91820361145e57565b9060ff60145460181c165f14614f7a575f8260020b125f14614f6d57614f6881614f63614f5e82611e679661335b565b612084565b6136f8565b614f17565b614f6881611e67936136f8565b5f8260020b125f14614f9357614f6881611e67936136f8565b614f6881614f63614fa782611e679661209f565b613340565b6117fa6117db6117d26117c96117c4611e6795614fc761480d565b614ebe565b90929091908015614ffb575f19810190811161145e57915b15614ff257611e6792615420565b611e67926153dd565b91614fe4565b61501c6150136150259261379f61480d565b6013549061372e565b60105490611472565b601154808211614ac9575090565b90670de0b6b3a76400008202905f19670de0b6b3a7640000840992828085109403938085039485841115610e4057146150c357670de0b6b3a764000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b81810291905f1982820991838084109303928084039384600160601b1115610e40571461510a57600160601b910990828211900360a01b910360601c1790565b50505060601c90565b808202905f1983820990828083109203918083039283670de0b6b3a76400001115610e40571461517d577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac1066993670de0b6b3a7640000910990828211900360ee1b910360121c170290565b5050670de0b6b3a764000091500490565b808202905f1983820990828083109203918083039283620f42401115610e4057146151ee577fde8f6cefed634549b62c77574f722e1ac57e23f24d8fd5cb790fb65668c2613993620f4240910990828211900360fa1b910360061c170290565b5050620f424091500490565b90606082901b905f19600160601b840992828085109403938085039485841115610e4057146150c3578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b91818302915f1981850993838086109503948086039586851115610e4057146152f5579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b90615307916151fa565b6001600160a01b03811161532d57600160a01b811015613275576001600160a01b031690565b505f90565b615378612dab615348612ecb60a0612175611f3d565b60145460181c60ff16156153ac5760125460020b808260020b135f146153a557505b60125460181c60020b61335b565b61538a614824601154601054906115a1565b90811561371a57600160ff1b81145f1983141661145e570590565b905061536a565b60125460020b808260020b125f146153a5575061536a565b6001600160a01b03918216908216039190821161145e57565b611e67926154159290916001600160a01b038083169082161161541a575b6001600160a01b039161540e91906153c4565b16906151fa565b615474565b906153fb565b611e6792615415929091906001600160a01b038082169083161161546e575b6154676154586001600160a01b038381169085166150ca565b926001600160a01b03926153c4565b169161527d565b9061543f565b6001600160801b0381169190820361548857565b60405162461bcd60e51b81526020600482015260126024820152716c6971756964697479206f766572666c6f7760701b6044820152606490fdfe27db09392d7d230eb65a11bd84925fb8da90df8a067ca8a4fc2933b4f637262bb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b828b7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96da164736f6c634300081a000a";
5074
+ declare const _default$6: "0x60a06040523461057b57604051601f615c1a38819003918201601f19168301916001600160401b0383118484101761057f578084926101c09460405283398101031261057b5780516001600160a01b038116810361057b5760208201516040830151906060840151608085015160a08601519061007e60c088016105b3565b9161008b60e089016105b3565b91610100890151946100a06101208b016105b3565b976101408b0151978815988915810361057b576101608d01516101808e01516001600160a01b0381169e919d91908f0361057b576101a001519062ffffff821680920361057b576080525f6101a06100f6610593565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201525f6101a0610154610593565b6001815260016020820152600160408201528260608201528260808201528260a0820152600160c0820152600160e082015260016101008201528261012082015282610140820152826101608201528261018082015201526120003016151560011480159061056a575b8015610559575b801561054c575b801561053f575b8015610532575b8015610522575b8015610512575b8015610502575b80156104f6575b80156104ea575b80156104de575b80156104d2575b80156104c6575b6104b35762ffffff1960165416176016558442116104a4578660020b8860020b91818303610463575b5050508484101561045457838503858111610440578a60020b5f811380159061042b575b61041c578915610408578982066103f9578c156103eb57600f8d116103eb578484116103dc5761029861029d928b81046017558b6105c1565b610658565b628000008110156103cf5762ffffff19601854169062ffffff1617601855600d55600e55600f5560105560115562ffffff6012549160181b65ffffff0000001692169065ffffffffffff1916171760125560135562ffffff63ff000000601454921560181b1692169063ffffffff1916171760145560155560018060a01b0319600c541617600c5560405161554690816106d48239608051818181601c01528181610205015281816102a80152818161045c0152818161050c0152818161098701528181610a1e01528181610af501528181610b9201528181610c5a01528181610e8301528181610f3a0152818161103d015281816110b201528181611d2c01528181611de40152818161217801528181613ba601528181613c700152818161400c015281816141170152614c070152f35b6335278d125f526004601cfd5b638cc99b7b60e01b5f5260045ffd5b6287e39960e61b5f5260045ffd5b6388ac089760e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6312469eb560e11b5f5260045ffd5b5061043a81610298848d6105c1565b1561025f565b634e487b7160e01b5f52601160045260245ffd5b63536a71af60e01b5f5260045ffd5b8061049b575b610483578a9182610491575b5050610483575f808061023b565b6264847d60e41b5f5260045ffd5b1390505f80610475565b50808212610469565b632ca4094f60e21b5f5260045ffd5b630732d7b560e51b5f523060045260245ffd5b50600130161515610212565b5060023016151561020b565b50600430161515610204565b506008301615156101fd565b506010301615156101f6565b50602030161515600114156101ef565b50604030161515600114156101e8565b50608030161515600114156101e1565b50610100301615156101da565b50610200301615156101d3565b50610400301615156101cc565b5061080030161515600114156101c5565b5061100030161515600114156101be565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b604051906101c082016001600160401b0381118382101761057f57604052565b51908160020b820361057b57565b90670de0b6b3a76400008202905f19670de0b6b3a764000084099282808510940393808503948584111561057b571461065157670de0b6b3a764000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b808202905f1983820990828083109203918083039283670de0b6b3a7640000111561057b57146106c2577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac1066993670de0b6b3a7640000910990828211900360ee1b910360121c170290565b5050670de0b6b3a76400009150049056fe608080604052600436101561005b575b50361561001a575f80fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57005b6393c866c160e01b5f5260045ffd5b5f905f3560e01c908163182148ef146111155750806318cb1700146110f357806321d0ee701461109f578063259982e51461102a578063392e53cd1461100857806339518b5e14610feb578063514ea4bf14610f96578063575e24b414610ee357806357d775f814610ec65780636c2bbe7e14610e705780636c47a6c314610e535780636fe7e6eb14610c19578063897479cb14610bfb57806390ebab0a14610bdd57806391dd734614610b5e5780639ce110d714610b355780639f063efc14610ade578063a4dee15514610ab9578063b137392914610a98578063b356603014610a74578063b47b2fb1146109c6578063b6a8b0fa14610970578063c19d93fb14610921578063c4e833ce146107b6578063c70dfb4f14610795578063ce5494bb146104cb578063d0c52e21146104a9578063d65b4cb91461048b578063dc4c90d314610446578063dc98354e14610276578063dcf93f3214610250578063e1b4af69146101ee5763ee4644300361000f57346101eb57806003193601126101eb576020600d54604051908152f35b80fd5b50346101eb57600490610200366112dc565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303925061024491505057630a85dc2960e01b8152fd5b63570c108560e11b8152fd5b50346101eb57806003193601126101eb57602060ff60145460181c166040519015158152f35b50346101eb5760e03660031901126101eb5761029061116b565b5060a03660231901126101eb576102a561128e565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104375760085460ff81166104295760ff19166001176008556001600160a01b03602435908116908181036104255750600980546001600160a01b0319169190911790556044356001600160a01b038116908181036104255750600a80546001600160a01b03191691909117905560643562ffffff8116810361042157600a5461035a612061565b60b81b62ffffff60b81b169162ffffff60a01b9060a01b169065ffffffffffff60a01b19161717600a5560a43560018060a01b03811680910361042157600b80546001600160a01b031916919091179055601e6103b5612061565b60020b136104125760145460020b6103cb612061565b60020b9081156103fe570760020b6103ef57604051636e4c1aa760e11b8152602090f35b6312469eb560e11b8152600490fd5b634e487b7160e01b83526012600452602483fd5b63013840ad60e51b8152600490fd5b5080fd5b8280fd5b62dc149f60e41b8252600482fd5b63570c108560e11b8152600490fd5b50346101eb57806003193601126101eb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101eb57806003193601126101eb576020600f54604051908152f35b50346101eb57806003193601126101eb5760ff60209154166040519015158152f35b50346101eb5760203660031901126101eb576104e561116b565b600c546001600160a01b031633036107865760ff825460081c161580610765575b610756577f000000000000000000000000000000000000000000000000000000000000000061059d8361057561058360405161054181611333565b610549611f3d565b815260018060a01b03871660208201528360408201526001606082015260405192839160208301611f8a565b03601f1981018352826113b4565b604051809381926348c8949160e01b8352600483016112b2565b0381836001600160a01b0387165af190811561074b57916105d785926105e2959460e09791610729575b50602080825183010191016114d8565b6006959195546132a5565b9161064160018060a01b0360095416926106306105fe856145f2565b948761061f8761061760018060a01b03600a54166145f2565b9a8b94614634565b600a546001600160a01b0316614634565b60a061063a611f3d565b2090614777565b5050600954600a5492976001600160a01b039182169791909316946106879250610678906001600160801b03608086901d16611472565b926001600160801b0316611472565b906001600160801b0381111561071a57506001600160801b03915b506001600160801b0381111561070b57506001600160801b03935b604080516001600160a01b0397909716875260208701919091526001600160801b03608085811d821692880192909252918216606087015285019190915290811660a08401521660c0820152f35b6001600160801b0316936106bd565b6001600160801b0316916106a2565b61074591503d8086833e61073d81836113b4565b810190611fcb565b5f6105c7565b6040513d86823e3d90fd5b63051a2a5560e51b8252600482fd5b50600454600e5411158061077a575b15610506565b50601154421015610774565b638341a67960e01b8252600482fd5b50346101eb57806003193601126101eb57602060125460020b604051908152f35b50346101eb57806003193601126101eb576020816101c0926101a06040516107dd81611362565b82815282858201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201528060405161083b81611362565b60018152838101600181526040820160018152606083018481526080840185815260a0850186815260c08601906001825260e087019260018452610100880194600186526101208901968a88526101408a01988b8a526101a06101608c019b8d8d5261018081019d8e52019c8d526040519d8e916001835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b50346101eb57806003193601126101eb5760c064ffffffffff600154166002546003546004546005549160065493604051958652602086015260408501526060840152608083015260a0820152f35b50346101eb57600490610982366112dc565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330392506102449150505763567d91d160e01b8152fd5b50346101eb576101603660031901126101eb576109e161116b565b5060a03660231901126101eb5760603660c31901126101eb57610144356001600160401b03811161042157610a1a903690600401611195565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610437576040610a5a610124356140fa565b82516001600160e01b03199092168252600f0b6020820152f35b50346101eb57806003193601126101eb57602060125460181c60020b604051908152f35b50346101eb57806003193601126101eb57602060145460020b604051908152f35b50346101eb57806003193601126101eb5760ff6020915460081c166040519015158152f35b50346101eb57600490610af036611225565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330393506102449250505057630a85dc2960e01b8152fd5b50346101eb57806003193601126101eb57600c546040516001600160a01b039091168152602090f35b50346101eb5760203660031901126101eb576004356001600160401b03811161042157610b8f903690600401611195565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361043757610bd9610bcd848461168f565b604051918291826112b2565b0390f35b50346101eb57806003193601126101eb576020601554604051908152f35b50346101eb57806003193601126101eb576020600e54604051908152f35b5034610e4057610100366003190112610e4057610c3461116b565b60a0366023190112610e4057610c4861128e565b5060e435908160020b809203610e40577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169133839003610e445762ffffff6016541691833b15610e4057604051635275965160e01b815292602435906001600160a01b038216808303610e40576004860152604435946001600160a01b038616808703610e4057602482015260643562ffffff8116808203610e40576044830152608435918260020b808403610e4057606482015260a435936001600160a01b038516808603610e4057608483015260a48201525f8160c481838d5af18015610e3557610e07575b509488979461057594610da6948a9994610dc29960405196610d5a88611333565b60405194610d678661137e565b85526020850152604084015260608301526080820152835260018060a01b03166020830152604082015285606082015260405192839160208301611f8a565b6040519485809481936348c8949160e01b8352600483016112b2565b03925af18015610dfc57610de3575b604051636fe7e6eb60e01b8152602090f35b610df6913d8091833e61073d81836113b4565b5f610dd1565b6040513d84823e3d90fd5b610da69399509461057594610e245f610dc299949a959b986113b4565b5f9a94509450949791969095610d39565b6040513d5f823e3d90fd5b5f80fd5b63570c108560e11b5f5260045ffd5b34610e40575f366003190112610e40576020601154604051908152f35b34610e4057610e7e36611225565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039350610e449250505057630a85dc2960e01b5f5260045ffd5b34610e40575f366003190112610e40576020601354604051908152f35b34610e4057610140366003190112610e4057610efd61116b565b5060a0366023190112610e405760603660c3190112610e4057610124356001600160401b038111610e4057610f36903690600401611195565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610e4457606062ffffff610f766120bd565b906040939293519363ffffffff60e01b1684526020840152166040820152f35b34610e40576020366003190112610e40576004355f526007602052608060405f205460ff604051918060020b83528060181c60020b6020840152600180851b038160301c16604084015260b01c166060820152f35b34610e40575f366003190112610e40576020601054604051908152f35b34610e40575f366003190112610e4057602060ff600854166040519015158152f35b34610e4057611038366111c2565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039050610e4457306001600160a01b03909116036110905760405163259982e560e01b8152602090f35b636d1ed89b60e01b5f5260045ffd5b34610e40576110ad366111c2565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039150610e44905057630a85dc2960e01b5f5260045ffd5b34610e40575f366003190112610e4057602062ffffff60165416604051908152f35b34610e40575f366003190112610e4057600954600a54600b546001600160a01b039283168452818316602085015260a082811c62ffffff16604086015260b89290921c60020b6060850152909116608083015290f35b600435906001600160a01b0382168203610e4057565b35906001600160a01b0382168203610e4057565b9181601f84011215610e40578235916001600160401b038311610e405760208381860195010111610e4057565b90610160600319830112610e40576004356001600160a01b0381168103610e40579160a0602319820112610e4057602491608060c319830112610e405760c49161014435906001600160401b038211610e405761122191600401611195565b9091565b906101a0600319830112610e40576004356001600160a01b0381168103610e40579160a0602319820112610e4057602491608060c319830112610e405760c4916101443591610164359161018435906001600160401b038211610e405761122191600401611195565b60c435906001600160a01b0382168203610e4057565b35908160020b8203610e4057565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b610120600319820112610e40576004356001600160a01b0381168103610e40579160a0602319830112610e405760249160c4359160e4359161010435906001600160401b038211610e405761122191600401611195565b608081019081106001600160401b0382111761134e57604052565b634e487b7160e01b5f52604160045260245ffd5b6101c081019081106001600160401b0382111761134e57604052565b60a081019081106001600160401b0382111761134e57604052565b606081019081106001600160401b0382111761134e57604052565b601f909101601f19168101906001600160401b0382119082101761134e57604052565b359062ffffff82168203610e4057565b91908260a0910312610e40576040516113ff8161137e565b608061144b81839561141081611181565b855261141e60208201611181565b602086015261142f604082016113d7565b6040860152611440606082016112a4565b606086015201611181565b910152565b600201908160021161145e57565b634e487b7160e01b5f52601160045260245ffd5b9190820180921161145e57565b9060405161148c81611333565b9154600281810b8452601882901c900b6020840152603081901c6001600160801b0316604084015260b01c60ff166060830152565b600f0b60016001607f1b0319811461145e575f0390565b9190826040910312610e40576020825192015190565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b9061016092611542836060936114ee565b805160020b60a0840152602081015160020b60c0840152604081015160e084015201516101008201526101406101208201525f6101408201520190565b6001600160a01b03918216815291166020820152604081019190915260600190565b9190820391821161145e57565b6001600160401b03811161134e5760051b60200190565b906115cf826115ae565b6115dc60405191826113b4565b82815280926115ed601f19916115ae565b01905f5b8281106115fd57505050565b60209060405161160c81611333565b5f81525f838201525f60408201525f6060820152828285010152016115f1565b8051156116395760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156116395760400190565b80518210156116395760209160051b010190565b9081549060181b65ffffff000000169065ffffff0000001916179055565b919082015f61010084830312610e40576116b5604051926116af84611333565b856113e7565b938483526116c560a08201611181565b80602085015260e06116d960c084016112a4565b92836040870152013580151594858203610e40576060015260018060a01b03169060020b92611c4e5750600164ffffffffff1981541617600155606084019261173c845160020b61173761172c85614f19565b60125460020b61209f565b614f51565b6014549060ff8260181c165f14611c3b5761175a9160020b9061209f565b945b6117658461339b565b61176e8561339b565b956040519561177c87611399565b808752602087018181526118d8604089019a888c526118d0600d54956117a06136c8565b956118088c6118036117fa6117db6117d26117c96117c46117bf614830565b614ec5565b6136e6565b60135490614ea3565b60105490614ee1565b6117f46117eb60105480936115a1565b916011546115a1565b90615056565b600d5490615136565b6136f7565b8c929083811315611c2c5761186b9293508981115f14611c275750885b928d60185460020b835160020b8082135f14611c1f5750905b50818a5260145460181c60ff1615611c105761185f9150895160020b61209f565b905b5160020b90614f51565b60020b60208701525b855160020b966020870197885160020b14155f14611c055760ff60145460181c166118c5836118a68a5160020b61339b565b8b516001600160801b039491906118bf9060020b61339b565b91614fef565b1660408801526115a1565b90848861376e565b996118eb6118e68c51611450565b6115c5565b985160020b915160020b9060018060801b03905116906040519261190e84611333565b8352602083015260408201526001606082015261192a8861162c565b526119348761162c565b50805160020b915160020b90604060018060801b0391015116906040519261195b84611333565b835260208301526040820152600260608201526119778661164d565b526119818561164d565b50835b8751811015611a3457611997818961165d565b515160020b60206119a8838b61165d565b51015160020b6001600160801b0360406119c2858d61165d565b51015116836003019182600311611a2057611a1992600195949260ff92604051946119ec86611333565b855260208501526040840152166060820152611a0783611450565b90611a12828b61165d565b528861165d565b5001611984565b634e487b7160e01b89526011600452602489fd5b50611a429293969585613aa5565b611a4b8261162c565b516001855260076020526040852090805162ffffff198354169062ffffff16178255611a7e602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b16179055611ac58261164d565b516002855260076020526040852090805162ffffff198354169062ffffff16178255611af8602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b16179055835b8351811015611be557611b53611b4d82611450565b8461165d565b518160030180600311611bd1579060019291875260076020526040872090805162ffffff198354169062ffffff16178255611b95602082015160020b83611671565b604081015190825490606060ff60b01b91015160b01b16918560301b8660b01b039060301b16908560301b8660b81b0319161717905501611b38565b634e487b7160e01b87526011600452602487fd5b509291505060405190611bf96020836113b4565b81525f36602083013790565b8b60408801526115a1565b611c199161337e565b90611861565b90509061183e565b611825565b50508087526020870152611874565b611c489160020b9061337e565b9461175c565b925f9250829160015b6015546003018060031161145e57811015611ddc57805f526007602052611c8060405f2061147f565b60408101516001600160801b031680611c9e575b5050600101611c57565b611d279160409160ff6014999598995460181c1691825f14611dce57805160020b925b15611db95760ff6060611ce3611cde602085015160020b95613286565b6114c1565b9201511691845193611cf485611333565b60020b845260020b6020840152600f0b838301526060820152815180938192632d35e7ed60e11b83528c60048401611531565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610e3557600192611d7e925f905f92611d86575b50611d7891926132a5565b966132a5565b93905f611c94565b611d789250611dac915060403d8111611db2575b611da481836113b4565b8101906114d8565b91611d6d565b503d611d9a565b60ff6060611ce3611cde845160020b95613286565b602081015160020b92611cc1565b5091929390947f000000000000000000000000000000000000000000000000000000000000000091611e1860018060a01b0383511630856132e7565b926020830192611e3260018060a01b0385511630846132e7565b945f8113611ed6575b5050848413611e6a575b5050505050604051916020830152604082015260408152611e676060826113b4565b90565b91516001600160a01b039283169216823b15611ed25791611ea6939185809460405196879586948593630b0d9c0960e01b85526004850161157f565b03925af18015610dfc57611ebd575b808080611e45565b611ec88280926113b4565b6101eb5780611eb5565b8480fd5b90516001600160a01b0383811692911690823b15610e4057611f1392855f809460405196879586948593630b0d9c0960e01b85526004850161157f565b03925af18015610e3557611f28575b80611e3b565b611f359195505f906113b4565b5f935f611f22565b60405190611f4a8261137e565b6009546001600160a01b039081168352600a54808216602085015260a081901c62ffffff16604085015260b81c60020b6060840152600b54166080830152565b91909160e06060610100830194611fa28482516114ee565b60208101516001600160a01b031660a0850152604081015160020b60c085015201511515910152565b602081830312610e40578051906001600160401b038211610e40570181601f82011215610e40578051906001600160401b03821161134e576040519261201b601f8401601f1916602001856113b4565b82845260208383010111610e4057815f9260208093018386015e8301015290565b600f91820b910b019060016001607f1b0319821260016001607f1b0383131761145e57565b6084358060020b8103610e405790565b60020b627fffff19811461145e575f0390565b60020b60010190627fffff8213627fffff1983121761145e57565b9060020b9060020b0190627fffff198212627fffff83131761145e57565b5f80549160ff8360081c16613277576010544210613268576120dd614830565b64ffffffffff600154161015613257575f926011544210158061324c575b612ea1575b509060ff5f5416155f14612e3357612116614830565b9060015461212b64ffffffffff8216846115a1565b64ffffffffff1990911664ffffffffff84161760015560035460025f526007602052946121645f8051602061552683398151915261147f565b9461219c60a06121753660246113e7565b207f0000000000000000000000000000000000000000000000000000000000000000614777565b505050946121a986614864565b608435978860020b90818a14159283610e40578a6121c691614f51565b905f916121d68d600554906136f7565b5f198a0194908a861161145e575f8f966121f26121f791613a95565b614fcf565b80971115911280612e2c575b15612ccf575050506122249192505160020b9161221e615355565b90614ee1565b955b60018111612c395750612262908a60055561225c670de0b6b3a764000061224f89600254614ee1565b9880612c30575b05614f19565b9061209f565b90612c2c578761227191614f51565b9061228d8861173761172c670de0b6b3a76400005f9905614f19565b9760145460ff8160181c165f14612c19576122ab9060020b8a61209f565b955b8960ff60145460181c16809b811580612c09575b15612bcd57505050612bc9576122d7908361209f565b945b6122e28361339b565b986122ec8761339b565b908b15612bc05715612b0d5760016123058c8c84615443565b91818060a01b038c1690828060a01b0316038060ff1d9081011891818060801b031661233183826150ed565b928260601b9109151516015b975b60155461234e6118e682611450565b9060018a52600760205261236460408b2061147f565b61236d8361162c565b526123778261162c565b5060028a52600760205261238d60408b2061147f565b6123968361164d565b526123a08261164d565b50895b818110612ac55750506123c1906123bb3660246113e7565b90614b1d565b5060145460181c60ff1699908a15612a20576044356001600160a01b0381168103612a1c57612402906123f3906145f2565b6001600160801b038316611472565b6006549061241a906001600160801b038316906115a1565b916024356001600160a01b0381168103612a18579e6118e69f936124728e969461245d8c9561244b89879a506145f2565b9060801d6001600160801b0316611472565b60809190911d6001600160801b0316906115a1565b600d548380821115612a1057612487916115a1565b81811090821802189e61249b3660246113e7565b906124a46136c8565b95836129b057505050505060020b80825260208201528260408201525b604081018051909c6125c7916125bf916125ad916001600160801b0316156129a1575b6124ef3660246113e7565b906125166124fb6136c8565b976118036117fa6117db6117d26117c96117c46117bf614830565b888082131561298d5750818111156129845750612571815b928d606060185460020b920191825160020b8082135f1461297c5750905b60020b90818b5260ff60145460181c165f14611c105761185f91508a5160020b61209f565b60020b60208801525b865160020b976020880198895160020b14155f14612972575060ff60145460181c166118c5836118a68a5160020b61339b565b87856125ba3660246113e7565b61376e565b9e8f51611450565b9b6020825160020b92015160020b9060018060801b0390511690604051926125ee84611333565b8352602083015260408201526001606082015261260a8c61162c565b526126148b61162c565b50805160020b915160020b90604060018060801b0391015116906040519261263b84611333565b835260208301526040820152600260608201526126578a61164d565b526126618961164d565b50875b8b51811015612715578b60206126898361267e818561165d565b515160020b9361165d565b51015160020b8d60406126a38560018060801b039361165d565b51015116836003019182600311612701579260ff6126fa938f9360019796604051946126ce86611333565b8552602085015260408401521660608201526126f36126ec85611450565b809361165d565b528c61165d565b5001612664565b634e487b7160e01b8d52601160045260248dfd5b50612735919293949596999a979a61272e3660246113e7565b918a613aa5565b61273e8761162c565b5160018a52600760205260408a2090805162ffffff198354169062ffffff16178255612771602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b161790556127b88761164d565b5160028a52600760205260408a2090805162ffffff198354169062ffffff161782556127eb602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b16179055885b601554811015612918578651811061287557806003018060031161286157906001918b5260076020528a60408120555b0161282b565b634e487b7160e01b8b52601160045260248bfd5b61288761288182611450565b8961165d565b5181600301806003116129045790600192918c52600760205260408c2090805162ffffff198354169062ffffff161782556128c9602082015160020b83611671565b604081015190825490606060ff60b01b91015160b01b16918560301b8660b01b039060301b16908560301b8660b81b0319161717905561285b565b634e487b7160e01b8c52601160045260248cfd5b5090919295507f223157ec47d7bd04fa3ed10c0a8adb38faf97b51ec856a777425a2e39253bd739450608093966040519360020b845260020b602084015260020b60408301526060820152a15b6315d7892d60e21b929190565b60408801526115a1565b90509061254c565b6125719061252e565b9250508b60020b808852602088015261257a565b602085015160020b85526124e4565b838111156129c95750506129c49450614cc7565b6124c1565b9250935050612a0591508c60020b84528960020b60208501526129eb8d61339b565b6001600160801b0393906129fe8c61339b565b9115614fef565b1660408201526124c1565b505086612487565b8c80fd5b8a80fd5b6024356001600160a01b0381168103612a1c57612a5390612a40906145f2565b608083901d6001600160801b0316611472565b60065490612a6f90608083901d6001600160801b0316906115a1565b916044356001600160a01b0381168103612a18579e6118e69f93612ac08e9694612aaf8c95612aa089879a506145f2565b906001600160801b0316611472565b6001600160801b03909116906115a1565b612472565b806003018060031161290457906001918c526007602052612b0660408d20612af5612aef84611450565b9161147f565b612aff828861165d565b528561165d565b50016123a3565b612b188b8b83615400565b8a826001600160a01b0380831690821611612bb5575b506001600160a01b038316918215612ba95760601b600160601b600160e01b0316926001600160a01b03828116929190910316612b6c8282866152a0565b938215612b955709612b86575b808206151591040161233d565b906001019081612b79575b8880fd5b634e487b7160e01b8c52601260045260248cfd5b62bfc9218b526004601cfd5b8c935090505f612b2e565b5050869761233f565b8680fd5b91989392509081612bf8575b50612be5575b506122d9565b612bf19196508361337e565b945f612bdf565b905060020b8460020b13155f612bd9565b508060020b8760020b12156122c1565b612c269060020b8a61337e565b956122ad565b8580fd5b89600255612256565b612c429061370f565b5f198101818111611a20576121f2612c5991613a95565b808c10612c67575b50612226565b612c7c612c75989298615355565b918d615056565b670de0b6b3a76400000390670de0b6b3a76400008211612cbb57612cad612cb49392670de0b6b3a764000092614ea3565b0590614ee1565b955f612c61565b634e487b7160e01b8a52601160045260248afd5b9192909115612d2c57505083612b91578a612ce991614f51565b91612cf5612c75615355565b670de0b6b3a76400000390670de0b6b3a76400008211612cbb57612cad612d269392670de0b6b3a764000092614ea3565b95612226565b93509350975050612d5260125460020b670de0b6b3a76400006002540560020b9061209f565b60185460020b5f9381135f14612e2157905b6014549260ff8460181c1692835f14612e0e57612d84915160020b61209f565b915b829985610e4057612dd694612d9e8e612dce96614f51565b938315612dfb57612db29160020b9061209f565b915b15612de6578160020b8160020b135f14612ddf575061337e565b60020b614e7f565b955f9695612226565b905061337e565b8160020b8160020b125f14612ddf575061337e565b612e089160020b9061337e565b91612db4565b612e1b915160020b61337e565b91612d86565b505f92508990612d64565b5080612203565b915060ff60145460181c168080612e8a575b8115612e6a575b50612e5b576240000090612965565b63016ccb0760e01b5f5260045ffd5b90501580612e79575b5f612e4c565b5060c4358015158114612e73575f80fd5b905060c43580159081158103610e40575090612e45565b600454600e54111561323d5760019060ff1916175f557fe8775e4a58023f399765c3455b45eebcc45ad6b99607a1163f02e1318430970c5f80a1612ef6612eee60a06121753660246113e7565b505050614864565b601554612f056118e682611450565b60015f52600760205290612f255f8051602061550683398151915261147f565b612f2e8361162c565b52612f388261162c565b5060025f526007602052612f585f8051602061552683398151915261147f565b612f618361164d565b52612f6b8261164d565b505f5b81811061320c575050612f86906123bb3660246113e7565b5060145460181c60ff169081156131c1576044356001600160a01b0381168103610e4057612ff1918491612fdb906001600160801b0390612fc6906145f2565b16600f0b60018060801b0392600f0b9061203c565b165b60035490612fec3660246113e7565b614cc7565b9060408051929061300281856113b4565b60018452601f19015f5b818110613192575050805160020b6020820191825160020b90604060018060801b0391015116906040519261304084611333565b8352602083015260408201526001606082015261305c8461162c565b526130668361162c565b505160020b901561316957608435928360020b8403610e40576130a361309d6130986130b694876130bb98509061209f565b61339b565b9161339b565b906130af3660246113e7565b9184613aa5565b61162c565b5160015f52600760205260405f2090805162ffffff198354169062ffffff161782556130ee602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b161790555f5b6015546001810180911161145e57811015613162578061314f600192611450565b5f5260076020525f60408120550161312e565b505f612100565b608435928360020b8403610e40576130a361309d6130986130b69461225c886130bb9950612071565b6020906040516131a181611333565b5f81525f838201525f60408201525f60608201528282880101520161300c565b6024356001600160a01b0381168103610e4057612ff1918491613206906001600160801b03906131f0906145f2565b6001600160801b039360801d9116600f0b61203c565b16612fdd565b80600301908160031161145e576001915f52600760205261323660405f20612af5612aef84611450565b5001612f6e565b631ed9bcf960e01b5f5260045ffd5b5060ff8116156120fb565b6315d7892d60e21b92505f91508190565b630fc95b4360e01b5f5260045ffd5b636fce6c3960e01b5f5260045ffd5b6001607f1b81101561329857600f0b90565b6335278d125f526004601cfd5b6132c8906132ba8360801d8260801d01614efc565b92600f0b90600f0b01614efc565b60018060801b03169060801b1790565b90816020910312610e40575190565b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa908115610e35575f91613334575090565b90506020813d60201161335b575b8161334f602093836113b4565b81010312610e40575190565b3d9150613342565b60020b5f190190627fffff198212627fffff83131761145e57565b600291820b910b0390627fffff198212627fffff83131761145e57565b60020b908160ff1d82810118620d89e881116136b55763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b189160028116613699575b6004811661367d575b60088116613661575b60108116613645575b60208116613629575b6040811661360d575b608081166135f1575b61010081166135d5575b61020081166135b9575b610400811661359d575b6108008116613581575b6110008116613565575b6120008116613549575b614000811661352d575b6180008116613511575b6201000081166134f5575b6202000081166134da575b6204000081166134bf575b62080000166134a6575b5f1261349e575b0160201c90565b5f1904613497565b6b048a170391f7dc42444e8fa290910260801c90613490565b6d2216e584f5fa1ea926041bedfe9890920260801c91613486565b916e5d6af8dedb81196699c329225ee6040260801c9161347b565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c91613470565b916f31be135f97d08fd981231505542fcfa60260801c91613465565b916f70d869a156d2a1b890bb3df62baf32f70260801c9161345b565b916fa9f746462d870fdf8a65dc1f90e061e50260801c91613451565b916fd097f3bdfd2022b8845ad8f792aa58250260801c91613447565b916fe7159475a2c29b7443b29c7fa6e889d90260801c9161343d565b916ff3392b0822b70005940c7a398e4b70f30260801c91613433565b916ff987a7253ac413176f2b074cf7815e540260801c91613429565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c9161341f565b916ffe5dee046a99a2a811c461f1969c30530260801c91613415565b916fff2ea16466c96a3843ec78b326b528610260801c9161340c565b916fff973b41fa98c081472e6896dfb254c00260801c91613403565b916fffcb9843d60f6159c9db58835c9266440260801c916133fa565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c916133f1565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c916133e8565b916ffff97272373d413259a46990580e213a0260801c916133df565b826345c3193d60e11b5f5260045260245ffd5b604051906136d582611399565b5f6040838281528260208201520152565b905f19820191821360011661145e57565b81810392915f13801582851316918412161761145e57565b801561145e575f190190565b60020b9060020b90811561373d57627fffff1981145f1983141661145e570590565b634e487b7160e01b5f52601260045260245ffd5b8181029291811591840414171561145e57565b811561373d570490565b9291909161377a614830565b6137876013548092613751565b906137956010548093611472565b9060115492838311613a69575b6137aa614830565b6001810180911161145e576137c7926137c291613751565b611472565b91808311613a61575b50808214613a24576138036137f2613809936117f46117eb60105480936115a1565b916117f46117eb60105480936115a1565b906115a1565b936015549384805b6139e3575b5061382d6020613837920194855160020b9061337e565b8560020b9061371b565b918461386e60ff60145460181c1694855f146139a957606085015160020b90818160020b125f146139a257505b97600d5490615136565b918061387a8385613751565b11613992575050925b5160020b94613891856115ae565b9561389f60405197886113b4565b858752601f196138ae876115ae565b015f5b81811061397b5750505f905b8682106138ce575050505050505090565b6138d8828961165d565b519060020b9052600161390a6138fc846138f2858c61165d565b515160020b61209f565b606086015160020b90614f51565b916020613917828b61165d565b51018360020b905261395c878a613955602061394a8661394461393a828761165d565b515160020b61339b565b9461165d565b51015160020b61339b565b9089614fef565b6040613968838c61165d565b510190838060801b0316905201906138bd565b6020906139866136c8565b82828c010152016138b1565b61399c9250613764565b92613883565b9050613864565b606085016139ba815160020b612071565b60020b8260020b125f146139d057505b976117fa565b6139de91505160020b612071565b6139ca565b945f19860186811161145e576139f890615024565b613a0187615024565b03613a1e57613a12613a189161370f565b9561370f565b80613811565b94613816565b505050505050604051613a386020826113b4565b5f81525f805b818110613a4a57505090565b602090613a556136c8565b82828601015201613a3e565b91505f6137d0565b8392506137a2565b805115158252602080820151908301526040908101516001600160a01b0316910152565b600160ff1b811461145e575f0390565b9392916001600160a01b039182169116818103613fa6575b50505f915f5b8451811015613c30576001600160801b036040613ae0838861165d565b51015116613af1575b600101613ac3565b613ba190604060ff60145460181c16805f14613c1857613b11838961165d565b515160020b905b15613c04576020613b29848a61165d565b51015160020b5b613b4f6001600160801b0384613b46878d61165d565b51015116613286565b60ff6060613b5d878d61165d565b5101511691845193613b6e85611333565b60020b845260020b6020840152600f0b838301526060820152815180948192632d35e7ed60e11b83528860048401611531565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610e3557600192613be7575b509050613ae9565b613bfe9060403d8111611db257611da481836113b4565b50613bdf565b613c0e838961165d565b515160020b613b30565b6020613c24848a61165d565b51015160020b90613b18565b509190928051905f19820191821161145e57602091613c4e9161165d565b5101516018549060181b65ffffff000000169065ffffff0000001916176018557f0000000000000000000000000000000000000000000000000000000000000000613ca360018060a01b0385511630836132e7565b906020850194613cbd60018060a01b0387511630846132e7565b925f8113613f3f575b848413613eca575b848112613dd7575b5050828212613ce7575b5050509050565b84516001600160a01b039081169591169190823b15613dd35760405195632961046560e21b87526004870152838660248183875af195861561074b57849596613db6575b505160209291613d50916001600160a01b0316908390613d4a90613a95565b91614634565b600460405180958193630476982d60e21b83525af1908115613daa5750613d7b575b80808392613ce0565b613d9c9060203d602011613da3575b613d9481836113b4565b8101906132d8565b505f613d72565b503d613d8a565b604051903d90823e3d90fd5b84613dc59195929394956113b4565b613dd357908392915f613d2b565b8380fd5b81516001600160a01b03848116939116833b15612bc95760405190632961046560e21b82526004820152868160248183885af18015613ebf57908791613eaa575b505080516001600160a01b031680613e96575b50516001600160a01b0316613e8c57613e45602091613a95565b915b600460405180948193630476982d60e21b83525af1801561074b57613e6d575b80613cd6565b613e859060203d602011613da357613d9481836113b4565b505f613e67565b5060208491613e47565b613ea49084613d4a85613a95565b5f613e2b565b81613eb4916113b4565b612c2c57855f613e18565b6040513d89823e3d90fd5b86516001600160a01b038481169116813b15612bc95785613f0692889283604051809681958294630b0d9c0960e01b845230906004850161157f565b03925af18015613f3457908691613f1f575b5050613cce565b81613f29916113b4565b611ed257845f613f18565b6040513d88823e3d90fd5b81516001600160a01b03908116908416803b15610e4057825f91613f7c9383604051809681958294630b0d9c0960e01b845230906004850161157f565b03925af18015610e3557613f91575b50613cc6565b613f9e9195505f906113b4565b5f935f613f8b565b60405191613fb383611399565b81108252600160208301526040820152613feb60405191633cf3645360e21b8352613fe160048401856114ee565b60a4830190613a71565b6101206101048201525f610124820152602081610144815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610e355761403f575b80613abd565b6140579060203d602011613da357613d9481836113b4565b505f614039565b6101409290916140e691906001600160a01b0361407a82611181565b1684526001600160a01b0361409160208301611181565b16602085015262ffffff6140a7604083016113d7565b1660408501526140b9606082016112a4565b60020b60608501526001600160a01b03906140d690608001611181565b16608084015260a0830190613a71565b6101206101008201525f6101208201520190565b60ff5f54166145e45761414c9060a06141143660246113e7565b207f0000000000000000000000000000000000000000000000000000000000000000906141418183614777565b949290969150614864565b60145460181c60ff1680156145d15760185460181c60020b8260020b135b60015f5260076020525f805160206155068339815191525460020b9082156145c557818460020b12905b156144e357505050509061420d91602060ff60145460181c16805f146144cf576141c861309860185460181c60020b612084565b604051916141d583611399565b151582526001838301526001600160a01b031660408083019190915251633cf3645360e21b815294859182919060246004840161405e565b03815f6001600160a01b0386165af18015610e355761449c575b6142319250614777565b50509050925b60c435908115158203610e405762ffffff91610fff9182911561449357165b169116620f42408183020491010360ff60145460181c165f146143ea57608082901d5f600f82900b126143a557600354614299916001600160801b031690611472565b6003555b600f82900b5f811261434b5750505f805160206154e6833981519152916142d060609260018060801b03166004546115a1565b6004555b600454600f54811015614307575b600354906040519260020b835260208301526040820152a163b47b2fb160e01b905f90565b61010061ff00195f5416175f557f628a470bfdde264ef77cd19acfbfca22b3e4413adaf5837ec9fbc0043e35793f602061433f614830565b604051908152a16142e2565b62ffffff91925061435b906114c1565b9116620f42400391620f4240831161145e575f805160206154e68339815191529260609261439d91614395916001600160801b03166151b1565b600454611472565b6004556142d4565b6143ae906114c1565b62ffffff8216620f42400390620f4240821161145e576143e2916143da916001600160801b03166151b1565b6003546115a1565b60035561429d565b90600f81900b5f8112614456575060035461440f906001600160801b03831690611472565b6003555b60801d905f600f83900b1261444857505f805160206154e68339815191529161439d60609260018060801b03166004546115a1565b9061435b62ffffff916114c1565b61445f906114c1565b62ffffff8316620f42400390620f4240821161145e5761448b916143da916001600160801b03166151b1565b600355614413565b600c1c16614256565b6020833d6020116144c7575b816144b5602093836113b4565b81010312610e40576142319250614227565b3d91506144a8565b6141c861309860185460181c60020b613363565b97949392976144f6575b50505050614237565b61455794975090614513602092825f146145bc5761309890613363565b6040519161452083611399565b1582526001838301526001600160a01b031660408083019190915251633cf3645360e21b815294859182919060246004840161405e565b03815f6001600160a01b0386165af18015610e3557614589575b61457b9250614777565b50509050925f8080806144ed565b6020833d6020116145b4575b816145a2602093836113b4565b81010312610e405761457b9250614571565b3d9150614595565b61309890612084565b818460020b1390614194565b60185460181c60020b8260020b1261416a565b5063b47b2fb160e01b905f90565b6001600160a01b03168061460557504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115610e35575f91613334575090565b9091906001600160a01b03811690816146c25750505f80808093855af1156146595750565b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b60205f604481949682604095865198899363a9059cbb60e01b855260018060a01b0316600485015260248401525af13d15601f3d116001855114161716928281528260208201520152156147135750565b6040516390bfb86560e01b8152600481019190915263a9059cbb60e01b602482015260806044820152601f3d01601f191660a0810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b9190602090604051828101918252600660408201526040815261479b6060826113b4565b519020604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa918215610e35575f926147fc575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b9091506020813d602011614828575b81614818602093836113b4565b81010312610e405751905f6147d4565b3d915061480b565b60105480421061485e5761484761485091426115a1565b60135490613764565b6001810180911161145e5790565b50600190565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b031611614afd57602081901b600160201b600160c01b0316808015610e4057693627a301d71055774c859160ff8260018060801b031060071b83811c60018060401b031060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c821060031b177b01c1818141808140018080c0814100004181408140c0c100414140c160221b6f8421084210842108cc6318c6db6d54be85831c1c601f161a17169160808310155f14614af15750607e1982011c5b800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c600160321b90800260cd1c169d600160331b9060cc1c169c600160341b9060cb1c169b600160351b9060ca1c169a600160361b9060c91c1699600160371b9060c81c1698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c1690607f190160401b1717171717171717171717171717026fdb2df09e81959a81455e260799a0632f6f028f6481ab7f045a5af012a19d003aa919820160801d60020b910160801d60020b918282145f14614acd5750905090565b6001600160a01b0390811690614ae28461339b565b1611614aec575090565b905090565b905081607f031b614941565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b91905f905f905f5b8551811015614cb0576001600160801b036040614b42838961165d565b51015116614b53575b600101614b25565b9192614c02604060ff60145460181c16805f14614c9857614b74868a61165d565b515160020b905b15614c84576020614b8c878b61165d565b51015160020b5b8960ff6060614bbe8a6139446001600160801b0389614bb2848961165d565b51015116600f0b6114c1565b5101511691845193614bcf85611333565b60020b845260020b6020840152600f0b838301526060820152815180938192632d35e7ed60e11b83528760048401611531565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610e3557600192614c59925f905f92614c61575b50614c5391926132a5565b956132a5565b929050614b4b565b614c539250614c7e915060403d8111611db257611da481836113b4565b91614c48565b614c8e868a61165d565b515160020b614b93565b6020614ca4878b61165d565b51015160020b90614b7b565b505091909250614cc2826006546132a5565b600655565b9093929193614cd46136c8565b9480614e2757505f5b6001600160a01b031680614d015750505060020b80835260208301525f6040830152565b919250614e0c91614db390606090614da59060b56001600160881b03821160071b82811c6001600160481b031060061b1782811c64ffffffffff1060051b1782811c62ffffff1060041b17600181811c9290921b9083901c62010000010260121c80830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c908190048111900360301b6001600160a01b0316614864565b940193845160020b90614f51565b92614df4602087019460020b9182865260ff60145460181c1692835f14614e145750614de990865160020b905160020b9061337e565b60020b80885261339b565b93516001600160801b0394906129fe9060020b61339b565b166040830152565b614e22915160020b9061209f565b614de9565b8160ff60145460181c165f14614e605750600654614e5b91614e559160801d6001600160801b0316906115a1565b82615320565b614cdd565b600654614e5b92614e7a916001600160801b0316906115a1565b615320565b90670de0b6b3a7640000820291808305670de0b6b3a7640000149015171561145e57565b81810292915f8212600160ff1b82141661145e57818405149015171561145e57565b9060018201915f60018412911290801582169115161761145e57565b9190915f838201938412911290801582169115161761145e57565b9081600f0b918203614f0a57565b6393dafdf160e01b5f5260045ffd5b80628000000160181c15614f34576335278d125f526004601cfd5b60020b90565b9060020b9060020b02908160020b91820361145e57565b9060ff60145460181c165f14614f9d575f8260020b125f14614f9057614f8b81614f86614f8182611e679661337e565b612084565b61371b565b614f3a565b614f8b81611e679361371b565b5f8260020b125f14614fb657614f8b81611e679361371b565b614f8b81614f86614fca82611e679661209f565b613363565b6117fa6117db6117d26117c96117c4611e6795614fea614830565b614ee1565b9092909190801561501e575f19810190811161145e57915b1561501557611e6792615443565b611e6792615400565b91615007565b61503f615036615048926137c2614830565b60135490613751565b60105490611472565b601154808211614aec575090565b90670de0b6b3a76400008202905f19670de0b6b3a7640000840992828085109403938085039485841115610e4057146150e657670de0b6b3a764000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b81810291905f1982820991838084109303928084039384600160601b1115610e40571461512d57600160601b910990828211900360a01b910360601c1790565b50505060601c90565b808202905f1983820990828083109203918083039283670de0b6b3a76400001115610e4057146151a0577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac1066993670de0b6b3a7640000910990828211900360ee1b910360121c170290565b5050670de0b6b3a764000091500490565b808202905f1983820990828083109203918083039283620f42401115610e405714615211577fde8f6cefed634549b62c77574f722e1ac57e23f24d8fd5cb790fb65668c2613993620f4240910990828211900360fa1b910360061c170290565b5050620f424091500490565b90606082901b905f19600160601b840992828085109403938085039485841115610e4057146150e6578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b91818302915f1981850993838086109503948086039586851115610e405714615318579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b9061532a9161521d565b6001600160a01b03811161535057600160a01b811015613298576001600160a01b031690565b505f90565b61539b612dce61536b612eee60a0612175611f3d565b60145460181c60ff16156153cf5760125460020b808260020b135f146153c857505b60125460181c60020b61337e565b6153ad614847601154601054906115a1565b90811561373d57600160ff1b81145f1983141661145e570590565b905061538d565b60125460020b808260020b125f146153c8575061538d565b6001600160a01b03918216908216039190821161145e57565b611e67926154389290916001600160a01b038083169082161161543d575b6001600160a01b039161543191906153e7565b169061521d565b615497565b9061541e565b611e6792615438929091906001600160a01b0380821690831611615491575b61548a61547b6001600160a01b038381169085166150ed565b926001600160a01b03926153e7565b16916152a0565b90615462565b6001600160801b038116919082036154ab57565b60405162461bcd60e51b81526020600482015260126024820152716c6971756964697479206f766572666c6f7760701b6044820152606490fdfe27db09392d7d230eb65a11bd84925fb8da90df8a067ca8a4fc2933b4f637262bb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b828b7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d";
5032
5075
 
5033
- declare const _default$5: "0x60a0604052346104a85761390680380380610019816107f1565b928339810160e0828203126104a85781516001600160401b0381116104a85781610044918401610816565b60208301519091906001600160401b0381116104a85781610066918501610816565b9060408401519161007960608601610867565b9361008660808701610867565b60a08701519093906001600160401b0381116104a85760c0916100aa918901610816565b960151926001600160a01b031680156107de575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a382156107cf578284066107c0578051906001600160401b0382116104eb5760015490600182811c921680156107b6575b60208310146105d05781601f849311610748575b50602090601f83116001146106e2575f926106d7575b50508160011b915f199060031b1c1916176001555b8051906001600160401b0382116104eb5760025490600182811c921680156106cd575b60208310146105d05781601f84931161065f575b50602090601f83116001146105f9575f926105ee575b50508160011b915f199060031b1c1916176002555b83516001600160401b0381116104eb57600354600181811c911680156105e4575b60208210146105d057601f811161056d575b50602094601f821160011461050a579481929394955f926104ff575b50508160011b915f199060031b1c1916176003555b608052604051610d35808201906001600160401b038211838310176104eb576020918391612bd183393381520301905ff080156104e0576080516001600160a01b0391909116906001600160601b035f1990910110156104d35768a20d6e21d0e5255309546001600160a01b03166104c65780156104b957630f4599e55f523360205260205f6024601c82855af160015f511416156104ac57678da5cb5b6cef16e65f5260208060046018305afa601f3d1160205160601b151016610499575b68a20d6e21d0e5255308805463ffffffff60201b191664010000000017905568a20d6e21d0e525530980546001600160a01b03191691909117905580610375575b604051612334908161089d823960805181818161040b01528181610a4f01528181610c1c015281816114860152818161171c015281816119110152611f920152f35b6001600160a01b03821691821561048c57608051820463fffffffe108260601c1761047f5768a20d6e21d0e525530880546001600160a01b031660a084901b6001600160a01b03191690811790915561041292906103d28361087b565b80546001600160a01b031690911790555f90815283907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082a361087b565b906bff00000000000000000000008254918260581c9060015f527fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff821691161560011b1860011760581b16906bff000000000000000000000019161790555f80610333565b63e5cfe9575f526004601cfd5b63ea553b345f526004601cfd5b5f806004601c82855af16102f2575b5f80fd5b63d125259c5f526004601cfd5b6339a84a7b5f526004601cfd5b63ead4d2e45f526004601cfd5b63997c4ef45f526004601cfd5b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b015190505f8061021d565b601f1982169560035f52805f20915f5b8881106105555750836001959697981061053d575b505050811b01600355610232565b01515f1960f88460031b161c191690555f808061052f565b9192602060018192868501518155019401920161051a565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106105c6575b601f0160051c01905b8181106105bb5750610201565b5f81556001016105ae565b90915081906105a5565b634e487b7160e01b5f52602260045260245ffd5b90607f16906101ef565b015190505f806101b9565b60025f9081528281209350601f198516905b818110610647575090846001959493921061062f575b505050811b016002556101ce565b01515f1960f88460031b161c191690555f8080610621565b9293602060018192878601518155019501930161060b565b60025f529091507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f840160051c810191602085106106c3575b90601f859493920160051c01905b8181106106b557506101a3565b5f81558493506001016106a8565b909150819061069a565b91607f169161018f565b015190505f80610157565b60015f9081528281209350601f198516905b8181106107305750908460019594939210610718575b505050811b0160015561016c565b01515f1960f88460031b161c191690555f808061070a565b929360206001819287860151815501950193016106f4565b60015f529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f840160051c810191602085106107ac575b90601f859493920160051c01905b81811061079e5750610141565b5f8155849350600101610791565b9091508190610783565b91607f169161012d565b633eaf92f760e21b5f5260045ffd5b63265f13bd60e21b5f5260045ffd5b631e4fbdf760e01b5f525f60045260245ffd5b6040519190601f01601f191682016001600160401b038111838210176104eb57604052565b81601f820112156104a8578051906001600160401b0382116104eb57610845601f8301601f19166020016107f1565b92828452602083830101116104a857815f9260208093018386015e8301015290565b51906001600160a01b03821682036104a857565b6001600160a01b03165f90815268a20d6e21d0e5255313602052604090209056fe608080604052600436101561075d575b503615610752575f3560e01c63e5eb36c881146103d25763f6916ddd811461038f576362fb246d811461036b57632d8a746e81146103325763c016aa52811461031f5763d10b6e0c811461022f576327ef549581146102145763f5b100ea81146101ef5763e2c7928181146101d45763cb30b46081146100a95763b7a94eb8146100a057633c10b94e5f526004601cfd5b60015f5260205ff35b60206040510160405260606003546100c0816113a1565b6100e4575b50605f601f198201915f6020825180930101526020835201601f191690f35b905060405190608082019160a081016040525f8352600a600435935b5f19019360308282060185530492831561011c57600a90610100565b9250608083601f19810192030181526040519283915f9061013c856113a1565b94600181169081156101b45750600114610173575b61016d9450518092825e015f815203601f1981018352826113d9565b816100c5565b905060035f5260205f20935f5b818110610198575061016d9450830160200190610151565b8554602082890181019190915260019096019587955001610180565b602092935061016d96915060ff1916828601528015150284010190610151565b63ffffffff68a20d6e21d0e52553085460801c165f5260205ff35b63ffffffff6102086004356001600160a01b031661135f565b5460801c165f5260205ff35b6001600160a01b03610227600435612130565b165f5260205ff35b68a20d6e21d0e5255309546001600160a01b03163303610312576001600160a01b036044358116906024359060043581169061028061027b5f19600160201b861086020160011b612055565b6120eb565b5416928381036102ef575b505f82815268a20d6e21d0e525530c60209081526040822080546001600160a01b0319166001600160a01b03851617905568a20d6e21d0e525530d60601b600885901c018054600160ff90961695861b191693151590941b92909217909255918152f35b6102f990846115cd565b5415610305578361028b565b63cfb3b9425f526004601cfd5b63ce5a776b5f526004601cfd5b6001600160a01b03610227600435612107565b6004356001600160a01b0361034682612107565b161561035e576001600160a01b039061022790612107565b63ceea21b65f526004601cfd5b6103856001600160a01b03602435811690600435166115cd565b5415155f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633036103125760243515156103c86001600160a01b03600435811690604435166115cd565b5560015f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633819003610312576001600160a01b0360043581165f818152600560205260409020547f000000000000000000000000000000000000000000000000000000000000000093919260443592916064358216916024351690610448908790611438565b935f925f948661072d575b83156107205715610713576001600160a01b0361048061027b600160201b851085025f190160011b612055565b54168703610706578681036106cd575b5061049a8661135f565b906104a48361135f565b90825460a01c808a116106c0576105a69361055e916104cf908c90036001600160601b031682612169565b83546104ee9060a01c6001600160601b038d8116919091011685612169565b6104f78361229f565b61068f575b600161052b61050a8c611380565b9261052563ffffffff5f1981845460801c160116809261218c565b83612079565b61054d8161053f5f198801851b8501612055565b9463ffffffff8616906120c3565b63ffffffff165f1901811b01612095565b6105a08463ffffffff845460801c169361058163ffffffff60018701168261218c565b61059b61058d83611380565b8663ffffffff8716916120c3565b6121d0565b90612260565b855f52845f8051602061231483398151915260205fa36105c95760015f5260205ff35b5f19820191821161067b5763ffffffff6105e28461135f565b5460801c169182811061060d575b5050505f52600560205260405f20908154039055808080806100a0565b61061684611380565b928210156105f0578181146105f0576001826106628363ffffffff8481966106628a610645886106739d612079565b928161065d610655838795612079565b809b836120c3565b6120c3565b825f19911601811b01911690612095565b8280806105f0565b634e487b7160e01b5f52601160045260245ffd5b610698836121af565b5f83815268a20d6e21d0e525530c6020526040902080546001600160a01b03191690556104fc565b63f4d678b85f526004601cfd5b6106d781886115cd565b54610490576001600160a01b036106ed83612130565b16036106f95787610490565b6359c896be5f526004601cfd5b63a11481005f526004601cfd5b6340739bf05f526004601cfd5b63ea553b345f526004601cfd5b9350935063ffffffff61074760015f198401811b01612055565b169385851093610453565b3461075957005b5f80fd5b5f3560e01c90816306fdde031461126757508063095ea7b3146111c65780630ad9e7bf1461118e57806310aa0ebb1461116957806316f0115b1461114157806318160ddd14611119578063207d0636146110d657806323b872dd14611030578063274e430b146110035780632a6a935d14610f915780632f745c5914610f2a578063313ce56714610f0f5780634ef41efc14610edf5780634f6ccce714610ec157806355f804b314610d685780635b2aa23914610bcb5780636c0360eb14610b3957806370a0823114610b0a578063715018a614610ac65780638902653814610a995780638da5cb5b14610a72578063907af6c014610a3857806395d89b411461095e578063a9059cbb1461092d578063dd62ed3e146108f95763f2fde38b14610887575f61000f565b34610759576020366003190112610759576108a0611333565b6108a8611589565b6001600160a01b031680156108e6575f80546001600160a01b03198116831782556001600160a01b0316905f805160206122f48339815191529080a3005b631e4fbdf760e01b5f525f60045260245ffd5b34610759576040366003190112610759576020610925610917611333565b61091f611349565b90611523565b604051908152f35b3461075957604036600319011261075957610953610949611333565b60243590336115eb565b602060405160018152f35b34610759575f366003190112610759576040515f60025461097e816113a1565b8084529060018116908115610a1457506001146109b6575b6109b2836109a6818503826113d9565b60405191829182611309565b0390f35b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b8082106109fa575090915081016020016109a6610996565b9192600181602092548385880101520191019092916109e2565b60ff191660208086019190915291151560051b840190910191506109a69050610996565b34610759575f3660031901126107595760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610759575f366003190112610759575f546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957610ab1611589565b6004805460ff60a01b1916600160a01b179055005b34610759575f36600319011261075957610ade611589565b5f80546001600160a01b0319811682556001600160a01b03165f805160206122f48339815191528280a3005b34610759576020366003190112610759576020610b2d610b28611333565b61135f565b5460a01c604051908152f35b34610759575f366003190112610759576040515f600354610b59816113a1565b8084529060018116908115610a145750600114610b80576109b2836109a6818503826113d9565b60035f9081525f805160206122d4833981519152939250905b808210610bb1575090915081016020016109a6610996565b919260018160209254838588010152019101909291610b99565b34610759576020366003190112610759576004356001600160401b03811161075957366023820112156107595760048101356001600160401b038111610759573660248260051b84010111610759577f0000000000000000000000000000000000000000000000000000000000000000918282029282840481148315171561067b57335f52600560205260405f205493610c643361135f565b5460a01c610c728287611456565b11610d5957610c84610c8a9286611438565b94611456565b335f52600560205260405f2055610ca03361135f565b9263ffffffff610caf33611380565b945460801c16915f915b84831015610d575760248360051b8301013584811015610d4857818110610d3e578181600193849303610cf2575b5001925b0191610cb9565b8063ffffffff848b61066282610d0b610d389784612079565b610d26818a610d1a8188612079565b9661065d888c836120c3565b888616919086165f1901811b01612095565b88610ce7565b5091600190610ceb565b633277964160e01b5f5260045ffd5b005b6302579b0560e11b5f5260045ffd5b34610759576020366003190112610759576004356001600160401b03811161075957366023820112156107595760048101356001600160401b03811161075957366024828401011161075957610dbc611589565b610dc76003546113a1565b601f8111610e71575b505f601f8211600114610e0c5781925f92610dfe575b50508160011b915f199060031b1c1916176003555f80f35b602492500101358280610de6565b601f1982169260035f5260205f20915f5b858110610e5657508360019510610e3a575b505050811b01600355005b01602401355f19600384901b60f8161c19169055828080610e2f565b90926020600181926024878701013581550194019101610e1d565b60035f525f805160206122d4833981519152601f830160051c81019160208410610eb7575b601f0160051c01905b818110610eac5750610dd0565b5f8155600101610e9f565b9091508190610e96565b34610759576020366003190112610759576020610925600435611463565b34610759575f3660031901126107595768a20d6e21d0e5255309546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957602060405160128152f35b3461075957604036600319011261075957610f43611333565b60243563ffffffff610f548361135f565b5460801c16811015610f8257610f7963ffffffff91610f74602094611380565b612079565b16604051908152f35b6306ed618760e11b5f5260045ffd5b3461075957602036600319011261075957600435801580158092036107595761095391610fbd3361135f565b91825460581c915f52337fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff83169216151860011b186001179061156c565b34610759576020366003190112610759576020611026611021611333565b611410565b6040519015158152f35b3461075957606036600319011261075957611049611333565b611051611349565b6044359061105f33846115af565b926e22d473030f116ddee9f6b43ac78ba33314806110bf575b156110b7575f19935b60018501611095575b5061095393506115eb565b8484116110aa5783610953950390558461108a565b6313be252b5f526004601cfd5b835493611081565b5060046110cb8261135f565b5460581c1615611078565b34610759576020366003190112610759576110ef611333565b6110f7611589565b600480546001600160a81b0319166001600160a01b0392909216919091179055005b34610759575f36600319011261075957602068a20d6e21d0e52553085460a01c604051908152f35b34610759575f366003190112610759576004546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957602060ff60045460a01c166040519015158152f35b34610759576020366003190112610759576001600160a01b036111af611333565b165f526005602052602060405f2054604051908152f35b34610759576040366003190112610759576111df611333565b6001600160a01b03811690602435908190611211906e22d473030f116ddee9f6b43ac78ba38514611245575b336115af565b555f52337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa3602060405160018152f35b6112626112513361135f565b600460ff825460581c16179061156c565b61120b565b34610759575f366003190112610759575f600154611284816113a1565b8084529060018116908115610a1457506001146112ab576109b2836109a6818503826113d9565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106112ef575090915081016020016109a6610996565b9192600181602092548385880101520191019092916112d7565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361075957565b602435906001600160a01b038216820361075957565b6001600160a01b03165f90815268a20d6e21d0e52553136020526040902090565b6001600160a01b03165f90815268a20d6e21d0e52553106020526040902090565b90600182811c921680156113cf575b60208310146113bb57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916113b0565b601f909101601f19168101906001600160401b038211908210176113fc57604052565b634e487b7160e01b5f52604160045260245ffd5b9061141a8261135f565b5460581c9160016002841615159316156114315750565b3b15159150565b8115611442570490565b634e487b7160e01b5f52601260045260245ffd5b9190820180921161067b57565b9068a20d6e21d0e52553085463ffffffff8160801c16831015611514576114ae907f00000000000000000000000000000000000000000000000000000000000000009060a01c611438565b905f925f5b8381106114c957639f6fb6c960e01b5f5260045ffd5b806001018060011161067b5763ffffffff6114e68360011b612055565b166114f5575b506001016114b3565b828692961461150b5750600180910194906114ec565b93505050915090565b639f6fb6c960e01b5f5260045ffd5b906001600160a01b0381166e22d473030f116ddee9f6b43ac78ba314611551575b61154d916115af565b5490565b600461155c8361135f565b5460581c166115445750505f1990565b805460ff60581b191660589290921b60ff60581b16919091179055565b5f546001600160a01b0316330361159c57565b63118cdaa760e01b5f523360045260245ffd5b9060285260145268a20d6e21d0e525530f5f5260485f20905f602852565b9060285260145268a20d6e21d0e525530b5f5260485f20905f602852565b6004549092906001600160a01b03838116908216149081612046575b50612037576001600160a01b038316611fe0575b6001600160a01b03821615610720576116338361135f565b61163c8361135f565b68a20d6e21d0e5255309546001600160a01b031615610713576040519161018083016001600160401b038111848210176113fc576040525f83525f60208401525f60808401525f60a08401525f60c08401525f60e08401525f6101008401525f6101208401525f6101408401525f610160840152805463ffffffff8160801c16604085015263ffffffff835460801c1660608501528060a01c85116106c0576116f560a082901c8690036001600160601b031683612169565b825460a01c8501906117106001600160601b03831685612169565b611745604086015191877f00000000000000000000000000000000000000000000000000000000000000009160a01c03611438565b808203911102845261175686611410565b15611f78575b50611d73565b68a20d6e21d0e52553085463ffffffff60208501518551928382848360801c1601038060808901528360801b9060801b16908360801b191617928368a20d6e21d0e52553085501916040519260c060a085019180835260051b850101604052836040015260c0830183528261016087015260601c166101208501528351611c53575b505060208201516118c9575b5061014081015180611885575b50610160015180611833575b505f9081526001600160a01b0391821692909116905f8051602061231483398151915290602090a3565b600160206040828060a01b0368a20d6e21d0e5255309541693015192603f19840193849163263c69d6835283601f198301525f825160051b6044019260231901915af19151141615610759575f611809565b600160205f9281838060a01b0368a20d6e21d0e5255309541691015190815160051b60840190607f19830195869360631901915af19151141615610759575f6117fd565b9194610160829492015160208360601b9101526118e582611380565b9463ffffffff6118f584866121d0565b1660e086015268a20d6e21d0e5255308549263ffffffff6119397f00000000000000000000000000000000000000000000000000000000000000008660a01c611438565b9460201c16848111908115021761010087015261196e60608701519563ffffffff602089015188018060c08b0152169061218c565b63ffffffff68a20d6e21d0e52553085460401c169760015b15611bf4575b6101208701515f9063ffffffff8b8116911614611a4257611a3d63ffffffff60018c01169a60e0641fffffffe0631fffffff8360031c1668a20d6e21d0e525531160601b01549260051b16161c63ffffffff165b8060081c685106b710e87292a98760611b0160018260ff161b8019825416179055611a1263ffffffff82168a8d6120c3565b611a3263ffffffff60e08c01511663ffffffff60018c019b169083612260565b6101608a01516122bd565b611986565b949798939291906101008801515b63ffffffff611a645f19830160011b612055565b1615611bd0575f19906001810160081c685106b710e87292a98760611b018054196001830160ff1690811c901b8015611b58575b80611aae575b5050508981119081150217611a50565b600180939450811901167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07a1412563212c14164235266736f7425221143267a4524367526767760fc7b2aaaaaaaba69a69a6db6db6db2cb2cb2ce739ce73def7bdeffffffff860260f81c161b60f71c1692831c63d76453e004161a179082685106b710e87292a98760611b03190160081b17910181108a8211175f03175f8080611a9e565b506001909c9895929c9a9794919a9693965b01805419685106b710e87292a98760611b60088e901c0182118117611b925750600190611b6a565b9c9295989c9a9194979a969396808d60081c685106b710e87292a98760611b018311611bbf575b50611a98565b508c1960ff1690811b901c80611bb9565b611a3d909a999691929394959a6001810188811190811502176101008b01526119e0565b60c0870151860361198c57945094925094509468a20d6e21d0e52553085463ffffffff60201b61010084015160201b169163ffffffff60401b9060401b1690600160201b600160601b031916171768a20d6e21d0e5255308555f6117f0565b602060018860609a9699959a989497981b17910152611c7182611380565b94611c9160408801519563ffffffff895188038060a08c0152169061218c565b60015b15611d5a575b5f945f190194611caa8688612079565b63ffffffff8116905f1982018060021c685106b710e87292a98960611b019060c082549160061b1681811c60018060401b0316901b189055611cf1826101608c01516122bd565b600160ff62ffffff8360081c16685106b710e87292a98760611b0192161b198154169055611d1e8161229f565b611d29575b50611c94565b611d32816121af565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611d23565b60a08701518503611c9a57935093509390945f806117e4565b9194604086979294970151948651976020880151898110818b18028a1899888b108b8a18028914611f69578a8918898c10028918908190038a52900360208901526001600160a01b0383811690831614611f47576040805163144027d3818301526001600160a01b03858116606080840191909152908516608083015260a08201528a8918898c1002891860c0820181815260059190911b820160e090810190935260208201529081018152610140890152611e2e83611380565b95611e3883611380565b9763ffffffff611e4885846121d0565b1660e08b015260608a01519a81811090821802188a019560015b15611f01575b878b611eac8163ffffffff808f8f90611ea060e09284611e975f9b5f1960408701510190816040880152612079565b169889916120c3565b01511691169083612260565b6101408c015160208151838152019052611ec58161229f565b611ed0575b50611e62565b611ed9816121af565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611eca565b9960010199868b03611e6857939895509398611f2e92975063ffffffff919650806060870152168361218c565b611f4263ffffffff6040850151168261218c565b611762565b9492978681989593989792971090821802186060840151016060840152611762565b50509492975094509491611762565b611fb7906001600160a01b0388811690881614611fcd575b7f000000000000000000000000000000000000000000000000000000000000000090611438565b606084015180820391110260208401525f61175c565b6040850151855190036060860152611f90565b611fe98361135f565b5460a01c60018060a01b0384165f52600560205260405f205490808211918215612024575b50501561161b576311acc28f60e01b5f5260045ffd5b81039150811161067b5781115f8061200e565b632e13674560e01b5f5260045ffd5b60ff915060a01c16155f611607565b60e08160031c685106b710e87292a98960611b01549160051b161c63ffffffff1690565b60e0908260031c9060601b01549160051b161c63ffffffff1690565b9060e08260031c685106b710e87292a98960611b019260051b1682549182821c1863ffffffff16901b189055565b60e0909291928360031c9060601b019260051b1682549182821c1863ffffffff16901b189055565b63ffffffff165f5268a20d6e21d0e525530a60205260405f2090565b6001600160a01b039061212b9061027b90600160201b8110025f190160011b612055565b541690565b6001600160a01b0361214182612107565b161561035e575f90815268a20d6e21d0e525530c60205260409020546001600160a01b031690565b80546001600160a01b031660a09290921b6001600160a01b031916919091179055565b805463ffffffff60801b191660809290921b63ffffffff60801b16919091179055565b60018160081c68a20d6e21d0e525530d60601b019160ff161b198154169055565b805460601c63ffffffff16929183156121e7575050565b68a20d6e21d0e5255308805463ffffffff19811663ffffffff918216600101918216908117909255835463ffffffff60601b191660609190911b63ffffffff60601b1617909255909250829061223c826120eb565b80546001600160a01b0319166001600160a01b039092169190911790551561075957565b5f1901908160021c685106b710e87292a98960611b019260c084549360061b169163ffffffff169060201b1782821c1860018060401b0316901b189055565b8060081c68a20d6e21d0e525530d60601b01549060ff161c60011690565b9060209082519060081b8284015117815201905256fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef608034607857601f610d3538819003918201601f19168301916001600160401b03831184841017607c57808492602094604052833981010312607857516001600160a01b03811690819003607857683602298b8c10b0123180546001600160a01b031916919091179055604051610ca490816100918239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60808060405260043610156101c5575b5036156101ba575f3560e01c63263c69d681146101405763144027d381146100cf57630f4599e51461004857633c10b94e5f526004601cfd5b683602298b8c10b01231546001600160a01b0316806100ab575b50683602298b8c10b01230546001600160a01b03811661009e576001600160a01b0319163317683602298b8c10b012305560015f908152602090f35b63bf656a465f526004601cfd5b6004356001600160a01b0316036100c2575f610062565b63c59ec47a5f526004601cfd5b683602298b8c10b01230546001600160a01b03163303610133576004356024359060443591602483810193600481013560051b0101925b8381036101165760015f5260205ff35b803582845f80516020610c848339815191525f80a4602001610106565b63363cb3125f526004601cfd5b683602298b8c10b01230546001600160a01b0316330361013357600435602481810191600481013560051b0101905b81810361017f5760015f5260205ff35b8035600881901c6001600160581b03169060018116801560609290921c91820291025f80516020610c848339815191525f80a460200161016f565b346101c157005b5f80fd5b5f3560e01c90816301ffc9a714610aa85750806306fdde0314610a3d578063081812fc146109e6578063095ea7b31461096457806318160ddd1461091857806323b872dd1461090457806324359879146108ad5780632f745c591461083c57806342842e0e146107c95780634f6ccce7146107325780636352211e146107035780636cef16e61461063757806370a08231146105da5780638da5cb5b146105aa57806395d89b411461053f57806397e5311c14610513578063a22cb46514610487578063b88d4fde1461039d578063c87b56dd146103215763e985e9c5146102ad575f61000f565b346101c15760403660031901126101c1576102c6610b1c565b60205f6044601c6102d5610b32565b6102dd610c25565b604080516362fb246d87526001600160a01b039889168852979092169091525afa601f3d1116156103195760405260205f516040519015158152f35b3d5f823e3d90fd5b346101c15760203660031901126101c15760043561033e81610c4f565b505f806024601c61034d610c25565b6040519563cb30b46085526020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b0390f35b60803660031901126101c1576103b1610b1c565b6103b9610b32565b60443591606435916001600160401b0383116101c157366023840112156101c1576004830135926001600160401b0384116101c15736602485830101116101c157610405858385610b82565b813b61040d57005b83602094602460a49360405198899763150b7a028952338a8a015260018060a01b0316604089015260608801526080808801528260a08801520160c086013701905f601c8401915af115610479575b5163757a42ff60e11b0161046c57005b63d1a57ed65f526004601cfd5b3d1561045c573d5f823e3d90fd5b346101c15760403660031901126101c1576104a0610b1c565b6024358015158091036101c15760205f6064601c826104bd610c25565b9660018060a01b0316966040519663f6916ddd8352888752604052336060525af160015f511416156103195750337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206040a3005b346101c1575f3660031901126101c157602061052d610c25565b6040516001600160a01b039091168152f35b346101c1575f3660031901126101c157610557610c25565b5f806024601c604051946395d89b418452836020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b346101c1575f3660031901126101c157683602298b8c10b01232546040516001600160a01b039091168152602090f35b346101c15760203660031901126101c1576001600160a01b036105fb610b1c565b1660205f6044601c61060b610c25565b6040519563f5b100ea85528552836040525afa601f3d1116156103195760405260205f51604051908152f35b346101c1575f3660031901126101c15761064f610c25565b683602298b8c10b012325460205f6004601c60018060a01b03851695638da5cb5b84525afa9081601f3d1116600c5160601c0291156106ec575b506001600160a01b0316908181036106a7575b602060405160018152f35b683602298b8c10b0123280546001600160a01b031916831790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3808061069c565b60601b6001600160601b0319166101c15782610689565b346101c15760203660031901126101c15760206001600160a01b03610729600435610c4f565b16604051908152f35b346101c15760203660031901126101c157602460206001600160a01b03610757610c25565b1660405192838092634f6ccce760e01b825260043560048301525afa80156107be575f9061078b575b602090604051908152f35b506020813d6020116107b6575b816107a560209383610bee565b810103126101c15760209051610780565b3d9150610798565b6040513d5f823e3d90fd5b6107d236610b48565b916107de838383610b82565b813b6107e657005b60a460209260405194859363150b7a028552338686015260018060a01b0316604085015260608401526080808401525f60a08401525f3681375f601c8401915af115610479575163757a42ff60e11b0161046c57005b346101c15760403660031901126101c157610855610b1c565b60206001600160a01b03610867610c25565b604051632f745c5960e01b81526001600160a01b039094166004850152602480359085015283916044918391165afa80156107be575f9061078b57602090604051908152f35b346101c15760203660031901126101c1576108c6610c25565b60205f6044601c6040519463c016aa5284526004358552836040525afa601f3d1116156103195760408190525f516001600160a01b03168152602090f35b61091661091036610b48565b91610b82565b005b346101c1575f3660031901126101c157610930610c25565b60205f6044601c6040519463e2c792818452838552836040525afa601f3d1116156103195760405260205f51604051908152f35b60403660031901126101c157610978610b1c565b60243590610984610c25565b9060018060a01b03169060205f6064601c6040519463d10b6e0c8452868552876040523360605234905af1601f3d1116156103195750600c5160601c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a4005b346101c15760203660031901126101c1576109ff610c25565b60205f6044601c604051946327ef549584526004358552836040525afa601f3d1116156103195760408190525f516001600160a01b03168152602090f35b346101c1575f3660031901126101c157610a55610c25565b5f806024601c604051946306fdde038452836020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b346101c15760203660031901126101c157600435906001600160e01b0319821682036101c15760209160e01c635b5e139f8114906301ffc9a76380ac58cd82149114171715158152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101c157565b602435906001600160a01b03821682036101c157565b60609060031901126101c1576004356001600160a01b03811681036101c157906024356001600160a01b03811681036101c1579060443590565b9060846020610b8f610c25565b6040805163e5eb36c881526001600160a01b03968716848201819052959096169086018190526060860187905233608087015294928391601c83019034905af16001825114161561031957505f80516020610c848339815191525f80a4565b601f909101601f19168101906001600160401b03821190821017610c1157604052565b634e487b7160e01b5f52604160045260245ffd5b683602298b8c10b01230546001600160a01b0316908115610c4257565b635b2a47ae5f526004601cfd5b60205f6044601c610c5e610c25565b60405195632d8a746e85528552836040525afa601f3d111615610319576040525f519056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef";
5076
+ declare const _default$5: "0x60a0604052346104a85761394680380380610019816107f1565b928339810160e0828203126104a85781516001600160401b0381116104a85781610044918401610816565b60208301519091906001600160401b0381116104a85781610066918501610816565b9060408401519161007960608601610867565b9361008660808701610867565b60a08701519093906001600160401b0381116104a85760c0916100aa918901610816565b960151926001600160a01b031680156107de575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a382156107cf578284066107c0578051906001600160401b0382116104eb5760015490600182811c921680156107b6575b60208310146105d05781601f849311610748575b50602090601f83116001146106e2575f926106d7575b50508160011b915f199060031b1c1916176001555b8051906001600160401b0382116104eb5760025490600182811c921680156106cd575b60208310146105d05781601f84931161065f575b50602090601f83116001146105f9575f926105ee575b50508160011b915f199060031b1c1916176002555b83516001600160401b0381116104eb57600354600181811c911680156105e4575b60208210146105d057601f811161056d575b50602094601f821160011461050a579481929394955f926104ff575b50508160011b915f199060031b1c1916176003555b608052604051610d35808201906001600160401b038211838310176104eb576020918391612c1183393381520301905ff080156104e0576080516001600160a01b0391909116906001600160601b035f1990910110156104d35768a20d6e21d0e5255309546001600160a01b03166104c65780156104b957630f4599e55f523360205260205f6024601c82855af160015f511416156104ac57678da5cb5b6cef16e65f5260208060046018305afa601f3d1160205160601b151016610499575b68a20d6e21d0e5255308805463ffffffff60201b191664010000000017905568a20d6e21d0e525530980546001600160a01b03191691909117905580610375575b604051612374908161089d823960805181818161042701528181610a8401528181610c51015281816114bb0152818161173a0152818161192f0152611fb00152f35b6001600160a01b03821691821561048c57608051820463fffffffe108260601c1761047f5768a20d6e21d0e525530880546001600160a01b031660a084901b6001600160a01b03191690811790915561041292906103d28361087b565b80546001600160a01b031690911790555f90815283907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082a361087b565b906bff00000000000000000000008254918260581c9060015f527fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff821691161560011b1860011760581b16906bff000000000000000000000019161790555f80610333565b63e5cfe9575f526004601cfd5b63ea553b345f526004601cfd5b5f806004601c82855af16102f2575b5f80fd5b63d125259c5f526004601cfd5b6339a84a7b5f526004601cfd5b63ead4d2e45f526004601cfd5b63997c4ef45f526004601cfd5b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b015190505f8061021d565b601f1982169560035f52805f20915f5b8881106105555750836001959697981061053d575b505050811b01600355610232565b01515f1960f88460031b161c191690555f808061052f565b9192602060018192868501518155019401920161051a565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106105c6575b601f0160051c01905b8181106105bb5750610201565b5f81556001016105ae565b90915081906105a5565b634e487b7160e01b5f52602260045260245ffd5b90607f16906101ef565b015190505f806101b9565b60025f9081528281209350601f198516905b818110610647575090846001959493921061062f575b505050811b016002556101ce565b01515f1960f88460031b161c191690555f8080610621565b9293602060018192878601518155019501930161060b565b60025f529091507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f840160051c810191602085106106c3575b90601f859493920160051c01905b8181106106b557506101a3565b5f81558493506001016106a8565b909150819061069a565b91607f169161018f565b015190505f80610157565b60015f9081528281209350601f198516905b8181106107305750908460019594939210610718575b505050811b0160015561016c565b01515f1960f88460031b161c191690555f808061070a565b929360206001819287860151815501950193016106f4565b60015f529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f840160051c810191602085106107ac575b90601f859493920160051c01905b81811061079e5750610141565b5f8155849350600101610791565b9091508190610783565b91607f169161012d565b633eaf92f760e21b5f5260045ffd5b63265f13bd60e21b5f5260045ffd5b631e4fbdf760e01b5f525f60045260245ffd5b6040519190601f01601f191682016001600160401b038111838210176104eb57604052565b81601f820112156104a8578051906001600160401b0382116104eb57610845601f8301601f19166020016107f1565b92828452602083830101116104a857815f9260208093018386015e8301015290565b51906001600160a01b03821682036104a857565b6001600160a01b03165f90815268a20d6e21d0e5255313602052604090209056fe6080806040526004361015610792575b503615610787575f3560e01c63e5eb36c881146103d25763f6916ddd811461038f576362fb246d811461036b57632d8a746e81146103325763c016aa52811461031f5763d10b6e0c811461022f576327ef549581146102145763f5b100ea81146101ef5763e2c7928181146101d45763cb30b46081146100a95763b7a94eb8146100a057633c10b94e5f526004601cfd5b60015f5260205ff35b60206040510160405260606003546100c0816113d6565b6100e4575b50605f601f198201915f6020825180930101526020835201601f191690f35b905060405190608082019160a081016040525f8352600a600435935b5f19019360308282060185530492831561011c57600a90610100565b9250608083601f19810192030181526040519283915f9061013c856113d6565b94600181169081156101b45750600114610173575b61016d9450518092825e015f815203601f19810183528261140e565b816100c5565b905060035f5260205f20935f5b818110610198575061016d9450830160200190610151565b8554602082890181019190915260019096019587955001610180565b602092935061016d96915060ff1916828601528015150284010190610151565b63ffffffff68a20d6e21d0e52553085460801c165f5260205ff35b63ffffffff6102086004356001600160a01b0316611394565b5460801c165f5260205ff35b6001600160a01b03610227600435612130565b165f5260205ff35b68a20d6e21d0e5255309546001600160a01b03163303610312576001600160a01b036044358116906024359060043581169061028061027b5f19600160201b861086020160011b612055565b6120eb565b5416928381036102ef575b505f82815268a20d6e21d0e525530c60209081526040822080546001600160a01b0319166001600160a01b03851617905568a20d6e21d0e525530d60601b600885901c018054600160ff90961695861b191693151590941b92909217909255918152f35b6102f99084611602565b5415610305578361028b565b63cfb3b9425f526004601cfd5b63ce5a776b5f526004601cfd5b6001600160a01b03610227600435612107565b6004356001600160a01b0361034682612107565b161561035e576001600160a01b039061022790612107565b63ceea21b65f526004601cfd5b6103856001600160a01b0360243581169060043516611602565b5415155f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633036103125760243515156103c86001600160a01b0360043581169060443516611602565b5560015f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633819003610312576001600160a01b0360643581169160043582169160443591906024351661041481612169565b835f52600560205260405f20549461044d7f0000000000000000000000000000000000000000000000000000000000000000809761146d565b935f915f9486610762575b84156107555715610748576001600160a01b0361048561027b600160201b851085025f190160011b612055565b5416870361073b57868103610702575b5061049f86611394565b906104a984611394565b90825460a01c808a116106f5576105ab93610563916104d4908c90036001600160601b0316826121a9565b83546104f39060a01c6001600160601b038d81169190910116856121a9565b6104fc836122df565b6106c4575b600161053061050f8c6113b5565b9261052a63ffffffff5f1981845460801c16011680926121cc565b83612079565b610552816105445f198801851b8501612055565b9463ffffffff8616906120c3565b63ffffffff165f1901811b01612095565b6105a58563ffffffff845460801c169361058663ffffffff6001870116826121cc565b6105a0610592836113b5565b8663ffffffff8716916120c3565b612210565b906122a0565b855f5281855f8051602061235483398151915260205fa36105cf5760015f5260205ff35b5f198301908382116106b05763ffffffff6105e986611394565b5460801c169384808410928361068e575b505050610620575b5050505f52600560205260405f2090815403905580808080806100a0565b610629846113b5565b9282101561060257818114610602576001826106758363ffffffff8481966106758a610658886106869d612079565b9281610670610668838795612079565b809b836120c3565b6120c3565b825f19911601811b01911690612095565b828080610602565b8714801593509091906106a6575b50508684816105fa565b109050838761069c565b634e487b7160e01b5f52601160045260245ffd5b6106cd836121ef565b5f83815268a20d6e21d0e525530c6020526040902080546001600160a01b0319169055610501565b63f4d678b85f526004601cfd5b61070c8188611602565b54610495576001600160a01b0361072283612130565b160361072e5787610495565b6359c896be5f526004601cfd5b63a11481005f526004601cfd5b6340739bf05f526004601cfd5b63ea553b345f526004601cfd5b9250935063ffffffff61077c60015f198401811b01612055565b169385851092610458565b3461078e57005b5f80fd5b5f3560e01c90816306fdde031461129c57508063095ea7b3146111fb5780630ad9e7bf146111c357806310aa0ebb1461119e57806316f0115b1461117657806318160ddd1461114e578063207d06361461110b57806323b872dd14611065578063274e430b146110385780632a6a935d14610fc65780632f745c5914610f5f578063313ce56714610f445780634ef41efc14610f145780634f6ccce714610ef657806355f804b314610d9d5780635b2aa23914610c005780636c0360eb14610b6e57806370a0823114610b3f578063715018a614610afb5780638902653814610ace5780638da5cb5b14610aa7578063907af6c014610a6d57806395d89b4114610993578063a9059cbb14610962578063dd62ed3e1461092e5763f2fde38b146108bc575f61000f565b3461078e57602036600319011261078e576108d5611368565b6108dd6115be565b6001600160a01b0316801561091b575f80546001600160a01b03198116831782556001600160a01b0316905f805160206123348339815191529080a3005b631e4fbdf760e01b5f525f60045260245ffd5b3461078e57604036600319011261078e57602061095a61094c611368565b61095461137e565b90611558565b604051908152f35b3461078e57604036600319011261078e5761098861097e611368565b6024359033611620565b602060405160018152f35b3461078e575f36600319011261078e576040515f6002546109b3816113d6565b8084529060018116908115610a4957506001146109eb575b6109e7836109db8185038261140e565b6040519182918261133e565b0390f35b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b808210610a2f575090915081016020016109db6109cb565b919260018160209254838588010152019101909291610a17565b60ff191660208086019190915291151560051b840190910191506109db90506109cb565b3461078e575f36600319011261078e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461078e575f36600319011261078e575f546040516001600160a01b039091168152602090f35b3461078e575f36600319011261078e57610ae66115be565b6004805460ff60a01b1916600160a01b179055005b3461078e575f36600319011261078e57610b136115be565b5f80546001600160a01b0319811682556001600160a01b03165f805160206123348339815191528280a3005b3461078e57602036600319011261078e576020610b62610b5d611368565b611394565b5460a01c604051908152f35b3461078e575f36600319011261078e576040515f600354610b8e816113d6565b8084529060018116908115610a495750600114610bb5576109e7836109db8185038261140e565b60035f9081525f80516020612314833981519152939250905b808210610be6575090915081016020016109db6109cb565b919260018160209254838588010152019101909291610bce565b3461078e57602036600319011261078e576004356001600160401b03811161078e573660238201121561078e5760048101356001600160401b03811161078e573660248260051b8401011161078e577f000000000000000000000000000000000000000000000000000000000000000091828202928284048114831517156106b057335f52600560205260405f205493610c9933611394565b5460a01c610ca7828761148b565b11610d8e57610cb9610cbf928661146d565b9461148b565b335f52600560205260405f2055610cd533611394565b9263ffffffff610ce4336113b5565b945460801c16915f915b84831015610d8c5760248360051b8301013584811015610d7d57818110610d73578181600193849303610d27575b5001925b0191610cee565b8063ffffffff848b61067582610d40610d6d9784612079565b610d5b818a610d4f8188612079565b96610670888c836120c3565b888616919086165f1901811b01612095565b88610d1c565b5091600190610d20565b633277964160e01b5f5260045ffd5b005b6302579b0560e11b5f5260045ffd5b3461078e57602036600319011261078e576004356001600160401b03811161078e573660238201121561078e5760048101356001600160401b03811161078e57366024828401011161078e57610df16115be565b610dfc6003546113d6565b601f8111610ea6575b505f601f8211600114610e415781925f92610e33575b50508160011b915f199060031b1c1916176003555f80f35b602492500101358280610e1b565b601f1982169260035f5260205f20915f5b858110610e8b57508360019510610e6f575b505050811b01600355005b01602401355f19600384901b60f8161c19169055828080610e64565b90926020600181926024878701013581550194019101610e52565b60035f525f80516020612314833981519152601f830160051c81019160208410610eec575b601f0160051c01905b818110610ee15750610e05565b5f8155600101610ed4565b9091508190610ecb565b3461078e57602036600319011261078e57602061095a600435611498565b3461078e575f36600319011261078e5768a20d6e21d0e5255309546040516001600160a01b039091168152602090f35b3461078e575f36600319011261078e57602060405160128152f35b3461078e57604036600319011261078e57610f78611368565b60243563ffffffff610f8983611394565b5460801c16811015610fb757610fae63ffffffff91610fa96020946113b5565b612079565b16604051908152f35b6306ed618760e11b5f5260045ffd5b3461078e57602036600319011261078e576004358015801580920361078e5761098891610ff233611394565b91825460581c915f52337fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff83169216151860011b18600117906115a1565b3461078e57602036600319011261078e57602061105b611056611368565b611445565b6040519015158152f35b3461078e57606036600319011261078e5761107e611368565b61108661137e565b6044359061109433846115e4565b926e22d473030f116ddee9f6b43ac78ba33314806110f4575b156110ec575f19935b600185016110ca575b506109889350611620565b8484116110df578361098895039055846110bf565b6313be252b5f526004601cfd5b8354936110b6565b50600461110082611394565b5460581c16156110ad565b3461078e57602036600319011261078e57611124611368565b61112c6115be565b600480546001600160a81b0319166001600160a01b0392909216919091179055005b3461078e575f36600319011261078e57602068a20d6e21d0e52553085460a01c604051908152f35b3461078e575f36600319011261078e576004546040516001600160a01b039091168152602090f35b3461078e575f36600319011261078e57602060ff60045460a01c166040519015158152f35b3461078e57602036600319011261078e576001600160a01b036111e4611368565b165f526005602052602060405f2054604051908152f35b3461078e57604036600319011261078e57611214611368565b6001600160a01b03811690602435908190611246906e22d473030f116ddee9f6b43ac78ba3851461127a575b336115e4565b555f52337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa3602060405160018152f35b61129761128633611394565b600460ff825460581c1617906115a1565b611240565b3461078e575f36600319011261078e575f6001546112b9816113d6565b8084529060018116908115610a4957506001146112e0576109e7836109db8185038261140e565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b808210611324575090915081016020016109db6109cb565b91926001816020925483858801015201910190929161130c565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361078e57565b602435906001600160a01b038216820361078e57565b6001600160a01b03165f90815268a20d6e21d0e52553136020526040902090565b6001600160a01b03165f90815268a20d6e21d0e52553106020526040902090565b90600182811c92168015611404575b60208310146113f057565b634e487b7160e01b5f52602260045260245ffd5b91607f16916113e5565b601f909101601f19168101906001600160401b0382119082101761143157604052565b634e487b7160e01b5f52604160045260245ffd5b9061144f82611394565b5460581c9160016002841615159316156114665750565b3b15159150565b8115611477570490565b634e487b7160e01b5f52601260045260245ffd5b919082018092116106b057565b9068a20d6e21d0e52553085463ffffffff8160801c16831015611549576114e3907f00000000000000000000000000000000000000000000000000000000000000009060a01c61146d565b905f925f5b8381106114fe57639f6fb6c960e01b5f5260045ffd5b80600101806001116106b05763ffffffff61151b8360011b612055565b1661152a575b506001016114e8565b8286929614611540575060018091019490611521565b93505050915090565b639f6fb6c960e01b5f5260045ffd5b906001600160a01b0381166e22d473030f116ddee9f6b43ac78ba314611586575b611582916115e4565b5490565b600461159183611394565b5460581c166115795750505f1990565b805460ff60581b191660589290921b60ff60581b16919091179055565b5f546001600160a01b031633036115d157565b63118cdaa760e01b5f523360045260245ffd5b9060285260145268a20d6e21d0e525530f5f5260485f20905f602852565b9060285260145268a20d6e21d0e525530b5f5260485f20905f602852565b9161162a82612169565b6001600160a01b038316611ffe575b6001600160a01b038216156107555761165183611394565b61165a83611394565b68a20d6e21d0e5255309546001600160a01b031615610748576040519161018083016001600160401b03811184821017611431576040525f83525f60208401525f60808401525f60a08401525f60c08401525f60e08401525f6101008401525f6101208401525f6101408401525f610160840152805463ffffffff8160801c16604085015263ffffffff835460801c1660608501528060a01c85116106f55761171360a082901c8690036001600160601b0316836121a9565b825460a01c85019061172e6001600160601b038316856121a9565b611763604086015191877f00000000000000000000000000000000000000000000000000000000000000009160a01c0361146d565b808203911102845261177486611445565b15611f96575b50611d91565b68a20d6e21d0e52553085463ffffffff60208501518551928382848360801c1601038060808901528360801b9060801b16908360801b191617928368a20d6e21d0e52553085501916040519260c060a085019180835260051b850101604052836040015260c0830183528261016087015260601c166101208501528351611c71575b505060208201516118e7575b50610140810151806118a3575b50610160015180611851575b505f9081526001600160a01b0391821692909116905f8051602061235483398151915290602090a3565b600160206040828060a01b0368a20d6e21d0e5255309541693015192603f19840193849163263c69d6835283601f198301525f825160051b6044019260231901915af1915114161561078e575f611827565b600160205f9281838060a01b0368a20d6e21d0e5255309541691015190815160051b60840190607f19830195869360631901915af1915114161561078e575f61181b565b9194610160829492015160208360601b910152611903826113b5565b9463ffffffff6119138486612210565b1660e086015268a20d6e21d0e5255308549263ffffffff6119577f00000000000000000000000000000000000000000000000000000000000000008660a01c61146d565b9460201c16848111908115021761010087015261198c60608701519563ffffffff602089015188018060c08b015216906121cc565b63ffffffff68a20d6e21d0e52553085460401c169760015b15611c12575b6101208701515f9063ffffffff8b8116911614611a6057611a5b63ffffffff60018c01169a60e0641fffffffe0631fffffff8360031c1668a20d6e21d0e525531160601b01549260051b16161c63ffffffff165b8060081c685106b710e87292a98760611b0160018260ff161b8019825416179055611a3063ffffffff82168a8d6120c3565b611a5063ffffffff60e08c01511663ffffffff60018c019b1690836122a0565b6101608a01516122fd565b6119a4565b949798939291906101008801515b63ffffffff611a825f19830160011b612055565b1615611bee575f19906001810160081c685106b710e87292a98760611b018054196001830160ff1690811c901b8015611b76575b80611acc575b5050508981119081150217611a6e565b600180939450811901167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07a1412563212c14164235266736f7425221143267a4524367526767760fc7b2aaaaaaaba69a69a6db6db6db2cb2cb2ce739ce73def7bdeffffffff860260f81c161b60f71c1692831c63d76453e004161a179082685106b710e87292a98760611b03190160081b17910181108a8211175f03175f8080611abc565b506001909c9895929c9a9794919a9693965b01805419685106b710e87292a98760611b60088e901c0182118117611bb05750600190611b88565b9c9295989c9a9194979a969396808d60081c685106b710e87292a98760611b018311611bdd575b50611ab6565b508c1960ff1690811b901c80611bd7565b611a5b909a999691929394959a6001810188811190811502176101008b01526119fe565b60c087015186036119aa57945094925094509468a20d6e21d0e52553085463ffffffff60201b61010084015160201b169163ffffffff60401b9060401b1690600160201b600160601b031916171768a20d6e21d0e5255308555f61180e565b602060018860609a9699959a989497981b17910152611c8f826113b5565b94611caf60408801519563ffffffff895188038060a08c015216906121cc565b60015b15611d78575b5f945f190194611cc88688612079565b63ffffffff8116905f1982018060021c685106b710e87292a98960611b019060c082549160061b1681811c60018060401b0316901b189055611d0f826101608c01516122fd565b600160ff62ffffff8360081c16685106b710e87292a98760611b0192161b198154169055611d3c816122df565b611d47575b50611cb2565b611d50816121ef565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611d41565b60a08701518503611cb857935093509390945f80611802565b9194604086979294970151948651976020880151898110818b18028a1899888b108b8a18028914611f87578a8918898c10028918908190038a52900360208901526001600160a01b0383811690831614611f65576040805163144027d3818301526001600160a01b03858116606080840191909152908516608083015260a08201528a8918898c1002891860c0820181815260059190911b820160e090810190935260208201529081018152610140890152611e4c836113b5565b95611e56836113b5565b9763ffffffff611e668584612210565b1660e08b015260608a01519a81811090821802188a019560015b15611f1f575b878b611eca8163ffffffff808f8f90611ebe60e09284611eb55f9b5f1960408701510190816040880152612079565b169889916120c3565b015116911690836122a0565b6101408c015160208151838152019052611ee3816122df565b611eee575b50611e80565b611ef7816121ef565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611ee8565b9960010199868b03611e8657939895509398611f4c92975063ffffffff91965080606087015216836121cc565b611f6063ffffffff604085015116826121cc565b611780565b9492978681989593989792971090821802186060840151016060840152611780565b50509492975094509491611780565b611fd5906001600160a01b0388811690881614611feb575b7f00000000000000000000000000000000000000000000000000000000000000009061146d565b606084015180820391110260208401525f61177a565b6040850151855190036060860152611fae565b61200783611394565b5460a01c60018060a01b0384165f52600560205260405f205490808211918215612042575b505015611639576311acc28f60e01b5f5260045ffd5b8103915081116106b05781115f8061202c565b60e08160031c685106b710e87292a98960611b01549160051b161c63ffffffff1690565b60e0908260031c9060601b01549160051b161c63ffffffff1690565b9060e08260031c685106b710e87292a98960611b019260051b1682549182821c1863ffffffff16901b189055565b60e0909291928360031c9060601b019260051b1682549182821c1863ffffffff16901b189055565b63ffffffff165f5268a20d6e21d0e525530a60205260405f2090565b6001600160a01b039061212b9061027b90600160201b8110025f190160011b612055565b541690565b6001600160a01b0361214182612107565b161561035e575f90815268a20d6e21d0e525530c60205260409020546001600160a01b031690565b6004546001600160a01b03808216921691909114908161219a575b5061218b57565b632e13674560e01b5f5260045ffd5b60ff915060a01c16155f612184565b80546001600160a01b031660a09290921b6001600160a01b031916919091179055565b805463ffffffff60801b191660809290921b63ffffffff60801b16919091179055565b60018160081c68a20d6e21d0e525530d60601b019160ff161b198154169055565b805460601c63ffffffff1692918315612227575050565b68a20d6e21d0e5255308805463ffffffff19811663ffffffff918216600101918216908117909255835463ffffffff60601b191660609190911b63ffffffff60601b1617909255909250829061227c826120eb565b80546001600160a01b0319166001600160a01b039092169190911790551561078e57565b5f1901908160021c685106b710e87292a98960611b019260c084549360061b169163ffffffff169060201b1782821c1860018060401b0316901b189055565b8060081c68a20d6e21d0e525530d60601b01549060ff161c60011690565b9060209082519060081b8284015117815201905256fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef608034607857601f610d3538819003918201601f19168301916001600160401b03831184841017607c57808492602094604052833981010312607857516001600160a01b03811690819003607857683602298b8c10b0123180546001600160a01b031916919091179055604051610ca490816100918239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60808060405260043610156101c5575b5036156101ba575f3560e01c63263c69d681146101405763144027d381146100cf57630f4599e51461004857633c10b94e5f526004601cfd5b683602298b8c10b01231546001600160a01b0316806100ab575b50683602298b8c10b01230546001600160a01b03811661009e576001600160a01b0319163317683602298b8c10b012305560015f908152602090f35b63bf656a465f526004601cfd5b6004356001600160a01b0316036100c2575f610062565b63c59ec47a5f526004601cfd5b683602298b8c10b01230546001600160a01b03163303610133576004356024359060443591602483810193600481013560051b0101925b8381036101165760015f5260205ff35b803582845f80516020610c848339815191525f80a4602001610106565b63363cb3125f526004601cfd5b683602298b8c10b01230546001600160a01b0316330361013357600435602481810191600481013560051b0101905b81810361017f5760015f5260205ff35b8035600881901c6001600160581b03169060018116801560609290921c91820291025f80516020610c848339815191525f80a460200161016f565b346101c157005b5f80fd5b5f3560e01c90816301ffc9a714610aa85750806306fdde0314610a3d578063081812fc146109e6578063095ea7b31461096457806318160ddd1461091857806323b872dd1461090457806324359879146108ad5780632f745c591461083c57806342842e0e146107c95780634f6ccce7146107325780636352211e146107035780636cef16e61461063757806370a08231146105da5780638da5cb5b146105aa57806395d89b411461053f57806397e5311c14610513578063a22cb46514610487578063b88d4fde1461039d578063c87b56dd146103215763e985e9c5146102ad575f61000f565b346101c15760403660031901126101c1576102c6610b1c565b60205f6044601c6102d5610b32565b6102dd610c25565b604080516362fb246d87526001600160a01b039889168852979092169091525afa601f3d1116156103195760405260205f516040519015158152f35b3d5f823e3d90fd5b346101c15760203660031901126101c15760043561033e81610c4f565b505f806024601c61034d610c25565b6040519563cb30b46085526020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b0390f35b60803660031901126101c1576103b1610b1c565b6103b9610b32565b60443591606435916001600160401b0383116101c157366023840112156101c1576004830135926001600160401b0384116101c15736602485830101116101c157610405858385610b82565b813b61040d57005b83602094602460a49360405198899763150b7a028952338a8a015260018060a01b0316604089015260608801526080808801528260a08801520160c086013701905f601c8401915af115610479575b5163757a42ff60e11b0161046c57005b63d1a57ed65f526004601cfd5b3d1561045c573d5f823e3d90fd5b346101c15760403660031901126101c1576104a0610b1c565b6024358015158091036101c15760205f6064601c826104bd610c25565b9660018060a01b0316966040519663f6916ddd8352888752604052336060525af160015f511416156103195750337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206040a3005b346101c1575f3660031901126101c157602061052d610c25565b6040516001600160a01b039091168152f35b346101c1575f3660031901126101c157610557610c25565b5f806024601c604051946395d89b418452836020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b346101c1575f3660031901126101c157683602298b8c10b01232546040516001600160a01b039091168152602090f35b346101c15760203660031901126101c1576001600160a01b036105fb610b1c565b1660205f6044601c61060b610c25565b6040519563f5b100ea85528552836040525afa601f3d1116156103195760405260205f51604051908152f35b346101c1575f3660031901126101c15761064f610c25565b683602298b8c10b012325460205f6004601c60018060a01b03851695638da5cb5b84525afa9081601f3d1116600c5160601c0291156106ec575b506001600160a01b0316908181036106a7575b602060405160018152f35b683602298b8c10b0123280546001600160a01b031916831790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3808061069c565b60601b6001600160601b0319166101c15782610689565b346101c15760203660031901126101c15760206001600160a01b03610729600435610c4f565b16604051908152f35b346101c15760203660031901126101c157602460206001600160a01b03610757610c25565b1660405192838092634f6ccce760e01b825260043560048301525afa80156107be575f9061078b575b602090604051908152f35b506020813d6020116107b6575b816107a560209383610bee565b810103126101c15760209051610780565b3d9150610798565b6040513d5f823e3d90fd5b6107d236610b48565b916107de838383610b82565b813b6107e657005b60a460209260405194859363150b7a028552338686015260018060a01b0316604085015260608401526080808401525f60a08401525f3681375f601c8401915af115610479575163757a42ff60e11b0161046c57005b346101c15760403660031901126101c157610855610b1c565b60206001600160a01b03610867610c25565b604051632f745c5960e01b81526001600160a01b039094166004850152602480359085015283916044918391165afa80156107be575f9061078b57602090604051908152f35b346101c15760203660031901126101c1576108c6610c25565b60205f6044601c6040519463c016aa5284526004358552836040525afa601f3d1116156103195760408190525f516001600160a01b03168152602090f35b61091661091036610b48565b91610b82565b005b346101c1575f3660031901126101c157610930610c25565b60205f6044601c6040519463e2c792818452838552836040525afa601f3d1116156103195760405260205f51604051908152f35b60403660031901126101c157610978610b1c565b60243590610984610c25565b9060018060a01b03169060205f6064601c6040519463d10b6e0c8452868552876040523360605234905af1601f3d1116156103195750600c5160601c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a4005b346101c15760203660031901126101c1576109ff610c25565b60205f6044601c604051946327ef549584526004358552836040525afa601f3d1116156103195760408190525f516001600160a01b03168152602090f35b346101c1575f3660031901126101c157610a55610c25565b5f806024601c604051946306fdde038452836020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b346101c15760203660031901126101c157600435906001600160e01b0319821682036101c15760209160e01c635b5e139f8114906301ffc9a76380ac58cd82149114171715158152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101c157565b602435906001600160a01b03821682036101c157565b60609060031901126101c1576004356001600160a01b03811681036101c157906024356001600160a01b03811681036101c1579060443590565b9060846020610b8f610c25565b6040805163e5eb36c881526001600160a01b03968716848201819052959096169086018190526060860187905233608087015294928391601c83019034905af16001825114161561031957505f80516020610c848339815191525f80a4565b601f909101601f19168101906001600160401b03821190821017610c1157604052565b634e487b7160e01b5f52604160045260245ffd5b683602298b8c10b01230546001600160a01b0316908115610c4257565b635b2a47ae5f526004601cfd5b60205f6044601c610c5e610c25565b60405195632d8a746e85528552836040525afa601f3d111615610319576040525f519056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef";
5034
5077
 
5035
5078
  declare const _default$4: "0x60a06040523461049b57613a4d80380380610019816107c6565b928339810160e08282031261049b5781516001600160401b03811161049b57816100449184016107eb565b60208301519091906001600160401b03811161049b57816100669185016107eb565b906040840151916100796060860161083c565b936100866080870161083c565b60a08701519093906001600160401b03811161049b5760c0916100aa9189016107eb565b960151926001600160a01b031680156107b3575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a38051906001600160401b0382116104de5760015490600182811c921680156107a9575b60208310146105c35781601f84931161073b575b50602090601f83116001146106d5575f926106ca575b50508160011b915f199060031b1c1916176001555b8051906001600160401b0382116104de5760025490600182811c921680156106c0575b60208310146105c35781601f849311610652575b50602090601f83116001146105ec575f926105e1575b50508160011b915f199060031b1c1916176002555b83516001600160401b0381116104de57600354600181811c911680156105d7575b60208210146105c357601f8111610560575b50602094601f82116001146104fd579481929394955f926104f2575b50508160011b915f199060031b1c1916176003555b608052604051610d41808201906001600160401b038211838310176104de576020918391612d0c83393381520301905ff080156104d3576080516001600160a01b0391909116906001600160601b035f1990910110156104c65768a20d6e21d0e5255309546001600160a01b03166104b95780156104ac57630f4599e55f523360205260205f6024601c82855af160015f5114161561049f57678da5cb5b6cef16e65f5260208060046018305afa601f3d1160205160601b15101661048c575b68a20d6e21d0e5255308805463ffffffff60201b191664010000000017905568a20d6e21d0e525530980546001600160a01b03191691909117905580610368575b60405161249a9081610872823960805181818161040b01528181610a4f01528181610c47015281816115920152818161184701528181611a3c01526120bd0152f35b6001600160a01b03821691821561047f57608051820463fffffffe108260601c176104725768a20d6e21d0e525530880546001600160a01b031660a084901b6001600160a01b03191690811790915561040592906103c583610850565b80546001600160a01b031690911790555f90815283907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082a3610850565b906bff00000000000000000000008254918260581c9060015f527fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff821691161560011b1860011760581b16906bff000000000000000000000019161790555f80610326565b63e5cfe9575f526004601cfd5b63ea553b345f526004601cfd5b5f806004601c82855af16102e5575b5f80fd5b63d125259c5f526004601cfd5b6339a84a7b5f526004601cfd5b63ead4d2e45f526004601cfd5b63997c4ef45f526004601cfd5b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b015190505f80610210565b601f1982169560035f52805f20915f5b88811061054857508360019596979810610530575b505050811b01600355610225565b01515f1960f88460031b161c191690555f8080610522565b9192602060018192868501518155019401920161050d565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106105b9575b601f0160051c01905b8181106105ae57506101f4565b5f81556001016105a1565b9091508190610598565b634e487b7160e01b5f52602260045260245ffd5b90607f16906101e2565b015190505f806101ac565b60025f9081528281209350601f198516905b81811061063a5750908460019594939210610622575b505050811b016002556101c1565b01515f1960f88460031b161c191690555f8080610614565b929360206001819287860151815501950193016105fe565b60025f529091507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f840160051c810191602085106106b6575b90601f859493920160051c01905b8181106106a85750610196565b5f815584935060010161069b565b909150819061068d565b91607f1691610182565b015190505f8061014a565b60015f9081528281209350601f198516905b818110610723575090846001959493921061070b575b505050811b0160015561015f565b01515f1960f88460031b161c191690555f80806106fd565b929360206001819287860151815501950193016106e7565b60015f529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f840160051c8101916020851061079f575b90601f859493920160051c01905b8181106107915750610134565b5f8155849350600101610784565b9091508190610776565b91607f1691610120565b631e4fbdf760e01b5f525f60045260245ffd5b6040519190601f01601f191682016001600160401b038111838210176104de57604052565b81601f8201121561049b578051906001600160401b0382116104de5761081a601f8301601f19166020016107c6565b928284526020838301011161049b57815f9260208093018386015e8301015290565b51906001600160a01b038216820361049b57565b6001600160a01b03165f90815268a20d6e21d0e5255313602052604090209056fe608080604052600436101561075d575b503615610752575f3560e01c63e5eb36c881146103d25763f6916ddd811461038f576362fb246d811461036b57632d8a746e81146103325763c016aa52811461031f5763d10b6e0c811461022f576327ef549581146102145763f5b100ea81146101ef5763e2c7928181146101d45763cb30b46081146100a95763b7a94eb8146100a057633c10b94e5f526004601cfd5b60015f5260205ff35b60206040510160405260606003546100c0816114af565b6100e4575b50605f601f198201915f6020825180930101526020835201601f191690f35b905060405190608082019160a081016040525f8352600a600435935b5f19019360308282060185530492831561011c57600a90610100565b9250608083601f19810192030181526040519283915f9061013c856114af565b94600181169081156101b45750600114610173575b61016d9450518092825e015f815203601f19810183528261148c565b816100c5565b905060035f5260205f20935f5b818110610198575061016d9450830160200190610151565b8554602082890181019190915260019096019587955001610180565b602092935061016d96915060ff1916828601528015150284010190610151565b63ffffffff68a20d6e21d0e52553085460801c165f5260205ff35b63ffffffff6102086004356001600160a01b031661144a565b5460801c165f5260205ff35b6001600160a01b0361022760043561228a565b165f5260205ff35b68a20d6e21d0e5255309546001600160a01b03163303610312576001600160a01b036044358116906024359060043581169061028061027b5f19600160201b861086020160011b6121af565b612245565b5416928381036102ef575b505f82815268a20d6e21d0e525530c60209081526040822080546001600160a01b0319166001600160a01b03851617905568a20d6e21d0e525530d60601b600885901c018054600160ff90961695861b191693151590941b92909217909255918152f35b6102f990846116f1565b5415610305578361028b565b63cfb3b9425f526004601cfd5b63ce5a776b5f526004601cfd5b6001600160a01b03610227600435612261565b6004356001600160a01b0361034682612261565b161561035e576001600160a01b039061022790612261565b63ceea21b65f526004601cfd5b6103856001600160a01b03602435811690600435166116f1565b5415155f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633036103125760243515156103c86001600160a01b03600435811690604435166116f1565b5560015f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633819003610312576001600160a01b0360043581165f818152600560205260409020547f000000000000000000000000000000000000000000000000000000000000000093919260443592916064358216916024351690610448908790611544565b935f925f948661072d575b83156107205715610713576001600160a01b0361048061027b600160201b851085025f190160011b6121af565b54168703610706578681036106cd575b5061049a8661144a565b906104a48361144a565b90825460a01c808a116106c0576105a69361055e916104cf908c90036001600160601b0316826122c3565b83546104ee9060a01c6001600160601b038d81169190910116856122c3565b6104f7836123f9565b61068f575b600161052b61050a8c61146b565b9261052563ffffffff5f1981845460801c16011680926122e6565b836121d3565b61054d8161053f5f198801851b85016121af565b9463ffffffff86169061221d565b63ffffffff165f1901811b016121ef565b6105a08463ffffffff845460801c169361058163ffffffff6001870116826122e6565b61059b61058d8361146b565b8663ffffffff87169161221d565b61232a565b906123ba565b855f52845f8051602061246e83398151915260205fa36105c95760015f5260205ff35b5f19820191821161067b5763ffffffff6105e28461144a565b5460801c169182811061060d575b5050505f52600560205260405f20908154039055808080806100a0565b6106168461146b565b928210156105f0578181146105f0576001826106628363ffffffff8481966106628a610645886106739d6121d3565b928161065d6106558387956121d3565b809b8361221d565b61221d565b825f19911601811b019116906121ef565b8280806105f0565b634e487b7160e01b5f52601160045260245ffd5b61069883612309565b5f83815268a20d6e21d0e525530c6020526040902080546001600160a01b03191690556104fc565b63f4d678b85f526004601cfd5b6106d781886116f1565b54610490576001600160a01b036106ed8361228a565b16036106f95787610490565b6359c896be5f526004601cfd5b63a11481005f526004601cfd5b6340739bf05f526004601cfd5b63ea553b345f526004601cfd5b9350935063ffffffff61074760015f198401811b016121af565b169385851093610453565b3461075957005b5f80fd5b5f3560e01c90816306fdde031461135257508063095ea7b3146112b15780630ad9e7bf1461127957806310aa0ebb1461125457806316f0115b1461122c57806318160ddd14611204578063207d0636146111c157806323b872dd1461111b578063274e430b146110ee5780632a6a935d1461107c5780632f745c5914610fe3578063313ce56714610fc85780634ef41efc14610f985780634f6ccce714610f7a57806355f804b314610e215780635b2aa23914610bcb5780636c0360eb14610b3957806370a0823114610b0a578063715018a614610ac65780638902653814610a995780638da5cb5b14610a72578063907af6c014610a3857806395d89b411461095e578063a9059cbb1461092d578063dd62ed3e146108f95763f2fde38b14610887575f61000f565b34610759576020366003190112610759576108a061141e565b6108a86116ad565b6001600160a01b031680156108e6575f80546001600160a01b03198116831782556001600160a01b0316905f8051602061244e8339815191529080a3005b631e4fbdf760e01b5f525f60045260245ffd5b3461075957604036600319011261075957602061092561091761141e565b61091f611434565b90611647565b604051908152f35b346107595760403660031901126107595761095361094961141e565b602435903361170f565b602060405160018152f35b34610759575f366003190112610759576040515f60025461097e816114af565b8084529060018116908115610a1457506001146109b6575b6109b2836109a68185038261148c565b604051918291826113f4565b0390f35b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b8082106109fa575090915081016020016109a6610996565b9192600181602092548385880101520191019092916109e2565b60ff191660208086019190915291151560051b840190910191506109a69050610996565b34610759575f3660031901126107595760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610759575f366003190112610759575f546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957610ab16116ad565b6004805460ff60a01b1916600160a01b179055005b34610759575f36600319011261075957610ade6116ad565b5f80546001600160a01b0319811682556001600160a01b03165f8051602061244e8339815191528280a3005b34610759576020366003190112610759576020610b2d610b2861141e565b61144a565b5460a01c604051908152f35b34610759575f366003190112610759576040515f600354610b59816114af565b8084529060018116908115610a145750600114610b80576109b2836109a68185038261148c565b60035f9081525f8051602061242e833981519152939250905b808210610bb1575090915081016020016109a6610996565b919260018160209254838588010152019101909291610b99565b34610759576020366003190112610759576004356001600160401b0381116107595736602382011215610759576004810135906001600160401b038211610e0d578160051b60405192610c21602083018561148c565b8352602460208401918301019136831161075957602401905b828210610dfd57838051907f00000000000000000000000000000000000000000000000000000000000000008083029280840482149015171561067b57335f52600560205260405f205492610c8e3361144a565b5460a01c610c9c8286611562565b11610db957610cae610cb49285611544565b93611562565b335f52600560205260405f2055610cca3361144a565b9163ffffffff610cd93361146b565b935460801c16905f905b8351821015610db75760208260051b8501015183811015610d7357818110610d69578181600193849303610d1d575b5001915b0190610ce3565b8063ffffffff848a61066282610d36610d6397846121d3565b610d51818a610d4581886121d3565b9661065d888c8361221d565b888616919086165f1901811b016121ef565b87610d12565b5090600190610d16565b60405162461bcd60e51b815260206004820152601c60248201527b546f6b656e20494420696e646578206f7574206f6620626f756e647360201b6044820152606490fd5b005b60405162461bcd60e51b815260206004820152601c60248201527b4e6f7420656e6f7567682062616c616e636520746f20667265657a6560201b6044820152606490fd5b8135815260209182019101610c3a565b634e487b7160e01b5f52604160045260245ffd5b34610759576020366003190112610759576004356001600160401b03811161075957366023820112156107595760048101356001600160401b03811161075957366024828401011161075957610e756116ad565b610e806003546114af565b601f8111610f2a575b505f601f8211600114610ec55781925f92610eb7575b50508160011b915f199060031b1c1916176003555f80f35b602492500101358280610e9f565b601f1982169260035f5260205f20915f5b858110610f0f57508360019510610ef3575b505050811b01600355005b01602401355f19600384901b60f8161c19169055828080610ee8565b90926020600181926024878701013581550194019101610ed6565b60035f525f8051602061242e833981519152601f830160051c81019160208410610f70575b601f0160051c01905b818110610f655750610e89565b5f8155600101610f58565b9091508190610f4f565b3461075957602036600319011261075957602061092560043561156f565b34610759575f3660031901126107595768a20d6e21d0e5255309546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957602060405160128152f35b3461075957604036600319011261075957610ffc61141e565b60243563ffffffff61100d8361144a565b5460801c1681101561103b5761103263ffffffff9161102d60209461146b565b6121d3565b16604051908152f35b60405162461bcd60e51b81526020600482015260196024820152784f776e657220696e646578206f7574206f6620626f756e647360381b6044820152606490fd5b34610759576020366003190112610759576004358015801580920361075957610953916110a83361144a565b91825460581c915f52337fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff83169216151860011b1860011790611690565b3461075957602036600319011261075957602061111161110c61141e565b6114e7565b6040519015158152f35b346107595760603660031901126107595761113461141e565b61113c611434565b6044359061114a33846116d3565b926e22d473030f116ddee9f6b43ac78ba33314806111aa575b156111a2575f19935b60018501611180575b50610953935061170f565b84841161119557836109539503905584611175565b6313be252b5f526004601cfd5b83549361116c565b5060046111b68261144a565b5460581c1615611163565b34610759576020366003190112610759576111da61141e565b6111e26116ad565b600480546001600160a81b0319166001600160a01b0392909216919091179055005b34610759575f36600319011261075957602068a20d6e21d0e52553085460a01c604051908152f35b34610759575f366003190112610759576004546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957602060ff60045460a01c166040519015158152f35b34610759576020366003190112610759576001600160a01b0361129a61141e565b165f526005602052602060405f2054604051908152f35b34610759576040366003190112610759576112ca61141e565b6001600160a01b038116906024359081906112fc906e22d473030f116ddee9f6b43ac78ba38514611330575b336116d3565b555f52337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa3602060405160018152f35b61134d61133c3361144a565b600460ff825460581c161790611690565b6112f6565b34610759575f366003190112610759575f60015461136f816114af565b8084529060018116908115610a145750600114611396576109b2836109a68185038261148c565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106113da575090915081016020016109a6610996565b9192600181602092548385880101520191019092916113c2565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361075957565b602435906001600160a01b038216820361075957565b6001600160a01b03165f90815268a20d6e21d0e52553136020526040902090565b6001600160a01b03165f90815268a20d6e21d0e52553106020526040902090565b601f909101601f19168101906001600160401b03821190821017610e0d57604052565b90600182811c921680156114dd575b60208310146114c957565b634e487b7160e01b5f52602260045260245ffd5b91607f16916114be565b906114f18261144a565b5460581c9160016002841615159316156115085750565b3b15159150565b60609060208152601a602082015279476c6f62616c20696e646578206f7574206f6620626f756e647360301b60408201520190565b811561154e570490565b634e487b7160e01b5f52601260045260245ffd5b9190820180921161067b57565b9068a20d6e21d0e52553085463ffffffff8160801c1683101561162e576115ba907f00000000000000000000000000000000000000000000000000000000000000009060a01c611544565b905f925f5b8381106115e35760405162461bcd60e51b8152806115df6004820161150f565b0390fd5b806001018060011161067b5763ffffffff6116008360011b6121af565b1661160f575b506001016115bf565b8286929614611625575060018091019490611606565b93505050915090565b60405162461bcd60e51b8152806115df6004820161150f565b906001600160a01b0381166e22d473030f116ddee9f6b43ac78ba314611675575b611671916116d3565b5490565b60046116808361144a565b5460581c166116685750505f1990565b805460ff60581b191660589290921b60ff60581b16919091179055565b5f546001600160a01b031633036116c057565b63118cdaa760e01b5f523360045260245ffd5b9060285260145268a20d6e21d0e525530f5f5260485f20905f602852565b9060285260145268a20d6e21d0e525530b5f5260485f20905f602852565b6004549092906001600160a01b038381169082161490816121a0575b50612191576001600160a01b03831615158061215b575b61210b576001600160a01b038216156107205761175e8361144a565b6117678361144a565b68a20d6e21d0e5255309546001600160a01b031615610713576040519161018083016001600160401b03811184821017610e0d576040525f83525f60208401525f60808401525f60a08401525f60c08401525f60e08401525f6101008401525f6101208401525f6101408401525f610160840152805463ffffffff8160801c16604085015263ffffffff835460801c1660608501528060a01c85116106c05761182060a082901c8690036001600160601b0316836122c3565b825460a01c85019061183b6001600160601b038316856122c3565b611870604086015191877f00000000000000000000000000000000000000000000000000000000000000009160a01c03611544565b8082039111028452611881866114e7565b156120a3575b50611e9e565b68a20d6e21d0e52553085463ffffffff60208501518551928382848360801c1601038060808901528360801b9060801b16908360801b191617928368a20d6e21d0e52553085501916040519260c060a085019180835260051b850101604052836040015260c0830183528261016087015260601c166101208501528351611d7e575b505060208201516119f4575b50610140810151806119b0575b5061016001518061195e575b505f9081526001600160a01b0391821692909116905f8051602061246e83398151915290602090a3565b600160206040828060a01b0368a20d6e21d0e5255309541693015192603f19840193849163263c69d6835283601f198301525f825160051b6044019260231901915af19151141615610759575f611934565b600160205f9281838060a01b0368a20d6e21d0e5255309541691015190815160051b60840190607f19830195869360631901915af19151141615610759575f611928565b9194610160829492015160208360601b910152611a108261146b565b9463ffffffff611a20848661232a565b1660e086015268a20d6e21d0e5255308549263ffffffff611a647f00000000000000000000000000000000000000000000000000000000000000008660a01c611544565b9460201c168481119081150217610100870152611a9960608701519563ffffffff602089015188018060c08b015216906122e6565b63ffffffff68a20d6e21d0e52553085460401c169760015b15611d1f575b6101208701515f9063ffffffff8b8116911614611b6d57611b6863ffffffff60018c01169a60e0641fffffffe0631fffffff8360031c1668a20d6e21d0e525531160601b01549260051b16161c63ffffffff165b8060081c685106b710e87292a98760611b0160018260ff161b8019825416179055611b3d63ffffffff82168a8d61221d565b611b5d63ffffffff60e08c01511663ffffffff60018c019b1690836123ba565b6101608a0151612417565b611ab1565b949798939291906101008801515b63ffffffff611b8f5f19830160011b6121af565b1615611cfb575f19906001810160081c685106b710e87292a98760611b018054196001830160ff1690811c901b8015611c83575b80611bd9575b5050508981119081150217611b7b565b600180939450811901167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07a1412563212c14164235266736f7425221143267a4524367526767760fc7b2aaaaaaaba69a69a6db6db6db2cb2cb2ce739ce73def7bdeffffffff860260f81c161b60f71c1692831c63d76453e004161a179082685106b710e87292a98760611b03190160081b17910181108a8211175f03175f8080611bc9565b506001909c9895929c9a9794919a9693965b01805419685106b710e87292a98760611b60088e901c0182118117611cbd5750600190611c95565b9c9295989c9a9194979a969396808d60081c685106b710e87292a98760611b018311611cea575b50611bc3565b508c1960ff1690811b901c80611ce4565b611b68909a999691929394959a6001810188811190811502176101008b0152611b0b565b60c08701518603611ab757945094925094509468a20d6e21d0e52553085463ffffffff60201b61010084015160201b169163ffffffff60401b9060401b1690600160201b600160601b031916171768a20d6e21d0e5255308555f61191b565b602060018860609a9699959a989497981b17910152611d9c8261146b565b94611dbc60408801519563ffffffff895188038060a08c015216906122e6565b60015b15611e85575b5f945f190194611dd586886121d3565b63ffffffff8116905f1982018060021c685106b710e87292a98960611b019060c082549160061b1681811c60018060401b0316901b189055611e1c826101608c0151612417565b600160ff62ffffff8360081c16685106b710e87292a98760611b0192161b198154169055611e49816123f9565b611e54575b50611dbf565b611e5d81612309565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611e4e565b60a08701518503611dc557935093509390945f8061190f565b9194604086979294970151948651976020880151898110818b18028a1899888b108b8a18028914612094578a8918898c10028918908190038a52900360208901526001600160a01b0383811690831614612072576040805163144027d3818301526001600160a01b03858116606080840191909152908516608083015260a08201528a8918898c1002891860c0820181815260059190911b820160e090810190935260208201529081018152610140890152611f598361146b565b95611f638361146b565b9763ffffffff611f73858461232a565b1660e08b015260608a01519a81811090821802188a019560015b1561202c575b878b611fd78163ffffffff808f8f90611fcb60e09284611fc25f9b5f19604087015101908160408801526121d3565b1698899161221d565b015116911690836123ba565b6101408c015160208151838152019052611ff0816123f9565b611ffb575b50611f8d565b61200481612309565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611ff5565b9960010199868b03611f935793989550939861205992975063ffffffff91965080606087015216836122e6565b61206d63ffffffff604085015116826122e6565b61188d565b949297868198959398979297109082180218606084015101606084015261188d565b5050949297509450949161188d565b6120e2906001600160a01b03888116908816146120f8575b7f000000000000000000000000000000000000000000000000000000000000000090611544565b606084015180820391110260208401525f611887565b60408501518551900360608601526120bb565b60405162461bcd60e51b815260206004820152602260248201527f5472616e73666572206578636565647320617661696c61626c652062616c616e604482015261636560f01b6064820152608490fd5b506121658361144a565b5460a01c81810390811161067b576001600160a01b0384165f9081526005602052604090205411611742565b632e13674560e01b5f5260045ffd5b60ff915060a01c16155f61172b565b60e08160031c685106b710e87292a98960611b01549160051b161c63ffffffff1690565b60e0908260031c9060601b01549160051b161c63ffffffff1690565b9060e08260031c685106b710e87292a98960611b019260051b1682549182821c1863ffffffff16901b189055565b60e0909291928360031c9060601b019260051b1682549182821c1863ffffffff16901b189055565b63ffffffff165f5268a20d6e21d0e525530a60205260405f2090565b6001600160a01b03906122859061027b90600160201b8110025f190160011b6121af565b541690565b6001600160a01b0361229b82612261565b161561035e575f90815268a20d6e21d0e525530c60205260409020546001600160a01b031690565b80546001600160a01b031660a09290921b6001600160a01b031916919091179055565b805463ffffffff60801b191660809290921b63ffffffff60801b16919091179055565b60018160081c68a20d6e21d0e525530d60601b019160ff161b198154169055565b805460601c63ffffffff1692918315612341575050565b68a20d6e21d0e5255308805463ffffffff19811663ffffffff918216600101918216908117909255835463ffffffff60601b191660609190911b63ffffffff60601b1617909255909250829061239682612245565b80546001600160a01b0319166001600160a01b039092169190911790551561075957565b5f1901908160021c685106b710e87292a98960611b019260c084549360061b169163ffffffff169060201b1782821c1860018060401b0316901b189055565b8060081c68a20d6e21d0e525530d60601b01549060ff161c60011690565b9060209082519060081b8284015117815201905256fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa164736f6c634300081a000a608034607857601f610d4138819003918201601f19168301916001600160401b03831184841017607c57808492602094604052833981010312607857516001600160a01b03811690819003607857683602298b8c10b0123180546001600160a01b031916919091179055604051610cb090816100918239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60808060405260043610156101c5575b5036156101ba575f3560e01c63263c69d681146101405763144027d381146100cf57630f4599e51461004857633c10b94e5f526004601cfd5b683602298b8c10b01231546001600160a01b0316806100ab575b50683602298b8c10b01230546001600160a01b03811661009e576001600160a01b0319163317683602298b8c10b012305560015f908152602090f35b63bf656a465f526004601cfd5b6004356001600160a01b0316036100c2575f610062565b63c59ec47a5f526004601cfd5b683602298b8c10b01230546001600160a01b03163303610133576004356024359060443591602483810193600481013560051b0101925b8381036101165760015f5260205ff35b803582845f80516020610c848339815191525f80a4602001610106565b63363cb3125f526004601cfd5b683602298b8c10b01230546001600160a01b0316330361013357600435602481810191600481013560051b0101905b81810361017f5760015f5260205ff35b8035600881901c6001600160581b03169060018116801560609290921c91820291025f80516020610c848339815191525f80a460200161016f565b346101c157005b5f80fd5b5f3560e01c90816301ffc9a714610aa85750806306fdde0314610a3d578063081812fc146109e6578063095ea7b31461096457806318160ddd1461091857806323b872dd1461090457806324359879146108ad5780632f745c591461083c57806342842e0e146107c95780634f6ccce7146107325780636352211e146107035780636cef16e61461063757806370a08231146105da5780638da5cb5b146105aa57806395d89b411461053f57806397e5311c14610513578063a22cb46514610487578063b88d4fde1461039d578063c87b56dd146103215763e985e9c5146102ad575f61000f565b346101c15760403660031901126101c1576102c6610b1c565b60205f6044601c6102d5610b32565b6102dd610c25565b604080516362fb246d87526001600160a01b039889168852979092169091525afa601f3d1116156103195760405260205f516040519015158152f35b3d5f823e3d90fd5b346101c15760203660031901126101c15760043561033e81610c4f565b505f806024601c61034d610c25565b6040519563cb30b46085526020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b0390f35b60803660031901126101c1576103b1610b1c565b6103b9610b32565b60443591606435916001600160401b0383116101c157366023840112156101c1576004830135926001600160401b0384116101c15736602485830101116101c157610405858385610b82565b813b61040d57005b83602094602460a49360405198899763150b7a028952338a8a015260018060a01b0316604089015260608801526080808801528260a08801520160c086013701905f601c8401915af115610479575b5163757a42ff60e11b0161046c57005b63d1a57ed65f526004601cfd5b3d1561045c573d5f823e3d90fd5b346101c15760403660031901126101c1576104a0610b1c565b6024358015158091036101c15760205f6064601c826104bd610c25565b9660018060a01b0316966040519663f6916ddd8352888752604052336060525af160015f511416156103195750337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206040a3005b346101c1575f3660031901126101c157602061052d610c25565b6040516001600160a01b039091168152f35b346101c1575f3660031901126101c157610557610c25565b5f806024601c604051946395d89b418452836020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b346101c1575f3660031901126101c157683602298b8c10b01232546040516001600160a01b039091168152602090f35b346101c15760203660031901126101c1576001600160a01b036105fb610b1c565b1660205f6044601c61060b610c25565b6040519563f5b100ea85528552836040525afa601f3d1116156103195760405260205f51604051908152f35b346101c1575f3660031901126101c15761064f610c25565b683602298b8c10b012325460205f6004601c60018060a01b03851695638da5cb5b84525afa9081601f3d1116600c5160601c0291156106ec575b506001600160a01b0316908181036106a7575b602060405160018152f35b683602298b8c10b0123280546001600160a01b031916831790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3808061069c565b60601b6001600160601b0319166101c15782610689565b346101c15760203660031901126101c15760206001600160a01b03610729600435610c4f565b16604051908152f35b346101c15760203660031901126101c157602460206001600160a01b03610757610c25565b1660405192838092634f6ccce760e01b825260043560048301525afa80156107be575f9061078b575b602090604051908152f35b506020813d6020116107b6575b816107a560209383610bee565b810103126101c15760209051610780565b3d9150610798565b6040513d5f823e3d90fd5b6107d236610b48565b916107de838383610b82565b813b6107e657005b60a460209260405194859363150b7a028552338686015260018060a01b0316604085015260608401526080808401525f60a08401525f3681375f601c8401915af115610479575163757a42ff60e11b0161046c57005b346101c15760403660031901126101c157610855610b1c565b60206001600160a01b03610867610c25565b604051632f745c5960e01b81526001600160a01b039094166004850152602480359085015283916044918391165afa80156107be575f9061078b57602090604051908152f35b346101c15760203660031901126101c1576108c6610c25565b60205f6044601c6040519463c016aa5284526004358552836040525afa601f3d1116156103195760408190525f516001600160a01b03168152602090f35b61091661091036610b48565b91610b82565b005b346101c1575f3660031901126101c157610930610c25565b60205f6044601c6040519463e2c792818452838552836040525afa601f3d1116156103195760405260205f51604051908152f35b60403660031901126101c157610978610b1c565b60243590610984610c25565b9060018060a01b03169060205f6064601c6040519463d10b6e0c8452868552876040523360605234905af1601f3d1116156103195750600c5160601c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a4005b346101c15760203660031901126101c1576109ff610c25565b60205f6044601c604051946327ef549584526004358552836040525afa601f3d1116156103195760408190525f516001600160a01b03168152602090f35b346101c1575f3660031901126101c157610a55610c25565b5f806024601c604051946306fdde038452836020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b346101c15760203660031901126101c157600435906001600160e01b0319821682036101c15760209160e01c635b5e139f8114906301ffc9a76380ac58cd82149114171715158152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101c157565b602435906001600160a01b03821682036101c157565b60609060031901126101c1576004356001600160a01b03811681036101c157906024356001600160a01b03811681036101c1579060443590565b9060846020610b8f610c25565b6040805163e5eb36c881526001600160a01b03968716848201819052959096169086018190526060860187905233608087015294928391601c83019034905af16001825114161561031957505f80516020610c848339815191525f80a4565b601f909101601f19168101906001600160401b03821190821017610c1157604052565b634e487b7160e01b5f52604160045260245ffd5b683602298b8c10b01230546001600160a01b0316908115610c4257565b635b2a47ae5f526004601cfd5b60205f6044601c610c5e610c25565b60405195632d8a746e85528552836040525afa601f3d111615610319576040525f519056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa164736f6c634300081a000a";
5036
5079
 
@@ -5042,25 +5085,6 @@ declare const _default$1: "0x6101c0604052346100ab5761002761001561023e565b9897909
5042
5085
 
5043
5086
  declare const _default: "0x60a03460b257601f610b8338819003918201601f19168301916001600160401b0383118484101760b65780849260209460405283398101031260b257516001600160a01b038116810360b257608052604051610ab890816100cb823960805181818160e1015281816101b701528181610217015281816102ba0152818161034a015281816103f50152818161045b015281816104a2015281816104e90152818161054c0152818161060701526107170152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80631c7ccb4c146106a357806353e9c1fb146105de5780637c40f1fe1461050d5780638a2bb9e6146104c657806397fd7b421461048b5780639ec538c814610440578063c815641c146103d5578063caedab5414610309578063dacf1d2f14610246578063dc4c90d314610202578063f0928f29146101835763fa6793d51461009d575f80fd5b34610158576020366003190112610158576100b9600435610a1c565b6003810180911161016f57604051631e2eaeaf60e01b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610164575f9061012d575b6040516001600160801b039091168152602090f35b506020813d60201161015c575b81610147602093836107c2565b810103126101585760209051610118565b5f80fd5b3d915061013a565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b346101585761019a610194366107ac565b90610a78565b604051631e2eaeaf60e01b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610164575f9061012d576040516001600160801b039091168152602090f35b34610158575f366003190112610158576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101585760a0366003190112610158576024356001600160a01b03811681036101585761027261079c565b6064358060020b810361015857610305926102de926040519260843560268501526006840152600383015281525f603a600c83012091816040820152816020820152526004357f00000000000000000000000000000000000000000000000000000000000000006108fb565b604080516001600160801b0390941684526020840192909252908201529081906060820190565b0390f35b346101585760403660031901126101585761032d61032561078c565b600435610a42565b604051631e2eaeaf60e01b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610164575f906103a2575b604080516001600160801b038316815260809290921d600f0b602083015290f35b506020813d6020116103cd575b816103bc602093836107c2565b810103126101585760409051610381565b3d91506103af565b3461015857602036600319011261015857608062ffffff806104196004357f000000000000000000000000000000000000000000000000000000000000000061097d565b9294916040519560018060a01b0316865260020b6020860152166040840152166060820152f35b3461015857602036600319011261015857604061047f6004357f0000000000000000000000000000000000000000000000000000000000000000610972565b82519182526020820152f35b34610158576103056102de61049f366107ac565b907f00000000000000000000000000000000000000000000000000000000000000006108fb565b3461015857604036600319011261015857604061047f6104e461078c565b6004357f000000000000000000000000000000000000000000000000000000000000000061087c565b346101585760403660031901126101585761052961032561078c565b604051631afeb18d60e11b81526004810191909152600360248201525f816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610164576080915f916105bc575b50602081015190606060408201519101519060405192600180861b0381168452841d600f0b602084015260408301526060820152f35b6105d891503d805f833e6105d081836107c2565b8101906107f9565b82610586565b346101585760603660031901126101585760406004356105fc61078c565b9061060561079c565b7f0000000000000000000000000000000000000000000000000000000000000000906106318383610972565b9061063d86868661087c565b96909361065661064e82898961087c565b98909761097d565b5050905060020b9160020b82125f1461067c575050505003910382519182526020820152f35b95969593949360020b1361069457505003910361047f565b9493929094030392030361047f565b34610158576040366003190112610158576024358060010b809103610158576106cd600435610a1c565b6005810180911161016f5760405190602082019283526040820152604081526106f76060826107c2565b519020604051631e2eaeaf60e01b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610164575f90610759575b602090604051908152f35b506020813d602011610784575b81610773602093836107c2565b81010312610158576020905161074e565b3d9150610766565b602435908160020b820361015857565b604435908160020b820361015857565b6040906003190112610158576004359060243590565b601f909101601f19168101906001600160401b038211908210176107e557604052565b634e487b7160e01b5f52604160045260245ffd5b602081830312610158578051906001600160401b03821161015857019080601f83011215610158578151916001600160401b0383116107e5578260051b906040519361084860208401866107c2565b845260208085019282010192831161015857602001905b82821061086c5750505090565b815181526020918201910161085f565b929161088791610a42565b6001810180911161016f57604051631afeb18d60e11b8152600481019190915260026024820152915f90839060449082906001600160a01b03165afa918215610164575f926108df575b506040602083015192015190565b6108f49192503d805f833e6105d081836107c2565b905f6108d1565b91610907905f92610a78565b604051631afeb18d60e11b815260048101919091526003602482015291829060449082906001600160a01b03165afa908115610164575f91610958575b506020810151916060604083015192015190565b61096c91503d805f833e6105d081836107c2565b5f610944565b919061088790610a1c565b919061098a602091610a1c565b604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa918215610164575f926109e8575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b9091506020813d602011610a14575b81610a04602093836107c2565b810103126101585751905f6109c0565b3d91506109f7565b604051602081019182526006604082015260408152610a3c6060826107c2565b51902090565b610a4b90610a1c565b6004810180911161016f5760405190602082019260020b8352604082015260408152610a3c6060826107c2565b610a8190610a1c565b6006810180911161016f576040519060208201928352604082015260408152610a3c6060826107c256fea164736f6c634300081a000a";
5044
5087
 
5045
- declare const topUpDistributorAbi: readonly [{
5046
- readonly type: "function";
5047
- readonly name: "topUp";
5048
- readonly inputs: readonly [{
5049
- readonly name: "asset";
5050
- readonly type: "address";
5051
- readonly internalType: "address";
5052
- }, {
5053
- readonly name: "numeraire";
5054
- readonly type: "address";
5055
- readonly internalType: "address";
5056
- }, {
5057
- readonly name: "amount";
5058
- readonly type: "uint256";
5059
- readonly internalType: "uint256";
5060
- }];
5061
- readonly outputs: readonly [];
5062
- readonly stateMutability: "payable";
5063
- }];
5064
5088
  declare const airlockAbi: readonly [{
5065
5089
  readonly type: "constructor";
5066
5090
  readonly inputs: readonly [{
@@ -7057,6 +7081,20 @@ declare const dopplerERC20V1Abi: readonly [{
7057
7081
  readonly internalType: "uint256";
7058
7082
  }];
7059
7083
  readonly stateMutability: "view";
7084
+ }, {
7085
+ readonly type: "function";
7086
+ readonly name: "getPastTotalSupply";
7087
+ readonly inputs: readonly [{
7088
+ readonly name: "timepoint";
7089
+ readonly type: "uint256";
7090
+ readonly internalType: "uint256";
7091
+ }];
7092
+ readonly outputs: readonly [{
7093
+ readonly name: "";
7094
+ readonly type: "uint256";
7095
+ readonly internalType: "uint256";
7096
+ }];
7097
+ readonly stateMutability: "view";
7060
7098
  }, {
7061
7099
  readonly type: "function";
7062
7100
  readonly name: "getPastVotesTotalSupply";
@@ -7428,6 +7466,20 @@ declare const dopplerERC20V1Abi: readonly [{
7428
7466
  readonly internalType: "uint256";
7429
7467
  }];
7430
7468
  readonly stateMutability: "view";
7469
+ }, {
7470
+ readonly type: "function";
7471
+ readonly name: "totalUnreleasedOf";
7472
+ readonly inputs: readonly [{
7473
+ readonly name: "beneficiary";
7474
+ readonly type: "address";
7475
+ readonly internalType: "address";
7476
+ }];
7477
+ readonly outputs: readonly [{
7478
+ readonly name: "";
7479
+ readonly type: "uint256";
7480
+ readonly internalType: "uint256";
7481
+ }];
7482
+ readonly stateMutability: "view";
7431
7483
  }, {
7432
7484
  readonly type: "function";
7433
7485
  readonly name: "totalSupply";
@@ -10345,40 +10397,6 @@ declare const streamableFeesLockerAbi: readonly [{
10345
10397
  readonly name: "isUnlocked";
10346
10398
  readonly type: "bool";
10347
10399
  readonly internalType: "bool";
10348
- }, {
10349
- readonly name: "beneficiaries";
10350
- readonly type: "tuple[]";
10351
- readonly internalType: "struct BeneficiaryData[]";
10352
- readonly components: readonly [{
10353
- readonly name: "beneficiary";
10354
- readonly type: "address";
10355
- readonly internalType: "address";
10356
- }, {
10357
- readonly name: "shares";
10358
- readonly type: "uint96";
10359
- readonly internalType: "uint96";
10360
- }];
10361
- }, {
10362
- readonly name: "positions";
10363
- readonly type: "tuple[]";
10364
- readonly internalType: "struct Position[]";
10365
- readonly components: readonly [{
10366
- readonly name: "tickLower";
10367
- readonly type: "int24";
10368
- readonly internalType: "int24";
10369
- }, {
10370
- readonly name: "tickUpper";
10371
- readonly type: "int24";
10372
- readonly internalType: "int24";
10373
- }, {
10374
- readonly name: "liquidity";
10375
- readonly type: "uint128";
10376
- readonly internalType: "uint128";
10377
- }, {
10378
- readonly name: "salt";
10379
- readonly type: "bytes32";
10380
- readonly internalType: "bytes32";
10381
- }];
10382
10400
  }];
10383
10401
  readonly stateMutability: "view";
10384
10402
  }, {
@@ -10405,41 +10423,263 @@ declare const streamableFeesLockerAbi: readonly [{
10405
10423
  declare const streamableFeesLockerV2Abi: readonly [{
10406
10424
  readonly type: "function";
10407
10425
  readonly name: "approvedMigrators";
10408
- readonly stateMutability: "view";
10409
10426
  readonly inputs: readonly [{
10410
10427
  readonly name: "migrator";
10411
10428
  readonly type: "address";
10429
+ readonly internalType: "address";
10412
10430
  }];
10413
10431
  readonly outputs: readonly [{
10414
10432
  readonly name: "approved";
10415
10433
  readonly type: "bool";
10434
+ readonly internalType: "bool";
10416
10435
  }];
10417
- }];
10418
- declare const v4MulticurveMigratorAbi: readonly [{
10436
+ readonly stateMutability: "view";
10437
+ }, {
10419
10438
  readonly type: "function";
10420
- readonly name: "getAssetData";
10439
+ readonly name: "collectFees";
10421
10440
  readonly inputs: readonly [{
10422
- readonly name: "token0";
10423
- readonly type: "address";
10424
- readonly internalType: "address";
10425
- }, {
10426
- readonly name: "token1";
10427
- readonly type: "address";
10428
- readonly internalType: "address";
10441
+ readonly name: "poolId";
10442
+ readonly type: "bytes32";
10443
+ readonly internalType: "PoolId";
10429
10444
  }];
10430
10445
  readonly outputs: readonly [{
10431
- readonly name: "isToken0";
10432
- readonly type: "bool";
10433
- readonly internalType: "bool";
10446
+ readonly name: "fees0";
10447
+ readonly type: "uint128";
10448
+ readonly internalType: "uint128";
10434
10449
  }, {
10435
- readonly name: "poolKey";
10436
- readonly type: "tuple";
10437
- readonly internalType: "struct PoolKey";
10438
- readonly components: readonly [{
10439
- readonly name: "currency0";
10440
- readonly type: "address";
10441
- readonly internalType: "Currency";
10442
- }, {
10450
+ readonly name: "fees1";
10451
+ readonly type: "uint128";
10452
+ readonly internalType: "uint128";
10453
+ }];
10454
+ readonly stateMutability: "nonpayable";
10455
+ }, {
10456
+ readonly type: "function";
10457
+ readonly name: "getCumulatedFees0";
10458
+ readonly inputs: readonly [{
10459
+ readonly name: "poolId";
10460
+ readonly type: "bytes32";
10461
+ readonly internalType: "PoolId";
10462
+ }];
10463
+ readonly outputs: readonly [{
10464
+ readonly name: "cumulatedFees0";
10465
+ readonly type: "uint256";
10466
+ readonly internalType: "uint256";
10467
+ }];
10468
+ readonly stateMutability: "view";
10469
+ }, {
10470
+ readonly type: "function";
10471
+ readonly name: "getCumulatedFees1";
10472
+ readonly inputs: readonly [{
10473
+ readonly name: "poolId";
10474
+ readonly type: "bytes32";
10475
+ readonly internalType: "PoolId";
10476
+ }];
10477
+ readonly outputs: readonly [{
10478
+ readonly name: "cumulatedFees1";
10479
+ readonly type: "uint256";
10480
+ readonly internalType: "uint256";
10481
+ }];
10482
+ readonly stateMutability: "view";
10483
+ }, {
10484
+ readonly type: "function";
10485
+ readonly name: "getPoolKey";
10486
+ readonly inputs: readonly [{
10487
+ readonly name: "poolId";
10488
+ readonly type: "bytes32";
10489
+ readonly internalType: "PoolId";
10490
+ }];
10491
+ readonly outputs: readonly [{
10492
+ readonly name: "currency0";
10493
+ readonly type: "address";
10494
+ readonly internalType: "Currency";
10495
+ }, {
10496
+ readonly name: "currency1";
10497
+ readonly type: "address";
10498
+ readonly internalType: "Currency";
10499
+ }, {
10500
+ readonly name: "fee";
10501
+ readonly type: "uint24";
10502
+ readonly internalType: "uint24";
10503
+ }, {
10504
+ readonly name: "tickSpacing";
10505
+ readonly type: "int24";
10506
+ readonly internalType: "int24";
10507
+ }, {
10508
+ readonly name: "hooks";
10509
+ readonly type: "address";
10510
+ readonly internalType: "contract IHooks";
10511
+ }];
10512
+ readonly stateMutability: "view";
10513
+ }, {
10514
+ readonly type: "function";
10515
+ readonly name: "getShares";
10516
+ readonly inputs: readonly [{
10517
+ readonly name: "poolId";
10518
+ readonly type: "bytes32";
10519
+ readonly internalType: "PoolId";
10520
+ }, {
10521
+ readonly name: "beneficiary";
10522
+ readonly type: "address";
10523
+ readonly internalType: "address";
10524
+ }];
10525
+ readonly outputs: readonly [{
10526
+ readonly name: "shares";
10527
+ readonly type: "uint256";
10528
+ readonly internalType: "uint256";
10529
+ }];
10530
+ readonly stateMutability: "view";
10531
+ }, {
10532
+ readonly type: "function";
10533
+ readonly name: "streams";
10534
+ readonly inputs: readonly [{
10535
+ readonly name: "poolId";
10536
+ readonly type: "bytes32";
10537
+ readonly internalType: "PoolId";
10538
+ }];
10539
+ readonly outputs: readonly [{
10540
+ readonly name: "poolKey";
10541
+ readonly type: "tuple";
10542
+ readonly internalType: "struct PoolKey";
10543
+ readonly components: readonly [{
10544
+ readonly name: "currency0";
10545
+ readonly type: "address";
10546
+ readonly internalType: "Currency";
10547
+ }, {
10548
+ readonly name: "currency1";
10549
+ readonly type: "address";
10550
+ readonly internalType: "Currency";
10551
+ }, {
10552
+ readonly name: "fee";
10553
+ readonly type: "uint24";
10554
+ readonly internalType: "uint24";
10555
+ }, {
10556
+ readonly name: "tickSpacing";
10557
+ readonly type: "int24";
10558
+ readonly internalType: "int24";
10559
+ }, {
10560
+ readonly name: "hooks";
10561
+ readonly type: "address";
10562
+ readonly internalType: "contract IHooks";
10563
+ }];
10564
+ }, {
10565
+ readonly name: "recipient";
10566
+ readonly type: "address";
10567
+ readonly internalType: "address";
10568
+ }, {
10569
+ readonly name: "startDate";
10570
+ readonly type: "uint32";
10571
+ readonly internalType: "uint32";
10572
+ }, {
10573
+ readonly name: "lockDuration";
10574
+ readonly type: "uint32";
10575
+ readonly internalType: "uint32";
10576
+ }, {
10577
+ readonly name: "isUnlocked";
10578
+ readonly type: "bool";
10579
+ readonly internalType: "bool";
10580
+ }];
10581
+ readonly stateMutability: "view";
10582
+ }, {
10583
+ readonly type: "function";
10584
+ readonly name: "unlock";
10585
+ readonly inputs: readonly [{
10586
+ readonly name: "poolId";
10587
+ readonly type: "bytes32";
10588
+ readonly internalType: "PoolId";
10589
+ }];
10590
+ readonly outputs: readonly [];
10591
+ readonly stateMutability: "nonpayable";
10592
+ }, {
10593
+ readonly type: "function";
10594
+ readonly name: "updateBeneficiary";
10595
+ readonly inputs: readonly [{
10596
+ readonly name: "poolId";
10597
+ readonly type: "bytes32";
10598
+ readonly internalType: "PoolId";
10599
+ }, {
10600
+ readonly name: "newBeneficiary";
10601
+ readonly type: "address";
10602
+ readonly internalType: "address";
10603
+ }];
10604
+ readonly outputs: readonly [];
10605
+ readonly stateMutability: "nonpayable";
10606
+ }, {
10607
+ readonly type: "event";
10608
+ readonly name: "Collect";
10609
+ readonly inputs: readonly [{
10610
+ readonly name: "poolId";
10611
+ readonly type: "bytes32";
10612
+ readonly indexed: true;
10613
+ readonly internalType: "PoolId";
10614
+ }, {
10615
+ readonly name: "fees0";
10616
+ readonly type: "uint256";
10617
+ readonly indexed: false;
10618
+ readonly internalType: "uint256";
10619
+ }, {
10620
+ readonly name: "fees1";
10621
+ readonly type: "uint256";
10622
+ readonly indexed: false;
10623
+ readonly internalType: "uint256";
10624
+ }];
10625
+ readonly anonymous: false;
10626
+ }, {
10627
+ readonly type: "event";
10628
+ readonly name: "Unlock";
10629
+ readonly inputs: readonly [{
10630
+ readonly name: "poolId";
10631
+ readonly type: "bytes32";
10632
+ readonly indexed: true;
10633
+ readonly internalType: "PoolId";
10634
+ }, {
10635
+ readonly name: "recipient";
10636
+ readonly type: "address";
10637
+ readonly indexed: false;
10638
+ readonly internalType: "address";
10639
+ }];
10640
+ readonly anonymous: false;
10641
+ }, {
10642
+ readonly type: "error";
10643
+ readonly name: "CallerNotRecipient";
10644
+ readonly inputs: readonly [];
10645
+ }, {
10646
+ readonly type: "error";
10647
+ readonly name: "LockNotExpired";
10648
+ readonly inputs: readonly [];
10649
+ }, {
10650
+ readonly type: "error";
10651
+ readonly name: "StreamAlreadyUnlocked";
10652
+ readonly inputs: readonly [];
10653
+ }, {
10654
+ readonly type: "error";
10655
+ readonly name: "StreamNotFound";
10656
+ readonly inputs: readonly [];
10657
+ }];
10658
+ declare const v4MulticurveMigratorAbi: readonly [{
10659
+ readonly type: "function";
10660
+ readonly name: "getAssetData";
10661
+ readonly inputs: readonly [{
10662
+ readonly name: "token0";
10663
+ readonly type: "address";
10664
+ readonly internalType: "address";
10665
+ }, {
10666
+ readonly name: "token1";
10667
+ readonly type: "address";
10668
+ readonly internalType: "address";
10669
+ }];
10670
+ readonly outputs: readonly [{
10671
+ readonly name: "isToken0";
10672
+ readonly type: "bool";
10673
+ readonly internalType: "bool";
10674
+ }, {
10675
+ readonly name: "poolKey";
10676
+ readonly type: "tuple";
10677
+ readonly internalType: "struct PoolKey";
10678
+ readonly components: readonly [{
10679
+ readonly name: "currency0";
10680
+ readonly type: "address";
10681
+ readonly internalType: "Currency";
10682
+ }, {
10443
10683
  readonly name: "currency1";
10444
10684
  readonly type: "address";
10445
10685
  readonly internalType: "Currency";
@@ -11662,57 +11902,155 @@ declare const rehypeDopplerHookInitializerAbi: readonly [{
11662
11902
  readonly stateMutability: "view";
11663
11903
  }, {
11664
11904
  readonly type: "function";
11665
- readonly name: "getHookFees";
11905
+ readonly name: "getIntegratorFeeShare";
11666
11906
  readonly inputs: readonly [{
11667
11907
  readonly name: "poolId";
11668
11908
  readonly type: "bytes32";
11669
11909
  readonly internalType: "PoolId";
11670
11910
  }];
11671
11911
  readonly outputs: readonly [{
11672
- readonly name: "fees0";
11673
- readonly type: "uint128";
11674
- readonly internalType: "uint128";
11675
- }, {
11676
- readonly name: "fees1";
11677
- readonly type: "uint128";
11678
- readonly internalType: "uint128";
11679
- }, {
11680
- readonly name: "beneficiaryFees0";
11681
- readonly type: "uint128";
11682
- readonly internalType: "uint128";
11683
- }, {
11684
- readonly name: "beneficiaryFees1";
11685
- readonly type: "uint128";
11686
- readonly internalType: "uint128";
11687
- }, {
11688
- readonly name: "airlockOwnerFees0";
11689
- readonly type: "uint128";
11690
- readonly internalType: "uint128";
11691
- }, {
11692
- readonly name: "airlockOwnerFees1";
11693
- readonly type: "uint128";
11694
- readonly internalType: "uint128";
11695
- }, {
11696
- readonly name: "customFee";
11912
+ readonly name: "";
11697
11913
  readonly type: "uint24";
11698
11914
  readonly internalType: "uint24";
11699
11915
  }];
11700
11916
  readonly stateMutability: "view";
11701
11917
  }, {
11702
11918
  readonly type: "function";
11703
- readonly name: "getPoolInfo";
11919
+ readonly name: "getIntegratorRoutingConfig";
11704
11920
  readonly inputs: readonly [{
11705
11921
  readonly name: "poolId";
11706
11922
  readonly type: "bytes32";
11707
11923
  readonly internalType: "PoolId";
11708
11924
  }];
11709
11925
  readonly outputs: readonly [{
11710
- readonly name: "asset";
11926
+ readonly name: "integrator";
11711
11927
  readonly type: "address";
11712
11928
  readonly internalType: "address";
11713
11929
  }, {
11714
- readonly name: "numeraire";
11715
- readonly type: "address";
11930
+ readonly name: "assetFeesToNumeraireRatio";
11931
+ readonly type: "uint32";
11932
+ readonly internalType: "uint32";
11933
+ }, {
11934
+ readonly name: "numeraireFeesToAssetRatio";
11935
+ readonly type: "uint32";
11936
+ readonly internalType: "uint32";
11937
+ }, {
11938
+ readonly name: "automaticPayout";
11939
+ readonly type: "bool";
11940
+ readonly internalType: "bool";
11941
+ }];
11942
+ readonly stateMutability: "view";
11943
+ }, {
11944
+ readonly type: "function";
11945
+ readonly name: "getPendingIntegratorFees";
11946
+ readonly inputs: readonly [{
11947
+ readonly name: "poolId";
11948
+ readonly type: "bytes32";
11949
+ readonly internalType: "PoolId";
11950
+ }];
11951
+ readonly outputs: readonly [{
11952
+ readonly name: "fees0";
11953
+ readonly type: "uint128";
11954
+ readonly internalType: "uint128";
11955
+ }, {
11956
+ readonly name: "fees1";
11957
+ readonly type: "uint128";
11958
+ readonly internalType: "uint128";
11959
+ }];
11960
+ readonly stateMutability: "view";
11961
+ }, {
11962
+ readonly type: "function";
11963
+ readonly name: "getClaimableIntegratorFees";
11964
+ readonly inputs: readonly [{
11965
+ readonly name: "poolId";
11966
+ readonly type: "bytes32";
11967
+ readonly internalType: "PoolId";
11968
+ }];
11969
+ readonly outputs: readonly [{
11970
+ readonly name: "fees0";
11971
+ readonly type: "uint128";
11972
+ readonly internalType: "uint128";
11973
+ }, {
11974
+ readonly name: "fees1";
11975
+ readonly type: "uint128";
11976
+ readonly internalType: "uint128";
11977
+ }];
11978
+ readonly stateMutability: "view";
11979
+ }, {
11980
+ readonly type: "function";
11981
+ readonly name: "claimIntegratorFees";
11982
+ readonly inputs: readonly [{
11983
+ readonly name: "asset";
11984
+ readonly type: "address";
11985
+ readonly internalType: "address";
11986
+ }, {
11987
+ readonly name: "to";
11988
+ readonly type: "address";
11989
+ readonly internalType: "address";
11990
+ }];
11991
+ readonly outputs: readonly [{
11992
+ readonly name: "fees0";
11993
+ readonly type: "uint128";
11994
+ readonly internalType: "uint128";
11995
+ }, {
11996
+ readonly name: "fees1";
11997
+ readonly type: "uint128";
11998
+ readonly internalType: "uint128";
11999
+ }];
12000
+ readonly stateMutability: "nonpayable";
12001
+ }, {
12002
+ readonly type: "function";
12003
+ readonly name: "getHookFees";
12004
+ readonly inputs: readonly [{
12005
+ readonly name: "poolId";
12006
+ readonly type: "bytes32";
12007
+ readonly internalType: "PoolId";
12008
+ }];
12009
+ readonly outputs: readonly [{
12010
+ readonly name: "fees0";
12011
+ readonly type: "uint128";
12012
+ readonly internalType: "uint128";
12013
+ }, {
12014
+ readonly name: "fees1";
12015
+ readonly type: "uint128";
12016
+ readonly internalType: "uint128";
12017
+ }, {
12018
+ readonly name: "beneficiaryFees0";
12019
+ readonly type: "uint128";
12020
+ readonly internalType: "uint128";
12021
+ }, {
12022
+ readonly name: "beneficiaryFees1";
12023
+ readonly type: "uint128";
12024
+ readonly internalType: "uint128";
12025
+ }, {
12026
+ readonly name: "airlockOwnerFees0";
12027
+ readonly type: "uint128";
12028
+ readonly internalType: "uint128";
12029
+ }, {
12030
+ readonly name: "airlockOwnerFees1";
12031
+ readonly type: "uint128";
12032
+ readonly internalType: "uint128";
12033
+ }, {
12034
+ readonly name: "customFee";
12035
+ readonly type: "uint24";
12036
+ readonly internalType: "uint24";
12037
+ }];
12038
+ readonly stateMutability: "view";
12039
+ }, {
12040
+ readonly type: "function";
12041
+ readonly name: "getPoolInfo";
12042
+ readonly inputs: readonly [{
12043
+ readonly name: "poolId";
12044
+ readonly type: "bytes32";
12045
+ readonly internalType: "PoolId";
12046
+ }];
12047
+ readonly outputs: readonly [{
12048
+ readonly name: "asset";
12049
+ readonly type: "address";
12050
+ readonly internalType: "address";
12051
+ }, {
12052
+ readonly name: "numeraire";
12053
+ readonly type: "address";
11716
12054
  readonly internalType: "address";
11717
12055
  }, {
11718
12056
  readonly name: "buybackDst";
@@ -11870,6 +12208,152 @@ declare const rehypeDopplerHookInitializerAbi: readonly [{
11870
12208
  readonly internalType: "uint24";
11871
12209
  }];
11872
12210
  readonly anonymous: false;
12211
+ }, {
12212
+ readonly type: "event";
12213
+ readonly name: "IntegratorAutomaticPayoutSet";
12214
+ readonly inputs: readonly [{
12215
+ readonly name: "poolId";
12216
+ readonly type: "bytes32";
12217
+ readonly indexed: true;
12218
+ readonly internalType: "PoolId";
12219
+ }, {
12220
+ readonly name: "automaticPayout";
12221
+ readonly type: "bool";
12222
+ readonly indexed: false;
12223
+ readonly internalType: "bool";
12224
+ }];
12225
+ readonly anonymous: false;
12226
+ }, {
12227
+ readonly type: "event";
12228
+ readonly name: "IntegratorConversionRatiosSet";
12229
+ readonly inputs: readonly [{
12230
+ readonly name: "poolId";
12231
+ readonly type: "bytes32";
12232
+ readonly indexed: true;
12233
+ readonly internalType: "PoolId";
12234
+ }, {
12235
+ readonly name: "assetFeesToNumeraireRatio";
12236
+ readonly type: "uint32";
12237
+ readonly indexed: false;
12238
+ readonly internalType: "uint32";
12239
+ }, {
12240
+ readonly name: "numeraireFeesToAssetRatio";
12241
+ readonly type: "uint32";
12242
+ readonly indexed: false;
12243
+ readonly internalType: "uint32";
12244
+ }];
12245
+ readonly anonymous: false;
12246
+ }, {
12247
+ readonly type: "event";
12248
+ readonly name: "IntegratorFeeShareSet";
12249
+ readonly inputs: readonly [{
12250
+ readonly name: "poolId";
12251
+ readonly type: "bytes32";
12252
+ readonly indexed: true;
12253
+ readonly internalType: "PoolId";
12254
+ }, {
12255
+ readonly name: "feeShare";
12256
+ readonly type: "uint24";
12257
+ readonly indexed: false;
12258
+ readonly internalType: "uint24";
12259
+ }];
12260
+ readonly anonymous: false;
12261
+ }, {
12262
+ readonly type: "event";
12263
+ readonly name: "IntegratorFeesClaimed";
12264
+ readonly inputs: readonly [{
12265
+ readonly name: "poolId";
12266
+ readonly type: "bytes32";
12267
+ readonly indexed: true;
12268
+ readonly internalType: "PoolId";
12269
+ }, {
12270
+ readonly name: "integrator";
12271
+ readonly type: "address";
12272
+ readonly indexed: true;
12273
+ readonly internalType: "address";
12274
+ }, {
12275
+ readonly name: "to";
12276
+ readonly type: "address";
12277
+ readonly indexed: true;
12278
+ readonly internalType: "address";
12279
+ }, {
12280
+ readonly name: "fees0";
12281
+ readonly type: "uint128";
12282
+ readonly indexed: false;
12283
+ readonly internalType: "uint128";
12284
+ }, {
12285
+ readonly name: "fees1";
12286
+ readonly type: "uint128";
12287
+ readonly indexed: false;
12288
+ readonly internalType: "uint128";
12289
+ }];
12290
+ readonly anonymous: false;
12291
+ }, {
12292
+ readonly type: "event";
12293
+ readonly name: "IntegratorSet";
12294
+ readonly inputs: readonly [{
12295
+ readonly name: "poolId";
12296
+ readonly type: "bytes32";
12297
+ readonly indexed: true;
12298
+ readonly internalType: "PoolId";
12299
+ }, {
12300
+ readonly name: "oldIntegrator";
12301
+ readonly type: "address";
12302
+ readonly indexed: true;
12303
+ readonly internalType: "address";
12304
+ }, {
12305
+ readonly name: "newIntegrator";
12306
+ readonly type: "address";
12307
+ readonly indexed: true;
12308
+ readonly internalType: "address";
12309
+ }];
12310
+ readonly anonymous: false;
12311
+ }, {
12312
+ readonly type: "function";
12313
+ readonly name: "setIntegratorConversionRatios";
12314
+ readonly inputs: readonly [{
12315
+ readonly name: "poolId";
12316
+ readonly type: "bytes32";
12317
+ readonly internalType: "PoolId";
12318
+ }, {
12319
+ readonly name: "assetFeesToNumeraireRatio";
12320
+ readonly type: "uint32";
12321
+ readonly internalType: "uint32";
12322
+ }, {
12323
+ readonly name: "numeraireFeesToAssetRatio";
12324
+ readonly type: "uint32";
12325
+ readonly internalType: "uint32";
12326
+ }];
12327
+ readonly outputs: readonly [];
12328
+ readonly stateMutability: "nonpayable";
12329
+ }, {
12330
+ readonly type: "function";
12331
+ readonly name: "setIntegratorAutomaticPayout";
12332
+ readonly inputs: readonly [{
12333
+ readonly name: "poolId";
12334
+ readonly type: "bytes32";
12335
+ readonly internalType: "PoolId";
12336
+ }, {
12337
+ readonly name: "automaticPayout";
12338
+ readonly type: "bool";
12339
+ readonly internalType: "bool";
12340
+ }];
12341
+ readonly outputs: readonly [];
12342
+ readonly stateMutability: "nonpayable";
12343
+ }, {
12344
+ readonly type: "function";
12345
+ readonly name: "setIntegrator";
12346
+ readonly inputs: readonly [{
12347
+ readonly name: "poolId";
12348
+ readonly type: "bytes32";
12349
+ readonly internalType: "PoolId";
12350
+ }, {
12351
+ readonly name: "newIntegrator";
12352
+ readonly type: "address";
12353
+ readonly internalType: "address";
12354
+ }];
12355
+ readonly outputs: readonly [];
12356
+ readonly stateMutability: "nonpayable";
11873
12357
  }, {
11874
12358
  readonly type: "function";
11875
12359
  readonly name: "setFeeDistribution";
@@ -11914,28 +12398,44 @@ declare const rehypeDopplerHookInitializerAbi: readonly [{
11914
12398
  readonly stateMutability: "nonpayable";
11915
12399
  }, {
11916
12400
  readonly type: "error";
11917
- readonly name: "FeeBeneficiariesNotConfigured";
12401
+ readonly name: "InvalidIntegrator";
11918
12402
  readonly inputs: readonly [];
11919
12403
  }, {
11920
12404
  readonly type: "error";
11921
- readonly name: "FeeBeneficiariesNotSupportedInDirectBuyback";
12405
+ readonly name: "InvalidIntegratorClaimDestination";
11922
12406
  readonly inputs: readonly [];
11923
12407
  }, {
11924
12408
  readonly type: "error";
11925
- readonly name: "FeeDistributionMustAddUpToWAD";
12409
+ readonly name: "InvalidIntegratorConversionRatio";
11926
12410
  readonly inputs: readonly [];
11927
12411
  }, {
11928
12412
  readonly type: "error";
11929
- readonly name: "SenderNotAuthorized";
12413
+ readonly name: "SenderNotIntegrator";
11930
12414
  readonly inputs: readonly [];
11931
12415
  }, {
11932
12416
  readonly type: "error";
11933
- readonly name: "FeeTooHigh";
11934
- readonly inputs: readonly [{
11935
- readonly name: "fee";
11936
- readonly type: "uint24";
11937
- readonly internalType: "uint24";
11938
- }];
12417
+ readonly name: "FeeBeneficiariesNotConfigured";
12418
+ readonly inputs: readonly [];
12419
+ }, {
12420
+ readonly type: "error";
12421
+ readonly name: "FeeBeneficiariesNotSupportedInDirectBuyback";
12422
+ readonly inputs: readonly [];
12423
+ }, {
12424
+ readonly type: "error";
12425
+ readonly name: "FeeDistributionMustAddUpToWAD";
12426
+ readonly inputs: readonly [];
12427
+ }, {
12428
+ readonly type: "error";
12429
+ readonly name: "SenderNotAuthorized";
12430
+ readonly inputs: readonly [];
12431
+ }, {
12432
+ readonly type: "error";
12433
+ readonly name: "FeeTooHigh";
12434
+ readonly inputs: readonly [{
12435
+ readonly name: "fee";
12436
+ readonly type: "uint24";
12437
+ readonly internalType: "uint24";
12438
+ }];
11939
12439
  }, {
11940
12440
  readonly type: "error";
11941
12441
  readonly name: "InsufficientFeeCurrency";
@@ -12351,6 +12851,104 @@ declare const rehypeDopplerHookAbi: readonly [{
12351
12851
  readonly internalType: "uint32";
12352
12852
  }];
12353
12853
  readonly stateMutability: "view";
12854
+ }, {
12855
+ readonly type: "function";
12856
+ readonly name: "getIntegratorFeeShare";
12857
+ readonly inputs: readonly [{
12858
+ readonly name: "poolId";
12859
+ readonly type: "bytes32";
12860
+ readonly internalType: "PoolId";
12861
+ }];
12862
+ readonly outputs: readonly [{
12863
+ readonly name: "";
12864
+ readonly type: "uint24";
12865
+ readonly internalType: "uint24";
12866
+ }];
12867
+ readonly stateMutability: "view";
12868
+ }, {
12869
+ readonly type: "function";
12870
+ readonly name: "getIntegratorRoutingConfig";
12871
+ readonly inputs: readonly [{
12872
+ readonly name: "poolId";
12873
+ readonly type: "bytes32";
12874
+ readonly internalType: "PoolId";
12875
+ }];
12876
+ readonly outputs: readonly [{
12877
+ readonly name: "integrator";
12878
+ readonly type: "address";
12879
+ readonly internalType: "address";
12880
+ }, {
12881
+ readonly name: "assetFeesToNumeraireRatio";
12882
+ readonly type: "uint32";
12883
+ readonly internalType: "uint32";
12884
+ }, {
12885
+ readonly name: "numeraireFeesToAssetRatio";
12886
+ readonly type: "uint32";
12887
+ readonly internalType: "uint32";
12888
+ }, {
12889
+ readonly name: "automaticPayout";
12890
+ readonly type: "bool";
12891
+ readonly internalType: "bool";
12892
+ }];
12893
+ readonly stateMutability: "view";
12894
+ }, {
12895
+ readonly type: "function";
12896
+ readonly name: "getPendingIntegratorFees";
12897
+ readonly inputs: readonly [{
12898
+ readonly name: "poolId";
12899
+ readonly type: "bytes32";
12900
+ readonly internalType: "PoolId";
12901
+ }];
12902
+ readonly outputs: readonly [{
12903
+ readonly name: "fees0";
12904
+ readonly type: "uint128";
12905
+ readonly internalType: "uint128";
12906
+ }, {
12907
+ readonly name: "fees1";
12908
+ readonly type: "uint128";
12909
+ readonly internalType: "uint128";
12910
+ }];
12911
+ readonly stateMutability: "view";
12912
+ }, {
12913
+ readonly type: "function";
12914
+ readonly name: "getClaimableIntegratorFees";
12915
+ readonly inputs: readonly [{
12916
+ readonly name: "poolId";
12917
+ readonly type: "bytes32";
12918
+ readonly internalType: "PoolId";
12919
+ }];
12920
+ readonly outputs: readonly [{
12921
+ readonly name: "fees0";
12922
+ readonly type: "uint128";
12923
+ readonly internalType: "uint128";
12924
+ }, {
12925
+ readonly name: "fees1";
12926
+ readonly type: "uint128";
12927
+ readonly internalType: "uint128";
12928
+ }];
12929
+ readonly stateMutability: "view";
12930
+ }, {
12931
+ readonly type: "function";
12932
+ readonly name: "claimIntegratorFees";
12933
+ readonly inputs: readonly [{
12934
+ readonly name: "asset";
12935
+ readonly type: "address";
12936
+ readonly internalType: "address";
12937
+ }, {
12938
+ readonly name: "to";
12939
+ readonly type: "address";
12940
+ readonly internalType: "address";
12941
+ }];
12942
+ readonly outputs: readonly [{
12943
+ readonly name: "fees0";
12944
+ readonly type: "uint128";
12945
+ readonly internalType: "uint128";
12946
+ }, {
12947
+ readonly name: "fees1";
12948
+ readonly type: "uint128";
12949
+ readonly internalType: "uint128";
12950
+ }];
12951
+ readonly stateMutability: "nonpayable";
12354
12952
  }, {
12355
12953
  readonly type: "function";
12356
12954
  readonly name: "getHookFees";
@@ -12561,6 +13159,152 @@ declare const rehypeDopplerHookAbi: readonly [{
12561
13159
  readonly internalType: "uint24";
12562
13160
  }];
12563
13161
  readonly anonymous: false;
13162
+ }, {
13163
+ readonly type: "event";
13164
+ readonly name: "IntegratorAutomaticPayoutSet";
13165
+ readonly inputs: readonly [{
13166
+ readonly name: "poolId";
13167
+ readonly type: "bytes32";
13168
+ readonly indexed: true;
13169
+ readonly internalType: "PoolId";
13170
+ }, {
13171
+ readonly name: "automaticPayout";
13172
+ readonly type: "bool";
13173
+ readonly indexed: false;
13174
+ readonly internalType: "bool";
13175
+ }];
13176
+ readonly anonymous: false;
13177
+ }, {
13178
+ readonly type: "event";
13179
+ readonly name: "IntegratorConversionRatiosSet";
13180
+ readonly inputs: readonly [{
13181
+ readonly name: "poolId";
13182
+ readonly type: "bytes32";
13183
+ readonly indexed: true;
13184
+ readonly internalType: "PoolId";
13185
+ }, {
13186
+ readonly name: "assetFeesToNumeraireRatio";
13187
+ readonly type: "uint32";
13188
+ readonly indexed: false;
13189
+ readonly internalType: "uint32";
13190
+ }, {
13191
+ readonly name: "numeraireFeesToAssetRatio";
13192
+ readonly type: "uint32";
13193
+ readonly indexed: false;
13194
+ readonly internalType: "uint32";
13195
+ }];
13196
+ readonly anonymous: false;
13197
+ }, {
13198
+ readonly type: "event";
13199
+ readonly name: "IntegratorFeeShareSet";
13200
+ readonly inputs: readonly [{
13201
+ readonly name: "poolId";
13202
+ readonly type: "bytes32";
13203
+ readonly indexed: true;
13204
+ readonly internalType: "PoolId";
13205
+ }, {
13206
+ readonly name: "feeShare";
13207
+ readonly type: "uint24";
13208
+ readonly indexed: false;
13209
+ readonly internalType: "uint24";
13210
+ }];
13211
+ readonly anonymous: false;
13212
+ }, {
13213
+ readonly type: "event";
13214
+ readonly name: "IntegratorFeesClaimed";
13215
+ readonly inputs: readonly [{
13216
+ readonly name: "poolId";
13217
+ readonly type: "bytes32";
13218
+ readonly indexed: true;
13219
+ readonly internalType: "PoolId";
13220
+ }, {
13221
+ readonly name: "integrator";
13222
+ readonly type: "address";
13223
+ readonly indexed: true;
13224
+ readonly internalType: "address";
13225
+ }, {
13226
+ readonly name: "to";
13227
+ readonly type: "address";
13228
+ readonly indexed: true;
13229
+ readonly internalType: "address";
13230
+ }, {
13231
+ readonly name: "fees0";
13232
+ readonly type: "uint128";
13233
+ readonly indexed: false;
13234
+ readonly internalType: "uint128";
13235
+ }, {
13236
+ readonly name: "fees1";
13237
+ readonly type: "uint128";
13238
+ readonly indexed: false;
13239
+ readonly internalType: "uint128";
13240
+ }];
13241
+ readonly anonymous: false;
13242
+ }, {
13243
+ readonly type: "event";
13244
+ readonly name: "IntegratorSet";
13245
+ readonly inputs: readonly [{
13246
+ readonly name: "poolId";
13247
+ readonly type: "bytes32";
13248
+ readonly indexed: true;
13249
+ readonly internalType: "PoolId";
13250
+ }, {
13251
+ readonly name: "oldIntegrator";
13252
+ readonly type: "address";
13253
+ readonly indexed: true;
13254
+ readonly internalType: "address";
13255
+ }, {
13256
+ readonly name: "newIntegrator";
13257
+ readonly type: "address";
13258
+ readonly indexed: true;
13259
+ readonly internalType: "address";
13260
+ }];
13261
+ readonly anonymous: false;
13262
+ }, {
13263
+ readonly type: "function";
13264
+ readonly name: "setIntegratorConversionRatios";
13265
+ readonly inputs: readonly [{
13266
+ readonly name: "poolId";
13267
+ readonly type: "bytes32";
13268
+ readonly internalType: "PoolId";
13269
+ }, {
13270
+ readonly name: "assetFeesToNumeraireRatio";
13271
+ readonly type: "uint32";
13272
+ readonly internalType: "uint32";
13273
+ }, {
13274
+ readonly name: "numeraireFeesToAssetRatio";
13275
+ readonly type: "uint32";
13276
+ readonly internalType: "uint32";
13277
+ }];
13278
+ readonly outputs: readonly [];
13279
+ readonly stateMutability: "nonpayable";
13280
+ }, {
13281
+ readonly type: "function";
13282
+ readonly name: "setIntegratorAutomaticPayout";
13283
+ readonly inputs: readonly [{
13284
+ readonly name: "poolId";
13285
+ readonly type: "bytes32";
13286
+ readonly internalType: "PoolId";
13287
+ }, {
13288
+ readonly name: "automaticPayout";
13289
+ readonly type: "bool";
13290
+ readonly internalType: "bool";
13291
+ }];
13292
+ readonly outputs: readonly [];
13293
+ readonly stateMutability: "nonpayable";
13294
+ }, {
13295
+ readonly type: "function";
13296
+ readonly name: "setIntegrator";
13297
+ readonly inputs: readonly [{
13298
+ readonly name: "poolId";
13299
+ readonly type: "bytes32";
13300
+ readonly internalType: "PoolId";
13301
+ }, {
13302
+ readonly name: "newIntegrator";
13303
+ readonly type: "address";
13304
+ readonly internalType: "address";
13305
+ }];
13306
+ readonly outputs: readonly [];
13307
+ readonly stateMutability: "nonpayable";
12564
13308
  }, {
12565
13309
  readonly type: "function";
12566
13310
  readonly name: "setFeeDistribution";
@@ -12603,6 +13347,22 @@ declare const rehypeDopplerHookAbi: readonly [{
12603
13347
  }];
12604
13348
  readonly outputs: readonly [];
12605
13349
  readonly stateMutability: "nonpayable";
13350
+ }, {
13351
+ readonly type: "error";
13352
+ readonly name: "InvalidIntegrator";
13353
+ readonly inputs: readonly [];
13354
+ }, {
13355
+ readonly type: "error";
13356
+ readonly name: "InvalidIntegratorClaimDestination";
13357
+ readonly inputs: readonly [];
13358
+ }, {
13359
+ readonly type: "error";
13360
+ readonly name: "InvalidIntegratorConversionRatio";
13361
+ readonly inputs: readonly [];
13362
+ }, {
13363
+ readonly type: "error";
13364
+ readonly name: "SenderNotIntegrator";
13365
+ readonly inputs: readonly [];
12606
13366
  }, {
12607
13367
  readonly type: "error";
12608
13368
  readonly name: "FeeBeneficiariesNotConfigured";
@@ -12696,266 +13456,228 @@ declare const rehypeDopplerHookAbi: readonly [{
12696
13456
  readonly name: "UnorderedBeneficiaries";
12697
13457
  readonly inputs: readonly [];
12698
13458
  }];
12699
- declare const rehypeDopplerHookMigratorAbi: readonly [{
13459
+ declare const dopplerHookMigratorAbi: readonly [{
12700
13460
  readonly type: "function";
12701
- readonly name: "MIGRATOR";
12702
- readonly inputs: readonly [];
12703
- readonly outputs: readonly [{
12704
- readonly name: "";
12705
- readonly type: "address";
12706
- readonly internalType: "address";
12707
- }];
12708
- readonly stateMutability: "view";
12709
- }, {
12710
- readonly type: "function";
12711
- readonly name: "claimAirlockOwnerFees";
13461
+ readonly name: "claimMigrationRefund";
12712
13462
  readonly inputs: readonly [{
12713
- readonly name: "asset";
13463
+ readonly name: "poolId";
13464
+ readonly type: "bytes32";
13465
+ readonly internalType: "PoolId";
13466
+ }, {
13467
+ readonly name: "to";
12714
13468
  readonly type: "address";
12715
13469
  readonly internalType: "address";
12716
13470
  }];
12717
- readonly outputs: readonly [{
12718
- readonly name: "fees0";
12719
- readonly type: "uint128";
12720
- readonly internalType: "uint128";
12721
- }, {
12722
- readonly name: "fees1";
12723
- readonly type: "uint128";
12724
- readonly internalType: "uint128";
12725
- }];
13471
+ readonly outputs: readonly [];
12726
13472
  readonly stateMutability: "nonpayable";
12727
13473
  }, {
12728
13474
  readonly type: "function";
12729
- readonly name: "collectFees";
13475
+ readonly name: "getAssetData";
12730
13476
  readonly inputs: readonly [{
12731
- readonly name: "asset";
13477
+ readonly name: "token0";
13478
+ readonly type: "address";
13479
+ readonly internalType: "address";
13480
+ }, {
13481
+ readonly name: "token1";
12732
13482
  readonly type: "address";
12733
13483
  readonly internalType: "address";
12734
13484
  }];
12735
13485
  readonly outputs: readonly [{
12736
- readonly name: "fees";
12737
- readonly type: "int256";
12738
- readonly internalType: "BalanceDelta";
12739
- }];
12740
- readonly stateMutability: "nonpayable";
12741
- }, {
12742
- readonly type: "function";
12743
- readonly name: "getFeeDistributionInfo";
12744
- readonly inputs: readonly [{
12745
- readonly name: "poolId";
12746
- readonly type: "bytes32";
12747
- readonly internalType: "PoolId";
12748
- }];
12749
- readonly outputs: readonly [{
12750
- readonly name: "assetFeesToAssetBuybackWad";
12751
- readonly type: "uint256";
12752
- readonly internalType: "uint256";
13486
+ readonly name: "isToken0";
13487
+ readonly type: "bool";
13488
+ readonly internalType: "bool";
12753
13489
  }, {
12754
- readonly name: "assetFeesToNumeraireBuybackWad";
12755
- readonly type: "uint256";
12756
- readonly internalType: "uint256";
13490
+ readonly name: "poolKey";
13491
+ readonly type: "tuple";
13492
+ readonly internalType: "struct PoolKey";
13493
+ readonly components: readonly [{
13494
+ readonly name: "currency0";
13495
+ readonly type: "address";
13496
+ readonly internalType: "Currency";
13497
+ }, {
13498
+ readonly name: "currency1";
13499
+ readonly type: "address";
13500
+ readonly internalType: "Currency";
13501
+ }, {
13502
+ readonly name: "fee";
13503
+ readonly type: "uint24";
13504
+ readonly internalType: "uint24";
13505
+ }, {
13506
+ readonly name: "tickSpacing";
13507
+ readonly type: "int24";
13508
+ readonly internalType: "int24";
13509
+ }, {
13510
+ readonly name: "hooks";
13511
+ readonly type: "address";
13512
+ readonly internalType: "contract IHooks";
13513
+ }];
12757
13514
  }, {
12758
- readonly name: "assetFeesToBeneficiaryWad";
12759
- readonly type: "uint256";
12760
- readonly internalType: "uint256";
13515
+ readonly name: "lockDuration";
13516
+ readonly type: "uint32";
13517
+ readonly internalType: "uint32";
12761
13518
  }, {
12762
- readonly name: "assetFeesToLpWad";
12763
- readonly type: "uint256";
12764
- readonly internalType: "uint256";
13519
+ readonly name: "feeOrInitialDynamicFee";
13520
+ readonly type: "uint24";
13521
+ readonly internalType: "uint24";
12765
13522
  }, {
12766
- readonly name: "numeraireFeesToAssetBuybackWad";
12767
- readonly type: "uint256";
12768
- readonly internalType: "uint256";
13523
+ readonly name: "useDynamicFee";
13524
+ readonly type: "bool";
13525
+ readonly internalType: "bool";
12769
13526
  }, {
12770
- readonly name: "numeraireFeesToNumeraireBuybackWad";
12771
- readonly type: "uint256";
12772
- readonly internalType: "uint256";
13527
+ readonly name: "dopplerHook";
13528
+ readonly type: "address";
13529
+ readonly internalType: "address";
12773
13530
  }, {
12774
- readonly name: "numeraireFeesToBeneficiaryWad";
12775
- readonly type: "uint256";
12776
- readonly internalType: "uint256";
13531
+ readonly name: "onInitializationCalldata";
13532
+ readonly type: "bytes";
13533
+ readonly internalType: "bytes";
12777
13534
  }, {
12778
- readonly name: "numeraireFeesToLpWad";
12779
- readonly type: "uint256";
12780
- readonly internalType: "uint256";
12781
- }];
12782
- readonly stateMutability: "view";
12783
- }, {
12784
- readonly type: "function";
12785
- readonly name: "getFeeRoutingMode";
12786
- readonly inputs: readonly [{
12787
- readonly name: "poolId";
12788
- readonly type: "bytes32";
12789
- readonly internalType: "PoolId";
12790
- }];
12791
- readonly outputs: readonly [{
12792
- readonly name: "";
13535
+ readonly name: "status";
12793
13536
  readonly type: "uint8";
12794
- readonly internalType: "enum FeeRoutingMode";
13537
+ readonly internalType: "enum PoolStatus";
12795
13538
  }];
12796
13539
  readonly stateMutability: "view";
12797
13540
  }, {
12798
13541
  readonly type: "function";
12799
- readonly name: "getHookFees";
13542
+ readonly name: "getMigrationRefund";
12800
13543
  readonly inputs: readonly [{
12801
13544
  readonly name: "poolId";
12802
13545
  readonly type: "bytes32";
12803
13546
  readonly internalType: "PoolId";
12804
13547
  }];
12805
13548
  readonly outputs: readonly [{
12806
- readonly name: "fees0";
12807
- readonly type: "uint128";
12808
- readonly internalType: "uint128";
12809
- }, {
12810
- readonly name: "fees1";
12811
- readonly type: "uint128";
12812
- readonly internalType: "uint128";
12813
- }, {
12814
- readonly name: "beneficiaryFees0";
12815
- readonly type: "uint128";
12816
- readonly internalType: "uint128";
13549
+ readonly name: "recipient";
13550
+ readonly type: "address";
13551
+ readonly internalType: "address";
12817
13552
  }, {
12818
- readonly name: "beneficiaryFees1";
12819
- readonly type: "uint128";
12820
- readonly internalType: "uint128";
13553
+ readonly name: "currency0";
13554
+ readonly type: "address";
13555
+ readonly internalType: "Currency";
12821
13556
  }, {
12822
- readonly name: "airlockOwnerFees0";
12823
- readonly type: "uint128";
12824
- readonly internalType: "uint128";
13557
+ readonly name: "currency1";
13558
+ readonly type: "address";
13559
+ readonly internalType: "Currency";
12825
13560
  }, {
12826
- readonly name: "airlockOwnerFees1";
12827
- readonly type: "uint128";
12828
- readonly internalType: "uint128";
13561
+ readonly name: "amount0";
13562
+ readonly type: "uint256";
13563
+ readonly internalType: "uint256";
12829
13564
  }, {
12830
- readonly name: "customFee";
12831
- readonly type: "uint24";
12832
- readonly internalType: "uint24";
13565
+ readonly name: "amount1";
13566
+ readonly type: "uint256";
13567
+ readonly internalType: "uint256";
12833
13568
  }];
12834
13569
  readonly stateMutability: "view";
12835
13570
  }, {
12836
13571
  readonly type: "function";
12837
- readonly name: "getPoolInfo";
13572
+ readonly name: "getPair";
12838
13573
  readonly inputs: readonly [{
12839
- readonly name: "poolId";
12840
- readonly type: "bytes32";
12841
- readonly internalType: "PoolId";
12842
- }];
12843
- readonly outputs: readonly [{
12844
13574
  readonly name: "asset";
12845
13575
  readonly type: "address";
12846
13576
  readonly internalType: "address";
12847
- }, {
12848
- readonly name: "numeraire";
13577
+ }];
13578
+ readonly outputs: readonly [{
13579
+ readonly name: "token0";
12849
13580
  readonly type: "address";
12850
13581
  readonly internalType: "address";
12851
13582
  }, {
12852
- readonly name: "buybackDst";
13583
+ readonly name: "token1";
12853
13584
  readonly type: "address";
12854
13585
  readonly internalType: "address";
12855
13586
  }];
12856
13587
  readonly stateMutability: "view";
12857
13588
  }, {
12858
13589
  readonly type: "function";
12859
- readonly name: "getPosition";
13590
+ readonly name: "getTotalClaimableMigrationRefund";
12860
13591
  readonly inputs: readonly [{
12861
- readonly name: "poolId";
12862
- readonly type: "bytes32";
12863
- readonly internalType: "PoolId";
13592
+ readonly name: "currency";
13593
+ readonly type: "address";
13594
+ readonly internalType: "Currency";
12864
13595
  }];
12865
13596
  readonly outputs: readonly [{
12866
- readonly name: "tickLower";
12867
- readonly type: "int24";
12868
- readonly internalType: "int24";
12869
- }, {
12870
- readonly name: "tickUpper";
12871
- readonly type: "int24";
12872
- readonly internalType: "int24";
12873
- }, {
12874
- readonly name: "liquidity";
12875
- readonly type: "uint128";
12876
- readonly internalType: "uint128";
12877
- }, {
12878
- readonly name: "salt";
12879
- readonly type: "bytes32";
12880
- readonly internalType: "bytes32";
12881
- }];
12882
- readonly stateMutability: "view";
12883
- }, {
12884
- readonly type: "function";
12885
- readonly name: "poolManager";
12886
- readonly inputs: readonly [];
12887
- readonly outputs: readonly [{
12888
- readonly name: "";
12889
- readonly type: "address";
12890
- readonly internalType: "contract IPoolManager";
13597
+ readonly name: "amount";
13598
+ readonly type: "uint256";
13599
+ readonly internalType: "uint256";
12891
13600
  }];
12892
13601
  readonly stateMutability: "view";
12893
13602
  }, {
12894
13603
  readonly type: "function";
12895
- readonly name: "quoter";
13604
+ readonly name: "locker";
12896
13605
  readonly inputs: readonly [];
12897
13606
  readonly outputs: readonly [{
12898
13607
  readonly name: "";
12899
13608
  readonly type: "address";
12900
- readonly internalType: "contract Quoter";
13609
+ readonly internalType: "contract StreamableFeesLockerV2";
12901
13610
  }];
12902
13611
  readonly stateMutability: "view";
12903
13612
  }, {
12904
- readonly type: "function";
12905
- readonly name: "setFeeDistribution";
13613
+ readonly type: "event";
13614
+ readonly name: "MigrationRefundClaimed";
12906
13615
  readonly inputs: readonly [{
12907
13616
  readonly name: "poolId";
12908
13617
  readonly type: "bytes32";
13618
+ readonly indexed: true;
12909
13619
  readonly internalType: "PoolId";
12910
13620
  }, {
12911
- readonly name: "assetFeesToAssetBuybackWad";
12912
- readonly type: "uint256";
12913
- readonly internalType: "uint256";
12914
- }, {
12915
- readonly name: "assetFeesToNumeraireBuybackWad";
12916
- readonly type: "uint256";
12917
- readonly internalType: "uint256";
13621
+ readonly name: "recipient";
13622
+ readonly type: "address";
13623
+ readonly indexed: true;
13624
+ readonly internalType: "address";
12918
13625
  }, {
12919
- readonly name: "assetFeesToBeneficiaryWad";
12920
- readonly type: "uint256";
12921
- readonly internalType: "uint256";
13626
+ readonly name: "to";
13627
+ readonly type: "address";
13628
+ readonly indexed: true;
13629
+ readonly internalType: "address";
12922
13630
  }, {
12923
- readonly name: "assetFeesToLpWad";
13631
+ readonly name: "amount0";
12924
13632
  readonly type: "uint256";
13633
+ readonly indexed: false;
12925
13634
  readonly internalType: "uint256";
12926
13635
  }, {
12927
- readonly name: "numeraireFeesToAssetBuybackWad";
13636
+ readonly name: "amount1";
12928
13637
  readonly type: "uint256";
13638
+ readonly indexed: false;
12929
13639
  readonly internalType: "uint256";
13640
+ }];
13641
+ readonly anonymous: false;
13642
+ }, {
13643
+ readonly type: "event";
13644
+ readonly name: "MigrationRefundRecorded";
13645
+ readonly inputs: readonly [{
13646
+ readonly name: "poolId";
13647
+ readonly type: "bytes32";
13648
+ readonly indexed: true;
13649
+ readonly internalType: "PoolId";
12930
13650
  }, {
12931
- readonly name: "numeraireFeesToNumeraireBuybackWad";
12932
- readonly type: "uint256";
12933
- readonly internalType: "uint256";
13651
+ readonly name: "recipient";
13652
+ readonly type: "address";
13653
+ readonly indexed: true;
13654
+ readonly internalType: "address";
12934
13655
  }, {
12935
- readonly name: "numeraireFeesToBeneficiaryWad";
13656
+ readonly name: "amount0";
12936
13657
  readonly type: "uint256";
13658
+ readonly indexed: false;
12937
13659
  readonly internalType: "uint256";
12938
13660
  }, {
12939
- readonly name: "numeraireFeesToLpWad";
13661
+ readonly name: "amount1";
12940
13662
  readonly type: "uint256";
13663
+ readonly indexed: false;
12941
13664
  readonly internalType: "uint256";
12942
13665
  }];
12943
- readonly outputs: readonly [];
12944
- readonly stateMutability: "nonpayable";
13666
+ readonly anonymous: false;
12945
13667
  }, {
12946
13668
  readonly type: "error";
12947
- readonly name: "FeeDistributionMustAddUpToWAD";
13669
+ readonly name: "CallerNotRefundRecipient";
12948
13670
  readonly inputs: readonly [];
12949
13671
  }, {
12950
13672
  readonly type: "error";
12951
- readonly name: "SenderNotAirlockOwner";
13673
+ readonly name: "InvalidRefundDestination";
12952
13674
  readonly inputs: readonly [];
12953
13675
  }, {
12954
13676
  readonly type: "error";
12955
- readonly name: "SenderNotAuthorized";
13677
+ readonly name: "NoMigrationRefund";
12956
13678
  readonly inputs: readonly [];
12957
13679
  }];
12958
13680
 
12959
13681
  declare const VERSION = "1.0.0";
12960
13682
 
12961
- export { ADDRESSES, AirlockCreateReceiptError, type AirlockCreateReceiptErrorCode, type AirlockCreateResult, BASIS_POINTS, type BaseAuctionBuilder, type BeneficiaryData, type BuilderDevBuyInput, type BuilderDevBuyVestingInput, Bundler, type BundlerClaimSimulation, type BundlerVestingPosition, CHAIN_IDS, type ChainAddresses, type CreateDynamicAuctionParams, type CreateMulticurveParams, type CreateOpeningAuctionParams, type CreateParams, type CreateStaticAuctionParams, DAY_SECONDS, DEAD_ADDRESS, DECAY_MAX_START_FEE, DEFAULT_AIRLOCK_BENEFICIARY_SHARES, DEFAULT_AUCTION_DURATION, DEFAULT_EPOCH_LENGTH, DEFAULT_LOCK_DURATION, DEFAULT_MULTICURVE_LOWER_TICKS, DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES, DEFAULT_MULTICURVE_NUM_POSITIONS, DEFAULT_MULTICURVE_UPPER_TICKS, DEFAULT_OPENING_AUCTION_DURATION, DEFAULT_OPENING_AUCTION_FEE, DEFAULT_OPENING_AUCTION_INCENTIVE_SHARE_BPS, DEFAULT_OPENING_AUCTION_MIN_ACCEPTABLE_TICK_TOKEN0, DEFAULT_OPENING_AUCTION_MIN_ACCEPTABLE_TICK_TOKEN1, DEFAULT_OPENING_AUCTION_MIN_LIQUIDITY, DEFAULT_OPENING_AUCTION_SHARE_TO_AUCTION_BPS, DEFAULT_OPENING_DOPPLER_DURATION, DEFAULT_OPENING_DOPPLER_EPOCH_LENGTH, DEFAULT_OPENING_DOPPLER_FEE, DEFAULT_OPENING_DOPPLER_NUM_PD_SLUGS, DEFAULT_OPENING_DOPPLER_TICK_SPACING, DEFAULT_PD_SLUGS, DEFAULT_V3_END_TICK, DEFAULT_V3_FEE, DEFAULT_V3_INITIAL_PROPOSAL_THRESHOLD, DEFAULT_V3_INITIAL_SUPPLY, DEFAULT_V3_INITIAL_VOTING_DELAY, DEFAULT_V3_INITIAL_VOTING_PERIOD, DEFAULT_V3_MAX_SHARE_TO_BE_SOLD, DEFAULT_V3_NUM_POSITIONS, DEFAULT_V3_NUM_TOKENS_TO_SELL, DEFAULT_V3_PRE_MINT, DEFAULT_V3_START_TICK, DEFAULT_V3_VESTING_DURATION, DEFAULT_V3_YEARLY_MINT_RATE, DEFAULT_V4_INITIAL_PROPOSAL_THRESHOLD, DEFAULT_V4_INITIAL_VOTING_DELAY, DEFAULT_V4_INITIAL_VOTING_PERIOD, DEFAULT_V4_YEARLY_MINT_RATE, _default$1 as DERC2080Bytecode, _default$2 as DERC20Bytecode, DOPPLER_FLAGS, DOPPLER_MAX_TICK_SPACING, DYNAMIC_FEE_FLAG, Derc20, Derc20V2, _default$6 as DopplerBytecode, DopplerDN404, _default$4 as DopplerDN404BaseSepoliaBytecode, _default$5 as DopplerDN404Bytecode, DopplerERC20V1, type DopplerERC20V1TokenConfig, DopplerFactory, type DopplerHookMigrationConfig, type DopplerHookMigratorConfig, DopplerSDK, type DopplerSDKConfig, DynamicAuction, DynamicAuctionBuilder, type DynamicAuctionConfig, type DynamicAuctionMarketCapConfig, type DynamicMarketCapRange, Eth, FEE_AMOUNT_MASK, FEE_TIERS, FLAG_MASK, type FeeTier, type GovernanceLaunchpad, type GovernanceOption, type HookInfo, INT24_MAX, INT24_MIN, LAUNCHPAD_ENABLED_CHAIN_IDS, type LaunchpadEnabledChainId, type LockablePoolState, LockablePoolStatus, type LockableV3InitializerParams, MAX_SQRT_RATIO, MAX_TICK, MIN_SQRT_RATIO, MIN_TICK, type MarketCapConfig, type MarketCapRange, type MarketCapValidationResult, type MigrationConfig, type MigrationEncoder, type ModuleAddressOverrides, MulticurveBuilder, type MulticurveCreateGasEstimate, type MulticurveCreatePrediction, type MulticurveCreateResult, type MulticurveDecayFeeSchedule, type MulticurveDevBuyConfig, type MulticurveDevBuyResult, type MulticurveDevBuyVestingConfig, MulticurveFees, type MulticurveFeesOptions, type MulticurveInitializerConfig, type MulticurveMarketCapCurvesConfig, type MulticurveMarketCapPreset, type MulticurveMarketCapRangeCurve, type MulticurveMaxTickLiquidityParams, type MulticurvePendingFees, type MulticurveFeesOptions as MulticurvePendingFeesOptions, MulticurvePool, type MulticurvePoolState, type MulticurveTokenPendingFeeBreakdown, type MulticurveTokenPendingFees, NO_OP_ENABLED_CHAIN_IDS, type NoOpEnabledChainId, type NormalizedRehypeDopplerHookInitializerConfig, OPENING_AUCTION_FLAGS, OPENING_AUCTION_PHASE_ACTIVE, OPENING_AUCTION_PHASE_CLOSED, OPENING_AUCTION_PHASE_NOT_STARTED, OPENING_AUCTION_PHASE_SETTLED, OPENING_AUCTION_STATUS_ACTIVE, OPENING_AUCTION_STATUS_DOPPLER_ACTIVE, OPENING_AUCTION_STATUS_EXITED, OPENING_AUCTION_STATUS_UNINITIALIZED, OpeningAuction, type OpeningAuctionAuctionSettledEvent, type OpeningAuctionBidArgs, type OpeningAuctionBidConstraints, type OpeningAuctionBidLookupArgs, OpeningAuctionBidManager, type OpeningAuctionBidManagerConfig, type OpeningAuctionBidPlacedEvent, type OpeningAuctionBidPositionInfo, type OpeningAuctionBidQuote, type OpeningAuctionBidSimulationResult, type OpeningAuctionBidStatus, type OpeningAuctionBidValidationResult, type OpeningAuctionBidWithdrawnEvent, OpeningAuctionBuilder, _default$3 as OpeningAuctionBytecode, type OpeningAuctionClaimAllIncentivesPreview, type OpeningAuctionClaimAllIncentivesResult, type OpeningAuctionClaimIncentivesSimulationResult, type OpeningAuctionCompleteResult, type OpeningAuctionConfig, type OpeningAuctionCreateResult, type OpeningAuctionDopplerConfig, type OpeningAuctionEstimatedClearingTickUpdatedEvent, type OpeningAuctionIncentiveData, type OpeningAuctionIncentivesClaimedEvent, OpeningAuctionLifecycle, type OpeningAuctionModifyLiquidityParams, type OpeningAuctionModifyLiquiditySimulationResult, type OpeningAuctionModuleAddressOverrides, type OpeningAuctionMoveBidArgs, type OpeningAuctionMoveBidResult, type OpeningAuctionMoveBidSimulationResult, type OpeningAuctionOwnerBidInfo, type OpeningAuctionOwnerBidStatus, OpeningAuctionPhase, type OpeningAuctionPhaseChangedEvent, type OpeningAuctionPosition, OpeningAuctionPositionManager, type OpeningAuctionQuoteFromTokenAmountArgs, type OpeningAuctionQuoteFromTokenAmountResult, type OpeningAuctionSettlementData, type OpeningAuctionState, OpeningAuctionStatus, type OpeningAuctionWatchBidPlacedOptions, type OpeningAuctionWatchBidStatusOptions, type OpeningAuctionWatchBidWithdrawnOptions, type OpeningAuctionWatchEstimatedClearingTickOptions, type OpeningAuctionWatchIncentivesClaimedOptions, type OpeningAuctionWatchPhaseChangeOptions, type OpeningAuctionWatchSettlementOptions, type OpeningAuctionWithdrawFullBidArgs, type OpeningAuctionWithdrawFullBidResult, type OpeningAuctionWithdrawFullBidSimulationResult, type ParseAirlockCreateReceiptParams, type PoolInfo, type PrepareCreateMulticurveOptions, type PreparedCreateTransactionClient, type PreparedMulticurveCreate, type PreparedMulticurveDevBuy, type PreparedMulticurveIdentity, type PreparedMulticurveTransaction, type ProceedsSplitConfig, Q96, type QuoteResult, Quoter, RehypeDopplerHook, type RehypeDopplerHookConfig, RehypeDopplerHookInitializer, type RehypeDopplerHookInitializerConfig, RehypeDopplerHookMigrator, type RehypeDopplerHookMigratorConfig, type RehypeFeeDistributionInfo, RehypeFeeRoutingMode, type RehypePendingFees, type ResolvedOpeningAuctionDopplerConfig, SECONDS_PER_DAY, SECONDS_PER_YEAR, SUPPORTED_CHAIN_IDS, type SaleConfig, type SimulatedMulticurveCreate, _default as StateViewBytecode, StaticAuction, StaticAuctionBuilder, type StaticAuctionMarketCapConfig, type StaticPoolConfig, type StreamableFeesConfig, type SupportedChain, type SupportedChainId, type SupportedChainKey, type SupportedPublicClient, TICK_SPACINGS, type TokenAddressHookConfig, type TokenAddressMiningParams, type TokenAddressMiningResult, type TokenConfig, type TokenVariant, TopUpDistributor, type TopUpParams, type TopUpSimulationResult, type TopUpTransaction, type UniswapV2MigrationConfig, type UniswapV2SplitMigrationConfig, type UniswapV4MigrationConfig, type UniswapV4SplitMigrationConfig, V3_FEE_TIERS, type V4PoolKey, V4_MAX_FEE, VALID_FEE_TIERS, VERSION, type VerifiedMulticurveCreate, type VestingAllocationConfig, type VestingConfig, type VestingScheduleConfig, WAD, ZERO_ADDRESS, airlockAbi, applyTickOffsets, bundlerAbi, calculateFDV, calculateGamma, calculateMarketCap, calculateTickRange, calculateTokensToSell, computeOptimalGamma, computePoolId, createAirlockBeneficiary, decayMulticurveInitializerHookAbi, decodeBalanceDelta, derc20Abi, derc20V2Abi, dopplerDN404Abi, dopplerERC20V1Abi, dopplerHookAbi, dopplerHookInitializerAbi, dopplerLensAbi, encodeRehypeDopplerHookInitializerData, encodeRehypeDopplerHookMigratorCalldata, estimatePriceAtEpoch, estimateSlippage, feeClaimsInitializerAbi, feesManagerAbi, formatTickAsPrice, getAddresses, getAirlockBeneficiary, getAirlockOwner, getAmount0ForLiquidity, getAmount1ForLiquidity, getLiquidityForAmount0, getLiquidityForAmount1, getMaxLiquiditySafeMulticurveTickUpper, getMaxTickRounded, getNearestUsableTick, getSqrtRatioAtTick, getTickAtSqrtRatio, isLaunchpadEnabledChain, isNoOpEnabledChain, isSupportedChainId, isToken0Expected, isToken1, lockableUniswapV3InitializerAbi, marketCapToTickForMulticurve, marketCapToTicksForDynamicAuction, marketCapToTicksForMulticurve, marketCapToTicksForStaticAuction, marketCapToTokenPrice, mineTokenAddress, normalizeBeneficiaries, normalizePoolKey, normalizeRehypeDopplerHookInitializerConfig, openingAuctionAbi, openingAuctionInitializerAbi, openingAuctionPositionManagerAbi, parseAirlockCreateReceipt, poolManagerAbi, priceToSqrtPriceX96, priceToTick, quoterV2Abi, ratioToTick, rehypeDopplerHookAbi, rehypeDopplerHookInitializerAbi, rehypeDopplerHookMigratorAbi, resolveGasEstimate, sortBeneficiaries, sqrtPriceX96ToPrice, streamableFeesLockerAbi, streamableFeesLockerV2Abi, tickToMarketCap, tickToPrice, tokenPriceToRatio, topUpDistributorAbi, uniswapV2Router02Abi, uniswapV3InitializerAbi, uniswapV3PoolAbi, uniswapV4InitializerAbi, v2MigratorAbi, v3MigratorAbi, v4MigratorAbi, v4MulticurveInitializerAbi, v4MulticurveMigratorAbi, v4QuoterAbi, validateMarketCapParameters, verifyPreparedCreateExecution, verifyPreparedCreateReceipt, weth9Abi };
13683
+ export { ADDRESSES, type AirlockAssetData, AirlockCreateReceiptError, type AirlockCreateReceiptErrorCode, type AirlockCreateResult, BASIS_POINTS, type BaseAuctionBuilder, type BeneficiaryData, type BuilderDevBuyInput, type BuilderDevBuyVestingInput, Bundler, type BundlerClaimSimulation, type BundlerVestingPosition, CHAIN_IDS, type ChainAddresses, type CreateDynamicAuctionParams, type CreateMulticurveParams, type CreateOpeningAuctionParams, type CreateParams, type CreateStaticAuctionParams, DAY_SECONDS, DEAD_ADDRESS, DECAY_MAX_START_FEE, DEFAULT_AIRLOCK_BENEFICIARY_SHARES, DEFAULT_AUCTION_DURATION, DEFAULT_EPOCH_LENGTH, DEFAULT_LOCK_DURATION, DEFAULT_MULTICURVE_LOWER_TICKS, DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES, DEFAULT_MULTICURVE_NUM_POSITIONS, DEFAULT_MULTICURVE_UPPER_TICKS, DEFAULT_OPENING_AUCTION_DURATION, DEFAULT_OPENING_AUCTION_FEE, DEFAULT_OPENING_AUCTION_INCENTIVE_SHARE_BPS, DEFAULT_OPENING_AUCTION_MIN_ACCEPTABLE_TICK_TOKEN0, DEFAULT_OPENING_AUCTION_MIN_ACCEPTABLE_TICK_TOKEN1, DEFAULT_OPENING_AUCTION_MIN_LIQUIDITY, DEFAULT_OPENING_AUCTION_SHARE_TO_AUCTION_BPS, DEFAULT_OPENING_DOPPLER_DURATION, DEFAULT_OPENING_DOPPLER_EPOCH_LENGTH, DEFAULT_OPENING_DOPPLER_FEE, DEFAULT_OPENING_DOPPLER_NUM_PD_SLUGS, DEFAULT_OPENING_DOPPLER_TICK_SPACING, DEFAULT_PD_SLUGS, DEFAULT_V3_END_TICK, DEFAULT_V3_FEE, DEFAULT_V3_INITIAL_PROPOSAL_THRESHOLD, DEFAULT_V3_INITIAL_SUPPLY, DEFAULT_V3_INITIAL_VOTING_DELAY, DEFAULT_V3_INITIAL_VOTING_PERIOD, DEFAULT_V3_MAX_SHARE_TO_BE_SOLD, DEFAULT_V3_NUM_POSITIONS, DEFAULT_V3_NUM_TOKENS_TO_SELL, DEFAULT_V3_PRE_MINT, DEFAULT_V3_START_TICK, DEFAULT_V3_VESTING_DURATION, DEFAULT_V3_YEARLY_MINT_RATE, DEFAULT_V4_INITIAL_PROPOSAL_THRESHOLD, DEFAULT_V4_INITIAL_VOTING_DELAY, DEFAULT_V4_INITIAL_VOTING_PERIOD, DEFAULT_V4_YEARLY_MINT_RATE, _default$1 as DERC2080Bytecode, _default$2 as DERC20Bytecode, DOPPLER_FLAGS, DOPPLER_MAX_TICK_SPACING, DYNAMIC_FEE_FLAG, Derc20, Derc20V2, _default$6 as DopplerBytecode, DopplerDN404, _default$4 as DopplerDN404BaseSepoliaBytecode, _default$5 as DopplerDN404Bytecode, DopplerERC20V1, type DopplerERC20V1TokenConfig, DopplerFactory, type DopplerHookMigrationConfig, DopplerHookMigrator, type DopplerHookMigratorConfig, DopplerSDK, type DopplerSDKConfig, DynamicAuction, DynamicAuctionBuilder, type DynamicAuctionConfig, type DynamicAuctionMarketCapConfig, type DynamicMarketCapRange, Eth, FEE_AMOUNT_MASK, FEE_TIERS, FLAG_MASK, type FeeTier, type GovernanceLaunchpad, type GovernanceOption, type HookInfo, INT24_MAX, INT24_MIN, LAUNCHPAD_ENABLED_CHAIN_IDS, type LaunchpadEnabledChainId, type LockablePoolState, LockablePoolStatus, type LockableV3InitializerParams, MAX_SQRT_RATIO, MAX_TICK, MIN_SQRT_RATIO, MIN_TICK, type MarketCapConfig, type MarketCapRange, type MarketCapValidationResult, type MigrationConfig, type MigrationEncoder, type MigrationRefund, type ModuleAddressOverrides, MulticurveBuilder, type MulticurveCreateGasEstimate, type MulticurveCreatePrediction, type MulticurveCreateResult, type MulticurveDecayFeeSchedule, type MulticurveDevBuyConfig, type MulticurveDevBuyResult, type MulticurveDevBuyVestingConfig, MulticurveFees, type MulticurveFeesOptions, type MulticurveInitializerConfig, type MulticurveMarketCapCurvesConfig, type MulticurveMarketCapPreset, type MulticurveMarketCapRangeCurve, type MulticurveMaxTickLiquidityParams, type MulticurvePendingFees, type MulticurveFeesOptions as MulticurvePendingFeesOptions, MulticurvePool, type MulticurvePoolState, type MulticurveTokenPendingFeeBreakdown, type MulticurveTokenPendingFees, NO_OP_ENABLED_CHAIN_IDS, type NoOpEnabledChainId, type NormalizedRehypeDopplerHookInitializerConfig, OPENING_AUCTION_FLAGS, OPENING_AUCTION_PHASE_ACTIVE, OPENING_AUCTION_PHASE_CLOSED, OPENING_AUCTION_PHASE_NOT_STARTED, OPENING_AUCTION_PHASE_SETTLED, OPENING_AUCTION_STATUS_ACTIVE, OPENING_AUCTION_STATUS_DOPPLER_ACTIVE, OPENING_AUCTION_STATUS_EXITED, OPENING_AUCTION_STATUS_UNINITIALIZED, OpeningAuction, type OpeningAuctionAuctionSettledEvent, type OpeningAuctionBidArgs, type OpeningAuctionBidConstraints, type OpeningAuctionBidLookupArgs, OpeningAuctionBidManager, type OpeningAuctionBidManagerConfig, type OpeningAuctionBidPlacedEvent, type OpeningAuctionBidPositionInfo, type OpeningAuctionBidQuote, type OpeningAuctionBidSimulationResult, type OpeningAuctionBidStatus, type OpeningAuctionBidValidationResult, type OpeningAuctionBidWithdrawnEvent, OpeningAuctionBuilder, _default$3 as OpeningAuctionBytecode, type OpeningAuctionClaimAllIncentivesPreview, type OpeningAuctionClaimAllIncentivesResult, type OpeningAuctionClaimIncentivesSimulationResult, type OpeningAuctionCompleteResult, type OpeningAuctionConfig, type OpeningAuctionCreateResult, type OpeningAuctionDopplerConfig, type OpeningAuctionEstimatedClearingTickUpdatedEvent, type OpeningAuctionIncentiveData, type OpeningAuctionIncentivesClaimedEvent, OpeningAuctionLifecycle, type OpeningAuctionModifyLiquidityParams, type OpeningAuctionModifyLiquiditySimulationResult, type OpeningAuctionModuleAddressOverrides, type OpeningAuctionMoveBidArgs, type OpeningAuctionMoveBidResult, type OpeningAuctionMoveBidSimulationResult, type OpeningAuctionOwnerBidInfo, type OpeningAuctionOwnerBidStatus, OpeningAuctionPhase, type OpeningAuctionPhaseChangedEvent, type OpeningAuctionPosition, OpeningAuctionPositionManager, type OpeningAuctionQuoteFromTokenAmountArgs, type OpeningAuctionQuoteFromTokenAmountResult, type OpeningAuctionSettlementData, type OpeningAuctionState, OpeningAuctionStatus, type OpeningAuctionWatchBidPlacedOptions, type OpeningAuctionWatchBidStatusOptions, type OpeningAuctionWatchBidWithdrawnOptions, type OpeningAuctionWatchEstimatedClearingTickOptions, type OpeningAuctionWatchIncentivesClaimedOptions, type OpeningAuctionWatchPhaseChangeOptions, type OpeningAuctionWatchSettlementOptions, type OpeningAuctionWithdrawFullBidArgs, type OpeningAuctionWithdrawFullBidResult, type OpeningAuctionWithdrawFullBidSimulationResult, type ParseAirlockCreateReceiptParams, type PoolInfo, type PrepareCreateMulticurveOptions, type PreparedCreateTransactionClient, type PreparedMulticurveCreate, type PreparedMulticurveDevBuy, type PreparedMulticurveIdentity, type PreparedMulticurveTransaction, type ProceedsSplitConfig, Q96, type QuoteResult, Quoter, RehypeDopplerHook, type RehypeDopplerHookConfig, RehypeDopplerHookInitializer, type RehypeDopplerHookInitializerConfig, type RehypeFeeDistributionInfo, RehypeFeeRoutingMode, type RehypeIntegratorFeeConfig, type RehypeIntegratorFees, type RehypeIntegratorRoutingConfig, type RehypePendingFees, type ResolvedOpeningAuctionDopplerConfig, SECONDS_PER_DAY, SECONDS_PER_YEAR, SUPPORTED_CHAIN_IDS, type SaleConfig, type SimulatedMulticurveCreate, _default as StateViewBytecode, StaticAuction, StaticAuctionBuilder, type StaticAuctionMarketCapConfig, type StaticPoolConfig, type StreamableFeesConfig, StreamableFeesLockerV2, type StreamableFeesStream, type SupportedChain, type SupportedChainId, type SupportedChainKey, type SupportedPublicClient, TICK_SPACINGS, type TokenAddressHookConfig, type TokenAddressMiningParams, type TokenAddressMiningResult, type TokenConfig, type TokenVariant, type UniswapV2MigrationConfig, type UniswapV2SplitMigrationConfig, type UniswapV4MigrationConfig, type UniswapV4SplitMigrationConfig, V3_FEE_TIERS, type V4PoolKey, V4_MAX_FEE, VALID_FEE_TIERS, VERSION, type VerifiedMulticurveCreate, type VestingAllocationConfig, type VestingConfig, type VestingScheduleConfig, WAD, ZERO_ADDRESS, airlockAbi, applyTickOffsets, bundlerAbi, calculateFDV, calculateGamma, calculateMarketCap, calculateTickRange, calculateTokensToSell, computeOptimalGamma, computePoolId, createAirlockBeneficiary, decayMulticurveInitializerHookAbi, decodeBalanceDelta, derc20Abi, derc20V2Abi, dopplerDN404Abi, dopplerERC20V1Abi, dopplerHookAbi, dopplerHookInitializerAbi, dopplerHookMigratorAbi, dopplerLensAbi, encodeRehypeDopplerHookInitializerData, estimatePriceAtEpoch, estimateSlippage, feeClaimsInitializerAbi, feesManagerAbi, formatTickAsPrice, getAddresses, getAirlockBeneficiary, getAirlockOwner, getAmount0ForLiquidity, getAmount1ForLiquidity, getLiquidityForAmount0, getLiquidityForAmount1, getMaxLiquiditySafeMulticurveTickUpper, getMaxTickRounded, getNearestUsableTick, getSqrtRatioAtTick, getTickAtSqrtRatio, isLaunchpadEnabledChain, isNoOpEnabledChain, isSupportedChainId, isToken0Expected, isToken1, lockableUniswapV3InitializerAbi, marketCapToTickForMulticurve, marketCapToTicksForDynamicAuction, marketCapToTicksForMulticurve, marketCapToTicksForStaticAuction, marketCapToTokenPrice, mineTokenAddress, normalizeBeneficiaries, normalizePoolKey, normalizeRehypeDopplerHookInitializerConfig, openingAuctionAbi, openingAuctionInitializerAbi, openingAuctionPositionManagerAbi, parseAirlockCreateReceipt, poolManagerAbi, priceToSqrtPriceX96, priceToTick, quoterV2Abi, ratioToTick, rehypeDopplerHookAbi, rehypeDopplerHookInitializerAbi, resolveGasEstimate, sortBeneficiaries, sqrtPriceX96ToPrice, streamableFeesLockerAbi, streamableFeesLockerV2Abi, tickToMarketCap, tickToPrice, tokenPriceToRatio, uniswapV2Router02Abi, uniswapV3InitializerAbi, uniswapV3PoolAbi, uniswapV4InitializerAbi, v2MigratorAbi, v3MigratorAbi, v4MigratorAbi, v4MulticurveInitializerAbi, v4MulticurveMigratorAbi, v4QuoterAbi, validateMarketCapParameters, verifyPreparedCreateExecution, verifyPreparedCreateReceipt, weth9Abi };