(cherry picked from commit 63c40c2ad66e5b32d96cecad0b123db28783ae5c)
(cherry picked from commit b52d21f829b60880ea61ac80a38f62f6e1a63c6e)