Знаю что код с костылями, есть излишние проверки и его неплохо бы зарефакторить, но работоспособность вроди как есть, исходя из моих тестов. Но, валидатор говорит что я что-то пропустил Буду благодарен за тестовые данные, которые завалят мой код.