0 txs
0 calls
constructor
No constructor.
functions
balanceOf
viewfunction balanceOf(address account, uint256 id) view returns (uint256)
balanceOfBatch
viewfunction balanceOfBatch(address[] accounts, uint256[] ids) view returns (uint256[])
checkLastGift
viewfunction checkLastGift() view returns (bool)
fairxyzAddresses
viewfunction fairxyzAddresses(address) view returns (bool)
giftingLimit
viewfunction giftingLimit() view returns (uint256)
giftTimeLimit
viewfunction giftTimeLimit() view returns (uint256)
isApprovedForAll
viewfunction isApprovedForAll(address account, address operator) view returns (bool)
lastGift
viewfunction lastGift(address, address) view returns (uint256)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
rewardRequirement
viewfunction rewardRequirement(string) view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
timeLeftToGiftAgain
viewfunction timeLeftToGiftAgain(address sender, address recipient) view returns (uint256)
uri
viewfunction uri(uint256 tokenId) view returns (string)
addWallets
nonpayablefunction addWallets(address[] newWallets)
airdrop
nonpayablefunction airdrop(address recipient, uint256 tokenId, uint256 amount)
claimReward
nonpayablefunction claimReward(string reward, uint256 expectedBurns)
gift
nonpayablefunction gift(address recipient)
initialize
nonpayablefunction initialize()
removeWallets
nonpayablefunction removeWallets(address[] newWallets)
renounceOwnership
nonpayablefunction renounceOwnership()
safeBatchTransferFrom
nonpayablefunction safeBatchTransferFrom(address from, address to, uint256[] ids, uint256[] amounts, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes data)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setGiftingLimit
nonpayablefunction setGiftingLimit(uint256 newLimit)
setNewGiftingTimeLimit
nonpayablefunction setNewGiftingTimeLimit(uint256 newGiftTimeLimit)
setRewardRequirement
nonpayablefunction setRewardRequirement(string reward, uint256 requirement)
setTokenURI
nonpayablefunction setTokenURI(uint256 tokenId, string newUri)
toggleGiftingTimeLimit
nonpayablefunction toggleGiftingTimeLimit()
topUpBalances
nonpayablefunction topUpBalances(address[] fairWallets)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
ApprovalForAll
event ApprovalForAll(address indexed account, address indexed operator, bool approved)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
GiftGranted
event GiftGranted(address gifter, address recipient)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RewardClaimed
event RewardClaimed(address gifter, string gift)
TransferBatch
event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values)
TransferSingle
event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value)
Upgraded
event Upgraded(address indexed implementation)
URI
event URI(string value, uint256 indexed id)
errors
No errors.
creation bytecode
0x60a06040523060805234801561001457600080fd5b50608051613f4061004c60003960008181610aa201528181610b5201528181610ea501528181610f55015261109a0152613f406000f3fe6080604052600436106101fd5760003560e01c806352d1902d1161011d578063cbfc4bce116100b0578063ec7f82f71161007f578063f242432a11610064578063f242432a14610648578063f2fde38b14610668578063fdc541981461068857600080fd5b8063ec7f82f714610608578063f1f85dd41461062857600080fd5b8063cbfc4bce14610552578063e00e634714610572578063e1bc296714610592578063e985e9c5146105b257600080fd5b80638da5cb5b116100ec5780638da5cb5b146104ac57806391307046146104e157806391e0487814610501578063a22cb4651461053257600080fd5b806352d1902d14610452578063715018a6146104675780638129fc1c1461047c578063849c78171461049157600080fd5b80632cfa1e68116101955780634294e96a116101645780634294e96a146103d25780634ad9b1c3146103f25780634e1273f4146104125780634f1ef2861461043f57600080fd5b80632cfa1e681461035b5780632eb2c2d61461037257806335dcd0f3146103925780633659cfe6146103b257600080fd5b8063162094c4116101d1578063162094c4146102a95780631a97d2a0146102c957806320159e83146102e957806323ba71d01461032257600080fd5b8062fdd58e1461020257806301ffc9a71461023557806308cf7d15146102655780630e89341c1461027c575b600080fd5b34801561020e57600080fd5b5061022261021d366004613388565b61069f565b6040519081526020015b60405180910390f35b34801561024157600080fd5b506102556102503660046133e0565b610781565b604051901515815260200161022c565b34801561027157600080fd5b5061027a610864565b005b34801561028857600080fd5b5061029c6102973660046133fd565b61089f565b60405161022c9190613484565b3480156102b557600080fd5b5061027a6102c43660046135a3565b610942565b3480156102d557600080fd5b5061027a6102e43660046133fd565b610968565b3480156102f557600080fd5b506102226103043660046135ea565b805160208183018101805161012f8252928201919093012091525481565b34801561032e57600080fd5b5061022261033d36600461361f565b61012e60209081526000928352604080842090915290825290205481565b34801561036757600080fd5b506102226101335481565b34801561037e57600080fd5b5061027a61038d3660046136e7565b610976565b34801561039e57600080fd5b5061027a6103ad3660046137fe565b610a3f565b3480156103be57600080fd5b5061027a6103cd366004613833565b610a8b565b3480156103de57600080fd5b5061027a6103ed36600461384e565b610c90565b3480156103fe57600080fd5b5061027a61040d3660046137fe565b610c9a565b34801561041e57600080fd5b5061043261042d366004613893565b610d36565b60405161022c9190613928565b61027a61044d36600461393b565b610e8e565b34801561045e57600080fd5b50610222611080565b34801561047357600080fd5b5061027a61116d565b34801561048857600080fd5b5061027a611181565b34801561049d57600080fd5b50610132546102559060ff1681565b3480156104b857600080fd5b5060fb5460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161022c565b3480156104ed57600080fd5b5061027a6104fc3660046133fd565b611366565b34801561050d57600080fd5b5061025561051c366004613833565b61012d6020526000908152604090205460ff1681565b34801561053e57600080fd5b5061027a61054d366004613973565b611374565b34801561055e57600080fd5b5061027a61056d366004613833565b61137f565b34801561057e57600080fd5b5061022261058d36600461361f565b611388565b34801561059e57600080fd5b5061027a6105ad3660046139af565b61139b565b3480156105be57600080fd5b506102556105cd36600461361f565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260ca6020908152604080832093909416825291909152205460ff1690565b34801561061457600080fd5b5061027a6106233660046137fe565b611431565b34801561063457600080fd5b5061027a61064336600461384e565b6114cd565b34801561065457600080fd5b5061027a6106633660046139e2565b6114fb565b34801561067457600080fd5b5061027a610683366004613833565b6115bd565b34801561069457600080fd5b506102226101315481565b600073ffffffffffffffffffffffffffffffffffffffff8316610749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201527f616c6964206f776e65720000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b50600081815260c96020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020545b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061081457507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b8061077b57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461077b565b61086c611671565b61013280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00811660ff90911615179055565b6000818152610130602052604090208054606091906108bd90613a47565b80601f01602080910402602001604051908101604052809291908181526020018280546108e990613a47565b80156109365780601f1061090b57610100808354040283529160200191610936565b820191906000526020600020905b81548152906001019060200180831161091957829003601f168201915b50505050509050919050565b61094a611671565b6000828152610130602052604090206109638282613ae0565b505050565b610970611671565b61013155565b73ffffffffffffffffffffffffffffffffffffffff851633148061099f575061099f85336105cd565b610a2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610740565b610a3885858585856116f2565b5050505050565b610a47611671565b60005b8151811015610a8757610a75828281518110610a6857610a68613bfa565b6020026020010151611a3d565b80610a7f81613c58565b915050610a4a565b5050565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610b50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610740565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610bc57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610c68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610740565b610c7181611b48565b60408051600080825260208201909252610c8d91839190611b50565b50565b610a878282611d4f565b610ca2611671565b60005b8151811015610a8757600161012d6000848481518110610cc757610cc7613bfa565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905580610d2e81613c58565b915050610ca5565b60608151835114610dc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d6174636800000000000000000000000000000000000000000000006064820152608401610740565b6000835167ffffffffffffffff811115610de557610de5613497565b604051908082528060200260200182016040528015610e0e578160200160208202803683370190505b50905060005b8451811015610e8657610e59858281518110610e3257610e32613bfa565b6020026020010151858381518110610e4c57610e4c613bfa565b602002602001015161069f565b828281518110610e6b57610e6b613bfa565b6020908102919091010152610e7f81613c58565b9050610e14565b509392505050565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610f53576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610740565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610fc87f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff161461106b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610740565b61107482611b48565b610a8782826001611b50565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610740565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b90565b611175611671565b61117f6000611ecd565b565b600054610100900460ff16158080156111a15750600054600160ff909116105b806111bb5750303b1580156111bb575060005460ff166001145b611247576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610740565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156112a557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6112bd60405180602001604052806000815250611f44565b6112c633611ecd565b6113016112e860fb5473ffffffffffffffffffffffffffffffffffffffff1690565b6000606460405180602001604052806000815250611fe4565b8015610c8d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b61136e611671565b61013355565b610a87338383612166565b610c8d816122b9565b60006113948383612596565b9392505050565b6113a3611671565b8115806113b05750816001145b611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f496e76616c696420746f6b656e204944000000000000000000000000000000006044820152606401610740565b61096383838360405180602001604052806000815250611fe4565b611439611671565b60005b8151811015610a8757600061012d600084848151811061145e5761145e613bfa565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055806114c581613c58565b91505061143c565b6114d5611671565b8061012f836040516114e79190613c90565b908152604051908190036020019020555050565b73ffffffffffffffffffffffffffffffffffffffff8516331480611524575061152485336105cd565b6115b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610740565b610a38858585858561263e565b6115c5611671565b73ffffffffffffffffffffffffffffffffffffffff8116611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610740565b610c8d81611ecd565b60fb5473ffffffffffffffffffffffffffffffffffffffff16331461117f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610740565b8151835114611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060448201527f6d69736d617463680000000000000000000000000000000000000000000000006064820152608401610740565b73ffffffffffffffffffffffffffffffffffffffff8416611826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610740565b3361183581878787878761288e565b60005b84518110156119a857600085828151811061185557611855613bfa565b60200260200101519050600085838151811061187357611873613bfa565b602090810291909101810151600084815260c98352604080822073ffffffffffffffffffffffffffffffffffffffff8e168352909352919091205490915081811015611941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201527f72207472616e73666572000000000000000000000000000000000000000000006064820152608401610740565b600083815260c96020908152604080832073ffffffffffffffffffffffffffffffffffffffff8e8116855292528083208585039055908b1682528120805484929061198d908490613cac565b92505081905550505050806119a190613c58565b9050611838565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611a1f929190613cbf565b60405180910390a4611a3581878787878761292b565b505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815261012d602052604090205460ff16611af3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f526563697069656e74206973206e6f742070617274206f6620466169722e787960448201527f7a000000000000000000000000000000000000000000000000000000000000006064820152608401610740565b6000611b0082600061069f565b90506000816101315411611b15576000611b24565b8161013154611b249190613ced565b90508015610963576109638360008360405180602001604052806000815250611fe4565b610c8d611671565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611b835761096383612bb5565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c08575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611c0591810190613d00565b60015b611c94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608401610740565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611d43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152608401610740565b50610963838383612cbf565b60008111611d5c57600080fd5b8061012f83604051611d6e9190613c90565b90815260200160405180910390205414611de4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f446f6573206e6f74206d61746368206275726e20726571756972656d656e74736044820152606401610740565b6000611df133600061069f565b905081811015611e83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f596f7520646f206e6f7420686176652073756666696369656e742062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610740565b611e8f33600184612cea565b7f6734e108c2a3c91ae94a70d29d61db4cc7cf091f37f75e234f1002481b5d80593384604051611ec0929190613d19565b60405180910390a1505050565b60fb805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16611fdb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610740565b610c8d81612f0c565b73ffffffffffffffffffffffffffffffffffffffff8416612087576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610740565b33600061209385612fac565b905060006120a085612fac565b90506120b18360008985858961288e565b600086815260c96020908152604080832073ffffffffffffffffffffffffffffffffffffffff8b168452909152812080548792906120f0908490613cac565b9091555050604080518781526020810187905273ffffffffffffffffffffffffffffffffffffffff808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461215d83600089898989612ff7565b50505050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c6600000000000000000000000000000000000000000000006064820152608401610740565b73ffffffffffffffffffffffffffffffffffffffff838116600081815260ca602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60006122c633600061069f565b905060008111612358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f53656e64657220646f6573206e6f74206861766520616e79204e465473206c6560448201527f667420746f2067696674000000000000000000000000000000000000000000006064820152608401610740565b73ffffffffffffffffffffffffffffffffffffffff8216600090815261012d602052604090205460ff1661240e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f526563697069656e74206973206e6f742070617274206f6620466169722e787960448201527f7a000000000000000000000000000000000000000000000000000000000000006064820152608401610740565b6101325460ff16156124e8576101335433600090815261012e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902054429161245b91613cac565b106124e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f506c6561736520776169742061207765656b206265747765656e20676966747360448201527f20746f207468652073616d6520656d706c6f79656500000000000000000000006064820152608401610740565b33600081815261012e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812042905561252891906001612cea565b6125448260018060405180602001604052806000815250611fe4565b6040805133815273ffffffffffffffffffffffffffffffffffffffff841660208201527fc1c0db172d644ee076c1099aaa2eac78c23945c44bf036d279ec59ab5c58bd58910160405180910390a15050565b6101335473ffffffffffffffffffffffffffffffffffffffff808416600090815261012e6020908152604080832093861683529290529081205490916125db91613cac565b421015612636576101335473ffffffffffffffffffffffffffffffffffffffff808516600090815261012e6020908152604080832093871683529290522054429161262591613cac565b61262f9190613ced565b905061077b565b50600061077b565b73ffffffffffffffffffffffffffffffffffffffff84166126e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610740565b3360006126ed85612fac565b905060006126fa85612fac565b905061270a83898985858961288e565b600086815260c96020908152604080832073ffffffffffffffffffffffffffffffffffffffff8c168452909152902054858110156127ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201527f72207472616e73666572000000000000000000000000000000000000000000006064820152608401610740565b600087815260c96020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d8116855292528083208985039055908a16825281208054889290612816908490613cac565b9091555050604080518881526020810188905273ffffffffffffffffffffffffffffffffffffffff808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612883848a8a8a8a8a612ff7565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff851615806128c5575073ffffffffffffffffffffffffffffffffffffffff8416155b611a35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f546f6b656e732061726520736f756c626f756e640000000000000000000000006044820152606401610740565b73ffffffffffffffffffffffffffffffffffffffff84163b15611a35576040517fbc197c8100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063bc197c81906129a29089908990889088908890600401613d48565b6020604051808303816000875af19250505080156129fb575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526129f891810190613db3565b60015b612ae457612a07613dd0565b806308c379a003612a5a5750612a1b613deb565b80612a265750612a5c565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107409190613484565b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560448201527f526563656976657220696d706c656d656e7465720000000000000000000000006064820152608401610740565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c81000000000000000000000000000000000000000000000000000000001461215d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a6563746560448201527f6420746f6b656e730000000000000000000000000000000000000000000000006064820152608401610740565b73ffffffffffffffffffffffffffffffffffffffff81163b612c59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610740565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612cc8836131a4565b600082511180612cd55750805b1561096357612ce483836131f1565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316612d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610740565b336000612d9984612fac565b90506000612da684612fac565b9050612dc68387600085856040518060200160405280600081525061288e565b600085815260c96020908152604080832073ffffffffffffffffffffffffffffffffffffffff8a16845290915290205484811015612e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c60448201527f616e6365000000000000000000000000000000000000000000000000000000006064820152608401610740565b600086815260c96020908152604080832073ffffffffffffffffffffffffffffffffffffffff8b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a460408051602081019091526000905261215d565b600054610100900460ff16612fa3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610740565b610c8d81613216565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612fe657612fe6613bfa565b602090810291909101015292915050565b73ffffffffffffffffffffffffffffffffffffffff84163b15611a35576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f23a6e619061306e9089908990889088908890600401613e93565b6020604051808303816000875af19250505080156130c7575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526130c491810190613db3565b60015b6130d357612a07613dd0565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e61000000000000000000000000000000000000000000000000000000001461215d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a6563746560448201527f6420746f6b656e730000000000000000000000000000000000000000000000006064820152608401610740565b6131ad81612bb5565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606113948383604051806060016040528060278152602001613ee460279139613222565b60cb610a878282613ae0565b60606000808573ffffffffffffffffffffffffffffffffffffffff168560405161324c9190613c90565b600060405180830381855af49150503d8060008114613287576040519150601f19603f3d011682016040523d82523d6000602084013e61328c565b606091505b509150915061329d868383876132a7565b9695505050505050565b6060831561333d5782516000036133365773ffffffffffffffffffffffffffffffffffffffff85163b613336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610740565b5081613347565b613347838361334f565b949350505050565b815115612a265781518083602001fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461338357600080fd5b919050565b6000806040838503121561339b57600080fd5b6133a48361335f565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610c8d57600080fd5b6000602082840312156133f257600080fd5b8135611394816133b2565b60006020828403121561340f57600080fd5b5035919050565b60005b83811015613431578181015183820152602001613419565b50506000910152565b60008151808452613452816020860160208601613416565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611394602083018461343a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff8211171561350a5761350a613497565b6040525050565b600082601f83011261352257600080fd5b813567ffffffffffffffff81111561353c5761353c613497565b60405161357160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601826134c6565b81815284602083860101111561358657600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156135b657600080fd5b82359150602083013567ffffffffffffffff8111156135d457600080fd5b6135e085828601613511565b9150509250929050565b6000602082840312156135fc57600080fd5b813567ffffffffffffffff81111561361357600080fd5b61334784828501613511565b6000806040838503121561363257600080fd5b61363b8361335f565b91506136496020840161335f565b90509250929050565b600067ffffffffffffffff82111561366c5761366c613497565b5060051b60200190565b600082601f83011261368757600080fd5b8135602061369482613652565b6040516136a182826134c6565b83815260059390931b85018201928281019150868411156136c157600080fd5b8286015b848110156136dc57803583529183019183016136c5565b509695505050505050565b600080600080600060a086880312156136ff57600080fd5b6137088661335f565b94506137166020870161335f565b9350604086013567ffffffffffffffff8082111561373357600080fd5b61373f89838a01613676565b9450606088013591508082111561375557600080fd5b61376189838a01613676565b9350608088013591508082111561377757600080fd5b5061378488828901613511565b9150509295509295909350565b600082601f8301126137a257600080fd5b813560206137af82613652565b6040516137bc82826134c6565b83815260059390931b85018201928281019150868411156137dc57600080fd5b8286015b848110156136dc576137f18161335f565b83529183019183016137e0565b60006020828403121561381057600080fd5b813567ffffffffffffffff81111561382757600080fd5b61334784828501613791565b60006020828403121561384557600080fd5b6113948261335f565b6000806040838503121561386157600080fd5b823567ffffffffffffffff81111561387857600080fd5b61388485828601613511565b95602094909401359450505050565b600080604083850312156138a657600080fd5b823567ffffffffffffffff808211156138be57600080fd5b6138ca86838701613791565b935060208501359150808211156138e057600080fd5b506135e085828601613676565b600081518084526020808501945080840160005b8381101561391d57815187529582019590820190600101613901565b509495945050505050565b60208152600061139460208301846138ed565b6000806040838503121561394e57600080fd5b6139578361335f565b9150602083013567ffffffffffffffff8111156135d457600080fd5b6000806040838503121561398657600080fd5b61398f8361335f565b9150602083013580151581146139a457600080fd5b809150509250929050565b6000806000606084860312156139c457600080fd5b6139cd8461335f565b95602085013595506040909401359392505050565b600080600080600060a086880312156139fa57600080fd5b613a038661335f565b9450613a116020870161335f565b93506040860135925060608601359150608086013567ffffffffffffffff811115613a3b57600080fd5b61378488828901613511565b600181811c90821680613a5b57607f821691505b602082108103613a94577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561096357600081815260208120601f850160051c81016020861015613ac15750805b601f850160051c820191505b81811015611a3557828155600101613acd565b815167ffffffffffffffff811115613afa57613afa613497565b613b0e81613b088454613a47565b84613a9a565b602080601f831160018114613b615760008415613b2b5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611a35565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015613bae57888601518255948401946001909101908401613b8f565b5085821015613bea57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c8957613c89613c29565b5060010190565b60008251613ca2818460208701613416565b9190910192915050565b8082018082111561077b5761077b613c29565b604081526000613cd260408301856138ed565b8281036020840152613ce481856138ed565b95945050505050565b8181038181111561077b5761077b613c29565b600060208284031215613d1257600080fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000613347604083018461343a565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a06040830152613d8160a08301866138ed565b8281036060840152613d9381866138ed565b90508281036080840152613da7818561343a565b98975050505050505050565b600060208284031215613dc557600080fd5b8151611394816133b2565b600060033d111561116a5760046000803e5060005160e01c90565b600060443d1015613df95790565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc803d016004833e81513d67ffffffffffffffff8160248401118184111715613e4757505050505090565b8285019150815181811115613e5f5750505050505090565b843d8701016020828501011115613e795750505050505090565b613e88602082860101876134c6565b509095945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a06080830152613ed860a083018461343a565b97965050505050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d5c8180cb2753dbc23f520fe86fe15644b4135f0683de1aacd4a2441d21dab2a64736f6c63430008120033