Монитор светится синим. Режет глаза — забыл моргнуть, отслеживая стек вызовов. Где-то в этих трёх сотнях строк прячется ошибка, роняющая API каждые десять минут. До дедлайна четыре часа.

Саня шуршит пакетом чипсов за моей спиной. Третий раз за час заходит.

— Ром, пошли покурим.

Не курю. Он знает.

— Кофе тогда, как обычно...

— Справлюсь сам.

Вздох. Шаги к его столу, шуршание пакета затихает там. Офис пустой, только гул серверной за стеной и мой стук по клавиатуре. Остальные разошлись в одиннадцать. Я остался, потому что Максим завтра устроит разборку на планёрке. Мне не нужны его вопросы.

Строка 347. Вот она.

NullPointerException — классика жанра. Кто-то забыл проверить входной параметр три месяца назад. Исправляю за минуту, запускаю тесты. Зелёный свет. Коммит, пуш.

Откидываюсь. Кресло скрипит. Шея затекла — поворачиваю голову, хрустит позвоночник. За окном темнота с редкими светящимися квадратами в соседних зданиях. Питер устал. Я тоже.

Телефон вибрирует. Уведомление: "Напоминание: 3 месяца назад". Фотография — мы с Леной на Дворцовой. Она целует меня в щёку, я смотрю в камеру с дурацкой улыбкой.

Палец зависает над кнопкой "Удалить". Нажимаю отмену.

Единственное доказательство, что я умел улыбаться.

Встаю, иду к окну. Саня щёлкает мышкой — играет во что-то, решил переждать до утра. Хороший парень. Слишком хороший. Лезет дружить, хотя я ему поводов не даю.

Последний разговор с Леной всплывает сам. Наша квартира, её коробки у двери. Она на диване, я у окна.

— Рома, ты меня слушаешь?

— Слушаю.

— Анализируешь. Ты уже разложил всё в своей голове. Я для тебя задача. Решить, закрыть тикет, забыть.

Молчал. Она права была.

— Ты не чувствуешь. Вообще. Я целую тебя — ты думаешь о работе. Я плачу — ты предлагаешь решения. Я говорю "люблю" — ты киваешь. Ты как робот.

Выдохнул:

— Просто не показываю. Это другое.

— Тогда покажи. Хоть раз. Скажи, что ты чувствуешь сейчас.

Открыл рот. Слов не нашлось. Потому что не знал. Раздражение? Страх? Пустота? Всё вместе? Ничего?

Она встала, взяла коробку:

— Вот именно. Пока, Ром.

Дверь закрылась. Я простоял у окна час. Потом вернулся к компьютеру.

Саня снова рядом. Когда подошёл — не слышал.

— Ром, серьёзно. Ты выглядишь отвратительно. Когда последний раз спал?

Пожимаю плечами.

— Позавчера. Часа четыре.

— Это убьёт тебя.

— Переживу.

Он смотрит на меня десять секунд, вздыхает:

— Хочешь, поговорим. Если что-то... ну, в смысле. Мы же друзья вроде.

Друзья. Мы коллеги. Он добрый, я закрытый. Это его терпение, а я его использую.

— Всё нормально, Саш. Устал просто.

Ещё один долгий взгляд. Кивок. Возвращается к столу.

Экран чистый. Работа сделана. Можно уйти. Домой, в пустую квартиру, к пятну на стене, где висела её фотография.

Открываю бэклог. Три задачи. Не срочные. Можно начать.

Печатаю. Строки складываются в логику, логика в функции. Это понятно. Предсказуемо. Код ломается — находишь ошибку. Ошибка найдена — исправляешь. Работает. Жизнь так не работает. В жизни нет отладчика.

Часы показывают 3:47. За окном светлеет — питерское короткое лето, когда ночь длится четыре часа. Глаза слипаются.

Положу голову на стол.

На минуту.

Холод.

Не тёплый офисный воздух. Настоящий холод — влажный, земляной. Пахнет мхом и прелой листвой. Под щекой шершавая мягкость, а я лежал на столе, гладком пластике.

Открываю глаза.

Деревья. Над головой кроны смыкаются, сквозь них пробивается солнце — яркое, жёлтое, совсем не питерское. Птицы поют сложными незнакомыми трелями.

Сажусь. Голова кружится. Оглядываюсь — лес со всех сторон. Огромные деревья с толстыми узловатыми стволами. Воздух чистый, летний, без городской пыли и выхлопов.

Встаю. Ноги ватные. Одежда та же — джинсы, футболка с логотипом Python, толстовка. Кроссовки мокрые от росы. Фитнес-браслет на руке показывает 3:48. Дата — 17 июня.

Достаю телефон. 3% батареи. Сети нет. Даже значка поиска нет — там, где должна быть полоска сигнала, пустота.

— Где я?

Голос громкий. Эхо отражается от стволов. Птицы замолкают.

Паника подступает, но я её давлю. Логика. Мне нужна логика.

Вариант первый: Похищение. Усыпили в офисе, вывезли за город.
Проблема — зачем? Я никто. Денег нет, связей нет.

Вариант второй: Галлюцинация. Переработка, стресс, что-то сломалось в голове.
Проблема — слишком реально. Холод мха под ладонями, запах, звуки. Галлюцинации так не работают. Хотя откуда я знаю.

Вариант третий: Кома. Я в больнице, это сон.
Проблема — сны фрагментарные, а это детально до каждого листа.

Вариант четвёртый: Я не знаю.

Четвёртый побеждает.

Треск ветки. Резкий, громкий. Замираю. Оборачиваюсь.

Из чащи выходит зверь.

Размером с быка. Голова волчья, только морда шире, массивнее. Клыки торчат даже при закрытой пасти. Тело мускулистое, покрытое серой спутанной шерстью. Глаза жёлтые, смотрят прямо на меня.

Не дышу.

Он делает шаг. Земля вибрирует под лапой.

Ещё шаг.

Бежать — он быстрее. Залезть на дерево — я не лазаю с восьми лет, сорвусь.

Зверь рычит. Низко, утробно. Звук проходит сквозь рёбра, сердце спотыкается.

Он бежит.

Я тоже. Не думая. Ноги несут между деревьев. Ветки хлещут по лицу, корни цепляются за кроссовки, чуть не роняют. Рёв за спиной. Близко.

Толстый ствол впереди — ныряю за него, но медленно, слишком медленно. Что-то хватает лодыжку — острая жгучая боль. Падаю. Переворачиваюсь на спину.

Зверь надо мной. Пасть открыта. Слюна капает на землю, пахнет гнилью.

Кричу. Не слова, просто звук, животный.

Вспышка.

Яркая, ослепляющая. Зверь взвывает, отскакивает. Закрываю глаза — тепло обдаёт лицо, как от костра, но длится секунду.

Открываю глаза. Зверь отступает, шерсть на боку дымится. Рычит, но смотрит мимо меня. На кого-то за спиной.

Оборачиваюсь.

Девушка, лет двадцать, двадцать пять. Рыжие волосы, собранные в небрежный хвост. Зелёные глаза. Одежда — кожаная куртка поверх льняной рубашки, потёртые штаны, высокие сапоги. На поясе нож в ножнах. Руки голые по локоть, на правой ладони угасающее свечение, как от тлеющих углей.

Зверь делает ещё шаг назад, разворачивается, скрывается в чаще.

Девушка опускает руку. Свечение гаснет. Смотрит на меня:

— Ты далеко от дороги.

Голос ровный, спокойный.

Пытаюсь встать. Нога взрывается болью, падаю обратно. Смотрю вниз — джинсы порваны, кровь течёт, видно мясо.

— Не двигайся.

Она подходит, приседает рядом. Изучает рану. Касается пальцами — жжёт, терпимо. Ладонь снова светится, мягче, теплее. Боль утихает. Смотрю на рану — края кожи сдвигаются друг к другу, кровь перестаёт течь.

— Что ты...

— Тихо. Ещё немного.

Десять секунд. Убирает руку. Рана затянулась. Остался розовый шрам, боли нет.

Она встаёт, вытирает ладонь о штаны:

— Откуда пришёл?

Смотрю на неё. На руку, которая светилась. На лес. На закрытую рану.

— Не знаю.

Наклоняет голову:

— Забыл дорогу?

— Я был в офисе. Петербург. Россия. Заснул за столом. Проснулся здесь.

Она молчит несколько секунд. Изучает моё лицо.

— России нет на моих картах. Ты с материка или из-за моря?

Эрдара. Материк. Моря.

— Где я?

Она вздыхает:

— Далеко от твоего дома, судя по виду. Идём. Здесь и по хуже этого водятся.

Протягивает руку. Я смотрю на неё. На ладонь, которая минуту назад исцелила меня. Это невозможно. Всё невозможно. Но нога цела. Зверь был настоящим. Лес настоящий.

Беру её руку. Помогает подняться. Проверяю ногу — держит.

— Как тебя зовут?

— Роман.

— Виктория. Вика, если короче.

Разворачивается, идёт между деревьев. Я стою, потом иду следом. Другого выбора нет.

Через минуту различаю между стволами край дороги — накатанная колея, две полосы грязи, разделённые травой. Значит, она шла по тракту, услышала крик, свернула. Логично. Хоть что-то логичное.

Телефон в кармане больше не вибрирует. Батарея села. Последняя связь с домом — мёртвый кусок стекла и металла.

Иду за рыжеволосой девушкой, которая исцеляет прикосновением, по дороге, которой нет ни на одной карте, к месту с названием, которое я никогда не слышал.

Вопрос пробивается сквозь шок: что со мной происходит?

Ответа нет.

Загрузка...