0 txs
146 calls
constructor
constructor()
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
diamondV1
viewfunction diamondV1() view returns (address)
factory
viewfunction factory() view returns (address)
fundManagerLenderId
viewfunction fundManagerLenderId() view returns (string)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
paused
viewfunction paused() view returns (bool)
pool
viewfunction pool() view returns (address)
poolToken
viewfunction poolToken() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
totalAllocation
viewfunction totalAllocation() view returns (uint16)
totalAssets
viewfunction totalAssets() view returns (uint256)
totalV1Pools
viewfunction totalV1Pools() view returns (uint256)
v1Pools
viewfunction v1Pools(uint256) view returns (string v1PoolId, uint16 allocation)
addPool
nonpayablefunction addPool(string _v1PoolId, uint16 _allocation)
claimFunds
nonpayablefunction claimFunds(tuple[] _claim)
deployFunds
nonpayablefunction deployFunds()
emergencyWithdraw
nonpayablefunction emergencyWithdraw(address _token, address _to, uint256 _amount)
grantRole
nonpayablefunction grantRole(bytes32 role, address _account)
initialize
nonpayablefunction initialize(address _poolToken, address _diamondV1, string _lenderId, address _pool)
pause
nonpayablefunction pause()
removePool
nonpayablefunction removePool(uint256 _index)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address _account)
sendToV2Reserve
nonpayablefunction sendToV2Reserve(uint256 _v2Amount, uint256 uptoQueuePosition)
transferAdmin
nonpayablefunction transferAdmin(address _newOwner)
unpause
nonpayablefunction unpause()
updatePoolAllocation
nonpayablefunction updatePoolAllocation(uint256 _index, uint16 _allocation)
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)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
EmergencyWithdraw
event EmergencyWithdraw(address _token, address _to, uint256 _amount)
FundClaimed
event FundClaimed(address indexed _executor, uint256 _amount)
FundDeployed
event FundDeployed(address indexed _executor, uint256 _amount)
Initialized
event Initialized(uint8 version)
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)
Unpaused
event Unpaused(address account)
Upgraded
event Upgraded(address indexed implementation)
V1PoolAdded
event V1PoolAdded(address indexed _executor, uint16 _allocation, string _v1PoolId)
V1PoolAllocationUpdated
event V1PoolAllocationUpdated(address indexed _executor, uint16 _prevAllocation, uint16 _newAllocation, string _v1PoolId)
V1PoolRemoved
event V1PoolRemoved(address indexed _executor, uint16 _allocation, string _v1PoolId)
errors
AccessDenied
error AccessDenied(address _executor)
DuplicatePool
error DuplicatePool(string _poolId)
InvalidAllocation
error InvalidAllocation(uint256 _allocation)
InvalidV1Pool
error InvalidV1Pool(string _poolId)
V1PoolIsNotActive
error V1PoolIsNotActive(string _poolId)
creation bytecode
0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051613d5c6200011f600039600081816109d901528181610a1901528181610b5b01528181610b9b0152610c2a0152613d5c6000f3fe6080604052600436106101d85760003560e01c806379203dc411610102578063a217fddf11610095578063d547741f11610064578063d547741f14610553578063e507b08214610573578063e63ea40814610593578063e951d56c146105b357600080fd5b8063a217fddf146104dc578063a38dcbd0146104f1578063c45a015514610511578063cbdf382c1461053257600080fd5b80638e0be768116100d15780638e0be7681461045957806390095ac81461046e57806391d148541461049c578063957fa025146104bc57600080fd5b806379203dc4146103d85780637a3ab62f1461040e5780637b5b2c81146104245780638456cb591461044457600080fd5b806336568abe1161017a5780634f1ef286116101495780634f1ef2861461037857806352d1902d1461038b5780635c975abb146103a057806375829def146103b857600080fd5b806336568abe146103015780633659cfe6146103215780633f4ba83a1461034157806348e2477a1461035657600080fd5b806316f0115b116101b657806316f0115b14610257578063248a9ca31461029057806326c2a8ac146102c05780632f2ff15d146102e157600080fd5b806301e1d114146101dd57806301ffc9a71461020557806309c26fb114610235575b600080fd5b3480156101e957600080fd5b506101f26105d3565b6040519081526020015b60405180910390f35b34801561021157600080fd5b50610225610220366004613114565b6106ea565b60405190151581526020016101fc565b34801561024157600080fd5b5061025561025036600461319c565b610721565b005b34801561026357600080fd5b5061012e54610278906001600160a01b031681565b6040516001600160a01b0390911681526020016101fc565b34801561029c57600080fd5b506101f26102ab366004613219565b60009081526065602052604090206001015490565b3480156102cc57600080fd5b5061013054610278906001600160a01b031681565b3480156102ed57600080fd5b506102556102fc366004613232565b6108cd565b34801561030d57600080fd5b5061025561031c366004613232565b610950565b34801561032d57600080fd5b5061025561033c366004613262565b6109ce565b34801561034d57600080fd5b50610255610aae565b34801561036257600080fd5b5061036b610ac1565b6040516101fc91906132d7565b610255610386366004613359565b610b50565b34801561039757600080fd5b506101f2610c1d565b3480156103ac57600080fd5b5060fb5460ff16610225565b3480156103c457600080fd5b506102556103d3366004613262565b610cd0565b3480156103e457600080fd5b50610130546103fb90600160a01b900461ffff1681565b60405161ffff90911681526020016101fc565b34801561041a57600080fd5b50610132546101f2565b34801561043057600080fd5b5061025561043f3660046133ec565b610d2d565b34801561045057600080fd5b50610255610f13565b34801561046557600080fd5b50610255610f26565b34801561047a57600080fd5b5061048e610489366004613219565b61135e565b6040516101fc92919061340e565b3480156104a857600080fd5b506102256104b7366004613232565b61141f565b3480156104c857600080fd5b506102556104d7366004613434565b61144a565b3480156104e857600080fd5b506101f2600081565b3480156104fd57600080fd5b5061025561050c366004613219565b61190f565b34801561051d57600080fd5b5061012d54610278906001600160a01b031681565b34801561053e57600080fd5b5061012f54610278906001600160a01b031681565b34801561055f57600080fd5b5061025561056e366004613232565b611c26565b34801561057f57600080fd5b5061025561058e3660046134c0565b611ca3565b34801561059f57600080fd5b506102556105ae3660046134ec565b611f34565b3480156105bf57600080fd5b506102556105ce36600461352d565b611f9b565b6101305461012f54604051631e6dcbb160e11b81526000926001600160a01b0390811692633cdb97629261060f9261013192169060040161365c565b60206040518083038186803b15801561062757600080fd5b505afa15801561063b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065f9190613686565b61012f546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b1580156106a357600080fd5b505afa1580156106b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106db9190613686565b6106e591906136b5565b905090565b60006001600160e01b03198216637965db0b60e01b148061071b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600054610100900460ff16158080156107415750600054600160ff909116105b8061075b5750303b15801561075b575060005460ff166001145b6107c35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156107e6576000805461ff0019166101001790555b6107ee612381565b6107f6612381565b6107fe6123aa565b6108096000336123d9565b3361012d80546001600160a01b03199081166001600160a01b039384161790915561012f8054821689841617905561013080549091169187169190911790556108556101318585612f52565b5061012e80546001600160a01b0319166001600160a01b03841617905561087f868660001961245f565b80156108c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6000828152606560205260409020600101546108e881612521565b816001600160a01b0381166109385760405162461bcd60e51b8152602060048201526016602482015275616464726573732063616e6e6f74206265207a65726f60501b60448201526064016107ba565b61094061252b565b61094a84846123d9565b50505050565b6001600160a01b03811633146109c05760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016107ba565b6109ca8282612571565b5050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610a175760405162461bcd60e51b81526004016107ba906136cd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a60600080516020613ce0833981519152546001600160a01b031690565b6001600160a01b031614610a865760405162461bcd60e51b81526004016107ba90613719565b610a8f816125d8565b60408051600080825260208201909252610aab918391906125e3565b50565b6000610ab981612521565b610aab612762565b6101318054610acf90613581565b80601f0160208091040260200160405190810160405280929190818152602001828054610afb90613581565b8015610b485780601f10610b1d57610100808354040283529160200191610b48565b820191906000526020600020905b815481529060010190602001808311610b2b57829003601f168201915b505050505081565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610b995760405162461bcd60e51b81526004016107ba906136cd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610be2600080516020613ce0833981519152546001600160a01b031690565b6001600160a01b031614610c085760405162461bcd60e51b81526004016107ba90613719565b610c11826125d8565b6109ca828260016125e3565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610cbd5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016107ba565b50600080516020613ce083398151915290565b610cdb6000826108cd565b610ce6600033611c26565b7ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec633604080516001600160a01b03928316815291841660208301520160405180910390a150565b61012e60009054906101000a90046001600160a01b03166001600160a01b031663dc4c90d36040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7c57600080fd5b505afa158015610d90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db49190613765565b6001600160a01b0316336001600160a01b031614610df357335b604051630504a20d60e01b81526001600160a01b0390911660048201526024016107ba565b610dfb61252b565b61012f5461012e54610e1a916001600160a01b039081169116846127b4565b61012e546040805163417f29ad60e11b815290516000926001600160a01b0316916382fe535a916004808301926020929190829003018186803b158015610e6057600080fd5b505afa158015610e74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e989190613765565b90506001600160a01b038116610ead57505050565b60405163d8aed14560e01b815260048101839052602481018490526001600160a01b0382169063d8aed14590604401600060405180830381600087803b158015610ef657600080fd5b505af1158015610f0a573d6000803e3d6000fd5b50505050505050565b6000610f1e81612521565b610aab6127e4565b61012e60009054906101000a90046001600160a01b03166001600160a01b031663dc4c90d36040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7557600080fd5b505afa158015610f89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fad9190613765565b6001600160a01b0316336001600160a01b031614610fcb5733610dce565b610fd361252b565b61013054600160a01b900461ffff16612710146110145761013054604051630decee6760e31b8152600160a01b90910461ffff1660048201526024016107ba565b61012f546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561105957600080fd5b505afa15801561106d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110919190613686565b6101305461012f54604051631524564d60e11b81529293506001600160a01b0391821692632a48ac9a926110d092610131929116908690600401613782565b600060405180830381600087803b1580156110ea57600080fd5b505af11580156110fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261112691908101906137b0565b5060008060005b6101325481101561122e57612710610132828154811061114f5761114f61381e565b60009182526020909120600160029092020101546111719061ffff1686613834565b61117b9190613853565b925061118783836136b5565b6101305461013280549294506001600160a01b0390911691631319dada9161013191859081106111b9576111b961381e565b9060005260206000209060020201600001866040518463ffffffff1660e01b81526004016111e993929190613875565b600060405180830381600087803b15801561120357600080fd5b505af1158015611217573d6000803e3d6000fd5b505050508080611226906138ab565b91505061112d565b5061012e5460408051637119778560e11b815290516001600160a01b039092169163f7f79b96918491849163e232ef0a916004808301926020929190829003018186803b15801561127e57600080fd5b505afa158015611292573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b69190613686565b6112c091906136b5565b6040518263ffffffff1660e01b81526004016112de91815260200190565b600060405180830381600087803b1580156112f857600080fd5b505af115801561130c573d6000803e3d6000fd5b505050506113173390565b6001600160a01b03167f4b08248264aaf3e5ee0d64579c20bf212f3a153542ba0dc86f2073f5fdd761f58460405161135191815260200190565b60405180910390a2505050565b610132818154811061136f57600080fd5b906000526020600020906002020160009150905080600001805461139290613581565b80601f01602080910402602001604051908101604052809291908181526020018280546113be90613581565b801561140b5780601f106113e05761010080835404028352916020019161140b565b820191906000526020600020905b8154815290600101906020018083116113ee57829003601f168201915b5050506001909301549192505061ffff1682565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61012e60009054906101000a90046001600160a01b03166001600160a01b031663dc4c90d36040518163ffffffff1660e01b815260040160206040518083038186803b15801561149957600080fd5b505afa1580156114ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d19190613765565b6001600160a01b0316336001600160a01b0316146114ef5733610dce565b6114f761252b565b6101305461012f54604051631e6dcbb160e11b81526000926001600160a01b0390811692633cdb9762926115339261013192169060040161365c565b60206040518083038186803b15801561154b57600080fd5b505afa15801561155f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115839190613686565b905060005b828110156116b957610130546001600160a01b0316636878461b8585848181106115b4576115b461381e565b90506020028101906115c691906138c6565b6115d090806138c6565b8686858181106115e2576115e261381e565b90506020028101906115f491906138c6565b6020013587878681811061160a5761160a61381e565b905060200281019061161c91906138c6565b604001358888878181106116325761163261381e565b905060200281019061164491906138c6565b6116559060808101906060016138e6565b6040518563ffffffff1660e01b815260040161167494939291906139de565b600060405180830381600087803b15801561168e57600080fd5b505af11580156116a2573d6000803e3d6000fd5b5050505080806116b1906138ab565b915050611588565b506101305461012f54604051631e6dcbb160e11b81526000926001600160a01b0390811692633cdb9762926116f69261013192169060040161365c565b60206040518083038186803b15801561170e57600080fd5b505afa158015611722573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117469190613686565b61012e549091506001600160a01b031663f7f79b966117658484613ab7565b61012e60009054906101000a90046001600160a01b03166001600160a01b031663e232ef0a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117b457600080fd5b505afa1580156117c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ec9190613686565b6117f69190613ab7565b6040518263ffffffff1660e01b815260040161181491815260200190565b600060405180830381600087803b15801561182e57600080fd5b505af1158015611842573d6000803e3d6000fd5b50506101305461012f546040516302ec122360e21b81526001600160a01b039283169450630bb0488c9350611881926101319216908690600401613782565b602060405180830381600087803b15801561189b57600080fd5b505af11580156118af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d39190613ace565b5060405181815233907fc8dc8699e66727a0166ccf48d03b81c15c44f6106437b58b71708ee620b6dcf69060200160405180910390a250505050565b61012e60009054906101000a90046001600160a01b03166001600160a01b031663dc4c90d36040518163ffffffff1660e01b815260040160206040518083038186803b15801561195e57600080fd5b505afa158015611972573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119969190613765565b6001600160a01b0316336001600160a01b0316146119b45733610dce565b6119bc61252b565b610132546000906119cf90600190613ab7565b9050600061013283815481106119e7576119e761381e565b9060005260206000209060020201604051806040016040529081600082018054611a1090613581565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3c90613581565b8015611a895780601f10611a5e57610100808354040283529160200191611a89565b820191906000526020600020905b815481529060010190602001808311611a6c57829003601f168201915b50505091835250506001919091015461ffff166020909101529050828214611b2b576101328281548110611abf57611abf61381e565b90600052602060002090600202016101328481548110611ae157611ae161381e565b90600052602060002090600202016000820181600001908054611b0390613581565b611b0e929190612fd6565b506001918201549101805461ffff191661ffff9092169190911790555b610132805480611b3d57611b3d613af0565b60008281526020812060001990920191600283020190611b5d8282613051565b50600101805461ffff191690559055805160405160009161013391611b829190613b06565b90815260405160209181900382019020805460ff1916921515929092179091558101516101308054601490611bc3908490600160a01b900461ffff16613b18565b92506101000a81548161ffff021916908361ffff160217905550611be43390565b6001600160a01b03167f53fda0d903773502d2d6d1db23daee4363236ba18fcfa9807116a32ca74e73ca82602001518360000151604051611351929190613b3b565b600082815260656020526040902060010154611c4181612521565b816001600160a01b038116611c915760405162461bcd60e51b8152602060048201526016602482015275616464726573732063616e6e6f74206265207a65726f60501b60448201526064016107ba565b611c9961252b565b61094a8484612571565b61012e60009054906101000a90046001600160a01b03166001600160a01b031663dc4c90d36040518163ffffffff1660e01b815260040160206040518083038186803b158015611cf257600080fd5b505afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a9190613765565b6001600160a01b0316336001600160a01b031614611d485733610dce565b611d5061252b565b60006101328381548110611d6657611d6661381e565b9060005260206000209060020201604051806040016040529081600082018054611d8f90613581565b80601f0160208091040260200160405190810160405280929190818152602001828054611dbb90613581565b8015611e085780601f10611ddd57610100808354040283529160200191611e08565b820191906000526020600020905b815481529060010190602001808311611deb57829003601f168201915b50505091835250506001919091015461ffff9081166020928301529082015161013054929350612710929091611e4691600160a01b90041685613b58565b611e509190613b18565b61ffff161115611e7957604051630decee6760e31b815261ffff831660048201526024016107ba565b816101328481548110611e8e57611e8e61381e565b600091825260209182902060029190910201600101805461ffff191661ffff938416179055820151610130549091611ece91600160a01b90041684613b58565b611ed89190613b18565b610130805461ffff92909216600160a01b0261ffff60a01b199092169190911790556020810151815160405133927f3a52eb3d52d8a4724fbb81069aecbd20328b31e334e03b4c8814c06338b7280f9261135192879190613b7e565b6000611f3f81612521565b611f4a8484846127b4565b604080516001600160a01b038087168252851660208201529081018390527ff24ef89f38eadc1bde50701ad6e4d6d11a2dc24f7cf834a486991f38833285049060600160405180910390a150505050565b61012e60009054906101000a90046001600160a01b03166001600160a01b031663dc4c90d36040518163ffffffff1660e01b815260040160206040518083038186803b158015611fea57600080fd5b505afa158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120229190613765565b6001600160a01b0316336001600160a01b0316146120405733610dce565b61204861252b565b610133838360405161205b929190613ba5565b9081526040519081900360200190205460ff16156120905782826040516311781feb60e11b81526004016107ba929190613bb5565b61013054604051638bc4c13d60e01b81526001916001600160a01b031690638bc4c13d906120c49087908790600401613bb5565b60206040518083038186803b1580156120dc57600080fd5b505afa1580156120f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121149190613bc9565b600281111561212557612125613978565b1461214757828260405163422a004160e11b81526004016107ba929190613bb5565b61012f5461013054604051633de5cc4b60e11b81526001600160a01b039283169290911690637bcb9896906121829087908790600401613bb5565b60206040518083038186803b15801561219a57600080fd5b505afa1580156121ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d29190613765565b6001600160a01b0316146121fd57828260405163edb6de3b60e01b81526004016107ba929190613bb5565b610130546127109061221a90600160a01b900461ffff1683613b58565b61ffff16111561224357604051630decee6760e31b815261ffff821660048201526024016107ba565b6040805160606020601f860181900402820181018352918101848152610132928291908790879081908501838280828437600092018290525093855250505061ffff85166020928301528354600181018555938152819020825180519394600202909101926122b5928492019061308b565b50602091909101516001909101805461ffff191661ffff928316179055610130805483926014916122ef918591600160a01b900416613b58565b92506101000a81548161ffff021916908361ffff1602179055506001610133848460405161231e929190613ba5565b908152604051908190036020019020805491151560ff199092169190911790556123453390565b6001600160a01b03167fa12872c023210309aea1ba273f674eb6c6a4948faa58af5871ae631a2c6c6edf82858560405161135193929190613bea565b600054610100900460ff166123a85760405162461bcd60e51b81526004016107ba90613c08565b565b600054610100900460ff166123d15760405162461bcd60e51b81526004016107ba90613c08565b6123a8612821565b6123e3828261141f565b6109ca5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561241b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526124b08482612854565b61094a576040516001600160a01b03841660248201526000604482015261251790859063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526128fb565b61094a84826128fb565b610aab81336129d0565b60fb5460ff16156123a85760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107ba565b61257b828261141f565b156109ca5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006109ca81612521565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561261b5761261683612a29565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561265457600080fd5b505afa925050508015612684575060408051601f3d908101601f1916820190925261268191810190613686565b60015b6126e75760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016107ba565b600080516020613ce083398151915281146127565760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016107ba565b50612616838383612ac5565b61276a612aea565b60fb805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6040516001600160a01b03831660248201526044810182905261261690849063a9059cbb60e01b906064016124e0565b6127ec61252b565b60fb805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586127973390565b600054610100900460ff166128485760405162461bcd60e51b81526004016107ba90613c08565b60fb805460ff19169055565b6000806000846001600160a01b0316846040516128719190613b06565b6000604051808303816000865af19150503d80600081146128ae576040519150601f19603f3d011682016040523d82523d6000602084013e6128b3565b606091505b50915091508180156128dd5750805115806128dd5750808060200190518101906128dd9190613ace565b80156128f257506001600160a01b0385163b15155b95945050505050565b6000612950826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612b339092919063ffffffff16565b90508051600014806129715750808060200190518101906129719190613ace565b6126165760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016107ba565b6129da828261141f565b6109ca576129e781612b4a565b6129f2836020612b5c565b604051602001612a03929190613c53565b60408051601f198184030181529082905262461bcd60e51b82526107ba916004016132d7565b6001600160a01b0381163b612a965760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016107ba565b600080516020613ce083398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612ace83612cff565b600082511180612adb5750805b156126165761094a8383612d3f565b60fb5460ff166123a85760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107ba565b6060612b428484600085612d64565b949350505050565b606061071b6001600160a01b03831660145b60606000612b6b836002613834565b612b769060026136b5565b67ffffffffffffffff811115612b8e57612b8e6132ea565b6040519080825280601f01601f191660200182016040528015612bb8576020820181803683370190505b509050600360fc1b81600081518110612bd357612bd361381e565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612c0257612c0261381e565b60200101906001600160f81b031916908160001a9053506000612c26846002613834565b612c319060016136b5565b90505b6001811115612ca9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612c6557612c6561381e565b1a60f81b828281518110612c7b57612c7b61381e565b60200101906001600160f81b031916908160001a90535060049490941c93612ca281613cc8565b9050612c34565b508315612cf85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107ba565b9392505050565b612d0881612a29565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612cf88383604051806060016040528060278152602001613d0060279139612e3f565b606082471015612dc55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016107ba565b600080866001600160a01b03168587604051612de19190613b06565b60006040518083038185875af1925050503d8060008114612e1e576040519150601f19603f3d011682016040523d82523d6000602084013e612e23565b606091505b5091509150612e3487838387612eb7565b979650505050505050565b6060600080856001600160a01b031685604051612e5c9190613b06565b600060405180830381855af49150503d8060008114612e97576040519150601f19603f3d011682016040523d82523d6000602084013e612e9c565b606091505b5091509150612ead86838387612eb7565b9695505050505050565b60608315612f23578251612f1c576001600160a01b0385163b612f1c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107ba565b5081612b42565b612b428383815115612f385781518083602001fd5b8060405162461bcd60e51b81526004016107ba91906132d7565b828054612f5e90613581565b90600052602060002090601f016020900481019282612f805760008555612fc6565b82601f10612f995782800160ff19823516178555612fc6565b82800160010185558215612fc6579182015b82811115612fc6578235825591602001919060010190612fab565b50612fd29291506130ff565b5090565b828054612fe290613581565b90600052602060002090601f0160209004810192826130045760008555612fc6565b82601f106130155780548555612fc6565b82800160010185558215612fc657600052602060002091601f016020900482015b82811115612fc6578254825591600101919060010190613036565b50805461305d90613581565b6000825580601f1061306d575050565b601f016020900490600052602060002090810190610aab91906130ff565b82805461309790613581565b90600052602060002090601f0160209004810192826130b95760008555612fc6565b82601f106130d257805160ff1916838001178555612fc6565b82800160010185558215612fc6579182015b82811115612fc65782518255916020019190600101906130e4565b5b80821115612fd25760008155600101613100565b60006020828403121561312657600080fd5b81356001600160e01b031981168114612cf857600080fd5b6001600160a01b0381168114610aab57600080fd5b60008083601f84011261316557600080fd5b50813567ffffffffffffffff81111561317d57600080fd5b60208301915083602082850101111561319557600080fd5b9250929050565b6000806000806000608086880312156131b457600080fd5b85356131bf8161313e565b945060208601356131cf8161313e565b9350604086013567ffffffffffffffff8111156131eb57600080fd5b6131f788828901613153565b909450925050606086013561320b8161313e565b809150509295509295909350565b60006020828403121561322b57600080fd5b5035919050565b6000806040838503121561324557600080fd5b8235915060208301356132578161313e565b809150509250929050565b60006020828403121561327457600080fd5b8135612cf88161313e565b60005b8381101561329a578181015183820152602001613282565b8381111561094a5750506000910152565b600081518084526132c381602086016020860161327f565b601f01601f19169290920160200192915050565b602081526000612cf860208301846132ab565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613329576133296132ea565b604052919050565b600067ffffffffffffffff82111561334b5761334b6132ea565b50601f01601f191660200190565b6000806040838503121561336c57600080fd5b82356133778161313e565b9150602083013567ffffffffffffffff81111561339357600080fd5b8301601f810185136133a457600080fd5b80356133b76133b282613331565b613300565b8181528660208385010111156133cc57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080604083850312156133ff57600080fd5b50508035926020909101359150565b60408152600061342160408301856132ab565b905061ffff831660208301529392505050565b6000806020838503121561344757600080fd5b823567ffffffffffffffff8082111561345f57600080fd5b818501915085601f83011261347357600080fd5b81358181111561348257600080fd5b8660208260051b850101111561349757600080fd5b60209290920196919550909350505050565b803561ffff811681146134bb57600080fd5b919050565b600080604083850312156134d357600080fd5b823591506134e3602084016134a9565b90509250929050565b60008060006060848603121561350157600080fd5b833561350c8161313e565b9250602084013561351c8161313e565b929592945050506040919091013590565b60008060006040848603121561354257600080fd5b833567ffffffffffffffff81111561355957600080fd5b61356586828701613153565b90945092506135789050602085016134a9565b90509250925092565b600181811c9082168061359557607f821691505b602082108114156135b657634e487b7160e01b600052602260045260246000fd5b50919050565b8054600090600181811c90808316806135d657607f831692505b60208084108214156135f857634e487b7160e01b600052602260045260246000fd5b8388526020880182801561361357600181146136245761364f565b60ff1987168252828201975061364f565b60008981526020902060005b8781101561364957815484820152908601908401613630565b83019850505b5050505050505092915050565b60408152600061366f60408301856135bc565b905060018060a01b03831660208301529392505050565b60006020828403121561369857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156136c8576136c861369f565b500190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561377757600080fd5b8151612cf88161313e565b60608152600061379560608301866135bc565b6001600160a01b039490941660208301525060400152919050565b6000602082840312156137c257600080fd5b815167ffffffffffffffff8111156137d957600080fd5b8201601f810184136137ea57600080fd5b80516137f86133b282613331565b81815285602083850101111561380d57600080fd5b6128f282602083016020860161327f565b634e487b7160e01b600052603260045260246000fd5b600081600019048311821515161561384e5761384e61369f565b500290565b60008261387057634e487b7160e01b600052601260045260246000fd5b500490565b60608152600061388860608301866135bc565b828103602084015261389a81866135bc565b915050826040830152949350505050565b60006000198214156138bf576138bf61369f565b5060010190565b60008235607e198336030181126138dc57600080fd5b9190910192915050565b6000602082840312156138f857600080fd5b813560ff81168114612cf857600080fd5b6000808335601e1984360301811261392057600080fd5b830160208101925035905067ffffffffffffffff81111561394057600080fd5b80360383131561319557600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b634e487b7160e01b600052602160045260246000fd5b818352600060208085019450826000805b868110156139d2578235885283830135600981106139bb578283fd5b88850152604097880197929092019160010161399f565b50959695505050505050565b608081528435608082015260006139f86020870187613909565b608060a0850152613a0e6101008501828461394f565b915050613a1e6040880188613909565b607f19808685030160c0870152613a3684838561394f565b935060608a01359250601e198a3603018312613a5157600080fd5b918901918235915067ffffffffffffffff821115613a6e57600080fd5b8160061b36038a1315613a8057600080fd5b8584030160e0860152613a9783826020850161398e565b93505050508460208301528360408301526128f2606083018460ff169052565b600082821015613ac957613ac961369f565b500390565b600060208284031215613ae057600080fd5b81518015158114612cf857600080fd5b634e487b7160e01b600052603160045260246000fd5b600082516138dc81846020870161327f565b600061ffff83811690831681811015613b3357613b3361369f565b039392505050565b61ffff83168152604060208201526000612b4260408301846132ab565b600061ffff808316818516808303821115613b7557613b7561369f565b01949350505050565b600061ffff8086168352808516602084015250606060408301526128f260608301846132ab565b8183823760009101908152919050565b602081526000612b4260208301848661394f565b600060208284031215613bdb57600080fd5b815160038110612cf857600080fd5b61ffff841681526040602082015260006128f260408301848661394f565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613c8b81601785016020880161327f565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613cbc81602884016020880161327f565b01602801949350505050565b600081613cd757613cd761369f565b50600019019056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220db8ba944c2e8f22acfc5f57c628f9164dc073f02e4268a150fd329f0cab21e2a64736f6c63430008090033