(cherry picked from commit b907c7f7ec9aee25c710c311047cea8b6707a118)
(cherry picked from commit 6735e91a74b2d0aa53f651eaa1c40df16550ab7d)