Книга Био-Кодер: Генетический Эксплойт читать онлайн бесплатно, автор Нейтон Патчер – Fictionbook, cтраница 3
Нейтон Патчер Био-Кодер: Генетический Эксплойт
Био-Кодер: Генетический Эксплойт
Био-Кодер: Генетический Эксплойт

5

  • 0
Поделиться

Полная версия:

Нейтон Патчер Био-Кодер: Генетический Эксплойт

  • + Увеличить шрифт
  • - Уменьшить шрифт

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

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

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

[Субъект: Родион Лазарев]

[Класс: Био-Кодер (Неавторизованный модификатор ядра)]

[Уровень: 3 (Опыт: 340/800)]

[Вычислительный стек (Разум): 165/165]

[Биологическая целостность: 92/100]

[Синхронизация с системным компилятором: 18.4%]

[Доступные примитивы: Потоковый декомпилятор v.0.3, Трассировщик нервных импульсов, Инъектор ассемблерных вставок]

«Восемнадцать процентов», — мысленно зафиксировал он.

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

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

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

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

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

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

Он поднял глаза.

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

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

[Внимание! Обнаружена элитная биологическая единица]

[Идентификатор: Едкий Ткач-Катализатор]

[Классификация: Специфический мутагенный арахнид, подтип «Чистильщик»]

[Уровень: 6]

[Статус: Активная охота / Синтез реагентов]

[Опасность: Смертельно для неподготовленных гуманоидов]

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

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

Арахнид не просто спал или переваривал пищу. Он находился в цикле непрерывной фабрикации кислоты.

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

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

Паук почуял его.

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

— Пошел процесс компиляции выстрела, — процедил Родион.

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

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

> ATTEMPTING DECOMPILATION: Target_ID [Arachnida_Corrosive_06]

> Parsing chromosome clusters... 12%... 48%... 89%...

> Warning! Target code protected by System obfuscation layer!

> Access granted via Bio-Coder exploit: bypass_aslr_genomic()

Строки кода потекли перед глазами Родиона сплошной стеной:

module Organism.Arachnida.Elite_Catalyst {

segment .exoskeleton { ... }

segment .neural_network { ... }

segment .weaponry_acidic {

handle: Acid_Synthesis_Chamber_A;

handle: Catalyst_Storage_Chamber_B;

valve: Gland_Sphincter_Main;

function Fire_Corrosive_Jet(vector3 target, float pressure) {

check_integrity();

trigger_catalyst_injection(RATIO_CRITICAL);

release_sphincter_muscles(VALVE_OPEN_MAX);

flush_chambers();

}

}

}

«Вот оно. Двухкомпонентный заряд», — мозг Родиона работал на пределе тактовой частоты, раскаляя виски тупой пульсирующей болью. Ментальный стек начал стремительно таять: 165... 140... 115...

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

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

Родион рванулся в сторону за мгновение до того, как воздух в коридоре взорвался оглушительным свистом.

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

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

[Внимание! Биологическая целостность: 84/100]

[Эрозия эпителия. Химический ожог 2-й степени. Нейтрализация буфером Системы...]

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

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

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

И он ее увидел.

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

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

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

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

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

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

До выстрела оставалось ровно 1.4 секунды.

Родион вскинул дозатор. Ментальный стек рухнул до опасных сорока единиц, конвертируя системную энергию в создание генетической микро-инъекции.

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

[Сборка эксплойта: SPHINCTER_DEADLOCK.bin завершена]

[Затраты вычислительного резерва: 75 единиц]

[Шанс преодоления хитинового фильтра при прямом попадании в стигму: 91.2%]

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

«Сейчас!»

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

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

Пневматический дозатор сухо щелкнул.

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

Время словно остановилось.

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

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

[Внедрение полезной нагрузки в процесс: Target_ID: Arachnida_Corrosive_06]

[Инъекция шелл-кода в локальный ганглий... УСПЕШНО]

[Перезапись памяти синапса: 0x7FFF8A40 -> JMP EXPLOIT_ADDR]

[Вызов функции: Force_Muscular_Tetany(VALVE_GLYPH)]

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

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

Мозг твари послал импульс: *ОТКРЫТЬ КЛАПАН*.

Но перехваченный эксплойтом ганглий вернул фатальную ошибку:

[EXCEPTION: SPHINCTER_LOCKED_BY_OVERRIDE]

[CRITICAL ERROR: ACCESS DENIED TO HARDWARE PORT 0x00]

[STATUS: DEADLOCK DETECTED IN THREAD #3 (Gland_Egress)]

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

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

Кислоте некуда было выходить.

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

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

Глухой, утробный хлопок разорвал тишину мертвого этажа.

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

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

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

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

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

[Системное уведомление!]

[Модуль «Кислотный катализатор» цели уничтожен безвозвратно]

[Ядовитые железы полностью денатурированы]

[Цель лишена 70% наступательного потенциала]

[Критический сбой архитектуры организма: Paralyzed (Шок нервной системы)]

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

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

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

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

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

— Точка останова, — сказал Родион.

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

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

На сетчатке Родиона взорвался целый каскад золотистых и бирюзовых строчек:

[Цель уничтожена: Едкий Ткач-Катализатор (Уровень 6, Элита)]

[Получен опыт: 1450 единиц]

[Внимание! Превышение порога уровня!]

[Ваш уровень повышен: 3 -> 4]

[Ваш уровень повышен: 4 -> 5]

[Доступно свободных очков оптимизации параметров: 4]

[Вычислительный стек увеличен: +50 единиц (Текущий максимум: 215)]

[Уникальное системное достижение!]

[«Анатомический Эксплойт: Первое Проникновение»]

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

[Награда: Разблокирован модуль «Ассемблерный Скальпель v.1.0», открыт прямой доступ к реестру мутаций типа «Arachnida».]

Тепловая волна нового уровня прокатилась по телу Родиона. Боль от ожога на плече мгновенно отступила — поврежденная кожа затянулась свежим розовым эпителием, обожженные легкие наполнились чистым, глубоким воздухом. Туман усталости рассеялся, а мир вокруг стал еще четче, детальнее, словно кто-то сменил разрешение монитора с устаревшего Full HD на кристально чистое 8K.

Ментальный стек мгновенно восполнился до предела, сияя новой цифрой 215/215.

Родион выдернул топор из туши и оперся на него, переводя дух.

Это была не просто победа над монстром. Это было фундаментальное доказательство его гипотезы.

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

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

«Ленивые боги пишут плохой софт», — усмехнулся Родион уголком губ.

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

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

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

[Получен предмет: Стабилизированная капсула катализатора Ткача (Качество: Редкое)]

[Тип: Биологический компонент / Реагент]

[Свойства: Исключительная коррозионная стойкость. Может быть использован для создания кислотостойкой брони или синтеза высокомощных растворителей.]

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

[Получен предмет: Мутагенное ядро Элитного Катализатора (Ранг D)]

[Энергетическая емкость: Высокая]

[Содержит генетическую библиотеку: «Синтез фторорганических кислот», «Уплотнение хитина»]

[Требование к интеграции: Класс Био-Кодер или Алхимик 5+ уровня]

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

> Detected compatible biological library!

> Decrypting functions: [Enzymatic_Shield_Generator], [Chitin_Hardening_Subroutine]...

> Would you like to compile new active skill?

— Отложить компиляцию в фоновый поток, — скомандовал он мысленно. — Приоритет распределения ресурсов: анализ внешней сети.

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

Ветер с улицы хлестнул в лицо, пахнущий озоном, пеплом и дождем.

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

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

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

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

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

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

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

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

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

ВходРегистрация
Забыли пароль