(cherry picked from commit e3545801721e00d4e5cac3fa534e66dcbe9d2d05) (cherry picked from commit cb27b05a6c046ca0a6e4998f7e7ecd6b45add1a2)