33.2k txs
35k calls
constructor
constructor(address initialUser, address _owner)
functions
calculateTotalValueToClaim
viewfunction calculateTotalValueToClaim(address user, uint256 donationIndex) view returns (uint256 balance)
getDonationsBelowCap
viewfunction getDonationsBelowCap(address user) view returns (tuple[])
getLastUnclaimed
viewfunction getLastUnclaimed(address user) view returns (uint256)
getTotalInvestment
viewfunction getTotalInvestment(address owner) view returns (uint256[20] investments)
getUser
viewfunction getUser(address _user, uint256 index) view returns (tuple)
limitPeriod
viewfunction limitPeriod() view returns (uint24)
limitPeriodMaxClaim
viewfunction limitPeriodMaxClaim() view returns (uint24)
maxClaim
viewfunction maxClaim() view returns (uint256)
nonceTotalDonations
viewfunction nonceTotalDonations(address) view returns (uint256)
oldContract
viewfunction oldContract() view returns (address)
owner
viewfunction owner() view returns (address)
poolPayments
viewfunction poolPayments() view returns (uint256 blockTime, uint256 blockTime2Video)
timeUntilNextWithdrawal
viewfunction timeUntilNextWithdrawal(address user, uint256 index) view returns (uint256)
toOldContract
viewfunction toOldContract() view returns (bool)
totalDonated
viewfunction totalDonated(address) view returns (uint256)
uniswapOracle
viewfunction uniswapOracle() view returns (address)
userAidMut
viewfunction userAidMut() view returns (address)
addVideo
nonpayablefunction addVideo(address user, uint256 index)
changeContractAddress
nonpayablefunction changeContractAddress(address _newAddress)
changeMaxClaim
nonpayablefunction changeMaxClaim(uint256 newValue)
claimDonation
nonpayablefunction claimDonation(uint256 index)
donate
nonpayablefunction donate(uint128 amount)
removeVideo
nonpayablefunction removeVideo(address user, uint256 index)
renounceOwnership
nonpayablefunction renounceOwnership()
setToOldContract
nonpayablefunction setToOldContract(bool flag)
setUniswapOracle
nonpayablefunction setUniswapOracle(address _address)
setWalletBot
nonpayablefunction setWalletBot(address _address)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
ChangedBot
event ChangedBot(address indexed user)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
UserClaimed
event UserClaimed(address indexed user, uint256 amount)
UserDonated
event UserDonated(address indexed user, uint256 amount)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
FailedInnerCall
error FailedInnerCall()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60c0604052734e18321254f88b2ade21884ca33ca2c129b4f6e6600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555067016345785d8a0000600355604051806060016040528060405180610280016040528061032061ffff16815260200161019061ffff16815260200160c861ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff1681525081526020016109c48152602001610dac81525060046000820151816000019060146200018692919062000454565b5060208201518160020155604082015181600301555050735dddf31ba5e84170981a14f2aca6654878eb7568600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073362cc2965e374365d348eeb0a3ad296cb5ee19ec600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200025457600080fd5b50604051620063693803806200636983398181016040528101906200027a919062000581565b806001600081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620002f85760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620002ef9190620005d9565b60405180910390fd5b62000309816200038e60201b60201c565b5073e4feab21b42919c5c960ed2b4bdffc521e26881f73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505050620005f6565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b826014600f01601090048101928215620004e55791602002820160005b83821115620004b357835183826101000a81548161ffff021916908361ffff160217905550926020019260020160208160010104928301926001030262000471565b8015620004e35782816101000a81549061ffff0219169055600201602081600101049283019260010302620004b3565b505b509050620004f49190620004f8565b5090565b5b8082111562000513576000816000905550600101620004f9565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000549826200051c565b9050919050565b6200055b816200053c565b81146200056757600080fd5b50565b6000815190506200057b8162000550565b92915050565b600080604083850312156200059b576200059a62000517565b5b6000620005ab858286016200056a565b9250506020620005be858286016200056a565b9150509250929050565b620005d3816200053c565b82525050565b6000602082019050620005f06000830184620005c8565b92915050565b60805160a051615cd66200069360003960008181610d5f01528181610e0c01528181611fa50152818161203f0152818161208a01528181613ab101528181613d3f01528181613f360152818161427d0152818161450601526146f90152600081816107b00152818161088c01528181611122015281816114a3015281816138ec015281816139dd015281816140bc01526141ab0152615cd66000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806385a30c33116100f9578063d4938db311610097578063ee54851411610071578063ee548514146104e0578063f2a6943114610510578063f2fde38b1461052e578063ff2bf64f1461054a576101c4565b8063d4938db314610488578063e0c42e72146104a6578063e8657147146104c2576101c4565b80638f4e46dd116100d35780638f4e46dd146103dc578063925dc4c21461040c578063affb2c841461043c578063c8dc38bc14610458576101c4565b806385a30c3314610386578063864863a6146103a25780638da5cb5b146103be576101c4565b806330503c4e116101665780636481bdaf116101405780636481bdaf14610323578063715018a61461034157806375ae557a1461034b5780638489b7801461036a576101c4565b806330503c4e146102a5578063491dc36a146102c35780635e5f5af5146102f3576101c4565b8063161a39af116101a2578063161a39af146102355780631a9761f4146102515780631e1cdf591461026d5780632f07ad8014610289576101c4565b80630f3a1d47146101c9578063120c6c5b146101f9578063132821f314610217575b600080fd5b6101e360048036038101906101de9190614cb1565b61057a565b6040516101f09190614cf7565b60405180910390f35b610201610592565b60405161020e9190614d71565b60405180910390f35b61021f6105b8565b60405161022c9190614da7565b60405180910390f35b61024f600480360381019061024a9190614dee565b6105cb565b005b61026b60048036038101906102669190614cb1565b6106cb565b005b61028760048036038101906102829190614cb1565b610717565b005b6102a3600480360381019061029e9190614e76565b6107a6565b005b6102ad610ead565b6040516102ba9190614eb2565b60405180910390f35b6102dd60048036038101906102d89190614cb1565b610ed3565b6040516102ea9190614cf7565b60405180910390f35b61030d60048036038101906103089190614cb1565b611096565b60405161031a9190614f78565b60405180910390f35b61032b611120565b6040516103389190614fb5565b60405180910390f35b610349611144565b005b610353611158565b604051610361929190614fd0565b60405180910390f35b610384600480360381019061037f9190615025565b61116a565b005b6103a0600480360381019061039b9190614cb1565b611217565b005b6103bc60048036038101906103b79190614dee565b611263565b005b6103c6611363565b6040516103d39190614eb2565b60405180910390f35b6103f660048036038101906103f19190614dee565b61138d565b6040516104039190614cf7565b60405180910390f35b61042660048036038101906104219190614cb1565b611481565b6040516104339190614cf7565b60405180910390f35b61045660048036038101906104519190615052565b611499565b005b610472600480360381019061046d9190614cb1565b612189565b60405161047f91906151cb565b60405180910390f35b6104906124db565b60405161049d9190614cf7565b60405180910390f35b6104c060048036038101906104bb9190615052565b6124e1565b005b6104ca612589565b6040516104d7919061520b565b60405180910390f35b6104fa60048036038101906104f59190614dee565b612590565b6040516105079190614cf7565b60405180910390f35b610518612752565b604051610525919061520b565b60405180910390f35b61054860048036038101906105439190614cb1565b612759565b005b610564600480360381019061055f9190614dee565b6127df565b60405161057191906152b4565b60405180910390f35b600b6020528060005260406000206000915090505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900460ff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461065b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106529061532c565b60405180910390fd5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060060160006101000a81548160ff0219169083151502179055505050565b6106d36128a7565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61071f6128a7565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f37386e8982a31575c6c2c1f575f367bceab1f4e562b779812030f2a3f398b64f60405160405180910390a250565b6107ae61292e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663fe575a87336040518263ffffffff1660e01b81526004016108079190614eb2565b602060405180830381865afa158015610824573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108489190615361565b15610888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087f906153da565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636f77926b336040518263ffffffff1660e01b81526004016108e39190614eb2565b6102a060405180830381865afa158015610901573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109259190615688565b9050806000015161096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290615702565b60405180910390fd5b600064e8d4a51000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166372c6289b856040518263ffffffff1660e01b81526004016109ce9190615731565b602060405180830381865afa1580156109eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0f9190615761565b610a1991906157ec565b9050629896808110158015610a3357506402540be4008111155b610a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a699061588f565b60405180910390fd5b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154610abe906158af565b9190508190555080600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b1491906158f7565b925050819055506000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000018190555042600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206002018190555042600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020600301819055506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060060160006101000a81548160ff021916908315150217905550610cdc33610ed3565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d298383612974565b610d45846fffffffffffffffffffffffffffffffff1684612ebe565b610da43330866fffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16614797909392919063ffffffff16565b600e60009054906101000a900460ff1615610e5157610e50600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064601487610dee919061592b565b610df89190615968565b6fffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166148199092919063ffffffff16565b5b3373ffffffffffffffffffffffffffffffffffffffff167fe542c32803c768a7f90212ed7949c154ed8a82e949bb2112011a8d935dd0737f85604051610e9791906159ca565b60405180910390a2505050610eaa614898565b50565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403610f24576001610f65565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020545b905060008190505b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811161108a57600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082815260200190815260200160002060010154600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000154600361106791906159e5565b1115611077578092505050611091565b8080611082906158af565b915050610f6d565b5060009150505b919050565b61109e614be2565b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020601480602002604051908101604052809291908260148015611114576020028201915b815481526020019060010190808311611100575b50505050509050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61114c6128a7565b61115660006148a2565b565b60048060020154908060030154905082565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f19061532c565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b61121f6128a7565b80600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ea9061532c565b60405180910390fd5b6001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060060160006101000a81548160ff0219169083151502179055505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060060160009054906101000a900460ff161561140357600460030154905061140c565b60046002015490505b61271081600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008681526020019081526020016000206000015461146e91906159e5565b61147891906157ec565b91505092915050565b600a6020528060005260406000206000915090505481565b6114a161292e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663fe575a87336040518263ffffffff1660e01b81526004016114fa9190614eb2565b602060405180830381865afa158015611517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153b9190615361565b1561157b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611572906153da565b60405180910390fd5b60006003600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020600001546115dd91906159e5565b905080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000206001015410611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b90615a73565b60405180910390fd5b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020600401541115611a1557600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020600501544211611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d90615adf565b60405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020600401549050600354811015611820576000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020600401819055505b6003600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206000015461188091906159e5565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060010154826118df91906158f7565b1115611a1057600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020600101546003600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008681526020019081526020016000206000015461199991906159e5565b6119a39190615aff565b905080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206004016000828254611a089190615aff565b925050819055505b611c3d565b611a1f338461138d565b9050600062278d0062ffffff16600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008681526020019081526020016000206003015442611a8b9190615aff565b611a9591906157ec565b905060008111611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad190615adf565b60405180910390fd5b600c811115611ae857600c90505b8082611af491906159e5565b9150600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206001015483611b559190615aff565b821115611bbe57600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206001015483611bbb9190615aff565b91505b8062278d0062ffffff16611bd291906159e5565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008681526020019081526020016000206003016000828254611c3491906158f7565b92505081905550505b6003548110611d1c5760035481611c549190615aff565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020600401819055506201518062ffffff1642611cbf91906158f7565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206005018190555060035490505b8181600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002060010154611d7c91906158f7565b1115611e4057600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000206001015482611de19190615aff565b905081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060010181905550611eab565b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206001016000828254611ea391906158f7565b925050819055505b600064e8d4a51000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166372c6289b670de0b6b3a76400006040518263ffffffff1660e01b8152600401611f169190615b6e565b602060405180830381865afa158015611f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f579190615761565b611f6191906157ec565b9050600081670de0b6b3a764000084611f7a91906159e5565b611f8491906157ec565b9050611fe9336064606284611f9991906159e5565b611fa391906157ec565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166148199092919063ffffffff16565b600e60009054906101000a900460ff161561208857612083600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460028461203391906159e5565b61203d91906157ec565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166148199092919063ffffffff16565b61212c565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166342966c6860646002846120d391906159e5565b6120dd91906157ec565b6040518263ffffffff1660e01b81526004016120f99190614cf7565b600060405180830381600087803b15801561211357600080fd5b505af1158015612127573d6000803e3d6000fd5b505050505b3373ffffffffffffffffffffffffffffffffffffffff167f5329b89678b0f095cae2abe10b88ad57329871ee9296ae8f358a46b9fa0ff328826040516121729190614cf7565b60405180910390a250505050612186614898565b50565b60606000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600080600190505b8281116122ba576003600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000015461223e91906159e5565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206001015410156122a75781806122a3906158af565b9250505b80806122b2906158af565b9150506121d7565b5060008167ffffffffffffffff8111156122d7576122d6615410565b5b60405190808252806020026020018201604052801561231057816020015b6122fd614c05565b8152602001906001900390816122f55790505b509050600080600190505b8481116124ce576003600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000015461238291906159e5565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206001015410156124bb57600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008281526020019081526020016000206040518060e00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820160009054906101000a900460ff1615151515815250508383815181106124a1576124a0615b89565b5b602002602001018190525081806124b7906158af565b9250505b80806124c6906158af565b91505061231b565b5081945050505050919050565b60035481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612571576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125689061532c565b60405180910390fd5b620f42408161258091906159e5565b60038190555050565b6201518081565b600080600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000206004015411156126b75742600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000206005015411156126ae5742600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020600501546126a79190615aff565b905061274c565b6000905061274c565b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060030154426127189190615aff565b905062278d0062ffffff16811015612746578062278d0062ffffff1661273e9190615aff565b91505061274c565b60009150505b92915050565b62278d0081565b6127616128a7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036127d35760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016127ca9190614eb2565b60405180910390fd5b6127dc816148a2565b50565b6127e7614c05565b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000206040518060e00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820160009054906101000a900460ff16151515158152505090508091505092915050565b6128af614968565b73ffffffffffffffffffffffffffffffffffffffff166128cd611363565b73ffffffffffffffffffffffffffffffffffffffff161461292c576128f0614968565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016129239190614eb2565b60405180910390fd5b565b60026000540361296a576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600081905550565b6000604051806102800160405280846020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001846040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001846060015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001846080015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460a0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460c0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460e0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184610100015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184610120015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184610140015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184610160015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184610180015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001846101a0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001846101c0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001846101e0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184610200015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184610220015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184610240015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184610260015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184610280015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250905060005b6014811015612eb757600073ffffffffffffffffffffffffffffffffffffffff16828260148110612dfe57612dfd615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1614612ea35782600d6000848460148110612e3657612e35615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208260148110612e8757612e86615b89565b5b016000828254612e9791906158f7565b92505081905550612eaa565b5050612eba565b8080600101915050612dca565b50505b5050565b6000604051806102800160405280836020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836060015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836080015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360a0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360c0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360e0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183610100015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183610120015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183610140015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183610160015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183610180015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836101a0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836101c0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836101e0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183610200015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183610220015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183610240015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183610260015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183610280015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525090506000604051806102800160405280600460000160006014811061333757613336615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff168152602001600460000160016014811061337657613375615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff16815260200160046000016002601481106133b5576133b4615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff16815260200160046000016003601481106133f4576133f3615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff168152602001600460000160046014811061343357613432615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff168152602001600460000160056014811061347257613471615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff16815260200160046000016006601481106134b1576134b0615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff16815260200160046000016007601481106134f0576134ef615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff168152602001600460000160086014811061352f5761352e615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff168152602001600460000160096014811061356e5761356d615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff1681526020016004600001600a601481106135ad576135ac615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff1681526020016004600001600b601481106135ec576135eb615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff1681526020016004600001600c6014811061362b5761362a615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff1681526020016004600001600d6014811061366a57613669615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff1681526020016004600001600e601481106136a9576136a8615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff1681526020016004600001600f601481106136e8576136e7615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff168152602001600460000160106014811061372757613726615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff168152602001600460000160116014811061376657613765615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff16815260200160046000016012601481106137a5576137a4615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff16815260200160046000016013601481106137e4576137e3615b89565b5b601091828204019190066002029054906101000a900461ffff1661ffff1661ffff168152509050600064e8d4a51000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166372c6289b670de0b6b3a76400006040518263ffffffff1660e01b81526004016138769190615b6e565b602060405180830381865afa158015613893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138b79190615761565b6138c191906157ec565b90506138e4836000601481106138da576138d9615b89565b5b6020020151614970565b8061399d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633af32abf8460006014811061393a57613939615b89565b5b60200201516040518263ffffffff1660e01b815260040161395b9190614eb2565b602060405180830381865afa158015613978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061399c9190615361565b5b15613fbf576000612710836000601481106139bb576139ba615b89565b5b602002015161ffff16876139cf91906159e5565b6139d991906157ec565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633af32abf85600060148110613a2b57613a2a615b89565b5b60200201516040518263ffffffff1660e01b8152600401613a4c9190614eb2565b602060405180830381865afa158015613a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a8d9190615361565b15613afa57613af584600060148110613aa957613aa8615b89565b5b6020020151827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166148199092919063ffffffff16565b613fbd565b6000670de0b6b3a76400008383613b1191906159e5565b613b1b91906157ec565b90506000613b4086600060148110613b3657613b35615b89565b5b6020020151610ed3565b90505b600a600087600060148110613b5b57613b5a615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111613fba576000810315613fba576009600087600060148110613bc257613bc1615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008281526020019081526020016000206001015482613c2191906158f7565b60036009600089600060148110613c3b57613c3a615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060000154613c9991906159e5565b10613d8857816009600088600060148110613cb757613cb6615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206001016000828254613d1991906158f7565b92505081905550613d8386600060148110613d3757613d36615b89565b5b6020020151847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166148199092919063ffffffff16565b613fba565b60006009600088600060148110613da257613da1615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020600101546003600960008a600060148110613e1057613e0f615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060000154613e6e91906159e5565b613e789190615aff565b90506000838583613e8991906159e5565b613e9391906157ec565b905081600960008a600060148110613eae57613ead615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206001016000828254613f1091906158f7565b92505081905550613f7a88600060148110613f2e57613f2d615b89565b5b6020020151827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166148199092919063ffffffff16565b8184613f869190615aff565b93508085613f949190615aff565b945060008403613fa5575050613fba565b50508080613fb2906158af565b915050613b43565b50505b505b6000600190505b601481101561478f57600073ffffffffffffffffffffffffffffffffffffffff16848260148110613ffa57613ff9615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff16031561478f5761403b84826014811061403157614030615b89565b5b6020020151614970565b80156140b45750631dcd6500600d600086846014811061405e5761405d615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082601481106140af576140ae615b89565b5b015410155b8061416c57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633af32abf85836014811061410957614108615b89565b5b60200201516040518263ffffffff1660e01b815260040161412a9190614eb2565b602060405180830381865afa158015614147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416b9190615361565b5b1561478157600061271084836014811061418957614188615b89565b5b602002015161ffff168861419d91906159e5565b6141a791906157ec565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633af32abf8684601481106141f8576141f7615b89565b5b60200201516040518263ffffffff1660e01b81526004016142199190614eb2565b602060405180830381865afa158015614236573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061425a9190615361565b156142c7576142c185836014811061427557614274615b89565b5b6020020151827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166148199092919063ffffffff16565b50614782565b6000670de0b6b3a764000084836142de91906159e5565b6142e891906157ec565b9050600061430c87856014811061430257614301615b89565b5b6020020151610ed3565b90505b600a600088866014811061432657614325615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811161477d57600084031561477d576009600088866014811061438c5761438b615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082815260200190815260200160002060010154826143eb91906158f7565b6003600960008a886014811061440457614403615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000206000015461446291906159e5565b1061454f57816009600089876014811061447f5761447e615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060010160008282546144e191906158f7565b9250508190555061454a8785601481106144fe576144fd615b89565b5b6020020151847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166148199092919063ffffffff16565b61477d565b60006009600089876014811061456857614567615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020600101546003600960008b89601481106145d5576145d4615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206000015461463391906159e5565b61463d9190615aff565b9050600083858361464e91906159e5565b61465891906157ec565b905081600960008b896014811061467257614671615b89565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060010160008282546146d491906158f7565b9250508190555061473d8987601481106146f1576146f0615b89565b5b6020020151827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166148199092919063ffffffff16565b81846147499190615aff565b935080856147579190615aff565b94506000840361476857505061477d565b50508080614775906158af565b91505061430f565b5050505b5b8080600101915050613fc6565b505050505050565b614813848573ffffffffffffffffffffffffffffffffffffffff166323b872dd8686866040516024016147cc93929190615bb8565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050614994565b50505050565b614893838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb858560405160240161484c929190615bef565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050614994565b505050565b6001600081905550565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b60008061497c83610ed3565b1461498a576001905061498f565b600090505b919050565b60006149bf828473ffffffffffffffffffffffffffffffffffffffff16614a2b90919063ffffffff16565b905060008151141580156149e45750808060200190518101906149e29190615361565b155b15614a2657826040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401614a1d9190614eb2565b60405180910390fd5b505050565b6060614a3983836000614a41565b905092915050565b606081471015614a8857306040517fcd786059000000000000000000000000000000000000000000000000000000008152600401614a7f9190614eb2565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051614ab19190615c89565b60006040518083038185875af1925050503d8060008114614aee576040519150601f19603f3d011682016040523d82523d6000602084013e614af3565b606091505b5091509150614b03868383614b0e565b925050509392505050565b606082614b2357614b1e82614b9d565b614b95565b60008251148015614b4b575060008473ffffffffffffffffffffffffffffffffffffffff163b145b15614b8d57836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401614b849190614eb2565b60405180910390fd5b819050614b96565b5b9392505050565b600081511115614bb05780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806102800160405280601490602082028036833780820191505090505090565b6040518060e001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b6000604051905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000614c7e82614c53565b9050919050565b614c8e81614c73565b8114614c9957600080fd5b50565b600081359050614cab81614c85565b92915050565b600060208284031215614cc757614cc6614c4e565b5b6000614cd584828501614c9c565b91505092915050565b6000819050919050565b614cf181614cde565b82525050565b6000602082019050614d0c6000830184614ce8565b92915050565b6000819050919050565b6000614d37614d32614d2d84614c53565b614d12565b614c53565b9050919050565b6000614d4982614d1c565b9050919050565b6000614d5b82614d3e565b9050919050565b614d6b81614d50565b82525050565b6000602082019050614d866000830184614d62565b92915050565b60008115159050919050565b614da181614d8c565b82525050565b6000602082019050614dbc6000830184614d98565b92915050565b614dcb81614cde565b8114614dd657600080fd5b50565b600081359050614de881614dc2565b92915050565b60008060408385031215614e0557614e04614c4e565b5b6000614e1385828601614c9c565b9250506020614e2485828601614dd9565b9150509250929050565b60006fffffffffffffffffffffffffffffffff82169050919050565b614e5381614e2e565b8114614e5e57600080fd5b50565b600081359050614e7081614e4a565b92915050565b600060208284031215614e8c57614e8b614c4e565b5b6000614e9a84828501614e61565b91505092915050565b614eac81614c73565b82525050565b6000602082019050614ec76000830184614ea3565b92915050565b600060149050919050565b600081905092915050565b6000819050919050565b614ef681614cde565b82525050565b6000614f088383614eed565b60208301905092915050565b6000602082019050919050565b614f2a81614ecd565b614f348184614ed8565b9250614f3f82614ee3565b8060005b83811015614f70578151614f578782614efc565b9650614f6283614f14565b925050600181019050614f43565b505050505050565b600061028082019050614f8e6000830184614f21565b92915050565b6000614f9f82614d3e565b9050919050565b614faf81614f94565b82525050565b6000602082019050614fca6000830184614fa6565b92915050565b6000604082019050614fe56000830185614ce8565b614ff26020830184614ce8565b9392505050565b61500281614d8c565b811461500d57600080fd5b50565b60008135905061501f81614ff9565b92915050565b60006020828403121561503b5761503a614c4e565b5b600061504984828501615010565b91505092915050565b60006020828403121561506857615067614c4e565b5b600061507684828501614dd9565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6150b481614d8c565b82525050565b60e0820160008201516150d06000850182614eed565b5060208201516150e36020850182614eed565b5060408201516150f66040850182614eed565b5060608201516151096060850182614eed565b50608082015161511c6080850182614eed565b5060a082015161512f60a0850182614eed565b5060c082015161514260c08501826150ab565b50505050565b600061515483836150ba565b60e08301905092915050565b6000602082019050919050565b60006151788261507f565b615182818561508a565b935061518d8361509b565b8060005b838110156151be5781516151a58882615148565b97506151b083615160565b925050600181019050615191565b5085935050505092915050565b600060208201905081810360008301526151e5818461516d565b905092915050565b600062ffffff82169050919050565b615205816151ed565b82525050565b600060208201905061522060008301846151fc565b92915050565b60e08201600082015161523c6000850182614eed565b50602082015161524f6020850182614eed565b5060408201516152626040850182614eed565b5060608201516152756060850182614eed565b5060808201516152886080850182614eed565b5060a082015161529b60a0850182614eed565b5060c08201516152ae60c08501826150ab565b50505050565b600060e0820190506152c96000830184615226565b92915050565b600082825260208201905092915050565b7f4f6e6c7920626f742063616e2063616c6c20746869732066756e6374696f6e00600082015250565b6000615316601f836152cf565b9150615321826152e0565b602082019050919050565b6000602082019050818103600083015261534581615309565b9050919050565b60008151905061535b81614ff9565b92915050565b60006020828403121561537757615376614c4e565b5b60006153858482850161534c565b91505092915050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b60006153c4600b836152cf565b91506153cf8261538e565b602082019050919050565b600060208201905081810360008301526153f3816153b7565b9050919050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b615448826153ff565b810181811067ffffffffffffffff8211171561546757615466615410565b5b80604052505050565b600061547a614c44565b9050615486828261543f565b919050565b60008151905061549a81614c85565b92915050565b60006102a082840312156154b7576154b66153fa565b5b6154c26102a0615470565b905060006154d28482850161534c565b60008301525060206154e68482850161548b565b60208301525060406154fa8482850161548b565b604083015250606061550e8482850161548b565b60608301525060806155228482850161548b565b60808301525060a06155368482850161548b565b60a08301525060c061554a8482850161548b565b60c08301525060e061555e8482850161548b565b60e0830152506101006155738482850161548b565b610100830152506101206155898482850161548b565b6101208301525061014061559f8482850161548b565b610140830152506101606155b58482850161548b565b610160830152506101806155cb8482850161548b565b610180830152506101a06155e18482850161548b565b6101a0830152506101c06155f78482850161548b565b6101c0830152506101e061560d8482850161548b565b6101e0830152506102006156238482850161548b565b610200830152506102206156398482850161548b565b6102208301525061024061564f8482850161548b565b610240830152506102606156658482850161548b565b6102608301525061028061567b8482850161548b565b6102808301525092915050565b60006102a0828403121561569f5761569e614c4e565b5b60006156ad848285016154a0565b91505092915050565b7f556e726567697374657265642075736572000000000000000000000000000000600082015250565b60006156ec6011836152cf565b91506156f7826156b6565b602082019050919050565b6000602082019050818103600083015261571b816156df565b9050919050565b61572b81614e2e565b82525050565b60006020820190506157466000830184615722565b92915050565b60008151905061575b81614dc2565b92915050565b60006020828403121561577757615776614c4e565b5b60006157858482850161574c565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006157f782614cde565b915061580283614cde565b9250826158125761581161578e565b5b828204905092915050565b7f416d6f756e74206d757374206265206265747765656e20313020616e6420313060008201527f2c30303020646f6c6c6172730000000000000000000000000000000000000000602082015250565b6000615879602c836152cf565b91506158848261581d565b604082019050919050565b600060208201905081810360008301526158a88161586c565b9050919050565b60006158ba82614cde565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036158ec576158eb6157bd565b5b600182019050919050565b600061590282614cde565b915061590d83614cde565b9250828201905080821115615925576159246157bd565b5b92915050565b600061593682614e2e565b915061594183614e2e565b925082820261594f81614e2e565b9150808214615961576159606157bd565b5b5092915050565b600061597382614e2e565b915061597e83614e2e565b92508261598e5761598d61578e565b5b828204905092915050565b60006159b46159af6159aa84614e2e565b614d12565b614cde565b9050919050565b6159c481615999565b82525050565b60006020820190506159df60008301846159bb565b92915050565b60006159f082614cde565b91506159fb83614cde565b9250828202615a0981614cde565b91508282048414831517615a2057615a1f6157bd565b5b5092915050565b7f446f6e6174696f6e20616c726561647920636c61696d65640000000000000000600082015250565b6000615a5d6018836152cf565b9150615a6882615a27565b602082019050919050565b60006020820190508181036000830152615a8c81615a50565b9050919050565b7f546f6b656e7320617265207374696c6c206c6f636b6564000000000000000000600082015250565b6000615ac96017836152cf565b9150615ad482615a93565b602082019050919050565b60006020820190508181036000830152615af881615abc565b9050919050565b6000615b0a82614cde565b9150615b1583614cde565b9250828203905081811115615b2d57615b2c6157bd565b5b92915050565b6000819050919050565b6000615b58615b53615b4e84615b33565b614d12565b614e2e565b9050919050565b615b6881615b3d565b82525050565b6000602082019050615b836000830184615b5f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000606082019050615bcd6000830186614ea3565b615bda6020830185614ea3565b615be76040830184614ce8565b949350505050565b6000604082019050615c046000830185614ea3565b615c116020830184614ce8565b9392505050565b600081519050919050565b600081905092915050565b60005b83811015615c4c578082015181840152602081019050615c31565b60008484015250505050565b6000615c6382615c18565b615c6d8185615c23565b9350615c7d818560208601615c2e565b80840191505092915050565b6000615c958284615c58565b91508190509291505056fea26469706673582212206713f81e91c6447ad9a95991e706dde3457fe6f7fbcb1e59a9bf0927e88adf4064736f6c63430008180033000000000000000000000000c8860b8eba279e18ca64c47b256da7ee94f7be7300000000000000000000000014690441b74bab2e3f72844a3f355bf51a721b1f