6 txs
7 calls
constructor
constructor()
functions
divider
viewfunction divider() view returns (uint256)
getAllCampaigns
viewfunction getAllCampaigns() view returns (bytes4[])
getAllOpenCampaigns
viewfunction getAllOpenCampaigns() view returns (bytes4[])
getCampaignInfo
viewfunction getCampaignInfo(bytes4 campaignId) view returns (tuple)
getOpenCampaignInfo
viewfunction getOpenCampaignInfo(bytes4 campaignId) view returns (tuple)
getUserCampaigns
viewfunction getUserCampaigns(address userAddress) view returns (bytes4[])
getUserOpenCampaigns
viewfunction getUserOpenCampaigns(address userAddress) view returns (bytes4[])
owner
viewfunction owner() view returns (address)
platformFeesPercentage
viewfunction platformFeesPercentage() view returns (uint256)
acceptProjectCampaign
nonpayablefunction acceptProjectCampaign(bytes4 campaignId)
completeOpenCampaign
nonpayablefunction completeOpenCampaign(bytes4 campaignId, bool isFulfilled)
createNewCampaign
nonpayablefunction createNewCampaign(address selectedKol, uint256 offeringAmount, uint256 promotionEndsIn, uint256 offerEndsIn, address tokenAddress)
createOpenCampaign
nonpayablefunction createOpenCampaign(uint256 promotionEndsIn, uint256 poolAmount, address tokenAddress)
discardCampaign
nonpayablefunction discardCampaign(bytes4 campaignId)
fulfilProjectCampaign
nonpayablefunction fulfilProjectCampaign(bytes4 campaignId)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateCampaign
nonpayablefunction updateCampaign(bytes4 campaignId, address selectedKol, uint256 promotionEndsIn, uint256 offerEndsIn, uint256 newAmountOffered)
updateOpenCampaign
nonpayablefunction updateOpenCampaign(bytes4 campaignId, uint256 promotionEndsIn, uint256 poolAmount, uint8 newStatus)
updatePlatformFees
nonpayablefunction updatePlatformFees(uint256 newFees)
withdrawEth
nonpayablefunction withdrawEth()
withdrawToken
nonpayablefunction withdrawToken(address tokenAddress)
events
AcceptanceDeadlineReached
event AcceptanceDeadlineReached(bytes4 campaignId)
CampaignAccepted
event CampaignAccepted(bytes4 indexed campaignId, address acceptedBy)
CampaignCreated
event CampaignCreated(bytes4 indexed campaignId, address user)
CampaignFulfilled
event CampaignFulfilled(bytes4 campaignId)
CampaignUpdated
event CampaignUpdated(bytes4 indexed campaignId, address updatedBy)
FundWithdrawalSuccessful
event FundWithdrawalSuccessful()
OpenCampaignCompleted
event OpenCampaignCompleted(bytes4 indexed campaignId, address completedBy, bool isFulfilled)
OpenCampaignCreated
event OpenCampaignCreated(bytes4 indexed campaignId, address user, uint256 poolAmount)
OpenCampaignUpdated
event OpenCampaignUpdated(bytes4 indexed campaignId, address updatedBy)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PlatformFeesUpdated
event PlatformFeesUpdated(uint256 previousFees, uint256 updatedFees)
ProjectPaymentReturned
event ProjectPaymentReturned(bytes4 campaignId)
UserCreated
event UserCreated(address indexed userAddress)
errors
ContractBalanceInsufficient
error ContractBalanceInsufficient(uint256 required, uint256 available)
FundTransferError
error FundTransferError()
InvalidCampaignStatus
error InvalidCampaignStatus(uint8 expected, uint8 actual)
InvalidOpenCampaignStatus
error InvalidOpenCampaignStatus(uint8 expected, uint8 actual)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
Unauthorized
error Unauthorized()
creation bytecode
0x608060405234801561001057600080fd5b5033600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100845760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161007b91906101ae565b60405180910390fd5b610093816100a960201b60201c565b50600180819055506127106002819055506101c9565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101988261016d565b9050919050565b6101a88161018d565b82525050565b60006020820190506101c3600083018461019f565b92915050565b613cd0806101d86000396000f3fe6080604052600436106101395760003560e01c806385dd92ac116100ab578063a1e5084c1161006f578063a1e5084c146103f3578063b0308fad14610430578063b37df5941461045b578063b41f48b014610486578063e8136a51146104af578063f2fde38b146104d857610140565b806385dd92ac1461033457806386cdf6041461035d57806389476069146103885780638da5cb5b146103b1578063a0ef91df146103dc57610140565b8063378efa37116100fd578063378efa3714610226578063382c2f1314610251578063567403011461027a578063715018a6146102a357806379d3135e146102ba5780637d266e5b146102f757610140565b8063019c84a914610145578063110011bc1461016e5780632f2cc96f1461019757806331c7338b146101c0578063320a4639146101e957610140565b3661014057005b600080fd5b34801561015157600080fd5b5061016c6004803603810190610167919061310a565b610501565b005b34801561017a57600080fd5b50610195600480360381019061019091906131dd565b6108c6565b005b3480156101a357600080fd5b506101be60048036038101906101b9919061320a565b610b0b565b005b3480156101cc57600080fd5b506101e760048036038101906101e291906131dd565b610f1a565b005b3480156101f557600080fd5b50610210600480360381019061020b91906131dd565b611320565b60405161021d91906133e0565b60405180910390f35b34801561023257600080fd5b5061023b61154c565b604051610248919061340b565b60405180910390f35b34801561025d57600080fd5b50610278600480360381019061027391906131dd565b611553565b005b34801561028657600080fd5b506102a1600480360381019061029c919061344b565b6119ec565b005b3480156102af57600080fd5b506102b8611f26565b005b3480156102c657600080fd5b506102e160048036038101906102dc91906131dd565b611f3a565b6040516102ee9190613575565b60405180910390f35b34801561030357600080fd5b5061031e60048036038101906103199190613590565b6120fb565b60405161032b919061366c565b60405180910390f35b34801561034057600080fd5b5061035b600480360381019061035691906136c6565b6121d4565b005b34801561036957600080fd5b50610372612518565b60405161037f919061366c565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190613590565b6125b2565b005b3480156103bd57600080fd5b506103c66126fd565b6040516103d39190613715565b60405180910390f35b3480156103e857600080fd5b506103f1612726565b005b3480156103ff57600080fd5b5061041a60048036038101906104159190613590565b6127e1565b604051610427919061366c565b60405180910390f35b34801561043c57600080fd5b506104456128ba565b604051610452919061366c565b60405180910390f35b34801561046757600080fd5b50610470612954565b60405161047d919061340b565b60405180910390f35b34801561049257600080fd5b506104ad60048036038101906104a89190613730565b61295a565b005b3480156104bb57600080fd5b506104d660048036038101906104d19190613783565b612ca4565b005b3480156104e457600080fd5b506104ff60048036038101906104fa9190613590565b612cf7565b005b60003342604051602001610516929190613870565b60405160208183030381529060405280519060200120905060004290506000604051806101200160405280847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020018381526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018781526020018881526020018573ffffffffffffffffffffffffffffffffffffffff168152602001600060048111156105e6576105e56132b2565b5b81525090508060066000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908360e01c02179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816004015560a0820151816005015560c0820151816006015560e08201518160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160070160146101000a81548160ff0219169083600481111561078a576107896132b2565b5b021790555090505060048390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c0217905550600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c0217905550827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167fe41d37ea58ed0203f8476bf3621dbbab9e570a47e5d70e070d77fff130bad3d7336040516108b49190613715565b60405180910390a25050505050505050565b6108ce612d7d565b600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156109b657503373ffffffffffffffffffffffffffffffffffffffff1661099d6126fd565b73ffffffffffffffffffffffffffffffffffffffff1614155b156109ed576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006004811115610a0157610a006132b2565b5b8160070160149054906101000a900460ff166004811115610a2557610a246132b2565b5b14610a7b5760008160070160149054906101000a900460ff166040517f1e8a8fcc000000000000000000000000000000000000000000000000000000008152600401610a729291906138b6565b60405180910390fd5b60018160070160146101000a81548160ff02191690836004811115610aa357610aa26132b2565b5b0217905550817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167fe5cf44d72a8814a2030733c88ec446bde46fb067f7719357623edbcd901a28f433604051610af79190613715565b60405180910390a250610b08612dc3565b50565b610b13612d7d565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b799061393c565b60405180910390fd5b600060066000877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020905060006004811115610beb57610bea6132b2565b5b8160070160149054906101000a900460ff166004811115610c0f57610c0e6132b2565b5b14610c655760008160070160149054906101000a900460ff166040517f1e8a8fcc000000000000000000000000000000000000000000000000000000008152600401610c5c9291906138b6565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015610cf857503373ffffffffffffffffffffffffffffffffffffffff16610cdf6126fd565b73ffffffffffffffffffffffffffffffffffffffff1614155b15610d2f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600601549050858260030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084826005018190555083826004018190555082826006018190555060008260070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083821115610eb15760008173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8560020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168786610e16919061398b565b6040518363ffffffff1660e01b8152600401610e339291906139bf565b6020604051808303816000875af1158015610e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7691906139fd565b905080610eaf576040517f0f9310f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3143324469716ea7cb6b9bc9bbe9af85e40758d7148f12663616614052a9f7b933604051610f009190613715565b60405180910390a2505050610f13612dc3565b5050505050565b610f22612d7d565b600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020905060008160060154905060008260070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561103c57503373ffffffffffffffffffffffffffffffffffffffff166110236126fd565b73ffffffffffffffffffffffffffffffffffffffff1614155b15611073576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110ad9190613715565b602060405180830381865afa1580156110ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ee9190613a3f565b10156111ac57818173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161112e9190613715565b602060405180830381865afa15801561114b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116f9190613a3f565b6040517faa1f42bd0000000000000000000000000000000000000000000000000000000081526004016111a3929190613a6c565b60405180910390fd5b60048360070160146101000a81548160ff021916908360048111156111d4576111d36132b2565b5b021790555060008173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8560020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686600601546040518363ffffffff1660e01b815260040161123e9291906139bf565b6020604051808303816000875af115801561125d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128191906139fd565b9050806112ba576040517f0f9310f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3143324469716ea7cb6b9bc9bbe9af85e40758d7148f12663616614052a9f7b9336040516113099190613715565b60405180910390a25050505061131d612dc3565b50565b611328612f1f565b600060066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020604051806101200160405290816000820160009054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820154815260200160058201548152602001600682015481526020016007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820160149054906101000a900460ff16600481111561152b5761152a6132b2565b5b600481111561153d5761153c6132b2565b5b81525050905080915050919050565b620186a081565b61155b612d7d565b600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209050600160048111156115c4576115c36132b2565b5b8160070160149054906101000a900460ff1660048111156115e8576115e76132b2565b5b1461163e5760018160070160149054906101000a900460ff166040517f1e8a8fcc0000000000000000000000000000000000000000000000000000000081526004016116359291906138b6565b60405180910390fd5b6000816006015490506000620186a06002548361165b9190613a95565b6116659190613b06565b905060008183611675919061398b565b905060008460070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050818173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116da9190613715565b602060405180830381865afa1580156116f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171b9190613a3f565b10156117d957818173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161175b9190613715565b602060405180830381865afa158015611778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179c9190613a3f565b6040517faa1f42bd0000000000000000000000000000000000000000000000000000000081526004016117d0929190613a6c565b60405180910390fd5b60028560070160146101000a81548160ff02191690836004811115611801576118006132b2565b5b021790555060008173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8760030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016118679291906139bf565b6020604051808303816000875af1158015611886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118aa91906139fd565b9050806118e3576040517f0f9310f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6119096126fd565b876040518363ffffffff1660e01b81526004016119279291906139bf565b6020604051808303816000875af1158015611946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196a91906139fd565b9050806119a3576040517f0f9310f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fd7d080f34f62be028407df1c24ad247902199ace5d02d8faa13f5636809d0c7c886040516119d29190613b46565b60405180910390a1505050505050506119e9612dc3565b50565b6119f4612d7d565b600060096000867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020905060006002811115611a5d57611a5c6132b2565b5b8160030160009054906101000a900460ff166002811115611a8157611a806132b2565b5b14611ad75760008160030160009054906101000a900460ff166040517f8ec0724d000000000000000000000000000000000000000000000000000000008152600401611ace929190613b70565b60405180910390fd5b60016002811115611aeb57611aea6132b2565b5b826002811115611afe57611afd6132b2565b5b14158015611b305750600280811115611b1a57611b196132b2565b5b826002811115611b2d57611b2c6132b2565b5b14155b15611b75576001826040517f8ec0724d000000000000000000000000000000000000000000000000000000008152600401611b6c929190613b70565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168160000160049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611c0857503373ffffffffffffffffffffffffffffffffffffffff16611bef6126fd565b73ffffffffffffffffffffffffffffffffffffffff1614155b15611c3f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600201549050848260010181905550838260020181905550828260030160006101000a81548160ff02191690836002811115611c8157611c806132b2565b5b021790555060008260030160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084821115611da15760008173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8560000160049054906101000a900473ffffffffffffffffffffffffffffffffffffffff168886611d06919061398b565b6040518363ffffffff1660e01b8152600401611d239291906139bf565b6020604051808303816000875af1158015611d42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6691906139fd565b905080611d9f576040517f0f9310f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60016002811115611db557611db46132b2565b5b846002811115611dc857611dc76132b2565b5b1480611df75750600280811115611de257611de16132b2565b5b846002811115611df557611df46132b2565b5b145b15611ebe5760008173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611e226126fd565b886040518363ffffffff1660e01b8152600401611e409291906139bf565b6020604051808303816000875af1158015611e5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8391906139fd565b905080611ebc576040517f0f9310f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f6afe0fd04f185e7f09df6e88a6f3103039737a771bf3a18894adf003ddf023b833604051611f0d9190613715565b60405180910390a2505050611f20612dc3565b50505050565b611f2e612dcc565b611f386000612e53565b565b611f42612fde565b600060096000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206040518060c00160405290816000820160009054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020016000820160049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff166002811115612084576120836132b2565b5b6002811115612096576120956132b2565b5b81526020016003820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905080915050919050565b6060600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156121c857602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116121755790505b50505050509050919050565b6121dc612d7d565b600060096000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020905060006002811115612245576122446132b2565b5b8160030160009054906101000a900460ff166002811115612269576122686132b2565b5b146122bf5760008160030160009054906101000a900460ff166040517f8ec0724d0000000000000000000000000000000000000000000000000000000081526004016122b6929190613b70565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168160000160049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561235257503373ffffffffffffffffffffffffffffffffffffffff166123396126fd565b73ffffffffffffffffffffffffffffffffffffffff1614155b15612389576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81612395576002612398565b60015b8160030160006101000a81548160ff021916908360028111156123be576123bd6132b2565b5b021790555060008160030160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6124126126fd565b85600201546040518363ffffffff1660e01b81526004016124349291906139bf565b6020604051808303816000875af1158015612453573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247791906139fd565b9050806124b0576040517f0f9310f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f4782026ec4d9bd3ad4cc05008835c34c247c4725295e3e8057e80f5f8cc8d8973386604051612501929190613ba8565b60405180910390a2505050612514612dc3565b5050565b606060048054806020026020016040519081016040528092919081815260200182805480156125a857602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116125555790505b5050505050905090565b6125ba612dcc565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125f59190613715565b602060405180830381865afa158015612612573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126369190613a3f565b905060008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61265e6126fd565b846040518363ffffffff1660e01b815260040161267c9291906139bf565b6020604051808303816000875af115801561269b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126bf91906139fd565b9050806126f8576040517f0f9310f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61272e612dcc565b6000479050600061273d6126fd565b73ffffffffffffffffffffffffffffffffffffffff168260405161276090613c02565b60006040518083038185875af1925050503d806000811461279d576040519150601f19603f3d011682016040523d82523d6000602084013e6127a2565b606091505b50509050806127dd576040517f0f9310f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b6060600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156128ae57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161285b5790505b50505050509050919050565b6060600780548060200260200160405190810160405280929190818152602001828054801561294a57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116128f75790505b5050505050905090565b60025481565b612962612d7d565b60003342604051602001612977929190613c63565b60405160208183030381529060405280519060200120905060006040518060c00160405280837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001868152602001858152602001600060028111156129fd576129fc6132b2565b5b81526020018473ffffffffffffffffffffffffffffffffffffffff1681525090508060096000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908360e01c021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600101556060820151816002015560808201518160030160006101000a81548160ff02191690836002811115612b1a57612b196132b2565b5b021790555060a08201518160030160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505060078290806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c0217905550600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208290806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c0217905550817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167fc04dc2cffed0e5a9833410e08d9cffa80dfb6598827d4ee752c73bd74c4052e73386604051612c8d9291906139bf565b60405180910390a25050612c9f612dc3565b505050565b612cac612dcc565b60006002549050816002819055507fd8e832f816c1cbad9f319fc8017ca9d81476c84945de3610a3cf813538f737518183604051612ceb929190613a6c565b60405180910390a15050565b612cff612dcc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612d715760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401612d689190613715565b60405180910390fd5b612d7a81612e53565b50565b600260015403612db9576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b60018081905550565b612dd4612f17565b73ffffffffffffffffffffffffffffffffffffffff16612df26126fd565b73ffffffffffffffffffffffffffffffffffffffff1614612e5157612e15612f17565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401612e489190613715565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b60405180610120016040528060007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006004811115612fd857612fd76132b2565b5b81525090565b6040518060c0016040528060007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000600281111561304e5761304d6132b2565b5b8152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130a182613076565b9050919050565b6130b181613096565b81146130bc57600080fd5b50565b6000813590506130ce816130a8565b92915050565b6000819050919050565b6130e7816130d4565b81146130f257600080fd5b50565b600081359050613104816130de565b92915050565b600080600080600060a0868803121561312657613125613071565b5b6000613134888289016130bf565b9550506020613145888289016130f5565b9450506040613156888289016130f5565b9350506060613167888289016130f5565b9250506080613178888289016130bf565b9150509295509295909350565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6131ba81613185565b81146131c557600080fd5b50565b6000813590506131d7816131b1565b92915050565b6000602082840312156131f3576131f2613071565b5b6000613201848285016131c8565b91505092915050565b600080600080600060a0868803121561322657613225613071565b5b6000613234888289016131c8565b9550506020613245888289016130bf565b9450506040613256888289016130f5565b9350506060613267888289016130f5565b9250506080613278888289016130f5565b9150509295509295909350565b61328e81613185565b82525050565b61329d816130d4565b82525050565b6132ac81613096565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600581106132f2576132f16132b2565b5b50565b6000819050613303826132e1565b919050565b6000613313826132f5565b9050919050565b61332381613308565b82525050565b610120820160008201516133406000850182613285565b5060208201516133536020850182613294565b50604082015161336660408501826132a3565b50606082015161337960608501826132a3565b50608082015161338c6080850182613294565b5060a082015161339f60a0850182613294565b5060c08201516133b260c0850182613294565b5060e08201516133c560e08501826132a3565b506101008201516133da61010085018261331a565b50505050565b6000610120820190506133f66000830184613329565b92915050565b613405816130d4565b82525050565b600060208201905061342060008301846133fc565b92915050565b6003811061343357600080fd5b50565b60008135905061344581613426565b92915050565b6000806000806080858703121561346557613464613071565b5b6000613473878288016131c8565b9450506020613484878288016130f5565b9350506040613495878288016130f5565b92505060606134a687828801613436565b91505092959194509250565b600381106134c3576134c26132b2565b5b50565b60008190506134d4826134b2565b919050565b60006134e4826134c6565b9050919050565b6134f4816134d9565b82525050565b60c0820160008201516135106000850182613285565b50602082015161352360208501826132a3565b5060408201516135366040850182613294565b5060608201516135496060850182613294565b50608082015161355c60808501826134eb565b5060a082015161356f60a08501826132a3565b50505050565b600060c08201905061358a60008301846134fa565b92915050565b6000602082840312156135a6576135a5613071565b5b60006135b4848285016130bf565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006135f58383613285565b60208301905092915050565b6000602082019050919050565b6000613619826135bd565b61362381856135c8565b935061362e836135d9565b8060005b8381101561365f57815161364688826135e9565b975061365183613601565b925050600181019050613632565b5085935050505092915050565b60006020820190508181036000830152613686818461360e565b905092915050565b60008115159050919050565b6136a38161368e565b81146136ae57600080fd5b50565b6000813590506136c08161369a565b92915050565b600080604083850312156136dd576136dc613071565b5b60006136eb858286016131c8565b92505060206136fc858286016136b1565b9150509250929050565b61370f81613096565b82525050565b600060208201905061372a6000830184613706565b92915050565b60008060006060848603121561374957613748613071565b5b6000613757868287016130f5565b9350506020613768868287016130f5565b9250506040613779868287016130bf565b9150509250925092565b60006020828403121561379957613798613071565b5b60006137a7848285016130f5565b91505092915050565b60008160601b9050919050565b60006137c8826137b0565b9050919050565b60006137da826137bd565b9050919050565b6137f26137ed82613096565b6137cf565b82525050565b600081905092915050565b7f4352454154455f43414d504149474e0000000000000000000000000000000000600082015250565b6000613839600f836137f8565b915061384482613803565b600f82019050919050565b6000819050919050565b61386a613865826130d4565b61384f565b82525050565b600061387c82856137e1565b60148201915061388b8261382c565b91506138978284613859565b6020820191508190509392505050565b6138b081613308565b82525050565b60006040820190506138cb60008301856138a7565b6138d860208301846138a7565b9392505050565b600082825260208201905092915050565b7f496e76616c6964204b4f4c206164647265737300000000000000000000000000600082015250565b60006139266013836138df565b9150613931826138f0565b602082019050919050565b6000602082019050818103600083015261395581613919565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613996826130d4565b91506139a1836130d4565b92508282039050818111156139b9576139b861395c565b5b92915050565b60006040820190506139d46000830185613706565b6139e160208301846133fc565b9392505050565b6000815190506139f78161369a565b92915050565b600060208284031215613a1357613a12613071565b5b6000613a21848285016139e8565b91505092915050565b600081519050613a39816130de565b92915050565b600060208284031215613a5557613a54613071565b5b6000613a6384828501613a2a565b91505092915050565b6000604082019050613a8160008301856133fc565b613a8e60208301846133fc565b9392505050565b6000613aa0826130d4565b9150613aab836130d4565b9250828202613ab9816130d4565b91508282048414831517613ad057613acf61395c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b11826130d4565b9150613b1c836130d4565b925082613b2c57613b2b613ad7565b5b828204905092915050565b613b4081613185565b82525050565b6000602082019050613b5b6000830184613b37565b92915050565b613b6a816134d9565b82525050565b6000604082019050613b856000830185613b61565b613b926020830184613b61565b9392505050565b613ba28161368e565b82525050565b6000604082019050613bbd6000830185613706565b613bca6020830184613b99565b9392505050565b600081905092915050565b50565b6000613bec600083613bd1565b9150613bf782613bdc565b600082019050919050565b6000613c0d82613bdf565b9150819050919050565b7f4352454154455f4f50454e5f43414d504149474e000000000000000000000000600082015250565b6000613c4d6014836137f8565b9150613c5882613c17565b601482019050919050565b6000613c6f82856137e1565b601482019150613c7e82613c40565b9150613c8a8284613859565b602082019150819050939250505056fea264697066735822122087130326211b7b668273adba23bff71a49ffcf83eaf97b0d327930f264e625f264736f6c634300081a0033