sync with upstream 36eba34
sync with upstream 1832e60