(cherry picked from commit 6cace58e212d3ee0aec988926a5a17c9cc58e645) (cherry picked from commit bf760e7e81f8e02ad413c470fccf78aaa9cb9f86)