0 txs
496 calls
constructor
constructor()
functions
canDeposit
viewfunction canDeposit() view returns (uint256)
canWithdraw
viewfunction canWithdraw() view returns (uint256)
getDepositChange
viewfunction getDepositChange() view returns (int256)
getFees
viewfunction getFees() view returns (tuple[])
getMaxDeposits
viewfunction getMaxDeposits() view returns (uint256)
getMinDeposits
viewfunction getMinDeposits() view returns (uint256)
getOperatorRewards
viewfunction getOperatorRewards() view returns (uint256, 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)
operatorRewardPercentage
viewfunction operatorRewardPercentage() 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)
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)
addVault
nonpayablefunction addVault(address _operator, address _rewardsReceiver, address _pfAlertsController)
deposit
nonpayablefunction deposit(uint256 _amount)
initialize
nonpayablefunction initialize(address _token, address _stakingPool, address _stakeController, address _vaultImplementation, tuple[] _fees, uint256 _maxDepositSizeBP, uint256 _operatorRewardPercentage)
onTokenTransfer
nonpayablefunction onTokenTransfer(address, uint256, bytes)
renounceOwnership
nonpayablefunction renounceOwnership()
setMaxDepositSizeBP
nonpayablefunction setMaxDepositSizeBP(uint256 _maxDepositSizeBP)
setOperator
nonpayablefunction setOperator(uint256 _index, address _operator)
setOperatorRewardPercentage
nonpayablefunction setOperatorRewardPercentage(uint256 _operatorRewardPercentage)
setRewardsReceiver
nonpayablefunction setRewardsReceiver(uint256 _index, address _rewardsReceiver)
setVaultImplementation
nonpayablefunction setVaultImplementation(address _vaultImplementation)
togglePreRelease
nonpayablefunction togglePreRelease()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateDeposits
nonpayablefunction updateDeposits(bytes _data) 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)
withdrawOperatorRewards
nonpayablefunction withdrawOperatorRewards(address _receiver, uint256 _amount) returns (uint256)
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)
SetOperatorRewardPercentage
event SetOperatorRewardPercentage(uint256 rewardPercentage)
SetVaultImplementation
event SetVaultImplementation(address vaultImplementation)
Upgraded
event Upgraded(address indexed implementation)
UpgradedVaults
event UpgradedVaults(uint256 startIndex, uint256 numVaults, bytes data)
VaultAdded
event VaultAdded(address indexed operator)
WithdrawExtraRewards
event WithdrawExtraRewards(address indexed receiver, uint256 amount)
errors
InvalidBasisPoints
error InvalidBasisPoints()
InvalidPercentage
error InvalidPercentage()
NoExtraRewards
error NoExtraRewards()
SenderNotAuthorized
error SenderNotAuthorized()
UnauthorizedToken
error UnauthorizedToken()
creation bytecode
0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516149d96200011f60003960008181610b2801528181610b6b01528181610eb101528181610ef4015261108501526149d96000f3fe6080604052600436106200028f5760003560e01c80638da5cb5b116200015f578063cea7728e11620000c5578063e84709881162000084578063e84709881462000764578063eb47dc8f14620002d3578063eb6342101462000789578063f2fde38b14620007ab578063f7f460c714620007d0578063fc0c546a14620007f557600080fd5b8063cea7728e14620006c3578063db8d55f114620006db578063e61fbf3c1462000702578063e78a58751462000727578063e7a1c1c0146200073f57600080fd5b8063b51459fe116200011e578063b51459fe146200061c578063b6b55f251462000634578063b7b7a4081462000659578063bba48a901462000671578063c51c2d0e1462000693578063cc2cade014620006ab57600080fd5b80638da5cb5b14620005645780639566355b1462000584578063a4c0ed36146200059c578063af51e6a514620005c1578063b47529c514620005f757600080fd5b80634f1ef286116200020557806369feab4911620001c457806369feab4914620004ba5780636fac5bd114620004d2578063715018a614620004ea57806371cf77e414620005025780637718238f146200051a5780638956451c146200053f57600080fd5b80634f1ef286146200041c578063506cd187146200043357806352d1902d146200045857806353e78b6b146200047057806365fd87ad146200049557600080fd5b806334a6a931116200025257806334a6a93114620003615780633659cfe61462000386578063396a8b8314620003ab57806343ae8a5f14620003d057806344d00f8214620003f557600080fd5b80630c56ae3b1462000294578063168a482214620002d35780632000940514620002f457806321aca424146200030c5780632e1a7d4d146200033a575b600080fd5b348015620002a157600080fd5b5060ca54620002b6906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620002e057600080fd5b5060cf545b604051908152602001620002ca565b3480156200030157600080fd5b50620002e560d05481565b3480156200031957600080fd5b506200032462000817565b60408051928352602083019190915201620002ca565b3480156200034757600080fd5b506200035f62000359366004620035ca565b62000898565b005b3480156200036e57600080fd5b506200035f6200038036600462003739565b62000917565b3480156200039357600080fd5b506200035f620003a5366004620037df565b62000b1e565b348015620003b857600080fd5b506200035f620003ca36600462003875565b62000c09565b348015620003dd57600080fd5b506200035f620003ef366004620038c8565b62000c8b565b3480156200040257600080fd5b506200040d62000e43565b604051620002ca919062003963565b6200035f6200042d366004620039b2565b62000ea7565b3480156200044057600080fd5b50620002e56200045236600462003a07565b62000f83565b3480156200046557600080fd5b50620002e562001078565b3480156200047d57600080fd5b506200035f6200048f366004620037df565b6200112e565b348015620004a257600080fd5b506200035f620004b4366004620035ca565b620011e7565b348015620004c757600080fd5b50620002e562001255565b348015620004df57600080fd5b50620002e560d15481565b348015620004f757600080fd5b506200035f6200139b565b3480156200050f57600080fd5b50620002e560dc5481565b3480156200052757600080fd5b506200035f6200053936600462003a07565b620013b3565b3480156200054c57600080fd5b506200035f6200055e36600462003a36565b6200147e565b3480156200057157600080fd5b506097546001600160a01b0316620002b6565b3480156200059157600080fd5b50620003246200150d565b348015620005a957600080fd5b506200035f620005bb36600462003ab4565b6200157e565b348015620005ce57600080fd5b50620005e6620005e036600462003b15565b620015b0565b604051620002ca9392919062003b97565b3480156200060457600080fd5b506200035f6200061636600462003c05565b62001bc9565b3480156200062957600080fd5b50620002e562001d94565b3480156200064157600080fd5b506200035f62000653366004620035ca565b62001dcb565b3480156200066657600080fd5b50620002e562001fc5565b3480156200067e57600080fd5b5060cd54620002b6906001600160a01b031681565b348015620006a057600080fd5b50620002e562002087565b348015620006b857600080fd5b506200035f620021dc565b348015620006d057600080fd5b50620002e560d25481565b348015620006e857600080fd5b50620006f3620021fa565b604051620002ca919062003c40565b3480156200070f57600080fd5b506200035f6200072136600462003c9a565b62002271565b3480156200073457600080fd5b50620002e5620022df565b3480156200074c57600080fd5b506200035f6200075e36600462003a36565b6200231e565b3480156200077157600080fd5b506200035f62000783366004620035ca565b6200237a565b3480156200079657600080fd5b5060cb54620002b6906001600160a01b031681565b348015620007b857600080fd5b506200035f620007ca366004620037df565b620023de565b348015620007dd57600080fd5b506200035f620007ef36600462003ccd565b6200245a565b3480156200080257600080fd5b5060c954620002b6906001600160a01b031681565b60dd5460ca546040516370a0823160e01b8152306004820152600092839290916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156200086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000890919062003d1f565b915091509091565b60ca546001600160a01b03163314620008ce5760405162461bcd60e51b8152600401620008c59062003d39565b60405180910390fd5b60405162461bcd60e51b815260206004820152601f60248201527f7769746864726177616c73206e6f742079657420696d706c656d656e746564006044820152606401620008c5565b600054600390610100900460ff161580156200093a575060005460ff8083169116105b6200099f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401620008c5565b6000805461ffff191660ff83161761010017905560c9546001600160a01b031662000a0357620009d488888888888862000c8b565b612710821115620009f857604051631f3b85d360e01b815260040160405180910390fd5b60dc82905562000ad3565b60ce54600090815b8181101562000ac05760ce818154811062000a2a5762000a2a62003d63565b6000918252602091829020015460408051631ae665a560e01b815290516001600160a01b0390921692631ae665a5926004808401938290030181865afa15801562000a79573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a9f919062003d1f565b62000aab908462003d8f565b925062000ab88162003daa565b905062000a0b565b505060d05560df805460ff191660011790555b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000b695760405162461bcd60e51b8152600401620008c59062003dc6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000bb46000805160206200495d833981519152546001600160a01b031690565b6001600160a01b03161462000bdd5760405162461bcd60e51b8152600401620008c59062003e12565b62000be881620025f5565b6040805160008082526020820190925262000c0691839190620025ff565b50565b62000c1362002777565b825b62000c21838562003d8f565b81101562000c485762000c358183620027d3565b62000c408162003daa565b905062000c15565b507f71ddb05108536dca4ade6ad9f2cec5fd3e84727523ab1e86b135ea47f79dfe8e83838360405162000c7e9392919062003ebb565b60405180910390a1505050565b600054610100900460ff1662000cb55760405162461bcd60e51b8152600401620008c59062003edc565b62000cc1868662002271565b60cb80546001600160a01b0319166001600160a01b038616179055823b62000d4b5760405162461bcd60e51b815260206004820152603660248201527f5661756c7420696d706c656d656e746174696f6e2061646472657373206d75736044820152751d0818995b1bdb99c81d1bc8184818dbdb9d1c9858dd60521b6064820152608401620008c5565b60cd80546001600160a01b0319166001600160a01b03851617905560005b825181101562000de65760cc83828151811062000d8a5762000d8a62003d63565b602090810291909101810151825460018082018555600094855293839020825160029092020180546001600160a01b0319166001600160a01b0390921691909117815591015191015562000dde8162003daa565b905062000d69565b5061138862000df4620028a9565b111562000e155760405162461bcd60e51b8152600401620008c59062003f27565b61271081111562000e395760405163800c7e9160e01b815260040160405180910390fd5b60d2555050505050565b606060ce80548060200260200160405190810160405280929190818152602001828054801562000e9d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000e7e575b5050505050905090565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000ef25760405162461bcd60e51b8152600401620008c59062003dc6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000f3d6000805160206200495d833981519152546001600160a01b031690565b6001600160a01b03161462000f665760405162461bcd60e51b8152600401620008c59062003e12565b62000f7182620025f5565b62000f7f82826001620025ff565b5050565b33600090815260de602052604081205460ff1662000fb4576040516379d1e58f60e01b815260040160405180910390fd5b60ca546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a0823190602401602060405180830381865afa15801562001002573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001028919062003d1f565b905060008185116200103b57846200103d565b815b90508060dd600082825462001053919062003f5e565b909155506200106f90506001600160a01b03841687836200290a565b95945050505050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146200111a5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401620008c5565b506000805160206200495d83398151915290565b6200113862002777565b803b620011925760405162461bcd60e51b815260206004820152602160248201527f41646472657373206d7573742062656c6f6e6720746f206120636f6e747261636044820152601d60fa1b6064820152608401620008c5565b60cd80546001600160a01b0319166001600160a01b0383169081179091556040519081527f028cd482b99a4d21fe2c757cd8fc155d8dcce718854d0f63e40819069339a49d906020015b60405180910390a150565b620011f162002777565b6127108111156200121557604051631f3b85d360e01b815260040160405180910390fd5b6200121f6200296f565b60dc8190556040518181527f28846a985f226dec4a1c41ecb80eee6e5d321e346c9348a70ab014e0faac213a90602001620011dc565b60c9546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa158015620012a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012c9919062003d1f565b905060005b60ce54811015620013855760ce8181548110620012ef57620012ef62003d63565b6000918252602091829020015460408051630b45241160e11b815290516001600160a01b039092169263168a4822926004808401938290030181865afa1580156200133e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001364919062003d1f565b62001370908362003d8f565b91506200137d8162003daa565b9050620012ce565b5060cf5462001395908262003f78565b91505090565b620013a562002777565b620013b1600062002aa4565b565b620013bd62002777565b604080518082019091526001600160a01b0383811682526020820183815260cc805460018101825560009190915292517f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe600290940293840180546001600160a01b0319169190931617909155517f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebf909101556113886200145d620028a9565b111562000f7f5760405162461bcd60e51b8152600401620008c59062003f27565b6200148862002777565b60ce82815481106200149e576200149e62003d63565b60009182526020909120015460405163130cac1360e11b81526001600160a01b038381166004830152909116906326195826906024015b600060405180830381600087803b158015620014f057600080fd5b505af115801562001505573d6000803e3d6000fd5b505050505050565b60cb5460408051636277b91560e11b8152815160009384936001600160a01b039091169263c4ef722a92600480830193928290030181865afa15801562001558573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000890919062003fbd565b60ca546001600160a01b03163314620015aa57604051637e5f934960e01b815260040160405180910390fd5b50505050565b60ca5460009060609081906001600160a01b03163314620015e55760405162461bcd60e51b8152600401620008c59062003d39565b600084156200160257620015fc85870187620035ca565b62001605565b60005b60cf5460ce5491925090600090819030825b82811015620016f25760008060ce838154811062001639576200163962003d63565b60009182526020909120015460405163244cd47d60e01b8152600481018b90526001600160a01b0386811660248301529091169063244cd47d9060440160408051808303816000875af115801562001695573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016bb919062003fbd565b9092509050620016cc828862003d8f565b9650620016da818762003d8f565b9550505080620016ea9062003daa565b905062001617565b5060c9546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156200173d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001763919062003d1f565b60cf5490915062001775828762003d8f565b62001781919062003f78565b99508315620018b05760008a136200179b5760006200179f565b60cc545b620017ac90600162003d8f565b6001600160401b03811115620017c657620017c6620035fa565b604051908082528060200260200182016040528015620017f0578160200160208202803683370190505b50985088516001600160401b038111156200180f576200180f620035fa565b60405190808252806020026020018201604052801562001839578160200160208202803683370190505b509750308960008151811062001853576200185362003d63565b60200260200101906001600160a01b031690816001600160a01b03168152505083886000815181106200188a576200188a62003d63565b6020026020010181815250508360dd6000828254620018aa919062003d8f565b90915550505b60008a131562001b5857620018c68a8762003d8f565b9550885160000362001a5a5760cc546001600160401b03811115620018ef57620018ef620035fa565b60405190808252806020026020018201604052801562001919578160200160208202803683370190505b50985088516001600160401b03811115620019385762001938620035fa565b60405190808252806020026020018201604052801562001962578160200160208202803683370190505b50975060005b895181101562001a535760cc818154811062001988576200198862003d63565b60009182526020909120600290910201548a516001600160a01b03909116908b9083908110620019bc57620019bc62003d63565b60200260200101906001600160a01b031690816001600160a01b03168152505061271060cc8281548110620019f557620019f562003d63565b9060005260206000209060020201600101548c62001a14919062003fe2565b62001a20919062004004565b89828151811062001a355762001a3562003d63565b602090810291909101015262001a4b8162003daa565b905062001968565b5062001b7f565b60015b895181101562001a535760cc62001a7660018362003f5e565b8154811062001a895762001a8962003d63565b60009182526020909120600290910201548a516001600160a01b03909116908b908390811062001abd5762001abd62003d63565b6001600160a01b039092166020928302919091019091015261271060cc62001ae760018462003f5e565b8154811062001afa5762001afa62003d63565b9060005260206000209060020201600101548c62001b19919062003fe2565b62001b25919062004004565b89828151811062001b3a5762001b3a62003d63565b602090810291909101015262001b508162003daa565b905062001a5d565b60008a121562001b7f5762001b708a60001962004027565b62001b7c908762003f5e565b95505b801562001bb45760ca5460c95462001ba5916001600160a01b039182169116836200290a565b62001bb1818762003f5e565b95505b8560cf81905550505050505050509250925092565b62001bd362002777565b60cc54831062001c1b5760405162461bcd60e51b815260206004820152601260248201527111995948191bd95cc81b9bdd08195e1a5cdd60721b6044820152606401620008c5565b8060000362001ce85760cc805462001c369060019062003f5e565b8154811062001c495762001c4962003d63565b906000526020600020906002020160cc848154811062001c6d5762001c6d62003d63565b60009182526020909120825460029092020180546001600160a01b0319166001600160a01b0390921691909117815560019182015491015560cc80548062001cb95762001cb9620040b8565b60008281526020812060026000199093019283020180546001600160a01b031916815560010155905562001d61565b8160cc848154811062001cff5762001cff62003d63565b906000526020600020906002020160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060cc848154811062001d4b5762001d4b62003d63565b9060005260206000209060020201600101819055505b61138862001d6e620028a9565b111562001d8f5760405162461bcd60e51b8152600401620008c59062003f27565b505050565b60008062001da160cf5490565b905062001dad60cf5490565b811162001dbc57600091505090565b60cf5462001395908262003f5e565b60ca546001600160a01b0316331462001df85760405162461bcd60e51b8152600401620008c59062003d39565b60c95462001e12906001600160a01b031633308462002af6565b60008062001e1f6200150d565b91509150600060d154600162001e36919062003d8f565b90508160ce60008154811062001e505762001e5062003d63565b6000918252602091829020015460408051631ae665a560e01b815290516001600160a01b0390921692631ae665a5926004808401938290030181865afa15801562001e9f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ec5919062003d1f565b101562001ed0575060005b60c9546040516370a0823160e01b815230600482015260009162001f4f9184916001600160a01b0316906370a0823190602401602060405180830381865afa15801562001f21573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f47919062003d1f565b868662002b30565b90508060cf600082825462001f65919062003d8f565b925050819055508060d0600082825462001f80919062003d8f565b909155505080851462001fbe5760ca5462001fbe906001600160a01b031662001faa838862003f5e565b60c9546001600160a01b031691906200290a565b5050505050565b60df5460009060ff1615620020785760cb60009054906101000a90046001600160a01b03166001600160a01b03166322f3e2d46040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002028573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200204e9190620040ce565b6200205b57600062002067565b69b50da4935fda886000005b69ffffffffffffffffffff16905090565b6200208262002d38565b905090565b60ce546000908190815b81811015620021465760ce8181548110620020b057620020b062003d63565b6000918252602091829020015460408051636cb10fcf60e11b815290516001600160a01b039092169263d9621f9e926004808401938290030181865afa158015620020ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002125919062003d1f565b62002131908462003d8f565b92506200213e8162003daa565b905062002091565b5060006200215362001255565b90506000811315620021d45760005b60cc54811015620021d25761271060cc828154811062002186576200218662003d63565b90600052602060002090600202016001015483620021a5919062003fe2565b620021b1919062004004565b620021bd908562003d8f565b9350620021ca8162003daa565b905062002162565b505b509092915050565b620021e662002777565b60df805460ff19811660ff90911615179055565b606060cc805480602002602001604051908101604052809291908181526020016000905b8282101562002268576000848152602090819020604080518082019091526002850290910180546001600160a01b031682526001908101548284015290835290920191016200221e565b50505050905090565b600054610100900460ff166200229b5760405162461bcd60e51b8152600401620008c59062003edc565b60c980546001600160a01b038085166001600160a01b03199283161790925560ca805492841692909116919091179055620022d562002f1d565b62000f7f62002f51565b600080620022ec60cf5490565b9050620022f862001fc5565b81106200230757600091505090565b806200231262001fc5565b62001395919062003f5e565b6200232862002777565b60ce82815481106200233e576200233e62003d63565b60009182526020909120015460405163b3ab15fb60e01b81526001600160a01b0383811660048301529091169063b3ab15fb90602401620014d5565b6200238462002777565b612710811115620023a85760405163800c7e9160e01b815260040160405180910390fd5b60d28190556040518181527fc3a64d8ad419db097a8d7e9ab60fad0d91ad6158cdd00de7ec455531ae72d42690602001620011dc565b620023e862002777565b6001600160a01b0381166200244f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620008c5565b62000c068162002aa4565b6200246462002777565b60c95460cb5460408051635f0f4c8360e01b815290516000936001600160a01b039081169330939116918291635f0f4c839160048083019260209291908290030181865afa158015620024bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024e19190620040f2565b6040516001600160a01b039485166024820152928416604484015290831660648301528216608482015281841660a482015281861660c482015290841660e48201526101040160408051601f198184030181529190526020810180516001600160e01b0316631ac3b23b60e11b17905290506200255e8162002f7b565b600160de600060ce600160ce805490506200257a919062003f5e565b815481106200258d576200258d62003d63565b6000918252602080832091909101546001600160a01b0390811684529083019390935260409182018120805460ff19169415159490941790935551908616917f7b7ef7a864d96a85497a1ed846adb39940dd6ccef678ff6ac8d55505e09b8cc491a250505050565b62000c0662002777565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615620026355762001d8f8362003037565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562002692575060408051601f3d908101601f191682019092526200268f9181019062003d1f565b60015b620026f75760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401620008c5565b6000805160206200495d8339815191528114620027695760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401620008c5565b5062001d8f838383620030d6565b6097546001600160a01b03163314620013b15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620008c5565b600060ce8381548110620027eb57620027eb62003d63565b600091825260208220015483516001600160a01b0390911692509003620028735760cd54604051631b2ce7f360e11b81526001600160a01b03918216600482015290821690633659cfe6906024015b600060405180830381600087803b1580156200285557600080fd5b505af11580156200286a573d6000803e3d6000fd5b50505050505050565b60cd5460405163278f794360e11b81526001600160a01b0383811692634f1ef286926200283a9290911690869060040162004112565b60008060005b60cc54811015620029045760cc8181548110620028d057620028d062003d63565b90600052602060002090600202016001015482620028ef919062003d8f565b9150620028fc8162003daa565b9050620028af565b50919050565b6040516001600160a01b03831660248201526044810182905262001d8f90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915262003101565b60ca546040805163b49a60bb60e01b815290516000926001600160a01b03169163b49a60bb91600480830192869291908290030181865afa158015620029b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620029e3919081019062004138565b9050600081516001600160401b0381111562002a035762002a03620035fa565b60405190808252806020026020018201604052801562002a2d578160200160208202803683370190505b50905060005b825181101562002a71578082828151811062002a535762002a5362003d63565b602090810291909101015262002a698162003daa565b905062002a33565b5060ca546040516399b8964b60e01b81526001600160a01b03909116906399b8964b90620014d5908490600401620041dc565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516001600160a01b0380851660248301528316604482015260648101829052620015aa9085906323b872dd60e01b9060840162002937565b60008381865b60ce5481101562002d1957600060ce828154811062002b595762002b5962003d63565b600091825260208083209091015460408051631ae665a560e01b815290516001600160a01b0390921694508492631ae665a5926004808401938290030181865afa15801562002bac573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002bd2919062003d1f565b9050600062002be2828962003f5e565b9050888210801562002bfe575062002bfb828a62003f5e565b86105b1562002c0d5750505062002d19565b8086111562002c8d5760405163b6b55f2560e01b81526004810182905293945084936001600160a01b0384169063b6b55f2590602401600060405180830381600087803b15801562002c5e57600080fd5b505af115801562002c73573d6000803e3d6000fd5b50505050808662002c85919062003f5e565b955062002d02565b80860362002c99578394505b60405163b6b55f2560e01b8152600481018790526001600160a01b0384169063b6b55f2590602401600060405180830381600087803b15801562002cdc57600080fd5b505af115801562002cf1573d6000803e3d6000fd5b505050506000955050505062002d19565b5050508062002d119062003daa565b905062002b36565b5060d181905562002d2b828762003f5e565b925050505b949350505050565b60008062002d456200150d565b91505060cb60009054906101000a90046001600160a01b03166001600160a01b03166322f3e2d46040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002d9c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002dc29190620040ce565b62002dcf57600062002f0e565b60d05460ce5462002f0e919062002de890849062003fe2565b62002df4919062003f5e565b60d25460cb546040805163885491af60e01b8152905161271093926001600160a01b03169163885491af9160048083019260209291908290030181865afa15801562002e44573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002e6a919062003d1f565b60cb60009054906101000a90046001600160a01b03166001600160a01b0316630fbc8f5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002ebe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002ee4919062003d1f565b62002ef0919062003f5e565b62002efc919062003fe2565b62002f08919062004004565b620031dd565b60cf5462001395919062003d8f565b600054610100900460ff1662002f475760405162461bcd60e51b8152600401620008c59062003edc565b620013b1620031f7565b600054610100900460ff16620013b15760405162461bcd60e51b8152600401620008c59062003edc565b60cd546040516000916001600160a01b031690839062002f9b90620035bc565b62002fa892919062004112565b604051809103906000f08015801562002fc5573d6000803e3d6000fd5b5060c95490915062002fe4906001600160a01b0316826000196200322c565b60ce80546001810182556000919091527fd36cd1c74ef8d7326d8021b776c18fb5a5724b7f7bc93c2f42e43e10ef27d12a0180546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620030a65760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620008c5565b6000805160206200495d83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b620030e18362003349565b600082511180620030ef5750805b1562001d8f57620015aa83836200338b565b600062003158826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316620033b39092919063ffffffff16565b90508051600014806200317c5750808060200190518101906200317c9190620040ce565b62001d8f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401620008c5565b6000818310620031ee5781620031f0565b825b9392505050565b600054610100900460ff16620032215760405162461bcd60e51b8152600401620008c59062003edc565b620013b13362002aa4565b801580620032aa5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa15801562003282573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032a8919062003d1f565b155b620033175760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401620008c5565b6040516001600160a01b03831660248201526044810182905262001d8f90849063095ea7b360e01b9060640162002937565b620033548162003037565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060620031f083836040518060600160405280602781526020016200497d60279139620033c4565b606062002d30848460008562003442565b6060600080856001600160a01b031685604051620033e3919062004208565b600060405180830381855af49150503d806000811462003420576040519150601f19603f3d011682016040523d82523d6000602084013e62003425565b606091505b5091509150620034388683838762003515565b9695505050505050565b606082471015620034a55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401620008c5565b600080866001600160a01b03168587604051620034c3919062004208565b60006040518083038185875af1925050503d806000811462003502576040519150601f19603f3d011682016040523d82523d6000602084013e62003507565b606091505b509150915062002d2b878383875b606083156200358957825160000362003581576001600160a01b0385163b620035815760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620008c5565b508162002d30565b62002d308383815115620035a05781518083602001fd5b8060405162461bcd60e51b8152600401620008c5919062004226565b610721806200423c83390190565b600060208284031215620035dd57600080fd5b5035919050565b6001600160a01b038116811462000c0657600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715620036355762003635620035fa565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620036665762003666620035fa565b604052919050565b60006001600160401b038211156200368a576200368a620035fa565b5060051b60200190565b600082601f830112620036a657600080fd5b81356020620036bf620036b9836200366e565b6200363b565b82815260069290921b84018101918181019086841115620036df57600080fd5b8286015b848110156200372e5760408189031215620036fe5760008081fd5b6200370862003610565b81356200371581620035e4565b81528185013585820152835291830191604001620036e3565b509695505050505050565b600080600080600080600060e0888a0312156200375557600080fd5b87356200376281620035e4565b965060208801356200377481620035e4565b955060408801356200378681620035e4565b945060608801356200379881620035e4565b935060808801356001600160401b03811115620037b457600080fd5b620037c28a828b0162003694565b93505060a0880135915060c0880135905092959891949750929550565b600060208284031215620037f257600080fd5b8135620031f081620035e4565b600082601f8301126200381157600080fd5b81356001600160401b038111156200382d576200382d620035fa565b62003842601f8201601f19166020016200363b565b8181528460208386010111156200385857600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156200388b57600080fd5b833592506020840135915060408401356001600160401b03811115620038b057600080fd5b620038be86828701620037ff565b9150509250925092565b60008060008060008060c08789031215620038e257600080fd5b8635620038ef81620035e4565b955060208701356200390181620035e4565b945060408701356200391381620035e4565b935060608701356200392581620035e4565b925060808701356001600160401b038111156200394157600080fd5b6200394f89828a0162003694565b92505060a087013590509295509295509295565b6020808252825182820181905260009190848201906040850190845b81811015620039a65783516001600160a01b0316835292840192918401916001016200397f565b50909695505050505050565b60008060408385031215620039c657600080fd5b8235620039d381620035e4565b915060208301356001600160401b03811115620039ef57600080fd5b620039fd85828601620037ff565b9150509250929050565b6000806040838503121562003a1b57600080fd5b823562003a2881620035e4565b946020939093013593505050565b6000806040838503121562003a4a57600080fd5b82359150602083013562003a5e81620035e4565b809150509250929050565b60008083601f84011262003a7c57600080fd5b5081356001600160401b0381111562003a9457600080fd5b60208301915083602082850101111562003aad57600080fd5b9250929050565b6000806000806060858703121562003acb57600080fd5b843562003ad881620035e4565b93506020850135925060408501356001600160401b0381111562003afb57600080fd5b62003b098782880162003a69565b95989497509550505050565b6000806020838503121562003b2957600080fd5b82356001600160401b0381111562003b4057600080fd5b62003b4e8582860162003a69565b90969095509350505050565b600081518084526020808501945080840160005b8381101562003b8c5781518752958201959082019060010162003b6e565b509495945050505050565b6000606082018583526020606081850152818651808452608086019150828801935060005b8181101562003be35784516001600160a01b03168352938301939183019160010162003bbc565b5050848103604086015262003bf9818762003b5a565b98975050505050505050565b60008060006060848603121562003c1b57600080fd5b83359250602084013562003c2f81620035e4565b929592945050506040919091013590565b602080825282518282018190526000919060409081850190868401855b8281101562003c8d57815180516001600160a01b0316855286015186850152928401929085019060010162003c5d565b5091979650505050505050565b6000806040838503121562003cae57600080fd5b823562003cbb81620035e4565b9150602083013562003a5e81620035e4565b60008060006060848603121562003ce357600080fd5b833562003cf081620035e4565b9250602084013562003d0281620035e4565b9150604084013562003d1481620035e4565b809150509250925092565b60006020828403121562003d3257600080fd5b5051919050565b60208082526010908201526f5374616b696e67506f6f6c206f6e6c7960801b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000821982111562003da55762003da562003d79565b500190565b60006001820162003dbf5762003dbf62003d79565b5060010190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60005b8381101562003e7b57818101518382015260200162003e61565b83811115620015aa5750506000910152565b6000815180845262003ea781602086016020860162003e5e565b601f01601f19169290920160200192915050565b8381528260208201526060604082015260006200106f606083018462003e8d565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526019908201527f546f74616c2066656573206d757374206265203c3d2035302500000000000000604082015260600190565b60008282101562003f735762003f7362003d79565b500390565b60008083128015600160ff1b85018412161562003f995762003f9962003d79565b6001600160ff1b038401831381161562003fb75762003fb762003d79565b50500390565b6000806040838503121562003fd157600080fd5b505080516020909101519092909150565b600081600019048311821515161562003fff5762003fff62003d79565b500290565b6000826200402257634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160ff1b038184138284138082168684048611161562004050576200405062003d79565b600160ff1b600087128281168783058912161562004072576200407262003d79565b6000871292508782058712848416161562004091576200409162003d79565b87850587128184161615620040aa57620040aa62003d79565b505050929093029392505050565b634e487b7160e01b600052603160045260246000fd5b600060208284031215620040e157600080fd5b81518015158114620031f057600080fd5b6000602082840312156200410557600080fd5b8151620031f081620035e4565b6001600160a01b038316815260406020820181905260009062002d309083018462003e8d565b600060208083850312156200414c57600080fd5b82516001600160401b038111156200416357600080fd5b8301601f810185136200417557600080fd5b805162004186620036b9826200366e565b81815260059190911b82018301908381019087831115620041a657600080fd5b928401925b82841015620041d1578351620041c181620035e4565b82529284019290840190620041ab565b979650505050505050565b604081526000620041f1604083018462003b5a565b828103602093840152600081529190910192915050565b600082516200421c81846020870162003e5e565b9190910192915050565b602081526000620031f0602083018462003e8d56fe608060405260405161072138038061072183398101604081905261002291610314565b61002e82826000610035565b5050610431565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d083836040518060600160405280602781526020016106fa602791396101a9565b9392505050565b6100ea8161028760201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61029660201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606001600160a01b0384163b6102115760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610148565b600080856001600160a01b03168560405161022c91906103e2565b600060405180830381855af49150503d8060008114610267576040519150601f19603f3d011682016040523d82523d6000602084013e61026c565b606091505b50909250905061027d828286610299565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a85750816100d0565b8251156102b85782518084602001fd5b8160405162461bcd60e51b815260040161014891906103fe565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103035781810151838201526020016102eb565b838111156100645750506000910152565b6000806040838503121561032757600080fd5b82516001600160a01b038116811461033e57600080fd5b60208401519092506001600160401b038082111561035b57600080fd5b818501915085601f83011261036f57600080fd5b815181811115610381576103816102d2565b604051601f8201601f19908116603f011681019083821181831017156103a9576103a96102d2565b816040528281528860208487010111156103c257600080fd5b6103d38360208301602088016102e8565b80955050505050509250929050565b600082516103f48184602087016102e8565b9190910192915050565b602081526000825180602084015261041d8160408501602087016102e8565b601f01601f19169190910160400192915050565b6102ba806104406000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025e602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b60606001600160a01b0384163b6101305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161014b919061020e565b600060405180830381855af49150503d8060008114610186576040519150601f19603f3d011682016040523d82523d6000602084013e61018b565b606091505b509150915061019b8282866101a5565b9695505050505050565b606083156101b457508161004e565b8251156101c45782518084602001fd5b8160405162461bcd60e51b8152600401610127919061022a565b60005b838110156101f95781810151838201526020016101e1565b83811115610208576000848401525b50505050565b600082516102208184602087016101de565b9190910192915050565b60208152600082518060208401526102498160408501602087016101de565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122015c575a1d4aa5f6221f50862bdd76e39e9fc0eff20f628e8308027fc8124232e64736f6c634300080f0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122019ba363267ca298646bad6c2f79babf0668aa9f49f34d6c05168d01b1125f46a64736f6c634300080f0033