5 txs
9 calls
constructor
constructor()
functions
BUY_ESCROW_MINUTES
viewfunction BUY_ESCROW_MINUTES() view returns (uint256)
buyRequests
viewfunction buyRequests(string) view returns (address buyer, uint256 amount, uint256 validUntil, string uid, string fundingUid)
inReviews
viewfunction inReviews(string) view returns (address buyer, uint256 amount, string uid, string fundingUid)
owner
viewfunction owner() view returns (address)
PAID_ESCROW_MINUTES
viewfunction PAID_ESCROW_MINUTES() view returns (uint256)
paidRequests
viewfunction paidRequests(string) view returns (address buyer, uint256 amount, uint256 paidAt, string uid, string fundingUid)
SELLER_ESCROW_MINUTES
viewfunction SELLER_ESCROW_MINUTES() view returns (uint256)
sellerEscrows
viewfunction sellerEscrows(string) view returns (address seller, uint256 amount, uint256 createdAt, string fundingUid, uint256 locked, uint256 sold)
USDC_ADDR
viewfunction USDC_ADDR() view returns (address)
addToSellerEscrow
nonpayablefunction addToSellerEscrow(string fundingUid, uint256 amount)
createBuyRequest
nonpayablefunction createBuyRequest(string uid, uint256 amount, string fundingUid)
createSellerEscrow
nonpayablefunction createSellerEscrow(uint256 amount, string fundingUid)
deleteBuyRequests
nonpayablefunction deleteBuyRequests(string[] uids, string fundingUid)
markAsPaid
nonpayablefunction markAsPaid(string uid)
overrideSellerEscrowAmount
nonpayablefunction overrideSellerEscrowAmount(string fundingUid, uint256 newAmount, uint256 newLocked)
resolveInReviews
nonpayablefunction resolveInReviews(string[] uids, bool[] accepts)
respondToBuyRequests
nonpayablefunction respondToBuyRequests(string[] uids)
respondToPaidRequests
nonpayablefunction respondToPaidRequests(string[] uids, bool[] accepts)
setEscrowMinutes
nonpayablefunction setEscrowMinutes(uint256 sellerMinutes, uint256 buyMinutes, uint256 paidMinutes)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdrawSellerEscrow
nonpayablefunction withdrawSellerEscrow(string fundingUid, uint256 amount)
withdrawUSDC
nonpayablefunction withdrawUSDC(uint256 amount)
events
BuyRequestCreated
event BuyRequestCreated(string indexed uidIndexed, string uid, address indexed buyer, string indexed fundingUidIndexed, string fundingUid, uint256 amount)
BuyRequestDeleted
event BuyRequestDeleted(string indexed uidIndexed, string uid, address indexed buyer, string indexed fundingUidIndexed, string fundingUid, uint256 amount)
BuyRequestPaid
event BuyRequestPaid(string indexed uidIndexed, string uid, address indexed buyer, string indexed fundingUidIndexed, string fundingUid, uint256 amount)
EnteredInReview
event EnteredInReview(string indexed uidIndexed, string uid, address indexed buyer, string indexed fundingUidIndexed, string fundingUid, uint256 amount)
InReviewResolved
event InReviewResolved(string[] uids, bool[] accepts)
OwnershipTransferred
event OwnershipTransferred(address previousOwner, address newOwner)
SellerEscrowFunded
event SellerEscrowFunded(string indexed fundingUidIndexed, string fundingUid, address indexed seller, uint256 amount)
TransactionCompleted
event TransactionCompleted(string indexed uidIndexed, string uid, address indexed buyer, string indexed fundingUidIndexed, string fundingUid, uint256 amount)
errors
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x608060405261a8c0600155612a30600255612a306003553480156200002357600080fd5b50600160008190555033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600033604051620000a1929190620000f4565b60405180910390a162000121565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000dc82620000af565b9050919050565b620000ee81620000cf565b82525050565b60006040820190506200010b6000830185620000e3565b6200011a6020830184620000e3565b9392505050565b6147ad80620001316000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c8063a0b65f8c116100b8578063db81f99b1161007c578063db81f99b1461036c578063e74d537514610388578063e94fc861146103a4578063f2b6eb55146103c2578063f2fde38b146103e0578063fc5968aa146103fc57610141565b8063a0b65f8c146102b1578063acacb407146102e5578063aea7788514610301578063c9762dde14610334578063d0f091331461035057610141565b80636871cd5b1161010a5780636871cd5b146101d657806368ebd82e1461020b57806368fb07f91461023f5780638da5cb5b1461025b57806391c1188a146102795780639f2832021461029557610141565b80622d396c1461014657806313dee7e71461016457806342527ce91461018257806353d26c011461019e578063574466c6146101ba575b600080fd5b61014e610418565b60405161015b91906130dc565b60405180910390f35b61016c61041e565b6040516101799190613138565b60405180910390f35b61019c600480360381019061019791906132d9565b610436565b005b6101b860048036038101906101b3919061341b565b6106c1565b005b6101d460048036038101906101cf9190613464565b610ad4565b005b6101f060048036038101906101eb91906134ef565b610cec565b604051610202969594939291906135b7565b60405180910390f35b610225600480360381019061022091906134ef565b610de6565b60405161023695949392919061361f565b60405180910390f35b61025960048036038101906102549190613680565b610f62565b005b6102636111d0565b6040516102709190613138565b60405180910390f35b610293600480360381019061028e91906137d7565b6111fa565b005b6102af60048036038101906102aa91906132d9565b6118d1565b005b6102cb60048036038101906102c691906134ef565b611c39565b6040516102dc95949392919061361f565b60405180910390f35b6102ff60048036038101906102fa91906137d7565b611db5565b005b61031b600480360381019061031691906134ef565b612331565b60405161032b949392919061384f565b60405180910390f35b61034e600480360381019061034991906138a2565b6124a7565b005b61036a6004803603810190610365919061391a565b61279c565b005b61038660048036038101906103819190613989565b612866565b005b6103a2600480360381019061039d91906134ef565b6129d1565b005b6103ac612d9e565b6040516103b991906130dc565b60405180910390f35b6103ca612da4565b6040516103d791906130dc565b60405180910390f35b6103fa60048036038101906103f591906139e2565b612daa565b005b61041660048036038101906104119190613a0f565b612f48565b005b60035481565b73833589fcd6edb6e08f4c7c32d4f71b54bda0291381565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104fe575060058260405161049d9190613a9e565b908152602001604051809103902060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61053d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053490613b01565b60405180910390fd5b73833589fcd6edb6e08f4c7c32d4f71b54bda0291373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161058e93929190613b21565b6020604051808303816000875af11580156105ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d19190613b6d565b610610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060790613be6565b60405180910390fd5b60006005836040516106229190613a9e565b90815260200160405180910390209050818160010160008282546106469190613c35565b925050819055504281600201819055503373ffffffffffffffffffffffffffffffffffffffff168360405161067b9190613a9e565b60405180910390207fb90018cf93d508f81e4f4d4c49b3f2660a18abae630cc769cb3d28e0ecc00cea85856040516106b4929190613c69565b60405180910390a3505050565b60005b8151811015610ad057600060068383815181106106e4576106e3613c99565b5b60200260200101516040516106f99190613a9e565b90815260200160405180910390209050600060058260040160405161071e9190613dc0565b908152602001604051809103902090503373ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806107d95750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080f90613b01565b60405180910390fd5b73833589fcd6edb6e08f4c7c32d4f71b54bda0291373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600101546040518363ffffffff1660e01b815260040161088f929190613dd7565b6020604051808303816000875af11580156108ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d29190613b6d565b610911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090890613be6565b60405180910390fd5b81600101548160050160008282546109299190613c35565b9250508190555081600101548160040160008282546109489190613e00565b92505081905550816004016040516109609190613dc0565b60405180910390208260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168585815181106109b6576109b5613c99565b5b60200260200101516040516109cb9190613a9e565b60405180910390207f7fb90cb81c6cb5a2b6aa80552ca65337604bfb70eddaaf746677788d7665731a878781518110610a0757610a06613c99565b5b6020026020010151866004018760010154604051610a2793929190613eb8565b60405180910390a46006848481518110610a4457610a43613c99565b5b6020026020010151604051610a599190613a9e565b9081526020016040518091039020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090556002820160009055600382016000610aaf9190613066565b600482016000610abf9190613066565b5050505080806001019150506106c4565b5050565b6000600582604051610ae69190613a9e565b9081526020016040518091039020905082816005015482600401548360010154610b109190613e00565b610b1a9190613e00565b1015610b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5290613f49565b60405180910390fd5b6040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200184815260200160025442610b969190613c35565b815260200185815260200183815250600685604051610bb59190613a9e565b908152602001604051809103902060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003019081610c339190614100565b506080820151816004019081610c499190614100565b5090505082816004016000828254610c619190613c35565b9250508190555081604051610c769190613a9e565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff1685604051610ca39190613a9e565b60405180910390207f20bd155438c3e493cf4732874f71ab5a2950bdbb7da0226bca1f01eaa9cdacfd878688604051610cde939291906141d2565b60405180910390a450505050565b6005818051602081018201805184825260208301602085012081835280955050505050506000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015490806002015490806003018054610d5790613cf7565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8390613cf7565b8015610dd05780601f10610da557610100808354040283529160200191610dd0565b820191906000526020600020905b815481529060010190602001808311610db357829003601f168201915b5050505050908060040154908060050154905086565b6006818051602081018201805184825260208301602085012081835280955050505050506000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015490806002015490806003018054610e5190613cf7565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7d90613cf7565b8015610eca5780601f10610e9f57610100808354040283529160200191610eca565b820191906000526020600020905b815481529060010190602001808311610ead57829003601f168201915b505050505090806004018054610edf90613cf7565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0b90613cf7565b8015610f585780601f10610f2d57610100808354040283529160200191610f58565b820191906000526020600020905b815481529060010190602001808311610f3b57829003601f168201915b5050505050905085565b6000600582604051610f749190613a9e565b90815260200160405180910390209050600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100e90614263565b60405180910390fd5b338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508281600101819055504281600201819055508181600301908161107d9190614100565b50600081600401819055506000816005018190555073833589fcd6edb6e08f4c7c32d4f71b54bda0291373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b81526004016110e393929190613b21565b6020604051808303816000875af1158015611102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111269190613b6d565b611165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115c90613be6565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168260405161118a9190613a9e565b60405180910390207fb90018cf93d508f81e4f4d4c49b3f2660a18abae630cc769cb3d28e0ecc00cea84866040516111c3929190613c69565b60405180910390a3505050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60005b82518110156118cc576000600784838151811061121d5761121c613c99565b5b60200260200101516040516112329190613a9e565b9081526020016040518091039020905060006005826004016040516112579190613dc0565b908152602001604051809103902090503373ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806113125750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134890613b01565b60405180910390fd5b83838151811061136457611363613c99565b5b60200260200101511561158d5773833589fcd6edb6e08f4c7c32d4f71b54bda0291373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600101546040518363ffffffff1660e01b81526004016113e8929190613dd7565b6020604051808303816000875af1158015611407573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142b9190613b6d565b61146a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146190613be6565b60405180910390fd5b81600101548160050160008282546114829190613c35565b9250508190555081600101548160040160008282546114a19190613e00565b92505081905550816004016040516114b99190613dc0565b60405180910390208260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1686858151811061150f5761150e613c99565b5b60200260200101516040516115249190613a9e565b60405180910390207f7fb90cb81c6cb5a2b6aa80552ca65337604bfb70eddaaf746677788d7665731a8887815181106115605761155f613c99565b5b602002602001015186600401876001015460405161158093929190613eb8565b60405180910390a461182b565b60405180608001604052808360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836001015481526020018685815181106115f5576115f4613c99565b5b6020026020010151815260200183600401805461161190613cf7565b80601f016020809104026020016040519081016040528092919081815260200182805461163d90613cf7565b801561168a5780601f1061165f5761010080835404028352916020019161168a565b820191906000526020600020905b81548152906001019060200180831161166d57829003601f168201915b505050505081525060088685815181106116a7576116a6613c99565b5b60200260200101516040516116bc9190613a9e565b908152602001604051809103902060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020190816117309190614100565b5060608201518160030190816117469190614100565b509050508160040160405161175b9190613dc0565b60405180910390208260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168685815181106117b1576117b0613c99565b5b60200260200101516040516117c69190613a9e565b60405180910390207f7071b7ce27773391a1b41ef924ffeceba4ed306f64ea8ca25fa2a1d62bd8671a88878151811061180257611801613c99565b5b602002602001015186600401876001015460405161182293929190613eb8565b60405180910390a45b60078584815181106118405761183f613c99565b5b60200260200101516040516118559190613a9e565b9081526020016040518091039020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182016000905560028201600090556003820160006118ab9190613066565b6004820160006118bb9190613066565b5050505080806001019150506111fd565b505050565b6118d9613016565b60006005836040516118eb9190613a9e565b90815260200160405180910390209050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806119a657503373ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6119e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dc90613b01565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611af8576001548160020154611a4c9190613c35565b421015611a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a85906142cf565b60405180910390fd5b81816005015482600401548360010154611aa89190613e00565b611ab29190613e00565b1015611af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aea9061433b565b60405180910390fd5b611b40565b8181600101541015611b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b369061433b565b60405180910390fd5b5b81816001016000828254611b549190613e00565b9250508190555073833589fcd6edb6e08f4c7c32d4f71b54bda0291373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611baa929190613dd7565b6020604051808303816000875af1158015611bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bed9190613b6d565b611c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2390613be6565b60405180910390fd5b50611c3561305c565b5050565b6007818051602081018201805184825260208301602085012081835280955050505050506000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015490806002015490806003018054611ca490613cf7565b80601f0160208091040260200160405190810160405280929190818152602001828054611cd090613cf7565b8015611d1d5780601f10611cf257610100808354040283529160200191611d1d565b820191906000526020600020905b815481529060010190602001808311611d0057829003601f168201915b505050505090806004018054611d3290613cf7565b80601f0160208091040260200160405190810160405280929190818152602001828054611d5e90613cf7565b8015611dab5780601f10611d8057610100808354040283529160200191611dab565b820191906000526020600020905b815481529060010190602001808311611d8e57829003601f168201915b5050505050905085565b8051825114611df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df0906143a7565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8090613b01565b60405180910390fd5b60005b82518110156122f35760006008848381518110611eac57611eab613c99565b5b6020026020010151604051611ec19190613a9e565b908152602001604051809103902090506000600582600301604051611ee69190613dc0565b908152602001604051809103902090506000826001015411611f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3490614413565b60405180910390fd5b838381518110611f5057611f4f613c99565b5b60200260200101511561215a5773833589fcd6edb6e08f4c7c32d4f71b54bda0291373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600101546040518363ffffffff1660e01b8152600401611fd4929190613dd7565b6020604051808303816000875af1158015611ff3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120179190613b6d565b612056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204d90613be6565b60405180910390fd5b816001015481600501600082825461206e9190613c35565b92505081905550816003016040516120869190613dc0565b60405180910390208260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168685815181106120dc576120db613c99565b5b60200260200101516040516120f19190613a9e565b60405180910390207f7fb90cb81c6cb5a2b6aa80552ca65337604bfb70eddaaf746677788d7665731a88878151811061212d5761212c613c99565b5b602002602001015186600301876001015460405161214d93929190613eb8565b60405180910390a461223b565b8160030160405161216b9190613dc0565b60405180910390208260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168685815181106121c1576121c0613c99565b5b60200260200101516040516121d69190613a9e565b60405180910390207fb4a53ed159c3bcbe1a90cd648dd4039d0e32457ed934e26ecacf8dbc1667b35888878151811061221257612211613c99565b5b602002602001015186600301876001015460405161223293929190613eb8565b60405180910390a45b81600101548160040160008282546122539190613e00565b92505081905550600885848151811061226f5761226e613c99565b5b60200260200101516040516122849190613a9e565b9081526020016040518091039020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090556002820160006122d29190613066565b6003820160006122e29190613066565b505050508080600101915050611e8c565b507f7538792b6811afcf98a17817fc2e6c0e49784138cd1b46944741bcb16f225d1782826040516123259291906145fd565b60405180910390a15050565b6008818051602081018201805184825260208301602085012081835280955050505050506000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201805461239690613cf7565b80601f01602080910402602001604051908101604052809291908181526020018280546123c290613cf7565b801561240f5780601f106123e45761010080835404028352916020019161240f565b820191906000526020600020905b8154815290600101906020018083116123f257829003601f168201915b50505050509080600301805461242490613cf7565b80601f016020809104026020016040519081016040528092919081815260200182805461245090613cf7565b801561249d5780601f106124725761010080835404028352916020019161249d565b820191906000526020600020905b81548152906001019060200180831161248057829003601f168201915b5050505050905084565b60006005826040516124b99190613a9e565b9081526020016040518091039020905060005b835181101561279657600060068583815181106124ec576124eb613c99565b5b60200260200101516040516125019190613a9e565b908152602001604051809103902090503373ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806125bc5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6125fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f290613b01565b60405180910390fd5b600081600101549050808460040160008282546126189190613e00565b925050819055508460405161262d9190613a9e565b60405180910390208260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1687858151811061268357612682613c99565b5b60200260200101516040516126989190613a9e565b60405180910390207fb4a53ed159c3bcbe1a90cd648dd4039d0e32457ed934e26ecacf8dbc1667b3588987815181106126d4576126d3613c99565b5b602002602001015189866040516126ed939291906141d2565b60405180910390a4600686848151811061270a57612709613c99565b5b602002602001015160405161271f9190613a9e565b9081526020016040518091039020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182016000905560028201600090556003820160006127759190613066565b6004820160006127859190613066565b5050505080806001019150506124cc565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461282c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282390614680565b60405180910390fd5b600060058460405161283e9190613a9e565b9081526020016040518091039020905082816001018190555081816004018190555050505050565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ed90614680565b60405180910390fd5b73833589fcd6edb6e08f4c7c32d4f71b54bda0291373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61292e6111d0565b836040518363ffffffff1660e01b815260040161294c929190613dd7565b6020604051808303816000875af115801561296b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061298f9190613b6d565b6129ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c590613be6565b60405180910390fd5b50565b60006006826040516129e39190613a9e565b908152602001604051809103902090503373ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612a9e5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad490613b01565b60405180910390fd5b6040518060a001604052808260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600101548152602001428152602001838152602001826004018054612b4d90613cf7565b80601f0160208091040260200160405190810160405280929190818152602001828054612b7990613cf7565b8015612bc65780601f10612b9b57610100808354040283529160200191612bc6565b820191906000526020600020905b815481529060010190602001808311612ba957829003601f168201915b5050505050815250600783604051612bde9190613a9e565b908152602001604051809103902060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003019081612c5c9190614100565b506080820151816004019081612c729190614100565b5090505080600401604051612c879190613dc0565b60405180910390208160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612cd89190613a9e565b60405180910390207f079bca1a45ed1bea8d21331997e15922c05be2ba1861ed716c196b838347c6ee85856004018660010154604051612d1a93929190613eb8565b60405180910390a4600682604051612d329190613a9e565b9081526020016040518091039020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090556002820160009055600382016000612d889190613066565b600482016000612d989190613066565b50505050565b60025481565b60015481565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3190614680565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea0906146ec565b60405180910390fd5b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051612efc92919061470c565b60405180910390a180600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fcf90614680565b60405180910390fd5b603c83612fe59190614735565b600181905550603c82612ff89190614735565b600281905550603c8161300b9190614735565b600381905550505050565b600260005403613052576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600081905550565b6001600081905550565b50805461307290613cf7565b6000825580601f1061308457506130a3565b601f0160209004906000526020600020908101906130a291906130a6565b5b50565b5b808211156130bf5760008160009055506001016130a7565b5090565b6000819050919050565b6130d6816130c3565b82525050565b60006020820190506130f160008301846130cd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613122826130f7565b9050919050565b61313281613117565b82525050565b600060208201905061314d6000830184613129565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6131ba82613171565b810181811067ffffffffffffffff821117156131d9576131d8613182565b5b80604052505050565b60006131ec613153565b90506131f882826131b1565b919050565b600067ffffffffffffffff82111561321857613217613182565b5b61322182613171565b9050602081019050919050565b82818337600083830152505050565b600061325061324b846131fd565b6131e2565b90508281526020810184848401111561326c5761326b61316c565b5b61327784828561322e565b509392505050565b600082601f83011261329457613293613167565b5b81356132a484826020860161323d565b91505092915050565b6132b6816130c3565b81146132c157600080fd5b50565b6000813590506132d3816132ad565b92915050565b600080604083850312156132f0576132ef61315d565b5b600083013567ffffffffffffffff81111561330e5761330d613162565b5b61331a8582860161327f565b925050602061332b858286016132c4565b9150509250929050565b600067ffffffffffffffff8211156133505761334f613182565b5b602082029050602081019050919050565b600080fd5b600061337961337484613335565b6131e2565b9050808382526020820190506020840283018581111561339c5761339b613361565b5b835b818110156133e357803567ffffffffffffffff8111156133c1576133c0613167565b5b8086016133ce898261327f565b8552602085019450505060208101905061339e565b5050509392505050565b600082601f83011261340257613401613167565b5b8135613412848260208601613366565b91505092915050565b6000602082840312156134315761343061315d565b5b600082013567ffffffffffffffff81111561344f5761344e613162565b5b61345b848285016133ed565b91505092915050565b60008060006060848603121561347d5761347c61315d565b5b600084013567ffffffffffffffff81111561349b5761349a613162565b5b6134a78682870161327f565b93505060206134b8868287016132c4565b925050604084013567ffffffffffffffff8111156134d9576134d8613162565b5b6134e58682870161327f565b9150509250925092565b6000602082840312156135055761350461315d565b5b600082013567ffffffffffffffff81111561352357613522613162565b5b61352f8482850161327f565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613572578082015181840152602081019050613557565b60008484015250505050565b600061358982613538565b6135938185613543565b93506135a3818560208601613554565b6135ac81613171565b840191505092915050565b600060c0820190506135cc6000830189613129565b6135d960208301886130cd565b6135e660408301876130cd565b81810360608301526135f8818661357e565b905061360760808301856130cd565b61361460a08301846130cd565b979650505050505050565b600060a0820190506136346000830188613129565b61364160208301876130cd565b61364e60408301866130cd565b8181036060830152613660818561357e565b90508181036080830152613674818461357e565b90509695505050505050565b600080604083850312156136975761369661315d565b5b60006136a5858286016132c4565b925050602083013567ffffffffffffffff8111156136c6576136c5613162565b5b6136d28582860161327f565b9150509250929050565b600067ffffffffffffffff8211156136f7576136f6613182565b5b602082029050602081019050919050565b60008115159050919050565b61371d81613708565b811461372857600080fd5b50565b60008135905061373a81613714565b92915050565b600061375361374e846136dc565b6131e2565b9050808382526020820190506020840283018581111561377657613775613361565b5b835b8181101561379f578061378b888261372b565b845260208401935050602081019050613778565b5050509392505050565b600082601f8301126137be576137bd613167565b5b81356137ce848260208601613740565b91505092915050565b600080604083850312156137ee576137ed61315d565b5b600083013567ffffffffffffffff81111561380c5761380b613162565b5b613818858286016133ed565b925050602083013567ffffffffffffffff81111561383957613838613162565b5b613845858286016137a9565b9150509250929050565b60006080820190506138646000830187613129565b61387160208301866130cd565b8181036040830152613883818561357e565b90508181036060830152613897818461357e565b905095945050505050565b600080604083850312156138b9576138b861315d565b5b600083013567ffffffffffffffff8111156138d7576138d6613162565b5b6138e3858286016133ed565b925050602083013567ffffffffffffffff81111561390457613903613162565b5b6139108582860161327f565b9150509250929050565b6000806000606084860312156139335761393261315d565b5b600084013567ffffffffffffffff81111561395157613950613162565b5b61395d8682870161327f565b935050602061396e868287016132c4565b925050604061397f868287016132c4565b9150509250925092565b60006020828403121561399f5761399e61315d565b5b60006139ad848285016132c4565b91505092915050565b6139bf81613117565b81146139ca57600080fd5b50565b6000813590506139dc816139b6565b92915050565b6000602082840312156139f8576139f761315d565b5b6000613a06848285016139cd565b91505092915050565b600080600060608486031215613a2857613a2761315d565b5b6000613a36868287016132c4565b9350506020613a47868287016132c4565b9250506040613a58868287016132c4565b9150509250925092565b600081905092915050565b6000613a7882613538565b613a828185613a62565b9350613a92818560208601613554565b80840191505092915050565b6000613aaa8284613a6d565b915081905092915050565b7f4e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b6000613aeb600e83613543565b9150613af682613ab5565b602082019050919050565b60006020820190508181036000830152613b1a81613ade565b9050919050565b6000606082019050613b366000830186613129565b613b436020830185613129565b613b5060408301846130cd565b949350505050565b600081519050613b6781613714565b92915050565b600060208284031215613b8357613b8261315d565b5b6000613b9184828501613b58565b91505092915050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b6000613bd0600f83613543565b9150613bdb82613b9a565b602082019050919050565b60006020820190508181036000830152613bff81613bc3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613c40826130c3565b9150613c4b836130c3565b9250828201905080821115613c6357613c62613c06565b5b92915050565b60006040820190508181036000830152613c83818561357e565b9050613c9260208301846130cd565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d0f57607f821691505b602082108103613d2257613d21613cc8565b5b50919050565b60008190508160005260206000209050919050565b60008154613d4a81613cf7565b613d548186613a62565b94506001821660008114613d6f5760018114613d8457613db7565b60ff1983168652811515820286019350613db7565b613d8d85613d28565b60005b83811015613daf57815481890152600182019150602081019050613d90565b838801955050505b50505092915050565b6000613dcc8284613d3d565b915081905092915050565b6000604082019050613dec6000830185613129565b613df960208301846130cd565b9392505050565b6000613e0b826130c3565b9150613e16836130c3565b9250828203905081811115613e2e57613e2d613c06565b5b92915050565b60008154613e4181613cf7565b613e4b8186613543565b94506001821660008114613e665760018114613e7c57613eaf565b60ff198316865281151560200286019350613eaf565b613e8585613d28565b60005b83811015613ea757815481890152600182019150602081019050613e88565b808801955050505b50505092915050565b60006060820190508181036000830152613ed2818661357e565b90508181036020830152613ee68185613e34565b9050613ef560408301846130cd565b949350505050565b7f496e73756666696369656e742066756e64730000000000000000000000000000600082015250565b6000613f33601283613543565b9150613f3e82613efd565b602082019050919050565b60006020820190508181036000830152613f6281613f26565b9050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613fb67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613f79565b613fc08683613f79565b95508019841693508086168417925050509392505050565b6000819050919050565b6000613ffd613ff8613ff3846130c3565b613fd8565b6130c3565b9050919050565b6000819050919050565b61401783613fe2565b61402b61402382614004565b848454613f86565b825550505050565b600090565b614040614033565b61404b81848461400e565b505050565b5b8181101561406f57614064600082614038565b600181019050614051565b5050565b601f8211156140b45761408581613d28565b61408e84613f69565b8101602085101561409d578190505b6140b16140a985613f69565b830182614050565b50505b505050565b600082821c905092915050565b60006140d7600019846008026140b9565b1980831691505092915050565b60006140f083836140c6565b9150826002028217905092915050565b61410982613538565b67ffffffffffffffff81111561412257614121613182565b5b61412c8254613cf7565b614137828285614073565b600060209050601f83116001811461416a5760008415614158578287015190505b61416285826140e4565b8655506141ca565b601f19841661417886613d28565b60005b828110156141a05784890151825560018201915060208501945060208101905061417b565b868310156141bd57848901516141b9601f8916826140c6565b8355505b6001600288020188555050505b505050505050565b600060608201905081810360008301526141ec818661357e565b90508181036020830152614200818561357e565b905061420f60408301846130cd565b949350505050565b7f457363726f7720616c7265616479206578697374730000000000000000000000600082015250565b600061424d601583613543565b915061425882614217565b602082019050919050565b6000602082019050818103600083015261427c81614240565b9050919050565b7f457363726f77206c6f636b656400000000000000000000000000000000000000600082015250565b60006142b9600d83613543565b91506142c482614283565b602082019050919050565b600060208201905081810360008301526142e8816142ac565b9050919050565b7f496e73756666696369656e7420776974686472617761626c6520616d6f756e74600082015250565b6000614325602083613543565b9150614330826142ef565b602082019050919050565b6000602082019050818103600083015261435481614318565b9050919050565b7f4172726179206c656e67746873206d757374206d617463680000000000000000600082015250565b6000614391601883613543565b915061439c8261435b565b602082019050919050565b600060208201905081810360008301526143c081614384565b9050919050565b7f496e76616c696420726571756573740000000000000000000000000000000000600082015250565b60006143fd600f83613543565b9150614408826143c7565b602082019050919050565b6000602082019050818103600083015261442c816143f0565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b600061447b82613538565b614485818561445f565b9350614495818560208601613554565b61449e81613171565b840191505092915050565b60006144b58383614470565b905092915050565b6000602082019050919050565b60006144d582614433565b6144df818561443e565b9350836020820285016144f18561444f565b8060005b8581101561452d578484038952815161450e85826144a9565b9450614519836144bd565b925060208a019950506001810190506144f5565b50829750879550505050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61457481613708565b82525050565b6000614586838361456b565b60208301905092915050565b6000602082019050919050565b60006145aa8261453f565b6145b4818561454a565b93506145bf8361455b565b8060005b838110156145f05781516145d7888261457a565b97506145e283614592565b9250506001810190506145c3565b5085935050505092915050565b6000604082019050818103600083015261461781856144ca565b9050818103602083015261462b818461459f565b90509392505050565b7f4e4f54204f574e45520000000000000000000000000000000000000000000000600082015250565b600061466a600983613543565b915061467582614634565b602082019050919050565b600060208201905081810360008301526146998161465d565b9050919050565b7f5a45524f20414444524553530000000000000000000000000000000000000000600082015250565b60006146d6600c83613543565b91506146e1826146a0565b602082019050919050565b60006020820190508181036000830152614705816146c9565b9050919050565b60006040820190506147216000830185613129565b61472e6020830184613129565b9392505050565b6000614740826130c3565b915061474b836130c3565b9250828202614759816130c3565b915082820484148315176147705761476f613c06565b5b509291505056fea2646970667358221220e9e3ad8264ea13ddcae7e70f067bf61300c249f73055a5f0674465860a1800f564736f6c63430008180033