Убить Сет

G
Завершён
0
Фэндом:
Размер:
4 страницы, 1 693 слова, 1 часть
Публикация на других ресурсах:
Уточнять у автора / переводчика
0 Нравится 0 Отзывы 0 В сборник

Часть 1

Настройки
Будильник на ноуте показывал 03:14, и в этих трёх цифрах мне чудилась какая-то издевательская насмешка. Глаза резало так, будто под веки насыпали битого стекла, смешанного с песком, а строчки кода в IDE прыгали и двоились. Соседи, Паша и Димас, давно уже спали — первый размеренно похрапывал, уткнувшись носом в стену, второй затих, свернувшись калачиком под одеялом, как ребёнок. Я лежал на своей койке, чувствуя спиной продавленный панцирный матрас, и смотрел в монитор. Экран был единственным источником света в нашей маленькой общажной коробке — мертвенно-бледное свечение, от которого тени на стенах казались густыми и жирными. Задание было простое. Имплементировать BitSet. Структуру данных, которая хранит биты и позволяет делать над ними операции. Просто контейнер из нулей и единиц. AND, OR, XOR, установка, сброс, проверка. Всё. Никакой магии. Только вот скрытые тесты, которые гонял этот проклятый CI, падали один за другим. Я переписывал логику четвёртый раз за ночь. Публичные тесты, те что я запускал локально, проходили как по маслу — зелёные галочки, success, всё чисто. Но как только я правил код, чтобы ублажить невидимые юнит-тесты, эти зелёные галочки на локальной машине начинали гореть красным. Ошибка сегментации там, buffer overflow здесь. Цикл. Петля. Я чувствовал, как медленно схожу с ума. Биты. Нули и единицы. Они будто роились у меня в голове, кусали изнутри черепную коробку, складывались в узоры, которые ничего не значили. Мне казалось, что я слышу их шёпот — сухой электрический треск, похожий на помехи в старом радио. Я оторвал взгляд от экрана и понял, что дико хочу пить. Во рту пересохло, язык прилипал к нёбу. Я слез с кровати, стараясь не скрипеть половицами. Холодильник стоял у двери, старенький, с пожелтевшим пластиком. Дёрнул ручку — из нутра пахнуло холодом. На полке лежало две бутылки: тёмное пиво и она. Стеклянная, прозрачная, с запотевшим боком. Водка. Я смотрел на неё секунд пять, чувствуя, как в груди что-то противно ворочается — смесь желания и отвращения. Всего три недели как сухой. Три недели назад врачи в наркодиспансере сказали, что следующий запой меня убьёт. Я помнил капельницы, помнил галлюцинации, помнил, как выл по ночам, привязанный ремнями к койке. Отвёл взгляд. Взял пиво. Откупорил, жадно глотнул, почувствовал на языке горечь хмеля — и только тогда понял, что в комнате что-то не так. Тишина. Абсолютная. Паша не храпел. Димас не сопел. И я не слышал их дыхания. Пивная бутылка в моей руке внезапно стала ледяной. Я обернулся, ожидая увидеть соседей на их кроватях. Одеяла были откинуты, простыни смяты, но людей не было. Никого. Я стоял посреди комнаты, тупо моргая, пытаясь понять, куда они могли деться. В туалет? Так дверь даже не скрипнула. За сигаретами? Курить они всегда ходили вместе. Может, я просто задремал и не заметил? Но бутылка пива настоящая, холодная, влажная — я чувствовал её вес. — Паш? Дим? — голос прозвучал глухо, будто вата в ушах. Никто не ответил. Я подошёл к двери нашей комнаты, нажал на ручку, потянул. Та не поддалась. Заперто. Но мы никогда не запирали дверь изнутри. Ключ должен был торчать в замке. Я обшарил карманы джинс, тумбочку, даже зачем-то заглянул под подушку Димаса. Пусто. Паника ещё не накатила — только глухое раздражение и усталость. И тут взгляд упал на угол, где стоял мой рюкзак. Ключ лежал сверху, аккуратно, будто его кто-то специально положил. Я схватил его, вставил в замок, повернул. Механизм щёлкнул. Я снова надавил на ручку, навалился плечом. Дверь сидела намертво, будто с той стороны её подпёрли. Тогда я дёрнул сильнее, ударил раз, другой — без толку. И вот тут стало по-настоящему страшно. Я отошёл на шаг, сердце заколотилось где-то в горле. Телефон. Нужно позвонить. Я метнулся к кровати, схватил мобильник с тумбочки, нажал кнопку — чёрный экран. Разряжен, хотя я точно помнил, что ставил его на зарядку перед сном. Ноутбук на кровати тоже угасал — батарея мигнула красным и экран погас. А потом погасла лампа на потолке. И датчик пожарной сигнализации перестал моргать зелёным. Меня накрыла такая тишина, какой не бывает нигде и никогда. Даже за окнами, которые выходили на пустырь, а потом на город, не было видно ни одного огонька. Я подошёл к окну. Подоконник был холодным, чужим. За мутным стеклом стояла тьма, плотная, как застывшая смола, и я не мог разглядеть ни фонарей, ни машин, ни звёзд. Моё собственное отражение смотрело на меня расширенными от ужаса глазами. А потом сзади раздался звук. Дверь распахнулась с такой силой, что ручка врезалась в стену и выбила из штукатурки крошку. Грохот ударил по ушам, по нервам, по всему моему существу. Я вскрикнул, отшатнулся от окна и резко обернулся. Сердце колотилось с утроенной скоростью. Дверной проём зиял чёрным провалом. Пахнуло сыростью, железом, чем-то тошнотворно-сладким. Я не хотел выходить. Но это было лучше, чем замереть здесь и ждать, пока тьма сама придёт за мной. Сделав шаг, я перешагнул порог. Коридор общежития был вымазан кровью. Она была везде — на стенах, на потолке, на дверях соседних комнат, липкая, блестящая в неверном свете, который будто сочился из ниоткуда. Следы ладоней, брызги, длинные полосы, какие оставляют, когда тащат тело. Я шёл по коридору, и мои босые ноги ступали по чему-то мокрому и тёплому. Не хотелось думать, что это. В конце коридора, там где была лестничная площадка и окно, лежали два тела. Изломанные, неестественно перекрученные. Я сразу узнал их — по футболке, которую Димас не снимал уже неделю, и по татуировке на плече Паши. Они были мертвы. Изорваны. Истерзаны так, что человеческого осталось мало. Над ними что-то возвышалось. Это существо было массивным и угловатым, ростом почти под потолок, около двух метров. Его тело состояло из бесчисленного множества прямоугольных панелей, наложенных друг на друга, будто кто-то смонтировал монстра из старых перфокарт и кассетной памяти. Эти панели сдвигались, скрежетали, ездили по торсу и конечностям, издавая звук — механический, циклический, *щёлк-щёлк-тррр-щёлк*, похожий на стук головки жёсткого диска. Голова существа напоминала громадный массив из нулей и единиц, которые мерцали, как светодиоды на серверной стойке. Тысячи битов, горящих красным и чёрным. Ноль. Один. Ложь. Истина. AND. OR. XOR. Его лицо, если это можно было так назвать, представляло собой сплошную чёрную пластину с двумя вертикальными рядами отверстий, из которых сочился тусклый белый свет. И эти отверстия непрерывно меняли своё состояние — одни вспыхивали, другие гасли, и в этом ритме читалась адская, непостижимая логика. Снизу свисали жилы — или провода? — толстые, оптоволоконные нити, с которых капала слизь и ржавчина. Он издал звук. Низкий, вибрирующий гул, который переходил в высокочастотный писк модема. А потом — *щёлк* — его голова дёрнулась и повернулась ко мне. Биты на его теле загорелись алым. Ноль-один-ноль-один-СТРАХ. Он распознал меня. Он меня *прочитал*. Монстр дёрнулся всем корпусом и побежал. Каждый его шаг отдавался в бетонном полу металлическим лязгом — как тире в азбуке Морзе. Дефрагментированные конечности сжимались и разжимались, разбрызгивая во все стороны тёмную жидкость и искры. Он ревел — и этот рёв был похож на ошибку компиляции, выведенную через динамики на максимальной громкости. Я побежал. Я бежал обратно по коридору, скользя в крови, хватая ртом спёртый воздух. Позади нарастал скрежет, щелчки, его дыхание — горячий поток воздуха, пахнущий озоном и разложением. Я добежал до конца коридора и упёрся в стену. Тупик. Единственный выход — слуховое окно в торце, заколоченное досками. И остекление за ним. Десятый этаж. Я обернулся. БитСет приближался. Он уже не бежал — он шёл, медленно, наслаждаясь. Его панели ползли вверх и вниз, открывая под ними нечто, похожее на сочащуюся гнилью органическую массу, пронизанную медными дорожками. Один из «рукавов»-щупалец вытянулся в мою сторону — на конце его загорелось остриё, как раскалённый паяльник. Он был уже в метре от меня. Мой разум не выдержал. Тишина взорвалась моим собственным криком, когда это остриё медленно, методично, с мерзким хлюпающим звуком вошло мне в грудь. Боль была не просто физической. С этим прикосновением в меня хлынул поток информации — бесконечный, безумный поток битов, нулей и единиц, который выжигал мои воспоминания, мою личность, моё имя. Я чувствовал, как меня форматируют. Я закричал ещё громче — и проснулся. Я лежал в своей кровати, в холодном поту. Сердце колотилось так, что казалось, рёбра треснут. Паша мерно похрапывал. Димас сопел, свернувшись калачиком. Свет от ноутбука мягко освещал комнату. Приснилось. Это был просто сон. Я выдохнул, провёл дрожащей рукой по мокрому лицу и посмотрел в монитор. IDE была открыта. Вкладка с моим кодом. Я смотрел на метод `set(int bitIndex)` — и вдруг заметил, что он написан не мной. Совсем не мной. Тело метода было пустым, только одна строка, и в ней — комментарий: `// И ТЫ НИКОГДА НЕ ПРОСНЁШЬСЯ` Строчка горела зелёным. Как успешно пройденный тест. Я моргнул. Перечитал. Ещё раз. Буквы не исчезали. Комментарий, в котором все буквы были прописными, чёрными на бледно-сером фоне темы Dracula. И ТЫ НИКОГДА НЕ ПРОСНЁШЬСЯ. Это был просто текст. Просто строка в коде. Но от неё веяло таким ужасом, какого я не испытывал даже в том коридоре. С этого момента реальность начала рваться по швам. Сначала маленькие несостыковки. Я пошёл умываться утром — вода из крана текла несколько неестественно прямо, как сплошная стеклянная трубка. На лекции препод открыл рот, и вместо слов оттуда полился белый шум, похожий на радиопомехи, но все вокруг вели себя так, будто слышали нормальный голос. Потом я заметил, что в столовой на тарелке супа плавают не макароны, а цепочки символов «0» и «1», складывающиеся в узор моей ладони. Я перестал различать, когда сплю, а когда бодрствую. Каждый раз, открывая ноутбук, я видел этот комментарий, и каждый раз он обрастал новыми деталями: сначала вокруг него выстроились другие строки кода, потом он размножился на соседние файлы, потом зелёный цвет успеха начал расползаться по всему проекту, как плесень. Прошли ли дни? Или часы? Я помню, как сидел в комнате один. Паша и Димас ушли на пары — или мне это только казалось. Тишина давила. В углу стоял холодильник. Я открыл его. Рука сама потянулась к стеклянной бутылке. Те три недели трезвости сжались в точку и исчезли. Я не боролся. Взял водку за горлышко, открутил крышку, которая упала на пол и закатилась под кровать. Запах перегарного спирта ударил в нос, но я уже подносил бутылку к губам. Жидкость обожгла горло, потекла в желудок ледяным огнём. Я сделал ещё три больших глотка, почти залпом осушив половину. Мысли сразу сбились в вязкую кашу. Комната поплыла. Я чувствовал, как страх трансформируется в тупую, обречённую решимость. С бутылкой в руке я подошёл к окну. Распахнул створку. Уличный воздух, холодный и сырой, лизнул лицо. Я посмотрел вниз, на асфальт, залитый жёлтым светом фонарей, и увидел там, внизу, идеально ровные прямоугольники световых пятен — как ячейки памяти на плате. Я осушил бутылку до дна. Стекло стукнуло о зубы. А потом я перевалился через подоконник. Десять этажей пустоты. Последний ноль. Последняя единица. End of line. Segmentation fault.
0 Нравится 0 Отзывы 0 В сборник