(cherry picked from commit d6d9cff21b7b6141ed88359652cf22e8973c0661) (cherry picked from commit b279f42d79175bef6529dc1ac4216198a3aaee4d)
(cherry picked from commit d6d9cff21b7b6141ed88359652cf22e8973c0661) (cherry picked from commit b279f42d79175bef6529dc1ac4216198a3aaee4d)