Это долгое решение:)
В любом случае пожалуйста.