NOTE: This website is outdated and does not cover all edge cases. The updated version can be found here.