@whetstone-research/doppler-sdk 1.0.32 → 1.0.34
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.
- package/README.md +56 -17
- package/dist/evm/index.cjs +672 -175
- package/dist/evm/index.cjs.map +1 -1
- package/dist/evm/index.d.cts +272 -17
- package/dist/evm/index.d.ts +272 -17
- package/dist/evm/index.js +670 -176
- package/dist/evm/index.js.map +1 -1
- package/package.json +1 -1
package/dist/evm/index.cjs
CHANGED
|
@@ -24,10 +24,10 @@ var GENERATED_DOPPLER_DEPLOYMENTS = {
|
|
|
24
24
|
LockableUniswapV3Initializer: "0xA2E0435225D52a8B950122752978007D758056d7",
|
|
25
25
|
NoOpGovernanceFactory: "0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638",
|
|
26
26
|
NoOpMigrator: "0x233A71A7bB928b1357A1Ebf454298320989Ca5B5",
|
|
27
|
-
Quoter: "
|
|
27
|
+
Quoter: "0x076838736F90Cd1d30dED756A3B89E576BE972F8",
|
|
28
28
|
RehypeDopplerHook: "0x3Ec4798A9B11e8243A8Db99687f7A23597B96623",
|
|
29
|
-
RehypeDopplerHookInitializer: "
|
|
30
|
-
RehypeDopplerHookMigrator: "
|
|
29
|
+
RehypeDopplerHookInitializer: "0x9982538F41f2ae29ddb9d3D9307010052984FDbB",
|
|
30
|
+
RehypeDopplerHookMigrator: "0x975f9d1939cf6e4A3c9D99f9d41e6411CF4dA23b",
|
|
31
31
|
StreamableFeesLocker: "0xe24FC2F7191e850e2D4514aBb4d39305b1871eC6",
|
|
32
32
|
StreamableFeesLockerV2: "0xcE3212e6536F33cD6fbFEE265224131353Ca3D47",
|
|
33
33
|
TimelockFactory: "0x9fd40af2baAfAF03513f091444e821c0d5b06ea0",
|
|
@@ -77,10 +77,10 @@ var GENERATED_DOPPLER_DEPLOYMENTS = {
|
|
|
77
77
|
LockableUniswapV3Initializer: "0x8b4C7DB9121FC885689C0A50D5a1429F15AEc2a0",
|
|
78
78
|
NoOpGovernanceFactory: "0xb4deE32EB70A5E55f3D2d861F49Fb3D79f7a14d9",
|
|
79
79
|
NoOpMigrator: "0x5F3bA43D44375286296Cb85F1EA2EBfa25dde731",
|
|
80
|
-
Quoter: "
|
|
80
|
+
Quoter: "0x076838736F90Cd1d30dED756A3B89E576BE972F8",
|
|
81
81
|
RehypeDopplerHook: "0x97cAD5684FB7Cc2bEd9a9b5eBfba67138F4f2503",
|
|
82
|
-
RehypeDopplerHookInitializer: "
|
|
83
|
-
RehypeDopplerHookMigrator: "
|
|
82
|
+
RehypeDopplerHookInitializer: "0x9982538F41f2ae29ddb9d3D9307010052984FDbB",
|
|
83
|
+
RehypeDopplerHookMigrator: "0x975f9d1939cf6e4A3c9D99f9d41e6411CF4dA23b",
|
|
84
84
|
StreamableFeesLocker: "0x63f8C8F9beFaab2FaCD7Ece0b0242f78B920Ee90",
|
|
85
85
|
StreamableFeesLockerV2: "0xcE3212e6536F33cD6fbFEE265224131353Ca3D47",
|
|
86
86
|
TimelockFactory: "0x44610355465c1F5914C8B8ea0E7c887CC67459b2",
|
|
@@ -142,9 +142,9 @@ var GENERATED_DOPPLER_DEPLOYMENTS = {
|
|
|
142
142
|
LockableUniswapV3Initializer: "0xde8886A0019Ea060B8378Ee37b8A23b8117F29A3",
|
|
143
143
|
NoOpGovernanceFactory: "0x85f37f74Ef2478A770318bc810177a9835911aD7",
|
|
144
144
|
NoOpMigrator: "0xba2F330EDb16cD8056f5988d8CE19BbC63475A0e",
|
|
145
|
-
Quoter: "
|
|
146
|
-
RehypeDopplerHookInitializer: "
|
|
147
|
-
RehypeDopplerHookMigrator: "
|
|
145
|
+
Quoter: "0x076838736F90Cd1d30dED756A3B89E576BE972F8",
|
|
146
|
+
RehypeDopplerHookInitializer: "0x9982538F41f2ae29ddb9d3D9307010052984FDbB",
|
|
147
|
+
RehypeDopplerHookMigrator: "0x975f9d1939cf6e4A3c9D99f9d41e6411CF4dA23b",
|
|
148
148
|
StreamableFeesLockerV2: "0x7B6147AC3F615bdb764e7EbD5f517dac1AD163B8",
|
|
149
149
|
SwapRestrictorDopplerHook: "0xC16c826F75338A5Ea626f94f8992191B4ce5abA2",
|
|
150
150
|
TimelockFactory: "0x6076fdDFCaC0dD980e0350dfF5239feC3f86C578",
|
|
@@ -173,6 +173,7 @@ var GENERATED_DOPPLER_DEPLOYMENTS = {
|
|
|
173
173
|
CloneDERC20VotesV2Factory: "0x16F5ACB64F4FA17296E942C51d3395aDC318f9e1",
|
|
174
174
|
DecayMulticurveInitializer: "0xD59cE43E53D69F190E15d9822Fb4540dCcc91178",
|
|
175
175
|
DecayMulticurveInitializerHook: "0xbB7784A4d481184283Ed89619A3e3ed143e1Adc0",
|
|
176
|
+
DN404Factory: "0x37A9Fa204a4d3A429FDED7e3469ab076C854Bc9d",
|
|
176
177
|
DopplerCreateXDeployer: "0x103004E50Bed65DFBa30dD9c264B6BdF5e529B83",
|
|
177
178
|
DopplerDeployer: "0xb35469ee64A87Afd19B31615094fE3962d73e421",
|
|
178
179
|
DopplerERC20V1: "0xDB7B520bb5C3a2C5d4871198081911359f93be87",
|
|
@@ -185,10 +186,10 @@ var GENERATED_DOPPLER_DEPLOYMENTS = {
|
|
|
185
186
|
LockableUniswapV3Initializer: "0xE0dC4012AC9C868F09c6e4b20d66ED46D6F258d0",
|
|
186
187
|
NoOpGovernanceFactory: "0xe7dfbd5b0A2C3B4464653A9beCdc489229eF090E",
|
|
187
188
|
NoOpMigrator: "0x6ddfED58D238Ca3195E49d8ac3d4cEa6386E5C33",
|
|
188
|
-
Quoter: "
|
|
189
|
+
Quoter: "0x076838736F90Cd1d30dED756A3B89E576BE972F8",
|
|
189
190
|
RehypeDopplerHook: "0x3Ec4798A9B11e8243A8Db99687f7A23597B96623",
|
|
190
|
-
RehypeDopplerHookInitializer: "
|
|
191
|
-
RehypeDopplerHookMigrator: "
|
|
191
|
+
RehypeDopplerHookInitializer: "0x9982538F41f2ae29ddb9d3D9307010052984FDbB",
|
|
192
|
+
RehypeDopplerHookMigrator: "0x975f9d1939cf6e4A3c9D99f9d41e6411CF4dA23b",
|
|
192
193
|
StreamableFeesLocker: "0x0A00775D71a42cd33D62780003035e7F5b47bD3A",
|
|
193
194
|
StreamableFeesLockerV2: "0xcE3212e6536F33cD6fbFEE265224131353Ca3D47",
|
|
194
195
|
TimelockFactory: "0xa636bD5F9179E80e9EdB371Ed90956fA5ebdCB33",
|
|
@@ -519,6 +520,7 @@ var ADDRESSES = {
|
|
|
519
520
|
v2MigratorSplit: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MAINNET].UniswapV2MigratorSplit,
|
|
520
521
|
v4Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MAINNET].UniswapV4Migrator,
|
|
521
522
|
v4MigratorSplit: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MAINNET].UniswapV4MigratorSplit,
|
|
523
|
+
v4MigratorHook: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MAINNET].UniswapV4MigratorHook,
|
|
522
524
|
dopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MAINNET].DopplerHookMigrator,
|
|
523
525
|
rehypeDopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MAINNET].RehypeDopplerHookMigrator,
|
|
524
526
|
noOpMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MAINNET].NoOpMigrator,
|
|
@@ -596,6 +598,7 @@ var ADDRESSES = {
|
|
|
596
598
|
CHAIN_IDS.BASE,
|
|
597
599
|
"DopplerERC20V1"
|
|
598
600
|
),
|
|
601
|
+
doppler404Factory: getGeneratedAddress(CHAIN_IDS.BASE, "DN404Factory"),
|
|
599
602
|
v3Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV3Initializer,
|
|
600
603
|
v3Quoter: "0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",
|
|
601
604
|
lockableV3Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].LockableUniswapV3Initializer,
|
|
@@ -612,13 +615,16 @@ var ADDRESSES = {
|
|
|
612
615
|
dopplerLens: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].DopplerLensQuoter,
|
|
613
616
|
dopplerDeployer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].DopplerDeployer,
|
|
614
617
|
poolManager: "0x498581ff718922c3f8e6a244956af099b2652b2b",
|
|
615
|
-
rehypeDopplerHookInitializer:
|
|
616
|
-
|
|
617
|
-
|
|
618
|
+
rehypeDopplerHookInitializer: getRehypeDopplerHookInitializerAddress(
|
|
619
|
+
CHAIN_IDS.BASE
|
|
620
|
+
),
|
|
621
|
+
rehypeDopplerHook: getRehypeDopplerHookInitializerAddress(CHAIN_IDS.BASE),
|
|
622
|
+
dopplerHookInitializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].DopplerHookInitializer,
|
|
618
623
|
v2Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV2Migrator,
|
|
619
624
|
v2MigratorSplit: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV2MigratorSplit,
|
|
620
625
|
v4Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4Migrator,
|
|
621
626
|
v4MigratorSplit: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4MigratorSplit,
|
|
627
|
+
v4MigratorHook: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4MigratorHook,
|
|
622
628
|
dopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].DopplerHookMigrator,
|
|
623
629
|
rehypeDopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].RehypeDopplerHookMigrator,
|
|
624
630
|
noOpMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].NoOpMigrator,
|
|
@@ -659,7 +665,7 @@ var ADDRESSES = {
|
|
|
659
665
|
CHAIN_IDS.BASE_SEPOLIA,
|
|
660
666
|
"DopplerERC20V1"
|
|
661
667
|
),
|
|
662
|
-
doppler404Factory:
|
|
668
|
+
doppler404Factory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].DN404Factory,
|
|
663
669
|
v3Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV3Initializer,
|
|
664
670
|
v3Quoter: "0xC5290058841028F1614F3A6F0F5816cAd0df5E27",
|
|
665
671
|
lockableV3Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].LockableUniswapV3Initializer,
|
|
@@ -691,7 +697,7 @@ var ADDRESSES = {
|
|
|
691
697
|
v4MigratorHook: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV4MigratorHook,
|
|
692
698
|
noOpMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].NoOpMigrator,
|
|
693
699
|
governanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].GovernanceFactory,
|
|
694
|
-
noOpGovernanceFactory:
|
|
700
|
+
noOpGovernanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].NoOpGovernanceFactory,
|
|
695
701
|
launchpadGovernanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].LaunchpadGovernanceFactory,
|
|
696
702
|
streamableFeesLocker: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].StreamableFeesLocker,
|
|
697
703
|
streamableFeesLockerV2: getGeneratedAddress(
|
|
@@ -703,7 +709,7 @@ var ADDRESSES = {
|
|
|
703
709
|
univ2Router02: "0x1689E7B1F10000AE47eBfE339a4f69dECd19F602",
|
|
704
710
|
uniswapV2Factory: "0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e",
|
|
705
711
|
permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
|
|
706
|
-
bundler:
|
|
712
|
+
bundler: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].Bundler,
|
|
707
713
|
weth: "0x4200000000000000000000000000000000000006",
|
|
708
714
|
uniswapV3Factory: "0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24",
|
|
709
715
|
uniswapV4Quoter: "0x4A6513c898fe1B2d0E78d3b0e0A4a151589B1cBa"
|
|
@@ -907,12 +913,13 @@ var ADDRESSES = {
|
|
|
907
913
|
lockableV3Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].LockableUniswapV3Initializer,
|
|
908
914
|
v4Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].UniswapV4Initializer,
|
|
909
915
|
dopplerLens: ZERO_ADDRESS,
|
|
910
|
-
dopplerDeployer:
|
|
916
|
+
dopplerDeployer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].DopplerDeployer,
|
|
911
917
|
poolManager: "0x188d586ddcf52439676ca21a244753fa19f9ea8e",
|
|
912
918
|
v2Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].UniswapV2Migrator,
|
|
913
919
|
v2MigratorSplit: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].UniswapV2MigratorSplit,
|
|
914
920
|
v4Migrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].UniswapV4Migrator,
|
|
915
921
|
v4MigratorSplit: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].UniswapV4MigratorSplit,
|
|
922
|
+
v4MigratorHook: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].UniswapV4MigratorHook,
|
|
916
923
|
noOpMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].NoOpMigrator,
|
|
917
924
|
governanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].GovernanceFactory,
|
|
918
925
|
noOpGovernanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].NoOpGovernanceFactory,
|
|
@@ -926,8 +933,7 @@ var ADDRESSES = {
|
|
|
926
933
|
rehypeDopplerHook: getRehypeDopplerHookInitializerAddress(
|
|
927
934
|
CHAIN_IDS.MONAD_MAINNET
|
|
928
935
|
),
|
|
929
|
-
streamableFeesLocker:
|
|
930
|
-
// Not yet deployed
|
|
936
|
+
streamableFeesLocker: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].StreamableFeesLocker,
|
|
931
937
|
streamableFeesLockerV2: getGeneratedAddress(
|
|
932
938
|
CHAIN_IDS.MONAD_MAINNET,
|
|
933
939
|
"StreamableFeesLockerV2"
|
|
@@ -1408,11 +1414,139 @@ var feesManagerAbi = [
|
|
|
1408
1414
|
];
|
|
1409
1415
|
var feeClaimsInitializerAbi = feesManagerAbi;
|
|
1410
1416
|
|
|
1417
|
+
// src/evm/abis/dopplerDN404.ts
|
|
1418
|
+
var dopplerDN404Abi = [
|
|
1419
|
+
{
|
|
1420
|
+
type: "function",
|
|
1421
|
+
name: "name",
|
|
1422
|
+
inputs: [],
|
|
1423
|
+
outputs: [{ name: "", type: "string" }],
|
|
1424
|
+
stateMutability: "view"
|
|
1425
|
+
},
|
|
1426
|
+
{
|
|
1427
|
+
type: "function",
|
|
1428
|
+
name: "symbol",
|
|
1429
|
+
inputs: [],
|
|
1430
|
+
outputs: [{ name: "", type: "string" }],
|
|
1431
|
+
stateMutability: "view"
|
|
1432
|
+
},
|
|
1433
|
+
{
|
|
1434
|
+
type: "function",
|
|
1435
|
+
name: "decimals",
|
|
1436
|
+
inputs: [],
|
|
1437
|
+
outputs: [{ name: "", type: "uint8" }],
|
|
1438
|
+
stateMutability: "view"
|
|
1439
|
+
},
|
|
1440
|
+
{
|
|
1441
|
+
type: "function",
|
|
1442
|
+
name: "totalSupply",
|
|
1443
|
+
inputs: [],
|
|
1444
|
+
outputs: [{ name: "", type: "uint256" }],
|
|
1445
|
+
stateMutability: "view"
|
|
1446
|
+
},
|
|
1447
|
+
{
|
|
1448
|
+
type: "function",
|
|
1449
|
+
name: "balanceOf",
|
|
1450
|
+
inputs: [{ name: "owner", type: "address" }],
|
|
1451
|
+
outputs: [{ name: "", type: "uint256" }],
|
|
1452
|
+
stateMutability: "view"
|
|
1453
|
+
},
|
|
1454
|
+
{
|
|
1455
|
+
type: "function",
|
|
1456
|
+
name: "allowance",
|
|
1457
|
+
inputs: [
|
|
1458
|
+
{ name: "owner", type: "address" },
|
|
1459
|
+
{ name: "spender", type: "address" }
|
|
1460
|
+
],
|
|
1461
|
+
outputs: [{ name: "", type: "uint256" }],
|
|
1462
|
+
stateMutability: "view"
|
|
1463
|
+
},
|
|
1464
|
+
{
|
|
1465
|
+
type: "function",
|
|
1466
|
+
name: "approve",
|
|
1467
|
+
inputs: [
|
|
1468
|
+
{ name: "spender", type: "address" },
|
|
1469
|
+
{ name: "amount", type: "uint256" }
|
|
1470
|
+
],
|
|
1471
|
+
outputs: [{ name: "", type: "bool" }],
|
|
1472
|
+
stateMutability: "nonpayable"
|
|
1473
|
+
},
|
|
1474
|
+
{
|
|
1475
|
+
type: "function",
|
|
1476
|
+
name: "transfer",
|
|
1477
|
+
inputs: [
|
|
1478
|
+
{ name: "to", type: "address" },
|
|
1479
|
+
{ name: "amount", type: "uint256" }
|
|
1480
|
+
],
|
|
1481
|
+
outputs: [{ name: "", type: "bool" }],
|
|
1482
|
+
stateMutability: "nonpayable"
|
|
1483
|
+
},
|
|
1484
|
+
{
|
|
1485
|
+
type: "function",
|
|
1486
|
+
name: "unit",
|
|
1487
|
+
inputs: [],
|
|
1488
|
+
outputs: [{ name: "", type: "uint256" }],
|
|
1489
|
+
stateMutability: "view"
|
|
1490
|
+
},
|
|
1491
|
+
{
|
|
1492
|
+
type: "function",
|
|
1493
|
+
name: "baseURI",
|
|
1494
|
+
inputs: [],
|
|
1495
|
+
outputs: [{ name: "", type: "string" }],
|
|
1496
|
+
stateMutability: "view"
|
|
1497
|
+
},
|
|
1498
|
+
{
|
|
1499
|
+
type: "function",
|
|
1500
|
+
name: "mirrorERC721",
|
|
1501
|
+
inputs: [],
|
|
1502
|
+
outputs: [{ name: "", type: "address" }],
|
|
1503
|
+
stateMutability: "view"
|
|
1504
|
+
},
|
|
1505
|
+
{
|
|
1506
|
+
type: "function",
|
|
1507
|
+
name: "totalNFTSupply",
|
|
1508
|
+
inputs: [],
|
|
1509
|
+
outputs: [{ name: "", type: "uint256" }],
|
|
1510
|
+
stateMutability: "view"
|
|
1511
|
+
},
|
|
1512
|
+
{
|
|
1513
|
+
type: "function",
|
|
1514
|
+
name: "getSkipNFT",
|
|
1515
|
+
inputs: [{ name: "owner", type: "address" }],
|
|
1516
|
+
outputs: [{ name: "", type: "bool" }],
|
|
1517
|
+
stateMutability: "view"
|
|
1518
|
+
},
|
|
1519
|
+
{
|
|
1520
|
+
type: "function",
|
|
1521
|
+
name: "setSkipNFT",
|
|
1522
|
+
inputs: [{ name: "skipNFT", type: "bool" }],
|
|
1523
|
+
outputs: [{ name: "", type: "bool" }],
|
|
1524
|
+
stateMutability: "nonpayable"
|
|
1525
|
+
},
|
|
1526
|
+
{
|
|
1527
|
+
type: "function",
|
|
1528
|
+
name: "pool",
|
|
1529
|
+
inputs: [],
|
|
1530
|
+
outputs: [{ name: "", type: "address" }],
|
|
1531
|
+
stateMutability: "view"
|
|
1532
|
+
},
|
|
1533
|
+
{
|
|
1534
|
+
type: "function",
|
|
1535
|
+
name: "isPoolUnlocked",
|
|
1536
|
+
inputs: [],
|
|
1537
|
+
outputs: [{ name: "", type: "bool" }],
|
|
1538
|
+
stateMutability: "view"
|
|
1539
|
+
}
|
|
1540
|
+
];
|
|
1541
|
+
|
|
1411
1542
|
// src/evm/abis/bytecodes/doppler.ts
|
|
1412
1543
|
var doppler_default = "0x60a06040523461057b57604051601f615c0338819003918201601f19168301916001600160401b0383118484101761057f578084926101c09460405283398101031261057b5780516001600160a01b038116810361057b5760208201516040830151906060840151608085015160a08601519061007e60c088016105b3565b9161008b60e089016105b3565b91610100890151946100a06101208b016105b3565b976101408b0151978815988915810361057b576101608d01516101808e01516001600160a01b0381169e919d91908f0361057b576101a001519062ffffff821680920361057b576080525f6101a06100f6610593565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201525f6101a0610154610593565b6001815260016020820152600160408201528260608201528260808201528260a0820152600160c0820152600160e082015260016101008201528261012082015282610140820152826101608201528261018082015201526120003016151560011480159061056a575b8015610559575b801561054c575b801561053f575b8015610532575b8015610522575b8015610512575b8015610502575b80156104f6575b80156104ea575b80156104de575b80156104d2575b80156104c6575b6104b35762ffffff1960165416176016558442116104a4578660020b8860020b91818303610463575b5050508484101561045457838503858111610440578a60020b5f811380159061042b575b61041c578915610408578982066103f9578c156103eb57600f8d116103eb578484116103dc5761029861029d928b81046017558b6105c1565b610658565b628000008110156103cf5762ffffff19601854169062ffffff1617601855600d55600e55600f5560105560115562ffffff6012549160181b65ffffff0000001692169065ffffffffffff1916171760125560135562ffffff63ff000000601454921560181b1692169063ffffffff1916171760145560155560018060a01b0319600c541617600c5560405161552f90816106d48239608051818181601c01528181610205015281816102a80152818161045c0152818161050c0152818161098701528181610a1e01528181610af501528181610b9201528181610c5a01528181610e8301528181610f3a0152818161103d015281816110b201528181611d2c01528181611de40152818161217801528181613b8301528181613c4d01528181613fe9015281816140f40152614be40152f35b6335278d125f526004601cfd5b638cc99b7b60e01b5f5260045ffd5b6287e39960e61b5f5260045ffd5b6388ac089760e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6312469eb560e11b5f5260045ffd5b5061043a81610298848d6105c1565b1561025f565b634e487b7160e01b5f52601160045260245ffd5b63536a71af60e01b5f5260045ffd5b8061049b575b610483578a9182610491575b5050610483575f808061023b565b6264847d60e41b5f5260045ffd5b1390505f80610475565b50808212610469565b632ca4094f60e21b5f5260045ffd5b630732d7b560e51b5f523060045260245ffd5b50600130161515610212565b5060023016151561020b565b50600430161515610204565b506008301615156101fd565b506010301615156101f6565b50602030161515600114156101ef565b50604030161515600114156101e8565b50608030161515600114156101e1565b50610100301615156101da565b50610200301615156101d3565b50610400301615156101cc565b5061080030161515600114156101c5565b5061100030161515600114156101be565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b604051906101c082016001600160401b0381118382101761057f57604052565b51908160020b820361057b57565b90670de0b6b3a76400008202905f19670de0b6b3a764000084099282808510940393808503948584111561057b571461065157670de0b6b3a764000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b808202905f1983820990828083109203918083039283670de0b6b3a7640000111561057b57146106c2577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac1066993670de0b6b3a7640000910990828211900360ee1b910360121c170290565b5050670de0b6b3a76400009150049056fe608080604052600436101561005b575b50361561001a575f80fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57005b6393c866c160e01b5f5260045ffd5b5f905f3560e01c908163182148ef146111155750806318cb1700146110f357806321d0ee701461109f578063259982e51461102a578063392e53cd1461100857806339518b5e14610feb578063514ea4bf14610f96578063575e24b414610ee357806357d775f814610ec65780636c2bbe7e14610e705780636c47a6c314610e535780636fe7e6eb14610c19578063897479cb14610bfb57806390ebab0a14610bdd57806391dd734614610b5e5780639ce110d714610b355780639f063efc14610ade578063a4dee15514610ab9578063b137392914610a98578063b356603014610a74578063b47b2fb1146109c6578063b6a8b0fa14610970578063c19d93fb14610921578063c4e833ce146107b6578063c70dfb4f14610795578063ce5494bb146104cb578063d0c52e21146104a9578063d65b4cb91461048b578063dc4c90d314610446578063dc98354e14610276578063dcf93f3214610250578063e1b4af69146101ee5763ee4644300361000f57346101eb57806003193601126101eb576020600d54604051908152f35b80fd5b50346101eb57600490610200366112dc565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303925061024491505057630a85dc2960e01b8152fd5b63570c108560e11b8152fd5b50346101eb57806003193601126101eb57602060ff60145460181c166040519015158152f35b50346101eb5760e03660031901126101eb5761029061116b565b5060a03660231901126101eb576102a561128e565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104375760085460ff81166104295760ff19166001176008556001600160a01b03602435908116908181036104255750600980546001600160a01b0319169190911790556044356001600160a01b038116908181036104255750600a80546001600160a01b03191691909117905560643562ffffff8116810361042157600a5461035a612061565b60b81b62ffffff60b81b169162ffffff60a01b9060a01b169065ffffffffffff60a01b19161717600a5560a43560018060a01b03811680910361042157600b80546001600160a01b031916919091179055601e6103b5612061565b60020b136104125760145460020b6103cb612061565b60020b9081156103fe570760020b6103ef57604051636e4c1aa760e11b8152602090f35b6312469eb560e11b8152600490fd5b634e487b7160e01b83526012600452602483fd5b63013840ad60e51b8152600490fd5b5080fd5b8280fd5b62dc149f60e41b8252600482fd5b63570c108560e11b8152600490fd5b50346101eb57806003193601126101eb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101eb57806003193601126101eb576020600f54604051908152f35b50346101eb57806003193601126101eb5760ff60209154166040519015158152f35b50346101eb5760203660031901126101eb576104e561116b565b600c546001600160a01b031633036107865760ff825460081c161580610765575b610756577f000000000000000000000000000000000000000000000000000000000000000061059d8361057561058360405161054181611333565b610549611f3d565b815260018060a01b03871660208201528360408201526001606082015260405192839160208301611f8a565b03601f1981018352826113b4565b604051809381926348c8949160e01b8352600483016112b2565b0381836001600160a01b0387165af190811561074b57916105d785926105e2959460e09791610729575b50602080825183010191016114d8565b600695919554613282565b9161064160018060a01b0360095416926106306105fe856145cf565b948761061f8761061760018060a01b03600a54166145cf565b9a8b94614611565b600a546001600160a01b0316614611565b60a061063a611f3d565b2090614754565b5050600954600a5492976001600160a01b039182169791909316946106879250610678906001600160801b03608086901d16611472565b926001600160801b0316611472565b906001600160801b0381111561071a57506001600160801b03915b506001600160801b0381111561070b57506001600160801b03935b604080516001600160a01b0397909716875260208701919091526001600160801b03608085811d821692880192909252918216606087015285019190915290811660a08401521660c0820152f35b6001600160801b0316936106bd565b6001600160801b0316916106a2565b61074591503d8086833e61073d81836113b4565b810190611fcb565b5f6105c7565b6040513d86823e3d90fd5b63051a2a5560e51b8252600482fd5b50600454600e5411158061077a575b15610506565b50601154421015610774565b638341a67960e01b8252600482fd5b50346101eb57806003193601126101eb57602060125460020b604051908152f35b50346101eb57806003193601126101eb576020816101c0926101a06040516107dd81611362565b82815282858201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201528060405161083b81611362565b60018152838101600181526040820160018152606083018481526080840185815260a0850186815260c08601906001825260e087019260018452610100880194600186526101208901968a88526101408a01988b8a526101a06101608c019b8d8d5261018081019d8e52019c8d526040519d8e916001835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b50346101eb57806003193601126101eb5760c064ffffffffff600154166002546003546004546005549160065493604051958652602086015260408501526060840152608083015260a0820152f35b50346101eb57600490610982366112dc565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330392506102449150505763567d91d160e01b8152fd5b50346101eb576101603660031901126101eb576109e161116b565b5060a03660231901126101eb5760603660c31901126101eb57610144356001600160401b03811161042157610a1a903690600401611195565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610437576040610a5a610124356140d7565b82516001600160e01b03199092168252600f0b6020820152f35b50346101eb57806003193601126101eb57602060125460181c60020b604051908152f35b50346101eb57806003193601126101eb57602060145460020b604051908152f35b50346101eb57806003193601126101eb5760ff6020915460081c166040519015158152f35b50346101eb57600490610af036611225565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330393506102449250505057630a85dc2960e01b8152fd5b50346101eb57806003193601126101eb57600c546040516001600160a01b039091168152602090f35b50346101eb5760203660031901126101eb576004356001600160401b03811161042157610b8f903690600401611195565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361043757610bd9610bcd848461168f565b604051918291826112b2565b0390f35b50346101eb57806003193601126101eb576020601554604051908152f35b50346101eb57806003193601126101eb576020600e54604051908152f35b5034610e4057610100366003190112610e4057610c3461116b565b60a0366023190112610e4057610c4861128e565b5060e435908160020b809203610e40577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169133839003610e445762ffffff6016541691833b15610e4057604051635275965160e01b815292602435906001600160a01b038216808303610e40576004860152604435946001600160a01b038616808703610e4057602482015260643562ffffff8116808203610e40576044830152608435918260020b808403610e4057606482015260a435936001600160a01b038516808603610e4057608483015260a48201525f8160c481838d5af18015610e3557610e07575b509488979461057594610da6948a9994610dc29960405196610d5a88611333565b60405194610d678661137e565b85526020850152604084015260608301526080820152835260018060a01b03166020830152604082015285606082015260405192839160208301611f8a565b6040519485809481936348c8949160e01b8352600483016112b2565b03925af18015610dfc57610de3575b604051636fe7e6eb60e01b8152602090f35b610df6913d8091833e61073d81836113b4565b5f610dd1565b6040513d84823e3d90fd5b610da69399509461057594610e245f610dc299949a959b986113b4565b5f9a94509450949791969095610d39565b6040513d5f823e3d90fd5b5f80fd5b63570c108560e11b5f5260045ffd5b34610e40575f366003190112610e40576020601154604051908152f35b34610e4057610e7e36611225565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039350610e449250505057630a85dc2960e01b5f5260045ffd5b34610e40575f366003190112610e40576020601354604051908152f35b34610e4057610140366003190112610e4057610efd61116b565b5060a0366023190112610e405760603660c3190112610e4057610124356001600160401b038111610e4057610f36903690600401611195565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610e4457606062ffffff610f766120bd565b906040939293519363ffffffff60e01b1684526020840152166040820152f35b34610e40576020366003190112610e40576004355f526007602052608060405f205460ff604051918060020b83528060181c60020b6020840152600180851b038160301c16604084015260b01c166060820152f35b34610e40575f366003190112610e40576020601054604051908152f35b34610e40575f366003190112610e4057602060ff600854166040519015158152f35b34610e4057611038366111c2565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039050610e4457306001600160a01b03909116036110905760405163259982e560e01b8152602090f35b636d1ed89b60e01b5f5260045ffd5b34610e40576110ad366111c2565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039150610e44905057630a85dc2960e01b5f5260045ffd5b34610e40575f366003190112610e4057602062ffffff60165416604051908152f35b34610e40575f366003190112610e4057600954600a54600b546001600160a01b039283168452818316602085015260a082811c62ffffff16604086015260b89290921c60020b6060850152909116608083015290f35b600435906001600160a01b0382168203610e4057565b35906001600160a01b0382168203610e4057565b9181601f84011215610e40578235916001600160401b038311610e405760208381860195010111610e4057565b90610160600319830112610e40576004356001600160a01b0381168103610e40579160a0602319820112610e4057602491608060c319830112610e405760c49161014435906001600160401b038211610e405761122191600401611195565b9091565b906101a0600319830112610e40576004356001600160a01b0381168103610e40579160a0602319820112610e4057602491608060c319830112610e405760c4916101443591610164359161018435906001600160401b038211610e405761122191600401611195565b60c435906001600160a01b0382168203610e4057565b35908160020b8203610e4057565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b610120600319820112610e40576004356001600160a01b0381168103610e40579160a0602319830112610e405760249160c4359160e4359161010435906001600160401b038211610e405761122191600401611195565b608081019081106001600160401b0382111761134e57604052565b634e487b7160e01b5f52604160045260245ffd5b6101c081019081106001600160401b0382111761134e57604052565b60a081019081106001600160401b0382111761134e57604052565b606081019081106001600160401b0382111761134e57604052565b601f909101601f19168101906001600160401b0382119082101761134e57604052565b359062ffffff82168203610e4057565b91908260a0910312610e40576040516113ff8161137e565b608061144b81839561141081611181565b855261141e60208201611181565b602086015261142f604082016113d7565b6040860152611440606082016112a4565b606086015201611181565b910152565b600201908160021161145e57565b634e487b7160e01b5f52601160045260245ffd5b9190820180921161145e57565b9060405161148c81611333565b9154600281810b8452601882901c900b6020840152603081901c6001600160801b0316604084015260b01c60ff166060830152565b600f0b60016001607f1b0319811461145e575f0390565b9190826040910312610e40576020825192015190565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b9061016092611542836060936114ee565b805160020b60a0840152602081015160020b60c0840152604081015160e084015201516101008201526101406101208201525f6101408201520190565b6001600160a01b03918216815291166020820152604081019190915260600190565b9190820391821161145e57565b6001600160401b03811161134e5760051b60200190565b906115cf826115ae565b6115dc60405191826113b4565b82815280926115ed601f19916115ae565b01905f5b8281106115fd57505050565b60209060405161160c81611333565b5f81525f838201525f60408201525f6060820152828285010152016115f1565b8051156116395760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156116395760400190565b80518210156116395760209160051b010190565b9081549060181b65ffffff000000169065ffffff0000001916179055565b919082015f61010084830312610e40576116b5604051926116af84611333565b856113e7565b938483526116c560a08201611181565b80602085015260e06116d960c084016112a4565b92836040870152013580151594858203610e40576060015260018060a01b03169060020b92611c4e5750600164ffffffffff1981541617600155606084019261173c845160020b61173761172c85614ef6565b60125460020b61209f565b614f2e565b6014549060ff8260181c165f14611c3b5761175a9160020b9061209f565b945b61176584613378565b61176e85613378565b956040519561177c87611399565b808752602087018181526118d8604089019a888c526118d0600d54956117a06136a5565b956118088c6118036117fa6117db6117d26117c96117c46117bf61480d565b614ea2565b6136c3565b60135490614e80565b60105490614ebe565b6117f46117eb60105480936115a1565b916011546115a1565b90615033565b600d5490615113565b6136d4565b8c929083811315611c2c5761186b9293508981115f14611c275750885b928d60185460020b835160020b8082135f14611c1f5750905b50818a5260145460181c60ff1615611c105761185f9150895160020b61209f565b905b5160020b90614f2e565b60020b60208701525b855160020b966020870197885160020b14155f14611c055760ff60145460181c166118c5836118a68a5160020b613378565b8b516001600160801b039491906118bf9060020b613378565b91614fcc565b1660408801526115a1565b90848861374b565b996118eb6118e68c51611450565b6115c5565b985160020b915160020b9060018060801b03905116906040519261190e84611333565b8352602083015260408201526001606082015261192a8861162c565b526119348761162c565b50805160020b915160020b90604060018060801b0391015116906040519261195b84611333565b835260208301526040820152600260608201526119778661164d565b526119818561164d565b50835b8751811015611a3457611997818961165d565b515160020b60206119a8838b61165d565b51015160020b6001600160801b0360406119c2858d61165d565b51015116836003019182600311611a2057611a1992600195949260ff92604051946119ec86611333565b855260208501526040840152166060820152611a0783611450565b90611a12828b61165d565b528861165d565b5001611984565b634e487b7160e01b89526011600452602489fd5b50611a429293969585613a82565b611a4b8261162c565b516001855260076020526040852090805162ffffff198354169062ffffff16178255611a7e602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b16179055611ac58261164d565b516002855260076020526040852090805162ffffff198354169062ffffff16178255611af8602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b16179055835b8351811015611be557611b53611b4d82611450565b8461165d565b518160030180600311611bd1579060019291875260076020526040872090805162ffffff198354169062ffffff16178255611b95602082015160020b83611671565b604081015190825490606060ff60b01b91015160b01b16918560301b8660b01b039060301b16908560301b8660b81b0319161717905501611b38565b634e487b7160e01b87526011600452602487fd5b509291505060405190611bf96020836113b4565b81525f36602083013790565b8b60408801526115a1565b611c199161335b565b90611861565b90509061183e565b611825565b50508087526020870152611874565b611c489160020b9061335b565b9461175c565b925f9250829160015b6015546003018060031161145e57811015611ddc57805f526007602052611c8060405f2061147f565b60408101516001600160801b031680611c9e575b5050600101611c57565b611d279160409160ff6014999598995460181c1691825f14611dce57805160020b925b15611db95760ff6060611ce3611cde602085015160020b95613263565b6114c1565b9201511691845193611cf485611333565b60020b845260020b6020840152600f0b838301526060820152815180938192632d35e7ed60e11b83528c60048401611531565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610e3557600192611d7e925f905f92611d86575b50611d789192613282565b96613282565b93905f611c94565b611d789250611dac915060403d8111611db2575b611da481836113b4565b8101906114d8565b91611d6d565b503d611d9a565b60ff6060611ce3611cde845160020b95613263565b602081015160020b92611cc1565b5091929390947f000000000000000000000000000000000000000000000000000000000000000091611e1860018060a01b0383511630856132c4565b926020830192611e3260018060a01b0385511630846132c4565b945f8113611ed6575b5050848413611e6a575b5050505050604051916020830152604082015260408152611e676060826113b4565b90565b91516001600160a01b039283169216823b15611ed25791611ea6939185809460405196879586948593630b0d9c0960e01b85526004850161157f565b03925af18015610dfc57611ebd575b808080611e45565b611ec88280926113b4565b6101eb5780611eb5565b8480fd5b90516001600160a01b0383811692911690823b15610e4057611f1392855f809460405196879586948593630b0d9c0960e01b85526004850161157f565b03925af18015610e3557611f28575b80611e3b565b611f359195505f906113b4565b5f935f611f22565b60405190611f4a8261137e565b6009546001600160a01b039081168352600a54808216602085015260a081901c62ffffff16604085015260b81c60020b6060840152600b54166080830152565b91909160e06060610100830194611fa28482516114ee565b60208101516001600160a01b031660a0850152604081015160020b60c085015201511515910152565b602081830312610e40578051906001600160401b038211610e40570181601f82011215610e40578051906001600160401b03821161134e576040519261201b601f8401601f1916602001856113b4565b82845260208383010111610e4057815f9260208093018386015e8301015290565b600f91820b910b019060016001607f1b0319821260016001607f1b0383131761145e57565b6084358060020b8103610e405790565b60020b627fffff19811461145e575f0390565b60020b60010190627fffff8213627fffff1983121761145e57565b9060020b9060020b0190627fffff198212627fffff83131761145e57565b5f80549160ff8360081c16613254576010544210613245576120dd61480d565b64ffffffffff600154161015613234575f9260115442101580613229575b612e7e575b509060ff5f5416155f14612e105761211661480d565b9060015461212b64ffffffffff8216846115a1565b64ffffffffff1990911664ffffffffff84161760015560035460025f526007602052946121645f8051602061550383398151915261147f565b9461219c60a06121753660246113e7565b207f0000000000000000000000000000000000000000000000000000000000000000614754565b505050946121a986614841565b608435978860020b90818a14159283610e40578a6121c691614f2e565b905f916121d68d600554906136d4565b5f198a0194908a861161145e575f8f966121f26121f791613a72565b614fac565b80971115911280612e09575b15612cac575050506122249192505160020b9161221e615332565b90614ebe565b955b60018111612c165750612262908a60055561225c670de0b6b3a764000061224f89600254614ebe565b9880612c0d575b05614ef6565b9061209f565b90612c09578761227191614f2e565b9061228d8861173761172c670de0b6b3a76400005f9905614ef6565b9760145460ff8160181c165f14612bf6576122ab9060020b8a61209f565b955b8960ff60145460181c16809b811580612be6575b15612baa57505050612ba6576122d7908361209f565b945b6122e283613378565b986122ec87613378565b908b15612b9d5715612aea5760016123058c8c84615420565b91818060a01b038c1690828060a01b0316038060ff1d9081011891818060801b031661233183826150ca565b928260601b9109151516015b975b60155461234e6118e682611450565b9060018a52600760205261236460408b2061147f565b61236d8361162c565b526123778261162c565b5060028a52600760205261238d60408b2061147f565b6123968361164d565b526123a08261164d565b50895b818110612aa25750506123c1906123bb3660246113e7565b90614afa565b5060145460181c60ff1699908a156129fc576044356001600160a01b03811681036129f857612402906123f3906145cf565b6001600160801b038316611472565b6006549061241a906001600160801b038316906115a1565b916024356001600160a01b03811681036129f4579e6118e69f936124728e969461245d8c9561244b89879a506145cf565b9060801d6001600160801b0316611472565b60809190911d6001600160801b0316906115a1565b9e5b61247f3660246113e7565b906124886136a5565b958361299457505050505060020b80825260208201528260408201525b604081018051909c6125ab916125a391612591916001600160801b031615612985575b6124d33660246113e7565b906124fa6124df6136a5565b976118036117fa6117db6117d26117c96117c46117bf61480d565b88808213156129715750818111156129685750612555815b928d606060185460020b920191825160020b8082135f146129605750905b60020b90818b5260ff60145460181c165f14611c105761185f91508a5160020b61209f565b60020b60208801525b865160020b976020880198895160020b14155f14612956575060ff60145460181c166118c5836118a68a5160020b613378565b878561259e3660246113e7565b61374b565b9e8f51611450565b9b6020825160020b92015160020b9060018060801b0390511690604051926125d284611333565b835260208301526040820152600160608201526125ee8c61162c565b526125f88b61162c565b50805160020b915160020b90604060018060801b0391015116906040519261261f84611333565b8352602083015260408201526002606082015261263b8a61164d565b526126458961164d565b50875b8b518110156126f9578b602061266d83612662818561165d565b515160020b9361165d565b51015160020b8d60406126878560018060801b039361165d565b510151168360030191826003116126e5579260ff6126de938f9360019796604051946126b286611333565b8552602085015260408401521660608201526126d76126d085611450565b809361165d565b528c61165d565b5001612648565b634e487b7160e01b8d52601160045260248dfd5b50612719919293949596999a979a6127123660246113e7565b918a613a82565b6127228761162c565b5160018a52600760205260408a2090805162ffffff198354169062ffffff16178255612755602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b1617905561279c8761164d565b5160028a52600760205260408a2090805162ffffff198354169062ffffff161782556127cf602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b16179055885b6015548110156128fc578651811061285957806003018060031161284557906001918b5260076020528a60408120555b0161280f565b634e487b7160e01b8b52601160045260248bfd5b61286b61286582611450565b8961165d565b5181600301806003116128e85790600192918c52600760205260408c2090805162ffffff198354169062ffffff161782556128ad602082015160020b83611671565b604081015190825490606060ff60b01b91015160b01b16918560301b8660b01b039060301b16908560301b8660b81b0319161717905561283f565b634e487b7160e01b8c52601160045260248cfd5b5090919295507f223157ec47d7bd04fa3ed10c0a8adb38faf97b51ec856a777425a2e39253bd739450608093966040519360020b845260020b602084015260020b60408301526060820152a15b6315d7892d60e21b929190565b60408801526115a1565b905090612530565b61255590612512565b9250508b60020b808852602088015261255e565b602085015160020b85526124c8565b838111156129ad5750506129a89450614ca4565b6124a5565b92509350506129e991508c60020b84528960020b60208501526129cf8d613378565b6001600160801b0393906129e28c613378565b9115614fcc565b1660408201526124a5565b8c80fd5b8a80fd5b6024356001600160a01b03811681036129f857612a2f90612a1c906145cf565b608083901d6001600160801b0316611472565b60065490612a4b90608083901d6001600160801b0316906115a1565b916044356001600160a01b03811681036129f4579e6118e69f93612a9c8e9694612a8b8c95612a7c89879a506145cf565b906001600160801b0316611472565b6001600160801b03909116906115a1565b9e612474565b80600301806003116128e857906001918c526007602052612ae360408d20612ad2612acc84611450565b9161147f565b612adc828861165d565b528561165d565b50016123a3565b612af58b8b836153dd565b8a826001600160a01b0380831690821611612b92575b506001600160a01b038316918215612b865760601b600160601b600160e01b0316926001600160a01b03828116929190910316612b4982828661527d565b938215612b725709612b63575b808206151591040161233d565b906001019081612b56575b8880fd5b634e487b7160e01b8c52601260045260248cfd5b62bfc9218b526004601cfd5b8c935090505f612b0b565b5050869761233f565b8680fd5b91989392509081612bd5575b50612bc2575b506122d9565b612bce9196508361335b565b945f612bbc565b905060020b8460020b13155f612bb6565b508060020b8760020b12156122c1565b612c039060020b8a61335b565b956122ad565b8580fd5b89600255612256565b612c1f906136ec565b5f198101818111611a20576121f2612c3691613a72565b808c10612c44575b50612226565b612c59612c52989298615332565b918d615033565b670de0b6b3a76400000390670de0b6b3a76400008211612c9857612c8a612c919392670de0b6b3a764000092614e80565b0590614ebe565b955f612c3e565b634e487b7160e01b8a52601160045260248afd5b9192909115612d0957505083612b6e578a612cc691614f2e565b91612cd2612c52615332565b670de0b6b3a76400000390670de0b6b3a76400008211612c9857612c8a612d039392670de0b6b3a764000092614e80565b95612226565b93509350975050612d2f60125460020b670de0b6b3a76400006002540560020b9061209f565b60185460020b5f9381135f14612dfe57905b6014549260ff8460181c1692835f14612deb57612d61915160020b61209f565b915b829985610e4057612db394612d7b8e612dab96614f2e565b938315612dd857612d8f9160020b9061209f565b915b15612dc3578160020b8160020b135f14612dbc575061335b565b60020b614e5c565b955f9695612226565b905061335b565b8160020b8160020b125f14612dbc575061335b565b612de59160020b9061335b565b91612d91565b612df8915160020b61335b565b91612d63565b505f92508990612d41565b5080612203565b915060ff60145460181c168080612e67575b8115612e47575b50612e38576240000090612949565b63016ccb0760e01b5f5260045ffd5b90501580612e56575b5f612e29565b5060c4358015158114612e50575f80fd5b905060c43580159081158103610e40575090612e22565b600454600e54111561321a5760019060ff1916175f557fe8775e4a58023f399765c3455b45eebcc45ad6b99607a1163f02e1318430970c5f80a1612ed3612ecb60a06121753660246113e7565b505050614841565b601554612ee26118e682611450565b60015f52600760205290612f025f805160206154e383398151915261147f565b612f0b8361162c565b52612f158261162c565b5060025f526007602052612f355f8051602061550383398151915261147f565b612f3e8361164d565b52612f488261164d565b505f5b8181106131e9575050612f63906123bb3660246113e7565b5060145460181c60ff1690811561319e576044356001600160a01b0381168103610e4057612fce918491612fb8906001600160801b0390612fa3906145cf565b16600f0b60018060801b0392600f0b9061203c565b165b60035490612fc93660246113e7565b614ca4565b90604080519290612fdf81856113b4565b60018452601f19015f5b81811061316f575050805160020b6020820191825160020b90604060018060801b0391015116906040519261301d84611333565b835260208301526040820152600160608201526130398461162c565b526130438361162c565b505160020b901561314657608435928360020b8403610e405761308061307a613075613093948761309898509061209f565b613378565b91613378565b9061308c3660246113e7565b9184613a82565b61162c565b5160015f52600760205260405f2090805162ffffff198354169062ffffff161782556130cb602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b161790555f5b6015546001810180911161145e5781101561313f578061312c600192611450565b5f5260076020525f60408120550161310b565b505f612100565b608435928360020b8403610e405761308061307a6130756130939461225c886130989950612071565b60209060405161317e81611333565b5f81525f838201525f60408201525f606082015282828801015201612fe9565b6024356001600160a01b0381168103610e4057612fce9184916131e3906001600160801b03906131cd906145cf565b6001600160801b039360801d9116600f0b61203c565b16612fba565b80600301908160031161145e576001915f52600760205261321360405f20612ad2612acc84611450565b5001612f4b565b631ed9bcf960e01b5f5260045ffd5b5060ff8116156120fb565b6315d7892d60e21b92505f91508190565b630fc95b4360e01b5f5260045ffd5b636fce6c3960e01b5f5260045ffd5b6001607f1b81101561327557600f0b90565b6335278d125f526004601cfd5b6132a5906132978360801d8260801d01614ed9565b92600f0b90600f0b01614ed9565b60018060801b03169060801b1790565b90816020910312610e40575190565b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa908115610e35575f91613311575090565b90506020813d602011613338575b8161332c602093836113b4565b81010312610e40575190565b3d915061331f565b60020b5f190190627fffff198212627fffff83131761145e57565b600291820b910b0390627fffff198212627fffff83131761145e57565b60020b908160ff1d82810118620d89e881116136925763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b189160028116613676575b6004811661365a575b6008811661363e575b60108116613622575b60208116613606575b604081166135ea575b608081166135ce575b61010081166135b2575b6102008116613596575b610400811661357a575b610800811661355e575b6110008116613542575b6120008116613526575b614000811661350a575b61800081166134ee575b6201000081166134d2575b6202000081166134b7575b62040000811661349c575b6208000016613483575b5f1261347b575b0160201c90565b5f1904613474565b6b048a170391f7dc42444e8fa290910260801c9061346d565b6d2216e584f5fa1ea926041bedfe9890920260801c91613463565b916e5d6af8dedb81196699c329225ee6040260801c91613458565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c9161344d565b916f31be135f97d08fd981231505542fcfa60260801c91613442565b916f70d869a156d2a1b890bb3df62baf32f70260801c91613438565b916fa9f746462d870fdf8a65dc1f90e061e50260801c9161342e565b916fd097f3bdfd2022b8845ad8f792aa58250260801c91613424565b916fe7159475a2c29b7443b29c7fa6e889d90260801c9161341a565b916ff3392b0822b70005940c7a398e4b70f30260801c91613410565b916ff987a7253ac413176f2b074cf7815e540260801c91613406565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c916133fc565b916ffe5dee046a99a2a811c461f1969c30530260801c916133f2565b916fff2ea16466c96a3843ec78b326b528610260801c916133e9565b916fff973b41fa98c081472e6896dfb254c00260801c916133e0565b916fffcb9843d60f6159c9db58835c9266440260801c916133d7565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c916133ce565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c916133c5565b916ffff97272373d413259a46990580e213a0260801c916133bc565b826345c3193d60e11b5f5260045260245ffd5b604051906136b282611399565b5f6040838281528260208201520152565b905f19820191821360011661145e57565b81810392915f13801582851316918412161761145e57565b801561145e575f190190565b60020b9060020b90811561371a57627fffff1981145f1983141661145e570590565b634e487b7160e01b5f52601260045260245ffd5b8181029291811591840414171561145e57565b811561371a570490565b9291909161375761480d565b613764601354809261372e565b906137726010548093611472565b9060115492838311613a46575b61378761480d565b6001810180911161145e576137a49261379f9161372e565b611472565b91808311613a3e575b50808214613a01576137e06137cf6137e6936117f46117eb60105480936115a1565b916117f46117eb60105480936115a1565b906115a1565b936015549384805b6139c0575b5061380a6020613814920194855160020b9061335b565b8560020b906136f8565b918461384b60ff60145460181c1694855f1461398657606085015160020b90818160020b125f1461397f57505b97600d5490615113565b9180613857838561372e565b1161396f575050925b5160020b9461386e856115ae565b9561387c60405197886113b4565b858752601f1961388b876115ae565b015f5b8181106139585750505f905b8682106138ab575050505050505090565b6138b5828961165d565b519060020b905260016138e76138d9846138cf858c61165d565b515160020b61209f565b606086015160020b90614f2e565b9160206138f4828b61165d565b51018360020b9052613939878a613932602061392786613921613917828761165d565b515160020b613378565b9461165d565b51015160020b613378565b9089614fcc565b6040613945838c61165d565b510190838060801b03169052019061389a565b6020906139636136a5565b82828c0101520161388e565b6139799250613741565b92613860565b9050613841565b60608501613997815160020b612071565b60020b8260020b125f146139ad57505b976117fa565b6139bb91505160020b612071565b6139a7565b945f19860186811161145e576139d590615001565b6139de87615001565b036139fb576139ef6139f5916136ec565b956136ec565b806137ee565b946137f3565b505050505050604051613a156020826113b4565b5f81525f805b818110613a2757505090565b602090613a326136a5565b82828601015201613a1b565b91505f6137ad565b83925061377f565b805115158252602080820151908301526040908101516001600160a01b0316910152565b600160ff1b811461145e575f0390565b9392916001600160a01b039182169116818103613f83575b50505f915f5b8451811015613c0d576001600160801b036040613abd838861165d565b51015116613ace575b600101613aa0565b613b7e90604060ff60145460181c16805f14613bf557613aee838961165d565b515160020b905b15613be1576020613b06848a61165d565b51015160020b5b613b2c6001600160801b0384613b23878d61165d565b51015116613263565b60ff6060613b3a878d61165d565b5101511691845193613b4b85611333565b60020b845260020b6020840152600f0b838301526060820152815180948192632d35e7ed60e11b83528860048401611531565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610e3557600192613bc4575b509050613ac6565b613bdb9060403d8111611db257611da481836113b4565b50613bbc565b613beb838961165d565b515160020b613b0d565b6020613c01848a61165d565b51015160020b90613af5565b509190928051905f19820191821161145e57602091613c2b9161165d565b5101516018549060181b65ffffff000000169065ffffff0000001916176018557f0000000000000000000000000000000000000000000000000000000000000000613c8060018060a01b0385511630836132c4565b906020850194613c9a60018060a01b0387511630846132c4565b925f8113613f1c575b848413613ea7575b848112613db4575b5050828212613cc4575b5050509050565b84516001600160a01b039081169591169190823b15613db05760405195632961046560e21b87526004870152838660248183875af195861561074b57849596613d93575b505160209291613d2d916001600160a01b0316908390613d2790613a72565b91614611565b600460405180958193630476982d60e21b83525af1908115613d875750613d58575b80808392613cbd565b613d799060203d602011613d80575b613d7181836113b4565b8101906132b5565b505f613d4f565b503d613d67565b604051903d90823e3d90fd5b84613da29195929394956113b4565b613db057908392915f613d08565b8380fd5b81516001600160a01b03848116939116833b15612ba65760405190632961046560e21b82526004820152868160248183885af18015613e9c57908791613e87575b505080516001600160a01b031680613e73575b50516001600160a01b0316613e6957613e22602091613a72565b915b600460405180948193630476982d60e21b83525af1801561074b57613e4a575b80613cb3565b613e629060203d602011613d8057613d7181836113b4565b505f613e44565b5060208491613e24565b613e819084613d2785613a72565b5f613e08565b81613e91916113b4565b612c0957855f613df5565b6040513d89823e3d90fd5b86516001600160a01b038481169116813b15612ba65785613ee392889283604051809681958294630b0d9c0960e01b845230906004850161157f565b03925af18015613f1157908691613efc575b5050613cab565b81613f06916113b4565b611ed257845f613ef5565b6040513d88823e3d90fd5b81516001600160a01b03908116908416803b15610e4057825f91613f599383604051809681958294630b0d9c0960e01b845230906004850161157f565b03925af18015610e3557613f6e575b50613ca3565b613f7b9195505f906113b4565b5f935f613f68565b60405191613f9083611399565b81108252600160208301526040820152613fc860405191633cf3645360e21b8352613fbe60048401856114ee565b60a4830190613a4e565b6101206101048201525f610124820152602081610144815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610e355761401c575b80613a9a565b6140349060203d602011613d8057613d7181836113b4565b505f614016565b6101409290916140c391906001600160a01b0361405782611181565b1684526001600160a01b0361406e60208301611181565b16602085015262ffffff614084604083016113d7565b166040850152614096606082016112a4565b60020b60608501526001600160a01b03906140b390608001611181565b16608084015260a0830190613a4e565b6101206101008201525f6101208201520190565b60ff5f54166145c1576141299060a06140f13660246113e7565b207f00000000000000000000000000000000000000000000000000000000000000009061411e8183614754565b949290969150614841565b60145460181c60ff1680156145ae5760185460181c60020b8260020b135b60015f5260076020525f805160206154e38339815191525460020b9082156145a257818460020b12905b156144c05750505050906141ea91602060ff60145460181c16805f146144ac576141a561307560185460181c60020b612084565b604051916141b283611399565b151582526001838301526001600160a01b031660408083019190915251633cf3645360e21b815294859182919060246004840161403b565b03815f6001600160a01b0386165af18015610e3557614479575b61420e9250614754565b50509050925b60c435908115158203610e405762ffffff91610fff9182911561447057165b169116620f42408183020491010360ff60145460181c165f146143c757608082901d5f600f82900b1261438257600354614276916001600160801b031690611472565b6003555b600f82900b5f81126143285750505f805160206154c3833981519152916142ad60609260018060801b03166004546115a1565b6004555b600454600f548110156142e4575b600354906040519260020b835260208301526040820152a163b47b2fb160e01b905f90565b61010061ff00195f5416175f557f628a470bfdde264ef77cd19acfbfca22b3e4413adaf5837ec9fbc0043e35793f602061431c61480d565b604051908152a16142bf565b62ffffff919250614338906114c1565b9116620f42400391620f4240831161145e575f805160206154c38339815191529260609261437a91614372916001600160801b031661518e565b600454611472565b6004556142b1565b61438b906114c1565b62ffffff8216620f42400390620f4240821161145e576143bf916143b7916001600160801b031661518e565b6003546115a1565b60035561427a565b90600f81900b5f811261443357506003546143ec906001600160801b03831690611472565b6003555b60801d905f600f83900b1261442557505f805160206154c38339815191529161437a60609260018060801b03166004546115a1565b9061433862ffffff916114c1565b61443c906114c1565b62ffffff8316620f42400390620f4240821161145e57614468916143b7916001600160801b031661518e565b6003556143f0565b600c1c16614233565b6020833d6020116144a4575b81614492602093836113b4565b81010312610e405761420e9250614204565b3d9150614485565b6141a561307560185460181c60020b613340565b97949392976144d3575b50505050614214565b614534949750906144f0602092825f146145995761307590613340565b604051916144fd83611399565b1582526001838301526001600160a01b031660408083019190915251633cf3645360e21b815294859182919060246004840161403b565b03815f6001600160a01b0386165af18015610e3557614566575b6145589250614754565b50509050925f8080806144ca565b6020833d602011614591575b8161457f602093836113b4565b81010312610e4057614558925061454e565b3d9150614572565b61307590612084565b818460020b1390614171565b60185460181c60020b8260020b12614147565b5063b47b2fb160e01b905f90565b6001600160a01b0316806145e257504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115610e35575f91613311575090565b9091906001600160a01b038116908161469f5750505f80808093855af1156146365750565b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b60205f604481949682604095865198899363a9059cbb60e01b855260018060a01b0316600485015260248401525af13d15601f3d116001855114161716928281528260208201520152156146f05750565b6040516390bfb86560e01b8152600481019190915263a9059cbb60e01b602482015260806044820152601f3d01601f191660a0810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b919060209060405182810191825260066040820152604081526147786060826113b4565b519020604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa918215610e35575f926147d9575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b9091506020813d602011614805575b816147f5602093836113b4565b81010312610e405751905f6147b1565b3d91506147e8565b60105480421061483b5761482461482d91426115a1565b60135490613741565b6001810180911161145e5790565b50600190565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b031611614ada57602081901b600160201b600160c01b0316808015610e4057693627a301d71055774c859160ff8260018060801b031060071b83811c60018060401b031060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c821060031b177b01c1818141808140018080c0814100004181408140c0c100414140c160221b6f8421084210842108cc6318c6db6d54be85831c1c601f161a17169160808310155f14614ace5750607e1982011c5b800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c600160321b90800260cd1c169d600160331b9060cc1c169c600160341b9060cb1c169b600160351b9060ca1c169a600160361b9060c91c1699600160371b9060c81c1698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c1690607f190160401b1717171717171717171717171717026fdb2df09e81959a81455e260799a0632f6f028f6481ab7f045a5af012a19d003aa919820160801d60020b910160801d60020b918282145f14614aaa5750905090565b6001600160a01b0390811690614abf84613378565b1611614ac9575090565b905090565b905081607f031b61491e565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b91905f905f905f5b8551811015614c8d576001600160801b036040614b1f838961165d565b51015116614b30575b600101614b02565b9192614bdf604060ff60145460181c16805f14614c7557614b51868a61165d565b515160020b905b15614c61576020614b69878b61165d565b51015160020b5b8960ff6060614b9b8a6139216001600160801b0389614b8f848961165d565b51015116600f0b6114c1565b5101511691845193614bac85611333565b60020b845260020b6020840152600f0b838301526060820152815180938192632d35e7ed60e11b83528760048401611531565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610e3557600192614c36925f905f92614c3e575b50614c309192613282565b95613282565b929050614b28565b614c309250614c5b915060403d8111611db257611da481836113b4565b91614c25565b614c6b868a61165d565b515160020b614b70565b6020614c81878b61165d565b51015160020b90614b58565b505091909250614c9f82600654613282565b600655565b9093929193614cb16136a5565b9480614e0457505f5b6001600160a01b031680614cde5750505060020b80835260208301525f6040830152565b919250614de991614d9090606090614d829060b56001600160881b03821160071b82811c6001600160481b031060061b1782811c64ffffffffff1060051b1782811c62ffffff1060041b17600181811c9290921b9083901c62010000010260121c80830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c908190048111900360301b6001600160a01b0316614841565b940193845160020b90614f2e565b92614dd1602087019460020b9182865260ff60145460181c1692835f14614df15750614dc690865160020b905160020b9061335b565b60020b808852613378565b93516001600160801b0394906129e29060020b613378565b166040830152565b614dff915160020b9061209f565b614dc6565b8160ff60145460181c165f14614e3d5750600654614e3891614e329160801d6001600160801b0316906115a1565b826152fd565b614cba565b600654614e3892614e57916001600160801b0316906115a1565b6152fd565b90670de0b6b3a7640000820291808305670de0b6b3a7640000149015171561145e57565b81810292915f8212600160ff1b82141661145e57818405149015171561145e57565b9060018201915f60018412911290801582169115161761145e57565b9190915f838201938412911290801582169115161761145e57565b9081600f0b918203614ee757565b6393dafdf160e01b5f5260045ffd5b80628000000160181c15614f11576335278d125f526004601cfd5b60020b90565b9060020b9060020b02908160020b91820361145e57565b9060ff60145460181c165f14614f7a575f8260020b125f14614f6d57614f6881614f63614f5e82611e679661335b565b612084565b6136f8565b614f17565b614f6881611e67936136f8565b5f8260020b125f14614f9357614f6881611e67936136f8565b614f6881614f63614fa782611e679661209f565b613340565b6117fa6117db6117d26117c96117c4611e6795614fc761480d565b614ebe565b90929091908015614ffb575f19810190811161145e57915b15614ff257611e6792615420565b611e67926153dd565b91614fe4565b61501c6150136150259261379f61480d565b6013549061372e565b60105490611472565b601154808211614ac9575090565b90670de0b6b3a76400008202905f19670de0b6b3a7640000840992828085109403938085039485841115610e4057146150c357670de0b6b3a764000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b81810291905f1982820991838084109303928084039384600160601b1115610e40571461510a57600160601b910990828211900360a01b910360601c1790565b50505060601c90565b808202905f1983820990828083109203918083039283670de0b6b3a76400001115610e40571461517d577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac1066993670de0b6b3a7640000910990828211900360ee1b910360121c170290565b5050670de0b6b3a764000091500490565b808202905f1983820990828083109203918083039283620f42401115610e4057146151ee577fde8f6cefed634549b62c77574f722e1ac57e23f24d8fd5cb790fb65668c2613993620f4240910990828211900360fa1b910360061c170290565b5050620f424091500490565b90606082901b905f19600160601b840992828085109403938085039485841115610e4057146150c3578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b91818302915f1981850993838086109503948086039586851115610e4057146152f5579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b90615307916151fa565b6001600160a01b03811161532d57600160a01b811015613275576001600160a01b031690565b505f90565b615378612dab615348612ecb60a0612175611f3d565b60145460181c60ff16156153ac5760125460020b808260020b135f146153a557505b60125460181c60020b61335b565b61538a614824601154601054906115a1565b90811561371a57600160ff1b81145f1983141661145e570590565b905061536a565b60125460020b808260020b125f146153a5575061536a565b6001600160a01b03918216908216039190821161145e57565b611e67926154159290916001600160a01b038083169082161161541a575b6001600160a01b039161540e91906153c4565b16906151fa565b615474565b906153fb565b611e6792615415929091906001600160a01b038082169083161161546e575b6154676154586001600160a01b038381169085166150ca565b926001600160a01b03926153c4565b169161527d565b9061543f565b6001600160801b0381169190820361548857565b60405162461bcd60e51b81526020600482015260126024820152716c6971756964697479206f766572666c6f7760701b6044820152606490fdfe27db09392d7d230eb65a11bd84925fb8da90df8a067ca8a4fc2933b4f637262bb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b828b7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96da164736f6c634300081a000a";
|
|
1413
1544
|
|
|
1414
1545
|
// src/evm/abis/bytecodes/dopplerDN404.ts
|
|
1415
|
-
var dopplerDN404_default = "0x608060405234610444576130dd8038038061001981610754565b928339810160c0828203126104445781516001600160401b0381116104445781610044918401610779565b60208301519092906001600160401b0381116104445782610066918301610779565b92604082015190610079606084016107ca565b92610086608082016107ca565b60a08201519095906001600160401b038111610444576100a69201610779565b936001600160a01b03168015610741575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a38051906001600160401b03821161047a5760015490600182811c92168015610737575b602083101461055f5781601f8493116106c9575b50602090601f8311600114610663575f92610658575b50508160011b915f199060031b1c1916176001555b83516001600160401b03811161047a57600254600181811c9116801561064e575b602082101461055f57601f81116105eb575b50602094601f8211600114610588579481929394955f9261057d575b50508160011b915f199060031b1c1916176002555b82516001600160401b03811161047a57600354600181811c91168015610573575b602082101461055f57601f81116104fc575b506020601f821160011461049957819293945f9261048e575b50508160011b915f199060031b1c1916176003555b604051610bec808201906001600160401b0382118383101761047a5760209183916124f183393381520301905ff0801561046f5768a20d6e21d0e5255309546001600160a01b03918216911661046257801561045557630f4599e55f523360205260205f6024601c82855af160015f5114161561044857678da5cb5b6cef16e65f5260208060046018305afa601f3d1160205160601b151016610435575b68a20d6e21d0e5255308805463ffffffff60201b191664010000000017905568a20d6e21d0e525530980546001600160a01b0319169190911790558061030b575b604051611cf190816108008239f35b6001600160a01b03821691821561042857670de0b6b3a7640000820463fffffffe108260601c1761041b5768a20d6e21d0e525530880546001600160a01b031660a084901b6001600160a01b0319169081179091556103ae929061036e836107de565b80546001600160a01b031690911790555f90815283907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082a36107de565b906bff00000000000000000000008254918260581c9060015f527fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff821691161560011b1860011760581b16906bff000000000000000000000019161790555f806102fc565b63e5cfe9575f526004601cfd5b63ea553b345f526004601cfd5b5f806004601c82855af16102bb575b5f80fd5b63d125259c5f526004601cfd5b6339a84a7b5f526004601cfd5b63ead4d2e45f526004601cfd5b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b015190505f80610208565b601f1982169060035f52805f20915f5b8181106104e4575095836001959697106104cc575b505050811b0160035561021d565b01515f1960f88460031b161c191690555f80806104be565b9192602060018192868b0151815501940192016104a9565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610555575b601f0160051c01905b81811061054a57506101ef565b5f815560010161053d565b9091508190610534565b634e487b7160e01b5f52602260045260245ffd5b90607f16906101dd565b015190505f806101a7565b601f1982169560025f52805f20915f5b8881106105d3575083600195969798106105bb575b505050811b016002556101bc565b01515f1960f88460031b161c191690555f80806105ad565b91926020600181928685015181550194019201610598565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c81019160208410610644575b601f0160051c01905b818110610639575061018b565b5f815560010161062c565b9091508190610623565b90607f1690610179565b015190505f80610143565b60015f9081528281209350601f198516905b8181106106b15750908460019594939210610699575b505050811b01600155610158565b01515f1960f88460031b161c191690555f808061068b565b92936020600181928786015181550195019301610675565b60015f529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f840160051c8101916020851061072d575b90601f859493920160051c01905b81811061071f575061012d565b5f8155849350600101610712565b9091508190610704565b91607f1691610119565b631e4fbdf760e01b5f525f60045260245ffd5b6040519190601f01601f191682016001600160401b0381118382101761047a57604052565b81601f82011215610444578051906001600160401b03821161047a576107a8601f8301601f1916602001610754565b928284526020838301011161044457815f9260208093018386015e8301015290565b51906001600160a01b038216820361044457565b6001600160a01b03165f90815268a20d6e21d0e5255313602052604090209056fe6080806040526004361015610667575b50361561065c575f3560e01c63e5eb36c881146103d25763f6916ddd811461038f576362fb246d811461036b57632d8a746e81146103325763c016aa52811461031f5763d10b6e0c811461022f576327ef549581146102145763f5b100ea81146101ef5763e2c7928181146101d45763cb30b46081146100a95763b7a94eb8146100a057633c10b94e5f526004601cfd5b60015f5260205ff35b60206040510160405260606003546100c081610f14565b6100e4575b50605f601f198201915f6020825180930101526020835201601f191690f35b905060405190608082019160a081016040525f8352600a600435935b5f19019360308282060185530492831561011c57600a90610100565b9250608083601f19810192030181526040519283915f9061013c85610f14565b94600181169081156101b45750600114610173575b61016d9450518092825e015f815203601f198101835282610f4c565b816100c5565b905060035f5260205f20935f5b818110610198575061016d9450830160200190610151565b8554602082890181019190915260019096019587955001610180565b602092935061016d96915060ff1916828601528015150284010190610151565b63ffffffff68a20d6e21d0e52553085460801c165f5260205ff35b63ffffffff6102086004356001600160a01b0316610f83565b5460801c165f5260205ff35b6001600160a01b03610227600435611adf565b165f5260205ff35b68a20d6e21d0e5255309546001600160a01b03163303610312576001600160a01b036044358116906024359060043581169061028061027b5f19600160201b861086020160011b611b18565b611a54565b5416928381036102ef575b505f82815268a20d6e21d0e525530c60209081526040822080546001600160a01b0319166001600160a01b03851617905568a20d6e21d0e525530d60601b600885901c018054600160ff90961695861b191693151590941b92909217909255918152f35b6102f99084611097565b5415610305578361028b565b63cfb3b9425f526004601cfd5b63ce5a776b5f526004601cfd5b6001600160a01b03610227600435611ab6565b6004356001600160a01b0361034682611ab6565b161561035e576001600160a01b039061022790611ab6565b63ceea21b65f526004601cfd5b6103856001600160a01b0360243581169060043516611097565b5415155f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633036103125760243515156103c86001600160a01b0360043581169060443516611097565b5560015f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633819003610312576001600160a01b036024358116916004358216916044359160643590911690841561064f5715610642576001600160a01b0361043a61027b600160201b851085025f190160011b611b18565b54168303610635578281036105fc575b5061045482610f83565b9061045e84610f83565b90825460a01c9283670de0b6b3a7640000116105ef576105989361049690670de0b6b3a763ffff19016001600160601b031682611a70565b82546104b89060a01c670de0b6b3a7640000016001600160601b031684611a70565b6104c182611b58565b6105be575b60016104f56104d487610fa4565b926104ef63ffffffff5f1981845460801c1601168092611a93565b83611b3c565b610517816105095f198701851b8501611b18565b9463ffffffff861690611b97565b63ffffffff5f19911601811b019060e08260031c685106b710e87292a98960611b019260051b1682549182821c1863ffffffff16901b1890556105928563ffffffff845460801c169361057363ffffffff600187011682611a93565b61058d61057f83610fa4565b8663ffffffff871691611b97565b611bbf565b90611c4f565b670de0b6b3a76400005f525f80516020611cc583398151915260205fa360015f5260205ff35b6105c782611b76565b5f82815268a20d6e21d0e525530c6020526040902080546001600160a01b03191690556104c6565b63f4d678b85f526004601cfd5b6106068184611097565b5461044a576001600160a01b0361061c83611adf565b1603610628578361044a565b6359c896be5f526004601cfd5b63a11481005f526004601cfd5b6340739bf05f526004601cfd5b63ea553b345f526004601cfd5b3461066357005b5f80fd5b5f3560e01c90816306fdde0314610e1c57508063095ea7b314610d7b57806310aa0ebb14610d5657806316f0115b14610d2e57806318160ddd14610d06578063207d063614610cc357806323b872dd14610c1d578063274e430b14610bf05780632a6a935d14610b7e578063313ce56714610b635780634ef41efc14610b3357806355f804b3146109c757806370a0823114610998578063715018a61461095457806389026538146109275780638da5cb5b1461090057806395d89b4114610826578063a9059cbb146107f5578063dd62ed3e146107c15763f2fde38b1461074f575f61000f565b3461066357602036600319011261066357610768610ee8565b610770611053565b6001600160a01b031680156107ae575f80546001600160a01b03198116831782556001600160a01b0316905f80516020611ca58339815191529080a3005b631e4fbdf760e01b5f525f60045260245ffd5b346106635760403660031901126106635760206107ed6107df610ee8565b6107e7610efe565b90610fed565b604051908152f35b346106635760403660031901126106635761081b610811610ee8565b60243590336110b5565b602060405160018152f35b34610663575f366003190112610663576040515f60025461084681610f14565b80845290600181169081156108dc575060011461087e575b61087a8361086e81850382610f4c565b60405191829182610ebe565b0390f35b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b8082106108c25750909150810160200161086e61085e565b9192600181602092548385880101520191019092916108aa565b60ff191660208086019190915291151560051b8401909101915061086e905061085e565b34610663575f366003190112610663575f546040516001600160a01b039091168152602090f35b34610663575f3660031901126106635761093f611053565b6004805460ff60a01b1916600160a01b179055005b34610663575f3660031901126106635761096c611053565b5f80546001600160a01b0319811682556001600160a01b03165f80516020611ca58339815191528280a3005b346106635760203660031901126106635760206109bb6109b6610ee8565b610f83565b5460a01c604051908152f35b34610663576020366003190112610663576004356001600160401b03811161066357366023820112156106635760048101356001600160401b03811161066357366024828401011161066357610a1b611053565b610a26600354610f14565b601f8111610ad0575b505f601f8211600114610a6b5781925f92610a5d575b50508160011b915f199060031b1c1916176003555f80f35b602492500101358280610a45565b601f1982169260035f5260205f20915f5b858110610ab557508360019510610a99575b505050811b01600355005b01602401355f19600384901b60f8161c19169055828080610a8e565b90926020600181926024878701013581550194019101610a7c565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610b29575b601f0160051c01905b818110610b1e5750610a2f565b5f8155600101610b11565b9091508190610b08565b34610663575f3660031901126106635768a20d6e21d0e5255309546040516001600160a01b039091168152602090f35b34610663575f36600319011261066357602060405160128152f35b3461066357602036600319011261066357600435801580158092036106635761081b91610baa33610f83565b91825460581c915f52337fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff83169216151860011b1860011790611036565b34610663576020366003190112610663576020610c13610c0e610ee8565b610fc5565b6040519015158152f35b3461066357606036600319011261066357610c36610ee8565b610c3e610efe565b60443590610c4c3384611079565b926e22d473030f116ddee9f6b43ac78ba3331480610cac575b15610ca4575f19935b60018501610c82575b5061081b93506110b5565b848411610c97578361081b9503905584610c77565b6313be252b5f526004601cfd5b835493610c6e565b506004610cb882610f83565b5460581c1615610c65565b3461066357602036600319011261066357610cdc610ee8565b610ce4611053565b600480546001600160a81b0319166001600160a01b0392909216919091179055005b34610663575f36600319011261066357602068a20d6e21d0e52553085460a01c604051908152f35b34610663575f366003190112610663576004546040516001600160a01b039091168152602090f35b34610663575f36600319011261066357602060ff60045460a01c166040519015158152f35b3461066357604036600319011261066357610d94610ee8565b6001600160a01b03811690602435908190610dc6906e22d473030f116ddee9f6b43ac78ba38514610dfa575b33611079565b555f52337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa3602060405160018152f35b610e17610e0633610f83565b600460ff825460581c161790611036565b610dc0565b34610663575f366003190112610663575f600154610e3981610f14565b80845290600181169081156108dc5750600114610e605761087a8361086e81850382610f4c565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b808210610ea45750909150810160200161086e61085e565b919260018160209254838588010152019101909291610e8c565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361066357565b602435906001600160a01b038216820361066357565b90600182811c92168015610f42575b6020831014610f2e57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610f23565b601f909101601f19168101906001600160401b03821190821017610f6f57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b03165f90815268a20d6e21d0e52553136020526040902090565b6001600160a01b03165f90815268a20d6e21d0e52553106020526040902090565b90610fcf82610f83565b5460581c916001600284161515931615610fe65750565b3b15159150565b906001600160a01b0381166e22d473030f116ddee9f6b43ac78ba31461101b575b61101791611079565b5490565b600461102683610f83565b5460581c1661100e5750505f1990565b805460ff60581b191660589290921b60ff60581b16919091179055565b5f546001600160a01b0316330361106657565b63118cdaa760e01b5f523360045260245ffd5b9060285260145268a20d6e21d0e525530f5f5260485f20905f602852565b9060285260145268a20d6e21d0e525530b5f5260485f20905f602852565b6004549092906001600160a01b03838116908216149081611a45575b50611a36576001600160a01b0382161561064f576110ee83610f83565b6110f783610f83565b68a20d6e21d0e5255309546001600160a01b031615610642576040519161018083016001600160401b03811184821017610f6f576040525f83525f60208401525f60808401525f60a08401525f60c08401525f60e08401525f6101008401525f6101208401525f6101408401525f610160840152805463ffffffff8160801c16604085015263ffffffff835460801c1660608501528060a01c85116105ef5760a01c8490036111af6001600160601b03821683611a70565b825460a01c8501906111ca6001600160601b03831685611a70565b670de0b6b3a76400006040860151910480820391110284526111eb86610fc5565b156119ee575b506117e9565b68a20d6e21d0e52553085463ffffffff60208501518551928382848360801c1601038060808901528360801b9060801b16908360801b191617928368a20d6e21d0e52553085501916040519260c060a085019180835260051b850101604052836040015260c0830183528261016087015260601c1661012085015283516116c9575b5050602082015161135e575b506101408101518061131a575b506101600151806112c8575b505f9081526001600160a01b0391821692909116905f80516020611cc583398151915290602090a3565b600160206040828060a01b0368a20d6e21d0e5255309541693015192603f19840193849163263c69d6835283601f198301525f825160051b6044019260231901915af19151141615610663575f61129e565b600160205f9281838060a01b0368a20d6e21d0e5255309541691015190815160051b60840190607f19830195869360631901915af19151141615610663575f611292565b9194610160829492015160208360601b91015261137a82610fa4565b9463ffffffff61138a8486611bbf565b1660e086015268a20d6e21d0e5255308549263ffffffff670de0b6b3a76400008560a01c049460201c1684811190811502176101008701526113e460608701519563ffffffff602089015188018060c08b01521690611a93565b63ffffffff68a20d6e21d0e52553085460401c169760015b1561166a575b6101208701515f9063ffffffff8b81169116146114b8576114b363ffffffff60018c01169a60e0641fffffffe0631fffffff8360031c1668a20d6e21d0e525531160601b01549260051b16161c63ffffffff165b8060081c685106b710e87292a98760611b0160018260ff161b801982541617905561148863ffffffff82168a8d611b97565b6114a863ffffffff60e08c01511663ffffffff60018c019b169083611c4f565b6101608a0151611c8e565b6113fc565b949798939291906101008801515b63ffffffff6114da5f19830160011b611b18565b1615611646575f19906001810160081c685106b710e87292a98760611b018054196001830160ff1690811c901b80156115ce575b80611524575b50505089811190811502176114c6565b600180939450811901167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07a1412563212c14164235266736f7425221143267a4524367526767760fc7b2aaaaaaaba69a69a6db6db6db2cb2cb2ce739ce73def7bdeffffffff860260f81c161b60f71c1692831c63d76453e004161a179082685106b710e87292a98760611b03190160081b17910181108a8211175f03175f8080611514565b506001909c9895929c9a9794919a9693965b01805419685106b710e87292a98760611b60088e901c018211811761160857506001906115e0565b9c9295989c9a9194979a969396808d60081c685106b710e87292a98760611b018311611635575b5061150e565b508c1960ff1690811b901c8061162f565b6114b3909a999691929394959a6001810188811190811502176101008b0152611456565b60c0870151860361140257945094925094509468a20d6e21d0e52553085463ffffffff60201b61010084015160201b169163ffffffff60401b9060401b1690600160201b600160601b031916171768a20d6e21d0e5255308555f611285565b602060018860609a9699959a989497981b179101526116e782610fa4565b9461170760408801519563ffffffff895188038060a08c01521690611a93565b60015b156117d0575b5f945f1901946117208688611b3c565b63ffffffff8116905f1982018060021c685106b710e87292a98960611b019060c082549160061b1681811c60018060401b0316901b189055611767826101608c0151611c8e565b600160ff62ffffff8360081c16685106b710e87292a98760611b0192161b19815416905561179481611b58565b61179f575b5061170a565b6117a881611b76565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611799565b60a0870151850361171057935093509390945f80611279565b9194604086979294970151948651976020880151898110818b18028a1899888b108b8a180289146119df578a8918898c10028918908190038a52900360208901526001600160a01b03838116908316146119bd576040805163144027d3818301526001600160a01b03858116606080840191909152908516608083015260a08201528a8918898c1002891860c0820181815260059190911b820160e0908101909352602082015290810181526101408901526118a483610fa4565b956118ae83610fa4565b9763ffffffff6118be8584611bbf565b1660e08b015260608a01519a81811090821802188a019560015b15611977575b878b6119228163ffffffff808f8f9061191660e0928461190d5f9b5f1960408701510190816040880152611b3c565b16988991611b97565b01511691169083611c4f565b6101408c01516020815183815201905261193b81611b58565b611946575b506118d8565b61194f81611b76565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611940565b9960010199868b036118de579398955093986119a492975063ffffffff9196508060608701521683611a93565b6119b863ffffffff60408501511682611a93565b6111f7565b94929786819895939897929710908218021860608401510160608401526111f7565b505094929750945094916111f7565b670de0b6b3a7640000906001600160a01b0388811690881614611a23575b04606084015180820391110260208401525f6111f1565b6040850151855190036060860152611a0c565b632e13674560e01b5f5260045ffd5b60ff915060a01c16155f6110d1565b63ffffffff165f5268a20d6e21d0e525530a60205260405f2090565b80546001600160a01b031660a09290921b6001600160a01b031916919091179055565b805463ffffffff60801b191660809290921b63ffffffff60801b16919091179055565b6001600160a01b0390611ada9061027b90600160201b8110025f190160011b611b18565b541690565b6001600160a01b03611af082611ab6565b161561035e575f90815268a20d6e21d0e525530c60205260409020546001600160a01b031690565b60e08160031c685106b710e87292a98960611b01549160051b161c63ffffffff1690565b60e0908260031c9060601b01549160051b161c63ffffffff1690565b8060081c68a20d6e21d0e525530d60601b01549060ff161c60011690565b60018160081c68a20d6e21d0e525530d60601b019160ff161b198154169055565b60e0909291928360031c9060601b019260051b1682549182821c1863ffffffff16901b189055565b805460601c63ffffffff1692918315611bd6575050565b68a20d6e21d0e5255308805463ffffffff19811663ffffffff918216600101918216908117909255835463ffffffff60601b191660609190911b63ffffffff60601b16179092559092508290611c2b82611a54565b80546001600160a01b0319166001600160a01b039092169190911790551561066357565b5f1901908160021c685106b710e87292a98960611b019260c084549360061b169163ffffffff169060201b1782821c1860018060401b0316901b189055565b9060209082519060081b8284015117815201905256fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa164736f6c634300081a000a608034607857601f610bec38819003918201601f19168301916001600160401b03831184841017607c57808492602094604052833981010312607857516001600160a01b03811690819003607857683602298b8c10b0123180546001600160a01b031916919091179055604051610b5b90816100918239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60808060405260043610156101c5575b5036156101ba575f3560e01c63263c69d681146101405763144027d381146100cf57630f4599e51461004857633c10b94e5f526004601cfd5b683602298b8c10b01231546001600160a01b0316806100ab575b50683602298b8c10b01230546001600160a01b03811661009e576001600160a01b0319163317683602298b8c10b012305560015f908152602090f35b63bf656a465f526004601cfd5b6004356001600160a01b0316036100c2575f610062565b63c59ec47a5f526004601cfd5b683602298b8c10b01230546001600160a01b03163303610133576004356024359060443591602483810193600481013560051b0101925b8381036101165760015f5260205ff35b803582845f80516020610b2f8339815191525f80a4602001610106565b63363cb3125f526004601cfd5b683602298b8c10b01230546001600160a01b0316330361013357600435602481810191600481013560051b0101905b81810361017f5760015f5260205ff35b8035600881901c6001600160581b03169060018116801560609290921c91820291025f80516020610b2f8339815191525f80a460200161016f565b346101c157005b5f80fd5b5f3560e01c90816301ffc9a71461098a5750806306fdde031461091f578063081812fc146108c8578063095ea7b31461084657806318160ddd146107fa57806323b872dd146107e6578063243598791461078f57806342842e0e1461071c5780636352211e146106ed5780636cef16e61461062157806370a08231146105c45780638da5cb5b1461059457806395d89b411461052957806397e5311c146104fd578063a22cb46514610471578063b88d4fde14610387578063c87b56dd1461030b5763e985e9c514610297575f61000f565b346101c15760403660031901126101c1576102b06109fe565b60205f6044601c6102bf610a14565b6102c7610ad0565b604080516362fb246d87526001600160a01b039889168852979092169091525afa601f3d1116156103035760405260205f516040519015158152f35b3d5f823e3d90fd5b346101c15760203660031901126101c15760043561032881610afa565b505f806024601c610337610ad0565b6040519563cb30b46085526020525afa15610303576103839060205f803e60205f51823e805160205f5101602083013e6040815182015f602082015201604052604051918291826109d4565b0390f35b60803660031901126101c15761039b6109fe565b6103a3610a14565b60443591606435916001600160401b0383116101c157366023840112156101c1576004830135926001600160401b0384116101c15736602485830101116101c1576103ef858385610a64565b813b6103f757005b83602094602460a49360405198899763150b7a028952338a8a015260018060a01b0316604089015260608801526080808801528260a08801520160c086013701905f601c8401915af115610463575b5163757a42ff60e11b0161045657005b63d1a57ed65f526004601cfd5b3d15610446573d5f823e3d90fd5b346101c15760403660031901126101c15761048a6109fe565b6024358015158091036101c15760205f6064601c826104a7610ad0565b9660018060a01b0316966040519663f6916ddd8352888752604052336060525af160015f511416156103035750337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206040a3005b346101c1575f3660031901126101c1576020610517610ad0565b6040516001600160a01b039091168152f35b346101c1575f3660031901126101c157610541610ad0565b5f806024601c604051946395d89b418452836020525afa15610303576103839060205f803e60205f51823e805160205f5101602083013e6040815182015f602082015201604052604051918291826109d4565b346101c1575f3660031901126101c157683602298b8c10b01232546040516001600160a01b039091168152602090f35b346101c15760203660031901126101c1576001600160a01b036105e56109fe565b1660205f6044601c6105f5610ad0565b6040519563f5b100ea85528552836040525afa601f3d1116156103035760405260205f51604051908152f35b346101c1575f3660031901126101c157610639610ad0565b683602298b8c10b012325460205f6004601c60018060a01b03851695638da5cb5b84525afa9081601f3d1116600c5160601c0291156106d6575b506001600160a01b031690818103610691575b602060405160018152f35b683602298b8c10b0123280546001600160a01b031916831790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a38080610686565b60601b6001600160601b0319166101c15782610673565b346101c15760203660031901126101c15760206001600160a01b03610713600435610afa565b16604051908152f35b61072536610a2a565b91610731838383610a64565b813b61073957005b60a460209260405194859363150b7a028552338686015260018060a01b0316604085015260608401526080808401525f60a08401525f3681375f601c8401915af115610463575163757a42ff60e11b0161045657005b346101c15760203660031901126101c1576107a8610ad0565b60205f6044601c6040519463c016aa5284526004358552836040525afa601f3d1116156103035760408190525f516001600160a01b03168152602090f35b6107f86107f236610a2a565b91610a64565b005b346101c1575f3660031901126101c157610812610ad0565b60205f6044601c6040519463e2c792818452838552836040525afa601f3d1116156103035760405260205f51604051908152f35b60403660031901126101c15761085a6109fe565b60243590610866610ad0565b9060018060a01b03169060205f6064601c6040519463d10b6e0c8452868552876040523360605234905af1601f3d1116156103035750600c5160601c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a4005b346101c15760203660031901126101c1576108e1610ad0565b60205f6044601c604051946327ef549584526004358552836040525afa601f3d1116156103035760408190525f516001600160a01b03168152602090f35b346101c1575f3660031901126101c157610937610ad0565b5f806024601c604051946306fdde038452836020525afa15610303576103839060205f803e60205f51823e805160205f5101602083013e6040815182015f602082015201604052604051918291826109d4565b346101c15760203660031901126101c157600435906001600160e01b0319821682036101c15760209160e01c635b5e139f8114906301ffc9a76380ac58cd82149114171715158152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101c157565b602435906001600160a01b03821682036101c157565b60609060031901126101c1576004356001600160a01b03811681036101c157906024356001600160a01b03811681036101c1579060443590565b9060846020610a71610ad0565b6040805163e5eb36c881526001600160a01b03968716848201819052959096169086018190526060860187905233608087015294928391601c83019034905af16001825114161561030357505f80516020610b2f8339815191525f80a4565b683602298b8c10b01230546001600160a01b0316908115610aed57565b635b2a47ae5f526004601cfd5b60205f6044601c610b09610ad0565b60405195632d8a746e85528552836040525afa601f3d111615610303576040525f519056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa164736f6c634300081a000a";
|
|
1546
|
+
var dopplerDN404_default = "0x60a0604052346104a85761390680380380610019816107f1565b928339810160e0828203126104a85781516001600160401b0381116104a85781610044918401610816565b60208301519091906001600160401b0381116104a85781610066918501610816565b9060408401519161007960608601610867565b9361008660808701610867565b60a08701519093906001600160401b0381116104a85760c0916100aa918901610816565b960151926001600160a01b031680156107de575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a382156107cf578284066107c0578051906001600160401b0382116104eb5760015490600182811c921680156107b6575b60208310146105d05781601f849311610748575b50602090601f83116001146106e2575f926106d7575b50508160011b915f199060031b1c1916176001555b8051906001600160401b0382116104eb5760025490600182811c921680156106cd575b60208310146105d05781601f84931161065f575b50602090601f83116001146105f9575f926105ee575b50508160011b915f199060031b1c1916176002555b83516001600160401b0381116104eb57600354600181811c911680156105e4575b60208210146105d057601f811161056d575b50602094601f821160011461050a579481929394955f926104ff575b50508160011b915f199060031b1c1916176003555b608052604051610d35808201906001600160401b038211838310176104eb576020918391612bd183393381520301905ff080156104e0576080516001600160a01b0391909116906001600160601b035f1990910110156104d35768a20d6e21d0e5255309546001600160a01b03166104c65780156104b957630f4599e55f523360205260205f6024601c82855af160015f511416156104ac57678da5cb5b6cef16e65f5260208060046018305afa601f3d1160205160601b151016610499575b68a20d6e21d0e5255308805463ffffffff60201b191664010000000017905568a20d6e21d0e525530980546001600160a01b03191691909117905580610375575b604051612334908161089d823960805181818161040b01528181610a4f01528181610c1c015281816114860152818161171c015281816119110152611f920152f35b6001600160a01b03821691821561048c57608051820463fffffffe108260601c1761047f5768a20d6e21d0e525530880546001600160a01b031660a084901b6001600160a01b03191690811790915561041292906103d28361087b565b80546001600160a01b031690911790555f90815283907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082a361087b565b906bff00000000000000000000008254918260581c9060015f527fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff821691161560011b1860011760581b16906bff000000000000000000000019161790555f80610333565b63e5cfe9575f526004601cfd5b63ea553b345f526004601cfd5b5f806004601c82855af16102f2575b5f80fd5b63d125259c5f526004601cfd5b6339a84a7b5f526004601cfd5b63ead4d2e45f526004601cfd5b63997c4ef45f526004601cfd5b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b015190505f8061021d565b601f1982169560035f52805f20915f5b8881106105555750836001959697981061053d575b505050811b01600355610232565b01515f1960f88460031b161c191690555f808061052f565b9192602060018192868501518155019401920161051a565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106105c6575b601f0160051c01905b8181106105bb5750610201565b5f81556001016105ae565b90915081906105a5565b634e487b7160e01b5f52602260045260245ffd5b90607f16906101ef565b015190505f806101b9565b60025f9081528281209350601f198516905b818110610647575090846001959493921061062f575b505050811b016002556101ce565b01515f1960f88460031b161c191690555f8080610621565b9293602060018192878601518155019501930161060b565b60025f529091507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f840160051c810191602085106106c3575b90601f859493920160051c01905b8181106106b557506101a3565b5f81558493506001016106a8565b909150819061069a565b91607f169161018f565b015190505f80610157565b60015f9081528281209350601f198516905b8181106107305750908460019594939210610718575b505050811b0160015561016c565b01515f1960f88460031b161c191690555f808061070a565b929360206001819287860151815501950193016106f4565b60015f529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f840160051c810191602085106107ac575b90601f859493920160051c01905b81811061079e5750610141565b5f8155849350600101610791565b9091508190610783565b91607f169161012d565b633eaf92f760e21b5f5260045ffd5b63265f13bd60e21b5f5260045ffd5b631e4fbdf760e01b5f525f60045260245ffd5b6040519190601f01601f191682016001600160401b038111838210176104eb57604052565b81601f820112156104a8578051906001600160401b0382116104eb57610845601f8301601f19166020016107f1565b92828452602083830101116104a857815f9260208093018386015e8301015290565b51906001600160a01b03821682036104a857565b6001600160a01b03165f90815268a20d6e21d0e5255313602052604090209056fe608080604052600436101561075d575b503615610752575f3560e01c63e5eb36c881146103d25763f6916ddd811461038f576362fb246d811461036b57632d8a746e81146103325763c016aa52811461031f5763d10b6e0c811461022f576327ef549581146102145763f5b100ea81146101ef5763e2c7928181146101d45763cb30b46081146100a95763b7a94eb8146100a057633c10b94e5f526004601cfd5b60015f5260205ff35b60206040510160405260606003546100c0816113a1565b6100e4575b50605f601f198201915f6020825180930101526020835201601f191690f35b905060405190608082019160a081016040525f8352600a600435935b5f19019360308282060185530492831561011c57600a90610100565b9250608083601f19810192030181526040519283915f9061013c856113a1565b94600181169081156101b45750600114610173575b61016d9450518092825e015f815203601f1981018352826113d9565b816100c5565b905060035f5260205f20935f5b818110610198575061016d9450830160200190610151565b8554602082890181019190915260019096019587955001610180565b602092935061016d96915060ff1916828601528015150284010190610151565b63ffffffff68a20d6e21d0e52553085460801c165f5260205ff35b63ffffffff6102086004356001600160a01b031661135f565b5460801c165f5260205ff35b6001600160a01b03610227600435612130565b165f5260205ff35b68a20d6e21d0e5255309546001600160a01b03163303610312576001600160a01b036044358116906024359060043581169061028061027b5f19600160201b861086020160011b612055565b6120eb565b5416928381036102ef575b505f82815268a20d6e21d0e525530c60209081526040822080546001600160a01b0319166001600160a01b03851617905568a20d6e21d0e525530d60601b600885901c018054600160ff90961695861b191693151590941b92909217909255918152f35b6102f990846115cd565b5415610305578361028b565b63cfb3b9425f526004601cfd5b63ce5a776b5f526004601cfd5b6001600160a01b03610227600435612107565b6004356001600160a01b0361034682612107565b161561035e576001600160a01b039061022790612107565b63ceea21b65f526004601cfd5b6103856001600160a01b03602435811690600435166115cd565b5415155f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633036103125760243515156103c86001600160a01b03600435811690604435166115cd565b5560015f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633819003610312576001600160a01b0360043581165f818152600560205260409020547f000000000000000000000000000000000000000000000000000000000000000093919260443592916064358216916024351690610448908790611438565b935f925f948661072d575b83156107205715610713576001600160a01b0361048061027b600160201b851085025f190160011b612055565b54168703610706578681036106cd575b5061049a8661135f565b906104a48361135f565b90825460a01c808a116106c0576105a69361055e916104cf908c90036001600160601b031682612169565b83546104ee9060a01c6001600160601b038d8116919091011685612169565b6104f78361229f565b61068f575b600161052b61050a8c611380565b9261052563ffffffff5f1981845460801c160116809261218c565b83612079565b61054d8161053f5f198801851b8501612055565b9463ffffffff8616906120c3565b63ffffffff165f1901811b01612095565b6105a08463ffffffff845460801c169361058163ffffffff60018701168261218c565b61059b61058d83611380565b8663ffffffff8716916120c3565b6121d0565b90612260565b855f52845f8051602061231483398151915260205fa36105c95760015f5260205ff35b5f19820191821161067b5763ffffffff6105e28461135f565b5460801c169182811061060d575b5050505f52600560205260405f20908154039055808080806100a0565b61061684611380565b928210156105f0578181146105f0576001826106628363ffffffff8481966106628a610645886106739d612079565b928161065d610655838795612079565b809b836120c3565b6120c3565b825f19911601811b01911690612095565b8280806105f0565b634e487b7160e01b5f52601160045260245ffd5b610698836121af565b5f83815268a20d6e21d0e525530c6020526040902080546001600160a01b03191690556104fc565b63f4d678b85f526004601cfd5b6106d781886115cd565b54610490576001600160a01b036106ed83612130565b16036106f95787610490565b6359c896be5f526004601cfd5b63a11481005f526004601cfd5b6340739bf05f526004601cfd5b63ea553b345f526004601cfd5b9350935063ffffffff61074760015f198401811b01612055565b169385851093610453565b3461075957005b5f80fd5b5f3560e01c90816306fdde031461126757508063095ea7b3146111c65780630ad9e7bf1461118e57806310aa0ebb1461116957806316f0115b1461114157806318160ddd14611119578063207d0636146110d657806323b872dd14611030578063274e430b146110035780632a6a935d14610f915780632f745c5914610f2a578063313ce56714610f0f5780634ef41efc14610edf5780634f6ccce714610ec157806355f804b314610d685780635b2aa23914610bcb5780636c0360eb14610b3957806370a0823114610b0a578063715018a614610ac65780638902653814610a995780638da5cb5b14610a72578063907af6c014610a3857806395d89b411461095e578063a9059cbb1461092d578063dd62ed3e146108f95763f2fde38b14610887575f61000f565b34610759576020366003190112610759576108a0611333565b6108a8611589565b6001600160a01b031680156108e6575f80546001600160a01b03198116831782556001600160a01b0316905f805160206122f48339815191529080a3005b631e4fbdf760e01b5f525f60045260245ffd5b34610759576040366003190112610759576020610925610917611333565b61091f611349565b90611523565b604051908152f35b3461075957604036600319011261075957610953610949611333565b60243590336115eb565b602060405160018152f35b34610759575f366003190112610759576040515f60025461097e816113a1565b8084529060018116908115610a1457506001146109b6575b6109b2836109a6818503826113d9565b60405191829182611309565b0390f35b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b8082106109fa575090915081016020016109a6610996565b9192600181602092548385880101520191019092916109e2565b60ff191660208086019190915291151560051b840190910191506109a69050610996565b34610759575f3660031901126107595760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610759575f366003190112610759575f546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957610ab1611589565b6004805460ff60a01b1916600160a01b179055005b34610759575f36600319011261075957610ade611589565b5f80546001600160a01b0319811682556001600160a01b03165f805160206122f48339815191528280a3005b34610759576020366003190112610759576020610b2d610b28611333565b61135f565b5460a01c604051908152f35b34610759575f366003190112610759576040515f600354610b59816113a1565b8084529060018116908115610a145750600114610b80576109b2836109a6818503826113d9565b60035f9081525f805160206122d4833981519152939250905b808210610bb1575090915081016020016109a6610996565b919260018160209254838588010152019101909291610b99565b34610759576020366003190112610759576004356001600160401b03811161075957366023820112156107595760048101356001600160401b038111610759573660248260051b84010111610759577f0000000000000000000000000000000000000000000000000000000000000000918282029282840481148315171561067b57335f52600560205260405f205493610c643361135f565b5460a01c610c728287611456565b11610d5957610c84610c8a9286611438565b94611456565b335f52600560205260405f2055610ca03361135f565b9263ffffffff610caf33611380565b945460801c16915f915b84831015610d575760248360051b8301013584811015610d4857818110610d3e578181600193849303610cf2575b5001925b0191610cb9565b8063ffffffff848b61066282610d0b610d389784612079565b610d26818a610d1a8188612079565b9661065d888c836120c3565b888616919086165f1901811b01612095565b88610ce7565b5091600190610ceb565b633277964160e01b5f5260045ffd5b005b6302579b0560e11b5f5260045ffd5b34610759576020366003190112610759576004356001600160401b03811161075957366023820112156107595760048101356001600160401b03811161075957366024828401011161075957610dbc611589565b610dc76003546113a1565b601f8111610e71575b505f601f8211600114610e0c5781925f92610dfe575b50508160011b915f199060031b1c1916176003555f80f35b602492500101358280610de6565b601f1982169260035f5260205f20915f5b858110610e5657508360019510610e3a575b505050811b01600355005b01602401355f19600384901b60f8161c19169055828080610e2f565b90926020600181926024878701013581550194019101610e1d565b60035f525f805160206122d4833981519152601f830160051c81019160208410610eb7575b601f0160051c01905b818110610eac5750610dd0565b5f8155600101610e9f565b9091508190610e96565b34610759576020366003190112610759576020610925600435611463565b34610759575f3660031901126107595768a20d6e21d0e5255309546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957602060405160128152f35b3461075957604036600319011261075957610f43611333565b60243563ffffffff610f548361135f565b5460801c16811015610f8257610f7963ffffffff91610f74602094611380565b612079565b16604051908152f35b6306ed618760e11b5f5260045ffd5b3461075957602036600319011261075957600435801580158092036107595761095391610fbd3361135f565b91825460581c915f52337fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff83169216151860011b186001179061156c565b34610759576020366003190112610759576020611026611021611333565b611410565b6040519015158152f35b3461075957606036600319011261075957611049611333565b611051611349565b6044359061105f33846115af565b926e22d473030f116ddee9f6b43ac78ba33314806110bf575b156110b7575f19935b60018501611095575b5061095393506115eb565b8484116110aa5783610953950390558461108a565b6313be252b5f526004601cfd5b835493611081565b5060046110cb8261135f565b5460581c1615611078565b34610759576020366003190112610759576110ef611333565b6110f7611589565b600480546001600160a81b0319166001600160a01b0392909216919091179055005b34610759575f36600319011261075957602068a20d6e21d0e52553085460a01c604051908152f35b34610759575f366003190112610759576004546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957602060ff60045460a01c166040519015158152f35b34610759576020366003190112610759576001600160a01b036111af611333565b165f526005602052602060405f2054604051908152f35b34610759576040366003190112610759576111df611333565b6001600160a01b03811690602435908190611211906e22d473030f116ddee9f6b43ac78ba38514611245575b336115af565b555f52337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa3602060405160018152f35b6112626112513361135f565b600460ff825460581c16179061156c565b61120b565b34610759575f366003190112610759575f600154611284816113a1565b8084529060018116908115610a1457506001146112ab576109b2836109a6818503826113d9565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106112ef575090915081016020016109a6610996565b9192600181602092548385880101520191019092916112d7565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361075957565b602435906001600160a01b038216820361075957565b6001600160a01b03165f90815268a20d6e21d0e52553136020526040902090565b6001600160a01b03165f90815268a20d6e21d0e52553106020526040902090565b90600182811c921680156113cf575b60208310146113bb57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916113b0565b601f909101601f19168101906001600160401b038211908210176113fc57604052565b634e487b7160e01b5f52604160045260245ffd5b9061141a8261135f565b5460581c9160016002841615159316156114315750565b3b15159150565b8115611442570490565b634e487b7160e01b5f52601260045260245ffd5b9190820180921161067b57565b9068a20d6e21d0e52553085463ffffffff8160801c16831015611514576114ae907f00000000000000000000000000000000000000000000000000000000000000009060a01c611438565b905f925f5b8381106114c957639f6fb6c960e01b5f5260045ffd5b806001018060011161067b5763ffffffff6114e68360011b612055565b166114f5575b506001016114b3565b828692961461150b5750600180910194906114ec565b93505050915090565b639f6fb6c960e01b5f5260045ffd5b906001600160a01b0381166e22d473030f116ddee9f6b43ac78ba314611551575b61154d916115af565b5490565b600461155c8361135f565b5460581c166115445750505f1990565b805460ff60581b191660589290921b60ff60581b16919091179055565b5f546001600160a01b0316330361159c57565b63118cdaa760e01b5f523360045260245ffd5b9060285260145268a20d6e21d0e525530f5f5260485f20905f602852565b9060285260145268a20d6e21d0e525530b5f5260485f20905f602852565b6004549092906001600160a01b03838116908216149081612046575b50612037576001600160a01b038316611fe0575b6001600160a01b03821615610720576116338361135f565b61163c8361135f565b68a20d6e21d0e5255309546001600160a01b031615610713576040519161018083016001600160401b038111848210176113fc576040525f83525f60208401525f60808401525f60a08401525f60c08401525f60e08401525f6101008401525f6101208401525f6101408401525f610160840152805463ffffffff8160801c16604085015263ffffffff835460801c1660608501528060a01c85116106c0576116f560a082901c8690036001600160601b031683612169565b825460a01c8501906117106001600160601b03831685612169565b611745604086015191877f00000000000000000000000000000000000000000000000000000000000000009160a01c03611438565b808203911102845261175686611410565b15611f78575b50611d73565b68a20d6e21d0e52553085463ffffffff60208501518551928382848360801c1601038060808901528360801b9060801b16908360801b191617928368a20d6e21d0e52553085501916040519260c060a085019180835260051b850101604052836040015260c0830183528261016087015260601c166101208501528351611c53575b505060208201516118c9575b5061014081015180611885575b50610160015180611833575b505f9081526001600160a01b0391821692909116905f8051602061231483398151915290602090a3565b600160206040828060a01b0368a20d6e21d0e5255309541693015192603f19840193849163263c69d6835283601f198301525f825160051b6044019260231901915af19151141615610759575f611809565b600160205f9281838060a01b0368a20d6e21d0e5255309541691015190815160051b60840190607f19830195869360631901915af19151141615610759575f6117fd565b9194610160829492015160208360601b9101526118e582611380565b9463ffffffff6118f584866121d0565b1660e086015268a20d6e21d0e5255308549263ffffffff6119397f00000000000000000000000000000000000000000000000000000000000000008660a01c611438565b9460201c16848111908115021761010087015261196e60608701519563ffffffff602089015188018060c08b0152169061218c565b63ffffffff68a20d6e21d0e52553085460401c169760015b15611bf4575b6101208701515f9063ffffffff8b8116911614611a4257611a3d63ffffffff60018c01169a60e0641fffffffe0631fffffff8360031c1668a20d6e21d0e525531160601b01549260051b16161c63ffffffff165b8060081c685106b710e87292a98760611b0160018260ff161b8019825416179055611a1263ffffffff82168a8d6120c3565b611a3263ffffffff60e08c01511663ffffffff60018c019b169083612260565b6101608a01516122bd565b611986565b949798939291906101008801515b63ffffffff611a645f19830160011b612055565b1615611bd0575f19906001810160081c685106b710e87292a98760611b018054196001830160ff1690811c901b8015611b58575b80611aae575b5050508981119081150217611a50565b600180939450811901167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07a1412563212c14164235266736f7425221143267a4524367526767760fc7b2aaaaaaaba69a69a6db6db6db2cb2cb2ce739ce73def7bdeffffffff860260f81c161b60f71c1692831c63d76453e004161a179082685106b710e87292a98760611b03190160081b17910181108a8211175f03175f8080611a9e565b506001909c9895929c9a9794919a9693965b01805419685106b710e87292a98760611b60088e901c0182118117611b925750600190611b6a565b9c9295989c9a9194979a969396808d60081c685106b710e87292a98760611b018311611bbf575b50611a98565b508c1960ff1690811b901c80611bb9565b611a3d909a999691929394959a6001810188811190811502176101008b01526119e0565b60c0870151860361198c57945094925094509468a20d6e21d0e52553085463ffffffff60201b61010084015160201b169163ffffffff60401b9060401b1690600160201b600160601b031916171768a20d6e21d0e5255308555f6117f0565b602060018860609a9699959a989497981b17910152611c7182611380565b94611c9160408801519563ffffffff895188038060a08c0152169061218c565b60015b15611d5a575b5f945f190194611caa8688612079565b63ffffffff8116905f1982018060021c685106b710e87292a98960611b019060c082549160061b1681811c60018060401b0316901b189055611cf1826101608c01516122bd565b600160ff62ffffff8360081c16685106b710e87292a98760611b0192161b198154169055611d1e8161229f565b611d29575b50611c94565b611d32816121af565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611d23565b60a08701518503611c9a57935093509390945f806117e4565b9194604086979294970151948651976020880151898110818b18028a1899888b108b8a18028914611f69578a8918898c10028918908190038a52900360208901526001600160a01b0383811690831614611f47576040805163144027d3818301526001600160a01b03858116606080840191909152908516608083015260a08201528a8918898c1002891860c0820181815260059190911b820160e090810190935260208201529081018152610140890152611e2e83611380565b95611e3883611380565b9763ffffffff611e4885846121d0565b1660e08b015260608a01519a81811090821802188a019560015b15611f01575b878b611eac8163ffffffff808f8f90611ea060e09284611e975f9b5f1960408701510190816040880152612079565b169889916120c3565b01511691169083612260565b6101408c015160208151838152019052611ec58161229f565b611ed0575b50611e62565b611ed9816121af565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611eca565b9960010199868b03611e6857939895509398611f2e92975063ffffffff919650806060870152168361218c565b611f4263ffffffff6040850151168261218c565b611762565b9492978681989593989792971090821802186060840151016060840152611762565b50509492975094509491611762565b611fb7906001600160a01b0388811690881614611fcd575b7f000000000000000000000000000000000000000000000000000000000000000090611438565b606084015180820391110260208401525f61175c565b6040850151855190036060860152611f90565b611fe98361135f565b5460a01c60018060a01b0384165f52600560205260405f205490808211918215612024575b50501561161b576311acc28f60e01b5f5260045ffd5b81039150811161067b5781115f8061200e565b632e13674560e01b5f5260045ffd5b60ff915060a01c16155f611607565b60e08160031c685106b710e87292a98960611b01549160051b161c63ffffffff1690565b60e0908260031c9060601b01549160051b161c63ffffffff1690565b9060e08260031c685106b710e87292a98960611b019260051b1682549182821c1863ffffffff16901b189055565b60e0909291928360031c9060601b019260051b1682549182821c1863ffffffff16901b189055565b63ffffffff165f5268a20d6e21d0e525530a60205260405f2090565b6001600160a01b039061212b9061027b90600160201b8110025f190160011b612055565b541690565b6001600160a01b0361214182612107565b161561035e575f90815268a20d6e21d0e525530c60205260409020546001600160a01b031690565b80546001600160a01b031660a09290921b6001600160a01b031916919091179055565b805463ffffffff60801b191660809290921b63ffffffff60801b16919091179055565b60018160081c68a20d6e21d0e525530d60601b019160ff161b198154169055565b805460601c63ffffffff16929183156121e7575050565b68a20d6e21d0e5255308805463ffffffff19811663ffffffff918216600101918216908117909255835463ffffffff60601b191660609190911b63ffffffff60601b1617909255909250829061223c826120eb565b80546001600160a01b0319166001600160a01b039092169190911790551561075957565b5f1901908160021c685106b710e87292a98960611b019260c084549360061b169163ffffffff169060201b1782821c1860018060401b0316901b189055565b8060081c68a20d6e21d0e525530d60601b01549060ff161c60011690565b9060209082519060081b8284015117815201905256fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef608034607857601f610d3538819003918201601f19168301916001600160401b03831184841017607c57808492602094604052833981010312607857516001600160a01b03811690819003607857683602298b8c10b0123180546001600160a01b031916919091179055604051610ca490816100918239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60808060405260043610156101c5575b5036156101ba575f3560e01c63263c69d681146101405763144027d381146100cf57630f4599e51461004857633c10b94e5f526004601cfd5b683602298b8c10b01231546001600160a01b0316806100ab575b50683602298b8c10b01230546001600160a01b03811661009e576001600160a01b0319163317683602298b8c10b012305560015f908152602090f35b63bf656a465f526004601cfd5b6004356001600160a01b0316036100c2575f610062565b63c59ec47a5f526004601cfd5b683602298b8c10b01230546001600160a01b03163303610133576004356024359060443591602483810193600481013560051b0101925b8381036101165760015f5260205ff35b803582845f80516020610c848339815191525f80a4602001610106565b63363cb3125f526004601cfd5b683602298b8c10b01230546001600160a01b0316330361013357600435602481810191600481013560051b0101905b81810361017f5760015f5260205ff35b8035600881901c6001600160581b03169060018116801560609290921c91820291025f80516020610c848339815191525f80a460200161016f565b346101c157005b5f80fd5b5f3560e01c90816301ffc9a714610aa85750806306fdde0314610a3d578063081812fc146109e6578063095ea7b31461096457806318160ddd1461091857806323b872dd1461090457806324359879146108ad5780632f745c591461083c57806342842e0e146107c95780634f6ccce7146107325780636352211e146107035780636cef16e61461063757806370a08231146105da5780638da5cb5b146105aa57806395d89b411461053f57806397e5311c14610513578063a22cb46514610487578063b88d4fde1461039d578063c87b56dd146103215763e985e9c5146102ad575f61000f565b346101c15760403660031901126101c1576102c6610b1c565b60205f6044601c6102d5610b32565b6102dd610c25565b604080516362fb246d87526001600160a01b039889168852979092169091525afa601f3d1116156103195760405260205f516040519015158152f35b3d5f823e3d90fd5b346101c15760203660031901126101c15760043561033e81610c4f565b505f806024601c61034d610c25565b6040519563cb30b46085526020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b0390f35b60803660031901126101c1576103b1610b1c565b6103b9610b32565b60443591606435916001600160401b0383116101c157366023840112156101c1576004830135926001600160401b0384116101c15736602485830101116101c157610405858385610b82565b813b61040d57005b83602094602460a49360405198899763150b7a028952338a8a015260018060a01b0316604089015260608801526080808801528260a08801520160c086013701905f601c8401915af115610479575b5163757a42ff60e11b0161046c57005b63d1a57ed65f526004601cfd5b3d1561045c573d5f823e3d90fd5b346101c15760403660031901126101c1576104a0610b1c565b6024358015158091036101c15760205f6064601c826104bd610c25565b9660018060a01b0316966040519663f6916ddd8352888752604052336060525af160015f511416156103195750337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206040a3005b346101c1575f3660031901126101c157602061052d610c25565b6040516001600160a01b039091168152f35b346101c1575f3660031901126101c157610557610c25565b5f806024601c604051946395d89b418452836020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b346101c1575f3660031901126101c157683602298b8c10b01232546040516001600160a01b039091168152602090f35b346101c15760203660031901126101c1576001600160a01b036105fb610b1c565b1660205f6044601c61060b610c25565b6040519563f5b100ea85528552836040525afa601f3d1116156103195760405260205f51604051908152f35b346101c1575f3660031901126101c15761064f610c25565b683602298b8c10b012325460205f6004601c60018060a01b03851695638da5cb5b84525afa9081601f3d1116600c5160601c0291156106ec575b506001600160a01b0316908181036106a7575b602060405160018152f35b683602298b8c10b0123280546001600160a01b031916831790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3808061069c565b60601b6001600160601b0319166101c15782610689565b346101c15760203660031901126101c15760206001600160a01b03610729600435610c4f565b16604051908152f35b346101c15760203660031901126101c157602460206001600160a01b03610757610c25565b1660405192838092634f6ccce760e01b825260043560048301525afa80156107be575f9061078b575b602090604051908152f35b506020813d6020116107b6575b816107a560209383610bee565b810103126101c15760209051610780565b3d9150610798565b6040513d5f823e3d90fd5b6107d236610b48565b916107de838383610b82565b813b6107e657005b60a460209260405194859363150b7a028552338686015260018060a01b0316604085015260608401526080808401525f60a08401525f3681375f601c8401915af115610479575163757a42ff60e11b0161046c57005b346101c15760403660031901126101c157610855610b1c565b60206001600160a01b03610867610c25565b604051632f745c5960e01b81526001600160a01b039094166004850152602480359085015283916044918391165afa80156107be575f9061078b57602090604051908152f35b346101c15760203660031901126101c1576108c6610c25565b60205f6044601c6040519463c016aa5284526004358552836040525afa601f3d1116156103195760408190525f516001600160a01b03168152602090f35b61091661091036610b48565b91610b82565b005b346101c1575f3660031901126101c157610930610c25565b60205f6044601c6040519463e2c792818452838552836040525afa601f3d1116156103195760405260205f51604051908152f35b60403660031901126101c157610978610b1c565b60243590610984610c25565b9060018060a01b03169060205f6064601c6040519463d10b6e0c8452868552876040523360605234905af1601f3d1116156103195750600c5160601c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a4005b346101c15760203660031901126101c1576109ff610c25565b60205f6044601c604051946327ef549584526004358552836040525afa601f3d1116156103195760408190525f516001600160a01b03168152602090f35b346101c1575f3660031901126101c157610a55610c25565b5f806024601c604051946306fdde038452836020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b346101c15760203660031901126101c157600435906001600160e01b0319821682036101c15760209160e01c635b5e139f8114906301ffc9a76380ac58cd82149114171715158152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101c157565b602435906001600160a01b03821682036101c157565b60609060031901126101c1576004356001600160a01b03811681036101c157906024356001600160a01b03811681036101c1579060443590565b9060846020610b8f610c25565b6040805163e5eb36c881526001600160a01b03968716848201819052959096169086018190526060860187905233608087015294928391601c83019034905af16001825114161561031957505f80516020610c848339815191525f80a4565b601f909101601f19168101906001600160401b03821190821017610c1157604052565b634e487b7160e01b5f52604160045260245ffd5b683602298b8c10b01230546001600160a01b0316908115610c4257565b635b2a47ae5f526004601cfd5b60205f6044601c610c5e610c25565b60405195632d8a746e85528552836040525afa601f3d111615610319576040525f519056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef";
|
|
1547
|
+
|
|
1548
|
+
// src/evm/abis/bytecodes/dopplerDN404BaseSepolia.ts
|
|
1549
|
+
var dopplerDN404BaseSepolia_default = "0x60a06040523461049b57613a4d80380380610019816107c6565b928339810160e08282031261049b5781516001600160401b03811161049b57816100449184016107eb565b60208301519091906001600160401b03811161049b57816100669185016107eb565b906040840151916100796060860161083c565b936100866080870161083c565b60a08701519093906001600160401b03811161049b5760c0916100aa9189016107eb565b960151926001600160a01b031680156107b3575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a38051906001600160401b0382116104de5760015490600182811c921680156107a9575b60208310146105c35781601f84931161073b575b50602090601f83116001146106d5575f926106ca575b50508160011b915f199060031b1c1916176001555b8051906001600160401b0382116104de5760025490600182811c921680156106c0575b60208310146105c35781601f849311610652575b50602090601f83116001146105ec575f926105e1575b50508160011b915f199060031b1c1916176002555b83516001600160401b0381116104de57600354600181811c911680156105d7575b60208210146105c357601f8111610560575b50602094601f82116001146104fd579481929394955f926104f2575b50508160011b915f199060031b1c1916176003555b608052604051610d41808201906001600160401b038211838310176104de576020918391612d0c83393381520301905ff080156104d3576080516001600160a01b0391909116906001600160601b035f1990910110156104c65768a20d6e21d0e5255309546001600160a01b03166104b95780156104ac57630f4599e55f523360205260205f6024601c82855af160015f5114161561049f57678da5cb5b6cef16e65f5260208060046018305afa601f3d1160205160601b15101661048c575b68a20d6e21d0e5255308805463ffffffff60201b191664010000000017905568a20d6e21d0e525530980546001600160a01b03191691909117905580610368575b60405161249a9081610872823960805181818161040b01528181610a4f01528181610c47015281816115920152818161184701528181611a3c01526120bd0152f35b6001600160a01b03821691821561047f57608051820463fffffffe108260601c176104725768a20d6e21d0e525530880546001600160a01b031660a084901b6001600160a01b03191690811790915561040592906103c583610850565b80546001600160a01b031690911790555f90815283907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082a3610850565b906bff00000000000000000000008254918260581c9060015f527fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff821691161560011b1860011760581b16906bff000000000000000000000019161790555f80610326565b63e5cfe9575f526004601cfd5b63ea553b345f526004601cfd5b5f806004601c82855af16102e5575b5f80fd5b63d125259c5f526004601cfd5b6339a84a7b5f526004601cfd5b63ead4d2e45f526004601cfd5b63997c4ef45f526004601cfd5b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b015190505f80610210565b601f1982169560035f52805f20915f5b88811061054857508360019596979810610530575b505050811b01600355610225565b01515f1960f88460031b161c191690555f8080610522565b9192602060018192868501518155019401920161050d565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106105b9575b601f0160051c01905b8181106105ae57506101f4565b5f81556001016105a1565b9091508190610598565b634e487b7160e01b5f52602260045260245ffd5b90607f16906101e2565b015190505f806101ac565b60025f9081528281209350601f198516905b81811061063a5750908460019594939210610622575b505050811b016002556101c1565b01515f1960f88460031b161c191690555f8080610614565b929360206001819287860151815501950193016105fe565b60025f529091507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f840160051c810191602085106106b6575b90601f859493920160051c01905b8181106106a85750610196565b5f815584935060010161069b565b909150819061068d565b91607f1691610182565b015190505f8061014a565b60015f9081528281209350601f198516905b818110610723575090846001959493921061070b575b505050811b0160015561015f565b01515f1960f88460031b161c191690555f80806106fd565b929360206001819287860151815501950193016106e7565b60015f529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f840160051c8101916020851061079f575b90601f859493920160051c01905b8181106107915750610134565b5f8155849350600101610784565b9091508190610776565b91607f1691610120565b631e4fbdf760e01b5f525f60045260245ffd5b6040519190601f01601f191682016001600160401b038111838210176104de57604052565b81601f8201121561049b578051906001600160401b0382116104de5761081a601f8301601f19166020016107c6565b928284526020838301011161049b57815f9260208093018386015e8301015290565b51906001600160a01b038216820361049b57565b6001600160a01b03165f90815268a20d6e21d0e5255313602052604090209056fe608080604052600436101561075d575b503615610752575f3560e01c63e5eb36c881146103d25763f6916ddd811461038f576362fb246d811461036b57632d8a746e81146103325763c016aa52811461031f5763d10b6e0c811461022f576327ef549581146102145763f5b100ea81146101ef5763e2c7928181146101d45763cb30b46081146100a95763b7a94eb8146100a057633c10b94e5f526004601cfd5b60015f5260205ff35b60206040510160405260606003546100c0816114af565b6100e4575b50605f601f198201915f6020825180930101526020835201601f191690f35b905060405190608082019160a081016040525f8352600a600435935b5f19019360308282060185530492831561011c57600a90610100565b9250608083601f19810192030181526040519283915f9061013c856114af565b94600181169081156101b45750600114610173575b61016d9450518092825e015f815203601f19810183528261148c565b816100c5565b905060035f5260205f20935f5b818110610198575061016d9450830160200190610151565b8554602082890181019190915260019096019587955001610180565b602092935061016d96915060ff1916828601528015150284010190610151565b63ffffffff68a20d6e21d0e52553085460801c165f5260205ff35b63ffffffff6102086004356001600160a01b031661144a565b5460801c165f5260205ff35b6001600160a01b0361022760043561228a565b165f5260205ff35b68a20d6e21d0e5255309546001600160a01b03163303610312576001600160a01b036044358116906024359060043581169061028061027b5f19600160201b861086020160011b6121af565b612245565b5416928381036102ef575b505f82815268a20d6e21d0e525530c60209081526040822080546001600160a01b0319166001600160a01b03851617905568a20d6e21d0e525530d60601b600885901c018054600160ff90961695861b191693151590941b92909217909255918152f35b6102f990846116f1565b5415610305578361028b565b63cfb3b9425f526004601cfd5b63ce5a776b5f526004601cfd5b6001600160a01b03610227600435612261565b6004356001600160a01b0361034682612261565b161561035e576001600160a01b039061022790612261565b63ceea21b65f526004601cfd5b6103856001600160a01b03602435811690600435166116f1565b5415155f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633036103125760243515156103c86001600160a01b03600435811690604435166116f1565b5560015f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633819003610312576001600160a01b0360043581165f818152600560205260409020547f000000000000000000000000000000000000000000000000000000000000000093919260443592916064358216916024351690610448908790611544565b935f925f948661072d575b83156107205715610713576001600160a01b0361048061027b600160201b851085025f190160011b6121af565b54168703610706578681036106cd575b5061049a8661144a565b906104a48361144a565b90825460a01c808a116106c0576105a69361055e916104cf908c90036001600160601b0316826122c3565b83546104ee9060a01c6001600160601b038d81169190910116856122c3565b6104f7836123f9565b61068f575b600161052b61050a8c61146b565b9261052563ffffffff5f1981845460801c16011680926122e6565b836121d3565b61054d8161053f5f198801851b85016121af565b9463ffffffff86169061221d565b63ffffffff165f1901811b016121ef565b6105a08463ffffffff845460801c169361058163ffffffff6001870116826122e6565b61059b61058d8361146b565b8663ffffffff87169161221d565b61232a565b906123ba565b855f52845f8051602061246e83398151915260205fa36105c95760015f5260205ff35b5f19820191821161067b5763ffffffff6105e28461144a565b5460801c169182811061060d575b5050505f52600560205260405f20908154039055808080806100a0565b6106168461146b565b928210156105f0578181146105f0576001826106628363ffffffff8481966106628a610645886106739d6121d3565b928161065d6106558387956121d3565b809b8361221d565b61221d565b825f19911601811b019116906121ef565b8280806105f0565b634e487b7160e01b5f52601160045260245ffd5b61069883612309565b5f83815268a20d6e21d0e525530c6020526040902080546001600160a01b03191690556104fc565b63f4d678b85f526004601cfd5b6106d781886116f1565b54610490576001600160a01b036106ed8361228a565b16036106f95787610490565b6359c896be5f526004601cfd5b63a11481005f526004601cfd5b6340739bf05f526004601cfd5b63ea553b345f526004601cfd5b9350935063ffffffff61074760015f198401811b016121af565b169385851093610453565b3461075957005b5f80fd5b5f3560e01c90816306fdde031461135257508063095ea7b3146112b15780630ad9e7bf1461127957806310aa0ebb1461125457806316f0115b1461122c57806318160ddd14611204578063207d0636146111c157806323b872dd1461111b578063274e430b146110ee5780632a6a935d1461107c5780632f745c5914610fe3578063313ce56714610fc85780634ef41efc14610f985780634f6ccce714610f7a57806355f804b314610e215780635b2aa23914610bcb5780636c0360eb14610b3957806370a0823114610b0a578063715018a614610ac65780638902653814610a995780638da5cb5b14610a72578063907af6c014610a3857806395d89b411461095e578063a9059cbb1461092d578063dd62ed3e146108f95763f2fde38b14610887575f61000f565b34610759576020366003190112610759576108a061141e565b6108a86116ad565b6001600160a01b031680156108e6575f80546001600160a01b03198116831782556001600160a01b0316905f8051602061244e8339815191529080a3005b631e4fbdf760e01b5f525f60045260245ffd5b3461075957604036600319011261075957602061092561091761141e565b61091f611434565b90611647565b604051908152f35b346107595760403660031901126107595761095361094961141e565b602435903361170f565b602060405160018152f35b34610759575f366003190112610759576040515f60025461097e816114af565b8084529060018116908115610a1457506001146109b6575b6109b2836109a68185038261148c565b604051918291826113f4565b0390f35b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b8082106109fa575090915081016020016109a6610996565b9192600181602092548385880101520191019092916109e2565b60ff191660208086019190915291151560051b840190910191506109a69050610996565b34610759575f3660031901126107595760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610759575f366003190112610759575f546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957610ab16116ad565b6004805460ff60a01b1916600160a01b179055005b34610759575f36600319011261075957610ade6116ad565b5f80546001600160a01b0319811682556001600160a01b03165f8051602061244e8339815191528280a3005b34610759576020366003190112610759576020610b2d610b2861141e565b61144a565b5460a01c604051908152f35b34610759575f366003190112610759576040515f600354610b59816114af565b8084529060018116908115610a145750600114610b80576109b2836109a68185038261148c565b60035f9081525f8051602061242e833981519152939250905b808210610bb1575090915081016020016109a6610996565b919260018160209254838588010152019101909291610b99565b34610759576020366003190112610759576004356001600160401b0381116107595736602382011215610759576004810135906001600160401b038211610e0d578160051b60405192610c21602083018561148c565b8352602460208401918301019136831161075957602401905b828210610dfd57838051907f00000000000000000000000000000000000000000000000000000000000000008083029280840482149015171561067b57335f52600560205260405f205492610c8e3361144a565b5460a01c610c9c8286611562565b11610db957610cae610cb49285611544565b93611562565b335f52600560205260405f2055610cca3361144a565b9163ffffffff610cd93361146b565b935460801c16905f905b8351821015610db75760208260051b8501015183811015610d7357818110610d69578181600193849303610d1d575b5001915b0190610ce3565b8063ffffffff848a61066282610d36610d6397846121d3565b610d51818a610d4581886121d3565b9661065d888c8361221d565b888616919086165f1901811b016121ef565b87610d12565b5090600190610d16565b60405162461bcd60e51b815260206004820152601c60248201527b546f6b656e20494420696e646578206f7574206f6620626f756e647360201b6044820152606490fd5b005b60405162461bcd60e51b815260206004820152601c60248201527b4e6f7420656e6f7567682062616c616e636520746f20667265657a6560201b6044820152606490fd5b8135815260209182019101610c3a565b634e487b7160e01b5f52604160045260245ffd5b34610759576020366003190112610759576004356001600160401b03811161075957366023820112156107595760048101356001600160401b03811161075957366024828401011161075957610e756116ad565b610e806003546114af565b601f8111610f2a575b505f601f8211600114610ec55781925f92610eb7575b50508160011b915f199060031b1c1916176003555f80f35b602492500101358280610e9f565b601f1982169260035f5260205f20915f5b858110610f0f57508360019510610ef3575b505050811b01600355005b01602401355f19600384901b60f8161c19169055828080610ee8565b90926020600181926024878701013581550194019101610ed6565b60035f525f8051602061242e833981519152601f830160051c81019160208410610f70575b601f0160051c01905b818110610f655750610e89565b5f8155600101610f58565b9091508190610f4f565b3461075957602036600319011261075957602061092560043561156f565b34610759575f3660031901126107595768a20d6e21d0e5255309546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957602060405160128152f35b3461075957604036600319011261075957610ffc61141e565b60243563ffffffff61100d8361144a565b5460801c1681101561103b5761103263ffffffff9161102d60209461146b565b6121d3565b16604051908152f35b60405162461bcd60e51b81526020600482015260196024820152784f776e657220696e646578206f7574206f6620626f756e647360381b6044820152606490fd5b34610759576020366003190112610759576004358015801580920361075957610953916110a83361144a565b91825460581c915f52337fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff83169216151860011b1860011790611690565b3461075957602036600319011261075957602061111161110c61141e565b6114e7565b6040519015158152f35b346107595760603660031901126107595761113461141e565b61113c611434565b6044359061114a33846116d3565b926e22d473030f116ddee9f6b43ac78ba33314806111aa575b156111a2575f19935b60018501611180575b50610953935061170f565b84841161119557836109539503905584611175565b6313be252b5f526004601cfd5b83549361116c565b5060046111b68261144a565b5460581c1615611163565b34610759576020366003190112610759576111da61141e565b6111e26116ad565b600480546001600160a81b0319166001600160a01b0392909216919091179055005b34610759575f36600319011261075957602068a20d6e21d0e52553085460a01c604051908152f35b34610759575f366003190112610759576004546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957602060ff60045460a01c166040519015158152f35b34610759576020366003190112610759576001600160a01b0361129a61141e565b165f526005602052602060405f2054604051908152f35b34610759576040366003190112610759576112ca61141e565b6001600160a01b038116906024359081906112fc906e22d473030f116ddee9f6b43ac78ba38514611330575b336116d3565b555f52337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa3602060405160018152f35b61134d61133c3361144a565b600460ff825460581c161790611690565b6112f6565b34610759575f366003190112610759575f60015461136f816114af565b8084529060018116908115610a145750600114611396576109b2836109a68185038261148c565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106113da575090915081016020016109a6610996565b9192600181602092548385880101520191019092916113c2565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361075957565b602435906001600160a01b038216820361075957565b6001600160a01b03165f90815268a20d6e21d0e52553136020526040902090565b6001600160a01b03165f90815268a20d6e21d0e52553106020526040902090565b601f909101601f19168101906001600160401b03821190821017610e0d57604052565b90600182811c921680156114dd575b60208310146114c957565b634e487b7160e01b5f52602260045260245ffd5b91607f16916114be565b906114f18261144a565b5460581c9160016002841615159316156115085750565b3b15159150565b60609060208152601a602082015279476c6f62616c20696e646578206f7574206f6620626f756e647360301b60408201520190565b811561154e570490565b634e487b7160e01b5f52601260045260245ffd5b9190820180921161067b57565b9068a20d6e21d0e52553085463ffffffff8160801c1683101561162e576115ba907f00000000000000000000000000000000000000000000000000000000000000009060a01c611544565b905f925f5b8381106115e35760405162461bcd60e51b8152806115df6004820161150f565b0390fd5b806001018060011161067b5763ffffffff6116008360011b6121af565b1661160f575b506001016115bf565b8286929614611625575060018091019490611606565b93505050915090565b60405162461bcd60e51b8152806115df6004820161150f565b906001600160a01b0381166e22d473030f116ddee9f6b43ac78ba314611675575b611671916116d3565b5490565b60046116808361144a565b5460581c166116685750505f1990565b805460ff60581b191660589290921b60ff60581b16919091179055565b5f546001600160a01b031633036116c057565b63118cdaa760e01b5f523360045260245ffd5b9060285260145268a20d6e21d0e525530f5f5260485f20905f602852565b9060285260145268a20d6e21d0e525530b5f5260485f20905f602852565b6004549092906001600160a01b038381169082161490816121a0575b50612191576001600160a01b03831615158061215b575b61210b576001600160a01b038216156107205761175e8361144a565b6117678361144a565b68a20d6e21d0e5255309546001600160a01b031615610713576040519161018083016001600160401b03811184821017610e0d576040525f83525f60208401525f60808401525f60a08401525f60c08401525f60e08401525f6101008401525f6101208401525f6101408401525f610160840152805463ffffffff8160801c16604085015263ffffffff835460801c1660608501528060a01c85116106c05761182060a082901c8690036001600160601b0316836122c3565b825460a01c85019061183b6001600160601b038316856122c3565b611870604086015191877f00000000000000000000000000000000000000000000000000000000000000009160a01c03611544565b8082039111028452611881866114e7565b156120a3575b50611e9e565b68a20d6e21d0e52553085463ffffffff60208501518551928382848360801c1601038060808901528360801b9060801b16908360801b191617928368a20d6e21d0e52553085501916040519260c060a085019180835260051b850101604052836040015260c0830183528261016087015260601c166101208501528351611d7e575b505060208201516119f4575b50610140810151806119b0575b5061016001518061195e575b505f9081526001600160a01b0391821692909116905f8051602061246e83398151915290602090a3565b600160206040828060a01b0368a20d6e21d0e5255309541693015192603f19840193849163263c69d6835283601f198301525f825160051b6044019260231901915af19151141615610759575f611934565b600160205f9281838060a01b0368a20d6e21d0e5255309541691015190815160051b60840190607f19830195869360631901915af19151141615610759575f611928565b9194610160829492015160208360601b910152611a108261146b565b9463ffffffff611a20848661232a565b1660e086015268a20d6e21d0e5255308549263ffffffff611a647f00000000000000000000000000000000000000000000000000000000000000008660a01c611544565b9460201c168481119081150217610100870152611a9960608701519563ffffffff602089015188018060c08b015216906122e6565b63ffffffff68a20d6e21d0e52553085460401c169760015b15611d1f575b6101208701515f9063ffffffff8b8116911614611b6d57611b6863ffffffff60018c01169a60e0641fffffffe0631fffffff8360031c1668a20d6e21d0e525531160601b01549260051b16161c63ffffffff165b8060081c685106b710e87292a98760611b0160018260ff161b8019825416179055611b3d63ffffffff82168a8d61221d565b611b5d63ffffffff60e08c01511663ffffffff60018c019b1690836123ba565b6101608a0151612417565b611ab1565b949798939291906101008801515b63ffffffff611b8f5f19830160011b6121af565b1615611cfb575f19906001810160081c685106b710e87292a98760611b018054196001830160ff1690811c901b8015611c83575b80611bd9575b5050508981119081150217611b7b565b600180939450811901167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07a1412563212c14164235266736f7425221143267a4524367526767760fc7b2aaaaaaaba69a69a6db6db6db2cb2cb2ce739ce73def7bdeffffffff860260f81c161b60f71c1692831c63d76453e004161a179082685106b710e87292a98760611b03190160081b17910181108a8211175f03175f8080611bc9565b506001909c9895929c9a9794919a9693965b01805419685106b710e87292a98760611b60088e901c0182118117611cbd5750600190611c95565b9c9295989c9a9194979a969396808d60081c685106b710e87292a98760611b018311611cea575b50611bc3565b508c1960ff1690811b901c80611ce4565b611b68909a999691929394959a6001810188811190811502176101008b0152611b0b565b60c08701518603611ab757945094925094509468a20d6e21d0e52553085463ffffffff60201b61010084015160201b169163ffffffff60401b9060401b1690600160201b600160601b031916171768a20d6e21d0e5255308555f61191b565b602060018860609a9699959a989497981b17910152611d9c8261146b565b94611dbc60408801519563ffffffff895188038060a08c015216906122e6565b60015b15611e85575b5f945f190194611dd586886121d3565b63ffffffff8116905f1982018060021c685106b710e87292a98960611b019060c082549160061b1681811c60018060401b0316901b189055611e1c826101608c0151612417565b600160ff62ffffff8360081c16685106b710e87292a98760611b0192161b198154169055611e49816123f9565b611e54575b50611dbf565b611e5d81612309565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611e4e565b60a08701518503611dc557935093509390945f8061190f565b9194604086979294970151948651976020880151898110818b18028a1899888b108b8a18028914612094578a8918898c10028918908190038a52900360208901526001600160a01b0383811690831614612072576040805163144027d3818301526001600160a01b03858116606080840191909152908516608083015260a08201528a8918898c1002891860c0820181815260059190911b820160e090810190935260208201529081018152610140890152611f598361146b565b95611f638361146b565b9763ffffffff611f73858461232a565b1660e08b015260608a01519a81811090821802188a019560015b1561202c575b878b611fd78163ffffffff808f8f90611fcb60e09284611fc25f9b5f19604087015101908160408801526121d3565b1698899161221d565b015116911690836123ba565b6101408c015160208151838152019052611ff0816123f9565b611ffb575b50611f8d565b61200481612309565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611ff5565b9960010199868b03611f935793989550939861205992975063ffffffff91965080606087015216836122e6565b61206d63ffffffff604085015116826122e6565b61188d565b949297868198959398979297109082180218606084015101606084015261188d565b5050949297509450949161188d565b6120e2906001600160a01b03888116908816146120f8575b7f000000000000000000000000000000000000000000000000000000000000000090611544565b606084015180820391110260208401525f611887565b60408501518551900360608601526120bb565b60405162461bcd60e51b815260206004820152602260248201527f5472616e73666572206578636565647320617661696c61626c652062616c616e604482015261636560f01b6064820152608490fd5b506121658361144a565b5460a01c81810390811161067b576001600160a01b0384165f9081526005602052604090205411611742565b632e13674560e01b5f5260045ffd5b60ff915060a01c16155f61172b565b60e08160031c685106b710e87292a98960611b01549160051b161c63ffffffff1690565b60e0908260031c9060601b01549160051b161c63ffffffff1690565b9060e08260031c685106b710e87292a98960611b019260051b1682549182821c1863ffffffff16901b189055565b60e0909291928360031c9060601b019260051b1682549182821c1863ffffffff16901b189055565b63ffffffff165f5268a20d6e21d0e525530a60205260405f2090565b6001600160a01b03906122859061027b90600160201b8110025f190160011b6121af565b541690565b6001600160a01b0361229b82612261565b161561035e575f90815268a20d6e21d0e525530c60205260409020546001600160a01b031690565b80546001600160a01b031660a09290921b6001600160a01b031916919091179055565b805463ffffffff60801b191660809290921b63ffffffff60801b16919091179055565b60018160081c68a20d6e21d0e525530d60601b019160ff161b198154169055565b805460601c63ffffffff1692918315612341575050565b68a20d6e21d0e5255308805463ffffffff19811663ffffffff918216600101918216908117909255835463ffffffff60601b191660609190911b63ffffffff60601b1617909255909250829061239682612245565b80546001600160a01b0319166001600160a01b039092169190911790551561075957565b5f1901908160021c685106b710e87292a98960611b019260c084549360061b169163ffffffff169060201b1782821c1860018060401b0316901b189055565b8060081c68a20d6e21d0e525530d60601b01549060ff161c60011690565b9060209082519060081b8284015117815201905256fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa164736f6c634300081a000a608034607857601f610d4138819003918201601f19168301916001600160401b03831184841017607c57808492602094604052833981010312607857516001600160a01b03811690819003607857683602298b8c10b0123180546001600160a01b031916919091179055604051610cb090816100918239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60808060405260043610156101c5575b5036156101ba575f3560e01c63263c69d681146101405763144027d381146100cf57630f4599e51461004857633c10b94e5f526004601cfd5b683602298b8c10b01231546001600160a01b0316806100ab575b50683602298b8c10b01230546001600160a01b03811661009e576001600160a01b0319163317683602298b8c10b012305560015f908152602090f35b63bf656a465f526004601cfd5b6004356001600160a01b0316036100c2575f610062565b63c59ec47a5f526004601cfd5b683602298b8c10b01230546001600160a01b03163303610133576004356024359060443591602483810193600481013560051b0101925b8381036101165760015f5260205ff35b803582845f80516020610c848339815191525f80a4602001610106565b63363cb3125f526004601cfd5b683602298b8c10b01230546001600160a01b0316330361013357600435602481810191600481013560051b0101905b81810361017f5760015f5260205ff35b8035600881901c6001600160581b03169060018116801560609290921c91820291025f80516020610c848339815191525f80a460200161016f565b346101c157005b5f80fd5b5f3560e01c90816301ffc9a714610aa85750806306fdde0314610a3d578063081812fc146109e6578063095ea7b31461096457806318160ddd1461091857806323b872dd1461090457806324359879146108ad5780632f745c591461083c57806342842e0e146107c95780634f6ccce7146107325780636352211e146107035780636cef16e61461063757806370a08231146105da5780638da5cb5b146105aa57806395d89b411461053f57806397e5311c14610513578063a22cb46514610487578063b88d4fde1461039d578063c87b56dd146103215763e985e9c5146102ad575f61000f565b346101c15760403660031901126101c1576102c6610b1c565b60205f6044601c6102d5610b32565b6102dd610c25565b604080516362fb246d87526001600160a01b039889168852979092169091525afa601f3d1116156103195760405260205f516040519015158152f35b3d5f823e3d90fd5b346101c15760203660031901126101c15760043561033e81610c4f565b505f806024601c61034d610c25565b6040519563cb30b46085526020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b0390f35b60803660031901126101c1576103b1610b1c565b6103b9610b32565b60443591606435916001600160401b0383116101c157366023840112156101c1576004830135926001600160401b0384116101c15736602485830101116101c157610405858385610b82565b813b61040d57005b83602094602460a49360405198899763150b7a028952338a8a015260018060a01b0316604089015260608801526080808801528260a08801520160c086013701905f601c8401915af115610479575b5163757a42ff60e11b0161046c57005b63d1a57ed65f526004601cfd5b3d1561045c573d5f823e3d90fd5b346101c15760403660031901126101c1576104a0610b1c565b6024358015158091036101c15760205f6064601c826104bd610c25565b9660018060a01b0316966040519663f6916ddd8352888752604052336060525af160015f511416156103195750337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206040a3005b346101c1575f3660031901126101c157602061052d610c25565b6040516001600160a01b039091168152f35b346101c1575f3660031901126101c157610557610c25565b5f806024601c604051946395d89b418452836020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b346101c1575f3660031901126101c157683602298b8c10b01232546040516001600160a01b039091168152602090f35b346101c15760203660031901126101c1576001600160a01b036105fb610b1c565b1660205f6044601c61060b610c25565b6040519563f5b100ea85528552836040525afa601f3d1116156103195760405260205f51604051908152f35b346101c1575f3660031901126101c15761064f610c25565b683602298b8c10b012325460205f6004601c60018060a01b03851695638da5cb5b84525afa9081601f3d1116600c5160601c0291156106ec575b506001600160a01b0316908181036106a7575b602060405160018152f35b683602298b8c10b0123280546001600160a01b031916831790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3808061069c565b60601b6001600160601b0319166101c15782610689565b346101c15760203660031901126101c15760206001600160a01b03610729600435610c4f565b16604051908152f35b346101c15760203660031901126101c157602460206001600160a01b03610757610c25565b1660405192838092634f6ccce760e01b825260043560048301525afa80156107be575f9061078b575b602090604051908152f35b506020813d6020116107b6575b816107a560209383610bee565b810103126101c15760209051610780565b3d9150610798565b6040513d5f823e3d90fd5b6107d236610b48565b916107de838383610b82565b813b6107e657005b60a460209260405194859363150b7a028552338686015260018060a01b0316604085015260608401526080808401525f60a08401525f3681375f601c8401915af115610479575163757a42ff60e11b0161046c57005b346101c15760403660031901126101c157610855610b1c565b60206001600160a01b03610867610c25565b604051632f745c5960e01b81526001600160a01b039094166004850152602480359085015283916044918391165afa80156107be575f9061078b57602090604051908152f35b346101c15760203660031901126101c1576108c6610c25565b60205f6044601c6040519463c016aa5284526004358552836040525afa601f3d1116156103195760408190525f516001600160a01b03168152602090f35b61091661091036610b48565b91610b82565b005b346101c1575f3660031901126101c157610930610c25565b60205f6044601c6040519463e2c792818452838552836040525afa601f3d1116156103195760405260205f51604051908152f35b60403660031901126101c157610978610b1c565b60243590610984610c25565b9060018060a01b03169060205f6064601c6040519463d10b6e0c8452868552876040523360605234905af1601f3d1116156103195750600c5160601c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a4005b346101c15760203660031901126101c1576109ff610c25565b60205f6044601c604051946327ef549584526004358552836040525afa601f3d1116156103195760408190525f516001600160a01b03168152602090f35b346101c1575f3660031901126101c157610a55610c25565b5f806024601c604051946306fdde038452836020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b346101c15760203660031901126101c157600435906001600160e01b0319821682036101c15760209160e01c635b5e139f8114906301ffc9a76380ac58cd82149114171715158152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101c157565b602435906001600160a01b03821682036101c157565b60609060031901126101c1576004356001600160a01b03811681036101c157906024356001600160a01b03811681036101c1579060443590565b9060846020610b8f610c25565b6040805163e5eb36c881526001600160a01b03968716848201819052959096169086018190526060860187905233608087015294928391601c83019034905af16001825114161561031957505f80516020610c848339815191525f80a4565b601f909101601f19168101906001600160401b03821190821017610c1157604052565b634e487b7160e01b5f52604160045260245ffd5b683602298b8c10b01230546001600160a01b0316908115610c4257565b635b2a47ae5f526004601cfd5b60205f6044601c610c5e610c25565b60405195632d8a746e85528552836040525afa601f3d111615610319576040525f519056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa164736f6c634300081a000a";
|
|
1416
1550
|
|
|
1417
1551
|
// src/evm/abis/bytecodes/openingAuction.ts
|
|
1418
1552
|
var openingAuction_default = "0x60a06040523461042657604051615d4738819003601f8101601f191683016001600160401b0381118482101761042a5783928291604052833981010361016081126104265781516001600160a01b03811681036104265760208301516001600160a01b038116939084900361042657610100604082015193605f190112610426576040519061010082016001600160401b0381118382101761042a57604052606081015182526100b16080820161045e565b602083019081526100c460a0830161045e565b926040810193845260c083015194606082019586526100e560e0850161045e565b608083015261010084015162ffffff811681036104265760a0830152610120840151936001600160801b03851685036104265760c08301948552610140015160e08301526080525f6101a061013861043e565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201525f6101a061019661043e565b6001815260016020820152600160408201526001606082015260016080820152600160a0820152600160c08201528260e0820152600161010082015282610120820152826101408201528261016082015282610180820152015261200030161515600114801590610415575b8015610404575b80156103f3575b80156103e2575b80156103d1575b80156103c1575b80156103b5575b80156103a5575b8015610399575b801561038d575b8015610381575b8015610375575b8015610369575b610356576102b99660018060a01b03195f5416175f5585600d5551600255519162ffffff600354915160181b926601000000000000600160b01b03905160301b1693169060018060b01b031916179065ffffff000000161717600355519061046c565b600e55600160105560405161587190816104d68239608051818181601c0152818161031d015281816103bf015281816105640152818161095f015281816109f801528181610b5501528181610ec0015281816114f801528181611b6a01528181611c9c01528181611f2b01528181612114015281816122d001528181614508015281816146010152818161475801528181614a4e0152614e890152f35b630732d7b560e51b5f523060045260245ffd5b50600130161515610256565b5060023016151561024f565b50600430161515610248565b50600830161515610241565b5060103016151561023a565b5060203016151560011415610233565b5060403016151561022c565b5060803016151560011415610225565b50610100301615156001141561021e565b506102003016151560011415610217565b506104003016151560011415610210565b506108003016151560011415610209565b506110003016151560011415610202565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b604051906101c082016001600160401b0381118382101761042a57604052565b51908160020b820361042657565b808202905f1983820990828083109203918083039283612710111561042657146104ca577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e9193612710910990828211900360fc1b910360041c170290565b50506127109150049056fe608080604052600436101561005b575b50361561001a575f80fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57005b6393c866c160e01b5f5260045ffd5b5f905f3560e01c90816303fa14c9146125a8575080630cbf54c81461258b578063182148ef14612531578063186a0b89146124af57806319b45b20146124615780631b2bf4dd1461231d57806321d0ee70146122bc578063252cf2d214612290578063259982e5146120ff5780632daebaef146120d957806334d028b2146120b6578063372ebb6114612099578063392e53cd14612077578063449a817614611ff35780634b449cba14611fd657806356cd69da14611fb357806356dec87114611f96578063575e24b414611ed55780635760f2e314611e4e5780635a5b309014611d855780635ac22dd114611d2d578063616f39ff14611d0d57806363b2011714611cf05780636c2bbe7e14611c865780636fe7e6eb14611b2f578063748bfe6514611b05578063791b98bc14611add5780637e57bd0c14611ac05780638416d3b614611aa3578063899346c714611a8657806391dd7346146114c557806399fbab88146113fa5780639b21d8a8146113bf5780639ce110d7146113985780639d4e31531461136e5780639f063efc14610ea8578063a4d0a17e14610a95578063b06faf6214610a72578063b1c9fe6e14610a32578063b47b2fb11461099e578063b6a8b0fa14610948578063bb6db7d11461092a578063c4e833ce146107bd578063c7e6b08b1461079f578063c80951821461077e578063ce5494bb14610593578063dc4c90d31461054e578063dc98354e1461038e578063dcf93f3214610368578063e1b4af6914610306578063eb54f9ec146102e8578063f1db23dc146102ca5763f223e2b20361000f57346102c757806003193601126102c7576020600e54604051908152f35b80fd5b50346102c757806003193601126102c7576020600c54604051908152f35b50346102c757806003193601126102c7576020600454604051908152f35b50346102c75760049061031836612762565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303925061035c91505057630a85dc2960e01b8152fd5b63570c108560e11b8152fd5b50346102c757806003193601126102c757602060ff60035460b01c166040519015158152f35b50346102c75760e03660031901126102c7576103a86125ca565b60a036602319011261050b576103bc612722565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361053f5781546001600160a01b0390811691160361053057600a5460ff81166105225760ff60035460b81c16156105135760ff1916600117600a556001600160a01b036024359081169081810361050f5750600780546001600160a01b0319169190911790556044356001600160a01b0381169081810361050f5750600880546001600160a01b03191691909117905560643562ffffff8116810361050b576008549062ffffff60a01b9060a01b169062ffffff60a01b1916176008556084358060020b810361050b576008549060b81b62ffffff60b81b169062ffffff60b81b19161760085560a4359060018060a01b0382168092036102c75750600980546001600160a01b031916919091179055604051636e4c1aa760e11b8152602090f35b5080fd5b8280fd5b63500b395360e01b8252600482fd5b62dc149f60e41b8252600482fd5b638341a67960e01b8152600490fd5b63570c108560e11b8252600482fd5b50346102c757806003193601126102c7576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346102c75760203660031901126102c7576105ad6125ca565b903068929eee149b4bd212685414610771573068929eee149b4bd212685580546001600160a01b031633036105305760ff60065416600481101561075d5760030361074e5760e091610606600a5460081c60020b613556565b6007546008549193916001600160a01b03908116911661062581613883565b9061062f83613883565b91600e54601e548181105f146107465761064891612862565b60035460b01c60ff161561071557808211156107075761066e6106739161067993612862565b6138f4565b926138f4565b915b6001600160801b031691826106f7575b6001600160801b03169485806106e6575b5050600160ff19600f541617600f553868929eee149b4bd21268556040519560018060a01b0316865260208601528260408601526060850152608084015260a083015260c0820152f35b6106f09185613919565b5f8561069c565b610702838784613919565b61068b565b5050610679610673856138f4565b9061071f906138f4565b928181111561073b576107359161066e91612862565b9161067b565b5050610735846138f4565b505084610648565b63472fd19960e01b8152600490fd5b634e487b7160e01b82526021600452602482fd5b63ab143c0690526004601cfd5b50346102c757806003193601126102c757602060195460020b604051908152f35b50346102c757806003193601126102c757602060405162278d008152f35b50346102c757806003193601126102c7576020816101c0926101a06040516107e4816128c9565b82815282858201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201528261016082015282610180820152015280604051610842816128c9565b600181528381016001815260408201600181526060830160018152608084016001815260a085016001815260c08601906001825260e0870192888452610100880194600186526101208901968a88526101408a01988b8a526101a06101608c019b8d8d5261018081019d8e52019c8d526040519d8e916001835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b50346102c757806003193601126102c7576020601f54604051908152f35b50346102c75760049061095a36612762565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303925061035c9150505763567d91d160e01b8152fd5b50346102c7576101603660031901126102c7576109b96125ca565b5060a03660231901126102c75760603660c31901126102c757610144356001600160401b03811161050b57906109f460049236908401612600565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361035c57630a85dc2960e01b8152fd5b50346102c757806003193601126102c75760ff60065416604051906004811015610a5e57602092508152f35b634e487b7160e01b83526021600452602483fd5b50346102c757806003193601126102c757602060ff600f54166040519015158152f35b50346102c757806003193601126102c7573068929eee149b4bd212685414610771573068929eee149b4bd212685560ff60065416600481101561075d5760018103610e99576005544210610e8a57610afe610af5600d54600e5490612862565b600b5490612862565b9060ff60175460301c16908215159182610e81575b506002908160ff1960065416176006555f805160206158458339815191528580a3601d5460175460ff8160301c16610d72575b50601a5515610d4b57610ba7827f00000000000000000000000000000000000000000000000000000000000000009260405190602082015260208152610b8d60408261291b565b604051809381926348c8949160e01b835260048301612738565b0381836001600160a01b0387165af18015610d4057610c94575b50610bda610be29160a0610bd3612955565b20906131e7565b505050613286565b600a549060081b63ffffff00169063ffffff00191617600a555b62278d004201804211610c8057601f55600360ff1960065416176006557f95f375ed30b2b45b5972e603757856d943ae68c3892f07064c3b1587aaa932306060604051600360025f805160206158458339815191528680a3600a5460081c60020b600b54600c5491835260208301526040820152a13868929eee149b4bd212685580f35b634e487b7160e01b82526011600452602482fd5b3d8084833e610ca3818361291b565b810190602081830312610d38578051906001600160401b038211610d3c57019181601f84011215610d38578251926001600160401b038411610d245760405192859190610cfa601f8701601f19166020018661291b565b8585526020868301011161050b5784610bda94610be29660208094018483015e0101529150610bc1565b634e487b7160e01b85526041600452602485fd5b8380fd5b8480fd5b6040513d85823e3d90fd5b50610d5461350f565b600a549060081b63ffffff00169063ffffff00191617600a55610bfc565b6002949293940b5b60175460181c60020b90818160020b13610e7657610d9a610da991612c0b565b610da3836134d6565b90614029565b91909115908115610e69575b50610e5d57610dcc60085460b81c60020b8261438a565b610dd581613c03565b60020b80845260156020908152604080862083875260149092528520546001600160801b03169081610e13575b505050610e0e906134d6565b610d7a565b906001610e21920154612eea565b908452601b602052604084205490818111610e3d575b80610e02565b92610e4f610e5592610e0e9495612862565b906127b9565b91905f610e37565b50929190925b5f610b46565b90508160020b135f610db5565b505092919092610e63565b91506002610b13565b636463738960e01b8252600482fd5b6334dc687f60e11b8252600482fd5b50346102c757610eb7366126b9565b939550935050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361135f5760ff60065416600481101561134b57600114610f1c575b604080516327c18fbf60e21b815260208101869052f35b610f25916139ab565b610f3260408301356138f4565b90610f44610f3f84612a57565b613c03565b610f4d83612a57565b60020b8452601560205260016040852001549260105492610f6d846134c8565b601055610f7982612a57565b926020830190611080610f8b83612a57565b9560405198610f998a6128ae565b88600360018060a01b0386169b8c8152602081019460020b8552604081019a60020b8b528d6060820160018060801b038b169c8d978883526040608086019489865260a0870198818a5281526011602052209460018060a01b0390511660018060a01b03198654161785555184549060a01b62ffffff60a01b169062ffffff60a01b19161784555183549060b81b60190b62ffffff60b81b169062ffffff60b81b191617835560018060801b03905116600183019060018060801b031660018060801b0319825416179055516002820155019051151560ff80198354169116179055612eea565b61108985612a57565b60020b8952601b6020526110a260408a209182546127b9565b90556110e16110b96110b386612a57565b93612a57565b6110d3604051938492602084019660608a01359288612a65565b03601f19810183528261291b565b51902080875260136020526040872054801515908161132a575b506113185786526013602052836040872055848652601260205260408620805490600160401b821015611304579061113891600182018155612690565b81549060031b9086821b915f19901b191617905561115d61115883612a57565b613eec565b61116682612a57565b60020b865260146020526040862080546001600160801b0390811685019081116112f05781546001600160801b0319166001600160801b039091161790557f5bbfb03bc7e9fc21614928f1a31e76f9d340d606c52a1d9cc823d44b5d94d8bc92604092909161126f91907f6f7dc586dcd0f870dfcef836487dc00343dd204c48a882e20c176ffe3af056626111fa83612a57565b61120384612a57565b60020b8b52601460205260018060801b03878c2054169061122c885192839260020b9583612efd565b0390a2611237613fa9565b61124081612a57565b60020b8852601560205283882061125e61125983612a57565b6139c9565b806112e1575b611286575b50612a57565b9082519160020b82526020820152a35f8080610f05565b60028101805460ff191660011790554290556112a181612a57565b6112aa82612a57565b60020b895260146020525f80516020615805833981519152602060018060801b03878c20541692875193845260020b92a25f611269565b5060ff60028201541615611264565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b88526041600452602488fd5b63f13a34ab60e01b8752600452602486fd5b885250601160205260408720600101546001600160801b031615155f6110fb565b634e487b7160e01b85526021600452602485fd5b63570c108560e11b8452600484fd5b50346102c75760203660031901126102c75760406020916004358152601c83522054604051908152f35b50346102c757806003193601126102c757546040516001600160a01b039091168152602090f35b50346102c75760203660031901126102c7576020906113dc6125e0565b60020b815260148252604060018060801b0391205416604051908152f35b50346102c75760203660031901126102c757604060c0916114196129a2565b506004358152601160205220604051611431816128ae565b81549160018060a01b0383169283835260208301908060a01c60020b8252604084019060b81c60020b815260018060801b03600184015416916060850192835260a060ff600360028701549660808901978852015416950194151585526040519586525160020b60208601525160020b604085015260018060801b03905116606084015251608083015251151560a0820152f35b50346119a95760203660031901126119a9576004356001600160401b0381116119a9576114f6903690600401612600565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038116939290913385900361004c5781602091810103126119a9573561154c60ff60035460b01c169161286f565b61155461314d565b90604051926115628461287f565b1515835260208084019182526001600160a01b03928316604080860191825251633cf3645360e21b815260075485166004820152600854808616602483015260a081901c62ffffff16604483015260b81c60020b6064820152600954851660848201529451151560a4860152915160c4850152905190911660e48301526101206101048301525f61012483018190528290610144908290885af190811561199e575f91611a54575b5060035460b01c60ff16156119f4578060801d5f81600f0b126119cc575b505f81600f0b136119ad575b8060801d9381600f0b9185600f0b5f81125f146119255750600754949586956001600160a01b0316833b156119215760405190632961046560e21b82526004820152868160248183885af19081156119165787916118fd575b50506007546116bd916001600160a01b039091169084906001600160801b03906116b69061293e565b1691613919565b604051630476982d60e21b815260208160048189875af180156118f2576118d3575b505b8483121561183d57506008546001600160a01b0316813b15610d3c5760405190632961046560e21b82526004820152848160248183865af1908115611832578591611818575b5050600854602092611751916001600160a01b03169083906001600160801b03906116b69061293e565b600460405180958193630476982d60e21b83525af1908115610d405761178692610bda926117e9575b505b60a0610bd3612955565b61178e61350f565b60035460b01c60ff16156117dc5760020b9060020b125b6117cd576040516117c9916117bb60208361291b565b815260405191829182612738565b0390f35b63eede5df960e01b8152600490fd5b60020b9060020b136117a5565b61180a9060203d602011611811575b611802818361291b565b8101906131d8565b505f61177a565b503d6117f8565b816118229161291b565b61182d57835f611727565b505050fd5b6040513d87823e3d90fd5b90919380939413611858575b505050610bda6117869161177c565b6008546001600160a01b0316823b15610d3857604051630b0d9c0960e01b8152928492849283918591839161189e916001600160801b03909116903090600485016131b6565b03925af180156118c8576118b3575b80611849565b816118bd9161291b565b61050b57815f6118ad565b6040513d84823e3d90fd5b6118eb9060203d60201161181157611802818361291b565b505f6116df565b6040513d88823e3d90fd5b816119079161291b565b61191257855f61168d565b8580fd5b6040513d89823e3d90fd5b8680fd5b5f12611934575b8495506116e1565b6007546001600160a01b031695823b156119a957604051630b0d9c0960e01b8152965f9188918291611977916001600160801b03909116903090600485016131b6565b038183865af1801561199e571561192c579350935f6119959161291b565b5f92849061192c565b6040513d5f823e3d90fd5b5f80fd5b600c546119c4906001600160801b038316906127b9565b600c55611634565b6119eb906001600160801b03906119e29061293e565b16600b546127b9565b600b555f611628565b80600f0b5f8112611a35575b508060801d5f81600f0b13611a16575b50611634565b600c54611a2c916001600160801b0316906127b9565b600c555f611a10565b611a4b906001600160801b03906119e29061293e565b600b555f611a00565b90506020813d602011611a7e575b81611a6f6020938361291b565b810103126119a957515f61160a565b3d9150611a62565b346119a9575f3660031901126119a9576020601054604051908152f35b346119a9575f3660031901126119a9576020601d54604051908152f35b346119a9575f3660031901126119a9576020601e54604051908152f35b346119a9575f3660031901126119a9576001546040516001600160a01b039091168152602090f35b346119a95760203660031901126119a9576004355f526013602052602060405f2054604051908152f35b346119a9576101003660031901126119a957611b496125ca565b5060a03660231901126119a957611b5e612722565b50611b676125f0565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303611c775742600455611ba8600254426127b9565b60055560ff60065416600160ff1960065416176006556004811015611c635760807fa832766a05f1bd0298b0268308621777cfe1e4eea23afe7c06beea79bc6ddd2d916001604051915f805160206158458339815191525f80a3600454600554600d5490600e54928452602084015260408301526060820152a160035460b01c60ff1615611c5957620d89e85b62ffffff19601954169062ffffff16176019556020604051636fe7e6eb60e01b8152f35b620d89e719611c35565b634e487b7160e01b5f52602160045260245ffd5b63570c108560e11b5f5260045ffd5b346119a957611c94366126b9565b9450929150507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303611c7757611cd393612f17565b604080516001600160e01b03199093168352602083019190915290f35b346119a9575f3660031901126119a9576020600b54604051908152f35b346119a9575f3660031901126119a957602060035460020b604051908152f35b346119a95760403660031901126119a957611d466125ca565b6001600160a01b03165f908152601260205260409020805460243591908210156119a957602091611d7691612690565b90549060031b1c604051908152f35b346119a95760203660031901126119a957611d9e6125ca565b3068929eee149b4bd212685414611e41573068929eee149b4bd2126855611dc36129d2565b601f54421115611e3257600e5490611dde601e548093612862565b918215611e23575f8051602061582583398151915291602091600e55611e048482612a15565b6040519384526001600160a01b031692a23868929eee149b4bd2126855005b637363096360e11b5f5260045ffd5b63152b1b0d60e21b5f5260045ffd5b63ab143c065f526004601cfd5b346119a95760203660031901126119a957611e676125ca565b5f546001600160a01b03163303611ec6576001600160a01b03168015611eb7576001546001600160a01b038116611ea8576001600160a01b03191617600155005b631241ac0960e21b5f5260045ffd5b63ed5f09f160e01b5f5260045ffd5b638341a67960e01b5f5260045ffd5b346119a9576101403660031901126119a957611eef6125ca565b60a03660231901126119a95760603660c31901126119a957610124356001600160401b0381116119a957611f27903690600401612600565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303611c7757306001600160a01b0390911603611f875760606040516315d7892d60e21b81525f60208201525f6040820152f35b638e00b19d60e01b5f5260045ffd5b346119a9575f3660031901126119a9576020600d54604051908152f35b346119a9575f3660031901126119a957602060035460181c60020b604051908152f35b346119a9575f3660031901126119a9576020600554604051908152f35b346119a95760203660031901126119a9576004358015158091036119a9575f546001600160a01b03163303611ec65760ff600a54166120695760035460ff8160b81c1661205a5761ffff60b01b191660b09190911b60ff60b01b1617600160b81b17600355005b63905a47ad60e01b5f5260045ffd5b62dc149f60e41b5f5260045ffd5b346119a9575f3660031901126119a957602060ff600a54166040519015158152f35b346119a9575f3660031901126119a9576020601a54604051908152f35b346119a9575f3660031901126119a9576020600a5460081c60020b604051908152f35b346119a95760203660031901126119a95760206120f76004356127da565b604051908152f35b346119a95761210d3661262d565b50909290507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303611c7757306001600160a01b03821603612281575b5060ff600654166004811015611c6357600103612272576005544210156122635760606121809101612a57565b9060208101916121a161219284612a57565b61219b84612a57565b90612c26565b9060020b9060020b03612254576121b661350f565b6003549260ff8460b01c165f1461223357506121d182612a57565b9060020b9060020b126122245760406121ec915b01356138f4565b6001600160801b0360309290921c82169116106122155760405163259982e560e01b8152602090f35b63ab17922760e01b5f5260045ffd5b633b7caccd60e21b5f5260045ffd5b61223c90612a57565b9060020b9060020b136122245760406121ec916121e5565b633868ddbd60e01b5f5260045ffd5b638083ad0360e01b5f5260045ffd5b6334dc687f60e11b5f5260045ffd5b61228a9061396a565b82612153565b346119a9575f3660031901126119a95760035460405160309190911c6001600160801b03168152602090f35b346119a9576122ca3661262d565b919392507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303611c775760209361230a93612a97565b6040516001600160e01b03199091168152f35b346119a95760203660031901126119a9576004353068929eee149b4bd212685414611e41573068929eee149b4bd212685560ff600654166004811015611c635760030361245257601f544211612443575f81815260116020526040902080549091906001600160a01b03161561243457600382019182549260ff8416612425577ffe542bcb2f15de271468211386057898a183c9a98a1c824a4094b76180e1758e9160209160016123cd866127da565b9660ff19161790556123e185601e546127b9565b601e558461240a575b546040519485526001600160a01b031693a33868929eee149b4bd2126855005b80546124209086906001600160a01b0316612a15565b6123ea565b630c8d9eab60e31b5f5260045ffd5b636ec9be1160e01b5f5260045ffd5b630c89414f60e41b5f5260045ffd5b63472fd19960e01b5f5260045ffd5b346119a95760203660031901126119a95761247a6125e0565b60020b5f526015602052606060405f2080549060ff600260018301549201541690604051928352602083015215156040820152f35b346119a95760203660031901126119a9576124c86125ca565b6124d06129d2565b601a5461252257600e549081156125135760205f80516020615825833981519152915f600e556125008482612a15565b6040519384526001600160a01b031692a2005b637ecea47d60e11b5f5260045ffd5b631481bc7960e21b5f5260045ffd5b346119a9575f3660031901126119a957600754600854600954604080516001600160a01b039485168152838516602082015260a084811c62ffffff169282019290925260b89390931c60020b606084015292166080820152f35b346119a9575f3660031901126119a9576020600254604051908152f35b346119a9575f3660031901126119a95760209060ff60035460b81c1615158152f35b600435906001600160a01b03821682036119a957565b600435908160020b82036119a957565b60e435908160020b82036119a957565b9181601f840112156119a9578235916001600160401b0383116119a957602083818601950101116119a957565b906101606003198301126119a9576004356001600160a01b03811681036119a9579160a06023198201126119a957602491608060c3198301126119a95760c49161014435906001600160401b0382116119a95761268c91600401612600565b9091565b80548210156126a5575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b906101a06003198301126119a9576004356001600160a01b03811681036119a9579160a06023198201126119a957602491608060c3198301126119a95760c4916101443591610164359161018435906001600160401b0382116119a95761268c91600401612600565b60c435906001600160a01b03821682036119a957565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b6101206003198201126119a9576004356001600160a01b03811681036119a9579160a06023198301126119a95760249160c4359160e4359161010435906001600160401b0382116119a95761268c91600401612600565b919082018092116127c657565b634e487b7160e01b5f52601160045260245ffd5b6127e381612c43565b156128395760a0015161285d576127f990612cc0565b801561285d5760ff600654166004811015611c635760038114908115612852575b501561283f57601a545b80156128395761283691600e54612e6a565b90565b50505f90565b61284d601d54610e4f613b1a565b612824565b60029150145f61281a565b505f90565b919082039182116127c657565b600160ff1b81146127c6575f0390565b606081019081106001600160401b0382111761289a57604052565b634e487b7160e01b5f52604160045260245ffd5b60c081019081106001600160401b0382111761289a57604052565b6101c081019081106001600160401b0382111761289a57604052565b60a081019081106001600160401b0382111761289a57604052565b60e081019081106001600160401b0382111761289a57604052565b601f909101601f19168101906001600160401b0382119082101761289a57604052565b600f0b60016001607f1b031981146127c6575f0390565b60405190612962826128e5565b6007546001600160a01b039081168352600854808216602085015260a081901c62ffffff16604085015260b81c60020b6060840152600954166080830152565b604051906129af826128ae565b5f60a0838281528260208201528260408201528260608201528260808201520152565b5f546001600160a01b03163303611ec65760ff600654166004811015611c63576003036124525760ff600f541615612a0657565b6308a027c760e31b5f5260045ffd5b90612a449160ff60035460b01c165f14612a46576007546001600160a01b03165b6001600160a01b0316613919565b565b6008546001600160a01b0316612a36565b358060020b81036119a95790565b60609190911b6001600160601b031916815260e891821b601482015291901b6017820152601a810191909152603a0190565b919290916001600160a01b0381163014612bfb57612ab49061396a565b60ff60065416926004841015611c635760018403612be257612ad79293506139ab565b612ae082612a57565b90612b0a612af060208501612a57565b6110d3604051938492602084019660608901359288612a65565b5190205f52601360205260405f2054801561243457612b2b61125983612a57565b612bd3575f526011602052612ba461066e6040805f20938151612b4d816128ae565b855460018060a01b03811682528060a01c60020b602083015260b81c60020b8382015260a060ff600360018060801b0360018a0154169860608501998a52600281015460808601520154161515910152013561286f565b90516001600160801b03908116911603612bc4575b63021d0ee760e41b90565b632b3dd84160e01b5f5260045ffd5b63bdc9917160e01b5f5260045ffd5b505050600203612bb9576334dc687f60e11b5f5260045ffd5b5063021d0ee760e41b9392505050565b60020b5f190190627fffff198212627fffff8313176127c657565b600291820b910b0390627fffff198212627fffff8313176127c657565b612c4b6129a2565b505f52601160205260405f2090604051612c64816128ae565b82546001600160a01b03811680835260a082811c600290810b602086015260b89390931c830b604085015260018601546001600160801b0316606085015291850154608084015260039094015460ff1615159082015291151590565b90612cca82612c43565b92909215612d25575f52601c60205260405f205491606081019060018060801b03825116612cf6575050565b612836929391816080612d126020610e4f95015160020b613a0b565b92600180831b0390511691015191613ade565b505f9150565b808202905f1983820990828083109203918083039283620f424011156119a95714612d8b577fde8f6cefed634549b62c77574f722e1ac57e23f24d8fd5cb790fb65668c2613993620f4240910990828211900360fa1b910360061c170290565b5050620f424091500490565b81810291905f1982820991838084109303928084039384600160601b11156119a95714612dd757600160601b910990828211900360a01b910360601c1790565b50505060601c90565b90606082901b905f19600160601b8409928280851094039380850394858411156119a95714612e63578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b91818302915f19818509938380861095039480860395868511156119a95714612ee2579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b818102929181159184041417156127c657565b6001600160801b0391821681529116602082015260400190565b9092906001600160a01b03163014612f405760ff600654166004811015611c6357600114612f51575b50633615df3f60e11b925f92509050565b612f6691612f61610f3f85612a57565b6139ab565b612f6f82612a57565b90612f7f612af060208501612a57565b519020805f52601360205260405f2054908161309f575b5050612fa861066e604083013561286f565b612fb182612a57565b60020b5f90815260146020526040902080546001600160801b03838116918116919091039081116127c65781546001600160801b0319166001600160801b03919091161790557f56228732ed42cef18541839aa891a63aa1b23de11cf839c40e79aaa43109656e61302183612a57565b61302a84612a57565b60020b5f52601460205260018060801b0360405f2054169061305560405192839260020b9583612efd565b0390a261306181612a57565b60020b5f908152601460205260409020546001600160801b031615613088575b8080612f40565b61309461309991612a57565b613d52565b5f613081565b5f8281526011602052604090206001810180549091906001600160801b031680613118575b50506130cf83613c7a565b80546001600160801b03191690555f9081526013602052604081208190557f99319fa1a5fca42d549d4d49989116496775f906f62e0e2ff2ea3c3aacdefa279080a25f80612f96565b613126906002830154612eea565b905460a01c60020b5f52601b60205261314460405f20918254612862565b90555f806130c4565b61315d61315861350f565b613556565b6001600160a01b0381166401000276a38111156131ab5773fffd8963efd1fc6a506488495d951d5263988d2611156131925790565b5073fffd8963efd1fc6a506488495d951d5263988d2590565b50506401000276a490565b6001600160a01b03918216815291166020820152604081019190915260600190565b908160209103126119a9575190565b91906131f4602091613e44565b604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa91821561199e575f92613252575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b9091506020813d60201161327e575b8161326e6020938361291b565b810103126119a95751905f61322a565b3d9150613261565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b0316116134a857693627a301d71055774c85602082901b600160201b600160c01b03168060ff6132da82613e6a565b16916080831061349c5750607e1982011c5b800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c600160321b90800260cd1c169d600160331b9060cc1c169c600160341b9060cb1c169b600160351b9060ca1c169a600160361b9060c91c1699600160371b9060c81c1698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c1690607f190160401b1717171717171717171717171717026fdb2df09e81959a81455e260799a0632f6f028f6481ab7f045a5af012a19d003aa919820160801d60020b910160801d60020b918282145f146134785750905090565b6001600160a01b039081169061348d84613556565b1611613497575090565b905090565b905081607f031b6132ec565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b5f1981146127c65760010190565b60020b60010190627fffff8213627fffff198312176127c657565b9060020b9060020b0190627fffff198212627fffff8313176127c657565b60035460ff8160b81c16156135475760ff8160b01c165f146135315760020b90565b60181c60020b627fffff1981146127c6575f0390565b63500b395360e01b5f5260045ffd5b60020b908160ff1d82810118620d89e881116138705763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b189160028116613854575b60048116613838575b6008811661381c575b60108116613800575b602081166137e4575b604081166137c8575b608081166137ac575b6101008116613790575b6102008116613774575b6104008116613758575b610800811661373c575b6110008116613720575b6120008116613704575b61400081166136e8575b61800081166136cc575b6201000081166136b0575b620200008116613695575b62040000811661367a575b6208000016613661575b5f12613659575b0160201c90565b5f1904613652565b6b048a170391f7dc42444e8fa290910260801c9061364b565b6d2216e584f5fa1ea926041bedfe9890920260801c91613641565b916e5d6af8dedb81196699c329225ee6040260801c91613636565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c9161362b565b916f31be135f97d08fd981231505542fcfa60260801c91613620565b916f70d869a156d2a1b890bb3df62baf32f70260801c91613616565b916fa9f746462d870fdf8a65dc1f90e061e50260801c9161360c565b916fd097f3bdfd2022b8845ad8f792aa58250260801c91613602565b916fe7159475a2c29b7443b29c7fa6e889d90260801c916135f8565b916ff3392b0822b70005940c7a398e4b70f30260801c916135ee565b916ff987a7253ac413176f2b074cf7815e540260801c916135e4565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c916135da565b916ffe5dee046a99a2a811c461f1969c30530260801c916135d0565b916fff2ea16466c96a3843ec78b326b528610260801c916135c7565b916fff973b41fa98c081472e6896dfb254c00260801c916135be565b916fffcb9843d60f6159c9db58835c9266440260801c916135b5565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c916135ac565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c916135a3565b916ffff97272373d413259a46990580e213a0260801c9161359a565b826345c3193d60e11b5f5260045260245ffd5b6001600160a01b03168061389657504790565b6020602491604051928380926370a0823160e01b82523060048301525afa90811561199e575f916138c5575090565b90506020813d6020116138ec575b816138e06020938361291b565b810103126119a9575190565b3d91506138d3565b600160801b81101561390c576001600160801b031690565b6335278d125f526004601cfd5b919060145260345263a9059cbb60601b5f5260205f6044601082855af1908160015f5114161561394c575b50505f603452565b3b153d17101561395d575f80613944565b6390b8ec185f526004601cfd5b6001546001600160a01b031690811561399c576001600160a01b03160361398d57565b635025667760e11b5f5260045ffd5b63185f14f160e31b5f5260045ffd5b906014036139ba573560601c90565b6313dd407360e21b5f5260045ffd5b6139db60085460b81c60020b826134f1565b9060ff60035460b01c165f146139fa575060195460020b9060020b1390565b905060195460020b9060020b131590565b60020b5f52601560205260405f2060405190613a268261287f565b80549182815260ff60026001840154938460208501520154161515806040830152829381613ad4575b50613a5957505090565b60ff600654166004811015611c635760038114908115613ac9575b5015613aaf57600554905b5190818111613a8f575b50505090565b613aa7935090613a9e91612862565b60801b906127b9565b5f8080613a89565b6005548042115f14613ac2575b90613a7f565b5042613abc565b60029150145f613a74565b905015155f613a4f565b6001600160801b039091169081158015613b10575b613b095761283692613b0491612862565b612eea565b5050505f90565b5082811115613af3565b5f9060175460ff8160301c1615612d25578060020b9060181c60020b9060085460b81c60020b905b828160020b1315613b5257505050565b613b5e613b6791612c0b565b610da3846134d6565b158015613bf7575b613bf257613b7d828261438a565b8060020b90815f52601460205260018060801b0360405f2054169081613baf575b505050613baa906134d6565b613b42565b90613b04613bbc92613a0b565b905f52601b60205260405f205490818111613bd8575b80613b9e565b95610e4f613bea92613baa9498612862565b94905f613bd2565b505050565b50828160020b13613b6f565b60020b5f52601560205260405f20600554908142115f14613c7357815b815490811015613bf25760ff60028301541680613c6a575b613c40575055565b613c4a9083612862565b80613c53575055565b613c65600183019160801b82546127b9565b905555565b50801515613c38565b4291613c20565b5f81815260116020526040902080546001600160a01b038116158015613d3d575b613bf25760a01c60020b5f526015602052600160405f2001613cd28154600260018060801b03600186015416940193845491613ade565b80613cde575b50505050565b7f8c604db61ba06f8610b6c68ac9796a6271dbb25c72d6187c153aecca65039cd492602092855f52601c845260405f20613d198482546127b9565b9055613d2783601d546127b9565b601d55549055604051908152a25f808080613cd8565b5060018201546001600160801b031615613c9b565b613d5b906143fd565b613d64816151b1565b9060010b5f526016602052600160ff60405f205492161b1615613e4157613d8a81614447565b60185480156127c6575f19016018819055613daf57506017805460ff60301b19169055565b6017548060020b8260020b8181145f14613df757505050613ddc60175491610da38360181c60020b6134d6565b613de5575b5050565b62ffffff169062ffffff191617601755565b826018949293941c60020b14613e0c57505050565b613e18613e1e92612c0b565b906141e9565b613e26575050565b60181b65ffffff000000169065ffffff000000191617601755565b50565b604051602081019182526006604082015260408152613e6460608261291b565b51902090565b80156119a9577b01c1818141808140018080c0814100004181408140c0c100414140c160221b601f6f8421084210842108cc6318c6db6d54be6001600160801b03841160071b84811c6001600160401b031060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b600281900b5f908152601460205260409020546001600160801b0316613e4157613f15906143fd565b613f1e81614447565b613f296018546134c8565b60185560175460ff8160301c16155f14613f6d575060175490600160301b9162ffffff82169066ffffffffffffff1916179060181b65ffffff000000161717601755565b908060020b918060020b8312613f93575b50601754918260181c60020b12613e26575050565b62ffffff191662ffffff8216176017555f613f7e565b6019548060020b613fd4613fbb61446d565b60ff60035460b01c169060085460b81c60020b91615086565b918260020b90828214613cd85762ffffff191662ffffff8416176019557f360ac5802b06d23803589cb36bf71bab382e98c2aaa5882d14f01530ac7d52339260209261402091906150f7565b604051908152a1565b915f91825b156140365750565b9260010160020b92614047846151b1565b949060010b5f5260166020525f19600160ff87161b011960405f205416948515801596875f146141d45780916119a95760ff906001600160801b038116156141ca575050607f5b6001600160401b038216156141c05760ff603f1991160160ff81116127c6575b63ffffffff8216156141b65760ff601f1991160160ff81116127c6575b61ffff8216156141ac5760ff600f1991160160ff81116127c6575b60ff8216156141a25760ff60071991160160ff81116127c6575b600f8216156141985760ff60031991160160ff81116127c6575b600382161561418c5760ff60011991160160ff81116127c657600190915b16614176575b9060ff91031660020b0160020b935b61416f575f938160020b8160020b1215614167579361402e565b5092505f9150565b5060019150565b60ff5f199116019060ff82116127c6579061413e565b9060019060021c614138565b9060041c9061411a565b9060081c90614100565b9060101c906140e6565b9060201c906140cb565b9060401c906140ae565b60801c915061408e565b505060ff9081031660020b0160020b9361414d565b915f915b926141f7816151b1565b600191820b5f9081526016602052604090205460ff821692831b80015f190116801580159493909190826143785750805f926119a957600160801b811015614369575b50600160401b811015614351575b600160201b811015614339575b62010000811015614321575b610100811015614309575b60108110156142f1575b80600460029210156142d8575b10156142c2575b60ff91031660020b900360020b905b6142ba578360020b8160020b1315612d25576142b490612c0b565b926141ed565b925060019150565b60ff60019116019060ff82116127c6579061428a565b60ff90821c92160160ff81116127c65760029091614283565b60ff600491821c92160160ff81116127c65790614276565b60ff600891821c92160160ff81116127c6579061426c565b60ff601091821c92160160ff81116127c65790614261565b60ff602091821c92160160ff81116127c65790614255565b60ff604091821c92160160ff81116127c65790614248565b91505060801c6080905f61423a565b9250505060020b900360020b90614299565b9060020b9060020b02908160020b9182036127c657565b60020b9060020b9081156143c357627fffff1981145f198314166127c6570590565b634e487b7160e01b5f52601260045260245ffd5b9060020b9081156143c35760020b0790565b60020b627fffff1981146127c6575f190190565b60085460b81c60020b9061441182826143a1565b915f8260020b129182614431575b50506144285790565b612836906143e9565b61443b92506143d7565b60020b15155f8061441f565b614450906151b1565b9060010b5f526016602052600160ff60405f2092161b8154189055565b61447c600d54600e5490612862565b80156150685762ffffff61448e61314d565b926144a160ff60035460b01c169361286f565b604051936144ae8561287f565b1515845260208401526001600160a01b0390931660408301908152926144d2612955565b60405191905f6144e1846128e5565b5f845260208401965f88525f60408601525f60608601525f60808601528561452c60a085207f00000000000000000000000000000000000000000000000000000000000000006131e7565b99919293909916988960608a015216608088015260020b895260018060a01b03168552606083015160020b604086015286511515955f6020890151129160018060a01b0390511691604051976080890189811060018060401b0382111761289a5760405288526020880152604087015260608601526001926145b1602088015161286f565b9760018060a01b03865116905160020b62ffffff608088015116906145d860a08720613e44565b92600384018094116127c657604051631e2eaeaf60e01b815260048101949094526020846024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa93841561199e575f94615034575b506040519b6146478d612900565b8c525f60208d015260408c015260608b01525f60808b015260a08a015260018060801b031660c0890152865115155f1461502357610fff6080860151165b61ffff8116615002575062ffffff606086015116915b8851151580614fe3575b15614fd157506040516146b781612900565b5f81525f60208201525f60408201525f60608201525f60808201525f60a08201525f60c082015260018060a01b0360408a015116815260a08420604087015160020b60608b015160020b908951151561471082846143a1565b92825f82129182614fbb575b5050614fab575b15614e585761473182615525565b60ff81169490916001861b905f1982018281116127c65761477c92614755916127b9565b927f000000000000000000000000000000000000000000000000000000000000000061553b565b16801580159590614e3f57509260ff6147a46147ae9361479e6147b397613e6a565b906151f6565b1660020b90612c26565b61438a565b905b1515604083015260020b60208201819052620d89e719811215614e275750620d89e71960208201525b60208101516001600160a01b03906147f89060020b613556565b166060820181905260408a015188516001600160a01b03909116919015614e125760608901516001600160a01b031681105b15614e0c575060608801516001600160a01b0316905b60018060801b0360c08c015116916148588c5161286f565b62ffffff87169390926001600160a01b038316811015929091905f851215614ce35785620f4240039061488d82875f03612d2b565b8515614cd25761489e848684615626565b965b878210614c35575050958691620f424082145f14614c26575050845b935b15614c1857916148cd92615686565b905b60c085015260a084015260808301526001600160a01b031660408a0152602087015115614bcd57614909608082015160c0830151906127b9565b5f8112614bbe5761491b908a516151de565b8952602089015160a08201515f8112614bbe57614937916151c3565b60208a01525b604089015160608201516001600160a01b0391821691168103614b8f575060408101516149e8575b8651156149dc57602061497c91015160020b612c0b565b60020b60608901525b8551151560208701511515145f146149c2576149a788516020890151906151c3565b60208901515b505060408801516001600160a01b031661469b565b60208801516149d7895160208a0151906151c3565b6149ad565b6020015160020b61497c565b9360a084206149fe602087015160020b91613e44565b600481018091116127c6576040519060208201928352604082015260408152614a2860608261291b565b519020604051631afeb18d60e11b81526004810191909152600360248201525f816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa801561199e575f90614af4575b60209150015160801d8751614ae6575b60018060801b0360c08b01511690600f0b018060801c614ad9576001600160801b031660c08a015263ffffffff818116146127c65763ffffffff1660010193614965565b6393dafdf15f526004601cfd5b614aef9061293e565b614a95565b503d805f833e614b04818361291b565b8101906020818303126119a9578051906001600160401b0382116119a957019080601f830112156119a9578151916001600160401b03831161289a578260051b9060405193614b56602084018661291b565b84526020808501928201019283116119a957602001905b828210614b7f57505050602090614a85565b8151815260209182019101614b6d565b90516001600160a01b03168103614ba7575b50614985565b614bb090613286565b60020b60608901525f614ba1565b6393dafdf160e01b5f5260045ffd5b60a08101515f8112614bbe57614be4908a516151c3565b89526020890151614bfe608083015160c0840151906127b9565b5f8112614bbe57614c0e916151de565b60208a015261493d565b614c21926155bc565b6148cd565b614c3091876156ee565b6148bc565b96509650505084938115831517614cc5578315614c6357614c57868385615771565b958691015f03936148be565b6001600160a01b038611614ca757614ca2614c9d614c8e6001600160801b03851660608a901b6155b2565b6001600160a01b0386166127b9565b6157f0565b614c57565b614ca2614c9d614cc06001600160801b03851689612de0565b614c8e565b634f2461b85f526004601cfd5b614cdd8483876156b2565b966148a0565b9294939291908515614dfb57614cfa818385615686565b925b838510614d3c57614d2993945080965b15614d2e5791614d1b92615626565b809380620f424003916156ee565b6148cf565b614d37926156b2565b614d1b565b509150828215821517614cc5578515614de7576001600160a01b038111614da95760601b60018060801b0383168082061515910401915b6001600160a01b03821683811115614d9c57614d299390036001600160a01b03165b8096614d0c565b634323a5555f526004601cfd5b6001600160801b038316614dc281600160601b84612e6a565b9181156143c357600160601b9009614ddb575b91614d73565b60010180614dd5575f80fd5b91614df6614d29938284615717565b614d95565b614e068184846155bc565b92614cfc565b90614840565b60608901516001600160a01b0316811161482a565b620d89e812156147de57620d89e860208201526147de565b6147ae9250614e5394915060020b90612c26565b6147b3565b614e69614e64836134d6565b615525565b92909360ff8416946001861b905f1982019182116127c657614ead9119927f000000000000000000000000000000000000000000000000000000000000000061553b565b1690811590811595865f14614f715750614ec6906134d6565b906119a95760ff614f61614f6b95846147ae955f03167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a176151f6565b1660020b906134f1565b906147b5565b94509050614f7f91506134d6565b9162ffffff8160ff03116127c657614fa69262ffffff6147ae9260ff031660020b906134f1565b614f6b565b91614fb5906143e9565b91614723565b614fc592506143d7565b60020b1515825f61471c565b95509650505050506128369150613286565b50604089015160608801516001600160a01b03908116911614156146a5565b610fff62ffffff606088015116911690620f4240818302049101039161469b565b610fff6080860151600c1c16614685565b9093506020813d602011615060575b816150506020938361291b565b810103126119a95751925f614639565b3d9150615043565b5060035460b01c60ff161561507e57620d89e890565b620d89e71990565b909190156150c5575f8260020b125f146150b8576147ae816150b36150ae8261283696612c26565b6134d6565b6143a1565b6147ae81612836936143a1565b5f8260020b125f146150de576147ae81612836936143a1565b6147ae816150b36150f282612836966134f1565b612c0b565b9060ff60175460301c1615613de15760085460b81c60020b9060ff60035460b01c1692835f146151a3578060020b8260020b125b1561517157612a4493508260ff60035460b01c165f14615162576151566150ae8261515c9495612c26565b92612c26565b906153c8565b5061516c906134d6565b6153c8565b9082612a44945f14615194576151566150ae8261518e9495612c26565b9061520a565b5061519e906134d6565b61520a565b8060020b8260020b1361512b565b9060ff8260020b60081d60010b921690565b9190915f83820193841291129080158216911516176127c657565b81810392915f1380158285131691841216176127c657565b9060ff8091169116039060ff82116127c657565b91909161521782826143a1565b90825f8260020b1391826153b2575b505061539b575b9061523b816152609361438a565b9261524682826143a1565b90825f8260020b129182615385575b505061537c5761438a565b908160020b8160020b13613de15761527a615280916143fd565b916143fd565b6017548060020b808460020b12615374575b5060181c60020b808260020b1361536c575b508060020b91828160020b13613bf2575b828160020b13156152c557505050565b610d9a6152d191612c0b565b158015615360575b613bf25761535b906152f360085460b81c60020b8261438a565b600281810b91825f52601560205261530e60405f2091613c03565b0160ff198154169055805f5260146020527f1fd92dd789e8ac301fd676a998b2cc37eeed03ecaca912737aea2de45dbfa952602060018060801b0360405f205416604051908152a26134d6565b6152b5565b50828160020b136152d9565b90505f6152a4565b92505f615292565b6147ae906143e9565b61538f92506143d7565b60020b1515825f615255565b60020b90627fffff82146127c6579060010161522d565b6153bc92506143d7565b60020b1515825f615226565b9190916153d582826143a1565b90825f8260020b13918261550f575b50506154f8575b9061523b816153f99361438a565b908160020b8160020b13613de15761527a615413916143fd565b6017548060020b808460020b126154f0575b5060181c60020b808260020b136154e8575b508060020b91828160020b13613bf2575b828160020b131561545857505050565b610d9a61546491612c0b565b1580156154dc575b613bf2576154d79061548660085460b81c60020b8261438a565b60020b805f526015602052600260405f2042815501600160ff19825416179055805f5260146020525f80516020615805833981519152602060018060801b0360405f205416604051908152a26134d6565b615448565b50828160020b1361546c565b90505f615437565b92505f615425565b60020b90627fffff82146127c657906001016153eb565b61551992506143d7565b60020b1515825f6153e4565b60020b9060ff6101008360081d60010b93071690565b919061554690613e44565b90600582018092116127c657602091604051908382019260010b835260408201526040815261557660608261291b565b519020604051631e2eaeaf60e01b8152600481019190915291829060249082906001600160a01b03165afa90811561199e575f916138c5575090565b81156143c3570490565b906001600160a01b0380821690831611615620575b6001600160a01b038216918215615614576128369361560f926001600160a01b0380821693909103169060601b600160601b600160e01b0316612e6a565b6155b2565b62bfc9215f526004601cfd5b906155d1565b6001600160a01b0382811690821611615680575b6001600160a01b03811692831561561457615674926001600160a01b0380821693909103169060601b600160601b600160e01b03166156ee565b90808206151591040190565b9061563a565b612836926001600160a01b03928316919092160360ff81901d90810118906001600160801b0316612d97565b6001600160a01b0391821691160360ff81901d90810118906001906001600160801b03166156e08382612d97565b928260601b91091515160190565b9291906156fc828286612e6a565b9382156143c3570961570a57565b906001019081156119a957565b9190811561576c576001600160a01b03909216918183029160609190911b600160601b600160e01b03169082048314828211161561575f5761283692614c9d928203916156ee565b63f5c787f15f526004601cfd5b505090565b9190811561576c5760601b600160601b600160e01b0316916001600160a01b031690808202826157a183836155b2565b146157ce575b506157b56157ba92846155b2565b6127b9565b80820491061515016001600160a01b031690565b83018381106157a7576001600160a01b03936157ec939192506156ee565b1690565b6001600160a01b03811691908203614bbe5756fec8d91e589f6bbb26714a08d1a59fb08e98c9f6e31d97596f7a8a7d2a49913f502c72687de19bad2b0040ca13a6c56d4eb94bd30b6102c489f7f99629dfe2ee5eeeb345fea22465c927333e05d324ee5b476597701d8be7e5d9aacc60e7aefbafa164736f6c634300081a000a";
|
|
@@ -6535,9 +6669,13 @@ var rehypeDopplerHookMigratorAbi = [
|
|
|
6535
6669
|
// src/evm/utils/tokenAddressMiner.ts
|
|
6536
6670
|
var DEFAULT_MAX_ITERATIONS = 1e6;
|
|
6537
6671
|
var TOKEN_FACTORY_80_ADDRESS = "0xf0B5141dD9096254B2ca624dff26024f46087229";
|
|
6672
|
+
var BASE_SEPOLIA_DOPPLER404_FACTORY = "0x98b0Aa2e0f134dbB3eb157b5646D387E6D55243a";
|
|
6538
6673
|
function isTokenFactory80(tokenFactory) {
|
|
6539
6674
|
return tokenFactory.toLowerCase() === TOKEN_FACTORY_80_ADDRESS.toLowerCase();
|
|
6540
6675
|
}
|
|
6676
|
+
function getDopplerDN404Bytecode(tokenFactory) {
|
|
6677
|
+
return tokenFactory.toLowerCase() === BASE_SEPOLIA_DOPPLER404_FACTORY.toLowerCase() ? dopplerDN404BaseSepolia_default : dopplerDN404_default;
|
|
6678
|
+
}
|
|
6541
6679
|
var STANDARD_TOKEN_DATA_ABI = [
|
|
6542
6680
|
{ type: "string" },
|
|
6543
6681
|
{ type: "string" },
|
|
@@ -6658,7 +6796,7 @@ function buildTokenInitHash(params) {
|
|
|
6658
6796
|
v2Implementation
|
|
6659
6797
|
} = params;
|
|
6660
6798
|
if (variant === "doppler404") {
|
|
6661
|
-
const [name2, symbol2, baseURI] = viem.decodeAbiParameters(
|
|
6799
|
+
const [name2, symbol2, baseURI, unit] = viem.decodeAbiParameters(
|
|
6662
6800
|
DOPPLER404_TOKEN_DATA_ABI,
|
|
6663
6801
|
tokenData
|
|
6664
6802
|
);
|
|
@@ -6669,14 +6807,15 @@ function buildTokenInitHash(params) {
|
|
|
6669
6807
|
{ type: "uint256" },
|
|
6670
6808
|
{ type: "address" },
|
|
6671
6809
|
{ type: "address" },
|
|
6672
|
-
{ type: "string" }
|
|
6810
|
+
{ type: "string" },
|
|
6811
|
+
{ type: "uint256" }
|
|
6673
6812
|
],
|
|
6674
|
-
[name2, symbol2, initialSupply, recipient, owner, baseURI]
|
|
6813
|
+
[name2, symbol2, initialSupply, recipient, owner, baseURI, unit]
|
|
6675
6814
|
);
|
|
6676
6815
|
return viem.keccak256(
|
|
6677
6816
|
viem.encodePacked(
|
|
6678
6817
|
["bytes", "bytes"],
|
|
6679
|
-
[customBytecode ??
|
|
6818
|
+
[customBytecode ?? getDopplerDN404Bytecode(tokenFactory), initHashData2]
|
|
6680
6819
|
)
|
|
6681
6820
|
);
|
|
6682
6821
|
}
|
|
@@ -7360,37 +7499,18 @@ function normalizeUint32(value, label) {
|
|
|
7360
7499
|
}
|
|
7361
7500
|
return normalized;
|
|
7362
7501
|
}
|
|
7363
|
-
function encodeRehypeDopplerHookInitializerData(numeraire, config
|
|
7364
|
-
|
|
7365
|
-
return viem.encodeAbiParameters(rehypeInitializerDataAbi, [
|
|
7366
|
-
{
|
|
7367
|
-
numeraire,
|
|
7368
|
-
buybackDst: config.buybackDestination ?? ZERO_ADDRESS,
|
|
7369
|
-
startFee: config.startFee,
|
|
7370
|
-
endFee: config.endFee,
|
|
7371
|
-
durationSeconds: config.durationSeconds,
|
|
7372
|
-
startingTime: config.startingTime,
|
|
7373
|
-
feeRoutingMode: config.feeRoutingMode,
|
|
7374
|
-
feeDistributionInfo: config.feeDistributionInfo,
|
|
7375
|
-
feeBeneficiaries: config.feeBeneficiaries ?? []
|
|
7376
|
-
}
|
|
7377
|
-
]);
|
|
7378
|
-
}
|
|
7379
|
-
if (config.feeBeneficiaries !== void 0) {
|
|
7380
|
-
throw new Error(
|
|
7381
|
-
"Rehype fee beneficiaries are temporarily supported only on Base Sepolia until the remaining initializer deployments are upgraded"
|
|
7382
|
-
);
|
|
7383
|
-
}
|
|
7384
|
-
return viem.encodeAbiParameters(legacyRehypeInitializerDataAbi, [
|
|
7502
|
+
function encodeRehypeDopplerHookInitializerData(numeraire, config) {
|
|
7503
|
+
return viem.encodeAbiParameters(rehypeInitializerDataAbi, [
|
|
7385
7504
|
{
|
|
7386
7505
|
numeraire,
|
|
7387
|
-
buybackDst: config.buybackDestination,
|
|
7506
|
+
buybackDst: config.buybackDestination ?? ZERO_ADDRESS,
|
|
7388
7507
|
startFee: config.startFee,
|
|
7389
7508
|
endFee: config.endFee,
|
|
7390
7509
|
durationSeconds: config.durationSeconds,
|
|
7391
7510
|
startingTime: config.startingTime,
|
|
7392
7511
|
feeRoutingMode: config.feeRoutingMode,
|
|
7393
|
-
feeDistributionInfo: config.feeDistributionInfo
|
|
7512
|
+
feeDistributionInfo: config.feeDistributionInfo,
|
|
7513
|
+
feeBeneficiaries: config.feeBeneficiaries ?? []
|
|
7394
7514
|
}
|
|
7395
7515
|
]);
|
|
7396
7516
|
}
|
|
@@ -7408,25 +7528,6 @@ var feeDistributionComponents = [
|
|
|
7408
7528
|
{ name: "numeraireFeesToBeneficiaryWad", type: "uint256" },
|
|
7409
7529
|
{ name: "numeraireFeesToLpWad", type: "uint256" }
|
|
7410
7530
|
];
|
|
7411
|
-
var legacyRehypeInitializerDataAbi = [
|
|
7412
|
-
{
|
|
7413
|
-
type: "tuple",
|
|
7414
|
-
components: [
|
|
7415
|
-
{ name: "numeraire", type: "address" },
|
|
7416
|
-
{ name: "buybackDst", type: "address" },
|
|
7417
|
-
{ name: "startFee", type: "uint24" },
|
|
7418
|
-
{ name: "endFee", type: "uint24" },
|
|
7419
|
-
{ name: "durationSeconds", type: "uint32" },
|
|
7420
|
-
{ name: "startingTime", type: "uint32" },
|
|
7421
|
-
{ name: "feeRoutingMode", type: "uint8" },
|
|
7422
|
-
{
|
|
7423
|
-
name: "feeDistributionInfo",
|
|
7424
|
-
type: "tuple",
|
|
7425
|
-
components: feeDistributionComponents
|
|
7426
|
-
}
|
|
7427
|
-
]
|
|
7428
|
-
}
|
|
7429
|
-
];
|
|
7430
7531
|
var rehypeInitializerDataAbi = [
|
|
7431
7532
|
{
|
|
7432
7533
|
type: "tuple",
|
|
@@ -7835,42 +7936,44 @@ function tickToMarketCap(params) {
|
|
|
7835
7936
|
}
|
|
7836
7937
|
|
|
7837
7938
|
// src/evm/builders/shared.ts
|
|
7838
|
-
function
|
|
7839
|
-
|
|
7840
|
-
|
|
7841
|
-
|
|
7842
|
-
|
|
7939
|
+
function assertTokenConfigSupportsYearlyMintRate(params) {
|
|
7940
|
+
if ("yearlyMintRate" in params && params.type !== "standard") {
|
|
7941
|
+
throw new Error(
|
|
7942
|
+
"yearlyMintRate is only supported with token type 'standard'; DopplerERC20V1 does not support yearly minting."
|
|
7943
|
+
);
|
|
7944
|
+
}
|
|
7843
7945
|
}
|
|
7844
7946
|
function normalizeBuilderTokenConfig(params, defaultYearlyMintRate) {
|
|
7845
|
-
|
|
7947
|
+
assertTokenConfigSupportsYearlyMintRate(params);
|
|
7948
|
+
if (params.type === "doppler404") {
|
|
7949
|
+
const token = params;
|
|
7846
7950
|
return {
|
|
7847
|
-
type: "
|
|
7848
|
-
name:
|
|
7849
|
-
symbol:
|
|
7850
|
-
|
|
7851
|
-
|
|
7852
|
-
balanceLimitEnd: params.balanceLimitEnd,
|
|
7853
|
-
controller: params.controller,
|
|
7854
|
-
excludedFromBalanceLimit: params.excludedFromBalanceLimit
|
|
7951
|
+
type: "doppler404",
|
|
7952
|
+
name: token.name,
|
|
7953
|
+
symbol: token.symbol,
|
|
7954
|
+
baseURI: token.baseURI,
|
|
7955
|
+
unit: token.unit
|
|
7855
7956
|
};
|
|
7856
7957
|
}
|
|
7857
|
-
if (params.type === "
|
|
7858
|
-
const
|
|
7958
|
+
if (params.type === "standard") {
|
|
7959
|
+
const token = params;
|
|
7859
7960
|
return {
|
|
7860
|
-
type: "
|
|
7861
|
-
name:
|
|
7862
|
-
symbol:
|
|
7863
|
-
|
|
7864
|
-
|
|
7961
|
+
type: "standard",
|
|
7962
|
+
name: token.name,
|
|
7963
|
+
symbol: token.symbol,
|
|
7964
|
+
tokenURI: token.tokenURI,
|
|
7965
|
+
yearlyMintRate: token.yearlyMintRate ?? defaultYearlyMintRate
|
|
7865
7966
|
};
|
|
7866
7967
|
}
|
|
7867
|
-
const token = params;
|
|
7868
7968
|
return {
|
|
7869
|
-
type: "
|
|
7870
|
-
name:
|
|
7871
|
-
symbol:
|
|
7872
|
-
tokenURI:
|
|
7873
|
-
|
|
7969
|
+
type: "dopplerERC20V1",
|
|
7970
|
+
name: params.name,
|
|
7971
|
+
symbol: params.symbol,
|
|
7972
|
+
tokenURI: params.tokenURI,
|
|
7973
|
+
maxBalanceLimit: params.maxBalanceLimit,
|
|
7974
|
+
balanceLimitEnd: params.balanceLimitEnd,
|
|
7975
|
+
controller: params.controller,
|
|
7976
|
+
excludedFromBalanceLimit: params.excludedFromBalanceLimit
|
|
7874
7977
|
};
|
|
7875
7978
|
}
|
|
7876
7979
|
var MAX_SAFE_INTEGER_BIGINT = BigInt(Number.MAX_SAFE_INTEGER);
|
|
@@ -8004,6 +8107,9 @@ function buildCurvesFromPresets(params) {
|
|
|
8004
8107
|
// src/evm/entities/DopplerFactory.ts
|
|
8005
8108
|
var MAX_UINT1282 = (1n << 128n) - 1n;
|
|
8006
8109
|
var MAX_PROCEEDS_SPLIT_SHARE = WAD / 2n;
|
|
8110
|
+
function isDopplerHookMigratorConfig(config) {
|
|
8111
|
+
return config.type === "dopplerHookMigrator" || config.type === "dopplerHook";
|
|
8112
|
+
}
|
|
8007
8113
|
var DERC20_V1_MAX_PREMINT_WAD = WAD * 8n / 10n;
|
|
8008
8114
|
var ONE_MILLION = 1000000n;
|
|
8009
8115
|
var MAX_COMPLETION_ATTEMPTS = 3;
|
|
@@ -8257,7 +8363,7 @@ var DopplerFactory = class {
|
|
|
8257
8363
|
if ((migration.type === "uniswapV4" || migration.type === "uniswapV4Split") && migration.streamableFees) {
|
|
8258
8364
|
return [addresses.streamableFeesLocker];
|
|
8259
8365
|
}
|
|
8260
|
-
if (migration
|
|
8366
|
+
if (isDopplerHookMigratorConfig(migration)) {
|
|
8261
8367
|
return [
|
|
8262
8368
|
addresses.streamableFeesLockerV2 ?? addresses.streamableFeesLocker
|
|
8263
8369
|
];
|
|
@@ -8492,6 +8598,19 @@ var DopplerFactory = class {
|
|
|
8492
8598
|
);
|
|
8493
8599
|
}
|
|
8494
8600
|
}
|
|
8601
|
+
assertDoppler404Compatibility(args) {
|
|
8602
|
+
if (!this.isDoppler404Token(args.token)) {
|
|
8603
|
+
return;
|
|
8604
|
+
}
|
|
8605
|
+
if (!args.configuredFactory || args.configuredFactory === ZERO_ADDRESS) {
|
|
8606
|
+
throw new Error(
|
|
8607
|
+
"Doppler404 factory address not configured for this chain"
|
|
8608
|
+
);
|
|
8609
|
+
}
|
|
8610
|
+
if (args.vesting !== void 0) {
|
|
8611
|
+
throw new Error("Doppler404 tokens do not support vesting");
|
|
8612
|
+
}
|
|
8613
|
+
}
|
|
8495
8614
|
buildStandardTokenFactoryData(args) {
|
|
8496
8615
|
const { recipients, amounts } = this.resolveVestingAllocations(args);
|
|
8497
8616
|
const yearlyMintRate = args.token.yearlyMintRate ?? DEFAULT_V4_YEARLY_MINT_RATE;
|
|
@@ -8695,6 +8814,11 @@ var DopplerFactory = class {
|
|
|
8695
8814
|
async encodeCreateStaticAuctionParams(params) {
|
|
8696
8815
|
this.validateStaticAuctionParams(params);
|
|
8697
8816
|
const addresses = getAddresses(this.chainId);
|
|
8817
|
+
this.assertDoppler404Compatibility({
|
|
8818
|
+
token: params.token,
|
|
8819
|
+
vesting: params.vesting,
|
|
8820
|
+
configuredFactory: addresses.doppler404Factory
|
|
8821
|
+
});
|
|
8698
8822
|
const hasBeneficiaries = params.pool.beneficiaries && params.pool.beneficiaries.length > 0;
|
|
8699
8823
|
let poolInitializerData;
|
|
8700
8824
|
if (hasBeneficiaries) {
|
|
@@ -8803,7 +8927,7 @@ var DopplerFactory = class {
|
|
|
8803
8927
|
if (this.isDoppler404Token(params.token)) {
|
|
8804
8928
|
const token404 = params.token;
|
|
8805
8929
|
const baseURI = token404.baseURI;
|
|
8806
|
-
const unit = token404.unit !== void 0 ? BigInt(token404.unit) :
|
|
8930
|
+
const unit = token404.unit !== void 0 ? BigInt(token404.unit) : WAD;
|
|
8807
8931
|
tokenFactoryData = viem.encodeAbiParameters(
|
|
8808
8932
|
[
|
|
8809
8933
|
{ type: "string" },
|
|
@@ -9150,6 +9274,11 @@ var DopplerFactory = class {
|
|
|
9150
9274
|
async encodeCreateDynamicAuctionParams(params) {
|
|
9151
9275
|
this.validateDynamicAuctionParams(params);
|
|
9152
9276
|
const addresses = getAddresses(this.chainId);
|
|
9277
|
+
this.assertDoppler404Compatibility({
|
|
9278
|
+
token: params.token,
|
|
9279
|
+
vesting: params.vesting,
|
|
9280
|
+
configuredFactory: addresses.doppler404Factory
|
|
9281
|
+
});
|
|
9153
9282
|
const gamma = params.auction.gamma ?? computeOptimalGamma(
|
|
9154
9283
|
params.auction.startTick,
|
|
9155
9284
|
params.auction.endTick,
|
|
@@ -9186,13 +9315,6 @@ var DopplerFactory = class {
|
|
|
9186
9315
|
fee: params.pool.fee,
|
|
9187
9316
|
tickSpacing: params.pool.tickSpacing
|
|
9188
9317
|
};
|
|
9189
|
-
if (this.isDoppler404Token(params.token)) {
|
|
9190
|
-
if (!addresses.doppler404Factory || addresses.doppler404Factory === ZERO_ADDRESS) {
|
|
9191
|
-
throw new Error(
|
|
9192
|
-
"Doppler404 factory address not configured for this chain"
|
|
9193
|
-
);
|
|
9194
|
-
}
|
|
9195
|
-
}
|
|
9196
9318
|
const resolvedTokenFactoryDyn = params.modules?.tokenFactory ?? (this.isDoppler404Token(params.token) ? addresses.doppler404Factory : this.isDopplerERC20V1Token(params.token) ? params.modules?.dopplerERC20V1Factory ?? addresses.dopplerERC20V1Factory : this.usesDerc20V2Vesting(params.vesting) ? addresses.derc20V2Factory : addresses.tokenFactory);
|
|
9197
9319
|
if (!resolvedTokenFactoryDyn || resolvedTokenFactoryDyn === ZERO_ADDRESS) {
|
|
9198
9320
|
throw new Error(
|
|
@@ -9222,7 +9344,7 @@ var DopplerFactory = class {
|
|
|
9222
9344
|
name: t.name,
|
|
9223
9345
|
symbol: t.symbol,
|
|
9224
9346
|
baseURI: t.baseURI,
|
|
9225
|
-
unit: t.unit !== void 0 ? BigInt(t.unit) :
|
|
9347
|
+
unit: t.unit !== void 0 ? BigInt(t.unit) : WAD
|
|
9226
9348
|
};
|
|
9227
9349
|
})() : this.isDopplerERC20V1Token(params.token) ? this.resolveDopplerERC20V1TokenFactoryData({
|
|
9228
9350
|
token: params.token,
|
|
@@ -9458,6 +9580,11 @@ var DopplerFactory = class {
|
|
|
9458
9580
|
async encodeCreateOpeningAuctionParams(params) {
|
|
9459
9581
|
this.validateOpeningAuctionParams(params);
|
|
9460
9582
|
const addresses = getAddresses(this.chainId);
|
|
9583
|
+
this.assertDoppler404Compatibility({
|
|
9584
|
+
token: params.token,
|
|
9585
|
+
vesting: params.vesting,
|
|
9586
|
+
configuredFactory: addresses.doppler404Factory
|
|
9587
|
+
});
|
|
9461
9588
|
const openingAuctionInitializer = this.resolveOpeningAuctionInitializerAddress(params.modules, addresses);
|
|
9462
9589
|
const [poolManagerForAuction, auctionDeployer] = await Promise.all([
|
|
9463
9590
|
this.publicClient.readContract({
|
|
@@ -9562,13 +9689,6 @@ var DopplerFactory = class {
|
|
|
9562
9689
|
}
|
|
9563
9690
|
]
|
|
9564
9691
|
);
|
|
9565
|
-
if (this.isDoppler404Token(params.token)) {
|
|
9566
|
-
if (!addresses.doppler404Factory || addresses.doppler404Factory === ZERO_ADDRESS) {
|
|
9567
|
-
throw new Error(
|
|
9568
|
-
"Doppler404 factory address not configured for this chain"
|
|
9569
|
-
);
|
|
9570
|
-
}
|
|
9571
|
-
}
|
|
9572
9692
|
const resolvedTokenFactory = params.modules?.tokenFactory ?? (this.isDoppler404Token(params.token) ? addresses.doppler404Factory : this.isDopplerERC20V1Token(params.token) ? params.modules?.dopplerERC20V1Factory ?? addresses.dopplerERC20V1Factory : this.usesDerc20V2Vesting(params.vesting) ? addresses.derc20V2Factory : addresses.tokenFactory);
|
|
9573
9693
|
if (!resolvedTokenFactory || resolvedTokenFactory === ZERO_ADDRESS) {
|
|
9574
9694
|
throw new Error(
|
|
@@ -9592,7 +9712,7 @@ var DopplerFactory = class {
|
|
|
9592
9712
|
name: t.name,
|
|
9593
9713
|
symbol: t.symbol,
|
|
9594
9714
|
baseURI: t.baseURI,
|
|
9595
|
-
unit: t.unit !== void 0 ? BigInt(t.unit) :
|
|
9715
|
+
unit: t.unit !== void 0 ? BigInt(t.unit) : WAD
|
|
9596
9716
|
};
|
|
9597
9717
|
})() : this.isDopplerERC20V1Token(params.token) ? this.resolveDopplerERC20V1TokenFactoryData({
|
|
9598
9718
|
token: params.token,
|
|
@@ -10398,7 +10518,7 @@ var DopplerFactory = class {
|
|
|
10398
10518
|
{ type: "string" },
|
|
10399
10519
|
{ type: "uint256" }
|
|
10400
10520
|
],
|
|
10401
|
-
[t.name, t.symbol, t.baseURI, t.unit ??
|
|
10521
|
+
[t.name, t.symbol, t.baseURI, t.unit ?? WAD]
|
|
10402
10522
|
);
|
|
10403
10523
|
})() : params.tokenVariant === "dopplerERC20V1" ? this.encodeDopplerERC20V1TokenFactoryData(
|
|
10404
10524
|
params.tokenFactoryData
|
|
@@ -10415,7 +10535,8 @@ var DopplerFactory = class {
|
|
|
10415
10535
|
{ type: "uint256" },
|
|
10416
10536
|
{ type: "address" },
|
|
10417
10537
|
{ type: "address" },
|
|
10418
|
-
{ type: "string" }
|
|
10538
|
+
{ type: "string" },
|
|
10539
|
+
{ type: "uint256" }
|
|
10419
10540
|
],
|
|
10420
10541
|
[
|
|
10421
10542
|
t.name,
|
|
@@ -10423,13 +10544,19 @@ var DopplerFactory = class {
|
|
|
10423
10544
|
params.initialSupply,
|
|
10424
10545
|
params.airlock,
|
|
10425
10546
|
params.airlock,
|
|
10426
|
-
t.baseURI
|
|
10547
|
+
t.baseURI,
|
|
10548
|
+
t.unit ?? WAD
|
|
10427
10549
|
]
|
|
10428
10550
|
);
|
|
10429
10551
|
tokenInitHash = viem.keccak256(
|
|
10430
10552
|
viem.encodePacked(
|
|
10431
10553
|
["bytes", "bytes"],
|
|
10432
|
-
[
|
|
10554
|
+
[
|
|
10555
|
+
getDopplerDN404Bytecode(
|
|
10556
|
+
params.addresses?.doppler404Factory ?? params.tokenFactory
|
|
10557
|
+
),
|
|
10558
|
+
initData
|
|
10559
|
+
]
|
|
10433
10560
|
)
|
|
10434
10561
|
);
|
|
10435
10562
|
} else if (params.tokenVariant === "dopplerERC20V1") {
|
|
@@ -10513,7 +10640,8 @@ var DopplerFactory = class {
|
|
|
10513
10640
|
return token.type === "doppler404";
|
|
10514
10641
|
}
|
|
10515
10642
|
isDopplerERC20V1Token(token) {
|
|
10516
|
-
|
|
10643
|
+
assertTokenConfigSupportsYearlyMintRate(token);
|
|
10644
|
+
return token.type !== "standard" && token.type !== "doppler404";
|
|
10517
10645
|
}
|
|
10518
10646
|
/**
|
|
10519
10647
|
* Encode migration data based on the MigrationConfig
|
|
@@ -10523,6 +10651,12 @@ var DopplerFactory = class {
|
|
|
10523
10651
|
if (this.customMigrationEncoder) {
|
|
10524
10652
|
return this.customMigrationEncoder(config);
|
|
10525
10653
|
}
|
|
10654
|
+
if (config.type === "uniswapV2" && this.resolveUniswapV2Migrator(options?.overrides).isSplit) {
|
|
10655
|
+
return viem.encodeAbiParameters(
|
|
10656
|
+
[{ type: "address" }, { type: "uint256" }],
|
|
10657
|
+
[ZERO_ADDRESS, 0n]
|
|
10658
|
+
);
|
|
10659
|
+
}
|
|
10526
10660
|
switch (config.type) {
|
|
10527
10661
|
case "uniswapV2":
|
|
10528
10662
|
return "0x";
|
|
@@ -10596,24 +10730,25 @@ var DopplerFactory = class {
|
|
|
10596
10730
|
]
|
|
10597
10731
|
);
|
|
10598
10732
|
}
|
|
10599
|
-
case "dopplerHook":
|
|
10600
|
-
|
|
10601
|
-
|
|
10733
|
+
case "dopplerHook":
|
|
10734
|
+
case "dopplerHookMigrator": {
|
|
10735
|
+
const dopplerHookMigratorConfig = config;
|
|
10736
|
+
if (dopplerHookMigratorConfig.hook && dopplerHookMigratorConfig.rehype) {
|
|
10602
10737
|
throw new Error(
|
|
10603
|
-
"
|
|
10738
|
+
"dopplerHookMigrator migration cannot set both hook and rehype config. Use exactly one hook mode."
|
|
10604
10739
|
);
|
|
10605
10740
|
}
|
|
10606
10741
|
const beneficiaries = sortBeneficiaries(
|
|
10607
|
-
|
|
10742
|
+
dopplerHookMigratorConfig.beneficiaries
|
|
10608
10743
|
);
|
|
10609
10744
|
let dopplerHookAddress = ZERO_ADDRESS;
|
|
10610
10745
|
let onInitializationCalldata = "0x";
|
|
10611
|
-
if (
|
|
10612
|
-
dopplerHookAddress =
|
|
10613
|
-
onInitializationCalldata =
|
|
10614
|
-
} else if (
|
|
10746
|
+
if (dopplerHookMigratorConfig.hook) {
|
|
10747
|
+
dopplerHookAddress = dopplerHookMigratorConfig.hook.hookAddress;
|
|
10748
|
+
onInitializationCalldata = dopplerHookMigratorConfig.hook.onInitializationCalldata ?? "0x";
|
|
10749
|
+
} else if (dopplerHookMigratorConfig.rehype) {
|
|
10615
10750
|
const addresses = getAddresses(this.chainId);
|
|
10616
|
-
const resolvedRehypeHookAddress =
|
|
10751
|
+
const resolvedRehypeHookAddress = dopplerHookMigratorConfig.rehype.hookAddress ?? options?.overrides?.rehypeDopplerHookMigrator ?? addresses.rehypeDopplerHookMigrator;
|
|
10617
10752
|
if (!resolvedRehypeHookAddress) {
|
|
10618
10753
|
throw new Error(
|
|
10619
10754
|
"RehypeDopplerHookMigrator address not configured on this chain. Provide migration.rehype.hookAddress or override modules.rehypeDopplerHookMigrator."
|
|
@@ -10621,17 +10756,17 @@ var DopplerFactory = class {
|
|
|
10621
10756
|
}
|
|
10622
10757
|
if (!options?.numeraire) {
|
|
10623
10758
|
throw new Error(
|
|
10624
|
-
"numeraire is required to encode rehype
|
|
10759
|
+
"numeraire is required to encode rehype dopplerHookMigrator migration data"
|
|
10625
10760
|
);
|
|
10626
10761
|
}
|
|
10627
10762
|
dopplerHookAddress = resolvedRehypeHookAddress;
|
|
10628
10763
|
onInitializationCalldata = encodeRehypeDopplerHookMigratorCalldata({
|
|
10629
10764
|
numeraire: options.numeraire,
|
|
10630
|
-
config:
|
|
10765
|
+
config: dopplerHookMigratorConfig.rehype
|
|
10631
10766
|
});
|
|
10632
10767
|
}
|
|
10633
|
-
const proceedsRecipient =
|
|
10634
|
-
const proceedsShare =
|
|
10768
|
+
const proceedsRecipient = dopplerHookMigratorConfig.proceedsSplit?.recipient ?? ZERO_ADDRESS;
|
|
10769
|
+
const proceedsShare = dopplerHookMigratorConfig.proceedsSplit?.share ?? 0n;
|
|
10635
10770
|
return viem.encodeAbiParameters(
|
|
10636
10771
|
[
|
|
10637
10772
|
{ type: "uint24" },
|
|
@@ -10651,10 +10786,10 @@ var DopplerFactory = class {
|
|
|
10651
10786
|
{ type: "uint256" }
|
|
10652
10787
|
],
|
|
10653
10788
|
[
|
|
10654
|
-
|
|
10655
|
-
|
|
10656
|
-
|
|
10657
|
-
|
|
10789
|
+
dopplerHookMigratorConfig.fee,
|
|
10790
|
+
dopplerHookMigratorConfig.useDynamicFee ?? false,
|
|
10791
|
+
dopplerHookMigratorConfig.tickSpacing,
|
|
10792
|
+
dopplerHookMigratorConfig.lockDuration,
|
|
10658
10793
|
beneficiaries,
|
|
10659
10794
|
dopplerHookAddress,
|
|
10660
10795
|
onInitializationCalldata,
|
|
@@ -10763,10 +10898,20 @@ var DopplerFactory = class {
|
|
|
10763
10898
|
hookConfig: legacyHook
|
|
10764
10899
|
};
|
|
10765
10900
|
} else {
|
|
10766
|
-
mode = { type: "
|
|
10901
|
+
mode = { type: "rehype" };
|
|
10767
10902
|
}
|
|
10768
10903
|
} else {
|
|
10769
10904
|
switch (initializer.type) {
|
|
10905
|
+
case "dopplerHook":
|
|
10906
|
+
case "dopplerHookInitializer": {
|
|
10907
|
+
if (hasLegacySchedule || hasLegacyHook) {
|
|
10908
|
+
throw new Error(
|
|
10909
|
+
"Initializer type 'dopplerHookInitializer' cannot be combined with legacy schedule or RehypeDopplerHookInitializer configuration"
|
|
10910
|
+
);
|
|
10911
|
+
}
|
|
10912
|
+
mode = { type: "rehype" };
|
|
10913
|
+
break;
|
|
10914
|
+
}
|
|
10770
10915
|
case "standard": {
|
|
10771
10916
|
if (hasLegacySchedule || hasLegacyHook) {
|
|
10772
10917
|
throw new Error(
|
|
@@ -10869,7 +11014,7 @@ var DopplerFactory = class {
|
|
|
10869
11014
|
mode = { type: "rehype" };
|
|
10870
11015
|
} else if (mode.type !== "rehype") {
|
|
10871
11016
|
throw new Error(
|
|
10872
|
-
"modules.dopplerHookInitializer can only be used with the rehype or standard multicurve initializer mode"
|
|
11017
|
+
"modules.dopplerHookInitializer can only be used with the dopplerHookInitializer, rehype, or standard multicurve initializer mode"
|
|
10873
11018
|
);
|
|
10874
11019
|
}
|
|
10875
11020
|
}
|
|
@@ -10937,8 +11082,7 @@ var DopplerFactory = class {
|
|
|
10937
11082
|
dopplerHookAddress = hookConfig.hookAddress;
|
|
10938
11083
|
onInitializationDopplerHookCalldata = encodeRehypeDopplerHookInitializerData(
|
|
10939
11084
|
params.sale.numeraire,
|
|
10940
|
-
hookConfig
|
|
10941
|
-
this.chainId
|
|
11085
|
+
hookConfig
|
|
10942
11086
|
);
|
|
10943
11087
|
graduationDopplerHookCalldata = hookConfig.graduationCalldata ?? "0x";
|
|
10944
11088
|
}
|
|
@@ -11054,6 +11198,11 @@ var DopplerFactory = class {
|
|
|
11054
11198
|
]
|
|
11055
11199
|
);
|
|
11056
11200
|
}
|
|
11201
|
+
this.assertDoppler404Compatibility({
|
|
11202
|
+
token: params.token,
|
|
11203
|
+
vesting: params.vesting,
|
|
11204
|
+
configuredFactory: addresses.doppler404Factory
|
|
11205
|
+
});
|
|
11057
11206
|
const resolvedTokenFactory = params.modules?.tokenFactory ?? (this.isDoppler404Token(params.token) ? addresses.doppler404Factory : this.isDopplerERC20V1Token(params.token) ? params.modules?.dopplerERC20V1Factory ?? addresses.dopplerERC20V1Factory : this.usesDerc20V2Vesting(params.vesting) ? addresses.derc20V2Factory : addresses.tokenFactory);
|
|
11058
11207
|
if (!resolvedTokenFactory || resolvedTokenFactory === ZERO_ADDRESS) {
|
|
11059
11208
|
throw new Error(
|
|
@@ -11069,7 +11218,7 @@ var DopplerFactory = class {
|
|
|
11069
11218
|
let tokenFactoryData = void 0;
|
|
11070
11219
|
if (this.isDoppler404Token(params.token)) {
|
|
11071
11220
|
const token404 = params.token;
|
|
11072
|
-
const unit = token404.unit !== void 0 ? BigInt(token404.unit) :
|
|
11221
|
+
const unit = token404.unit !== void 0 ? BigInt(token404.unit) : WAD;
|
|
11073
11222
|
tokenFactoryData = viem.encodeAbiParameters(
|
|
11074
11223
|
[
|
|
11075
11224
|
{ type: "string" },
|
|
@@ -11118,7 +11267,7 @@ var DopplerFactory = class {
|
|
|
11118
11267
|
]
|
|
11119
11268
|
);
|
|
11120
11269
|
})();
|
|
11121
|
-
const salt = this.generateRandomSalt(params.userAddress);
|
|
11270
|
+
const salt = params.salt ?? this.generateRandomSalt(params.userAddress);
|
|
11122
11271
|
const resolvedInitializer = (() => {
|
|
11123
11272
|
if (useDopplerHookInitializer) {
|
|
11124
11273
|
return params.modules?.dopplerHookInitializer ?? addresses.dopplerHookInitializer;
|
|
@@ -11525,9 +11674,9 @@ var DopplerFactory = class {
|
|
|
11525
11674
|
throw new Error("Cannot sell more tokens than initial supply");
|
|
11526
11675
|
}
|
|
11527
11676
|
this.validateVestingConfig(params.sale, params.vesting);
|
|
11528
|
-
if (params.migration
|
|
11677
|
+
if (isDopplerHookMigratorConfig(params.migration)) {
|
|
11529
11678
|
throw new Error(
|
|
11530
|
-
"
|
|
11679
|
+
"dopplerHookMigrator migration is only supported for dynamic auctions"
|
|
11531
11680
|
);
|
|
11532
11681
|
}
|
|
11533
11682
|
if (params.migration.type === "uniswapV2Split") {
|
|
@@ -11644,7 +11793,7 @@ var DopplerFactory = class {
|
|
|
11644
11793
|
"V4 split migration"
|
|
11645
11794
|
);
|
|
11646
11795
|
}
|
|
11647
|
-
if (params.migration
|
|
11796
|
+
if (isDopplerHookMigratorConfig(params.migration)) {
|
|
11648
11797
|
const migration = params.migration;
|
|
11649
11798
|
if (!Number.isInteger(migration.fee) || migration.fee < 0) {
|
|
11650
11799
|
throw new Error(
|
|
@@ -11661,7 +11810,7 @@ var DopplerFactory = class {
|
|
|
11661
11810
|
}
|
|
11662
11811
|
if (migration.beneficiaries.length === 0) {
|
|
11663
11812
|
throw new Error(
|
|
11664
|
-
"At least one beneficiary is required for
|
|
11813
|
+
"At least one beneficiary is required for dopplerHookMigrator migration"
|
|
11665
11814
|
);
|
|
11666
11815
|
}
|
|
11667
11816
|
const totalShares = migration.beneficiaries.reduce(
|
|
@@ -11686,7 +11835,7 @@ var DopplerFactory = class {
|
|
|
11686
11835
|
}
|
|
11687
11836
|
if (migration.hook && migration.rehype) {
|
|
11688
11837
|
throw new Error(
|
|
11689
|
-
"
|
|
11838
|
+
"dopplerHookMigrator migration cannot set both hook and rehype config. Use exactly one hook mode."
|
|
11690
11839
|
);
|
|
11691
11840
|
}
|
|
11692
11841
|
if (migration.rehype) {
|
|
@@ -11797,9 +11946,9 @@ var DopplerFactory = class {
|
|
|
11797
11946
|
if (params.doppler.gamma !== void 0 && params.doppler.gamma % params.doppler.tickSpacing !== 0) {
|
|
11798
11947
|
throw new Error("doppler.gamma must be divisible by doppler.tickSpacing");
|
|
11799
11948
|
}
|
|
11800
|
-
if (params.migration
|
|
11949
|
+
if (isDopplerHookMigratorConfig(params.migration)) {
|
|
11801
11950
|
throw new Error(
|
|
11802
|
-
"
|
|
11951
|
+
"dopplerHookMigrator migration type is not supported for opening auctions"
|
|
11803
11952
|
);
|
|
11804
11953
|
}
|
|
11805
11954
|
if (params.migration.type === "uniswapV2Split") {
|
|
@@ -11830,6 +11979,9 @@ var DopplerFactory = class {
|
|
|
11830
11979
|
* Validate multicurve auction parameters
|
|
11831
11980
|
*/
|
|
11832
11981
|
validateMulticurveParams(params) {
|
|
11982
|
+
if (params.salt !== void 0 && (typeof params.salt !== "string" || !/^0x[0-9a-fA-F]{64}$/.test(params.salt))) {
|
|
11983
|
+
throw new Error("Multicurve salt must be exactly 32 bytes");
|
|
11984
|
+
}
|
|
11833
11985
|
if (!params.token.name || params.token.name.trim().length === 0) {
|
|
11834
11986
|
throw new Error("Token name is required");
|
|
11835
11987
|
}
|
|
@@ -11861,9 +12013,9 @@ var DopplerFactory = class {
|
|
|
11861
12013
|
}
|
|
11862
12014
|
}
|
|
11863
12015
|
}
|
|
11864
|
-
if (params.migration
|
|
12016
|
+
if (isDopplerHookMigratorConfig(params.migration)) {
|
|
11865
12017
|
throw new Error(
|
|
11866
|
-
"
|
|
12018
|
+
"dopplerHookMigrator migration is only supported for dynamic auctions"
|
|
11867
12019
|
);
|
|
11868
12020
|
}
|
|
11869
12021
|
if (params.migration.type === "uniswapV2Split") {
|
|
@@ -11906,18 +12058,25 @@ var DopplerFactory = class {
|
|
|
11906
12058
|
* Get the appropriate migrator address based on migration config
|
|
11907
12059
|
* Allows override via ModuleAddressOverrides when provided in params.
|
|
11908
12060
|
*/
|
|
12061
|
+
resolveUniswapV2Migrator(overrides) {
|
|
12062
|
+
const addresses = getAddresses(this.chainId);
|
|
12063
|
+
const v2Address = overrides?.v2Migrator ?? addresses.v2Migrator;
|
|
12064
|
+
if (v2Address && v2Address !== ZERO_ADDRESS) {
|
|
12065
|
+
return { address: v2Address, isSplit: false };
|
|
12066
|
+
}
|
|
12067
|
+
const v2SplitAddress = overrides?.v2MigratorSplit ?? addresses.v2MigratorSplit;
|
|
12068
|
+
if (v2SplitAddress && v2SplitAddress !== ZERO_ADDRESS) {
|
|
12069
|
+
return { address: v2SplitAddress, isSplit: true };
|
|
12070
|
+
}
|
|
12071
|
+
throw new Error(
|
|
12072
|
+
"Neither UniswapV2Migrator nor UniswapV2MigratorSplit is deployed on this chain. Provide an override via modules.v2Migrator or modules.v2MigratorSplit."
|
|
12073
|
+
);
|
|
12074
|
+
}
|
|
11909
12075
|
getMigratorAddress(config, overrides) {
|
|
11910
12076
|
const addresses = getAddresses(this.chainId);
|
|
11911
12077
|
switch (config.type) {
|
|
11912
|
-
case "uniswapV2":
|
|
11913
|
-
|
|
11914
|
-
if (!v2Address || v2Address === ZERO_ADDRESS) {
|
|
11915
|
-
throw new Error(
|
|
11916
|
-
"UniswapV2Migrator not deployed on this chain. Use uniswapV2Split migration or provide override via modules.v2Migrator."
|
|
11917
|
-
);
|
|
11918
|
-
}
|
|
11919
|
-
return v2Address;
|
|
11920
|
-
}
|
|
12078
|
+
case "uniswapV2":
|
|
12079
|
+
return this.resolveUniswapV2Migrator(overrides).address;
|
|
11921
12080
|
case "uniswapV2Split": {
|
|
11922
12081
|
const v2SplitAddress = overrides?.v2MigratorSplit ?? addresses.v2MigratorSplit;
|
|
11923
12082
|
if (!v2SplitAddress || v2SplitAddress === ZERO_ADDRESS) {
|
|
@@ -11945,7 +12104,8 @@ var DopplerFactory = class {
|
|
|
11945
12104
|
}
|
|
11946
12105
|
return v4SplitAddress;
|
|
11947
12106
|
}
|
|
11948
|
-
case "dopplerHook":
|
|
12107
|
+
case "dopplerHook":
|
|
12108
|
+
case "dopplerHookMigrator": {
|
|
11949
12109
|
const dopplerHookMigratorAddress = overrides?.dopplerHookMigrator ?? addresses.dopplerHookMigrator;
|
|
11950
12110
|
if (!dopplerHookMigratorAddress || dopplerHookMigratorAddress === ZERO_ADDRESS) {
|
|
11951
12111
|
throw new Error(
|
|
@@ -12278,7 +12438,7 @@ var DopplerFactory = class {
|
|
|
12278
12438
|
{ type: "string" },
|
|
12279
12439
|
{ type: "uint256" }
|
|
12280
12440
|
],
|
|
12281
|
-
[t.name, t.symbol, t.baseURI, t.unit ??
|
|
12441
|
+
[t.name, t.symbol, t.baseURI, t.unit ?? WAD]
|
|
12282
12442
|
);
|
|
12283
12443
|
})() : params.tokenVariant === "dopplerERC20V1" ? this.encodeDopplerERC20V1TokenFactoryData(
|
|
12284
12444
|
params.tokenFactoryData
|
|
@@ -12287,7 +12447,7 @@ var DopplerFactory = class {
|
|
|
12287
12447
|
);
|
|
12288
12448
|
let tokenInitHash;
|
|
12289
12449
|
if (params.tokenVariant === "doppler404") {
|
|
12290
|
-
const { name, symbol, baseURI } = params.tokenFactoryData;
|
|
12450
|
+
const { name, symbol, baseURI, unit } = params.tokenFactoryData;
|
|
12291
12451
|
const { airlock, initialSupply } = params;
|
|
12292
12452
|
const initHashData = viem.encodeAbiParameters(
|
|
12293
12453
|
[
|
|
@@ -12296,14 +12456,20 @@ var DopplerFactory = class {
|
|
|
12296
12456
|
{ type: "uint256" },
|
|
12297
12457
|
{ type: "address" },
|
|
12298
12458
|
{ type: "address" },
|
|
12299
|
-
{ type: "string" }
|
|
12459
|
+
{ type: "string" },
|
|
12460
|
+
{ type: "uint256" }
|
|
12300
12461
|
],
|
|
12301
|
-
[name, symbol, initialSupply, airlock, airlock, baseURI]
|
|
12462
|
+
[name, symbol, initialSupply, airlock, airlock, baseURI, unit ?? WAD]
|
|
12302
12463
|
);
|
|
12303
12464
|
tokenInitHash = viem.keccak256(
|
|
12304
12465
|
viem.encodePacked(
|
|
12305
12466
|
["bytes", "bytes"],
|
|
12306
|
-
[
|
|
12467
|
+
[
|
|
12468
|
+
getDopplerDN404Bytecode(
|
|
12469
|
+
params.addresses?.doppler404Factory ?? params.tokenFactory
|
|
12470
|
+
),
|
|
12471
|
+
initHashData
|
|
12472
|
+
]
|
|
12307
12473
|
)
|
|
12308
12474
|
);
|
|
12309
12475
|
} else if (params.tokenVariant === "dopplerERC20V1") {
|
|
@@ -13230,9 +13396,11 @@ function parseMulticurveInitializerDiscoveryResult({
|
|
|
13230
13396
|
stateData
|
|
13231
13397
|
}) {
|
|
13232
13398
|
const parsedState = kind === "dopplerHook" ? parseDopplerHookInitializerState(stateData) : parseStandardInitializerState(stateData);
|
|
13233
|
-
const { numeraire, status, poolKey, farTick } = parsedState;
|
|
13399
|
+
const { numeraire, status, poolKey, farTick, dopplerHookAddress } = parsedState;
|
|
13234
13400
|
return {
|
|
13235
13401
|
initializerAddress,
|
|
13402
|
+
initializerKind: kind,
|
|
13403
|
+
dopplerHookAddress,
|
|
13236
13404
|
state: {
|
|
13237
13405
|
asset: tokenAddress,
|
|
13238
13406
|
numeraire,
|
|
@@ -13270,7 +13438,8 @@ function parseStandardInitializerState(stateData) {
|
|
|
13270
13438
|
numeraire: state.numeraire ?? state[0],
|
|
13271
13439
|
status: Number(state.status ?? state[1]),
|
|
13272
13440
|
poolKey: parseMulticurvePoolKey(state.poolKey ?? state[2]),
|
|
13273
|
-
farTick: Number(state.farTick ?? state[3])
|
|
13441
|
+
farTick: Number(state.farTick ?? state[3]),
|
|
13442
|
+
dopplerHookAddress: viem.zeroAddress
|
|
13274
13443
|
};
|
|
13275
13444
|
}
|
|
13276
13445
|
function parseDopplerHookInitializerState(stateData) {
|
|
@@ -13279,7 +13448,8 @@ function parseDopplerHookInitializerState(stateData) {
|
|
|
13279
13448
|
numeraire: state.numeraire ?? state[0],
|
|
13280
13449
|
status: Number(state.status ?? state[4]),
|
|
13281
13450
|
poolKey: parseMulticurvePoolKey(state.poolKey ?? state[5]),
|
|
13282
|
-
farTick: Number(state.farTick ?? state[6])
|
|
13451
|
+
farTick: Number(state.farTick ?? state[6]),
|
|
13452
|
+
dopplerHookAddress: state.dopplerHook ?? state[2]
|
|
13283
13453
|
};
|
|
13284
13454
|
}
|
|
13285
13455
|
function isAbsentPoolReadFailure(error) {
|
|
@@ -13772,6 +13942,129 @@ var MulticurvePool = class {
|
|
|
13772
13942
|
return getMulticurveFeeSchedule(this.rpc, state);
|
|
13773
13943
|
}
|
|
13774
13944
|
};
|
|
13945
|
+
var REHYPE_NOT_CONFIGURED = {
|
|
13946
|
+
mode: "notConfigured",
|
|
13947
|
+
fees0: 0n,
|
|
13948
|
+
fees1: 0n
|
|
13949
|
+
};
|
|
13950
|
+
var REHYPE_UNSUPPORTED = {
|
|
13951
|
+
mode: "unsupported",
|
|
13952
|
+
fees0: 0n,
|
|
13953
|
+
fees1: 0n
|
|
13954
|
+
};
|
|
13955
|
+
async function getPendingFeeBreakdownForMulticurveTokens({
|
|
13956
|
+
client,
|
|
13957
|
+
beneficiary,
|
|
13958
|
+
tokenAddresses
|
|
13959
|
+
}) {
|
|
13960
|
+
if (tokenAddresses.length === 0) {
|
|
13961
|
+
return [];
|
|
13962
|
+
}
|
|
13963
|
+
const feeClient = client;
|
|
13964
|
+
const poolContexts = await discoverMulticurveFeePoolContexts(
|
|
13965
|
+
feeClient,
|
|
13966
|
+
tokenAddresses
|
|
13967
|
+
);
|
|
13968
|
+
const plans = poolContexts.map(
|
|
13969
|
+
(poolContext) => createPendingFeeBreakdownPreviewPlan(poolContext, beneficiary)
|
|
13970
|
+
);
|
|
13971
|
+
const calls = plans.flatMap(({ calls: planCalls }) => planCalls);
|
|
13972
|
+
const results = await callAggregate3(feeClient, calls);
|
|
13973
|
+
if (results.length !== calls.length) {
|
|
13974
|
+
throw new Error(
|
|
13975
|
+
"Multicall3 aggregate3 returned an incomplete pending fee breakdown result"
|
|
13976
|
+
);
|
|
13977
|
+
}
|
|
13978
|
+
let resultOffset = 0;
|
|
13979
|
+
return plans.map((plan) => {
|
|
13980
|
+
const planResults = results.slice(
|
|
13981
|
+
resultOffset,
|
|
13982
|
+
resultOffset + plan.calls.length
|
|
13983
|
+
);
|
|
13984
|
+
resultOffset += plan.calls.length;
|
|
13985
|
+
return decodePendingFeeBreakdownPreview(plan, planResults);
|
|
13986
|
+
});
|
|
13987
|
+
}
|
|
13988
|
+
function createPendingFeeBreakdownPreviewPlan(poolContext, beneficiary) {
|
|
13989
|
+
const poolId = computePoolId(poolContext.state.poolKey);
|
|
13990
|
+
const poolCalls = createPendingFeePreviewCalls(
|
|
13991
|
+
poolContext.initializerAddress,
|
|
13992
|
+
poolId,
|
|
13993
|
+
beneficiary
|
|
13994
|
+
);
|
|
13995
|
+
if (poolContext.initializerKind !== "dopplerHook" || poolContext.dopplerHookAddress === viem.zeroAddress) {
|
|
13996
|
+
return {
|
|
13997
|
+
kind: "poolOnly",
|
|
13998
|
+
poolContext,
|
|
13999
|
+
calls: poolCalls
|
|
14000
|
+
};
|
|
14001
|
+
}
|
|
14002
|
+
return {
|
|
14003
|
+
kind: "rehype",
|
|
14004
|
+
poolContext,
|
|
14005
|
+
poolId,
|
|
14006
|
+
calls: [
|
|
14007
|
+
...poolCalls,
|
|
14008
|
+
createRehypeCapabilityProbe(poolContext.dopplerHookAddress, poolId),
|
|
14009
|
+
...createPendingFeePreviewCalls(
|
|
14010
|
+
poolContext.dopplerHookAddress,
|
|
14011
|
+
poolId,
|
|
14012
|
+
beneficiary
|
|
14013
|
+
)
|
|
14014
|
+
]
|
|
14015
|
+
};
|
|
14016
|
+
}
|
|
14017
|
+
function createRehypeCapabilityProbe(target, poolId) {
|
|
14018
|
+
return {
|
|
14019
|
+
target,
|
|
14020
|
+
allowFailure: true,
|
|
14021
|
+
callData: viem.encodeFunctionData({
|
|
14022
|
+
abi: feesManagerAbi,
|
|
14023
|
+
functionName: "getPoolKey",
|
|
14024
|
+
args: [poolId]
|
|
14025
|
+
})
|
|
14026
|
+
};
|
|
14027
|
+
}
|
|
14028
|
+
function decodePendingFeeBreakdownPreview(plan, results) {
|
|
14029
|
+
const poolInitializerFees = calculatePendingFees(
|
|
14030
|
+
results.slice(0, PENDING_FEE_PREVIEW_CALL_COUNT)
|
|
14031
|
+
);
|
|
14032
|
+
return {
|
|
14033
|
+
tokenAddress: plan.poolContext.state.asset,
|
|
14034
|
+
poolInitializerFees,
|
|
14035
|
+
rehypeFees: plan.kind === "poolOnly" ? REHYPE_NOT_CONFIGURED : decodeRehypePendingFees(plan, results)
|
|
14036
|
+
};
|
|
14037
|
+
}
|
|
14038
|
+
function decodeRehypePendingFees(plan, results) {
|
|
14039
|
+
const capabilityResult = results[PENDING_FEE_PREVIEW_CALL_COUNT];
|
|
14040
|
+
if (!capabilityResult?.success || !capabilityResult.returnData || capabilityResult.returnData === "0x") {
|
|
14041
|
+
return REHYPE_UNSUPPORTED;
|
|
14042
|
+
}
|
|
14043
|
+
const poolKey = parseMulticurvePoolKey(
|
|
14044
|
+
viem.decodeFunctionResult({
|
|
14045
|
+
abi: feesManagerAbi,
|
|
14046
|
+
functionName: "getPoolKey",
|
|
14047
|
+
data: capabilityResult.returnData
|
|
14048
|
+
})
|
|
14049
|
+
);
|
|
14050
|
+
if (poolKey.hooks === viem.zeroAddress) {
|
|
14051
|
+
return REHYPE_UNSUPPORTED;
|
|
14052
|
+
}
|
|
14053
|
+
if (computePoolId(poolKey) !== plan.poolId) {
|
|
14054
|
+
throw new Error(
|
|
14055
|
+
"Rehype FeesManager pool key does not match the discovered pool"
|
|
14056
|
+
);
|
|
14057
|
+
}
|
|
14058
|
+
return {
|
|
14059
|
+
mode: "feesManager",
|
|
14060
|
+
...calculatePendingFees(
|
|
14061
|
+
results.slice(
|
|
14062
|
+
PENDING_FEE_PREVIEW_CALL_COUNT + 1,
|
|
14063
|
+
PENDING_FEE_PREVIEW_CALL_COUNT * 2 + 1
|
|
14064
|
+
)
|
|
14065
|
+
)
|
|
14066
|
+
};
|
|
14067
|
+
}
|
|
13775
14068
|
|
|
13776
14069
|
// src/evm/entities/auction/MulticurveFees.ts
|
|
13777
14070
|
var MulticurveFees = class {
|
|
@@ -13808,6 +14101,31 @@ var MulticurveFees = class {
|
|
|
13808
14101
|
}
|
|
13809
14102
|
return pendingFees;
|
|
13810
14103
|
}
|
|
14104
|
+
async getPendingFeeBreakdown(beneficiary, tokenAddressesOrOptions, options) {
|
|
14105
|
+
const hasTokenAddressOverride = isTokenAddressList(tokenAddressesOrOptions);
|
|
14106
|
+
const tokenAddresses = hasTokenAddressOverride ? tokenAddressesOrOptions : this.tokenAddresses;
|
|
14107
|
+
const callOptions = hasTokenAddressOverride ? options : tokenAddressesOrOptions;
|
|
14108
|
+
const tokenBatchSize = getTokenBatchSize(
|
|
14109
|
+
callOptions?.tokenBatchSize ?? this.options.tokenBatchSize
|
|
14110
|
+
);
|
|
14111
|
+
if (!tokenBatchSize || tokenAddresses.length <= tokenBatchSize) {
|
|
14112
|
+
return getPendingFeeBreakdownForMulticurveTokens({
|
|
14113
|
+
client: this.client,
|
|
14114
|
+
beneficiary,
|
|
14115
|
+
tokenAddresses
|
|
14116
|
+
});
|
|
14117
|
+
}
|
|
14118
|
+
let pendingFees = [];
|
|
14119
|
+
for (let index = 0; index < tokenAddresses.length; index += tokenBatchSize) {
|
|
14120
|
+
const batchPendingFees = await getPendingFeeBreakdownForMulticurveTokens({
|
|
14121
|
+
client: this.client,
|
|
14122
|
+
beneficiary,
|
|
14123
|
+
tokenAddresses: tokenAddresses.slice(index, index + tokenBatchSize)
|
|
14124
|
+
});
|
|
14125
|
+
pendingFees = [...pendingFees, ...batchPendingFees];
|
|
14126
|
+
}
|
|
14127
|
+
return pendingFees;
|
|
14128
|
+
}
|
|
13811
14129
|
};
|
|
13812
14130
|
function isTokenAddressList(value) {
|
|
13813
14131
|
return Array.isArray(value);
|
|
@@ -17755,6 +18073,163 @@ var DopplerERC20V1 = class _DopplerERC20V1 {
|
|
|
17755
18073
|
);
|
|
17756
18074
|
}
|
|
17757
18075
|
};
|
|
18076
|
+
|
|
18077
|
+
// src/evm/entities/token/doppler404/DopplerDN404.ts
|
|
18078
|
+
var DopplerDN404 = class {
|
|
18079
|
+
publicClient;
|
|
18080
|
+
walletClient;
|
|
18081
|
+
address;
|
|
18082
|
+
get rpc() {
|
|
18083
|
+
return this.publicClient;
|
|
18084
|
+
}
|
|
18085
|
+
constructor(publicClient, walletClient, address) {
|
|
18086
|
+
this.publicClient = publicClient;
|
|
18087
|
+
this.walletClient = walletClient;
|
|
18088
|
+
this.address = address;
|
|
18089
|
+
}
|
|
18090
|
+
getAddress() {
|
|
18091
|
+
return this.address;
|
|
18092
|
+
}
|
|
18093
|
+
async getName() {
|
|
18094
|
+
return await this.rpc.readContract({
|
|
18095
|
+
address: this.address,
|
|
18096
|
+
abi: dopplerDN404Abi,
|
|
18097
|
+
functionName: "name"
|
|
18098
|
+
});
|
|
18099
|
+
}
|
|
18100
|
+
async getSymbol() {
|
|
18101
|
+
return await this.rpc.readContract({
|
|
18102
|
+
address: this.address,
|
|
18103
|
+
abi: dopplerDN404Abi,
|
|
18104
|
+
functionName: "symbol"
|
|
18105
|
+
});
|
|
18106
|
+
}
|
|
18107
|
+
async getDecimals() {
|
|
18108
|
+
return await this.rpc.readContract({
|
|
18109
|
+
address: this.address,
|
|
18110
|
+
abi: dopplerDN404Abi,
|
|
18111
|
+
functionName: "decimals"
|
|
18112
|
+
});
|
|
18113
|
+
}
|
|
18114
|
+
async getTotalSupply() {
|
|
18115
|
+
return await this.rpc.readContract({
|
|
18116
|
+
address: this.address,
|
|
18117
|
+
abi: dopplerDN404Abi,
|
|
18118
|
+
functionName: "totalSupply"
|
|
18119
|
+
});
|
|
18120
|
+
}
|
|
18121
|
+
async getBalanceOf(owner) {
|
|
18122
|
+
return await this.rpc.readContract({
|
|
18123
|
+
address: this.address,
|
|
18124
|
+
abi: dopplerDN404Abi,
|
|
18125
|
+
functionName: "balanceOf",
|
|
18126
|
+
args: [owner]
|
|
18127
|
+
});
|
|
18128
|
+
}
|
|
18129
|
+
async getAllowance(owner, spender) {
|
|
18130
|
+
return await this.rpc.readContract({
|
|
18131
|
+
address: this.address,
|
|
18132
|
+
abi: dopplerDN404Abi,
|
|
18133
|
+
functionName: "allowance",
|
|
18134
|
+
args: [owner, spender]
|
|
18135
|
+
});
|
|
18136
|
+
}
|
|
18137
|
+
async getUnit() {
|
|
18138
|
+
return await this.rpc.readContract({
|
|
18139
|
+
address: this.address,
|
|
18140
|
+
abi: dopplerDN404Abi,
|
|
18141
|
+
functionName: "unit"
|
|
18142
|
+
});
|
|
18143
|
+
}
|
|
18144
|
+
async getBaseURI() {
|
|
18145
|
+
return await this.rpc.readContract({
|
|
18146
|
+
address: this.address,
|
|
18147
|
+
abi: dopplerDN404Abi,
|
|
18148
|
+
functionName: "baseURI"
|
|
18149
|
+
});
|
|
18150
|
+
}
|
|
18151
|
+
async getMirrorERC721() {
|
|
18152
|
+
return await this.rpc.readContract({
|
|
18153
|
+
address: this.address,
|
|
18154
|
+
abi: dopplerDN404Abi,
|
|
18155
|
+
functionName: "mirrorERC721"
|
|
18156
|
+
});
|
|
18157
|
+
}
|
|
18158
|
+
async getTotalNFTSupply() {
|
|
18159
|
+
return await this.rpc.readContract({
|
|
18160
|
+
address: this.address,
|
|
18161
|
+
abi: dopplerDN404Abi,
|
|
18162
|
+
functionName: "totalNFTSupply"
|
|
18163
|
+
});
|
|
18164
|
+
}
|
|
18165
|
+
async getSkipNFT(owner) {
|
|
18166
|
+
return await this.rpc.readContract({
|
|
18167
|
+
address: this.address,
|
|
18168
|
+
abi: dopplerDN404Abi,
|
|
18169
|
+
functionName: "getSkipNFT",
|
|
18170
|
+
args: [owner]
|
|
18171
|
+
});
|
|
18172
|
+
}
|
|
18173
|
+
async getPool() {
|
|
18174
|
+
return await this.rpc.readContract({
|
|
18175
|
+
address: this.address,
|
|
18176
|
+
abi: dopplerDN404Abi,
|
|
18177
|
+
functionName: "pool"
|
|
18178
|
+
});
|
|
18179
|
+
}
|
|
18180
|
+
async getIsPoolUnlocked() {
|
|
18181
|
+
return await this.rpc.readContract({
|
|
18182
|
+
address: this.address,
|
|
18183
|
+
abi: dopplerDN404Abi,
|
|
18184
|
+
functionName: "isPoolUnlocked"
|
|
18185
|
+
});
|
|
18186
|
+
}
|
|
18187
|
+
async approve(spender, amount, options) {
|
|
18188
|
+
const walletClient = this.getWalletClient();
|
|
18189
|
+
const { request } = await this.rpc.simulateContract({
|
|
18190
|
+
address: this.address,
|
|
18191
|
+
abi: dopplerDN404Abi,
|
|
18192
|
+
functionName: "approve",
|
|
18193
|
+
args: [spender, amount],
|
|
18194
|
+
account: walletClient.account
|
|
18195
|
+
});
|
|
18196
|
+
return await walletClient.writeContract(
|
|
18197
|
+
options?.gas ? { ...request, gas: options.gas } : request
|
|
18198
|
+
);
|
|
18199
|
+
}
|
|
18200
|
+
async transfer(to, amount, options) {
|
|
18201
|
+
const walletClient = this.getWalletClient();
|
|
18202
|
+
const { request } = await this.rpc.simulateContract({
|
|
18203
|
+
address: this.address,
|
|
18204
|
+
abi: dopplerDN404Abi,
|
|
18205
|
+
functionName: "transfer",
|
|
18206
|
+
args: [to, amount],
|
|
18207
|
+
account: walletClient.account
|
|
18208
|
+
});
|
|
18209
|
+
return await walletClient.writeContract(
|
|
18210
|
+
options?.gas ? { ...request, gas: options.gas } : request
|
|
18211
|
+
);
|
|
18212
|
+
}
|
|
18213
|
+
async setSkipNFT(skipNFT, options) {
|
|
18214
|
+
const walletClient = this.getWalletClient();
|
|
18215
|
+
const { request } = await this.rpc.simulateContract({
|
|
18216
|
+
address: this.address,
|
|
18217
|
+
abi: dopplerDN404Abi,
|
|
18218
|
+
functionName: "setSkipNFT",
|
|
18219
|
+
args: [skipNFT],
|
|
18220
|
+
account: walletClient.account
|
|
18221
|
+
});
|
|
18222
|
+
return await walletClient.writeContract(
|
|
18223
|
+
options?.gas ? { ...request, gas: options.gas } : request
|
|
18224
|
+
);
|
|
18225
|
+
}
|
|
18226
|
+
getWalletClient() {
|
|
18227
|
+
if (!this.walletClient) {
|
|
18228
|
+
throw new Error("Wallet client required for write operations");
|
|
18229
|
+
}
|
|
18230
|
+
return this.walletClient;
|
|
18231
|
+
}
|
|
18232
|
+
};
|
|
17758
18233
|
var Eth = class {
|
|
17759
18234
|
publicClient;
|
|
17760
18235
|
get rpc() {
|
|
@@ -18544,7 +19019,7 @@ var DynamicAuctionBuilder = class _DynamicAuctionBuilder {
|
|
|
18544
19019
|
if (!this.auction) throw new Error("auction configuration is required");
|
|
18545
19020
|
if (this.migration.type === "noOp") {
|
|
18546
19021
|
throw new Error(
|
|
18547
|
-
"noOp migration is not supported for dynamic auctions. Use uniswapV2, uniswapV4, or
|
|
19022
|
+
"noOp migration is not supported for dynamic auctions. Use uniswapV2, uniswapV4, or dopplerHookMigrator migration instead."
|
|
18548
19023
|
);
|
|
18549
19024
|
}
|
|
18550
19025
|
const governance = this.governance ?? (isNoOpEnabledChain(this.chainId) ? { type: "noOp" } : { type: "default" });
|
|
@@ -18595,6 +19070,7 @@ var MulticurveBuilder = class _MulticurveBuilder {
|
|
|
18595
19070
|
migration;
|
|
18596
19071
|
integrator;
|
|
18597
19072
|
userAddress;
|
|
19073
|
+
salt;
|
|
18598
19074
|
moduleAddresses;
|
|
18599
19075
|
gasLimit;
|
|
18600
19076
|
// Stored from withCurves() for graduationMarketCap conversion in build()
|
|
@@ -18904,7 +19380,7 @@ var MulticurveBuilder = class _MulticurveBuilder {
|
|
|
18904
19380
|
}
|
|
18905
19381
|
assertCanSetInitializer(nextType) {
|
|
18906
19382
|
const currentType = this.initializer?.type;
|
|
18907
|
-
if (currentType === void 0 || currentType ===
|
|
19383
|
+
if (currentType === void 0 || currentType === nextType || currentType === "dopplerHookInitializer" && nextType === "rehype") {
|
|
18908
19384
|
return;
|
|
18909
19385
|
}
|
|
18910
19386
|
throw new Error(
|
|
@@ -18921,7 +19397,7 @@ var MulticurveBuilder = class _MulticurveBuilder {
|
|
|
18921
19397
|
withDecay(params) {
|
|
18922
19398
|
if (!params) {
|
|
18923
19399
|
if (this.initializer?.type === "decay") {
|
|
18924
|
-
this.initializer =
|
|
19400
|
+
this.initializer = void 0;
|
|
18925
19401
|
}
|
|
18926
19402
|
return this;
|
|
18927
19403
|
}
|
|
@@ -18959,7 +19435,7 @@ var MulticurveBuilder = class _MulticurveBuilder {
|
|
|
18959
19435
|
withSchedule(params) {
|
|
18960
19436
|
if (!params) {
|
|
18961
19437
|
if (this.initializer?.type === "scheduled") {
|
|
18962
|
-
this.initializer =
|
|
19438
|
+
this.initializer = void 0;
|
|
18963
19439
|
}
|
|
18964
19440
|
this.schedule = void 0;
|
|
18965
19441
|
return this;
|
|
@@ -18989,6 +19465,10 @@ var MulticurveBuilder = class _MulticurveBuilder {
|
|
|
18989
19465
|
this.integrator = address ?? ZERO_ADDRESS;
|
|
18990
19466
|
return this;
|
|
18991
19467
|
}
|
|
19468
|
+
withSalt(salt) {
|
|
19469
|
+
this.salt = salt;
|
|
19470
|
+
return this;
|
|
19471
|
+
}
|
|
18992
19472
|
withGasLimit(gas) {
|
|
18993
19473
|
this.gasLimit = gas;
|
|
18994
19474
|
return this;
|
|
@@ -19007,6 +19487,8 @@ var MulticurveBuilder = class _MulticurveBuilder {
|
|
|
19007
19487
|
return this.overrideModule("airlock", address);
|
|
19008
19488
|
}
|
|
19009
19489
|
withV4MulticurveInitializer(address) {
|
|
19490
|
+
this.assertCanSetInitializer("standard");
|
|
19491
|
+
this.initializer = { type: "standard" };
|
|
19010
19492
|
return this.overrideModule("v4MulticurveInitializer", address);
|
|
19011
19493
|
}
|
|
19012
19494
|
withV4ScheduledMulticurveInitializer(address) {
|
|
@@ -19034,6 +19516,10 @@ var MulticurveBuilder = class _MulticurveBuilder {
|
|
|
19034
19516
|
return this.overrideModule("noOpMigrator", address);
|
|
19035
19517
|
}
|
|
19036
19518
|
withDopplerHookInitializer(address) {
|
|
19519
|
+
if (this.initializer?.type !== "rehype") {
|
|
19520
|
+
this.assertCanSetInitializer("dopplerHookInitializer");
|
|
19521
|
+
this.initializer = { type: "dopplerHookInitializer" };
|
|
19522
|
+
}
|
|
19037
19523
|
return this.overrideModule("dopplerHookInitializer", address);
|
|
19038
19524
|
}
|
|
19039
19525
|
build() {
|
|
@@ -19156,7 +19642,7 @@ var MulticurveBuilder = class _MulticurveBuilder {
|
|
|
19156
19642
|
}
|
|
19157
19643
|
dopplerHook = { ...dopplerHook, farTick };
|
|
19158
19644
|
}
|
|
19159
|
-
const initializer = this.initializer?.type === "rehype" && dopplerHook ? { type: "rehype", config: dopplerHook } : this.initializer ?? (dopplerHook ? { type: "rehype", config: dopplerHook } : this.schedule ? { type: "scheduled", startTime: this.schedule.startTime } : { type: "
|
|
19645
|
+
const initializer = this.initializer?.type === "rehype" && dopplerHook ? { type: "rehype", config: dopplerHook } : this.initializer ?? (dopplerHook ? { type: "rehype", config: dopplerHook } : this.schedule ? { type: "scheduled", startTime: this.schedule.startTime } : { type: "dopplerHookInitializer" });
|
|
19160
19646
|
if (initializer.type === "scheduled" && dopplerHook) {
|
|
19161
19647
|
throw new Error(
|
|
19162
19648
|
"Cannot combine scheduled multicurve with rehype initializer. Use exactly one initializer mode."
|
|
@@ -19201,6 +19687,7 @@ var MulticurveBuilder = class _MulticurveBuilder {
|
|
|
19201
19687
|
migration: this.migration,
|
|
19202
19688
|
integrator: this.integrator ?? ZERO_ADDRESS,
|
|
19203
19689
|
userAddress: this.userAddress,
|
|
19690
|
+
salt: this.salt,
|
|
19204
19691
|
modules: this.moduleAddresses,
|
|
19205
19692
|
gas: this.gasLimit
|
|
19206
19693
|
};
|
|
@@ -19775,6 +20262,13 @@ var DopplerSDK = class {
|
|
|
19775
20262
|
tokenAddress
|
|
19776
20263
|
);
|
|
19777
20264
|
}
|
|
20265
|
+
/**
|
|
20266
|
+
* Get a Doppler DN404 token instance for hybrid ERC-20/ERC-721 interaction.
|
|
20267
|
+
* @param tokenAddress The address of the Doppler DN404 token
|
|
20268
|
+
*/
|
|
20269
|
+
getDopplerDN404(tokenAddress) {
|
|
20270
|
+
return new DopplerDN404(this.publicClient, this.walletClient, tokenAddress);
|
|
20271
|
+
}
|
|
19778
20272
|
/**
|
|
19779
20273
|
* Get information about a static auction pool
|
|
19780
20274
|
* @param poolAddress The address of the pool
|
|
@@ -19899,6 +20393,8 @@ exports.DYNAMIC_FEE_FLAG = DYNAMIC_FEE_FLAG;
|
|
|
19899
20393
|
exports.Derc20 = Derc20;
|
|
19900
20394
|
exports.Derc20V2 = Derc20V2;
|
|
19901
20395
|
exports.DopplerBytecode = doppler_default;
|
|
20396
|
+
exports.DopplerDN404 = DopplerDN404;
|
|
20397
|
+
exports.DopplerDN404BaseSepoliaBytecode = dopplerDN404BaseSepolia_default;
|
|
19902
20398
|
exports.DopplerDN404Bytecode = dopplerDN404_default;
|
|
19903
20399
|
exports.DopplerERC20V1 = DopplerERC20V1;
|
|
19904
20400
|
exports.DopplerFactory = DopplerFactory;
|
|
@@ -19973,6 +20469,7 @@ exports.decayMulticurveInitializerHookAbi = decayMulticurveInitializerHookAbi;
|
|
|
19973
20469
|
exports.decodeBalanceDelta = decodeBalanceDelta;
|
|
19974
20470
|
exports.derc20Abi = derc20Abi;
|
|
19975
20471
|
exports.derc20V2Abi = derc20V2Abi;
|
|
20472
|
+
exports.dopplerDN404Abi = dopplerDN404Abi;
|
|
19976
20473
|
exports.dopplerERC20V1Abi = dopplerERC20V1Abi;
|
|
19977
20474
|
exports.dopplerHookAbi = dopplerHookAbi;
|
|
19978
20475
|
exports.dopplerHookInitializerAbi = dopplerHookInitializerAbi;
|