Это мой собственный ответ на задание, кроме случаев, когда подтверждено использование работ других людей.