Resync to upstream 7568d6f77d72a77c527cc282511f7a3f37dc7040