(cherry picked from commit c9086077656b927b50c50498ca6f98e5a1da2b1e)
(cherry picked from commit a9c945ba37cca89c4051a5a1efefe993a6fb3745)