Synced with the source at bfa10cdb151b0f86d1d24e229e8fa0c0fb4e7c2f.