Обложка Архив "Константы"

Архив "Константы"

Наталья Мидоночева

0% прочитано
Стандартный
Наталья Мидоночева

Архив "Константы"

На расстоянии одного рывка

— Макс, ну куда ты гонишь? Мы же договаривались держаться вместе! — крикнула Рита, привстав на педалях.

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

— Да я просто цепь проверяю! — донеслось спереди. Макс яростно втапливал педали, даже не думая оборачиваться. — Вчера смазывал, а она всё равно щёлкает! Бесит!

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

— Это у тебя в голове что-то щёлкает! — отозвался пухлый Ромка, и вся колонна дружно рассмеялась.

— Завидуй молча, тихоходка! — огрызнулся Макс, но скорость всё же немного сбросил. Его одноклассник Костя только усмехнулся: это ведь Макс вчера подбил всю дворовую тусовку пощекотать нервы и пробраться к периметру Аркаима прямо во время запуска спутника — ясно, отчего его теперь несёт впереди всех!

Поравнявшись с Аланом, Костя с сочувствием покосился на друга. Алан гостил у него вторые сутки, и велик он с собой не прихватил. Пришлось достать из самого захламлённого угла гаража старый велосипед дяди.

— Эй, Алан! — Костя едва увернулся от глубокой выбоины. Его собственный велик угрожающе скрипнул. — Ну как тебе аппарат? Ноги ещё не отвалились?

Алан перехватил руль и обернулся.

— Да норм, — он пожал плечами. — Разогнать трудно, зато по кочкам прёт как бульдозер. Только цепь на третьей передаче клинит, если резко газануть. А так — крутая вещь.

Майя ехала чуть позади и делала вид, что увлечена объездом мелких камушков, а сама украдкой скосила глаза на городского гостя. Она поймала себя на том, что всю дорогу держит спину прямее обычного. Алан был новеньким в их компании и держался чуть в стороне от общих споров.

Майя сильнее нажала на педали, чтобы поравняться с ним. Тормозные колодки на её переднем колесе тихонько пискнули.

— А у вас там, в городе, есть куда на великах сгонять? — спросила она, стараясь, чтобы голос звучал непринуждённо.

Алан перевёл на неё взгляд и слегка прищурился от солнца.

— Есть, конечно, — кивнул он. — Но там в основном бетонка и эстакады. Здесь как-то свободнее.

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

Последний километр грунтовая дорога пошла в гору. Слышно было только дыхание, поскрипывание сёдел и шуршание шин по пыли.

Где-то там, впереди, возвышался Центральный Узел «Аркаим». На фоне ясного неба он не казался ребятам чем-то пугающим. Это был привычный элемент пейзажа — нагромождение бетона, градирен и широких чаш антенн, издали немного похожих на железные цветы. За многокилометровым периметром ровно работали генераторы, и их звук не столько слышался, сколько отдавался в груди — заставлял нутро гудеть вместе с ним.

Грунтовка вильнула, уходя правее, и Макс уверенно свернул с неё прямо в заросли высокой, по пояс, степной травы. Остальные потянулись следом, подпрыгивая на невидимых кочках.

Метров через двести земля резко ушла вниз — здесь пролегала широкая сухая балка. На самом её дне валялась брошенная строителями большущая армированная труба, наполовину ушедшая в песчаный грунт. Лучшего укрытия было не найти: ни с дороги, ни с вышек радаров их тут не заметишь.

Ребята спешились, утирая со лбов пот. Велосипеды не просто бросали на дно оврага — их заталкивали глубоко внутрь бетонного цилиндра. Костя помог Алану пристроить «танк» у самой стенки, аккуратно уложив на правый бок, чтобы не погнуть переключатель скоростей.

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

— А велики они не засекут? — с сомнением спросила Рита, отряхивая ладони от ржавчины.

— Труба армированная, — Макс похлопал ладонью по бетону. — Плюс тут вокруг куча строительного железа под землёй. Для сканеров Корпорации это всё сливается в один сплошной фоновый шум. Главное — самим сидеть тихо под бетонным козырьком и не отсвечивать теплом, когда «птички» полетят.

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

— Я вам точно говорю, сто пудов, это не просто грузовой старт, — заговорил Севка, вытирая губы тыльной стороной ладони и передавая бутылку брату, Илюхе. — Наш дядька на разгрузке работает. Он шепнул, что позавчера ночью пригнали грузовой состав. Наглухо задраенный, ни единой маркировки. И конвой при нём тройной, эсбэшный. Сгружали какие-то контейнеры в свинцовой оплётке. А внутри… — Севка перешёл на шёпот, — какие-то светящиеся цилиндрики.

— Да заливает твой дядька, — Ромка не отрывал взгляда от бутылки с водой. — О.С.И.Р.И.С. подобное на Земле не держит. Я вон на форумах вычитал: у них в седьмом ангаре инопланетный зонд припрятан. Перехватили на орбите, посадили втихую. Оттого, кстати, и территорию космодрома всё время расширяют — мало ли, что там у пришельцев за вирусы?

Макс так и встрепенулся — у него в запасе вечно пылилась пара-тройка теорий:

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

— Ага, боевой робот-пылесос, — прыснула Рита и толкнула Макса локтем. — Защекочет щётками до смерти, лишь бы патроны сберечь.

— Я те отвечаю! — возмутился Макс. — Сунешься без пропуска — изрешетит на месте! А потом сам же за тобой полы от крови до блеска ототрёт, чтоб перед начальством не стыдно было.

Алан сидел рядом с Костей, привалившись спиной к шершавому бетону трубы. Он молча слушал, как ребята перебирают одну фантастическую теорию за другой, глядя на виднеющиеся из-за края оврага верхушки антенн космодрома.

Он стянул с плеч свой брезентовый рюкзак и поставил его между колен. Рюкзак неожиданно глухо звякнул.

— Ты че туда, кирпичей наложил? — покосился на него Костя.

— Инструменты, — Алан спокойно пожал плечами, не отрывая взгляда от серебристых вышек вдалеке. — Вдруг у твоего танка снова цепь слетит. Домой пешком идти неохота.

Костя хмыкнул и снова повернулся к Максу, который уже доказывал, что зонд управляется телепатически.

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

Разговор оборвался.

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

— Патруль! В трубу, живо! — заорал Макс, первым скатываясь на дно оврага.

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

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

Над оврагом с хищным шелестом пронеслись три вытянутые тени. Они двигались плавно, как скользящие по воздуху скаты, прочёсывая балку невидимыми лучами сканеров. Через несколько томительных секунд шелест стих — дроны, не найдя биологических объектов на открытой местности, ушли обратно за периметр.

— Всё, — Макс осторожно выглянул из трубы и огляделся. — Радары отключаются. У нас минут пять!

Земля под ногами дрогнула.

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

И только спустя несколько секунд до них дошёл звук.

Это был не грохот, а сплошная стена почти осязаемого рёва, от которого перехватило дыхание. Воздух в овраге мгновенно стал горячим и сухим. Небо разрезал гигантский огненный столб, уносящий в стратосферу тёмный силуэт ракеты.

— ПОГНАЛИ! — заорал Макс во все горло, хотя из-за рёва его почти не было слышно. Он махнул рукой и первым рванул из трубы вверх по склону балки. — Радары сдохли! Если застрянем здесь, дроны на обратном пути нас в чистом поле спалят!

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

Майя выскочила из оврага одной из последних. Увидев поднимающийся над степью столб огня и ощутив грудью этот сокрушающий рёв, она остановилась. Ноги отказались слушаться.

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

Алан тоже остановился. Он быстро оглянулся на ревущее небо, затем на забор. Если они сейчас промедлят, система безопасности перезагрузится, дроны вернутся и их всех повяжут охранники. А ему этого очень не хотелось бы.

Не раздумывая, Алан кинулся назад. Оказавшись рядом одновременно с Костей, он крепко схватил ладонь Майи.

— Смотри на меня! — заорал он, пытаясь перекрыть бьющий по лёгким рёв. — Бежим!

Майя часто заморгала от летящего в глаза песка. По лицу Алана катился пот, прочерчивая на осевшей степной пыли грязные дорожки. Он даже не косился на стену огня за спиной, а его рука ни капельки не дрожала.

Майя, не в силах сказать ни слова, крепко сжала его ладонь и сорвалась с места, не оглядываясь. Костя нёсся с другой стороны, подталкивая её в плечо.

Они выскочили на узкую полосу выжженной земли прямо перед внешним ограждением. Макс копошился у ржавой опоры, изо всех сил отгибая край толстой сетки-рабицы.

— Давай, по одному! Живо! — скомандовал он.

Рита проскользнула первой, за ней — Ромка, кряхтя протиснул бока, затем Севка с Илюхой. Костя нырнул в дыру и сразу же протянул руку: помог Майе перебраться через торчащие прутья арматуры.

Алан пролез последним. Его брезентовый рюкзак зацепился за проволоку и с треском порвался, но Алан сильно дёрнул плечом и ввалился внутрь периметра. Макс отпустил сетку, и она с металлическим лязгом встала на место.

Они сидели на корточках в густой тени старой градирни и глотали пыльный воздух. Земля всё ещё дрожала. Над головами расплывался широкий инверсионный след ракеты. Кто-то нервно засмеялся. У Макса дёргалась щека.

Алан поправил надорванный рюкзак и медленно поднялся на ноги. Он посмотрел поверх голов приятелей вглубь космодрома. Там, среди переплетений труб и бетонных эстакад возвышались серые стены исследовательских корпусов.

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

Макс отдышался первым и быстро собрал всех в тесный кружок.

— Так, слушайте сюда, — быстро зашептал он. — Сейчас сюда ветром начнёт сносить «чешую» — защитные накладки. Они отстреливаются сразу после отрыва, чтобы облегчить носитель. Лёгкие, как пенопласт, но из космо-керамики. Если найдём хоть пару штук, в школе будем королями. Разбиваемся на тройки, прочёсываем сектора между ангарами. Идём тихо, за красные линии не заступать. На всё про всё — двадцать минут. Потом сбор здесь.

Майя тут же обернулась к Алану и поправила сбившуюся кепку. Она уже было открыла рот, чтобы предложить ему пойти вместе, но Алан будто и не заметил её взгляда и решительно шагнул в сторону Севки и Илюхи — молчаливых невысоких братьев-погодков.

— Я с вами, парни, — бросил он. Поправил на плече надорванную лямку своего объёмного рюкзака. — Проверим старые эстакады.

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

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

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

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

— Обалдеть... — Макс осторожно коснулся обломка. — Настоящая...

— ЭЙ! ВЫ КАК СЮДА ПРОЛЕЗЛИ?!

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

— Первый, это седьмой! — мужик вытащил из нагрудного кармана рацию, одновременно сбегая вниз по железным ступеням. — У меня посторонние, малолетки в красной зоне у третьей градирни! Живо дежурку сюда, пока они под напряжение не влезли! А ну стоять, паршивцы!

— ШУХЕР! — заорал Макс.

Компанию словно сдуло ветром. Ни о какой скрытности больше не было речи. Дети рванули к спасительной дыре в заборе с такой скоростью, на которую никогда не были способны на уроках физры.

Майя стояла в тени, ближе всех к забору. И теперь она неслась впереди всех, не разбирая дороги. За спиной грохотали шаги друзей. А позади них раздавался гулкий стук тяжёлых рабочих ботинок по металлу.

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

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

— Живо... вытаскиваем велики... — прохрипел Костя, первым поднимаясь на ноги. — Надо валить, пока они сканеры на степь не развернули.

Он полез в тёмное нутро бетонной трубы, вытягивая свой скрипящий велосипед, затем потянулся за «танком» дяди.

— Все здесь? — Макс нервно обвёл глазами чумазые лица. — Рита, Илюха, Севка... Ромка со своим хабаром тут...

Костя замер с велосипедом в руках. Он обернулся, ещё раз посмотрел на Севку, затем на Илюху — тех, кто ушёл вместе с Аланом. На дне оврага стало очень тихо. Где-то наверху по сетке постукивал ветер.

— Подождите, — голос Майи дрогнул, когда она испуганно перевела взгляд с одного парня на другого. — А где Алан?

Тени «Аркаима»

Степное солнце сползало к горизонту, окрашивая конструкции Аркаима в алые цвета. Рабочая смена подходила к концу.

В просторном, пропахшем техническими жидкостями и синтетическим кофе тамбуре южного КПП толпились люди. Инженеры, техники и операторы уже переоделись в обычную, «гражданскую», одежду и теперь ждали, когда на табло загорится зелёный свет и турникеты пропустят их домой.

Серёга, техник из седьмого квадрата, привалился спиной к бетонной стене и оттирал ветошью графитовую смазку с ладоней.

— Я тебе говорю, Михалыч, у меня чуть сердце не остановилось, — негромко рассказывал он седому мастеру, не переставая тереть ладони. — Выхожу на эстакаду, а там внизу, прямо в зоне выхлопа, какие-то тени шныряют. Местная шпана, прикинь? «Чешую» собирают. Если бы запуск на пару минут задержали — всё, поминай как звали.

Михалыч усмехнулся и покрутил в пальцах зажигалку.

— Да ладно тебе, Серёжа. Дело молодое. Романтика... Мы в их годы тоже за забор лазили, как только «Аркаим» строить начали.

— Какая романтика? Там же наведённое напряжение! — Серёга только отмахнулся. — Увижу ещё раз — лично уши надеру.

Чуть сбоку неловко переступил с ноги на ногу стажёр. На шее у него болтались защитные очки.

— Да сдалась вам эта шпана, — встрял он в разговор. — Тут на самой базе фиг пойми что творится. Я вон сегодня бутерброд на терминал положил, отошёл на десять минут буквально... Возвращаюсь — пусто. То ли в шахту он упал, то ли уборщик зажевал. Обидно, блин.

— Да нет, брат, тут явно замешана какая-то крыса, — хмыкнул Серега, пряча ветошь в карман. — Кстати! Парни из третьего учебного сегодня всю смену ругались. Говорят, в вентиляции эти твари размером с кошку бегают, изоляцию на кабелях жрут так, что треск стоит, а им — хоть бы хны, — Серёга брезгливо передёрнул плечами. — Дезинсекторов вызвали, да уже неделю дождаться не могут.

Михалыч покачал головой, сунул зажигалку в нагрудный карман и добродушно ответил:

— Завтра же «Константа» возвращается, весь космодром уже неделю на ушах стоит. Может и взял кто твой бутерброд случайно — что ж теперь? Ты вон лучше очки-то сними, а то через проходную не выпустят.

Стажёр в панике нащупал у себя на шее очки, пробурчал что-то вроде: «да ну блин, опять!» — и убежал в сторону раздевалок для техперсонала.

Серега дождался, пока стажер скроется за углом, и подвинулся к мастеру поближе.

— Слушай, Михалыч, а правда болтают, что борт задерживается? Или нас на старте просто красиво кормили байками про невероятно короткие сроки? — Серёга нарочно растянул слово «невероятно», будто произносил рекламный слоган. — И помнишь, связисты ворчали, что отчётов в последнем секторе маловато было? Не к добру это.

— Мало ли что говорят? На таком рейсе каждая минута на счету. Подумаешь, связисты ворчат. Они всегда ворчат, сколько я здесь работаю. Я думаю, что завтра наши ребята точно на орбите будут. Какие у них варианты? Всё, пошли, зелёный вон дали.

Над входными дверями КПП и в самом деле вспыхнули лампы. Турникеты защёлкали и поглотили толпу рабочих. Люди выходили в тёплую весеннюю ночь и обсуждали планы на завтра. Все надеялись утром увидеть в небе инверсионный след корабля-первопроходца.

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

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

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

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

Он с суровой нежностью похлопал собаку по холке и неспешно зашагал дальше по бетонному покрытию технического коридора.

Вкус пепла и лжи

Домой Костя добрался уже в сумерках. По пути он прятался за деревьями и держался в тени заборов — не хотел полагаться только на темноту. Футболка, кажется, насквозь пропиталась пылью и сажей, ноги гудели так, будто он сгонял не на космодром, а по меньшей мере в Китай, а лёгкие горели от безумного бега с препятствиями. Острые края сетки-рабицы оставили на ладонях россыпь мелких царапин, и теперь их щипало.

Сбитая кожа болела, но не она мучила его сильнее всего. Как только они скатились на дно балки и обнаружили пропажу Алана, у Кости внутри будто поселился Чужой — и неудивительно: лучший друг пропал на секретной территории, а его вполне могли схватить.

В тот момент, там, в овраге, он чуть не сорвался бежать назад, к лазу в ограде: плевать на сирену, плевать на шипящего Макса с его паническим «нас сейчас повяжут» — он бы и правда полез обратно, если бы в кармане не звякнул телефон.

Короткое сообщение с нового номера Алана: «Я откололся. У меня тут дела. Уезжайте без меня».

Несмотря на эту эсэмэску, они всё равно просидели в балке почти час, молча вжавшись спинами в холодный бетон трубы. Каждый шорох заставлял их вздрагивать, а они до последнего надеялись, что Алан вот-вот покажется на гребне холма, но он так и не появился. Зато над степью, со стороны космодрома, снова бесшумно заскользили вытянутые тени: патрульные дроны СБ вышли на расширенный круг сканирования.

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

И вот теперь Костя стоял перед своей калиткой и пытался унять дрожь в руках. У мамы по субботам самая плотная запись в салоне, раньше ночи она не вернётся. План был простой: тихо проскользнуть в пустой дом, закинуть провонявшие гарью вещи в стиральную машину, отмыться в душе и запереться в своей комнате. А дальше... дальше он будет пытаться жить с тем, что бросил в степи дядин велосипед и потерял лучшего друга. Но об этом он, пожалуй, подумает потом.

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

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

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

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

Костя почувствовал, что ноги его не держат.

— П-привет, дядь Вадим... — выдавил он и попытался улыбнуться. Он сделал деревянный шаг к раковине. — А ты чего свет не включаешь?

Вадим не шелохнулся. Голос его прозвучал ровно, тихо и от этого совершенно жутко:

— Где Алан?

Костя отступил на полшага.

— Кто? Алан? — начал он беззаботно, но голос сорвался. — Да мы просто катались по степи с ребятами... Он поехал другой дорогой, сказал, что хочет... ну, окрестности посмотреть. Скоро приедет, наверное.

Вадим медленно поднялся из-за стола. Он не стал орать, ругаться или размахивать руками. Он просто подошёл вплотную, навис над племянником и перехватил его руку, разворачивая перепачканной ладонью вверх.

— По степи, значит, катались? — тихо переспросил Вадим. — И где же в голой степи ты так исцарапался? И почему от тебя несёт жжёной резиной?

Костя опустил глаза, разглядывая царапины на ладонях:

— Ну... мы там на старую свалку заехали, за балкой, мы там покрышки жгли... Я упал просто на железки какие-то...

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

Вадим сделал шаг назад, скрестив руки на груди.

— И ты хочешь, чтобы я поверил, будто Алан — городской пацан, который здесь первый раз в жизни — вдруг решил на ночь глядя поехать один «осматривать окрестности» на моём старом неподъёмном велике? Я не буду играть с тобой в следователя, Костя. Если вы влезли куда не надо и он попал в беду, счёт идёт на минуты. Где. Он?

Костя опустил голову. Глаза защипало.

— Мы не хотели ничего такого! — выпалил он и затараторил, проглатывая окончания слов. — Мы просто поехали посмотреть на запуск вблизи! Макс сказал, что у периметра Аркаима есть слепая зона и дыра в старой решётке... Мы залезли внутрь, а потом завыла сирена, начался этот дикий рёв! Мы испугались и побежали обратно к дыре, а когда вылезли... его с нами не было!

Вадим слушал и не перебивал. Лицо его не двигалось, только резче проступили скулы.

— И вы его там бросили, — сухо подытожил он.

— Нет! То есть... да, но он сам отстал! А потом... — Костя торопливо вытащил из кармана телефон, включил и протянул дяде. — Вот! Он сам написал, когда мы уже были в овраге за периметром. Сказал, чтобы мы уезжали. Мы ждали его в трубе, честно ждали целый час, пока дроны СБ снова сканировать не начали! Дядь Вадим, он же специально это сделал, да?

Вадим несколько секунд молчал и смотрел на экран. Что-то в его глазах изменилось — но что именно, Костя прочесть не мог.

— Значит так, — голос Вадима стал жёстче. — Ты наказан. Никаких встреч с друзьями, сидишь дома и не отсвечиваешь. Если мать или кто-то из ваших дворовых спросит, где Алан — отвечаешь, что за ним срочно приехали родственники и забрали в город. Если проболтаешься — проблемы будут у всех нас. Понял?

Костя часто закивал, крепко прижимая к груди телефон.

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

Костя постоял ещё несколько секунд, держась рукой за стол. Потом колени дрогнули, и он медленно опустился на табуретку, уронив голову на скрещенные руки.

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

Костя снова разблокировал экран телефона и уставился в короткую строчку.

Какие у Алана дела на космодроме — было, наверное, понятно. Завтра утром на космодром садилась «Константа» с Юлей, сестрой Алана и невестой дяди Вадима. Из-за жутких проблем с родителями Алан и прятался у них в посёлке, дожидаясь этого прилёта.

Костя до хруста стиснул пластиковый корпус смартфона. Выходит, Алан с самого начала всё это спланировал? Специально поддакнул их глупой идее поехать к периметру, прикинулся тихоней, чтобы использовать всю их дворовую компанию как прикрытие? Просто получил бесплатный билет до дыры в заборе, чтобы пробраться на базу к сестре, а потом — бросил их и пошёл по своим делам, даже ничего по-человечески не объяснив. Неужели он думал, что Костя его сдаст, если бы он просто попросил помощи? Да и зачем ему к сестре именно пробираться? Его что, так бы к ней не пустили?

А с другой стороны... вдруг он писал это на бегу, в панике? Вдруг пытался увести погоню от них? Что, если в следующую секунду, как только сообщение ушло, его сразу же скрутили безопасники Корпорации или подстрелили те самые патрульные дроны, которыми пугал Макс? А что, если его скрутили и заставили написать это сообщение?

Костя не знал, что хуже — что Алан их подставил или что он сейчас, может быть, ранен или убит. От обеих мыслей одинаково подташнивало.

Чуть-чуть отпускало только одно: Вадим все понял и сейчас едет туда. Дядя — настоящий профи из СБ, крутой и надёжный. И если кто-то и сможет найти Алана на этой жуткой закрытой базе и вытащить его оттуда целым, то только он.

Заключенный клетки Фарадея

В фальшкоридоре над серверной третьего учебного корпуса было тепло и сухо, только вот невыносимо монотонно.

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

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

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

Доев, он вытер руки о штанину и достал из кармана смартфон. Тусклый свет экрана выхватил из полумрака бледное лицо с темными кругами под глазами. В верхнем углу дисплея упрямо горел перечеркнутый кружок. «Нет сети».

Он проверял телефон каждые полчаса, пробовал разные типы подключения к сети, надеясь поймать хоть обрывок сигнала, чтобы прочесть новости. Может, что-нибудь пишут о «Константе»? А Костя — получил ли он его сообщение? Но Учебный корпус, напичканный электроникой, похоже, работал как клетка Фарадея. Или глушилки службы безопасности Аркаима отрезали его от остального мира надежнее бетонных стен.

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

Все прошло даже слишком гладко. Когда они втиснулись в дыру в заборе и рассредоточились искать «космическую чешую», Алан уже знал свой маршрут. Он приметил аккуратный серый куб Учебного корпуса номер три сразу, как только они выскочили на выжженную полосу.

Чтобы незаметно ускользнуть из виду, он специально пошел вместе с почти незнакомыми ему братьями Севкой и Илюхой к старым эстакадам — Учебный корпус находился прямо за ними. Парни, опьяненные близостью запретной территории, азартно рыскали глазами по земле.

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

Илюха только кивнул, осматривая каждый камешек на пути, а Севка рванул вправо.

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

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

Вскоре замок коротко пискнул, выпуская наружу пожилого техника с кружкой. Мужчина спустился по ступеням, даже не оглянувшись. Старый механический доводчик тормозил: большая металлическая створка стояла открытой целых четыре секунды и только после этого медленно поползла к магниту. В этот механический зазор Алан тенью и скользнул, перехватив край двери задолго до щелчка.

Он быстро нашел серверную — на двери была табличка. Индикатор замка ровно горел красным: система уверенно показывала, что вход заблокирован, нужен пропуск. С электроникой воевать было бесполезно, но у Алана был другой план. Он схватился за ручку, жестко уперся ногами в пол и резко, всем весом рванул ее на себя. Замок поддался сильному рывку. Хорошо, значит, эту лазейку не закрыли.

Оказавшись внутри, Алан подтянулся на стойках и залез в этот самый фальшкоридор. И как раз в тот момент, когда он возвращал решетку на место, снаружи, сквозь вентиляционную шахту, донесся приглушенный расстоянием, но яростный окрик: «ЭЙ! ВЫ КАК СЮДА ПРОЛЕЗЛИ?!»

Алан замер, вцепившись пальцами в край решетки. Их засекли. Те самые ребята, с которыми он только что катался на великах, которые беззаботно трепались обо всякой ерунде и пробирались сюда за прикольными «космическими» штучками, — теперь из-за него в том числе улепётывали от охраны.

И при этом его очень-очень хлипкий план всё-таки удался. Он успел спрятаться. Пока охрана гоняет подростков у внешнего периметра, оттягивая на них всё внимание, — он уже на месте. Как ниндзя, невидимый для людей и систем. «Только не попадитесь, ну пожалуйста, только не попадитесь», — эта мысль всё же оставалась главной.

Убедившись, что внизу тихо, Алан вытащил телефон. Тусклый экран высветил пляшущую в воздухе пыль — он сам её поднял, когда влез сюда. Быстро напечатал короткое сообщение Косте, надеясь, что глушилки после запуска ещё не врубили: «Я откололся. У меня тут дела. Уезжайте без меня». Ткнул в самолётик, дождался галочки об отправке и вырубил звук.

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

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

А дальше была очень длинная ночь. Алан метался в каком-то дурацком полусне-полубреду. Он то проваливался в сон урывками, то просыпался, вздрагивая от каждого щелчка реле внизу или даже просто от смены звука в трубах вентиляции. В качестве подушки он использовал рюкзак, обмотав его курткой, чтобы застёжки не давили на щёку, но мягче от этого почти не стало. Старый клетчатый плед, найденный в углу короба, был хоть чуточку приятнее композитных плит, но всё равно к утру тело ныло так, будто он всю ночь разгружал грузовые баржи. Проснувшись, он первым делом схватился за телефон, надеясь прочитать новости, но лишь снова убедился, что сети попросту нет.

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

И мысли сами собой вернулись к сестре — из всего набора воспоминаний за последнее время эти мысли были наименее тревожными, и сознание охотно цеплялось за возможность побыть хоть немного в спокойных детских воспоминаниях. Это теперь о сестре гремели все новостные каналы, величая её выдающимся космонавтом и героиней наравне со всем экипажем «Константы». А для него она оставалась просто сестрой — той, при которой ничего дурного случиться не могло. И даже сейчас, когда Юли не было не то что дома — на всей планете, она словно продолжала его оберегать. Подарила ему это убежище.

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

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

Юля много рассказывала об учёбе, о новых друзьях и учебных предметах. Но и жаловалась немало — на тамошние порядки: весь день расписан по часам, есть можно только в столовой. А комендант и вовсе лютует — после отбоя рыщет по коридорам с тепловизором и вычисляет, кто ещё не спит.

— И как вы выжили? — спросил девятилетний Алан. Он так заслушался, что забыл про свой тост, и варенье с него весело капало на скатерть.

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

Тут Алан и заметил те самые искорки в её глазах — азарт первокурсника, обхитрившего систему не обманом, а инженерными знаниями. Кстати, тот же азарт он ощущал вчера, когда дверь в серверную открылась.

«Там просто шикарное место для секретного штаба, Алька, — сказала тогда Юля. — Смотри: снизу от серверных стоек идёт тепло, оно поднимается наверх, поэтому для тепловизоров весь потолок светится красным пятном — нас в этом фоне просто не видно. А кулеры гудят ровно, как пчелиный улей. При этом достаточно громко, чтобы не был слышен наш шёпот или шорох одежды. А вот мы слышим каждый шаг в коридоре — надо просто приложить ухо к полу. Ни разу не попались». Резкий щелчок термореле вернул Алана в реальность.

Он лежал в той самой тайной комнате сестры. Кулеры внизу действительно гудели ровно и монотонно.

Алан сунул руку во внутренний карман куртки и нащупал теплый пластик конверта, мечтая о том, чтобы отдать его Юле лично, чтобы не пришлось его использовать.

Он прижался затылком к бетонной балке и вперил взгляд в темноту. Осталось совсем немного. Уже завтра утром небеса над степью разорвет рев тормозных двигателей, и челнок «Константы» наконец-то окажется на Земле. Тогда Юля выйдет из шлюза, и весь этот кошмар закончится.

Нужно было только дождаться.

* * *

Утро следующего дня — третьего дня на космодроме, считая день той вылазки с ребятами — началось вообще не с рокота двигателей, а со ставшей уже привычной фоновой тревожности.

Алан лежал на спине, уставившись воспаленными глазами в серый бетонный потолок. Он не сомкнул глаз ни на секунду. Всю ночь он вслушивался в монотонный гул базы, до звона в ушах напрягая слух и боясь пропустить тот самый раскатистый грохот, который возвестил бы о возвращении «Константы». Но небеса над Аркаимом молчали.

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

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

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

Где же ты, Юля?

Челнок должен был сесть ещё вчера, или, в самом крайнем случае, прошедшей ночью: надёжнейшие корабли Корпорации просто так не задерживаются, такого не случалось ни разу за последние несколько лет активных космических полётов. Если «Константа» не прилетела, значит, случилось нечто из ряда вон выходящее. «Константа» потому и «Константа», что корабля надёжнее просто не существует. Но теперь именно она так некстати превратилась в неизвестную переменную.

Авария? Сбой навигации? Что случилось?

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

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

Нужно было что-то делать. Он торопливо нащупал в кармане куртки пластиковый конверт. Ключ-карта. Оружие, которое, как уверял Вадим, сестра оставила именно ему и именно на такой, самый безнадежный случай.

«Открыть карту можно только с терминала космодрома…».

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

Но прежде всего ему нужно было выяснить, что на самом деле случилось с «Константой» — пусть даже ради этого пришлось бы выбраться из этой тайной комнаты прямо под прицел корпоративных камер. Только сначала стоило дождаться вечера: соваться к терминалу средь бела дня было бы слишком большой глупостью.

* * *

Здоровенный повербанк, сгребённый со стола в последние секунды перед уходом из дома, оказался настоящим спасением. Без телефона Алан наверняка поехал бы кукухой в этой пыльной бетонной коробке под нескончаемое гудение кондиционеров. Связи по-прежнему не было совсем: перечёркнутый кружок в углу экрана издевательски напоминал, что корпоративные глушилки Аркаима подавляют любой внешний сигнал, не оставляя лазеек.

Зато оставалась внутренняя память. Алан до дыр перечитывал застрявшие в кэше браузера статьи и раз за разом гонял тетрис в древней офлайн-головоломке. Выкрученный на минимум по яркости экран казался единственным спасением, не позволявшим мозгу снова втянуть себя в многократное пережёвывание одних и тех же тревожных деталей. Чаще всего он просто бездумно скроллил галерею — лишь бы хоть на минуту перенестись в нормальный мир, где просто тихо, светит солнце и есть еда и вода. Разве это так много?

Вот Юля на своём выпускном — фотографируется с одноклассниками, день очень солнечный и тёплый. Или вот кадры с их дачи: отец изображает крутого шеф-повара, переворачивая мясо на мангале, а мама на заднем плане нарезает овощи и просто весело смеётся... И Костя... Теперь к переживаниям о семье добавился ещё и страх за друга: как он там? Успел ли убежать? Не обиделся ли на Алана за эти шпионские игры?

В общем, теперь эти кадры только добавляли переживаний. Привычных уж, хотя откуда? Нормальный мир обрушился всего-то — сколько, пару дней назад? А казалось, что прошла уже целая вечность. Алан прикрыл глаза, и мозг услужливо подкинул ему самую тревожную картину, которую он всё это время так отчаянно гнал прочь. Четверг. Вечер. Он возвращается с тренировки чуть раньше обычного, уставший, с туго набитой спортивной сумкой на плече. В наушниках играет музыка, в мыслях — разве что ужин, который мама наверняка уже приготовила. Он заворачивает в свой двор и застывает, так и не добравшись до подъезда. Там, у самого тротуара, как-то небрежно припаркованы три лаковых чёрных микроавтобуса без номеров. Двор оцеплен суровыми людьми в строгих тёмных костюмах. Алан чисто по наитию шагнул за ближайшую машину, стягивая наушники.

Двери подъезда распахиваются. Выводят его родителей.

Для Алана это выглядит как сцена из страшного кино. Двое оперативников не прикасаются к отцу, но идут вплотную, шаг в шаг, и отрезают любые пути в сторону. Мама как-то механически идёт за ними под строгим надзором третьего мужчины в форме. Отец что-то возмущённо выговаривает идущему впереди старшему группы, но тот даже не оборачивается: перед отцом просто открывают задние двери и указывают на тёмный салон микроавтобуса, куда он вынужден подняться. Следом заходит и мама со своим сопровождающим. Алан замер в тени и ждёт: сейчас папа обернётся, заметит его... Но отец не смотрит в его сторону, даже не оглядывается.

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

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

Так он сидел… Полчаса? Час? Два? Или десять минут? Он сам не помнил. Время будто застыло, мысли были заторможенными, и не получалось уцепиться ни за одну из них. Но тут в кармане завибрировал телефон.

Алан вздрогнул, достал телефон, едва не выронив его из дрожащих рук, и посмотрел на экран. Номер был незнакомым.

— Да? — хрипло ответил он.

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

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

— Ни в коем случае не возвращайся домой, — твердо продолжил Вадим, не давая Алану впасть в панику. — Я все знаю. Твоих родителей забрали.

— Что... что мне делать? — спросил Алан. Голос почти пропал.

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

Алан добрался до вокзала на ватных ногах. В хаотично снующей толпе он почти сразу заметил высокую фигуру Вадима в темной куртке. В первое мгновение, едва подойдя ближе, Алан подался вперед и нелепо обхватил Вадима руками, уткнувшись лицом в его плечо. Тот даже слегка опешил, но тут же крепко, по-братски похлопал мальчишку по спине. В этот кошмарный вечер парень Юли казался чуть ли не единственным родным человеком в рухнувшем мире.

— Держись, Алик. Все будет хорошо, слышишь? — быстро проговорил Вадим, чуть отстраняя его и всовывая ему в руку несколько картонок. — Вот билет на ближайшую электричку до поселка Аркаим. И новая сим-карта для телефона.

Вадим бросил короткий взгляд на электронное табло.

— Твой поезд через десять минут. Как только сядешь в вагон — выключай телефон и меняй сим-карту на новую. Не вставляй ее как вторую, а прямо выбрасывай свою и заменяй. Ни с кем не разговаривай, ни на кого не смотри. На станции тебя встретят. Костя и его мама — как будто ты приехал погостить. Побудь у них пока. Помнишь, что «Константа» скоро будет здесь? Тогда с Юлей ты точно будешь в безопасности — она же герой всего мира, никто не посмеет тебя тронуть.

И только сойдя на продуваемом ветром перроне Аркаима, Алан выдохнул. Его действительно ждали. Увидеть Костю, с которым они дружили раньше и даже иногда переписывались, было искренним облегчением. Когда Костя и его мама переехали жить в Аркаим, то Алан так ни с кем и не подружился по-настоящему.

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

Сквозь приоткрытую дверь Алан увидел, как в коридоре Костя едва не столкнулся с только что пришедшим Вадимом. Суровый безопасник, стягивая куртку, вдруг неожиданно тепло улыбнулся племяннику, сказал ему что-то вполголоса и привычным, домашним движением взъерошил парню волосы на макушке. Костя смешно фыркнул и умчался на кухню.

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

Минуту спустя дверь в гостиную снова приоткрылась. В комнату бесшумно скользнул Вадим — но от тёплой улыбки не осталось и следа. Уставший, с резкими тенями под глазами. Он первым делом наглухо задёрнул шторы и только потом обернулся к Алану.

— Алик, слушай меня очень внимательно. — Голос его был очень тихим. — Скажу честно: дело дрянь. Федералы землю носом роют. Вычислят, что ты здесь, — и под удар попадёт вся моя семья. Укрывательство — это не шутки, церемониться они не станут.

Алан молча кивнул. Попасться федералам самому было страшно. Но мысль, что из-за него пострадают Костя и его мама, пугала ещё сильнее.

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

— Держи. Это ключ-карта Юли. Она просила передать ее твоей семье, если что-то случится. Я не смотрел. Спрячь и береги. Открыть её и прочитать можно только с терминала космодрома. Это — и носитель информации, и ключ для авторизации в системе.

— Что мне делать? — тихо спросил Алан.

— Сидеть тише воды. К окнам не подходить, в сеть не выходить. Нам надо просто продержаться до прилета Юли. Я попытаюсь выправить тебе пропуск на базу — там корпоративная юрисдикция, федеральные ищейки не сунутся. Но сейчас у нас там жуткая суматоха, так что нужно время. Понял меня?

Алан похлопал себя по щекам, отгоняя воспоминания, и открыл глаза. Он снова сидел в душном бетонном коробе фальшкоридора, обхватив колени дрожащими руками. Позавчера, когда Костя познакомил его с ребятами и поделился планом той вылазки на великах, Алан подумал, что это — шанс. Шанс пробраться на космодром, чтобы оказаться под защитой и не подставлять Костю и его семью — Вадим и так сильно рисковал из-за него и карьерой, и свободой.

Что же делать теперь?

Тишина как признак беды

После уроков Костя даже не притормозил у школьного крыльца. Он шел домой быстрым шагом, мысленно прикидывая, дома ли уже дядя Вадим, — не хотелось давать ему нового повода для допросов. Дома никого не оказалось, но Костя не мог сосредоточиться ни на одном занятии, а тиканье часов на кухне, казалось, отсчитывало время его домашнего ареста. Не выдержав этих метаний, он ушел на задний двор в гараж.

Скрипнула калитка, и вскоре на пороге появились Макс, Рита и Майя. Они зашли в убежище Кости тихо, без привычного дворового шума и шуток, торопливо скидывая ветровки на верстак.

— Привет арестантам, — негромко поздоровался Макс и тут же, не выдержав, задрал рукав ветровки. Глаза у него горели азартом, который не смог до конца погасить даже субботний испуг. — Зацени, что я за выходные сварганил.

На его запястье красовался широкий браслет из зеленого паракорда. В узор плетения было вставлено несколько матовых черных обломков «космической чешуи».

Рита вытащила из-под воротника кожаный шнурок с отшлифованным куском керамики. Майя молча показала почти точно такой же.

— Мы вчера у меня все воскресенье просидели, — призналась Рита, нервно накручивая шнурок на палец. — Сверлили эту керамику папиной бормашиной и... ну, просто говорили. Если честно, я Майку позвала, потому что мне до жути страшно было одной дома оставаться. Я как закрою глаза — сразу эту сирену слышу и эти шаги погони.

Майя вздрогнула и втянула голову в плечи.

— А вдруг нас камеры с внешнего периметра засекли, когда мы убегали? — снова заговорила Рита, еще крепче наматывая шнурок на палец. — Вдруг ищейки О.С.И.Р.И.С.а прямо сейчас по поселку ходят и нас вычисляют?

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

— Риту можно понять, — возразила Майя, присаживаясь на подушку рядом с Костей. — Мы натворили дел. Но меня больше другое пугает. С нами-то все понятно, мы дома. А вот Алан... Как он вообще там? Один, на закрытой территории, где на каждом шагу патрули. А еда или вода у него была с собой? Мы даже не знаем этого. Сколько человек может продержаться без воды, Кость?

Костя слушал их, ссутулившись на продавленном кресле, и смотрел в бетонный пол. Свой необычный болт с асимметричной резьбой он еще в субботу вечером забросил на самую дальнюю полку стеллажа куда-то к ржавым гвоздям. А уж что именно сложил Алан в его старый походный рюкзак — Костя не знал. Друг говорил, что инструменты для велика, но так ли это?

— Слышь, Кость, — Макс отвлекся от своего браслета и в упор посмотрел на друга. — Давай только без обид. Мы Алана видели всего пару дней. А ты его сто лет знаешь, он же твой друг из «прошлой жизни». Кто он вообще такой?

Костя неопределенно пожал плечами, стараясь не смотреть друзьям в глаза.

— Да обычный пацан. Учились вместе, пока я там жил.

— Не гони, — подала голос Рита. — Обычные пацаны не ведут себя так. Он когда Майку за руку схватил и потащил... у него лицо было такое, будто он в такие ситуации каждый день попадает. Майка вон местная — и то испугалась. Ой, извини, Майя. А он хладнокровный, как робот. А потом эта СМС-ка: «у меня дела». На закрытом космодроме?! Кость, ты же по-любому знаешь, что это за дела.

Костя вцепился в ручки кресла, не зная, что ответить. Ему и самому хотелось бы знать, что это за «дела», но в ушах до сих пор звенел жёсткий голос дяди Вадима, пообещавшего, что за любое лишнее слово расплачиваться будет вся их семья.

— Я же говорил, у него там... сложная ситуация в семье, — буркнул Костя, пиная носком кроссовка старую канистру. — Приехал сюда переждать. Я сам не знал, что он решит туда лезть.

— Странно все это, — Макс прищурился. — Мы тут всю жизнь живем, каждую дырку в заборе знаем, и то ни разу дальше градирен не совались. А твой городской приехал и с первого раза побежал на эстакады аж.

Ребята замолчали, глядя на него. Костя вскочил с кресла и зашагал по гаражу, отпихивая с дороги какой-то хлам.

— Вы не понимаете? Он же все это время прикидывался! — Костя широко махнул рукой, чуть не сбив с полки отвертку. — «Ой, а как велик катит? Ой, а покажите мне запуск, я никогда не видел!» Да он специально упрашивал меня взять его с собой! Я ему велик дядин отдал! Я его с вами познакомил! А ему просто нужны были бесплатные проводники до дыры в заборе. И чтобы мы отвлекли охрану на себя.

Костя остановился у верстака и перевёл дыхание.

— А я-то думал, мы друзья. — Он пнул старую канистру так, что она с грохотом отлетела в угол. — Да я для него такой же тупой «местный», как и... вообще все здесь. Он получил, что хотел, и просто выкинул нас. Написал эсэмэску и свалил! Он даже велик этот несчастный бросил, глазом не моргнул! Как я теперь дяде в глаза смотреть буду? А я теперь сижу тут под арестом и жду, пока меня за соучастие в шпионаже под суд отдадут! И всех вас тоже.

В гараже повисла тишина. Майя опустила голову, и Костя видел только, как она крутит в пальцах край рукава.

Нарушил тишину Макс — задумчиво покрутил на запястье свой паракордовый браслет и покачал головой.

— Не сходится, Кость. Если он нас просто подставил, чтобы мы отвлекли на себя охрану, или сдал нас на допросе, то почему мы до сих пор здесь сидим, а не в корпоративном изоляторе?

— Вот именно, — отозвалась Майя. Она подобрала с пола какую-то щепку и принялась чертить ею по пыльному бетону. — Давайте просто сложим факты. Во-первых, Корпорация точно знает, что кто-то пролез за периметр. Мне папа еще вчера за завтраком рассказал. Он ругался на малолетних вандалов и сказал, что дыру у третьей градирни заварили наглухо еще в воскресенье утром.

— Ну это логично, они же нас видели, это мы и так знаем. Но посмотрите на улицу, — Макс кивнул в сторону закрытых ворот гаража. — У нас в поселке вообще ничего не происходит. Тихо как в танке. Если бы СБшники искали диверсанта или группу, они бы шерстили каждый двор. Были бы дополнительные патрули, дроны висели бы над крышами, начались бы рейды. А ничего этого нет.

Костя медленно опустился обратно на кресло.

— Дядя Вадим еще в субботу вечером устроил мне жесткий допрос, — неохотно признался он. — Он моментально вычислил, что мы были в красной зоне — по саже на одежде и царапинам. И про Алана он все понял.

— И что? — подалась вперед Майя. — Что он сделал?

— Ничего. То есть, мне он вкатил домашний арест и запретил даже упоминать Алана, а сам сорвался обратно на Аркаим. И с тех пор он вообще не появлялся дома. Мама говорит, у них там какой-то аврал, и дядя ночует прямо в дежурке. Он мне даже не звонил ни разу. Но маме нас он не сдал, иначе она бы мне это точно припомнила.

Ребята переглянулись.

— Так это же все меняет! — Макс аж хлопнул себя по коленям. — Смотрите! Твой дядя — офицер службы безопасности. Если бы Алана поймали официально, поднялась бы тревога. К вам бы прямо вчера приехали с обыском, как к соучастникам, а твой дядя рвал бы на себе волосы, потому что это его племянник привел нарушителя.

— Значит... официальной тревоги нет? — робко спросила Рита.

— Именно, — сказала Майя. — Раз в поселке тихо, а твой дядя Вадим не привел к вам домой наряд, значит, Алан не пойман. Одно из двух: либо он оказался таким ниндзя, что до сих пор умудряется прятаться на охраняемой базе... Либо твой дядя, Костя, нашел его первым. Нашел и тайно где-то укрывает, и поэтому, кстати, сам не возвращается домой и пропадает на работе.

Костя обвел взглядом друзей. Возразить было нечего. Алан, скорее всего, жив и на свободе. Тревога не поднята. Дядя Вадим, судя по всему, взял ситуацию под свой контроль.

Костя хмыкнул. Ладно. Пусть прячется. Пусть делает свои «дела». Когда-нибудь все равно они узнают правду.

— Значит, договорились, — Макс натянул рукав ветровки поверх своего паракордового браслета. — Забыли про субботу. Никаких разговоров в школе, не отсвечиваем. Залегаем на дно и просто ждём.

Майя и Рита молча спрятали свои кулоны под футболки и кивнули.

— Прорвемся, Кость, — Макс на прощание хлопнул его по плечу. — Сиди тихо, а мы будем держать ухо востро. Если что-то поменяется в поселке — сразу дадим знать.

Костя остался один и просто откинулся на спинку продавленного кресла, чувствуя, как ноют затекшие от напряжения плечи.

Пылесос для лазутчиков

В середине дня сквозь ровный гул кулеров пробились голоса. Двое мужчин зашли в серверную и остановились прямо под вентиляционной решеткой. Алан тут же погасил экран смартфона и вжался щекой в плиту, прислушиваясь.

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

— Да врут они всё! — нервно огрызнулся второй. — Такие легенды всегда прилетают минута в минуту, чтобы картинка для новостей была красивая. А сегодня безопасники журналюг чуть ли не взашей гнали от периметра. А те вообще как с цепи сорвались, даже к старой градирне поперлись. Слава богу, там позавчера какую-то шпану на великах шуганули и дыру в заборе сразу заварили. А то эти вездесущие чайки с камерами и на самую взлётную полосу бы поналетели.

— Ну так, а я о чем? Мне вон Вася с узла связи по секрету шепнул, что телеметрия от «Константы» отвалилась еще пару дней назад... Но даже это еще фигня. Ты знаешь, что утром во внутреннюю сеть упал пакет новых директив? Я краем глаза успел заметить — «Протокол изоляции К-1». И гриф секретности такой, что нужен специальный допуск. Что-то там наверху очень неприятное стряслось.

Мужчины прошли мимо, и дальше разговор было не разобрать. Но и сказанного оказалось достаточно.

Алан медленно сел. Телеметрия отвалилась. Протокол изоляции. Дыры в заборе больше нет. Впрочем, последнее было ожидаемо.

Он сунул руку в карман и вытащил конверт с ключом-картой внутри. Вадим не зря рисковал, передавая ему эту штуку. А что, если это не просто пропуск? Что, если это и есть отмычка к тем самым закрытым директивам, которые Корпорация сейчас прячет? Ведь если рассуждать трезво: с чего бы Юле скрытно отдавать свой личный ключ младшему брату со словами «если со мной что-то случится»? Значит, она что-то узнала. Раскопала какую-то тайну. И именно поэтому с ней это «что-то» в итоге и случилось! А этот кусок пластика — единственная ниточка к правде.

Алан сжал конверт в ладони. Может, ну его к черту?

Использовать карту здесь, прямо в логове Корпорации, когда у них врублен этот их «протокол изоляции» — это же чистое самоубийство. Система наверняка моментально засечет попытку проникновения. Нет, надо бежать. Спрятать ключ поглубже, выбраться за периметр любой ценой, унести его подальше от Аркаима. Передать журналистам... пусть взрослые решают, в конце концов!

Алан нервно сглотнул. Куда бежать? Дыра заварена. Он в мышеловке. Искать кусачки и вскрывать ограждение? Бред.

Да и уходить вслепую нельзя. Вдруг на карте координаты? Вдруг там инструкции лично для него или доказательства, способные вытащить родителей из правительственной тюрьмы? Он просто не простит себе, если сбежит с пустыми руками. Кроме того, карта действует только здесь, во внутренней сети Аркаима.

Мелькнула мысль, что он все делает не так. И та безумная вылазка с ребятами тоже казалась ошибкой — хотя от воспоминаний о ней в груди почему-то стало чуть теплее, — и его трехдневная изоляция, и жажда, и страх. Ладно, ну и пусть. Главное — узнать, что с Юлей.

Одновременно с этим пришло пугающе ясное осознание: сидеть в норе больше нельзя. «Константа» не прилетит, ждать бессмысленно. Еще один день здесь — и он просто высохнет без воды, как мумия.

Убрав телефон в карман, Алан заставил себя подняться на колени. Спина отозвалась ноющей болью, суставы захрустели. Он принялся осторожно разминать одеревеневшие мышцы: потянулся, покрутил шеей, сделал несколько медленных наклонов, разгоняя застоявшуюся кровь. Ему нужно было вернуть телу послушность перед рывком.

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

А потом уйти.

Правда, как именно он будет выбираться с базы теперь, когда единственный известный лаз заварен, Алан понятия не имел. Но это не важно: найдет что-нибудь, переберется через забор — это проблема следующего порядка.

* * *

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

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

Однако совсем скоро Алан сто раз пожалел о своей предусмотрительности. Ближе к вечеру климат в фальшкоридоре начал ощутимо меняться, двигаясь в сторону тропического.

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

Алан сидел, привалившись к балке, и через силу глотал горячий воздух. Возникло навязчивое желание сорвать с себя куртку и прямо сейчас выбить вентиляционную решетку, чтобы добраться до свежего воздуха. Но он заставлял себя терпеть, делать один вдох за другим. Снимать одежду, шурша тканью и звеня молниями, было слишком рискованно. Корпоративные серверы внизу явно перегрузились, переваривая тот самый загадочный «Протокол изоляции», но это не повод пороть горячку. Нужно ждать.

Жаровня фальшкоридора выматывала последние силы, превращая ожидание в настоящую пытку. Звуки в здании постепенно стихали. Хлопки дверей становились все реже, гул голосов студентов и стажеров окончательно сошел на нет.

И вот, когда Алану уже казалось, что он сейчас просто потеряет сознание от духоты, снизу раздались спасительные звуки.

Размеренные шаги по бетону. И легкое, ритмичное цоканье собачьих когтей. Охранник с овчаркой делал свой ежевечерний обход. Шаги замерли прямо под вентиляционной шахтой — у двери в третью серверную. Алан зажал рот ладонью, боясь, что чуткая собака уловит его запах или различит оглушительный ритм его пульса.

Снизу донесся металлический лязг и писк электронного замка. Охранник перевел двери сектора в ночной режим.

Для Алана это не было препятствием: он знал, что по правилам пожарной безопасности любые магнитные замки на таких объектах всегда свободно открываются изнутри простым нажатием ручки. Выйти в коридор он сможет без проблем. Главное, что означал этот щелчок — в Учебном корпусе больше нет ни студентов, ни случайных техников. Здание опустело до самого утра.

Чтобы убедиться наверняка, Алан выждал еще минут десять, просто считая частые удары пульса. Все. Путь свободен.

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

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

Через минуту он уже стоял на полу серверной. Стойки работали, кажется, на максимуме мощности, обрабатывая гигантское количество данных в секунду. Но Алана это уже не волновало: первая часть плана была выполнена. Впереди его ждали пустые коридоры Учебного корпуса.

Металлическая дверь бесшумно поддалась, когда Алан нажал на ручку изнутри. Он выскользнул в коридор, и створка с мягким щелчком доводчика закрылась за его спиной.

После духоты фальшкоридора воздух здесь казался даже холодным. Учебный корпус был погружён в тишину, которую нарушал только тихий шелест бледных дежурных ламп. Длинный прямой коридор уходил вдаль, видны были лишь однотипные запертые двери аудиторий по бокам, стеклянные перегородки на потолке между секциями. А ещё он был совершенно пуст. Супер!

Алан двинулся вперед, прижимаясь к стене и стараясь ступать так, чтобы кеды не скрипели на гладком полимерном полу. Он прошел примерно половину секции, когда впереди, из-за поворота, донесся нарастающий гудящий звук. Кажется, это какая-то машина едет по полу — сквозь гудение отчетливо слышалось шуршание колесиков.

Алан стремительно огляделся. Спрятаться в гладком, прямом коридоре без украшений было решительно негде. Тогда он метнулся к единственному подобию укрытия — массивной урне, рядом с которой стояла кадка с раскидистым растением. Он впихнулся в узкую щель между мусорным баком, стеной и жесткими листьями, и вжался спиной в бетон. Но это вряд ли можно было назвать убежищем: плечо и половина кроссовка Алана оставались на виду, а сам он застыл в нелепой позе, пытаясь вжаться ещё глубже в стену, но совершенно не помещаясь. Хуже того: растение оказалось искусственным, а кадка — лёгкой, пластиковой. Она не выдержала вторжения человека в свой мир и стала угрожающе сдвигаться, падая прямо под колёса неведомой машины. Алан замер.

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

Алан старался не двигать даже глазами, но это получалось плохо: кадка всё ещё ползла куда-то по своим делам, и не смотреть на это Алан не мог. Робот тем временем неотвратимо приближался, двигаясь зигзагами. Вот он поравнялся с мусорным баком. Синий луч лидара мазнул по стене, скользнул по искусственным листьям и ударил Алану прямо в лицо.

Робот резко затормозил. Щетки замерли.

Алан зажмурился, ожидая, что сейчас взвоет сирена, лампы освещения вспыхнут красным светом и буквально из всех щелей полезут сотрудники службы безопасности. В памяти вдруг совершенно некстати всплыл образ Макса, так уверенного в своей теории: «Сунешься без пропуска — изрешетит на месте! А потом сам же за тобой полы ототрет…» Алан сжался ещё больше, почти физически готовясь к выстрелу из того самого секретного лазерного пулемета. Кадка наконец выехала в коридор за поворотом и, получив целый новый мир для своего существования, остановилась.

Но робот лишь коротко и раздраженно пискнул. Машина чуть сдала назад, аккуратно объехала выставленный кроссовок Алана и, снова запустив щетки, покатилась дальше по коридору, усердно вычищая пол.

Алан выпустил застрявший в легких воздух так резко, что чуть не закашлялся. Ну конечно. Это же просто глупый робот. Его мозг обучен искать пятна и обходить препятствия. Наверняка он строит карту помещения, как делает обычный домашний робот-пылесос. Ему совершенно плевать на прячущихся по углам людей, если те не мусорят на вверенной ему территории. Вряд ли он вообще классифицировал Алана как биологический объект — скорее, как неожиданно возникшую колонну.

Это комичное спасение дало Алану неожиданный прилив уверенности. Оцепенение наконец прошло, и Алан выбрался из-за кадки, отряхнул рукав куртки и усмехнулся. О.С.И.Р.И.С. со всеми его жуткими протоколами и умными машинами оказался не таким уж всевидящим, как все говорят.

— Макс — трепло, — сипло сказал Алан вслед удаляющемуся дрону. — Вернусь — точно отвешу ему леща, чтоб людей не пугал.

Роботу было в принципе плевать на Макса, да и на Алана тоже. Он хотел просто есть грязь и катиться дальше по своим пылесосовым делам.

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

Он толкнул створку и оказался в просторном помещении. Слева, на преподавательском столе, тускло поблескивал выключенным экраном стационарный терминал.

То, что нужно.

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

Экран бесшумно ожил, заливая лицо Алана холодным мягким светом.

Никаких долгих загрузок операционной системы как на компах в школе, наоборот — почти мгновенно в самом центре дисплея появился логотип Корпорации О.С.И.Р.И.С. (радиолокационная антенна, пролетающий над ней спутник и глаз), а под ним — единственная тонкая строчка:

«Ожидание физического ключа авторизации».

Алан вытащил из кармана конверт, а из него — карту Юли. Карта была гораздо толще обычной пластиковой и казалась матовой из-за потёртостей и царапин. Узкая щель считывателя нашлась на правой грани монитора. Он прикусил губу, заставляя себя собраться, а руки — не дрожать, и вставил карту в паз.

Раздался тихий щелчок механического захвата.

Надпись на экране сменилась на «Проверка уровня допуска…», рядом завертелся серый индикатор загрузки — лоадер.

Алан тупо смотрел на эти вращающиеся лепестки. Сейчас. Сейчас система поймет, что он не Юля. Сейчас она считает геопозицию, распознает, что ключ активирован в пустом Учебном корпусе посреди ночи, врубит сирену, и в кабинет ворвется СБ. Он вцепился пальцами в край стола, готовый в любую секунду сорваться с места. Ну или хотя бы не упасть. Сейчас-сейчас.

Но сирены не было. Индикатор просто моргнул в очередной раз и исчез.

Экран на мгновение погас, а затем перед Аланом развернулся лаконичный рабочий стол корпоративной сети. Никаких лишних иконок, только серая подложка и единственная папка в левом верхнем углу. Имя файла было очень-очень знакомым:

«Динамическая мнемо-криптография».

— Есть, — едва слышно просипел Алан.

Он торопливо кликнул пальцем по экрану.

Но вместо списков экипажа, телеметрии или других секретных документов экран внезапно потемнел, и поверх него резко выскочило широкое, ярко-белое окно, перекрывшее весь обзор. Алан даже зажмурился от неожиданного удара света по привыкшим к полумраку глазам.

«Пользовательское соглашение о доступе к информации».

Под жирным заголовком тянулась бесконечная «простыня» убористого текста, разбитого на десятки параграфов и подпунктов. Стандартная, скучная юридическая тягомотина. «Корпорация "Орбитальные Системы Интеграции, Радиосвязи И Сетей" (далее — О.С.И.Р.И.С.) не несет ответственности…», «Пользователь обязуется не разглашать…», «Риски, связанные с ознакомлением…».

Алан взбесился. Ну в самом деле-то? Он три дня сидел в бетонной ловушке внутри сверхсекретного объекта, не ел и не пил, чтобы теперь узнать, что ему будет за разглашение тайны?! Да ничего нового уже не будет, он и так преступник. Куда там надо нажимать?

В самом низу окна сиротливо ютился пустой квадратик.

Алан торопливо поставил галочку напротив «Я ознакомлен и принимаю условия соглашения» и со всей злости вжал кнопку «ПРИНЯТЬ».

Белое окно моргнуло и растворилось. Алан быстро дважды нажал на папку, пока еще какая-нибудь гадость не вылезла поверх. Открылась директория с десятками архивов, подписанных какими-то кракозябрами — по надписям ничего было не разобрать.

Алан, порадовавшись своей предусмотрительности, достал из нагрудного кармана кабель для зарядки телефона. Для подключения к компьютеру он тоже подойдёт. Нащупав на задней панели моноблока нужный разъем, он в слепой надежде подключил свой смартфон.

Система на секунду зависла, определяя неизвестное устройство, но Юлина ключ-карта, кажется, сработала как админский доступ: никаких запретов на скачивание не выскочило. Алан закрыл папку, выделил ее одним движением пальца и перетащил в память телефона.

Тонкий ползунок загрузки пополз вправо. Десять процентов. Сорок. Восемьдесят.

«Копирование завершено».

Алан выдернул кабель, забрал из считывателя Юлину карточку и нажал кнопку выключения. Экран терминала послушно погас, вернув классу прежний синеватый полумрак.

Получилось. Он это сделал! Даже как будто прибавилось сил и руки перестали дрожать.

Алан поправил лямки рюкзака и вышел в коридор уверенно, как победитель. Он, обычный пацан, только что в одиночку обвел вокруг пальца хваленую Корпорацию. Вскрыл их сеть, вытащил секретные данные прямо из-под носа у службы безопасности и теперь спокойно уходит с добычей! Выбраться за периметр — да после такого это вообще не проблема.

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

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

И в ту же секунду темноту двора взорвали перекрестные лучи мощных прожекторов.

Они ударили со всех сторон сразу, безжалостно выжигая сетчатку.

— Стоять! Руки на виду! — рявкнул из слепящей белой пустоты громкий мужской голос.

Алан рефлекторно дернулся назад, к спасительной полутьме холла, но не успел. Чьи-то сильные руки перехватили его за плечи, рывком развернули и, профессионально заломив запястья за спину, властно заставили опуститься на колени. Рюкзак неуклюже съехал набок.

— Объект задержан, — обыденно доложил кому-то по рации невидимый в слепящем свете оперативник. И, чуть помедлив, добавил: — Подтверждаю. Это подросток.

* * *

Жёсткий пластиковый стул был не просто неудобным, он впивался в спину, будто бы специально стремясь доставить сидящему ещё больший дискомфорт. Алан вцепился побелевшими от напряжения пальцами в край железного стола и старался сидеть прямо, лишь бы не касаться спинки. Металл тоже вёл себя не лучшим образом: обжигал ладони холодом, но сейчас это было даже хорошо, поскольку не давало сознанию Алана окончательно потерять связь с реальностью.

Рюкзак, телефон со скачанными файлами, Юлина ключ-карта — все исчезло в пластиковом контейнере для улик. Мысль о том, что теперь уже точно никто не поможет ни ему, ни родителям, ни Юле, билась где-то в глубине сознания отрешенно и тупо. На какое-то разнообразие эмоций просто не осталось сил.

Дверь с шипением отъехала в сторону. В дежурку вошел мужчина в черной корпоративной униформе. На его груди чернела нашивка с фамилией: Панов. Он выдвинул стул и тяжело сел напротив. От него пахло холодным кофе и табаком. Алана замутило.

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

Он положил сцепленные руки на стол и внимательно посмотрел Алану в глаза.

— Ты влез в закрытый контур и скачал пакет документов, проник в терминал с грифом секретности. За такое мы не вызываем родителей к директору. Но ты — с виду обычный сопляк. Ты физически не мог сам обойти сканеры периметра и чисто по наитию найти слепые зоны. Мне нужно имя. Кто тебя провел? Кто дал маршрут? Кому ты должен был передать карту?

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

Алан с трудом поднял на следователя воспаленный взгляд.

— Я был один, — хрипло выдавил он. Собственный голос показался чужим, он царапал пересохшее горло, как стекловата. — Перелез через ограду. Просто... хотел посмотреть на то, как сядет челнок с «Константы». Про нее же во всех новостях говорили...

Майор на секунду замер. Ленивое, скучающее спокойствие медленно стерлось с его лица. Он смотрел на Алана долго, вязко, словно сканируя его взглядом насквозь.

— Посмотреть на «Константу»... — тихо, почти задумчиво повторил Панов. Он чуть подался вперед, сцепив короткие пальцы в замок. — Знаешь, что меня смущает? Обычная шпана лезет к градирням за блестящим мусором. Но ты... ты прошел мимо всех патрулей. Ты знал логику работы наших систем. Залез в фальшкоридор над серверной — в единственную точку Учебного корпуса, где тепловой фон процессоров скрывает биологическое присутствие от сканеров. Это не удача, щенок. Ты знал наверняка, куда идти и где прятаться.

— И вот что еще интересно, — голос майора упал почти до шепота, проникая прямо под кожу. — Когда ты сейчас произнес название корабля, у тебя зрачки дернулись. Микромоторику не спрячешь. Тебе не просто на корабль хотелось посмотреть. Ты шпионишь за «Константой»? Для кого ты собирал эти данные?

У Алана внутри всё опустилось. Панов не кричал — он совершенно спокойно распутывал клубок, и это было страшнее любого крика.

Майор наклонился еще ближе. Алан постарался задержать дыхание.

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

Алан вдохнул и приоткрыл рот, чтобы ответить, но с языка не слетело ни звука. Панов был слишком умён. Еще пара вопросов, еще хоть одна предательская микрореакция — и этот майор догадается вообще до всего. Он вычислит Юлю, вычислит Вадима, и тогда действительно всё будет уже не важно. Всё не важно...

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

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

Пустой желудок свело жестокой судорогой. Пальцы всё-таки соскользнули с холодного металла столешницы. Механика тела тоже отказала, когда оторвался этот последний якорь реальности. Комната резко накренилась вправо, смазывая пристальное, каменное лицо майора Панова в сплошную серую полосу.

Темнота ударила снизу, поглотив Алана прямо посреди чужого вопроса.

Один клик — и ты курсант

Первым вернулся звук. Ровное, ритмичное пощелкивание и тихий гул. Щелк... пшш... щелк... Похоже на маятник стилизованных под старину электронных часов.

Затем пришел запах. Никакого мерзкого табака, кофе или даже въевшейся строительной пыли. Вполне приемлемо пахло синтетическим спиртом и чистым, новым пластиком.

Алан с опаской открыл глаза. Но слепящих ламп дежурки больше не было. Более того: он лежал на чем-то упругом и чистом — медицинской кушетке, застеленной хрустящей одноразовой простыней. На потолке был только невзрачный матовый плафон, чей мягкий свет был даже приятен. Впрочем, и вся палата была крошечной, стерильной и какой-то безликой. Окон не было, только бледно-серые панели на стенах и металлическая раковина в углу.

Он попытался сесть, но тяжелая голова категорически отказывалась отрываться от подушки, отзываясь пульсом в висках. Тогда Алан скосил взгляд на правую руку. В вену на сгибе локтя уходила тонкая прозрачная трубка, тянущаяся к смарт-капельнице у изголовья. Именно этот аппарат и щёлкал, но отмерял он не время, а всего лишь капли физраствора и глюкозы, судя по надписям на экране.

Тело плохо слушалось, с большим лагом, как в плохой игре: он подал команду руке приподняться, но она послушалась неохотно, как чужая. Впрочем, это быстро прошло, и после нескольких упорных попыток он смог даже чуть приподняться и оглядеться в тщетных поисках хоть какой-нибудь информации. Интересно, он все еще на космодроме? Или, может, у правительства?..

Он опустился обратно. Ладно. Зато тут тепло и удобно. Кровать жёсткая, конечно, но все же не композитные панели. Алан даже усмехнулся, вспомнив недавнее приключение.

Но одновременно с этим в памяти вспыхнули и последние секунды перед обмороком. Взгляд безопасника, будто сканирующий его насквозь. Угрозы: пустить родителей по миру, посадить на десятку. А его — запереть в подвалах.

Алан дёрнулся и едва не вырвал капельницу. Где рюкзак? Где телефон с Юлиным архивом? Всё осталось в пластиковом контейнере у безопасников, которые его повязали, а он сам полностью провалил свой план: вырубился, как последний слабак, — и теперь у его семьи не осталось ни единого шанса. Хотя... не вырубись он тогда, могло быть ещё хуже... В коридоре зазвучали голоса, но слов было не разобрать, а потом послышались тихие шаги, писк замка — и дверь палаты бесшумно открылась вбок.

Алан вжался в подушку — он был готов увидеть всё того же следователя или какого-нибудь конвойного. Но в проёме стоял Вадим.

Куртка на нём была нараспашку, волосы всклокочены. Под глазами залегли тёмные тени — вид у него был такой, будто он не спал несколько суток. Вадим коротко оглянулся в пустой коридор, шагнул внутрь и заблокировал за собой дверь.

— Ну ты и напугал меня, герой, — тихо произнёс он с облегчением и, кажется, искренним теплом.

Алан виновато опустил глаза.

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

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

— Я же просил тебя просто несколько дней посидеть тихо. А ты... — в его голосе не было злости, только терпеливая усталость взрослого человека. — Когда ты не вернулся к ужину, то я подумал, что федералы все-таки до тебя добрались. Костя, конечно, потом раскололся про вашу гениальную вылазку к периметру. А я тебя искал все эти дни, не понимал, куда ты мог деться на базе.

Вадим потер переносицу.

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

Он замолчал на пару секунд и тряхнул головой, гоня неприятные воспоминания. Потом кивнул на распечатанный тюбик.

— Ешь давай. Только понемножку: желудок нужно запускать медленно после таких приключений.

Алан недоверчиво посмотрел на еду, затем на Вадима. Тот сидел неподвижно, ссутулившись.

— Что... что они со мной сделают? — как Алан ни старался, но голос дал слабину.

— Ну дежурные СБшники были в бешенстве, — Вадим наконец поднял на него взгляд. — Хотели просто избавиться от проблемы и передать тебя полицейским с рук на руки. Оформить протокол, выставить за забор, а там бы тебя уже ждали, — он перешёл почти на шёпот, — и ты присоединился бы к родителям. Может, это и правильно даже. Но весьма печально.

У Алана стало холодно во рту. Значит, следователь говорил правду.

— А Юля? — он резко подался вперед, игнорируя слабость. — Что с «Константой»? Почему они не сели?

Вадим закрыл глаза и вздохнул.

— Я не знаю, Алик. Телеметрия отвалилась еще неделю назад. Корабль молчит. Руководство в панике, связи нет. Я пытаюсь что-то выяснить, но у меня пока нет допусков к такому уровню секретности.

— Но ты же здесь... — с надеждой прошептал подросток. — Ты поможешь?

— Я вытащил тебя в последнюю секунду, — Вадим наклонился ближе, почти коснувшись плеча Алана. — Я перехватил твое дело у начальника СБ. И знаешь, что тебя спасло? Твоя собственная придумка в Учебном корпусе.

Вадим криво, невесело усмехнулся.

— Ты влез в терминал. Но перед тем, как скачать файлы, ты поставил галочку. «Я принимаю условия соглашения».

Алан нахмурился.

— Какая галочка? Я просто хотел закрыть эту дурацкую простыню с правилами...

— Юридическая галочка, Алан. Называется EULA. Пользовательское соглашение. Ты нажал «Принять», и с этой секунды ты подписал предварительное согласие о приеме на обучение, и ты теперь — курсант нашей Академии. Ты юридически привязал себя к «Аркаиму». Ты что, не читал то, что подписываешь?

Вадим откинулся на спинку стула, скрестив руки на груди, и прикрыл глаза. Но продолжил говорить.

— Корпорация не выдает своих стажеров Правительству. Получилось красиво — ты влез на секретный объект, но сам же выписал себе право здесь находиться. Только повезло, что я это вовремя заметил, и теперь они не имеют права сдать тебя властям. Но и отпустить просто так не могут — ты все же проник в секретный терминал, а до этого — нарушил периметр. Теперь некоторое время ты должен оставаться на базе и официально числиться в штате, подпишешь на это расширенный контракт на год — меньше никак нельзя. Я забрал тебя под свою ответственность, и мне это далось очень непросто. Не подведи меня, понял?

Алан смотрел на серебристый тюбик с едой, на ритмично капающую капельницу, на уставшего Вадима. Напряжение, державшее его все эти тягуче долгие дни, наконец отпустило. На его место навалился острый, физический голод.

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

Ну а что? Он выжил. И даже остается здесь, на Космодроме — в самом безопасном месте из всех возможных. Сюда федералы точно не доберутся. И главное — он будет ждать Юлю именно здесь, на месте посадки, и рядом Вадим — знакомый, почти что родной человек. Впервые за все эти дни, жадно глотая безвкусную еду, Алан перестал чувствовать постоянный страх.

Алан доедал последние капли, когда на запястье Вадима коротко и требовательно завибрировал коммуникатор. Тот взглянул на экран, и лицо его напряглось.

— Секунду, мне нужно ответить, — бросил он, торопливо поднимаясь со стула.

Он шагнул в коридор, прикрывая за собой створку двери, но, видимо, в спешке не довел ее до конца. Магнитный замок не щелкнул, оставив узкую щель.

Алан замер. Из коридора донесся голос Вадима — приглушенный, но жесткий, с металлической оттяжкой, которой подросток у него раньше никогда не слышал.

— ...я тебе русским языком объясняю, майор, пойми: мы обязаны соблюдать корпоративный закон, это не я придумал и не ты. Пацан юридически привязал себя к «Аркаиму». Он подписал EULA, он — курсант Академии, и с той минуты он в моей юрисдикции.

Из динамика коммуникатора донеслось неразборчивое недовольное гудение — безопасник на том конце что-то напористо доказывал.

— Я прекрасно понимаю, что тебе проще выставить его за периметр, сдать федералам с рук на руки и закрыть инцидент! — отрезал Вадим. — Избавиться от проблемы всегда легче. Но если ты сейчас нарушишь протокол экстерриториальности, у тебя будут проблемы с Директоратом. Ты готов объяснять Совету, почему СБ плевать хотело на устав Академии? Вот и я так думаю. Все, конец связи.

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

— Отбил, — Вадим с улыбкой, но устало опустился на стул. — майор скрипит зубами, но против наших внутренних законов он не пойдёт. Ты в безопасности, Алик, под мою ответственность.

Алан не нашелся, что сказать. Одно дело — втихаря сунуть билет на электричку, и совсем другое — открыто кусаться с начальником ради чужого пацана. Слова благодарности просто не лезли в голову.

— А мои вещи? — робко спросил он. — Рюкзак, телефон... И карта Юли.

— Спокойно. — Вадим ободряюще кивнул. — СБ про них знает, всё задокументировано. Попытайся я их просто забрать — подняли бы жуткий вой. Поэтому я оформил их как вещи, требующие «глубокой технической экспертизы» под моим личным контролем. Никто чужой не притронется, никто не разберёт, что это Юлькин ключ, — на нём же не написано. Рюкзак принесу завтра утром, когда тебя выпишут и переведут в нормальный жилой блок. Пусть за ночь страсти улягутся, идёт?

— Идёт, — кивнул Алан. — Спасибо тебе. За всё.

— Сочтёмся, герой. А теперь постарайся поспать. — Вадим поднялся, похлопал его по плечу. — Тебе надо восстановиться. Завтра будет очень непростой день.

Свет в палате потускнел, переключившись на мягкий ночной режим. На этот раз Вадим вышел, плотно притворив за собой дверь. Замок тихо пискнул, надёжно отрезав Алана от внешнего мира.

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

Истощение и пережитый стресс наконец взяли своё. Алан прикрыл глаза — и сознание, которому больше не нужно было держать оборону, само собой соскользнуло в глубокий, ровный сон без сновидений. Сон человека, уверенного, что худшее позади.

Не привязывайся

Вадим остановился у двери кабинета.

Провел ладонью по волосам, пригладил. Застегнул куртку, потом подумал и расстегнул обратно. Постучал и вошел.

Полковник сидел за столом в кителе, при полном параде, хотя было далеко за полночь. Перед ним лежала раскрытая папка, но он на нее не смотрел. Смотрел на Вадима.

— Вылез, значит, — сказал он.

— Так точно. Три дня в вентиляционном коробе над серверной третьего учебного. Обезвоживание, истощение. Сейчас в медблоке, стабилен.

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

— Панов давил. Мальчик трое суток не ел.

— Это я уже слышал. — Полковник закрыл папку. — Я о другом. Как ты ему это объяснил?

— Он влез в терминал Учебного корпуса, перед скачиванием файлов кликнул согласие на пользовательское соглашение. — Вадим чуть выдержал паузу. — Теперь он юридически привязан к Академии как курсант, а Панов не имеет права его трогать.

Полковник помолчал секунду. Потом коротко рассмеялся.

— Пользовательское соглашение, — повторил он. — А что, неплохо сработано.

Вадим стоял прямо и не шевелился.

— Как мальчик? — осведомился полковник так, словно речь шла об исправности сложного оборудования.

— Напуган. Благодарен. Думает, что худшее позади.

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

Вадим не ответил.

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

— Я понимаю. Но мальчишку я перехватил. И статьи Климова по криптографии собрал.

Полковник сцепил пальцы в замок.

— Перехватил — и сразу потерял контроль: перестарался с угрозами. Вместо того чтобы сидеть тихо, он полез в пекло. Скажи спасибо Панову за то, что вытащил пацана из вентиляции.

Вадим смотрел в пол. Полковник поднялся.

— Но в одном ты был прав: пацан нам нужен. Пролез на режимный объект, отсиделся в слепой зоне — у него есть стержень, он не боится действовать и искать лазейки, а главное, пойдёт на всё ради сестры. Это то, что нам нужно. У Воронцова теперь есть родители, а у нас есть парнишка, и его молодость вполне может сыграть нам на руку. Только этот Воронцов будет рваться в Нейросферу и тоже искать обходные пути, так что твоя задача — направить парня куда нужно и проследить, чтобы он не задавал лишних вопросов. Работай.

— Так точно. Полковник коротко кивнул, махнул рукой, и Вадим повернулся к выходу.

— И Вадим, — окликнул полковник, когда тот уже взялся за дверную ручку. — Не привязывайся. Помни, зачем он нам нужен. Доверяй системе.

Новый день и новые реальности

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

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

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

— Доброе утро, курсант, — Вадим положил вещи на изножье кушетки. — Держи. Твой багаж, как новый.

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

— Телефоны на базе не работают, так что тебе его отдали спокойно, — пояснил Вадим. — Одевайся. Нам пора.

Алан быстро сменил больничную одежду на свою, знакомую. Все вещи были чистые, хотя несколько пятен на штанинах и особенно на белой футболке так и не отстирались, а носки были вообще новые — несколько комплектов, и все чуть больше, чем нужно.

Они вышли из медицинского блока, и Алан невольно зажмурился. Яркое утреннее степное солнце заливало территорию «Аркаима». После трех дней в темной вентиляции масштабы Космодрома сбивали с ног. Воздух дрожал от гула. Мимо них, мягко шелестя антигравами, проплыла большая грузовая платформа, на которой покоилось блестящее сопло маршевого двигателя размером с автомобиль. Вокруг суетились техники в оранжевых комбинезонах. Дальше, за переплетением эстакад, в небо вонзались стартовые фермы.

Алан замер посреди дороги.

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

Вадим чуть заметно усмехнулся, глядя на его восторг, но почти сразу же посерьезнел и тронул его за плечо.

— Пойдем, турист. Не стоит нам с тобой маячить на открытой местности.

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

Техник равнодушно скользнул по ним глазами и вдруг замер. Скептически оглядел Алана — от уличной куртки до поношенных кед.

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

Алан замер. Этот голос. Он мгновенно узнал его. Именно этот голос три дня назад громыхал на всю базу: «ЭЙ! ВЫ КАК СЮДА ПРОЛЕЗЛИ?!».

Алан вжал голову в плечи и шагнул за спину Вадима. А вдруг он знает? Мужик сейчас укажет пальцем и заорет: «Это один из тех паршивцев!» Без Вадима его бы здесь скрутили в первую же минуту.

Вадим сделал плавный шаг в сторону, перекрывая технику обзор на Алана.

— Расслабься, Сергей. Это курсант. И он под моей личной защитой, — голос Вадима звучал ровно, но в нем появилось что-то такое, что спорить расхотелось сразу. — Веду оформлять в учебную часть. Споткнулся парень по дороге, не успели переодеть.

— Курсант? — Серега недоверчиво покосился на Алана. Скомкал промасленную ветошь и сунул в карман комбеза. — Ну-ну. Вы уж извиняйте. Просто я тут, понимаешь, гоняю всякую малолетнюю шпану от забора, раз уж хваленая СБ за периметром ни черта не следит. Позавчера опять местные в красную зону лазили, «чешую» собирать. А тут вы сами их по базе водите.

Вадим выразительно посмотрел на его оттопыренный карман.

— За работу СБ не переживай, они со своим делом справятся. А вот ты почему опять технические тряпки в карман суешь? По регламенту положено сбрасывать в специальный металлический бак. Оформить тебе выговор за нарушение пожарной безопасности?

Серега помрачнел, недовольно дернул щекой и нехотя вытащил грязную тряпку обратно из кармана.

— Помню я регламент... Бывайте, Вадим Саныч. Работы много.

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

Только когда техник отвёл от него взгляд, Алан наконец выдохнул. Но колени всё ещё мелко дрожали.

Вадим даже не повернул головы, лишь едва заметно скосил глаза на Алана и бросил:

— Идем.

Пока они шли к новому Учебному корпусу номер четыре, Вадим заговорил обычным, деловым тоном, просто объясняя процедуру:

— Слушай внимательно. Статус курсанта нужно закрепить в Симуляторе. Без первичного нейро-профиля ты для системы просто гость.

— Понял. А как же Юля? Что с... — начал Алан.

— Все вопросы потом, — быстро оборвал Вадим. Он выразительно качнул подбородком на очередную камеру слежения на столбе, а затем быстро отвернулся и продолжил говорить уже вполголоса. — Здесь у стен есть уши, СБ пишет все, — добавил он совсем тихо, почти не разжимая губ. — В симуляторе я создам для нас защищенную приватную сессию. Там сможем поговорить без свидетелей. У меня... есть кое-какая информация.

Они вошли в современное здание из стекла и бетона. Вадим провел его по сверкающим коридорам прямо в просторную раздевалку, которая больше напоминала крутой спортивный клуб: ряды матовых шкафчиков, электронные замки, мягкие скамейки. В глубине виднелись навороченные душевые кабины.

Вадим открыл один из шкафчиков и достал два комплекта светло-серой одежды.

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

Алан быстро скинул джинсы с футболкой и влез в комбинезон. Ткань села как влитая, приятно холодя кожу. По всему костюму шли плотные рельефы и скрытые накладки, которые визуально добавляли телу мускулатуры. Комбинезон был цельным, вместе с ботинками на мягкой подошве. Вадим переоделся в такой же, только с нашивкой инструктора на груди. Рюкзак Алана с заветным телефоном и все вещи остались за надежно запертой дверцей.

Они прошли вглубь блока и остановились перед одной из металлических дверей. Внутри оказалась просторная, тускло освещенная комната со стенами из звукопоглощающего материала. Пол здесь состоял из миллионов крошечных, плотно пригнанных друг к другу матовых сфер.

— Шары вращаются, компенсируя любое твое движение. В реальности ты остаешься на месте, в симуляции — можешь идти километры, — пояснил Вадим. — Заходи.

Как только Алан ступил на пружинящую поверхность, сенсорные подошвы комбинезона тихо пискнули, синхронизируясь с матрицей. Вадим достал из ниши в стене темно-синий обруч и протянул подростку.

— Надевай.

Алан надвинул прохладный металл на голову. Обруч плотно обхватил виски.

— Проверяем контакт, — Вадим что-то нажал на обруче. — Покрути головой вправо-влево. Что видишь?

Реальная комната перед глазами Алана вдруг подернулась цифровой рябью, и поверх нее проступила бледно-зеленая координатная сетка.

— Сетку. И маркеры по углам, — ответил он.

— Отлично. Калибровка в норме, — Вадим удовлетворенно кивнул. — Садись прямо на пол.

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

— Я иду в инструкторскую комнату подключаться, — Вадим шагнул к выходу. — Перехвачу твою сессию и выведу нас в приватную зону. Не сопротивляйся системе. Скоро увидимся.

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

Нейросфера на минималках

Бледно-зеленая матрица дрогнула и внезапно рассыпалась на миллион светящихся пикселей.

Алан зажмурился — от ряби начала кружиться голова. Когда он снова открыл глаза, цифровой пустоты больше не было. Мягкие, пружинящие шары под ним исчезли, сменившись твердой и ровной поверхностью.

Алан по-прежнему сидел скрестив ноги. Он медленно огляделся.

Комната представляла собой безликий квадратный бокс с матово-серыми стенами и бестеневым, рассеянным освещением, которое лилось словно бы отовсюду сразу. Из обстановки — только простой прямоугольный стол и два стула. Все выглядело слегка пластиковым, урезанным, без теней и мелких деталей, словно он оказался внутри старой компьютерной игры на минимальных настройках графики.

Вадим материализовался посреди комнаты так естественно, словно просто шагнул через невидимую стену. В отличие от Алана, все еще облаченного в безликий серый смарт-комбинезон, Вадим был одет в свою обычную повседневную одежду: темную куртку, футболку, плотные штаны и спортивные берцы — в точности так, как он выглядел десять минут назад на залитой солнцем территории «Аркаима». Вадим выглядел слишком реалистичным для этой комнаты.

— Добро пожаловать в базовый загрузочный модуль Нейросферы, — Вадим сунул руки в карманы. — При первом погружении нельзя сразу давать полную симуляцию. Если сейчас обрушить на тебя сложную физику, текстуры, запахи и ветер, твои нейроны просто перегорят от шока. Поэтому пока сидим в «безопасном режиме». Вставай давай, ты чего там расселся?

Алан хмыкнул и осторожно оперся ладонями о пол. Он был гладким как стекло, но на нём не было ни микрошероховатостей, ни царапин, какие бывают в реальном мире. Подросток поднялся на ноги и покачнулся, ожидая, что сейчас пол поедет под ногами, как на беговой дорожке. Он-то помнил, что в реальном мире стоит на полу из шариков. Но ничего не произошло: вестибулярный аппарат быстро подстроился под новую реальность.

— Как это работает? — Алан сделал пробный шаг к столу, потом второй. Ощущения от движения были привычными, но вот сама обстановка вокруг казалась искусственной, как будто в каком-то мультике. Он дотронулся перчаткой до столешницы, но не почувствовал ни температуры, ни материала поверхности — как будто он просто коснулся воздуха, ставшего почему-то твёрдым и гладким.

— Всё дело в костюме и обруче. Обруч — это связь твоего мозга с Нейросферой, он транслирует картинку прямо тебе в нейроны. Костюм делает реальными физические ощущения. Ну а сама комната и умные сферы в ней создают ландшафт на ближайшие несколько метров от тебя. — Объяснил Вадим. Он наблюдал за движениями Алана с легкой усмешкой. — Да шагай нормально: для твоего мозга это пространство ничем не отличается от реальности, просто пока оно... немного примитивно. Потом будет круче.

— Немного жутковатое место, — признался Алан, оглядывая серые стены без окон и дверей.

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

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

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

— Именно, — Вадим выразительно поднял бровь. — Датчики закоротит, система экстренно выбросит тебя в реал, а уборщикам придется отмывать матрицу. К тому же, ощущения от экстренного разрыва нейро-связи — как удар током по зубам. А для нетренированных людей бывает и хуже. Поверь, тебе точно не хочется это испытать.

— Понял. Лучше не проверять, — Алан поднял руки в защитном жесте. — А как просто отключиться, обычным способом? Если я просто сдерну обруч с головы, то это же будет аварийный сброс?

— Да, выходить нужно штатно, по правилам. Заносишь правую руку за ухо, нащупываешь физический корпус интерфейса — он же в реале у тебя на голове, осязаемый — и дважды нажимаешь на кнопку выхода, чтобы поставить симуляцию на паузу и отключиться на время, — Вадим поднял правую руку и постучал указательным пальцем себя за правым ухом. — Чтобы выйти совсем — жми долго. Кнопка там одна, не промахнешься. Сессия завершится, и ты плавно окажешься в комнате-симуляторе. Запомнил?

— За правым ухом. Два клика, — Алан повторил жест и нащупал кнопку на обруче. — Понял.

— Молодец, — Вадим отодвинул один из стульев, и снисходительность инструктора в его глазах сменилась холодной сосредоточенностью. — А теперь садись напротив: нам нужно серьёзно поговорить.

Алан послушно опустился на второй пластиковый стул, и слова Вадима в этой примитивной серой коробке прозвучали как-то особенно весомо и гулко.

— Слушай меня внимательно, Алан, — Вадим сцепил руки в замок и положил их на стол. — Связи с «Константой» нет уже неделю. Я не знаю, что там произошло. Директорат тоже не знает, или делает вид. Радары дальнего обнаружения показывают, что физически корабль не сбился с курса, но у Земли они будут только недели через две. Вся телеметрия мертва.

У Алана пересохло во рту.

— Как это — нет связи? Вообще никакой?

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

Алан растерянно моргнул:

— Так просто зайди и посмотри, ты же из службы безопасности.

— В том-то и дело, — Вадим досадливо поморщился. — Сервер сейчас под повышенным мониторингом наших ребят. Если учетная запись моего уровня попытается авторизоваться, сработает триггер. Тревогу поднимут за миллисекунду. Чтобы достать файл, нужна схема «слепой зоны»: один человек с админскими правами изнутри блокирует протоколы слежения и держит «дверь» открытой, а второй — «чистый» пользователь без истории и допусков — заходит с чистого узла, забирает файл и уходит, не оставляя следов.

Вадим вперил в подростка пронзительный, испытывающий взгляд:

— Я не справлюсь один. Мне нужен напарник, которого для системы Корпорации пока просто не существует. Ты. Готов рискнуть ради сестры?

Алан подумал, что уж ему-то точно терять нечего, и решительно кивнул.

— Готов. Что делать?

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

— Я запускаю цикл подавления, — скомандовал Вадим, быстро пролистывая пальцами какие-то интерфейсы. — Как только моя панель станет синей, у тебя будет ровно минута. Найдешь самые свежие файлы по «Константе» и перетащишь их в мою локальную папку — экран Алана разделился на две части, справа открылась директория с наименованием «Вадим Северов». — Готов?

— Да.

Алан занес руки над своей панелью, стараясь унять мелкую дрожь в пальцах.

— Пошел! — рявкнул Вадим.

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

— Скопировал!

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

— Отличная работа, напарник. А теперь давай посмотрим, что мы с тобой украли.

Вадим дважды тапнул по одному из файлов — звуковому. Из невидимых динамиков полился ровный статический шум, сквозь который, впрочем, был хорошо слышен напряженный мужской голос: «...Аркаим, приём, это Первый. У нас всплеск аномалий на нижних палубах. Мы наблюдаем и фиксируем, но показания датчиков противоречат друг другу. Предполагаем, что физика среды нестабильна. Мы не можем доверять приборам, не можем сделать полноценный анализ проблемы... »

Алан вздрогнул. Он узнал этот густой бас — это был командир экспедиции, капитан Громов.

«...да, бортовой компьютер тоже глючит, его основное ядро занято каким-то мощным процессом, — вмешался женский голос. Это была, наверное, бортинженер. — Мощности персональных компьютеров не хватит. Если попытаемся выполнить торможение вручную по этим данным, мы просто сгорим в атмосфере.»

И тут раздался голос Юли — чёткий, профессиональный, какой-то даже по-военному собранный: «Пакет сырых данных сформирован. Я зашифровала полный срез данных всех систем и сбросила его на Землю. Пусть ваши аналитики тоже ищут ошибку.»

«Принято, — снова включился Громов. — Аркаим, мы принимаем протокол "Ноль". Экипаж уходит в глубокий анабиоз до прибытия на орбиту. Разбирайтесь с телеметрией на Земле. Мы ложимся спать. Конец связи.»

Запись оборвалась глухим щелчком. Алан так и сидел, вцепившись в край стола. Юля в криокапсуле. Корабль летит вслепую, опираясь на искаженные данные.

— Подожди, у этой записи есть прикрепленный скрытый канал, — нахмурился Вадим, быстро копаясь в свойствах файла. — Он используется только службой безопасности. Адресовано… на мой личный идентификатор.

Он поколдовал с настройками и нажал на воспроизведение. Голос сестры зазвучал снова, но она говорила как-то странно, скованно, будто она механически повторяла текст. Алан поймал себя на мысли о зловещей долине, но поёжился и отогнал это ощущение.

«Дима... — произнесла она. — Архив с реальными параметрами корабля в симуляторе. Я спрятала его в нашей комнате. Распарольте его и попытайтесь разобраться, что случилось. Я люблю тебя и доверяю тебе, ты же знаешь? А... пароль... на моей ключ-карте… алгоритм моего папы…»

Аудиофайл закончился. Вадим замер, глядя на пустую панель.

— «В нашей комнате»? — непонимающе нахмурился Алан. — Что за комната? Вы же не жили вместе.

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

— В реальности — нет. Но когда Юля была курсантом, а я проходил тут стажировку, мы часто... встречались. Тайком. Позже мы воссоздали эту комнату здесь, в виртуальности. Это было наше личное место, про него никто не знал.

Вадим быстро развернул интерфейс симулятора, вводя какие-то координаты, и вдруг глухо выругался.

— Черт! Я совсем забыл об этом инциденте. Наша с Юлей комната слетела со старых координат. Недавно была атака со стороны правительственных спецслужб. Мы отбились, но данные были сильно перемешаны. Но мы точно знаем, что ничего не было удалено, то есть комната тоже еще где-то там. Значит, нам с тобой нужно сначала найти это место. Я уверен, что Юля оставила мне какой-то знак. А может, — и тебе тоже.

— Найдём, — решительно кивнул Алан. — Если она здесь, я перерою весь симулятор до последнего пикселя, а потом распаролим архив: ключ-карта ведь у меня, может, она и есть ключ от архива.

— Ты слышал конец записи. «Алгоритм папы», — Вадим прищурился и побарабанил пальцами по столу. — Я всю ночь просидел над файлами с твоей — точнее, Юлькиной — карты, но там сплошные научные статьи вашего отца про динамическую мнемо-криптографию: хардкорная математика, сплошные формулы и цифры. Так что там за алгоритм он изобрёл? Мне бы суть понять, хотя бы в общих чертах.

— Суть в том, что там нет пароля, который можно напечатать на клавиатуре, — Алан, сам того не замечая, начал копировать отцовские жесты, как бы постукивая по воображаемым клавишам. — Данные запираются воспоминанием. Нужно подключиться к нейро-интерфейсу и один в один восстановить в голове конкретный момент из прошлого: запахи, звуки, ощущения — всё, что помнишь, в мельчайших деталях. Сгенерировать или подделать такой слепок невозможно. У каждого он свой, как отпечаток пальца.

Вадим задумчиво посмотрел на парня.

— То есть, силой этот ключ не вытащить? Если прижать человека, заставить вспомнить?

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

Он на секунду замолчал, вспоминая ещё одну важную деталь.

— Зато можно создать несколько разных вариантов ключей на один файл. Как запасные двери для разных людей. И тогда сработает любой из них.

В серой комнате повисла тишина, плотная, как вакуум. Вадим медленно откинулся на спинку стула, переваривая услышанное.

— Хорошая защита, — тихо произнёс он, а затем резко поднял взгляд на Алана. — А теперь подумай. Ты понимаешь, почему федералы вломились к вам домой?! Почему они арестовали твоего отца и мать?

Алан замер. Стены виртуальной комнаты, казалось, надвинулись на него.

— Правительственные ищейки перехватили этот пакет данных, — сказал Вадим. — Они прослушали скрытое сообщение Юли. Услышали про «алгоритм папы». И они забрали твоего отца, потому что он создатель системы. Правительство пытается понять, сможет ли он расшифровать этот архив без ключа. Или заставить его подобрать ключ, если Юля использовала семейное воспоминание.

Слова Вадима, казалось, объясняли вообще все. Обыск, арест, охота за ним самим. Как хорошо, что он сбежал на Аркаим! Здесь федералы его не достанут.

— Они ничего не добьются, даже если будут его… заставлять, — Алан запнулся, боясь произнести более страшное слово. — Никто не вскроет архив, кроме того, чей слепок эмоций заложен в ключ. Юлька постоянно на нас тренировалась, оцифровывала наши воспоминания. У нее была целая коллекция этих слепков. Если она оставила карту нам, значит, там заложено семейное воспоминание. И ваше с ней — она же оставила архив тебе лично.

Вадим подался вперёд.

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

— Давай статус! — Алан вскочил со стула. — Куда идти? Что нажимать? Я перерою весь ваш симулятор прямо сейчас.

Вадим тоже поднялся, но мягко, непреклонно усадил Алана обратно.

— Притормози. Подключение к Нейросфере жрет колоссальное количество энергии центральной нервной системы. Если я сейчас закину тебя в архивные массивы с полным погружением после всего, что ты перенес, у тебя сгорят предохранители в мозгу. Очнешься с микроинсультом. А мне нужен живой напарник.

При слове «напарник» Алан почему-то выпрямился. Вадим общался с ним как с равным.

— Сейчас ты выходишь, нормально ешь и отдыхаешь. Вечером мы подключимся снова, ты станешь полноправным курсантом. А завтра с утра начнется твоя официальная «учебка». Будешь искать Юлину комнату. Договорились?

Алан твердо кивнул.

— Договорились.

— Отлично. А теперь — на выход. Вспоминай, чему я тебя учил.

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

Серый пластиковый мир перед глазами мигнул, пошел распадающейся бледно-зеленой рябью и мгновенно схлопнулся в темноту. Алан открыл глаза в тускло освещенной комнате с мягкими звукопоглощающими стенами, сидя в анатомическом кресле из пружинящих матовых сфер. Тело гудело от слабости, разум «плыл».

Дверь операторской через минуту тихо щелкнула, и в комнату вошел Вадим. Он подошел к Алану, который все еще пытался сфокусировать взгляд на реальных стенах, и осторожно снял с его головы обруч.

— Добро пожаловать обратно, — негромко сказал он, подавая Алану руку и помогая подняться с пружинящей матрицы. — Пошли. Пока что подвигов достаточно.

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

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

На залитую солнцем улицу они не пошли. Вадим повел его вглубь Учебного корпуса, по лабиринту светлых, сверкающих стеклом и металлом коридоров.

Они остановились перед самой обычной дверью. Вадим приложил свой пропуск к электронному замку и набрал какую-то комбинацию, зуммер коротко пискнул, и они зашли внутрь.

Комната встретила их ровным гудением ламп дневного света и лёгким запахом свежей краски. Окон здесь не было: глухие стены смыкались в строгий квадрат, а под потолком тихо шелестела плоская вентиляционная решётка. Обстановка была спартанской — у одной стены вытянулась жёсткая армейская койка, застеленная синим одеялом, а по центру стоял письменный стол с простым рабочим креслом. На правой стене белела пластиковая чаша небольшого умывальника, от которой прямо поверх стены уходили наружные трубы — смотрелись они в этой обстановке слегка чужеродно. Спасали унылую комнату только стены — их выкрасили необычным волнистым узором.

— Это твоя берлога на ближайшее время, — Вадим обвёл комнату рукой. — За периметр корпуса тебе выходить запрещено без сопровождения. Фиксацию замка я пока снял, потому что твой пропуск ещё не активирован — сделаю к вечеру, а пока дверь запираться не будет, но не переживай: сюда сегодня точно никто не сунется. Если захочешь в туалет, иди по коридору направо — там блок для инструкторов, курсанты туда не заходят.

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

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

Алан кивнул. Он стянул рюкзак и почувствовал, как на него наваливается плотная усталость. Глаза начали слипаться сами собой.

— Я зайду за тобой вечером, — Вадим направился к выходу, но у двери обернулся. В его взгляде мелькнуло что-то тёплое, почти братское. — Ты молодец, напарник. Отдыхай.

Откуда берутся тестировщики

Алан вынырнул из глубокого сна без сновидений. Свет в комнате неуловимо изменился и стал чуть теплее, словно имитируя настоящее утро. Тело за пару часов отдохнуло, мышцы больше не ныли, зато желудок был категорически против повторения голодовки — Алан так и не поел, уснул сразу же, как только прилёг на койку.

Свернув крышку с бутылки, он жадно выдул едва ли не половину. Следом в ход пошло печенье. Плотная упаковка поддалась не сразу, а сами брикеты выглядели сухими, как картон, но на деле оказались отличными, с ярким ореховым вкусом. Алан умял обе пачки в рекордные сроки, чувствуя, как отступает мышечная дрожь и в тело возвращается энергия.

Едва Алан успел умыться в блоке для инструкторов и вернуться в комнату, как дверь снова открылась. Вошел Вадим. Безопасник успел побриться и переодеться в свежую темную форму. Вместе со щетиной с его лица исчезли последние следы изматывающей усталости. Теперь это был безупречный инструктор службы безопасности — отдохнувший и готовый к работе.

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

До раздевалки Учебного корпуса они дошли быстро и молча, стараясь не привлекать лишнего внимания в коридорах.

Знакомая процедура заняла всего пару минут: скинуть повседневную одежду в шкафчик и влезть в матово-серый, облегающий умный полимер.

Алан уверенно ступил на пружинящую поверхность, дождавшись легкого писка синхронизации. Вадим достал из ниши нейро-обруч и передал ему.

— Надевай. Процедуру помнишь? — сказал он, направляясь к выходу. — Я иду в операторскую, буду вести тебя оттуда. Садись, расслабься и не сопротивляйся системе.

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

Дверь за Вадимом тихо закрылась.

— Запускаю синхронизацию, — раздался из скрытых динамиков ровный голос Вадима.

Комната перед глазами Алана мигнула. Привычная серая реальность вдруг пошла мелкой бледно-зеленой рябью, на мгновение сквозь стены проступила строгая координатная сетка, а затем физический мир беззвучно рассыпался на миллионы светящихся пикселей, увлекая его сознание в другой мир.

Пиксельное облако рассеялось так же внезапно, как и появилось.

Алан обнаружил себя сидящим в пустой комнате без окон, дверей и мебели — в эдаком однородном матовом кубе, будто его поместили в вырезанный кусочек серо-голубого безоблачного неба. На этот раз он сразу же поднялся на ноги.

Вадим материализовался рядом — на этот раз в том же сером инструкторском комбинезоне.

— Добро пожаловать в распределительный хаб Академии, — Вадим по-хозяйски взмахнул рукой, и перед ними прямо из гладкого пола выросла стойка терминала. — Чтобы система пустила нас в настоящую виртуальную реальность, тебе нужен официальный профиль курсанта с нормальным уровнем допуска. Система должна зафиксировать твои навыки и определить, на какой специальности тебя лучше всего обучать.

Вадим вызвал над терминалом несколько пустых интерфейсных окон.

Потом он перевёл взгляд на Алана.

— Чтобы найти архив, тебе придётся копаться в программном коде, искать аномалии и скрытые сектора, так что профиль айтишника будет как нельзя кстати. Отец у тебя криптограф-новатор, а Юлька переписала чуть ли не половину бортовых систем корабля, так что гены у тебя что надо. Ну давай, колись, на чём пишешь? С++, Python, нейро-структурирование?

Алан неловко переступил с ноги на ногу, отметив, что гладкий виртуальный пол под кроссовками даже не скрипнул.

— Эм... да ни на чём особо.

Сенсорную кнопку Вадим так и не нажал, его палец замер в сантиметре от неё.

— В смысле «ни на чём»? Алик, не смешно.

— Ну так это папа и Юля! А я в футбол играю. Ну, ещё моды накатить могу, винду переустановить, роутер вот дома настроил, когда у нас интернет пропал... Но не программист я, короче. В школе что-то решали на Пайтоне, то есть на Python, только я уже почти ничего не помню.

Вадим напряжённо потёр переносицу и некоторое время молчал, глядя в терминал.

— Приплыли. И как ты собрался искать архив, то есть спрятанный кусок кода, если сам код не читаешь? Ну ладно, что делать. Запущу тогда стандартный тест на профориентацию по айтишному профилю. Посмотрим, на что тянут твои моды.

Алан некстати замандражировал: а что, если его знаний продвинутого юзера не хватит для прохождения этого их супертеста? Его отправят стажироваться как помощника повара или уборщика? А архив искать не допустят?

А Вадим уже развернулся к экранам и принялся настраивать сессию. Окна вспыхивали и гасли под его пальцами так быстро, что Алан скоро бросил за ними следить. Но через пару минут уже всё было готово.

— Ну всё, система заряжена. Смотри: сейчас тебе начнут подкидывать задачки.

— Какие?

— Самые разные: куски кода, сломанные интерфейсы, всякие логические головоломки. Решай, как получается, хоть наугад, но, главное, не стой в ступоре.

— А если я вообще ничего не решу?

Вадим пожал плечами.

— Система адаптивная, она подстроится под твой уровень: что-нибудь точно решишь. Но и частичного ответа тоже во многих случаях будет достаточно, так что пробуй любые методы, если не получается решить задачу «в лоб» — ищи обходной путь.

Повинуясь взмаху руки Вадима, перед Аланом материализовались два куба: синий и красный. С синего свисал провод с разъёмом, будто вилка от бытового прибора, а на красном был порт подходящей формы, и Алан невольно усмехнулся: и это тест? Похоже на задание для первоклашек.

— Чего лыбишься? Это пробный тест, чтобы ты понял механику, — сказал Вадим. — Задание: восстановить цепь.

Алан взялся за кабель и снова невольно восхитился, насколько детально была проработана Нейросфера: провод был упругим и гибким, совсем как настоящий. Разъём по форме точно подошёл к порту на красном кубе, и Алан просто воткнул его, соблюдая рисунок. Внутри что-то щёлкнуло, по созданной линии пробежал зелёный огонёк, а сверху всплыла галочка.

— Легкотня, — сказал Алан. Только теперь он заметил, что всё это время не дышал.

В углу комнаты развернулся полупрозрачный купол, похожий на гигантский мыльный пузырь, и Вадим отступил к нему. Его терминал элегантно свернулся и исчез.

— Молодец, вот так это и работает. Дальше сам. Подсказывать мне запрещено, да я бы и не смог, у меня профиль другой.

— А если…

— Удачи, боец, — перебил Вадим, делая шаг внутрь перламутровой оболочки.

Поверхность купола дрогнула, и через несколько мгновений он слился со стенками комнаты и стал совсем прозрачным. Алан остался в пустой комнате один. Перед ним тем временем разворачивался голографический терминал, и на экране уже висело первое задание.

Уже через пару минут Алан был почти уверен, что провалился.

А ведь начиналось всё неплохо. Первым система ему подсунула код на Python, и тут он даже разобрался: где-то не хватало пробела, где-то торчало лишнее двоеточие. Алан поправил, нажал «Готово», и машина сухо щёлкнула, ничего не сказав. Ни «молодец», ни «неправильно», хоть бы смайлик показала, что ли!

Зато потом началось. Написать программу валидации IPv8 — с нуля, без подсказок. Про восьмую версию Алан даже не слышал и знал только, что по IP-адресам гаджеты как-то находят друг друга в интернете. Пока он соображал, с какого конца за это браться, время вышло. Следом надо было отыскать утечку памяти в бесконечном полотне кода, и на второй минуте Алан сдался и начал отмечать места наугад. За каждую такую задачу ему наверняка влепляли по нулю, и он уже прикидывал, как будет объяснять Вадиму свой позор.

Именно поэтому, когда клавиатура исчезла и на её месте вырос громоздкий пульт буровой установки, весь в мигающих шкалах, Алан ничего хорошего не ждал. Сверху горело: «Выполните экстренный сброс давления». Красная кнопка «сброс» была прямо перед глазами, но поверх неё повисло серое окно с ошибкой, и у этого окна не было ни крестика, ни кнопки «закрыть». Алан чуть не рассмеялся вслух.

Сколько он насмотрелся таких окон в дешёвых играх, где разработчики, кажется, лично ненавидели игроков! Читать ошибку он даже не стал. Одной ладонью прижал плашку, чтобы не дёргалась, второй резко смахнул по всему пульту, и когда окно съехало в сторону, ткнул в открывшийся краешек кнопки.

Стрелки на шкалах послушно поползли вниз, и Алан даже потряс в воздухе кулаком, хотя рядом никого не было. Сработало!

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

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

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

Вадим довольно улыбался.

— Выдыхай, боец. Экзамен закончен.

— Уже? — Алан даже растерялся. Ему казалось, что прошло минут десять, не больше.

Алан подошёл ближе к терминалу, разминая затёкшую шею.

— Я всё завалил под конец. Там дичь какая-то началась, я просто тыкал наугад.

— А от тебя большего и не требовалось. Вот, глянь сюда.

Вадим ткнул пальцем в один из графиков, где кривая резко уходила вниз, а потом взмывала вверх.

— Видишь яму? Это когда ты завис над чистым кодом. Система записывала все твои реакции, даже то, куда у тебя бегают зрачки и сколько ты медлишь перед каждым решением. Нейромоторику, скорость новых синаптических связей, вот это всё. Вот здесь у тебя когнитивная перегрузка, а по-простому ступор.

— Да уж, — пробормотал Алан. Эту яму он и без графика хорошо помнил.

— А теперь смотри сюда. — Палец Вадима переполз на другой экран, где светилось яркое жёлто-красное пятно. — Это ты обходишь кривой интерфейс буровой установки. Видишь скачок? Дофамин подскочил, фокус внимания сузился до предела. Ты буквально кайфанул, когда нашёл дыру в правилах и смог найти обходной путь.

Алан хмыкнул. Отпираться было глупо: ему тогда и правда понравилось.

— Ну и вот, держи заключение.

Итоговый экран висел прямо в воздухе виртуальной комнаты, и красного на нём было столько, что рябило в глазах. В этой «провальной» зоне теснилось почти всё, что звучало хоть сколько-нибудь серьёзно. Знание формальных языков программирования — восемь процентов. Ладно, это Алан и так про себя знал. Способность к написанию кода с нуля — ноль, круглый, без вариантов. Тоже, в общем, честно. Системность подхода и анализ корневой архитектуры не дотянули даже до двадцати, но это было даже хорошо, наверное. Работа с большими объёмами данных застряла на двадцати двух.

Скорость принятия решений и толерантность к информационному шуму болтались в жёлтой зоне, где-то около шестидесяти.

Зато зелёных шкал нашлось целых три. Адаптивность к нештатным интерфейсам — 73%, интуитивный поиск обходных путей — 71%, а нестандартность мышления и вовсе дотянула до 80%. Алан даже приосанился: не сотни процентов, конечно, но уверенные две трети.

В центре экрана мигал итоговый вердикт машины. «Зачисление одобрено» — это уже хорошо. «Условно» — хуже. «Базовый стартовый уровень», а в профиле значилось «Инженер по тестированию (QA) / Инфраструктурный аудит», и что это значит, Алан понимал довольно смутно.

Ниже мелким шрифтом шло примечание: отсутствие формальной подготовки, зачисление возможно исключительно на основании трёх частных характеристик, выходящих за пределы средней нормы. В рекомендациях машина и вовсе не стеснялась. Обязательная программа базового обучения. Алгоритмическое и системное мышление развивать с нуля. Без интенсивного наставничества курсант к самостоятельной работе категорически не пригоден.

«Категорически», — мысленно передразнил Алан. Разгромный диагноз, если честно.

— Чего-то как-то... не очень. Но не удивительно: я там половину теста вообще просто пялился в экран и не понимал, чего от меня хотят.

Вадим спокойно свернул боковые панели с графиками.

— А ты чего ждал, красного диплома и должности старшего инженера прямо с порога? Люди к этому тесту годами готовятся, а ты пришёл с улицы и прошёл. Смотри.

Безопасник развернул к Алану основное окно, и зелёные строчки на нём засветились ярче.

— Сюда в основном берут через инженерный профиль или кибербезопасность. У таких в красной зоне нулей не бывает, отбор у нас строгий вообще-то.

— Ну молодцы, что сказать, — буркнул Алан.

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

Алан скептически посмотрел на отчет.

— То есть я просто… подошел?

— Подошел, и этого вполне достаточно, — Вадим закрыл последнее окно, и светящийся текст растворился в воздухе, оставив их в полумраке виртуальной комнаты. — Я же тебе говорил: ты стал нашим курсантом еще в тот момент, когда не глядя подмахнул то пользовательское соглашение перед входом.

Алан непонимающе уставился на безопасника, тот усмехнулся.

— Это Корпорация. Здесь ничего не бывает просто так. Весь этот тест был чистой формальностью. Ты и до этого был курсантом, просто машине нужно было определиться с твоим профилем — понять, по какому пути тебя развивать и какие именно дыры в твоих знаниях нам придется закрывать. Базу ты нагонишь, это дело техники. У тебя будет личный наставник, очень опытный.

Вадим шагнул к нему и коротко, крепко хлопнул по плечу.

— Поздравляю, курсант. Ты теперь официально зачислен. А теперь пошли, я вытащу тебя из Нейросферы, пока тебя не начало тошнить от этой виртуальности.

Алан повторил уже знакомый жест — занес руку за ухо, нащупал выступающую кнопку нейро-обруча и дважды нажал на нее.

Комната мигнула и плавно схлопнулась в темноту. Несколько секунд спустя Алан открыл глаза в полумраке реальной комнаты. Он просто опустился на пол и сидел так, ожидая, пока голова не перестанет кружиться.

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

— Теперь формальности, — сказал Вадим, закрывая шкафчик. — Нам нужно закрепить твой статус юридически. Сейчас пойдем в Учебную часть, она в соседнем здании.

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

Идти оказалось совсем недалеко, буквально несколько десятков метров до соседнего административного здания. Они зашли внутрь и молча поднялись на второй этаж. Вадим остановился у поворота, кивком указав на дверь в конце коридора с лаконичной табличкой «Учебная часть».

Алан толкнул створку и оказался в просторном, светлом помещении, которое на удивление выглядело почти как обычный земной офис, разве что вместо мониторов над столами висели тонкие голографические панели. За ближайшим столом откровенно скучал молодой парень в светло-серой корпоративной рубашке. Он лениво листал что-то в воздухе, но, услышав шаги, поднял глаза.

— Эй, пацан, ты этажом не ошибся? — парень удивленно вскинул брови. — Школьные экскурсии сюда не заходят.

— Я не на экскурсию, — Алан постарался сделать голос уверенным. — Я контракт подписать. На зачисление. Алан Климов.

Парень недоверчиво вскинул голову, сделал быстрый свайп по своей панели и вчитался в появившиеся строчки.

— Да ладно... И правда зачисление. Офигеть, такой малявка, а уже в Академии! — он присвистнул, бегая глазами по экрану. — Нифига себе у тебя баллы по адаптивности. Семьдесят три процента? Серьезно? Молодчага! Шаришь, значит.

Парень уважительно цокнул языком и вывел на небольшой планшет длинную «простыню» контракта.

— Да я, если честно, вообще пока не очень понимаю, что мне надо будет делать, — признался Алан и неловко переступил с ноги на ногу. — Я же ничего про это не знаю.

— Ой, да расслабься! — парень махнул рукой и пододвинул планшет к краю стола. — Лафа полная. Будешь в виртуалке сидеть, на кнопочки нажимать, баги искать да кодерам нервы трепать, что у них ничего не работает. Самая непыльная специальность у нас. Давай, прикладывай большой палец вот сюда, в красный квадрат, и всего делов.

Парень за столом лениво зевнул, дождался, пока сканер мигнёт зелёным и примет отпечаток Алана, и порылся в ящике.

— Добро пожаловать в Корпорацию О.С.И.Р.И.С., — он заранее «пикнул» браслетом в терминале и бросил его на столешницу. — Это твой личный коммуникатор для связи и учёбы, типа местный телефон. Надевай и не теряй. Завтра в девять ноль-ноль у тебя первая сессия. Координаты нужного симулятора придут на браслет. Бывай.

Алан вышел из Учебной части и застегнул на запястье браслет. В коридоре его дожидался Вадим.

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

***

Вечером, после плотного и довольно вкусного ужина в столовой, Вадим проводил его до комнаты. Замок приветливо пискнул и мигнул зеленым, стоило Алану приложить пластик к считывателю. Он был здесь официально. Теперь он — курсант.

Когда он наконец остался один, Алан подумал, что в любой другой момент он, наверное, порадовался бы — стать курсантом Академии Аркаима было невероятно круто. Он помнил, сколько времени и сил отдала Юля на то, чтобы сдать экзамены. Как она одновременно училась программировать, зубрила физику и математику, а еще сдавала нормативы по физкультуре и много чего ещё. А он — раз — и курсант. Так не бывает. Но так было.

Но и выбора действительно не оставалось. Алан повернулся на бок и тронул пальцами матово-чёрный браслет на запястье. Чтобы найти и расшифровать архив, ему придётся стать хорошим тестировщиком, настоящим. Значит, придётся вгрызаться в эту новую специальность и учить её правила как можно тщательнее, не жалея сил. А чтобы не перегореть и не сойти с ума от постоянного напряжения и страха за родных, надо хоть иногда находить в этом интерес и радоваться собственным успехам, пусть даже маленьким. Ради Юли и ради них всех.

Завтра в девять ноль-ноль всё начнётся по-настоящему. И пусть пальцы дрожат, а голова гудит от перегрузок. Он должен справиться.

Ботинки под соусом из багов

На следующее утро Вадим зашёл к нему ещё раз — проконтролировать готовность и дать последние наставления. Окинул Алана оценивающим взглядом и начал без предисловий:

— Значит так, курсант. Маршрут до столовой и до учебного блока ты знаешь, так что с сегодняшнего дня няньки у тебя нет, везде ходишь сам.

Алан кивнул. Водить его за ручку и правда было уже незачем.

— Доступ тебе разрешён в этот корпус и в столовую, постарайся нигде больше не светиться. Официально ты обычный стажёр, который учится и лишних вопросов не задаёт. И не отсвечивает. Если найдёшь зацепки по архиву, то связывайся со мной сразу через коммуникатор. И да... в симуляции тебя сегодня встретит твой персональный инструктор.

— А кто это? — поинтересовался Алан.

— Сам увидишь, — Вадим усмехнулся уголком губ. — Удачи, боец.

И вот, без пяти девять Алан, переодетый в костюм, был в блоке симуляций. В этот раз он был совершенно один, но зато комната была та же самая — Вадим сказал, что на Аркаиме сейчас и практика у курсантов, и работают поисковые группы, поэтому ВР-комнат не хватает. Но для Алана, ввиду его необычной ситуации, забронировали эту комнату на все дневное время.

Алан опустился на матрицу, надвинул на голову нейро-обруч и нажал кнопку старта.

Приятный женский голос системы произнёс прямо в его голове: «Инициализация полного погружения. Загрузка тактильных, ольфакторных и вестибулярных пакетов. Синхронизация сенсорных систем: 100%».

Привычная координатная сетка вспыхнула и погасла, и вокруг развернулся мир Нейросферы. А потом...

Первый рабочий день Алана начался с непреодолимого желания лизнуть пульт управления. Нет, он не сошёл с ума.

Просто виртуальная рубка корабля «Испытатель», куда его забросило, выглядела как в научной фантастике — очень реалистично, но так не бывает на самом деле. Алан осторожно провёл ладонью по панели и хмыкнул: холодная! Под матовым покрытием угадывался металл, всё по-честному: ни грамма пластика. Тумблер поддался туго, с приятным сопротивлением, и Алан не удержался, пощёлкал им ещё. За иллюминатором уютно подмигивала Земля, а пахло тут почему-то остывшей электроникой и горелой резиной. Странный запах, но Алан зачем-то вдохнул его поглубже.

Вот бы это и правда было просто игрой... Оставить все проблемы «в той реальности» и представить, что сидишь в знакомом VR-клубе, а тебе дали потестить новый крутой релиз. Исследуй этот мир сколько влезет, испытывай его на прочность и больше ни о чём не думай.

— Интересно, а вкус тут тоже ощущается?

Голос раскатился по рубке гулко, как в пустом ангаре.

Чисто из исследовательского интереса Алан высунул язык и примерился к янтарной кнопке «Опасность». И тут сверху вежливо зашипело. Из вентиляционной шахты выплыл сферический робот, растопырил в воздухе четыре гибкие лапки, подруливая ими, и навёл синий объектив Алану прямо в лицо.

— Доброе утро, стажёр Алан. Я — Окулус-2, твой персональный инструктор. Анализ поведения завершён… — линза дрона зажужжала, меняя фокус. — Рекомендую воздержаться от дегустации оборудования. Готов к онбордингу? На языке инженеров это значит «введение в курс дела».

Алан поспешно убрал язык и смущённо вытер рот рукавом комбинезона. Окулус подлетел ближе:

— Наша цель — подготовить тебя к работе тестировщиком. В реальном полёте ошибка стоит жизни. А здесь, в симуляторе, можно всё. Это единственное место во Вселенной, где тебя похвалят за то, например, что ты сломал дверь.

— Серьёзно? Похвалят?

— Ну да. Восстановить дверь здесь — дело пяти минут, а если ты смог её сломать, то мы теперь знаем её слабые места.

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

— Здорово! То есть я могу тут всё ломать, и мне за это ничего не будет?

Дрон завис в воздухе, смешно наклонив сферу набок.

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

— Ну, спасибо…

— Но давай сначала проясним. Ты ведь понимаешь, чем вообще занимается тестировщик?

— Ну… — Алан замялся. — В учебной части сказали, что это как быть профессиональным геймером. Сидишь, тыкаешь в кнопки, ищешь жуков... каких-то. Ну, баги то есть.

Окулус издал звук, похожий на безнадёжный вздох старого жёсткого диска.

— Ох уж эти кадровики... «Просто тыкай в кнопки». Боже, дай мне сил... Тестирование — это не хаотичное «тыканье», Алан. Это инженерия качества.

Алан хотел было возразить, что тыкать в кнопки у него, между прочим, получается отлично, но дрон уже продолжал:

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

Дрон плавно развернулся и поплыл в сторону выхода из рубки, ожидая, что его курсант пойдёт следом.

* * *

Этот день в Нейросфере оказался на удивление... интересным.

В короткие паузы между заданиями Окулуса Алан с интересом изучал свой новый виртуальный аватар. Умный серый костюм, который он надел в раздевалке, здесь исчез. Вместо него Алан щеголял в крутом лётном комбинезоне, зелёном с оранжевым, с кучей застёжек и карманов, а за спиной удобно устроился лёгкий рюкзак для КПК. Карманы он, конечно, первым делом обшарил. Металлический фонарик оказался настоящим, рядом лежала миниатюрная отвёртка с кучей насадок, а на дне — вот уж раритет! — потёртый бумажный блокнот с простым карандашом. Алан удивился, зачем ему карандаш, если есть КПК, и Окулус сказал на это, что кирпич надёжней пистолета, потому что не даёт осечек.

А само обучение и вовсе походило на отличную видеоигру, где главное — сломать всё, до чего дотянутся руки. Начали со столовой.

— Настоящий испытатель всегда задаёт системе один главный вопрос, — наставительно жужжал над ухом Окулус. — «А что, если…»

— …я выберу пончик, но нажму на кнопку заказа пять раз подряд? — перебил Алан и хитро прищурился.

Окулус и ответить не успел, а он уже отбарабанил команду по сенсорной панели терминала.

Машина жалобно пискнула. Голограмма румяного пончика осыпалась зелёными пикселями, и на весь экран вылезла крупная мигающая надпись: «ЗДЕСЬ МОГЛА БЫТЬ ВАША РЕКЛАМА!»

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

Но самое забавное ждало их у пищевого синтезатора, куда они пошли за заказом. Агрегат лязгнул, полыхнул белым светом и с натужным урчанием выдвинул в окно выдачи поднос. Алан глянул, а там... На подносе стояла пара поношенных высоких ботинок, густо политых ярко-зелёным соусом, а рядом валялась горсть ржавых болтов.

— Эм… Окулус? — Он осторожно потыкал ботинок пальцем. — По-моему, наш пончик слегка эволюционировал.

Дрон облетел поднос по кругу, и если бы у него было лицо, оно бы сейчас сияло.

— Визуальное соответствие ожидаемому результату — ноль процентов! Классический сбой!

— Да вижу я, что сбой. Ботинки-то почему?

— Ты же пончик заказывал? Вот кухня пончик и приготовила, и ингредиенты все правильные. Просто форму для печати загрузила не ту.

Терять было нечего. Алан ещё раз с сомнением оглядел поднос, отломил кусок от «каблука» прямо с соусом, принюхался и, просто из любопытства, закинул в рот. И чуть не поперхнулся от удивления.

— Слушай, а оно реально съедобное! — промычал он с набитым ртом. — Сладкий хлеб с корицей и ванилью!

А болты оказались солёными крекерами. Алан выудил из соуса ещё парочку и захрустел.

— Анализ продукта: пятьдесят процентов системного абсурда, — философски проскрипел Окулус. — Ешь, стажёр. И готовься, сейчас мы будем писать бумажки.

К обеду игра окончательно превратилась в суровую бюрократию. Алан переписывал отчёт про пончик уже в третий раз и успел твёрдо усвоить: найти забавную ошибку — это полдела. Её ещё надо описать так, чтобы программисты потом не крутили пальцем у виска. А ведь начиналось всё бодро. Первую версию он накидал за минуту, по-простому, «Нажал на пончик и три раза тыкнул в заказ», и даже собой гордился. Окулус тогда чуть не задымился от возмущения. «Тыкнул»?! Охлаждающие вентиляторы у него взвыли так, что Алан шарахнулся в сторону, а дрон ещё долго бубнил, что это официальный документ, а не сообщение другу в чат. Что шаги должны быть чёткими, а сленгу и эмоциям тут не место.

Ну, не место так не место. Гонял его робот по всей строгости, но Алана это, как ни странно, ничуть не раздражало. К вечеру он и вовсе чувствовал себя настоящим сыщиком, который выследил хитрого преступника и теперь неторопливо, пункт за пунктом, собирает на него самое полное досье. Выходить из Нейросферы не хотелось. Здесь всё было чётко и логично, а там, снаружи, ждали хаос, проблемы и жуткая неизвестность, и думал Алан об этом с некоторой тоской.

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

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

Экскурсия на виртуальную помойку

На следующее утро Алан проснулся за несколько минут до того, как система освещения в его «берлоге» начала имитировать рассвет. Он быстро умылся над своей персональной раковиной, натянул джинсы и знакомым маршрутом отправился по сверкающим коридорам на завтрак. Головокружение после хорошего сна прошло, он вполне был готов к новому погружению в Нейросферу.

Возле дверей столовой его ждал Вадим. Безопасник выглядел бодро, видимо, тоже успел выспаться.

Они взяли на раздаче завтрак — горячий омлет с овощами и мясом — и заняли самый дальний, скрытый от лишних глаз столик в углу.

Алан уплетал омлет и болтал без остановки. Вчера поделиться впечатлениями было не с кем, и теперь его прорвало.

— …и вот я жму на заказ пять раз подряд. — Он для наглядности потыкал вилкой в край тарелки. — А мне вместо пончика на весь экран: «Здесь могла быть ваша реклама»! Окулус чуть с ума не сошёл от восторга. А потом заставил писать про это отчёт, со всей строгостью. И слово «тыкнул» даже писать нельзя, представляешь? Всё по правилам, как прокурор какой-то.

Вадим подпёр подбородок рукой и слушал не перебивая, только уголки губ у него то и дело вздрагивали. Ещё бы. Сейчас, с вилкой наперевес и крошкой омлета на подбородке, Алан ничем не напоминал того загнанного в угол, напуганного зверька, который три дня просидел в фальшкоридоре над серверной. Обычный подросток, дорвавшийся до увлекательной игры.

— Но знаешь, мне даже понравилось, — признался Алан и вытер подбородок. — Только виртуальными пончиками не наешься. На перерыве пришлось в настоящую столовую бегать.

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

Он поставил стакан на стол, наклонился вперёд и понизил голос:

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

Алан перестал жевать.

— А после обеда?

— А после обеда тактика меняется, — вполголоса сказал Вадим. — Меня официально ввели в курс дела по «Константе».

Алан чуть не подпрыгнул: одно дело — шептаться об этом по тёмным углам, и совсем другое — услышать от безопасника в открытую, пусть и сказано шёпотом.

— Наверху дали зелёный свет и полный карт-бланш, — Вадим усмехнулся, заметив его реакцию. — Так что всё, конец партизанщине. Теперь ты официально курсант, так что подключаемся вдвоём, легально, и перетряхиваем все слепые зоны. Прямо сегодня идём за Юлиным архивом.

Вилка звякнула о тарелку. Уже сегодня! Алан готовился к месяцу учёбы, к долгим неделям скучной теории, а они начнут уже сегодня, и начнут с того, ради чего он здесь оказался. Вся вчерашняя усталость куда-то подевалась.

Губы сами собой растянулись в широкой счастливой улыбке.

* * *

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

Окулус-2 уже ждал. Сегодня дрон был настроен очень серьёзно, так что никаких забавных ботинок под соусом и шуточных кнопок самоуничтожения.

Первая половина дня обернулась суровым испытанием на усидчивость: Окулус загружал в Алана теорию планирования тестирования.

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

— А если план не сработает?

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

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

Однако Алан даже не думал унывать. Всю эту академическую рутину скрашивала одна яркая, согревающая мысль: это только до обеда. Он старательно изучал схемы с Окулусом, потому что знал — во второй половине дня его ждёт «практическое» и довольно опасное погружение в неиндексированные массивы данных вместе с Вадимом. Настоящее приключение.

Когда таймер учебной сессии истёк, Алан с воодушевлением нажал дважды на кнопку на обруче и вернулся в реальный мир.

Выйдя в светлый коридор Учебного корпуса, он по привычке огляделся, ожидая увидеть прислонившегося к стене безопасника. Алан был уверен, что Вадим встретит его, чтобы вместе пойти на обед и обсудить детали предстоящей вылазки.

Но коридор был пуст. Мимо прошёл только незнакомый пожилой техник с планшетом в руках.

Алан немного потоптался на месте, но решил не ждать. Возможно, Вадим задерживается на смене или готовит их секретное подключение в операторской.

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

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

— Готов? Занимай шестую комнату, как обычно, — ровным тоном сказал безопасник. — Давай-давай, быстрее, не теряем время.

Алан радостно кивнул, забежал в привычную пустую комнату и надвинул на голову нейро-обруч. Знакомая вспышка, распад реальности на пиксели — и вот он снова оказался в своём зелено-оранжевом комбинезоне на палубе «Испытателя». Рядом соткалась фигура Вадима в тёмной куртке СБ.

— Идём, — Вадим развернулся к лифтам. — Нам на нижний ярус.

Алан едва поспевал за его быстрым шагом. Внутри у него все так и прыгало от предвкушения. Утренние чек-листы и схемы планирования, конечно, оказались по-своему интересной и очень логичной штукой, но разве могла эта правильная теория сравниться с настоящим приключением? Они шли спасать Юлю! И то, что рядом был Вадим, который доверял ему и обучал крутым вещам, только добавляло Алану воодушевления.

Лифт опустил их на техническую палубу. Свет тут был приглушённый, вместо уютных коридоров тянулись переплетения труб, и Алан невольно поёжился. Вскоре они упёрлись в массивную шлюзовую дверь. Над ней горела голографическая надпись «ШЛЮЗ 4. НЕИНДЕКСИРОВАННЫЕ ДАННЫЕ».

— Эти массивы лежат за пределами структурированного кода симуляции, — негромко сказал Вадим, подходя к стене, где висели скафандры. — Визуально система отрисовывает это пространство похожим на открытый космос.

— Прямо космос?

— Ну почти. Только там нет привычной физики и нет правил. Ошибёшься — и твой аватар сорвётся в цифровую пропасть, а Нейросфера выкинет тебя в реальность. Хорошо, если плавно. А как бывает жёстко, ты помнишь, я рассказывал. Одевайся.

Алан посмотрел на бело-оранжевые скафандры и слегка удивился: никаких тебе неповоротливых раздутых пузырей из старых фильмов, скорее плотные облегающие горнолыжные костюмы. Он привычно вызвал перед глазами системное меню и поискал вкладку со скинами или кнопку «Экипировать», но её не было.

Алан потыкал пальцем в воздух и растерянно обернулся.

— Вадим, а у меня нет такого пункта в меню. Как его надеть-то?

Вадим как раз снял с крепления свой скафандр и методично натягивал его поверх штанов.

— Руками, Алан. Берёшь и надеваешь. — Он защёлкнул фиксатор.

— Чего? — Алан недоверчиво усмехнулся и шагнул к стене потрогать плотный рукав. — Но это же виртуалка! Зачем так сложно? Разработчики могли бы просто сделать кнопку, а мы тут кучу времени тратим.

— Могли бы. — Вадим выпрямился. — Администраторы так и делают, применяют их как скин. Но курсантам это прямо запрещено, и мы с тобой тоже будем следовать букве этого правила. Эта сложность зашита в архитектуру намеренно.

Говорил он ровно и методично, как по учебнику. Потом шагнул ближе и помог Алану снять скафандр со стены.

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

— Ну я ж не дурак!

— Те, на чьём примере разработаны эти правила, тоже были не дураки. Так что привыкай сразу: всё, что спасает жизнь в реальном мире, здесь тоже надевается руками. И кстати, неправильно наденешь — испытаешь симуляцию удушья, как в жизни. Чтобы хорошенько запомнил, как делать не надо.

Алан хмыкнул. Ну, с такой логикой не поспоришь.

— Понял.

И принялся натягивать скафандр. Тот оказался довольно удобным, движения почти не сковывал, а на теле ощущался солидной плотной защитой. А вот с ремешками пришлось повозиться. Алан то и дело сверялся с подробной инструкцией на стене и косился на Вадима, который рядом делал всё то же самое, не пропуская ни одного этапа проверки. Стыки на перчатках, магнитные замки... Ну, кажется, всё.

Последним Алан взял шлем с зеркальным визором, надел и повернул кольцо фиксатора на шее. Шлем тихонько щёлкнул, зашипел, и внешний мир словно выключили. Только собственное дыхание да цифровой гул встроенной связи.

— Как слышишь? — голос Вадима зазвучал прямо в наушниках.

— Слышу отлично! — отозвался Алан.

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

Алан сглотнул. Там, за створками, была неизвестность, цифровой космос, где прятались Юлины тайны. Ну и пусть. Он готов.

Створки дрогнули и поползли в стороны.

За ними был вовсе не такой космос, как на видео с орбиты Земли. Больше всего это было похоже на гигантскую помойку: вот проплыл вырванный с корнем кусок бетонной стены, за ним перекошенный лестничный пролёт. Обломки мебели, целые куски разбитых, полуразрушенных зданий... А вокруг них медленно кувыркались, словно астероиды, перегоревшие серверные стойки, старые кресла, обрывки кабелей и мерцающие осколки разбитых интерфейсов.

— Это базовый слой визуализации, — пояснил Вадим, заметив, как Алан застыл. — Система интерпретирует неиндексированный мусор и битые сектора как физические предметы, обломки и руины, так нашему мозгу проще это воспринимать. Потом, когда привыкнешь, покажу, как смотреть на это как на чистый код. А пока будем работать с тем, что можно потрогать.

Вадим шагнул за край и плавно завис в невесомости.

— Передвигаемся на микродвигателях. Они встроены в перчатки и ботинки.

— А как ими управлять?

— Сожмёшь ладонь или упрёшься носком, и получишь импульс. Только двигайся предельно плавно и всё время следи за центром тяжести.

Ну, вроде ничего сложного. Алан серьёзно кивнул, аккуратно оттолкнулся от края шлюза, стараясь держать баланс, и сжал правую ладонь, чтобы легонько подлететь к напарнику.

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

— Э-э-эй!

Что произошло, он так толком и не понял. Вроде из раструба перчатки беззвучно вырвалась струя сжатого газа, его толкнуло вбок, он попробовал выправиться левой ногой и перестарался. А дальше чем больше он дёргался, тем сильнее его раскручивало. Да уж: в вакууме собственное тело слушалось в сто раз хуже, а управление двигателями и вовсе казалось хаотичным.

Остановил кувырок Вадим: поймал за плечо и одним выверенным движением стабилизировал в пространстве.

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

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

— Права выданы. Теперь вызови контроллеры: сожми обе кисти в кулак и дважды щёлкни большими пальцами по указательным.

Алан послушно повторил жест. Воздух в ладонях слегка уплотнился, засветился синеватым контуром, и пальцы легли на две голографические рукояти. Ни дать ни взять классический геймпад, разрезанный пополам. У Вадима в руках появились такие же.

— Левая рукоять отвечает за линейное перемещение, вперёд-назад и в стороны. Правая за вращение и угол наклона. Триггеры под указательными пальцами — ускорение и торможение. Нужные импульсы в скафандре система рассчитает сама. Пробуй.

Алан чуть подал левый кулак вперёд, правым подправил угол, и скафандр послушно поплыл куда надо. Ха! Обычная раскладка из любой трёхмерной игрушки, руки такое помнят сами.

— Крутяк! — Он заложил лихой вираж вокруг зависшего куска чьего-то виртуального кабинета и резко затормозил левым триггером. — Надо было сразу так!

— Не увлекайся полётами. — Вадим уже развернулся к руинам, парящим вдалеке. — Это не игра, Алан. Держись за мной и смотри в оба. Нам нужно найти кластер, где раньше была наша с Юлей комната.

И рванул вперёд так, что Алану пришлось догонять.

Между обломками Вадим лавировал уверенно, будто всю жизнь только этим и занимался. Алан честно старался не отставать, но разок не рассчитал габариты скафандра и заложил вираж слишком резко. Нога зацепила дрейфующую покорёженную балку.

— Ауч!

Удар был тупой, но вполне ощутимый, как если в темноте налететь голенью на край дивана. Алан потёр ногу.

— Больно же! Тут что, всё настолько реалистично?

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

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

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

Они скользнули внутрь, и Алан разочарованно замер. Здание было совершенно пустым. Ни перегородок, ни этажей, ни лестниц, ни рабочих столов с аппаратурой. Голая гулкая оболочка, снаружи с текстурами, а внутри полая, как пустая картонная коробка.

— Это правительственные хакеры, — хмуро пояснил Вадим, оглядывая пустоту. — Когда федералы ломали базу, их атака с корнем вырвала все «внутренности» этого здания и утащила куда-то в другое место. Оставили одну скорлупу.

— Значит, комнаты больше нет?

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

Алан расстроенно огляделся. Найти нужное место, а там пустота... Обидно. И вдруг взгляд зацепился за облачко цифрового мусора, дрейфующее в самом углу. Среди пиксельных обрывков медленно вращалась металлическая головоломка-антистресс, сложное переплетение колец.

Алан вздрогнул. У Юли была точно такая же, она вечно крутила её в пальцах и говорила, что ритмичное позвякивание металла помогает сосредоточиться над сложным кодом. Он подлетел ближе, осторожно протянул руку и поймал кольца.

— Смотри! Это Юлина! Она с ней почти не расставалась. Я хочу её забрать.

Вадим подлетел и скептически оглядел находку.

— Алан, это стандартная тактильная головоломка для развития мелкой моторики в скафандре. Их выдают вообще всем после прохождения курса молодого бойца. Это не уникальная вещь твоей сестры. Просто кусок мусора, который почему-то остался после перемещения внутренностей здания. Брось.

— Нет, — упрямо мотнул головой Алан, сжимая кольца. — Пусть это стандартная модель. Но она осталась здесь. Я хочу её сохранить.

Вадим вздохнул.

— Ты такой же сентиментальный, как она. Ладно. Я покажу, как это скопировать. Но есть нюанс. Чтобы вытащить данные на внешний контур, нужен физический носитель. Ты ведь не вставил свою ключ-карту курсанта в считыватель на стене комнаты перед погружением? Она работает как флешка.

— Я не знал, что так вообще можно делать! — возмутился Алан. — Мне никто об этом не говорил.

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

Вадим сделал вид, что держит пульт управления, а затем просто разжал кулаки. Алан сделал то же самое, и голографические рукояти в его руках послушно растаяли.

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

Вадим плавно показал жест, и у него в руке из синеватой цифровой вспышки соткался тонкий светящийся стилус. Алан сосредоточился и повторил. Получилось! В пальцах появился точно такой же полупрозрачный инструмент, и Алан довольно улыбнулся.

— Теперь наводишь его прямо на предмет и нажимаешь.

Алан коснулся светящимся остриём головоломки, и рядом развернулось внушительное голографическое меню с длинным списком системных строк и команд.

— Способов работы с кодом тут много, — Вадим обвёл стилусом перечень опций. — Но переместить данные к себе можно двумя: «вырезать» или «скопировать». Прямо как на обычном компе.

— А какая разница?

— Большая. И вот тут запомни важное правило. — Голос у него стал сухим и весомым. — Сейчас мы всё только копируем. «Вырезать» не используй. Все предметы, весь мусор и все зацепки должны оставаться строго на своих местах, иначе мы можем что-нибудь упустить и никогда не найдём дорогу к комнате. Мы, кстати, не единственные, кто её ищет, и каждая группа должна видеть следы такими, какими они были оставлены. Так что ничего не меняем. Понял?

— Понял. Только копировать, — подтвердил Алан.

Вадим нажал пару кнопок на своей консоли и коснулся стилусом головоломки. Короткая зелёная вспышка пробежала по металлическим кольцам, и система выдала сухое сообщение об успешном сохранении. Алан отпустил игрушку, и она снова закружилась среди обломков мусора и рваных кусочков текстур.

Вадим свой стилус убирать не стал, а подлетел к стене пустого корпуса.

— А теперь смотри, как читать код, — Вадим навёл светящееся острие прямо на серую панель и нажал кнопку на стилусе.

Прямо в воздухе перед ними развернулось полупрозрачное прямоугольное окно. Оно выглядело точь-в-точь как интерфейс классической среды разработки — темно-серый фон, строгая разметка, подсвеченный разными цветами синтаксис.

— Языки тут могут попадаться самые разные, — пояснил Вадим. — Попробуй сам.

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

— Видишь? — спросил Вадим, сворачивая своё окно и сбрасывая стилус коротким взмахом кисти. Алан сделал то же самое, и инструмент послушно растаял в руке вместе с окном. — Файл такой короткий, потому что это только оболочка. Внутри нет ничего. Ни логики помещений, ни объектов.

Они отлетели от корпуса обратно к дрейфующим обломкам.

— Завтра и в последующие дни мы будем приходить сюда вместе, — продолжил безопасник деловым тоном. — Но искать будем по отдельности. Территория огромная, мусора тут терабайты. Нам нужно будет расходиться в разные стороны.

Он строго посмотрел на Алана сквозь визор шлема.

— Именно поэтому тебе жизненно необходима ключ-карта. Если найдёшь зацепку, пока меня нет рядом, ты должен будешь сохранить её копию на свой носитель. И не только это. Все поисковые группы скидывают найденные данные в общую защищённую папку. Тебе нужно будет иметь к ней доступ — и чтобы читать, что нашли другие, и чтобы записывать туда свои находки. Я тебе покажу потом, но материалов там очень, очень мало. Так что вся надежда на нас — мы хотя бы знаем Юлю и можем узнать её вещи среди других, среди мусора.

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

Они зависли над куском чьей-то лаборатории. Вадим оттолкнулся от металлического стола — и тот отреагировал так, как и положено объекту его массы, отлетев в сторону по законам физики. А затем Вадим слегка пнул стену рядом со столом. Вместо удара его ботинок просто провалился в текстуру по самое колено.

— Физика поверхностей здесь сломана, — пояснил Вадим, вытягивая ногу из забагованной стены. — Объекты могут вести себя как в реальности, а могут не иметь коллизий, менять плотность или вообще ломать гравитацию. Поэтому многие из этих вещей и оказались в мусорке — они сломаны или изначально неправильно разработаны. Будь осторожен, когда будешь исследовать сектора один. Не доверяй глазам.

Как раз в этот момент Алан увидел какое-то светящееся облачко, выплывающее из-под потревоженного Вадимом стола. Он зажмурился и снова открыл глаза — протереть в скафандре он их не мог — и облачка на прежнем месте уже не было.

Вскоре они развернулись и неспешно полетели обратно к шлюзу.

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

— Расшифровывать я умею, — отозвался Алан. — Юля мне постоянно такие тренировки устраивала. Она даже подарки мне на праздники так дарила — фиг откроешь, пока не представишь нужное воспоминание во всех подробностях. Проблема в другом: где мы возьмём зашифрованный по папиному методу архив, чтобы вы могли потренироваться? Я сам ни разу ничего не пробовал зашифровать. А без него как я вам это объясню? Это невозможно объяснить просто на пальцах, эту структуру надо чувствовать и показывать на практике. А ещё нужно устройство для считывания эмоций.

Вадим слегка замедлил полет, обдумывая это.

— Значит, нам нужно создать такой архив. На ключ-карте Юли есть материалы и статьи вашего отца. Как вернёмся, скинем их на твой личный носитель. Прочитаешь их и попробуешь собрать для нас тренировочный архив. А устройство для считывания эмоций надето на нас прямо сейчас — нейро-обруч.

— Я пытался читать папины статьи. Вообще ничего в них не понимаю, — вздохнул Алан. — Сплошная высшая математика.

— Придётся разобраться, — бесстрастно ответил Вадим, запуская торможение перед «Испытателем». — Подключи к этому Окулуса. Он отлично соображает в логике, алгоритмы щёлкает быстро. Я уважаю его навыки.

— Окулуса? Он же только тесты гоняет…

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

Алан тоже притормозил и недоверчиво нахмурился.

— Подожди... А почему вообще я? Корпорация огромная, на Аркаиме наверняка целые отделы гениальных программистов и криптографов, а я в папиных формулах ничего не понимаю. Профессионалы же быстрее разберутся. Или ты думаешь, это от генетики зависит?

Вадим остановился перед закрытой дверью шлюза и обернулся.

— Специалисты Корпорации над этим работают. Круглосуточно, Алан. Но они видят только сухие теоретические данные, а у тебя есть знания и практический опыт. В этой ситуации они могут оказаться уникальными.

— Какой ещё опыт? Мы с Юлей просто играли.

Безопасник положил руку на рычаг шлюза.

— Вот именно. Годами, Алан. Ты единственный, кто все эти годы успешно расшифровывал эти алгоритмы, пусть и играя с сестрой. Так что интуитивное понимание того, как эта архитектура работает изнутри, у тебя вполне может быть.

Алан хотел было возразить, что никакого понимания у него нет, есть только Юлины загадки, но промолчал.

— Объединишь своё чутьё с вычислительными мощностями Окулуса и, возможно, соберёшь рабочий прототип в разы быстрее. Попробуй. Иначе потом можем пожалеть, что даже не попытались.

Он потянул рычаг. Переборка медленно поползла вверх, цифровая пустота осталась за спиной, и впереди снова был привычный корабль.

Алан дошёл до раздевалки и своей комнаты сам. Он немного пошатывался, но от помощи Вадима упрямо отказался. Сегодня погружение в Нейросферу далось чуть легче, чем вчера, однако после долгого дня голова все ещё кружилась. Слегка тошнило, и об ужине не хотелось даже думать. Алан умылся, рухнул на кровать и принялся разбираться с функциями своего курсантского браслета. Правда, через пару часов зверский голод всё-таки взял своё. Он успел забежать в столовую перед самым закрытием и заодно запасся булочками с печеньем впрок.

Метод научного тыка напополам

Весь следующий день Алан увлечённо составлял артефакты для тестирования космического челнока. И, к своему собственному удивлению, понял, что его это очень затягивает. Раньше, до Аркаима, он считал, что программирование и вообще IT — это точно не для него, это было ему скучно. То ли дело всякие механизмы: он с детства с удовольствием разбирал и чинил устройства — от компьютерной мышки до старинного радио, увлекался робототехникой. Но оказалось, что тестирование — это не только про IT, и он часто работал с физическими устройствами, а не только с кнопками и формами на сайтах.

Более того, Алан понял, что все эти умные слова вроде «декомпозиции» или «чек-листа» — это отличные инструменты и вообще, для реальной жизни. И особенно они пригодятся сейчас, при поиске Юлиного архива. Оказалось, что любая, даже пугающе невыполнимая задача перестаёт быть такой, если разбить её на мелкие, понятные куски и написать пошаговый план для реализации каждой. А дальше — просто дело техники: берёшь и делаешь, шаг за шагом.

Вечером, после занятий, Алан попробовал действовать иначе, чтобы смягчить выход из Нейросферы: он медленно дошёл до раздевалки, преодолевая головокружение, и посидел там примерно полчаса. К нему вернулось более-менее сносное ощущение пространства, и тогда он спокойно переоделся и даже принял душ.

После плотного ужина в курсантской столовой Алан брёл к себе в жилой блок, тоже не торопясь, на всякий случай. Свернул в знакомый коридор Учебного корпуса и вдруг чихнул. Потом ещё раз.

Пыль? Здесь? Он удивлённо потёр нос. В Учебном корпусе всегда пахло только новой техникой да каким-то специальным освежителем, а сейчас воздух был мутный, белёсый, и в холодном свете ламп кружилась мелкая строительная взвесь. Алан втянул носом воздух и узнал запах раньше, чем успел подумать: нагретая канифоль! Ну и ещё пахло бетоном, и каким-то свежим герметиком. Как у папы в мастерской.

А роботы-уборщики куда смотрят? Обычно они вылизывали на космодроме каждый миллиметр пола, и такой грязи Алан тут ещё не видел. Он недоумённо огляделся. Сходить, что ли, посмотреть, откуда тянет этой строительной диверсией? Нет уж. Вадим просил лишний раз нигде не отсвечивать.

Он приложил пропуск к считывателю и зашёл в свою «берлогу». Дверь тут закрывалась сама, на доводчиках, поэтому Алан и не заметил, что лямка рюкзака, брошенного у входа, не дала ей захлопнуться до конца.

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

В этом и была главная печаль его нового «безопасного» существования. Днём думать было некогда: то алгоритмы Окулуса, то полёты среди цифровой свалки вместе с Вадимом. Алан нарочно уходил в работу и учёбу с головой, отдавал этому делу всего себя, потому что оставаться наедине со своими мыслями было попросту страшно. Первые дни он вообще падал без сил, едва добравшись до кровати. А теперь выходить из Нейросферы стало немного легче, и вот, пожалуйста, новая проблема.

Вечером симуляция заканчивалась, и наступала тишина. Давящая тишина запертой комнаты, где не было ни книг, ни интернета, никакой связи с внешним миром.

Вот тогда-то из углов мозга и начинали ползти самые тёмные, липкие мысли. Часы тянулись долго, а заняться было ну прям совсем нечем. Алан откинулся на спину, одну руку закинул за голову, а другой принялся водить по нарисованным волнам на стене. Когда он был маленьким, мама рассказывала ему, что у неё в детстве на стене висел ковёр, и она водила по его узорам перед сном. Алан смеялся и не верил: зачем ковёр на стене, а не на полу? И зачем обводить узоры? Теперь понял.

Но одновременно с этим память тут же услужливо подсунула и плохие воспоминания: чёрные микроавтобусы, оперативники в официальных костюмах, растерянное лицо отца. Вадим говорил, что родителей забрали федералы, чтобы расшифровать архив. Значит, они им нужны, причём живыми и даже морально здоровыми. Алан повторял себе это уже в сотый раз, только вот мысли упрямо подсовывали какую-то ужасную сырую камеру, где их держат без еды и воды. И узнать, что с ними сейчас, в эту самую секунду, было никак нельзя.

Он перевернулся на бок, лицом к стене. А Юля... Юля, с которой рядом всегда было спокойно и надёжно, которая одним своим «прорвёмся, Алька» могла его приободрить, спит теперь в криокапсуле посреди ледяной пустоты космоса, на корабле, который ослеп и оглох. И если капсула откажет, никто даже не узнает. Об этом Алан старался не думать вовсе. Получалось плохо.

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

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

И тут из-за двери, сквозь неплотную щель, донёсся глухой металлический лязг. А следом голоса.

Алан напрягся, на цыпочках подошёл к двери и прислушался. Это точно были не дежурные СБшники с их короткими отрывистыми командами по рации. И не стажёры. Взрослые хрипловатые голоса ругались так обыденно и по-домашнему, будто тут не секретный военный объект, а обычный гараж.

— ...я тебе говорю, не пингуется шестой порт! — донёсся раздражённый бас. — Ты оптику как обжимал? У нас сигнал на матрицу не идёт, затухание на линии бешеное.

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

Порты, пинги, обжим оптики... Обычный рабочий спор сейчас прозвучал для Алана как музыка. Вернуться на койку и снова пялиться в потолок, одолеваемый чёрными мыслями? Ну уж нет. Ему до одури захотелось увидеть живых людей, занятых понятным, осязаемым делом. Как там Вадим сказал? Ходить только в учебный корпус и в столовую? Ну так Алан даже не выйдет из корпуса, он будет здесь. А если спросят, куда пошёл, так в туалет. И по дороге заглянул спросить у рабочих, надолго ли ремонт.

Алан похлопал по карманам, нашёл ключ-карту. А точнее — даже две. Он решил всегда носить с собой обе на всякий случай — Юлину и свою.

Набравшись смелости, Алан выскользнул из комнаты. Свет и шум шли не из их тихого коридора, а из-за угла, из смежного крыла. Стараясь ступать как можно тише, он на цыпочках подобрался к повороту и осторожно заглянул за угол.

Одна из створок там была распахнута настежь. Оттуда в коридор бил резкий, ослепительно-белый свет мощных строительных прожекторов, выхватывая из полумрака клубы бетонной пыли.

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

В углу стоял открытый серверный шкаф с мигающими платами, к которому толстым шнуром был напрямую подключён потёртый, местами замотанный изолентой промышленный ноутбук.

Возле шкафа, сидя на перевёрнутом ящике, хмуро смотрел в экран седой мастер — Михалыч. Второй техник, Серёга, стоял на коленях в центре комнаты. Зажав в зубах маленький фонарик, он ковырялся тонкой отвёрткой в путанице проводов под металлической рамой будущего пола. Алан, даже не узнав их сначала, едва скользнул по ним взглядом, полностью поглощённый самой обстановкой.

Алан стоял в тени коридора, заворожённо наблюдая за работой. Прожекторы освещали всю комнату, но там, где возился Серёга, лежала густая, непроглядная тень. Техник, тихо чертыхаясь, пытался одновременно удержать распадающийся пучок кабелей, попасть микроотверткой в крошечный паз и светить себе зажатым во рту фонариком.

А потом натянутый провод выскользнул у Серёги из пальцев и хлестнул его по руке. Техник дёрнулся, тихо выругался, и фонарик, звякнув о решётку, укатился прямо к порогу. Луч бесполезно уткнулся в бетонную стену.

Алан и подумать толком не успел, а уже стоял у решётки с фонариком в руке, и ровный белый луч лёг точно на клеммную колодку.

— Так нормально видно?

Серёга вздрогнул и обернулся, щурясь от прожекторов. По его лицу было видно, что он уже набрал воздуха рявкнуть на постороннего, который лезет на закрытый объект, но вгляделся в Алана и передумал. Вытер грязные руки о штанины комбинезона и протянул:

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

Выгонят, понял Алан. Сейчас точно выгонят, в два счёта. Но промолчать он почему-то не смог.

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

— Нормальный? — Серёга усмехнулся, видно, припомнив тот разговор. — Слышь, Михалыч, новый анекдот: «Нормальный СБшник»! Стараниями этого нормального меня теперь обязали всю промасленную ветошь на утилизацию вывозить. И, между прочим, на моём личном фургоне!

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

— И правда, курсант, ты чего тут забыл? — Михалыч снова повернулся к Алану. — Вечер на дворе, шёл бы к себе, отдыхал.

— Да не могу я отдыхать. — Алан чуть сдвинул луч, чтобы Серёге было удобнее перехватить провода. — Там тоска. Интернета нет, книг нет, голые стены и умывальник, всё. Ещё пара таких вечеров, и у меня крыша поедет, если честно. Можно я просто посвечу вам? Всё равно делать нечего.

Инженеры переглянулись, и Серёга пожал плечами: ну свети, раз пришёл, только луч держи ровно. Дальше он командовал коротко, «левее», «ниже», «стоп, вот так держи», а Алан держал. Где-то на пятом «стоп» он вдруг поймал себя на том, что уже минут десять не думал о проблемах. Только о том, чтобы луч не дрожал. Рядом были живые люди, занятые понятным делом, и это здорово заземляло.

— Да ё-моё! — Михалыч в сердцах хлопнул себя по колену. — Опять!

— Что там? — Серёга даже головы не поднял.

— Тест виснет, вот что. Блок собрали, а пакеты от сенсоров где-то теряются. Вылезай, Сергей. Придётся контур дробить пополам и звонить частями, искать, где коротит.

Серёга со стоном откинулся на спину прямо на бетон:

— Михалыч, побойся бога. Там сто портов, они микроскопические, у меня уже пальцы не гнутся их перетыкать. Мы так до утра просидим.

Алан встрепенулся. Про это же сегодня утром ему битый час рассказывал Окулус! Скучные схемы тестирования вдруг обрели самый что ни на есть физический смысл.

— Нужно провести декомпозицию системы? Меня сегодня как раз этому в симуляторе учили.

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

— Декомпозицию! — Серёга пихнул Михалыча в колено. — Ишь ты, как загнул! Слыхал, Егор Михалыч? Сразу видно, Учебный корпус.

— Теоретики, блин. — Михалыч вытер выступившие от смеха слёзы. — Декомпозиция, курсант, это когда систему на смысловые куски разбираешь. А когда битый порт ищешь, это дихотомия.

— Дихо... что?

— Делим пополам и смотрим, в какой половине беда. Потом эту половину опять пополам. По-нашему «метод научного тыка напополам». Только как ни называй, делать будем завтра. Тьфу ты, послезавтра, в нашу следующую смену. У Серёги вон уже клешни не гнутся.

— Давайте я! — Алан даже шагнул ближе к решётке. — Я световую маркировку знаю, а пальцы у меня тоньше, под эту раму подлезть проще. Вы только говорите, какие шлейфы отключать, и смотрите, работает или нет.

Михалыч смерил его внимательным взглядом. Ну надо же: терминами сыплет, а сам напрашивается на самую нудную возню с мелкими проводами. Уставшим за вечернюю смену инженерам такой помощник был настоящим подарком.

— А давай, курсант, — одобрительно кивнул Михалыч. — Посмотрим, чему вас там учат. Серёжа, пусти парня к железу.

Слоеный пирог из радиомагии

Утро началось с приятного чувства уверенности. Вечер в слепой зоне бок о бок с Михалычем и Серёгой здорово прочистил мозги: повозившись с настоящим, живым железом, Алан и к виртуальной технике теперь подходил по-инженерски дотошно. Дилетантом он себя больше не чувствовал.

Полтора дня он увлечённо «доламывал» потрёпанный челнок в главном ангаре (так это называл дежурный механик в VR) и методично прогонял свой первый серьёзный чек-лист. Окулус выдал ему больше свободы и появлялся, только когда стажёр начинал тупить. Будь Окулус человеком, Алан заподозрил бы, что тот занят чем-то параллельно. Но это даже радовало: Алан сам с азартом тестировал систему на прочность и корректность работы, проверял, как реагируют микрофоны, учился отличать реальные ошибки от обновлённых настроек и радовался каждому найденному багу. А уж когда створки шлюза от конфликта команд принялись хлопать как ненормальные, Алан чуть не завопил от радости: его баг, личный! Не работа, а многоуровневый квест какой-то!

А на второй день, ближе к обеду, Окулус пропал совсем. Ну и ладно, Алан больше и не тупил. Встретились они уже в кают-компании, на подведении итогов. Ну и тут, конечно, началось знакомое: мало просто найти ошибку, надо ещё и правильно её оформить.

— Отчёт, стажёр.

— Опять?

— Не опять, а снова, — невозмутимо прожужжал Окулус. — Чтобы любой, кто его прочитает, понял, в каком состоянии челнок и готов ли он к эксплуатации после обновления.

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

— Может, ещё фазу Луны указать? — проворчал Алан, исправляя отчёт уже по третьему кругу. — И цвет шнурков на ботинках дежурного механика?

— Если они влияют на воспроизведение бага, то обязательно, — невозмутимо отозвался дрон.

Но когда система наконец приняла новый, хорошо структурированный документ, Алан невольно улыбнулся.

В столовую он шёл уставший, но страшно довольный собой. Через час они с Окулусом договорились встретиться здесь же: робот уже знал, что у них появилась ещё одна сложная задача. Разобрать алгоритмы Андрея Климова и попробовать их воспроизвести.

* * *

Алан отсутствовал даже меньше часа, а кают-компанию было не узнать. Над круглым столом висело с полсотни полупрозрачных голографических окон, и по ним непрерывным водопадом текли многоэтажные формулы, громоздкие матрицы, переплетающиеся графики. У Алана даже в глазах зарябило.

В самом центре этого цифрового торнадо висел Окулус-2 и суетился так, как машине с искусственным интеллектом вроде бы не положено: смахивал манипуляторами одни окна, тут же раздражённо вытаскивал другие и что-то глухо бурчал себе под нос.

— ...издевательство. Просто чистое издевательство над логикой. Ну кто так пишет документацию?

Очередная вкладка захлопнулась с таким остервенением, что Алан невольно втянул голову в плечи.

— Эм... Окулус? — Он осторожно шагнул ближе, стараясь не задеть плечом висящую в воздухе формулу. — У нас проблемы?

Дрон резко развернулся, синий объектив сузился, а манипуляторы бессильно опустились.

— Проблемы? У нас тупик, стажёр. — Вентиляторы Окулуса натужно взвыли. — Мои мозги перегреваются от этой вашей динамической мнемо-криптографии. Весь отдел твоего отца — гении, это бесспорно. Но они совершенно не умеют писать инструкции!

Алан подошёл к столу и сел в кресло, с лёгкой улыбкой наблюдая за возмущениями наставника.

— А я думал, для тебя эти статьи — как семечки щёлкать.

— Математика — да, мне понятна, — Окулус подлетел ближе и свернул лишние окна, оставив перед Аланом только один файл с текстом статьи. — Смотри. Я изучил материалы и собрал первую версию шифратора. Архитектура там жутко навороченная, но базируется на вполне известных алгоритмах. Я разобрался, как система закрывает данные. Мы могли бы прямо сейчас подсунуть алгоритму обычный числовой пароль, и он бы без проблем зашифровал файл. Получился очень крутой метод защиты, но совершенно не революционный.

Дрон сделал драматичную паузу, выделив красным цветом один абзац текста в висящей рядом статье.

— Вот только я в упор не понимаю, что им нужно подать на вход по-настоящему! — Окулус возмущённо мигнул линзой. — В статье вскользь упоминается какая-то «переменная на основе эмоции и воспоминания». И все! Ни единой строчки кода о том, как эту переменную создать. В каком формате она должна быть? Это массив? Хэш-сумма? Вектор? Для меня это выглядит как кулинарный рецепт, в котором написано: «Смешайте муку, яйца, а затем добавьте щепотку магии, и пирог сам себя испечёт». Как мне запрограммировать магию, Алан?!

Алан посмотрел на красные строчки папиной статьи, затем на мигающего синим светом дрона, и вдруг широко, искренне улыбнулся.

— Окулус... — Алан откинулся на спинку кресла. — А ты и не найдёшь там этой инструкции. Потому что папа много раз говорил, что это на пальцах не объяснить, это нужно именно знать.

— И что же такое тайное я должен знать? — дрон нетерпеливо покрутился вокруг своей оси, мигнув синим объективом.

— То, как её создали, — Алан озорно качнул головой. — Эту штуку изначально придумали не в лаборатории. Папа написал её дома. Для Юли. Ну просто как игрушку.

— Игрушку? — линза дрона недоверчиво сузилась. — Модуль динамического шифрования высшего порядка — это игрушка для ребёнка?

— Ну, тогда это ещё не было шифрованием, — Алан подался вперёд, положив локти на колени. — Юля в детстве была очень... впечатлительной, что ли. Она часто расстраивалась из-за того, что обычная фотография сохраняет только картинку. Она же не может передать то, что ты чувствовал в тот момент: просто радость от подарка, страх перед американскими горками или уютный вечер. И папа, чтобы её порадовать, написал для неё одну программку.

Алан похлопал по запястью, где в реальном мире носил стандартный смарт-браслет курсанта.

— У нас у всех тогда были обычные умные браслеты. Ну, которые измеряют пульс, температуру, фазы сна. Так вот, когда Юля переживала какой-то особенный момент, она потом скачивала с браслета данные, все вместе, в конкретную секунду. Пульс, температуру кожи, давление. И переводила все эти данные в цифровую эмоцию, как слепок данных.

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

— То есть... переменная — это не отдельно зашифрованная ключевая фраза? — задумчиво прожужжал дрон. — Это просто сырой массив биометрической телеметрии? Цифровой отпечаток физиологического состояния человека?

— Ага, — кивнул Алан. — Только потом ещё в ход пошли нейро-интерфейсы, чтобы снять отпечаток работы мозга во время конкретного воспоминания. Юля тогда была в полном восторге. Она начала постоянно «фотографировать» наши семейные праздники, какие-то свои впечатления, все подряд. А позже папа понял, что каждый такой слепок уникален. Его нельзя подделать или подобрать перебором. Для расшифровки нужно прожить ту же эмоцию ещё раз, и при этом не должно быть ничего лишнего.

— Забавно, — хмыкнул Окулус, переваривая информацию. — Я слышал, что лучшие книги пишут просто как истории для детей, но чтобы метод шифрования... Но погоди. Ты все это видел, а сам пробовал зашифровать файл? Ты понимаешь, как именно они конвертировали эти сырые данные с браслета в рабочий ключ шифрования?

— Не-а, — Алан покачал головой. — Я вообще никогда не понимал, как они это делают. Но зато очень много раз распаковывал такие архивы, это я умею.

* * *

Вчера у Егора Михалыча и дяди Серёжи был выходной. Оставшись без вечерней работы, Алан откровенно скучал в своей комнате, снова борясь с самыми мрачными мыслями до самого сна, и поэтому сегодня он ждал с нетерпением возвращения на стройку.

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

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

— Во даёт! Выиграла школьную олимпиаду по математике! — гордо сообщил он. — И сразу пишет, что старые кроссовки каши просят. Дочка моя. Не пропадёт в жизни точно.

Алан удивлённо посмотрел на странную связку телефона и рации.

— В смысле, она вам сюда написала? Но здесь же нет сотовой связи, СБ все глушит.

Михалыч усмехнулся в бороду и подул на горячий чай.

— Сотовой нет, студент. А радиоэфир есть.

— И как сигнал доходит до посёлка? — Алан подался вперёд, с любопытством разглядывая устройство. — Вы ретранслятор где-то поставили?

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

— А как это устройство работает? — Алан кивнул на провод между рацией и смартфоном в руках Серёги.

— На смартфоне программка специальная стоит. — Серёга нажал «Отправить», и рация секунд десять шуршала статикой, выплёвывая пакет данных в эфир. — Я пишу текст, программа переводит его в звук и по шнуру гонит в рацию. А та посылает звуковой сигнал наружу, на определённой частоте.

— А в гараже?

— А в гараже его ловит вторая рация и передаёт на телефон, а он уже отправляет нормальную эсэмэску. Обратно так же. Технология APRS называется, а мы по-простому «Мост» говорим. Как «Радиомост», только короче.

Алан присвистнул.

— И что, безопасники реально не могут это засечь? У них же пеленгаторы.

— Да пусть пеленгуют, — отмахнулся Серёга. — Эфир и так замусорен помехами от генераторов и стройки, короткий пакет данных там выглядит как обычный разговор или радиопомеха. Главное — секретные объекты не фотографировать и картинки не пересылать. Половина рабочих так с семьями общается.

— И СБ не знает?

— Может, и догадываются. Только ловить каждого — это им весь штат на поиск передатчиков бросать надо. Да и вредно это даже: люди не смогут связаться с родными, начнут переживать да увольняться.

Алан задумался. Получается, здесь вполне себе есть связь, а значит, можно списаться с кем-нибудь вне территории Аркаима. Но с кем? Родителям отправлять смс-ки опасно — можно навредить и им, и себе. А вот Костя…

— Слушайте... — Алан посмотрел на Серёгу. — А научите меня так делать?

Серёга с Михалычем переглянулись.

— Научить несложно, — пожал плечами Серёга, пряча свой агрегат обратно в карман. — Только для этого тебе свой телефон нужен и рация. И шнур для подключения, но шнур-то мы тебе дадим.

Алан нахмурился, потирая запястье, и вдруг его осенило.

— А мне и не нужна рация. У меня же смарт-браслет курсантский, у него встроенный радиомодуль. Если вы мне вашу приложуху скинете, я установлю её на свой смартфон. Телефон по блютусу передаст сигнал на браслет, а браслет сам выплюнет пакет данных в эфир, прямо на частоту вашего гаража!

Михалыч почесал бровь, задумчиво глядя на браслет Алана, а затем довольно усмехнулся.

— А ведь сработает. Без проводов, напрямую. Соображаешь, курсант. Только учти: язык за зубами держи. Никаким своим кураторам ни слова, даже «нормальным», иначе лавочку прикроют всем.

Алан молча изобразил, как запирает рот на замок, а ключик выкидывает через плечо. Серёга фыркнул.

— Ладно, скину я тебе установочник, — согласился Серёга. — Сгоняй за своим телефоном в комнату, покумекаем.

Алан сбегал за смартфоном. Приложение встало с первого раза, а вот браслет упёрся: прошивка наотрез отказывалась ловить нужную гаражную частоту. Умная электроника упорно округляла значения до ближайшего стандартного корпоративного канала и не давала сдвинуть шаг сетки ни на мегагерц.

— Вот зараза, — пробормотал Алан.

Целый час он просидел на перевёрнутом ящике, кусая губу. Снова и снова лез в инженерное меню браслета, искал, как обойти программный блок, а Серёга светил ему фонариком из-за плеча (теперь они поменялись ролями) и иногда подсказывал нужные диапазоны модуляции.

Десятая попытка прописать частоту вручную через средства разработчика... и браслет тихо завибрировал. В самописном приложении на экране телефона вспыхнула зелёная плашка: «Несущая частота найдена». Алан чуть не подпрыгнул на ящике и утёр со лба пот. Получилось!

— Ну, упорный, — с уважением протянул Серёга и хлопнул его по плечу. — Настроил-таки. Кому писать-то собрался, что так пыхтел? Девчонке своей, небось?

Алан покачал головой. Нет, не девчонке. Косте, лучшему и единственному другу, которого он втянул в эту опасную игру, а потом бросил на велосипедной вылазке и даже ничего не объяснил.

— Другу, — тихо ответил он. — Хочу попросить у него прощения.

Номер Кости он помнил наизусть. Набрал, открыл новое сообщение и долго смотрел на мигающий курсор, а потом заблокировал экран и сунул телефон в карман.

— Завтра напишу. Надо подумать, как всё правильно объяснить. Давайте лучше колодку дособираем.

Михалыч одобрительно хмыкнул: не каждый в его годы утерпел бы, а этот ничего, держится. А Серёга поднял палец:

— Правильно, сгоряча такие вещи не пишут. Но ты вот что учти, студент. Твой друг ведь получит обычную СМС-ку с незнакомого номера. У него-то нашей программы нет.

— Ну да, — кивнул Алан. — А в чем проблема? Он просто нажмёт «ответить».

— Нажмёт. Только на гаражный телефон приходят ответы для половины космодрома. Как программа поймёт, что это сообщение нужно перекинуть именно на твой браслет?

— Ммм... — Алан нахмурился. — То есть ему нужно как-то указать, кому адресовано письмо?

— Во-во. Тебе в приложении сейчас присвоен идентификатор, две тысячи шестьсот восемьдесят третий. Напиши другу прямо в сообщении, пусть ответ начинает с цифр «2683» и решётки.

— А если забудет?

— Тогда его ответ так и зависнет на том телефоне. А с кодом система в гараже поймёт, что это тебе, и перешлёт пакет в эфир на твою частоту. Понял?

— Двадцать шесть, восемьдесят три, решётка. В самом начале. — Алан повторил это про себя ещё пару раз, чтобы точно не забыть. — Спасибо вам. За всё.

— Ладно, мужики, пошли колодку докручивать. — Михалыч, кряхтя, поднялся с катушки. — А то до утра чаи гонять будем, а мне завтра рано вставать. К внучке на концерт иду!

Сказал и приосанился, будто внучка выступала как минимум в столичной консерватории. Тут уж Серёга с Аланом не выдержали и захохотали в голос.

* * *

Ночью Алан долго не мог уснуть. Ворочался, в который раз пересчитал панели на потолке, а потом не выдержал, вытащил из-под подушки смартфон и открыл пустое сообщение. Пальцы зависли над экраном и никак.

«Привет, это Алан, я на базе, извини, что сбежал».

Стёр. Нельзя. Вадим ясно дал понять, что правительственные ищейки роют землю носом, и если телефон Кости мониторят, такое сообщение станет приговором. И самому Алану, и Костиной семье, которая укрывала его чуть ли не двое суток.

«Я в порядке. Ответь на этот номер, в начале текста укажи 2683#».

Тоже стёр. Костя решит, что это спам или мошенники, и удалит. И всё. Другого шанса может и не быть.

Алан сунул телефон под подушку и уставился в темноту. Что-то личное. Что-то понятное только им двоим, чтобы Костя сразу поверил, что пишет именно Алан, а безопасник или алгоритм перехвата не нашли, к чему придраться.

Он перебирал в памяти всё подряд: школу, двор, их бесконечные споры о роботах... И вдруг вспомнил ту велосипедную вылазку к периметру. Как подло отстал тогда и оставил друга в неведении. Стыдно было до сих пор, но Алан даже приподнялся на локте. Вот оно! Велосипед. Про это знают только они двое, а чужому такая фраза ничего не скажет.

Дальше пошло легче, хотя сочинял и вычёркивал он ещё долго: извиниться, успокоить, не забыть дурацкую инструкцию с решёткой... Уложить всё это в одну эсэмэску удалось только далеко за полночь, и Алан, обессиленный, провалился в короткий беспокойный сон.

Утром он проснулся рывком, сел на кровати и быстро, пока не передумал, набрал:

«Привет. Это пропавший велосипедист. Извини, что втянул вас тогда, отстал и заставил волноваться. Я в безопасном месте, все нормально. Как вы выбрались? Надеюсь, из-за меня вам не влетело. Жду ответа. В самом начале текста ОБЯЗАТЕЛЬНО напиши 2683# без пробела, иначе сообщение не дойдёт. И не звони сюда»

И нажал «Отправить». Даже как-то полегчало. Браслет прошуршал что-то на языке R2-D2, затем система коротко мигнула, подтверждая, что пакет ушёл в эфир.

Было ещё слишком рано для того, чтобы идти на занятия, и Алан упал на подушку и заснул наконец-то нормальным сном без сновидений.

Все еще друзья?

Весеннее солнце щедро заливало школьный двор ярким светом, обещая скорое наступление настоящего степного лета. Шумная толпа учеников вывалилась из стеклянных дверей, радуясь окончанию уроков.

Макс и Костя вышли на крыльцо вместе со своими одноклассниками и у самых ворот столкнулись с Майей и Ритой, которые учились в параллельном восьмом «А». Уроки у девочек закончились на пять минут раньше звонка, и они решили подождать мальчишек здесь, греясь в лучах долгожданного после зимы тепла.

— Ну наконец-то эта сдвоенная алгебра закончилась, — простонала Рита, скидывая с плеча набитый учебниками рюкзак. — Я думала, мы там до вечера графики чертить будем.

— Да ладно, нормальная тема, — отозвалась Майя. — Главное логику понимать, да и все. Вы-то как, восьмой «Б»? Живы после физики?

— Живы, но не все, — хихикнул Макс. — Ладно, народ, мы погнали, — он кивнул в сторону Риты, подхватывая её рюкзак. — Я ещё на той неделе обещал ей ноут реанимировать, петли подтянуть и термопасту поменять, а то он у неё скоро на орбиту улетит от перегрева.

— Ага, до завтра! — махнула рукой Рита, и они с Максом свернули на перекрёстке к её дому.

Майя и Костя остались вдвоём. Им было по пути, так что они неспешно зашагали вдоль невысоких заборов частного сектора. Погода стояла чудесная, в воздухе пахло нагретой землёй и молодой листвой, но Костя этого словно не замечал. Он шёл, низко опустив голову, и всю дорогу хмуро молчал.

Майя искоса поглядывала на него. Костя и так последнюю неделю был не в духе из-за своего домашнего ареста, но сегодня он был как-то необычно суетлив. Он то и дело нервно хлопал себя по карману куртки, словно проверяя, на месте ли телефон, и тут же одёргивал руку.

— Кость, ты чего такой смурной сегодня? — наконец не выдержала Майя, когда они свернули в их переулок. — Дядя Вадим так и не вернулся с базы? Или новости какие плохие?

Костя остановился. Он вздохнул, посмотрел на Майю, затем сунул руку в карман и вытащил смартфон.

— С дядей все нормально, — глухо ответил он. — Наоборот. Помнишь, мы в гараже решили, что раз он спокоен, значит, Алану… и нам ничего не угрожает?

Майя кивнула, мгновенно напрягшись при упоминании Алана.

— Так вот, в это воскресенье Вадим пришёл со смены. Я думал, он меня вообще прибьёт, старался даже не отсвечивать и дышать через раз, — Костя нервно усмехнулся. — А он продрых полдня, вышел к ужину, и знаешь что? У него было отличное настроение. То есть, нормальное такое, человеческое настроение. Он про ту субботу и мой допрос даже слова не сказал. Ел мамины котлеты и шутил. И я так понял, что все в порядке, дядя разрулил проблему.

Костя зло крутанул телефон в пальцах.

— А сегодня рано утром... в общем, смотри сама.

Он разблокировал экран и протянул смартфон Майе. В открытом диалоге висело сообщение с неизвестного номера. Майя бросила взгляд на лишние символы в тексте — и внутри у неё все замерло. Она прекрасно знала, откуда приходят такие смс-ки.

«Привет. Это пропавший велосипедист», — прочитала Майя и невольно хмыкнула. Ну надо же, велосипедист.

Остальное она дочитала молча, разве что чуть шевеля губами.

Костя сунул руки в карманы и снова насупился.

— Это Алан, — выдохнула Майя, подняв на него глаза. — Кость, это точно он! И он живой, и у него есть телефон, чтобы нам написать. Это же хорошо!

— Живой, — буркнул Костя и пнул попавшийся под ногу камешек. — Я сначала тоже увидел и обрадовался, как будто даже легче стало. Он извинился даже, вон. А потом знаешь что?

— Что?

— Понял, что всё равно обидно. Полторы недели, Май! Десять чёртовых дней мы тут с ума сходили от неизвестности. Я себя виноватым считал, от каждого дядиного взгляда вздрагивал, сидел взаперти как дурак. А он, значит, отсиделся в своём «безопасном месте» и пишет как ни в чём не бывало. Да ещё и условия ставит! Не звони ему, видите ли. Цифры какие-то дурацкие с решёткой пиши, и обязательно.

Майя молча перечитывала сообщение во второй раз, а Костя всё не унимался:

— Я весь день на этот экран смотрю. Весь день как на иголках. И знаешь что? Я ничего ему не ответил. И не буду. Сам заварил эту кашу, сам нас кинул в овраге, пусть теперь там со своими делами и сидит. Раскомандовался тут... придурок.

Майя оторвалась от экрана и медленно подняла на Костю взгляд.

— Кость... ты вообще понимаешь, откуда он это написал? — спросила она поражённо.

— Из «безопасного места», там же сказано, — буркнул Костя. — Да и какая разница?

— Большая! Это не обычная эсэмэска, — Майя ткнула пальцем в странные цифры с решёткой. — Это передано через рабочий радиоканал. У нас на космодроме все так делают, чтобы с семьями переписываться. Там же, на закрытых площадках, сотовая связь вообще не ловит.

— Все? — Костя нахмурился, сбитый с толку. — А почему я тогда про это ничего не знаю? Дядя Вадим нам так никогда не пишет.

— Вообще никогда? — удивилась Майя, но тут же хлопнула себя по лбу. — А, ну хотя да! Он же безопасник. У них свои защищённые рации, официальная связь. Ему и так нормально, не надо этих сложностей. А у меня вот на телефоне специальная программка стоит, чтобы папе писать на смену, — она сама код подставляет, чтобы не перепутать.

— Так вот, Костя! — Майя даже остановилась посреди тротуара. — Это значит, что Алан сейчас находится прямо там, на космодроме!

До Кости медленно начал доходить смысл её слов, но упрямство и обида все равно брали верх. Он отвернулся.

— Ну и флаг ему в руки. Значит, он добился своего.

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

— Я сказал — нет! — Костя скрестил руки на груди. — Пусть он там сидит со своими «делами». Не буду я ничего писать, я все равно не знаю, что ему сказать. Да и вообще... — он вдруг замер, и в глазах мелькнуло сомнение. — А если это не он?

Майя, которая как раз достала телефон, удивлённо на него посмотрела.

— В смысле? А кто?

— Да кто угодно! — Костя заговорил быстрее, и стало ясно, что эти версии он крутил в голове весь день. — Вдруг Алана поймали? Дядя Вадим в воскресенье был какой-то подозрительно добрый...

— Думаешь, ловушка?

— А почему нет? СБ-шники нашли его телефон и теперь пишут всем контактам, проверяют, кто откликнется. Ответим — и привет. Так что если и писать, то так, чтобы понял только он. Встречную проверку устроить.

Майя кивнула. Открыла ту самую программку для связи с папой и аккуратно напечатала в строке адресата идентификатор 2683.

— Что ты делаешь? — Костя всё-таки заглянул ей через плечо.

— Пишу проверку, как ты и хотел. Про то, чего СБ точно не знает. — Майя застучала по экрану, проговаривая вслух: — «Привет. Рады, что нашёлся. Но нам нужно убедиться, что это ты. Напиши: кто пришёл на встречу у водонапорной башни первым после тебя?..»

— Так это ж ты была, — хмыкнул Костя.

— Вот именно. Посмотрим, помнит ли он. — Она допечатала: — «...И что этот человек сделал? М.»

— Ну как? — Она развернула экран к Косте. — Что мы были на космодроме, могли узнать с камер, если они при запуске всё-таки работали. А что было у башни, знаем только мы с тобой и Алан. Ответит правильно — значит, точно он.

Костя помолчал и нехотя кивнул: это было логично. Майя нажала «Отправить», программка коротко пискнула, что сообщение ушло на мост, и она сунула телефон в карман.

— Всё. Теперь ждём, что он ответит.

Зацепки и призраки

К завтраку Алан проверил телефон, наверное, раз двадцать. Первый раз ещё затемно, едва проснувшись: даже не дождался, пока искусственный свет в «берлоге» наберёт яркость, нашарил под подушкой смартфон и свайпнул вниз. Но экран приложения APRS упорно молчал и не менялся.

Потом проверял, пока умывался холодной водой над маленькой раковиной у себя в комнате, и пока шёл через этаж в туалет. В столовой доставал украдкой, под столом. Галочка доставки горела упрямо: Костя сообщение получил. А ответа не было.

— Спит, наверное, — утешал себя Алан, ковыряя овсянку.

Ну или в школу ушёл пораньше, или с решёткой этой не разобрался...

А может, Костя на него просто злится. Обиделся и не хочет разговаривать. Алан помотал головой: нельзя думать об этом, раскисать — точно не вариант. Они с Костей дружат целую вечность, не могут же они поссориться насовсем из-за одного недоразумения. Нет, Костя всё поймёт.

В раздевалку учебного корпуса он, конечно, явился задолго до начала занятий, потому что вскочил ни свет ни заря и позавтракал наспех.

Он скинул повседневную одежду и натянул серый комбинезон, думая о грядущем занятии. В голове вдруг всплыл базовый принцип теории тестирования: «Всегда задавай системе вопрос: а что, если?..»

«А что, если...» — Алан задумчиво посмотрел на свою чёрную курсантскую карточку, а затем достал из кармана джинсов почти такую же, только белую, карту Юли. Раз карточка курсанта работает как накопитель, то, может, сохранять на Юлину карту все зацепки, что они обнаружат в Нейросфере? Он специально решил проверить эту гипотезу и взял обе карты в руки.

Зайдя в звукопоглощающую комнату симуляций, он подошёл к настенному терминалу. Поколебавшись несколько секунд — все-таки карта была очень ценна для него сама по себе — Алан аккуратно вставил в узкую щель считывателя карту сестры. Замок тихо щёлкнул.

Алан опустился на матрицу из пружинящих сфер и надвинул на голову нейро-обруч.

Знакомая вспышка, распад реальности на пиксели — и вот он стоит в пустом матовом кубе распределительного хаба.

Его план был прост: вызвать стилус, открыть файловый менеджер, создать пустой текстовый документ и сохранить его прямо на Юлину карту в считывателе. Но едва он коснулся иконки внешнего диска, пространство полыхнуло агрессивным алым, панели свернулись, и перед самым лицом повисло пульсирующее окно: «ОШИБКА АВТОРИЗАЦИИ. Ключ-карта не соответствует нейро-профилю текущего курсанта. Запись запрещена».

Хитрая система, ничего не скажешь. Она не просто видела носитель, а в реальном времени сверяла того, кто сидит в VR, с владельцем вставленного ключа. Читать с Юлиной карты можно, а записать поверх что-то своё — нет. Ну и ладно. Отрицательный результат — тоже результат, теорию он проверил на практике, как настоящий тестировщик.

Алан вышел из виртуальной реальности, спрятал карту Юли под ткань комбинезона на груди, вставил в считыватель свою, чёрную, и снова надвинул обруч. Пора на официальное занятие.

* * *

К обеду голова у Алана гудела, как трансформатор. Он уплетал суп с волчьим аппетитом и даже не заметил, как на стол рядом опустился поднос, а стул напротив занял Вадим.

— Ну как занятие, курсант?

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

Вадим отвечал что-то вроде «угу» и «хмм», но Алана это полностью устраивало, потому что остановиться он уже не мог и рассказывал, как потом им выкатили настройки скафандра, где сочетаний было столько, что голова пухла, а хитрая техника с непроизносимым названием ужала их до шестнадцати, и как он весь урок выкрикивал это название, словно заклинание, а Окулус каждый раз вздыхал, хотя, кажется, не всерьёз. Чек-лист в конце он составил сам. А завтра по этой теме первый серьёзный экзамен.

Вадим слушал, неспешно размешивая чай и делая серьёзное лицо. Но тут он воспользовался паузой в рассказе Алана и спросил:

— А скажи-ка, чародей, что это были за утренние фокусы с ключ-картой? Решил взломать терминал чужим доступом?

Алан чуть не поперхнулся компотом.

— Откуда ты знаешь? Я же там один был.

— Служба безопасности получает алерты обо всех системных ошибках авторизации. — Вадим отхлебнул чай. — Я как раз на дежурстве сидел, смотрю: сигнал падает. Разобрался, конечно. Но всё равно интересно, зачем ты туда полез с картой Юли?

Алан виновато пожал плечами и рассказал про утренний эксперимент. Ну, «а что, если», всё как учили.

— Слушай, а добавить её карту в мой профиль никак? — с надеждой спросил Алан. — Ну, чтобы я туда всё, что найду в Нейросфере, сохранял. Вдруг эти вещи только с Юлиной картой и работают как зацепки?

Вадим покачал головой.

— Не выйдет. Тут всё жёстко: один браслет, один профиль в VR и одна личная карта. Идентификация идёт по твоему курсантскому браслету, вторую карту я к нему не прикручу, защита просто заблокирует нас обоих. Так что работаем по-старому. Да и нет в этой карте ничего необычного, поверь мне. Статьи мы оттуда уже скинули. Я бы вообще предложил её утилизировать, но ты ж сентиментальный.

Алан покачал головой, давая понять, что карту он не отдаст.

Безопасник хмыкнул, отпил чай и посмотрел на Алана уже другим взглядом.

— Как самочувствие вообще? Голова не кружится? Тошноты нет? Обычно новичков после таких долгих ежедневных погружений выворачивает наизнанку — вестибулярный аппарат плохо справляется с иллюзией.

— Да в целом нормально, — Алан пожал плечами. — В первые несколько дней было жёстко, конечно, когда выходил, но с каждым разом получается все легче. Это же как крутая игра с полным погружением. Мы с пацанами в городе раньше часто в VR-клубах зависали. Там, понятно, все попроще и менее реалистично, но в целом ощущения почти такие же.

Вадим кивнул и сразу посерьёзнел.

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

* * *

До шлюза на нижней палубе «Испытателя» дошли привычной дорогой. Скафандр Алан в этот раз натянул вдвое быстрее: пальцы сами помнили, где затянуть ремни, где защёлкнуть магнитные фиксаторы на перчатках. Шлем коротко прошипел, лязгнула переборка — и снова невесомость.

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

— Движемся за мной, — скомандовал Вадим по внутренней связи, плавно давая импульс вперёд. — И смотри в оба. Правительственные хакеры не спят. Они периодически запускают сюда фоновые атаки, которые как пылесос перемешивают неиндексированные данные. Благо, стирать что-либо они тоже боятся, так что архив точно ещё здесь.

Алан аккуратно заложил вираж вслед за напарником, уворачиваясь от проплывающего мимо искорёженного куска бетонной плиты.

— А как же наши зацепки? Их могут удалить?

— Да, их уже удаляли, и не раз, — ровно ответил Вадим. — Но мы тоже не дураки: у нас есть специальный скрипт, который мониторит нужные нам кластеры. Если система фиксирует удаление объекта-зацепки, наш скрипт автоматически подтягивает сохранённую копию из бэкапа данных и пересобирает её ровно на старых координатах. Так что найденные следы Юли никуда не исчезнут. Притормози, мы на месте.

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

Алан подлетел ближе: под виртуальным стеклом была движущаяся фотография. На ней Юля и Вадим, совсем молодые, лет по восемнадцать, сидели в обнимку на деревянной скамейке в фойе старого Учебного корпуса, улыбались, глядя друг на друга, и выглядели беззаботно счастливыми. У Алана возникло странное чувство — он привык видеть сестру собранной и серьёзной, особенно в последние месяцы перед полётом.

Вадим молча подцепил пальцем заднюю крышку рамки, снял её и вытащил саму фотографию, перевернув её обратной стороной. На белой изнанке знакомым, размашистым почерком Юли было выведено всего одно предложение: «Я сохраню твою любовь».

— Я не знаю, почему это именно здесь, — глухо произнёс Вадим, глядя на строчку. — Но эта вещь точно из нашей комнаты.

Он осторожно вернул фото в рамку и отпустил её. Рамка снова медленно закружилась в невесомости.

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

Он вызвал голографический интерфейс, ввёл в него вереницу координат и решительно ударил по кнопке ввода, и мигнуло так резко, что Алана замутило, мусор смазался в серую полосу, и вот они уже висят совсем в другом месте.

Пока Алан моргал, пытаясь поймать фокус, Вадим развернул перед ними большую полупрозрачную сферу — карту неиндексированной зоны: красные пятна аномалий, зелёные безопасные коридоры и жёлтая точка, пульсирующая на самом краю.

— Мы здесь, — Вадим ткнул пальцем в маркер. — Смотри прямо по курсу.

Алан поднял голову и замер. Среди обломков труб и искорёженного металла висела ровная, чистая платформа. А прямо посреди неё, без всяких стен и дверных коробок, стояла самая обычная межкомнатная дверь из светлого дерева. На ней кривовато висела пластиковая табличка с именем: «Алан».

У Алана перехватило дыхание, и он медленно, словно во сне, подлетел к платформе и опустился на неё, так что подошвы скафандра глухо стукнули о гладкую поверхность.

— Этого не может быть... — Он провёл перчаткой по гладкому дереву. Даже царапина у самой ручки, до боли знакомая: это же папа её оставил, когда они вместе ставили новую ручку взамен сломанной. — Вадим, это же дверь в мою комнату, из нашей городской квартиры, один в один!

Вадим удивлённо напрягся.

— В твою комнату? Погоди, я видел дверь в твою комнату — там не было никакой таблички с именем.

— Таблички не было, — Алан оглянулся на него. — Но все остальное точно такое же, до мельчайших деталей.

Алан взялся за холодную металлическую ручку и потянул, и дверь открылась с тихим скрипом петель, а за ней... Он почему-то ждал увидеть свою кровать, стол с компьютером, постеры на стенах. А там висела всё та же равнодушная пустота свалки, и в ней медленно проплывал кусок ржавой арматуры. Дверь вела в никуда.

Алан всё ещё смотрел туда, когда краем глаза уловил движение, и это был не плавный дрейф, как у мусора, а рывок. Среди обломков метнулось что-то полупрозрачное, мерцающее, похожее на сгусток электричества или на мерцающую вату. Сгусток дёрнулся и юркнул за крупный кусок бетона. Спрятался от них что ли?

— Что это за... — начал было Алан. Он же видел такое здесь в прошлый раз!

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

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

Пистолет сам примагнитился обратно в кобуру.

— «Призрак», — буднично пояснил он, заметив вытянувшееся лицо подростка. — Вражеский лазутчик. Федералы постоянно их сюда закидывают, прочёсывают сектора в поисках архива.

— А почему он выглядит как... ну, как светящаяся вата? — Алан отпустил металлическую ручку своей двери и подлетел чуть ближе.

— Потому что это реальный человек, который подключился к нашей сети нелегально, извне, — ответил Вадим, внимательно сканируя взглядом окружающее пространство. — Движок Корпорации просто не понимает, как отрендерить его аватар. Отрисовывает как нераспознанную аномалию, как сырую нейронную энергию.

Алан замер. До него вдруг дошёл смысл сказанного.

— Стоп. Реальный человек? Слушай, а ему... нормально будет после такого выстрела? Ты его убил, что ли?

— В реальности? Нет, конечно, — Вадим криво усмехнулся. — Но приятного мало. Мой выстрел сейчас жёстко крашнул его сессию. Его экстренно, аварийно выкинуло из системы обратно в реал. И прямо сейчас башка у него скорее всего раскалывается. Эффект разрыва нейро-связи. Но так ему и надо — нечего лазить по закрытым корпоративным секторам. Впрочем, не переживай за него — таких людей долго тренируют, он будет в порядке через пару часов.

Безопасник повернулся к Алану, и голос его стал по-инструкторски строгим.

— Но учти: призраки — это агрессивные сущности. Если такая штука до тебя дотронется, она может спровоцировать такой же аварийный выброс и для тебя.

Алан нервно сглотнул, покосившись на пустой угол, где только что прятался лазутчик. Тестировать на своём опыте разрыв нейро-связи что-то не хотелось.

— Понял. А как мне стрелять? Дашь мне доступ к такому же пистолету? В шутерах я метко бью.

— Никак, — отрезал Вадим. — У тебя официальный статус курсанта Академии. У тебя нет системного допуска на оружие, и я физически не смогу выдать тебе эти права в обход протоколов СБ. Так что правило одно: увидишь призрака — даже не думай геройствовать. Замирай, прячься и сразу зови меня по внутренней связи. Ясно?

— Ясно, — покладисто кивнул Алан. Лезть с голыми руками на правительственных агентов ему и самому совершенно не хотелось.

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

Подросток вызвал перед собой голографическую карту неиндексированной зоны. Ему не хотелось летать наугад, и он решил применить логику. Первым делом он нашёл на схеме пустую оболочку старого учебного корпуса. Он отметил маркером его геометрический центр, а затем — тот самый угол, в котором в прошлый раз нашёл металлическую головоломку.

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

— Совпадение? — прошептал Алан, прищуриваясь. — Не думаю.

Он провёл вторую прямую — строго вперёд, на условный север, куда указывала сама дверь. Линия, идущая от головоломки, уходила вправо примерно на тридцать градусов относительно этого «севера». Между этими двумя лучами образовался узкий сектор поиска. Алан решил лететь прямо по его центру.

Однако на пути его воображаемого маршрута на карте пульсировала багровая зона. Подпись гласила: «Аномалия коллизии: Магнитная гора». Впрочем, других больших аномалий видно не было в обозримом пространстве выделенного им сектора.

— Вадим, а что это за Магнитная гора у меня тут по курсу? — спросил Алан по внутренней связи. Про свой сектор и вычисления он промолчал — почему-то хотелось проверить догадку самостоятельно.

— Глючный объект с выкрученным притяжением, — отозвался голос Вадима в наушниках. — Даже не думай приближаться. У твоего скафандра в ботинках прописаны магнитные захваты, чтобы можно было ходить по обшивке корабля в открытом космосе. В нормальных зонах они работают слабо, а к этой горе тебя притянет с потрохами. Придётся аварийно обрывать сессию и заходить в VR заново. Только время зря потеряем, так что держи дистанцию.

— Понял, — коротко ответил Алан.

Он убрал карту, активировал контроллеры и плавно тронулся с места. Магнитная гора действительно маячила впереди — колоссальное нагромождение искорёженного металла, к которому со всех сторон медленно подтягивались мелкие обломки. Но его сектор был достаточно широким, и Алан рассчитывал, что сможет пролететь краем, не попав в зону захвата.

Полет по намеченному сектору сначала напоминал неспешную экскурсию по музею виртуального абсурда. Алан плавно скользил в невесомости, с искренним исследовательским удовольствием разглядывая необычные предметы, которые проплывали перед его взглядом. Вадим сказал искать что-то необычное, какие-то зацепки, но как? Здесь необычным было буквально все.

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

Держаться Алан старался ровно посередине своего воображаемого коридора, подальше от опасных краёв, и вовсю глазел по сторонам. Вот мимо проплыл кусок пластиковой обшивки, плавно, никуда не торопясь... и вдруг с глухим стуком отскочил от абсолютно пустого места.

Алан резко затормозил, почувствовав лёгкий холодок. Невидимая стена.

— Нифига себе, — пробормотал он почти что про себя. — А если бы я на полном ходу туда влетел? Расплющило бы как муху о лобовое стекло.

Но тут проснулся геймер, а следом и свежеиспечённый тестировщик. Алан подлетел чуть ближе, поймал проплывающий кусок ржавой трубы и с силой швырнул его в пустоту. Дзынь! Труба глухо звякнула о невидимую преграду и отлетела. Ага! Алан вошёл во вкус и принялся хватать из невесомости мелкий мусор и кидать перед собой, следя за отскоками и пытаясь нащупать габариты этой стены.

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

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

Алан так и завис с вытянутой рукой и открытым ртом. Нифига себе. Это какие же физические параметры надо было прописать кабелю, чтобы он так себя вёл?

Покачав головой, он полетел дальше, восторгаясь масштабами поломок. Впереди мягко светилась парящая неоновая табличка. Подросток подлетел поближе, ожидая увидеть название какого-нибудь сектора, но вместо указателя на ней горела яркая стандартная заглушка: «ERR_STRING_NOT_FOUND». Ну ладно, подобного он насмотрелся и на занятиях с Окулусом — разработчик забыл обработать какую-то ошибку в интерфейсе, бывает. Ну или предмет был частью чего-то ещё, и теперь просто не мог получить данные, нужные для отображения надписи.

Зато сразу за табличкой в пустоте висело нечто поистине циклопическое. Алан задрал голову, разглядывая чёрный монолит размером с трёхэтажный дом. Потребовалось несколько секунд, чтобы узнать в этой громадине... обычный канцелярский степлер. Кто-то из разработчиков явно промахнулся с запятой, когда прописывал масштаб, и теперь этот левиафан канцелярии величественно парил над свалкой. Алан снова прифигел, гадая, почему же такую «жирную» металлическую массу не притягивает к Магнитной горе, но потом заметил, что у степлера нет металлических частей — вообще вся его структура пластиковая.

Чуть в стороне висело какое-то странное мыльное пятно. Размытая, пиксельная клякса из трёх полигонов, больше всего похожая на мятую картофелину. Из любопытства он направил скафандр прямо к ней. Когда до пятна оставалось ровно два метра, раздался громкий системный щелчок, и «картофелина» мгновенно превратилась в детализированный металлический шкафчик, отрисованный в кристальном 4K — со всеми царапинами, бликами и тенями. Алан удивился, отлетел на метр назад — шкафчик снова схлопнулся в мыльное пятно. Подлетел вперёд — 4K-модель. Подросток пару раз туда-сюда пересёк эту невидимую границу, наслаждаясь щелчками подгрузки текстур. Зато они почему-то грузились без ошибок, в отличие от надписи на той табличке. Алан пожал плечами.

Но настоящей находкой стал оторванный кусок трубы, из которой вырывалось пламя. Огонь выглядел как-то слишком плоско. Алан решил облететь трубу по кругу, чтобы посмотреть на пламя сбоку, и с восторгом обнаружил, что огонь... поворачивается вместе с ним. Это был 2D-спрайт, обычная плоская картинка, которой не прописали объем. Под каким бы углом он к ней ни подлетал, картинка мгновенно вращалась, чтобы всегда смотреть ему прямо в «лицо». Подросток завис вокруг трубы, начав откровенно дурачиться: он резко бросался влево, уходил вправо, нырял вниз — а плоский огонь послушно и молниеносно крутился вокруг своей оси, ломая всю иллюзию трёхмерного пространства.

Оставив плоский костёр в покое, Алан двинулся дальше, широко улыбаясь. И тут он услышал звук. Громкий, пулемётный треск: «д-д-д-д-д-д-д!».

Звук исходил от куска бетонной стены. Наполовину провалившись в её текстуру, торчал ярко-красный огнетушитель. Физический движок симуляции отчаянно пытался рассчитать коллизию, терпел крах, выталкивал огнетушитель наружу и снова проваливал его внутрь с частотой, может, тысяча раз в секунду. В результате бедный баллон бешено вибрировал на месте, размазываясь в красное пятно и издавая этот оглушительный, истеричный треск.

Контраст между тем, что он находился в самой секретной, продвинутой и дорогой симуляции О.С.И.Р.И.С. — Нейросфере, и тем, что она местами выглядела как забагованная альфа-версия кривой инди-игры, окончательно добил Алана. Он не выдержал и звонко, от души рассмеялся, напрочь забыв о правилах радиообмена.

— Ты чего там ржёшь? — тут же раздался в наушниках подозрительный голос Вадима.

— Ой, извини, — Алан попытался подавить смешок. — Да тут просто забавный баг. Огнетушитель в текстурах застрял и бьётся в припадке.

— Смотри по сторонам, а не на застрявшие огнетушители, — ворчливо отозвался безопасник. — Мы сюда не в зоопарк пришли. Дистанцию до горы держишь?

— Держу-держу, все нормально, — откликнулся Алан.

Он отлетел подальше от Магнитной горы, оказавшись метров на сто от опасной границы, где действует её притяжение. И в этот момент он заметил впереди крупный объект. Это был намертво впечатанный в стену кусок старой орбитальной станции — массивный цилиндрический модуль с приоткрытым шлюзовым люком.

Алан вообще-то собирался пролететь мимо, как вдруг его взгляд зацепился за деталь. Прямо на металле люка была небрежно нарисована синим маркером лента Мёбиуса с маленькой короной наверху.

Он резко затормозил. Юлька! Она постоянно рисовала этот дурацкий символ на полях своих студенческих конспектов и вообще на любой бумажке, когда о чем-то напряжённо думала или когда созванивалась с кем-нибудь по телефону.

«Вот оно! Зацепка!» — горячая волна адреналина ударила в голову. Начисто забыв про все виденные им сегодня аномалии и про то, что модуль находится в опасной близости от невидимого гравитационного колодца горы, Алан дал импульс с контроллеров и стремительно нырнул прямо в открытый люк станции.

Это была худшая идея в его жизни.

Стоило ему только пересечь невидимую границу шлюза, как пространство внутри модуля сошло с ума. Физика здесь оказалась не просто сломанной — она была разорвана в клочья.

Вектор гравитации мгновенно сменился на противоположный. Алана с силой швырнуло вверх, спиной прямо в металлический потолок.

— Какого... — только и успел произнести он, как гравитация скакнула снова.

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

— А-а-а-а! Вадим! — заорал Алан, когда его с размаху приложило о панель приборов. — Помоги! Меня тут сейчас расплющит!

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

Раздался противный скрежет разрываемого скафандра. В левом плече вспыхнула обжигающая боль, несмотря даже на сильно сниженные настройки ощущений, — нейро-интерфейс честно транслировал в мозг повреждение аватара. Внутри шлема завыла сирена, все залило пульсирующим красным светом, а на визоре выскочило кричащее предупреждение: «КРИТИЧЕСКИЙ УРОН! НАРУШЕНИЕ ГЕРМЕТИЧНОСТИ СКАФАНДРА!»

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

Весь цилиндр станции вместе с орущим внутри Аланом с жутким ускорением затягивало в гору из металлолома. Металл вокруг скрипел, трещал по швам и сминался под воздействием полей.

Алана вжало в стену перегрузкой. Сейчас его аватар просто впечатает в свалку вместе с этой консервной банкой! Он заметался в поисках выхода. Левая рука болела и не слушалась, но правой он кое-как подтянулся к люку и выглянул наружу. Может, получится вылезти и улететь?

Модуль стремительно приближался к Магнитной горе. А на ней...

Алан перестал кричать.

На самом пике искорёженного мусорного кома был примагничен автомобиль — тёмно-синий универсал, и на левом крыле глубокая вмятина, та самая, Алан узнал бы её из тысячи. Номер он разглядеть не успел: модуль крутануло, и гора ушла из люка вбок.

Папина машина. Здесь. На цифровой свалке.

ГРОХОТ.

Удар был таким сильным, что в ушах зазвенело. Металл вокруг смялся, как фольга. Красный свет в шлеме скафандра вдруг стал ослепительно белым, сирена захлебнулась собственным криком, и всё — мир с сухим треском схлопнулся. Система просто не выдержала столько критических ошибок разом.

Очнулся он на полу настоящей ВР-комнаты и никак не мог отдышаться. Пружинящие сферы под ним сейчас казались твёрдыми, как камень. Голову будто проткнули ржавым гвоздём, и Алан сидел, вцепившись пальцами в волосы. Так вот он какой, аварийный разрыв нейро-связи. Гадость та ещё. Хорошо хоть фантомная боль в плече понемногу утихала.

Дверь операторской грохнула о стену, и в комнату влетел перепуганный Вадим с оранжевой аптечкой в руке.

— Алан! — он бросился к подростку, падая рядом на колени и срывая с его головы обруч. — Сюда смотри! На палец смотри, говорю!

Вадим поднял указательный палец перед глазами Алана и начал плавно водить им из стороны в сторону.

— Следи глазами. Дыши. Глубокий вдох, медленный выдох.

Безопасник одной рукой открыл аптечку, щёлкнул блистером, выдавливая на ладонь Алана белую таблетку, и вытащил небольшую пластиковую бутылку с водой.

— Глотай. Это нейро-стабилизатор. И запей нормально. Мелкими глотками.

Алан послушно проглотил горькую таблетку и сделал пару глотков прохладной воды. Холодная жидкость, действие лекарства и простые, монотонные движения глазами понемногу возвращали его в реальность. Тошнота начала отступать, а пульсация в висках стала терпимой.

Убедившись, что у парня осмысленный взгляд и микроинсульт ему не грозит, Вадим опустился прямо на пол и громко выдохнул. Но тут же снова вскинул голову.

— Ты что, совсем идиот?! — рявкнул он на всю комнату. — Какого черта ты полез в этот модуль?! Я же сказал не соваться к Магнитной горе.

— Да я и не был в опасной зоне! — хрипло оправдывался Алан, морщась от громкого звука. — Модуль висел далеко от горы, я просто залетел внутрь, а там пространство сломано было, гравитация взбесилась, меня начало швырять по стенам, а потом я выглянул, а модуль уже к горе притягивает, но я ж не специально!

— А зачем ты вообще внутрь попёрся?!

— Там на люке был рисунок Юли, лента Мёбиуса с короной, и я подумал, что это зацепка, что это она мне знак оставила, но внутри я ничего такого не заметил...

— Алик, твою мать... — Вадим даже нервно хохотнул. — Да это же неофициальный герб курсантов Академии! Тех, кто до третьего курса дожил. «Короли бесконечности» называется. Эту дрянь тут каждый второй стажёр рисует: на полях конспектов, на партах, и на свалке, конечно, где ж ещё? Никакой это не личный маркер твоей сестры. Граффити это, свободное выражение творчества, чтоб его!

Алан недоверчиво взглянул на него. То есть это просто курсантская шутка? Получается, он ошибся и напрасно рисковал ради обычного, ничего не значащего, мусора?

А потом стало по-настоящему страшно. А машина? Он ведь видел её секунду, не больше, вверх ногами, сквозь красное мигание визора, за миг до удара. Если рисунок оказался фальшивкой, то и машина могла ему померещиться. Какой-нибудь покорёженный луноход или сплющенный грузовой робот с помятой солнечной панелью, а перепуганный мозг, бьющийся в этой центрифуге, просто дорисовал знакомый силуэт. И вмятину дорисовал — уж её-то Алан помнил лучше всего.

Нет. Про отцовский универсал Вадиму говорить нельзя. Он и так смотрит как на сумасшедшего. Скажи ему, что видел на виртуальной свалке земную машину, да ещё вполне определённую, и прямая дорога в медблок с подозрением на сотрясение и галлюцинации. А со свалки его после такого уберут насовсем, и проверить уже не получится.

— Понял, — тихо сказал Алан, опуская взгляд. — Обознался.

Вадим вздохнул, собираясь. Он поднялся на ноги и посмотрел на Алана сверху вниз.

— Ладно. Скажи спасибо, что система выкинула тебя из-за критического урона аватару до того, как твой код полностью слился с этой горой. А то пришлось бы тебя выковыривать: ты же не смог бы нажать на кнопку обруча сам. Но всё равно выглядишь ты паршиво: нейроны перегружены.

Вадим протянул руку и рывком поставил его на ноги. Алана тут же повело. Безопасник едва успел перехватить его за плечо и сразу безапелляционно заявил:

— Так. Ясно. Давай провожу.

— Не надо, я сам, — Алан упрямо дёрнул плечом, высвобождаясь. — Нормально всё, дойду.

Спорить Вадим не стал, только смерил его долгим взглядом.

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

— А вещи? У меня там рюкзак...

— Завтра. Это жёсткий медицинский протокол после нейро-выброса, не я его придумал: мозгу нужна перезагрузка — отлежаться минимум два часа в полной темноте, иначе утром от адской мигрени вообще не встанешь. Усвоил?

Алан вяло угукнул. В затылке тупо пульсировало, пол под ногами всё ещё слегка плавал. Качать права сейчас было бы откровенной глупостью — да и просто закрыть глаза в темноте хотелось больше всего на свете.

Выдернув ключ-карту из слота, он медленно побрёл по пустому коридору к своей «берлоге». Приходилось держаться ладонью за прохладную стену и стараться лишний раз не вертеть головой. Именно сейчас, сквозь эту пульсацию в затылке, в мозг почему-то ввинтилась совершенно дурацкая мысль.

К экзамену по тест-дизайну он так и не подготовился.

Проблемы дресс-кода

Разбудил Алана настойчивый стук в дверь. В комнате было ещё темно — система освещения держала ночной режим, и Алан даже сначала не понял, в какой стороне стук и что ему с ним делать.

Он сел на койке и осторожно прислушался к себе. Ну так, "на троечку": стоило повернуть голову, как перед глазами поплыло и к горлу подкатила лёгкая тошнота. Но ватная муть, которая грозила обернуться убойной мигренью, и правда ушла. Вадим был прав: два часа в темноте сделали своё дело.

Стук повторился.

— Алан, ты у себя? — раздался из-за двери приглушённый голос Михалыча.

А что, уже пять часов вечера?

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

На пороге стояли Михалыч и Серёга, у Серёги в руках моток витой пары и тестер. Оба посмотрели на Алана и, не сговариваясь, хохотнули.

— Опа. Дрыхнешь, курсант? Спишь, а учёба идёт? — добродушно поинтересовался Серёга. — Ну и видок у тебя, конечно.

Алан опустил взгляд и проснулся окончательно. Он же стоит в ярко освещённом дверном проёме в одних плавках, перед двумя работягами! Комбинезон он стянул, едва переступив порог, швырнул на стул и рухнул спать в чём был.

— Да я... это... — Алан попытался было отпрянуть от двери, но резкое движение вызвало внезапную боль в голове. — У меня аварийный выброс из симуляции был. Нейро-перегрузка. Дошёл в комбезе, скинул его и просто вырубился.

Улыбка тут же сошла с лица Серёги, а Михалыч с пониманием поцокал языком.

— А-а, выброс, — сочувственно проворчал седой мастер. — Знаем, штука пакостная, мозги потом как в тумане. Ты как вообще? Если оклемался и на ногах стоишь, заходи к нам в блок. Дело к тебе есть, аккурат по твоему профилю. А мы тебе чаю нальём с сахаром — как новенький будешь.

— Понял. Только мне до раздевалки сбегать надо, мои нормальные вещи там остались, — Алан поёжился от гуляющего по коридору сквозняка. — Буду у вас минут через пятнадцать.

Мужики кивнули и зашагали по коридору, а Алан наспех влез обратно в холодный комбинезон и, даже не застёгивая его, побрёл в сторону раздевалки.

В коридоре было пусто и тихо, лампы уже перешли на вечерний режим и горели вполсилы. Расстёгнутый комбинезон так и норовил сползти с плеч, и Алан то и дело ловил его и натягивал обратно. Даже собрался было застегнуть, но тут же передумал: всё равно сейчас придёт, и опять расстёгивать. Всю дорогу он гадал, что это за «дело по профилю» нашлось у двух инженеров к стажёру, который ещё недавно и слова «тестирование» толком не знал, и почему ради него непременно надо было будить.

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

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

Серёга оторвался от ковыряния в клеммах одного из блоков, стоящих во встроенном шкафу, и смерил подошедшего подростка весёлым взглядом.

— Слышь, курсант. Я вот смотрю на тебя и думаю: у тебя вообще другие вещи есть?

— В смысле? — не понял Алан.

— Да в прямом. Ты в этой футболке гоняешь с того дня, как мы тут стены ломать начали, — усмехнулся техник. — На ней вон пятна скоро свою отдельную цивилизацию образуют и потребуют независимости от корпорации.

Алан улыбнулся. Вдаваться в подробности своего внезапного переезда на секретную базу без единого чемодана совершенно не хотелось.

— Нормальные вещи. Мне что, на стройку во всем новом нужно приходить? — весело сказал он. — Вы чего звали-то?

Михалыч пододвинул ему надтреснутую кружку, над которой поднимался дымок.

— Садись вот чай пить. Да и дело-то у нас плёвое, но без тебя никак. Мы тут контур авторизации пересобрали. Нам прислали обновлённый модуль, «улучшенная версия», специально для нового блока ВР-комнат. Надо прогнать систему через профиль реального курсанта, а то у нас с Серёгой только админские допуски.

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

— А как вы раньше проверяли доступы? — Спросил он, доставая ключ-карту.

— Мы? — Переспросил Серёга. — Да никак, спецов по тестированию звали. Да только это всегда днём было, а тут мы работаем в авральном режиме, нет уже никого.

Алан тем временем подошёл к терминалу и приложил запястье со смарт-браслетом к считывателю. Терминал никак не отреагировал.

Алан постучал пальцем по экранчику браслета, но тот не включился, нажатие на единственную кнопку сбоку тоже ничего не дало.

— Так он у тебя разрядился, курсант. Ну ты даёшь. А завтра ты как на занятия собирался идти? — Серёга уже копался у себя в рюкзаке. — Вот, держи зарядник.

И он включил маленький USB-хаб в валяющийся на полу удлинитель. Алан снял браслет и повертел: а как его заряжать-то? Но быстро заметил на обратной стороне браслета нужный разъём. Он просто сложил браслет пополам и воткнул его в серёгин разветвитель. Экранчик браслета тут же зажёгся, и Алан поднёс его к терминалу вместе с удлинителем.

Терминал коротко пискнул, на экране загорелась зелёная строчка, информирующая об успешной авторизации курсанта Алана Климова с базовым уровнем допуска. Серёга кивнул и сделал какую-то пометку в своём громоздком техническом планшете.

— Отлично, система браслет видит. Теперь давай свою флешку: посмотрим, как это хвалёное «обновление» работает.

Алан поморгал, пытаясь осознать, какую такую флешку требует Серёга, но быстро сообразил и вставил в слот свою чёрную ключ-карту — это же накопитель информации в том числе.

Система карту приняла, Серёга одобрительно угукнул и отметил этот пункт в планшете, но Алана уже настиг тот самый вопрос: «а что, если?», про который Окулус буквально прожужжал ему все уши: нужно же протестировать, как система отреагирует на «не тот» допуск, и Алан выудил из кармана джинсов карту Юли.

— Мужики, погодите, а давайте проверим негативный сценарий: что будет, если я подсуну системе чужую карту?

— Что-что? Да ошибку профиля выдаст, — уверенно отозвался Серёга, — тут же «улучшенный» код, защита от подмены, но давай, суй, раз уж есть такая возможность.

Алан чуть помедлил, ведь это всё-таки Юлина вещь, а вдруг аппарат заклинит, но потом всё-таки вставил её в слот и приготовился ждать: терминал же должен хоть немного подумать, прежде чем выдать отказ.

Но аппарат только тихо щёлкнул, и никакой ошибки: на экране загорелась яркая надпись «Авторизация успешна. Доступ к носителю разрешён», а затем открылась директория с той самой папкой статей по криптографии, и пару секунд было слышно только, как гудят блоки в нишах.

— Эй! — искренне возмутился Алан. — Да меня утром в распределительном хабе система за такое чуть ли не арестовала, а ваш «улучшенный» терминал взял и пустил!

Серёга озадаченно хмыкнул, подтащил ноутбук и воткнул шнур в порт.

— Так-так, глянем логи... Вот, вижу: запрос авторизации. Браслет: ID подтверждён, Алан Климов. Физический носитель: ID подтверждён... — Серёга вдруг замолчал и округлил глаза. — Юлианна Климова.

Михалыч, который как раз собирался сделать глоток чая, тоже замер.

— Климова? — переспросил седой мастер. — Погоди-ка. Юлианна Климова? Та самая, с «Константы»?

Мужики одновременно подняли взгляд на Алана.

— Ну да, — Алан кивнул. — Это моя сестра.

— Да ладно! — Серёга хлопнул себя по коленям, глядя на Алана как-то иначе, с интересом. — Так мы ж её знаем! Она здесь училась, лучшая на курсе была, боевая девчонка. Михалыч ей на третьем году обучения помогал разъёмы на личном планшете перепаивать.

— Обалдеть, — Михалыч с тёплой улыбкой посмотрел на Алана. — Ну, теперь ясно, в кого ты такой смышлёный.

И Михалыч стал рассказывать про то, как им привезли новые нейроинтерфейсы. Ну, они пошли с Серёгой за их штатным айтишником Володькой — на все цифровые интерфейсы мастером, а тот в отпуске оказался. Вместо него зато обнаружилась какая-то дежурная курсантка. Но и у той технический планшет барахлил, пришлось чинить. А она им после интерфейсы за пять минут настроила: сказала, что у неё такой в прошлом году был.

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

— Раз уж мы об этом заговорили... А что там вообще с «Константой», ты не в курсе? У нас же тут, на низах, начальство ничего не докладывает, одни слухи по коридорам бродят.

Алан покрутил в руках белую карточку. Он и так уже влез во все мыслимые и немыслимые проблемы. Не выдаст ли он какую-нибудь очередную эсбэшную тайну, если расскажет то, что им с Вадимом удалось узнать? И всё же он решил довериться: мужики тоже посвятили его в свою тайну, нечестно теперь замалчивать свою. Он вдохнул и произнёс:

— Связи с кораблём нет. Вообще.

— Да это мы и без тебя поняли, — отмахнулся Михалыч. — У нас связисты в соседнем секторе которую неделю на ушах стоят, кофе литрами глушат да ругаются. Знакомый мой оттуда шепнул, что отрубился не только сам корабль. Замолчала вышка ретранслятора, которую они на поверхности планеты должны были развернуть. Ну целью миссии которая была.

— А ещё же по базе такой слушок прошёл, — Серёга наклонился вперёд, опершись локтями о колени. — Что типа космонавты там какую-то форму жизни обнаружили: бактерии, плесень, или что там ещё покрупнее. Из-за этого и графики сдвинули, потому что они задержались на орбите для исследований. А теперь вот — видишь: вообще ни звука. Я, конечно, фантастику уважаю, но думаю, что странно это всё, слишком уж всё засекречено. А вдруг к ним какая-нибудь местная тварь на борт пробралась, в вентиляцию залезла и провода перегрызла? Как в «Чужом» было, например. Михалыч, не пихайся, ты что?

Михалыч и правда уже несколько раз толкнул его локтем, кивая на Алана, но тот все равно не заметил, погружённый в свои мысли.

Он уже и сам успел прокрутить в мыслях множество версий и причин обрыва связи: они сами лезли в голову всякий раз, когда Алан оставался один и сидел без дела, они возвращались наяву и во сне. И хотя версия с ксеноморфами звучала как бред, но и её он со счетов не списывал.

— Да ну, какие «Чужие», — Алан нервно улыбнулся и запихнул обе карты обратно в карман. — Я слышал, что там у них каскадные неполадки в системах. Собственно, я поэтому и здесь. Помогаю найти причину, разобраться, что именно сломалось.

— Каскадные? — Серёга аж подпрыгнул. — О-о-о, брат, так это ж классика! И это как раз подтверждает теорию. Допустим, инопланетная тварь сначала перегрызает кабель связи, потом лезет в вентиляцию и замыкает климат-контроль, оттуда коротит генератор — вот тебе и каскадные неполадки! Всё совершенно логично.

— Тьфу на тебя, дурак, нашёл о чём поболтать при парне, — Михалыч отвесил напарнику лёгкий подзатыльник.

Алан задумался: а что, если космонавты и правда не знают о том, что у них на борту инопланетная жизнь? Они же в анабиозе и ждут, что их тут спасут! А их спасатели ни на шаг не ближе к цели.

— Вон оно что, — многозначительно протянул Михалыч, заметивший, как Алан ушёл в свои мысли и переменился в лице. — Значит, ты не просто так тут штаны просиживаешь. Ну, дело серьёзное. У вас же вся семья, поди, айтишники, вот ты и нахватался, значит. А говорил, не блатной.

— Да не, я-то у нас в семье самый обычный, — отмахнулся Алан. — Но ошибки находить немного научился. Вот как сейчас, например.

Он выразительно ткнул пальцем в зелёную надпись на экране терминала, радуясь возможности сменить тему.

— «Улучшенный» код, говорите? Он проверил, что браслет настоящий и карта реальная. А то, что они от разных людей — ему по барабану! Он идентификатор пользователя вообще не сверяет! Нифига себе «обновление». У нас тут вообще-то критическая дыра в безопасности.

Серёга раздражённо забарабанил пальцами по панели ноутбука.

— Ну, хоть что-то у нас в безопасности, — мрачно пошутил он. — Ладно, не мы этот код писали, не нам его и чинить. Его из центрального отдела софта прислали как «стабильный релиз». Видишь, как они там «наулучшали».

— И вы так это и оставите? — удивился Алан.

— Мы? Конечно, — Михалыч развёл руками. — Мы инженеры, а не программисты, а ты этот баг запиши в отчёт, оформи по науке, как тебя там учат. Мы это в трекер багов и закинем, но чинить его прямо сейчас никто не побежит.

— Почему?! Это же уязвимость!

— Потому что это «редкий кейс». — Серёга усмехнулся и загнул палец. — Сам подумай: у кого на базе сразу две карты в кармане? Только у тебя вот. Вероятность, что кто-то их перепутает и залезет в закрытую пока ещё комнату с чужим носителем, крошечная. — Он загнул второй. — А вот то, что у нас комната не до конца подключена, хотя должна быть готова ещё вчера, как обычно, — это вот проблема. Так что расставляем приоритеты, а как иначе?

Алан криво улыбнулся, допивая чай. Что ж, добро пожаловать в реальную жизнь: баг-то ты нашёл, но поправят его «как-нибудь потом», эх.

До самого вечера так и провозились, спокойно, почти лениво. Мужики колдовали над проводкой и перепаивали нерабочие контакты, а Алана к своему делу не подпускали. Стоило ему только потянуться за отвёрткой или сунуться помочь с толстым кабелем под фальшполом, как Михалыч тут же осаживал: «Сиди, студент, чай пей. Печеньку вон возьми. Не хватало ещё, чтобы ты тут у нас в обморок рухнул после нейронной перегрузки. Отвечай ещё потом, откуда ты тут взялся». И, чтобы не скучно было, рассказывал всякие истории про своих внучек: как они ему однажды набор отвёрток покрасили лаком с блёстками, потому что «так гламурнее», и как постирали его белые футболки вместе со своими розовыми.

В итоге Алан работал исключительно «живым ключом». Мужики то и дело просили его подойти к терминалу и повторить авторизацию, чтобы проверить, как встаёт новое оборудование. Пару раз система попросту зависала, и Серёга ругался, лез переподключать шлейфы или сносил и ставил заново кривые драйверы контроллера, и Алан снова прикладывал браслет.

Во время очередной паузы, пока техники ждали перезагрузки локального сервера, Михалыч поинтересовался о том, что конкретно-то случилось сегодня с Аланом в виртуальной реальности, что его так жёстко выкинуло? Он же под присмотром должен быть все время. Алан, которому и самому хотелось выговориться, вкратце рассказал, как его угораздило залететь в старый модуль, как там взбесилась гравитация, и как эту консервную банку вместе с ним начало засасывать на колоссальную свалку металлолома.

— Там эта Магнитная гора, — закончил он. — Она притягивает скафандры намертво. Вы случайно не знаете, как можно на неё попасть и не прилипнуть? Ну, может, есть какая-то лазейка в настройках или как-то ещё можно обойти притяжение?

Серёга озадаченно почесал затылок и переглянулся с Михалычем.

По этому взгляду Алан сразу понял, что обратился не по адресу. Так и вышло: мужики в два голоса объяснили, что они спецы по железу, по кабелям да по вентиляции, а что там программеры в своей песочнице с физикой накрутили — это для них тёмный лес. Вот Володька, айтишник из их команды, тот бы эту гору в два счёта надурил, он такие дыры в коде находил, закачаешься, только Володька теперь дома сидит, у него проблемы в семье, взял бессрочный отпуск и, может, вовсе на пенсию уйдёт, так что разбираться Алану придётся самому.

А дальше просто мужики собирали инструменты, Серёга гремел ящиками и насвистывал что-то фальшивое, а Алан сидел на пустом серверном ящике, подперев щёку рукой, и совсем поник, так что Михалыч, наматывая толстый оранжевый удлинитель на локоть, покосился на него раз, другой и не выдержал:

— Ты чего это скис, курсант? Серёга у нас балда, фантастики пересмотрел, вот ерунду какую-то и мелет. Разберутся там с вашими неполадками, починят связь. Ты вон сегодня сам какой хитрый баг отловил, глядишь, и тут разберёшься.

Алан потёр ладонями виски.

— Да как будто мне мало было проблем! — Он поморщился. — У меня завтра первый серьёзный экзамен у Окулуса, по тест-дизайну, а я из-за этого утреннего выброса так теорию и не повторил, и все эти классы эквивалентности, граничные значения вроде простые, но сейчас в голове полная каша, и завтра меня этот робот на винтики разберёт.

Мужики снова переглянулись и дружно, от души расхохотались, а Серёга присел на ящик напротив Алана:

— Граничные значения? Слушай сюда, теоретик, ИИ-робот твой, конечно, умный пылесос, но рассказывает всё слишком сухо, так что байку слушай.

— Года три назад привезли нам партию новых скафандров для работы в открытом космосе, а там стояла хитрая умная система подогрева, и в техпаспорте было написано, что ТЭНы включаются автоматически, если температура за бортом опускается ниже минус тридцати. Ну, эти твои гении с планшетами их и протестировали: засунули скафандр в криокамеру, дали минус двадцать, подогрев молчит, дали минус сорок, подогрев бодро греет, всё супер, акты подписали и выдали космонавтам, — тут он сделал театральную паузу, — и вот выходят ребята на тренировку, температура падает, падает и замирает на отметке ровно минус тридцать ноль-ноль. И знаешь, что произошло?

— Что? — Алан подался вперёд.

— Скафандр чуть не поджарил курсанта заживо! — радостно возвестил Серёга. — Программист-то, гений, написал: меньше минус тридцати — включай, больше — выключай, а про ровно минус тридцать забыл, и вот система получает с датчика эту цифру и не может решить, что ей делать, логика зависает в бесконечном цикле, и программа начинает щёлкать реле включения-выключения сто раз в секунду, щёлк-щёлк...

— Двести, — не отрываясь от удлинителя, поправил Михалыч.

— Да хоть тыщу! Щёлкало, пока контакты не расплавились и не замкнули ТЭНы на максимальную мощность. Парня еле из скафандра вытряхнули, красный был как рак. Так что самая мерзкая подлянка, студент, всегда живёт на стыке.

* * *

Алан лежал на жёсткой армейской койке, уставившись в еле различимый в темноте потолок. Сон не шёл. Где-то над головой мерно гудела вентиляция, иногда в ней что-то постукивало, и Алан всякий раз вздрагивал, а стоило закрыть глаза, как мозг тут же подкидывал самую мрачную картину, навеянную вечерними разговорами инженеров.

Где-то бесконечно далеко летит сквозь ледяную пустоту ослепшая «Константа», а в ней Юля и весь экипаж лежат в криокапсулах, скованные глубоким анабиозом, и ждут спасения. А вдруг шутки техников были вовсе не шутками и на той далёкой планете на борт действительно пробралась какая-то инопланетная тварь, и пока космонавты спят и ничего не подозревают, она пролезла в вентиляцию, перегрызла кабели связи, вывела из строя телеметрию и теперь медленно, хаотично ломает корабль изнутри... Алан натянул одеяло до самого подбородка, хотя в казарме было совсем не холодно.

Он с силой потёр лицо ладонями, перевернулся на другой бок, потом обратно и случайно коснулся рукой холодного корпуса смартфона под подушкой — и замер. Телефон! Утром он проверял его каждые пять минут, гипнотизируя пустой экран, а потом завертелось: виртуальная реальность, Окулус со своими чек-листами, обед, катастрофическая вылазка с Вадимом, вечером — инженеры... Ему весь день было настолько не до того, что он напрочь забыл о своём сообщении!

Он лихорадочно вытащил аппарат и сощурился от яркого экрана: в шторке уведомлений и правда висел значок приложения APRS, а сообщение пришло давно.

Он ткнул в «Принять» так поспешно, что с первого раза промахнулся. Матово-чёрный курсантский браслет на запястье издал тихий электронный скрип, дешифруя радиосигнал, и на экране развернулся текст.

«Привет. Рады, что нашёлся. Но нам нужно убедиться, что это ты. Напиши: кто пришёл на встречу у водонапорной башни первым после тебя? И что этот человек сделал? М.»

Алан перечитал короткие строчки дважды и всё равно ничего не понял: какое ещё «М»? Макс, что ли? Он так отчаянно ждал, что Костя напишет ему сам, а тут — какая-то проверка.

Он нахмурился, пытаясь вспомнить, и вдруг усмехнулся в темноте: ну конечно, старая водонапорная башня! Майя была уверена, что ужасно опоздала, и поэтому влетела во двор башни так, словно за ней гнались собаки. Она не заметила торчащий из земли камень, споткнулась и на полном ходу протаранила Алана. Они тогда оба нелепо замахали руками, исполнив странный танец, и чудом удержались на ногах, чуть не рухнув в степную пыль. И как раз в этот самый момент из кустов выходил Костя. Увидев их кульбиты, он просто согнулся пополам от смеха.

Алан задумался. А ведь проверка и правда отличная. Безопасники Корпорации могли вытрясти из его телефона что угодно, но такую мелкую, личную деталь они не могли ни узнать, ни подделать. Да и Майя, кстати, тогда оказалась первой, кто пришёл после них самих, а значит, этого больше никто не видел. М — Майя.

Он быстро застучал пальцами по сенсорной клавиатуре: «Это была ты. Костя тогда как раз из кустов выходил и поржал над нами. Ты думала, что опоздала, бежала, споткнулась о камень и влетела прямо в меня. Тест пройден? Почему Костя не отвечает сам?»

Он нажал «отправить». Браслет снова тихо пискнул. Ответ пришёл через пару минут.

«Пройден. Костя отказался писать. Он жутко злится. Считает, что ты нас просто использовал как прикрытие, а сам кинул в степи и ушёл по своим делам.»

Алана будто под дых ударили, и это было хуже, чем экстренный вылет из Нейросферы. Они ведь с Костей дружили много лет, ещё с младших классов, и только последний год совсем не виделись, потому что Костя с мамой переехали на Аркаим, а теперь всё выглядело так, будто Алан его цинично предал, и от стыда хотелось залезть под одеяло с головой. Он стиснул зубы и уже начал набирать оправдания — «Майя, я не…» — но телефон завибрировал снова.

«Но ты-то как?! Что там происходит? Тебя не держат взаперти? Мы тут с ума сходили, пока ты молчал. Тебе нужна какая-то помощь?»

Алан перечитал сообщение ещё раз и хмыкнул: ну вот, это уже точно Майя, никакая не «М». Взаперти, помощь... Она что, все эти две недели представляла, как его морят голодом в корпоративных подвалах? Ничего себе у неё фантазия!

И мрачные мысли об инопланетных монстрах, которые душили его весь вечер, куда-то отступили, потому что кто-то там, за высоким забором космодрома, сидел глубокой ночью с телефоном, искренне за него боялся и предлагал помощь.

Алан начал печатать так быстро, что автозамена дважды исправила «Майя» на «майка» и пришлось стирать: «Майя, спасибо, что пишешь. Не переживай, я не взаперти, все нормально. Меня даже официально оформили курсантом Академии. Днём учусь, по вечерам с железяками вожусь. Кормят тут, кстати, отлично, даже пончики дают. Передай Косте: мне очень жаль, что пришлось так поступить. Мы же с ним столько лет дружим. Я не сказал правду раньше только потому, что не хотел его подставлять — это было слишком опасно. Я все-все ему расскажу при встрече, обещаю. Пусть только дождется.»

Ответ заставил себя ждать чуть дольше.

«Оформили курсантом? Тебе же нет восемнадцати, как это вообще возможно? Ладно, передам ему все завтра в школе, попробую переубедить. Главное, что ты сыт и цел. Будь там осторожнее. Спокойной ночи.»

Алан улыбнулся и набрал последнее сообщение: «Спокойной. И спасибо ещё раз.»

Он заблокировал экран. Тусклый свет в комнате погас.

Алан отложил телефон обратно под подушку и лёг на спину. В груди было легко и удивительно спокойно. Обычная, короткая переписка сработала как тёплое прикосновение, прочно привязав его обратно к нормальной, человеческой реальности. Костя злится, но Майя на его стороне, и друг обязательно все поймёт, когда узнает правду. Но сейчас нельзя ничего говорить — Костя может нечаянно сболтнуть что-то своему дяде, а Вадим и так негодует из-за этой неудачной сегодняшней вылазки.

Он закрыл глаза. Вентиляция всё так же гудела над головой, но теперь это был просто звук, никакие жуткие мысли в голову больше не лезли, и Алан уснул быстро и глубоко, даже не заметив как.

Сосисочная криптография

Следующим утром Алан шагнул на матрицу из пружинящих сфер, чувствуя, как мелко, противно дрожат кончики пальцев. Он глубоко вдохнул, стараясь унять разбушевавшийся пульс, и надвинул на голову нейро-обруч.

Мир привычно рассыпался на пиксели, только на этот раз плавно, и небесная лаборатория распределительного хаба собралась вокруг него без резких вспышек, от которых обычно рябило в глазах.

Окулус-2 был уже здесь. Но сферический дрон не носился кругами под потолком, не жужжал на повышенных оборотах кулерами и не сыпал с порога едкими комментариями. Он беззвучно парил ровно на уровне глаз Алана, а его объектив, обычно светившийся пронзительно-синим, сейчас мерцал мягким, приглушённым оранжевым светом, словно ночник.

— Доброе утро, стажёр, — голос Окулуса звучал тише обычного, без привычных металлических ноток. — Твой нейронный фон дрожит, как перегруженный сервер. Логи вчерашнего аварийного обрыва сессии я видел. Учитывая твоё нестабильное состояние, я временно отключил генерацию сложных трёхмерных голограмм и убрал таймеры с большинства вопросов. Сегодня работаем в стерильной среде, чтобы тебя не стошнило от перегрузки интерфейса.

Алан благодарно кивнул. Сама мысль о том, что при решении задач над головой не будут постоянно висеть тикающие красные цифры, сразу сняла половину напряжения. Окулус мигнул оранжевой линзой, и пространство вокруг потемнело, превратившись в уютный графитовый кабинет с одним-единственным широким полупрозрачным экраном и красивым рабочим креслом с подставкой-клавиатурой. Алан сел в кресло, и клавиатура с экраном автоматически зафиксировались в удобном положении.

— Ой, да ладно, — пробормотал Алан, когда Окулус вывалил над экраном ворох терминов «свыше», «не более», «от» и велел раскидать их по границам, и, пока пальцы сами тыкали наугад, успел ещё пожаловаться дрону, что математику-то он всегда щёлкал на раз, а вот эти словечки будто нарочно придумали аналитики, чтобы мучить честных людей, — и тут же словил мерзкий зуммер и две красные рамки: его решения были неправильными.

Окулус молчал, только его линза иногда помигивала, но Алана это полностью устраивало, он уже бубнил себе под нос пример про грузовой лифт, где написано «максимум 5 человек», и пятый ещё влезает, а шестой идёт пешком, и что так, оказывается, решать гораздо легче, а Окулус в конце только меланхолично заметил, что на этой формулировке часто сыплются даже бывалые инженеры.

А потом выскочило финальное задание, практическое, и в углу всё-таки загорелся красный таймер, потому что тестировщик, по словам Окулуса, должен уметь действовать быстро, даже если ему трудно думать: эмулятор кислородного генератора, который включает тревогу, если мощность превышает 80%, надо ввести тестовые данные. Четырнадцать, тринадцать... — и Алан застыл, бормоча, что «превышает 80» — это 80 уже тревога или ещё нет, он же полчаса назад на этом споткнулся, десять, девять, думай, превышает — значит, 80 ещё норма, а ошибка — это 81!

Трясущимися руками он напечатал val_1 = 79, val_2 = 80, val_3 = 81; на таймере горела двойка, когда он с силой впечатал палец в кнопку «Отправить». В чёрном окне вспыхнул зелёный текст: «Компиляция успешна. Система протестирована корректно».

— Что ж, ты справился, — Окулус плавно качнулся в воздухе. — Я бы похлопал тебе по плечу, стажёр, если бы разработчики предусмотрели для моего корпуса плечевой сустав.

Алан откинулся на спинку кресла, закрыл глаза и, пока руки ещё мелко тряслись, всё повторял про себя: сдал, сдал, на последней секунде, но сдал, — а потом вытер лоб рукавом комбинезона и сказал «спасибо», на что Окулус только моргнул объективом, возвращая себе привычный ярко-синий цвет, велел оставить эмоции для алгоритмов шифрования и снова заметался по комнате, потому что собирался показать ему эту их крипто-магию в действии.

Дрон вывел в центр комнаты одинокую голографическую папку, которая мерно пульсировала, и радость Алана понемногу сменилась сосредоточенностью: учебные задачки закончились, впереди была настоящая работа.

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

— Это и есть алгоритм твоего отца в действии, — произнёс Окулус, подлетая ближе к голограмме. — Я собрал этот прототип по формулам из его статей.

Дрон выпустил из корпуса тонкий световой луч, как указку, и провёл им вдоль одной из самых высоких, ярких линий на графике.

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

— И в чем тогда проблема? — Алан нахмурился, вглядываясь в линии. — Я же говорил: берёшь датчик, вспоминаешь, как тебе подарили конструктор, и замок открывается.

— Если бы всё было так просто, эту систему взломали бы правительственные аналитики за пару дней, — Окулус раздражённо зажужжал кулером. — Обычный биометрический слепок — это статика, набор цифр пульса и давления, а этот шифр динамический.

Дрон снова провёл лучом по графику, но на этот раз захватил область до высокого пика и сразу после него.

— Смотри на контекст. Алгоритм читает не только саму «вспышку» радости, но и «хвосты» — что было за секунду до воспоминания и что происходит в момент ввода пароля, потому что ищет химическую и нейронную чистоту.

Окулус развернул перед Аланом дополнительное окно, где побежали строчки сложного анализа.

— Представь, что тебя привязали к стулу, приставили к голове пистолет и сказали: «А ну-ка, вспоминай свой конструктор, иначе мы тебя пристрелим», — голос дрона стал серьёзным. — Ты попытаешься вспомнить. Ты вызовешь в голове образ конструктора. Пик радости появится. Но...

— Но я буду в ужасе до и после этого, — тихо закончил за него Алан. — И во время этого тоже.

— Именно! — удовлетворённо мигнул линзой Окулус. — В крови у тебя будет кортизол, пульс от паники станет рваным, и этот страх неизбежно просочится в «хвосты» осциллограммы, даже если ты будешь изо всех сил концентрироваться на конструкторе. Система проанализирует контекст, увидит «грязный» гормональный и нейронный фон, поймёт, что эмоция вызвана под принуждением — и архив останется закрытым.

Алан откинулся на спинку кресла.

— Ну да, я слышал о том, что эту защиту вообще никак нельзя взломать.

— Почти, — подтвердил дрон. — Если человек боится, алгоритм это увидит. Пытки, угрозы, шантаж — все это делает ключ недействительным. Но все ещё человека можно обмануть с помощью манипуляций чувствами и эмоциями. Правда, это сложнее, изящнее, чем грубые угрозы.

Алан вспомнил недавние слова Вадима. Федералы забрали родителей, чтобы получить через них доступ к шифрам. Но пока архив не найден, родители будут в безопасности — если им угрожать, то они не смогут расшифровать файлы.

— И есть ещё одно следствие из этого правила, — прервал его мысли Окулус. — Эта защита работает в обе стороны. Нельзя открыть архив под принуждением. Но и создать ключ для архива нельзя из любого случайного воспоминания.

— В смысле?

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

Алан задумчиво посмотрел на пульсирующую голограмму папки.

— И мы сейчас попробуем такой слепок создать?

— Не попробуем, а создадим, — Окулус-2 решительно завис перед экраном. — У нас есть прототип шифратора и твой нейро-обруч, который снимает показания прямо сейчас. Давай тестировать.

— Давай возьмём что-то свежее, — предложил Окулус. — Буквально десять минут назад ты испытывал мощнейший всплеск эндорфинов, когда прошёл мой экзамен. Я выгрузил этот лог из данных твоего нейро-обруча.

Алан даже удивился, что у Окулуса есть доступ к таким данным. Интересно, а что ещё он может?

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

— Готово. Файл зашифрован твоим триумфом, — возвестил инструктор. — А теперь попробуем взломать его в лоб. Мы просто возьмём этот же самый файл с логом эмоции и подадим его на вход дешифратора.

Окулус развернул системное окно и запустил процесс, Алан с интересом смотрел, как система считывает предложенный ключ, и тут резкий, зуммерный писк разорвал тишину, а папка вспыхнула агрессивным красным: «ДОСТУП ЗАПРЕЩЁН».

— Эй, в смысле?! — возмутился Алан. — Это же тот самый файл, он совпадает байт в байт!

Окулус завис на месте, раздражённо щёлкнув диафрагмой объектива. По голограмме побежали столбцы системного анализа.

— В том-то и проблема, что совпадает, — сухо констатировал инструктор. — Байт в байт. Алгоритм блокирует идентичные совпадения, чтобы нельзя было их просто «списать». Он видит стопроцентное совпадение и классифицирует это как попытку подстановки данных — «replay attack». Живая нервная система физически не может воспроизвести воспоминание с математической точностью до тысячных долей процента. Всегда будут микроскопические погрешности. Программный обход закрыт. Тебе придётся делать это самому, вживую. Вспоминай.

Алан закрыл глаза. Вызвать в памяти эмоцию, которая была всего десять минут назад, казалось плёвым делом. Он ярко представил чёрное окно эмулятора, тикающие красные цифры «2 секунды» и спасительную зелёную надпись «Компиляция успешна». В груди снова шевельнулась горячая радость...

Писк! Папка снова полыхнула красным.

— Да что опять не так?! — Алан распахнул глаза. — Я вспомнил все в точности! Я радовался!

— Радовался он, — проворчал Окулус, выводя на экран график текущего состояния Алана и накладывая его на оригинал. — Посмотри сюда.

Луч дрона ткнул в самое начало осциллограммы, прямо перед высоким пиком радости. Там график мелко, но очень часто дрожал.

— Я упустил из виду контекст. Твой триумф, как оказалось, был с примесью паники. Ты так боялся завалить тест, что кортизол пропитал всю твою радость насквозь. Для алгоритма это грязный, нестабильный фон. Система решила, что ты пытаешься сымитировать радость, а на самом деле находишься в экстремальной ситуации.

— Ну так давай просто вырежем этот кусок страха из оригинального файла! — предложил Алан. — Сгладим углы, добавим программно лёгкую погрешность, чтобы не было стопроцентного совпадения, и скормим системе!

— Это криптография высшего порядка, а не лепка из пластилина, — философски заметил Окулус. — Но ради эксперимента так и быть, попробуем.

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

— Поразительно, шифратор обнаружил склейку: видит, что эмоциональный ряд неестественный, что в него вмешивались. Математическая логика просто безупречна. Надо же было написать такую параноидальную архитектуру, которая требует абсолютной чистоты эмоции, но при этом и не точно стопроцентной...

Алан виновато пожал плечами:

— Ну, какая есть.

— Ясно. Амбиции и победы слишком нестабильны для наших тестов, — проворчал Окулус, возвращаясь на уровень глаз Алана. — Нам нужно что-то примитивное, базовое, без всякого экзистенциального груза. Что ты делал перед сессией?

— Завтракал, — сказал Алан. — Омлет, пара сосисок, чай.

— Превосходно, — линза дрона мигнула. Он снова нырнул в логи браслета. — Извлекаю данные за восемь сорок утра. Скачок серотонина ровный, фон спокойный. Зашифровываю тестовый файл. Надеюсь, сосиски не вызывали у тебя панических атак и страха смерти?

— Разве что страх, что они быстро закончатся, — усмехнулся Алан.

— Тогда вспоминай, и вживую.

Алан снова расслабился в кресле и на этот раз не стал выдавливать из себя сложную, многогранную эмоцию победителя, а просто вспомнил запах горячей еды в столовой, как отрезал вилкой кусочек сочной сосиски и запил его глотком обжигающего сладкого чая, — простое, уютное чувство сытости, и всё.

Тинь!

Голограмма папки полыхнула зелёным и распахнулась. Внутри висел тот же самый тестовый документ.

Алан открыл глаза.

— Работает, — тихо и радостно сказал он.

— Великолепно, — Окулус разом схлопнул файл. — Эмоция непрерывная и без примесей стресса. Что ж, теперь механизм вскрытия замка нам понятен.

Алан перевёл взгляд с расшифрованного архива на робота. Идея, которая только что щёлкнула в голове, была очень-очень авантюрной, но напрашивалась сама собой.

Бесконечная рекурсия притяжения

— Слушай, Окулус... — Алан сполз чуть ниже в кресле, напуская на себя ленивый вид заскучавшего спеца. — А ты ведь наверняка в курсе про баг с Магнитной горой в неиндексированных секторах?

Дрон завис. Из динамиков вырвался странный короткий треск — как будто робот мстительно хихикнул.

— В курсе ли я? Я все уши админам прожужжал про этот архитектурный конфликт ещё до того, как они криво натянули новый физический движок поверх старых библиотек. Но кто вообще слушает инструкторов? В итоге они просто выкинули весь кластер на свалку и переписали модуль с нуля, а гору оставили болтаться в мусоре. Точнее, изначально она не была горой, это был прототип гипердвигателя, а мусор он на себя насобирал в процессе жизнедеятельности.

— Ну вот, — Алан включил режим послушного ученика, наклонившись вперёд. — Мы же тестировщики. Как мы можем спокойно сидеть тут, зная, что в симуляции висит такая дыра? То есть гора. Давай выйдем в неиндексированные данные вместе. Ты же наверняка можешь переключаться на зрение кода, найдём, где именно логика ломается. Это же такой крутой практический кейс!

Окулус-2 качнулся в воздухе, его линза задумчиво мерцала.

— Курсантам не положено соваться в мусорные сектора без кураторов из СБ. Да и гору сейчас используют для тренировок в условиях повышенной гравитации, она нужна.

— Окулус, я вчера там был именно с куратором из СБ! — горячо возразил Алан, всплеснув руками. — И знаешь что? Это вообще не помешало мне влететь в сломанную гравитацию и расплющиться об стену! А ты наверняка знаешь, как работает исходный код этой горы.

Вентиляторы дрона осуждающе зажужжали.

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

— Да всё супер, честно! — отмахнулся Алан.

Окулус слушал молча, только вентиляторы осуждающе жужжали, но Алана это полностью устраивало, потому что остановиться он уже не мог и выкладывал всё подряд: что голова уже совсем не болит и мозг у него пластичный, что руки дрожат вовсе не от выброса, а просто так, что на вершине горы ему показалось — там примагничена папина машина, и Юля могла оставить её как зацепку, а может, и нет, может, это кусок мусора, а машину он сам себе дорисовал, и что если он побежит с этим к Вадиму, а там пустышка, то Вадим его вообще за периметр учебки больше не выпустит, так что проверить надо по-тихому, вдвоём.

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

Объектив Окулуса заговорщицки мигнул синим.

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

Алан охотно кивнул.

* * *

Алан подошёл к двери шлюза и растерянно уставился на панель управления. В прошлые разы Вадим все делал сам, а теперь перед Аланом торчал целый ряд рычагов и вентилей. Он дёрнул один, покрутил другой — замигала красная лампа. Повозившись минут пять и едва не включив аварийную откачку кислорода, он все-таки нашёл нужную комбинацию. Переборка с гулким щелчком наконец-то поползла в сторону.

Окулус-2 ждал его снаружи, зависнув в цифровой пустоте.

— Ты там что, инструкцию по эксплуатации скафандра по слогам читал? — проворчал дрон по внутренней связи. — Мы так до следующего глобального обновления лететь будем. Двигай за мной.

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

Темно-синий универсал. Папина машина.

Она действительно была там, намертво примагниченная к самому пику, чуть помятая, но совершенно точно реальная. Он не ошибся!

— Видишь её? — с восторгом воскликнул Алан. — Машина! Я же говорил!

— Вижу кусок устаревшего транспортного полигона, — прагматично отозвался Окулус. — И кучу проблем под ним. Чтобы до него добраться, нам придётся провести тестирование методом «белого ящика».

— Какого ещё ящика? — Алан притормозил. — Как в «Поле Чудес» что ли?

— «Чёрный ящик» — это когда ты не видишь исходный код и тестируешь систему снаружи, как обычный пользователь, — пустился в объяснения дрон. — А «белый ящик» — это когда ты знаешь архитектуру программы, видишь её внутренности и тестируешь саму логику кода. Смотри.

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

Окулус вытянул тонкий световой луч-указатель и пронзил им толщу прозрачного мусора, подсветив массивный плазменный двигатель в самом центре горы. Рядом с ним прямо в воздухе развернулся полупрозрачный экран с ровными строками кода.

— Вот оно, ядро проблемы, — Окулус выделил несколько строчек на экране. — Старая физическая библиотека. Она написана так: как только в её зону действия попадает новый металлический объект, она просчитывает магнетизм, притягивает его, и цикл обнуляется. Ждёт следующего.

— И что не так? — Алан вчитался в подсвеченный текст.

— А то, что потом корпоративные умники накатили новый физический движок, — кулеры дрона раздражённо зажужжали. — Новый движок пытается сделать мир более динамичным и обновляет микро-координаты каждого объекта каждую миллисекунду. Понимаешь? Библиотека притянула железку, цикл обнулился. Новый движок сдвигает железку на тысячную долю миллиметра. Библиотека видит сдвиг и думает: «О, новый металлический объект!» — и снова плюсует мощность магнита. И так тысячу раз в секунду. Сила притяжения здесь выросла до чудовищных значений.

Алан заворожённо смотрел на экран. Переписать движок им явно не по силам. Но он же тестировщик. Его задача — найти обходной путь.

— Слушай, Окулус, — Алан медленно сжал и разжал кулак в перчатке скафандра. — А мы можем просто изменить условие?

— Какое именно?

— Ну вот тут написано: притягивать объект, если материал — металл. Металла тут навалом. А что если мы заменим переменную? Пусть этот двигатель притягивает только... ну не знаю... какой-нибудь редкий металл! Тут же нет, например, обогащённого урана на свалке?

Линза Окулуса замерла, а затем часто-часто замигала синим светом.

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

Окулус быстро добавил изменения на экран, сверившись с каким-то справочником, и нажал «Сохранить».

Сначала ничего не произошло. А затем гора... вздохнула: волна вибрации пронеслась по неиндексированной зоне, и магнитное поле обнулилось.

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

Многотонная куча металлолома начала медленно, с жутким скрежетом и стоном, разлетаться во все стороны: балки, спутники, куски обшивки поплыли наружу, как распускающийся стальной цветок, и Алан вскинул голову к вершине как раз вовремя, чтобы увидеть, как отцовский автомобиль, освободившись от хватки магнита, отделяется от горы и, медленно кувыркаясь, уплывает в чёрную бездну свалки.

— Нет! — заорал Алан, рванув контроллеры вперёд. — Стой! Машина улетает! Окулус, верни все назад!!!

Дрон отреагировал за миллисекунду. Он моментально откатил код к предыдущему состоянию.

БДЫЩ!

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

Алан, не обращая внимания на эту вакханалию, улыбался. Машина настоящая. И теперь он точно знал, как до неё добраться.

— План такой, — отдышавшись, произнёс Алан, глядя на прозрачную голограмму ядра. — Я лечу к машине. Как только окажусь вплотную, кричу тебе. Ты меняешь ту переменную с металлом на осмий ровно на пять секунд. Ни больше, ни меньше. Гора отпускает машину, я запрыгиваю в салон. Как только я внутри — возвращаешь все обратно, чтобы универсал не улетел.

— Звучит как отличный способ превратить курсанта в лепёшку, — проворчал Окулус, но его световой указатель завис в миллиметре от нужной строки кода. — Пять секунд. Если не успеешь — твои проблемы. Пошёл.

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

«Не смотри на машину, — повторял он сквозь зубы. — Не смотри, нельзя». Засмотришься на капот, вспомнишь папу — и привет, лазарет с мигренью после аварийного выброса, а потом ещё Вадим добьёт за самодеятельность.

Он уставился на ржавую балку правее универсала и считал вдохи: раз, два, раз, два. На очередном «два» магнитное поле вдруг резко рвануло, как будто гора устала ждать свою добычу.

Реакция подвела: скафандр дёрнуло вперёд и вниз, притяжение резко умножилось, и — ЛЯЗГ! — подошвы с оглушительным звоном припечатало к покорёженной обшивке старого спутника, впрессованного в гору, так что удар тупой болью отдался в коленях. Алан рванулся вверх, до хруста пластика в ладонях выжимая тягу, но куда там: магнитные захваты скафандра, вступившие в реакцию с безумной силой сломанного движка, держали намертво, будто ноги залили бетоном, и он оказался прикован к склону всего в двух метрах от водительской двери универсала.

— Окулус! Я прилип! — крикнул Алан, с ужасом глядя, как медленно прогибается металл под его ногами.

— Вижу! — отозвался дрон. — Готов?

— Давай! Пять секунд!

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

Универсал дрогнул и начал отрываться от поверхности.

«Один!» — отсчитал Алан, согнул колени, выжал тягу до предела и мощно оттолкнулся от гладкого бока спутника, и это был даже не полёт, а отчаянный прыжок за ускользающей машиной.

«Два!» Машина уплывала, поворачиваясь боком, и на «три!» Алан выбросил вперёд руки, вцепился в металл приоткрытой водительской двери и рванул её на себя, прокрутившись в невесомости.

«Четыре!» Он рыбкой нырнул в тёмный салон, больно ударившись плечом о рулевую колонку, и судорожно дёрнул ручку изнутри — дверь захлопнулась.

«Пять!» — и пространство снаружи взорвалось.

БДЫЩ!

Ужасающий металлический грохот ударил по ушам. Универсал с хрустом швырнуло обратно на вершину Магнитной горы, впечатывая в свалку. Алана вжало в водительское сиденье с такой силой, что из лёгких выбило весь воздух.

Магнитное поле вернулось. Но он-то уже был внутри.

Алан сидел, вцепившись в руль. Сквозь глухой шум встроенной в шлем связи он слышал только собственное сбитое дыхание. Забрало скрывало запахи, но они тут были и не нужны: глаза безошибочно узнавали каждую мелочь. Те же самые плотные тканевые чехлы на сиденьях, та же потёртая кожаная оплётка на руле, которую папа зашивал сам. Алан прекрасно помнил салон этой машины — отец пару раз вывозил его на пустую парковку почти что за городом и пытался учить водить. Получалось у Алана пока так себе: он вечно путал педали, резко бросал сцепление, и универсал дёргался и глох под папины ободряющие смешки.

Он поднял голову и посмотрел сквозь лобовое стекло.

— Ого... — только и смог произнести он.

Мир за стеклом преобразился: Магнитная гора и парящий вокруг мусор никуда не делись, но поверх них наложился новый слой, яркий и неоновый, а прямо перед капотом, уходя вглубь горы, выстроились высокие полупрозрачные баннеры — плотными рядами, как стены, и между ними светилась пустая дорога.

Алан присмотрелся к ближайшему баннеру и вздрогнул: на картинке был изображён он сам, только помладше, лет семи. Ковёр в его комнате (на полу, а не на стенах), вокруг детали разобранной на винтики радиоуправляемой машинки, а он с абсолютно счастливым видом тычет в камеру выдранным моторчиком. На следующем баннере ему было лет десять — чумазый, растрёпанный, он сосредоточенно пытался припаять оторванный контакт в старом дедушкином радио, которое потом ещё не раз чинил.

Эти кадры из его собственного детства вели куда-то в самую чащу мусора, сквозь нагромождение балок и плит, которые изнутри машины казались почти призрачными.

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

Алан начал поспешно осматривать приборную панель и заморгал от увиденного, не веря своим глазам: рядом с рычагом коробки передач появился ещё один, его точно не было в реальности, — из шлифованного алюминия, с двумя положениями: «Взлёт» и «Посадка». Алан перевёл взгляд на саму ручку коробки передач и радостно воскликнул. Автомат! И педали две. На их настоящей машине была механика, с которой он постоянно воевал, а здешняя симуляция, видимо, сжалилась над его водительскими навыками.

Надо же, этот старый отцовский универсал в симуляции оказался летающим автомобилем!

— Окулус! — скомандовал Алан. — Давай! Размагничивай гору, я взлетаю!

— Отключаю физику, — тут же отозвался робот, кажется, ничуть не удивившись. — Пошёл!

Низкочастотный гул горы оборвался. Алан потянул на себя алюминиевый рычаг «Взлёт» и вдавил педаль газа. Машина не взревела двигателем, а лишь мягко, басовито заурчала и мгновенно сорвалась с места. Универсал послушно и плавно взмыл над рассыпающейся кучей металлолома. Сияющая дорога поднялась вместе с ним, перестраивая маршрут.

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

— Я на месте! Врубай магнит обратно, пока там все не разлетелось! — крикнул он.

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

Спустя пару секунд сферический корпус Окулуса вынырнул из цифровой пыли, ловко влетел в открытое окно и опустился прямо на пассажирское сиденье.

Оказавшись внутри, дрон замер. Его синий объектив зажужжал, фокусируясь на светящихся стенах-баннерах, которые теперь стали видны и ему.

— Так вот, значит, как выглядит ранняя стадия развития инженера, — философски прожужжал Окулус, разглядывая голограмму, где семилетний Алан счастливо лыбится с выдранным моторчиком в руках. — Теперь понятно, откуда у тебя эта маниакальная тяга к деструктивной деятельности.

Алан рассмеялся, чувствуя, как отпускает бешеное напряжение последних минут.

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

Машина скользила сквозь светящийся туннель на удивление ровно, словно плыла по невидимому рельсу. Как вдруг, проезжая мимо одного из полупрозрачных фотобаннеров, Алан резко ударил по тормозам. Универсал плавно клюнул носом и замер.

Алан уставился на светящуюся фотографию, где он паял радио, а затем перевёл потрясённый взгляд за окно, вглядываясь в парящий вокруг мусор.

— Обалдеть... — пробормотал он. — Я только сейчас понял.

— Что именно? — Окулус повернул к нему линзу.

— Вчера я был здесь. Прямо на этом самом месте я бросал всякие штуковины в невидимую стену, пытаясь нащупать её габариты, — Алан ткнул пальцем прямо в светящийся баннер. — Вот этой стеной и был этот самый баннер! Снаружи он просто невидимый и непроницаемый! Вон, смотри, там вдалеке застрявший в текстурах огнетушитель, я его вчера тоже видел.

Убедившись в своей внезапной догадке, Алан покачал головой и снова нажал на газ.

Вскоре туннель из фотографий оборвался. Прямо по курсу в толще виртуальной скалы темнел вход в пещеру, на который указывала парящая голографическая стрелка. Перед зевом пещеры заботливо образовалась ровная, гладкая площадка. Алан сразу оценил удобство: это была не случайность, а специально предусмотренная зона для посадки.

Он перевёл алюминиевый рычаг в положение «Посадка». Универсал мягко коснулся платформы и замер. Алан поспешно дёрнул ручник — хвала автоматической коробке передач, ему не пришлось позориться с глохнущим на каждом метре двигателем. Да и машину он вполне мог посадить криво, и они бы рухнули в пропасть. А так её как будто притянуло колёсами на нужное место.

Он толкнул дверь и выбрался наружу. Окулус бесшумно выплыл следом.

Внутри пещера оказалась пустой. Никаких тайников, сейфов, сложных терминалов или архивов. Только гладкий серый камень. Алан сделал несколько шагов вглубь, растерянно оглядываясь, пока его взгляд не упал на дальнюю стену.

Прямо на камне светилась короткая, словно написанная от руки строчка: «Твой сын — инженер, смирись».

Алан замер, словно наткнулся на преграду.

Он слышал эту фразу тысячу раз. Мама говорила это папе по любому поводу: когда находила дома очередной разобранный до винтиков прибор, когда Алан тащил в свою комнату щётки с жёсткой железной щетиной (а потом эти щетинки, теряясь на полу, впивались в пятки — брр), паяльники или мотки проводов. И особенно часто эта фраза звучала по ночам, когда сонный папа в темноте сдавленно чертыхался, в очередной раз наступив босой ногой на забытую на ковре деталь конструктора «Лего». Ему казалось, мама говорила это вообще всегда — с неизменно тёплой, снисходительной и немного хитрой улыбкой.

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

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

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

— Ага, — с профессиональным удовлетворением констатировал дрон. — Посмотри-ка сюда. На петлю у буквы «ж».

Алан подошёл вплотную, прищуриваясь сквозь визор шлема. Сначала он ничего не заметил, но под правильным углом света стало видно: в изящный светящийся курсив виртуального шрифта была филигранно, почти незаметно вплетена маленькая металлическая заколка. Она отражала свет фонаря не так, как буквы — у неё была своя, отдельная физика материала.

Это была заколка в форме пчёлки. Алан узнал бы её из тысячи. Крылышки у пчёлки были не округлыми, а состояли из строгих, выверенных геометрических линий, словно начерченных по линейке на архитектурном чертеже. Мама Алана работала архитектором и обожала вещи с такой вот чёткой, продуманной до миллиметра эстетикой. Она часто закалывала ею непослушную прядь волос, когда склонялась над своими проектами.

Алан сложил вместе три пальца и сделал короткий взмах кистью, вызывая системный стилус, как учил Вадим. Осторожно, боясь повредить находку, он коснулся остриём стилуса пчёлки и нажал «Скопировать». Короткая зелёная вспышка подтвердила, что цифровая копия артефакта сохранилась в память ключ-карты. Оригинал он отдирать со стены не стал — помнил строгое правило Вадима: оставлять все зацепки на своих местах, ничего не вырезать и не ломать.

Он посмотрел на скопированную голограммку пчёлки, которая теперь медленно вращалась над его ладонью.

— Это мамина... — хрипло прошептал Алан. — Это ее заколка. Спасибо, Окулус.

***

Остаток дня прошёл в виртуальном ангаре за очень интерактивным занятием. Окулус решил доказать Алану, что короткие и понятные чек-листы — это отличная шпаргалка для профи, но полная катастрофа, если передать их роботу или новичку.

Чтобы продемонстрировать это, он переключился в режим «глупого бота-исполнителя», лишённого здравого смысла, и начал выполнять команды Алана буквально. Это привело к серии локальных катастроф. Когда Алан скомандовал «Активировать магнит», бот врубил его на 100% мощности по умолчанию, устроив в ангаре металлический шторм покруче Магнитной горы и расплющив фонарик Алана.

Затем бот подцепил именно «ближайший ящик» — проигнорировал массивный тренировочный блок и схватил хрупкий термоконтейнер с биоматериалами. Мощные промышленные манипуляторы, рассчитанные на тонны веса, безжалостно сдавили тонкий пластик. Раздался угрожающий треск, и Алану пришлось лихорадочно отменять команду, пока ценные образцы не раздавило в кашу. Зато когда дело наконец дошло до нужного стального куба, и Алан скомандовал «опустить», бот решил задачу максимально прямолинейно: он просто обесточил магниты. Тяжеленная глыба с оглушительным грохотом рухнула вниз, пробив в палубе изрядную вмятину.

Алан прокрутил эти события в памяти, заканчивая составлять конспект. Затем он с наслаждением потянулся, размял затёкшую спину. После тысячи правок он наконец правильно оформил новый для себя документ — тест-кейс. В ангаре темнело, светился только экран его планшета.

— Знаешь, — усмехнулся Алан и положил планшет себе на колени, — если бы в школе так все объясняли, у меня бы точно были одни пятёрки.

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

— Эээй, давай без наездов! — усмехнулся Алан. — Не такой уж я тупой.

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

Алан хмыкнул и нажал на кнопку сохранения файла.

— Слушай, а куда мне его скинуть? В общую базу или у меня есть своя папка для черновиков? А то вдруг кто-нибудь зайдёт проверить, чем я тут...

— Твоя локальная папка находится в корн... кор... — Окулус вдруг замер посреди фразы, и голос его запнулся, «проглатывая» слоги, как по связи с плохим интернетом.

— Окулус? Эй! — Алан вскочил с ящика. — Ты чего? Нейросфера лагает?

Дрон дёрнулся вбок рывком, без всякой анимации, синий свет потускнел и замигал, а из динамика посыпалось: «Соедин... прерва... сбой удалённого подключ...» — и тихое статическое шуршание.

Гладкая текстура дрона вдруг пошла крупными «битыми» пикселями, Окулус дёрнулся ещё раз, словно пытаясь восстановить разорванный коннект с сервером, объектив моргнул напоследок — и дрон просто исчез, без всяких спецэффектов, вспышек или взрывов, стёрся из симуляции так же буднично, как закрывается окно зависшей компьютерной программы.

В виртуальном ангаре повисла непривычная тишина. Алан остался стоять совершенно один, в недоумении сжимая в руке планшет со старательно написанным тест-кейсом.

Теорема о предательстве

Возвращаясь вечером в свой жилой блок, Алан чувствовал приятную усталость — ту самую, которая бывает после хорошей и полезной работы. Сегодня он выдержал экзамен по тест-дизайну, освоил тест-кейсы, грамотно оформил найденные баги, и система приняла его отчёты без единой помарки. Но главное — их с Окулусом нелегальная вылазка на Магнитную гору принесла реальные плоды. Папин универсал, светящийся туннель из детских фотографий, скрытая пещера и скопированная на ключ-карту золотистая мамина заколка. Немного странным, конечно, вышел этот сбой с Окулусом в конце занятия, но Алан надеялся, что завтра снова все будет в порядке.

Алан зашёл в свою «берлогу», стянул кроссовки и с размаху упал на жёсткую армейскую койку. Тишина запертой комнаты сразу же начала давить на уши. У Михалыча и Серёги сегодня был выходной, так что идти в недостроенную ВР-лабораторию, чтобы поболтать и поработать руками, не имело смысла, так что он остался совсем один.

Алан сунул руку в карман джинсов и достал смартфон. Тусклый свет экрана выхватил из полумрака пустой чат в приложении APRS. Вчерашняя переписка с Майей здорово его поддержала, и сейчас ему просто до одури хотелось снова услышать кого-то из нормального, внешнего мира, пусть и в виде буковок на экране.

Он открыл клавиатуру и задумался, как бы начать, чтобы не выглядеть навязчивым: «Как прошёл день?» — звучит как-то по-стариковски, банально, «Привет, как ты?» — вроде нормально, но суховато, а может, спросить, удалось ли ей поговорить с Костей? Алан несколько раз набирал текст, стирал его и начинал заново, гипнотизируя мигающий курсор, пока в дверь не постучали — резко, требовательно, так, что он подпрыгнул на месте.

Одним движением он заблокировал экран, сунул телефон глубоко под подушку и только потом встал и распахнул дверь.

На пороге стоял Вадим — в своей привычной тёмной форме, но мрачнее обычного, и Алан отпрянул на несколько шагов вглубь комнаты. После вчерашней катастрофы в старом орбитальном модуле, когда Алана чуть не расплющило взбесившейся гравитацией, они толком не виделись. Алан был уверен, что сейчас его ждёт разнос — и за самодеятельность, и за то, что потащил Окулуса в багованный сектор без спроса, а ещё Вадим наверняка припомнит, как он вчера едва не сжёг себе нейроны аварийным выбросом.

Но кричать Вадим не стал, а молча прошёл в комнату, опустился на единственный пластиковый стул у стола и вытянул ноги, устало потирая переносицу.

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

— Вадим, я правда не... — начал было Алан, но безопасник поднял руку, останавливая его.

— Я мог бы сказать, что ты вчера просто чудом избежал инсульта. И я должен был бы так сказать, — Вадим поднял на него глаза. Во взгляде не было злости, скорее — просто спокойное признание факта. — Ты мог бы связаться со мной через браслет, прежде чем соваться в этот сектор, я бы пошёл с тобой. Но... Ладно. Победителей не судят.

Алан удивлённо моргнул, присаживаясь на край койки. — В смысле?

— В прямом, — Вадим слабо, но искренне усмехнулся. — Я просмотрел логи вашей вылазки. Вы несколько раз поставили на уши весь сектор. У нас было сигналов двадцать, сообщающих о хулиганах у Магнитной горы. Но, надо признать, что ваш с Окулусом тандем сработал на отлично. Вы действительно нашли след. И это меняет дело.

Напряжение в плечах мгновенно спало. Значит, Вадим не злится, более того, он признаёт его успех! Окрылённый, Алан торопливо вываливал на напарника всё подряд: что на вершине Магнитной горы был примагничен папин универсал, тёмно-синий, с вмятиной, он его сразу узнал (про светящийся туннель из фотографий он напрочь забыл), что машина привела его к скрытой пещере, где на стене светится надпись «Твой сын — инженер, смирись», — мама так всегда папе про него говорила, — и что они с Окулусом просветили текстуру букв, и он скопировал себе на браслет спрятанную там малюсенькую золотистую заколку-пчёлку, мамину, сто процентов, она с ней никогда не расставалась, и Юля точно вшила её туда специально, это знак.

Вадим внимательно выслушал его, и лицо безопасника стало задумчивым.

— Хорошая работа, — тихо произнёс он, откидываясь на спинку стула. — А я ведь тоже не сидел сложа руки: пока ты отсыпался, прочесал смежные квадраты рядом с фотографией, помнишь? И знаешь, что нашёл?

Алан подался вперёд и замер, боясь пропустить хоть слово.

— Часы. Обычные настенные часы с треснувшим стеклом и остановившимися стрелками, только это наши, я их ни с чем не спутаю: мы с Юлей как-то от скуки собрали их из старых запчастей и вместо названия завода выгравировали на циферблате свои имена. Они висели в нашей виртуальной комнате над самым столом.

Вадим посмотрел на Алана долгим, пронзительным взглядом.

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

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

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

— Слушай, а что сегодня днём случилось с Окулусом? — спросил Алан, пользуясь тем, что Вадим сейчас был настроен так открыто. — Мы с ним занимались в ангаре, писали тест-кейсы, и он вдруг начал заикаться, пикселить, а потом просто исчез.

Вадим коротко отмахнулся, словно речь шла о сущей мелочи.

— Да, были у него небольшие проблемы с синхронизацией. Все нормально, мы во всем разобрались и приняли меры. Завтра утром твой наставник снова будет на своём рабочем месте, никуда не денется.

Вадим вдруг подался вперёд, посерьёзнев. Тёплая, доверительная интонация мгновенно исчезла из его голоса, сменившись сухим командирским тоном.

— Но мы должны обговорить главное правило, Алан. Слушай меня очень внимательно. Вектор поиска архива мы сузили. Если так случится, что ты наткнёшься на эту комнату и найдёшь архив первым, пока я буду в другом секторе или, мало ли, ты снова пойдёшь со своим Окулусом... Не смей открывать файлы из архива. Сразу же, немедленно связывайся со мной.

Алан непонимающе нахмурился, и улыбка медленно сползла с его лица.

— В смысле — не открывать? Мы же ради этого все и затеяли! Зачем тогда Юля передала ключ моей семье, если его нельзя использовать? Я найду этот архив, применю ключ-воспоминание, и мы наконец-то узнаем, что у них там случилось!

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

— Я не хотел говорить тебе об этом, Алик, — тихо произнёс безопасник, глядя в пол. — Тебе и так сильно досталось. Но, видимо, придётся, иначе ты по незнанию можешь очень сильно влипнуть и всех подставить. В общем, у меня есть новости с «Константы». И они не очень хорошие.

Алан напрягся, вцепившись пальцами в край матраса.

— Что случилось? Они разбились? Капсулы сломались?

— Нет, они живы, — Вадим поднял голову. — Они выполнили миссию. И нашли там жизнь.

Алан моргнул, пытаясь осознать масштаб сказанного.

— Жизнь? В космосе? Настоящих инопланетян?

— Ну, не зелёных человечков с бластерами, конечно, — Вадим мрачно усмехнулся. — Ты же помнишь, зачем их туда отправили. Это была самая обыкновенная, стандартная экспедиция. На одиннадцати таких же планетах наши сотрудники устанавливали вышки дальней связи, брали пробы грунта, атмосферы. Но в этот раз, когда они взяли пробы, оказалось, что там есть биосфера. Бактерии, флора, может, что-то ещё. Планету они называли в отчётах Кортекс. Это первое обнаружение внеземной жизни в истории человечества, Алан. Понимаешь? И вот тут у них сорвало тормоза.

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

— Ну и правильно! — горячо поддержал экипаж Алан. — Это же круто! Они герои!

— Они идиоты, Алан! Ослеплённые эйфорией идиоты! — Вадим резко остановился и посмотрел на подростка так, что тот невольно вздрогнул. — Вы все забываете, что «Константа» — это коммерческий проект. Корпорация вложила в этот корабль триллионы. Космонавты подписали тонны бумаг, жесточайшие NDA — соглашения о неразглашении корпоративной тайны. Они не имеют права даже чихнуть в эфир без согласования с Центром!

Вадим снова сел, опершись локтями о колени и глядя Алану прямо в глаза. — Чтобы доказать миру свою находку, Юля могла запаковать в этот архив слишком много лишнего. Вместе с биологическими данными с Кортекса она неизбежно должна была засунуть туда спецификации исследовательского оборудования, схемы работы наших новейших сканеров, сырые коды телеметрии и конструкцию тех самых телекоммуникационных вышек... Это все — абсолютная, чистейшая корпоративная тайна. Понимаешь? Если эти данные уйдут Правительству или конкурентам, Корпорация потеряет все своё технологическое преимущество.

Алан начал понимать, к чему клонит Вадим. По коже прошёл озноб.

— По закону, — чеканя каждое слово, продолжил Вадим, — сначала эти данные должны были лечь на стол Директорату Аркаима. А потом Директорат решил бы, в каком виде подать это миру. Да, звучит цинично и несправедливо. Но это закон. То, что пытались сделать космонавты с «Константы» — это промышленный шпионаж и измена.

Алан замер. Да, слова Вадима звучали складно, но в голове вдруг острой занозой вспыхнуло воспоминание.

— Подожди... — Алан упрямо мотнул головой. — Не сходится же что-то. На той аудиозаписи, что мы с тобой слушали, капитан Громов говорил про сбой приборов! Что физика среды нестабильна, что они слепы! И Юля говорила про ошибку телеметрии, а не про инопланетян!

Вадим даже не моргнул.

— Алик, включи голову, — безопасник снисходительно, с лёгкой грустью посмотрел на подростка. — Ты правда думаешь, что экипаж, готовящий саботаж против собственной Корпорации, будет прямым текстом орать в эфир: «Мы нашли жизнь и сейчас сольём все ваши секреты»? Сбой приборов — это их официальная легенда. Ширма для Центра, чтобы выиграть время.

— А вдруг нет? — выпалил Алан, подаваясь вперёд. — Вдруг это не ширма? Вадим, а если у них реально полетела телеметрия и они сейчас летят вслепую? Они же просто разобьются к чертям при торможении!

Вадим примирительно поднял руку.

— Не разобьются. Успокойся и дослушай, это ещё не все. Дальше наша Служба безопасности поняла, что они пытаются сделать, — Вадим поморщился. — Аркаим просто заглушил их канал связи с внешним миром и вынес экипажу официальное предупреждение. Им приказали передать данные только по закрытому корпоративному каналу. Но они взбунтовались. Юля запаковала весь этот компромат в архив и спрятала в виртуальной реальности, пустив корабль на автопилоте и уйдя в анабиоз.

В глазах Вадима мелькнула настоящая горечь.

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

Безопасник указал рукой в сторону ВР-комнат на первом этаже.

— Помнишь то скрытое аудиосообщение, адресованное лично мне? То, что мы слушали? Она просила меня найти архив в нашей тайной комнате. Она хотела, чтобы я перехватил эту бомбу замедленного действия и вычистил оттуда все корпоративные секреты до того, как архив вскроет кто-то другой! Я обещал ей это сделать. Я должен был спасти её от трибунала. Но тут вмешалось Правительство, их хакеры атаковали серверы Аркаима, и наша комната вместе с архивом улетела в неиндексированный мусор. И теперь Юля — потенциальная преступница. Если архив найдут безопасники Директората раньше нас — она сядет. Навсегда.

— И что же нам теперь делать? — сдавленно спросил Алан.

— Выход только один, — Вадим подался вперёд. — Как только ты найдёшь этот архив, ты должен отдать его мне. Не вскрывая. Я отфильтрую его, вычищу оттуда все корпоративные секреты и оставлю только чистые данные о Кортексе. Затем мы легализуем находку. Корпорация получит свои патенты и успокоится, мир узнает о планете, а Юля выйдет из капсулы героиней, а не предательницей.

— Но почему я не могу просто открыть его вместе с тобой? — Алан непонимающе нахмурился. — Я же тренировался и сейчас, и раньше, я смогу это сделать, точно.

— Потому что тебе нельзя это видеть, Алан! — жёстко, с нажимом перебил Вадим. — Пойми: если ты, не имея высшего допуска, своими глазами увидишь секретные спецификации, то я уже не смогу тебя защитить. Ты станешь ходячей угрозой безопасности Корпорации. Тебя просто запрут в подземном бункере Аркаима пожизненно. Или, что вероятнее, на тебя совершенно «случайно» упадёт бетонная плита во время ремонта. Я не могу тобой так рисковать.

— Да как они вообще узнают? — искренне не понял Алан. — Мы же будем одни! Ты же им не расскажешь!

— Я — нет. Но что, если плановая проверка СБ? — Вадим угрожающе прищурился. — Что, если тебя допросят на полиграфе? Или дадут корпоративную сыворотку правды?

Вадим смягчился, его голос стал тихим и почти ласковым: — Ты же слышал Юлину запись. Она всё ещё любит меня и доверяет мне. Я вытащу её, обещаю тебе. Мы поженимся, станем одной семьёй. Ты, я, Юля... И Костя, считай, станет твоим братом. Мы все будем вместе, в безопасности, я это обеспечу.

Внутри все сжалось в тугой узел. То, что говорил Вадим, звучало очень логично, но все это время Алана держал на плаву совершенно другой якорь.

— А как же мама с папой? — голос подростка дрогнул. — Если мы заберём архив и все сделаем, как ты говоришь... их же отпустят? Юля же покажет миру эту планету, эти собранные данные, правительство поймёт, что секретов там нет, и тогда они заберут меня?

Вадим замолчал, и вся его профессиональная уверенность куда-то делась. Он посмотрел на Алана с тяжёлым, виноватым сочувствием, и Алан понял, что сейчас услышит, ещё до того, как безопасник открыл рот.

Вадим залез во внутренний карман куртки и достал сложенный вдвое белый лист бумаги.

— Твои родители не заложники, Алик, — Вадим отвёл взгляд.

— Что? — Алан нервно сглотнул. — В смысле?

— Они правительственные агенты, Алан. Они прекрасно знали, на что идут и что делают.

— Нет, это бред! — Алан подскочил с койки, чувствуя, как кровь приливает к лицу. — Я сам видел, как за ними приехали эти амбалы на чёрных минивэнах! Их забрали!

— Вспомни тот вечер, Алик. Только внимательно вспомни, без эмоций, — мягко, но неумолимо произнёс Вадим. — Твой отец отбивался, кричал, звал на помощь соседей? А мама плакала, сопротивлялась? Нет. Они шли к машинам сами, спокойно, потому что к ним приехали их кураторы из спецслужб.

Алан как подкошенный опустился обратно на кровать, и перед глазами снова встала та сцена во дворе: папа что-то строго выговаривал старшему группы, но действительно не пытался вырваться, и мама шла ровно, её вообще не держали.

Вадим положил на стол сложенный лист и придвинул его к Алану: распечатка биллингов его телефона за те несколько дней: день ареста родителей и следующие два.

Алан опустил остекленевший взгляд на бумагу: ряды цифр, входящие, исходящие, номера Кости, номер самого Вадима в конце списка — и больше ничего.

— Ну и что? — Алан оттолкнул распечатку, и голос у него задрожал. — Вадим, ну это же логично! Если их арестовали, у них сразу отобрали телефоны, они просто физически не могли бы мне позвонить!

Вадим не стал злиться, только посмотрел на Алана с глубокой усталостью и сочувствием.

— Алик... — тихо произнёс он. — Твой отец — гений криптографии, создатель сложнейших закрытых алгоритмов. Твоя мама — блестящий инженер-архитектор. Ты правда думаешь, что если бы они хотели подать тебе знак, если бы они хотели обойти блокировки или оставить скрытое сообщение до того, как к ним пришли — они бы этого не сделали? Ты думаешь, их могли взять силой обычные конвойные, если бы они не захотели пойти сами?

Алан замер. Поверить в это было невыносимо.

— Они знали, что ты идёшь с тренировки домой. Они знали, что ты прячешься, — голос Вадима звучал как приговор, падающий в абсолютной тишине комнаты. — За все это время — ни одного звонка от них. Ни одной эсэмэски. Я сам был в городе в тот вечер, потому что мы по линии Корпорации должны были перехватить их первыми. Я не успел. Но я разговаривал с ними по телефону, когда они уже сидели в машине. Предлагал помощь, предлагал вытащить их... Но они отказались. Они ушли к своим кураторам. Они выбрали миссию Юли, а тебя просто сбросили как балласт, чтобы ты не путался под ногами и не мешал им работать.

Вадим сделал паузу.

— Единственное, что они сделали — попросили меня о тебе позаботиться. Что я и сделал. Но, поверь, я привёз тебя сюда не из-за их просьбы. Я сделал это ради Юли. И ради тебя самого.

Алан сидел неподвижно, оглушённый этим ударом. Его главная мотивация, стержень, который держал его на ногах все эти дни в вентиляции и на допросе, и во все эти жуткие вечера и ночи, был уничтожен. Ожидание звонка от мамы. Надежда на то, что он им нужен, что они ждут помощи. Все это обернулось безжалостным расчётом взрослых людей, которые взяли и вычеркнули его из уравнения. Он почувствовал себя пустым, брошенным, ненужным никому на свете, кроме... кроме Юли и Вадима, который сейчас сидел напротив.

Вадим поднялся, шагнул к Алану и крепко, по-мужски сжал его плечо. Он ещё что-то говорил — что ему очень жаль, что это больно, он знает, но у Алана есть сестра и есть он, Вадим, и Юлю они вытащат, чего бы это ни стоило, — а Алан только кивал, не поднимая взгляда, и слова проходили сквозь него, как сквозь пустую комнату.

Уже открыв дверь, безопасник оглянулся:

— Завтра отсыпайся до обеда, у тебя выходной от учёбы. Мне на всё утро понадобится Окулус — я должен суметь расшифровать архив, когда мы найдём его. Постарайся поспать, напарник. Ты мне нужен с ясной головой.

Дверь с тихим шипением закрылась, оставив Алана одного в полной тишине. Смартфон все так же лежал под подушкой, скрывая незаконченную переписку с внешним миром, но Алану больше не хотелось никому писать.

Спасибо за чтение

Вернуться к книге