(cherry picked from commit 39a15424167d41a54ad0562581304febf8e737e3)
(cherry picked from commit e96b1377ed6c6ae6cb67eaec32425d9e33c9e436)