11 txs
0 calls
constructor
constructor(address _feeTo, address _gsFactory)
functions
allVaults
viewfunction allVaults(uint256) view returns (address)
allVaultsLength
viewfunction allVaultsLength() view returns (uint256)
feeInfo
viewfunction feeInfo() view returns (uint16, address)
fundingVaultFactory
viewfunction fundingVaultFactory() view returns (address)
getKey
viewfunction getKey(address) view returns (bytes32)
getProtocol
viewfunction getProtocol(uint16) view returns (address)
getProtocolBeacon
viewfunction getProtocolBeacon(uint16) view returns (address)
getStrategy
viewfunction getStrategy(uint16 strategyId) view returns (tuple)
getVault
viewfunction getVault(bytes32) view returns (address)
getVaultByRefId
viewfunction getVaultByRefId(uint16) view returns (address)
gsFactory
viewfunction gsFactory() view returns (address)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
addProtocol
nonpayablefunction addProtocol(address implementation)
createVault
nonpayablefunction createVault(tuple createParams, bytes data) returns (address vault)
initialize
nonpayablefunction initialize(address _fundingVaultFactory)
lockProtocol
nonpayablefunction lockProtocol(uint16 protocolId)
pause
nonpayablefunction pause(address target, uint8 functionId)
setFee
nonpayablefunction setFee(uint16 _fee)
setFeeTo
nonpayablefunction setFeeTo(address _feeTo)
setPeriodExpiration
nonpayablefunction setPeriodExpiration(address vault, uint256 periodExpiration)
setPeriodLength
nonpayablefunction setPeriodLength(address vault, uint256 periodLength)
setStrategyId
nonpayablefunction setStrategyId(uint16 strategyId, uint64 range, uint64 ratio)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause(address target, uint8 functionId)
unSetStrategyId
nonpayablefunction unSetStrategyId(uint16 strategyId)
updateProtocol
nonpayablefunction updateProtocol(uint16 protocolId, address newImplementation)
events
AddProtocol
event AddProtocol(uint16 protocolId, address implementation, address beacon)
LockProtocol
event LockProtocol(uint16 protocolId)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed currentOwner, address indexed newOwner)
SetStrategyId
event SetStrategyId(uint16 indexed strategyId, uint64 range, uint64 ratio)
UnsetStrategyId
event UnsetStrategyId(uint16 indexed strategyId)
UpdateFee
event UpdateFee(uint16 fee)
UpdateFeeTo
event UpdateFeeTo(address feeTo)
UpdateProtocol
event UpdateProtocol(uint16 protocolId, address implementation)
VaultCreated
event VaultCreated(uint16 indexed protocolId, uint16 indexed strategyId, address indexed assetToken, address lpPool, address gsPool, address implementation, uint16 refId, address vault, address depositVault, address withdrawVault, uint256 count)
errors
DeployFailed
error DeployFailed()
GammaPoolDoesNotExist
error GammaPoolDoesNotExist()
InvalidImplementation
error InvalidImplementation()
InvalidStrategyRange
error InvalidStrategyRange()
InvalidStrategyRatio
error InvalidStrategyRatio()
ProtocolExists
error ProtocolExists()
ProtocolLocked
error ProtocolLocked()
ProtocolMismatch
error ProtocolMismatch()
ProtocolNotSet
error ProtocolNotSet()
StrategyIsSet
error StrategyIsSet()
StrategyNotSet
error StrategyNotSet()
VaultExists
error VaultExists()
ZeroProtocol
error ZeroProtocol()
ZeroStrategyId
error ZeroStrategyId()
creation bytecode
0x60a0604052600a805461ffff60a01b1916607d60a31b1790553480156200002557600080fd5b5060405162002cf738038062002cf7833981016040819052620000489162000099565b60008054336001600160a01b031991821617909155600a80549091166001600160a01b0393841617905516608052620000d1565b80516001600160a01b03811681146200009457600080fd5b919050565b60008060408385031215620000ad57600080fd5b620000b8836200007c565b9150620000c8602084016200007c565b90509250929050565b608051612c03620000f46000396000818161056f0152611d3f0152612c036000f3fe60806040523480156200001157600080fd5b5060043610620001e95760003560e01c806392275770116200010d578063c8b9c18b11620000a3578063f2fde38b116200007a578063f2fde38b1462000524578063f46901ed146200053b578063f92c72bc1462000552578063f97dbc5d146200056957600080fd5b8063c8b9c18b14620004cd578063d2c7c2a414620004e4578063e30c3978146200051057600080fd5b80639db6014811620000e45780639db6014814620003ca578063a83cb80214620003de578063b7c61f06146200048a578063c4d66de814620004b657600080fd5b806392275770146200036557806393790f44146200037c578063995b5aae146200039f57600080fd5b806379ba509711620001835780638c838035116200015a5780638c83803514620002f75780638da5cb5b14620003235780638e00555314620003375780639094a91e146200034e57600080fd5b806379ba509714620002bf5780638b98559e14620002c95780638c5166c814620002e057600080fd5b806347e817ce11620001c457806347e817ce14620002355780634810c006146200024c5780634cd185771462000295578063771d4c2814620002a857600080fd5b806307b0466314620001ee5780630e8e4dbb14620002075780633ae308fa146200021e575b600080fd5b62000205620001ff366004620020db565b62000591565b005b620002056200021836600462002119565b620008a5565b620002056200022f36600462002148565b62000a4c565b620002056200024636600462002119565b62000ad7565b620002786200025d36600462002180565b6006602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6008545b6040519081526020016200028c565b62000205620002b9366004620021a7565b62000c49565b6200020562000ea5565b62000205620002da36600462002180565b62000f4f565b62000278620002f136600462002213565b62000fb6565b620002786200030836600462002180565b6005602052600090815260409020546001600160a01b031681565b60005462000278906001600160a01b031681565b620002056200034836600462002180565b62001693565b620002786200035f3660046200231d565b620016f4565b620002056200037636600462002350565b6200171f565b620002996200038d366004620021a7565b60036020526000908152604090205481565b600a546040805161ffff600160a01b84041681526001600160a01b039092166020830152016200028c565b60095462000278906001600160a01b031681565b62000456620003ef36600462002180565b60408051606080820183526000808352602080840182905292840181905261ffff9490941684526007825292829020825193840183525467ffffffffffffffff8082168552600160401b82041691840191909152600160801b900460ff1615159082015290565b60408051825167ffffffffffffffff908116825260208085015190911690820152918101511515908201526060016200028c565b620002786200049b3660046200231d565b6002602052600090815260409020546001600160a01b031681565b62000205620004c7366004620021a7565b620018d4565b62000205620004de36600462002180565b620019a9565b62000278620004f536600462002180565b6004602052600090815260409020546001600160a01b031681565b60015462000278906001600160a01b031681565b6200020562000535366004620021a7565b62001a5f565b620002056200054c366004620021a7565b62001b00565b620002056200056336600462002148565b62001b59565b620002787f000000000000000000000000000000000000000000000000000000000000000081565b6200059b62001b9e565b620005a68262001be8565b806001600160a01b031663da1f12ab6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620005e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200060b91906200239c565b61ffff166000036200063057604051631e2889fb60e11b815260040160405180910390fd5b8161ffff16816001600160a01b031663da1f12ab6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200069a91906200239c565b61ffff1614620006bd57604051636b2ebfc160e11b815260040160405180910390fd5b306001600160a01b0316816001600160a01b031663622f18f86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000706573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200072c9190620023bc565b6001600160a01b031614620007545760405163340aafcd60e11b815260040160405180910390fd5b61ffff82166000908152600460205260409020546001600160a01b038083169116036200079457604051637493e81b60e11b815260040160405180910390fd5b61ffff82166000908152600560209081526040808320548151634673a21360e11b815291516001600160a01b0390911692638ce7442692600480820193918290030181865afa158015620007ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008129190620023bc565b6001600160a01b0316146200083a57604051630f16227d60e01b815260040160405180910390fd5b61ffff821660008181526004602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527f5f02f3a73708496ac25c70927edfb42a9e78708ed39c8ffc2469f3bb6bf57e11910160405180910390a15050565b620008af62001b9e565b620008ba8262001c26565b6000826001600160a01b031663d7cd39496040518163ffffffff1660e01b8152600401602060405180830381865afa158015620008fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009219190620023bc565b90506000836001600160a01b031663d0d0ed056040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000964573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200098a9190620023bc565b604051632f95f4d760e01b8152600481018590529091506001600160a01b03831690632f95f4d790602401600060405180830381600087803b158015620009d057600080fd5b505af1158015620009e5573d6000803e3d6000fd5b5050604051632f95f4d760e01b8152600481018690526001600160a01b0384169250632f95f4d791506024015b600060405180830381600087803b15801562000a2d57600080fd5b505af115801562000a42573d6000803e3d6000fd5b5050505050505050565b62000a5662001b9e565b62000a618262001c3c565b60405163edf07f1560e01b815260ff821660048201526001600160a01b0383169063edf07f15906024015b6020604051808303816000875af115801562000aac573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ad29190620023dc565b505050565b62000ae162001b9e565b62000aec8262001c26565b6000826001600160a01b031663d7cd39496040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b2d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b539190620023bc565b90506000836001600160a01b031663d0d0ed056040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b96573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000bbc9190620023bc565b604051631c5633d760e01b8152600481018590529091506001600160a01b03831690631c5633d790602401600060405180830381600087803b15801562000c0257600080fd5b505af115801562000c17573d6000803e3d6000fd5b5050604051631c5633d760e01b8152600481018690526001600160a01b0384169250631c5633d7915060240162000a12565b62000c5362001b9e565b6000816001600160a01b031663da1f12ab6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c94573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cba91906200239c565b90508061ffff1660000362000ce257604051631e2889fb60e11b815260040160405180910390fd5b61ffff81166000908152600460205260409020546001600160a01b03161562000d1e57604051637493e81b60e11b815260040160405180910390fd5b306001600160a01b0316826001600160a01b031663622f18f86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000d67573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d8d9190620023bc565b6001600160a01b03161462000db55760405163340aafcd60e11b815260040160405180910390fd5b61ffff811660009081526004602052604080822080546001600160a01b0319166001600160a01b038616179055513090839062000df29062002087565b6001600160a01b03909216825261ffff166020820152604001604051809103906000f08015801562000e28573d6000803e3d6000fd5b5061ffff831660008181526005602090815260409182902080546001600160a01b0319166001600160a01b03868116918217909255835194855290881691840191909152908201529091507f8d7c6e7b5b31c956b0f1558bc7309bafbb4c4e2ea45d2ad42f71d07cab41d88d9060600160405180910390a1505050565b60015433906001600160a01b0316811462000ef55760405162461bcd60e51b815260206004820152600b60248201526a2737ba2732bba7bbb732b960a91b60448201526064015b60405180910390fd5b600080546001600160a01b038381166001600160a01b031980841682178555600180549091169055604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b62000f5962001b9e565b62000f648162001c83565b62000f6f8162001ca9565b61ffff8116600081815260076020526040808220805460ff60801b19169055517f59c3e02bb700cb1cfdbca860db0beaf39eb0a8e1c585fda0fa09dc8b071ae8709190a250565b600062000fc262001b9e565b6009546001600160a01b03166200101c5760405162461bcd60e51b815260206004820152601d60248201527f46554e44494e475f5641554c545f464143544f52595f4e4f545f534554000000604482015260640162000eec565b60408085015161ffff166000908152600660205220546001600160a01b031615620010775760405162461bcd60e51b815260206004820152600a6024820152691554d15117d49151925160b21b604482015260640162000eec565b8351620010849062001be8565b62001093846020015162001c83565b620010a2846020015162001ca9565b620010b18460a0015162001d1d565b604080516101a081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081019190915260208086015161ffff908116838301526060808801516001600160a01b0390811660408087019182526080808c0151841694880194855260a08c0151841690880190815260c08c0151610180890152818c0151861688528b519095166000908152600496879052819020549151935194519051631914ab6560e01b815291909216948594631914ab6594620011ba949093919290918c918c91016200241f565b60a060405180830381865afa158015620011d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011fe919062002461565b62ffffff1661012087015260020b6101008601526001600160a01b0390811660e086015290811660c08501521660a083015260408201516060830151608084015188516020860151600094620012ab94909390929091604080516001600160a01b039687166020808301919091529587168183015293909516606084015261ffff91821660808401521660a0808301919091528351808303909101815260c0909101909252815191012090565b9050620012b88162001dce565b865161ffff166000908152600560205260409020548751620012e5916001600160a01b0316908362001e05565b835161ffff16600090815260066020908152604080832080546001600160a01b0319166001600160a01b03868116919091179091556009548251631dd70c0360e21b81529251959950169363775c300c936004808401949383900301908290875af115801562001359573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200137f9190620023bc565b6001600160a01b0390811661014085018190526040808601519051631c9776b560e31b8152878416600482015292166024830152600160448301529063e4bbb5a890606401600060405180830381600087803b158015620013df57600080fd5b505af1158015620013f4573d6000803e3d6000fd5b50505050600960009054906101000a90046001600160a01b03166001600160a01b031663775c300c6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156200144e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014749190620023bc565b6001600160a01b0390811661016085018190526040808601519051631c9776b560e31b8152878416600482015292166024830152600060448301529063e4bbb5a890606401600060405180830381600087803b158015620014d457600080fd5b505af1158015620014e9573d6000803e3d6000fd5b505050600082815260026020908152604080832080546001600160a01b038a166001600160a01b0319918216811790925581855260039093528184208690556008805460018101825594527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee39093018054909216831790915551630a373a5360e41b815290915063a373a530906200158a9086908a908a90600401620024ee565b600060405180830381600087803b158015620015a557600080fd5b505af1158015620015ba573d6000803e3d6000fd5b5050505082604001516001600160a01b0316836020015161ffff16886000015161ffff167fe244acab947e8b52afdb73ed8349a694a1e213a450a35fe8091120247763b165866060015187608001518789600001518b8b61014001518c6101600151600880549050604051620016819897969594939291906001600160a01b0398891681529688166020880152948716604087015261ffff9390931660608601529085166080850152841660a084015290921660c082015260e08101919091526101000190565b60405180910390a45050509392505050565b6200169d62001b9e565b600a805461ffff60a01b1916600160a01b61ffff8416908102919091179091556040519081527f6b21e0b71c12e6cd9a3b2bc9bca648afabce42f96ab1f4b2a085107b8a125ca2906020015b60405180910390a150565b600881815481106200170557600080fd5b6000918252602090912001546001600160a01b0316905081565b6200172962001b9e565b620017348362001c83565b61ffff8316600090815260076020526040902054600160801b900460ff1615620017715760405163025d48cb60e41b815260040160405180910390fd5b66b1a2bc2ec500008267ffffffffffffffff1610158015620017a55750670de0b6b3a76400008267ffffffffffffffff1611155b620017c35760405163a2e1ad2f60e01b815260040160405180910390fd5b6658d15e176280008167ffffffffffffffff1610158015620017f75750670de0b6b3a76400008167ffffffffffffffff1611155b620018155760405163eed498f560e01b815260040160405180910390fd5b6040805160608101825267ffffffffffffffff8481168083528482166020808501828152600186880190815261ffff8b1660008181526007855289902097518854935192511515600160801b0260ff60801b19938916600160401b026fffffffffffffffffffffffffffffffff199095169190981617929092171694909417909455845191825292810192909252917fd5c73c690742b98e91751b19c0ccc8cea8c9fc0570aef37a4cead0231a401260910160405180910390a2505050565b620018de62001b9e565b6001600160a01b038116620019365760405162461bcd60e51b815260206004820152601d60248201527f494e56414c49445f46554e44494e475f5641554c545f464143544f5259000000604482015260640162000eec565b6009546001600160a01b031615620019875760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b604482015260640162000eec565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b620019b362001b9e565b620019be8162001be8565b61ffff8116600090815260056020526040808220548151637c1e845d60e11b815291516001600160a01b039091169263f83d08ba926004808201939182900301818387803b15801562001a1057600080fd5b505af115801562001a25573d6000803e3d6000fd5b505060405161ffff841681527f3e273a0c087a42a29ea89bb1c24a85f20abb31a0e2840a5c49ebae18fe3c7a1b92506020019050620016e9565b62001a6962001b9e565b6001600160a01b03811662001aaf5760405162461bcd60e51b815260206004820152600b60248201526a5a65726f4164647265737360a81b604482015260640162000eec565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227009190a350565b62001b0a62001b9e565b600a80546001600160a01b0319166001600160a01b0383169081179091556040519081527fcb2efb9ac9d76fd38ee396f04826fab474b9d684a0131ed439d676632ad605f990602001620016e9565b62001b6362001b9e565b62001b6e8262001c3c565b60405163301c7e5d60e01b815260ff821660048201526001600160a01b0383169063301c7e5d9060240162000a8c565b6000546001600160a01b0316331462001be65760405162461bcd60e51b81526020600482015260096024820152682337b93134b23232b760b91b604482015260640162000eec565b565b61ffff81166000908152600460205260409020546001600160a01b031662001c2357604051630ea1bea560e41b815260040160405180910390fd5b50565b62001c318162001c3c565b62001c238162001e53565b6001600160a01b03811662001c235760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015260640162000eec565b8061ffff1660000362001c235760405163482df1ef60e01b815260040160405180910390fd5b61ffff81166000908152600760209081526040918290208251606081018452905467ffffffffffffffff8082168352600160401b82041692820192909252600160801b90910460ff1615159181018290529062001d1957604051630fb1a74560e41b815260040160405180910390fd5b5050565b6040516324de43d160e21b81526001600160a01b0382811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906393790f4490602401602060405180830381865afa15801562001d89573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001daf9190620023dc565b0362001c2357604051636f9eee7160e01b815260040160405180910390fd5b6000818152600260205260409020546001600160a01b03161562001c235760405163108e5c5f60e21b815260040160405180910390fd5b60008062001e1585853062001eb1565b9050828151602083016000f591506001600160a01b03821662001e4b5760405163b4f5411160e01b815260040160405180910390fd5b509392505050565b6001600160a01b03811660009081526003602052604090205462001c235760405162461bcd60e51b8152602060048201526014602482015273159055531517d113d154d7d393d517d1561254d560621b604482015260640162000eec565b606062001ec084848462001ec8565b949350505050565b6060836101008461ffff161062001ef957604051806040016040528060018152602001606d60f81b81525062001f14565b604051806040016040528060018152602001601b60fa1b8152505b6101008561ffff161062001f4257604051806040016040528060018152602001606160f81b81525062001f5d565b604051806040016040528060018152602001600360fd1b8152505b6101008661ffff161062001f9a576040516001600160f01b031960f088901b16602082015260220160405160208183030381529060405262001fc4565b6040516001600160f81b031960f888901b1660208201526021016040516020818303038152906040525b856101008861ffff161062001ff357604051806040016040528060018152602001603b60f81b8152506200200e565b604051806040016040528060018152602001601d60f91b8152505b6101008961ffff16106200203c57604051806040016040528060018152602001601760fa1b81525062002057565b604051806040016040528060018152602001605b60f81b8152505b6040516020016200206f979695949392919062002679565b60405160208183030381529060405290509392505050565b6103bc806200281283390190565b61ffff8116811462001c2357600080fd5b8035620020b38162002095565b919050565b6001600160a01b038116811462001c2357600080fd5b8035620020b381620020b8565b60008060408385031215620020ef57600080fd5b8235620020fc8162002095565b915060208301356200210e81620020b8565b809150509250929050565b600080604083850312156200212d57600080fd5b82356200213a81620020b8565b946020939093013593505050565b600080604083850312156200215c57600080fd5b82356200216981620020b8565b9150602083013560ff811681146200210e57600080fd5b6000602082840312156200219357600080fd5b8135620021a08162002095565b9392505050565b600060208284031215620021ba57600080fd5b8135620021a081620020b8565b60008083601f840112620021da57600080fd5b50813567ffffffffffffffff811115620021f357600080fd5b6020830191508360208285010111156200220c57600080fd5b9250929050565b60008060008385036101008112156200222b57600080fd5b60e08112156200223a57600080fd5b5060405160e0810167ffffffffffffffff82821081831117156200226e57634e487b7160e01b600052604160045260246000fd5b816040526200227d87620020a6565b83526200228d60208801620020a6565b6020840152620022a060408801620020a6565b6040840152620022b360608801620020ce565b6060840152620022c660808801620020ce565b6080840152620022d960a08801620020ce565b60a084015260c087013560c084015282955060e08701359250808311156200230057600080fd5b50506200231086828701620021c7565b9497909650939450505050565b6000602082840312156200233057600080fd5b5035919050565b803567ffffffffffffffff81168114620020b357600080fd5b6000806000606084860312156200236657600080fd5b8335620023738162002095565b9250620023836020850162002337565b9150620023936040850162002337565b90509250925092565b600060208284031215620023af57600080fd5b8151620021a08162002095565b600060208284031215620023cf57600080fd5b8151620021a081620020b8565b600060208284031215620023ef57600080fd5b5051919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038681168252858116602083015284166040820152608060608201819052600090620024569083018486620023f6565b979650505050505050565b600080600080600060a086880312156200247a57600080fd5b85516200248781620020b8565b60208701519095506200249a81620020b8565b6040870151909450620024ad81620020b8565b8093505060608601518060020b8114620024c657600080fd5b608087015190925062ffffff81168114620024e057600080fd5b809150509295509295909350565b835161ffff16815260006101c0602086015162002511602085018261ffff169052565b5060408601516200252d60408501826001600160a01b03169052565b5060608601516200254960608501826001600160a01b03169052565b5060808601516200256560808501826001600160a01b03169052565b5060a08601516200258160a08501826001600160a01b03169052565b5060c08601516200259d60c08501826001600160a01b03169052565b5060e0860151620025b960e08501826001600160a01b03169052565b5061010080870151620025d08286018260020b9052565b50506101208681015162ffffff1690840152610140808701516001600160a01b0390811691850191909152610160808801519091169084015261018080870151908401526101a083018190526200262b8184018587620023f6565b9695505050505050565b60005b838110156200265257818101518382015260200162002638565b50506000910152565b600081516200266f81856020860162002635565b9290920192915050565b72608060405234801561001057600080fd5b507360681b8152606088901b6bffffffffffffffffffffffff19166013820152607f60f81b60278201527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060288201526102ab60f51b60488201528651600090620026fe81604a850160208c0162002635565b6a4030802b30001cb00079ff60a91b604a91840191820152703040302040c829319a58f854b0710dc0a960791b6055820152620027646200274e62002747606684018b6200265b565b896200265b565b696084526020816024817360b01b8152600a0190565b905062002782818760601b6bffffffffffffffffffffffff19169052565b6202d7d360ed1b601482015262002803620027e2620027db620027a86017850162002747565b7f573d6000fd5b5060805160003681823780813683855af491503d81823e8180158152600360fd1b602082015260210190565b866200265b565b742b9ec179ad9ec17eff50b239b7b631a180040a800560591b815260150190565b9a995050505050505050505056fe60c060405234801561001057600080fd5b506040516103bc3803806103bc83398101604081905261002f91610049565b6001600160a01b0390911660805261ffff1660a052610096565b6000806040838503121561005c57600080fd5b82516001600160a01b038116811461007357600080fd5b602084015190925061ffff8116811461008b57600080fd5b809150509250929050565b60805160a0516102ee6100ce6000396000818160c0015261024b015260008181609901528181610138015261027601526102ee6000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80635c60da1b1461005c5780638ce7442614610081578063c45a015514610094578063da1f12ab146100bb578063f83d08ba146100f5575b600080fd5b6100646100ff565b6040516001600160a01b0390911681526020015b60405180910390f35b600054610064906001600160a01b031681565b6100647f000000000000000000000000000000000000000000000000000000000000000081565b6100e27f000000000000000000000000000000000000000000000000000000000000000081565b60405161ffff9091168152602001610078565b6100fd61012d565b005b600080546001600160a01b031661011d5761011861023c565b905090565b506000546001600160a01b031690565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101965760405162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b60448201526064015b60405180910390fd5b6000546001600160a01b0316156101d85760405162461bcd60e51b81526020600482015260066024820152651313d0d2d15160d21b604482015260640161018d565b6101e061023c565b600080546001600160a01b0319166001600160a01b0392909216918217905561023a5760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015260640161018d565b565b6040516334b1f0a960e21b81527f0000000000000000000000000000000000000000000000000000000000000000600482018190526000917f0000000000000000000000000000000000000000000000000000000000000000919060206080602483865afa9050806102ad573d6000fd5b50608051925050509056fea2646970667358221220a03448577d9b51f4ee3af57d879097a1c130b15d534b5a0e22ff89a79c917b9e64736f6c63430008150033a2646970667358221220b7fe6d0c950f6118f68f1192dc4006867fb7ebee36b1268a64611210a0e07d0e64736f6c63430008150033000000000000000000000000ab0d2f393d8095cf7c154ddd81cbd6ff56238427000000000000000000000000fd513630f697a9c1731f196185fb9eba6eaac20b