2.9k txs
5.1k calls
constructor
constructor()
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getBandId
viewfunction getBandId(uint32 collectionId, uint256 tokenId) view returns (uint256)
getBandInfos
viewfunction getBandInfos(uint32 collectionId, uint256[] bandIds) view returns (tuple[])
getBandMembers
viewfunction getBandMembers(uint32 collectionId, uint256 bandId) view returns (uint256[])
getBandsByOwner
viewfunction getBandsByOwner(address owner, uint32 collectionId) view returns (uint256[])
getEmissionRateGWEI
viewfunction getEmissionRateGWEI(uint8 collectionId) view returns (uint256)
getGodzInfo
viewfunction getGodzInfo(uint32 collectionId, uint256 tokenId) view returns (tuple)
getGodzInfos
viewfunction getGodzInfos(uint32 collectionId, uint256[] tokenIds) view returns (tuple[])
getRewardBonus
viewfunction getRewardBonus(uint32 collectionId, uint256 tokenId) view returns (uint32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getSeasonalBonus
viewfunction getSeasonalBonus(uint8 collectionId) view returns (uint32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
MANAGER_ROLE
viewfunction MANAGER_ROLE() view returns (bytes32)
owner
viewfunction owner() view returns (address)
pillarz
viewfunction pillarz() view returns (address)
rewards
viewfunction rewards() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tokenContracts
viewfunction tokenContracts(uint256) view returns (address)
unclaimedBandRewards
viewfunction unclaimedBandRewards(uint32 collectionId, uint256[] bands) view returns (uint256[] _bandIds, uint256[] _unclaimed, uint32[] _bonus)
unclaimedTokenRewards
viewfunction unclaimedTokenRewards(uint32 collectionId, address owner, uint256[] tokenIds) view returns (uint256[] _tokenIds, uint256[] _unclaimed, uint32[] _bonus, uint8 _pillarBonus)
changeTokenContracts
nonpayablefunction changeTokenContracts(uint32 collectionId, address _contract)
claimBatchBands
nonpayablefunction claimBatchBands(uint32 collectionId, uint256[] bandIds)
claimBatchTokens
nonpayablefunction claimBatchTokens(uint32 collectionId, uint256[] tokenIds)
claimSingleBand
nonpayablefunction claimSingleBand(uint32 collectionId, uint256 bandId)
claimSingleToken
nonpayablefunction claimSingleToken(uint32 collectionId, uint256 _tokenId)
createBand
nonpayablefunction createBand(uint32 collectionId, string name, uint256[] _tokenIds)
disband
nonpayablefunction disband(uint32 collectionId, uint256 bandId)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceOwnership
nonpayablefunction renounceOwnership()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setArtifactsContract
nonpayablefunction setArtifactsContract(address _contract)
setEmissionRateGWEI
nonpayablefunction setEmissionRateGWEI(uint8 collectionId, uint256 _rateGwei)
setGodzType
nonpayablefunction setGodzType(uint32 collectionId, uint256[] tokens, uint8 setType)
setPillarzContract
nonpayablefunction setPillarzContract(address _contract)
setRewardBonus
nonpayablefunction setRewardBonus(uint32 collectionId, uint256[] tokens, uint8 setBonus)
setRewardTokenID
nonpayablefunction setRewardTokenID(uint256 collectionId, uint8 _godzType, uint256 tokenId)
setSeasonalBonus
nonpayablefunction setSeasonalBonus(uint32 collectionId, uint8 _seasonalBonus)
setTokenContractAndRateGWEI
nonpayablefunction setTokenContractAndRateGWEI(address _contract, uint256 _rateGwei)
setTokenContracts
nonpayablefunction setTokenContracts(address _contract)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
payablefunction withdraw() payable
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506200001d3362000061565b60016002556200002f600033620000b1565b6200005b7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0833620000b1565b6200013a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16620001365760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45b5050565b613e02806200014a6000396000f3fe6080604052600436106102515760003560e01c80635931d41b116101395780638da5cb5b116100b6578063d547741f1161007a578063d547741f146107ae578063d9bb546d146107ce578063e79a6668146107fd578063ec87621c1461081d578063f2fde38b1461083f578063fc9b55ea1461085f57600080fd5b80638da5cb5b1461071b57806391d14854146107395780639ec5a89414610759578063a217fddf14610779578063a77175041461078e57600080fd5b806370782666116100fd5780637078266614610650578063715018a61461069357806386c0ac58146106a85780638ba40eed146106c85780638bd153bd146106e857600080fd5b80635931d41b146105535780635a9d7343146105835780635cc47306146105a35780635e6962f1146105d0578063651d95e51461063057600080fd5b80632f2ff15d116101d257806349b7634c1161019657806349b7634c146104795780634dd37fce146104995780634f6b73b4146104b957806355e15335146104e657806355ea5a6c1461050657806357cdf3b41461053357600080fd5b80632f2ff15d146103f15780633519c3ce1461041157806336568abe146104315780633ccfd60b14610451578063429ad77e1461045957600080fd5b80631d961905116102195780631d961905146103255780631d9fb3091461034557806321b6f1ed14610365578063248a9ca3146103925780632c301d18146103d157600080fd5b806301ffc9a71461025657806302c5b7bb1461028b5780630a758aab146102ad5780630f169301146102cd57806313af75d3146102ed575b600080fd5b34801561026257600080fd5b506102766102713660046132e5565b61087f565b60405190151581526020015b60405180910390f35b34801561029757600080fd5b506102ab6102a6366004613382565b6108b6565b005b3480156102b957600080fd5b506102ab6102c83660046133e7565b610961565b3480156102d957600080fd5b506102ab6102e8366004613382565b610a10565b3480156102f957600080fd5b5060045461030d906001600160a01b031681565b6040516001600160a01b039091168152602001610282565b34801561033157600080fd5b506102ab610340366004613439565b610ab2565b34801561035157600080fd5b5061030d6103603660046134e7565b611103565b34801561037157600080fd5b50610385610380366004613516565b61112d565b6040516102829190613671565b34801561039e57600080fd5b506103c36103ad3660046134e7565b6000908152600160208190526040909120015490565b604051908152602001610282565b3480156103dd57600080fd5b506102ab6103ec366004613735565b61139b565b3480156103fd57600080fd5b506102ab61040c366004613782565b6113c7565b34801561041d57600080fd5b506102ab61042c3660046137b2565b6113ed565b34801561043d57600080fd5b506102ab61044c366004613782565b611420565b6102ab61149e565b34801561046557600080fd5b506102ab6104743660046137de565b611509565b34801561048557600080fd5b506102ab61049436600461380a565b61154c565b3480156104a557600080fd5b506102ab6104b4366004613828565b6115d8565b3480156104c557600080fd5b506104d96104d4366004613828565b611635565b6040516102829190613844565b3480156104f257600080fd5b506102ab610501366004613889565b6116dc565b34801561051257600080fd5b50610526610521366004613516565b611776565b60405161028291906138b5565b34801561053f57600080fd5b506102ab61054e366004613828565b6118e0565b34801561055f57600080fd5b5061057361056e36600461393a565b611943565b60405161028294939291906139d2565b34801561058f57600080fd5b506102ab61059e366004613a20565b611be0565b3480156105af57600080fd5b506105c36105be366004613a3d565b611c0e565b6040516102829190613a72565b3480156105dc57600080fd5b5061061b6105eb366004613828565b63ffffffff9182166000908152600660209081526040808320938352929052206003015464010000000090041690565b60405163ffffffff9091168152602001610282565b34801561063c57600080fd5b506102ab61064b366004613a20565b611c89565b34801561065c57600080fd5b506103c361066b366004613828565b63ffffffff919091166000908152600660209081526040808320938352929052206002015490565b34801561069f57600080fd5b506102ab611d1e565b3480156106b457600080fd5b506102ab6106c33660046133e7565b611d32565b3480156106d457600080fd5b506102ab6106e3366004613828565b611e2a565b3480156106f457600080fd5b5061061b610703366004613a85565b60ff9081166000908152600c60205260409020541690565b34801561072757600080fd5b506000546001600160a01b031661030d565b34801561074557600080fd5b50610276610754366004613782565b611efd565b34801561076557600080fd5b5060035461030d906001600160a01b031681565b34801561078557600080fd5b506103c3600081565b34801561079a57600080fd5b506103c36107a9366004613a85565b611f28565b3480156107ba57600080fd5b506102ab6107c9366004613782565b611f52565b3480156107da57600080fd5b506107ee6107e93660046133e7565b611f78565b60405161028293929190613aa2565b34801561080957600080fd5b506105c3610818366004613828565b6121d2565b34801561082957600080fd5b506103c3600080516020613dad83398151915281565b34801561084b57600080fd5b506102ab61085a366004613a20565b612247565b34801561086b57600080fd5b506102ab61087a366004613a20565b6122c0565b60006001600160e01b03198216637965db0b60e01b14806108b057506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020613dad8339815191526108ce816122ee565b8260005b818163ffffffff161015610958578360ff16600660008963ffffffff168152602001908152602001600020600088888563ffffffff1681811061091757610917613ae5565b90506020020135815260200190815260200160002060030160046101000a81548163ffffffff021916908363ffffffff1602179055508060010190506108d2565b50505050505050565b6109696122f8565b8060005b818163ffffffff1610156109ff576109a38585858463ffffffff1681811061099757610997613ae5565b9050602002013561234f565b1561096d57600084848363ffffffff168181106109c2576109c2613ae5565b9050602002013511156109f7576109f78585858463ffffffff168181106109eb576109eb613ae5565b90506020020135612384565b60010161096d565b5050610a0b6001600255565b505050565b600080516020613dad833981519152610a28816122ee565b8260005b818163ffffffff161015610958578360ff16600660008963ffffffff168152602001908152602001600020600088888563ffffffff16818110610a7157610a71613ae5565b90506020020135815260200190815260200160002060030160006101000a81548163ffffffff021916908363ffffffff160217905550806001019050610a2c565b610aba6122f8565b60068114610af75760405162461bcd60e51b81526020600482015260056024820152642732b2b21b60d91b60448201526064015b60405180910390fd5b60005b60068163ffffffff161015610c225763ffffffff86811660009081526006602052604081209183169190858584818110610b3657610b36613ae5565b602090810292909201358352508101919091526040016000206003015463ffffffff1614610b905760405162461bcd60e51b815260206004820152600760248201526610985910985b9960ca1b6044820152606401610aee565b6000600660008863ffffffff168152602001908152602001600020600085858563ffffffff16818110610bc557610bc5613ae5565b905060200201358152602001908152602001600020600201541115610c1a5760405162461bcd60e51b815260206004820152600b60248201526a105b1c9958591e50985b9960aa1b6044820152606401610aee565b600101610afa565b50600042338785856000818110610c3b57610c3b613ae5565b9050602002013586866001818110610c5557610c55613ae5565b9050602002013587876002818110610c6f57610c6f613ae5565b9050602002013588886003818110610c8957610c89613ae5565b9050602002013589896004818110610ca357610ca3613ae5565b905060200201358a8a6005818110610cbd57610cbd613ae5565b90506020020135604051602001610d339998979695949392919098895260609790971b6bffffffffffffffffffffffff1916602089015260e09590951b6001600160e01b0319166034880152603887019390935260588601919091526078850152609884015260b883015260d882015260f80190565b60408051601f1981840301815291905280516020909101209050600160005b60068163ffffffff161015610de1576000600660008a63ffffffff168152602001908152602001600020600087878563ffffffff16818110610d9657610d96613ae5565b60209081029290920135835250810191909152604001600020600281018590556003810154909150610dd690640100000000900463ffffffff1684613b11565b925050600101610d52565b506000610df36402540be40083613b28565b90506101f48163ffffffff1611610e0a5780610e0e565b6101f45b90506040518060c0016040528042815260200160008152602001336001600160a01b0316815260200188888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525063ffffffff8316602080830191909152604080518883028181018401835289825291909301929189918991829190850190849080828437600092018290525093909452505063ffffffff8b16815260076020908152604080832088845282529182902084518155908401516001820155908301516002820180546001600160a01b0319166001600160a01b0390921691909117905560608301519091506003820190610f1c9082613bca565b50608082015160048201805463ffffffff191663ffffffff90921691909117905560a08201518051610f58916005840191602090910190613231565b50505063ffffffff88166000908152600960209081526040808320338452909152902054801561109d576000610f8f600183613c89565b63ffffffff8b166000908152600960209081526040808320338452909152902080549192509082908110610fc557610fc5613ae5565b90600052602060002001546000036110465763ffffffff8a166000908152600960209081526040808320338452909152902080548691908390811061100c5761100c613ae5565b600091825260208083209091019290925563ffffffff8c168152600a82526040808220338352835280822088835290925220819055611097565b63ffffffff8a166000818152600960209081526040808320338085529083528184208054600181018255908552838520018a9055938352600a82528083209383529281528282208883529052208290555b506110ee565b63ffffffff8916600081815260096020908152604080832033808552908352818420805460018101825590855283852001899055938352600a82528083209383529281528282208783529052908120555b505050506110fc6001600255565b5050505050565b6005818154811061111357600080fd5b6000918252602090912001546001600160a01b0316905081565b80516060906000816001600160401b0381111561114c5761114c613500565b6040519080825280602002602001820160405280156111c557816020015b6111b26040518060c00160405280600081526020016000815260200160006001600160a01b0316815260200160608152602001600063ffffffff168152602001606081525090565b81526020019060019003908161116a5790505b50905060005b828163ffffffff16101561139257600760008763ffffffff1681526020019081526020016000206000868363ffffffff168151811061120c5761120c613ae5565b602002602001015181526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160038201805461128090613b4a565b80601f01602080910402602001604051908101604052809291908181526020018280546112ac90613b4a565b80156112f95780601f106112ce576101008083540402835291602001916112f9565b820191906000526020600020905b8154815290600101906020018083116112dc57829003601f168201915b5050509183525050600482015463ffffffff16602080830191909152600583018054604080518285028101850182528281529401939283018282801561135e57602002820191906000526020600020905b81548152602001906001019080831161134a575b505050505081525050828263ffffffff168151811061137f5761137f613ae5565b60209081029190910101526001016111cb565b50949350505050565b60006113a6816122ee565b50600092835260086020908152604080852060ff9094168552929052912055565b600082815260016020819052604090912001546113e3816122ee565b610a0b838361251c565b60006113f8816122ee565b81600b8460ff168154811061140f5761140f613ae5565b600091825260209091200155505050565b6001600160a01b03811633146114905760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610aee565b61149a8282612587565b5050565b60006114a9816122ee565b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146114f6576040519150601f19603f3d011682016040523d82523d6000602084013e6114fb565b606091505b505090508061149a57600080fd5b600080516020613dad833981519152611521816122ee565b5063ffffffff919091166000908152600c60205260409020805460ff191660ff909216919091179055565b6000611557816122ee565b506005805460018082019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b039490941693909317909255600b805492830181556000527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db990910155565b806000036115e4575050565b6115ee828261234f565b6116255760405162461bcd60e51b81526020600482015260086024820152672737ba27bbb732b960c11b6044820152606401610aee565b61149a8263ffffffff16826125ee565b6116736040518060a00160405280600081526020016000815260200160008152602001600063ffffffff168152602001600063ffffffff1681525090565b5063ffffffff918216600090815260066020908152604080832093835292815290829020825160a0810184528154815260018201549281019290925260028101549282019290925260039091015480831660608301526401000000009004909116608082015290565b60006116e7816122ee565b60055463ffffffff8416106117295760405162461bcd60e51b8152602060048201526008602482015267139bdd115e1a5cdd60c21b6044820152606401610aee565b8160058463ffffffff168154811061174357611743613ae5565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550505050565b6060600082516001600160401b0381111561179357611793613500565b60405190808252806020026020018201604052801561180257816020015b6117ef6040518060a00160405280600081526020016000815260200160008152602001600063ffffffff168152602001600063ffffffff1681525090565b8152602001906001900390816117b15790505b50835190915060005b818163ffffffff1610156118d657600660008763ffffffff1681526020019081526020016000206000868363ffffffff168151811061184c5761184c613ae5565b6020908102919091018101518252818101929092526040908101600020815160a081018352815481526001820154938101939093526002810154918301919091526003015463ffffffff8082166060840152640100000000909104811660808301528451859184169081106118c3576118c3613ae5565b602090810291909101015260010161180b565b5090949350505050565b6118e86122f8565b8015611939576118f8828261234f565b61192f5760405162461bcd60e51b8152602060048201526008602482015267139bdd13dddb995960c21b6044820152606401610aee565b6119398282612384565b61149a6001600255565b6060808060008481816001600160401b0381111561196357611963613500565b60405190808252806020026020018201604052801561198c578160200160208202803683370190505b5090506000826001600160401b038111156119a9576119a9613500565b6040519080825280602002602001820160405280156119d2578160200160208202803683370190505b50600480546040516304aa891760e41b81526001600160a01b038e811693820193909352929350600092911690634aa8917090602401602060405180830381865afa158015611a25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a499190613c9c565b905060005b848163ffffffff161015611b8a576000600660008f63ffffffff16815260200190815260200160002060008d8d8563ffffffff16818110611a9157611a91613ae5565b60209081029290920135835250818101929092526040908101600020815160a081018352815481526001820154938101939093526002810154918301919091526003015463ffffffff808216606084015264010000000090910481166080830181905286519293509186918516908110611b0d57611b0d613ae5565b602002602001019063ffffffff16908163ffffffff16815250508060400151600003611b8157611b5c8e8d8d8563ffffffff16818110611b4f57611b4f613ae5565b90506020020135856129e2565b858363ffffffff1681518110611b7457611b74613ae5565b6020026020010181815250505b50600101611a4e565b508989848484848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929f50949d50929b50909950505050505050505050945094509450949050565b6000611beb816122ee565b50600480546001600160a01b0319166001600160a01b0392909216919091179055565b63ffffffff811660009081526009602090815260408083206001600160a01b03861684528252808320805482518185028101850190935280835260609493830182828015611c7b57602002820191906000526020600020905b815481526020019060010190808311611c67575b509398975050505050505050565b6000611c94816122ee565b506005805460018082019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b039390931692909217909155600b80549182018155600052670de0b6b3a76400007f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db990910155565b611d26612b5c565b611d306000612bb6565b565b611d3a6122f8565b600480546040516304aa891760e41b8152339281019290925282916000916001600160a01b031690634aa8917090602401602060405180830381865afa158015611d88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dac9190613c9c565b905060005b828163ffffffff161015611e1d57611de78686868463ffffffff16818110611ddb57611ddb613ae5565b90506020020135612c06565b15611db157611e158686868463ffffffff16818110611e0857611e08613ae5565b9050602002013584612cb2565b600101611db1565b505050610a0b6001600255565b611e326122f8565b611e3c8282612c06565b611e735760405162461bcd60e51b8152602060048201526008602482015267139bdd13dddb995960c21b6044820152606401610aee565b600480546040516304aa891760e41b815233928101929092526000916001600160a01b0390911690634aa8917090602401602060405180830381865afa158015611ec1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee59190613c9c565b9050611ef2838383612cb2565b5061149a6001600255565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000600b8260ff1681548110611f4057611f40613ae5565b90600052602060002001549050919050565b60008281526001602081905260409091200154611f6e816122ee565b610a0b8383612587565b60608080836000816001600160401b03811115611f9757611f97613500565b604051908082528060200260200182016040528015611fc0578160200160208202803683370190505b5090506000826001600160401b03811115611fdd57611fdd613500565b604051908082528060200260200182016040528015612006578160200160208202803683370190505b50905060005b838163ffffffff16101561218357600089898363ffffffff1681811061203457612034613ae5565b905060200201351115612120576120698a8a8a8463ffffffff1681811061205d5761205d613ae5565b90506020020135612d12565b838263ffffffff168151811061208157612081613ae5565b602002602001018181525050600760008b63ffffffff16815260200190815260200160002060008a8a8463ffffffff168181106120c0576120c0613ae5565b90506020020135815260200190815260200160002060040160009054906101000a900463ffffffff16828263ffffffff168151811061210157612101613ae5565b602002602001019063ffffffff16908163ffffffff168152505061217b565b6000838263ffffffff168151811061213a5761213a613ae5565b6020026020010181815250506000828263ffffffff168151811061216057612160613ae5565b602002602001019063ffffffff16908163ffffffff16815250505b60010161200c565b5087878383838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929c50939a50919850505050505050505093509350939050565b63ffffffff8216600090815260076020908152604080832084845282529182902060050180548351818402810184019094528084526060939283018282801561223a57602002820191906000526020600020905b815481526020019060010190808311612226575b5050505050905092915050565b61224f612b5c565b6001600160a01b0381166122b45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610aee565b6122bd81612bb6565b50565b60006122cb816122ee565b50600380546001600160a01b0319166001600160a01b0392909216919091179055565b6122bd8133612f3b565b60028054036123495760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610aee565b60028055565b63ffffffff821660009081526007602090815260408083208484529091529020600201546001600160a01b0316331492915050565b80600003612390575050565b63ffffffff8216600090815260076020908152604080832084845282528083206005810180548351818602810186019094528084529194939091908301828280156123fa57602002820191906000526020600020905b8154815260200190600101908083116123e6575b5050505050905060005b60068163ffffffff1610156124585761243c85838363ffffffff168151811061242f5761242f613ae5565b6020026020010151612c06565b612450576110fc8563ffffffff16856125ee565b600101612404565b5060008061246e6124698787612d12565b612f94565b42865560018601819055909250905081156125145763ffffffff861660009081526008602090815260408083206006845290915290819020546003549151630ab714fb60e11b8152336004820152602481018290526044810185905290916001600160a01b03169063156e29f6906064015b600060405180830381600087803b1580156124fa57600080fd5b505af115801561250e573d6000803e3d6000fd5b50505050505b505050505050565b6125268282611efd565b61149a5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6125918282611efd565b1561149a5760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b806000036125fa575050565b60008281526007602090815260408083208484528252808320815160c0810183528154815260018201549381019390935260028101546001600160a01b03169183019190915260038101805460608401919061265590613b4a565b80601f016020809104026020016040519081016040528092919081815260200182805461268190613b4a565b80156126ce5780601f106126a3576101008083540402835291602001916126ce565b820191906000526020600020905b8154815290600101906020018083116126b157829003601f168201915b5050509183525050600482015463ffffffff16602080830191909152600583018054604080518285028101850182528281529401939283018282801561273357602002820191906000526020600020905b81548152602001906001019080831161271f575b505050505081525050905060005b60068163ffffffff1610156127f057600084815260066020526040812060a0840151805183919063ffffffff861690811061277e5761277e613ae5565b6020026020010151815260200190815260200160002060020181905550426006600086815260200190815260200160002060008460a001518463ffffffff16815181106127cd576127cd613ae5565b602090810291909101810151825281019190915260400160002055600101612741565b5060008381526007602090815260408083208584529091528120818155600181018290556002810180546001600160a01b031916905590612834600383018261327c565b60048201805463ffffffff191690556128516005830160006132b6565b50506040808201516000858152600960209081528382206001600160a01b0384168084529082528483208054898552600a84528685209285529183528584208885529092529390912054919290916001821180156128b957506128b5600183613c89565b8114155b15612963576000878152600a602090815260408083206001600160a01b038816845290915281208291856128ee600187613c89565b815481106128fe576128fe613ae5565b9060005260206000200154815260200190815260200160002081905550826001836129299190613c89565b8154811061293957612939613ae5565b906000526020600020015483828154811061295657612956613ae5565b6000918252602090912001555b60008781526009602090815260408083206001600160a01b03881684529091529020612990600184613c89565b815481106129a0576129a0613ae5565b60009182526020808320909101829055978152600a885260408082206001600160a01b0390961682529488528481209681529590965250508220919091555050565b63ffffffff80841660009081526006602090815260408083208684528252808320815160a0810183528154808252600183015494820194909452600282015492810192909252600301548085166060830152640100000000900490931660808401529091908203612a7957600b8563ffffffff1681548110612a6657612a66613ae5565b9060005260206000200154915050612b55565b80514211612a8b576000915050612b55565b8051600090612a9a9042613c89565b63ffffffff87166000908152600c60205260408120546080850151929350909160ff91821691612acd9190881690613cb9565b612ad79190613cb9565b63ffffffff16905060006201518082600b8a63ffffffff1681548110612aff57612aff613ae5565b9060005260206000200154612b149190613b11565b612b1e9190613b28565b905060006064612b2e8386613b11565b612b389190613b28565b90506000856020015182612b4c9190613cdd565b96505050505050505b9392505050565b6000546001600160a01b03163314611d305760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000336001600160a01b031660058463ffffffff1681548110612c2b57612c2b613ae5565b6000918252602090912001546040516331a9108f60e11b8152600481018590526001600160a01b0390911690636352211e90602401602060405180830381865afa158015612c7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ca19190613cf0565b6001600160a01b0316149392505050565b63ffffffff8316600090815260066020908152604080832085845290915281206002015490819003612cee57612ce9848484612fd6565b612d0c565b612cf8848261234f565b612d0c57612d0c8463ffffffff16826125ee565b50505050565b63ffffffff821660009081526007602090815260408083208484528252808320815160c0810183528154815260018201549381019390935260028101546001600160a01b031691830191909152600381018054849392916060840191612d7790613b4a565b80601f0160208091040260200160405190810160405280929190818152602001828054612da390613b4a565b8015612df05780601f10612dc557610100808354040283529160200191612df0565b820191906000526020600020905b815481529060010190602001808311612dd357829003601f168201915b5050509183525050600482015463ffffffff166020808301919091526005830180546040805182850281018501825282815294019392830182828015612e5557602002820191906000526020600020905b815481526020019060010190808311612e41575b50505050508152505090508060000151600003612e9857600b8463ffffffff1681548110612e8557612e85613ae5565b90600052602060002001549150506108b0565b80514211612eaa5760009150506108b0565b8051600090612eb99042613c89565b9050600062015180836080015163ffffffff16600b8863ffffffff1681548110612ee557612ee5613ae5565b9060005260206000200154612efa9190613b11565b612f049190613b28565b905060006064612f148385613b11565b612f1e9190613b28565b9050836020015181612f309190613cdd565b979650505050505050565b612f458282611efd565b61149a57612f5281613084565b612f5d836020613096565b604051602001612f6e929190613d0d565b60408051601f198184030181529082905262461bcd60e51b8252610aee91600401613d82565b60008080612faa670de0b6b3a764000085613b28565b90506000612fc082670de0b6b3a7640000613b11565b612fca9086613c89565b91959194509092505050565b600080612fe76124698686866129e2565b63ffffffff87166000908152600660209081526040808320898452909152902042815560018101829055919350915082156125145763ffffffff86811660009081526008602090815260408083206003868101549095168452909152908190205491549051630ab714fb60e11b815233600482015260248101839052604481018690526001600160a01b039091169063156e29f6906064016124e0565b60606108b06001600160a01b03831660145b606060006130a5836002613b11565b6130b0906002613cdd565b6001600160401b038111156130c7576130c7613500565b6040519080825280601f01601f1916602001820160405280156130f1576020820181803683370190505b509050600360fc1b8160008151811061310c5761310c613ae5565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061313b5761313b613ae5565b60200101906001600160f81b031916908160001a905350600061315f846002613b11565b61316a906001613cdd565b90505b60018111156131e2576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061319e5761319e613ae5565b1a60f81b8282815181106131b4576131b4613ae5565b60200101906001600160f81b031916908160001a90535060049490941c936131db81613d95565b905061316d565b508315612b555760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610aee565b82805482825590600052602060002090810192821561326c579160200282015b8281111561326c578251825591602001919060010190613251565b506132789291506132d0565b5090565b50805461328890613b4a565b6000825580601f10613298575050565b601f0160209004906000526020600020908101906122bd91906132d0565b50805460008255906000526020600020908101906122bd91905b5b8082111561327857600081556001016132d1565b6000602082840312156132f757600080fd5b81356001600160e01b031981168114612b5557600080fd5b803563ffffffff8116811461332357600080fd5b919050565b60008083601f84011261333a57600080fd5b5081356001600160401b0381111561335157600080fd5b6020830191508360208260051b850101111561336c57600080fd5b9250929050565b60ff811681146122bd57600080fd5b6000806000806060858703121561339857600080fd5b6133a18561330f565b935060208501356001600160401b038111156133bc57600080fd5b6133c887828801613328565b90945092505060408501356133dc81613373565b939692955090935050565b6000806000604084860312156133fc57600080fd5b6134058461330f565b925060208401356001600160401b0381111561342057600080fd5b61342c86828701613328565b9497909650939450505050565b60008060008060006060868803121561345157600080fd5b61345a8661330f565b945060208601356001600160401b038082111561347657600080fd5b818801915088601f83011261348a57600080fd5b81358181111561349957600080fd5b8960208285010111156134ab57600080fd5b6020830196508095505060408801359150808211156134c957600080fd5b506134d688828901613328565b969995985093965092949392505050565b6000602082840312156134f957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561352957600080fd5b6135328361330f565b91506020808401356001600160401b038082111561354f57600080fd5b818601915086601f83011261356357600080fd5b81358181111561357557613575613500565b8060051b604051601f19603f8301168101818110858211171561359a5761359a613500565b6040529182528482019250838101850191898311156135b857600080fd5b938501935b828510156135d6578435845293850193928501926135bd565b8096505050505050509250929050565b60005b838110156136015781810151838201526020016135e9565b50506000910152565b600081518084526136228160208601602086016135e6565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b838110156136665781518752958201959082019060010161364a565b509495945050505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561372757888303603f190185528151805184528781015188850152868101516001600160a01b03168785015260608082015160c082870181905291906136e48388018261360a565b92505050608063ffffffff8184015116818701525060a080830151925085820381870152506137138183613636565b968901969450505090860190600101613698565b509098975050505050505050565b60008060006060848603121561374a57600080fd5b83359250602084013561375c81613373565b929592945050506040919091013590565b6001600160a01b03811681146122bd57600080fd5b6000806040838503121561379557600080fd5b8235915060208301356137a78161376d565b809150509250929050565b600080604083850312156137c557600080fd5b82356137d081613373565b946020939093013593505050565b600080604083850312156137f157600080fd5b6137fa8361330f565b915060208301356137a781613373565b6000806040838503121561381d57600080fd5b82356137d08161376d565b6000806040838503121561383b57600080fd5b6137d08361330f565b60a081016108b08284805182526020810151602083015260408101516040830152606081015163ffffffff808216606085015280608084015116608085015250505050565b6000806040838503121561389c57600080fd5b6138a58361330f565b915060208301356137a78161376d565b6020808252825182820181905260009190848201906040850190845b8181101561392e5761391b838551805182526020810151602083015260408101516040830152606081015163ffffffff808216606085015280608084015116608085015250505050565b9284019260a092909201916001016138d1565b50909695505050505050565b6000806000806060858703121561395057600080fd5b6139598561330f565b935060208501356139698161376d565b925060408501356001600160401b0381111561398457600080fd5b61399087828801613328565b95989497509550505050565b600081518084526020808501945080840160005b8381101561366657815163ffffffff16875295820195908201906001016139b0565b6080815260006139e56080830187613636565b82810360208401526139f78187613636565b90508281036040840152613a0b818661399c565b91505060ff8316606083015295945050505050565b600060208284031215613a3257600080fd5b8135612b558161376d565b60008060408385031215613a5057600080fd5b8235613a5b8161376d565b9150613a696020840161330f565b90509250929050565b602081526000612b556020830184613636565b600060208284031215613a9757600080fd5b8135612b5581613373565b606081526000613ab56060830186613636565b8281036020840152613ac78186613636565b90508281036040840152613adb818561399c565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108b0576108b0613afb565b600082613b4557634e487b7160e01b600052601260045260246000fd5b500490565b600181811c90821680613b5e57607f821691505b602082108103613b7e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610a0b57600081815260208120601f850160051c81016020861015613bab5750805b601f850160051c820191505b8181101561251457828155600101613bb7565b81516001600160401b03811115613be357613be3613500565b613bf781613bf18454613b4a565b84613b84565b602080601f831160018114613c2c5760008415613c145750858301515b600019600386901b1c1916600185901b178555612514565b600085815260208120601f198616915b82811015613c5b57888601518255948401946001909101908401613c3c565b5085821015613c795787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b818103818111156108b0576108b0613afb565b600060208284031215613cae57600080fd5b8151612b5581613373565b63ffffffff818116838216019080821115613cd657613cd6613afb565b5092915050565b808201808211156108b0576108b0613afb565b600060208284031215613d0257600080fd5b8151612b558161376d565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613d458160178501602088016135e6565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613d768160288401602088016135e6565b01602801949350505050565b602081526000612b55602083018461360a565b600081613da457613da4613afb565b50600019019056fe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a2646970667358221220993f1b2e65d02b8c613da75036f5a5aed569529a065198f629e7217a710525f064736f6c63430008130033