287 txs
326 calls
constructor
constructor()
functions
deployCoinEnabled
viewfunction deployCoinEnabled() view returns (bool)
deployedTokens
viewfunction deployedTokens(uint256) view returns (address tokenAddress, string name, string symbol, address deployer, uint256 time, string metadata, uint256 marketCapInETH)
getDeploysByPage
viewfunction getDeploysByPage(uint256 page, uint256 order) view returns (tuple[])
getMarketCap
viewfunction getMarketCap(address tokenAddress) view returns (uint256 marketCapETH)
getPenalty
purefunction getPenalty(uint256 ethAmount) pure returns (uint256)
getTokenBytecode
viewfunction getTokenBytecode(string _name, string _symbol, address creator) view returns (bytes bytecode)
getTokenPrice
viewfunction getTokenPrice(address tokenAddress) view returns (bytes32 poolIdBytes, uint160 sqrtPrice, uint256 calculatedPrice, uint256 marketCapETH)
platformController
viewfunction platformController() view returns (address)
POOL_MANAGER
viewfunction POOL_MANAGER() view returns (address)
POSITION_MANAGER
viewfunction POSITION_MANAGER() view returns (address)
STATE_VIEW
viewfunction STATE_VIEW() view returns (address)
tokenCount
viewfunction tokenCount() view returns (uint256)
UNIVERSAL_ROUTER
viewfunction UNIVERSAL_ROUTER() view returns (address)
WETH
viewfunction WETH() view returns (address)
collectFees
nonpayablefunction collectFees(uint256 tokenId) returns (uint256 amount0, uint256 amount1)
deployCoin
payablefunction deployCoin(string _name, string _symbol, string _metadata, bytes32 salt) payable
setPenaltyMultiplier
nonpayablefunction setPenaltyMultiplier(uint256 _multiplier)
toggleDeployCoin
nonpayablefunction toggleDeployCoin()
withdrawFeesETH
nonpayablefunction withdrawFeesETH()
withdrawFeesWETH
nonpayablefunction withdrawFeesWETH()
events
ERC20TokenCreated
event ERC20TokenCreated(address tokenAddress)
TokenPurchased
event TokenPurchased(address buyer, address tokenOut, uint256 ethSpent, uint256 tokensReceived)
errors
No errors.
creation bytecode
0x60806040525f600155600380546001600160a01b031990811673bd216513d74c8cf14cf4747e6aaa6420ff64ee9e179091556004805482166e04444c5dc75cb358380d2e3de08a9017905560058054909116737ffe42c4a5deea5b0fec41c94c136cf11559722717905560068054740166a9893cc07d91d95644aedd05d03f95e1dba8af6001600160a81b0319909116179055606460075534801560a1575f5ffd5b50600280546001600160a01b031916331790556144f2806100c15f395ff3fe60806040526004361061011e575f3560e01c8063aa4cfccd1161009d578063d146d31d11610062578063d146d31d1461037e578063e8dd7fc31461039d578063ec81aadb146103c4578063f7b64c83146103f6578063fe6b94541461040a575f5ffd5b8063aa4cfccd14610289578063aced8d81146102b0578063ad5c4648146102dc578063b17acdcd14610303578063d02641a014610337575f5ffd5b80638d99aeb0116100e35780638d99aeb0146101f457806396e59682146102205780639f181b5e1461024d5780639f9baaaa14610262578063a361e0d914610276575f5ffd5b80631bea83fe146101295780633bcc75f61461016d5780635a3afecf1461018c57806362308e85146101a257806367587046146101c4575f5ffd5b3661012557005b5f5ffd5b348015610134575f5ffd5b5061015073bd216513d74c8cf14cf4747e6aaa6420ff64ee9e81565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610178575f5ffd5b50600254610150906001600160a01b031681565b348015610197575f5ffd5b506101a0610429565b005b3480156101ad575f5ffd5b506101506e04444c5dc75cb358380d2e3de08a9081565b3480156101cf575f5ffd5b506006546101e490600160a01b900460ff1681565b6040519015158152602001610164565b3480156101ff575f5ffd5b5061021361020e36600461271b565b610610565b60405161016491906127c1565b34801561022b575f5ffd5b5061023f61023a3660046127d3565b610681565b604051908152602001610164565b348015610258575f5ffd5b5061023f60015481565b34801561026d575f5ffd5b506101a06106fa565b6101a06102843660046127ea565b61077b565b348015610294575f5ffd5b50610150737ffe42c4a5deea5b0fec41c94c136cf11559722781565b3480156102bb575f5ffd5b506102cf6102ca366004612880565b6109a7565b60405161016491906128a0565b3480156102e7575f5ffd5b5061015073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b34801561030e575f5ffd5b5061032261031d3660046127d3565b610e9a565b60408051928352602083019190915201610164565b348015610342575f5ffd5b50610356610351366004612980565b61118e565b604080519485526001600160a01b039093166020850152918301526060820152608001610164565b348015610389575f5ffd5b5061023f610398366004612980565b611372565b3480156103a8575f5ffd5b506101507366a9893cc07d91d95644aedd05d03f95e1dba8af81565b3480156103cf575f5ffd5b506103e36103de3660046127d3565b61137c565b604051610164979695949392919061299b565b348015610401575f5ffd5b506101a0611560565b348015610415575f5ffd5b506101a06104243660046127d3565b6115ab565b6002546001600160a01b0316331461045c5760405162461bcd60e51b815260040161045390612a0f565b60405180910390fd5b6040516370a0823160e01b81523060048201525f9073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906370a0823190602401602060405180830381865afa1580156104ab573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104cf9190612a46565b90505f81116105165760405162461bcd60e51b81526020600482015260136024820152724e6f205745544820746f20776974686472617760681b6044820152606401610453565b604051632e1a7d4d60e01b81526004810182905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290632e1a7d4d906024015f604051808303815f87803b158015610560575f5ffd5b505af1158015610572573d5f5f3e3d5ffd5b505050505f336001600160a01b0316826040515b5f6040518083038185875af1925050503d805f81146105c0576040519150601f19603f3d011682016040523d82523d5f602084013e6105c5565b606091505b505090508061060c5760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606401610453565b5050565b60606040518060200161062290612658565b601f1982820381018352601f90910116604081905261064b908690869086903090602001612a5d565b60408051601f19818403018152908290526106699291602001612abd565b60405160208183030381529060405290509392505050565b5f66b1a2bc2ec5000082101561069857505f919050565b670429d069189e000082106106b05750611388919050565b6146505f6106c566b1a2bc2ec5000085612ae5565b90505f670de0b6b3a76400006106db8484612af8565b6106e59190612b0f565b6106f1906101f4612b2e565b95945050505050565b6002546001600160a01b031633146107245760405162461bcd60e51b815260040161045390612a0f565b47806107675760405162461bcd60e51b81526020600482015260126024820152714e6f2045544820746f20776974686472617760701b6044820152606401610453565b5f336001600160a01b031682604051610586565b600654600160a01b900460ff166107e35760405162461bcd60e51b815260206004820152602660248201527f546f6b656e206465706c6f796d656e742069732063757272656e746c792064696044820152651cd8589b195960d21b6064820152608401610453565b5f81858533306040516107f590612658565b6108029493929190612a5d565b8190604051809103905ff590508015801561081f573d5f5f3e3d5ffd5b506040516001600160a01b038216815290915081907f60122e78030aba0a2e4a67adb3e52b411343cc51778f919095d3fe394090c1b29060200160405180910390a161086a8161162b565b34156108b7575f61087a34610681565b90505f60646007548361088d9190612af8565b6108979190612b0f565b90506127103480830291909104908190036108b28582611a77565b505050505b600180546040805160e0810182526001600160a01b03858116825260208083018c81528385018c905233606085015242608085015260a084018b90525f60c0850181905286815291829052939020825181546001600160a01b03191692169190911781559151929390929082019061092f9082612bc5565b50604082015160028201906109449082612bc5565b5060608201516003820180546001600160a01b0319166001600160a01b039092169190911790556080820151600482015560a082015160058201906109899082612bc5565b5060c082015181600601559050506001810160015550505050505050565b6001546060906032906109f15760405162461bcd60e51b8152602060048201526012602482015271139bc81d1bdad95b9cc819195c1b1bde595960721b6044820152606401610453565b5f81600183600154610a039190612b2e565b610a0d9190612ae5565b610a179190612b0f565b9050808510610a5c5760405162461bcd60e51b815260206004820152601160248201527050616765206f7574206f662072616e676560781b6044820152606401610453565b5f8080868103610add5784610a72896001612b2e565b610a7c9190612af8565b60015411610a8a575f610aad565b84610a96896001612b2e565b610aa09190612af8565b600154610aad9190612ae5565b9250610ab98589612af8565b600154610ac69190612ae5565b9150600154821115610ad85760015491505b610b05565b610ae78589612af8565b9250610af38584612b2e565b9150600154821115610b055760015491505b5f610b108484612ae5565b67ffffffffffffffff811115610b2857610b28612665565b604051908082528060200260200182016040528015610ba757816020015b610b946040518060e001604052805f6001600160a01b0316815260200160608152602001606081526020015f6001600160a01b031681526020015f8152602001606081526020015f81525090565b815260200190600190039081610b465790505b509050835b83811015610e8b575f8915610bc15781610be0565b610bcb8683612ae5565b610bd6600187612ae5565b610be09190612ae5565b5f81815260208181526040808320815160e0810190925280546001600160a01b03168252600181018054959650939491939092840191610c1f90612b41565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4b90612b41565b8015610c965780601f10610c6d57610100808354040283529160200191610c96565b820191905f5260205f20905b815481529060010190602001808311610c7957829003601f168201915b50505050508152602001600282018054610caf90612b41565b80601f0160208091040260200160405190810160405280929190818152602001828054610cdb90612b41565b8015610d265780601f10610cfd57610100808354040283529160200191610d26565b820191905f5260205f20905b815481529060010190602001808311610d0957829003601f168201915b505050918352505060038201546001600160a01b0316602082015260048201546040820152600582018054606090920191610d6090612b41565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8c90612b41565b8015610dd75780601f10610dae57610100808354040283529160200191610dd7565b820191905f5260205f20905b815481529060010190602001808311610dba57829003601f168201915b5050505050815260200160068201548152505090505f610df9825f0151611372565b90506040518060e00160405280835f01516001600160a01b03168152602001836020015181526020018360400151815260200183606001516001600160a01b03168152602001836080015181526020018360a00151815260200182815250858780610e6390612c80565b985081518110610e7557610e75612c98565b6020908102919091010152505050600101610bac565b50955050505050505b92915050565b5f5f5f610ea684611e43565b90505f816001600160a01b03166302d05d3f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ee5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f099190612cac565b9050336001600160a01b0382161480610f2c57506002546001600160a01b031633145b610f695760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610453565b6040516370a0823160e01b815230600482015247905f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610faf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd39190612a46565b9050610fdf8785611f86565b610fe98247612ae5565b6040516370a0823160e01b815230600482015290955081906001600160a01b038616906370a0823190602401602060405180830381865afa158015611030573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110549190612a46565b61105e9190612ae5565b955085156110d85760405163a9059cbb60e01b815261dead6004820152602481018790526001600160a01b0385169063a9059cbb906044016020604051808303815f875af11580156110b2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d69190612cc7565b505b8415611185575f6001600160a01b0384166110f4600288612b0f565b6040515f81818185875af1925050503d805f811461112d576040519150601f19603f3d011682016040523d82523d5f602084013e611132565b606091505b50509050806111835760405162461bcd60e51b815260206004820152601e60248201527f455448207472616e7366657220746f2063726561746f72206661696c656400006044820152606401610453565b505b50505050915091565b6040805160a0810182525f8082526001600160a01b0384166020808401919091526127108385015260c86060840152608083018290529251909283928392839283916111dc91849101612d29565b60408051808303601f19018152908290528051602090910120600554633205590760e21b8352600483018290529097508792506001600160a01b03169063c815641c90602401608060405180830381865afa92505050801561125b575060408051601f3d908101601f1916820190925261125891810190612d5a565b60015b61127057505f935083925082915061136b9050565b8398505f846001600160a01b0316111561135b576001600160a01b038416600160601b5f826112a783670de0b6b3a7640000612af8565b6112b19190612b0f565b9050826112be8383612af8565b6112c89190612b0f565b9a505f8e6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611307573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132b9190612a46565b9050670de0b6b3a7640000611340828e612af8565b61134a9190612b0f565b9a505050505050505050505061136b565b50505050505f9350839250829150505b9193509193565b5f6106f18261118e565b5f60208190529081526040902080546001820180546001600160a01b0390921692916113a790612b41565b80601f01602080910402602001604051908101604052809291908181526020018280546113d390612b41565b801561141e5780601f106113f55761010080835404028352916020019161141e565b820191905f5260205f20905b81548152906001019060200180831161140157829003601f168201915b50505050509080600201805461143390612b41565b80601f016020809104026020016040519081016040528092919081815260200182805461145f90612b41565b80156114aa5780601f10611481576101008083540402835291602001916114aa565b820191905f5260205f20905b81548152906001019060200180831161148d57829003601f168201915b505050506003830154600484015460058501805494956001600160a01b0390931694919350906114d990612b41565b80601f016020809104026020016040519081016040528092919081815260200182805461150590612b41565b80156115505780601f1061152757610100808354040283529160200191611550565b820191905f5260205f20905b81548152906001019060200180831161153357829003601f168201915b5050505050908060060154905087565b6002546001600160a01b0316331461158a5760405162461bcd60e51b815260040161045390612a0f565b6006805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6002546001600160a01b031633146115d55760405162461bcd60e51b815260040161045390612a0f565b60648111156116265760405162461bcd60e51b815260206004820152601d60248201527f4d756c7469706c6965722063616e6e6f742065786365656420313030250000006044820152606401610453565b600755565b60405163095ea7b360e01b81526e22d473030f116ddee9f6b43ac78ba360048201525f1960248201526d64dbacb643e10eedf7378a0b5df790620d899f1990620318f89084906001600160a01b0382169063095ea7b3906044016020604051808303815f875af11580156116a1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116c59190612cc7565b506040516387517c4560e01b81526001600160a01b03808716600483015273bd216513d74c8cf14cf4747e6aaa6420ff64ee9e6024830152604482015265ffffffffffff60648201526e22d473030f116ddee9f6b43ac78ba3906387517c45906084015f604051808303815f87803b15801561173f575f5ffd5b505af1158015611751573d5f5f3e3d5ffd5b50506040516387517c4560e01b81526001600160a01b0380891660048301526e04444c5dc75cb358380d2e3de08a906024830152604482015265ffffffffffff60648201526e22d473030f116ddee9f6b43ac78ba392506387517c4591506084015f604051808303815f87803b1580156117c9575f5ffd5b505af11580156117db573d5f5f3e3d5ffd5b50506040805160a0810182525f8082526001600160a01b038a811660208401526127108385015260c86060840152608083019190915260048054935163313b65df60e11b815292955092169250636276cbbe9161183c9185918a9101612dad565b6020604051808303815f875af1158015611858573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061187c9190612dd3565b505f6118978686865f6b033b2e3c9fd0803ce8000000612115565b60408051600160f91b6020820152600d60f81b602182015281516002818303810182525f602284018181526042850183815260a2860190965295965091949391926062015b60608152602001906001900390816118dc579050509050848888865f6b033b2e3c9fd0803ce8000000308860405160200161191e989796959493929190612dec565b604051602081830303815290604052815f8151811061193f5761193f612c98565b6020026020010181905250845f015185602001516040516020016119799291906001600160a01b0392831681529116602082015260400190565b6040516020818303038152906040528160018151811061199b5761199b612c98565b6020908102919091018101919091526003546040516001600160a01b039091169163dd46508f916119d0918791869101612ec5565b60408051601f198184030181529190526119eb426078612b2e565b6040518363ffffffff1660e01b8152600401611a08929190612ee9565b5f604051808303815f87803b158015611a1f575f5ffd5b505af1925050508015611a30575060015b611a6b573d808015611a5d576040519150601f19603f3d011682016040523d82523d5f602084013e611a62565b606091505b50805160208201fd5b50505050505050505050565b6040805160a0810182525f8082526001600160a01b0385166020808401919091526127108385015260c86060840152608083018290528351600160fc1b91810191909152835160018183038101825260218301818152606184019096529394909390916041015b6060815260200190600190039081611ade57505060408051600360f91b6020820152600360fa1b6021820152600f60f81b602282015281516003818303810182526023830181815260a38401909452939450925f92916043015b6060815260200190600190039081611b38579050509050846001875f60405180602001604052805f815250604051602001611b77959493929190612f0a565b604051602081830303815290604052815f81518110611b9857611b98612c98565b6020026020010181905250845f015186604051602001611bcd9291906001600160a01b03929092168252602082015260400190565b60405160208183030381529060405281600181518110611bef57611bef612c98565b602002602001018190525084602001515f604051602001611c2e9291906001600160a01b039290921682526001600160801b0316602082015260400190565b60405160208183030381529060405281600281518110611c5057611c50612c98565b60200260200101819052508181604051602001611c6e929190612ec5565b604051602081830303815290604052835f81518110611c8f57611c8f612c98565b60209081029190910101525f611ca6426078612b2e565b600654604051630d64d59360e21b81529192506001600160a01b031690633593564c908990611cdd90899089908790600401612f5d565b5f604051808303818588803b158015611cf4575f5ffd5b505af1158015611d06573d5f5f3e3d5ffd5b50506040516370a0823160e01b81523060048201528b93505f92506001600160a01b03841691506370a0823190602401602060405180830381865afa158015611d51573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d759190612a46565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303815f875af1158015611dc2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611de69190612cc7565b50604080513381526001600160a01b038c1660208201529081018a9052606081018290527f8daf503382665d950e449b86172be5222275c90f4ddf69c29fdaa8237a562a6d9060800160405180910390a150505050505050505050565b60035460408051602480820185905282518083039091018152604490910182526020810180516001600160e01b0316637ba03aad60e01b17905290515f92839283926001600160a01b0390921691611e9b9190612f92565b5f60405180830381855afa9150503d805f8114611ed3576040519150601f19603f3d011682016040523d82523d5f602084013e611ed8565b606091505b509150915081611f2a5760405162461bcd60e51b815260206004820152601b60248201527f4661696c656420746f2067657420706f736974696f6e20696e666f00000000006044820152606401610453565b604081015192506001600160a01b038316611f7f5760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610453565b5050919050565b604080516002808252606082019092525f91816020015b6060815260200190600190039081611f9d57505060408051602080820183525f8083529251939450611fd6938793928392839201612f9d565b604051602081830303815290604052815f81518110611ff757611ff7612c98565b602090810291909101810191909152604080515f928101929092526001600160a01b038416908201523060608201526080016040516020818303038152906040528160018151811061204b5761204b612c98565b602090810291909101810191909152600354604051600160f81b92810192909252601160f81b60218301526001600160a01b03169063dd46508f905f9060220160408051601f19818403018152908290526120aa918690602001612ec5565b60408051601f198184030181529190526120c542603c612b2e565b6040518463ffffffff1660e01b81526004016120e2929190612ee9565b5f604051808303818588803b1580156120f9575f5ffd5b505af115801561210b573d5f5f3e3d5ffd5b5050505050505050565b5f612133866121238761213d565b61212c8761213d565b86866123f5565b9695505050505050565b60020b5f60ff82901d80830118620d89e8811115612166576121666345c3193d60e11b846124aa565b7001fffcb933bd6fad37aa2d162d1a5940016001821602600160801b1860028216156121a2576ffff97272373d413259a46990580e213a0260801c5b60048216156121c1576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156121e0576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156121ff576fffcb9843d60f6159c9db58835c9266440260801c5b602082161561221e576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561223d576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561225c576ffe5dee046a99a2a811c461f1969c30530260801c5b61010082161561227c576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b61020082161561229c576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156122bc576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156122dc576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156122fc576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561231c576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561233c576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561235c576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161561237d576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561239d576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156123bc576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156123d9576b048a170391f7dc42444e8fa20260801c5b5f8413156123e5575f19045b63ffffffff0160201c9392505050565b5f836001600160a01b0316856001600160a01b03161115612414579293925b846001600160a01b0316866001600160a01b03161161243f576124388585856124b9565b90506106f1565b836001600160a01b0316866001600160a01b0316101561249f575f6124658786866124b9565b90505f61247387898661252c565b9050806001600160801b0316826001600160801b0316106124945780612496565b815b925050506106f1565b61213385858461252c565b815f528060020b60045260245ffd5b5f826001600160a01b0316846001600160a01b031611156124d8579192915b5f6124fa856001600160a01b0316856001600160a01b0316600160601b612569565b905061252161251c848361250e8989612fd9565b6001600160a01b0316612569565b612605565b9150505b9392505050565b5f826001600160a01b0316846001600160a01b0316111561254b579192915b61256161251c83600160601b61250e8888612fd9565b949350505050565b5f838302815f1985870982811083820303915050808411612588575f5ffd5b805f0361259a57508290049050612525565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b806001600160801b03811681146126535760405162461bcd60e51b81526020600482015260126024820152716c6971756964697479206f766572666c6f7760701b6044820152606401610453565b919050565b6114c480612ff983390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112612688575f5ffd5b813567ffffffffffffffff8111156126a2576126a2612665565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156126d1576126d1612665565b6040528181528382016020018510156126e8575f5ffd5b816020850160208301375f918101602001919091529392505050565b6001600160a01b0381168114612718575f5ffd5b50565b5f5f5f6060848603121561272d575f5ffd5b833567ffffffffffffffff811115612743575f5ffd5b61274f86828701612679565b935050602084013567ffffffffffffffff81111561276b575f5ffd5b61277786828701612679565b925050604084013561278881612704565b809150509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6125256020830184612793565b5f602082840312156127e3575f5ffd5b5035919050565b5f5f5f5f608085870312156127fd575f5ffd5b843567ffffffffffffffff811115612813575f5ffd5b61281f87828801612679565b945050602085013567ffffffffffffffff81111561283b575f5ffd5b61284787828801612679565b935050604085013567ffffffffffffffff811115612863575f5ffd5b61286f87828801612679565b949793965093946060013593505050565b5f5f60408385031215612891575f5ffd5b50508035926020909101359150565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561297457868503603f19018452815180516001600160a01b0316865260208082015160e09188018290529061290190880182612793565b90506040820151878203604089015261291a8282612793565b91505060018060a01b0360608301511660608801526080820151608088015260a082015187820360a08901526129508282612793565b60c093840151989093019790975250945060209384019391909101906001016128c6565b50929695505050505050565b5f60208284031215612990575f5ffd5b813561252581612704565b6001600160a01b038816815260e0602082018190525f906129be90830189612793565b82810360408401526129d08189612793565b6001600160a01b03881660608501526080840187905283810360a085015290506129fa8186612793565b9150508260c083015298975050505050505050565b60208082526018908201527f43616c6c6572206973206e6f7420636f6e74726f6c6c65720000000000000000604082015260600190565b5f60208284031215612a56575f5ffd5b5051919050565b608081525f612a6f6080830187612793565b8281036020840152612a818187612793565b6001600160a01b03958616604085015293909416606090920191909152509392505050565b5f81518060208401855e5f93019283525090919050565b5f612561612acb8386612aa6565b84612aa6565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610e9457610e94612ad1565b8082028115828204841417610e9457610e94612ad1565b5f82612b2957634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610e9457610e94612ad1565b600181811c90821680612b5557607f821691505b602082108103612b7357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115612bc057805f5260205f20601f840160051c81016020851015612b9e5750805b601f840160051c820191505b81811015612bbd575f8155600101612baa565b50505b505050565b815167ffffffffffffffff811115612bdf57612bdf612665565b612bf381612bed8454612b41565b84612b79565b6020601f821160018114612c25575f8315612c0e5750848201515b5f19600385901b1c1916600184901b178455612bbd565b5f84815260208120601f198516915b82811015612c545787850151825560209485019460019092019101612c34565b5084821015612c7157868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f60018201612c9157612c91612ad1565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612cbc575f5ffd5b815161252581612704565b5f60208284031215612cd7575f5ffd5b81518015158114612525575f5ffd5b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b60a08101610e948284612ce6565b8051600281900b8114612653575f5ffd5b805162ffffff81168114612653575f5ffd5b5f5f5f5f60808587031215612d6d575f5ffd5b8451612d7881612704565b9350612d8660208601612d37565b9250612d9460408601612d48565b9150612da260608601612d48565b905092959194509250565b60c08101612dbb8285612ce6565b6001600160a01b039290921660a09190910152919050565b5f60208284031215612de3575f5ffd5b61252582612d37565b612df6818a612ce6565b8760020b60a08201528660020b60c08201526001600160801b03861660e082015260ff85166101008201526bffffffffffffffffffffffff841661012082015260018060a01b0383166101408201526101806101608201525f612e5d610180830184612793565b9a9950505050505050505050565b5f82825180855260208501945060208160051b830101602085015f5b83811015612eb957601f19858403018852612ea3838351612793565b6020988901989093509190910190600101612e87565b50909695505050505050565b604081525f612ed76040830185612793565b82810360208401526125218185612e6b565b604081525f612efb6040830185612793565b90508260208301529392505050565b612f148187612ce6565b84151560a08201526001600160801b03841660c08201526001600160801b03831660e08201526101206101008201525f612f52610120830184612793565b979650505050505050565b606081525f612f6f6060830186612793565b8281036020840152612f818186612e6b565b915050826040830152949350505050565b5f6125258284612aa6565b8581528460208201526001600160801b03841660408201526001600160801b038316606082015260a060808201525f612f5260a0830184612793565b6001600160a01b038281168282160390811115610e9457610e94612ad156fe60a06040526e04444c5dc75cb358380d2e3de08a90608052348015610022575f5ffd5b506040516114c43803806114c4833981016040819052610041916105f8565b8383600361004f8382610700565b50600461005c8282610700565b5050600580546001600160a01b038085166001600160a01b031992831617909255600680549286169290911691909117905550436007555f61009c601290565b6100a790600a6108b3565b6100b590633b9aca006108c8565b905060646100c46002836108c8565b6100ce91906108df565b6008556100db82826100e5565b5050505050610911565b6001600160a01b0382166101135760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b61011e5f8383610122565b5050565b600754431180156101415750600560075461013d91906108fe565b4311155b15610331576080516001600160a01b0316836001600160a01b031614801561017757506005546001600160a01b03838116911614155b801561019157506006546001600160a01b03838116911614155b1561023b57325f90815260096020526040812080548392906101b49084906108fe565b90915550506008546064906101ca90606e6108c8565b6101d491906108df565b325f90815260096020526040902054111561023b5760405162461bcd60e51b815260206004820152602160248201527f4b656570696e6720322520706f6f6c204c696d69747320496e204b6f6e74726f6044820152601b60fa1b606482015260840161010a565b6006546001600160a01b0383811691161480159061026757506005546001600160a01b03838116911614155b801561028757506080516001600160a01b0316826001600160a01b031614155b801561029b57506001600160a01b03831615155b1561033157600854816102c2846001600160a01b03165f9081526020819052604090205490565b6102cc91906108fe565b11156103315760405162461bcd60e51b815260206004820152602e60248201527f4d61782077616c6c6574206c696d697420657863656564656420647572696e6760448201526d081b185d5b98da081c195c9a5bd960921b606482015260840161010a565b6007544314801561034a57506001600160a01b03831615155b801561036457506005546001600160a01b03838116911614155b801561037e57506005546001600160a01b03848116911614155b80156103b157506005546001600160a01b0384811691161480156103af57506006546001600160a01b038381169116145b155b1561040a5760405162461bcd60e51b8152602060048201526024808201527f4e6f206275797320616c6c6f77656420647572696e67206c61756e636820626c6044820152636f636b2160e01b606482015260840161010a565b61041583838361041a565b505050565b6001600160a01b038316610444578060025f82825461043991906108fe565b909155506104b49050565b6001600160a01b0383165f90815260208190526040902054818110156104965760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161010a565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166104d0576002805482900390556104ee565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161053391815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610563575f5ffd5b81516001600160401b0381111561057c5761057c610540565b604051601f8201601f19908116603f011681016001600160401b03811182821017156105aa576105aa610540565b6040528181528382016020018510156105c1575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b80516001600160a01b03811681146105f3575f5ffd5b919050565b5f5f5f5f6080858703121561060b575f5ffd5b84516001600160401b03811115610620575f5ffd5b61062c87828801610554565b602087015190955090506001600160401b03811115610649575f5ffd5b61065587828801610554565b935050610664604086016105dd565b9150610672606086016105dd565b905092959194509250565b600181811c9082168061069157607f821691505b6020821081036106af57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561041557805f5260205f20601f840160051c810160208510156106da5750805b601f840160051c820191505b818110156106f9575f81556001016106e6565b5050505050565b81516001600160401b0381111561071957610719610540565b61072d81610727845461067d565b846106b5565b6020601f82116001811461075f575f83156107485750848201515b5f19600385901b1c1916600184901b1784556106f9565b5f84815260208120601f198516915b8281101561078e578785015182556020948501946001909201910161076e565b50848210156107ab57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115610809578085048111156107ed576107ed6107ba565b60018416156107fb57908102905b60019390931c9280026107d2565b935093915050565b5f8261081f575060016108ad565b8161082b57505f6108ad565b8160018114610841576002811461084b57610867565b60019150506108ad565b60ff84111561085c5761085c6107ba565b50506001821b6108ad565b5060208310610133831016604e8410600b841016171561088a575081810a6108ad565b6108965f1984846107ce565b805f19048211156108a9576108a96107ba565b0290505b92915050565b5f6108c160ff841683610811565b9392505050565b80820281158282048414176108ad576108ad6107ba565b5f826108f957634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156108ad576108ad6107ba565b608051610b946109305f395f818161058501526106cb0152610b945ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c806342966c681161008857806379cc67901161006357806379cc6790146101dd57806395d89b41146101f0578063a9059cbb146101f8578063dd62ed3e1461020b575f5ffd5b806342966c681461018d5780634bde38c8146101a257806370a08231146101b5575f5ffd5b806318160ddd116100c357806318160ddd1461015157806323b872dd146101635780632f4237c014610176578063313ce5671461017e575f5ffd5b806302d05d3f146100e957806306fdde0314610119578063095ea7b31461012e575b5f5ffd5b6006546100fc906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b610121610243565b60405161011091906109af565b61014161013c3660046109ff565b6102d3565b6040519015158152602001610110565b6002545b604051908152602001610110565b610141610171366004610a27565b6102ec565b61014161030f565b60405160128152602001610110565b6101a061019b366004610a61565b610327565b005b6005546100fc906001600160a01b031681565b6101556101c3366004610a78565b6001600160a01b03165f9081526020819052604090205490565b6101a06101eb3660046109ff565b610334565b61012161034d565b6101416102063660046109ff565b61035c565b610155610219366004610a98565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b60606003805461025290610ac9565b80601f016020809104026020016040519081016040528092919081815260200182805461027e90610ac9565b80156102c95780601f106102a0576101008083540402835291602001916102c9565b820191905f5260205f20905b8154815290600101906020018083116102ac57829003601f168201915b5050505050905090565b5f336102e0818585610369565b60019150505b92915050565b5f336102f985828561037b565b6103048585856103fc565b506001949350505050565b5f600560075461031f9190610b15565b431115905090565b6103313382610459565b50565b61033f82338361037b565b6103498282610459565b5050565b60606004805461025290610ac9565b5f336102e08185856103fc565b610376838383600161048d565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198110156103f657818110156103e857604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b6103f684848484035f61048d565b50505050565b6001600160a01b03831661042557604051634b637e8f60e11b81525f60048201526024016103df565b6001600160a01b03821661044e5760405163ec442f0560e01b81525f60048201526024016103df565b61037683838361055f565b6001600160a01b03821661048257604051634b637e8f60e11b81525f60048201526024016103df565b610349825f8361055f565b6001600160a01b0384166104b65760405163e602df0560e01b81525f60048201526024016103df565b6001600160a01b0383166104df57604051634a1406b160e11b81525f60048201526024016103df565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156103f657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161055191815260200190565b60405180910390a350505050565b6007544311801561057e5750600560075461057a9190610b15565b4311155b156107aa577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161480156105d257506005546001600160a01b03838116911614155b80156105ec57506006546001600160a01b03838116911614155b1561069657325f908152600960205260408120805483929061060f908490610b15565b909155505060085460649061062590606e610b28565b61062f9190610b3f565b325f9081526009602052604090205411156106965760405162461bcd60e51b815260206004820152602160248201527f4b656570696e6720322520706f6f6c204c696d69747320496e204b6f6e74726f6044820152601b60fa1b60648201526084016103df565b6006546001600160a01b038381169116148015906106c257506005546001600160a01b03838116911614155b801561070057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b801561071457506001600160a01b03831615155b156107aa576008548161073b846001600160a01b03165f9081526020819052604090205490565b6107459190610b15565b11156107aa5760405162461bcd60e51b815260206004820152602e60248201527f4d61782077616c6c6574206c696d697420657863656564656420647572696e6760448201526d081b185d5b98da081c195c9a5bd960921b60648201526084016103df565b600754431480156107c357506001600160a01b03831615155b80156107dd57506005546001600160a01b03838116911614155b80156107f757506005546001600160a01b03848116911614155b801561082a57506005546001600160a01b03848116911614801561082857506006546001600160a01b038381169116145b155b156108835760405162461bcd60e51b8152602060048201526024808201527f4e6f206275797320616c6c6f77656420647572696e67206c61756e636820626c6044820152636f636b2160e01b60648201526084016103df565b6103768383836001600160a01b0383166108b3578060025f8282546108a89190610b15565b909155506109239050565b6001600160a01b0383165f90815260208190526040902054818110156109055760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016103df565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661093f5760028054829003905561095d565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109a291815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146109fa575f5ffd5b919050565b5f5f60408385031215610a10575f5ffd5b610a19836109e4565b946020939093013593505050565b5f5f5f60608486031215610a39575f5ffd5b610a42846109e4565b9250610a50602085016109e4565b929592945050506040919091013590565b5f60208284031215610a71575f5ffd5b5035919050565b5f60208284031215610a88575f5ffd5b610a91826109e4565b9392505050565b5f5f60408385031215610aa9575f5ffd5b610ab2836109e4565b9150610ac0602084016109e4565b90509250929050565b600181811c90821680610add57607f821691505b602082108103610afb57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156102e6576102e6610b01565b80820281158282048414176102e6576102e6610b01565b5f82610b5957634e487b7160e01b5f52601260045260245ffd5b50049056fea264697066735822122071af2eb6f011fdafb9e102d55032108bf00a32c6eb43ef33a63853ce26edb13c64736f6c634300081e0033a2646970667358221220d4584ac583e598fbac7ecc4a25b594c711c18a482ccb75f97820907f51cba62064736f6c634300081e0033