(cherry picked from commit b41fe3111ae37478cbace2a07e6ac35a676ef978) (cherry picked from commit adcf5dd94052481f66deaf402ac4ace1ffc06f49)
(cherry picked from commit b41fe3111ae37478cbace2a07e6ac35a676ef978) (cherry picked from commit adcf5dd94052481f66deaf402ac4ace1ffc06f49)