Трудоемкое задание, но в целом хорошо. И хорошо, что его сделал, знаю теперь реальную цену таким заданиям.