Наступні кілька днів пролетіли майже непомітно. Лабораторія PHARMASY не згасала навіть уночі: холодне світло моніторів відбивалося у скляних стінах, вентиляція тихо гнала сухе повітря, а запах кави і нагрітої електроніки міцно в’ївся в простір. Анна і Джек знову і знову намагалися зрозуміти, що саме ламається в експерименті з перенесенням. Команда залишалася простою, архітектура — перевіреною, але кожен запуск закінчувався однаково: захоплення речовини відбувалося, а потім система руйнувалася. Помилка пошуку цілі, зависаючі монітори, нестабільна поведінка нанітів — від повної зупинки до хаотичних сплесків, ніби шторм усередині скляного резервуара.
Анна переписувала фільтри обробки сигналів, Джек перевіряв архітектуру стабілізації, але результат не змінювався. До третього дня вони майже перестали розмовляти, обмежуючись короткими фразами і новими гіпотезами. Саме тоді втрутився Адріан. Він сидів осторонь, переглядаючи системний журнал на планшеті. Логи йшли одноманітно — команди, підтвердження, відгуки — поки його погляд не зачепився за короткий розрив у послідовності. Рядок виглядав майже звичайним, але в ньому відчувалося втручання.
Він наблизив журнал. Серце вдарило сильніше. Слід був — ледь помітний, але достатній, щоб зрозуміти: хтось уже змінював систему. І якщо він це побачив, могли побачити й інші. Адріан швидко озирнувся. Анна і Джек були зайняті. Його пальці ковзнули по екрану, кілька рядків зникли, лог вирівнявся. Петля залишилася, але тепер виглядала як звичайна помилка. Він відкинувся в кріслі і на мить дозволив собі усмішку: витончено.
— Зачекайте, — сказав він уголос.
Анна підняла голову.
— Що?
— Ви серйозно цього не помітили?
Він показав журнал. Джек насупився, потім нахилився ближче.
— Система намагається синхронізувати два типи нанітів, — спокійно пояснив Адріан.
— Але протокол синхронізації вимкнений, — сказала Анна.
— Код каже те саме. Але система все одно це робить.
На графіках справді з’являлися збіжні сигнали. Анна відкрила діагностичне вікно і видихнула:
— Тому перенесення ламається.
— Один тип виконує команду, другий намагається повторити її, але не знаходить об’єкт, — продовжив Адріан.
— І система йде в нескінченний пошук, — закінчив Джек.
Кілька секунд вони мовчали. Потім Джек сказав:
— Ми навіть не передбачили поведінку за відсутності цілі. Потрібен таймер і аварійний вихід.
Анна кивнула. Вони швидко переписали код: додали обмеження циклу, перевірку цілі, повернення в базовий стан. Система скомпілювалася без помилок, сервери загуділи, нова версія завантажилася. Після перезапуску стало ясно, що проблема глибша: розділені моделі почали працювати гірше. Модифікована втрачала стабільність, базова майже перестала реагувати.
— Вони адаптувалися одна до одної, — тихо сказала Анна.
— Поки ми вважали їх ізольованими, вони вчилися працювати разом.
Джек видихнув.
— Значить, потрібно зробити навпаки. Об’єднати їх.
Вони створили спільний канал обміну, об’єднали моделі в одному резервуарі і підняли резервну копію чистої архітектури в другому. Система стабілізувалася, графіки вирівнялися, помилка зникла — принаймні, зовні.
Увечері Анна сиділа вдома з ноутбуком на колінах. На екрані — нова архітектура. Сем на підлозі збирав пазл, але робив це не за зображенням, а за структурою: краї, вузли, симетрія. Анна помітила це і повільно перевела погляд назад на код. Рядок блимав:
if signal_detected: adapt_structure()
— А якщо поєднувати… не просто переносити? — тихо промовила вона.
Думка не відпускала. Наніти вже переносили, адаптувалися, пріоритезували. Але якщо дати їм алгоритм з’єднання? Не просто реагувати — а будувати?
Сем вставив останню деталь.
— Готово.
Анна усміхнулася.
— Звичайно.
Але думка залишилася.
Вранці вони обговорювали її вже разом. Анна запропонувала додати алгоритм відновлення структури — регенерацію. Джек підтримав ідею. Майкл нагадав про ризики. Адріан побачив у цьому потенціал. У підсумку вирішили спробувати — суворо в замкненому контурі.
Пізно ввечері до лабораторії увійшов Мітч. Він швидко переглянув дані і без вагань сказав:
— Починайте випробування на мишах.
— Ми не готові, — заперечив Майкл.
— Помилки — теж результат, — холодно відповів Мітч і пішов.
Клітки принесли майже одразу. Білі миші неспокійно рухалися всередині. Анна задала мінімальні параметри, Джек підтвердив запуск. На екрані з’явилися ідентифікатори:
Test_1 і Test_2
Система на секунду зависла, потім додала третій рядок.
Test_3 detected
— У нас тільки дві особини, — сказав Джек.
— Можливо, помилка пакета, — відповіла Анна, але впевненості в голосі не було.