(cherry picked from commit 45656562a82353927da0aa614a1ce0689e7bd6b0)
(cherry picked from commit 999d8de9e972d62ae4bf2a23bcb05d7559c8c101)