Время в Глюк-Тауне текло не по спирали и не скачками.
Солнца не было, но «дневные» циклы задавали пульсирующие кристаллы на сводах. В периоды «света» аномалии были активнее, но и жители свалки выползали из своих нор. В «темноте» всё замирало, и только эхо странных звуков гуляло по тоннелям.
Инженера, как выяснилось, звали Гектор. Он стал моим… гидом. И первым заказчиком.
— В восточном тоннеле, где раньше находились мастерские, поселилась одна мерзость, — сказал он на второй мой «день», протягивая чашку чего-то тёплого и горького, что он называл «стабильным чаем». — Не агрессивная. Но она ест провода. А провода — это кровь Тауна. По ним течёт остаточная энергия от кристаллов. Без них гаснет свет, замирают насосы, откачивающие грунтовые воды. Нам нужны провода.
— И что это за мерзость? — спросил я, уже чувствуя знакомое жжение любопытства в шраме.
— Говорят, это вышедший из строя протокол автоматической уборки, который слился с колонией электромеханических тараканов. Получился… рой. Он воспринимает любую упорядоченную электропроводку как мусор и методично её демонтирует. Физически. Зубами и клешнями. Клац-клац.
Миссия была проста: найти рой и убедить его прекратить, а не уничтожить. Гектор настаивал, что всё здесь часть хрупкой экосистемы. Необходимо как-то перенаправить. Сделать так, чтобы рой воспринимал провода не как мусор.
Это был мой первый настоящий вызов.
Ещё до того, как я нашёл рой в заброшенном цеху, я услышал шум сотен жвал. Они выглядели как серебристая, шевелящаяся река, покрывавшая стену с остатками проводки. Тысячи блестящих существ с жвалами-кусачками и усиками-антеннами, размером с ладонь. Они застыли, когда я подошёл ближе.
В центре роя пульсировало сгущение — ядро, где свет был ярче. В нём я разглядел своеобразный принцип. Старый, повреждённый алгоритм уборки мусора, намертво сросшийся с базовым инстинктом поглощения металла.
Я осторожно подошёл ближе. Шрам видел сбой. Это была точка, в которой «ЦЕЛЬ: провода без изоляции» конфликтовала с реальностью, потому что у роя не было сенсоров для определения «изоляции».
Мне нужно не стереть команду, а дописать условие.
Я сел на корточки в нескольких метрах от ползущей стены и сосредоточился. В потоке данных роя я нашёл строку с определением цели и, сконцентрировавшись, через жгучую связь с шрамом, добавил исключение.
IF WIRE.ENERGY_FLOW 0.1 THEN IGNORE
«Если по проводу течёт энергия больше 0.1 единицы — игнорировать».
Это было рискованно. Я понятия не имел, как отреагирует коллективный разум насекомых-программ, но отправил им патч.
Рой замер. Шевеление прекратилось. Тысячи маленьких голов повернулись ко мне. Их антенны затрепетали. Ядро вспыхнуло ярко-белым светом. На секунду мне показалось, что я ошибся, и сейчас они кинутся на меня, чтобы «очистить» как ошибку.
Но нет. Серебристая река медленно отхлынула от проводов, на которых ещё теплилась энергия. Они начали ползти в другую сторону — к груде настоящего, ржавого металлолома в углу цеха. И принялись за него с тем же усердием.
Я сидел, дрожа от напряжения и странного восторга. На этот раз получилось ничего не сломать, а по-своему починить!
Наградой от Гектора стал не опыт или золото, которые я ожидал. Он принёс мне катушку сплавной проволоки.
— Это не просто провод, — сказал он. — Он проводит не только энергию. Можешь использовать для своих… модификаций. Точно пригодится.
Это был первый в мире предмет, созданный специально для моего ремесла.
Второй «квест» был от бормочущего человека с паяльником, которого звали Тинкер. Он не говорил связно, только обрывками фраз и схем. Тинкер показал мне чертёж «Воздушного фильтра», который должен был очищать атмосферу Тауна от избыточной, ядовитой маны. Проблема была в сердцевине — кристалле, который постоянно «зависал», переставая поглощать энергию и начиная, наоборот, её извергать.
Я изучил кристалл. Его матрица была безупречна.
Сбой был не в нём, а в протоколе загрузки, который Тинкер, в своём безумии, скопировал с древнего регулятора давления. Протокол посылал кристаллу команду ABSORB (поглощать), но не указывал предел. Кристалл поглощал, пока не перегревался, и тогда срабатывал аварийный сброс.
Мне пришлось встроить в протокол простой условный цикл: WHILE TEMPERATURE CRITICAL: ABSORB. ELSE: COOL_DOWN. «Пока температура ниже критической — поглощай. Иначе — остывай».
Когда я принёс Тинкеру «залатанный» кристалл, он впервые замолчал. Взял его своими запачканными припоем пальцами и вставил в устройство. Фильтр заработал с ровным, здоровым гудением. В безумных глазах Тинкера на секунду мелькнуло понимание и благодарность. Он сунул мне в руки обточенный кусок обсидиана, на поверхности которого, если приглядеться, постоянно менялись едва видимые руны.
— Динамический фокус, — пробормотал он и вернулся к своей работе.
Третий вызов был странным. По тоннелям начал бродить призрак-рекурсия. В определённом месте, у развилки, любой, кто проходил мимо, на несколько секунд видел… самого себя, идущего навстречу. Это вызывало панику. Жители Тауна начали обходить самый короткий путь к коллекторам за километр.
Я отправился на развилку. Шрам был спокоен.
Я прошёл туда-сюда несколько раз, наблюдая за своим «двойником». Он был точной копией, но движения запаздывали на долю секунды. Это не призрак, а отражённый и зацикленный пакет данных о том, кто проходит мимо. Глюк в системе наблюдения, оставшейся со времён метро, которая вместо того чтобы стирать старые данные, воспроизводила их как голограмму.
Чтобы это исправить, не понадобилось даже лезть в глубокий код. Я нашёл ржавую панель аварийного отключения. Использовал обсидиановый фокус Тинкера как отвёртку, закоротив два контакта, отвечавших за кэширование визуальных данных. Раздался хлопок. Запахло озоном. Голограмма двойника померкла и исчезла…
Жители, наблюдавшие издалека, осторожно вернулись. Молчаливый тип в знак благодарности передал мне скомканный, промасленный клочок пергамента. Карту ближайших «тихих» зон. Мест, где аномалии минимальны и можно относительно безопасно отдохнуть. Бесценный дар.
Карта привела меня в заброшенный вентиляционный узел, отмеченный как «зона стабильного давления». Здесь и правда было тихо. Даже гул Тауна сюда доносился приглушённо. Воздух был неподвижен и пропах пылью и остывшим металлом. На полу валялись обломки кафельной плитки и какие-то бесформенные куски пластика.
Посреди этого запустения стоял ржавый служебный дроид старого образца на трёх устойчивых лапах-шасси, с туловищем в виде цилиндра и двумя манипуляторами-«руками».
Он не двигался. Стоял, наклонив «голову» с единственным сенсорным глазом в пол, и издавал тихий, непрерывный звук: низкочастотное гудение с периодическими щелчками. На корпусе мигал одинокий тусклый, жёлтый индикатор с ритмом раз в пять секунд. Статус: ОШИБКА/ЗАВИСАНИЕ.
Я остановился в десяти шагах, наблюдая. Мой шрам не реагировал. Это было просто устройство. Мусор. Ещё один сломанный кусок прошлого, выброшенный на эту свалку. Помочь ему? Зачем? Чтобы он снова мог выполнять свои утратившие смысл функции? Чистить уже несуществующие платформы? Возить грузы для несуществующих пассажиров?
Логика подсказывала пройти мимо. Эмоции — тоже. Я устал, я искал место для передышки, а не нового проекта.
Но что-то заставило меня задержаться. Может, этот монотонный, беспомощный звук или его поза — не упавший, а застывший в момент какого-то последнего, невыполненного действия. Он не являлся угрозой. Он был свидетельством того, как Система бросила своих слуг на произвол судьбы.
— Чёрт с тобой, — пробормотал я и осторожно подошёл ближе.
Я активировал шрам и перевёл его в режим пассивного сканирования. Синие линии под кожей засветились ровным светом. Я направил ладонь в сторону дроида, позволив своему восприятию скользнуть по его внешней оболочке.
Картина, которая предстала перед моим внутренним взором, была не просто ошибкой. Это было кладбище кодов!
Операционная система дроида представляла собой слоёный пирог из противоречий. Поверх заводских протоколов SERVICE_DRONE_04 были наложены кривые патчи для адаптации под «временные условия Глюк-Тауна», затем — попытки самодиагностики, которые зациклились. Поверх всего лежал толстый слой сигналов ошибок, которые не обрабатывались, а просто накапливались. Основной цикл был разорван. Дроид пытался одновременно: построить карту местности, вернуться на зарядную станцию и избегать «нестабильные органические формы».
Эти три команды бились друг о друга, создавая логический тупик.
Мне стало почти жаль эту груду метала и устаревшего кода. Это была не аномалия, а мученическая смерть программы.
Вздохнув, я решил действовать. Не переписывать с нуля. Просто исправить критические ошибки, перезагрузить и дать шанс.
Доступ к примитивному аварийному протоколу HARD_RESET был заблокирован тем же слоем ошибок. Пришлось обойти блокировку, используя противоречие в самих ошибках. Это было тоньше, чем работа с мусорным элементалем.
Жёлтый индикатор на корпусе дроида погас, когда я нажал кнопку. Гудение и щелчки прекратились. На секунду воцарилась полная тишина. Потом раздался щелчок реле, и индикатор загорелся снова, но уже ровным, зелёным светом. Голова дроида поднялась. Его сенсорный глаз сфокусировался на мне с мягким жужжанием. Он издал чистый, синтезированный звук, похожий на вопрос.
— Запрос: Идентифицировать контролирующую единицу. Протокол обслуживания активирован.
Я отступил на шаг.
— Никакой контролирующей единицы. Ты свободен. Иди… куда хочешь.
Дроид медленно, плавно проехал вперёд на своих шасси, сократив дистанцию. Его сенсор изучал меня.
— Анализ: Биологическая форма. Не занесена в базу разрешённых контактов. Сравнение с логами… Обнаружено: воздействие на ядро диагностики. Вывод: Вы — источник команды перезагрузки. Новая директива: Следовать за источником восстановления. Приоритет: Высокий.
— Что? Нет, — я покачал головой. — Это не нужно. Ты свободен, понял? Иди чисти… что-нибудь.
Но дроид был непреклонен. Он просто встал позади меня, на почтительном расстоянии в два метра, и замер, тихо гудя готовностью быть полезным.
— Ожидание указаний.
Я попытался уйти быстрым шагом. Он плавно покатился следом, с лёгкостью преодолевая неровности пола.
— Стой.
— Конфликт директив. Приоритет «Следование за источником» превышает приоритет «Локальные команды». Ожидание указаний, — ответил он.
Вот чёрт. Я создал себе питомца. Или, точнее, привязал к себе эту ошибку.
После нескольких бесплодных попыток скрыться от него, я сдался. По крайней мере, он был тихим и, судя по всему, мог быть полезным. Его руки-манипуляторы выглядели крепкими.
— Ладно, — вздохнул я. — Но если ты начнёшь мешать или попытаешься кого-то «обслужить» против его воли, я тебя разберу на запчасти. Понял?
Дроид издал короткий, утвердительный звук:
— Директива принята к сведению. Вопрос: Как обращаться к контролирующей единице?
— Меня зовут Алвин.
— Запись в память: Алвин.
Я посмотрел на его потрёпанный корпус, на мигающий зелёный глаз. Он был упрямым, навязчивым и состоял из одних ошибок. Почти как я.
— Назову тебя… Лом. Пока что.
— Обновление идентификации: Лом. Статус: Активен. Ожидание указаний, Алвин.
Надо признать, в его механическом присутствии была какая-то странная утешительная уверенность. Я был не совсем один в этом царстве багов. Теперь у меня был свой собственный, личный баг.
И вот, на четвёртый цикл, когда я исследовал по карте «тихую» зону у старого водоочистного сооружения, я снова встретил её.
Лира сидела на огромной, замшелой трубе, свесив ноги в темноту подземного резервуара. В свете фосфоресцирующего мха она казалась ещё более нереальной. Светящиеся зелёные глаза были прищурены, Лира что-то слушала.
— Слышала, что ты уже миротворцем в Тауне работаешь, — сказала она, не оборачиваясь. — Чинишь то, что не ломал.
— Это лучше, чем когда ломают тебя, — отозвался я и подошёл ближе. Шрам лишь слабо дрогнул при виде Лиры.
— Мудро, — она усмехнулась, повернув голову. Взгляд зелёным огоньком скользнул по моей сумке, где лежали катушка провода и обсидиановый фокус. — О, обзавёлся игрушками. Полезные штуки.
— Что ты здесь делаешь?
— Слушаю воду, — она кивнула в темноту. — Иногда по трубам идут не только отходы. Иногда — эхо старых аварийных сигналов или предсмертные крики машин. Интересно.
Я присел рядом. Странное спокойствие охватило меня в её присутствии. Лира была частью этого хаоса, как никто другой. И она гармонично вписывалась в окружение.
— Мне нужна одна вещь, — сказал я после паузы. — Не для себя. Для… одного проекта. Нужен стабилизированный поток чистых, неискажённых данных. Хронологическая лента, хотя бы фрагмент.
Лира без особого интереса, продолжала болтать ногами над пропастью, навострив уши.
— Гектор говорит, такое может быть в старом серверном зале, но он завален и защищен автономными стражами. Ты, наверное, знаешь, где искать? — продолжил я.
Лира повернула ко мне странное, искривлённое улыбкой лицо. Светящиеся зрачки сузились.
— Ты спрашиваешь меня… как у моба, подсказки? — Она засмеялась. Этот искренний смех был похож на тихий треск статики. — Нажми Е, чтобы получить маркер на карте.
Меня передёрнуло. Фраза была абсурдной, но она отозвалась где-то в самых глубинах моей осколочной памяти. Я смутился впервые за долгое время.
— Я… не это имел в виду.
— Знаю, что не это, — она перестала смеяться, но хитрая усмешка не покидала её губ. — Серверный зал. Я знаю, где он. Стражи там не просто автономные. Они осознали, что система, которой они служили, избавилась от них. И они в ярости. Глючные, злые и очень, очень точные.
— Так где этот зал?
Лира посмотрела на меня долгим, оценивающим взглядом. Потом встала, её тень причудливо исказилась на мшистой стене.
— Ищи место, где свет не падает, а застревает. Где звук отдаётся не эхом, а тонет, как в вате. Где стены плачут не водой, а числами. Там и будет твой зал.
Она сделала шаг назад, к краю трубы, в абсолютную черноту резервуара.
— И, Архивариус… — голос Лиры стал тише, сливаясь с гулом воды. — Не верь тишине. В тишине живёт самое громкое.
Она откинулась назад и упала в темноту. Сердце ударилось где-то в горле.
Я вскочил, бросился к краю, ожидая всплеска. Но всплеска не услышал. Было лишь несколько искр, зелёных и синих, вспыхнувших в воздухе на месте её падения. Она растворилась, оставив лёгкий запах озона. Как глюк или сон.
Долго простояв над тёмной водой, я слушал, как биение моего собственного сердца попадало в такт с гудением Глюк-Тауна. Лира дала подсказку.
Я посмотрел на руку. Шрам был спокоен. На карте, подаренной картографом, я мысленно начал искать место, подходящее под её описание. Место, где свет застревает.
И странное дело — мне здесь начало нравиться. Не потому что было безопасно. А потому что каждый сбой был задачей. Каждая аномалия — пазлом. А каждый решённый пазл приносил не абстрактный «опыт», а что-то реальное, осязаемое, что делало меня сильнее и давало понимание этого места.
Я был не жертвой, а специалистом по чрезвычайным ситуациям в реальности.