(cherry picked from commit 7c0b156fa006115c9bf147064db3666bd3708c9f)
(cherry picked from commit c954305708c30c0ae6b7eba32fed6b3cd28b77b6)