(imported from commit 435f076d7125676b5b964c73ec1e3753496c32af)
(imported from commit a97382d174994be0592fbd98cdef1ed39c1b0400)
(imported from commit a539e1e9322bfbef4d93efce951f058d09fc58fe)