Mod note: timing is inaccurate because it was performed in a run, if this ends up being an issue, we'll fix it
mod note: retimed for updated rules