```\nFile: LMPVault.sol\n    function _collectFees(uint256 idle, uint256 debt, uint256 totalSupply) internal {\n        address sink = feeSink;\n        uint256 fees = 0;\n        uint256 shares = 0;\n        uint256 profit = 0;\n\n        // If there's no supply then there should be no assets and so nothing\n        // to actually take fees on\n        if (totalSupply == 0) {\n            return;\n        }\n\n        uint256 currentNavPerShare = ((idle + debt) * MAX_FEE_BPS) / totalSupply;\n        uint256 effectiveNavPerShareHighMark = navPerShareHighMark;\n\n        if (currentNavPerShare > effectiveNavPerShareHighMark) {\n            // Even if we aren't going to take the fee (haven't set a sink)\n            // We still want to calculate so we can emit for off-chain analysis\n            profit = (currentNavPerShare - effectiveNavPerShareHighMark) * totalSupply;\n```\n