
Полная версия
Песчаная Империя
Хан тут же в блокноте нарисовал условную карту объекта, пометил сектор 7-Б и провёл от него стрелку к «РЕМ-02». Связь установлена, но суть – нет. Они оставили это как «гипотезу А».
Минуты 20-45: Топливные аномалии и слепая зона.
Переключились на энергетику. Хан предложил проверить не расход, а *остатки* по бакам. Данные по текущему уровню в цистернах обновлялись раз в сутки. Сопоставив цифры с графиком расхода, Игнис выявил несоответствие: ежедневный расход был на 3-4% меньше, чем падение уровня в цистернах.
– Либо учёт неточен, либо есть неучтённый отбор, – заключил Хан. – Небольшой, постоянный. На что? На генераторы для… чего-то незаложенного в общую сеть?
Они пометили это как «Аномалия-Т (топливо)». Ещё один кирпичик в стену вопросов.
Минуты 45-70: Человеческий фактор и первые профили.
Игнис решил проанализировать не только что, но и кто. Он начал выгружать данные по ответственным за приёмку. Большинство – цифровые коды (охранники, техники). Но несколько раз встречалась буквенная подпись: «В. Громов». Каждый раз – на приёмке крупных партий: пайков, медикаментов, топлива. Ни одного списания.
– Громов – начальник логистической цепочки на въезде, – сказал Игнис. – Контроль на входе. А на выходе… – Он нашёл несколько списаний с подписью «А. Шустров» – предположительно, старший по ангару. – Два полюса. Громов впускает, Шустров расходует. А между ними – Лет, который утверждает заявки.
Хан начал составлять список «персоналий системы» в блокноте, указывая предполагаемые роли. Это уже была не просто логистика, а социограмма власти.
Минуты 70-90: Тест на прочность границ.
Игнис, чувствуя азарт, решил проверить предел своих полномочий. Он попытался запросить расшифровку кода «CNWE» через справочник системы. На экране всплыло сообщение: «ДОСТУП ОГРАНИЧЕН. ТРЕБУЕТСЯ УРОВЕНЬ 2». Он попробовал запросить логи доступа к архивам за 2018 год. Система зависла на секунду, затем выдала: «ЗАПРОС НЕ МОЖЕТ БЫТЬ ОБРАБОТАН. ОБРАТИТЕСЬ К АДМИНИСТРАТОРУ».
– Граница, – констатировал Игнис, откидываясь на спинку стула. – Нам доступна оперативная текучка. Вся история, все ключи – под замком. Нас держат в коротком поводке настоящего времени.
Хан показал на свою схему в блокноте, где стрелки упирались в заштрихованные зоны.
– Мы видим контуры. Но не содержимое.
Последние 10 минут: Суммирование и стратегия.
Они свели всё воедино за последние десять минут. У Хана в блокноте теперь была:
1. Карта логистических потоков с тремя аномалиями (масло, топливо, приоритет пайков).
2. Схема иерархии на основе подписей.
3. Обозначены «слепые зоны»: сектор 7-Б, архивные данные, коды CNWE/OSA.
Игнис сформулировал стратегию на следующий цикл:
1. Физически, под предлогом уточнения учёта, попытаться получить доступ к периметру сектора 7-Б (маловероятно, но можно зафиксировать реакцию охраны).
2. Установить контакт с кем-то из «расширенного» пайка (охранником, техником) для неформального выяснения структуры.
3. Составить первый официальный отчёт, но сдержанный, с акцентом на выявленные «резервы оптимизации» – чтобы показать полезность, но не вызвать подозрений в чрезмерном любопытстве.
Тишину склада нарушил далёкий скрежет – где-то открывалась другая дверь. Они замолчали. Их мозги, три часа работавшие как один слаженный механизм по анализу чужой системы, теперь ощущали её давление на физическом уровне. Они не просто считали ящики. Они учились дышать в разреженном воздухе жёсткой иерархии. Каждая цифра, каждая аномалия приближала их к пониманию правил игры. И к осознанию, что любое неверное движение в этой игре карается не криком, а молчаливым отключением кислорода. Они собрали блокноты, встали. Рабочий день ещё не закончен, но первый, самый важный этап разведки – завершён. Они нащупали дно клетки. И поняли, что оно гораздо глубже, чем казалось.
Император круп
Воздух здесь был другим – не сухой озон серверной и не масляная гарь ангара. Здесь висела тяжёлая, почти осязаемая влажность, вобравшая в себя десятилетия запахов: сладковатую пыль муки, кислый дух квашеной капусты, металлический отсвет жести от тысяч банок, глубокую, въевшуюся затхлость долгого хранения без вентиляции. Холод был промозглым, пробирающим под одежду.
Майкл стоял перед стеллажами, забитыми одинаковыми жестяными банками без этикеток. Только штамповка на крышке: «Говядина тушёная. 2024. Годен до: 12/29». Он взял одну, взвесил в руке. Стандартный вес. Положил обратно. Его первая задача была примитивна: инвентаризация.
Первые 30 минут: Тактильное картографирование.
Он начал с ближайшего ряда. Не доверяя полностью цифрам на планшете, он вёл двойной учёт – в электронной таблице и в блокноте, делая пометки, которые цифры не покажут: «Банка №А-47: след вмятины, возможна разгерметизация». «Мешок гречки №12: запах затхлости, проверить на плесень». Его руки, привыкшие оценивать свежесть ингредиента по упругости и запаху, теперь машинально ощупывали упаковки, ища признаки порчи. Он открывал крышки бочек с солёными огурцами, вдыхая резкий запах – проверял рассол на муть. Всё было исправно, надёжно, бездушно. Пища как топливо. Его шефское сердце сжималось от тоски.
Минуты 30-60: Система и её сбои.
Сверяясь с планшетом, он обнаружил первое несоответствие. По учёту в секторе «Б-3» должно было быть 50 банок сгущёнки. Он пересчитал трижды: 48. Две отсутствовали. Он отметил расхождение, но не как кражу – в столбце «примечание» написал: «Возможная погрешность предыдущего учёта или внеплановое списание. Требует уточнения у ответственного (Андрей?)». Он учился языку этого места: не обвинять, а констатировать и запрашивать.
Затем он перешёл к холодильным камерам. Их было две. Первая, поменьше, работала на -20°С. Внутри – аккуратные коробки с маркировкой «Мясо, обр. 1», «Рыба, брикет». Всё промаркировано, упаковано в вакуум. Вторая камера, побольше, держала +4°С. Здесь был «дефицит»: несколько кочанов капусты, уже начавших вянуть, мешки с морковью и свёклой в песке, ящик с луком. Свежесть была относительной. Это было царство полуфабрикатов и долгохранящихся овощей. Ни зелени, ни томатов, ни фруктов. Его кулинарная фантазия, пытаясь шевельнуться, натыкалась на ледяную стену реальности.
Минуты 60-90: Встреча с реальным миром и диалог.
Дверь склада скрипнула. Вошёл Виктор, тот самый охранник. Он нёс пустой поддон.
– Ну как, хозяин, обживаешься? – его голос прозвучал гулко в тишине.
– Осваиваюсь, – коротко ответил Майкл, продолжая записывать показания термометра с камеры. – Много консервов. Мало свежего.
– Ага, – Виктор поставил поддон, подошёл ближе. – Свежее – это роскошь. Раз в квартал, если повезёт с доставкой. А так – то, что видишь. – Он помолчал, глядя, как Майкл записывает. – Нашёл расхождения?
– Пока пару банок сгущёнки, – сказал Майкл, не поднимая глаз. – И капуста в холодильнике начинает портиться. Её бы пустить в дело в первую очередь.
– Капусту Андрей на щи пускает, – сказал Виктор. – Три раза в неделю. Однообразно, зато сытно.
Майкл наконец посмотрел на него.
– А если сделать, скажем, бигос? Тушёную с мясом? Тот же набор продуктов, но… иначе.
Виктор задумался, и в его глазах вспыхнул тот самый огонёк тоски по нормальной еде.
– Бигос… – произнёс он, словно пробуя на вкус слово. – Это который, с копчёностями?
– С чем угодно. Можно с тушёнкой и той же капустой. Приправить, протушить долго… – Майкл замолчал, понимая, что говорит на непонятном здесь языке. – В общем, можно разнообразить.
Виктор кивнул, уже более деловито.
– Ты план составляешь, меню? Ему, – он кивнул куда-то в потолок, – завтра с утра отчёт подавай. Он любит конкретику. Можешь вписать туда свой… бигос. Как предложение по оптимизации. Он оценит рациональное использование угрожающих запасов.
Это была первая практическая подсказка. Не просьба, а инструкция к действию в рамках системы.
– Андрею скажи, – добавил Виктор, уже уходя. – Он не злой. Просто консерватор. Если объяснишь, что это не лишняя работа, а способ сберечь продукты – может, и согласится.
Последние 30 минут: От подсчёта к плану.
После ухода Виктора Майкл продолжил работу, но его мышление сместилось. Он перестал просто считать. Он начал *комбинировать*.
Открыв раздел «Раскладка на неделю» на планшете, он увидел унылый цикл: щи, гречка с тушёнкой, макароны по-флотски, перловая каша. Без вариаций. Он создал новый файл.
Заголовок: «Предложения по оптимизации использования скоропортящихся запасов и повышению питательной ценности рациона».
Пункт 1: «Немедленная переработка капусты (12 кочанов, начало увядания) методом длительного тушения с мясными консервами (бигос). Это позволит увеличить срок хранения готового продукта до 5 дней и снизить потери».
Пункт 2: «Использование части лука и моркови для приготовления основы для соусов (зажарка), что сократит время готовки и усилит вкус блюд из круп».
Пункт 3: «Введение в раскладку витаминного напитка из сушёных ягод шиповника (имеется запас 5 кг) для профилактики авитаминоза».
Он писал сухо, технично, как отчёт. Никаких эпитетов «вкусно», «ароматно». Только «рационально», «эффективно», «снижает потери». Он учился говорить на их языке. Его план был не кулинарным шедевром, а тактическим манёвром по спасению продуктов и, возможно, крошечной долей своего достоинства. Он закончил ввод данных как раз тогда, когда автоматический таймер на планшете показал, что до конца рабочего цикла осталось пять минут.
Майкл отложил планшет, прошёлся между стеллажами. Его спина ныла от холода и неудобных поз. Руки пахли железом и пылью. Но в голове уже роились расчёты: пропорции, время тушения, как уговорить Андрея. Он подошёл к бочке с солониной – неприкосновенный запас на крайний случай. Положил ладонь на холодную деревянную крышку. Здесь, в этом царстве консервов, он нашёл своё первое поле битвы. Битвы за вкус. И первое оружие – рациональность.
Писк динамика был резким, неожиданным, как сигнал тревоги в гробовой тишине склада. Майкл вздрогнул, оторвавшись от планшета. Голос из репродуктора, безличный и механический, произнес: «Первый рабочий блок завершён. Перерыв 15 минут. Разрешается перемещение в зону отдыха персонала уровня «Базовый», сектор 2-Г».
Сектор 2-Г оказался небольшой комнатой без окон, смежной с кухней. Воздух здесь был тёплым, влажным и густо пропитанным знакомыми, живыми запахами: луковой пассеровки, кипящего бульона, подгорелого жира и чёрного хлеба. После мёртвой тишины склада сюда долетали звуки – стук ножа по доске, шипение чего-то на плите, ворчание мужского голоса.
В комнате стояли простой стол, несколько стульев и автомат с кипятком. У стола уже сидел тот самый Андрей – повар. Мужчина лет пятидесяти, мощный, как медведь, с обветренным лицом и руками, покрытыми старыми ожогами и шрамами. Он пил из жестяной кружки что-то тёмное, не обращая внимания на вошедшего.
Майкл молча налил себе кипятка, сел напротив.
– Майкл, – сказал он через паузу. – Меня на склад определили.
Андрей поднял на него тяжёлый, уставший взгляд.
– Знаю. Виктор сказал. Новый учётчик. – Он отпил, поморщился. – Чай кончился. Завариваю кору да ягоды. Против цинги.
– Видел ваш график на планшете, – осторожно начал Майкл, держа кружку в ладонях, греясь. – Щи, каша, макароны. Цикл.
– Ага, – буркнул Андрей. – Сытный цикл. Никто не жалуется. Не до изысков тут.
– Не жалуются, потому что сравнивать не с чем, – тихо, но чётко сказал Майкл.
Андрей отставил кружку, пристально посмотрел.
– Ты шефом был. В ресторане. Я слыхал. – В его голосе не было ни зависти, ни уважения. Была констатация. – Здесь не ресторан. Здесь котёл на семьдесят ртов. И продукты те, что есть. Фантазию оставь за дверью.
– Я не о фантазии, – Майкл положил на стол свой планшет, повернув его к Андрею. – Я о капусте. Она вянуть начинает. Через неделю придётся выбросить килограммов двадцать. А если её сейчас протушить с тушёнкой, с той же перловкой – получим бигос. Его на пять дней хватит. Экономия. И… разнообразие.
Андрей скосил глаза на экран, пробежался по строчкам. Его толстый палец медленно провёл по пункту о витаминном напитке.
– Шиповник… Да, мешок валяется. Не руки были. – Он поднял взгляд. – Ты это ему предлагать будешь? – Кивок в сторону означал Лета.
– Уже составил. Как предложение по оптимизации. «Снижение потерь».
На лице Андрея мелькнуло что-то похожее на интерес.
– «Оптимизация»… Это он любит. – Он откинулся на стуле, скрестив мощные руки. – Ладно. Допустим, он разрешит. Ты сам готовить будешь? У меня своих дел по горло.
– Помогу. Покажу. Рецепт простой.
– А инвентарь? Время? – Андрей ткнул пальцем в воздух. – У меня обед через два часа. Шестьдесят порций щей да каши. Без сбоев.
– Я успею до начала вашей готовки, – быстро сказал Майкл, чувствуя слабину. – Склад рядом. Капусту, лук, тушёнку подготовлю. Всё взвешу, принесу. Вам останется заложить в котёл.
Андрей долго смотрел на него, оценивая.
– На переработку увядшей капусты… – проговорил он наконец, словно про себя. – Это аргумент. Он такие аргументы ценит. – Он тяжко вздохнул. – Ладно. После перерыва тащи два кочана. И банки четыре тушёнки. Посмотрим. Но если накосячишь по времени или по продуктам – больше ко мне не подходи. У меня система.
– Договорились, – кивнул Майкл, внутри него что-то ёкнуло от странного, первого за долгое время чувства – предвкушения работы.
Прогремел гонг, возвещающий об окончании перерыва. Андрей поднялся, его массивная фигура заслонила свет.
– И да… – он обернулся на пороге, ведущем на кухню. – Соль тут йодированная. Но её в общий котёл много не сыпь. У некоторых щитовидка шалит. Медики говорили. Мелочь, а помнить надо.
Он исчез за дверью, и сразу послышался яростный стук ножа. Майкл остался сидеть, держа уже остывшую кружку. Пятнадцать минут. Он получил больше, чем ожидал: не просто разрешение, а первую, осторожную долю доверия и практический совет. Он взглянул на планшет. Его сухой отчёт теперь имел шанс стать реальностью. Он встал, направился обратно на склад. Его шаги стали быстрее. Впереди была не просто инвентаризация. Впереди была готовка. Пусть и в гигантском казане, пусть из консервов. Но это была его территория. И он только что отвоевал на ней первый пятачок.
Холод кремния
Холод в серверной был иным – сухим, стерильным, вымеренным до градуса системой климат-контроля. Он проникал сквозь одежду не сыростью, а точечным, металлическим ознобом. Гул вентиляторов стоял постоянным фоном, достаточно громким, чтобы заглушить собственные мысли, но не настолько, чтобы нельзя было сосредоточиться. Это был белый шум цифрового океана.
Колин не слышал сигнала о перерыве. Для него времени не существовало – был только поток данных. Его экран был разбит на четыре виртуальных терминала.
Терминал 1: Картография сети. (Первые 25 минут)
Он закончил загрузку схемы топологии. Это не была красивая графика – лишь древовидная структура из IP-адресов, масок подсетей и названий устройств. Его глаза бежали по строчкам, выискивая аномалии. Внутренний контур был прописан чётко: подсети для жизнеобеспечения (192.168.10.0/24), для охраны (10.10.1.0/24), для администрации (172.16.0.0/16). Но он заметил «дыры».
1. Несколько IP-адресов в диапазоне 10.10.5.xx не были описаны. В логах ARP-таблиц маршрутизатора он нашёл их MAC-адреса – это были не стандартные устройства. Спецоборудование.
2. Была отдельная, физически изолированная подсеть с гейтвеем 169.254.100.1 – классический адрес для автономных, закрытых систем. К ней не было прописанных путей доступа из основной сети. «Чёрный ящик». Вероятно, система управления периметром или тем, что в ангаре.
Он пометил это в своём локальном файле-отчёте как «Сегмент X» и «Сегмент Y».
Терминал 2: Написание скрипта мониторинга. (Минуты 25-45)
Язык он выбрал Python – быстрее для прототипа. Скрипт должен был каждые 5 минут опрашивать ключевые службы простыми ping-запросами и HTTP-запросами к веб-интерфейсам (если были). Он начал с каркаса:
import subprocess, requests, time, logging
SERVERS_TO_MONITOR = ['gw.internal', 'ns1.local', 'storage01']
def check_ping(host):
Работа шла быстро, пальцы летали по клавиатуре. Он погрузился в знакомый поток: синтаксис, логика, обработка исключений. Написав базовый функционал, он добавил отправку алертов. Но куда? Внутренней почты не было. Он создал простой лог-файл с метками времени, но также добавил функцию отправки сообщения в syslog на IP-адрес Рут. Вежливо, без навязчивости: «Сервис мониторинга запущен. Первые данные: [статус]». Демонстрация работы.
Терминал 3: Шлюз во внешний мир. (Минуты 45-60)
Самое интересное. Он получил доступ к логам внешнего шлюза – устройства, которое должно было соединяться со спутниковым каналом или радиостанцией. Логи были скудны. Попытки соединения осуществлялись по расписанию, раз в 6 часов. За последние 48 часов – 8 попыток. Статус: «TIMEOUT», «NO CARRIER», «ENCRYPTION HANDSHAKE FAILED». Ни одного успешного.
Он решил пойти дальше и попробовал запустить `traceroute` через шлюз с самым низким приоритетом. Команда прошла. Первые три прыжка – внутренняя сеть. Четвёртый – шлюз. А дальше… ничего. Не «превышено время», а «адрес недоступен». Как будто за шлюзом не было сети вообще. Или трафик уходил в чёрную дыру.
Он попытался сделать DNS-запрос на внешний адрес (8.8.8.8). Ответ: «SERVER FAIL». Он залез в конфигурацию DNS. Были прописаны внутренние серверы имён. Внешние – заблокированы правилами фаервола. Правила были жёсткими: разрешён исходящий трафик только на три конкретных IP-адреса через два конкретных порта. Он погуглил (мысленно) эти адреса – они ничего не значили. Частные диапазоны, возможно, спутниковые.
Система не была просто отключена. Она была направлена. Кто-то (Рут? Лет?) знал, куда стучаться, и отсекал всё остальное.
Внезапное вмешательство:
– Ты полез не туда.
Голос Рут прозвучал прямо за его спиной. Колин вздрогнул – он не слышал, как тот подошёл.
Рут положил руку на его мышь и закрыл окно с конфигурацией фаервола.
– Задача была – составить карту доступного. Не ковырять правила. Это моя зона. – В его голосе не было гнева, лишь усталое раздражение. – Видел статусы «NO CARRIER»?
– Да, – коротко ответил Колин.
– Этого пока достаточно. Внешний мир молчит. Или мы не можем до него докричаться. Всё, что тебе нужно знать. Не трать время на диагностику канала. Пиши мониторинг внутренней связности. Если тут что-то рухнет – нам будет не до спутников.
Рут вернулся на своё место. Колин выдохнул. Его порыв исследовать был остановлен, но он получил ценную информацию: 1) Рут бдит; 2) Внешняя связь – больная тема; 3) Есть чёткое разделение зон ответственности.
Последние минуты часа: Консолидация.
Он свернул все окна, кроме терминала со скриптом. Дописал логирование, протестировал на локальном хосте – работало. Запустил фоново. В лог-файле появилась первая запись: `[12:47:23] INFO: All core services (3/3) are reachable.`
Это было маленькое, но его первое цифровое творение в этом месте. Оно работало.
Он откинулся в кресле. За час он не спасся, не нашёл лазейку. Но он понял архитектуру тюрьмы: её внутреннее устройство, толщину стен и тот факт, что надзиратель (Рут) хотя бы компетентен. А в мире, где рухнула связь, компетентность – редкая и странная форма утешения. Он взглянул на мерцающие стойки. Где-то среди них крутились данные, которые, возможно, знали, что случилось с миром. Но путь к ним лежал не через взлом, а через выполнение задач. Он развернулся к клавиатуре. Впереди было ещё семь часов. Время кода.
Прошел час, но сеть не подала жизни. Он принял отчаянное решение сбросить сеть принудительно.
Тишина серверной была обманчивой. Её заполнял невыносимый, сконцентрированный гул – низкочастотный вой сотен вентиляторов, работающих на пределе. Воздух не просто вибрировал – он дрожал. Первые ряды стоек были относительно прохладными, но по мере продвижения вглубь, к главным коммутационным узлам и магистральным каналам, температура начинала расти. Сначала просто стало душно, потом жарко, а ещё через десять шагов – физически тяжело дышать. Колин шёл к блоку маршрутизаторов и внешних шлюзов, расположенному в самом сердце зала, где системы охлаждения сдались под нагрузкой. Термометр на одной из стоек мигал красным: +64°C. На самом деле, в эпицентре, куда он смотрел, было ближе к восьмидесяти.
Причина была на мониторе Рута, который Колин изучал последний час: критический сбой на одном из ключевых физических портов, отвечающих за внешний спутниковый канал. Интернет – тот самый, урезанный и фильтрованный, но единственная нить – прерывался каждые несколько минут. Рут копался в софте, перебирая конфигурации. Колин же, изучив логи и схему расположения, предположил простое аппаратное решение: закисление контактов на переключателе из-за перегрева и влажности. Нужно было физически переключить кабель на резервный порт, а затем вернуть обратно, чтобы снять окислы.
Рута рядом не было – он ушёл «наверх» решать какие-то вопросы. Ждать разрешения не было времени – сбои могли привести к потере синхронизации, а её восстановление заняло бы часы. Колин снял свою толстовку, остался в простой футболке, уже мгновенно прилипшей к спине. Он двинулся вглубь.
Жара обрушилась на него стеной. Воздух стал густым, обжигающим горло. Дыхание участилось. Капли пота тут же испарялись с кожи, оставляя соляную плёнку. Он подошёл к нужной стойке. Металл был раскалённым, от него шёл волнами искажённый, дрожащий воздух. На нужной панели мигали тревожные красные светодиоды. Он посмотрел на свои голые руки – прикосновение к металлу могло оставить ожог. Не раздумывая, он сдёрнул с себя футболку, намотал её плотным слоем на правую кисть, оставив свободными пальцы. Левой, уже почти вслепую от стекающего пота, он отщёлкнул фиксатор магистрального кабеля – пластик был горячим. Обмотанной тканью рукой он выдернул толстый синий кабель из порта «А1». Исчезновение сигнала отразилось тихим щелчком реле где-то в глубине.
На несколько секунд воцарилась тишина – вентиляторы не прекращали гудеть, но мир будто замер. Затем он воткнул кабель в соседний, пустой порт «В2». На панели замигал жёлтый свет – питание есть, линия неактивна. Он выждал пять секунд, считая про себя. Сердце колотилось, кровь стучала в висках от жары и адреналина. Затем снова выдернул кабель и, уже без паузы, вернул его в исходный порт «А1».
Раздался чистый, уверенный щелчок. Красные огни на панели погасли. Вместо них зажёгся ровный, стабильный зелёный свет. На соседнем мониторе, который он всё это время видел краем глаза, график пинг-запросов резко выровнялся, превратившись из зубчатого пила в прямую линию. Связь восстановилась.
Колин отшатнулся от стойки, почти споткнувшись. Горячий воздух обжёг лёгкие. Он натянул мокрую футболку обратно – она тут же прилипла к телу, как вторая кожа, – и быстрыми шагами, чувствуем лёгкую дурноту, выбрался из адского ядра в относительно прохладную зону у входа.
И тут его обрушила волна не жары, а холодной ярости.
– ТЫ СОВСЕМ ОБЕЗЬЯННИК? ИЛИ ПРОСТО САМОУБИЙЦА?
Рут стоял в дверях, его обычно бледное лицо было красным от гнева. Он смотрел на Колина, на его мокрую, заляпанную пылью футболку, на покрасневшую кожу.
– Там СЕМЬДЕСЯТ ВОСЕМЬ ГРАДУСОВ! Ты мог получить тепловой удар и свалиться прямо на стойку! КОРОТКОЕ ЗАМЫКАНИЕ! ПОЖАР! Ты что, вообще не думаешь?!
Колин, всё ещё отдыхиваясь, молча указал пальцем на монитор Рута, где сиял зелёный статус линии и ровный график.
Рут резко обернулся, посмотрел. Его гнев не утих, но сменился яростным изумлением.
– Что… что ты сделал?
– Контакты на основном порте закисли от перегрева, – хрипло, продирая забитое жаром горло, проговорил Колин. – Цикл переподключения через чистый порт снял окисный слой. Временное решение. Нужно чистить или менять разъём, и усиливать охлаждение в этой зоне.
– Ты это… просто предположил? И пошёл туда?
– Логи указывали на аппаратную проблему. Софтовые манипуляции не помогали. Следующий шаг – аппаратный.
Рут смерил его долгим, пристальным взглядом. Гнев медленно стекал с его лица, сменяясь сложной смесью досады, профессионального уважения и всё той же тревоги.
– Безумец, – повторил он, но уже без прежней силы. – Полный, конченый безумец. Ты мог угробить и себя, и узел. Но… – он снова взглянул на монитор, на стабильную линию. – Но результат… удовлетворителен. Чертовски удовлетворителен. Дай мне схему, что ты видел в логах. И никогда, слышишь, НИКОГДА больше не лезь туда без моего явного приказа или без полного термокостюма. Это не героизм. Это русская рулетка с оборудованием за миллионы.


