0 txs
0 calls
constructor
constructor(address _config)
functions
config
viewfunction config() view returns (address)
getToken0SqrtPriceX96
viewfunction getToken0SqrtPriceX96(address token0) view returns (uint160)
getToken0TWPrice
viewfunction getToken0TWPrice(address token0) view returns (uint256)
getToken0TWSqrtPriceX96
viewfunction getToken0TWSqrtPriceX96(address token0) view returns (uint160)
milestone1
viewfunction milestone1(address token0) view returns (bool)
milestone1Mapping
viewfunction milestone1Mapping(address token0) view returns (bool)
milestone2
viewfunction milestone2(address token0) view returns (bool)
milestone2Mapping
viewfunction milestone2Mapping(address token0) view returns (bool)
observationsMapping
viewfunction observationsMapping(address token0, uint256) view returns (uint32 blockTimestamp, uint160 sqrtPriceX96)
POOL_FEE
viewfunction POOL_FEE() view returns (uint24)
positionsMapping
viewfunction positionsMapping(address token0) view returns (uint256 tokenId, uint128 liquidity, int24 tickLower, int24 tickUpper, uint24 feeTier)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
token0DexPool
viewfunction token0DexPool(address token0) view returns (address)
buy
nonpayablefunction buy(address token0, address recipient, uint256 token1PaidAmount, uint256 token0MinimumAmount, uint256 deadline) returns (uint256)
buy
nonpayablefunction buy(address token0, uint256 token1PaidAmount, uint256 token0MinimumAmount, uint256 deadline) returns (uint256)
estimateBuy
nonpayablefunction estimateBuy(address token0, uint256 _token1Amount) returns (uint256)
estimateSell
nonpayablefunction estimateSell(address token0, uint256 _token0Amount) returns (uint256)
initialize
nonpayablefunction initialize()
launch
nonpayablefunction launch(address token0, uint256 token1Amount) returns (address poolAddr, uint160 sqrtPriceX96)
sell
nonpayablefunction sell(address token0, address recipient, uint256 token0PaidAmount, uint256 token1MinimumAmount, uint256 deadline) returns (uint256)
sell
nonpayablefunction sell(address token0, uint256 token0PaidAmount, uint256 token1MinimumAmount, uint256 deadline) returns (uint256)
token0SwapCallback
nonpayablefunction token0SwapCallback(address, address, uint256)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Initialized
event Initialized(uint8 version)
Milestone1
event Milestone1(address indexed token0)
Milestone2
event Milestone2(address indexed token0)
Upgraded
event Upgraded(address indexed implementation)
errors
No errors.
creation bytecode
0x6101406040523060805234801561001557600080fd5b50604051613c34380380613c34833981016040819052610034916100a7565b6001600160a01b031660a052731f98431c8ad98523631ae4a59f267346ea31f98460c05273c36442b4a4522e871399cd717abdd847ab11fe8860e05273e592427a0aece92de3edee1f18e0157c058615646101005273b27308f9f90d607463bb33ea1bebb41c27ce5ab6610120526100d7565b6000602082840312156100b957600080fd5b81516001600160a01b03811681146100d057600080fd5b9392505050565b60805160a05160c05160e0516101005161012051613a9a61019a600039600081816107e20152610b2b015260008181611c1401528181611c940152818161229b015261231b015260008181611585015281816116070152818161175501526117c9015260005050600081816102d50152818161115b01528181611a8701528181611d2001528181611e470152818161210e015261235401526000818161087a015281816108ba015281816109420152818161098201526109fe0152613a9a6000f3fe60806040526004361061011b5760003560e01c80630c391f77146101205780631622dbe4146101535780631f27fd84146101735780632e6155c7146101a05780633659cfe6146101c05780634761c8cd146101e25780634f1ef2861461022257806352d1902d1461023557806360d6dab31461024a57806362df9ea21461028357806376165adf146102a357806379502c55146102c35780638129fc1c146102f757806382eb354d1461030c578063917d49f41461033c57806392a430ab1461038057806392cdbac5146103b9578063a8257ccd146103d9578063b8a9ddeb14610478578063c50a29f214610498578063c53ab009146104b8578063dd1b9c4a146104d8578063edfb651614610502578063f7366b7914610542575b600080fd5b34801561012c57600080fd5b5061014061013b36600461309f565b61057b565b6040519081526020015b60405180910390f35b34801561015f57600080fd5b5061014061016e3660046130bc565b6105b9565b34801561017f57600080fd5b5061019361018e36600461309f565b6105d4565b60405161014a9190613104565b3480156101ac57600080fd5b506101406101bb366004613118565b610756565b3480156101cc57600080fd5b506101e06101db36600461309f565b610870565b005b3480156101ee57600080fd5b506102126101fd36600461309f565b60696020526000908152604090205460ff1681565b604051901515815260200161014a565b6101e06102303660046131d9565b610938565b34801561024157600080fd5b506101406109f1565b34801561025657600080fd5b5061021261026536600461309f565b6001600160a01b031660009081526069602052604090205460ff1690565b34801561028f57600080fd5b5061014061029e366004613118565b610a9f565b3480156102af57600080fd5b506101406102be36600461326b565b610b6b565b3480156102cf57600080fd5b506101937f000000000000000000000000000000000000000000000000000000000000000081565b34801561030357600080fd5b506101e0610b85565b34801561031857600080fd5b5061021261032736600461309f565b60686020526000908152604090205460ff1681565b34801561034857600080fd5b5061035c610357366004613118565b610c9c565b6040805163ffffffff90931683526001600160a01b0390911660208301520161014a565b34801561038c57600080fd5b5061019361039b36600461309f565b6001600160a01b039081166000908152606760205260409020541690565b3480156103c557600080fd5b506101406103d43660046130bc565b610cd8565b3480156103e557600080fd5b5061043c6103f436600461309f565b606660205260009081526040902080546001909101546001600160801b03811690600160801b8104600290810b91600160981b810490910b90600160b01b900462ffffff1685565b604080519586526001600160801b039094166020860152600292830b93850193909352900b606083015262ffffff16608082015260a00161014a565b34801561048457600080fd5b5061014061049336600461326b565b610ce8565b3480156104a457600080fd5b506101e06104b33660046132bc565b610cf8565b3480156104c457600080fd5b506101936104d336600461309f565b6110be565b3480156104e457600080fd5b506104ee610bb881565b60405162ffffff909116815260200161014a565b34801561050e57600080fd5b5061052261051d366004613118565b61114c565b604080516001600160a01b0393841681529290911660208301520161014a565b34801561054e57600080fd5b5061021261055d36600461309f565b6001600160a01b031660009081526068602052604090205460ff1690565b600080610587836110be565b90506105b261059f6001600160a01b03831680613313565b670de0b6b3a7640000600160c01b6119d4565b9392505050565b60006105c9853333878787611a82565b90505b949350505050565b6001600160a01b03808216600090815260676020526040812054909116806106175760405162461bcd60e51b815260040161060e9061332a565b60405180910390fd5b60008190506000816001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa15801561065c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610680919061336a565b50505050505090506000816001600160a01b031690506000836001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fa919061340f565b9050866001600160a01b0316816001600160a01b0316146107265761072382600160c01b613442565b91505b6001600160a01b03821061074c5760405162461bcd60e51b815260040161060e90613464565b5095945050505050565b60008061076284611d1b565b90506000816001600160a01b031663451c3d806040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c8919061340f565b60405163f7729d4360e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f7729d43906108229088908590610bb8908a90600090600401613486565b6020604051808303816000875af1158015610841573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086591906134bb565b925050505b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108b85760405162461bcd60e51b815260040161060e906134d4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108ea611e1f565b6001600160a01b0316146109105760405162461bcd60e51b815260040161060e9061350e565b61091981611e3b565b6040805160008082526020820190925261093591839190611f1d565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109805760405162461bcd60e51b815260040161060e906134d4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109b2611e1f565b6001600160a01b0316146109d85760405162461bcd60e51b815260040161060e9061350e565b6109e182611e3b565b6109ed82826001611f1d565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a8c5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b606482015260840161060e565b50600080516020613a1e83398151915290565b600080610aab84611d1b565b90506000816001600160a01b031663451c3d806040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b11919061340f565b60405163f7729d4360e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f7729d43906108229084908990610bb8908a90600090600401613486565b6000610b7b863387878787611a82565b9695505050505050565b600054610100900460ff1615808015610ba55750600054600160ff909116105b80610bc65750610bb43061208d565b158015610bc6575060005460ff166001145b610c295760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161060e565b6000805460ff191660011790558015610c4c576000805461ff0019166101001790555b610c5461209c565b8015610935576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b606560205281600052604060002081605a8110610cb857600080fd5b015463ffffffff81169250600160201b90046001600160a01b0316905082565b60006105c9853333878787612109565b6000610b7b863387878787612109565b336000908152606760205260409020546001600160a01b0316610d2d5760405162461bcd60e51b815260040161060e9061332a565b336000610d3982611d1b565b90506000816001600160a01b0316638c94370d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9f91906134bb565b90506000826001600160a01b03166370aaf1d26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0591906134bb565b6001600160a01b03851660009081526068602052604090205490915060ff16158015610e39575081610e368561057b565b10155b15610e88576001600160a01b038416600081815260686020526040808220805460ff19166001179055517f5f6a357715c86a0b80d205efc69459d06eceec454e556cdffe5c08d7ca7160a89190a25b6001600160a01b03841660009081526069602052604090205460ff16158015610eb9575080610eb68561057b565b10155b15610f1f576001600160a01b0384166000908152606960205260409020805460ff19166001179055610eea84612350565b6040516001600160a01b038516907f71f43e22c593e9d62d77d221fea43347c1f5740ffb2ac022208762096aed4ece90600090a25b6001600160a01b0384166000908152606560205260409020610f4c42610f44876105d4565b839190612439565b836001600160a01b0316639e72cfa16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fae919061340f565b6001600160a01b031663a2e620456040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610fe857600080fd5b505af1158015610ffc573d6000803e3d6000fd5b50505050836001600160a01b031663b0aba0726040518163ffffffff1660e01b8152600401602060405180830381865afa15801561103e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611062919061340f565b6001600160a01b031663a2e620456040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561109c57600080fd5b505af11580156110b0573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b0381166000908152606560205260408082208151610b408101909252829190605a83835b8282101561113057604080518082019091528483015463ffffffff81168252600160201b90046001600160a01b0316602080830191909152908252600190920191016110e9565b5050505090506105b2426001836125709092919063ffffffff16565b600080336001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663778ebe8f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111db919061340f565b6001600160a01b03161461123d5760405162461bcd60e51b8152602060048201526024808201527f466163746f72793a2063616c6c6572206973206e6f7420746865206c61756e636044820152631a1c185960e21b606482015260840161060e565b6040516336eb295160e11b815233906000908290636dd652a290611265908990600401613104565b600060405180830381865afa158015611282573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112aa91908101906135b1565b60400151905060006040518060800160405280886001600160a01b03168152602001836001600160a01b031663451c3d806040518163ffffffff1660e01b8152600401602060405180830381865afa15801561130a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132e919061340f565b6001600160a01b03168152602001836001600160a01b031663c3aa6a2f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561137a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139e91906134bb565b846001600160a01b031663f7abab9e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140091906134bb565b61140a9190613692565b815260200187815250905080602001516001600160a01b031681600001516001600160a01b031611156114625760208101805182516001600160a01b0390811690925216815260608101805160408301805190925290525b602081015160608201516040516323b872dd60e01b81526001600160a01b03909216916323b872dd9161149b91339130916004016136a5565b6020604051808303816000875af11580156114ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114de91906136c9565b50805160408083015190516323b872dd60e01b81526001600160a01b03909216916323b872dd9161151591339130916004016136a5565b6020604051808303816000875af1158015611534573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155891906136c9565b508051604080830151905163095ea7b360e01b81526001600160a01b039092169163095ea7b3916115ae917f000000000000000000000000000000000000000000000000000000000000000091906004016136e4565b6020604051808303816000875af11580156115cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f191906136c9565b5080602001516001600160a01b031663095ea7b37f000000000000000000000000000000000000000000000000000000000000000083606001516040518363ffffffff1660e01b81526004016116489291906136e4565b6020604051808303816000875af1158015611667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168b91906136c9565b50604080516101608101825282516001600160a01b03908116825260208085015190911690820152610bb881830152620d89b319606080830191909152620d89b46080830152918301805160a0830152918301805160c0830152600060e0830181905261010083018190523061012084015242610140840152925190519192611714929061295c565b825160208401516040516309f56ab160e11b81526001600160a01b0392831660048201529082166024820152610bb8604482015281831660648201529196507f000000000000000000000000000000000000000000000000000000000000000016906313ead562906084016020604051808303816000875af115801561179e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c2919061340f565b95506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166388316456846040518263ffffffff1660e01b815260040161181391906136fd565b6080604051808303816000875af1158015611832573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185691906137b3565b50509150915060006040518060a00160405280848152602001836001600160801b03168152602001620d89e71960020b8152602001620d89e719611899906137fe565b60020b8152610bb86020918201526001600160a01b038d8116600090815260668352604080822085518155858501516001909101805487840151606089015160808a01516001600160801b039095166001600160981b031990931692909217600160801b62ffffff928316021765ffffffffffff60981b1916600160981b9282169290920262ffffff60b01b191691909117600160b01b919093160291909117905560679093529190912080546001600160a01b031916918c1691909117905590506119c6426119688d6105d4565b6001600160a01b038e16600090815260656020526040902091906040805180820190915263ffffffff929092168083526001600160a01b0391909116602090920182905282546001600160c01b03191617600160201b909102179055565b505050505050509250929050565b6000808060001985870985870292508281108382030391505080600003611a0e57838281611a0457611a0461342c565b04925050506105b2565b808411611a1a57600080fd5b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636c4eca276040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b07919061340f565b90506000611b1489611d1b565b90506000816001600160a01b031663451c3d806040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7a919061340f565b604051632c54de4f60e01b81529091506001600160a01b03841690632c54de4f90611baf9084908d9030908d90600401613820565b6020604051808303816000875af1158015611bce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf291906136c9565b611c0e5760405162461bcd60e51b815260040161060e9061384a565b611c39817f000000000000000000000000000000000000000000000000000000000000000089612a70565b60408051610100810182526001600160a01b0380841682528c81166020830152610bb8828401528a811660608301526080820188905260a082018a905260c08201899052600060e0830152915163414bf38960e01b815290917f0000000000000000000000000000000000000000000000000000000000000000169063414bf38990611cc9908490600401613880565b6020604051808303816000875af1158015611ce8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0c91906134bb565b9b9a5050505050505050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663778ebe8f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da0919061340f565b6040516336eb295160e11b81529091506001600160a01b03821690636dd652a290611dcf908690600401613104565b600060405180830381865afa158015611dec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e1491908101906135b1565b604001519392505050565b600080516020613a1e833981519152546001600160a01b031690565b336001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec7919061340f565b6001600160a01b0316146109355760405162461bcd60e51b815260206004820181905260248201527f466163746f72793a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161060e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611f5557611f5083612b7a565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611faf575060408051601f3d908101601f19168201909252611fac918101906134bb565b60015b6120125760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161060e565b600080516020613a1e83398151915281146120815760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161060e565b50611f50838383612c14565b6001600160a01b03163b151590565b600054610100900460ff166121075760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161060e565b565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636c4eca276040518163ffffffff1660e01b8152600401602060405180830381865afa15801561216a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218e919061340f565b9050600061219b89611d1b565b90506000816001600160a01b031663451c3d806040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612201919061340f565b604051632c54de4f60e01b81529091506001600160a01b03841690632c54de4f90612236908d908d9030908d90600401613820565b6020604051808303816000875af1158015612255573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227991906136c9565b6122955760405162461bcd60e51b815260040161060e9061384a565b6122c08a7f000000000000000000000000000000000000000000000000000000000000000089612a70565b60408051610100810182526001600160a01b03808d1682528381166020830152610bb8828401528a811660608301526080820188905260a082018a905260c08201899052600060e0830152915163414bf38960e01b815290917f0000000000000000000000000000000000000000000000000000000000000000169063414bf38990611cc9908490600401613880565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166334dbaeb36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123d4919061340f565b60405163d2b7d96760e01b81529091506001600160a01b0382169063d2b7d96790612403908590600401613104565b600060405180830381600087803b15801561241d57600080fd5b505af1158015612431573d6000803e3d6000fd5b505050505050565b60408051610b40810190915260009081906124a49086605a84835b8282101561249b57604080518082019091528483015463ffffffff81168252600160201b90046001600160a01b031660208083019190915290825260019092019101612454565b50505050612c3f565b91509150816000015163ffffffff168463ffffffff16116124c6575050505050565b8151600a906124d590866138fb565b63ffffffff1610156124e8575050505050565b60006124f382612ce5565b905060405180604001604052808663ffffffff168152602001856001600160a01b0316815250868261ffff16605a811061252f5761252f613917565b8251910180546020909301516001600160a01b0316600160201b026001600160c01b031990931663ffffffff90921691909117919091179055505050505050565b600060015b605a8161ffff16101561268c57848161ffff16605a811061259857612598613917565b60200201515163ffffffff161561268c576000858261ffff16605a81106125c1576125c1613917565b60200201519050815b60008161ffff1611801561260f5750815163ffffffff16876125ed60018461392d565b61ffff16605a811061260157612601613917565b60200201515163ffffffff16115b15612666578661262060018361392d565b61ffff16605a811061263457612634613917565b6020020151878261ffff16605a811061264f5761264f613917565b60200201528061265e81613947565b9150506125ca565b81878261ffff16605a811061267d5761267d613917565b60200201525050600101612575565b5060008060015b60598161ffff1610156128a557868161ffff16605a81106126b6576126b6613917565b60200201515163ffffffff1660000361275e576000876126d760018461392d565b61ffff16605a81106126eb576126eb613917565b6020020151516126fb90886138fb565b90506127078184613965565b925063ffffffff81168861271c60018561392d565b61ffff16605a811061273057612730613917565b6020020151602001516001600160a01b031661274c9190613313565b6127569085613981565b9350506128a5565b60008761276c60018461392d565b61ffff16605a811061278057612780613917565b6020020151518861ffff8416605a811061279c5761279c613917565b6020020151516127ac91906138fb565b90506127b88184613965565b925063ffffffff8116886127cd60018561392d565b61ffff16605a81106127e1576127e1613917565b6020020151602001516001600160a01b03166127fd9190613313565b6128079085613981565b9350851561289c5761289c888361ffff16605a811061282857612828613917565b60200201515163ffffffff168961284060018661392d565b61ffff16605a811061285457612854613917565b60200201515163ffffffff9081169084168b61287160018861392d565b61ffff16605a811061288557612885613917565b6020020151602001516001600160a01b0316612d0b565b50600101612693565b5060008163ffffffff16116128fc5760405162461bcd60e51b815260206004820181905260248201527f545377617031354f7261636c653a20746f74616c54696d65206973207a65726f604482015260640161060e565b6001600160a01b03821061294c5760405162461bcd60e51b8152602060048201526017602482015276545377617031354f7261636c653a206f766572666c6f7760481b604482015260640161060e565b610b7b63ffffffff821683613442565b6000808411801561296d5750600083115b6129c35760405162461bcd60e51b815260206004820152602160248201527f416d6f756e7473206d7573742062652067726561746572207468616e207a65726044820152606f60f81b606482015260840161060e565b6000846129d885670de0b6b3a7640000613313565b6129e29190613442565b905060006129ef82612d5f565b90506000633b9aca00612a0683600160601b613313565b612a109190613442565b905060008111612a325760405162461bcd60e51b815260040161060e9061332a565b8415612a4957612a4681600160c01b613442565b90505b6001600160a01b03811115610b7b5760405162461bcd60e51b815260040161060e90613464565b600080846001600160a01b031663095ea7b360e01b8585604051602401612a989291906136e4565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612ad69190613994565b6000604051808303816000865af19150503d8060008114612b13576040519150601f19603f3d011682016040523d82523d6000602084013e612b18565b606091505b5091509150818015612b42575080511580612b42575080806020019051810190612b4291906136c9565b612b735760405162461bcd60e51b8152602060048201526002602482015261534160f01b604482015260640161060e565b5050505050565b612b838161208d565b612be55760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161060e565b600080516020613a1e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612c1d83612e47565b600082511180612c2a5750805b15611f5057612c398383612e87565b50505050565b604080518082019091526000808252602082015260008080805b605a8161ffff161015612cbf578263ffffffff16868261ffff16605a8110612c8357612c83613917565b60200201515163ffffffff161115612cb757858161ffff16605a8110612cab57612cab613917565b60200201515192509050805b600101612c59565b50848161ffff16605a8110612cd657612cd6613917565b60200201519590945092505050565b60008161ffff16605903612cfb57506000919050565b61086a8260016139b0565b919050565b60405160248101859052604481018490526064810183905260848101829052612c399060a40160408051601f198184030181529190526020810180516001600160e01b0316620327f760eb1b179052612eac565b600081600003612d7157506000919050565b60006001612d7e84612eb5565b901c6001901b90506001818481612d9757612d9761342c565b048201901c90506001818481612daf57612daf61342c565b048201901c90506001818481612dc757612dc761342c565b048201901c90506001818481612ddf57612ddf61342c565b048201901c90506001818481612df757612df761342c565b048201901c90506001818481612e0f57612e0f61342c565b048201901c90506001818481612e2757612e2761342c565b048201901c90506105b281828581612e4157612e4161342c565b04612f49565b612e5081612b7a565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606105b28383604051806060016040528060278152602001613a3e60279139612f5f565b61093581612fcd565b600080608083901c15612eca57608092831c92015b604083901c15612edc57604092831c92015b602083901c15612eee57602092831c92015b601083901c15612f0057601092831c92015b600883901c15612f1257600892831c92015b600483901c15612f2457600492831c92015b600283901c15612f3657600292831c92015b600183901c1561086a5760010192915050565b6000818310612f5857816105b2565b5090919050565b6060600080856001600160a01b031685604051612f7c9190613994565b600060405180830381855af49150503d8060008114612fb7576040519150601f19603f3d011682016040523d82523d6000602084013e612fbc565b606091505b5091509150610b7b86838387612fee565b60006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6060831561305b578251600003613054576130088561208d565b6130545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161060e565b50816105cc565b6105cc83838151156130705781518083602001fd5b8060405162461bcd60e51b815260040161060e91906139ca565b6001600160a01b038116811461093557600080fd5b6000602082840312156130b157600080fd5b81356105b28161308a565b600080600080608085870312156130d257600080fd5b84356130dd8161308a565b966020860135965060408601359560600135945092505050565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b6000806040838503121561312b57600080fd5b82356131368161308a565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561317c5761317c613144565b60405290565b604051601f8201601f191681016001600160401b03811182821017156131aa576131aa613144565b604052919050565b60006001600160401b038211156131cb576131cb613144565b50601f01601f191660200190565b600080604083850312156131ec57600080fd5b82356131f78161308a565b915060208301356001600160401b0381111561321257600080fd5b8301601f8101851361322357600080fd5b8035613236613231826131b2565b613182565b81815286602083850101111561324b57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080600060a0868803121561328357600080fd5b853561328e8161308a565b9450602086013561329e8161308a565b94979496505050506040830135926060810135926080909101359150565b6000806000606084860312156132d157600080fd5b83356132dc8161308a565b925060208401356132ec8161308a565b929592945050506040919091013590565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761086a5761086a6132fd565b6020808252600490820152637a65726f60e01b604082015260600190565b805161ffff81168114612d0657600080fd5b80518015158114612d0657600080fd5b600080600080600080600060e0888a03121561338557600080fd5b87516133908161308a565b8097505060208801518060020b81146133a857600080fd5b95506133b660408901613348565b94506133c460608901613348565b93506133d260808901613348565b925060a088015160ff811681146133e857600080fd5b91506133f660c0890161335a565b905092959891949750929550565b8051612d068161308a565b60006020828403121561342157600080fd5b81516105b28161308a565b634e487b7160e01b600052601260045260246000fd5b60008261345f57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600890820152676f766572666c6f7760c01b604082015260600190565b6001600160a01b039586168152938516602085015262ffffff9290921660408401526060830152909116608082015260a00190565b6000602082840312156134cd57600080fd5b5051919050565b6020808252602c908201526000805160206139fe83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206139fe83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b60005b8381101561356357818101518382015260200161354b565b50506000910152565b600082601f83011261357d57600080fd5b815161358b613231826131b2565b8181528460208386010111156135a057600080fd5b6105cc826020830160208701613548565b6000602082840312156135c357600080fd5b81516001600160401b038111156135d957600080fd5b820160e081850312156135eb57600080fd5b6135f361315a565b6135fc82613404565b81526020828101519082015261361460408301613404565b604082015260608201516001600160401b0381111561363257600080fd5b61363e8682850161356c565b60608301525060808201516001600160401b0381111561365d57600080fd5b6136698682850161356c565b60808301525060a0828101519082015261368560c0830161335a565b60c0820152949350505050565b8181038181111561086a5761086a6132fd565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000602082840312156136db57600080fd5b6105b28261335a565b6001600160a01b03929092168252602082015260400190565b6000610160820190506137118284516130f7565b602083015161372360208401826130f7565b50604083015161373a604084018262ffffff169052565b50606083015161374f606084018260020b9052565b506080830151613764608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e08301526101008301516101008301526101208301516137a36101208401826130f7565b5061014092830151919092015290565b600080600080608085870312156137c957600080fd5b845160208601519094506001600160801b03811681146137e857600080fd5b6040860151606090960151949790965092505050565b60008160020b627fffff198103613817576138176132fd565b60000392915050565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b6020808252601c908201527b11195e13185d5b98da195c8e881d1c985b9cd9995c8819985a5b195960221b604082015260600190565b81516001600160a01b0390811682526020808401519091169082015260408083015162ffffff16908201526060808301516101008301916138c3908401826130f7565b506080830151608083015260a083015160a083015260c083015160c083015260e08301516138f460e08401826130f7565b5092915050565b63ffffffff828116828216039081111561086a5761086a6132fd565b634e487b7160e01b600052603260045260246000fd5b61ffff828116828216039081111561086a5761086a6132fd565b600061ffff82168061395b5761395b6132fd565b6000190192915050565b63ffffffff818116838216019081111561086a5761086a6132fd565b8082018082111561086a5761086a6132fd565b600082516139a6818460208701613548565b9190910192915050565b61ffff818116838216019081111561086a5761086a6132fd565b60208152600082518060208401526139e9816040850160208701613548565b601f01601f1916919091016040019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220320ff25d7b8ac6a574760cd8d7b48eb3a03b306bf01fdec581421f0b5049d15f64736f6c634300081b0033000000000000000000000000388b5e4a211439034a09705718acae7ef1920968