Kitobni o'qish: «Игрушка жестокого наследника. Ты удалил мой код и назвал меня воровкой!»
Глава 1
К стойке регистрации меня не пускали чужие рюкзаки. Из-за одного торчал стакан кофе; хозяин придерживал его бережнее, чем я свой ноутбук. Я вцепилась в лямку и встала на носки: где тут очередь для стипендиатов? Мне девятнадцать. Я приехала учиться, а не мериться ценой завтрака с этими людьми. Найти фамилию в списке, забрать пропуск — и можно будет выдохнуть. Я даже приготовила, что скажу сотруднице: «Ветрова Алиса, бюджет». Только бы не заставили повторять при всех.
За спиной кто-то обсуждал парковку: машину опять придется оставлять через дорогу. Мне бы такую беду. Мой чемодан после электрички скрипел на каждом шаге; у входа я подняла его, лишь бы не слушать этот звук здесь, под гладкими потолками «Нейро-Теха».
Толпа первокурсников гудела, как растревоженный улей. Кто-то толкнул меня локтем в бок — резко, небрежно, даже не извинившись. Я пошатнулась, теряя равновесие. Впереди маячила стойка регистрации, спасительная и такая близкая, но поток людей давил на меня со всех сторон, превращая мою осторожность в комичную попытку протиснуться сквозь стену мышц и брендовых курток.
Я сделала шаг влево, чтобы избежать столкновения с парнем в очках, и мой носок зацепил ножку демонстрационного стенда.
Стенд качнулся, а я зачем-то продолжала смотреть на ножку. Надо было ухватить столешницу. Подставить ладонь. Серебристый дрон уже скользил к краю — прототип с факультетского сайта, похожий на хищную птицу. Я потянулась слишком поздно.
Он упал.
Звук разбивающегося стекла и пластика был оглушительно громким для моего слуха, хотя вокруг все еще шумели разговоры. Осколки разлетелись веером, сверкнув в искусственном свете люстр. Дрон лежал на полу, его крылья были вывернуты под неестественными углами, а из расколотого корпуса торчала плата.
Только не наступить на плату. Эта мысль почему-то пришла первой. Потом я увидела вывернутое крыло и поняла, что целого устройства уже нет. Футболка прилипла между лопаток. Я держала ладони перед собой, как будто всё еще могла его поймать. Пропуск я даже получить не успела. Сейчас попросят фамилию, стоимость ремонта — а у меня на карте деньги до следующей стипендии.
— Ты видела? — голос был тихим, но резким, как скальпель.
Передо мной вырос Марк. Капитан киберспортивной команды, сын ректора и человек, которого боялись больше, чем преподавателей. Он посмотрел на осколки дрона, потом на меня. Глаза — цвета мокрого асфальта. В них не было злости. Было что-то хуже — презрительное любопытство, как у энтомолога, рассматривающего раздавленного жука.
Я подняла руку, собираясь показать, где меня толкнули. Никто не смотрел в ту сторону. Хотелось убежать, но я стояла, прижатая толпой. Марк сделал шаг вперед и схватил меня за запястье. Его пальцы были холодными и сильными. Он остановил мои попытки дернуться.
— Отпусти меня, урод! — шипела я сквозь зубы, чувствуя, как стыд смешивается с яростью.
Марк усмехнулся уголком губ, не ослабляя хватки.
— Громче, — сказал он. — Пусть все слышат, какая ты смелая, когда ломаешь проект стоимостью в годовую стипендию нескольких семей вроде твоей.
От его слов меня передернуло. Цена. Именно это слово било больнее всего. Отец не заработал бы на такой дрон и за несколько лет. Я представила, как он снова берется за лишнюю работу, чтобы оплатить мой долг. И теперь я была должна. Должна не деньгами, которых у меня нет, а собой.
Шум вокруг нас начал стихать. Люди сбивались в полукруг, доставая телефоны. Щелкали затворы камер. Я чувствовала на себе десятки взглядов, оценивающих, жалостливых, злорадных. И тут из толпы вышла она.
Кира. Идеальная дочь главного спонсора академии. Безупречная укладка, улыбка, которая не достигала глаз. Она подошла к нам, изящно переступая через осколки, и положила руку на плечо Марку, словно они были давними друзьями, а я — помеха на их пути.
— Марк, это ужасно, — произнесла она сладким, как мед, голосом, но обращалась она не ко мне. Она повернулась к появившемуся из бокового коридора ректору. — Игорь Семенович, эта девушка специально толкнула стол. Я видела. Она хотела сорвать презентацию вашего сына. У нее такие... странные глаза. Ненависть прямо читается.
Ректор, высокий мужчина в дорогом костюме, посмотрел на Киру с легким недоумением, затем на Марка, который хмуро молчал, и наконец — на меня. Его взгляд был тяжелым и бюрократическим.
— Алиса Ветрова? — спросил он, сверяясь с планшетом.
— Да, — мой голос сорвался. Я открыла рот, чтобы сказать правду. Что это случайность. Что я никого не ненавидела. Но слова застряли в горле комком. Против имени Киры и статуса Марка моя правда ничего не весила. Здесь решали не факты, а связи.
— Восстановление функционала устройства, — сухо произнес ректор, игнорируя мое молчание. — Под строгим контролем капитана команды разработки. Срок — до конца семестра. Если устройство не заработает, или если ты покажешь несостоятельность в работе... ты отчислена. Без права возврата стипендиальных средств и с пятном в личном деле. Согласна?
Он ждал ответа и уже держал палец над планшетом. Хотелось спросить, где в этом договоре мои занятия, экзамены, сон. А еще — кто видел толчок. Но я представляла обратную электричку и отца у дверей: приехала, пап, только поступить оказалось мало. Я бы не вынесла его молчания. Пусть лаборатория. Пусть Марк. Я научусь чинить эту проклятую птицу.
Я посмотрела на свои дрожащие руки. На осколки пластика. На лицо Марка, которое выражало скуку.
— Согласна, — прошептала я.
Согласие вышло почти без звука. Я даже испугалась, что он не услышал и придется сказать еще раз. Ректор кивнул. С ним ушел последний человек, которому здесь можно было пожаловаться на Марка, — и я проводила его взглядом до двери, хотя он ни разу не обернулся.
Сотрудница регистрации наклонилась за стойку и забрала мой чемодан: «Получишь после практикума, Ветрова». Я успела кивнуть. Хотя бы вещи не останутся среди осколков.
Марк оттолкнул мою руку и отпустил запястье. Я отступила, едва не наступив на осколок. Он не посмотрел на меня. Просто развернулся и пошел к лифтам.
— Идем, должница, — бросил он через плечо.
Я пошла за ним. На запястье еще краснели следы, и я спрятала его под лямку рюкзака. В лифте не нашлось ни одного места, откуда я не видела бы Марка: хромированные стены отражали нас обоих. Я смотрела на номера этажей, а сама замечала, как близко он стоит. Пахло табаком и сандалом. Хотелось отойти еще на шаг; стенка уже упиралась в рюкзак.
Двери открылись на нижнем уровне. Лаборатория робототехники. Здесь было холодно. Кондиционеры работали на полную мощность, поддерживая температуру для оборудования.
Марк снял свою куртку. Тяжелую, черную, с нашитыми патчами команд. Он швырнул ее мне прямо в грудь. Я инстинктивно поймала ткань, зарывшись лицом в воротник. Запах ударил в нос: сигареты, мужской дезодорант и резкий запах озона.
— Надень, — приказал он, подходя к терминалу управления. — Ты будешь работать в холоде, пока не научишься уважать чужое имущество. Или пока не замерзнешь до смерти. Мне все равно.
Ладони утонули в рукавах. Пришлось завернуть их дважды, иначе я не смогла бы печатать. Чужая куртка согревала, и это злило сильнее его приказа: даже за тепло теперь следовало благодарить Марка? Я расправила воротник. Ничего. Долг — за дрон. За куртку должницей не стану.
Марк включил главный монитор. Экран засветился голубым светом, отражаясь в его глазах.
— Подключайся, — сказал он, не оборачиваясь. — Код закрыт. Система требует административного ключа для доступа к исходникам поврежденного модуля. У тебя его нет.
— Где я возьму ключ? — спросила я, подходя к консоли.
Марк обернулся. Он стоял очень близко. Слишком близко. Я чувствовала тепло его тела даже сквозь его куртку. Он навис надо мной, и его тень легла на клавиатуру.
— Ключа нет, — тихо произнес он, глядя мне прямо в душу. — Есть только твои пальцы и моя воля.
Мое сердце пропустило удар. Я резко обернулась, пытаясь отстраниться, но наши лица оказались почти в сантиметре друг от друга. Я могла видеть поры на его коже, блеск в глубине зрачков.
Я посмотрела на закрытый каталог исходников. Мне велели восстановить устройство — и сразу отрезали доступ к тому, без чего его не восстановить. Проверка? Или им нужен человек, на которого можно списать провал?
Марк следил за мной, будто ждал, когда я попрошу пощады. Не дождется. Я придвинула клавиатуру. Если здесь есть вход, я его найду. И узнаю, зачем сыну ректора понадобилась именно я.
На экране монитора мигнул красный курсор, ожидая ввода пароля. В отражении черного стекла я увидела не свое испуганное лицо, а глаза Марка. Они смотрели на меня не с ненавистью, а с голодным, собственническим интересом. Хищника, который уже выбрал жертву, но хочет, чтобы та бежала подольше.
И тогда я поняла: отчисление было бы милосердием.
Глава 2
Через две недели после разбитого дрона я принесла черновик кода, когда мои пальцы уже окоченели от холода лаборатории №4. Здесь всегда пахло озоном, перегретым металлом и чьим-то дорогим парфюмом — запахом власти, который не выветривается даже после проветривания. Марк сидел в своем кресле, крутя в руках стилус, и даже не поднял глаз на монитор. Он смотрел на мои ноги. На грязные кроссовки, купленные на распродаже в три раза дешевле его завтрака.
— Вытри их, — бросил он сухо.
— Что? — я замерла, чувствуя, как кровь приливает к лицу.
— Халат висит за дверью. Надень. И приведи себя в порядок. Ты выглядишь как бомж из пригорода, а это портит эстетическую составляющую моего проекта. «Чумазая» не должна касаться прототипа стоимостью в полмиллиона.
Я опустила взгляд на кроссовки. На подошве засохла грязь с дорожки к общежитию; в коде от нее ни одной ошибки не прибавилось. Сказать это вслух хотелось ужасно. Вместо ответа я стянула с крючка халат и надела поверх одежды. Пуговица у груди всё время выскакивала из растянутой петли. Пока я возилась с ней, Марк успел отвернуться. Код наконец удостоился внимания — стоило накрыть меня белой тряпкой.
— Код есть?
— Да. Модуль навигации работает на пятнадцать процентов быстрее предыдущей версии.
Он молча начал печатать. Через минуту на экране всплыло красное окно: «Syntax Error».
— Перепиши, — сказал он, откидываясь назад. — И не трогай клавиатуру грязными руками.
В перерыве, когда я побежала в туалет смыть с лица остатки унижения, Кира ждала меня у кулера. Она стояла, изящно поправляя локон, и улыбалась той самой улыбкой, от которой у меня сводило живот.
— Алиса! Как же ты себя загнала? Бедняжка.
Она «случайно» задела мой локоть, и стаканчик с горячим кофе опрокинулся прямо на мою сумку, где лежал ноутбук с резервной копией. Кофе растекся по ткани и просочился к краю крышки ноутбука.
— Ой, прости! — Кира схватила салфетки, но её шепот, скользнувший мне в ухо, был холодным, как лезвие. — Ректор любит аккуратных девочек. А ты пахнешь дешевым мылом и неудачей. Тебе лучше уйти, пока тебя совсем не вышвырнули.
Кира протерла стол. Стол, не сумку. В пачке еще оставались сухие салфетки, и я почти попросила дать их мне — почти. Потом выхватила свою сумку из лужи. Крышка ноутбука уже липла к пальцам. Хотелось донести его до лаборатории, разобрать, спасти хотя бы диск. Кира продолжала улыбаться за спиной; я так и не сказала ей ничего, чем она могла бы развлечь подруг.
Вернувшись в лабораторию, я увидела, что ноутбук, вынутый из сумки, залит. Экран мигнул и погас. Паника подступила к горлу комком. Я пересела за лабораторный терминал. Руки дрожали так сильно, что я не могла попасть курсором в поле входа. Данные были в облаке, но сервер академии... Сервер блокировал попытки входа каждые пятнадцать минут. Саботаж? Или просто баг системы безопасности для «чумазых»?
Марк наблюдал за мной со своего дивана. Он не спал. Его глаза блестели в полумраке, как у хищника, который видит, как жертва запутывается в собственных сетях. Ему нравилось это зрелище.
Когда я снова попыталась войти в систему и получила ошибку доступа, он подошел ближе. Слишком близко. Я почувствовала запах его табака и ментоловой жвачки. Он перехватил мою руку, тянущуюся к мышке, и сжал пальцы. Боль была острой, но я не вскрикнула. Он заставил меня поднять голову и смотреть ему в глаза.
— Если ты не можешь писать код без трясущихся рук, уходи, — произнес он тихо, почти ласково. В этой тишине было больше презрения, чем в любом крике. — Я найду кого-то, кто не будет плакать над каждой ошибкой.
«Найди», — собиралась я сказать. Пусть ищет программиста, который починит разбитый прототип под его диктовку. И платить пусть не забудет. Но тут же представила пустое поле напротив своей фамилии в списке на стипендию. Прикусила щеку; во рту стало солоно. Высвободила кисть и положила на клавиатуру. Мизинец не слушался. Первую скобку я набрала со второго раза — специально медленно, чтобы Марк не получил удовольствия от еще одной ошибки.
Ночь затянулась, превращаясь в бесконечный лабиринт ошибок и таймаутов. Я потеряла счет времени. Мои глаза горели, шея ныла. Каждые пятнадцать минут я тратила драгоценные минуты на борьбу с призраками системы, перезагружая роутеры, меняя порты, молясь богу программистов. Марк лег на диван и закрыл глаза. Спит или слушает каждое мое движение? Я оглядывалась на него после любого щелчка. Я была одна в этом холодном, стерильном аду.
Утром, когда солнце едва пробилось сквозь жалюзи, я вышла в коридор за водой. Голова гудела, тело требовало сна. У окна, прислонившись спиной к подоконнику, стоял Тимофей. Он не смотрел на меня, листая какую-то старую книгу, но его присутствие ощущалось как тихий щелчок замка.
— Ты выглядишь ужасно, — сказал он, не отрывая взгляда от страниц.
— Спасибо, — прохрипела я.
Он молча положил на подоконник маленькую флешку, серебряную, с царапинами.
— Попробуй обход через локальный порт. Они следят за внешним трафиком. Сервер академии имеет дыру в защите, если использовать локальный маршрут к архивному узлу. Центральный журнал этот маршрут не пишет.
Я подцепила флешку с подоконника ногтем. Серебряный корпус поцарапан, никаких командных логотипов. Тимофей не спросил, как я ему отплачу, и это насторожило больше всего. За две недели здесь я отвыкла от бесплатной помощи. Он уже снова читал книгу. Я постояла рядом, ожидая условий. Не дождалась — и спрятала накопитель в ладони.
Я вернулась в лабораторию, подключила флешку и выполнила его инструкцию. Экран засиял зеленым. Доступ получен. Я работала быстрее ветра, компенсируя потерянные часы. К моменту, когда Марк проснулся и потянулся, моя работа была готова. Идеальный модуль навигации. Чистый код. Красивая структура.
Дедлайн наступил ровно в полдень. Я представила финальную версию. Марк запустил симуляцию. Виртуальный дрон взлетел, сделал сложный маневр, вернулся на базу. Все работало идеально.
Виртуальная птица села точно в центр площадки. Я смотрела на нее, не моргая: вдруг последний тест еще выдаст ошибку? Но счетчик остановился. Хотелось ткнуть Марка носом в результат, как кота: вот, смотри. Грязные кроссовки, дешевый халат — а твой дрон вернулся на базу. Я позволила себе улыбнуться, совсем чуть-чуть.
Марк посмотрел на экран. Потом на меня. Его лицо не выражало ничего. Ни удовлетворения, ни удивления. Только пустоту.
Он открыл консоль командной строки. Пальцы забарабанили по клавиатуре. Одна команда. rm -rf /projects/alice_v1.
Команда отработала за секунду. Каталог исчез. Моя неделя ада, бессонные ночи, слезы — он стер все, даже не переспросив.
— Почему?! — сорвалось с моих губ. Голос дрогнул, стал визгливым.
Марк повернулся ко мне, и впервые за две недели на его лице появилась улыбка. Она была холодной, расчетливой и страшной. Страшнее любого крика.
— Это было слишком чисто, Алиса, — произнес он мягко. — Ты скопировала структуру из старых архивов. Я знаю этот стиль. Архитектура ветвления функций, комментарии в конце строк, специфические переменные. Это почерк того парня, которого выгнали пять лет назад. Дмитрия Орлова.
Кровь отлила от лица. Мир пошатнулся.
— Ты... ты украла его работу, — продолжил он, глядя мне прямо в душу. — Интеллектуальная собственность. Плагиат. Статья отчисления.
— Нет! — закричала я. — Я сама написала! Я использовала только базовые принципы!
— Доказательства? — он поднял бровь. — У тебя нет истории коммитов, потому что она хранилась в этом же каталоге. Ты оставила следы кражи, но не оставила следов своей работы. Умно. Очень умно. Для провинциальной девочки.
Сам удалил историю и теперь требовал доказательств. Я смотрела на его пальцы — на те, что только что набрали команду. Он даже не убрал их с клавиатуры. Если закричать еще раз, услышат в коридоре. Но услышат меня, не услышат команду. У него будет тихое объяснение для ректора; у меня — сорванный голос и пустой каталог.
Марк положил руку мне на плечо. Тяжелую, уверенную, собственническую. Он включил громкую связь с кабинетом ректора.
— Отец, — сказал он ровным тоном. — Она справляется. Оставляю её на испытательный срок. Если сорвётся — отчислим по статье о плагиате. Пусть знает цену своему «таланту».
Голос ректора ответил сухим согласем. Связь оборвалась.
После звонка я всё еще смотрела на терминал. Курсор мигал там, где было имя моего проекта. До чего же удобно: стереть работу, оставить человека — пусть пишет снова. Я потерла кисть и перестала прятать ее под столом. Стыдиться следовало ему. Мне надо было найти способ сохранять результат там, куда его пальцы не дотянутся.
Он думал, что сломал меня. Но он забыл, что я из тех, кто умеет находить выход там, где стены кажутся монолитными. Тимофей дал мне инструмент. Марк дал мне врага. А я... я дам им обоим повод пожалеть о том дне, когда я переступила порог этой академии.
Bepul matn qismi tugad.