0 txs
0 calls
constructor
constructor((address platformAddress, address vaultAddress) _stratConfig)
functions
assetToPToken
viewfunction assetToPToken(address) view returns (address)
checkBalance
viewfunction checkBalance(address _asset) view returns (uint256 balance)
getRewardTokenAddresses
viewfunction getRewardTokenAddresses() view returns (address[])
governor
viewfunction governor() view returns (address)
harvesterAddress
viewfunction harvesterAddress() view returns (address)
isGovernor
viewfunction isGovernor() view returns (bool)
maxRedeemTicket
viewfunction maxRedeemTicket() view returns (uint256)
outstandingRedeems
viewfunction outstandingRedeems() view returns (uint256)
platformAddress
viewfunction platformAddress() view returns (address)
rewardTokenAddresses
viewfunction rewardTokenAddresses(uint256) view returns (address)
supportsAsset
purefunction supportsAsset(address _asset) pure returns (bool)
vaultAddress
viewfunction vaultAddress() view returns (address)
claimGovernance
nonpayablefunction claimGovernance()
collectRewardTokens
nonpayablefunction collectRewardTokens()
deposit
nonpayablefunction deposit(address, uint256)
depositAll
nonpayablefunction depositAll()
initialize
nonpayablefunction initialize(address[] _rewardTokenAddresses, address[] _assets, address[] _pTokens)
onERC721Received
nonpayablefunction onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns (bytes4)
redeemTickets
nonpayablefunction redeemTickets(uint256[] _nftIds, uint256 expectedAmount)
removePToken
nonpayablefunction removePToken(uint256 _assetIndex)
safeApproveAllTokens
nonpayablefunction safeApproveAllTokens()
setHarvesterAddress
nonpayablefunction setHarvesterAddress(address _harvesterAddress)
setPTokenAddress
nonpayablefunction setPTokenAddress(address _asset, address _pToken)
setRewardTokenAddresses
nonpayablefunction setRewardTokenAddresses(address[] _rewardTokenAddresses)
transferGovernance
nonpayablefunction transferGovernance(address _newGovernor)
transferToken
nonpayablefunction transferToken(address _asset, uint256 _amount)
withdraw
nonpayablefunction withdraw(address _recipient, address _asset, uint256 _amount)
withdrawAll
nonpayablefunction withdrawAll()
events
Deposit
event Deposit(address indexed _asset, address _pToken, uint256 _amount)
GovernorshipTransferred
event GovernorshipTransferred(address indexed previousGovernor, address indexed newGovernor)
HarvesterAddressesUpdated
event HarvesterAddressesUpdated(address _oldHarvesterAddress, address _newHarvesterAddress)
PendingGovernorshipTransfer
event PendingGovernorshipTransfer(address indexed previousGovernor, address indexed newGovernor)
PTokenAdded
event PTokenAdded(address indexed _asset, address _pToken)
PTokenRemoved
event PTokenRemoved(address indexed _asset, address _pToken)
RedeemNFTBurned
event RedeemNFTBurned(uint256 _nftId)
RedeemNFTMinted
event RedeemNFTMinted(uint256 _nftId, uint256 _amount)
RewardTokenAddressesUpdated
event RewardTokenAddressesUpdated(address[] _oldAddresses, address[] _newAddresses)
RewardTokenCollected
event RewardTokenCollected(address recipient, address rewardToken, uint256 amount)
Withdrawal
event Withdrawal(address indexed _asset, address _pToken, uint256 _amount)
errors
No errors.
creation bytecode
0x60c06040523480156200001157600080fd5b5060405162002f7338038062002f738339810160408190526200003491620000da565b806200004d3360008051602062002f5383398151915255565b60008051602062002f53833981519152546040516001600160a01b03909116906000907fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a908290a380516001600160601b0319606091821b8116608052602090920151901b1660a0525062000148565b80516001600160a01b0381168114620000d557600080fd5b919050565b600060408284031215620000ed57600080fd5b604080519081016001600160401b03811182821017156200011e57634e487b7160e01b600052604160045260246000fd5b6040526200012c83620000bd565b81526200013c60208401620000bd565b60208201529392505050565b60805160601c60a05160601c612da0620001b3600039600081816102c8015281816107a201528181610a9f01528181610b9f01528181610e7801528181611080015281816112120152818161183d015281816119030152611d11015260006105360152612da06000f3fe6080604052600436106101bb5760003560e01c80637b2d9b2c116100ec578063c2e1e3f41161008a578063d9caed1211610064578063d9caed1214610504578063dbe55e5614610524578063de5f626814610558578063f6ca71b01461056d57600080fd5b8063c2e1e3f4146104af578063c7af3352146104cf578063d38bfff4146104e457600080fd5b806396d538bb116100c657806396d538bb1461042d578063999de1bf1461044d578063aa388af61461046a578063ad1728cb1461049a57600080fd5b80637b2d9b2c146103d8578063853828b6146103f85780639136616a1461040d57600080fd5b806346552ccb116101595780635d36b190116101335780635d36b1901461035f5780635f5152261461037457806367c7066c146103a2578063761f8353146103c257600080fd5b806346552ccb1461030a57806347e7ef241461032a5780635a063f631461034a57600080fd5b80631072cbea116101955780631072cbea14610251578063150b7a0214610271578063430bf08a146102b6578063435356d1146102ea57600080fd5b80630c340a24146101c75780630ed57b3a146101f95780630fc3b4c41461021b57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dc61058f565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561020557600080fd5b506102196102143660046126db565b6105ac565b005b34801561022757600080fd5b506101dc6102363660046126a1565b6035602052600090815260409020546001600160a01b031681565b34801561025d57600080fd5b5061021961026c3660046127f4565b6105e7565b34801561027d57600080fd5b5061029d61028c366004612755565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020016101f0565b3480156102c257600080fd5b506101dc7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102f657600080fd5b50610219610305366004612895565b61067d565b34801561031657600080fd5b5061021961032536600461291d565b61076a565b34801561033657600080fd5b506102196103453660046127f4565b610b94565b34801561035657600080fd5b50610219610c5a565b34801561036b57600080fd5b50610219610cf9565b34801561038057600080fd5b5061039461038f3660046126a1565b610d9f565b6040519081526020016101f0565b3480156103ae57600080fd5b506039546101dc906001600160a01b031681565b3480156103ce57600080fd5b50610394609d5481565b3480156103e457600080fd5b506101dc6103f33660046129dd565b610e43565b34801561040457600080fd5b50610219610e6d565b34801561041957600080fd5b506102196104283660046129dd565b6112f2565b34801561043957600080fd5b50610219610448366004612820565b6114bd565b34801561045957600080fd5b50610394680d8d726b7177a8000081565b34801561047657600080fd5b5061048a6104853660046126a1565b6115dd565b60405190151581526020016101f0565b3480156104a657600080fd5b5061021961162c565b3480156104bb57600080fd5b506102196104ca3660046126a1565b6116d0565b3480156104db57600080fd5b5061048a61175d565b3480156104f057600080fd5b506102196104ff3660046126a1565b61178e565b34801561051057600080fd5b5061021961051f366004612714565b611832565b34801561053057600080fd5b506101dc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561056457600080fd5b506102196118f8565b34801561057957600080fd5b50610582611e05565b6040516101f09190612a44565b60006105a7600080516020612d4b8339815191525490565b905090565b6105b461175d565b6105d95760405162461bcd60e51b81526004016105d090612b93565b60405180910390fd5b6105e38282611e67565b5050565b6105ef61175d565b61060b5760405162461bcd60e51b81526004016105d090612b93565b610614826115dd565b156106615760405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f74207472616e7366657220737570706f727465642061737365740060448201526064016105d0565b6105e361066c61058f565b6001600160a01b0384169083611fcc565b61068561175d565b6106a15760405162461bcd60e51b81526004016105d090612b93565b600054610100900460ff16806106ba575060005460ff16155b61071d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105d0565b600054610100900460ff1615801561073f576000805461ffff19166101011790555b61074a848484612027565b61075261162c565b8015610764576000805461ff00191690555b50505050565b600080516020612d2b8339815191528054600281141561079c5760405162461bcd60e51b81526004016105d090612bca565b600282557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663570d8e1d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107f957600080fd5b505afa15801561080d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083191906126be565b6001600160a01b0316336001600160a01b0316146108915760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520537472617465676973740000000060448201526064016105d0565b303160005b85518110156109785760008682815181106108b3576108b3612ce9565b6020908102919091010151604051630a5334e560e01b8152600481018290523060248201529091507382ba8da44cd5261762e629dd5c605b17715727bd90630a5334e590604401600060405180830381600087803b15801561091457600080fd5b505af1158015610928573d6000803e3d6000fd5b505050507f0db1b3125d483a6145923495d099e989e2d7cf55afc768528736b83582694cfb8160405161095d91815260200190565b60405180910390a1508061097081612ca2565b915050610896565b50303160006109878383612c5f565b90508086146109ef5760405162461bcd60e51b815260206004820152602e60248201527f52656465656d656420616d6f756e7420646f6573206e6f74206d61746368206560448201526d1e1c1958dd195908185b5bdd5b9d60921b60648201526084016105d0565b80609d6000828254610a019190612c5f565b9250508190555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610a5757600080fd5b505af1158015610a6b573d6000803e3d6000fd5b505060405163a9059cbb60e01b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2935063a9059cbb9250610ac991507f0000000000000000000000000000000000000000000000000000000000000000908690600401612a2b565b602060405180830381600087803b158015610ae357600080fd5b505af1158015610af7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1b91906129bb565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b63987382ba8da44cd5261762e629dd5c605b17715727bd84604051610b7f929190612a2b565b60405180910390a25050506001825550505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bdc5760405162461bcd60e51b81526004016105d090612b5c565b600080516020612d2b83398151915280546002811415610c0e5760405162461bcd60e51b81526004016105d090612bca565b6002825560405162461bcd60e51b815260206004820152601860248201527f757365206465706f736974416c6c282920696e7374656164000000000000000060448201526064016105d0565b6039546001600160a01b03163314610cb45760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f742074686520486172766573746572000000000060448201526064016105d0565b600080516020612d2b83398151915280546002811415610ce65760405162461bcd60e51b81526004016105d090612bca565b60028255610cf26120e2565b5060019055565b7f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db546001600160a01b0316336001600160a01b031614610d945760405162461bcd60e51b815260206004820152603060248201527f4f6e6c79207468652070656e64696e6720476f7665726e6f722063616e20636f60448201526f6d706c6574652074686520636c61696d60801b60648201526084016105d0565b610d9d3361220e565b565b60006001600160a01b03821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21415610dce575050609d5490565b6001600160a01b038216735e8422345238f34275888049021821e8e08caa1f1415610dfb57506000919050565b60405162461bcd60e51b815260206004820152601860248201527f556e65787065637465642061737365742061646472657373000000000000000060448201526064016105d0565b603a8181548110610e5357600080fd5b6000918252602090912001546001600160a01b0316905081565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610ebc5750610ea761058f565b6001600160a01b0316336001600160a01b0316145b610f145760405162461bcd60e51b815260206004820152602360248201527f43616c6c6572206973206e6f7420746865205661756c74206f7220476f7665726044820152623737b960e91b60648201526084016105d0565b600080516020612d2b83398151915280546002811415610f465760405162461bcd60e51b81526004016105d090612bca565b60028255303115610fc45773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0306001600160a01b0316316040518263ffffffff1660e01b81526004016000604051808303818588803b158015610faa57600080fd5b505af1158015610fbe573d6000803e3d6000fd5b50505050505b6040516370a0823160e01b815230600482015260009073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906370a082319060240160206040518083038186803b15801561101157600080fd5b505afa158015611025573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104991906129f6565b905080156111565760405163a9059cbb60e01b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29063a9059cbb906110aa907f0000000000000000000000000000000000000000000000000000000000000000908590600401612a2b565b602060405180830381600087803b1580156110c457600080fd5b505af11580156110d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fc91906129bb565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b639860008360405161114d929190612a2b565b60405180910390a25b6040516370a0823160e01b8152306004820152600090735e8422345238f34275888049021821e8e08caa1f906370a082319060240160206040518083038186803b1580156111a357600080fd5b505afa1580156111b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111db91906129f6565b905080156112e85760405163a9059cbb60e01b8152735e8422345238f34275888049021821e8e08caa1f9063a9059cbb9061123c907f0000000000000000000000000000000000000000000000000000000000000000908590600401612a2b565b602060405180830381600087803b15801561125657600080fd5b505af115801561126a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128e91906129bb565b50735e8422345238f34275888049021821e8e08caa1f6001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b63986000836040516112df929190612a2b565b60405180910390a25b5050600182555050565b6112fa61175d565b6113165760405162461bcd60e51b81526004016105d090612b93565b60365481106113575760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b60448201526064016105d0565b60006036828154811061136c5761136c612ce9565b60009182526020808320909101546001600160a01b039081168084526035909252604090922054603654919350909116906113a990600190612c5f565b83101561142b57603680546113c090600190612c5f565b815481106113d0576113d0612ce9565b600091825260209091200154603680546001600160a01b0390921691859081106113fc576113fc612ce9565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b603680548061143c5761143c612cd3565b60008281526020808220600019908401810180546001600160a01b031990811690915593019093556001600160a01b038581168083526035855260409283902080549094169093559051908416815290917f16b7600acff27e39a8a96056b3d533045298de927507f5c1d97e4accde60488c910160405180910390a2505050565b6114c561175d565b6114e15760405162461bcd60e51b81526004016105d090612b93565b8060005b8181101561159457600084848381811061150157611501612ce9565b905060200201602081019061151691906126a1565b6001600160a01b031614156115845760405162461bcd60e51b815260206004820152602e60248201527f43616e206e6f742073657420616e20656d70747920616464726573732061732060448201526d30903932bbb0b932103a37b5b2b760911b60648201526084016105d0565b61158d81612ca2565b90506114e5565b507f04c0b9649497d316554306e53678d5f5f5dbc3a06f97dec13ff4cfe98b986bbc603a84846040516115c993929190612a91565b60405180910390a1610764603a8484612559565b60006001600160a01b038216735e8422345238f34275888049021821e8e08caa1f148061162657506001600160a01b03821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2145b92915050565b60405163095ea7b360e01b8152735e8422345238f34275888049021821e8e08caa1f9063095ea7b39061167b907382ba8da44cd5261762e629dd5c605b17715727bd9060001990600401612a2b565b602060405180830381600087803b15801561169557600080fd5b505af11580156116a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cd91906129bb565b50565b6116d861175d565b6116f45760405162461bcd60e51b81526004016105d090612b93565b603954604080516001600160a01b03928316815291831660208301527fe48386b84419f4d36e0f96c10cc3510b6fb1a33795620c5098b22472bbe90796910160405180910390a1603980546001600160a01b0319166001600160a01b0392909216919091179055565b6000611775600080516020612d4b8339815191525490565b6001600160a01b0316336001600160a01b031614905090565b61179661175d565b6117b25760405162461bcd60e51b81526004016105d090612b93565b6117da817f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db55565b806001600160a01b03166117fa600080516020612d4b8339815191525490565b6001600160a01b03167fa39cc5eb22d0f34d8beaefee8a3f17cc229c1a1d1ef87a5ad47313487b1c4f0d60405160405180910390a350565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461187a5760405162461bcd60e51b81526004016105d090612b5c565b600080516020612d2b833981519152805460028114156118ac5760405162461bcd60e51b81526004016105d090612bca565b6002825560405162461bcd60e51b815260206004820152601b60248201527f7573652072656465656d5469636b657473282920696e7374656164000000000060448201526064016105d0565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146119405760405162461bcd60e51b81526004016105d090612b5c565b600080516020612d2b833981519152805460028114156119725760405162461bcd60e51b81526004016105d090612bca565b600282556040516370a0823160e01b8152306004820152600090735e8422345238f34275888049021821e8e08caa1f906370a082319060240160206040518083038186803b1580156119c357600080fd5b505afa1580156119d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fb91906129f6565b905060008111611a435760405162461bcd60e51b81526020600482015260136024820152724e6f2066727845544820746f2072656465656d60681b60448201526064016105d0565b805b8015611b5e576000680d8d726b7177a800008211611a635781611a6e565b680d8d726b7177a800005b6040516327a3cc5760e11b81523060048201526effffffffffffffffffffffffffffff821660248201529091506000907382ba8da44cd5261762e629dd5c605b17715727bd90634f4798ae90604401602060405180830381600087803b158015611ad757600080fd5b505af1158015611aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0f91906129f6565b9050611b1b8284612c5f565b60408051838152602081018590529194507f536614cc61a8a2c89cee49f31b1bd84fb4f55b2aea4c1b98a97ea9f77bc860f6910160405180910390a15050611a45565b6040516370a0823160e01b8152306004820152735e8422345238f34275888049021821e8e08caa1f906370a082319060240160206040518083038186803b158015611ba857600080fd5b505afa158015611bbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be091906129f6565b15611c3e5760405162461bcd60e51b815260206004820152602860248201527f4e6f7420616c6c20467261784574682073656e7420746f20726564656d7074696044820152676f6e20717565756560c01b60648201526084016105d0565b81609d6000828254611c509190612c47565b90915550506040516370a0823160e01b815230600482015260009073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906370a082319060240160206040518083038186803b158015611ca257600080fd5b505afa158015611cb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cda91906129f6565b90508015611d8f5760405163a9059cbb60e01b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29063a9059cbb90611d3b907f0000000000000000000000000000000000000000000000000000000000000000908590600401612a2b565b602060405180830381600087803b158015611d5557600080fd5b505af1158015611d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8d91906129bb565b505b735e8422345238f34275888049021821e8e08caa1f6001600160a01b03167f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f627382ba8da44cd5261762e629dd5c605b17715727bd85604051611df2929190612a2b565b60405180910390a2505050600182555050565b6060603a805480602002602001604051908101604052809291908181526020018280548015611e5d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611e3f575b5050505050905090565b6001600160a01b038281166000908152603560205260409020541615611ec45760405162461bcd60e51b81526020600482015260126024820152711c151bdad95b88185b1c9958591e481cd95d60721b60448201526064016105d0565b6001600160a01b03821615801590611ee457506001600160a01b03811615155b611f245760405162461bcd60e51b8152602060048201526011602482015270496e76616c69642061646472657373657360781b60448201526064016105d0565b6001600160a01b03828116600081815260356020908152604080832080549587166001600160a01b031996871681179091556036805460018101825594527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b890930180549095168417909455925190815290917fef6485b84315f9b1483beffa32aae9a0596890395e3d7521f1c5fbb51790e765910160405180910390a26105e382826122cf565b6120228363a9059cbb60e01b8484604051602401611feb929190612a2b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261230d565b505050565b825161203a90603a9060208601906125bc565b508151815181146120845760405162461bcd60e51b8152602060048201526014602482015273496e76616c696420696e7075742061727261797360601b60448201526064016105d0565b60005b818110156120db576120cb8482815181106120a4576120a4612ce9565b60200260200101518483815181106120be576120be612ce9565b6020026020010151611e67565b6120d481612ca2565b9050612087565b5050505050565b603a5460005b818110156105e3576000603a828154811061210557612105612ce9565b60009182526020822001546040516370a0823160e01b81523060048201526001600160a01b03909116925082906370a082319060240160206040518083038186803b15801561215357600080fd5b505afa158015612167573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218b91906129f6565b905080156121fb57603954604080516001600160a01b039283168152918416602083015281018290527ff6c07a063ed4e63808eb8da7112d46dbcd38de2b40a73dbcc9353c5a94c723539060600160405180910390a16039546121fb906001600160a01b03848116911683611fcc565b50508061220790612ca2565b90506120e8565b6001600160a01b0381166122645760405162461bcd60e51b815260206004820152601a60248201527f4e657720476f7665726e6f72206973206164647265737328302900000000000060448201526064016105d0565b806001600160a01b0316612284600080516020612d4b8339815191525490565b6001600160a01b03167fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a60405160405180910390a36116cd81600080516020612d4b83398151915255565b60405162461bcd60e51b8152602060048201526013602482015272139bc81c151bdad95b9cc8185c99481d5cd959606a1b60448201526064016105d0565b6000612362826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166123df9092919063ffffffff16565b805190915015612022578080602001905181019061238091906129bb565b6120225760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105d0565b60606123ee84846000856123f8565b90505b9392505050565b6060824710156124595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105d0565b843b6124a75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105d0565b600080866001600160a01b031685876040516124c39190612a0f565b60006040518083038185875af1925050503d8060008114612500576040519150601f19603f3d011682016040523d82523d6000602084013e612505565b606091505b5091509150612515828286612520565b979650505050505050565b6060831561252f5750816123f1565b82511561253f5782518084602001fd5b8160405162461bcd60e51b81526004016105d09190612b29565b8280548282559060005260206000209081019282156125ac579160200282015b828111156125ac5781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190612579565b506125b8929150612611565b5090565b8280548282559060005260206000209081019282156125ac579160200282015b828111156125ac57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906125dc565b5b808211156125b85760008155600101612612565b600082601f83011261263757600080fd5b8135602061264c61264783612c23565b612bf2565b80838252828201915082860187848660051b890101111561266c57600080fd5b60005b8581101561269457813561268281612d15565b8452928401929084019060010161266f565b5090979650505050505050565b6000602082840312156126b357600080fd5b81356123f181612d15565b6000602082840312156126d057600080fd5b81516123f181612d15565b600080604083850312156126ee57600080fd5b82356126f981612d15565b9150602083013561270981612d15565b809150509250929050565b60008060006060848603121561272957600080fd5b833561273481612d15565b9250602084013561274481612d15565b929592945050506040919091013590565b60008060008060006080868803121561276d57600080fd5b853561277881612d15565b9450602086013561278881612d15565b935060408601359250606086013567ffffffffffffffff808211156127ac57600080fd5b818801915088601f8301126127c057600080fd5b8135818111156127cf57600080fd5b8960208285010111156127e157600080fd5b9699959850939650602001949392505050565b6000806040838503121561280757600080fd5b823561281281612d15565b946020939093013593505050565b6000806020838503121561283357600080fd5b823567ffffffffffffffff8082111561284b57600080fd5b818501915085601f83011261285f57600080fd5b81358181111561286e57600080fd5b8660208260051b850101111561288357600080fd5b60209290920196919550909350505050565b6000806000606084860312156128aa57600080fd5b833567ffffffffffffffff808211156128c257600080fd5b6128ce87838801612626565b945060208601359150808211156128e457600080fd5b6128f087838801612626565b9350604086013591508082111561290657600080fd5b5061291386828701612626565b9150509250925092565b6000806040838503121561293057600080fd5b823567ffffffffffffffff81111561294757600080fd5b8301601f8101851361295857600080fd5b8035602061296861264783612c23565b80838252828201915082850189848660051b880101111561298857600080fd5b600095505b848610156129ab57803583526001959095019491830191830161298d565b5098969091013596505050505050565b6000602082840312156129cd57600080fd5b815180151581146123f157600080fd5b6000602082840312156129ef57600080fd5b5035919050565b600060208284031215612a0857600080fd5b5051919050565b60008251612a21818460208701612c76565b9190910192915050565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015612a855783516001600160a01b031683529284019291840191600101612a60565b50909695505050505050565b6000604082016040835280865480835260608501915087600052602092508260002060005b82811015612adb5781546001600160a01b031684529284019260019182019101612ab6565b505050838103828501528481528590820160005b86811015612b1d578235612b0281612d15565b6001600160a01b031682529183019190830190600101612aef565b50979650505050505050565b6020815260008251806020840152612b48816040850160208701612c76565b601f01601f19169190910160400192915050565b60208082526017908201527f43616c6c6572206973206e6f7420746865205661756c74000000000000000000604082015260600190565b6020808252601a908201527f43616c6c6572206973206e6f742074686520476f7665726e6f72000000000000604082015260600190565b6020808252600e908201526d1499595b9d1c985b9d0818d85b1b60921b604082015260600190565b604051601f8201601f1916810167ffffffffffffffff81118282101715612c1b57612c1b612cff565b604052919050565b600067ffffffffffffffff821115612c3d57612c3d612cff565b5060051b60200190565b60008219821115612c5a57612c5a612cbd565b500190565b600082821015612c7157612c71612cbd565b500390565b60005b83811015612c91578181015183820152602001612c79565b838111156107645750506000910152565b6000600019821415612cb657612cb6612cbd565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146116cd57600080fdfe53bf423e48ed90e97d02ab0ebab13b2a235a6bfbe9c321847d5c175333ac45357bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4aa26469706673582212204cd0ad8384c2df2c2303160425d4e2ed3cba0c3f246affd93ea1e597f13ed10164736f6c634300080700337bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039254033945aa2e4809cc2977e7087bee48bd7ab