39 txs
40 calls
constructor
constructor(address _usdcAddress)
functions
getAllQuestIds
viewfunction getAllQuestIds() view returns (bytes32[])
getQuest
viewfunction getQuest(bytes32 _questId) view returns (tuple)
hasClaimedReward
viewfunction hasClaimedReward(bytes32, address) view returns (bool)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
questIds
viewfunction questIds(uint256) view returns (bytes32)
quests
viewfunction quests(bytes32) view returns (bytes32 id, address creator, address escrowAccount, address tokenAddress, uint256 amount, uint256 deadline, bool isActive, bool isWithdrawn, uint256 totalWinners, uint256 totalRewardDistributed, uint256 maxWinners)
supportedTokens
viewfunction supportedTokens(address) view returns (bool)
addSupportedToken
nonpayablefunction addSupportedToken(address _token)
cancelQuest
nonpayablefunction cancelQuest(bytes32 _questId)
createQuest
nonpayablefunction createQuest(address _token, uint256 _amount, uint256 _deadline, uint256 _maxWinners) returns (bytes32)
pause
nonpayablefunction pause()
removeSupportedToken
nonpayablefunction removeSupportedToken(address _token)
renounceOwnership
nonpayablefunction renounceOwnership()
sendReward
nonpayablefunction sendReward(bytes32 _questId, address _winner, uint256 _amount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateQuestStatus
nonpayablefunction updateQuestStatus(bytes32 _questId, bool _newStatus)
withdraw
nonpayablefunction withdraw(bytes32 _questId)
withdrawAllETH
nonpayablefunction withdrawAllETH()
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
QuestCancelled
event QuestCancelled(bytes32 indexed id)
QuestCreated
event QuestCreated(bytes32 indexed id, address indexed creator, address indexed token, uint256 amount, address escrowAccount, uint256 deadline, uint256 maxWinners)
QuestStatusUpdated
event QuestStatusUpdated(bytes32 indexed id, bool isActive)
QuestWithdrawn
event QuestWithdrawn(bytes32 indexed id, address to, uint256 amount)
RewardSent
event RewardSent(bytes32 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
0x608060405234801561001057600080fd5b506040516138cf3803806138cf833981810160405281019061003291906102ff565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061033b565b60405180910390fd5b6100b4816101d860201b60201c565b5060018081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361012b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610122906103b3565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fd86c88b4a367d9b81a6e00c9d3f7d01657bffef358fa8968c91c045ae99f0d5260016040516101ca91906103ee565b60405180910390a250610409565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102cc826102a1565b9050919050565b6102dc816102c1565b81146102e757600080fd5b50565b6000815190506102f9816102d3565b92915050565b6000602082840312156103155761031461029c565b5b6000610323848285016102ea565b91505092915050565b610335816102c1565b82525050565b6000602082019050610350600083018461032c565b92915050565b600082825260208201905092915050565b7f496e76616c696420555344432061646472657373000000000000000000000000600082015250565b600061039d601483610356565b91506103a882610367565b602082019050919050565b600060208201905081810360008301526103cc81610390565b9050919050565b60008115159050919050565b6103e8816103d3565b82525050565b600060208201905061040360008301846103df565b92915050565b6134b7806104186000396000f3fe6080604052600436106101235760003560e01c8063715018a6116100a05780638e19899e116100645780638e19899e146103e557806390386bbf1461040e578063a585e56114610425578063c01745421461044e578063f2fde38b146104775761012a565b8063715018a614610326578063763191901461033d5780638456cb591461036657806384cbdb881461037d5780638da5cb5b146103ba5761012a565b8063487bf905116100e7578063487bf905146102255780635c975abb1461026c578063649cb5e21461029757806368c4ac26146102c05780636d69fcaf146102fd5761012a565b80630b8dd3cd1461012c5780631050f7ae146101575780631b569fb3146101945780633f4ba83a146101d157806347d75f39146101e85761012a565b3661012a57005b005b34801561013857600080fd5b506101416104a0565b60405161014e9190612426565b60405180910390f35b34801561016357600080fd5b5061017e600480360381019061017991906124e1565b6104f8565b60405161018b9190612557565b60405180910390f35b3480156101a057600080fd5b506101bb60048036038101906101b6919061259e565b610b68565b6040516101c891906125f9565b60405180910390f35b3480156101dd57600080fd5b506101e6610b97565b005b3480156101f457600080fd5b5061020f600480360381019061020a9190612614565b610ba9565b60405161021c919061274f565b60405180910390f35b34801561023157600080fd5b5061024c60048036038101906102479190612614565b610d4b565b6040516102639b9a99989796959493929190612789565b60405180910390f35b34801561027857600080fd5b50610281610e1f565b60405161028e91906125f9565b60405180910390f35b3480156102a357600080fd5b506102be60048036038101906102b99190612860565b610e35565b005b3480156102cc57600080fd5b506102e760048036038101906102e291906128a0565b610f4e565b6040516102f491906125f9565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f91906128a0565b610f6e565b005b34801561033257600080fd5b5061033b61108f565b005b34801561034957600080fd5b50610364600480360381019061035f91906128a0565b6110a3565b005b34801561037257600080fd5b5061037b611155565b005b34801561038957600080fd5b506103a4600480360381019061039f91906128cd565b611167565b6040516103b19190612557565b60405180910390f35b3480156103c657600080fd5b506103cf61118b565b6040516103dc91906128fa565b60405180910390f35b3480156103f157600080fd5b5061040c60048036038101906104079190612614565b6111b4565b005b34801561041a57600080fd5b5061042361160c565b005b34801561043157600080fd5b5061044c60048036038101906104479190612915565b611723565b005b34801561045a57600080fd5b5061047560048036038101906104709190612614565b611bc3565b005b34801561048357600080fd5b5061049e600480360381019061049991906128a0565b611f4d565b005b606060048054806020026020016040519081016040528092919081815260200182805480156104ee57602002820191906000526020600020905b8154815260200190600101908083116104da575b5050505050905090565b6000610502611fd3565b61050a612014565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058d906129c5565b60405180910390fd5b600084116105d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d090612a31565b60405180910390fd5b42831161061b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061290612a9d565b60405180910390fd5b6000821161065e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065590612b09565b60405180910390fd5b60008573ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161069b929190612b29565b602060405180830381865afa1580156106b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106dc9190612b67565b905084811015610721576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071890612be0565b60405180910390fd5b60008673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330896040518463ffffffff1660e01b815260040161076093929190612c00565b6020604051808303816000875af115801561077f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a39190612c4c565b9050806107e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dc90612cc5565b60405180910390fd5b60003342898930604051602001610800959493929190612d4e565b604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b490612df9565b60405180910390fd5b6040518061016001604052808281526020013373ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff168152602001888152602001878152602001600115158152602001600015158152602001600081526020016000815260200186815250600260008381526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555060e08201518160060160016101000a81548160ff02191690831515021790555061010082015181600701556101208201518160080155610140820151816009015590505060048190806001815401808255809150506001900390600052602060002001600090919091909150558773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16827f3d5225a249b34fa01f5cbacd4d4a2af3f606dc770f166f53084dcedea632b53b8a308b8b604051610b4a9493929190612e19565b60405180910390a4809350505050610b6061205a565b949350505050565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b610b9f612063565b610ba76120ea565b565b610bb16122bb565b6002600083815260200190815260200160002060405180610160016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160048201548152602001600582015481526020016006820160009054906101000a900460ff161515151581526020016006820160019054906101000a900460ff1615151515815260200160078201548152602001600882015481526020016009820154815250509050919050565b60026020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040154908060050154908060060160009054906101000a900460ff16908060060160019054906101000a900460ff1690806007015490806008015490806009015490508b565b60008060149054906101000a900460ff16905090565b610e3d612063565b81600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eda90612eaa565b60405180910390fd5b816002600085815260200190815260200160002060060160006101000a81548160ff021916908315150217905550827f2de0935a4b167137b7d60f1ecde73679cc8011534e72e1bd88e067df3961d12583604051610f4191906125f9565b60405180910390a2505050565b60056020528060005260406000206000915054906101000a900460ff1681565b610f76612063565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc90612f16565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fd86c88b4a367d9b81a6e00c9d3f7d01657bffef358fa8968c91c045ae99f0d52600160405161108491906125f9565b60405180910390a250565b611097612063565b6110a1600061214c565b565b6110ab612063565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fd86c88b4a367d9b81a6e00c9d3f7d01657bffef358fa8968c91c045ae99f0d52600060405161114a91906125f9565b60405180910390a250565b61115d612063565b611165612210565b565b6004818154811061117757600080fd5b906000526020600020016000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6111bc612063565b80600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125990612eaa565b60405180910390fd5b816002600082815260200190815260200160002060060160009054906101000a900460ff166112c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bd90612f82565b60405180910390fd5b6112ce611fd3565b6112d6612014565b60006002600085815260200190815260200160002090508060050154421015611334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132b90612fee565b60405180910390fd5b8060060160019054906101000a900460ff1615611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d9061305a565b60405180910390fd5b60008160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113e591906128fa565b602060405180830381865afa158015611402573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114269190612b67565b9050816004015481101561146f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611466906130ec565b60405180910390fd5b60008260060160006101000a81548160ff02191690831515021790555060018260060160016101000a81548160ff02191690831515021790555060008260030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114f361118b565b85600401546040518363ffffffff1660e01b815260040161151592919061310c565b6020604051808303816000875af1158015611534573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115589190612c4c565b90508061159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190612cc5565b60405180910390fd5b857f80a6928ae154188bf6a52dd32079586ae5fe2b1d6e407ce192666f6b91f322778460020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685600401546040516115f492919061310c565b60405180910390a250505061160761205a565b505050565b611614612063565b61161c612014565b600047905060008111611664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165b90613181565b60405180910390fd5b600061166e61118b565b73ffffffffffffffffffffffffffffffffffffffff1682604051611691906131d2565b60006040518083038185875af1925050503d80600081146116ce576040519150601f19603f3d011682016040523d82523d6000602084013e6116d3565b606091505b5050905080611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e90613233565b60405180910390fd5b505061172161205a565b565b61172b612063565b82600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890612eaa565b60405180910390fd5b836002600082815260200190815260200160002060060160009054906101000a900460ff16611835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182c90612f82565b60405180910390fd5b61183d611fd3565b611845612014565b60006002600087815260200190815260200160002090506003600087815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f19061329f565b60405180910390fd5b6000841161193d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119349061330b565b60405180910390fd5b8060040154848260080154611952919061335a565b1115611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a906133da565b60405180910390fd5b80600901548160070154106119dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d490613446565b60405180910390fd5b60016003600088815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555083816008016000828254611a5a919061335a565b925050819055506001816007016000828254611a76919061335a565b9250508190555060008160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87876040518363ffffffff1660e01b8152600401611ade92919061310c565b6020604051808303816000875af1158015611afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b219190612c4c565b905080611b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5a90612cc5565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff16877f75f84c19869aa8667efce6c462a3b08b5a8a127d61725b4c402e944cf4f9b65687604051611baa9190613466565b60405180910390a35050611bbc61205a565b5050505050565b611bcb612063565b80600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6890612eaa565b60405180910390fd5b816002600082815260200190815260200160002060060160009054906101000a900460ff16611cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccc90612f82565b60405180910390fd5b611cdd611fd3565b611ce5612014565b600060026000858152602001908152602001600020905060008160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611d5b91906128fa565b602060405180830381865afa158015611d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9c9190612b67565b90508160040154811015611de5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddc906130ec565b60405180910390fd5b60008260060160006101000a81548160ff02191690831515021790555060008260030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685600401546040518363ffffffff1660e01b8152600401611e8b92919061310c565b6020604051808303816000875af1158015611eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ece9190612c4c565b905080611f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0790612cc5565b60405180910390fd5b857ffb58c251ad99d41e71f6e170e6c7f4e2acbbd6bb1ae9e231450e45e72172c44160405160405180910390a2505050611f4861205a565b505050565b611f55612063565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fc75760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611fbe91906128fa565b60405180910390fd5b611fd08161214c565b50565b611fdb610e1f565b15612012576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600260015403612050576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b60018081905550565b61206b612273565b73ffffffffffffffffffffffffffffffffffffffff1661208961118b565b73ffffffffffffffffffffffffffffffffffffffff16146120e8576120ac612273565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016120df91906128fa565b60405180910390fd5b565b6120f261227b565b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612135612273565b60405161214291906128fa565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612218611fd3565b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861225c612273565b60405161226991906128fa565b60405180910390a1565b600033905090565b612283610e1f565b6122b9576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60405180610160016040528060008019168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000151581526020016000151581526020016000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b61239d8161238a565b82525050565b60006123af8383612394565b60208301905092915050565b6000602082019050919050565b60006123d38261235e565b6123dd8185612369565b93506123e88361237a565b8060005b8381101561241957815161240088826123a3565b975061240b836123bb565b9250506001810190506123ec565b5085935050505092915050565b6000602082019050818103600083015261244081846123c8565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124788261244d565b9050919050565b6124888161246d565b811461249357600080fd5b50565b6000813590506124a58161247f565b92915050565b6000819050919050565b6124be816124ab565b81146124c957600080fd5b50565b6000813590506124db816124b5565b92915050565b600080600080608085870312156124fb576124fa612448565b5b600061250987828801612496565b945050602061251a878288016124cc565b935050604061252b878288016124cc565b925050606061253c878288016124cc565b91505092959194509250565b6125518161238a565b82525050565b600060208201905061256c6000830184612548565b92915050565b61257b8161238a565b811461258657600080fd5b50565b60008135905061259881612572565b92915050565b600080604083850312156125b5576125b4612448565b5b60006125c385828601612589565b92505060206125d485828601612496565b9150509250929050565b60008115159050919050565b6125f3816125de565b82525050565b600060208201905061260e60008301846125ea565b92915050565b60006020828403121561262a57612629612448565b5b600061263884828501612589565b91505092915050565b61264a8161246d565b82525050565b612659816124ab565b82525050565b612668816125de565b82525050565b610160820160008201516126856000850182612394565b5060208201516126986020850182612641565b5060408201516126ab6040850182612641565b5060608201516126be6060850182612641565b5060808201516126d16080850182612650565b5060a08201516126e460a0850182612650565b5060c08201516126f760c085018261265f565b5060e082015161270a60e085018261265f565b5061010082015161271f610100850182612650565b50610120820151612734610120850182612650565b50610140820151612749610140850182612650565b50505050565b600061016082019050612765600083018461266e565b92915050565b6127748161246d565b82525050565b612783816124ab565b82525050565b60006101608201905061279f600083018e612548565b6127ac602083018d61276b565b6127b9604083018c61276b565b6127c6606083018b61276b565b6127d3608083018a61277a565b6127e060a083018961277a565b6127ed60c08301886125ea565b6127fa60e08301876125ea565b61280861010083018661277a565b61281661012083018561277a565b61282461014083018461277a565b9c9b505050505050505050505050565b61283d816125de565b811461284857600080fd5b50565b60008135905061285a81612834565b92915050565b6000806040838503121561287757612876612448565b5b600061288585828601612589565b92505060206128968582860161284b565b9150509250929050565b6000602082840312156128b6576128b5612448565b5b60006128c484828501612496565b91505092915050565b6000602082840312156128e3576128e2612448565b5b60006128f1848285016124cc565b91505092915050565b600060208201905061290f600083018461276b565b92915050565b60008060006060848603121561292e5761292d612448565b5b600061293c86828701612589565b935050602061294d86828701612496565b925050604061295e868287016124cc565b9150509250925092565b600082825260208201905092915050565b7f546f6b656e206e6f7420737570706f7274656400000000000000000000000000600082015250565b60006129af601383612968565b91506129ba82612979565b602082019050919050565b600060208201905081810360008301526129de816129a2565b9050919050565b7f416d6f756e74206d757374206265203e20300000000000000000000000000000600082015250565b6000612a1b601283612968565b9150612a26826129e5565b602082019050919050565b60006020820190508181036000830152612a4a81612a0e565b9050919050565b7f446561646c696e65206d75737420626520696e20667574757265000000000000600082015250565b6000612a87601a83612968565b9150612a9282612a51565b602082019050919050565b60006020820190508181036000830152612ab681612a7a565b9050919050565b7f4d61782077696e6e657273206d757374206265203e2030000000000000000000600082015250565b6000612af3601783612968565b9150612afe82612abd565b602082019050919050565b60006020820190508181036000830152612b2281612ae6565b9050919050565b6000604082019050612b3e600083018561276b565b612b4b602083018461276b565b9392505050565b600081519050612b61816124b5565b92915050565b600060208284031215612b7d57612b7c612448565b5b6000612b8b84828501612b52565b91505092915050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b6000612bca601683612968565b9150612bd582612b94565b602082019050919050565b60006020820190508181036000830152612bf981612bbd565b9050919050565b6000606082019050612c15600083018661276b565b612c22602083018561276b565b612c2f604083018461277a565b949350505050565b600081519050612c4681612834565b92915050565b600060208284031215612c6257612c61612448565b5b6000612c7084828501612c37565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000612caf601583612968565b9150612cba82612c79565b602082019050919050565b60006020820190508181036000830152612cde81612ca2565b9050919050565b60008160601b9050919050565b6000612cfd82612ce5565b9050919050565b6000612d0f82612cf2565b9050919050565b612d27612d228261246d565b612d04565b82525050565b6000819050919050565b612d48612d43826124ab565b612d2d565b82525050565b6000612d5a8288612d16565b601482019150612d6a8287612d37565b602082019150612d7a8286612d16565b601482019150612d8a8285612d37565b602082019150612d9a8284612d16565b6014820191508190509695505050505050565b7f517565737420616c726561647920657869737473000000000000000000000000600082015250565b6000612de3601483612968565b9150612dee82612dad565b602082019050919050565b60006020820190508181036000830152612e1281612dd6565b9050919050565b6000608082019050612e2e600083018761277a565b612e3b602083018661276b565b612e48604083018561277a565b612e55606083018461277a565b95945050505050565b7f517565737420646f6573206e6f74206578697374000000000000000000000000600082015250565b6000612e94601483612968565b9150612e9f82612e5e565b602082019050919050565b60006020820190508181036000830152612ec381612e87565b9050919050565b7f496e76616c696420746f6b656e00000000000000000000000000000000000000600082015250565b6000612f00600d83612968565b9150612f0b82612eca565b602082019050919050565b60006020820190508181036000830152612f2f81612ef3565b9050919050565b7f5175657374206973206e6f742061637469766500000000000000000000000000600082015250565b6000612f6c601383612968565b9150612f7782612f36565b602082019050919050565b60006020820190508181036000830152612f9b81612f5f565b9050919050565b7f446561646c696e65206e6f742079657420706173736564000000000000000000600082015250565b6000612fd8601783612968565b9150612fe382612fa2565b602082019050919050565b6000602082019050818103600083015261300781612fcb565b9050919050565b7f416c72656164792077697468647261776e000000000000000000000000000000600082015250565b6000613044601183612968565b915061304f8261300e565b602082019050919050565b6000602082019050818103600083015261307381613037565b9050919050565b7f496e73756666696369656e7420636f6e747261637420746f6b656e2062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b60006130d6602383612968565b91506130e18261307a565b604082019050919050565b60006020820190508181036000830152613105816130c9565b9050919050565b6000604082019050613121600083018561276b565b61312e602083018461277a565b9392505050565b7f4e6f2045544820746f2077697468647261770000000000000000000000000000600082015250565b600061316b601283612968565b915061317682613135565b602082019050919050565b6000602082019050818103600083015261319a8161315e565b9050919050565b600081905092915050565b50565b60006131bc6000836131a1565b91506131c7826131ac565b600082019050919050565b60006131dd826131af565b9150819050919050565b7f455448207472616e73666572206661696c656400000000000000000000000000600082015250565b600061321d601383612968565b9150613228826131e7565b602082019050919050565b6000602082019050818103600083015261324c81613210565b9050919050565b7f416c726561647920726577617264656400000000000000000000000000000000600082015250565b6000613289601083612968565b915061329482613253565b602082019050919050565b600060208201905081810360008301526132b88161327c565b9050919050565b7f526577617264206d757374206265203e20300000000000000000000000000000600082015250565b60006132f5601283612968565b9150613300826132bf565b602082019050919050565b60006020820190508181036000830152613324816132e8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613365826124ab565b9150613370836124ab565b92508282019050808211156133885761338761332b565b5b92915050565b7f496e73756666696369656e74207265776172642062616c616e63650000000000600082015250565b60006133c4601b83612968565b91506133cf8261338e565b602082019050919050565b600060208201905081810360008301526133f3816133b7565b9050919050565b7f4d61782077696e6e657273206c696d6974207265616368656400000000000000600082015250565b6000613430601983612968565b915061343b826133fa565b602082019050919050565b6000602082019050818103600083015261345f81613423565b9050919050565b600060208201905061347b600083018461277a565b9291505056fea26469706673582212208eb47a209620daae670dc068f06c078ff6ab4ac64800cd4fa125454b1def3edd64736f6c634300081a0033000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913