(cherry picked from commit fc6b50cc574e144fd314dea6c11987c6a384bfa6) (cherry picked from commit 39ea0891d2b1369ec8c1ea4312489309e1a85227)
(cherry picked from commit fc6b50cc574e144fd314dea6c11987c6a384bfa6) (cherry picked from commit 39ea0891d2b1369ec8c1ea4312489309e1a85227)