// merge cherry-pick 8bd869e9178c58378b948fb6a039627bb2ec6cf1