LINUX.ORG.RU

Избранные сообщения mamboo

fwmx 1.3 — лёгкий оконный менеджер для x11

 ,

fwmx 1.3 — лёгкий оконный менеджер для x11
Группа Open Source

Вышла версия 1.3 набора программ fwmx, включающих в себя собственно оконный менеджер (fwm), меню запуска приложений и регулятор громкости. В качестве индикатора раскладки используется xxkb.

( читать дальше... )

>>> Подробности (m1089.ru)

firkax
()

MINIX-NE

 , , ,

Привет, ЛОР.

В посте полугодичной давности я рассказал о том, как я возился с монохромным монитором от МежДелМаша, подключая его к IBM PS/2. Теперь же я хочу поделиться с вами совсем-таки недавним моим успехом уже софтверного характера, впрочем всё так же занимающим своё заслуженное место в одном из разделов Специальной олимпиады, а именно, — я модифицировал древний MINIX 1.7.5 под нужды своего компьютера, дабы использовать все основные возможности железа. Но начну я своё изложение всё-таки с описания характеристик, ибо именно оно является основным лимитирующим фактором.

Итак, на фото один IBM 8530 (PS/2 Model 30 286) со следующими параметрами

  • Процессор от SIEMENS, клон Intel 80286, 16-bit
  • Память 1 Мб (разбита на 640k+384k)
  • VGA на материнке
  • PS/2 клавиатура и мышь
  • Три ISA слота (мне повезло не возиться с MCA)
  • Compact Flash XT Lite adapter rev 4.1
  • Ethernet от SMC (WD8390 совместимая карта с RJ-45 и BMC)
  • EGA видеокарта от ATI с поддержкой MDA и CGA режимов

Делловский монитор подключён к VGA из материнки, а вот с монохромным монитором пришлось повозиться, сделав переходник с MDA DB-9 на DB-15, плюс выцыганить питание с разъёма для флоппи, ибо IBM решили убрать молексы из дизайна, и запитывать диски с материнки.

Ситуация с подключением двух мониторов довольна нестандартна для конца 80х, однако именно для этой цели адресное пространство у монохромного адаптера и у цветного графического (от которого наследуется текстовый режим VGA) разные, а значит в теории можно использовать VGA+MDA. Однако обычно программы для MS-DOS на это не затачивались, и профита от такой схемы для меня не должно было быть, если бы не…

Если бы не старый MINIX. Версии вплоть до 2.0.4 позволяли в теории запустить полноценный UNIX даже на IBM PC XT с 640k RAM. Однако же найти подходящую именно для меня конфигурацию MINIX оказалось задачей трудной. Я перебрал сначала версию MINIX для MS-DOS, но 1 MB памяти для неё было явно мало (что и не удивительно, ведь MINIX для DOS создаёт виртуальный диск в RAM). В итоге я смог установить в QEMU MINIX 1.7.5 на один из разделов Compact Flash, и потом даже запустить уже на самом PS/2.

Правда, путь к первой введённой в терминале команде был тернист. Во-первых, MINIX подвешивал клавиатуру при загрузке. Причину удалось установить, загрузившись в режиме совместимости с i8086, откуда подозрения сразу пали на злосчастную линию A20, которая управляется контроллером клавиатуры в AT-клонах для совместимости с i8086. В исходном коде kernel/klib88.s A20-линия выставлялась в соответствии с мануалами, вот только оказалось, что для IBM PS/2 появился специальный контроллер для управления A20, а посему код для ядра пришлось сразу же патчить. По итогам доступная память с 640k в режиме совместимости увеличилась до установленной памяти в 1 MB, плюс защищённый режим с его плюсами (ну и минусами тоже, об этом чуть позже).

Следующим шагом было реализации возможности работать одновременно в двух виртуальных tty, используя два монитора. В коде kernel/console.c такой абстракции как монитор или экран не было, поэтому пришлось долго провозиться с возникающими гонками за внутренние переменные, однако усилия были вознаграждены, и теперь я мог например вывести на один экран какой-нибудь man, и параллельно редактировать файл на другом, переключаять по Alt-<- Alt–>.

Ещё одна из проблем оригинального MINIX — он отказывался работать с CF-XT адаптером. Одно время я был удовлетворён работой драйвера, который вызывает функции BIOS int 13h через аппаратный сброс, пока я не захотел наконец-то разобраться с сетевым драйвером (благо он как раз для WD8390 совместимых карт уже был в исходниках). При включении Ethernet в параметрах ядра загрузка зависала на моменте инициализации драйвера диска (забавно, не правда ли?) Вместо того, чтобы пофиксить баг, я решили подойти к вопросу радикально и переписать стандартный драйвер IDE контроллера, чтобы он стал поддерживать CF-XT-lite. И это было увлекательно. Главной подсказской для меня стала принципиальная схема адаптера, потому что сходу отображение адресов CF на шину не гуглилось, и оказалось, что не на все вопросы необходимо искать ответ в Интернете, тем более когда достаточно просто взглянуть глазами на схему платы. Конечно, документация к CF и исходники XTIDE BIOS мне тоже помогли. В процессе переписывания драйвера в момент, когда я наконец-то разобрался с адресами, и драйвер стал идентифицировать устройство, я умудрился несколько раз испортить корневой раздел, но спасали бэкапы и Linux, который до сих пор поддерживает старую добрую MINIX FS.

Как итог: старый MINIX прекрасно себя чувствует на старой же машине с 16-bit разрядностью и 1 MB памяти, при этом позволяет выходить во внешний мир с помощью telnet и ftp и поддерживает мультизадачность. Сейчас я ковыряюсь с httpd сервером, который уже скомпилировался и запускается, но пока возвращает только 403 и 404 (причём делает это он секунд за пять, если не медленнее). Остались ещё мелкие недочёты по типу не работающего SIGTERM по Ctrl-C и мигающего сразу в двух экранах курсора (это сбивает с толку, потому что не знаешь, на какой экран сейчас перенаправлен ввод). Из глобального хочется сделать frame buffer хотя бы для VGA, а то и для обоих мониторов (попробовать видеокарту ATI в режиме Hercules). Другая возможная ветка развития — создание дистрибутива для старых компов и эмуляторов типа даже pcjs.org, чтобы у энтузиастов была возможность попробовать настоящий UNIX на своём ретро железе.

P.S. Да, чуть не забыл. На фото на левом мониторе telnet на какую-то из BBSок, на правом — стандартные UNIX команды и вывод кусочка ядра на экран.

luke
()

В процессорах Loongson для Linux-систем обнаружили аппаратную утечку данных из L1-кеша

 , ,

В процессорах Loongson для Linux-систем обнаружили аппаратную утечку данных из L1-кеша
Группа Безопасность

Исследователи из немецкого Центра информационной безопасности имени Гельмгольца CISPA представили на конференции USENIX Security 2026 аппаратную уязвимость LoongLeak, обнаруженную в китайских процессорах Loongson 3A5000 и Loongson 3A6000. Непривилегированная программа может использовать её для извлечения оставшихся в кеше первого уровня данных других процессов, ядра операционной системы и гипервизора. Атака также возможна из контейнера или гостевой виртуальной машины.

Практическое значение уязвимости связано прежде всего с Linux и другим свободным ПО. Для LoongArch существует отдельный порт в основном ядре Linux, а Debian уже включил loong64 в число официальных архитектур с планом выпуска в составе Debian 14. Поддержку архитектуры также развивают другие Linux-дистрибутивы и проекты открытого системного ПО.

( читать дальше... )

>>> Источник (usenix.org)

unclestephen
()

Линукс для хакеров более предпочтителен

 , , , ,

Сабж


При помощи созданного Microsoft идентификатора GDID следователи ФБР смогли связать подростка со взломом, который приписывается хакерской группировке Scattered Spider. Инцидент вызвал серьёзные опасения по поводу конфиденциальности и возможностей слежки при помощи Windows.

На минувшей неделе США объявили об экстрадиции 19-летнего Питера Стоукса (Peter Stokes) из Европы — он обвиняется в членстве в группировке киберпреступников Scattered Spider. Случай выделяется тем, что с преступлениями его помогла связать Microsoft. В мае 2025 года Стоукс, по версии следствия, используя VPN, взломал ресурс ювелирного магазина. Чтобы отследить его, в ФБР использовали разработанный Microsoft идентификатор устройства Global Device ID (GDID) — он остаётся уникальным и постоянным с каждой установкой Windows на физическое или виртуальное устройство.

Существование глобального идентификатора — стандартная практика, позволяющая разработчику распознавать и различать клиентов. Важно, что Microsoft может связывать GDID со сторонними службами и временны́ми метками, то есть отслеживать онлайн-активность ПК с Windows без, например, сторонних файлов cookie в браузере. Для обхода сетевой защиты на ресурсе ювелирного магазина использовалась служба туннелирования ngrok, и у Microsoft оказались записи, свидетельствующие, что компьютер Стоукса получил доступ к странице создания учётной записи на сервисе.

Идентификатор устройства кратко упоминается на одной из страниц поддержки Microsoft, но компания никогда публично не комментировала наличие этого средства. Пользователь, гласят материалы следствия, может сбросить GDID самостоятельно, хотя это и непросто. Он сохраняется после обновления Windows, но меняется после переустановки. То есть у одного пользователя может быть несколько GDID, но Microsoft, вероятно, не составит труда связать несколько таких идентификаторов, зная, например, логин учётной записи или IP-адрес пользователя.

Общественность, узнав об инциденте, задалась несколькими вопросами. Например, как обнаружить и удалить GDID? И есть ли нечто подобное в экосистеме Apple, которая теоретически может создавать идентификаторы на уровне не программной, а аппаратной части? Есть мнение, что для сохранения анонимности теперь приходится пользоваться бесплатными ОС Linux или FreeBSD, а также туннелировать трафик через прокси, VPN или Tor.


А ЛОР всегда знал!

tiinn
()

Евангелисты Rust

 

Какие есть? Кого читать? Кого слушать?

dynamic_cast
()

x11 или wayland

 , , ,

Доброго дня, возник вопрос что лучше Wayland или X11 с видеокартой Nvidia, в Wayland не работают 165 герц, а в X11 работают(xrandr), что будет лучше?

daniil444
()

Будущее ИИ кодинга

 , ,

Оно по ходу примерно такое. По ссылке датасет из распасенного кода на 10-ти разных япах в виде универсальной для этих япов AST схемы. Используется для обучения БЯМ погроммированию. Если я правильно понимаю, идея в следующем: на входе в БЯМ - декларативный спек на языке близком к естественному, на выходе - абстрактное от конретного ЯП Промежуточное Представление. Это ПП легче оптимизировать по токенам, верифицировать и всё такое. А для визуализации в удобной для человеков форме используются дополнительные специальные тулзы. Т.е. первичный продукт БЯМ - это понятное ей ПП, а понятное человеку ПП - это уже вторичный опциональный продукт. Это всё ёще ресёч на ранних стадиях, но всё идёт к тому, что код на традиционных ЯПах ещё долго будет использоваться, но писать его скоро по-любому почти никто не будет. Запомните этот твит.

yvv1
()

Система видит NVMe SSD, но не может работать с ним. Проблема при установке Fedora.

 , , , ,

Примерные сообщения sudo dmesg | grep nvme (пишу сейчас c Windows, списываю с фотки монитора):

[…] nvme 0000:09:00.0: probe with driver nvme failed with error -25

И waiting в течение 65535ms.

mndtr0
()

Что взять для нейронок?!

 , , ускорители

Всем привет!

Таки там говорят OpenSource ИИ стал достаточно бодрым, особенно Qwen a3b. Gemma a4b и вообще там прогресс полным ходом идет. Хотелось бы потыкать это все дело, на текущий момент есть:

  1. Ryzen 7950x
  2. Mobo Aorus EliteAX x670e
  3. ddr5 6000 64gb
  4. NVMe 1tb
  5. 1квт БП

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

В идеале повайбкодить бы быстро, не ожидая модель по 15 минут. И вот думаю, как это организовать дешевле. Вижу такие варианты:

  • Взять 3090 или две, но боюсь что они будут медленными
  • Китайская 4090 с 48гб vram - тут не ясно что с надежностью
  • A6000 48гб vram - медленее 4090 и возможно медленее и 3090 и стоит дороговато
  • 5090 32gb - тоже дорого и хватит ли 32?

Подскажите что лучше?

Перемещено maxcom из linux-hardware

AntonyRF
()

GTK2-NG: форк библиотеки GTK2

 , ,

Группа Open Source

Один из разработчиков дистрибутива Devuan представил проект GTK2-NG, который будет развивать форк библиотеки GTK2, нацеленный на продолжение её сопровождения и обеспечение качественной работы в современных дистрибутивах. Поддержание форка позволит продолжить поставку в Devuan приложений, завязанных на GTK2, после прекращения поддержки GTK2 в дистрибутиве Debian 14, релиз которого ожидается летом 2027 года.

Разработчики проекта GTK прекратили сопровождение GTK2 более пяти лет назад, а пакеты с GTK2 уже исключены из официальных репозиториев дистрибутивов Red Hat Enterprise Linux, SUSE Linux Enterprise Server, openSUSE и Arch Linux (доступен через AUR). Из значимых проектов GTK2 продолжает использовать звуковой редактор Ardour, но данный проект не зависит от внешних библиотек и поддерживает собственный форк GTK2 - YTK (opennet.ru). В репозитории Debian остаётся около 150 пакетов, связанных зависимостями с GTK2, среди которых afterstep, Double Commander, fpc, gkrellm, gmpc, hexchat, lazarus, mplayer, navit, pidgin, sane-frontends, scim, sylpheed, tickr, tilem, uim, usermode, xsane, xzgv и z88.

В GTK2-NG добавлено несколько десятков изменений, в основном связанных с переносом исправлений, распространявшихся в форме патчей в пакетах из AUR и Debian, и исправлением предупреждений, выдаваемых компилятором. Из улучшений отмечается модернизация функции сортировки массивов g_sort_array и замена алгоритма масштабирования для повышения чёткости пиктограмм. В виджете выбора файлов (filechooser) решены имевшиеся проблемы и проведена оптимизация отображения в виде иконок содержимого каталогов с большим числом файлов. Протестирована сборка с использованием GCC 14 и Clang 21.

Из планов на будущее отмечается перенос изменений из форка GTK2, развиваемого участником проекта Xlibre - stefan11111, а также бэкпортирование кода из YTK (github.com), форка GTK2 от проекта Ardour. Среди задач также называется проверка сборки в GCC 15 и добавление поддержки использования libppd для вывода на печать на системах с CUPS 3.x. Не исключается задействование лицензии GPLv3 для нового кода и смена названия для исключения претензий от проекта GNOME.

>>> Источник: OpenNET (opennet.ru)

dataman
()

Конфигурялка мыши Logitech

 ,

Принес новость обладателям Logitech и любителям тестить железо и ковыряться в системе. Может кому интересно будет добавить свою мышку (есть гайды) и законтрибутить в развитие проекта. Если что, мопед не мой.

Цитата с гитхаба:

Как и многие из вас, я ждал, когда Logitech выпустит Options+ для Linux. Но устал ждать.

Прежде всего — огромное уважение командам Solaar и logiops. Они проложили путь, проведя реверс инжиниринг HID++, и на протяжении многих лет являются опорой поддержки Logitech в Linux. Без их работы я бы никуда не продвинулся.

Тем не менее, после ежедневного использования MX Master 3S я постоянно сталкивался с одними и теми же проблемами:

Solaar отлично подходит для мониторинга и базовой настройки, но в нём нет переключения профилей для отдельных приложений — я не мог добиться автоматического изменения DPI и настроек кнопок при переключении между Firefox и терминалом. Возможности настройки режимов кнопки жестов и колесика большого пальца через интерфейс также довольно ограничены.

logid — мощный инструмент, но работает как системный демон, который постоянно мешал работе KDE. Я потратил слишком много часов на отладку того, почему мои функции масштабирования и регулировки громкости конфликтовали друг с другом (logid и Plasma одновременно обрабатывали события одной и той же кнопки). А редактирование конфигураций YAML для каждой комбинации кнопок быстро надоедает.

Все, что я хотел, это аналог Options+. Нажимаете кнопку мыши, выбираете, что она делает, готово. Все как положено, с профилями под разные приложения, которые переключаются по Alt+Tab и т.д.

Поэтому я создал Logitune.

Это настольное приложение на Qt6, которое напрямую взаимодействует с HID++ 2.0 через hidraw. Никаких демонов, работающих в фоновом режиме, никаких конфигурационных файлов — просто обычное приложение с иконкой в трее.

Основные особенности:

  • Профили для каждого приложения, которые переключаются автоматически при фокусировке окна (KDE Plasma 6 + GNOME 42+ Wayland)
  • Визуальная настройка — кликабельное изображение мыши с активными зонами, как в Options+
  • Жесты — удерживание + свайп для 5 действий на профиль
  • Колесико — горизонтальная прокрутка, масштабирование или громкость, для каждого приложения
  • DPI, SmartShift, прокрутка с высоким разрешением — все необходимое
  • Bolt + Bluetooth с автоматической переключением между ними
  • Никаких демонов, никаких прав root — обычное приложение

Сейчас поддерживается MX Master 3S. Приложение имеет модульную структуру — каждое устройство является самостоятельным, со своим собственным дескриптором, изображениями и настройками кнопок. Добавление поддержки новой мыши несложно. В вики есть пошаговое руководство, если вы хотите внести свой вклад.

На данный момент поддерживаются KDE и GNOME, так как есть нюансы с отслеживанием и перехватыванием фокуса. Для других DE заявлена базовая функциональность. Нно добавить свое DE тоже несложно.

Кроме того, есть вики-сайт с документацией по архитектуре и подробными описаниями протокола HID++, если вам интересно, как всё это устроено «под капотом».

Установка:

  • Arch: yay -S logitune
  • Ubuntu 24.04 / Fedora 42: репозиторий OBS
  • Из исходного кода: cmake + Qt6

GitHub: https://github.com/mmaher88/logitune

Gonzo
()

Как собрать ARM-ноутбук из старого хлама

 , , , ,

Как-то в марте прошлого года я проводил генеральную уборку и нашёл у себя кучу старых сломанных одноядерных ноутбуков со сгоревшими материнскими платами. Там же были платы от разбитых телефонов и планшетов. Выкидывать было жалко, а на досках объявлений такое даже за 100 рублей никто бы не купил. Но я присмотрел среди этих плат несколько на SoC Allwinner: первый на A13, второй на A33. Изначально я думал из них сделать сервер на Linux, однако когда я зашёл на вики, глаз зацепило слово LVDS. Я сразу подумал: а что если взять один из этих мёртвых ноутбуков, снять сгоревшую мать и заменить её платой от полностью разбитого планшета? Так и родилась идея этого самодельного ноутбука.

( читать дальше... )

gtk3
()

LLM на своём компьютере с нуля

 ,

Какие сейчас есть варианты для того, чтобы поэкспериментировать с LLM на своём компьютере? В том числе чтобы создать свою модель с нуля (даже если она не будет Large)? То есть, чтобы запускать её на своём компьютере, и не использовать сторонние ресурсы?

askh
()

Книга по ремонту

 , ,

Коллеги, посоветуйте книгу по типу этой Laptop & Notebook Video/Graphics/GPU Repair Instructions: First Ever! Board Level Repair Instructions, Repair your Laptop’s Faulty Integrated Video Issues by Garry Romaneo

по ремонту современного оборудования( упор на видеокарты) ?

pinachet
()

Работа с ip-адресами

 , , , kcl-lang

В последнее время приходится много «работать» с ip адресами, решил упростить себе жизнь.

Если в буфер обмена попадает IP адрес(а), то для него собирается метаинформация (геолокация, кому принадлежит) и отображается через меню.

При нажатии кнопки ping или traceroute, соответствующая команда вставляется в терминал

WM: Fvwm3

UI menu: kando

Посмотреть на исходники можно тут:

https://github.com/metacoma/mindwm-clipboard/

Из зависимостей требуется:

kcl-lang, kando, clipnotify, mmdblookup, ipcalc, xclip, xdotool, базы:

$ ls  geoip/
GeoLite2-ASN.mmdb  GeoLite2-City.mmdb

Видео: https://www.youtube.com/watch?v=UT5dbpUT8AA

Если будет желание попробовать - оформлю README как это можно запустить локально.

gagarin0
()

Запуск ИИ без видеокарт

 ,

На странице
https://www.altlinux.org/AI

описывается как запустить ollama
(как запустить вторую я не понял из описания)

Вопрос:
а сколько и каких им надо ресурсов?
Какая модель самая маленькая, сколько надо остальным?

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

Saakx
()

Датасеты для нейросетей

 , датасеты,

Собственно разыскивается САБЖ, хочется именно под нейросети (не регрессия, не рэндом форесты и так далее, нейронкам нужно больше данных для обучения, на маленьких наборах рулят более простые алгоритмы). Желательно не про картинки (в картинках жестко рулит CNN и его модификации). Хочется чего-то качественного но не слишком сложного для сети (в то же время чтоб объём данных для обучения был достаточно большой), чтоб протестировать разные архитектуры сетей и проверить пару гипотез, но в то же время не упереться в объёмы видеопамяти. В идеале хотелось бы чего-то простенького, что может уложиться в 5-6 гигов видеопамяти в плане модели сети на раннем этапе (нет мне не надо достигать 99% точности, мне важнее узнать что способом a я достиг 75% точности затратив n часов обучения, а способом b я достиг 80% точности, затратив m часов обучения при одинаковых или похожих объёмах видеопамяти), если будет понятно, что гипотезы будут подтверждены, то там уже можно и машинку арендовать и делать что-то интересное и практическое. В общем, ищется аналог Lena.jpg но под нейронки, чем универсальней, тем лучше. На kaggle смотрел, но там слишком много датасетов, а хочется чего-то эталонного, так что хочу послушать предложения ЛОР-овцев.

PS

Интересные датасеты с интересными задачами тоже рассматриваются, но в приоритете эталонные датасеты.

PPS

Лучше чтоб мне не было нужды чистить и преобразовывать данные, это отдельная задача, которая на данный момент мне не требуется.

peregrine
()

Как раздать интернет с VPS'ки через домашний роутер?

 , , , ,

Приветствую!😎

Подскажите пожалуйста, как пустить интернет-трафик c удалённой VPS (РФ, Ubuntu 20, ipv6) на домашний роутер (Asus RT-AX55)? Наверняка есть нюансы по протоколу, настройке и т. д. Хорошо если есть какой-нибудь пример или инструкция, чтобы новичку более-менее не запутаться.

Kisliy
()

Ищу двумерный аналог OpenSCAD

 , , ,

Привет, ЛОР.

Для 3D есть такая замечательная штука как OpenSCAD. Где можно наколхозить программно, например, 5 цилиндров в цикле, раскрасить, трансформировать и всё это экспортировать.

А есть ли что-то аналогичное для двумерного рисования? Чтобы рисовать на скриптовом языке линии, круги, многоугольники, текстовые вставки, закрашивать всё это? Потом экспортировать в векторный (SVG) либо растровый (PNG) файл.

В принципе, в самом OpenSCAD 2D-примитивы имеются. Но вот как задать толщину обрамляющей линии для square, например, я так и не нашёл (да, подозреваю, что можно наложить два square через difference, но это уже лютый колхоз и натягивание филина на глобус, если мне нужно просто порисовать квадратики и линии).

С экспортом тоже проблема. Я нарисовал в опенскаде два разноцветных квадратика. Сохранил в SVG. Потом открываю что в gimp, что в inkscape – вожделенная плоская картинка есть, но информация о цвете потеряна. А «Экспорт в растр» из OpenSCAD вместо плоской картинки записывает в PNG вид на трёхмерную сцену (и я его не обвиняю, он, в общем-то, для другого делался).

В общем, ищется более подходящий инструмент.

В принципе, есть подозрение, что большая часть моих хотелок закрывается скриптингом, к примеру, на питоне (или другом скриптоЯП общего назначения). Если есть для него простейшая библиотека рисования, которая умеет не только на экран вывести, но и в файлик вывести (те же PNG и SVG, на крайняк обойдусь каким-то одним из них) – сойдёт, хоть это и менее удобно, чем специализированный инструмент. Есть такое (желательно с примерами)?

Обновление: всем спасибо за советы, остановился на PyCairo. Совет писать простой SVG вручную тоже интересен, там оказалось не так сложно, как я думал. Может, как-нибудь тоже пригодится.

hobbit
()

Samba, cluster, блокировки

 , , ,

Есть система с DFS, samba, glusterFS в качестве хранилки.
Что лучше использовать для того, чтобы 2 пользователя не могли открыть 1 файл на редактирование, и перезаписать его?
Возможен редизайн системы и миграция на предложенное решение.

c0unt0
()