0 txs
0 calls
constructor
constructor()
functions
getRedeemCodeFaucetAddress
viewfunction getRedeemCodeFaucetAddress(address owner, uint256 salt, address _token, uint48 _redeemInterval, address _codeCreator) view returns (address)
getSimpleFaucetAddress
viewfunction getSimpleFaucetAddress(address owner, uint256 salt, address _token, uint256 _amount, uint48 _redeemInterval, address _redeemAdmin) view returns (address)
redeemCodeFaucetImplementation
viewfunction redeemCodeFaucetImplementation() view returns (address)
simpleFaucetImplementation
viewfunction simpleFaucetImplementation() view returns (address)
createRedeemCodeFaucet
nonpayablefunction createRedeemCodeFaucet(address owner, uint256 salt, address _token, uint48 _redeemInterval, address _codeCreator) returns (address ret)
createSimpleFaucet
nonpayablefunction createSimpleFaucet(address owner, uint256 salt, address _token, uint256 _amount, uint48 _redeemInterval, address _redeemAdmin) returns (address ret)
events
RedeemCodeFaucetCreated
event RedeemCodeFaucetCreated(address indexed faucet, address token, uint256 amount, uint48 redeemInterval)
SimpleFaucetCreated
event SimpleFaucetCreated(address indexed faucet, address token, uint256 amount, uint48 redeemInterval)
errors
No errors.
creation bytecode
0x60c060405234801561001057600080fd5b5060405161001d90610080565b604051809103906000f080158015610039573d6000803e3d6000fd5b506001600160a01b03166080526040516100529061008d565b604051809103906000f08015801561006e573d6000803e3d6000fd5b506001600160a01b031660a05261009a565b611d4e80610d9a83390190565b611ef480612ae883390190565b60805160a051610cc16100d96000396000818160fe015281816102e001526103d601526000818160bf0152818161016901526104c00152610cc16000f3fe60806040523480156200001157600080fd5b50600436106200006a5760003560e01c806309e5223e146200006f5780634a40c13214620000a25780636057b63d14620000b95780636589575814620000e157806376c4041714620000f8578063c8a66cb01462000120575b600080fd5b6200008662000080366004620005ef565b62000137565b6040516001600160a01b03909116815260200160405180910390f35b62000086620000b336600462000666565b62000227565b620000867f000000000000000000000000000000000000000000000000000000000000000081565b62000086620000f236600462000666565b62000376565b620000867f000000000000000000000000000000000000000000000000000000000000000081565b6200008662000131366004620005ef565b62000434565b60006200021a8660001b604051806020016200015390620005ac565b6020820181038252601f19601f820116604052507f00000000000000000000000000000000000000000000000000000000000000008a89898989604051602401620001a3959493929190620006d5565b60408051601f19818403018152918152602080830180516001600160e01b03166377202ba160e01b1790529051620001de9392910162000733565b60408051601f1981840301815290829052620001fe929160200162000777565b604051602081830303815290604052805190602001206200056c565b90505b9695505050505050565b60008062000239878787878762000376565b604080516001600160a01b0388811682526000602083015265ffffffffffff8816828401529151929350908316917fb93973492142c237facfddbc7e4e65070b940426b6a350b2c3cc492bf19707349181900360600190a26001600160a01b0381163b8015620002ac575090506200036d565b6040516001600160a01b03808a166024830152808816604483015265ffffffffffff871660648301528516608482015287907f00000000000000000000000000000000000000000000000000000000000000009060a40160408051601f198184030181529181526020820180516001600160e01b03166302c7bf3d60e31b179052516200033990620005ac565b6200034692919062000733565b8190604051809103906000f590508015801562000367573d6000803e3d6000fd5b50925050505b95945050505050565b60006200021d8560001b604051806020016200039290620005ac565b601f1982820381018352601f9091011660408190526001600160a01b03808b166024830152808916604483015265ffffffffffff88166064830152861660848201527f00000000000000000000000000000000000000000000000000000000000000009060a40160408051601f19818403018152918152602080830180516001600160e01b03166302c7bf3d60e31b1790529051620001de9392910162000733565b6000806200044788888888888862000137565b604080516001600160a01b0389811682526020820189905265ffffffffffff8816828401529151929350908316917ffe6b2ca53152946ea448fc2f0d59bb5c77fd6a42dfe98fecb30750d2baaf8a319181900360600190a26001600160a01b0381163b8015620004ba575090506200021d565b8760001b7f00000000000000000000000000000000000000000000000000000000000000008a89898989604051602401620004fa959493929190620006d5565b60408051601f198184030181529181526020820180516001600160e01b03166377202ba160e01b179052516200053090620005ac565b6200053d92919062000733565b8190604051809103906000f59050801580156200055e573d6000803e3d6000fd5b509998505050505050505050565b60006200057b83833062000582565b9392505050565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6104e180620007ab83390190565b6001600160a01b0381168114620005d057600080fd5b50565b803565ffffffffffff81168114620005ea57600080fd5b919050565b60008060008060008060c087890312156200060957600080fd5b86356200061681620005ba565b95506020870135945060408701356200062f81620005ba565b9350606087013592506200064660808801620005d3565b915060a08701356200065881620005ba565b809150509295509295509295565b600080600080600060a086880312156200067f57600080fd5b85356200068c81620005ba565b9450602086013593506040860135620006a581620005ba565b9250620006b560608701620005d3565b91506080860135620006c781620005ba565b809150509295509295909350565b6001600160a01b0395861681529385166020850152604084019290925265ffffffffffff166060830152909116608082015260a00190565b60005b838110156200072a57818101518382015260200162000710565b50506000910152565b60018060a01b03831681526040602082015260008251806040840152620007628160608501602087016200070d565b601f01601f1916919091016060019392505050565b600083516200078b8184602088016200070d565b835190830190620007a18183602088016200070d565b0194935050505056fe60806040526040516104e13803806104e1833981016040819052610022916102de565b61002e82826000610035565b50506103fb565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104ba60279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019d91906103ac565b600060405180830381855af49150503d80600081146101d8576040519150601f19603f3d011682016040523d82523d6000602084013e6101dd565b606091505b5090925090506101ef868383876101f9565b9695505050505050565b60608315610268578251600003610261576001600160a01b0385163b6102615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610136565b5081610272565b610272838361027a565b949350505050565b81511561028a5781518083602001fd5b8060405162461bcd60e51b815260040161013691906103c8565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102d55781810151838201526020016102bd565b50506000910152565b600080604083850312156102f157600080fd5b82516001600160a01b038116811461030857600080fd5b60208401519092506001600160401b038082111561032557600080fd5b818501915085601f83011261033957600080fd5b81518181111561034b5761034b6102a4565b604051601f8201601f19908116603f01168101908382118183101715610373576103736102a4565b8160405282815288602084870101111561038c57600080fd5b61039d8360208301602088016102ba565b80955050505050509250929050565b600082516103be8184602087016102ba565b9190910192915050565b60208152600082518060208401526103e78160408501602087016102ba565b601f01601f19169190910160400192915050565b60b1806104096000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea264697066735822122004eafc12009ddd1bac09a0fbcdbbc0e38fdd09caf7f585983e4d324fd8f99a7364736f6c63430008140033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ae35276299ef4a8e598bc5b6b9d3da433c52dedf4dba3564606ad22e23c49a6164736f6c6343000814003360a06040523060805234801561001457600080fd5b50608051611d0261004c6000396000818161055701528181610597015281816107510152818161079101526108200152611d026000f3fe6080604052600436106101405760003560e01c80638da5cb5b116100b6578063aa8c217c1161006f578063aa8c217c146103bc578063be040fb0146103d3578063d547741f146103e8578063f2fde38b14610408578063f984c55c14610428578063fc0c546a1461044857600080fd5b80638da5cb5b146102c057806391d14854146102f25780639f4568ef14610312578063a217fddf1461035f578063a2d2c71c14610374578063a5ff3f801461039c57600080fd5b80633ccfd60b116101085780633ccfd60b1461021a5780634f1ef2861461022f5780635018c2091461024257806352d1902d14610276578063715018a61461028b57806377202ba1146102a057600080fd5b806301ffc9a714610145578063248a9ca31461017a5780632f2ff15d146101b857806336568abe146101da5780633659cfe6146101fa575b600080fd5b34801561015157600080fd5b50610165610160366004611770565b610469565b60405190151581526020015b60405180910390f35b34801561018657600080fd5b506101aa61019536600461179a565b60009081526097602052604090206001015490565b604051908152602001610171565b3480156101c457600080fd5b506101d86101d33660046117c8565b6104a0565b005b3480156101e657600080fd5b506101d86101f53660046117c8565b6104ca565b34801561020657600080fd5b506101d86102153660046117f8565b61054d565b34801561022657600080fd5b506101d861062c565b6101d861023d36600461182b565b610747565b34801561024e57600080fd5b506101aa7f281081d9b36b37208f0d8dfce5adc7e00d31ece09269aaa8d0bfa43e6840a33881565b34801561028257600080fd5b506101aa610813565b34801561029757600080fd5b506101d86108c6565b3480156102ac57600080fd5b506101d86102bb3660046118ef565b6108da565b3480156102cc57600080fd5b506033546001600160a01b03165b6040516001600160a01b039091168152602001610171565b3480156102fe57600080fd5b5061016561030d3660046117c8565b610a7e565b34801561031e57600080fd5b5061034861032d3660046117f8565b6101306020526000908152604090205465ffffffffffff1681565b60405165ffffffffffff9091168152602001610171565b34801561036b57600080fd5b506101aa600081565b34801561038057600080fd5b5061012f546102da90600160301b90046001600160a01b031681565b3480156103a857600080fd5b5061012f546103489065ffffffffffff1681565b3480156103c857600080fd5b506101aa61012e5481565b3480156103df57600080fd5b506101d8610aa9565b3480156103f457600080fd5b506101d86104033660046117c8565b610cbf565b34801561041457600080fd5b506101d86104233660046117f8565b610ce4565b34801561043457600080fd5b506101d86104433660046117f8565b610d5a565b34801561045457600080fd5b5061012d546102da906001600160a01b031681565b60006001600160e01b03198216637965db0b60e01b148061049a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000828152609760205260409020600101546104bb81610f72565b6104c58383610f7c565b505050565b6001600160a01b038116331461053f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105498282611002565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105955760405162461bcd60e51b815260040161053690611962565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105de600080516020611c86833981519152546001600160a01b031690565b6001600160a01b0316146106045760405162461bcd60e51b8152600401610536906119ae565b61060d81611069565b6040805160008082526020820190925261062991839190611071565b50565b7f281081d9b36b37208f0d8dfce5adc7e00d31ece09269aaa8d0bfa43e6840a33861065681610f72565b61012d5461012f546040516370a0823160e01b81523060048201526001600160a01b039283169263a9059cbb92600160301b9004169083906370a0823190602401602060405180830381865afa1580156106b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d891906119fa565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610723573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105499190611a13565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361078f5760405162461bcd60e51b815260040161053690611962565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107d8600080516020611c86833981519152546001600160a01b031690565b6001600160a01b0316146107fe5760405162461bcd60e51b8152600401610536906119ae565b61080782611069565b61054982826001611071565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108b35760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610536565b50600080516020611c8683398151915290565b6108ce6111dc565b6108d86000611236565b565b600054610100900460ff16158080156108fa5750600054600160ff909116105b806109145750303b158015610914575060005460ff166001145b6109775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610536565b6000805460ff19166001179055801561099a576000805461ff0019166101001790555b6109a2611288565b6109aa6112b7565b61012d80546001600160a01b038088166001600160a01b03199092169190911790915561012e85905561012f8054918416600160301b026001600160d01b031990921665ffffffffffff861617919091179055610a277f281081d9b36b37208f0d8dfce5adc7e00d31ece09269aaa8d0bfa43e6840a338836112de565b610a3086610ce4565b8015610a76576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61012f54429065ffffffffffff1615610b205761012f5433600090815261013060205260408120549091610ae89165ffffffffffff9182169116611a4b565b90508065ffffffffffff168265ffffffffffff161015610b1a5760405162461bcd60e51b815260040161053690611a71565b50610b86565b336000908152610130602052604090205465ffffffffffff1615610b865760405162461bcd60e51b815260206004820152601e60248201527f53696d706c654661756365743a20616c72656164792072656465656d656400006044820152606401610536565b61012e5461012d546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf791906119fa565b1015610c155760405162461bcd60e51b815260040161053690611ab9565b61012d5461012e5460405163a9059cbb60e01b815233600482015260248101919091526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610c6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c909190611a13565b5033600090815261013060205260409020805465ffffffffffff191665ffffffffffff92909216919091179055565b600082815260976020526040902060010154610cda81610f72565b6104c58383611002565b610cec6111dc565b6001600160a01b038116610d515760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610536565b61062981611236565b61012f54429065ffffffffffff1615610dd15761012f5433600090815261013060205260408120549091610d999165ffffffffffff9182169116611a4b565b90508065ffffffffffff168265ffffffffffff161015610dcb5760405162461bcd60e51b815260040161053690611a71565b50610e37565b336000908152610130602052604090205465ffffffffffff1615610e375760405162461bcd60e51b815260206004820152601e60248201527f53696d706c654661756365743a20616c72656164792072656465656d656400006044820152606401610536565b61012e5461012d546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610e84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea891906119fa565b1015610ec65760405162461bcd60e51b815260040161053690611ab9565b61012d5461012e5460405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015610f1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f429190611a13565b5033600090815261013060205260409020805465ffffffffffff191665ffffffffffff9290921691909117905550565b61062981336112e8565b610f868282610a7e565b6105495760008281526097602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610fbe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61100c8282610a7e565b156105495760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6106296111dc565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156110a4576104c583611341565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156110fe575060408051601f3d908101601f191682019092526110fb918101906119fa565b60015b6111615760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610536565b600080516020611c8683398151915281146111d05760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610536565b506104c58383836113dd565b6033546001600160a01b031633146108d85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610536565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166112af5760405162461bcd60e51b815260040161053690611afb565b6108d8611408565b600054610100900460ff166108d85760405162461bcd60e51b815260040161053690611afb565b6105498282610f7c565b6112f28282610a7e565b610549576112ff81611438565b61130a83602061144a565b60405160200161131b929190611b6a565b60408051601f198184030181529082905262461bcd60e51b825261053691600401611bdf565b6001600160a01b0381163b6113ae5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610536565b600080516020611c8683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6113e6836115ed565b6000825111806113f35750805b156104c557611402838361162d565b50505050565b600054610100900460ff1661142f5760405162461bcd60e51b815260040161053690611afb565b6108d833611236565b606061049a6001600160a01b03831660145b60606000611459836002611c12565b611464906002611c29565b67ffffffffffffffff81111561147c5761147c611815565b6040519080825280601f01601f1916602001820160405280156114a6576020820181803683370190505b509050600360fc1b816000815181106114c1576114c1611c3c565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106114f0576114f0611c3c565b60200101906001600160f81b031916908160001a9053506000611514846002611c12565b61151f906001611c29565b90505b6001811115611597576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061155357611553611c3c565b1a60f81b82828151811061156957611569611c3c565b60200101906001600160f81b031916908160001a90535060049490941c9361159081611c52565b9050611522565b5083156115e65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610536565b9392505050565b6115f681611341565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606115e68383604051806060016040528060278152602001611ca6602791396060600080856001600160a01b03168560405161166a9190611c69565b600060405180830381855af49150503d80600081146116a5576040519150601f19603f3d011682016040523d82523d6000602084013e6116aa565b606091505b50915091506116bb868383876116c5565b9695505050505050565b6060831561173457825160000361172d576001600160a01b0385163b61172d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610536565b508161173e565b61173e8383611746565b949350505050565b8151156117565781518083602001fd5b8060405162461bcd60e51b81526004016105369190611bdf565b60006020828403121561178257600080fd5b81356001600160e01b0319811681146115e657600080fd5b6000602082840312156117ac57600080fd5b5035919050565b6001600160a01b038116811461062957600080fd5b600080604083850312156117db57600080fd5b8235915060208301356117ed816117b3565b809150509250929050565b60006020828403121561180a57600080fd5b81356115e6816117b3565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561183e57600080fd5b8235611849816117b3565b9150602083013567ffffffffffffffff8082111561186657600080fd5b818501915085601f83011261187a57600080fd5b81358181111561188c5761188c611815565b604051601f8201601f19908116603f011681019083821181831017156118b4576118b4611815565b816040528281528860208487010111156118cd57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080600080600060a0868803121561190757600080fd5b8535611912816117b3565b94506020860135611922816117b3565b935060408601359250606086013565ffffffffffff8116811461194457600080fd5b91506080860135611954816117b3565b809150509295509295909350565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060208284031215611a0c57600080fd5b5051919050565b600060208284031215611a2557600080fd5b815180151581146115e657600080fd5b634e487b7160e01b600052601160045260246000fd5b65ffffffffffff818116838216019080821115611a6a57611a6a611a35565b5092915050565b60208082526028908201527f53696d706c654661756365743a2072656465656d20696e74657276616c206e6f6040820152671d081c185cdcd95960c21b606082015260800190565b60208082526022908201527f53696d706c654661756365743a20696e73756666696369656e742062616c616e604082015261636560f01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b83811015611b61578181015183820152602001611b49565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611ba2816017850160208801611b46565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611bd3816028840160208801611b46565b01602801949350505050565b6020815260008251806020840152611bfe816040850160208701611b46565b601f01601f19169190910160400192915050565b808202811582820484141761049a5761049a611a35565b8082018082111561049a5761049a611a35565b634e487b7160e01b600052603260045260246000fd5b600081611c6157611c61611a35565b506000190190565b60008251611c7b818460208701611b46565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122040a62ad67439f99b2c45a800c4a6c260bd90636e483dc54718319e7eeb24de6d64736f6c6343000814003360a06040523060805234801561001457600080fd5b50608051611ea861004c600039600081816107540152818161079401528181610935015281816109750152610a040152611ea86000f3fe6080604052600436106101405760003560e01c80638da5cb5b116100b6578063db006a751161006f578063db006a75146103a3578063e9395096146103c3578063ed05582b146103e3578063f2fde38b14610403578063f8ec16de14610423578063fc0c546a1461044a57600080fd5b80638da5cb5b146102d957806391d148541461030b578063931409081461032b57806393c0a4aa1461034d578063a217fddf1461036e578063d547741f1461038357600080fd5b80633659cfe6116101085780633659cfe61461021a5780633ccfd60b1461023a5780633d8b9e071461024f5780634f1ef2861461029c57806352d1902d146102af578063715018a6146102c457600080fd5b806301ffc9a714610145578063163df9e81461017a578063248a9ca31461019c5780632f2ff15d146101da57806336568abe146101fa575b600080fd5b34801561015157600080fd5b5061016561016036600461191d565b61046b565b60405190151581526020015b60405180910390f35b34801561018657600080fd5b5061019a610195366004611977565b6104a2565b005b3480156101a857600080fd5b506101cc6101b73660046119d1565b60009081526097602052604090206001015490565b604051908152602001610171565b3480156101e657600080fd5b5061019a6101f53660046119ea565b610630565b34801561020657600080fd5b5061019a6102153660046119ea565b6106cc565b34801561022657600080fd5b5061019a610235366004611a1a565b61074a565b34801561024657600080fd5b5061019a610829565b34801561025b57600080fd5b5061028561026a3660046119d1565b6101316020526000908152604090205465ffffffffffff1681565b60405165ffffffffffff9091168152602001610171565b61019a6102aa366004611a4d565b61092b565b3480156102bb57600080fd5b506101cc6109f7565b3480156102d057600080fd5b5061019a610aaa565b3480156102e557600080fd5b506033546001600160a01b03165b6040516001600160a01b039091168152602001610171565b34801561031757600080fd5b506101656103263660046119ea565b610abe565b34801561033757600080fd5b506101cc600080516020611e0c83398151915281565b34801561035957600080fd5b5061012e546102f3906001600160a01b031681565b34801561037a57600080fd5b506101cc600081565b34801561038f57600080fd5b5061019a61039e3660046119ea565b610ae9565b3480156103af57600080fd5b5061019a6103be3660046119d1565b610b0e565b3480156103cf57600080fd5b5061019a6103de366004611b11565b610ea2565b3480156103ef57600080fd5b506101cc6103fe366004611b46565b611052565b34801561040f57600080fd5b5061019a61041e366004611a1a565b6110a9565b34801561042f57600080fd5b5061012d5461028590600160a01b900465ffffffffffff1681565b34801561045657600080fd5b5061012d546102f3906001600160a01b031681565b60006001600160e01b03198216637965db0b60e01b148061049c57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600054610100900460ff16158080156104c25750600054600160ff909116105b806104dc5750303b1580156104dc575060005460ff166001145b6105445760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610567576000805461ff0019166101001790555b61056f61111f565b61057761114e565b61012d80546001600160a01b038681166001600160d01b031990921691909117600160a01b65ffffffffffff8716021790915561012e80546001600160a01b0319169184169190911790556105da600080516020611e0c83398151915283611175565b6105e3856110a9565b8015610629576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60008281526097602052604090206001015461064b8161117f565b600080516020611e0c83398151915283036106bd5760405162461bcd60e51b815260206004820152602c60248201527f416363657373436f6e74726f6c3a2063616e6e6f74206772616e7420636f646560448201526b43726561746f7220726f6c6560a01b606482015260840161053b565b6106c78383611189565b505050565b6001600160a01b038116331461073c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161053b565b610746828261120f565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107925760405162461bcd60e51b815260040161053b90611b72565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107db600080516020611e2c833981519152546001600160a01b031690565b6001600160a01b0316146108015760405162461bcd60e51b815260040161053b90611bbe565b61080a81611276565b604080516000808252602082019092526108269183919061127e565b50565b600080516020611e0c8339815191526108418161117f565b61012d5461012e546040516370a0823160e01b81523060048201526001600160a01b039283169263a9059cbb92169083906370a0823190602401602060405180830381865afa158015610898573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bc9190611c0a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610907573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107469190611c23565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109735760405162461bcd60e51b815260040161053b90611b72565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109bc600080516020611e2c833981519152546001600160a01b031690565b6001600160a01b0316146109e25760405162461bcd60e51b815260040161053b90611bbe565b6109eb82611276565b6107468282600161127e565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a975760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161053b565b50600080516020611e2c83398151915290565b610ab26113e9565b610abc6000611443565b565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600082815260976020526040902060010154610b048161117f565b6106c7838361120f565b61012d5433600090815261013360208181526040808420805465ffffffffffff1990811665ffffffffffff600160a01b9098048816178255610132845291909420805442878116938216841790925593909252925490939182169291610b75911683611c5b565b65ffffffffffff1610610be05761012d5433600090815261013360205260408120805465ffffffffffff600160a01b909404841693919291610bb991859116611c5b565b92506101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b61012e54600090610bfa906001600160a01b031685611052565b6000818152610131602052604090205490915065ffffffffffff1615610c725760405162461bcd60e51b815260206004820152602760248201527f52656465656d436f64654661756365743a20636f646520616c72656164792072604482015266195919595b595960ca1b606482015260840161053b565b6000818152610130602052604090205465ffffffffffff90811690841610610cdc5760405162461bcd60e51b815260206004820152601e60248201527f52656465656d436f64654661756365743a20636f646520657870697265640000604482015260640161053b565b600081815261012f6020526040908190205461012d5491516370a0823160e01b815230600482015290916001600160a01b0316906370a0823190602401602060405180830381865afa158015610d36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5a9190611c0a565b1015610db75760405162461bcd60e51b815260206004820152602660248201527f52656465656d436f64654661756365743a20696e73756666696369656e742062604482015265616c616e636560d01b606482015260840161053b565b600081815261012f6020526040908190205461012d54915163a9059cbb60e01b81523360048201526024810182905290916001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610e1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3e9190611c23565b5060008281526101316020908152604091829020805465ffffffffffff191665ffffffffffff8816179055905182815233917f739f8ee835b17b45c3440318f23a9a52f3b7b3194bd17cd54344eeb2aa59d908910160405180910390a25050505050565b600080516020611e0c833981519152610eba8161117f565b60008311610f305760405162461bcd60e51b815260206004820152603c60248201527f52656465656d436f64654661756365743a2072656465656d61626c65416d6f7560448201527f6e74206d7573742062652067726561746572207468616e207a65726f00000000606482015260840161053b565b4265ffffffffffff80821690841611610fa65760405162461bcd60e51b815260206004820152603260248201527f52656465656d436f64654661756365743a2076616c6964556e74696c206d75736044820152717420626520696e207468652066757475726560701b606482015260840161053b565b6000858152610131602052604090205465ffffffffffff16156110165760405162461bcd60e51b815260206004820152602260248201527f52656465656d436f64654661756365743a20616c72656164792072656465656d604482015261195960f21b606482015260840161053b565b5050600092835261012f602090815260408085209390935561013090529120805465ffffffffffff191665ffffffffffff909216919091179055565b6040516bffffffffffffffffffffffff19606084811b821660208401526034830184905246605484015230901b16607482015260009060880160405160208183030381529060405280519060200120905092915050565b6110b16113e9565b6001600160a01b0381166111165760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161053b565b61082681611443565b600054610100900460ff166111465760405162461bcd60e51b815260040161053b90611c81565b610abc611495565b600054610100900460ff16610abc5760405162461bcd60e51b815260040161053b90611c81565b6107468282611189565b61082681336114c5565b6111938282610abe565b6107465760008281526097602090815260408083206001600160a01b03851684529091529020805460ff191660011790556111cb3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6112198282610abe565b156107465760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6108266113e9565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156112b1576106c78361151e565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561130b575060408051601f3d908101601f1916820190925261130891810190611c0a565b60015b61136e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161053b565b600080516020611e2c83398151915281146113dd5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161053b565b506106c78383836115ba565b6033546001600160a01b03163314610abc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161053b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166114bc5760405162461bcd60e51b815260040161053b90611c81565b610abc33611443565b6114cf8282610abe565b610746576114dc816115e5565b6114e78360206115f7565b6040516020016114f8929190611cf0565b60408051601f198184030181529082905262461bcd60e51b825261053b91600401611d65565b6001600160a01b0381163b61158b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161053b565b600080516020611e2c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6115c38361179a565b6000825111806115d05750805b156106c7576115df83836117da565b50505050565b606061049c6001600160a01b03831660145b60606000611606836002611d98565b611611906002611daf565b67ffffffffffffffff81111561162957611629611a37565b6040519080825280601f01601f191660200182016040528015611653576020820181803683370190505b509050600360fc1b8160008151811061166e5761166e611dc2565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061169d5761169d611dc2565b60200101906001600160f81b031916908160001a90535060006116c1846002611d98565b6116cc906001611daf565b90505b6001811115611744576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061170057611700611dc2565b1a60f81b82828151811061171657611716611dc2565b60200101906001600160f81b031916908160001a90535060049490941c9361173d81611dd8565b90506116cf565b5083156117935760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161053b565b9392505050565b6117a38161151e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606117938383604051806060016040528060278152602001611e4c602791396060600080856001600160a01b0316856040516118179190611def565b600060405180830381855af49150503d8060008114611852576040519150601f19603f3d011682016040523d82523d6000602084013e611857565b606091505b509150915061186886838387611872565b9695505050505050565b606083156118e15782516000036118da576001600160a01b0385163b6118da5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161053b565b50816118eb565b6118eb83836118f3565b949350505050565b8151156119035781518083602001fd5b8060405162461bcd60e51b815260040161053b9190611d65565b60006020828403121561192f57600080fd5b81356001600160e01b03198116811461179357600080fd5b6001600160a01b038116811461082657600080fd5b803565ffffffffffff8116811461197257600080fd5b919050565b6000806000806080858703121561198d57600080fd5b843561199881611947565b935060208501356119a881611947565b92506119b66040860161195c565b915060608501356119c681611947565b939692955090935050565b6000602082840312156119e357600080fd5b5035919050565b600080604083850312156119fd57600080fd5b823591506020830135611a0f81611947565b809150509250929050565b600060208284031215611a2c57600080fd5b813561179381611947565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611a6057600080fd5b8235611a6b81611947565b9150602083013567ffffffffffffffff80821115611a8857600080fd5b818501915085601f830112611a9c57600080fd5b813581811115611aae57611aae611a37565b604051601f8201601f19908116603f01168101908382118183101715611ad657611ad6611a37565b81604052828152886020848701011115611aef57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080600060608486031215611b2657600080fd5b8335925060208401359150611b3d6040850161195c565b90509250925092565b60008060408385031215611b5957600080fd5b8235611b6481611947565b946020939093013593505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060208284031215611c1c57600080fd5b5051919050565b600060208284031215611c3557600080fd5b8151801515811461179357600080fd5b634e487b7160e01b600052601160045260246000fd5b65ffffffffffff818116838216019080821115611c7a57611c7a611c45565b5092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b83811015611ce7578181015183820152602001611ccf565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611d28816017850160208801611ccc565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611d59816028840160208801611ccc565b01602801949350505050565b6020815260008251806020840152611d84816040850160208701611ccc565b601f01601f19169190910160400192915050565b808202811582820484141761049c5761049c611c45565b8082018082111561049c5761049c611c45565b634e487b7160e01b600052603260045260246000fd5b600081611de757611de7611c45565b506000190190565b60008251611e01818460208701611ccc565b919091019291505056fe707a390ecff002f977980b7598d697e51a8a18e7708b8f7ada4c1e67e5ea4808360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201110fc742161145f075cef5e3ed76c6d2ccf28cddb9561014b113aba071f4f5f64736f6c63430008140033