(cherry picked from commit 851c7533476a3020c786a73c6cd2c2b16d7c388f)
(cherry picked from commit 5b8a5e2256e9f3d7fd5601fb33901550afe321fd)