0 txs
0 calls
constructor
constructor(address _predictionContract, uint256 _maxAheadTime, uint256 _aheadTimeForCheckUpkeep, uint256 _aheadTimeForPerformUpkeep, string _feedID, address _forwarder, address _verifierProxy)
functions
aheadTimeForCheckUpkeep
viewfunction aheadTimeForCheckUpkeep() view returns (uint256)
aheadTimeForPerformUpkeep
viewfunction aheadTimeForPerformUpkeep() view returns (uint256)
checkCallback
viewfunction checkCallback(bytes[] values, bytes extraData) view returns (bool upkeepNeeded, bytes performData)
checkUpkeep
viewfunction checkUpkeep(bytes checkData) view returns (bool upkeepNeeded, bytes performData)
feedID
viewfunction feedID() view returns (string)
forwarder
viewfunction forwarder() view returns (address)
maxAheadTime
viewfunction maxAheadTime() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
predictionContract
viewfunction predictionContract() view returns (address)
verifierProxy
viewfunction verifierProxy() view returns (address)
approveToken
nonpayablefunction approveToken(address _token, address _spender, uint256 _amount)
pause
nonpayablefunction pause()
performUpkeep
nonpayablefunction performUpkeep(bytes performData)
renounceOwnership
nonpayablefunction renounceOwnership()
setAheadTimeForCheckUpkeep
nonpayablefunction setAheadTimeForCheckUpkeep(uint256 _time)
setAheadTimeForPerformUpkeep
nonpayablefunction setAheadTimeForPerformUpkeep(uint256 _time)
setFeedID
nonpayablefunction setFeedID(string _feedID)
setForwarder
nonpayablefunction setForwarder(address _forwarder)
setMaxAheadTime
nonpayablefunction setMaxAheadTime(uint256 _time)
setPredictionContract
nonpayablefunction setPredictionContract(address _predictionContract)
setVerifierProxy
nonpayablefunction setVerifierProxy(address _verifierProxy)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferToken
nonpayablefunction transferToken(address _token, address _recipient, uint256 _amount)
unpause
nonpayablefunction unpause()
events
NewAheadTimeForCheckUpkeep
event NewAheadTimeForCheckUpkeep(uint256 time)
NewAheadTimeForPerformUpkeep
event NewAheadTimeForPerformUpkeep(uint256 time)
NewFeedID
event NewFeedID(string feedID)
NewForwarder
event NewForwarder(address indexed forwarder)
NewMaxAheadTime
event NewMaxAheadTime(uint256 time)
NewPredictionContract
event NewPredictionContract(address indexed predictionContract)
NewVerifierProxy
event NewVerifierProxy(address indexed verifierProxy)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Unpaused
event Unpaused(address account)
errors
StreamsLookup
error StreamsLookup(string feedParamKey, string[] feeds, string timeParamKey, uint256 time, bytes extraData)
creation bytecode
0x60806040523480156200001157600080fd5b50604051620039bb380380620039bb833981016040819052620000349162000249565b6200003f3362000136565b6000805460ff60a01b191690556001600160a01b038716158015906200006d57506001600160a01b03811615155b620000be5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f74206265207a65726f206164647265737365730000000000000000604482015260640160405180910390fd5b600180546001600160a01b0319166001600160a01b0389161790556002869055600385905560048490558251620000fd90600590602086019062000186565b50600680546001600160a01b039384166001600160a01b0319918216179091556007805492909316911617905550620003cc9350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620001949062000379565b90600052602060002090601f016020900481019282620001b8576000855562000203565b82601f10620001d357805160ff191683800117855562000203565b8280016001018555821562000203579182015b8281111562000203578251825591602001919060010190620001e6565b506200021192915062000215565b5090565b5b8082111562000211576000815560010162000216565b80516001600160a01b03811681146200024457600080fd5b919050565b600080600080600080600060e0888a03121562000264578283fd5b6200026f886200022c565b60208981015160408b015160608c015160808d0151949b5091995097509550906001600160401b0380821115620002a4578586fd5b818b0191508b601f830112620002b8578586fd5b815181811115620002cd57620002cd620003b6565b604051601f8201601f19908116603f01168101908382118183101715620002f857620002f8620003b6565b816040528281528e8684870101111562000310578889fd5b8893505b8284101562000333578484018601518185018701529285019262000314565b828411156200034457888684830101525b8098505050505050506200035b60a089016200022c565b91506200036b60c089016200022c565b905092959891949750929550565b600181811c908216806200038e57607f821691505b60208210811415620003b057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6135df80620003dc6000396000f3fe60806040526004361061019a5760003560e01c80638456cb59116100e1578063b4880e2b1161008a578063da3e339711610064578063da3e33971461049b578063f2fde38b146104bb578063f5537ede146104db578063f645d4f9146104fb576101a1565b8063b4880e2b1461043b578063b9998a241461045b578063c6bbcaa51461047b576101a1565b80639997d09f116100bb5780639997d09f146103d8578063a094dc4114610405578063a83c97b31461041b576101a1565b80638456cb59146103765780638da5cb5b1461038b578063967a572f146103b6576101a1565b806358d07f96116101435780635d5238891161011d5780635d523889146103215780636e04ff0d14610341578063715018a614610361576101a1565b806358d07f96146102a65780635bbbd133146102c65780635c975abb146102e6576101a1565b80634585e33b116101745780634585e33b1461020657806347f77bc0146102265780634b56a42e14610278576101a1565b8063060e89a0146101b05780630927b000146101d95780633f4ba83a146101ef576101a1565b366101a157005b3480156101ad57600080fd5b50005b3480156101bc57600080fd5b506101c660035481565b6040519081526020015b60405180910390f35b3480156101e557600080fd5b506101c660045481565b3480156101fb57600080fd5b50610204610528565b005b34801561021257600080fd5b50610204610221366004612e19565b61053a565b34801561023257600080fd5b506007546102539073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d0565b34801561028457600080fd5b50610298610293366004612d25565b610dea565b6040516101d09291906131c6565b3480156102b257600080fd5b506102046102c1366004612c58565b610e1e565b3480156102d257600080fd5b506102046102e136600461305a565b610f12565b3480156102f257600080fd5b5060005474010000000000000000000000000000000000000000900460ff1660405190151581526020016101d0565b34801561032d57600080fd5b5061020461033c36600461305a565b610fe8565b34801561034d57600080fd5b5061029861035c366004612e19565b611025565b34801561036d57600080fd5b5061020461175d565b34801561038257600080fd5b5061020461176f565b34801561039757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610253565b3480156103c257600080fd5b506103cb61177f565b6040516101d09190613253565b3480156103e457600080fd5b506001546102539073ffffffffffffffffffffffffffffffffffffffff1681565b34801561041157600080fd5b506101c660025481565b34801561042757600080fd5b5061020461043636600461305a565b61180d565b34801561044757600080fd5b50610204610456366004612e19565b6118dc565b34801561046757600080fd5b50610204610476366004612c58565b61192e565b34801561048757600080fd5b50610204610496366004612c58565b6119a5565b3480156104a757600080fd5b506102046104b6366004612e8c565b611a99565b3480156104c757600080fd5b506102046104d6366004612c58565b611b4f565b3480156104e757600080fd5b506102046104f6366004612e8c565b611c06565b34801561050757600080fd5b506006546102539073ffffffffffffffffffffffffffffffffffffffff1681565b610530611cdd565b610538611d5e565b565b60065473ffffffffffffffffffffffffffffffffffffffff16331480610576575060065473ffffffffffffffffffffffffffffffffffffffff16155b6105e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4e6f7420666f727761726465720000000000000000000000000000000000000060448201526064015b60405180910390fd5b6105e9611ddb565b600154604080517ff7fdec28000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163f7fdec28916004808301926020929190829003018186803b15801561065457600080fd5b505afa158015610668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068c9190612dff565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630f74174f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106f857600080fd5b505afa15801561070c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107309190612dff565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079c57600080fd5b505afa1580156107b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d49190612dff565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663766718086040518163ffffffff1660e01b815260040160206040518083038186803b15801561084057600080fd5b505afa158015610854573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108789190613072565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eaba23616040518163ffffffff1660e01b815260040160206040518083038186803b1580156108e457600080fd5b505afa1580156108f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091c9190613072565b6001546040517f8c65c81f0000000000000000000000000000000000000000000000000000000081526004810185905291925060009173ffffffffffffffffffffffffffffffffffffffff90911690638c65c81f906024016101c06040518083038186803b15801561098d57600080fd5b505afa1580156109a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c59190612fa1565b60408101519091508415610a5a57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a3d57600080fd5b505af1158015610a51573d6000803e3d6000fd5b50505050610ddf565b86610ac957600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663452fd75a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a3d57600080fd5b85610c4e57801580610ae757508060045442610ae5919061347a565b105b15610af157610ddf565b8015801590610b085750610b05838261347a565b42115b15610b7757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a3d57600080fd5b600080610b868a8c018c612d25565b91509150600081806020019051810190610ba09190613072565b90506000610bae8483611e60565b6001546040517fa1d2f6ea00000000000000000000000000000000000000000000000000000000815269ffffffffffffffffffff851660048201526024810183905291925073ffffffffffffffffffffffffffffffffffffffff169063a1d2f6ea90604401600060405180830381600087803b158015610c2d57600080fd5b505af1158015610c41573d6000803e3d6000fd5b5050505050505050610ddf565b8060045442610c5d919061347a565b1115610ddf57801580610c7c57508060045442610c7a919061347a565b105b15610c8657610ddf565b8015801590610c9d5750610c9a838261347a565b42115b15610d0c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a3d57600080fd5b600080610d1b8a8c018c612d25565b91509150600081806020019051810190610d359190613072565b90506000610d438483611e60565b6001546040517f740e104700000000000000000000000000000000000000000000000000000000815269ffffffffffffffffffff851660048201526024810183905291925073ffffffffffffffffffffffffffffffffffffffff169063740e104790604401600060405180830381600087803b158015610dc257600080fd5b505af1158015610dd6573d6000803e3d6000fd5b50505050505050505b505050505050505050565b6000606060018484604051602001610e03929190613133565b604051602081830303815290604052915091505b9250929050565b610e26611cdd565b73ffffffffffffffffffffffffffffffffffffffff8116610ea3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43616e6e6f74206265207a65726f20616464726573730000000000000000000060448201526064016105d8565b600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f303c1bce4d3c37479e2b23d6c3338a50bedc1909ce558a88f92f8e6782f4de5f90600090a250565b610f1a611cdd565b600254811115610fac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f616865616454696d65466f72506572666f726d55706b6565702063616e6e6f7460448201527f206265206d6f7265207468616e204d6178416865616454696d6500000000000060648201526084016105d8565b60048190556040518181527fee3c43946327f1f066dfe4a6d9fef20fdfafc416fcf4069f31ddb4fdfd6b776b906020015b60405180910390a150565b610ff0611cdd565b60028190556040518181527f117f69102ac350c84f55466aca170711c064f3fddbf43d0898380f012c6e8b1c90602001610fdd565b6000805460609074010000000000000000000000000000000000000000900460ff16610e175783838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250600154604080517ff7fdec280000000000000000000000000000000000000000000000000000000081529051969750919573ffffffffffffffffffffffffffffffffffffffff909116945063f7fdec28935060048083019350602092829003018186803b1580156110ed57600080fd5b505afa158015611101573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111259190612dff565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630f74174f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561119157600080fd5b505afa1580156111a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c99190612dff565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561123557600080fd5b505afa158015611249573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126d9190612dff565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663766718086040518163ffffffff1660e01b815260040160206040518083038186803b1580156112d957600080fd5b505afa1580156112ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113119190613072565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eaba23616040518163ffffffff1660e01b815260040160206040518083038186803b15801561137d57600080fd5b505afa158015611391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b59190613072565b6001546040517f8c65c81f0000000000000000000000000000000000000000000000000000000081526004810185905291925060009173ffffffffffffffffffffffffffffffffffffffff90911690638c65c81f906024016101c06040518083038186803b15801561142657600080fd5b505afa15801561143a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145e9190612fa1565b90506000816040015190506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ec3247036040518163ffffffff1660e01b815260040160206040518083038186803b1580156114d357600080fd5b505afa1580156114e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150b9190613072565b61151690600161347a565b90508515611527576001995061174e565b87611535576001995061174e565b866116f55781158061155357508160035442611551919061347a565b105b1561155d5761174e565b81158015906115745750611571848361347a565b42115b15611582576001995061174e565b604080516001808252818301909252600091816020015b6060815260200190600190039081611599579050509050600580546115bd906134d5565b80601f01602080910402602001604051908101604052809291908181526020018280546115e9906134d5565b80156116365780601f1061160b57610100808354040283529160200191611636565b820191906000526020600020905b81548152906001019060200180831161161957829003601f168201915b505050505081600081518110611675577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018190525080428360405160200161169591815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527ff055e4a20000000000000000000000000000000000000000000000000000000082526105d8939291600401613266565b8160035442611704919061347a565b111561174e5781158061172357508160035442611721919061347a565b105b1561172d5761174e565b81158015906117445750611741848361347a565b42115b1561158257600199505b50505050505050509250929050565b611765611cdd565b61053860006124fb565b611777611cdd565b610538612570565b6005805461178c906134d5565b80601f01602080910402602001604051908101604052809291908181526020018280546117b8906134d5565b80156118055780601f106117da57610100808354040283529160200191611805565b820191906000526020600020905b8154815290600101906020018083116117e857829003601f168201915b505050505081565b611815611cdd565b6002548111156118a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f616865616454696d65466f72436865636b55706b6565702063616e6e6f74206260448201527f65206d6f7265207468616e204d6178416865616454696d65000000000000000060648201526084016105d8565b60038190556040518181527ffcf8adcabbe015bf29555d1162dbbf64d6b8631cbfa0973cc0ac058ee250938290602001610fdd565b6118e4611cdd565b6118f060058383612a10565b507fdb1665581817c1455ca4915bc39e78992cdb42b0d5975112049a5f6804f297c88282604051611922929190613206565b60405180910390a15050565b611936611cdd565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f75a4ce37b5b180b327c7beb0e7f03b1df4a327bb8c2bd30b4dcaf5d79e0586af90600090a250565b6119ad611cdd565b73ffffffffffffffffffffffffffffffffffffffff8116611a2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43616e6e6f74206265207a65726f20616464726573730000000000000000000060448201526064016105d8565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f84671be6bbfae8584f3eac047acd13c3c089ce73c58c2814a5b11308ade0f7a290600090a250565b611aa1611cdd565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063095ea7b390604401602060405180830381600087803b158015611b1157600080fd5b505af1158015611b25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b499190612dff565b50505050565b611b57611cdd565b73ffffffffffffffffffffffffffffffffffffffff8116611bfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105d8565b611c03816124fb565b50565b611c0e611cdd565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8516906370a082319060240160206040518083038186803b158015611c7657600080fd5b505afa158015611c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cae9190613072565b905081811015611cbc578091505b611b4973ffffffffffffffffffffffffffffffffffffffff851684846125df565b60005473ffffffffffffffffffffffffffffffffffffffff163314610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105d8565b611d66612671565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60005474010000000000000000000000000000000000000000900460ff1615610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016105d8565b600154604080517fec324703000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163ec324703916004808301926020929190829003018186803b158015611ecb57600080fd5b505afa158015611edf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f039190613072565b8211611f91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4f7261636c652075706461746520726f756e644964206d757374206265206c6160448201527f72676572207468616e206f7261636c654c6174657374526f756e64496400000060648201526084016105d8565b600754604080517f38416b5b000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916338416b5b91600480830192602092919082900301818787803b158015611ffd57600080fd5b505af1158015612011573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120359190612c7b565b905060008173ffffffffffffffffffffffffffffffffffffffff1663638786686040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561208157600080fd5b505af1158015612095573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b99190612c7b565b90506000856000815181106120f7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518060200190518101906121129190612c97565b91505060008373ffffffffffffffffffffffffffffffffffffffff1663e03dab1a3084866040518463ffffffff1660e01b8152600401612154939291906130f0565b60a060405180830381600087803b15801561216e57600080fd5b505af1158015612182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a69190612ecc565b505060208101516040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152602482019290925291925084169063095ea7b390604401602060405180830381600087803b15801561222157600080fd5b505af1158015612235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122599190612dff565b50600754875160009173ffffffffffffffffffffffffffffffffffffffff169063f7e83aee908a9084906122b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151866040516020016122eb919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016123179291906131e1565b600060405180830381600087803b15801561233157600080fd5b505af1158015612345573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261238b9190810190612e59565b90506000818060200190518101906123a39190612f09565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663605540116040518163ffffffff1660e01b815260040160206040518083038186803b15801561240d57600080fd5b505afa158015612421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124459190613072565b61244f9042613492565b816040015163ffffffff1610156124e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4f7261636c6520757064617465206578636565646564206d61782074696d657360448201527f74616d7020616c6c6f77616e636500000000000000000000000000000000000060648201526084016105d8565b60c0015160170b98975050505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b612578611ddb565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611db13390565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261266c9084906126f5565b505050565b60005474010000000000000000000000000000000000000000900460ff16610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016105d8565b6000612757826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166128049092919063ffffffff16565b90508051600014806127785750808060200190518101906127789190612dff565b61266c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016105d8565b6060612813848460008561281b565b949350505050565b6060824710156128ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016105d8565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516128d691906130d4565b60006040518083038185875af1925050503d8060008114612913576040519150601f19603f3d011682016040523d82523d6000602084013e612918565b606091505b509150915061292987838387612934565b979650505050505050565b606083156129c75782516129c05773ffffffffffffffffffffffffffffffffffffffff85163b6129c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105d8565b5081612813565b61281383838151156129dc5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d89190613253565b828054612a1c906134d5565b90600052602060002090601f016020900481019282612a3e5760008555612aa2565b82601f10612a75578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555612aa2565b82800160010185558215612aa2579182015b82811115612aa2578235825591602001919060010190612a87565b50612aae929150612ab2565b5090565b5b80821115612aae5760008155600101612ab3565b80518015158114612ad757600080fd5b919050565b60008083601f840112612aed578182fd5b50813567ffffffffffffffff811115612b04578182fd5b602083019150836020828501011115610e1757600080fd5b600082601f830112612b2c578081fd5b8135612b3f612b3a82613434565b6133e5565b818152846020838601011115612b53578283fd5b816020850160208301379081016020019190915292915050565b600082601f830112612b7d578081fd5b8151612b8b612b3a82613434565b818152846020838601011115612b9f578283fd5b6128138260208301602087016134a9565b8051601781900b8114612ad757600080fd5b600060408284031215612bd3578081fd5b6040516040810181811067ffffffffffffffff82111715612bf657612bf6613558565b80604052508091508251612c0981613587565b8152602092830151920191909152919050565b805177ffffffffffffffffffffffffffffffffffffffffffffffff81168114612ad757600080fd5b805163ffffffff81168114612ad757600080fd5b600060208284031215612c69578081fd5b8135612c7481613587565b9392505050565b600060208284031215612c8c578081fd5b8151612c7481613587565b60008060808385031215612ca9578081fd5b83601f840112612cb7578081fd5b612cbf613375565b80846060860187811115612cd1578485fd5b845b6003811015612cf2578251855260209485019490920191600101612cd3565b50519194509091505067ffffffffffffffff811115612d0f578182fd5b612d1b85828601612b6d565b9150509250929050565b60008060408385031215612d37578182fd5b823567ffffffffffffffff80821115612d4e578384fd5b818501915085601f830112612d61578384fd5b8135602082821115612d7557612d75613558565b8160051b612d848282016133e5565b8381528281019086840183880185018c1015612d9e57898afd5b8993505b85841015612ddb57803587811115612db8578a8bfd5b612dc68d87838c0101612b1c565b84525060019390930192918401918401612da2565b509750505086013592505080821115612df2578283fd5b50612d1b85828601612b1c565b600060208284031215612e10578081fd5b612c7482612ac7565b60008060208385031215612e2b578182fd5b823567ffffffffffffffff811115612e41578283fd5b612e4d85828601612adc565b90969095509350505050565b600060208284031215612e6a578081fd5b815167ffffffffffffffff811115612e80578182fd5b61281384828501612b6d565b600080600060608486031215612ea0578081fd5b8335612eab81613587565b92506020840135612ebb81613587565b929592945050506040919091013590565b600080600060a08486031215612ee0578081fd5b612eea8585612bc2565b9250612ef98560408601612bc2565b9150608084015190509250925092565b600060e08284031215612f1a578081fd5b612f2261339e565b82518152612f3260208401612c44565b6020820152612f4360408401612c44565b6040820152612f5460608401612c1c565b6060820152612f6560808401612c1c565b608082015260a083015167ffffffffffffffff81168114612f84578283fd5b60a0820152612f9560c08401612bb0565b60c08201529392505050565b60006101c08284031215612fb3578081fd5b612fbb6133c1565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101408084015181830152506101608084015181830152506101808084015181830152506101a061304f818501612ac7565b908201529392505050565b60006020828403121561306b578081fd5b5035919050565b600060208284031215613083578081fd5b5051919050565b600081518084526130a28160208601602086016134a9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082516130e68184602087016134a9565b9190910192915050565b600073ffffffffffffffffffffffffffffffffffffffff808616835260606020840152613120606084018661308a565b9150808416604084015250949350505050565b6000604082016040835280855180835260608501915060608160051b86010192506020808801855b838110156131a7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa088870301855261319586835161308a565b9550938201939082019060010161315b565b5050858403818701525050506131bd818561308a565b95945050505050565b8215158152604060208201526000612813604083018461308a565b6040815260006131f4604083018561308a565b82810360208401526131bd818561308a565b60208152816020820152818360408301376000818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b602081526000612c74602083018461308a565b60a08152600760a08201527f666565644944730000000000000000000000000000000000000000000000000060c0820152600060e08201602060e08185015281875180845261010093508386019150838160051b8701019350828901855b82811015613310577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008887030184526132fe86835161308a565b955092840192908401906001016132c4565b5050505050828103604084015261335181600981527f74696d657374616d700000000000000000000000000000000000000000000000602082015260400190565b9050846060840152828103608084015261336b818561308a565b9695505050505050565b6040516060810167ffffffffffffffff8111828210171561339857613398613558565b60405290565b60405160e0810167ffffffffffffffff8111828210171561339857613398613558565b6040516101c0810167ffffffffffffffff8111828210171561339857613398613558565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561342c5761342c613558565b604052919050565b600067ffffffffffffffff82111561344e5761344e613558565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6000821982111561348d5761348d613529565b500190565b6000828210156134a4576134a4613529565b500390565b60005b838110156134c45781810151838201526020016134ac565b83811115611b495750506000910152565b600181811c908216806134e957607f821691505b60208210811415613523577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114611c0357600080fdfea26469706673582212209e0ac0e46fffdc3eeae0514521e41339d9bcdde56f0ece63b84e9ef07236cbf464736f6c63430008040033000000000000000000000000f2f90e718a3bfacb430c1818cb962f05a2631998000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000a4c0028748d8f534e6d7bab20d9b696f750f114d000000000000000000000000478aa2ac9f6d65f84e09d9185d126c3a17c2a93c0000000000000000000000000000000000000000000000000000000000000042307830303032356465393231656661386538366636373765343763663331356362636631616334323238316564393434323334356232363730616532393232316362000000000000000000000000000000000000000000000000000000000000