0 txs
0 calls
constructor
constructor()
functions
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (bytes32)
AUCTIONEER
viewfunction AUCTIONEER() view returns (bytes32)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
EXECUTIVE_ROLE
viewfunction EXECUTIVE_ROLE() view returns (bytes32)
exists
viewfunction exists(uint256 positionTokenId) view returns (bool)
getAddressExecutive
viewfunction getAddressExecutive() view returns (address)
getAddressGovernor
viewfunction getAddressGovernor() view returns (address)
getAddressGuardian
viewfunction getAddressGuardian() view returns (address)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getTokenIDsArray
viewfunction getTokenIDsArray(address owner) view returns (uint256[])
GOVERNOR_ROLE
viewfunction GOVERNOR_ROLE() view returns (bytes32)
GUARDIAN_ROLE
viewfunction GUARDIAN_ROLE() view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
name
viewfunction name() view returns (string)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenByIndex
viewfunction tokenByIndex(uint256 index) view returns (uint256)
tokenOfOwnerByIndex
viewfunction tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
acceptAdminRole
nonpayablefunction acceptAdminRole()
approve
nonpayablefunction approve(address to, uint256 tokenId)
burn
nonpayablefunction burn(uint256 positionTokenId)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
safeMint
nonpayablefunction safeMint(address to) returns (uint256 positionTokenId)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setAdmin
nonpayablefunction setAdmin(address newAdmin)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setAuctioneer
nonpayablefunction setAuctioneer(address newAuctioneer)
setExecutive
nonpayablefunction setExecutive(address newExecutive)
setGovernor
nonpayablefunction setGovernor(address newGovernor)
setGuardian
nonpayablefunction setGuardian(address newGuardian)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Initialized
event Initialized(uint8 version)
NFTBurned
event NFTBurned(uint256 indexed _positionId, address indexed _redeemer)
NFTCreated
event NFTCreated(uint256 indexed _positionId, address indexed _minter)
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)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
Upgraded
event Upgraded(address indexed implementation)
errors
No errors.
creation bytecode
0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161397b6200012060003960008181610d5a01528181610d9a015281816110fd0152818161113d0152611280015261397b6000f3fe6080604052600436106102665760003560e01c80636140a40211610144578063a217fddf116100b6578063c87b56dd1161007a578063c87b56dd146107b4578063ccc57490146107d4578063cfe4bd0314610808578063d547741f14610826578063df8a541714610846578063e985e9c51461086457610266565b8063a217fddf1461071d578063a22cb46514610732578063aecf62f014610752578063b88d4fde14610774578063c42cf5351461079457610266565b80638129fc1c116101085780638129fc1c146106715780638a0dac4a146106865780638c3d7301146106a657806391d14854146106bb57806395d89b41146106db5780639aeb5813146106f057610266565b80636140a402146105d15780636352211e146105ef578063704b6c021461060f57806370a082311461062f57806375b238fc1461064f57610266565b80632f745c59116101dd57806342966c68116101a157806342966c68146105295780634b662b5a146105495780634f1ef286146105695780634f558e791461057c5780634f6ccce71461059c57806352d1902d146105bc57610266565b80632f745c591461048957806336568abe146104a95780633659cfe6146104c957806340d097c3146104e957806342842e0e1461050957610266565b806318160ddd1161022f57806318160ddd1461039157806323b872dd146103b157806323e507f7146103d1578063248a9ca31461040557806324ea54f4146104355780632f2ff15d1461046957610266565b8062ede7e4146102c057806301ffc9a7146102e257806306fdde0314610317578063081812fc14610339578063095ea7b314610371575b34801561027257600080fd5b5060405162461bcd60e51b815260206004820152601e60248201527f506f736974696f6e546f6b656e203a20496e76616c696420616363657373000060448201526064015b60405180910390fd5b3480156102cc57600080fd5b506102e06102db366004613037565b6108ae565b005b3480156102ee57600080fd5b506103026102fd366004613068565b6109b8565b60405190151581526020015b60405180910390f35b34801561032357600080fd5b5061032c6109c9565b60405161030e91906130d5565b34801561034557600080fd5b506103596103543660046130e8565b610a5b565b6040516001600160a01b03909116815260200161030e565b34801561037d57600080fd5b506102e061038c366004613101565b610a82565b34801561039d57600080fd5b5061012f545b60405190815260200161030e565b3480156103bd57600080fd5b506102e06103cc36600461312b565b610b97565b3480156103dd57600080fd5b506103a37f1d693f62a755e2b3c6494da41af454605b9006057cb3c79b6adda1378f2a50a781565b34801561041157600080fd5b506103a36104203660046130e8565b60009081526065602052604090206001015490565b34801561044157600080fd5b506103a37f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504181565b34801561047557600080fd5b506102e0610484366004613167565b610bc9565b34801561049557600080fd5b506103a36104a4366004613101565b610bee565b3480156104b557600080fd5b506102e06104c4366004613167565b610c85565b3480156104d557600080fd5b506102e06104e4366004613037565b610d50565b3480156104f557600080fd5b506103a3610504366004613037565b610e2f565b34801561051557600080fd5b506102e061052436600461312b565b610eff565b34801561053557600080fd5b506102e06105443660046130e8565b610f1a565b34801561055557600080fd5b506102e0610564366004613037565b61100d565b6102e0610577366004613236565b6110f3565b34801561058857600080fd5b506103026105973660046130e8565b6111bf565b3480156105a857600080fd5b506103a36105b73660046130e8565b6111de565b3480156105c857600080fd5b506103a3611273565b3480156105dd57600080fd5b506099546001600160a01b0316610359565b3480156105fb57600080fd5b5061035961060a3660046130e8565b611326565b34801561061b57600080fd5b506102e061062a366004613037565b611386565b34801561063b57600080fd5b506103a361064a366004613037565b61143e565b34801561065b57600080fd5b506103a360008051602061392683398151915281565b34801561067d57600080fd5b506102e06114c4565b34801561069257600080fd5b506102e06106a1366004613037565b611682565b3480156106b257600080fd5b506102e061178c565b3480156106c757600080fd5b506103026106d6366004613167565b61185f565b3480156106e757600080fd5b5061032c61188a565b3480156106fc57600080fd5b5061071061070b366004613037565b611899565b60405161030e9190613284565b34801561072957600080fd5b506103a3600081565b34801561073e57600080fd5b506102e061074d3660046132c8565b611906565b34801561075e57600080fd5b506103a36000805160206138bf83398151915281565b34801561078057600080fd5b506102e061078f366004613304565b611911565b3480156107a057600080fd5b506102e06107af366004613037565b611949565b3480156107c057600080fd5b5061032c6107cf3660046130e8565b611a53565b3480156107e057600080fd5b506103a37f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f5581565b34801561081457600080fd5b50609a546001600160a01b0316610359565b34801561083257600080fd5b506102e0610841366004613167565b611ac7565b34801561085257600080fd5b506098546001600160a01b0316610359565b34801561087057600080fd5b5061030261087f36600461336c565b6001600160a01b0391821660009081526101006020908152604080832093909416825291909152205460ff1690565b6108c66000805160206139268339815191523361185f565b6108e25760405162461bcd60e51b81526004016102b790613396565b6097546001600160a01b0390811690821681036109415760405162461bcd60e51b815260206004820152601b60248201527f4e65772041756374696f6e656572206d7573742062652064696666000000000060448201526064016102b7565b61096b7f1d693f62a755e2b3c6494da41af454605b9006057cb3c79b6adda1378f2a50a783611aec565b6109957f1d693f62a755e2b3c6494da41af454605b9006057cb3c79b6adda1378f2a50a782611b72565b50609780546001600160a01b0319166001600160a01b0392909216919091179055565b60006109c382611bd9565b92915050565b606060fb80546109d8906133c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610a04906133c3565b8015610a515780601f10610a2657610100808354040283529160200191610a51565b820191906000526020600020905b815481529060010190602001808311610a3457829003601f168201915b5050505050905090565b6000610a6682611bfe565b50600090815260ff60205260409020546001600160a01b031690565b6000610a8d82611326565b9050806001600160a01b0316836001600160a01b031603610afa5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016102b7565b336001600160a01b0382161480610b165750610b16813361087f565b610b885760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016102b7565b610b928383611c5d565b505050565b610ba2335b82611ccb565b610bbe5760405162461bcd60e51b81526004016102b7906133fd565b610b92838383611d4b565b600082815260656020526040902060010154610be481611ef8565b610b928383611aec565b6000610bf98361143e565b8210610c5b5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016102b7565b506001600160a01b0391909116600090815261012d60209081526040808320938352929052205490565b610c9d6000805160206139268339815191523361185f565b15610cea5760405162461bcd60e51b815260206004820152601b60248201527f41646d696e2063616e74207573652072656e6f756e6365526f6c65000000000060448201526064016102b7565b6001600160a01b0381163314610d425760405162461bcd60e51b815260206004820181905260248201527f63616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c6660448201526064016102b7565b610d4c8282611b72565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d985760405162461bcd60e51b81526004016102b79061344b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610de16000805160206138df833981519152546001600160a01b031690565b6001600160a01b031614610e075760405162461bcd60e51b81526004016102b790613497565b610e1081611f02565b60408051600080825260208201909252610e2c91839190611f0a565b50565b6000610e496000805160206138bf8339815191523361185f565b610e8f5760405162461bcd60e51b815260206004820152601760248201527643616c6c6572206973206e6f742045786563757469766560481b60448201526064016102b7565b506101f5805460018101909155610ea68282612075565b610ec382610ebc6098546001600160a01b031690565b600161208f565b6040516001600160a01b0383169082907fbe4d5028ecb11dfb1cbc0c1dd7eed270db43c11a50da18fceb823c9af57a2a7890600090a35b919050565b610b9283838360405180602001604052806000815250611911565b600260c95403610f6c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102b7565b600260c955610f896000805160206138bf8339815191523361185f565b610fcf5760405162461bcd60e51b815260206004820152601760248201527643616c6c6572206973206e6f742045786563757469766560481b60448201526064016102b7565b610fd88161215e565b604051339082907f8f0a80450bfbfadc6d05658c9dc494e43beb79be53b44adbb146c6d5040f877090600090a350600160c955565b6110256000805160206139268339815191523361185f565b6110415760405162461bcd60e51b81526004016102b790613396565b6098546001600160a01b0390811690821681036110a05760405162461bcd60e51b815260206004820152601a60248201527f4e65772065786563206d75737420626520646966666572656e7400000000000060448201526064016102b7565b6110b86000805160206138bf83398151915283611aec565b6110d06000805160206138bf83398151915282611b72565b50609880546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361113b5760405162461bcd60e51b81526004016102b79061344b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111846000805160206138df833981519152546001600160a01b031690565b6001600160a01b0316146111aa5760405162461bcd60e51b81526004016102b790613497565b6111b382611f02565b610d4c82826001611f0a565b600081815260fd60205260408120546001600160a01b031615156109c3565b60006111ea61012f5490565b821061124d5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016102b7565b61012f8281548110611261576112616134e3565b90600052602060002001549050919050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113135760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016102b7565b506000805160206138df83398151915290565b600081815260fd60205260408120546001600160a01b0316806109c35760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016102b7565b61139e6000805160206139268339815191523361185f565b6113ba5760405162461bcd60e51b81526004016102b790613396565b336001600160a01b038216036114125760405162461bcd60e51b815260206004820152601b60248201527f6e65772061646d696e206d75737420626520646966666572656e74000000000060448201526064016102b7565b609b80546001600160a01b03929092166001600160a01b0319928316179055609c805490911633179055565b60006001600160a01b0382166114a85760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016102b7565b506001600160a01b0316600090815260fe602052604090205490565b600054610100900460ff16158080156114e45750600054600160ff909116105b806114fe5750303b1580156114fe575060005460ff166001145b6115615760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102b7565b6000805460ff191660011790558015611584576000805461ff0019166101001790555b61158c61218c565b6115946121b3565b61159c61218c565b6115f76040518060400160405280601781526020017f41726368696d65646573506f736974696f6e546f6b656e000000000000000000815250604051806040016040528060048152602001631054139560e21b8152506121e2565b6115ff61218c565b61160761218c565b61161f60008051602061392683398151915233611aec565b61162833611949565b6116313361100d565b61163a33611682565b8015610e2c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b61169a6000805160206139268339815191523361185f565b6116b65760405162461bcd60e51b81526004016102b790613396565b609a546001600160a01b0390811690821681036117155760405162461bcd60e51b815260206004820152601e60248201527f4e657720677561726469616e206d75737420626520646966666572656e74000060448201526064016102b7565b61173f7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504183611aec565b6117697f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504182611b72565b50609a80546001600160a01b0319166001600160a01b0392909216919091179055565b609b546001600160a01b031615806117ad5750609c546001600160a01b0316155b156117ef5760405162461bcd60e51b81526020600482015260126024820152713737903737b6b4b730ba32b21030b236b4b760711b60448201526064016102b7565b609b54336001600160a01b039091160361185d5761181b60008051602061392683398151915233611aec565b609c5461184090600080516020613926833981519152906001600160a01b0316611b72565b609b80546001600160a01b0319908116909155609c805490911690555b565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060fc80546109d8906133c3565b6001600160a01b03811660009081526101f6602090815260408083208054825181850281018501909352808352606094938301828280156118f957602002820191906000526020600020905b8154815260200190600101908083116118e5575b5093979650505050505050565b610d4c33838361208f565b61191b3383611ccb565b6119375760405162461bcd60e51b81526004016102b7906133fd565b61194384848484612213565b50505050565b6119616000805160206139268339815191523361185f565b61197d5760405162461bcd60e51b81526004016102b790613396565b6099546001600160a01b0390811690821681036119dc5760405162461bcd60e51b815260206004820152601960248201527f4e657720676f76206d75737420626520646966666572656e740000000000000060448201526064016102b7565b611a067f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f5583611aec565b611a307f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f5582611b72565b50609980546001600160a01b0319166001600160a01b0392909216919091179055565b6060611a5e82611bfe565b6000611a7560408051602081019091526000815290565b90506000815111611a955760405180602001604052806000815250611ac0565b80611a9f84612246565b604051602001611ab09291906134f9565b6040516020818303038152906040525b9392505050565b600082815260656020526040902060010154611ae281611ef8565b610b928383611b72565b611af6828261185f565b610d4c5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611b2e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611b7c828261185f565b15610d4c5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006001600160e01b0319821663780e9d6360e01b14806109c357506109c382612347565b600081815260fd60205260409020546001600160a01b0316610e2c5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016102b7565b600081815260ff6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611c9282611326565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080611cd783611326565b9050806001600160a01b0316846001600160a01b03161480611d1f57506001600160a01b038082166000908152610100602090815260408083209388168352929052205460ff165b80611d435750836001600160a01b0316611d3884610a5b565b6001600160a01b0316145b949350505050565b826001600160a01b0316611d5e82611326565b6001600160a01b031614611dc25760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016102b7565b6001600160a01b038216611e245760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016102b7565b611e2f838383612387565b611e3a600082611c5d565b6001600160a01b038316600090815260fe60205260408120805460019290611e6390849061354e565b90915550506001600160a01b038216600090815260fe60205260408120805460019290611e91908490613561565b9091555050600081815260fd602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4610b92838383612513565b610e2c8133612565565b610e2c6125c9565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611f3d57610b9283612623565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611f97575060408051601f3d908101601f19168201909252611f9491810190613574565b60015b611ffa5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016102b7565b6000805160206138df83398151915281146120695760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016102b7565b50610b928383836126bf565b610d4c8282604051806020016040528060008152506126e4565b816001600160a01b0316836001600160a01b0316036120f05760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016102b7565b6001600160a01b0383811660008181526101006020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61216733610b9c565b6121835760405162461bcd60e51b81526004016102b7906133fd565b610e2c81612717565b600054610100900460ff1661185d5760405162461bcd60e51b81526004016102b79061358d565b600054610100900460ff166121da5760405162461bcd60e51b81526004016102b79061358d565b61185d6127c6565b600054610100900460ff166122095760405162461bcd60e51b81526004016102b79061358d565b610d4c82826127f4565b61221e848484611d4b565b61222a84848484612834565b6119435760405162461bcd60e51b81526004016102b7906135d8565b60608160000361226d5750506040805180820190915260018152600360fc1b602082015290565b8160005b811561229757806122818161362a565b91506122909050600a83613659565b9150612271565b60008167ffffffffffffffff8111156122b2576122b2613193565b6040519080825280601f01601f1916602001820160405280156122dc576020820181803683370190505b5090505b8415611d43576122f160018361354e565b91506122fe600a8661366d565b612309906030613561565b60f81b81838151811061231e5761231e6134e3565b60200101906001600160f81b031916908160001a905350612340600a86613659565b94506122e0565b60006001600160e01b031982166380ac58cd60e01b148061237857506001600160e01b03198216635b5e139f60e01b145b806109c357506109c382612935565b60006001600160a01b03841630148015906123ba57506001600160a01b03841660009081526101f6602052604090205415155b156125085760005b6001600160a01b03851660009081526101f66020526040902054811015612506576001600160a01b03851660009081526101f660205260409020805484919083908110612411576124116134e3565b9060005260206000200154036124f4576001600160a01b03851660009081526101f6602052604081208054929350839261244d9060019061354e565b8154811061245d5761245d6134e3565b90600052602060002001549050806101f66000886001600160a01b03166001600160a01b0316815260200190815260200160002084815481106124a2576124a26134e3565b60009182526020808320909101929092556001600160a01b03881681526101f6909152604090208054806124d8576124d8613681565b6001900381819060005260206000200160009055905550612506565b806124fe8161362a565b9150506123c2565b505b61194384848461296a565b6001600160a01b0382161561254f576001600160a01b03821660009081526101f660209081526040822080546001810182559083529120018190555b610b9282610ebc6098546001600160a01b031690565b61256f828261185f565b610d4c57612587816001600160a01b03166014612a24565b612592836020612a24565b6040516020016125a3929190613697565b60408051601f198184030181529082905262461bcd60e51b82526102b7916004016130d5565b6125e16000805160206139268339815191523361185f565b61185d5760405162461bcd60e51b815260206004820152601360248201527221b0b63632b91034b9903737ba1030b236b4b760691b60448201526064016102b7565b6001600160a01b0381163b6126905760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102b7565b6000805160206138df83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6126c883612bc0565b6000825111806126d55750805b15610b92576119438383612c00565b6126ee8383612cf4565b6126fb6000848484612834565b610b925760405162461bcd60e51b81526004016102b7906135d8565b600061272282611326565b905061273081600084612387565b61273b600083611c5d565b6001600160a01b038116600090815260fe6020526040812080546001929061276490849061354e565b9091555050600082815260fd602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4610d4c81600084612513565b600054610100900460ff166127ed5760405162461bcd60e51b81526004016102b79061358d565b600160c955565b600054610100900460ff1661281b5760405162461bcd60e51b81526004016102b79061358d565b60fb612827838261375a565b5060fc610b92828261375a565b60006001600160a01b0384163b1561292a57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061287890339089908890889060040161381a565b6020604051808303816000875af19250505080156128b3575060408051601f3d908101601f191682019092526128b091810190613857565b60015b612910573d8080156128e1576040519150601f19603f3d011682016040523d82523d6000602084013e6128e6565b606091505b5080516000036129085760405162461bcd60e51b81526004016102b7906135d8565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611d43565b506001949350505050565b60006001600160e01b03198216637965db0b60e01b14806109c357506301ffc9a760e01b6001600160e01b03198316146109c3565b6001600160a01b0383166129c7576129c28161012f8054600083815261013060205260408120829055600182018355919091527f232da9e50dad2971456a78fb5cd6ff6b75019984d6e918139ce990999420f9790155565b6129ea565b816001600160a01b0316836001600160a01b0316146129ea576129ea8382612e4a565b6001600160a01b038216612a0157610b9281612eec565b826001600160a01b0316826001600160a01b031614610b9257610b928282612fa1565b60606000612a33836002613874565b612a3e906002613561565b67ffffffffffffffff811115612a5657612a56613193565b6040519080825280601f01601f191660200182016040528015612a80576020820181803683370190505b509050600360fc1b81600081518110612a9b57612a9b6134e3565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612aca57612aca6134e3565b60200101906001600160f81b031916908160001a9053506000612aee846002613874565b612af9906001613561565b90505b6001811115612b71576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612b2d57612b2d6134e3565b1a60f81b828281518110612b4357612b436134e3565b60200101906001600160f81b031916908160001a90535060049490941c93612b6a8161388b565b9050612afc565b508315611ac05760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102b7565b612bc981612623565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b612c685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102b7565b600080846001600160a01b031684604051612c8391906138a2565b600060405180830381855af49150503d8060008114612cbe576040519150601f19603f3d011682016040523d82523d6000602084013e612cc3565b606091505b5091509150612ceb82826040518060600160405280602781526020016138ff60279139612fe7565b95945050505050565b6001600160a01b038216612d4a5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016102b7565b600081815260fd60205260409020546001600160a01b031615612daf5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016102b7565b612dbb60008383612387565b6001600160a01b038216600090815260fe60205260408120805460019290612de4908490613561565b9091555050600081815260fd602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4610d4c60008383612513565b60006001612e578461143e565b612e61919061354e565b600083815261012e6020526040902054909150808214612eb7576001600160a01b038416600090815261012d60209081526040808320858452825280832054848452818420819055835261012e90915290208190555b50600091825261012e602090815260408084208490556001600160a01b03909416835261012d81528383209183525290812055565b61012f54600090612eff9060019061354e565b6000838152610130602052604081205461012f8054939450909284908110612f2957612f296134e3565b906000526020600020015490508061012f8381548110612f4b57612f4b6134e3565b6000918252602080832090910192909255828152610130909152604080822084905585825281205561012f805480612f8557612f85613681565b6001900381819060005260206000200160009055905550505050565b6000612fac8361143e565b6001600160a01b03909316600090815261012d60209081526040808320868452825280832085905593825261012e9052919091209190915550565b60608315612ff6575081611ac0565b8251156130065782518084602001fd5b8160405162461bcd60e51b81526004016102b791906130d5565b80356001600160a01b0381168114610efa57600080fd5b60006020828403121561304957600080fd5b611ac082613020565b6001600160e01b031981168114610e2c57600080fd5b60006020828403121561307a57600080fd5b8135611ac081613052565b60005b838110156130a0578181015183820152602001613088565b50506000910152565b600081518084526130c1816020860160208601613085565b601f01601f19169290920160200192915050565b602081526000611ac060208301846130a9565b6000602082840312156130fa57600080fd5b5035919050565b6000806040838503121561311457600080fd5b61311d83613020565b946020939093013593505050565b60008060006060848603121561314057600080fd5b61314984613020565b925061315760208501613020565b9150604084013590509250925092565b6000806040838503121561317a57600080fd5b8235915061318a60208401613020565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126131ba57600080fd5b813567ffffffffffffffff808211156131d5576131d5613193565b604051601f8301601f19908116603f011681019082821181831017156131fd576131fd613193565b8160405283815286602085880101111561321657600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561324957600080fd5b61325283613020565b9150602083013567ffffffffffffffff81111561326e57600080fd5b61327a858286016131a9565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156132bc578351835292840192918401916001016132a0565b50909695505050505050565b600080604083850312156132db57600080fd5b6132e483613020565b9150602083013580151581146132f957600080fd5b809150509250929050565b6000806000806080858703121561331a57600080fd5b61332385613020565b935061333160208601613020565b925060408501359150606085013567ffffffffffffffff81111561335457600080fd5b613360878288016131a9565b91505092959194509250565b6000806040838503121561337f57600080fd5b61338883613020565b915061318a60208401613020565b60208082526013908201527221b0b63632b91034b9903737ba1020b236b4b760691b604082015260600190565b600181811c908216806133d757607f821691505b6020821081036133f757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000835161350b818460208801613085565b83519083019061351f818360208801613085565b64173539b7b760d91b9101908152600501949350505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156109c3576109c3613538565b808201808211156109c3576109c3613538565b60006020828403121561358657600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60006001820161363c5761363c613538565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261366857613668613643565b500490565b60008261367c5761367c613643565b500690565b634e487b7160e01b600052603160045260246000fd5b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516136cf816017850160208801613085565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613700816028840160208801613085565b01602801949350505050565b601f821115610b9257600081815260208120601f850160051c810160208610156137335750805b601f850160051c820191505b818110156137525782815560010161373f565b505050505050565b815167ffffffffffffffff81111561377457613774613193565b6137888161378284546133c3565b8461370c565b602080601f8311600181146137bd57600084156137a55750858301515b600019600386901b1c1916600185901b178555613752565b600085815260208120601f198616915b828110156137ec578886015182559484019460019091019084016137cd565b508582101561380a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061384d908301846130a9565b9695505050505050565b60006020828403121561386957600080fd5b8151611ac081613052565b80820281158282048414176109c3576109c3613538565b60008161389a5761389a613538565b506000190190565b600082516138b4818460208701613085565b919091019291505056fee4eefbff6f5adc6b3fe0d11f14a3859decb3df1f4c82933fc6c1f8b498cc4a7d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a264697066735822122024b870401a51aa8101c99a5e9b582138b39cc8c4a6132fd711be4a3466fe1dd964736f6c63430008110033