!!! !! !h !w!! !! ! ! !! ! ! ! . . . . . . . .