(cherry picked from commit 0bd2484493fb7a690808601cccfbac489dff8e12)
(cherry picked from commit a8d6c0b0fb017406507bda878a1f71b0124c7ebf)