(cherry picked from commit b970446b2c59f8897bb2c3a562fa192ed3452db5) (cherry picked from commit 3b279fe4260d99f95787ea5cce428f9ef337a3cb)
(cherry picked from commit b970446b2c59f8897bb2c3a562fa192ed3452db5) (cherry picked from commit 3b279fe4260d99f95787ea5cce428f9ef337a3cb)