Сначала нужно разобраться с терминологией. Собственно, что такое — говнокод? Говнокод — это работающий код (во-первых). Но этот код написан неизящно, с нарушением каких-то правил. В нем есть костыли, захардкожены константы, IP-адреса, и так далее.
Никаких паттернов и прочей ООП, всё писать функциями. Названия переменных должны быть запутаны максимально!
Говнокод очень сложно поддерживать, допиливать, если это делает не автор (второе). И проще сделать заново, но на это нет бюджета, времени. Поэтому самое простое — просить автора помочь. От автора говнокода все начинают зависеть! Он может требовать повышения зарплаты. А все эти пидорки, которые умничают и обсирают говнокод, останутся в итоге ни с чем.
Из этих двух аксиом следует закон — пиши всегда максимально запутанный Говнокод. Но автор всегда встретит сопротивление со стороны очкариков-анальников. Их перфекционизм только всем вредит и в первую очередь им самим. Это снижает зарплаты. Это снижает порог входа. Но ботанам в пидорских очечках это не обьяснить блять!
Если б вот направить их ебучий перфекционизм в правильное русло — все были бы счастливы и айти перестало бы быть ебаным. Это было бы как сетка от комаров. Ни один вайтишник пицценос не пролезет! А пидорские ПМы будут сосать хуй.
А мы бы стали королями жизни и драли бы хрюш — каждый день новую. И это будет триумф Говнокода!
109 Комментариев
ПЕРВЫЙ УРА
ПРИНИМАЮ ЗАЩЕКОИНЫ
санчез сосатб
Продам очко.
Покупаю!
1 аналосатоши
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
💩
Пей феервекс ссука!
Зачем ты выложил список сотрудников Люксофта?
Вишенку на торте забыл 🍒
шоб ты сдох пидор
Рубист ебаный
Ебать же ты сука дурное ..
ЕБАТЬ НАХУЙ КТО !!!!!!!!! ГДЕ БЛЯТЬ БАЗУКА ЧТО ЗА ХУЙНЯ!!!!!!!!
Согласен, не тот стиль, не те обороты, самозванцом писано, как проканало, непонятно. Сразу видно что просто затыкают дыру, Базука был в своем роде излагатель — рассказчик, чувствовалось задротское, неудовлетворенность. А тут хуйня на постном масле, подписано базукой. уберите эту хуйню. дайте статью, дайте «основы ООП»
Братишка, значит я не один такой! ВЕРНИТЕ БАЗУКУ!
Я только базуку читаю ) #ВернитеБазуку
Проверь за щекой у мамки
Пиздец базука — прямо поэт пятничный — как крик души!
Мелкой, слабой…Души…
че та мне здается это не маэстро писал !! жучара какую ту хуйню подсунул, стиль вооообще не видержан
А что, если душа на самом деле находится в жопе?
Это твоя фотка, вор ников? А ты самркритичен.
//пиши всегда максимально запутанный Говнокод
В нормальных конторах имеются правила оформления программного кода. Но, конечно, это не про ебаный украинский аутсорс и не про селюков веб-макакеров, которые по дикому недоразумению называют себя программистами
Вызывали?
От того что говнокод будет следовать всем правилам оформления кода, он никак не перестанет быть говнокодом.
Говнокод наше всё
Базука оросил мое чело каплями своего таланта. Это просто божественно!
Маестро совсем не консулся темы сесек. Шотакое? Зима, депресняк?
Но про говнокод он верно гуторит. Я бы еще отметил закон умножения говнокода в природе. Допустим есть проект — говнокод. Настолько говно и настолько охуел автор, что решают проект нахуй написать с нуля. Даже если возьмут грамотную команду, на выходе получается еще более ущербный говнокод!
//пиши всегда максимально запутанный Говнокод
главное потом самому в эту помойную яму не попасть, а то вернешься из отпуска и опа блядь какой пидор этот код написал? лезешь в репозиторий и видишь там своё имя в комите.
Увидеть чужое имя в коммите — тоже неплохо. Коллега с одной стороны не разобрался в твоем говнокоде и решил его выкинуть, с другой — сам способен только насрать такую же кучу. Триумф говнокода же, неговнокодеров не завезли.
Какой ещё гит, ало
Стебётся автор. Сам то, нибось, очкарик с книгой четырех под подушкой.
Дааааааааааа! Базука вернулся! А теперь пойду почитаю)))
Это не БАЗУКА, стиль совсем другой.
Кто то решил покупаться в лучах славы БАЗУКИ и спиздил у него аккаунт.
Очкаунт у него спиздили, я видел как это было.
Лису проебали, Алесю проебали, Базуку выебали.
жук экспериментирует с дозами
Хуита. Если код работает, стабилен и приносит прибыль — это не говнокод.
Говнокод — это то что едва работает, практически не поддается сопровождению, рефакторингам и в среднем приносит убыток.
с такой логикой и запорожец — заебись машина, ну а что, едет, картошку с огорода возить можно
Зато ржавая Альфа-Ромео — это типа «лучше Запорожца». Сомнительно. Запор хоть ездить будет, а Альфа-Ромео — только отдыхать после раздачи понтов.
Много раз видел как недалекие люди записывали в «говнокод» шедевры, а сами при этом под свой стульчак ещё ходили и срали понтами направо и налево, только чтобы потом в очередной раз уволиться, так не доделав очередной проект.
Местные аутсорс галеры с веб-макакингом по-другому себя вести и не провоцируют. Зачем думать если есть скрам, паттерны, пердеж в уши и вот это всё.
Не все то золото, что блестит.
Так. Тыж прогрмист — допили сюда немного того, и чуток вот этого… Что, прошло 3 дня, а ничего не сделано, Да какой ты сеньор? Вот Петя студент на соседнем проекте за полдня сделал то же самое в соседнем проекте. Так может мы твою зряплату понизим до Петиной?
> Никаких паттернов и прочей ООП, всё писать функциями
Не, ну нихуя себе заявла 🤦♂️ ООП, паттерны и функции — это разные инструменты и каждый из них уместен в определенных ситуациях.
Ведь не единожды встречаются ситуации, где такие себе непросвященные зазнайки (а по факту — неучи) «напаттернят» по самое не могу, где можно было бы обойтись парой циклов и двумя функциями в 20 строк.
ООП в принципе антипаттерн.
ебать, ооп — подход в программировании, а паттерны — это как раз применение этого подхода
Паттерны могут быть везде, не только в ООП. Даже в строительной архитектуре. Даже в пидорском лупасинге (небезизвестный паттерн «Вaлетик»).
Шире нужно смотреть, шире.
Везде, вот только не все нужны, ибо язык изначально может уметь.
паттерны программирования есть в строительной архитектуре? ну ну
Проектирования. Ппц ты тупое.
какие, блять, паттерны в архитектуре? какие, блять, паттерны используются при строительстве небоскребов? ты ебу дал?
Сразу видно человека, который о книге «банды четырех» знает только по наслышке. А вы возьмите, почитайте. Там дается отсыл к зодчеству; более того, авторы утверждают, что паттерны в строительной архитектуре это то, что сподвигло их попробовать формулизировать процесс и для ПО.
Просвещение 💡 это исток могущества.
С удовольствием подставлю свой анус под твой язык.
Пидорские ПМы уже нас поимели. Мы сами пишем поддерживаемый код. Делаем себя легкозаменямыми. Реджектим говнокод на ревью. Только на западе борются с нами, говнокоричневокожими, готовыми себя и мать продать за корку хлеба: выпускают каждый год по новому фреймворку. В итоге на плаву остаются не самые квалифицированные, а молодые, способные быстро учиться. У них не орут по ночам грудные дети. Это хоть какое-то ограничение, сокращающее количество айтишнегов на рынке труда.
А правда, что оптимизированный код всегда похож на говнокод?
жук, хорошо что наконец ты открыл всем что ты обычный говнарь обиженный.
Хто вміє чекати, того чекає велике ©
Завершилося, з під пера неперевершеного вийшла нова мислительська глиба.
Моя пошана, пане Базука.
От блядство, дві помилки, їбаний т9.
Накліпають в своїх хромах автовиправлення/доповнення. Нахххуй воно вперлося.
всё ясно автор джун с зп 40 грывень в пакете из АТБ, уносите подгоревшего
>Никаких паттернов и прочей ООП, всё писать функциями. Названия переменных должны быть запутаны максимально!
ООП-олух рассуждает о «говнокоде», вот так новости. Тупость выводов в этой связи вполне логична.
Про структурный программинг оно не слышали. Не говоря уже о функциональном.
нужно было на мове писать эту статью.
Он в русске языг с трудом может, какая мова?
«Никаких паттернов и прочей ООП» — когда дойдешь в гугло-поиске до мета-программинга, отправь мне смс-сообщение. даун ты, базука. ебаное много теряет в репутации на постах твоих высеров.
Блядь, тот кто пишет такое говно и работает за 500$ всю свою старую прогерскую жизнь на всяких конченых жлобов и прочих уебков у которых «никогда нет денег» на норм специалиста.
Автор, ты пойми что сам в собственном говне и утонешь. Раз сделал, два сделал, а дальше вместо 2 часов будешь делать фичи сука НЕДЕЛЯМИ, попутно ломая весь работающий функциоАНАЛ!
Кто захочет платить зарплату макаке которая тратит хуеву кучу времени на простые задачи и не может сделать минимально работающей функционал?!
Единственный способ говнокодить и держаться на плаву—это быть сцуко ФАУНДЕРОМ компании!
Привет, Стетхем. Как погода у вас?
КАКОЙ ЕБЛАН ЛАЙКАЕТ БАЗУКУ?
ебаное само стало ебаным
давно меня не было… сайт скатился в говно
Как правило такие проекты идут реально от говноменеджмента, который нанимает ждунов и требует все сделать вчера и за копейки, а не то «заказчик уйдёт». А вкладываться в архитектуру это сцуко «не выгодно», никогда.
Но это не вина разрабов а отдельная беда СНГ шного ИТ, где во главе компаний стоят конченые жлобы или ПО продаётся по откаткой схеме, на качество похуй.
Уважающие же себя программеры в таком говне не работают. А специально делать дерьмо, понимая все риски и последствию— это сцуко зашквар.
Батхёртом задротишек, рубящих сук, на котором сидят — удовлетворен. Лихо по вам Базука проехался. Не в бровь, а в глаз.
Для профессионала своего дела свойственно качественно выполнять свою работу. Плохой код — признак низкой квалификации. Умел бы ты нормально писать — глядишь, не пришлось бы переживать за свою востребованность. А так да, делать мусор чтобы подольше получать пайку — удел барана, случайно попавшего в профессию.
ахаха, Жук — ты пидор, лихо я по тебе проехался
Жук говнокод это вручную чистить коменты про идельca, мы понимаем что ты просто маэстро говнокода и заглота, но может ты перестанешь страдать хуйней запостишь чтото годное про лохософт?
М’ясної паук воняет лÿк
Сру бозуке в рот и жуку лично.
Вот какраз из-за говнокодеров IT и является ебаным. Если убрать тех, кто спецом говнокодит то какраз и зарплаты поднимутся и отношение к программистам будет лучше.
Автор нуб и опозорился.
Ви хотіли пожартувати, але у Вас це не вийшло.
ООП и особенно паттерны с наворачиванием абстрактных фабрик фабрик над абстрактными адаптерами это и есть говнокод. Когда полезный код теряется за бойлерплейтом и трейсы на два экрана..
трейсы на два экрана — то оверхэд, не обращай внимания
Жабист?
Не жабист, но однажды ебал программиста который ебал жабиста
Он лох, который тонет в полотне кода, не влазящем на на 4K 43»
Фабрика ради фабрик не нужна.. а для улучшения струтуры кода (как и другие патерны) вполне нужная штука.
Вы нихуя не понимаете — говнокод это не результат, говнокод это процесс! Идеальный говнокод идет мягко, как мороженое в Макдональдс из дозатора. И заканчивается красивой вишенкой. Не каждый может выдавать ровный красивый говнокод!
Вишенка на ЛюксТорте ©
Ура!!!! Наконец-то!!1111
Хуйня какая то. Базука — быдлопидар и гавно.
Мой краткий комментарий на статью:
val dzigurda = (hui as? Pizda) as? Dzigurda) ?: return
///
when (foo) {
is Bar -> foo.someBarField
}
Это не говнокод,а я так вижу!!!
А сеньйоры, что не могут разобраться в моем коде, пускай идут разносить пиццу. Там вам и место.
А рисуешь ты говном.
причем даже в прямом смысле, в параше
На практике перфекционизм это то же говно, только здобно приправленное парфюмом чтобы на первый взгляд выглядело прилично. Но поскольку говно замешано на Шанель №5, то определить по анализу кала чем болен пациент уже невозможно.
МЯСНОЙ ПУК ВОНЯЕТ ЛУК
https://djinni.co/jobs/81560-backend-razrabotchik-node-js-nest-js/
https://i.imgur.com/DGxm1mI.png
Все нахуй! Я пьяный и ебал вас всех в рот, пидарасы!
Всегда так делаю
Седня опять буду дрочить до усирачки, блядь.
Бля, я ляжки обдристал.
Пиздешь это все, говнокод может быть гораздо проще для понимания, чем отрефакторенный паттернами из будущего каким нибудь заумным очкастым пидором.
Если в проекте больше одного человека, то говнокод обеспечен.
Имхо, более точным тут будет не ограничение количества, а code ownership. Если никто конкретный кодом не владеет, говнокод обеспечен. К сожалению суть современного галерного руководства — это коллективное владение, в итоге — говнокод во все поля.
Согласен. Как у любой коммерческой конторы стратегия только одна — максимизация прибыли, а качество продукта по приоритетам где-то на дне.
А разгадка одна. Никто не знает что такое не-говнокод. Вся пиздобратия дружно упарывается по паттернам, TDD, DDD, пиздит о SOLID, cohesion и coupling, не в состоянии даже формально объяснить что это такое. Некоторые особо одаренные дегенераты упарываются по чистоте и педо-монадам, веря что все говно в их коде из-за мутабельности. И врут, сучары, пиздят себе и всем окружающим. Как же вы суки заебали, пиздеть об поддерживаемой архитектуре, не в состоянии хоть в википедию разок глянуть и посмотреть определение слова maintainability.
Поддерживаемый код — ДЕШЕВЫЙ и ПРОСТОЙ код, максимально БЫСТРО адаптирующийся под нужды окружения, с МИНИМАЛЬНЫМ порогом входа! Если какая то команда семипядевых ублюдов сидит и ДНЯМИ «работает над архитектурой приложения», каждый день чето рефакторит, они — хуевы цыгане и разводилы, а архитектура их и есть — говнокод, сколь бы они не пышились об обратном. По настоящему поддерживаемый код — код, решения по которому принимаются на минуты надмозгом, по определению.
Индустрия не видела еще поддерживаемого кода. Нет его, нигде. И даже не потому что он никому не нужен (нужен на самом деле, просто его делать никто не умеет). «Триум говнокода» проповедемый аффтаром поста — тоже нихуя не про поддерживаемость, но это хотя бы честно.
Да, эти товарищи всячески пытаются усложнить и запутать все что можно. Поколение 70-х, 80х писали все без этой головной боли, которую надо испытывать сегодня, но никто честно не говорит зачем это все, хотя большинство искренне не понимает суть этого оверхеда. По мимо этого, они пытаются пропагандировать чрезмерную сложность и значимость программирования и засирают неокрепшие умы этим, результат этого, я думаю, всем известен, по крайней мере здесь присутствующим точно. Так же есть большая проблема (по крайней мере в СНГ) многим известная как «проблема имен», когда мальчика Васю переименовывают из инженера в ведущего инженера потом в супер ведущего инженера, не повышая з/п и уровень ответственности. В результате, Вася начинает кичиться этим и в серьез верит что он такой, каким его обозвали. И при попытке поменять корабль сталкивается с таким айзбергом, как техническое собеседование, и Вася уже на плоту возвращается обратно.. Печаль. Именно поэтому у нас ходят по просторам огромные отряды архитекторов, сеньоров, супер-ведущих разных мастей и уровня ЧСВ. Мало того, это движение буратин привело к падению значимости и весомости термина «engineer» (инженер).
>>> Вся пиздобратия дружно упарывается по паттернам, TDD, DDD, пиздит о SOLID, cohesion и coupling, не в состоянии даже формально объяснить что это такое
Вся суть. И если бы только формально.
Все просто. Писать код сложно, и этому просто надо долго учиться. Сложно создать проект из таких людей, ведь большинство людей просто ленивые и глупые обыватели. Поэтому сложные концепции попадают в руки простых ребят со двора, и они делают ужасающе сложные и запутанные проекты, в которых просто невозможно разобраться. Зачастую чтобы просто сделать сложный и умный вид, а может просто чтобы выцыганить деньжат у конторы.
Сложно === неподдерживаемо. Поддерживаемо === просто. Это следует банально из определения поддерживаемости. И да, так и выходит в текущих реалиях, что начальству проще смириться с говнокодом, чем дать хуесосам карт бланш на «дизайн чистой архитектуры». Потому что в последнем случае хуесосы сожрут бабла в три раза больше, а чистой архитектуры все равно не сделают. Все это по многу раз проходили, кредит доверия давно исчерпан. В итоге если по перформансу, секьюрити, распределенным вычислениям есть реальные эксперты, чей опыт подтвержден индустрией, в сфере maintainability кочуют одни евангелисты.
окей, если в коде сложно разобраться то он говно. тут мало кто поспорит. но вот удивительно, сложный бухгалтерский учет, налогообложение в незалежной говном не называют. есть даже токсичные пидорасы у которых благодаря аутсорсу всех проблем мамке так дохуя свободного времени что и рады самому вести свой фоп. ау, где же вы гирои? не вижу протестного настроения. или мамки и жинки сениор чегевар работают в налогобухгалтерской сфере и имеют мзду и доят других схематозников?
говнодепутаты, говноминистры, говнопрезиденты. говноврачи. говноменты. говноизбиратели. говноличинки у говнородителей. говноверующие в говнобога. в говностране.
А на самом дне говносорос говноед.
Нет никакого кризиса. Мама просто любит скорость. Мама — последний лучик добра и позитива.
Урааа! Маэстро вернулся!!!
Не обязательно писать убогие названия переменных и функций.
Даже для самой простой задачи можно нахуярить такой уровень абстракций, что ни один новый гребец не разберется. Ебашьте максимально сложную архитектуру с помощью ООП, SOLID, паттернов и встраивайте это всё через DI.
Нужно передать имя твоей мамки в метод? Не передавай строку — передавай интерфейс и напиши несколько реализацией для него.
Ахуеть… поёшь… как тимлид.
какой святой говнокод псалтырь для вайтишников… ёбаный стыд