0 txs
1 call
constructor
constructor(address _undyHq, address _owner, uint256 _groupId, uint256 _minTimeLock, uint256 _maxTimeLock)
functions
currentNonce
viewfunction currentNonce(address arg0) view returns (uint256)
getNonce
viewfunction getNonce(address _userWallet) view returns (uint256)
groupId
viewfunction groupId() view returns (uint256)
hasPendingOwnerChange
viewfunction hasPendingOwnerChange() view returns (bool)
MAX_OWNERSHIP_TIMELOCK
viewfunction MAX_OWNERSHIP_TIMELOCK() view returns (uint256)
MIN_OWNERSHIP_TIMELOCK
viewfunction MIN_OWNERSHIP_TIMELOCK() view returns (uint256)
owner
viewfunction owner() view returns (address)
ownershipTimeLock
viewfunction ownershipTimeLock() view returns (uint256)
pendingOwner
viewfunction pendingOwner() view returns (tuple)
addCollateral
nonpayablefunction addCollateral(address _userWallet, uint256 _legoId, address _asset, uint256 _amount, bytes32 _extraData, tuple _sig) returns (uint256, uint256)
addCollateral
nonpayablefunction addCollateral(address _userWallet, uint256 _legoId, address _asset, uint256 _amount, bytes32 _extraData) returns (uint256, uint256)
addCollateral
nonpayablefunction addCollateral(address _userWallet, uint256 _legoId, address _asset, uint256 _amount) returns (uint256, uint256)
addCollateral
nonpayablefunction addCollateral(address _userWallet, uint256 _legoId, address _asset) returns (uint256, uint256)
addLiquidity
nonpayablefunction addLiquidity(address _userWallet, uint256 _legoId, address _pool, address _tokenA, address _tokenB, uint256 _amountA, uint256 _amountB, uint256 _minAmountA, uint256 _minAmountB, uint256 _minLpAmount, bytes32 _extraData, tuple _sig) returns (uint256, uint256, uint256, uint256)
addLiquidity
nonpayablefunction addLiquidity(address _userWallet, uint256 _legoId, address _pool, address _tokenA, address _tokenB, uint256 _amountA, uint256 _amountB, uint256 _minAmountA, uint256 _minAmountB, uint256 _minLpAmount, bytes32 _extraData) returns (uint256, uint256, uint256, uint256)
addLiquidity
nonpayablefunction addLiquidity(address _userWallet, uint256 _legoId, address _pool, address _tokenA, address _tokenB, uint256 _amountA, uint256 _amountB, uint256 _minAmountA, uint256 _minAmountB, uint256 _minLpAmount) returns (uint256, uint256, uint256, uint256)
addLiquidity
nonpayablefunction addLiquidity(address _userWallet, uint256 _legoId, address _pool, address _tokenA, address _tokenB, uint256 _amountA, uint256 _amountB, uint256 _minAmountA, uint256 _minAmountB) returns (uint256, uint256, uint256, uint256)
addLiquidity
nonpayablefunction addLiquidity(address _userWallet, uint256 _legoId, address _pool, address _tokenA, address _tokenB, uint256 _amountA, uint256 _amountB, uint256 _minAmountA) returns (uint256, uint256, uint256, uint256)
addLiquidity
nonpayablefunction addLiquidity(address _userWallet, uint256 _legoId, address _pool, address _tokenA, address _tokenB, uint256 _amountA, uint256 _amountB) returns (uint256, uint256, uint256, uint256)
addLiquidity
nonpayablefunction addLiquidity(address _userWallet, uint256 _legoId, address _pool, address _tokenA, address _tokenB, uint256 _amountA) returns (uint256, uint256, uint256, uint256)
addLiquidity
nonpayablefunction addLiquidity(address _userWallet, uint256 _legoId, address _pool, address _tokenA, address _tokenB) returns (uint256, uint256, uint256, uint256)
addLiquidityConcentrated
nonpayablefunction addLiquidityConcentrated(address _userWallet, uint256 _legoId, address _nftAddr, uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, uint256 _amountA, uint256 _amountB, int24 _tickLower, int24 _tickUpper, uint256 _minAmountA, uint256 _minAmountB, bytes32 _extraData, tuple _sig) returns (uint256, uint256, uint256, uint256, uint256)
addLiquidityConcentrated
nonpayablefunction addLiquidityConcentrated(address _userWallet, uint256 _legoId, address _nftAddr, uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, uint256 _amountA, uint256 _amountB, int24 _tickLower, int24 _tickUpper, uint256 _minAmountA, uint256 _minAmountB, bytes32 _extraData) returns (uint256, uint256, uint256, uint256, uint256)
addLiquidityConcentrated
nonpayablefunction addLiquidityConcentrated(address _userWallet, uint256 _legoId, address _nftAddr, uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, uint256 _amountA, uint256 _amountB, int24 _tickLower, int24 _tickUpper, uint256 _minAmountA, uint256 _minAmountB) returns (uint256, uint256, uint256, uint256, uint256)
addLiquidityConcentrated
nonpayablefunction addLiquidityConcentrated(address _userWallet, uint256 _legoId, address _nftAddr, uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, uint256 _amountA, uint256 _amountB, int24 _tickLower, int24 _tickUpper, uint256 _minAmountA) returns (uint256, uint256, uint256, uint256, uint256)
addLiquidityConcentrated
nonpayablefunction addLiquidityConcentrated(address _userWallet, uint256 _legoId, address _nftAddr, uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, uint256 _amountA, uint256 _amountB, int24 _tickLower, int24 _tickUpper) returns (uint256, uint256, uint256, uint256, uint256)
addLiquidityConcentrated
nonpayablefunction addLiquidityConcentrated(address _userWallet, uint256 _legoId, address _nftAddr, uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, uint256 _amountA, uint256 _amountB, int24 _tickLower) returns (uint256, uint256, uint256, uint256, uint256)
addLiquidityConcentrated
nonpayablefunction addLiquidityConcentrated(address _userWallet, uint256 _legoId, address _nftAddr, uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, uint256 _amountA, uint256 _amountB) returns (uint256, uint256, uint256, uint256, uint256)
addLiquidityConcentrated
nonpayablefunction addLiquidityConcentrated(address _userWallet, uint256 _legoId, address _nftAddr, uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, uint256 _amountA) returns (uint256, uint256, uint256, uint256, uint256)
addLiquidityConcentrated
nonpayablefunction addLiquidityConcentrated(address _userWallet, uint256 _legoId, address _nftAddr, uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB) returns (uint256, uint256, uint256, uint256, uint256)
borrow
nonpayablefunction borrow(address _userWallet, uint256 _legoId, address _borrowAsset, uint256 _amount, bytes32 _extraData, tuple _sig) returns (uint256, uint256)
borrow
nonpayablefunction borrow(address _userWallet, uint256 _legoId, address _borrowAsset, uint256 _amount, bytes32 _extraData) returns (uint256, uint256)
borrow
nonpayablefunction borrow(address _userWallet, uint256 _legoId, address _borrowAsset, uint256 _amount) returns (uint256, uint256)
borrow
nonpayablefunction borrow(address _userWallet, uint256 _legoId, address _borrowAsset) returns (uint256, uint256)
cancelOwnershipChange
nonpayablefunction cancelOwnershipChange()
changeOwnership
nonpayablefunction changeOwnership(address _newOwner)
claimRewards
nonpayablefunction claimRewards(address _userWallet, uint256 _legoId, address _rewardToken, uint256 _rewardAmount, bytes32 _extraData, tuple _sig) returns (uint256, uint256)
claimRewards
nonpayablefunction claimRewards(address _userWallet, uint256 _legoId, address _rewardToken, uint256 _rewardAmount, bytes32 _extraData) returns (uint256, uint256)
claimRewards
nonpayablefunction claimRewards(address _userWallet, uint256 _legoId, address _rewardToken, uint256 _rewardAmount) returns (uint256, uint256)
claimRewards
nonpayablefunction claimRewards(address _userWallet, uint256 _legoId, address _rewardToken) returns (uint256, uint256)
claimRewards
nonpayablefunction claimRewards(address _userWallet, uint256 _legoId) returns (uint256, uint256)
confirmMintOrRedeemAsset
nonpayablefunction confirmMintOrRedeemAsset(address _userWallet, uint256 _legoId, address _tokenIn, address _tokenOut, bytes32 _extraData, tuple _sig) returns (uint256, uint256)
confirmMintOrRedeemAsset
nonpayablefunction confirmMintOrRedeemAsset(address _userWallet, uint256 _legoId, address _tokenIn, address _tokenOut, bytes32 _extraData) returns (uint256, uint256)
confirmMintOrRedeemAsset
nonpayablefunction confirmMintOrRedeemAsset(address _userWallet, uint256 _legoId, address _tokenIn, address _tokenOut) returns (uint256, uint256)
confirmOwnershipChange
nonpayablefunction confirmOwnershipChange()
convertEthToWeth
nonpayablefunction convertEthToWeth(address _userWallet, uint256 _amount, tuple _sig) returns (uint256, uint256)
convertEthToWeth
nonpayablefunction convertEthToWeth(address _userWallet, uint256 _amount) returns (uint256, uint256)
convertEthToWeth
nonpayablefunction convertEthToWeth(address _userWallet) returns (uint256, uint256)
convertWethToEth
nonpayablefunction convertWethToEth(address _userWallet, uint256 _amount, tuple _sig) returns (uint256, uint256)
convertWethToEth
nonpayablefunction convertWethToEth(address _userWallet, uint256 _amount) returns (uint256, uint256)
convertWethToEth
nonpayablefunction convertWethToEth(address _userWallet) returns (uint256, uint256)
depositForYield
nonpayablefunction depositForYield(address _userWallet, uint256 _legoId, address _asset, address _vaultAddr, uint256 _amount, bytes32 _extraData, tuple _sig) returns (uint256, address, uint256, uint256)
depositForYield
nonpayablefunction depositForYield(address _userWallet, uint256 _legoId, address _asset, address _vaultAddr, uint256 _amount, bytes32 _extraData) returns (uint256, address, uint256, uint256)
depositForYield
nonpayablefunction depositForYield(address _userWallet, uint256 _legoId, address _asset, address _vaultAddr, uint256 _amount) returns (uint256, address, uint256, uint256)
depositForYield
nonpayablefunction depositForYield(address _userWallet, uint256 _legoId, address _asset, address _vaultAddr) returns (uint256, address, uint256, uint256)
depositForYield
nonpayablefunction depositForYield(address _userWallet, uint256 _legoId, address _asset) returns (uint256, address, uint256, uint256)
incrementNonce
nonpayablefunction incrementNonce(address _userWallet)
mintOrRedeemAsset
nonpayablefunction mintOrRedeemAsset(address _userWallet, uint256 _legoId, address _tokenIn, address _tokenOut, uint256 _amountIn, uint256 _minAmountOut, bytes32 _extraData, tuple _sig) returns (uint256, uint256, bool, uint256)
mintOrRedeemAsset
nonpayablefunction mintOrRedeemAsset(address _userWallet, uint256 _legoId, address _tokenIn, address _tokenOut, uint256 _amountIn, uint256 _minAmountOut, bytes32 _extraData) returns (uint256, uint256, bool, uint256)
mintOrRedeemAsset
nonpayablefunction mintOrRedeemAsset(address _userWallet, uint256 _legoId, address _tokenIn, address _tokenOut, uint256 _amountIn, uint256 _minAmountOut) returns (uint256, uint256, bool, uint256)
mintOrRedeemAsset
nonpayablefunction mintOrRedeemAsset(address _userWallet, uint256 _legoId, address _tokenIn, address _tokenOut, uint256 _amountIn) returns (uint256, uint256, bool, uint256)
mintOrRedeemAsset
nonpayablefunction mintOrRedeemAsset(address _userWallet, uint256 _legoId, address _tokenIn, address _tokenOut) returns (uint256, uint256, bool, uint256)
performBatchActions
nonpayablefunction performBatchActions(address _userWallet, tuple[] _instructions, tuple _sig) returns (bool)
performBatchActions
nonpayablefunction performBatchActions(address _userWallet, tuple[] _instructions) returns (bool)
rebalanceYieldPosition
nonpayablefunction rebalanceYieldPosition(address _userWallet, uint256 _fromLegoId, address _fromVaultToken, uint256 _toLegoId, address _toVaultAddr, uint256 _fromVaultAmount, bytes32 _extraData, tuple _sig) returns (uint256, address, uint256, uint256)
rebalanceYieldPosition
nonpayablefunction rebalanceYieldPosition(address _userWallet, uint256 _fromLegoId, address _fromVaultToken, uint256 _toLegoId, address _toVaultAddr, uint256 _fromVaultAmount, bytes32 _extraData) returns (uint256, address, uint256, uint256)
rebalanceYieldPosition
nonpayablefunction rebalanceYieldPosition(address _userWallet, uint256 _fromLegoId, address _fromVaultToken, uint256 _toLegoId, address _toVaultAddr, uint256 _fromVaultAmount) returns (uint256, address, uint256, uint256)
rebalanceYieldPosition
nonpayablefunction rebalanceYieldPosition(address _userWallet, uint256 _fromLegoId, address _fromVaultToken, uint256 _toLegoId, address _toVaultAddr) returns (uint256, address, uint256, uint256)
rebalanceYieldPosition
nonpayablefunction rebalanceYieldPosition(address _userWallet, uint256 _fromLegoId, address _fromVaultToken, uint256 _toLegoId) returns (uint256, address, uint256, uint256)
removeCollateral
nonpayablefunction removeCollateral(address _userWallet, uint256 _legoId, address _asset, uint256 _amount, bytes32 _extraData, tuple _sig) returns (uint256, uint256)
removeCollateral
nonpayablefunction removeCollateral(address _userWallet, uint256 _legoId, address _asset, uint256 _amount, bytes32 _extraData) returns (uint256, uint256)
removeCollateral
nonpayablefunction removeCollateral(address _userWallet, uint256 _legoId, address _asset, uint256 _amount) returns (uint256, uint256)
removeCollateral
nonpayablefunction removeCollateral(address _userWallet, uint256 _legoId, address _asset) returns (uint256, uint256)
removeLiquidity
nonpayablefunction removeLiquidity(address _userWallet, uint256 _legoId, address _pool, address _tokenA, address _tokenB, address _lpToken, uint256 _lpAmount, uint256 _minAmountA, uint256 _minAmountB, bytes32 _extraData, tuple _sig) returns (uint256, uint256, uint256, uint256)
removeLiquidity
nonpayablefunction removeLiquidity(address _userWallet, uint256 _legoId, address _pool, address _tokenA, address _tokenB, address _lpToken, uint256 _lpAmount, uint256 _minAmountA, uint256 _minAmountB, bytes32 _extraData) returns (uint256, uint256, uint256, uint256)
removeLiquidity
nonpayablefunction removeLiquidity(address _userWallet, uint256 _legoId, address _pool, address _tokenA, address _tokenB, address _lpToken, uint256 _lpAmount, uint256 _minAmountA, uint256 _minAmountB) returns (uint256, uint256, uint256, uint256)
removeLiquidity
nonpayablefunction removeLiquidity(address _userWallet, uint256 _legoId, address _pool, address _tokenA, address _tokenB, address _lpToken, uint256 _lpAmount, uint256 _minAmountA) returns (uint256, uint256, uint256, uint256)
removeLiquidity
nonpayablefunction removeLiquidity(address _userWallet, uint256 _legoId, address _pool, address _tokenA, address _tokenB, address _lpToken, uint256 _lpAmount) returns (uint256, uint256, uint256, uint256)
removeLiquidity
nonpayablefunction removeLiquidity(address _userWallet, uint256 _legoId, address _pool, address _tokenA, address _tokenB, address _lpToken) returns (uint256, uint256, uint256, uint256)
removeLiquidityConcentrated
nonpayablefunction removeLiquidityConcentrated(address _userWallet, uint256 _legoId, address _nftAddr, uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, uint256 _liqToRemove, uint256 _minAmountA, uint256 _minAmountB, bytes32 _extraData, tuple _sig) returns (uint256, uint256, uint256, uint256)
removeLiquidityConcentrated
nonpayablefunction removeLiquidityConcentrated(address _userWallet, uint256 _legoId, address _nftAddr, uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, uint256 _liqToRemove, uint256 _minAmountA, uint256 _minAmountB, bytes32 _extraData) returns (uint256, uint256, uint256, uint256)
removeLiquidityConcentrated
nonpayablefunction removeLiquidityConcentrated(address _userWallet, uint256 _legoId, address _nftAddr, uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, uint256 _liqToRemove, uint256 _minAmountA, uint256 _minAmountB) returns (uint256, uint256, uint256, uint256)
removeLiquidityConcentrated
nonpayablefunction removeLiquidityConcentrated(address _userWallet, uint256 _legoId, address _nftAddr, uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, uint256 _liqToRemove, uint256 _minAmountA) returns (uint256, uint256, uint256, uint256)
removeLiquidityConcentrated
nonpayablefunction removeLiquidityConcentrated(address _userWallet, uint256 _legoId, address _nftAddr, uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB, uint256 _liqToRemove) returns (uint256, uint256, uint256, uint256)
removeLiquidityConcentrated
nonpayablefunction removeLiquidityConcentrated(address _userWallet, uint256 _legoId, address _nftAddr, uint256 _nftTokenId, address _pool, address _tokenA, address _tokenB) returns (uint256, uint256, uint256, uint256)
repayDebt
nonpayablefunction repayDebt(address _userWallet, uint256 _legoId, address _paymentAsset, uint256 _paymentAmount, bytes32 _extraData, tuple _sig) returns (uint256, uint256)
repayDebt
nonpayablefunction repayDebt(address _userWallet, uint256 _legoId, address _paymentAsset, uint256 _paymentAmount, bytes32 _extraData) returns (uint256, uint256)
repayDebt
nonpayablefunction repayDebt(address _userWallet, uint256 _legoId, address _paymentAsset, uint256 _paymentAmount) returns (uint256, uint256)
repayDebt
nonpayablefunction repayDebt(address _userWallet, uint256 _legoId, address _paymentAsset) returns (uint256, uint256)
setOwnershipTimeLock
nonpayablefunction setOwnershipTimeLock(uint256 _numBlocks)
swapTokens
nonpayablefunction swapTokens(address _userWallet, tuple[] _swapInstructions, tuple _sig) returns (address, uint256, address, uint256, uint256)
swapTokens
nonpayablefunction swapTokens(address _userWallet, tuple[] _swapInstructions) returns (address, uint256, address, uint256, uint256)
transferFunds
nonpayablefunction transferFunds(address _userWallet, address _recipient, address _asset, uint256 _amount, bool _isCheque, tuple _sig) returns (uint256, uint256)
transferFunds
nonpayablefunction transferFunds(address _userWallet, address _recipient, address _asset, uint256 _amount, bool _isCheque) returns (uint256, uint256)
transferFunds
nonpayablefunction transferFunds(address _userWallet, address _recipient, address _asset, uint256 _amount) returns (uint256, uint256)
transferFunds
nonpayablefunction transferFunds(address _userWallet, address _recipient, address _asset) returns (uint256, uint256)
transferFunds
nonpayablefunction transferFunds(address _userWallet, address _recipient) returns (uint256, uint256)
withdrawFromYield
nonpayablefunction withdrawFromYield(address _userWallet, uint256 _legoId, address _vaultToken, uint256 _amount, bytes32 _extraData, tuple _sig) returns (uint256, address, uint256, uint256)
withdrawFromYield
nonpayablefunction withdrawFromYield(address _userWallet, uint256 _legoId, address _vaultToken, uint256 _amount, bytes32 _extraData) returns (uint256, address, uint256, uint256)
withdrawFromYield
nonpayablefunction withdrawFromYield(address _userWallet, uint256 _legoId, address _vaultToken, uint256 _amount) returns (uint256, address, uint256, uint256)
withdrawFromYield
nonpayablefunction withdrawFromYield(address _userWallet, uint256 _legoId, address _vaultToken) returns (uint256, address, uint256, uint256)
events
NonceIncremented
event NonceIncremented(address userWallet, uint256 oldNonce, uint256 newNonce)
OwnershipChangeCancelled
event OwnershipChangeCancelled(address indexed cancelledOwner, address indexed cancelledBy, uint256 initiatedBlock, uint256 confirmBlock)
OwnershipChangeConfirmed
event OwnershipChangeConfirmed(address indexed prevOwner, address indexed newOwner, uint256 initiatedBlock, uint256 confirmBlock)
OwnershipChangeInitiated
event OwnershipChangeInitiated(address indexed prevOwner, address indexed newOwner, uint256 confirmBlock)
OwnershipTimeLockSet
event OwnershipTimeLockSet(uint256 numBlocks)
errors
No errors.
creation bytecode
0x6141df3d81600a3d39f3fe71006141095150346100bd5760206141dc5f395f518060a01c6100bd5760e05260206141fc5f395f518060a01c6100bd5761010052604060e060405e604061423c608039610049610067565b602061421c5f395f516005556140c96100c161000039614129610000f35b6040511561007957606051151561007b565b5f5b156100bd576040516140c9526060515f55608051156100a05760a051608051106100a2565b5f5b156100bd576080516140e95260a05161410952608051600155565b5f80fd5f3560e01c60056005600d830602613d6001601b395f5160088160ff16838360181c0260181c0660031b8260081c61ffff1601601839505f51818160201c14600336111615612c5a578061fffe16361034826001160217613d5c578060101c61ffff16565b6004358060a01c613d5c576040525f546060526060513318613d5c57604051801561009457606051811415610096565b5f5b905015613d5c5743600154808201828110613d5c5790509050608052604051600255436003556080516004556040516060517fe778cf9d8dda039d296584da1070e66de735b9bd217586ab4f7efdbd0dd7d01260805160a052602060a0a3005b60025460405260035460605260045460805260405115613d5c576080511561012357608051431015610125565b5f5b15613d5c576040513318613d5c575f5460a0526040515f555f6002555f6003555f60045560405160a0517fc7e2076e8d63cd80bc7e4378433436f0ecef8eb894ccc5b25cfe61c4bf1934d86040606060c05e604060c0a3005b5f54331461019d573360405261019460e0612c5e565b60e05115613d5c575b60025460e05260035461010052600454610120526101205115613d5c575f6002555f6003555f6004553360e0517f7dbc56a45ccaf8b9a2ba90c9afad9eb01cc981dd248eca461e71e273382d693560406101006101405e6040610140a3005b60206102086040612d20565b6040f35b5f543318613d5c5760206140e95f395f51600435101561022c575f61023b565b60206141095f395f5160043511155b15613d5c576004356001557f3c888ab751b712a40ca9ee7b466fc1690cb4408879efb75c1840c29f16bd990c60043560405260206040a1005b5f5460405260206040f35b60015460405260206040f35b60025460405260035460605260045460805260606040f35b60206140e960403960206040f35b602061410960403960206040f35b5f610520527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105405260e036610560376103de565b6044358060a01c613d5c57610520527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105405260e036610560376103de565b6044358060a01c613d5c57610520526064356105405260e036610560376103de565b6044358060a01c613d5c5761052052606435610540526084358060011c613d5c576105605260c036610580376103de565b6044358060a01c613d5c5761052052606435610540526084358060011c613d5c576105605260a43560040180358101803560418111613d5c57506061816105803750602081013561060052604081013561062052505b6004358060a01c613d5c576104e0526024358060a01c613d5c57610500526104e0516103805260016106605260806104e06106805e60406106006107005e60e0610640526106408051602082012090506103a05260616105806103c05e60406106006104405e61044c612fce565b60406104e051635a70e3e46106405260806105006106605e5f6106e052604061064060a461065c5f855af1610483573d5f5f3e3d5ffd5b60403d10613d5c576106409050f35b5f610520527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105405260e03661056037610595565b6064358060a01c613d5c57610520527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105405260e03661056037610595565b6064358060a01c613d5c57610520526084356105405260e03661056037610595565b6064358060a01c613d5c5761052052604060846105403760c03661058037610595565b6064358060a01c613d5c5761052052604060846105403760c43560040180358101803560418111613d5c57506061816105803750602081013561060052604081013561062052505b6004358060a01c613d5c576104e0526044358060a01c613d5c57610500526104e05161038052600a610660526104e051610680526024356106a05260806105006106c05e60406106006107405e610120610640526106408051602082012090506103a05260616105806103c05e60406106006104405e610613612fce565b60806104e0516396b1a9f7610640526024356106605260806105006106805e608061064060a461065c5f855af161064c573d5f5f3e3d5ffd5b3d608081183d608010021880610640016106c011613d5c576106405161070052610660518060a01c613d5c576107205260406106806107405e506107009050f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105205260e0366105403761071e565b6064356105205260e0366105403761071e565b604060646105203760c0366105603761071e565b604060646105203760a43560040180358101803560418111613d5c5750606181610560375060208101356105e052604081013561060052505b6004358060a01c613d5c576104e0526044358060a01c613d5c57610500526104e05161038052600b610640526104e051610660526024356106805260606105006106a05e60406105e06107005e610100610620526106208051602082012090506103a05260616105606103c05e60406105e06104405e61079c612fce565b60806104e05163f31aa9cd610620526024356106405260606105006106605e5f6106c052608061062060a461063c5f855af16107da573d5f5f3e3d5ffd5b3d608081183d608010021880610620016106a011613d5c57610620516106e052610640518060a01c613d5c576107005260406106606107205e506106e09050f35b5f610520527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105405260e0366105603761091e565b6084358060a01c613d5c57610520527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105405260e0366105603761091e565b6084358060a01c613d5c576105205260a4356105405260e0366105603761091e565b6084358060a01c613d5c5761052052604060a46105403760c0366105803761091e565b6084358060a01c613d5c5761052052604060a46105403760e43560040180358101803560418111613d5c57506061816105803750602081013561060052604081013561062052505b6004358060a01c613d5c576104e0526044358060a01c613d5c57610500526104e05161038052600c610660526104e051610680526024356106a052610500516106c0526064356106e05260606105206107005e60406106006107605e610140610640526106408051602082012090506103a05260616105806103c05e60406106006104405e6109ab612fce565b60806104e0516381b3220a610640526024356106605261050051610680526064356106a05260606105206106c05e608061064060c461065c5f855af16109f3573d5f5f3e3d5ffd5b3d608081183d608010021880610640016106c011613d5c576106405161072052610660518060a01c613d5c576107405260406106806107605e506107209050f35b60c036610de037610a71565b60443560040180358101803560418111613d5c5750606181610de037506020810135610e60526040810135610e8052505b6004358060a01c613d5c576104e0526024356004016005813511613d5c5780355f8160058111613d5c578015610b9857905b8060051b60208501013560208501016101c0820261052001813581526020820135602082015260408201356040820152606082013582016005813511613d5c5780355f8160058111613d5c578015610b2457905b8060051b6020850101358060a01c613d5c57606086018260051b6020820101905052600101818118610af7575b50508060608401525050608082013582016004813511613d5c5780355f8160048111613d5c578015610b8057905b8060051b6020850101358060a01c613d5c5761012086018260051b6020820101905052600101818118610b52575b50508061012084015250505050600101818118610aa3575b5050806105005250506104e0516103805260a06014610ec0526104e051610ee05280610f005280610ec0015f610500518083528060051b5f8260058111613d5c578015610cdd57905b828160051b6020880101526101c081026105200183602088010160a0825182526020830151602083015260408301516040830152806060830152606083018183015f82518083528060051b5f8260058111613d5c578015610c5d57905b8060051b6020880101518160051b602088010152600101818118610c3e575b50508201602001915050905090508101905080608083015261012083018183015f82518083528060051b5f8260048111613d5c578015610cb857905b8060051b6020880101518160051b602088010152600101818118610c99575b5050820160200191505090509050810190509050905083019250600101818118610be1575b505082016020019150509050810190506040610e60610f205e610ea052610ea08051602082012090506103a0526061610de06103c05e6040610e606104405e610d24612fce565b60a06104e0516374947609610ea052602080610ec05280610ec0015f610500518083528060051b5f8260058111613d5c578015610e5957905b828160051b6020880101526101c081026105200183602088010160a0825182526020830151602083015260408301516040830152806060830152606083018183015f82518083528060051b5f8260058111613d5c578015610dd957905b8060051b6020880101518160051b602088010152600101818118610dba575b50508201602001915050905090508101905080608083015261012083018183015f82518083528060051b5f8260048111613d5c578015610e3457905b8060051b6020880101518160051b602088010152600101818118610e15575b5050820160200191505090509050810190509050905083019250600101818118610d5d575b5050820160200191505090508101505060a0610ea0610ae4610ebc5f855af1610e84573d5f5f3e3d5ffd5b3d60a081183d60a010021880610ea001610f4011613d5c57610ea0518060a01c613d5c576119a052610ec0516119c052610ee0518060a01c613d5c576119e0526040610f00611a005e506119a09050f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610540526101003661056037610f7c565b608435610540526101003661056037610f7c565b604060846105403760e03661058037610f7c565b606060846105403760c0366105a037610f7c565b606060846105403760e43560040180358101803560418111613d5c57506061816105a03750602081013561062052604081013561064052505b6004358060a01c613d5c576104e0526044358060a01c613d5c57610500526064358060a01c613d5c57610520526104e051610380526015610680526104e0516106a0526024356106c05260a06105006106e05e60406106206107805e610140610660526106608051602082012090506103a05260616105a06103c05e60406106206104405e611009612fce565b60806104e05163bbeaed0a610660526024356106805260a06105006106a05e608061066060c461067c5f855af1611042573d5f5f3e3d5ffd5b3d608081183d608010021880610660016106e011613d5c5760406106606107405e6106a0518060011c613d5c57610780526106c0516107a052506107409050f35b60e036610540376110da565b6084356105405260c036610560376110da565b6084356105405260a43560040180358101803560418111613d5c5750606181610560375060208101356105e052604081013561060052505b6004358060a01c613d5c576104e0526044358060a01c613d5c57610500526064358060a01c613d5c57610520526104e051610380526016610640526104e051610660526024356106805260606105006106a05e60406105e06107005e610100610620526106208051602082012090506103a05260616105606103c05e60406105e06104405e611167612fce565b60406104e05163e0f15a09610620526024356106405260606105006106605e6040610620608461063c5f855af16111a0573d5f5f3e3d5ffd5b60403d10613d5c576106209050f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105205260e03661054037611240565b6064356105205260e03661054037611240565b604060646105203760c03661056037611240565b604060646105203760a43560040180358101803560418111613d5c5750606181610560375060208101356105e052604081013561060052505b6004358060a01c613d5c576104e0526044358060a01c613d5c57610500526104e051610380526028610640526104e051610660526024356106805260606105006106a05e60406105e06107005e610100610620526106208051602082012090506103a05260616105606103c05e60406105e06104405e6112be612fce565b60406104e051639bbb1988610620526024356106405260606105006106605e6040610620608461063c5f855af16112f7573d5f5f3e3d5ffd5b60403d10613d5c576106209050f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105205260e03661054037611397565b6064356105205260e03661054037611397565b604060646105203760c03661056037611397565b604060646105203760a43560040180358101803560418111613d5c5750606181610560375060208101356105e052604081013561060052505b6004358060a01c613d5c576104e0526044358060a01c613d5c57610500526104e051610380526029610640526104e051610660526024356106805260606105006106a05e60406105e06107005e610100610620526106208051602082012090506103a05260616105606103c05e60406105e06104405e611415612fce565b60406104e0516256e661610620526024356106405260606105006106605e6040610620608461063c5f855af161144d573d5f5f3e3d5ffd5b60403d10613d5c576106209050f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105205260e036610540376114ed565b6064356105205260e036610540376114ed565b604060646105203760c036610560376114ed565b604060646105203760a43560040180358101803560418111613d5c5750606181610560375060208101356105e052604081013561060052505b6004358060a01c613d5c576104e0526044358060a01c613d5c57610500526104e05161038052602a610640526104e051610660526024356106805260606105006106a05e60406105e06107005e610100610620526106208051602082012090506103a05260616105606103c05e60406105e06104405e61156b612fce565b60406104e051632b33f944610620526024356106405260606105006106605e6040610620608461063c5f855af16115a4573d5f5f3e3d5ffd5b60403d10613d5c576106209050f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105205260e03661054037611644565b6064356105205260e03661054037611644565b604060646105203760c03661056037611644565b604060646105203760a43560040180358101803560418111613d5c5750606181610560375060208101356105e052604081013561060052505b6004358060a01c613d5c576104e0526044358060a01c613d5c57610500526104e05161038052602b610640526104e051610660526024356106805260606105006106a05e60406105e06107005e610100610620526106208051602082012090506103a05260616105606103c05e60406105e06104405e6116c2612fce565b60406104e05163d90c73a4610620526024356106405260606105006106605e6040610620608461063c5f855af16116fb573d5f5f3e3d5ffd5b60403d10613d5c576106209050f35b5f610500527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105205260e0366105403761180d565b6044358060a01c613d5c57610500527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105205260e0366105403761180d565b6044358060a01c613d5c57610500526064356105205260e0366105403761180d565b6044358060a01c613d5c5761050052604060646105203760c0366105603761180d565b6044358060a01c613d5c5761050052604060646105203760a43560040180358101803560418111613d5c5750606181610560375060208101356105e052604081013561060052505b6004358060a01c613d5c576104e0526104e051610380526032610640526104e051610660526024356106805260606105006106a05e60406105e06107005e610100610620526106208051602082012090506103a05260616105606103c05e60406105e06104405e61187c612fce565b60406104e05163033052a7610620526024356106405260606105006106605e6040610620608461063c5f855af16118b5573d5f5f3e3d5ffd5b60403d10613d5c576106209050f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105005260c03661052037611940565b6024356105005260c03661052037611940565b6024356105005260443560040180358101803560418111613d5c5750606181610520375060208101356105a05260408101356105c052505b6004358060a01c613d5c576104e0526104e0516103805260026106005260406104e06106205e60406105a06106605e60a06105e0526105e08051602082012090506103a05260616105206103c05e60406105a06104405e61199f612fce565b60406104e0516318b67a366105e052610500516106005260406105e060246105fc5f855af16119d0573d5f5f3e3d5ffd5b60403d10613d5c576105e09050f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105005260c03661052037611a5b565b6024356105005260c03661052037611a5b565b6024356105005260443560040180358101803560418111613d5c5750606181610520375060208101356105a05260408101356105c052505b6004358060a01c613d5c576104e0526104e0516103805260036106005260406104e06106205e60406105a06106605e60a06105e0526105e08051602082012090506103a05260616105206103c05e60406105a06104405e611aba612fce565b60406104e05163aa73266e6105e052610500516106005260406105e060246105fc5f855af1611aeb573d5f5f3e3d5ffd5b60403d10613d5c576105e09050f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610560527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61058052610140366105a037611c2b565b60a435610560527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61058052610140366105a037611c2b565b604060a461056037610140366105a037611c2b565b606060a461056037610120366105c037611c2b565b608060a461056037610100366105e037611c2b565b60a060a46105603760e03661060037611c2b565b60c060a46105603760c03661062037611c2b565b60c060a4610560376101643560040180358101803560418111613d5c5750606181610620375060208101356106a05260408101356106c052505b6004358060a01c613d5c576104e0526044358060a01c613d5c57610500526064358060a01c613d5c57610520526084358060a01c613d5c57610540526104e05161038052601e610700526104e05161072052602435610740526101206105006107605e60406106a06108805e6101c06106e0526106e08051602082012090506103a05260616106206103c05e60406106a06104405e611cc8612fce565b60806104e05163f46354da6106e052602435610700526101206105006107205e60806106e06101446106fc5f855af1611d03573d5f5f3e3d5ffd5b60803d10613d5c576106e09050f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61058052610120366105a037611dcf565b60c43561058052610120366105a037611dcf565b604060c461058037610100366105c037611dcf565b606060c46105803760e0366105e037611dcf565b608060c46105803760c03661060037611dcf565b608060c4610580376101443560040180358101803560418111613d5c5750606181610600375060208101356106805260408101356106a052505b6004358060a01c613d5c576104e0526044358060a01c613d5c57610500526064358060a01c613d5c57610520526084358060a01c613d5c576105405260a4358060a01c613d5c57610560526104e05161038052601f6106e0526104e05161070052602435610720526101006105006107405e60406106806108405e6101a06106c0526106c08051602082012090506103a05260616106006103c05e60406106806104405e611e7b612fce565b60806104e05163b66c7ba86106c0526024356106e0526101006105006107005e60806106c06101246106dc5f855af1611eb6573d5f5f3e3d5ffd5b60803d10613d5c576106c09050f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610580527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000006105c052627fffff6105e0526101203661060037612183565b60e435610580527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000006105c052627fffff6105e0526101203661060037612183565b604060e4610580377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000006105c052627fffff6105e0526101203661060037612183565b604060e461058037610124358060020b8118613d5c576105c052627fffff6105e0526101203661060037612183565b604060e461058037610124358060020b8118613d5c576105c052610144358060020b8118613d5c576105e0526101203661060037612183565b604060e461058037610124358060020b8118613d5c576105c052610144358060020b8118613d5c576105e05261016435610600526101003661062037612183565b604060e461058037610124358060020b8118613d5c576105c052610144358060020b8118613d5c576105e05260406101646106003760e03661064037612183565b604060e461058037610124358060020b8118613d5c576105c052610144358060020b8118613d5c576105e05260606101646106003760c03661066037612183565b604060e461058037610124358060020b8118613d5c576105c052610144358060020b8118613d5c576105e0526060610164610600376101c43560040180358101803560418111613d5c5750606181610660375060208101356106e052604081013561070052505b6004358060a01c613d5c576104e0526044358060a01c613d5c57610500526084358060a01c613d5c576105205260a4358060a01c613d5c576105405260c4358060a01c613d5c57610560526104e051610380526020610740526104e0516107605260243561078052610500516107a0526064356107c0526101406105206107e05e60406106e06109205e610220610720526107208051602082012090506103a05260616106606103c05e60406106e06104405e61223e612fce565b60a06104e05163af25577561072052602435610740526105005161076052606435610780526101406105206107a05e60a06107206101a461073c5f855af1612288573d5f5f3e3d5ffd5b60a03d10613d5c576107209050f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61058052610120366105a037612354565b60e43561058052610120366105a037612354565b604060e461058037610100366105c037612354565b606060e46105803760e0366105e037612354565b608060e46105803760c03661060037612354565b608060e4610580376101643560040180358101803560418111613d5c5750606181610600375060208101356106805260408101356106a052505b6004358060a01c613d5c576104e0526044358060a01c613d5c57610500526084358060a01c613d5c576105205260a4358060a01c613d5c576105405260c4358060a01c613d5c57610560526104e0516103805260216106e0526104e051610700526024356107205261050051610740526064356107605260e06105206107805e60406106806108605e6101c06106c0526106c08051602082012090506103a05260616106006103c05e60406106806104405e61240e612fce565b60806104e051636a3745826106c0526024356106e05261050051610700526064356107205260e06105206107405e60806106c06101446106dc5f855af1612457573d5f5f3e3d5ffd5b60803d10613d5c576106c09050f35b60c03661b7a0376124a3565b60443560040180358101803560418111613d5c575060618161b7a03750602081013561b82052604081013561b84052505b6004358060a01c613d5c5761180052602435600401600f813511613d5c5780355f81600f8111613d5c5780156126fd57905b8060051b6020850101356020850101610aa082026118400181358060011c613d5c57815260208201358060081c613d5c57602082015260408201358060101c613d5c57604082015260608201358060a01c613d5c57606082015260808201358060a01c613d5c57608082015260a082013560a082015260c08201358060a01c613d5c5760c082015260e082013560e08201526101008201356101008201526101208201356101208201526101408201358060020b8118613d5c576101408201526101608201358060020b8118613d5c576101608201526101808201356101808201526101a08201356101a08201526101c082013582016005813511613d5c5780355f8160058111613d5c5780156126e557905b8060051b60208501013560208501016101c086016101c0830260208201019050813581526020820135602082015260408201356040820152606082013582016005813511613d5c5780355f8160058111613d5c57801561267157905b8060051b6020850101358060a01c613d5c57606086018260051b6020820101905052600101818118612644575b50508060608401525050608082013582016004813511613d5c5780355f8160048111613d5c5780156126cd57905b8060051b6020850101358060a01c613d5c5761012086018260051b602082010190505260010181811861269f575b505080610120840152505050506001018181186125e8575b5050806101c0840152505050506001018181186124d5575b5050806118205250506118205115613d5c5760806118005161b8a0528061b8c0528061b8a0015f611820518083528060051b5f82600f8111613d5c57801561293d57905b828160051b602088010152610aa08102611840018360208801016101e0825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e08301526101008301516101008301526101208301516101208301526101408301516101408301526101608301516101608301526101808301516101808301526101a08301516101a0830152806101c08301526101c083018183015f82518083528060051b5f8260058111613d5c57801561291857905b828160051b6020880101526101c08102602088010183602088010160a0825182526020830151602083015260408301516040830152806060830152606083018183015f82518083528060051b5f8260058111613d5c57801561289857905b8060051b6020880101518160051b602088010152600101818118612879575b50508201602001915050905090508101905080608083015261012083018183015f82518083528060051b5f8260048111613d5c5780156128f357905b8060051b6020880101518160051b6020880101526001018181186128d4575b505082016020019150509050905081019050905090508301925060010181811861281b575b5050820160200191505090509050810190509050905083019250600101818118612741575b50508201602001915050905081019050604061b82061b8e05e61b8805261b88080516020820120905061b86052611800516103805261b860516103a052606161b7a06103c05e604061b8206104405e612994612fce565b5f61b880525f61182051600f8111613d5c578015612b6a57905b610aa0810261184001805161b8a052602081015161b8c052604081015161b8e052606081015161b90052608081015161b9205260a081015161b9405260c081015161b9605260e081015161b9805261010081015161b9a05261012081015161b9c05261014081015161b9e05261016081015161ba005261018081015161ba20526101a081015161ba40526101c0810180515f8160058111613d5c578015612aaf57905b6101c0810260208501016101c0820261ba80018151815260208201516020820152604082015160408201526060820180516060830160c083825e50505061012082018051610120830160a083825e5050505050600101818118612a51575b50508061ba6052505050611800516040526101c061b8a060605e61ba60515f8160058111613d5c578015612b3c57905b6101c0810261ba80016101c08202610240018151815260208201516020820152604082015160408201526060820180516060830160c083825e50505061012082018051610120830160a083825e5050505050600101818118612adf575b505080610220525061b88051610b0052612b5761c34061305e565b61c3405161b880526001018181186129ae575b5050600161b8a052602061b8a0f35b6004358060a01c613d5c576040525f543318613d5c5760066040516020525f5260405f205460605260066040516020525f5260405f20805460018101818110613d5c5790508155507f47310467081b3cbc54e9be2ca109097d9fc8227e3c6dd28439ce43b3acd6e0d56040604060805e60066040516020525f5260405f205460c05260606080a1005b6004358060a01c613d5c5760405260066040516020525f5260405f205460605260206060f35b60055460405260206040f35b6004358060a01c613d5c5760405260066040516020525f5260405f205460605260206060f35b5f5ffd5b60206140c95f395f5163d81f84b7608052600260a052602060806024609c845afa612c8b573d5f5f3e3d5ffd5b3d602081183d60201002188060800160a011613d5c576080518060a01c613d5c5760c0525060c0905051606052606051612cc8575f815250612d1e565b60605163c0e9b99160805260405160a052602060806024609c845afa612cf0573d5f5f3e3d5ffd5b3d602081183d60201002188060800160a011613d5c576080518060011c613d5c5760c0525060c09050518152505b565b6004541515815250565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666060527f80101a49ad466abaf01be92bc79054407b3ee8d85f308e7b2059c3044e06d1946080524660a0523060c05260806040526040805160208201209050815250565b601f610100511115613d5c57610120516102005260206101e0526101e0805160200360031b6020820151811c811b905090506101c052603f610100511115613d5c576101405161022052602061020052610200805160200360031b6020820151811c811b905090506101e0526040610100511115613d5c5761016051610240526001610220526102206020810151815160200360031b1c905061020052601a6102005113612e4e5761020051601b81018060081c613d5c579050610200525b601b6102005118612e60576001612e69565b601c6102005118155b15613d5c576101e051610220526102205115613d5c577f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a06102205111613d5c575f7f1901000000000000000000000000000000000000000000000000000000000000816102a00152602081019050612ee2610260612d2a565b61026051816102a0015260208101905060e051816102a0015260208101905080610280526102809050805160208201209050610240525a610240516102c052610200516102e05260406101c06103005e60806102a0526102a05060206103606102a0516102c0600185fa9050612f5a573d5f5f3e3d5ffd5b3d602081183d6020100218610340526103406040816102605e5060206102605114612f88575f815250612fcc565b60206102605118613d5c5761026051610280016102a011613d5c57610280518060a01c613d5c576102c0526102c0516102a0526102a05115613d5c576102a0518152505b565b5f546104805261048051331461305c57426104605110613d5c576006610380516020525f5260405f20546104405118613d5c576103a05160e05260616103c06101005e60406104406101805e6130256104c0612d8f565b6104c0516104a052610480516104a05118613d5c576006610380516020525f5260405f20805460018101818110613d5c5790508155505b565b61010051610b2052606051613073575f61307a565b610b005115155b1561308857610b0051610b20525b5f610b405260016080511861311a5760016101e051168015159050610b6052604051635a70e3e4610b805260e051610ba05260c051610bc052610b2051610be052610b6051610c00525f610c20526040610b8060a4610b9c5f855af16130f0573d5f5f3e3d5ffd5b60403d10613d5c57610b809050604081610c405e506040610c40610b205e610b2051815250613d5a565b60026080511861317c576040516318b67a36610b6052610b2051610b80526040610b606024610b7c5f855af1613152573d5f5f3e3d5ffd5b60403d10613d5c57610b609050604081610bc05e506040610bc0610b205e610b2051815250613d5a565b6003608051186131de5760405163aa73266e610b6052610b2051610b80526040610b606024610b7c5f855af16131b4573d5f5f3e3d5ffd5b60403d10613d5c57610b609050604081610bc05e506040610bc0610b205e610b2051815250613d5a565b600a6080511861329257604036610b60376040516396b1a9f7610ba052606060a0610bc05e610b2051610c20526101e051610c40526080610ba060a4610bbc5f855af161322d573d5f5f3e3d5ffd5b3d608081183d608010021880610ba001610c2011613d5c57610ba051610c6052610bc0518060a01c613d5c57610c80526040610be0610ca05e50610c609050608081610ce05e506040610ce0610b605e6040610d20610b205e610b2051815250613d5a565b600b6080511861334657604036610b603760405163f2fd2849610ba052604060a0610bc05e610b2051610c00526101e051610c20526080610ba06084610bbc5f855af16132e1573d5f5f3e3d5ffd5b3d608081183d608010021880610ba001610c2011613d5c57610ba051610c4052610bc0518060a01c613d5c57610c60526040610be0610c805e50610c409050608081610cc05e506040610cc0610b605e6040610d00610b205e610b2051815250613d5a565b600c6080511861340957604036610b60376040516381b3220a610ba052604060a0610bc05e61014051610c005260e051610c2052610b2051610c40526101e051610c60526080610ba060c4610bbc5f855af16133a4573d5f5f3e3d5ffd5b3d608081183d608010021880610ba001610c2011613d5c57610ba051610c8052610bc0518060a01c613d5c57610ca0526040610be0610cc05e50610c809050608081610d005e506040610d00610b605e6040610d40610b205e610b2051815250613d5a565b60146080511861362357606051613420575f613427565b610b005115155b1561344a57610b00516101c06102205115613d5c575f0261024001602081019050525b606036610b60376040516374947609610bc052602080610be05280610be0015f610220518083528060051b5f8260058111613d5c57801561358357905b828160051b6020880101526101c081026102400183602088010160a0825182526020830151602083015260408301516040830152806060830152606083018183015f82518083528060051b5f8260058111613d5c57801561350357905b8060051b6020880101518160051b6020880101526001018181186134e4575b50508201602001915050905090508101905080608083015261012083018183015f82518083528060051b5f8260048111613d5c57801561355e57905b8060051b6020880101518160051b60208801015260010181811861353f575b5050820160200191505090509050810190509050905083019250600101818118613487575b5050820160200191505090508101505060a0610bc0610ae4610bdc5f855af16135ae573d5f5f3e3d5ffd5b3d60a081183d60a010021880610bc001610c6011613d5c57610bc0518060a01c613d5c576116c052610be0516116e052610c00518060a01c613d5c57611700526040610c206117205e506116c0905060a0816117605e506060611760610b605e60406117c0610b205e610b2051815250613d5a565b6015608051186136ed57604036610b603760405163bbeaed0a610ba052606060a0610bc05e610b2051610c205261016051610c40526101e051610c60526080610ba060c4610bbc5f855af161367a573d5f5f3e3d5ffd5b3d608081183d608010021880610ba001610c2011613d5c576040610ba0610c805e610be0518060011c613d5c57610cc052610c0051610ce05250610c809050608081610d005e50610d0051610b6052610d2051610b2052610d4051610b8052610d6051610b4052610b2051815250613d5a565b6016608051186137575760405163e0f15a09610b6052606060a0610b805e6101e051610be0526040610b606084610b7c5f855af161372d573d5f5f3e3d5ffd5b60403d10613d5c57610b609050604081610c005e506040610c00610b205e610b2051815250613d5a565b6028608051186137c957604051639bbb1988610b6052604060a0610b805e610b2051610bc0526101e051610be0526040610b606084610b7c5f855af161379f573d5f5f3e3d5ffd5b60403d10613d5c57610b609050604081610c005e506040610c00610b205e610b2051815250613d5a565b60296080511861383a576040516256e661610b6052604060a0610b805e610b2051610bc0526101e051610be0526040610b606084610b7c5f855af1613810573d5f5f3e3d5ffd5b60403d10613d5c57610b609050604081610c005e506040610c00610b205e610b2051815250613d5a565b602a608051186138ac57604051632b33f944610b6052604060a0610b805e610b2051610bc0526101e051610be0526040610b606084610b7c5f855af1613882573d5f5f3e3d5ffd5b60403d10613d5c57610b609050604081610c005e506040610c00610b205e610b2051815250613d5a565b602b6080511861391e5760405163d90c73a4610b6052604060a0610b805e610b2051610bc0526101e051610be0526040610b606084610b7c5f855af16138f4573d5f5f3e3d5ffd5b60403d10613d5c57610b609050604081610c005e506040610c00610b205e610b2051815250613d5a565b6032608051186139905760405163033052a7610b6052604060a0610b805e610b2051610bc0526101e051610be0526040610b606084610b7c5f855af1613966573d5f5f3e3d5ffd5b60403d10613d5c57610b609050604081610c005e506040610c00610b205e610b2051815250613d5a565b601e60805118613a4f57604036610b603760405163f46354da610ba05260a051610bc05260e051610be05260c051610c005261012051610c2052610b2051610c405261014051610c60526040610160610c805e61020051610cc0526101e051610ce0526080610ba0610144610bbc5f855af1613a0e573d5f5f3e3d5ffd5b60803d10613d5c57610ba09050608081610d005e50610d0051610b2052610d2051610b6052610d4051610b8052610d6051610b4052610b2051815250613d5a565b601f60805118613b2c5773ffffffffffffffffffffffffffffffffffffffff61020051168060a01c613d5c57610b6052604036610b803760405163b66c7ba8610bc05260a051610be05260e051610c005260c051610c205261012051610c4052610b6051610c6052610b2051610c80526040610160610ca05e6101e051610ce0526080610bc0610124610bdc5f855af1613aeb573d5f5f3e3d5ffd5b60803d10613d5c57610bc09050608081610d005e50610d0051610b2052610d2051610b8052610d4051610ba052610d6051610b4052610b2051815250613d5a565b602060805118613bf3576102005160601c8060a01c613d5c57610b60526bffffffffffffffffffffffff6102005116610b805260405163af255775610ba05260a051610bc05260e051610be052610b8051610c0052610b6051610c205260c051610c405261012051610c6052610b2051610c805261014051610ca05260406101a0610cc05e6040610160610d005e6101e051610d405260a0610ba06101a4610bbc5f855af1613bdd573d5f5f3e3d5ffd5b60a03d10613d5c57610ba050505f815250613d5a565b602160805118613ce2576102005160601c8060a01c613d5c57610b60526bffffffffffffffffffffffff6102005116610b8052604036610ba037604051636a374582610be05260a051610c005260e051610c2052610b8051610c4052610b6051610c605260c051610c805261012051610ca052610b2051610cc05261016051610ce05261018051610d00526101e051610d20526080610be0610144610bfc5f855af1613ca1573d5f5f3e3d5ffd5b60803d10613d5c57610be09050608081610d405e50610d4051610b2052610d6051610ba052610d8051610bc052610da051610b4052610b2051815250613d5a565b602080610bc052600e610b60527f496e76616c696420616374696f6e000000000000000000000000000000000000610b8052610b6081610bc001602e82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a0610ba05280600401610bbcfd5b565b5f80fd00d1403907002040710700e43df10813103f010b0008401105000740a9043e2a3ea10c006c3e590900173e310500453fb10600b93fe1060a673da10a00733f590bb37c551511af00650dcc063c108f00a52af4c31e006400256b7d413e17a200a577f202951bb40125d1770cea020c002576c26d7c14a000a50ac6c88115b300657193f9c106d100a51b5752f602f50065301bfb7b1bdd01656437ecfc2c3400251122395502bf0045569cc0561bc901456667b39715f700a5ab64081f035700a58c73768400f60005a3ff2a980f0700a58580dff0017e0005c685cd65246600452ab2e60e1ff101456b5253f706be00854715fbca1bf1018572eaef450f4301053282936702b1000588da8c2501fc00050a48b19714b400c5cf76450819080065988dac371b5100c559101cd8120700c5c2a7b60e160b00c5666a9db0211c01e58a702970033500850eb59c9711e00085a0f44c922c280005da88a834054d00e58da5cb5b02740005365690c01d95016579efd4d3052a00c51291497624720065e9a18b7704920065111e1c9a1b9f0105a5caf57c0a4000653cdb47ec22c9010595520fe317c500c59fd8f32610830085dfa094231d58010577b3cbe0027f00059a99b4f0170a00453879b0c513060065ebf6fe07134a00a50550796319df0025708c7da606e500c549395e7a1a23006530429abf089100c506812cd3085100a5c386833802a30005f12a2a221b8a00e578a5ff2815e40085b457af3f08b300e52047e22f1d1200c5f3c76cf104c80085e30c3978028b000595ac18021d4400e57079517922dd012554440656135e00c55b7d4fb820200165d0cf19d8081b008585c6ed4a18c400256c665a55145c0065d2d76568038800c54ec4c3a2230601651334124c1d8101450bbf83021d6d01251d5db6eb1f490105552fe80a050800a5fe086e5108d601050367b5bc1780008551553cdc068d00657be23de3209a01a5da62747020db01c533b5aac222f20145990164aa229700e56c485d3d133700854601650617400065dba82a2b0a340045f5743c4c2b79002587ef64780f1b00c5e16f49891ec500e52d0335ab2c0200252bc504b0231a0185031ae4b60f2f00e5926d369318f500450d392fc80ed50085d0280539148d008593287f0810a200c581439e791a100045c539e27d205901857d696a9e1faf012553b9acb911f300a55ebd72e51afa00a585582003c642d780ec89a9ec0dfbec88bad5fb43c60aeb6fc573ccfcd232f2040ac6061940c98e184118501840182818481860185818581830183018281838183818201860a1657679706572830004030052