(cherry picked from commit 4846069061b6baa06da3b524b9e36567dd368388) (cherry picked from commit 80e1904000923819c98ae68456cb0452c255d5f3)