0 txs
0 calls
constructor
constructor()
functions
canDeposit
viewfunction canDeposit() view returns (uint256)
canWithdraw
viewfunction canWithdraw() view returns (uint256)
checkUpkeep
viewfunction checkUpkeep(bytes) view returns (bool, bytes)
getDepositChange
viewfunction getDepositChange() view returns (int256)
getFees
viewfunction getFees() view returns (tuple[])
getMaxDeposits
viewfunction getMaxDeposits() view returns (uint256)
getMinDeposits
viewfunction getMinDeposits() view returns (uint256)
getPendingFees
viewfunction getPendingFees() view returns (uint256)
getTotalDeposits
viewfunction getTotalDeposits() view returns (uint256)
getVaultDepositLimits
viewfunction getVaultDepositLimits() view returns (uint256, uint256)
getVaults
viewfunction getVaults() view returns (address[])
indexOfLastFullVault
viewfunction indexOfLastFullVault() view returns (uint256)
maxDepositSizeBP
viewfunction maxDepositSizeBP() view returns (uint256)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
stakeController
viewfunction stakeController() view returns (address)
stakingPool
viewfunction stakingPool() view returns (address)
token
viewfunction token() view returns (address)
totalPrincipalDeposits
viewfunction totalPrincipalDeposits() view returns (uint256)
vaultDeploymentAmount
viewfunction vaultDeploymentAmount() view returns (uint128)
vaultDeploymentThreshold
viewfunction vaultDeploymentThreshold() view returns (uint128)
vaultImplementation
viewfunction vaultImplementation() view returns (address)
withdraw
viewfunction withdraw(uint256) view
__Strategy_init
nonpayablefunction __Strategy_init(address _token, address _stakingPool)
__VaultControllerStrategy_init
nonpayablefunction __VaultControllerStrategy_init(address _token, address _stakingPool, address _stakeController, address _vaultImplementation, tuple[] _fees, uint256 _maxDepositSizeBP)
addFee
nonpayablefunction addFee(address _receiver, uint256 _feeBasisPoints)
addVaults
nonpayablefunction addVaults(uint256 _numVaults)
claimRewards
nonpayablefunction claimRewards(uint256 _startIndex, uint256 _numVaults, uint256 _minRewards)
deposit
nonpayablefunction deposit(uint256 _amount)
initialize
nonpayablefunction initialize(address _token, address _stakingPool, address _stakeController, address _vaultImplementation, tuple[] _fees, uint256 _maxDepositSizeBP, uint128 _vaultDeploymentThreshold, uint128 _vaultDeploymentAmount)
performUpkeep
nonpayablefunction performUpkeep(bytes)
renounceOwnership
nonpayablefunction renounceOwnership()
setMaxDepositSizeBP
nonpayablefunction setMaxDepositSizeBP(uint256 _maxDepositSizeBP)
setVaultDeploymentParams
nonpayablefunction setVaultDeploymentParams(uint128 _vaultDeploymentThreshold, uint128 _vaultDeploymentAmount)
setVaultImplementation
nonpayablefunction setVaultImplementation(address _vaultImplementation)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateDeposits
nonpayablefunction updateDeposits(bytes) returns (int256 depositChange, address[] receivers, uint256[] amounts)
updateFee
nonpayablefunction updateFee(uint256 _index, address _receiver, uint256 _feeBasisPoints)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
upgradeVaults
nonpayablefunction upgradeVaults(uint256 _startIndex, uint256 _numVaults, bytes _data)
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetMaxDepositSizeBP
event SetMaxDepositSizeBP(uint256 maxDepositSizeBP)
SetVaultDeploymentParams
event SetVaultDeploymentParams(uint128 vaultDeploymentThreshold, uint128 vaultDeploymentAmount)
SetVaultImplementation
event SetVaultImplementation(address vaultImplementation)
Upgraded
event Upgraded(address indexed implementation)
UpgradedVaults
event UpgradedVaults(uint256 startIndex, uint256 numVaults, bytes data)
errors
InvalidBasisPoints
error InvalidBasisPoints()
VaultsAboveThreshold
error VaultsAboveThreshold()
creation bytecode
0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516140bd6200011f600039600081816108a7015281816108ea01528181610c9d01528181610ce00152610d7801526140bd6000f3fe608060405260043610620002775760003560e01c80638da5cb5b1162000153578063c51c2d0e11620000c5578063e78a58751162000084578063e78a58751462000760578063e84709881462000778578063eb47dc8f14620002bb578063eb634210146200079d578063f2fde38b14620007bf578063fc0c546a14620007e457600080fd5b8063c51c2d0e14620006c2578063cea7728e14620006da578063db8d55f114620006f2578063df9348a11462000719578063e61fbf3c146200073b57600080fd5b8063b47529c51162000112578063b47529c51462000626578063b51459fe146200064b578063b6b55f251462000663578063b7b7a4081462000688578063bba48a9014620006a057600080fd5b80638da5cb5b14620005585780639566355b1462000578578063a4f6548014620005a6578063af51e6a514620005cb578063b087690c146200060157600080fd5b80634f1ef28611620001ed5780636fac5bd111620001ac5780636fac5bd1146200049c578063715018a614620004b4578063722e354c14620004cc5780637718238f146200050e57806380135e3c146200053357600080fd5b80634f1ef28614620003fb57806352d1902d146200041257806353e78b6b146200042a57806369feab49146200044f5780636e04ff0d146200046757600080fd5b80633659cfe6116200023a5780633659cfe61462000340578063396a8b83146200036557806343ae8a5f146200038a57806344d00f8214620003af5780634585e33b14620003d657600080fd5b80630c56ae3b146200027c578063168a482214620002bb57806317359da414620002dc5780632000940514620003035780632e1a7d4d146200031b575b600080fd5b3480156200028957600080fd5b5060ca546200029e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620002c857600080fd5b5060cf545b604051908152602001620002b2565b348015620002e957600080fd5b5062000301620002fb36600462002dcf565b62000806565b005b3480156200031057600080fd5b50620002cd60d05481565b3480156200032857600080fd5b50620003016200033a36600462002dcf565b6200081e565b3480156200034d57600080fd5b50620003016200035f36600462002dff565b6200089d565b3480156200037257600080fd5b50620003016200038436600462002f0c565b62000985565b3480156200039757600080fd5b5062000301620003a93660046200301b565b62000a07565b348015620003bc57600080fd5b50620003c762000bbf565b604051620002b29190620030b7565b348015620003e357600080fd5b5062000301620003f536600462003106565b62000c23565b620003016200040c3660046200317d565b62000c93565b3480156200041f57600080fd5b50620002cd62000d6b565b3480156200043757600080fd5b50620003016200044936600462002dff565b62000e21565b3480156200045c57600080fd5b50620002cd62000eda565b3480156200047457600080fd5b506200048c6200048636600462003106565b62001020565b604051620002b292919062003230565b348015620004a957600080fd5b50620002cd60d15481565b348015620004c157600080fd5b506200030162001071565b348015620004d957600080fd5b5060dc54620004f590600160801b90046001600160801b031681565b6040516001600160801b039091168152602001620002b2565b3480156200051b57600080fd5b50620003016200052d3660046200324d565b62001089565b3480156200054057600080fd5b50620003016200055236600462003299565b62001154565b3480156200056557600080fd5b506097546001600160a01b03166200029e565b3480156200058557600080fd5b5062000590620012a1565b60408051928352602083019190915201620002b2565b348015620005b357600080fd5b5062000301620005c53660046200335c565b6200131a565b348015620005d857600080fd5b50620005f0620005ea36600462003106565b6200137d565b604051620002b29392919062003394565b3480156200060e57600080fd5b50620003016200062036600462003427565b62001644565b3480156200063357600080fd5b50620003016200064536600462003454565b620016fd565b3480156200065857600080fd5b50620002cd620018c8565b3480156200067057600080fd5b50620003016200068236600462002dcf565b620018ff565b3480156200069557600080fd5b50620002cd62001af2565b348015620006ad57600080fd5b5060cd546200029e906001600160a01b031681565b348015620006cf57600080fd5b50620002cd62001b8d565b348015620006e757600080fd5b50620002cd60d25481565b348015620006ff57600080fd5b506200070a62001c22565b604051620002b291906200348f565b3480156200072657600080fd5b5060dc54620004f5906001600160801b031681565b3480156200074857600080fd5b50620003016200075a366004620034e9565b62001c99565b3480156200076d57600080fd5b50620002cd62001d07565b3480156200078557600080fd5b50620003016200079736600462002dcf565b62001d46565b348015620007aa57600080fd5b5060cb546200029e906001600160a01b031681565b348015620007cc57600080fd5b5062000301620007de36600462002dff565b62001daa565b348015620007f157600080fd5b5060c9546200029e906001600160a01b031681565b6200081062001e26565b6200081b8162001e82565b50565b60ca546001600160a01b03163314620008545760405162461bcd60e51b81526004016200084b9062003527565b60405180910390fd5b60405162461bcd60e51b815260206004820152601f60248201527f7769746864726177616c73206e6f742079657420696d706c656d656e7465640060448201526064016200084b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003620008e85760405162461bcd60e51b81526004016200084b9062003551565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166200093360008051602062004041833981519152546001600160a01b031690565b6001600160a01b0316146200095c5760405162461bcd60e51b81526004016200084b906200359d565b620009678162001f85565b604080516000808252602082019092526200081b9183919062001f8f565b6200098f62001e26565b825b6200099d8385620035ff565b811015620009c457620009b1818362002107565b620009bc816200361a565b905062000991565b507f71ddb05108536dca4ade6ad9f2cec5fd3e84727523ab1e86b135ea47f79dfe8e838383604051620009fa9392919062003636565b60405180910390a1505050565b600054610100900460ff1662000a315760405162461bcd60e51b81526004016200084b9062003660565b62000a3d868662001c99565b60cb80546001600160a01b0319166001600160a01b038616179055823b62000ac75760405162461bcd60e51b815260206004820152603660248201527f5661756c7420696d706c656d656e746174696f6e2061646472657373206d75736044820152751d0818995b1bdb99c81d1bc8184818dbdb9d1c9858dd60521b60648201526084016200084b565b60cd80546001600160a01b0319166001600160a01b03851617905560005b825181101562000b625760cc83828151811062000b065762000b06620036ab565b602090810291909101810151825460018082018555600094855293839020825160029092020180546001600160a01b0319166001600160a01b0390921691909117815591015191015562000b5a816200361a565b905062000ae5565b5061138862000b70620021dd565b111562000b915760405162461bcd60e51b81526004016200084b90620036c1565b61271081111562000bb55760405163800c7e9160e01b815260040160405180910390fd5b60d2555050505050565b606060ce80548060200260200160405190810160405280929190818152602001828054801562000c1957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000bfa575b5050505050905090565b60dc5460d15460ce546001600160801b039092169162000c4690600190620036f8565b62000c529190620036f8565b1062000c715760405163204207c760e21b815260040160405180910390fd5b60dc5462000c8f90600160801b90046001600160801b031662001e82565b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000cde5760405162461bcd60e51b81526004016200084b9062003551565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000d2960008051602062004041833981519152546001600160a01b031690565b6001600160a01b03161462000d525760405162461bcd60e51b81526004016200084b906200359d565b62000d5d8262001f85565b62000c8f8282600162001f8f565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161462000e0d5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016200084b565b506000805160206200404183398151915290565b62000e2b62001e26565b803b62000e855760405162461bcd60e51b815260206004820152602160248201527f41646472657373206d7573742062656c6f6e6720746f206120636f6e747261636044820152601d60fa1b60648201526084016200084b565b60cd80546001600160a01b0319166001600160a01b0383169081179091556040519081527f028cd482b99a4d21fe2c757cd8fc155d8dcce718854d0f63e40819069339a49d906020015b60405180910390a150565b60c9546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa15801562000f28573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f4e919062003712565b905060005b60ce548110156200100a5760ce818154811062000f745762000f74620036ab565b6000918252602091829020015460408051630b45241160e11b815290516001600160a01b039092169263168a4822926004808401938290030181865afa15801562000fc3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fe9919062003712565b62000ff59083620035ff565b915062001002816200361a565b905062000f53565b5060cf546200101a90826200372c565b91505090565b60dc5460d15460ce546000926060926001600160801b03909116916200104990600190620036f8565b620010559190620036f8565b1060405180602001604052806000815250915091509250929050565b6200107b62001e26565b6200108760006200223e565b565b6200109362001e26565b604080518082019091526001600160a01b0383811682526020820183815260cc805460018101825560009190915292517f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe600290940293840180546001600160a01b0319169190931617909155517f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebf9091015561138862001133620021dd565b111562000c8f5760405162461bcd60e51b81526004016200084b90620036c1565b600054610100900460ff1615808015620011755750600054600160ff909116105b80620011915750303b15801562001191575060005460ff166001145b620011f65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016200084b565b6000805460ff1916600117905580156200121a576000805461ff0019166101001790555b6200122a89898989898962000a07565b6001600160801b03838116600160801b9184169182021760dc556200124f9062001e82565b801562001296576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b60cb5460408051636277b91560e11b8152815160009384936001600160a01b039091169263c4ef722a92600480830193928290030181865afa158015620012ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001312919062003771565b915091509091565b6200132462001e26565b6001600160801b03828116600160801b918316918202811760dc556040805191825260208201929092527f2196e987c24b3b409afea8902f67b4da71ca78df105640a4eb1776b2a2824a71910160405180910390a15050565b60ca5460009060609081906001600160a01b03163314620013b25760405162461bcd60e51b81526004016200084b9062003527565b620013bc62000eda565b60cf5490935060008413156200156857620013d88482620035ff565b60cc5490915067ffffffffffffffff811115620013f957620013f962002e1f565b60405190808252806020026020018201604052801562001423578160200160208202803683370190505b5060cc5490935067ffffffffffffffff81111562001445576200144562002e1f565b6040519080825280602002602001820160405280156200146f578160200160208202803683370190505b50915060005b60cc54811015620015615760cc8181548110620014965762001496620036ab565b600091825260209091206002909102015484516001600160a01b0390911690859083908110620014ca57620014ca620036ab565b60200260200101906001600160a01b031690816001600160a01b03168152505061271060cc8281548110620015035762001503620036ab565b9060005260206000209060020201600101548662001522919062003796565b6200152e9190620037b8565b838281518110620015435762001543620036ab565b602090810291909101015262001559816200361a565b905062001475565b506200158f565b60008412156200158f576200158084600019620037db565b6200158c9082620036f8565b90505b60c9546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015620015d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015ff919062003712565b90508015620016365760ca5460c95462001627916001600160a01b0391821691168362002290565b620016338183620036f8565b91505b5060cf559194909350909150565b30835b620016538486620035ff565b811015620016f65760ce8181548110620016715762001671620036ab565b600091825260209091200154604051636c7b69cb60e01b8152600481018590526001600160a01b03848116602483015290911690636c7b69cb90604401600060405180830381600087803b158015620016c957600080fd5b505af1158015620016de573d6000803e3d6000fd5b5050505080620016ee906200361a565b905062001647565b5050505050565b6200170762001e26565b60cc5483106200174f5760405162461bcd60e51b815260206004820152601260248201527111995948191bd95cc81b9bdd08195e1a5cdd60721b60448201526064016200084b565b806000036200181c5760cc80546200176a90600190620036f8565b815481106200177d576200177d620036ab565b906000526020600020906002020160cc8481548110620017a157620017a1620036ab565b60009182526020909120825460029092020180546001600160a01b0319166001600160a01b0390921691909117815560019182015491015560cc805480620017ed57620017ed6200386c565b60008281526020812060026000199093019283020180546001600160a01b031916815560010155905562001895565b8160cc8481548110620018335762001833620036ab565b906000526020600020906002020160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060cc84815481106200187f576200187f620036ab565b9060005260206000209060020201600101819055505b611388620018a2620021dd565b1115620018c35760405162461bcd60e51b81526004016200084b90620036c1565b505050565b600080620018d560cf5490565b9050620018e160cf5490565b8111620018f057600091505090565b60cf546200101a9082620036f8565b60ca546001600160a01b031633146200192c5760405162461bcd60e51b81526004016200084b9062003527565b60c95462001946906001600160a01b0316333084620022f5565b60008062001953620012a1565b91509150600060d15460016200196a9190620035ff565b90508160ce600081548110620019845762001984620036ab565b6000918252602091829020015460408051631ae665a560e01b815290516001600160a01b0390921692631ae665a5926004808401938290030181865afa158015620019d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019f9919062003712565b101562001a04575060005b60c9546040516370a0823160e01b815230600482015260009162001a839184916001600160a01b0316906370a0823190602401602060405180830381865afa15801562001a55573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a7b919062003712565b868662002335565b90508060cf600082825462001a999190620035ff565b925050819055508060d0600082825462001ab49190620035ff565b9091555050808514620016f65760ca54620016f6906001600160a01b031662001ade8388620036f8565b60c9546001600160a01b0316919062002290565b60008060001b60cb60009054906101000a90046001600160a01b03166001600160a01b031663495906576040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001b4c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b72919062003712565b1462001b7e5750600090565b62001b886200253d565b905090565b60008062001b9a62000eda565b905060008082131562001c1c5760005b60cc5481101562001c1a5761271060cc828154811062001bce5762001bce620036ab565b9060005260206000209060020201600101548462001bed919062003796565b62001bf99190620037b8565b62001c059083620035ff565b915062001c12816200361a565b905062001baa565b505b92915050565b606060cc805480602002602001604051908101604052809291908181526020016000905b8282101562001c90576000848152602090819020604080518082019091526002850290910180546001600160a01b0316825260019081015482840152908352909201910162001c46565b50505050905090565b600054610100900460ff1662001cc35760405162461bcd60e51b81526004016200084b9062003660565b60c980546001600160a01b038085166001600160a01b03199283161790925560ca80549284169290911691909117905562001cfd62002722565b62000c8f62002756565b60008062001d1460cf5490565b905062001d2062001af2565b811062001d2f57600091505090565b8062001d3a62001af2565b6200101a9190620036f8565b62001d5062001e26565b61271081111562001d745760405163800c7e9160e01b815260040160405180910390fd5b60d28190556040518181527fc3a64d8ad419db097a8d7e9ab60fad0d91ad6158cdd00de7ec455531ae72d4269060200162000ecf565b62001db462001e26565b6001600160a01b03811662001e1b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200084b565b6200081b816200223e565b6097546001600160a01b03163314620010875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200084b565b60c95460cb5460408051635f0f4c8360e01b815290516000936001600160a01b039081169330939116918291635f0f4c839160048083019260209291908290030181865afa15801562001ed9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001eff919062003882565b6040516001600160a01b03948516602482015292841660448401529083166064830152909116608482015260a40160408051601f198184030181529190526020810180516001600160e01b0316637c643b2f60e11b179052905060005b82811015620018c35762001f708262002780565b8062001f7c816200361a565b91505062001f5c565b6200081b62001e26565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562001fc557620018c3836200283c565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562002022575060408051601f3d908101601f191682019092526200201f9181019062003712565b60015b620020875760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016200084b565b600080516020620040418339815191528114620020f95760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016200084b565b50620018c3838383620028db565b600060ce83815481106200211f576200211f620036ab565b600091825260208220015483516001600160a01b0390911692509003620021a75760cd54604051631b2ce7f360e11b81526001600160a01b03918216600482015290821690633659cfe6906024015b600060405180830381600087803b1580156200218957600080fd5b505af11580156200219e573d6000803e3d6000fd5b50505050505050565b60cd5460405163278f794360e11b81526001600160a01b0383811692634f1ef286926200216e92909116908690600401620038a2565b60008060005b60cc54811015620022385760cc8181548110620022045762002204620036ab565b90600052602060002090600202016001015482620022239190620035ff565b915062002230816200361a565b9050620021e3565b50919050565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516001600160a01b038316602482015260448101829052620018c390849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915262002906565b6040516001600160a01b03808516602483015283166044820152606481018290526200232f9085906323b872dd60e01b90608401620022bd565b50505050565b60008381865b60ce548110156200251e57600060ce82815481106200235e576200235e620036ab565b600091825260208083209091015460408051631ae665a560e01b815290516001600160a01b0390921694508492631ae665a5926004808401938290030181865afa158015620023b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620023d7919062003712565b90506000620023e78289620036f8565b9050888210801562002403575062002400828a620036f8565b86105b1562002412575050506200251e565b80861115620024925760405163b6b55f2560e01b81526004810182905293945084936001600160a01b0384169063b6b55f2590602401600060405180830381600087803b1580156200246357600080fd5b505af115801562002478573d6000803e3d6000fd5b5050505080866200248a9190620036f8565b955062002507565b8086036200249e578394505b60405163b6b55f2560e01b8152600481018790526001600160a01b0384169063b6b55f2590602401600060405180830381600087803b158015620024e157600080fd5b505af1158015620024f6573d6000803e3d6000fd5b50505050600095505050506200251e565b5050508062002516906200361a565b90506200233b565b5060d1819055620025308287620036f8565b925050505b949350505050565b6000806200254a620012a1565b91505060cb60009054906101000a90046001600160a01b03166001600160a01b03166322f3e2d46040518163ffffffff1660e01b8152600401602060405180830381865afa158015620025a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620025c79190620038c8565b620025d457600062002713565b60d05460ce54620027139190620025ed90849062003796565b620025f99190620036f8565b60d25460cb546040805163885491af60e01b8152905161271093926001600160a01b03169163885491af9160048083019260209291908290030181865afa15801562002649573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200266f919062003712565b60cb60009054906101000a90046001600160a01b03166001600160a01b0316630fbc8f5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620026c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026e9919062003712565b620026f59190620036f8565b62002701919062003796565b6200270d9190620037b8565b620029e2565b60cf546200101a9190620035ff565b600054610100900460ff166200274c5760405162461bcd60e51b81526004016200084b9062003660565b62001087620029fc565b600054610100900460ff16620010875760405162461bcd60e51b81526004016200084b9062003660565b60cd546040516000916001600160a01b0316908390620027a09062002dc1565b620027ad929190620038a2565b604051809103906000f080158015620027ca573d6000803e3d6000fd5b5060c954909150620027e9906001600160a01b03168260001962002a31565b60ce80546001810182556000919091527fd36cd1c74ef8d7326d8021b776c18fb5a5724b7f7bc93c2f42e43e10ef27d12a0180546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620028ab5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200084b565b6000805160206200404183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b620028e68362002b4e565b600082511180620028f45750805b15620018c3576200232f838362002b90565b60006200295d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031662002bb89092919063ffffffff16565b905080516000148062002981575080806020019051810190620029819190620038c8565b620018c35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016200084b565b6000818310620029f35781620029f5565b825b9392505050565b600054610100900460ff1662002a265760405162461bcd60e51b81526004016200084b9062003660565b62001087336200223e565b80158062002aaf5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa15801562002a87573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002aad919062003712565b155b62002b1c5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b60648201526084016200084b565b6040516001600160a01b038316602482015260448101829052620018c390849063095ea7b360e01b90606401620022bd565b62002b59816200283c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060620029f58383604051806060016040528060278152602001620040616027913962002bc9565b606062002535848460008562002c47565b6060600080856001600160a01b03168560405162002be89190620038ec565b600060405180830381855af49150503d806000811462002c25576040519150601f19603f3d011682016040523d82523d6000602084013e62002c2a565b606091505b509150915062002c3d8683838762002d1a565b9695505050505050565b60608247101562002caa5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016200084b565b600080866001600160a01b0316858760405162002cc89190620038ec565b60006040518083038185875af1925050503d806000811462002d07576040519150601f19603f3d011682016040523d82523d6000602084013e62002d0c565b606091505b509150915062002530878383875b6060831562002d8e57825160000362002d86576001600160a01b0385163b62002d865760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016200084b565b508162002535565b62002535838381511562002da55781518083602001fd5b8060405162461bcd60e51b81526004016200084b91906200390a565b610721806200392083390190565b60006020828403121562002de257600080fd5b5035919050565b6001600160a01b03811681146200081b57600080fd5b60006020828403121562002e1257600080fd5b8135620029f58162002de9565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171562002e5b5762002e5b62002e1f565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562002e8d5762002e8d62002e1f565b604052919050565b600082601f83011262002ea757600080fd5b813567ffffffffffffffff81111562002ec45762002ec462002e1f565b62002ed9601f8201601f191660200162002e61565b81815284602083860101111562002eef57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121562002f2257600080fd5b8335925060208401359150604084013567ffffffffffffffff81111562002f4857600080fd5b62002f568682870162002e95565b9150509250925092565b600082601f83011262002f7257600080fd5b8135602067ffffffffffffffff82111562002f915762002f9162002e1f565b62002fa1818360051b0162002e61565b82815260069290921b8401810191818101908684111562002fc157600080fd5b8286015b8481101562003010576040818903121562002fe05760008081fd5b62002fea62002e35565b813562002ff78162002de9565b8152818501358582015283529183019160400162002fc5565b509695505050505050565b60008060008060008060c087890312156200303557600080fd5b8635620030428162002de9565b95506020870135620030548162002de9565b94506040870135620030668162002de9565b93506060870135620030788162002de9565b9250608087013567ffffffffffffffff8111156200309557600080fd5b620030a389828a0162002f60565b92505060a087013590509295509295509295565b6020808252825182820181905260009190848201906040850190845b81811015620030fa5783516001600160a01b031683529284019291840191600101620030d3565b50909695505050505050565b600080602083850312156200311a57600080fd5b823567ffffffffffffffff808211156200313357600080fd5b818501915085601f8301126200314857600080fd5b8135818111156200315857600080fd5b8660208285010111156200316b57600080fd5b60209290920196919550909350505050565b600080604083850312156200319157600080fd5b82356200319e8162002de9565b9150602083013567ffffffffffffffff811115620031bb57600080fd5b620031c98582860162002e95565b9150509250929050565b60005b83811015620031f0578181015183820152602001620031d6565b838111156200232f5750506000910152565b600081518084526200321c816020860160208601620031d3565b601f01601f19169290920160200192915050565b821515815260406020820152600062002535604083018462003202565b600080604083850312156200326157600080fd5b82356200326e8162002de9565b946020939093013593505050565b80356001600160801b03811681146200329457600080fd5b919050565b600080600080600080600080610100898b031215620032b757600080fd5b8835620032c48162002de9565b97506020890135620032d68162002de9565b96506040890135620032e88162002de9565b95506060890135620032fa8162002de9565b9450608089013567ffffffffffffffff8111156200331757600080fd5b620033258b828c0162002f60565b94505060a089013592506200333d60c08a016200327c565b91506200334d60e08a016200327c565b90509295985092959890939650565b600080604083850312156200337057600080fd5b6200337b836200327c565b91506200338b602084016200327c565b90509250929050565b6000606082018583526020606081850152818651808452608086019150828801935060005b81811015620033e05784516001600160a01b031683529383019391830191600101620033b9565b50508481036040860152855180825290820192508186019060005b818110156200341957825185529383019391830191600101620033fb565b509298975050505050505050565b6000806000606084860312156200343d57600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156200346a57600080fd5b8335925060208401356200347e8162002de9565b929592945050506040919091013590565b602080825282518282018190526000919060409081850190868401855b82811015620034dc57815180516001600160a01b03168552860151868501529284019290850190600101620034ac565b5091979650505050505050565b60008060408385031215620034fd57600080fd5b82356200350a8162002de9565b915060208301356200351c8162002de9565b809150509250929050565b60208082526010908201526f5374616b696e67506f6f6c206f6e6c7960801b604082015260600190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008219821115620036155762003615620035e9565b500190565b6000600182016200362f576200362f620035e9565b5060010190565b83815282602082015260606040820152600062003657606083018462003202565b95945050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f546f74616c2066656573206d757374206265203c3d2035302500000000000000604082015260600190565b6000828210156200370d576200370d620035e9565b500390565b6000602082840312156200372557600080fd5b5051919050565b60008083128015600160ff1b8501841216156200374d576200374d620035e9565b6001600160ff1b03840183138116156200376b576200376b620035e9565b50500390565b600080604083850312156200378557600080fd5b505080516020909101519092909150565b6000816000190483118215151615620037b357620037b3620035e9565b500290565b600082620037d657634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160ff1b0381841382841380821686840486111615620038045762003804620035e9565b600160ff1b6000871282811687830589121615620038265762003826620035e9565b60008712925087820587128484161615620038455762003845620035e9565b878505871281841616156200385e576200385e620035e9565b505050929093029392505050565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156200389557600080fd5b8151620029f58162002de9565b6001600160a01b0383168152604060208201819052600090620025359083018462003202565b600060208284031215620038db57600080fd5b81518015158114620029f557600080fd5b6000825162003900818460208701620031d3565b9190910192915050565b602081526000620029f560208301846200320256fe608060405260405161072138038061072183398101604081905261002291610314565b61002e82826000610035565b5050610431565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d083836040518060600160405280602781526020016106fa602791396101a9565b9392505050565b6100ea8161028760201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61029660201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606001600160a01b0384163b6102115760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610148565b600080856001600160a01b03168560405161022c91906103e2565b600060405180830381855af49150503d8060008114610267576040519150601f19603f3d011682016040523d82523d6000602084013e61026c565b606091505b50909250905061027d828286610299565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a85750816100d0565b8251156102b85782518084602001fd5b8160405162461bcd60e51b815260040161014891906103fe565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103035781810151838201526020016102eb565b838111156100645750506000910152565b6000806040838503121561032757600080fd5b82516001600160a01b038116811461033e57600080fd5b60208401519092506001600160401b038082111561035b57600080fd5b818501915085601f83011261036f57600080fd5b815181811115610381576103816102d2565b604051601f8201601f19908116603f011681019083821181831017156103a9576103a96102d2565b816040528281528860208487010111156103c257600080fd5b6103d38360208301602088016102e8565b80955050505050509250929050565b600082516103f48184602087016102e8565b9190910192915050565b602081526000825180602084015261041d8160408501602087016102e8565b601f01601f19169190910160400192915050565b6102ba806104406000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025e602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b60606001600160a01b0384163b6101305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161014b919061020e565b600060405180830381855af49150503d8060008114610186576040519150601f19603f3d011682016040523d82523d6000602084013e61018b565b606091505b509150915061019b8282866101a5565b9695505050505050565b606083156101b457508161004e565b8251156101c45782518084602001fd5b8160405162461bcd60e51b8152600401610127919061022a565b60005b838110156101f95781810151838201526020016101e1565b83811115610208576000848401525b50505050565b600082516102208184602087016101de565b9190910192915050565b60208152600082518060208401526102498160408501602087016101de565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122015c575a1d4aa5f6221f50862bdd76e39e9fc0eff20f628e8308027fc8124232e64736f6c634300080f0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212202726d017c08362b6997c5583f8df158a8cd057f769a7c966c70549cb26d02db764736f6c634300080f0033