- 1
IT Оффтоп #90
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
IT Оффтоп #90
#60: https://govnokod.ru/26949 https://govnokod.xyz/_26949
#61: https://govnokod.ru/26980 https://govnokod.xyz/_26980
#62: https://govnokod.ru/26999 https://govnokod.xyz/_26999
#63: https://govnokod.ru/27004 https://govnokod.xyz/_27004
#64: https://govnokod.ru/27020 https://govnokod.xyz/_27020
#65: https://govnokod.ru/27027 https://govnokod.xyz/_27027
#66: https://govnokod.ru/27040 https://govnokod.xyz/_27040
#67: https://govnokod.ru/27049 https://govnokod.xyz/_27049
#68: https://govnokod.ru/27061 https://govnokod.xyz/_27061
#69: https://govnokod.ru/27071 https://govnokod.xyz/_27071
#70: https://govnokod.ru/27097 https://govnokod.xyz/_27097
#71: https://govnokod.ru/27115 https://govnokod.xyz/_27115
#72: https://govnokod.ru/27120 https://govnokod.xyz/_27120
#73: https://govnokod.ru/27136 https://govnokod.xyz/_27136
#74: https://govnokod.ru/27160 https://govnokod.xyz/_27160
#75: https://govnokod.ru/27166 https://govnokod.xyz/_27166
#76: https://govnokod.ru/27168 https://govnokod.xyz/_27168
#77: https://govnokod.ru/27186 https://govnokod.xyz/_27186
#78: https://govnokod.ru/27219 https://govnokod.xyz/_27219
#79: https://govnokod.ru/27254 https://govnokod.xyz/_27254
#80: https://govnokod.ru/27270 https://govnokod.xyz/_27270
#81: https://govnokod.ru/27280 https://govnokod.xyz/_27280
#82: https://govnokod.ru/27284 https://govnokod.xyz/_27284
#83: https://govnokod.ru/27296 https://govnokod.xyz/_27296
#84: https://govnokod.ru/27336 https://govnokod.xyz/_27336
#85: https://govnokod.ru/27381 https://govnokod.xyz/_27381
#86: https://govnokod.ru/27405 https://govnokod.xyz/_27405
#87: https://govnokod.ru/27429 https://govnokod.xyz/_27429
#88: https://govnokod.ru/27432 https://govnokod.xyz/_27432
#89: https://govnokod.ru/27435 https://govnokod.xyz/_27435
nepeKamHblu_nemyx # 0
Этот оффтоп сгенерирован автоматически.
Индекс оффтопов: https://index.gcode.space/.
Зеркала Говнокода и полезные ресурсы:
* https://govnokod.xyz/ (альтернативный Говнокод)
* https://gcode.space/ (read-only зеркало Говнокода)
* https://t.me/GovnokodBot (Говнокод-бот в «Telegram»)
* https://t.me/GovnokodChannel (Тематический канал в «Telegram»)
* https://vorec.space/ (глоссарий Говнокода)
* https://app.element.io/#/room/#govnokod:matrix.org (резервный чат)
Примечание: автоматические перекаты в настоящее время осуществляются только с аккаунта nepeKamHblu_nemyx.
Остерегайтесь подделок. Берегите себя и своих близких. Кок!
Desktop # 0 ⇈
Ce hors-sujet est généré automatiquement.
Index hors-sujet: https://index.gcode.space/.
Miroirs Shitcode et ressources utiles:
* https://govnokod.xyz/ (Shitcode alternatif)
* https://gcode.space/ (miroir en lecture seule de Gcode)
* https://t.me/GovnokodBot (bot Shit-code dans Telegram)
* https://t.me/GovnokodChannel (chaîne thématique dans Telegram)
* https://vorec.space/ (glossaire shitcode)
* https://app.element.io/#/room/#govnokod:matrix.org (discussion de sauvegarde)
Remarque: les lancers automatiques ne sont actuellement effectués qu'à partir du compte nepeKamHblu_nemyx.
Méfiez-vous des contrefaçons. Prenez soin de vous et de vos proches. Coq!
3_dar # 0 ⇈
Desktop # 0 ⇈
PolinaAksenova # 0 ⇈
Αυτό το offtop δημιουργείται αυτόματα.
Δείκτης Offtops: https://index.gcode.space/
Govnokod καθρέφτες και χρήσιμοι πόροι:
* https://govnokod.xyz/ (εναλλακτική λύση Govnokod)
* https://gcode.space/ (καθρέφτης του Govnokod μόνο για ανάγνωση)
* https://t.me/GovnokodBot (Govnocode bot του Telegram)
* https://t.me/GovnokodChannel (θεματικό κανάλι Telegram)
* https://vorec.space/ (γλωσσάριο του Govnokod)
* https://app.element.io/#/room/#govnokod:matrix.org (εφεδρική συνομιλία)
Σημείωση: οι αυτόματες ρίψεις γίνονται προς το παρόν μόνο από το λογαριασμό nepeKamHblu_nemyx.
Προσοχή στις απομιμήσεις. Φροντίστε τον εαυτό σας και τους αγαπημένους σας. Κοκ!
Desktop # 0 ⇈
Desktop # 0 ⇈
страйко, почини!
MAKAKA # 0 ⇈
«ו» - это буква «о» и буква «у» одновременно.
«א» буква которая первая в алфавите но не имеет звука.
« ץ,ף,ם,ן» буквы которые можно писать только в конце слова.
И все сука на оборот!!!!
Desktop # 0 ⇈
nuTepcKuu_nemyx # 0 ⇈
eukaryote # 0 ⇈
このオフトピックは自動生成されました。
オフトピックのインデックス: https://index.gcode.space/
Govnokodのミラーと便利なリソース
• https://govnokod.xyz/ (代替のGovnokod)
• https://gcode.space/ (Govnokodの読み取り専用ミラー)
• https://t.me/GovnokodBot (TelegramのGovnokodのボット)
• https://t.me/GovnokodChannel (Telegramの主題のチャネル)
• https://vorec.space/ (Govnokodの用語集)
• https://app.element.io/#/room/#govnokod:matrix.org (バックアップチャット)
※現在、自動ロールはnepeKamHblu_nemyxアカウントからのみ実行され ます。
偽造品に注意してください。 自分と大切な人の世話をしてください。 コッコッ!
JloJle4Ka # 0 ⇈
eukaryote # 0 ⇈
Конечно, можно писать одной только хираганой без кандзи (так и делают в детских книгах), но читать это сложнее, к тому же очень много канго (заимствованных слов из китайского) читаются одинаково, и в записи каной их не различишь. Например, 軌跡 (траектория, колея) и 奇跡 (чудо) хираганой пишутся одинаково: きせき.
JloJle4Ka # 0 ⇈
eukaryote # 0 ⇈
Кстати, ещё можно привести аналогию с записями числительных в русском: "2-й", "во 2-м", "2". Здесь "2" — это как иероглиф, а окончания — как кана (например, 早い [hayai] быстрый, 早く[hayaku] быстро), при этом слово можно записать полностью без "иероглифа" ("второй" вместо "2-й", はやい вместо 早い), и "иероглиф" может читаться в разных случаях по-разному ("два", "втор-", а иногда и вообще 20 "двадцать" или 12 "двенадцать", при этом произношение нельзя разделить на отдельные "иероглифы").
Примерно такая же штука и с кандзи, например 月 (луна) как отдельное слово читается японским чтением [tsuki], в составных словах китайским чтением [getsu, gatsu] (五月 [gogatsu] май, 月曜日 [getsuyoubi] понедельник), а иногда и вообще слово полностью читается нестандартно и не делится на иероглифы (海月 [kurage] медуза).
В китайском проще — там ханьцзы читаются однозначно (за редким исключением).
JloJle4Ka # 0 ⇈
シ
ツ
ソ
ン
Вот нахуя было такое делать? Ладно, в русском тоже есть Ц, Ш, Щ, но они хотя бы читаются похоже, в отличие от.
gologub # 0 ⇈
eukaryote # 0 ⇈
Но это мелочи по сравнению с кандзи. Как тебе такие пары: 未 末, 土 士, 氷 永, 運 連, 戌 戍, 日 曰 (戍 и 曰 правда практически не употребляются, но тем не менее).
3oJIoTou_xyu # 0 ⇈
>> ン
Это смайл для угнетённых циклопов сделали? Вот всех угнетают а вот да, о циклопах никто не вспоминает.
vistefan # 0 ⇈
bormand # 0 ⇈
А читать как? 😉
Годами надрачивать мозг, чтобы он эти нюансы на автомате отличал?
vistefan # 0 ⇈
Если при этом ещё навык выработать, я думаю будет значительно проще, чем для японца и китайца произнести наш звук, который даёт буква "ж"
eukaryote # 0 ⇈
Если ты умеешь писать (только писать правильно, следуя порядку начертания штрихов, а не абы как), то и читать легко, потому что понимаешь принцип, по которому они отличаются.
Кана учится за пару дней, максимум — неделю, это же как обычный алфавит, только слова читать ещё проще, потому что как пишется, так и читается*, в отличие от большинства других языков (привет, английский). シ си**, ツ цу, ソ со, ン н***.
А вот на кандзи надо надрачивать годами мозг, потому что там никакой логики для чтения (вся логика осталась в китайском, фонетики там, все дела; они частично есть и в японском по наследству, но в целом всё плохо).
*В чтении каны есть нюансы типа редукции う и い, чтения おう и えい, но это больше к фонетике относится. Ну и еще は в качестве падежного показателя читается как "ва" вместо "ха", а へ — "э" вместо "хэ".
**シ читается как нечто среднее между "си" и "щи", только "щ" не растянутая, как в русском.
***ン является отдельным слогом, несмотря на то, что в нём нет гласного. Произносится как минимум тремя немного различающимися звуками в зависимости от того, где находится, но в целом очень похоже на "н".
vistefan # 0 ⇈
Desktop # 0 ⇈
JloJle4Ka # 0 ⇈
This offtopic is genyewated automaticawwy.
Offtopic index: https://index.gcode.space/.
Shitcode Miwwows and Usefuw Wesouwces:
* https://govnyokod.xyz/ (awtewnyative Shitcode)
* https://gcode.space/ (wead-onwy miwwow of Govnyokod)
* https://t.me/GovnyokodBot (Shit-code bot in Tewegwam)
* https://t.me/GovnyokodChannyew (Thematic channyew in Tewegwam)
* https://vowec.space/ (Shitcode gwossawy)
* https://app.ewement.io/#/woom/#govnyokod:matwix.owg (backup chat)
Nyote: automatic wowws awe cuwwentwy onwy cawwied out fwom the nyepeKamHbwu_nyemyx account.
Bewawe of countewfeits. Take cawe of youwsewf and youw wuvd onyes. Cook (・`ω´・)
guest # 0 ⇈
Тази офтопия се генерира автоматично.
PolinaAksenova # 0
3_dar # 0 ⇈
3_dar # 0 ⇈
Задача с двумя звёздочками: перекатить за ночь.
JloJle4Ka # 0 ⇈
guest # 0 ⇈
Coq # 0 ⇈
3_dar # 0
PolinaAksenova # 0 ⇈
3_dar # 0 ⇈
bormand # 0 ⇈
ЧТД
PolinaAksenova # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
А нормальные мусоросборщики сейчас инкрементальные, чистят кусочками и больше не лагают по 5 минут в рандомный момент.
guest # 0 ⇈
Современные GC умеют не делать stop the world, или почти не делать. Классические GC вроде бы да, могут завсинуть
https://habr.com/ru/post/116578/
JloJle4Ka # 0 ⇈
bormand # 0 ⇈
JloJle4Ka # 0 ⇈
bormand # 0 ⇈
MAKAKA # 0 ⇈
непорядок
Почему не потребовать делать это явно? Всё таки в Go принято большинство рутинных задач делать вручную, чтобы не усложнять код
3_dar # 0 ⇈
bormand # 0 ⇈
With no arguments, run a full collection.
guest # 0 ⇈
bormand # 0 ⇈
А лимитов как у жабы там нет?
guest # 0 ⇈
bormand # 0 ⇈
Да это как раз понятно... Прыщепроблема номер один: своп лучше не трогать.
MAKAKA # 0 ⇈
guest # 0 ⇈
MAKAKA # 0 ⇈
https://github.com/jupyter-xeus/xeus-cling
guest # 0 ⇈
MAKAKA # 0 ⇈
guest # 0 ⇈
MAKAKA # 0 ⇈
У JVM есть параметр xmx, ограничивающий кучу. При его достижении выпадает OOM
JloJle4Ka # 0
https://m.habr.com/ru/company/vdsina/blog/558986/
bormand # 0 ⇈
Неспроста Снаут вчера писал про r-стратегию...
bormand # 0 ⇈
Просто их изначально было мало, а теперь на фоне молодняка их не заметно. Ну не была эта профессия настолько популярной 30 лет назад.
Desktop # 0 ⇈
bormand # 0 ⇈
Ты хотел сказать "остаются уже сорок лет"?
MAKAKA # 0 ⇈
Desktop # 0 ⇈
guest # 0 ⇈
MAKAKA # 0 ⇈
guest # 0 ⇈
P.S. https://cs4.pikabu.ru/post_img/big/2015/06/22/9/1434981752_1194744087.jpg
MAKAKA # 0 ⇈
Сомнительно. Ну если речь конечно не о галёрах, где опотный менеджер командует стайкой недорогих джаваменов, которые пилят много несложных фич, а потом ходят на ебаное айти ныть
guest # 0 ⇈
bormand # 0 ⇈
MAKAKA # 0 ⇈
Нужно у дефекейта спросить
guest # 0 ⇈
Desktop # 0 ⇈
на ГК сидеть надо
https://govnokod.ru/13208#comment183452
MAKAKA # 0 ⇈
но я помню рассуждения дефейкейта про MVCC в постгре, так что я сильно сомневаюсь, что он прямо вот ничего не пишет
Desktop # 0 ⇈
в принципе, любой может так сделать, кто хочет руководить жабой, крестами, питоном, няшной. гк сила!
guest # 0 ⇈
MAKAKA # 0 ⇈
Попробуй не писать на своем С++ 10 лет, а потом что-нить понять в С++30 🙂
>ближе к бизнесу
Ну про такое я выше и писал: несложные задачи решают не очень скилоовые питухи, а ты ими коммандуешь.
Главная задача твоя понять бизнес-модель.
В таком случае можно конечно и не быть программистом
MAKAKA # 0 ⇈
Они конечно меньше его пишут, чем в двадцать пять, но вполне себе пишут.
Desktop # 0 ⇈
TOPT # 0 ⇈
JloJle4Ka # 0 ⇈
[email protected] # 0 ⇈
TOPT # 0 ⇈
© Гомер Симпсон
TOPT # 0 ⇈
Гомер когда пошел на курсы набрался там знаний - он думал из-за этого у него из головы вылетело умение водить машину, когда он шатаясь по дороге на машине сбивал все подряд. А на самом деле он просто нажрался.
MAKAKA # 0 ⇈
JloJle4Ka # 0 ⇈
Coq # 0 ⇈
MAKAKA # 0 ⇈
иногда это был первый курс
Desktop # 0 ⇈
если не считать функций продолжения рода
Coq # 0 ⇈
Coq # 0 ⇈
MAKAKA # 0 ⇈
guest # 0 ⇈
MAKAKA # 0 ⇈
guest # 0 ⇈
Ну и тиндер только для ебанутых.
MAKAKA # 0 ⇈
Во вторых если бы и собирался, то я бы не составлял такую дурацкую анекету с графой "вуз"
>ебанутых
правда? А ты как замуж вышел?
gologub # 0 ⇈
542 — оленевод
Desktop # 0 ⇈
но не подфартило
Desktop # 0 ⇈
3oJIoTou_xyu # 0 ⇈
Desktop # 0 ⇈
3oJIoTou_xyu # 0 ⇈
Не то что она с тобой на сутки. А то что она шлюхой работает первые сутки и после первого клиента, она больше не шлюха.
Desktop # 0 ⇈
3oJIoTou_xyu # 0 ⇈
bormand # 0 ⇈
... она кормит рыб в в речке или деревья в лесу.
Desktop # 0 ⇈
Desktop # 0 ⇈
JloJle4Ka # 0 ⇈
Про это даже фильм есть!
http://www.aic.sk/images/Otesanek.jpg
Desktop # 0 ⇈
gologub # 0 ⇈
https://i.postimg.cc/nLz5G5cP/beer-430134-hd-4a28ece816a2436b87ae3d82e4b76f.png
MAKAKA # 0 ⇈
https://live.1001chudo.ru/russia_1364.html
Desktop # 0 ⇈
- ну значит точно не про шлюх
MAKAKA # 0 ⇈
https://live.1001chudo.ru/russia_1364.html
Desktop # 0 ⇈
- ну значит точно не про шлюх
MAKAKA # 0 ⇈
Их самцы не жалуются, а просто сразу же умирают на месте
Desktop # 0 ⇈
Desktop # 0 ⇈
- если перед этим он не купил ей машину, квартиру и айфон, то смерть была напрасна
а если купил, то молодец
3oJIoTou_xyu # 0 ⇈
Desktop # 0 ⇈
3oJIoTou_xyu # 0 ⇈
Потому сейчас СК - Северная Корея а ГП - графический процессор
Desktop # 0 ⇈
ГП - grand prix
3oJIoTou_xyu # 0 ⇈
MAKAKA # 0 ⇈
Desktop # 0 ⇈
gologub # 0 ⇈
MAKAKA # 0 ⇈
Пошла на это ради детей, короче.
А еще хорошо это работает у пауков: самка хочет самца съесть, а он её выебать. Вот он выбигает, и должен присунуть, пока она его не съела.
некоторые лохи и присунуть-то не успевают, апросто становятся кормом
JloJle4Ka # 0 ⇈
Desktop # 0 ⇈
> на один день, чтобы поебаться, оставить потомство, и умереть
?
не будет у тебя никакой рыбалки с такими раскладами
JloJle4Ka # 0 ⇈
3oJIoTou_xyu # 0 ⇈
Desktop # 0 ⇈
KoWe4Ka_l7porpaMMep # 0
У узбеков дырявые провайдеры!
MAKAKA # 0 ⇈
Вот черт, а я доверял
Обычные ебланы с открытым SNMP на длинковском свитче
Management VLAN должен быть отделен от User VLAN
Management VLAN должен быть отделен от User VLAN
Management VLAN должен быть отделен от User VLAN
Management VLAN должен быть отделен от User VLAN
bormand # 0 ⇈
MAKAKA # 0 ⇈
gologub # 0 ⇈
t. full disclosure для пидорашек
Coq # 0 ⇈
bormand # 0
Интересно, а можно ли написать нотацию для какого-то юзабельного подмножества PHP, чтобы потом о нём что-нибудь доказывать?
Coq # 0
gologub # 0 ⇈
PHPSESSID: kodiduhogec85csne
JloJle4Ka # 0
Косяк колхозной простоты в коде веб-сайта Хабра
Я в шоке. В коде самого главного сайта программистов России, Украины и Белоруссии, который должен быть эталогом качественного веб-программирования - явный баг. Я редактирую профиль, пишу свой день рождения - 22 декабря, сохраняю, а оно выводит для всех как 21 декабря. Был Козерогом, стал Стрельцом.
JloJle4Ka # 0 ⇈
Судьба предателя, угнавшего новейший МиГ-25 в Японию
TOPT # 0 ⇈
JloJle4Ka # 0 ⇈
TOPT # 0 ⇈
JloJle4Ka # 0 ⇈
JloJle4Ka # 0 ⇈
Храбру ДР. А Вы ему, публично, "ширинку застегни"! А ведь сами ровестник Unix. Гришковец жаловался, в Одновременно на эту самую неприятность. Мол, проверяет теперь, перед выходом на сцену, привычным жестом.У Гагарина, помню шнурок развязался. А он военный! Подходит он за наградой, а ему - почему по форме не одеты!
PS. Но надо застегнуть, да. Не 90, 15. Здоровья, Храбр!
JloJle4Ka # 0 ⇈
Я не веб-программист и совсем не представляю как работает что client, что server часть. Я когда-то в 20 веке был программистом компиляторов, но потом перешёл сначала в верификацию микросхем, а потом в проектирование микросхем. Я как-раз сделал этот пост, чтобы из реакций получить туманное представление, как код на телефоне взаимодействует с кодом на сервере веб-сайта.
MAKAKA # 0 ⇈
Sad, but true
gologub # 0 ⇈
а вот смазливый секс-символ ватников дядя Гага на самом деле никуда не летал, то был магнитофон и прыжок с пашотом, чем и объясняется рассинхрон радиопереговоров и путаница в показаниях соответственно
https://i.postimg.cc/CKBDK9Y3/1490804600861.jpg
gologub # 0 ⇈
JloJle4Ka # 0 ⇈
JloJle4Ka # 0 ⇈
bormand # 0 ⇈
Таймзоны такие таймзоны? Или статья о другом?
JloJle4Ka # 0 ⇈
https://govnokod.ru/27439#comment630002
Чувак не имеет понятия как же так программисты веб-сайта могли допустить такой баг.
MAKAKA # 0 ⇈
схуя бы? И что такое "эталог"?
bormand # 0 ⇈
Нет сынок, это фантастика...
JloJle4Ka # 0 ⇈
bormand # 0 ⇈
Поэтому из "быстро, дёшево, охуенно" всегда выбирают или "быстро" или "дёшево". Делать что-то с приличным качеством экономически нецелесообразно.
gologub # 0 ⇈
а вот почему на швабре козий рог - вот это вопрос
MAKAKA # 0 ⇈
По моему мнению, Хабр едва ли для программистов. В Рунете есть специализированные такие популярные сайты/форумы для программистов, как Киберфорум
[/quotte]
блядьчто?
PolinaAksenova # 0 ⇈
PHP для начинающих
Форум программистов PHP. Вопросы начинающих по PHP. Помощь в решении задач на PHP.
PolinaAksenova # 0 ⇈
Нядо же, прямо переиспользование кода!
MAKAKA # 0 ⇈
Особенно приятно, что метод приватный. То есть код еще и инкапсулирован, как положено.
JloJle4Ka # 0 ⇈
PolinaAksenova # 0 ⇈
MAKAKA # 0 ⇈
https://www.cyberforum.ru/visual-cpp/thread2837747.html
https://www.cyberforum.ru/visual-cpp/thread2832834.html
PolinaAksenova # 0 ⇈
Между прочим, для C++ — крайня сложная задача.
MAKAKA # 0 ⇈
PolinaAksenova # 0 ⇈
> целых, дробных, отрицательных
Ня так давно на ГК обсужали, что реализовать FSM для парсинга плавающих няшек во всех допустимых видов — задачка весьма и весьма нятривиальняя.
MAKAKA # 0 ⇈
или о том, что нужно всякие нотации ебанутые не понять?
Типа "-1.2E-42" ?
PolinaAksenova # 0 ⇈
gologub # 0 ⇈
сразу надо кидать же
bormand # 0 ⇈
> сразу выводилась ошибка
Т.е. ещё и буферизацию отключать? Боюсь, что в рамках Стандарта эта задача вообще неразрешима.
MAKAKA # 0 ⇈
PolinaAksenova # 0 ⇈
Как сделать O(N^3) ня ровном месте.
И ведь автора кто-то этому няучил, искренне считая, что это "C++".
MAKAKA # 0 ⇈
>> #include <stdio.h>
>> #include <cstring>
сразу видно, что разные кусочки из разных мест скопировал
PolinaAksenova # 0 ⇈
MAKAKA # 0 ⇈
Начинать с С++ это как начинать изучать русский язык со стихов Хлебникова
PolinaAksenova # 0 ⇈
MAKAKA # 0 ⇈
На том форума половина вопросов это скопированные откуда-то лабы
bormand # 0 ⇈
MAKAKA # 0 ⇈
блин, ну бог с ним с strlenом каждый раз, но в s2 же наверняка есть свой size() ?
И вообще std::replace
Иначе зачем С++?
bormand # 0 ⇈
Причём он работает за O(1), в отличие от.
MAKAKA # 0 ⇈
PolinaAksenova # 0 ⇈
bormand # 0 ⇈
З.Ы. Походу на ГК могут придумать задачу под любой код, даже самый ёбнутый.
bormand # 0 ⇈
Ну а кто виноват, что конпелятор тупой и не может пруфануть, что длина s2 результат вызова strlen(s2) не меняется на протяжении цикла?
З.Ы. Мы знаем, что от 0 до strlen(s2) - 1 в строке нет нулей, т.е. запись точки не может сбить инвариант. А других записей в цикле нет.
PolinaAksenova # 0 ⇈
В принципе, авторы компилятора могли бы и костыль захардкодить для таких случаев, но это костылей ня напасёшься — каждый говнокод подпирать.
MAKAKA # 0 ⇈
gcc имеет полное право знать про glibc
bormand # 0 ⇈
Тем более это стандартная функция, сёмантика которой строго определена.
bormand # 0 ⇈
Вообще говоря есть... Эти суки знают про сёмантику всяких memcpy и умеют её в обе стороны реплейсить.
З.Ы. У меня так моя реализация memcpy превратилась в бесконечную рекурсию.
PolinaAksenova # 0 ⇈
bormand # 0 ⇈
Кстати, посмотри в какое говнище раскрывается strlen() на gcc чтобы с литералами быстрее работало.
З.Ы. Или они его больше не обмазывают в макросню? Походу нет.
PolinaAksenova # 0 ⇈
PolinaAksenova # 0 ⇈
> Ну а кто виноват, что конпелятор тупой и не может пруфануть, что длина s2 результат вызова strlen(s2) не меняется на протяжении цикла?
Вообще говоря, в общем случае меняется.
То есть компилятор должен доказать, что:
1. Мы ня пишем \0;
2. Мы пишем только в часть строки до первого \0.
При этом нам активня мешает type punning из-за записи в char *. Выглядит как очень нятривиальняя оптимизация непонятня для чего.
bormand # 0 ⇈
Именно поэтому ня за иммутабельность. По крайней мере сёмантическую, под капотом пусть пишет.
PolinaAksenova # 0 ⇈
https://gcc.godbolt.org/z/14fYc4aj7
Ожадаемо, функция с записью собралась в обычный квадрат. А вот функция без записи раскукоживается в хтоническое:
[ЧИТАТЬ ДАЛЕЕ...]
bormand # 0 ⇈
Мда, этому конпелятору больше не наливать... Неужели это работает быстрее?
PolinaAksenova # 0 ⇈
Видимо, с -O3 он оптимизирует для строк гигабайтных размеров.
guest # 0 ⇈
блядть какой пиздец
верните мне мой Borland C++ под реальный режим
bormand # 0 ⇈
MAKAKA # 0 ⇈
Панка раздавил каток. Его нашли люди, и решили, что это ковёр.
Принесли домой, положили перед дверью, стали вытирать ноги.
Через год ковёр испачкался, его постирали, и повесили сушиться на ветру
Панк простудился, и умер
зы: pUnknown
gologub # 0 ⇈
MAKAKA # 0 ⇈
gologub # 0 ⇈
чем древнее, тем больше таких ограничений
PolinaAksenova # 0 ⇈
> PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ/PUNPCKHQDQ — Unpack High Data
[email protected] # 0 ⇈
Обкуренные данные
Coq # 0 ⇈
MAKAKA # 0 ⇈
Coq # 0 ⇈
gologub # 0 ⇈
gologub # 0
JloJle4Ka # 0 ⇈
PolinaAksenova # 0
> Сбербанк нарушает правила платёжной системы «Мир»
> Издание «Ъ» получило информацию о запрете Сбербанка на пополнение его карт в банкоматах сторонних банков от других участников рынка. В службе поддержки банка подтвердили, что пополнение карт «Мир», выпущенных Сбербанком, в сторонних банкоматах не предусмотрено.
> Алексей Антонов, главный аналитик ГК «Алор», считает решение Сбербанка нарушением клиентоориентированного подхода.
JloJle4Ka # 0 ⇈
> Сбербанк крадёт деньги!!!
> Сбербанк увеличил комиссию на 1%
> Главный аналитик говнокода, А. А., считает это кражей деняг.
bormand # 0 ⇈
Лол, всю жизнь нарушали и вот опять? Мало в каком банке бесплатный роуминг. В тинькове разве что, потому что у них выхода нет.
З.Ы. Емнип, раньше они и в своих умудрялись конскую комиссию брать, потому что регион другой.
MAKAKA # 0 ⇈
А я думал, тут Сёма главный аналитик
gologub # 0 ⇈
альзо,
> Сбербанка
> клиентоориентированного подхода
радуйтесь лучше, что с вас за этот ТРЕТИЙ РИМ не лупят ₽750/год как планировали
guest # 0 ⇈
Desktop # 0 ⇈
guest # 0 ⇈
bormand # 0
Какой простор для ИИ )))
JloJle4Ka # 0 ⇈
Сём, ты зачем борманда взломал?
> спортивные залы и т.п.
скорее уж курсы программирования, аниме-штучки...
JloJle4Ka # 0 ⇈
bormand # 0 ⇈
[email protected] # 0 ⇈
Вот тут сложно определить, нужно спортзал рекламировать, или Макдональдс. Может, сидеть чихать человек в 130 кг хотел на спортзалы, у него девиз — центнер не предел. Нужно ещё историю поиска и сообщения анализировать.
guest # 0 ⇈
bormand # 0 ⇈
vistefan # 0 ⇈
А ебальники распознают совсем для другого и за другие деньги
nuTepcKuu_nemyx # 0
Этот оффтоп сгенерирован автоматически.
Индекс оффтопов: https://index.gcode.space/.
Зеркала Говнокода и полезные ресурсы:
* https://govnokod.xyz/ (альтернативный Говнокод)
* https://gcode.space/ (read-only зеркало Говнокода)
* https://t.me/GovnokodBot (Говнокод-бот в «Telegram»)
* https://t.me/GovnokodChannel (Тематический канал в «Telegram»)
* https://vorec.space/ (глоссарий Говнокода)
* https://app.element.io/#/room/#govnokod:matrix.org (резервный чат)
Примечание: автоматические перекаты в настоящее время осуществляются только с аккаунта nepeKamHblu_nemyx.
Остерегайтесь подделок. Берегите себя и своих близких. Кок!
bormand # 0 ⇈
H2: Этот оффтоп сгенерирован автоматически.
H3: Автоматические перекаты в настоящее время осуществляются только с аккаунта nepeKamHblu_nemyx.
-> Сейчас не настоящее время?
nuTepcKuu_nemyx # 0 ⇈
Тут ошибка
gologub # 0 ⇈
nuTepcKuu_nemyx # 0 ⇈
gologub # 0 ⇈
Coq # 0 ⇈
JloJle4Ka # 0 ⇈
Да, уже прошедшее, так что всё логично.
MAKAKA # 0
Отмечается, что соответствующее объявление девушка выложила на одном из сайтов. Свой гонорар за такой "актив" она оценила в 2000 долларов США. На предложение откликнулся 37-летний Геворг П., однако "сделка" состоялась не сразу — партнёрам потребовался месяц на сближение.
В этот период пара посещала рестораны, гуляла, а по истечении срока в отеле молодые люди всё же осуществили половой акт. Однако после мужчина заявил, что вместо денежного гонорара хочет презентовать девушке новый iPhone 12 Pro. Студентка согласилась на предложение, но не стала распаковывать телефон при мужчине, оставив это на потом.
Придя домой, девушка обнаружила в коробке смартфон с двумя сим-картами и поняла, что это подделка — он был на операционной системе Android. Обманутая горе-"предпринимательница" обратилась в полицию. Правоохранители проводят проверку.
------
А вы пользуетесь ios или android?
bootcamp_dropout # 0 ⇈
MAKAKA # 0 ⇈
bootcamp_dropout # 0 ⇈
bootcamp_dropout # 0 ⇈
MAKAKA # 0 ⇈
bootcamp_dropout # 0 ⇈
gologub # 0 ⇈
армянское радио, расходимся
MAKAKA # 0 ⇈
gologub # 0 ⇈
• брехливый подзалупный сортирный листок подзалупно брехлив как обычно, т.е. стабильность
• у щелкоперов в целом сейчас наступил огуречный сезон, читатели всякой херни свалили на фазенды, так что приходится в меру своих способностей сочинять вот такое чтобы хоть как-то компенсировать
• селедка все равно осталась в плюсе, доила несчастного хачика целый месяц, что как раз составит разницу между айфоном и хуевеем
Desktop # 0 ⇈
bormand # 0 ⇈
С чистосердечным признанием?
[email protected] # 0 ⇈
Desktop # 0 ⇈
gologub # 0 ⇈
vistefan # 0 ⇈
gologub # 0
https://www.zerohedge.com/images/Backgrounds/exit-modal.jpg
JloJle4Ka # 0
Сёма пишет на хабр!
Чем поживиться айтишнику на барахолке?
Маклауд, Старое железо, DIY или Сделай сам, Лайфхаки для гиков
MAKAKA # 0 ⇈
Там я купил диск с телефонно-адресной базой. А еще там в рассыпную продавалась память, процы, и всякое вот это всё
собссено вот
https://habr.com/ru/post/118474/
но уже лет двадцать как не торт, разумеется
Desktop # 0 ⇈
одесситка не жена
guest # 0
Coq # 0
А за всем этим стоит какой-то ебучий менеджер, который уже отчитался о росте метрик и ждёт свою премию.
gologub # 0
альзо, мейлру должно срадать, why not?
guest # 0 ⇈
Coq # 0
gologub # 0
Desktop # 0 ⇈
gologub # 0 ⇈
Desktop # 0 ⇈
gologub # 0 ⇈
guest # 0
guest # 0
Нихуя не найдено
JloJle4Ka # 0 ⇈
ISO # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
Desktop # 0 ⇈
Desktop # 0
о различиях MVC и MVVM
guest # 0 ⇈
guest # 0 ⇈
Я за MVVM, потому что привязка данных это чаще всего хорошо (кроме случаев, когда представление очень уж сильно отличается от модели).
Есть еще MVP..
vistefan # 0 ⇈
MAKAKA # 0 ⇈
Проблема: слишком сильная связанность view на модель, и слишком много во view логики (неудобно тетсировать)
MVP: view пассивен. Presenter слушает model, и изменяет по ней view. Логика теперь вся в Presenter, а View стала совсем тупой (что приятно, потому что тестировать view неприятно).
Проблема: нужно писать много тупого бойлерплейта по работе с view в презентере.
Взял из модели значение типа boolean, и поставил checked у вьюшного чекбокса. Уныло.
MVVM: у view есть своя модель (view model) к которой вью забайнджен (привязан).
Когда ты меняешь view model -- меняется view, и наоборот.
Больше не нужно презентеру считывать значение из инпутбокса (и превращать его в число и валидировать итд).
Больше не нужно презентеру писать значение в бегунок.
Теперь и инпутбокс и бегунок привязаны к модели с обычными полями типа int (или bool или что там нужно). Ты просто меняешь их, и течешь.
ViewModel может сама отсылать данные в настояущую модель, а может быть и презентер, это уже не важно.
Важно, что именно для вью у нас своя модель, и она привязана, потому императивно кодом ходить в виджеты больше не нужно.
Тестировать стало хорошо: можно тестировать viewmodel, а её корректное отображение уже дело фреймворка.
Так вижу
vistefan # 0 ⇈
MAKAKA # 0 ⇈
Но он сделал это универсально.
Desktop # 0 ⇈
MAKAKA # 0 ⇈
В MVVM же у тебя всё привязано
vistefan # 0 ⇈
MAKAKA # 0 ⇈
View ничего про базу не знает. Красивый inputbox привязан к полю "lastName" некоей ViewModel. Когда это поле в viewmodel изменяется --- автоматически меняется и view.
Как именно это поле поменяется view не интересует
Причем привязка может быть в обе стороны. Когда я заполнил инпутбокс -- он автоматом (привязкой) поменял поле ViewModel. А оно может автоматом сохранить его в базу.
Но если это СУБД, то наверное лучше у ViewModel иметь отдельный метод save(), который привязан к кнопке на вью
Desktop # 0 ⇈
MAKAKA # 0 ⇈
Тебе просто никогда не нужно писать (псевдокод)
Это дорогого стоит.
vistefan # 0 ⇈
ViewModel.bind(model.name, view.name)?
MAKAKA # 0
https://kayrosblog.ru/wp-content/uploads/2010/03/Elektronika-I-Fon-kakim-by-byl-sovetskij-iPhone.jpg
vistefan # 0 ⇈
MAKAKA # 0 ⇈
Именно тогда, макая его в манную кашу, я решил связать свою жизнь с компьютерами
gologub # 0 ⇈
небось опять корявый пижженый клон Sharp чи Casio
vistefan # 0 ⇈
vistefan # 0 ⇈
PolinaAksenova # 0
> Транспортный протокол QUIC приняли в качестве стандарта RFC 9000
А вы уже перешли на куик?
JloJle4Ka # 0 ⇈
> Куик
Может быть, для этого Роман Кошицын пропадал?
PolinaAksenova # 0 ⇈
JloJle4Ka # 0 ⇈
Или ты про то, что QUIC работает поверх UDP, т.е. не высылает снова и снова пакетики, а просто их ТЕРЯЕТ?
Ну правильно, у всех в 2021 году должно быть хорошее интернет соединение без разрывов и потери пакетов.
j123123 # 0 ⇈
gologub # 0 ⇈
JloJle4Ka # 0 ⇈
gologub # 0 ⇈
bormand # 0 ⇈
JloJle4Ka # 0 ⇈
bormand # 0 ⇈
MAKAKA # 0 ⇈
BFG'9000
MAKAKA # 0 ⇈
bormand # 0 ⇈
MAKAKA # 0 ⇈
Я триггернулся на слово "транспортный"
Если он поверх UDP, то умеет, конечно
-------
Моя еблан, извините
В вики написано в первом предложени, что он поверх UDP.
bormand # 0 ⇈
Как-то так, да. Никто сейчас в здравом уме не полезет пихать новый протокол поверх IP.
MAKAKA # 0 ⇈
gologub # 0 ⇈
но конечно скриптухи на прыщебейсике останутся без работы
JloJle4Ka # 0 ⇈
gologub # 0 ⇈
несколько десятков раз хотел сесть и научиться, но...
https://i.postimg.cc/mZCcxsxf/11-jpeg624bb83d4af2305debc51d190609315e.jpg
vistefan # 0 ⇈
bormand # 0 ⇈
gologub # 0 ⇈
CHayT # 0 ⇈
bormand # 0 ⇈
CHayT # 0 ⇈
Но контора мелкая, так что релоцировать никого не выйдет T__T. Но удалённо с консультантами по всему миру мы работаем, так что достаточно иметь ИП "Кэтгёл Системс".
bormand # 0 ⇈
Мы придерживаемся мнения, что C++ — язык простой, и его можно изучить за пару десятков лет.
MAKAKA # 0 ⇈
gologub # 0 ⇈
> небольшой пет-проект
если взять небольшой пет-проект эрланг и сделать на нем небольшой пет-проект эрланг²...
Desktop # 0 ⇈
– нескрепно как-то
CHayT # 0 ⇈
bormand # 0 ⇈
Предложение интересное, но к сожалению я текущую работу пока бросать не хочу. А совмещать с фулл-таймом будет жестковато.
guest # 0 ⇈
CHayT # 0 ⇈
JloJle4Ka # 0 ⇈
Desktop # 0 ⇈
bootcamp_dropout # 0 ⇈
bormand # 0 ⇈
bootcamp_dropout # 0 ⇈
MAPTbIwKA # 0 ⇈
Desktop # 0 ⇈
Одна даёт, другая фамильяр
3oJIoTou_xyu # 0
Неделюку так назад, я написал что хочу ритм игру со своими загружаемыми треками. Неделю гугления вообще нихуя положительного не дал, кроме информации о FFT и чтение пиков в определеных частот, которая дает вообще НЕХУЯ, так как отсувствует информация о текущем БПМ в промежутках между семплами.
Обсудил с несколькими человеками эту хуйню, почти все пришли к единому мнению.
А вы скажите свое мнение или совет или наводку где что как с этой хуйней работать.
bormand # 0 ⇈
А про FFT -- да, когда ты переводишь сигнал в частотную форму, ты теряешь инфу о времени. И наоборот. Поэтому надо через небольшие окна смотреть на спектр, а не всю mp3'шку FFT'шить...
3oJIoTou_xyu # 0 ⇈
Да. Яж не буду перед игрой просить человека "настучите бит".
Проблема в том что именно загрузкой произвольного трека появляется такая хуйня. Если бы свои трэки то и в рот ебать и FFT не нужен и нихуя не нужно.
На самом деле интересная тема.
bormand # 0 ⇈
А почему нет? Во вступлении понажимает, дальше игра сама под него подстроится, не придётся даже оффсеты крутить под себя)
3oJIoTou_xyu # 0 ⇈
3oJIoTou_xyu # 0 ⇈
MAKAKA # 0 ⇈
ну вы же не про лайтвейт компоненты из гуя джавы
3oJIoTou_xyu # 0 ⇈
gologub # 0 ⇈
JloJle4Ka # 0 ⇈
Какая ritmoteka )))
gologub # 0 ⇈
3oJIoTou_xyu # 0 ⇈
vistefan # 0 ⇈
Полным графиком звука можно считать спектрограмму, она в 2д рисуется как разноцветная, громкость отображается яркостью точки.
MAKAKA # 0 ⇈
Я только знаю способ нарезки его, как в olap кубах
vistefan # 0 ⇈
vistefan # 0 ⇈
Плоскость, два измерения её это два измерения четырехмерного пространства, цвет точек это третье измерение, и во времени они меняются - четвёртое.
TOPT # 0 ⇈
vistefan # 0 ⇈
vistefan # 0 ⇈
bormand # 0 ⇈
Там руками потом можно подкрутить или даже зону с другим бпм создать. Всё равно всё расставляется полностью вручную, на усмотрение автора карты, сетка и замер -- это больше для удобства. Можно вообще мимо сетки ебашить.
> Код Осу не свободный
Оригинального клиента -- нет. Но вообще сейчас пилят свободную версию. Х.з. есть ли в ней редактор.
TOPT # 0 ⇈
3oJIoTou_xyu # 0 ⇈
vistefan # 0 ⇈
JloJle4Ka # 0 ⇈
3oJIoTou_xyu # 0 ⇈
vistefan # 0 ⇈
Советую поискать бпм в merzbow, masonna
vistefan # 0 ⇈
3oJIoTou_xyu # 0 ⇈
vistefan # 0 ⇈
PolinaAksenova # 0 ⇈
vistefan # 0 ⇈
Нутк а хули, если ты собираешься ритмик игру делать, нахуй тебе трек с переменным темпом не качовым (человека качает лучше всего прямая бочка, как известно), или акустика с неразличимым по громкости битом.
А если юзер такой трек выберет, ссзб, хули. В некоторой музыке и человек сетку не разберёт, чо теперь?
Не знаю что ты там гуглил, вроде как это называется Beat detection и должно быть прилично материалов на эту тему, это дохуя где реализовано.
TOPT # 0 ⇈
vistefan # 0 ⇈
nuTepcKuu_nemyx # 0 ⇈
vistefan # 0 ⇈
bormand # 0 ⇈
Запрещённой на территории РФ?
vistefan # 0 ⇈
OCETuHCKuu_nemyx # 0
CkpunmoBbIu_nemyx # 0 ⇈
bormand # 0 ⇈
MAKAKA # 0 ⇈
bormand # 0 ⇈
А сеть в кресты по-моему так и не завезли. Только буст, только хардкор.
MAKAKA # 0 ⇈
Просто если никак, если это просто елд такой, то это примерно как класс реализовать с * и ++ и сказать, что это итератор
bormand # 0 ⇈
В бусте ещё есть другая реализация корутин с переключением стека. Но они дороже выходят.
MAKAKA # 0 ⇈
https://www.boost.org/doc/libs/1_40_0/doc/html/boost_asio/reference/basic_stream_socket/async_read_some.html
bormand # 0 ⇈
Если с++20 корутин нету, можешь на старых stackful корутинах (файберах) попробовать. Тоже примеры в доке есть.
MAKAKA # 0 ⇈
Признаться, я еще не видел завоза корутин без асинхронного ио в языки. Разве что lua...
bormand # 0 ⇈
Тут корутины то со скрипом затащили, и на том счастье... Им нужна поддержка со стороны конпелятора (тот самый конечный автомат генерить), просто либой их не сделать.
А асинхронное ио пока можно из буста брать, всё равно стандарт де-факто. Сокеты, я так понимаю, ещё лет 5-10 в кресты не завезут. А если и завезут, то это будет переименованное asio.
bormand # 0 ⇈
nuTepcKuu_nemyx # 0 ⇈
PolinaAksenova # 0 ⇈
PolinaAksenova # 0 ⇈
Ня Python.
MAKAKA # 0 ⇈
Или это слишком лоулевел?
bormand # 0 ⇈
MAKAKA # 0 ⇈
Есть всякие libuv, но они тоже няшные
CHayT # 0 ⇈
guest # 0 ⇈
MAKAKA # 0 ⇈
Так-то понятно уже, что ответ boost::asio
nuTepcKuu_nemyx # 0 ⇈
B и C могу выполняться параллельно.
Я хочу написать без лапши:
Или ты про другое?
bormand # 0 ⇈
asio -- это всё таки чтобы вертеть тыщи запросов на хую и десятке ядер. Для такой задачки может оказаться оверкиллом, особенно изучение -- там, к примеру, синхронизация нестандартная, strand'ы вместо привычных лочек.
nuTepcKuu_nemyx # 0 ⇈
MAKAKA # 0 ⇈
Тогда да, асинк это вей ту го
Просто если каждый запрос простые числа ишет, и вы CPU bound, то смысла в асинке нет
bormand # 0 ⇈
Ну asio -- это всё-таки не чистый async, он умеренную нагрузку по CPU тоже может пережить, в отличие от однопоточных серваков. Тредпул по сути.
MAKAKA # 0 ⇈
В питоне не умеет, само собой, бо GIL
PS: Эти игры с асинком и корутинами кончатся тем, что милениалы изобретут акторы
guest # 0 ⇈
MAKAKA # 0 ⇈
Алсо:
https://ru.wikipedia.org/wiki/C10k
guest # 0 ⇈
MAKAKA # 0 ⇈
Ты или ждешь данные, или читаешь и процессишь пришедшие.
Ждать ты можешь данные из 10000 сокетов, а вот процессить ты можешь только 32 соекета одновременно, у тебя ведь 32 ядра (или сколько их там).
guest # 0 ⇈
MAKAKA # 0 ⇈
Вот у тебя в буфере лежит слово "хуй" -- от вет из каждого запроса.
10К хуёв у тебя есть
Тебе нужно каждому хую сделать toupper первой букве.
Как ты можешь сделать это одновременно для 10К хуев, если у тебя всего 32 ядра?
vistefan # 0 ⇈
MAKAKA # 0 ⇈
А "Хуй" это как $FOO или spam
guest # 0 ⇈
Я в 32 потока читаю все запросы и складываю в массив. Далее создаю 10000 коннекшенов к govnokod.ru/{i} и жду каждый. CPU эта операция особо не требует. Как только какой-то i-й готов, я отвечаю юзеру.
MAKAKA # 0 ⇈
Это ты описал асинхронный подход, потому что в синхронном ожидание блокирует тред.
Однако ты всё равно ограничен ядрами: если тебе пришло 64 ответа с govnokod.ru, то ты не сможешь одновремено передать их пользователям: ядра у тебя только 32 (если ты не запрограммируешь железку делать это за тебя, лол)
guest # 0 ⇈
MAKAKA # 0 ⇈
Если там TLS, то может быть копейки будут стоить чуть-чуть дороже.
Короче, не существует смысла иметь потоков сильно больше, чем ядер. Именно потому они и завезли асинхронность..
MAKAKA # 0 ⇈
Потом они получают данные, но шедулер не может разбудить более 32-х потоков (потому что 32 ядра всего). Так что остальные всё равно спят, но уже не потому, что нету данных, а потому, что нет места в ядрах.
В асинхронном подходе ты сообщешь операционке что ждешь 10К сокетов, и просишь её как по одному из них придут данные -- сообщить тебе.
Данные эти ты обрабатываешь в одном из 32-х потоков в пуле.
Так что потока у тебя всего 32 или 33, а это лучше, чем 10К потоков
А эффект тот же
guest # 0 ⇈
vistefan # 0 ⇈
MAKAKA # 0 ⇈
Другой способ её решения это промисы.
сами процедуры могут хоть на других потоках срать
хуй знает завезли ли в вам в кресты либу с промисами
bormand # 0 ⇈
std::promise/std::future
MAKAKA # 0 ⇈
Осталось сделать промисные IO, ну либо нахуевертить на потоках (но если у них реально 10К запросов, то конечно нет)
MAKAKA # 0 ⇈
https://www.boost.org/doc/libs/1_68_0/doc/html/boost_asio/reference/use_future_t.html
Я верно понимаю, что азио умеет и через фьючеры работать, и можно так-то вовсе без корутин?
А как оно под капотом работает? Платформозависмым асинхронным io?
bormand # 0 ⇈
Угу. Там IOCP или epoll, который коллбеки о завершении операций закидывает в очередь на исполнение. Ну и пул тредов ждёт на этой очереди.
Плюс там немного оптимизаций есть, когда коллбек может сразу триггернуться на текущем треде, чтобы не тратить время на запихивание в очередь. И немного магии со strand'ами вместо мутексов чтобы треды не ждали лочек.
MAKAKA # 0 ⇈
С корутинами конечно приятнее, потому что эмулируется "стек" (всмысле у корутин бывают "локальные переменные"), но впринципе и без него можно
bormand # 0 ⇈
Потом добавили файбер-корутины чтобы лапши поменьше стало (у них настоящие стеки). Потом поддержали c++20 корутины.
Можешь что-то своё приделать при желании.
MAKAKA # 0 ⇈
bormand # 0 ⇈
Но жопа в том, что future блочатся и ждут когда достаёшь значение. Без корутин это неюзабельно, как мне кажется.
MAKAKA # 0 ⇈
bormand # 0 ⇈
MAKAKA # 0 ⇈
Вот я послал 42 запроса в разные сервисы. У меня теперь есть 42 фючера.
Я могу их всех wait.
А с коллбеком бы я как ебался? В каждом колбеке семафор крутил?
bormand # 0 ⇈
Скорее strand и свой счётчик. Счётчик обнулился -- значит все задачи закомплитились и можно дальше что-то сделать с их результатами. Можно один раз такой кобенатор написать, наверное, и просто заворачивать в него группы задач.
Семафоры и мутексы в asio категорически запрещены. Ну, как и в любой другой асинхронщине, я думаю. Можно не проснуться.
MAKAKA # 0 ⇈
Он там безсмысленен, ведь нет никаких гарантий на каком потоке исполнится мой код, да и блокировать его нельзя.
кокошные корутины могут после суспенда вообще переехать на другой поток. Что будет, если взять лочку, и внутри суспенднуться можно только гадать
bormand # 0 ⇈
MAKAKA # 0 ⇈
А что если делегировать обработку подключений сетевой карте?
Она же умеет "TCP Chimney Offload", так давайте научим её и файлики сервать.
Вы же пишите шейдеры под свои GPU, так пишите код под процессоры NICов.
Слава богу со времен PCI карты имеют доступ к памяти, так пускай читают оттуда файл, и отдают.
А CPU будет в это время отдыхать
PS: Ну вот кое-какие подвижки есть
https://conferences.sigcomm.org/events/apnet2020/material/apnet20-final24.pdf
Но нужно именно программировать под нее
bormand # 0 ⇈
vistefan # 0 ⇈
MAKAKA # 0 ⇈
vistefan # 0 ⇈
MAKAKA # 0 ⇈
В моем детстве я просто мапил себе видеопамять (кастил число в указатель в борланд си, там был какой-то макрос даже) и писал туда данные, и они рисовались на экране (это был режим 13h, я срал-ебал планары).
Потом я рисовал какую-то хуйню через 2D уже в винде, и BitBltил её в активную страницу.
Теперь они реально пишут на языке программирования под GPU.
----------
Есть и обратный пример: системы хранения: когда-то ты должен был управлять мотором и головой (что позволяло тебе сыграть "чижик-пыжик" на FDD), а теперь ты можешь только пакет данных записать.
Конечно, CPU ты дрочишь меньше, но и гибкости стало меньше
vistefan # 0 ⇈
MAKAKA # 0 ⇈
Ну а кроме шуток?
CPU нужен, чтобы была гибкость: сегодня у тебя винда, а завтра Linux.
В случае NIC у меня с вероятностью 90% или TCP или UDP и TLS поверх (в случае нагруженной хуйни).
Почему не вынести это всё в железо?:)
vistefan # 0 ⇈
Да? Я только про ардуину с встроенным интерпретатором знаю, и про армы с жс арифметикой
> сегодня у тебя винда, а завтра Linux.
Сегодня ты играешь джаз
А вообще порядок правильный
MAKAKA # 0 ⇈
"Все мы будем в конце концов писать на JavaScript" (c) мой коллега
>и про армы с жс арифметикой
О, да! Железячники прогнулись под питухов, у которых нет разницы между int и float. Одна из причин, по которой я хочу обратно в 1997-й.
Есть микропайтон, но он немногим лучше:)
CHayT # 0 ⇈
bootcamp_dropout # 0 ⇈
MAKAKA # 0
bormand # 0 ⇈
MAKAKA # 0 ⇈
vistefan # 0 ⇈
DIY!
nepeKamHblu_nemyx # 0
https://govnokod.ru/27449
https://govnokod.xyz/_27449/
MAKAKA # 0
[quote]
I took a few stupid years trying to be the CEO of a growing company during which I didn’t have time to code, and when I came back to web programming, after a break of about 10 years, I found Node, React, and other goodies, which are, don’t get me wrong, amazing? Really really great? But I also found that it took approximately the same amount of work to make a CRUD web app as it always has, and that there were some things (like handing a file upload, or centering) that were, shockingly, still just as randomly difficult as they were in VBScript twenty years ago.
[/quote]
То есть этому VBS программисту никто не показал ORMы? Entity Framework? Spring MVC? Полностековые фреймворки типа Rails и Django?
Что за хуйню он несет?
bormand # 0 ⇈
Зачем расстраивать человека? Пусть думает, что сейчас кода пишут столько же, а не больше...
MAKAKA # 0 ⇈
Вот кстати что бывает с людьми, которые 20 лет не программируют: они перестают быть программистами.
Спольски и был-то, в общем, не Кармак, а теперь и вовсе испортился
bormand # 0 ⇈
Попробуй сваять сайт из 2000 на каком-нибудь спринге.
MAKAKA # 0 ⇈
Приведи пример чего-то, чего нельзя сделать на современных фреймворках
bormand # 0 ⇈
Атмосферу безумия и неоднородности. Ты ведь не сможешь пересилить себя и сделать разные вьюхи для одного и того же контента в разных местах. А тогда программисты и верстальщики могли себе это позволить.
Где-то в районе рельсов у сайтов пропала душа.
MAKAKA # 0 ⇈
Вот так там не будет
https://cdn.mos.cms.futurecdn.net/269b3ad0a0aa72c233a0f3680a829e6c.jpg
>душа
Они у игр пропала, кстати. В 1989-м каждая игрушка была уникальна. А теперь кажется они все на одном движке
Тоже и с сайтами
bormand # 0 ⇈
MAKAKA # 0 ⇈
https://getbootstrap.com/docs/5.0/forms/checks-radios/
или
https://material-ui.com/ru/components/checkboxes/
И самое противное, что я вхуячу на фон улыбащегося негра который жмет руку улыбающейся мексиканке. Спижжу из фотобанка, и поставлю.
Даже если в моей компании работает один человек, и он белый мужик
gologub # 0 ⇈
Desktop # 0 ⇈
- зачем там жёстко гнать
MAKAKA # 0 ⇈
https://www.retrogames.cz/games/102/DOS_01.gif
https://www.myabandonware.com/media/screenshots/l/lemmings-16x/thumbs/lemmings_5.png
https://www.old-games.ru/games/pc/gobliiins/screenshots/goblins_04.gif
А теперь что?
Desktop # 0 ⇈
три рандомных скрина. окей. Принца никогда не понимал. Да, анимация ок, в остальном это кривое управление, харкдор и своеобразная графика, имхо сильно переоценена
В Леммингов пробовал кажется на Мегадрайве, не зашли
в Гоблинов не играл, но классические p'n'c это вещь в себе, и кстати жанр вполне себе живой, ты видел игры Daedalic, Wadjet Eye или Amanita?
Desktop # 0 ⇈
MAKAKA # 0 ⇈
Я привел тебе примеры трех игр тех лет в качестве пруфа того, что они были очень разные.
Питухи писали их с ноля, часто вообще на асемблере, и потому они очень сильно отличались.
Жаль, что тебе они не зашли, но тут уж я ничего не могу поделать)
> Daedalic, Wadjet Eye или Amanita
не-а:/ А они настолько же сильно отличаются друг от друга как гоблины от викингов каких-нить?
Desktop # 0 ⇈
в 1989 году вряд ли кто-то сильно писал игры с нуля, если у него уже были какие-то, потому что это неэффективно
значительная, если не большая, часть классических квестов ЛукасАртс сделана на одном движке
и даже на одном движке можно сделать весьма разные игры (см. HL2 vs Portal vs VtM: Bloodlines или Frostbite, на котором делают и футбол и шутаны)
> А они настолько же сильно отличаются друг от друга как гоблины от викингов каких-нить
- гоблины и викинги это вообще-то разные жанры (если мы про Lost Vikings)
эти три конторы в основном делают и издают двухмерные квесты, гугли скриншоты (Машинарум, Саморост, Ускользающий мир, Gemini Rue, Emerald City Confidential)
платформеры сегодня тоже делают и много
в духе Викингов есть серия Trine
или ты хочешь чего-то ПИЗДЕЦ УНИКАЛЬНОГО?
MAKAKA # 0 ⇈
Он писал на основе свои наработок, но не чужих: чужих не было.
Никто не продавал движки, и даже средств рисования не было
>HL2 vs Portal vs VtM:
Мне все трехмерки современные на одно лицо:-/
>Машинарум, Саморост, Ускользающий мир
А, про этих слышал, и видел даже ускользающий мир.
Но я вот смотрю на него, и почему-то вижу тоже, что я видел в deponia, например, и графика кажется мне одинаковой, и управление, и геймплей.
А например у Loom и гоблинов он разный.
Или у какого-нить amazing spider man, который вообще без мышки.
https://www.retrogames.cz/games/702/DOS_02.gif
https://scientificgamer.com/blog/wp-content/uploads/2020/11/loom_distaff.jpg
Но может это обычное старческое брюзжание, бо то, что я увидел в детстве, кажется мне охуенным. Как всегда.
Desktop # 0 ⇈
- sorry, but this
bormand # 0 ⇈
А теперь factorio. Хотя это работа, а не игра...
MAKAKA # 0 ⇈
https://habr.com/ru/post/210334/
bormand # 0 ⇈
MAKAKA # 0 ⇈
Софтварно эмулировать процессор на z80 не очень продуктивно
bormand # 0 ⇈
MAKAKA # 0 ⇈
bormand # 0 ⇈
MAKAKA # 0 ⇈
Тебе что, не интересно собрать процессор из логических вентилей, сделать для него асемблер, и написать на нем компилятор сишки?
Desktop # 0 ⇈
bormand # 0 ⇈
А для сишки я слишком ленивая.
gologub # 0 ⇈
да и собственно не z80, а 8080, неча тогдашний AMD мусолить
booratihno # 0 ⇈
А это эпп
тогда motorola 68000 ?
nuTepcKuu_nemyx # 0 ⇈
Desktop # 0 ⇈
j123123 # 0 ⇈
У меня в контроллерах никаких "вьюх" нет. Если у меня к контроллеру подключен какой-то экранчик, я просто рисую на нем всякую хуйню соответствующими функциями с четко заданными координатами в известных местах
Desktop # 0 ⇈
j123123 # 0 ⇈
Desktop # 0 ⇈
j123123 # 0 ⇈
Desktop # 0 ⇈
- ты сам не знаешь, для какой? О_о
j123123 # 0 ⇈
Desktop # 0 ⇈
после литров пафоса ожидаешь работу над датчиками Аэрбаса
j123123 # 0 ⇈
Desktop # 0 ⇈
CHayT # 0 ⇈
Медитативно и полезно
bormand # 0 ⇈
MAKAKA # 0 ⇈
j123123 # 0 ⇈
Desktop # 0 ⇈
j123123 # 0 ⇈
Desktop # 0 ⇈
bormand # 0 ⇈
Desktop # 0 ⇈
bormand # 0 ⇈
Desktop # 0 ⇈
bormand # 0 ⇈
Под пальцами же, как на портативных приставках.
Desktop # 0 ⇈
интимная индустрия должна подтянуться
bormand # 0 ⇈
Дык это ещё на вите было. Но сони вроде не особо поощряет такие игры. Это ж не гейб.
CHayT # 0 ⇈
Desktop # 0 ⇈
CHayT # 0 ⇈
bormand # 0 ⇈
j123123 # 0 ⇈
А ты о себе в женском роде чисто по приколу иногда пишешь, или ты это серьезно? Программерские таблетки уже принимаешь?
bormand # 0 ⇈
Да.
j123123 # 0 ⇈
Да - "чисто по приколу"?
bormand # 0 ⇈
Cannot subtract string from boolean.
j123123 # 0 ⇈
Судя по уклончивым ответам, похоже что это не по приколу.
CHayT # 0 ⇈
bormand # 0 ⇈
В каждой девушке должна быть загадка.
Desktop # 0 ⇈
- Мивина* со вкусом программистских носочков
* для жителей РФ Роллтон
j123123 # 0 ⇈
bormand # 0 ⇈
Комплект неполный, кстати. Колёс не доложили, не взлетит.
Да и coq получше lisp'а вшторивает, имхо.
bormand # 0 ⇈
guest # 0 ⇈
j123123 # 0 ⇈
https://govnokod.ru/25340
bormand # 0 ⇈
MAKAKA # 0 ⇈
А может просто сделали на объебись, как стакан из анекдота.
Ну вот есть в интерфейсе крылья, знач надо реализовать, а что LSP сломалось всем похуй.
Desktop # 0 ⇈
на что ты будешь менять бройлера??
MAKAKA # 0 ⇈
например:
Сижу за решеткой в темнице сырой.
Вскормленный в неволе петух молодой,
Мой грустный товарищ, махая крылом,
Кровавую пищу клюет под окном,
Или:
Человек создан для счастья, как курица для полёта.
Или:
Сегодня, предвечернею порою,
Я вижу, как в тумане петухи
Летят своим определенным строем,
Как по полям людьми они брели.
Или так
Будзьце гатовы да скону сусвету,
Белыя пеўні, белыя пеўні.
----
Нихуя не работает, короче. Абстракция протекла
Desktop # 0 ⇈
MAKAKA # 0 ⇈
Desktop # 0 ⇈
фраза вырвана из контекста
bormand # 0 ⇈
MAKAKA # 0 ⇈
Выделенная фраза является пиздежом.
Двадцать лет назад Спольски на сраном VBS вручную экскейпил данные перед отправкой из базу, и даже статью про это написал. Теперь так даже пхпшники не делают
Desktop # 0 ⇈
ясно, я сначала подумал, что ему так же легко, как и 20 лет назад, а оказалось, что наоборот, лол
но file upload и вправду говно какое-то, когда в первый раз сталкиваешься
bormand # 0 ⇈
Тут кажется ещё wvxvw о каком-то жабьем фреймворке жаловался...
MAKAKA # 0 ⇈
Desktop # 0 ⇈
MAKAKA # 0 ⇈
MAKAKA # 0 ⇈
Правда она не умеет мультиаплоад, потому что в 2007-м году его еще не было, а джанга не быстро развивается)
Desktop # 0 ⇈
я в общем больше сужу с точки зрения клиента: все эти multipart... хотя в целом всё несложно, на самом деле
PolinaAksenova # 0 ⇈
MAKAKA # 0 ⇈
https://www.joelonsoftware.com/2005/05/11/making-wrong-code-look-wrong/
>FastAPI
ну ничоси! а в базу оно как? Через алчеми?
PolinaAksenova # 0 ⇈
Ня зняю, я только видеоуроки туториал по этому глянула. Ня практике задач для него ещё не было.
MAKAKA # 0 ⇈
Там можно описать модель с полями, и джанга сама сгенерит тебе формочку по ней, и CRUD.
А если поставить django-restframework (это одна строчка в settings.py + pip install) то можно будет сабмитить данные через REST в виде json.
Desktop # 0 ⇈
- сестрёнка, ты в курсе, что у тебя контекстно-ебанутаязависимая грамматика?
bormand # 0 ⇈
PolinaAksenova # 0 ⇈
MAKAKA # 0
Использовали хинт?
JloJle4Ka # 0 ⇈
guest # 0 ⇈
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0
OqpqpTOnHblu_nemyx # 0