0 txs
0 calls
constructor
constructor()
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
depositHelperMgp
viewfunction depositHelperMgp() view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
liquidationValue
viewfunction liquidationValue() view returns (uint256)
lp
viewfunction lp() view returns (address)
masterMgp
viewfunction masterMgp() view returns (address)
navSlippageBP
viewfunction navSlippageBP() view returns (uint256)
netAssetValue
viewfunction netAssetValue() view returns (uint256)
oracleWstEthEth
viewfunction oracleWstEthEth() view returns (address)
pendle
viewfunction pendle() view returns (address)
pendleRouter
viewfunction pendleRouter() view returns (address)
pendleStaking
viewfunction pendleStaking() view returns (address)
pnp
viewfunction pnp() view returns (address)
PORTFOLIO_AGENT_ROLE
viewfunction PORTFOLIO_AGENT_ROLE() view returns (bytes32)
PORTFOLIO_MANAGER
viewfunction PORTFOLIO_MANAGER() view returns (bytes32)
portfolioManager
viewfunction portfolioManager() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
pt
viewfunction pt() view returns (address)
ptOracle
viewfunction ptOracle() view returns (address)
stakeSlippageBP
viewfunction stakeSlippageBP() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
swapSlippageBP
viewfunction swapSlippageBP() view returns (uint256)
sy
viewfunction sy() view returns (address)
thresholdBalancePercent
viewfunction thresholdBalancePercent() view returns (uint256)
uniswapV3Router
viewfunction uniswapV3Router() view returns (address)
weth
viewfunction weth() view returns (address)
wstEth
viewfunction wstEth() view returns (address)
yt
viewfunction yt() view returns (address)
claimRewards
nonpayablefunction claimRewards(address _to) returns (uint256)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setParams
nonpayablefunction setParams(tuple params)
setPortfolioManager
nonpayablefunction setPortfolioManager(address _value)
setSlippages
nonpayablefunction setSlippages(uint256 _swapSlippageBP, uint256 _navSlippageBP, uint256 _stakeSlippageBP)
stake
nonpayablefunction stake(address _asset, uint256 _amount)
unstake
nonpayablefunction unstake(address _asset, uint256 _amount, address _beneficiary, bool _targetIsZero) returns (uint256)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Initialized
event Initialized(uint8 version)
PortfolioManagerUpdated
event PortfolioManagerUpdated(address value)
Reward
event Reward(uint256 amount)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
SlippagesUpdated
event SlippagesUpdated(uint256 swapSlippageBP, uint256 navSlippageBP, uint256 stakeSlippageBP)
Stake
event Stake(uint256 amount)
StrategyUpdatedParams
event StrategyUpdatedParams()
Unstake
event Unstake(uint256 amount, uint256 amountReceived)
Upgraded
event Upgraded(address indexed implementation)
errors
No errors.
creation bytecode
0x60a0604052306080523480156200001557600080fd5b50600054610100900460ff1615808015620000375750600054600160ff909116105b8062000067575062000054306200014160201b62001a841760201c565b15801562000067575060005460ff166001145b620000cf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000f3576000805461ff0019166101001790555b80156200013a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5062000150565b6001600160a01b03163b151590565b6080516149b36200018860003960008181610871015281816108b101528181610950015281816109900152610a1f01526149b36000f3fe6080604052600436106102465760003560e01c80636866afe311610139578063a440b21a116100b6578063c6fea47c1161007a578063c6fea47c146106af578063d547741f146106d0578063dc263022146106f0578063e71c47cf14610711578063ef5cfb8c14610732578063f6f6b8811461075257600080fd5b8063a440b21a14610618578063adc9772e14610638578063ae30c11014610658578063bf52e08014610678578063c54405701461068e57600080fd5b806391d14854116100fd57806391d148541461058c57806394eea12d146105ac578063a217fddf146105cd578063a2c530da146105e2578063a3673b381461060357600080fd5b80636866afe3146104f25780636a89d8ea146105135780637d5f5802146105345780638129fc1c1461055657806391815a981461056b57600080fd5b806336568abe116101c75780635ca558f81161018b5780635ca558f8146104515780635dbd733a14610467578063620b75df1461049b57806365074234146104bb57806368370317146104db57600080fd5b806336568abe146103c85780633659cfe6146103e85780633fc8cef3146104085780634f1ef2861461042957806352d1902d1461043c57600080fd5b8063248a9ca31161020e578063248a9ca31461031f5780632576e65a1461034f5780632c76d7a6146103645780632f2ff15d14610385578063313c06a0146103a757600080fd5b806301ffc9a71461024b57806305d7b9a214610280578063119cd879146102b9578063181cc05b146102dd578063206aeab3146102fe575b600080fd5b34801561025757600080fd5b5061026b610266366004614050565b610772565b60405190151581526020015b60405180910390f35b34801561028c57600080fd5b50610134546102a1906001600160a01b031681565b6040516001600160a01b039091168152602001610277565b3480156102c557600080fd5b506102cf60fd5481565b604051908152602001610277565b3480156102e957600080fd5b50610131546102a1906001600160a01b031681565b34801561030a57600080fd5b50610133546102a1906001600160a01b031681565b34801561032b57600080fd5b506102cf61033a36600461407a565b60009081526065602052604090206001015490565b34801561035b57600080fd5b506102cf6107a9565b34801561037057600080fd5b50610138546102a1906001600160a01b031681565b34801561039157600080fd5b506103a56103a03660046140aa565b6107ba565b005b3480156103b357600080fd5b50610132546102a1906001600160a01b031681565b3480156103d457600080fd5b506103a56103e33660046140aa565b6107e4565b3480156103f457600080fd5b506103a56104033660046140d6565b610867565b34801561041457600080fd5b5061012d546102a1906001600160a01b031681565b6103a5610437366004614138565b610946565b34801561044857600080fd5b506102cf610a12565b34801561045d57600080fd5b506102cf60fe5481565b34801561047357600080fd5b506102cf7fd67ad422505496469a1adf6cdf9e5ee92ac5d33992843c9ecc4b2f6d6cde913781565b3480156104a757600080fd5b5060fb546102a1906001600160a01b031681565b3480156104c757600080fd5b506103a56104d63660046141de565b610ac5565b3480156104e757600080fd5b506102cf61013c5481565b3480156104fe57600080fd5b50610137546102a1906001600160a01b031681565b34801561051f57600080fd5b5061013a546102a1906001600160a01b031681565b34801561054057600080fd5b506102cf60008051602061491783398151915281565b34801561056257600080fd5b506103a5611191565b34801561057757600080fd5b5061012e546102a1906001600160a01b031681565b34801561059857600080fd5b5061026b6105a73660046140aa565b61125b565b3480156105b857600080fd5b50610139546102a1906001600160a01b031681565b3480156105d957600080fd5b506102cf600081565b3480156105ee57600080fd5b5061013b546102a1906001600160a01b031681565b34801561060f57600080fd5b506102cf611286565b34801561062457600080fd5b506103a56106333660046140d6565b611292565b34801561064457600080fd5b506103a56106533660046141f7565b6113c1565b34801561066457600080fd5b506103a5610673366004614221565b6115c4565b34801561068457600080fd5b506102cf60fc5481565b34801561069a57600080fd5b50610130546102a1906001600160a01b031681565b3480156106bb57600080fd5b50610135546102a1906001600160a01b031681565b3480156106dc57600080fd5b506103a56106eb3660046140aa565b61172a565b3480156106fc57600080fd5b5061012f546102a1906001600160a01b031681565b34801561071d57600080fd5b50610136546102a1906001600160a01b031681565b34801561073e57600080fd5b506102cf61074d3660046140d6565b61174f565b34801561075e57600080fd5b506102cf61076d36600461425b565b6117d4565b60006001600160e01b03198216637965db0b60e01b14806107a357506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006107b56000611a93565b905090565b6000828152606560205260409020600101546107d581611d7d565b6107df8383611d87565b505050565b6001600160a01b03811633146108595760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6108638282611e0d565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108af5760405162461bcd60e51b8152600401610850906142aa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108f8600080516020614937833981519152546001600160a01b031690565b6001600160a01b03161461091e5760405162461bcd60e51b8152600401610850906142f6565b61092781611e74565b6040805160008082526020820190925261094391839190611e7f565b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361098e5760405162461bcd60e51b8152600401610850906142aa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109d7600080516020614937833981519152546001600160a01b031690565b6001600160a01b0316146109fd5760405162461bcd60e51b8152600401610850906142f6565b610a0682611e74565b61086382826001611e7f565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ab25760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610850565b5060008051602061493783398151915290565b610ad060003361125b565b610b135760405162461bcd60e51b81526020600482015260146024820152735265737472696374656420746f2061646d696e7360601b6044820152606401610850565b610b2060208201826140d6565b61012d80546001600160a01b0319166001600160a01b0392909216919091179055610b5160408201602083016140d6565b61012e80546001600160a01b0319166001600160a01b0392909216919091179055610b8260608201604083016140d6565b61012f80546001600160a01b0319166001600160a01b0392909216919091179055610bb360808201606083016140d6565b61013080546001600160a01b0319166001600160a01b0392909216919091179055610be460a08201608083016140d6565b61013180546001600160a01b0319166001600160a01b0392909216919091179055610c1560c0820160a083016140d6565b61013280546001600160a01b0319166001600160a01b0392909216919091179055610c4660e0820160c083016140d6565b61013380546001600160a01b0319166001600160a01b0392909216919091179055610c78610100820160e083016140d6565b61013480546001600160a01b0319166001600160a01b0392909216919091179055610cab610120820161010083016140d6565b61013580546001600160a01b0319166001600160a01b0392909216919091179055610cde610140820161012083016140d6565b61013680546001600160a01b0319166001600160a01b0392909216919091179055610d11610160820161014083016140d6565b61013780546001600160a01b0319166001600160a01b0392909216919091179055610d44610180820161016083016140d6565b61013880546001600160a01b0319166001600160a01b0392909216919091179055610d776101e082016101c083016140d6565b61013980546001600160a01b0319166001600160a01b0392909216919091179055610daa6101a0820161018083016140d6565b61013a80546001600160a01b0319166001600160a01b0392909216919091179055610ddd6101c082016101a083016140d6565b61013b80546001600160a01b0319166001600160a01b039283161790556101e082013561013c5561012e546101315460405163095ea7b360e01b8152600019939283169263095ea7b392610e38929116908590600401614342565b6020604051808303816000875af1158015610e57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7b919061435b565b5061012e546101335460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392610eb4929116908590600401614342565b6020604051808303816000875af1158015610ed3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef7919061435b565b50610131546101335460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392610f30929116908590600401614342565b6020604051808303816000875af1158015610f4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f73919061435b565b5061012f546101335460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392610fac929116908590600401614342565b6020604051808303816000875af1158015610fcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fef919061435b565b50610130546101335460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392611028929116908590600401614342565b6020604051808303816000875af1158015611047573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106b919061435b565b50610132546101335460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926110a4929116908590600401614342565b6020604051808303816000875af11580156110c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e7919061435b565b50610132546101355460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392611120929116908590600401614342565b6020604051808303816000875af115801561113f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611163919061435b565b506040517fea5646eb3528e525944447a4a97de700dd472298626e5c0481d1c82c3da86ea590600090a15050565b600054610100900460ff16158080156111b15750600054600160ff909116105b806111cb5750303b1580156111cb575060005460ff166001145b6111e75760405162461bcd60e51b815260040161085090614378565b6000805460ff19166001179055801561120a576000805461ff0019166101001790555b611212611fea565b8015610943576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006107b56001611a93565b61129d60003361125b565b6112e05760405162461bcd60e51b81526020600482015260146024820152735265737472696374656420746f2061646d696e7360601b6044820152606401610850565b6001600160a01b0381166113365760405162461bcd60e51b815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f77656400000000000000006044820152606401610850565b60fb5461135b90600080516020614917833981519152906001600160a01b031661172a565b611373600080516020614917833981519152826107ba565b60fb80546001600160a01b0319166001600160a01b0383169081179091556040519081527ff7b449fcd5cfb7379dcd34cb69428dd9f882033b15be33d83b42d91daa28eeb790602001611250565b6113d96000805160206149178339815191523361125b565b6113f55760405162461bcd60e51b8152600401610850906143c6565b6000611464306001600160a01b031663a3673b386040518163ffffffff1660e01b8152600401602060405180830381865afa158015611438573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145c91906143fd565b60fd546120cf565b6040516370a0823160e01b81523060048201529091506114da9084906001600160a01b038216906370a0823190602401602060405180830381865afa1580156114b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d591906143fd565b6120f9565b80306001600160a01b031663a3673b386040518163ffffffff1660e01b8152600401602060405180830381865afa158015611519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153d91906143fd565b101561158b5760405162461bcd60e51b815260206004820152601f60248201527f5374726174656779204e4156206c657373207468616e206578706563746564006044820152606401610850565b6040518281527f227a473b70d2f893cc7659219575c030a63b5743024fe1e0c1a680e708b1525a906020015b60405180910390a1505050565b6115ee7fd67ad422505496469a1adf6cdf9e5ee92ac5d33992843c9ecc4b2f6d6cde91373361125b565b80611686575060fb54604051632474521560e21b81527fd67ad422505496469a1adf6cdf9e5ee92ac5d33992843c9ecc4b2f6d6cde913760048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa158015611662573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611686919061435b565b6116dd5760405162461bcd60e51b815260206004820152602260248201527f5265737472696374656420746f20504f5254464f4c494f5f4147454e545f524f6044820152614c4560f01b6064820152608401610850565b60fc83905560fd82905560fe81905560408051848152602081018490529081018290527f116fbf1e97a2be629ad98abfb6c332733c8996c2dfb174dd2efe8440df381d1a906060016115b7565b60008281526065602052604090206001015461174581611d7d565b6107df8383611e0d565b60006117696000805160206149178339815191523361125b565b6117855760405162461bcd60e51b8152600401610850906143c6565b6000611790836127ae565b905080156117cc576040518181527f3ac0594a85a20354f9dc74f33728416d19ce00d04a406c108cc2dcf2cecea1349060200160405180910390a15b90505b919050565b60006117ee6000805160206149178339815191523361125b565b61180a5760405162461bcd60e51b8152600401610850906143c6565b600061184d306001600160a01b031663a3673b386040518163ffffffff1660e01b8152600401602060405180830381865afa158015611438573d6000803e3d6000fd5b9050600080841561187457611861866127ae565b905061186d8887612a15565b91506118e3565b61187f888888612b13565b9150868210156118e35760405162461bcd60e51b815260206004820152602960248201527f52657475726e65642076616c7565206c657373207468616e2072657175657374604482015268195908185b5bdd5b9d60ba1b6064820152608401610850565b82306001600160a01b031663a3673b386040518163ffffffff1660e01b8152600401602060405180830381865afa158015611922573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194691906143fd565b10156119945760405162461bcd60e51b815260206004820152601f60248201527f5374726174656779204e4156206c657373207468616e206578706563746564006044820152606401610850565b60405163a9059cbb60e01b81526001600160a01b0389169063a9059cbb906119c29089908690600401614342565b6020604051808303816000875af11580156119e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a05919061435b565b5060408051888152602081018490527f9045c2ac9b2026de8075f2701bbdde882cd5e830b3b1ead9a15b22f2b5b93742910160405180910390a18015611a79576040518181527f3ac0594a85a20354f9dc74f33728416d19ce00d04a406c108cc2dcf2cecea1349060200160405180910390a15b509695505050505050565b6001600160a01b03163b151590565b61012d546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0591906143fd565b61012e546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611b54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7891906143fd565b9050600080611b85612c48565b610131546040516370a0823160e01b81523060048201529294509092506001600160a01b0316906370a0823190602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906143fd565b611c00908361442c565b61012f546040516370a0823160e01b81523060048201529193506001600160a01b0316906370a0823190602401602060405180830381865afa158015611c4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6e91906143fd565b611c78908261442c565b610130546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611cc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ceb91906143fd565b90506000611cf883612e11565b90506000611d0583612ea3565b9050611d11818361442c565b611d1b908861442c565b9650611d27858761442c565b95508515611d70578815611d4f57611d3e86612f40565b611d48908861442c565b9650611d70565b611d63611d5b87612f40565b60fc546120cf565b611d6d908861442c565b96505b5094979650505050505050565b6109438133612f77565b611d91828261125b565b6108635760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611dc93390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611e17828261125b565b156108635760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061086381611d7d565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611eb2576107df83612fd0565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611f0c575060408051601f3d908101601f19168201909252611f09918101906143fd565b60015b611f6f5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610850565b6000805160206149378339815191528114611fde5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610850565b506107df83838361306c565b600054610100900460ff161580801561200a5750600054600160ff909116105b806120245750303b158015612024575060005460ff166001145b6120405760405162461bcd60e51b815260040161085090614378565b6000805460ff191660011790558015612063576000805461ff0019166101001790555b61206b613097565b612073613097565b61207e600033611d87565b601460fc81905560fd55600460fe558015610943576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611250565b60006127106120de838261443f565b6120e89085614452565b6120f29190614469565b9392505050565b61012d546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612143573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216791906143fd565b6101385461012d5461012e549293506121a0926001600160a01b039283169291821691166064308661219b611d5b82613104565b613134565b5061012e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156121eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220f91906143fd565b9050600061013260009054906101000a90046001600160a01b03166001600160a01b031663c3fb90d66040518163ffffffff1660e01b815260040160c060405180830381865afa158015612267573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228b91906144af565b9050600081602001516001600160801b0316905060006122bf6122ba84600001516001600160801b0316612e11565b613104565b610134546101325460405163abca0eab60e01b81526001600160a01b0391821660048201526032602482015292935060009291169063abca0eab90604401602060405180830381865afa15801561231a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233e91906143fd565b9050600061235483670de0b6b3a7640000614452565b61235e8386614452565b612368919061442c565b826123738689614452565b61237d9190614452565b6123879190614469565b6101315461012e546040516320e8c56560e01b81529293506001600160a01b03918216926320e8c565926123c79230929116908690600090600401614561565b6020604051808303816000875af11580156123e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240a91906143fd565b50612437604080516080810190915280600081526000602082018190526060604083018190529091015290565b6040805160c08101825261012e546001600160a01b031680825291516370a0823160e01b815230600482015260009260208301916370a0823190602401602060405180830381865afa158015612491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b591906143fd565b815261012e546001600160a01b039081166020830152600060408084018290526060840182905260809093018690526101335461013054935163237596db60e11b81529495508216936346eb2db693612517933093911691879060040161468b565b6020604051808303816000875af1158015612536573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255a91906143fd565b506101335461013254610131546040516370a0823160e01b815230600482018190526001600160a01b03948516946397ee279e949193918116929116906370a0823190602401602060405180830381865afa1580156125bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e191906143fd565b61012f546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561262a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264e91906143fd565b6040516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152604483015260648201526000608482015260a4016060604051808303816000875af11580156126ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d291906146c8565b505061013654610132546040516370a0823160e01b81523060048201526001600160a01b03928316935063bad55ca1929091169081906370a0823190602401602060405180830381865afa15801561272e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275291906143fd565b6040518363ffffffff1660e01b815260040161276f929190614342565b600060405180830381600087803b15801561278957600080fd5b505af115801561279d573d6000803e3d6000fd5b505050505050505050505050505050565b610136546101325460405163018ee9b760e01b81526000926001600160a01b039081169263018ee9b7926127ea92909116908590600401614342565b600060405180830381600087803b15801561280457600080fd5b505af1158015612818573d6000803e3d6000fd5b5050505061282461329d565b61282c613441565b61013a546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561287a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289e91906143fd565b905080156128df576101385461013a5461012d546128d2926001600160a01b03908116928116911661271030866000613134565b6128dc908361442c565b91505b61013b546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294d91906143fd565b9050801561298e576101385461013b5461012d54612981926001600160a01b039081169281169116610bb830866000613134565b61298b908461442c565b92505b8215612a0c5761012d5460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906129c79088908790600401614342565b6020604051808303816000875af11580156129e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a0a919061435b565b505b50909392505050565b610136546101325460405163b203bb9960e01b81526001600160a01b0391821660048201523060248201526000928392169063b203bb9990604401602060405180830381865afa158015612a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9191906143fd565b9050612a9e8160016135d1565b61012d546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612ae7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b0b91906143fd565b949350505050565b610136546101325460405163b203bb9960e01b81526001600160a01b0391821660048201523060248201526000928392169063b203bb9990604401602060405180830381865afa158015612b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b8f91906143fd565b90506000612b9d6001611a93565b905060008183612baf8860fe54613b43565b612bb99190614452565b612bc39190614469565b9050612bd08160006135d1565b61012d546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612c19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c3d91906143fd565b979650505050505050565b600080600061013260009054906101000a90046001600160a01b03166001600160a01b031663c3fb90d66040518163ffffffff1660e01b815260040160c060405180830381865afa158015612ca1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc591906144af565b60208101518151610136546101325460405163b203bb9960e01b81526001600160a01b0391821660048201523060248201529495506001600160801b039384169493909216926000929091169063b203bb9990604401602060405180830381865afa158015612d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5c91906143fd565b9050600061013260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612db4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd891906143fd565b905080612de58386614452565b612def9190614469565b965080612dfc8385614452565b612e069190614469565b955050505050509091565b610134546101325460405163abca0eab60e01b81526001600160a01b039182166004820152603260248201526000928392169063abca0eab90604401602060405180830381865afa158015612e6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e8e91906143fd565b9050670de0b6b3a76400006120e88483614452565b610134546101325460405163abca0eab60e01b81526001600160a01b039182166004820152603260248201526000928392169063abca0eab90604401602060405180830381865afa158015612efc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f2091906143fd565b9050670de0b6b3a764000083612f36838361443f565b6120e89190614452565b61013954600090670de0b6b3a764000090612f63906001600160a01b0316613b52565b612f6d9084614452565b6107a39190614469565b612f81828261125b565b61086357612f8e81613c67565b612f99836020613c79565b604051602001612faa9291906146f6565b60408051601f198184030181529082905262461bcd60e51b82526108509160040161476b565b6001600160a01b0381163b61303d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610850565b60008051602061493783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61307583613e15565b6000825111806130825750805b156107df576130918383613e55565b50505050565b600054610100900460ff166131025760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610850565b565b61013954600090819061311f906001600160a01b0316613b52565b9050806120e884670de0b6b3a7640000614452565b60405163095ea7b360e01b81526000906001600160a01b0388169063095ea7b390613165908b908790600401614342565b6020604051808303816000875af1158015613184573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a8919061435b565b506040805160e0810182526001600160a01b0389811682528881166020830190815262ffffff89811684860190815289841660608601908152608086018a815260a087018a8152600060c0890190815298516304e45aaf60e01b8152885188166004820152955187166024870152925190931660448501525184166064840152905160848301525160a48201529251811660c48401529091908a16906304e45aaf9060e4016020604051808303816000875af115801561326c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061329091906143fd565b9998505050505050505050565b6040805160018082528183019092526000916020808301908036833750506101325482519293506001600160a01b0316918391506000906132e0576132e061477e565b6001600160a01b03929092166020928302919091018201526040805160028082526060820183526000939192909183019080368337505061013a5482519293506001600160a01b03169183915060009061333c5761333c61477e565b6001600160a01b03928316602091820292909201015261013b5482519116908290600190811061336e5761336e61477e565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020015b606081526020019060019003908161339e57905050905081816000815181106133c9576133c961477e565b60209081029190910101526101375460405163073a7d6160e51b81526001600160a01b039091169063e74fac209061340a90869085906001906004016147d8565b600060405180830381600087803b15801561342457600080fd5b505af1158015613438573d6000803e3d6000fd5b50505050505050565b600061344d6001611a93565b90506000613459612c48565b61012f546040516370a0823160e01b81523060048201529193506001600160a01b031691506370a0823190602401602060405180830381865afa1580156134a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c891906143fd565b6134d2908261442c565b610130546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015613521573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061354591906143fd565b90508082111561359057600061355b828461443f565b9050606461013c548561356e9190614452565b6135789190614469565b61358182612e11565b11156130915761309181613f49565b600061359c838361443f565b9050606461013c54856135af9190614452565b6135b99190614469565b6135c282612ea3565b11156130915761309181613fcf565b61013654610132546040516310ee444960e01b81526001600160a01b03928316926310ee444992613609929116908690600401614342565b600060405180830381600087803b15801561362357600080fd5b505af1158015613637573d6000803e3d6000fd5b5050610133546101325460405163b7d75b8b60e01b81523060048201526001600160a01b0391821660248201526044810187905260006064820181905260848201529116925063b7d75b8b915060a40160408051808303816000875af11580156136a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136c99190614855565b505061012f546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015613715573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373991906143fd565b610130546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015613788573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137ac91906143fd565b905060008183106137bd57816137bf565b825b905080156138ae576137f3604080516080810190915280600081526000602082018190526060604083018190529091015290565b6040805160c08101825261012e546001600160a01b039081168083526000602084018190528385019190915260608301819052608083015260a082018490526101335461013054935163527df19960e01b815292939082169263527df199926138679230929116908890879060040161468b565b6020604051808303816000875af1158015613886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138aa91906143fd565b5050505b831561399c5761012f546040516370a0823160e01b8152306004820152613928916001600160a01b0316906370a0823190602401602060405180830381865afa1580156138ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392391906143fd565b613f49565b610130546040516370a0823160e01b815230600482015261399c916001600160a01b0316906370a0823190602401602060405180830381865afa158015613973573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061399791906143fd565b613fcf565b610131546040516370a0823160e01b815230600482018190526001600160a01b039092169163769f8e5d9183906370a0823190602401602060405180830381865afa1580156139ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a1391906143fd565b61012e5460405160e085901b6001600160e01b03191681526001600160a01b0393841660048201526024810192909252919091166044820152600060648201819052608482015260a4016020604051808303816000875af1158015613a7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aa091906143fd565b5061012e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015613aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b0f91906143fd565b6101385461012e5461012d54929350613438926001600160a01b039283169291821691166064308661219b611d5b82612f40565b60006127106120de838261442c565b6000806000806000856001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015613b98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bbc9190614893565b9450945050935093508369ffffffffffffffffffff168169ffffffffffffffffffff161015613c185760405162461bcd60e51b81526020600482015260086024820152674f6c64206461746160c01b6044820152606401610850565b60008211613c5d5760405162461bcd60e51b8152602060048201526012602482015271526f756e64206e6f7420636f6d706c65746560701b6044820152606401610850565b5090949350505050565b60606107a36001600160a01b03831660145b60606000613c88836002614452565b613c9390600261442c565b67ffffffffffffffff811115613cab57613cab6140f1565b6040519080825280601f01601f191660200182016040528015613cd5576020820181803683370190505b509050600360fc1b81600081518110613cf057613cf061477e565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613d1f57613d1f61477e565b60200101906001600160f81b031916908160001a9053506000613d43846002614452565b613d4e90600161442c565b90505b6001811115613dc6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613d8257613d8261477e565b1a60f81b828281518110613d9857613d9861477e565b60200101906001600160f81b031916908160001a90535060049490941c93613dbf816148e3565b9050613d51565b5083156120f25760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610850565b613e1e81612fd0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b613ebd5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610850565b600080846001600160a01b031684604051613ed891906148fa565b600060405180830381855af49150503d8060008114613f13576040519150601f19603f3d011682016040523d82523d6000602084013e613f18565b606091505b5091509150613f40828260405180606001604052806027815260200161495760279139614012565b95945050505050565b8015610943576101335461013254604051632032aecd60e01b81526001600160a01b0392831692632032aecd92613f8d923092909116908690600090600401614561565b60408051808303816000875af1158015613fab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107df9190614855565b801561094357610133546101325460405162d5f59560e61b81526001600160a01b039283169263357d654092613f8d923092909116908690600090600401614561565b606083156140215750816120f2565b6120f283838151156140365781518083602001fd5b8060405162461bcd60e51b8152600401610850919061476b565b60006020828403121561406257600080fd5b81356001600160e01b0319811681146120f257600080fd5b60006020828403121561408c57600080fd5b5035919050565b80356001600160a01b03811681146117cf57600080fd5b600080604083850312156140bd57600080fd5b823591506140cd60208401614093565b90509250929050565b6000602082840312156140e857600080fd5b6120f282614093565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715614130576141306140f1565b604052919050565b6000806040838503121561414b57600080fd5b61415483614093565b915060208084013567ffffffffffffffff8082111561417257600080fd5b818601915086601f83011261418657600080fd5b813581811115614198576141986140f1565b6141aa601f8201601f19168501614107565b915080825287848285010111156141c057600080fd5b80848401858401376000848284010152508093505050509250929050565b600061020082840312156141f157600080fd5b50919050565b6000806040838503121561420a57600080fd5b61421383614093565b946020939093013593505050565b60008060006060848603121561423657600080fd5b505081359360208301359350604090920135919050565b801515811461094357600080fd5b6000806000806080858703121561427157600080fd5b61427a85614093565b93506020850135925061428f60408601614093565b9150606085013561429f8161424d565b939692955090935050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6001600160a01b03929092168252602082015260400190565b60006020828403121561436d57600080fd5b81516120f28161424d565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252601f908201527f5265737472696374656420746f20504f5254464f4c494f5f4d414e4147455200604082015260600190565b60006020828403121561440f57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156107a3576107a3614416565b818103818111156107a3576107a3614416565b80820281158282048414176107a3576107a3614416565b60008261448657634e487b7160e01b600052601260045260246000fd5b500490565b8051600f81900b81146117cf57600080fd5b805161ffff811681146117cf57600080fd5b600060c082840312156144c157600080fd5b60405160c0810181811067ffffffffffffffff821117156144e4576144e46140f1565b6040526144f08361448b565b81526144fe6020840161448b565b602082015260408301516bffffffffffffffffffffffff8116811461452257600080fd5b60408201526145336060840161449d565b60608201526145446080840161449d565b608082015261455560a0840161449d565b60a08201529392505050565b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b60005b838110156145a557818101518382015260200161458d565b50506000910152565b600081518084526145c681602086016020860161458a565b601f01601f19169290920160200192915050565b600060018060a01b038083511684526020830151602085015280604084015116604085015280606084015116606085015280608084015116608085015260a083015160c060a086015280516004811061464357634e487b7160e01b600052602160045260246000fd5b60c0860152602081015190911660e085015260408101516080610100860152906146716101408601836145ae565b915060608101511515610120860152508091505092915050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906146be908301846145da565b9695505050505050565b6000806000606084860312156146dd57600080fd5b8351925060208401519150604084015190509250925092565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161472e81601785016020880161458a565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161475f81602884016020880161458a565b01602801949350505050565b6020815260006120f260208301846145ae565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156147cd5781516001600160a01b0316875295820195908201906001016147a8565b509495945050505050565b6060815260006147eb6060830186614794565b6020838203818501528186518084528284019150828160051b85010183890160005b8381101561483b57601f19878403018552614829838351614794565b9486019492509085019060010161480d565b505080955050505050508215156040830152949350505050565b6000806040838503121561486857600080fd5b505080516020909101519092909150565b805169ffffffffffffffffffff811681146117cf57600080fd5b600080600080600060a086880312156148ab57600080fd5b6148b486614879565b94506020860151935060408601519250606086015191506148d760808701614879565b90509295509295909350565b6000816148f2576148f2614416565b506000190190565b6000825161490c81846020870161458a565b919091019291505056fe90c2aa7471c04182221f68e80c07ab1e5946e4c63f8693e14ca40385d529f051360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220987412cf73d3717ccea93edd77962657bea4911823e5ca839026fa82c9012c9464736f6c63430008110033