(6/28 EDIT: found something wrong that really irked me! Uploaded a corrected version for file download)