(cherry picked from commit 7dc3c1203d1ab14c09d0aaf0869a5bcdfafb0a5a) (cherry picked from commit 87c2d915f1cc799cb4020c945c04d3ecb82ee963) (cherry picked from commit 1da62ba736f5f161a18a52b7ca0d212786f3848c)
(cherry picked from commit 7dc3c1203d1ab14c09d0aaf0869a5bcdfafb0a5a) (cherry picked from commit 87c2d915f1cc799cb4020c945c04d3ecb82ee963) (cherry picked from commit 1da62ba736f5f161a18a52b7ca0d212786f3848c)