(cherry picked from commit bd89d035) (cherry picked from commit ef677436) (cherry picked from commit 2caf5c90)