1.2k txs
1.2k calls
constructor
constructor(address _tokenAddress)
functions
getAllQuestIds
viewfunction getAllQuestIds() view returns (string[])
getQuest
viewfunction getQuest(string _questId) view returns (tuple)
hasClaimedReward
viewfunction hasClaimedReward(string, address) view returns (bool)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
questIds
viewfunction questIds(uint256) view returns (string)
quests
viewfunction quests(string) view returns (string id, address creator, address escrowAccount, address tokenAddress, uint256 amount, uint256 deadline, bool isActive, uint256 totalWinners, uint256 totalRewardDistributed, uint256 maxWinners)
supportedTokens
viewfunction supportedTokens(address) view returns (bool)
addSupportedToken
nonpayablefunction addSupportedToken(address _token)
cancelQuest
nonpayablefunction cancelQuest(string _questId)
claimRemainingReward
nonpayablefunction claimRemainingReward(string _questId)
createQuest
nonpayablefunction createQuest(string _questId, address _token, uint256 _amount, uint256 _deadline, uint256 _maxWinners) returns (string)
pause
nonpayablefunction pause()
removeSupportedToken
nonpayablefunction removeSupportedToken(address _token)
renounceOwnership
nonpayablefunction renounceOwnership()
sendReward
nonpayablefunction sendReward(string _questId, address _winner, uint256 _amount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateQuestStatus
nonpayablefunction updateQuestStatus(string _questId, bool _newStatus)
withdrawAllETH
nonpayablefunction withdrawAllETH()
withdrawAllTokens
nonpayablefunction withdrawAllTokens(address _tokenAddress)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
QuestCancelled
event QuestCancelled(string indexed id)
QuestCreated
event QuestCreated(string indexed id, address indexed creator, address indexed token, uint256 amount, address escrowAccount, uint256 deadline, uint256 maxWinners)
QuestStatusUpdated
event QuestStatusUpdated(string indexed id, bool isActive)
RemainingRewardClaimed
event RemainingRewardClaimed(string indexed questId, address indexed creator, uint256 amount)
RewardSent
event RewardSent(string indexed questId, address indexed winner, uint256 amount)
TokenSupported
event TokenSupported(address indexed token, bool supported)
Unpaused
event Unpaused(address account)
errors
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x608060405234801561001057600080fd5b50604051614372380380614372833981810160405281019061003291906102ff565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061033b565b60405180910390fd5b6100b4816101d860201b60201c565b5060018081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361012b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610122906103b3565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fd86c88b4a367d9b81a6e00c9d3f7d01657bffef358fa8968c91c045ae99f0d5260016040516101ca91906103ee565b60405180910390a250610409565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102cc826102a1565b9050919050565b6102dc816102c1565b81146102e757600080fd5b50565b6000815190506102f9816102d3565b92915050565b6000602082840312156103155761031461029c565b5b6000610323848285016102ea565b91505092915050565b610335816102c1565b82525050565b6000602082019050610350600083018461032c565b92915050565b600082825260208201905092915050565b7f496e76616c696420546f6b656e20616464726573730000000000000000000000600082015250565b600061039d601583610356565b91506103a882610367565b602082019050919050565b600060208201905081810360008301526103cc81610390565b9050919050565b60008115159050919050565b6103e8816103d3565b82525050565b600060208201905061040360008301846103df565b92915050565b613f5a806104186000396000f3fe60806040526004361061012e5760003560e01c80637e4176e3116100ab578063a878aee61161006f578063a878aee6146103c9578063dcd6c861146103f2578063e15cfcf51461042f578063ef15aafb14610458578063f2fde38b14610481578063ffd50c28146104aa57610135565b80637e4176e3146102ed5780638456cb591461033357806384cbdb881461034a5780638da5cb5b1461038757806390386bbf146103b257610135565b806368c4ac26116100f257806368c4ac261461020a5780636d69fcaf14610247578063713db9e014610270578063715018a6146102ad57806376319190146102c457610135565b80630b8dd3cd146101375780632bcfaa03146101625780633f4ba83a1461018b57806351fe9484146101a25780635c975abb146101df57610135565b3661013557005b005b34801561014357600080fd5b5061014c6104d3565b6040516101599190612902565b60405180910390f35b34801561016e57600080fd5b5061018960048036038101906101849190612aa5565b6105ac565b005b34801561019757600080fd5b506101a06106f0565b005b3480156101ae57600080fd5b506101c960048036038101906101c49190612b95565b610702565b6040516101d69190612c76565b60405180910390f35b3480156101eb57600080fd5b506101f4610d58565b6040516102019190612ca7565b60405180910390f35b34801561021657600080fd5b50610231600480360381019061022c9190612cc2565b610d6e565b60405161023e9190612ca7565b60405180910390f35b34801561025357600080fd5b5061026e60048036038101906102699190612cc2565b610d8e565b005b34801561027c57600080fd5b5061029760048036038101906102929190612cef565b610eaf565b6040516102a49190612ca7565b60405180910390f35b3480156102b957600080fd5b506102c2610ef4565b005b3480156102d057600080fd5b506102eb60048036038101906102e69190612cc2565b610f08565b005b3480156102f957600080fd5b50610314600480360381019061030f9190612d4b565b610fba565b60405161032a9a99989796959493929190612db2565b60405180910390f35b34801561033f57600080fd5b50610348611119565b005b34801561035657600080fd5b50610371600480360381019061036c9190612e55565b61112b565b60405161037e9190612c76565b60405180910390f35b34801561039357600080fd5b5061039c6111d7565b6040516103a99190612e82565b60405180910390f35b3480156103be57600080fd5b506103c7611200565b005b3480156103d557600080fd5b506103f060048036038101906103eb9190612cc2565b611317565b005b3480156103fe57600080fd5b5061041960048036038101906104149190612d4b565b6114c6565b6040516104269190612fa4565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190612d4b565b6116e0565b005b34801561046457600080fd5b5061047f600480360381019061047a9190612fc6565b611aa0565b005b34801561048d57600080fd5b506104a860048036038101906104a39190612cc2565b611f49565b005b3480156104b657600080fd5b506104d160048036038101906104cc9190612d4b565b611fcf565b005b60606004805480602002602001604051908101604052809291908181526020016000905b828210156105a357838290600052602060002001805461051690613064565b80601f016020809104026020016040519081016040528092919081815260200182805461054290613064565b801561058f5780601f106105645761010080835404028352916020019161058f565b820191906000526020600020905b81548152906001019060200180831161057257829003601f168201915b5050505050815260200190600101906104f7565b50505050905090565b6105b4612431565b81600073ffffffffffffffffffffffffffffffffffffffff166002826040516105dd91906130d1565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065c90613134565b60405180910390fd5b8160028460405161067691906130d1565b908152602001604051809103902060060160006101000a81548160ff021916908315150217905550826040516106ac91906130d1565b60405180910390207fb6255580420f9d3ead10932be0efc655ee62489e4f04e09c801a78e75d461f71836040516106e39190612ca7565b60405180910390a2505050565b6106f8612431565b6107006124b8565b565b606061070c61251a565b61071461255b565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166107a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610797906131a0565b60405180910390fd5b600084116107e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107da9061320c565b60405180910390fd5b428311610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081c90613278565b60405180910390fd5b60008211610868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085f906132e4565b60405180910390fd5b60008573ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b81526004016108a5929190613304565b602060405180830381865afa1580156108c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e69190613342565b90508481101561092b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610922906133bb565b60405180910390fd5b60008673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330896040518463ffffffff1660e01b815260040161096a939291906133db565b6020604051808303816000875af1158015610989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ad9190613427565b9050806109ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e6906134a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600289604051610a1791906130d1565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a969061350c565b60405180910390fd5b6040518061014001604052808981526020013373ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff168152602001878152602001868152602001600115158152602001600081526020016000815260200185815250600289604051610b3c91906130d1565b90815260200160405180910390206000820151816000019081610b5f91906136d8565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555060e0820151816007015561010082015181600801556101208201518160090155905050600488908060018154018082558091505060019003906000526020600020016000909190919091509081610cc091906136d8565b508673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1689604051610cfd91906130d1565b60405180910390207f46c84372aebfc2cd2ccf4d4061936883b02d3e07808140044f733f883476c68989308a8a604051610d3a94939291906137aa565b60405180910390a48792505050610d4f6125a1565b95945050505050565b60008060149054906101000a900460ff16905090565b60056020528060005260406000206000915054906101000a900460ff1681565b610d96612431565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfc9061383b565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fd86c88b4a367d9b81a6e00c9d3f7d01657bffef358fa8968c91c045ae99f0d526001604051610ea49190612ca7565b60405180910390a250565b6003828051602081018201805184825260208301602085012081835280955050505050506020528060005260406000206000915091509054906101000a900460ff1681565b610efc612431565b610f0660006125aa565b565b610f10612431565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fd86c88b4a367d9b81a6e00c9d3f7d01657bffef358fa8968c91c045ae99f0d526000604051610faf9190612ca7565b60405180910390a250565b600281805160208101820180518482526020830160208501208183528095505050505050600091509050806000018054610ff390613064565b80601f016020809104026020016040519081016040528092919081815260200182805461101f90613064565b801561106c5780601f106110415761010080835404028352916020019161106c565b820191906000526020600020905b81548152906001019060200180831161104f57829003601f168201915b5050505050908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040154908060050154908060060160009054906101000a900460ff1690806007015490806008015490806009015490508a565b611121612431565b61112961266e565b565b6004818154811061113b57600080fd5b90600052602060002001600091509050805461115690613064565b80601f016020809104026020016040519081016040528092919081815260200182805461118290613064565b80156111cf5780601f106111a4576101008083540402835291602001916111cf565b820191906000526020600020905b8154815290600101906020018083116111b257829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611208612431565b61121061255b565b600047905060008111611258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124f906138a7565b60405180910390fd5b60006112626111d7565b73ffffffffffffffffffffffffffffffffffffffff1682604051611285906138f8565b60006040518083038185875af1925050503d80600081146112c2576040519150601f19603f3d011682016040523d82523d6000602084013e6112c7565b606091505b505090508061130b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130290613959565b60405180910390fd5b50506113156125a1565b565b61131f612431565b61132761251a565b61132f61255b565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161136a9190612e82565b602060405180830381865afa158015611387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ab9190613342565b9050600081116113f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e7906139c5565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114166111d7565b846040518363ffffffff1660e01b81526004016114349291906139e5565b6020604051808303816000875af1158015611453573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114779190613427565b9050806114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b0906134a0565b60405180910390fd5b50506114c36125a1565b50565b6114ce612719565b6002826040516114de91906130d1565b90815260200160405180910390206040518061014001604052908160008201805461150890613064565b80601f016020809104026020016040519081016040528092919081815260200182805461153490613064565b80156115815780601f1061155657610100808354040283529160200191611581565b820191906000526020600020905b81548152906001019060200180831161156457829003601f168201915b505050505081526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160048201548152602001600582015481526020016006820160009054906101000a900460ff1615151515815260200160078201548152602001600882015481526020016009820154815250509050919050565b6116e8612431565b80600073ffffffffffffffffffffffffffffffffffffffff1660028260405161171191906130d1565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611799576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179090613134565b60405180910390fd5b816002816040516117aa91906130d1565b908152602001604051809103902060060160009054906101000a900460ff16611808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ff90613a5a565b60405180910390fd5b61181061251a565b61181861255b565b600060028460405161182a91906130d1565b9081526020016040518091039020905060008160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118999190612e82565b602060405180830381865afa1580156118b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118da9190613342565b90508160040154811015611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a90613aec565b60405180910390fd5b60008260060160006101000a81548160ff02191690831515021790555060008260030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685600401546040518363ffffffff1660e01b81526004016119c99291906139e5565b6020604051808303816000875af11580156119e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0c9190613427565b905080611a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a45906134a0565b60405180910390fd5b85604051611a5c91906130d1565b60405180910390207f5e8d92ecd69da0a814d91296938dee5698ef87c27818cc48c0b367b95a8cc14860405160405180910390a2505050611a9b6125a1565b505050565b611aa8612431565b82600073ffffffffffffffffffffffffffffffffffffffff16600282604051611ad191906130d1565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5090613134565b60405180910390fd5b83600281604051611b6a91906130d1565b908152602001604051809103902060060160009054906101000a900460ff16611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf90613a5a565b60405180910390fd5b611bd061251a565b611bd861255b565b6000600286604051611bea91906130d1565b908152602001604051809103902090508060040154848260080154611c0f9190613b3b565b1115611c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4790613be1565b60405180910390fd5b600386604051611c6091906130d1565b908152602001604051809103902060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf090613c4d565b60405180910390fd5b8060090154816007015410611d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3a90613cb9565b60405180910390fd5b6001600387604051611d5591906130d1565b908152602001604051809103902060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555083816008016000828254611dcb9190613b3b565b925050819055506001816007016000828254611de79190613b3b565b9250508190555060008160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87876040518363ffffffff1660e01b8152600401611e4f9291906139e5565b6020604051808303816000875af1158015611e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e929190613427565b905080611ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecb906134a0565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1687604051611ef991906130d1565b60405180910390207f26e3920307427413df40c1d623f4395e4fcd34357d30eda972508c6ae024a79187604051611f309190613cd9565b60405180910390a35050611f426125a1565b5050505050565b611f51612431565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fc35760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611fba9190612e82565b60405180910390fd5b611fcc816125aa565b50565b80600073ffffffffffffffffffffffffffffffffffffffff16600282604051611ff891906130d1565b908152602001604051809103902060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612080576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207790613134565b60405180910390fd5b61208861251a565b61209061255b565b60006002836040516120a291906130d1565b908152602001604051809103902090508060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061214257506121136111d7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217890613d66565b60405180910390fd5b8060060160009054906101000a900460ff16156121d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ca90613dd2565b60405180910390fd5b62093a8081600501546121e69190613b3b565b421015612228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221f90613e64565b60405180910390fd5b60008160080154826004015461223e9190613e84565b905060008111612283576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227a90613f04565b60405180910390fd5b8160080154826004018190555060008260030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016123159291906139e5565b6020604051808303816000875af1158015612334573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123589190613427565b90508061239a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612391906134a0565b60405180910390fd5b8260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16856040516123e391906130d1565b60405180910390207f5617ca63ffa9add446eeecc3160dd2b7445487adab0cb838b027b795c55722d58460405161241a9190613cd9565b60405180910390a350505061242d6125a1565b5050565b6124396126d1565b73ffffffffffffffffffffffffffffffffffffffff166124576111d7565b73ffffffffffffffffffffffffffffffffffffffff16146124b65761247a6126d1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016124ad9190612e82565b60405180910390fd5b565b6124c06126d9565b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6125036126d1565b6040516125109190612e82565b60405180910390a1565b612522610d58565b15612559576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600260015403612597576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b60018081905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61267661251a565b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586126ba6126d1565b6040516126c79190612e82565b60405180910390a1565b600033905090565b6126e1610d58565b612717576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60405180610140016040528060608152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000151581526020016000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128165780820151818401526020810190506127fb565b60008484015250505050565b6000601f19601f8301169050919050565b600061283e826127dc565b61284881856127e7565b93506128588185602086016127f8565b61286181612822565b840191505092915050565b60006128788383612833565b905092915050565b6000602082019050919050565b6000612898826127b0565b6128a281856127bb565b9350836020820285016128b4856127cc565b8060005b858110156128f057848403895281516128d1858261286c565b94506128dc83612880565b925060208a019950506001810190506128b8565b50829750879550505050505092915050565b6000602082019050818103600083015261291c818461288d565b905092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61297a82612822565b810181811067ffffffffffffffff8211171561299957612998612942565b5b80604052505050565b60006129ac612924565b90506129b88282612971565b919050565b600067ffffffffffffffff8211156129d8576129d7612942565b5b6129e182612822565b9050602081019050919050565b82818337600083830152505050565b6000612a10612a0b846129bd565b6129a2565b905082815260208101848484011115612a2c57612a2b61293d565b5b612a378482856129ee565b509392505050565b600082601f830112612a5457612a53612938565b5b8135612a648482602086016129fd565b91505092915050565b60008115159050919050565b612a8281612a6d565b8114612a8d57600080fd5b50565b600081359050612a9f81612a79565b92915050565b60008060408385031215612abc57612abb61292e565b5b600083013567ffffffffffffffff811115612ada57612ad9612933565b5b612ae685828601612a3f565b9250506020612af785828601612a90565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b2c82612b01565b9050919050565b612b3c81612b21565b8114612b4757600080fd5b50565b600081359050612b5981612b33565b92915050565b6000819050919050565b612b7281612b5f565b8114612b7d57600080fd5b50565b600081359050612b8f81612b69565b92915050565b600080600080600060a08688031215612bb157612bb061292e565b5b600086013567ffffffffffffffff811115612bcf57612bce612933565b5b612bdb88828901612a3f565b9550506020612bec88828901612b4a565b9450506040612bfd88828901612b80565b9350506060612c0e88828901612b80565b9250506080612c1f88828901612b80565b9150509295509295909350565b600082825260208201905092915050565b6000612c48826127dc565b612c528185612c2c565b9350612c628185602086016127f8565b612c6b81612822565b840191505092915050565b60006020820190508181036000830152612c908184612c3d565b905092915050565b612ca181612a6d565b82525050565b6000602082019050612cbc6000830184612c98565b92915050565b600060208284031215612cd857612cd761292e565b5b6000612ce684828501612b4a565b91505092915050565b60008060408385031215612d0657612d0561292e565b5b600083013567ffffffffffffffff811115612d2457612d23612933565b5b612d3085828601612a3f565b9250506020612d4185828601612b4a565b9150509250929050565b600060208284031215612d6157612d6061292e565b5b600082013567ffffffffffffffff811115612d7f57612d7e612933565b5b612d8b84828501612a3f565b91505092915050565b612d9d81612b21565b82525050565b612dac81612b5f565b82525050565b6000610140820190508181036000830152612dcd818d612c3d565b9050612ddc602083018c612d94565b612de9604083018b612d94565b612df6606083018a612d94565b612e036080830189612da3565b612e1060a0830188612da3565b612e1d60c0830187612c98565b612e2a60e0830186612da3565b612e38610100830185612da3565b612e46610120830184612da3565b9b9a5050505050505050505050565b600060208284031215612e6b57612e6a61292e565b5b6000612e7984828501612b80565b91505092915050565b6000602082019050612e976000830184612d94565b92915050565b612ea681612b21565b82525050565b612eb581612b5f565b82525050565b612ec481612a6d565b82525050565b6000610140830160008301518482036000860152612ee88282612833565b9150506020830151612efd6020860182612e9d565b506040830151612f106040860182612e9d565b506060830151612f236060860182612e9d565b506080830151612f366080860182612eac565b5060a0830151612f4960a0860182612eac565b5060c0830151612f5c60c0860182612ebb565b5060e0830151612f6f60e0860182612eac565b50610100830151612f84610100860182612eac565b50610120830151612f99610120860182612eac565b508091505092915050565b60006020820190508181036000830152612fbe8184612eca565b905092915050565b600080600060608486031215612fdf57612fde61292e565b5b600084013567ffffffffffffffff811115612ffd57612ffc612933565b5b61300986828701612a3f565b935050602061301a86828701612b4a565b925050604061302b86828701612b80565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061307c57607f821691505b60208210810361308f5761308e613035565b5b50919050565b600081905092915050565b60006130ab826127dc565b6130b58185613095565b93506130c58185602086016127f8565b80840191505092915050565b60006130dd82846130a0565b915081905092915050565b7f517565737420646f6573206e6f74206578697374000000000000000000000000600082015250565b600061311e601483612c2c565b9150613129826130e8565b602082019050919050565b6000602082019050818103600083015261314d81613111565b9050919050565b7f546f6b656e206e6f7420737570706f7274656400000000000000000000000000600082015250565b600061318a601383612c2c565b915061319582613154565b602082019050919050565b600060208201905081810360008301526131b98161317d565b9050919050565b7f416d6f756e74206d757374206265203e20300000000000000000000000000000600082015250565b60006131f6601283612c2c565b9150613201826131c0565b602082019050919050565b60006020820190508181036000830152613225816131e9565b9050919050565b7f446561646c696e65206d75737420626520696e20667574757265000000000000600082015250565b6000613262601a83612c2c565b915061326d8261322c565b602082019050919050565b6000602082019050818103600083015261329181613255565b9050919050565b7f4d61782077696e6e657273206d757374206265203e2030000000000000000000600082015250565b60006132ce601783612c2c565b91506132d982613298565b602082019050919050565b600060208201905081810360008301526132fd816132c1565b9050919050565b60006040820190506133196000830185612d94565b6133266020830184612d94565b9392505050565b60008151905061333c81612b69565b92915050565b6000602082840312156133585761335761292e565b5b60006133668482850161332d565b91505092915050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b60006133a5601683612c2c565b91506133b08261336f565b602082019050919050565b600060208201905081810360008301526133d481613398565b9050919050565b60006060820190506133f06000830186612d94565b6133fd6020830185612d94565b61340a6040830184612da3565b949350505050565b60008151905061342181612a79565b92915050565b60006020828403121561343d5761343c61292e565b5b600061344b84828501613412565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b600061348a601583612c2c565b915061349582613454565b602082019050919050565b600060208201905081810360008301526134b98161347d565b9050919050565b7f517565737420616c726561647920657869737473000000000000000000000000600082015250565b60006134f6601483612c2c565b9150613501826134c0565b602082019050919050565b60006020820190508181036000830152613525816134e9565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261358e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613551565b6135988683613551565b95508019841693508086168417925050509392505050565b6000819050919050565b60006135d56135d06135cb84612b5f565b6135b0565b612b5f565b9050919050565b6000819050919050565b6135ef836135ba565b6136036135fb826135dc565b84845461355e565b825550505050565b600090565b61361861360b565b6136238184846135e6565b505050565b5b818110156136475761363c600082613610565b600181019050613629565b5050565b601f82111561368c5761365d8161352c565b61366684613541565b81016020851015613675578190505b61368961368185613541565b830182613628565b50505b505050565b600082821c905092915050565b60006136af60001984600802613691565b1980831691505092915050565b60006136c8838361369e565b9150826002028217905092915050565b6136e1826127dc565b67ffffffffffffffff8111156136fa576136f9612942565b5b6137048254613064565b61370f82828561364b565b600060209050601f8311600181146137425760008415613730578287015190505b61373a85826136bc565b8655506137a2565b601f1984166137508661352c565b60005b8281101561377857848901518255600182019150602085019450602081019050613753565b868310156137955784890151613791601f89168261369e565b8355505b6001600288020188555050505b505050505050565b60006080820190506137bf6000830187612da3565b6137cc6020830186612d94565b6137d96040830185612da3565b6137e66060830184612da3565b95945050505050565b7f496e76616c696420746f6b656e00000000000000000000000000000000000000600082015250565b6000613825600d83612c2c565b9150613830826137ef565b602082019050919050565b6000602082019050818103600083015261385481613818565b9050919050565b7f4e6f2045544820746f2077697468647261770000000000000000000000000000600082015250565b6000613891601283612c2c565b915061389c8261385b565b602082019050919050565b600060208201905081810360008301526138c081613884565b9050919050565b600081905092915050565b50565b60006138e26000836138c7565b91506138ed826138d2565b600082019050919050565b6000613903826138d5565b9150819050919050565b7f455448207472616e73666572206661696c656400000000000000000000000000600082015250565b6000613943601383612c2c565b915061394e8261390d565b602082019050919050565b6000602082019050818103600083015261397281613936565b9050919050565b7f4e6f20746f6b656e7320746f2077697468647261770000000000000000000000600082015250565b60006139af601583612c2c565b91506139ba82613979565b602082019050919050565b600060208201905081810360008301526139de816139a2565b9050919050565b60006040820190506139fa6000830185612d94565b613a076020830184612da3565b9392505050565b7f5175657374206973206e6f742061637469766500000000000000000000000000600082015250565b6000613a44601383612c2c565b9150613a4f82613a0e565b602082019050919050565b60006020820190508181036000830152613a7381613a37565b9050919050565b7f496e73756666696369656e7420636f6e747261637420746f6b656e2062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b6000613ad6602383612c2c565b9150613ae182613a7a565b604082019050919050565b60006020820190508181036000830152613b0581613ac9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b4682612b5f565b9150613b5183612b5f565b9250828201905080821115613b6957613b68613b0c565b5b92915050565b7f496e73756666696369656e74207265776172642062616c616e63652e2052656460008201527f64696275637420796f75722071756573742e0000000000000000000000000000602082015250565b6000613bcb603283612c2c565b9150613bd682613b6f565b604082019050919050565b60006020820190508181036000830152613bfa81613bbe565b9050919050565b7f416c726561647920726577617264656400000000000000000000000000000000600082015250565b6000613c37601083612c2c565b9150613c4282613c01565b602082019050919050565b60006020820190508181036000830152613c6681613c2a565b9050919050565b7f4d61782077696e6e657273206c696d6974207265616368656400000000000000600082015250565b6000613ca3601983612c2c565b9150613cae82613c6d565b602082019050919050565b60006020820190508181036000830152613cd281613c96565b9050919050565b6000602082019050613cee6000830184612da3565b92915050565b7f4f6e6c792071756573742063726561746f72206f722061646d696e2063616e2060008201527f636c61696d2072656d61696e696e672072657761726400000000000000000000602082015250565b6000613d50603683612c2c565b9150613d5b82613cf4565b604082019050919050565b60006020820190508181036000830152613d7f81613d43565b9050919050565b7f5175657374206973207374696c6c206163746976650000000000000000000000600082015250565b6000613dbc601583612c2c565b9150613dc782613d86565b602082019050919050565b60006020820190508181036000830152613deb81613daf565b9050919050565b7f4d75737420776169742031207765656b2061667465722071756573742064656160008201527f646c696e65000000000000000000000000000000000000000000000000000000602082015250565b6000613e4e602583612c2c565b9150613e5982613df2565b604082019050919050565b60006020820190508181036000830152613e7d81613e41565b9050919050565b6000613e8f82612b5f565b9150613e9a83612b5f565b9250828203905081811115613eb257613eb1613b0c565b5b92915050565b7f4e6f2072656d61696e696e672072657761726420746f20636c61696d00000000600082015250565b6000613eee601c83612c2c565b9150613ef982613eb8565b602082019050919050565b60006020820190508181036000830152613f1d81613ee1565b905091905056fea2646970667358221220070e5e443bfcaa34093fa2688fadddda043c9bf9b25025b265e0221b467f899464736f6c634300081a0033000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913