Synced with the source at 1d5b79393a2426db638869a100f60a5ea391bdee.