Based on 3c81f60041 (diff-7e5179d048c3dfaf75b444b7277fc840) (cherry picked from commit ee8a53188c)
3c81f60041 (diff-7e5179d048c3dfaf75b444b7277fc840)
ee8a53188c