0 txs
64 calls
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
chainalysis
viewfunction chainalysis() view returns (address)
CONTROLLER_ROLE
viewfunction CONTROLLER_ROLE() view returns (bytes32)
decimals
purefunction decimals() pure returns (uint8)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isController
viewfunction isController(address _account) view returns (bool)
isManager
viewfunction isManager(address _account) view returns (bool)
MANAGER_ROLE
viewfunction MANAGER_ROLE() view returns (bytes32)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(address owner) view returns (uint256)
paused
viewfunction paused() view returns (bool)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
vault
viewfunction vault(address) view returns (address)
addController
nonpayablefunction addController(address _account)
addManager
nonpayablefunction addManager(address _account)
approve
nonpayablefunction approve(address _spender, uint256 _value) returns (bool)
burn
nonpayablefunction burn(address _from, uint256 _amount)
decreaseAllowance
nonpayablefunction decreaseAllowance(address _spender, uint256 _decrement) returns (bool)
grantRole
nonpayablefunction grantRole(bytes32 role, address _account)
increaseAllowance
nonpayablefunction increaseAllowance(address _spender, uint256 _increment) returns (bool)
initialize
nonpayablefunction initialize(string _name, string _symbol, address _controller, address _manager, address _chainalysis)
mint
nonpayablefunction mint(address _to, uint256 _amount)
nativeApprove
nonpayablefunction nativeApprove(address owner, address spender, uint256 amount) returns (bool)
nativeTransfer
nonpayablefunction nativeTransfer(address owner, address to, uint256 amount) returns (bool)
nativeTransferFrom
nonpayablefunction nativeTransferFrom(address spender, address from, address to, uint256 amount) returns (bool)
pause
nonpayablefunction pause()
permit
nonpayablefunction permit(address _owner, address _spender, uint256 _value, uint256 _deadline, uint8 _v, bytes32 _r, bytes32 _s)
removeController
nonpayablefunction removeController(address _account)
removeManager
nonpayablefunction removeManager(address _account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address _account)
spendAllowance
nonpayablefunction spendAllowance(address owner, address caller, uint256 shares)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferAdmin
nonpayablefunction transferAdmin(address _newOwner)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
unpause
nonpayablefunction unpause()
updateVault
nonpayablefunction updateVault(address _asset, address _vault)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
AdminTransferred
event AdminTransferred(address _oldOwner, address _newOwner)
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
ControllerAdded
event ControllerAdded(address _account)
ControllerRemoved
event ControllerRemoved(address _account)
EIP712DomainChanged
event EIP712DomainChanged()
Initialized
event Initialized(uint8 version)
ManagerAdded
event ManagerAdded(address _account)
ManagerRemoved
event ManagerRemoved(address _account)
Paused
event Paused(address account)
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 value)
Unpaused
event Unpaused(address account)
UpdateVault
event UpdateVault(address _asset, address _vault)
Upgraded
event Upgraded(address indexed implementation)
errors
AccessDenied
error AccessDenied(address _executor)
creation bytecode
0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100e1565b600054610100900460ff161561008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100df576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516136c461011860003960008181610c5e01528181610c9e01528181610ea401528181610ee40152610f7301526136c46000f3fe6080604052600436106102885760003560e01c806370a082311161015a578063ac18de43116100c1578063dd62ed3e1161007a578063dd62ed3e146107b8578063dd8aaa4f146107d8578063ec87621c146107f8578063f3ae24151461081a578063f6a74ed71461083a578063f815c03d1461085a57600080fd5b8063ac18de43146106df578063b429afeb146106ff578063d505accf1461071f578063d547741f1461073f578063d983388b1461075f578063db0ed6a01461079857600080fd5b806395d89b411161011357806395d89b41146106355780639dc29fac1461064a578063a217fddf1461066a578063a457c2d71461067f578063a7fc7a071461069f578063a9059cbb146106bf57600080fd5b806370a082311461056257806375829def146105985780637ecebe00146105b85780638456cb59146105d857806384b0196e146105ed57806391d148541461061557600080fd5b8063313ce567116101fe57806340c10f19116101b757806340c10f19146104c15780634d257795146104e15780634f1ef2861461050157806352d1902d146105145780635c975abb146105295780636c796e691461054257600080fd5b8063313ce5671461041b5780633644e5151461043757806336568abe1461044c5780633659cfe61461046c578063395093511461048c5780633f4ba83a146104ac57600080fd5b80631b451d28116102505780631b451d28146103495780632041230e1461036b57806323b872dd1461038b578063248a9ca3146103ab5780632d06177a146103db5780632f2ff15d146103fb57600080fd5b806301ffc9a71461028d57806306fdde03146102c2578063092c5b3b146102e4578063095ea7b31461031457806318160ddd14610334575b600080fd5b34801561029957600080fd5b506102ad6102a8366004612dab565b610891565b60405190151581526020015b60405180910390f35b3480156102ce57600080fd5b506102d76108e3565b6040516102b99190612e25565b3480156102f057600080fd5b5061030660008051602061360883398151915281565b6040519081526020016102b9565b34801561032057600080fd5b506102ad61032f366004612e54565b610975565b34801561034057600080fd5b50606754610306565b34801561035557600080fd5b50610369610364366004612e7e565b610a28565b005b34801561037757600080fd5b506102ad610386366004612eb1565b610aad565b34801561039757600080fd5b506102ad6103a6366004612efc565b610af1565b3480156103b757600080fd5b506103066103c6366004612f39565b60009081526097602052604090206001015490565b3480156103e757600080fd5b506103696103f6366004612f52565b610b15565b34801561040757600080fd5b50610369610416366004612f6d565b610b6d565b34801561042757600080fd5b50604051600681526020016102b9565b34801561044357600080fd5b50610306610bc7565b34801561045857600080fd5b50610369610467366004612f6d565b610bd6565b34801561047857600080fd5b50610369610487366004612f52565b610c54565b34801561049857600080fd5b506102ad6104a7366004612e54565b610d33565b3480156104b857600080fd5b50610369610dd9565b3480156104cd57600080fd5b506103696104dc366004612e54565b610df9565b3480156104ed57600080fd5b506102ad6104fc366004612efc565b610e78565b61036961050f366004612fa6565b610e9a565b34801561052057600080fd5b50610306610f66565b34801561053557600080fd5b506101945460ff166102ad565b34801561054e57600080fd5b506102ad61055d366004612efc565b611019565b34801561056e57600080fd5b5061030661057d366004612f52565b6001600160a01b031660009081526065602052604090205490565b3480156105a457600080fd5b506103696105b3366004612f52565b611046565b3480156105c457600080fd5b506103066105d3366004612f52565b61109a565b3480156105e457600080fd5b506103696110b8565b3480156105f957600080fd5b506106026110d8565b6040516102b99796959493929190613070565b34801561062157600080fd5b506102ad610630366004612f6d565b611176565b34801561064157600080fd5b506102d76111a1565b34801561065657600080fd5b50610369610665366004612e54565b6111b0565b34801561067657600080fd5b50610306600081565b34801561068b57600080fd5b506102ad61069a366004612e54565b61122a565b3480156106ab57600080fd5b506103696106ba366004612f52565b6112d0565b3480156106cb57600080fd5b506102ad6106da366004612e54565b611321565b3480156106eb57600080fd5b506103696106fa366004612f52565b611339565b34801561070b57600080fd5b506102ad61071a366004612f52565b61138a565b34801561072b57600080fd5b5061036961073a366004613108565b6113a4565b34801561074b57600080fd5b5061036961075a366004612f6d565b611455565b34801561076b57600080fd5b506101c754610780906001600160a01b031681565b6040516001600160a01b0390911681526020016102b9565b3480156107a457600080fd5b506103696107b33660046131c4565b6114a9565b3480156107c457600080fd5b506103066107d3366004612e7e565b611729565b3480156107e457600080fd5b506103696107f3366004612efc565b611754565b34801561080457600080fd5b5061030660008051602061364883398151915281565b34801561082657600080fd5b506102ad610835366004612f52565b61177f565b34801561084657600080fd5b50610369610855366004612f52565b611799565b34801561086657600080fd5b50610780610875366004612f52565b6101c6602052600090815260409020546001600160a01b031681565b600063f815c03d60e01b6001600160e01b0319831614806108c257506001600160e01b031982166301ffc9a760e01b145b806108dd57506001600160e01b031982166336372b0760e01b145b92915050565b6060606880546108f29061326b565b80601f016020809104026020016040519081016040528092919081815260200182805461091e9061326b565b801561096b5780601f106109405761010080835404028352916020019161096b565b820191906000526020600020905b81548152906001019060200180831161094e57829003601f168201915b5050505050905090565b6101c75460405163df592f7d60e01b81526001600160a01b038085166004830152600092859291169063df592f7d90602401602060405180830381865afa1580156109c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e8919061329f565b15610a1657604051630504a20d60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b610a2084846117ea565b949350505050565b600080516020613648833981519152610a40816117f8565b6001600160a01b0383811660008181526101c6602090815260409182902080546001600160a01b031916948716948517905581519283528201929092527f4cc233b502e1e28f371b28114d4a8be87a93f330c18e3c339079fc498320fb8d910160405180910390a1505050565b6000610ab7611802565b600080516020613608833981519152610acf816117f8565b610ada85878561184b565b610ae58585856118bf565b50600195945050505050565b600033610aff85828561184b565b610b0a8585856118bf565b506001949350505050565b610b2d60008051602061364883398151915282610b6d565b6040516001600160a01b03821681527f3b4a40cccf2058c593542587329dd385be4f0b588db5471fbd9598e56dd7093a906020015b60405180910390a150565b600082815260976020526040902060010154610b88816117f8565b816001600160a01b038116610baf5760405162461bcd60e51b8152600401610a0d906132c1565b610bb7611802565b610bc18484611a75565b50505050565b6000610bd1611afb565b905090565b6001600160a01b0381163314610c465760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610a0d565b610c508282611b05565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c9c5760405162461bcd60e51b8152600401610a0d906132f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ce5600080516020613628833981519152546001600160a01b031690565b6001600160a01b031614610d0b5760405162461bcd60e51b8152600401610a0d9061333d565b610d1481611b6c565b60408051600080825260208201909252610d3091839190611b77565b50565b6101c75460405163df592f7d60e01b81526001600160a01b038085166004830152600092859291169063df592f7d90602401602060405180830381865afa158015610d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da6919061329f565b15610dcf57604051630504a20d60e01b81526001600160a01b0382166004820152602401610a0d565b610a208484611ce2565b600080516020613648833981519152610df1816117f8565b610d30611d04565b610e01611802565b600080516020613608833981519152610e19816117f8565b60008211610e695760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610a0d565b610e738383611d57565b505050565b6000610e82611802565b600080516020613608833981519152610aff816117f8565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ee25760405162461bcd60e51b8152600401610a0d906132f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f2b600080516020613628833981519152546001600160a01b031690565b6001600160a01b031614610f515760405162461bcd60e51b8152600401610a0d9061333d565b610f5a82611b6c565b610c5082826001611b77565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110065760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610a0d565b5060008051602061362883398151915290565b6000611023611802565b60008051602061360883398151915261103b816117f8565b610b0a858585611e24565b611051600082610b6d565b61105c600033611455565b604080513381526001600160a01b03831660208201527ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec69101610b62565b6001600160a01b038116600090815260fd60205260408120546108dd565b6000805160206136488339815191526110d0816117f8565b610d30611f48565b60006060806000806000606060c9546000801b1480156110f8575060ca54155b61113c5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610a0d565b611144611f86565b61114c611f95565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6060606980546108f29061326b565b6111b8611802565b6000805160206136088339815191526111d0816117f8565b600082116112205760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610a0d565b610e738383611fa4565b6101c75460405163df592f7d60e01b81526001600160a01b038085166004830152600092859291169063df592f7d90602401602060405180830381865afa158015611279573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129d919061329f565b156112c657604051630504a20d60e01b81526001600160a01b0382166004820152602401610a0d565b610a2084846120e4565b6112e860008051602061360883398151915282610b6d565b6040516001600160a01b03821681527f0a8bb31534c0ed46f380cb867bd5c803a189ced9a764e30b3a4991a9901d747490602001610b62565b60003361132f8185856118bf565b5060019392505050565b61135160008051602061364883398151915282611455565b6040516001600160a01b03821681527fef69f7d97228658c92417be1b16b19058315de71fecb435d07b7d23728b6bd3190602001610b62565b60006108dd60008051602061360883398151915283611176565b6101c75460405163df592f7d60e01b81526001600160a01b0380891660048301528892169063df592f7d90602401602060405180830381865afa1580156113ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611413919061329f565b1561143c57604051630504a20d60e01b81526001600160a01b0382166004820152602401610a0d565b61144b8888888888888861215f565b5050505050505050565b600082815260976020526040902060010154611470816117f8565b816001600160a01b0381166114975760405162461bcd60e51b8152600401610a0d906132c1565b61149f611802565b610bc18484611b05565b600054610100900460ff16158080156114c95750600054600160ff909116105b806114e35750303b1580156114e3575060005460ff166001145b6115465760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610a0d565b6000805460ff191660011790558015611569576000805461ff0019166101001790555b836001600160a01b0381166115905760405162461bcd60e51b8152600401610a0d906132c1565b836001600160a01b0381166115b75760405162461bcd60e51b8152600401610a0d906132c1565b61162a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8e018190048102820181019092528c815292508c91508b90819084018382808284376000920191909152506122c392505050565b6116326122f4565b6116718a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061231b92505050565b6116796122f4565b611681612365565b61168c600033611a75565b6116a460008051602061360883398151915287611a75565b6116bc60008051602061364883398151915286611a75565b50506101c780546001600160a01b0319166001600160a01b038416179055801561144b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b61175c611802565b600080516020613608833981519152611774816117f8565b610bc184848461184b565b60006108dd60008051602061364883398151915283611176565b6117b160008051602061360883398151915282611455565b6040516001600160a01b03821681527f33d83959be2573f5453b12eb9d43b3499bc57d96bd2f067ba44803c859e8111390602001610b62565b60003361132f818585611e24565b610d308133612394565b6101945460ff16156118495760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610a0d565b565b60006118578484611729565b90506000198114610bc157818110156118b25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a0d565b610bc18484848403611e24565b6001600160a01b0383166119235760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a0d565b6001600160a01b0382166119855760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a0d565b6119908383836123ed565b6001600160a01b03831660009081526065602052604090205481811015611a085760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a0d565b6001600160a01b0380851660008181526065602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a689086815260200190565b60405180910390a3610bc1565b611a7f8282611176565b610c505760008281526097602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611ab73390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610bd1612524565b611b0f8282611176565b15610c505760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610c50816117f8565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611baa57610e7383612598565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c04575060408051601f3d908101601f19168201909252611c0191810190613389565b60015b611c675760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610a0d565b6000805160206136288339815191528114611cd65760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610a0d565b50610e73838383612634565b60003361132f818585611cf58383611729565b611cff91906133b8565b611e24565b611d0c612659565b610194805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216611dad5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a0d565b611db9600083836123ed565b8060676000828254611dcb91906133b8565b90915550506001600160a01b0382166000818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038316611e865760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a0d565b6001600160a01b038216611ee75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a0d565b6001600160a01b0383811660008181526066602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b611f50611802565b610194805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611d3a3390565b606060cb80546108f29061326b565b606060cc80546108f29061326b565b6001600160a01b0382166120045760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a0d565b612010826000836123ed565b6001600160a01b038216600090815260656020526040902054818110156120845760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a0d565b6001600160a01b03831660008181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600033816120f28286611729565b9050838110156121525760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a0d565b610b0a8286868403611e24565b834211156121af5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610a0d565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886121de8c6126a3565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000612239826126cb565b90506000612249828787876126f8565b9050896001600160a01b0316816001600160a01b0316146122ac5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610a0d565b6122b78a8a8a611e24565b50505050505050505050565b600054610100900460ff166122ea5760405162461bcd60e51b8152600401610a0d906133cb565b610c508282612720565b600054610100900460ff166118495760405162461bcd60e51b8152600401610a0d906133cb565b600054610100900460ff166123425760405162461bcd60e51b8152600401610a0d906133cb565b610d3081604051806040016040528060018152602001603160f81b815250612760565b600054610100900460ff1661238c5760405162461bcd60e51b8152600401610a0d906133cb565b6118496127af565b61239e8282611176565b610c50576123ab816127e3565b6123b68360206127f5565b6040516020016123c7929190613416565b60408051601f198184030181529082905262461bcd60e51b8252610a0d91600401612e25565b6101c75460405163df592f7d60e01b81526001600160a01b0380861660048301528592169063df592f7d90602401602060405180830381865afa158015612438573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061245c919061329f565b1561248557604051630504a20d60e01b81526001600160a01b0382166004820152602401610a0d565b6101c75460405163df592f7d60e01b81526001600160a01b0380861660048301528592169063df592f7d90602401602060405180830381865afa1580156124d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f4919061329f565b1561251d57604051630504a20d60e01b81526001600160a01b0382166004820152602401610a0d565b5050505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61254f612998565b6125576129f1565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b0381163b6126055760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610a0d565b60008051602061362883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61263d83612a22565b60008251118061264a5750805b15610e7357610bc18383612a62565b6101945460ff166118495760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610a0d565b6001600160a01b038116600090815260fd602052604090208054600181018255905b50919050565b60006108dd6126d8611afb565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600061270987878787612a87565b9150915061271681612b4b565b5095945050505050565b600054610100900460ff166127475760405162461bcd60e51b8152600401610a0d906133cb565b606861275383826134d2565b506069610e7382826134d2565b600054610100900460ff166127875760405162461bcd60e51b8152600401610a0d906133cb565b60cb61279383826134d2565b5060cc6127a082826134d2565b5050600060c981905560ca5550565b600054610100900460ff166127d65760405162461bcd60e51b8152600401610a0d906133cb565b610194805460ff19169055565b60606108dd6001600160a01b03831660145b60606000612804836002613591565b61280f9060026133b8565b67ffffffffffffffff81111561282757612827612f90565b6040519080825280601f01601f191660200182016040528015612851576020820181803683370190505b509050600360fc1b8160008151811061286c5761286c6135a8565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061289b5761289b6135a8565b60200101906001600160f81b031916908160001a90535060006128bf846002613591565b6128ca9060016133b8565b90505b6001811115612942576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106128fe576128fe6135a8565b1a60f81b828281518110612914576129146135a8565b60200101906001600160f81b031916908160001a90535060049490941c9361293b816135be565b90506128cd565b5083156129915760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a0d565b9392505050565b6000806129a3611f86565b8051909150156129ba578051602090910120919050565b60c95480156129c95792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806129fc611f95565b805190915015612a13578051602090910120919050565b60ca5480156129c95792915050565b612a2b81612598565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612991838360405180606001604052806027815260200161366860279139612c95565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612abe5750600090506003612b42565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612b12573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612b3b57600060019250925050612b42565b9150600090505b94509492505050565b6000816004811115612b5f57612b5f6135d5565b03612b675750565b6001816004811115612b7b57612b7b6135d5565b03612bc85760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610a0d565b6002816004811115612bdc57612bdc6135d5565b03612c295760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a0d565b6003816004811115612c3d57612c3d6135d5565b03610d305760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610a0d565b6060600080856001600160a01b031685604051612cb291906135eb565b600060405180830381855af49150503d8060008114612ced576040519150601f19603f3d011682016040523d82523d6000602084013e612cf2565b606091505b5091509150612d0386838387612d0d565b9695505050505050565b60608315612d7c578251600003612d75576001600160a01b0385163b612d755760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a0d565b5081610a20565b610a208383815115612d915781518083602001fd5b8060405162461bcd60e51b8152600401610a0d9190612e25565b600060208284031215612dbd57600080fd5b81356001600160e01b03198116811461299157600080fd5b60005b83811015612df0578181015183820152602001612dd8565b50506000910152565b60008151808452612e11816020860160208601612dd5565b601f01601f19169290920160200192915050565b6020815260006129916020830184612df9565b80356001600160a01b0381168114612e4f57600080fd5b919050565b60008060408385031215612e6757600080fd5b612e7083612e38565b946020939093013593505050565b60008060408385031215612e9157600080fd5b612e9a83612e38565b9150612ea860208401612e38565b90509250929050565b60008060008060808587031215612ec757600080fd5b612ed085612e38565b9350612ede60208601612e38565b9250612eec60408601612e38565b9396929550929360600135925050565b600080600060608486031215612f1157600080fd5b612f1a84612e38565b9250612f2860208501612e38565b929592945050506040919091013590565b600060208284031215612f4b57600080fd5b5035919050565b600060208284031215612f6457600080fd5b61299182612e38565b60008060408385031215612f8057600080fd5b82359150612ea860208401612e38565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215612fb957600080fd5b612fc283612e38565b9150602083013567ffffffffffffffff811115612fde57600080fd5b8301601f81018513612fef57600080fd5b803567ffffffffffffffff81111561300957613009612f90565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561303857613038612f90565b60405281815282820160200187101561305057600080fd5b816020840160208301376000602083830101528093505050509250929050565b60ff60f81b8816815260e06020820152600061308f60e0830189612df9565b82810360408401526130a18189612df9565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b818110156130f75783518352602093840193909201916001016130d9565b50909b9a5050505050505050505050565b600080600080600080600060e0888a03121561312357600080fd5b61312c88612e38565b965061313a60208901612e38565b95506040880135945060608801359350608088013560ff8116811461315e57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008083601f84011261318d57600080fd5b50813567ffffffffffffffff8111156131a557600080fd5b6020830191508360208285010111156131bd57600080fd5b9250929050565b600080600080600080600060a0888a0312156131df57600080fd5b873567ffffffffffffffff8111156131f657600080fd5b6132028a828b0161317b565b909850965050602088013567ffffffffffffffff81111561322257600080fd5b61322e8a828b0161317b565b9096509450613241905060408901612e38565b925061324f60608901612e38565b915061325d60808901612e38565b905092959891949750929550565b600181811c9082168061327f57607f821691505b6020821081036126c557634e487b7160e01b600052602260045260246000fd5b6000602082840312156132b157600080fd5b8151801515811461299157600080fd5b602080825260169082015275616464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561339b57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156108dd576108dd6133a2565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161344e816017850160208801612dd5565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161347f816028840160208801612dd5565b01602801949350505050565b601f821115610e7357806000526020600020601f840160051c810160208510156134b25750805b601f840160051c820191505b8181101561251d57600081556001016134be565b815167ffffffffffffffff8111156134ec576134ec612f90565b613500816134fa845461326b565b8461348b565b6020601f821160018114613534576000831561351c5750848201515b600019600385901b1c1916600184901b17845561251d565b600084815260208120601f198516915b828110156135645787850151825560209485019460019092019101613544565b50848210156135825786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b80820281158282048414176108dd576108dd6133a2565b634e487b7160e01b600052603260045260246000fd5b6000816135cd576135cd6133a2565b506000190190565b634e487b7160e01b600052602160045260246000fd5b600082516135fd818460208701612dd5565b919091019291505056fe7b765e0e932d348852a6f810bfa1ab891e259123f02db8cdcde614c570223357360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220146f8c82966aa38bd0c14bbf6320d2737c5550717b1cfef8c2ffe3b7d83332cf64736f6c634300081a0033