(cherry picked from commit 1cf6ec4ad4e1f4ea71f912923b5e8627b61ef482) (cherry picked from commit 144f7a9e0eb3084eaaff7ab0bee1f5943e16d136)
(cherry picked from commit 1cf6ec4ad4e1f4ea71f912923b5e8627b61ef482) (cherry picked from commit 144f7a9e0eb3084eaaff7ab0bee1f5943e16d136)