(cherry picked from commit 29f051d8932ce27ac9404ea4e24edb54160d2a8e)
(cherry picked from commit e914640449c3502dbece62889399fada55f95617)