(cherry picked from commit c5a703f488c6034a0f31c7b93f0feb1b3b1b2cc4)
(cherry picked from commit 78917cd2be0d34dbbf4baab040f0cb83cec910ee)
(cherry picked from commit 7bef2409262a4075b51b5dbc14d275b5cc3f0a0e)