Cherrypick  0a9e69 aa2998 63e558 b487e8 e28be4 50237f 64aa934, passes all.