(cherry picked from commit 46d3143eeb1958151b39e268d8c27aa029a1e04d)
(cherry picked from commit a7d683941c244f6a6f31a926e48e8bfb6b0db00a)