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)
latestUpdateOracleMapping
viewfunction latestUpdateOracleMapping(address token0) view returns (uint256)
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
0x6101406040523060805234801561001557600080fd5b50604051613cb5380380613cb5833981016040819052610034916100a7565b6001600160a01b031660a052731f98431c8ad98523631ae4a59f267346ea31f98460c05273c36442b4a4522e871399cd717abdd847ab11fe8860e05273e592427a0aece92de3edee1f18e0157c058615646101005273b27308f9f90d607463bb33ea1bebb41c27ce5ab6610120526100d7565b6000602082840312156100b957600080fd5b81516001600160a01b03811681146100d057600080fd5b9392505050565b60805160a05160c05160e0516101005161012051613b146101a16000396000818161081a0152610b630152600081816118c80152818161195b0152611f62015260008181611239015281816112bb01528181611409015261147d0152600050506000818161030d01528181610e0f0152818161173b015281816119e701528181611b0e01528181611dd501528181611fdc0152818161207f0152612b200152600081816108b2015281816108f20152818161097a015281816109ba0152610a360152613b146000f3fe6080604052600436106101265760003560e01c80630c391f771461012b5780631622dbe41461015e5780631f27fd841461017e5780632e6155c7146101ab5780633659cfe6146101cb5780634761c8cd146101ed5780634f1ef2861461022d57806352d1902d1461024057806360d6dab31461025557806362df9ea21461028e578063704dec23146102ae57806376165adf146102db57806379502c55146102fb5780638129fc1c1461032f57806382eb354d14610344578063917d49f41461037457806392a430ab146103b857806392cdbac5146103f1578063a8257ccd14610411578063b8a9ddeb146104b0578063c50a29f2146104d0578063c53ab009146104f0578063dd1b9c4a14610510578063edfb65161461053a578063f7366b791461057a575b600080fd5b34801561013757600080fd5b5061014b610146366004613119565b6105b3565b6040519081526020015b60405180910390f35b34801561016a57600080fd5b5061014b610179366004613136565b6105f1565b34801561018a57600080fd5b5061019e610199366004613119565b61060c565b604051610155919061317e565b3480156101b757600080fd5b5061014b6101c6366004613192565b61078e565b3480156101d757600080fd5b506101eb6101e6366004613119565b6108a8565b005b3480156101f957600080fd5b5061021d610208366004613119565b60696020526000908152604090205460ff1681565b6040519015158152602001610155565b6101eb61023b366004613253565b610970565b34801561024c57600080fd5b5061014b610a29565b34801561026157600080fd5b5061021d610270366004613119565b6001600160a01b031660009081526069602052604090205460ff1690565b34801561029a57600080fd5b5061014b6102a9366004613192565b610ad7565b3480156102ba57600080fd5b5061014b6102c9366004613119565b606a6020526000908152604090205481565b3480156102e757600080fd5b5061014b6102f63660046132e5565b610ba3565b34801561030757600080fd5b5061019e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561033b57600080fd5b506101eb610bbd565b34801561035057600080fd5b5061021d61035f366004613119565b60686020526000908152604090205460ff1681565b34801561038057600080fd5b5061039461038f366004613192565b610cd4565b6040805163ffffffff90931683526001600160a01b03909116602083015201610155565b3480156103c457600080fd5b5061019e6103d3366004613119565b6001600160a01b039081166000908152606760205260409020541690565b3480156103fd57600080fd5b5061014b61040c366004613136565b610d10565b34801561041d57600080fd5b5061047461042c366004613119565b606660205260009081526040902080546001909101546001600160801b03811690600160801b8104600290810b91600160981b810490910b90600160b01b900462ffffff1685565b604080519586526001600160801b039094166020860152600292830b93850193909352900b606083015262ffffff16608082015260a001610155565b3480156104bc57600080fd5b5061014b6104cb3660046132e5565b610d20565b3480156104dc57600080fd5b506101eb6104eb366004613336565b610d30565b3480156104fc57600080fd5b5061019e61050b366004613119565b610d75565b34801561051c57600080fd5b50610526610bb881565b60405162ffffff9091168152602001610155565b34801561054657600080fd5b5061055a610555366004613192565b610e00565b604080516001600160a01b03938416815292909116602083015201610155565b34801561058657600080fd5b5061021d610595366004613119565b6001600160a01b031660009081526068602052604090205460ff1690565b6000806105bf83610d75565b90506105ea6105d76001600160a01b0383168061338d565b670de0b6b3a7640000600160c01b611688565b9392505050565b6000610601853333878787611736565b90505b949350505050565b6001600160a01b038082166000908152606760205260408120549091168061064f5760405162461bcd60e51b8152600401610646906133a4565b60405180910390fd5b60008190506000816001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610694573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b891906133e4565b50505050505090506000816001600160a01b031690506000836001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561070e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107329190613489565b9050866001600160a01b0316816001600160a01b03161461075e5761075b82600160c01b6134bc565b91505b6001600160a01b0382106107845760405162461bcd60e51b8152600401610646906134de565b5095945050505050565b60008061079a846119e2565b90506000816001600160a01b031663451c3d806040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108009190613489565b60405163f7729d4360e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f7729d439061085a9088908590610bb8908a90600090600401613500565b6020604051808303816000875af1158015610879573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089d9190613535565b925050505b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108f05760405162461bcd60e51b81526004016106469061354e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610922611ae6565b6001600160a01b0316146109485760405162461bcd60e51b815260040161064690613588565b61095181611b02565b6040805160008082526020820190925261096d91839190611be4565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109b85760405162461bcd60e51b81526004016106469061354e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109ea611ae6565b6001600160a01b031614610a105760405162461bcd60e51b815260040161064690613588565b610a1982611b02565b610a2582826001611be4565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ac45760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610646565b50600080516020613a9883398151915290565b600080610ae3846119e2565b90506000816001600160a01b031663451c3d806040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b499190613489565b60405163f7729d4360e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f7729d439061085a9084908990610bb8908a90600090600401613500565b6000610bb3863387878787611736565b9695505050505050565b600054610100900460ff1615808015610bdd5750600054600160ff909116105b80610bfe5750610bec30611d54565b158015610bfe575060005460ff166001145b610c615760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610646565b6000805460ff191660011790558015610c84576000805461ff0019166101001790555b610c8c611d63565b801561096d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b606560205281600052604060002081605a8110610cf057600080fd5b015463ffffffff81169250600160201b90046001600160a01b0316905082565b6000610601853333878787611dd0565b6000610bb3863387878787611dd0565b336000908152606760205260409020546001600160a01b0316610d655760405162461bcd60e51b8152600401610646906133a4565b33610d6f81611fda565b50505050565b6001600160a01b0381166000908152606560205260408082208151610b408101909252829190605a83835b82821015610de757604080518082019091528483015463ffffffff81168252600160201b90046001600160a01b031660208083019190915290825260019092019101610da0565b5050505090506105ea42826124a690919063ffffffff16565b600080336001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663778ebe8f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8f9190613489565b6001600160a01b031614610ef15760405162461bcd60e51b8152602060048201526024808201527f466163746f72793a2063616c6c6572206973206e6f7420746865206c61756e636044820152631a1c185960e21b6064820152608401610646565b6040516336eb295160e11b815233906000908290636dd652a290610f1990899060040161317e565b600060405180830381865afa158015610f36573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f5e919081019061362b565b60400151905060006040518060800160405280886001600160a01b03168152602001836001600160a01b031663451c3d806040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe29190613489565b6001600160a01b03168152602001836001600160a01b031663c3aa6a2f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561102e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110529190613535565b846001600160a01b031663f7abab9e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611090573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b49190613535565b6110be919061370c565b815260200187815250905080602001516001600160a01b031681600001516001600160a01b031611156111165760208101805182516001600160a01b0390811690925216815260608101805160408301805190925290525b602081015160608201516040516323b872dd60e01b81526001600160a01b03909216916323b872dd9161114f913391309160040161371f565b6020604051808303816000875af115801561116e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111929190613743565b50805160408083015190516323b872dd60e01b81526001600160a01b03909216916323b872dd916111c9913391309160040161371f565b6020604051808303816000875af11580156111e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120c9190613743565b508051604080830151905163095ea7b360e01b81526001600160a01b039092169163095ea7b391611262917f0000000000000000000000000000000000000000000000000000000000000000919060040161375e565b6020604051808303816000875af1158015611281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a59190613743565b5080602001516001600160a01b031663095ea7b37f000000000000000000000000000000000000000000000000000000000000000083606001516040518363ffffffff1660e01b81526004016112fc92919061375e565b6020604051808303816000875af115801561131b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133f9190613743565b50604080516101608101825282516001600160a01b03908116825260208085015190911690820152610bb881830152620d89b319606080830191909152620d89b46080830152918301805160a0830152918301805160c0830152600060e08301819052610100830181905230610120840152426101408401529251905191926113c8929061283f565b825160208401516040516309f56ab160e11b81526001600160a01b0392831660048201529082166024820152610bb8604482015281831660648201529196507f000000000000000000000000000000000000000000000000000000000000000016906313ead562906084016020604051808303816000875af1158015611452573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114769190613489565b95506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166388316456846040518263ffffffff1660e01b81526004016114c79190613777565b6080604051808303816000875af11580156114e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150a919061382d565b50509150915060006040518060a00160405280848152602001836001600160801b03168152602001620d89e71960020b8152602001620d89e71961154d90613878565b60020b8152610bb86020918201526001600160a01b038d8116600090815260668352604080822085518155858501516001909101805487840151606089015160808a01516001600160801b039095166001600160981b031990931692909217600160801b62ffffff928316021765ffffffffffff60981b1916600160981b9282169290920262ffffff60b01b191691909117600160b01b919093160291909117905560679093529190912080546001600160a01b031916918c16919091179055905061167a4261161c8d61060c565b6001600160a01b038e16600090815260656020526040902091906040805180820190915263ffffffff929092168083526001600160a01b0391909116602090920182905282546001600160c01b03191617600160201b909102179055565b505050505050509250929050565b60008080600019858709858702925082811083820303915050806000036116c2578382816116b8576116b86134a6565b04925050506105ea565b8084116116ce57600080fd5b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636c4eca276040518163ffffffff1660e01b8152600401602060405180830381865afa158015611797573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117bb9190613489565b905060006117c8896119e2565b90506000816001600160a01b031663451c3d806040518163ffffffff1660e01b8152600401602060405180830381865afa15801561180a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182e9190613489565b604051632c54de4f60e01b81529091506001600160a01b03841690632c54de4f906118639084908d9030908d9060040161389a565b6020604051808303816000875af1158015611882573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a69190613743565b6118c25760405162461bcd60e51b8152600401610646906138c4565b6118ed817f000000000000000000000000000000000000000000000000000000000000000089612953565b60408051610100810182526001600160a01b0380841682528c81166020830152610bb89282019290925290891660608201526080810186905260a0810188905260c08101879052600060e08201526119448b611fda565b60405163414bf38960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063414bf389906119909084906004016138fa565b6020604051808303816000875af11580156119af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d39190613535565b9b9a5050505050505050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663778ebe8f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a679190613489565b6040516336eb295160e11b81529091506001600160a01b03821690636dd652a290611a9690869060040161317e565b600060405180830381865afa158015611ab3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611adb919081019061362b565b604001519392505050565b600080516020613a98833981519152546001600160a01b031690565b336001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8e9190613489565b6001600160a01b03161461096d5760405162461bcd60e51b815260206004820181905260248201527f466163746f72793a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610646565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611c1c57611c1783612a5d565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c76575060408051601f3d908101601f19168201909252611c7391810190613535565b60015b611cd95760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610646565b600080516020613a988339815191528114611d485760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610646565b50611c17838383612af7565b6001600160a01b03163b151590565b600054610100900460ff16611dce5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610646565b565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636c4eca276040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e559190613489565b90506000611e62896119e2565b90506000816001600160a01b031663451c3d806040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ea4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec89190613489565b604051632c54de4f60e01b81529091506001600160a01b03841690632c54de4f90611efd908d908d9030908d9060040161389a565b6020604051808303816000875af1158015611f1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f409190613743565b611f5c5760405162461bcd60e51b8152600401610646906138c4565b611f878a7f000000000000000000000000000000000000000000000000000000000000000089612953565b60408051610100810182526001600160a01b03808d1682528381166020830152610bb89282019290925290891660608201526080810186905260a0810188905260c08101879052600060e08201526119448b5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663796b89b96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612038573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205c9190613535565b6001600160a01b0382166000908152606a60205260409020540361207d5750565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663796b89b96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ff9190613535565b6001600160a01b0382166000908152606a6020526040812091909155612124826119e2565b90506000816001600160a01b0316638c94370d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218a9190613535565b90506000826001600160a01b03166370aaf1d26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f09190613535565b6001600160a01b03851660009081526068602052604090205490915060ff16158015612224575081612221856105b3565b10155b15612273576001600160a01b038416600081815260686020526040808220805460ff19166001179055517f5f6a357715c86a0b80d205efc69459d06eceec454e556cdffe5c08d7ca7160a89190a25b6001600160a01b03841660009081526069602052604090205460ff161580156122a45750806122a1856105b3565b10155b1561230a576001600160a01b0384166000908152606960205260409020805460ff191660011790556122d584612b1c565b6040516001600160a01b038516907f71f43e22c593e9d62d77d221fea43347c1f5740ffb2ac022208762096aed4ece90600090a25b6001600160a01b03841660009081526065602052604090206123374261232f8761060c565b839190612c05565b836001600160a01b0316639e72cfa16040518163ffffffff1660e01b8152600401602060405180830381865afa158015612375573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123999190613489565b6001600160a01b031663a2e620456040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156123d357600080fd5b505af11580156123e7573d6000803e3d6000fd5b50505050836001600160a01b031663b0aba0726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612429573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061244d9190613489565b6001600160a01b031663a2e620456040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561248757600080fd5b505af115801561249b573d6000803e3d6000fd5b505050505050505050565b600060015b605a8161ffff1610156125c257838161ffff16605a81106124ce576124ce613975565b60200201515163ffffffff16156125c2576000848261ffff16605a81106124f7576124f7613975565b60200201519050815b60008161ffff161180156125455750815163ffffffff168661252360018461398b565b61ffff16605a811061253757612537613975565b60200201515163ffffffff16115b1561259c578561255660018361398b565b61ffff16605a811061256a5761256a613975565b6020020151868261ffff16605a811061258557612585613975565b602002015280612594816139a5565b915050612500565b81868261ffff16605a81106125b3576125b3613975565b602002015250506001016124ab565b5060006125d161012c846139c3565b905060008060015b60598161ffff16101561278857868161ffff16605a81106125fc576125fc613975565b60200201515163ffffffff166000036126a45760008761261d60018461398b565b61ffff16605a811061263157612631613975565b60200201515161264190886139c3565b905061264d81846139df565b925063ffffffff81168861266260018561398b565b61ffff16605a811061267657612676613975565b6020020151602001516001600160a01b0316612692919061338d565b61269c90856139fb565b935050612788565b8363ffffffff16878261ffff16605a81106126c1576126c1613975565b60200201515163ffffffff161115612780576000876126e160018461398b565b61ffff16605a81106126f5576126f5613975565b6020020151518861ffff8416605a811061271157612711613975565b60200201515161272191906139c3565b905061272d81846139df565b925063ffffffff81168861274260018561398b565b61ffff16605a811061275657612756613975565b6020020151602001516001600160a01b0316612772919061338d565b61277c90856139fb565b9350505b6001016125d9565b5060008163ffffffff16116127df5760405162461bcd60e51b815260206004820181905260248201527f545377617031354f7261636c653a20746f74616c54696d65206973207a65726f6044820152606401610646565b6001600160a01b03821061282f5760405162461bcd60e51b8152602060048201526017602482015276545377617031354f7261636c653a206f766572666c6f7760481b6044820152606401610646565b610bb363ffffffff8216836134bc565b600080841180156128505750600083115b6128a65760405162461bcd60e51b815260206004820152602160248201527f416d6f756e7473206d7573742062652067726561746572207468616e207a65726044820152606f60f81b6064820152608401610646565b6000846128bb85670de0b6b3a764000061338d565b6128c591906134bc565b905060006128d282612d3c565b90506000633b9aca006128e983600160601b61338d565b6128f391906134bc565b9050600081116129155760405162461bcd60e51b8152600401610646906133a4565b841561292c5761292981600160c01b6134bc565b90505b6001600160a01b03811115610bb35760405162461bcd60e51b8152600401610646906134de565b600080846001600160a01b031663095ea7b360e01b858560405160240161297b92919061375e565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516129b99190613a0e565b6000604051808303816000865af19150503d80600081146129f6576040519150601f19603f3d011682016040523d82523d6000602084013e6129fb565b606091505b5091509150818015612a25575080511580612a25575080806020019051810190612a259190613743565b612a565760405162461bcd60e51b8152602060048201526002602482015261534160f01b6044820152606401610646565b5050505050565b612a6681611d54565b612ac85760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610646565b600080516020613a9883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612b0083612e24565b600082511180612b0d5750805b15611c1757610d6f8383612e64565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166334dbaeb36040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba09190613489565b60405163d2b7d96760e01b81529091506001600160a01b0382169063d2b7d96790612bcf90859060040161317e565b600060405180830381600087803b158015612be957600080fd5b505af1158015612bfd573d6000803e3d6000fd5b505050505050565b60408051610b4081019091526000908190612c709086605a84835b82821015612c6757604080518082019091528483015463ffffffff81168252600160201b90046001600160a01b031660208083019190915290825260019092019101612c20565b50505050612e89565b91509150816000015163ffffffff168463ffffffff1611612c92575050505050565b8151600a90612ca190866139c3565b63ffffffff161015612cb4575050505050565b6000612cbf82612f2f565b905060405180604001604052808663ffffffff168152602001856001600160a01b0316815250868261ffff16605a8110612cfb57612cfb613975565b8251910180546020909301516001600160a01b0316600160201b026001600160c01b031990931663ffffffff90921691909117919091179055505050505050565b600081600003612d4e57506000919050565b60006001612d5b84612f55565b901c6001901b90506001818481612d7457612d746134a6565b048201901c90506001818481612d8c57612d8c6134a6565b048201901c90506001818481612da457612da46134a6565b048201901c90506001818481612dbc57612dbc6134a6565b048201901c90506001818481612dd457612dd46134a6565b048201901c90506001818481612dec57612dec6134a6565b048201901c90506001818481612e0457612e046134a6565b048201901c90506105ea81828581612e1e57612e1e6134a6565b04612fe9565b612e2d81612a5d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606105ea8383604051806060016040528060278152602001613ab860279139612fff565b604080518082019091526000808252602082015260008080805b605a8161ffff161015612f09578263ffffffff16868261ffff16605a8110612ecd57612ecd613975565b60200201515163ffffffff161115612f0157858161ffff16605a8110612ef557612ef5613975565b60200201515192509050805b600101612ea3565b50848161ffff16605a8110612f2057612f20613975565b60200201519590945092505050565b60008161ffff16605903612f4557506000919050565b6108a2826001613a2a565b919050565b600080608083901c15612f6a57608092831c92015b604083901c15612f7c57604092831c92015b602083901c15612f8e57602092831c92015b601083901c15612fa057601092831c92015b600883901c15612fb257600892831c92015b600483901c15612fc457600492831c92015b600283901c15612fd657600292831c92015b600183901c156108a25760010192915050565b6000818310612ff857816105ea565b5090919050565b6060600080856001600160a01b03168560405161301c9190613a0e565b600060405180830381855af49150503d8060008114613057576040519150601f19603f3d011682016040523d82523d6000602084013e61305c565b606091505b5091509150610bb386838387606083156130d55782516000036130ce5761308285611d54565b6130ce5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610646565b5081610604565b61060483838151156130ea5781518083602001fd5b8060405162461bcd60e51b81526004016106469190613a44565b6001600160a01b038116811461096d57600080fd5b60006020828403121561312b57600080fd5b81356105ea81613104565b6000806000806080858703121561314c57600080fd5b843561315781613104565b966020860135965060408601359560600135945092505050565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b600080604083850312156131a557600080fd5b82356131b081613104565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156131f6576131f66131be565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613224576132246131be565b604052919050565b60006001600160401b03821115613245576132456131be565b50601f01601f191660200190565b6000806040838503121561326657600080fd5b823561327181613104565b915060208301356001600160401b0381111561328c57600080fd5b8301601f8101851361329d57600080fd5b80356132b06132ab8261322c565b6131fc565b8181528660208385010111156132c557600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080600060a086880312156132fd57600080fd5b853561330881613104565b9450602086013561331881613104565b94979496505050506040830135926060810135926080909101359150565b60008060006060848603121561334b57600080fd5b833561335681613104565b9250602084013561336681613104565b929592945050506040919091013590565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108a2576108a2613377565b6020808252600490820152637a65726f60e01b604082015260600190565b805161ffff81168114612f5057600080fd5b80518015158114612f5057600080fd5b600080600080600080600060e0888a0312156133ff57600080fd5b875161340a81613104565b8097505060208801518060020b811461342257600080fd5b9550613430604089016133c2565b945061343e606089016133c2565b935061344c608089016133c2565b925060a088015160ff8116811461346257600080fd5b915061347060c089016133d4565b905092959891949750929550565b8051612f5081613104565b60006020828403121561349b57600080fd5b81516105ea81613104565b634e487b7160e01b600052601260045260246000fd5b6000826134d957634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600890820152676f766572666c6f7760c01b604082015260600190565b6001600160a01b039586168152938516602085015262ffffff9290921660408401526060830152909116608082015260a00190565b60006020828403121561354757600080fd5b5051919050565b6020808252602c90820152600080516020613a7883398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020613a7883398151915260408201526b6163746976652070726f787960a01b606082015260800190565b60005b838110156135dd5781810151838201526020016135c5565b50506000910152565b600082601f8301126135f757600080fd5b81516136056132ab8261322c565b81815284602083860101111561361a57600080fd5b6106048260208301602087016135c2565b60006020828403121561363d57600080fd5b81516001600160401b0381111561365357600080fd5b820160e0818503121561366557600080fd5b61366d6131d4565b6136768261347e565b81526020828101519082015261368e6040830161347e565b604082015260608201516001600160401b038111156136ac57600080fd5b6136b8868285016135e6565b60608301525060808201516001600160401b038111156136d757600080fd5b6136e3868285016135e6565b60808301525060a082810151908201526136ff60c083016133d4565b60c0820152949350505050565b818103818111156108a2576108a2613377565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60006020828403121561375557600080fd5b6105ea826133d4565b6001600160a01b03929092168252602082015260400190565b60006101608201905061378b828451613171565b602083015161379d6020840182613171565b5060408301516137b4604084018262ffffff169052565b5060608301516137c9606084018260020b9052565b5060808301516137de608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015261012083015161381d610120840182613171565b5061014092830151919092015290565b6000806000806080858703121561384357600080fd5b845160208601519094506001600160801b038116811461386257600080fd5b6040860151606090960151949790965092505050565b60008160020b627fffff19810361389157613891613377565b60000392915050565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b6020808252601c908201527b11195e13185d5b98da195c8e881d1c985b9cd9995c8819985a5b195960221b604082015260600190565b81516001600160a01b0390811682526020808401519091169082015260408083015162ffffff169082015260608083015161010083019161393d90840182613171565b506080830151608083015260a083015160a083015260c083015160c083015260e083015161396e60e0840182613171565b5092915050565b634e487b7160e01b600052603260045260246000fd5b61ffff82811682821603908111156108a2576108a2613377565b600061ffff8216806139b9576139b9613377565b6000190192915050565b63ffffffff82811682821603908111156108a2576108a2613377565b63ffffffff81811683821601908111156108a2576108a2613377565b808201808211156108a2576108a2613377565b60008251613a208184602087016135c2565b9190910192915050565b61ffff81811683821601908111156108a2576108a2613377565b6020815260008251806020840152613a638160408501602087016135c2565b601f01601f1916919091016040019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122090fbe1c7c819cd5b191d0fde37c2ee063317c85bc6f7181793713e4ab5299ba664736f6c634300081b00330000000000000000000000003c011070e62e813aa1e77932c307ed56c84b919e