(cherry picked from commit 4177dc3f774523fea7d181601d7c3301fda13790) and (cherry picked from commit a2f0c95baf57fb735dd47b5db73274f7e75df7c9)
(cherry picked from commit 4177dc3f774523fea7d181601d7c3301fda13790) and (cherry picked from commit a2f0c95baf57fb735dd47b5db73274f7e75df7c9)