normalized whitespace (tabs to spaces, no trailing whitespace