Привет, Хабр! Меня зовут Алексей, и я отвечаю за то, чтобы айти на нашем заводе в Выксе работало. Локальные нужды обслуживает моя команда больше сотни человек, нам помогают команды общих сервисов для группы компаний.
У нас всё как у всех, но есть своя заводская атмосфера.
Поэтому, когда звонят из цеха и говорят, что компьютер сломался, это может означать что угодно. Например, последний раз это был бортовой компьютер на тепловозе.
Мы росли с обычных «кондовых» контроллеров до четырёх уровней ИТ-систем. Мы обвешивали всё мониторингом (сейчас несколько тысяч точек под постоянным слежением), и да, конечно, у нас были инциденты высокой степени критичности. Много. От первой — высшей — у меня случается нервный тик, от второй — шевелятся волосы на голове, про третью мы узнаём из почты на следующий день.
Пример высокой критичности — экскаваторщик лёгким движением джойстика порвал 9 телефонных сотен и 8 сборок оптических кабелей. Это был тот год, когда про аварию мы узнавали по стационарному телефону, но он молчал. Зашёл коллега, сообщил:
— Бери куртку, пойдём бить экскаваторщика.
Мужик парализовал работу целого цеха. Связь с диспетчером завода была потеряна, а это как выйти в открытый космос и потерять связь с МКС. И началась веселуха — в ход пошли все запасы ПРППМ и витой пары. Только к вечеру на времянках восстановили связь, к ночи заварили оптику.
Заходите, расскажу, что у нас как у всех, а что со своей спецификой.
Мы делаем прокат, трубы, железнодорожные колёса — всё то из металла и современных технологий, что нужно другим промышленным предприятиям. У нас на входе — железный лом и стальные слябы, на выходе — то, из чего потом строят газопроводы, скважины, мосты, небоскрёбы, крыши стадионов. Когда вы поедете на метро, скоростной электричке или на поезде, то в каждом вагоне наверняка будут колёса, которые произвели мы. Тысячи тонн нашей стали есть в высотных зданиях, аэропортах и атомных станциях.
Общая архитектура
ИТ в цехе начинается с отдельно взятого агрегата, точнее, его контроллера. Это первый уровень. Контроллер собирает данные с подсистем агрегата и умеет исполнять простые команды. Это уровень, аналогичный ассемблеру: условно, контроллер может включить или выключить ту или иную подсистему. Контроллер ждёт ввода — либо ручного, либо от АСУ ТП. В принципе, тайну я этим не открыл — всё по классике жанра.
Контроллер без внешних данных обычно работает секунды или минуты. Если внешние данные обрываются аварийно, контроллер должен закончить цикл и встать в безопасное положение. Если станок нарезал резьбу на трубе, он должен закончить проводимую операцию, а затем остановиться, «припарковать» резец, если это предписано системой блокировки. Трубный цех в той истории с экскаватором можно было оживить, отбросив его на век назад, то есть выведя туда несколько десятков операторов на участки и агрегаты для ручного управления ими, но гораздо проще и быстрее было срастить кабели.
Второй уровень — это софт, который управляет контроллерами, — АСУ ТП, система, которая даёт задания контроллерам и собирает с них данные. Это уже осмысленные операции вроде «вырезать вот такую деталь» (точнее, набор координат, времени и движений, например) и так далее. АСУ ТП — это макросы, каждый из которых позволяет получить что-то реально целое с точки зрения единицы производства, какая-то законченная операция, где зачастую задействована куча оборудования. Например, прорезать отверстие или отрезать начало рулона.
Контроллеры + АСУ ТП позволяют отработать смену или даже несколько смен, но дальше нужен третий уровень — MES.
MES — это система оперативного управления производством. В ней есть модуль управления мастер-данными, который гарантирует доступность актуальной и точной нормативно-справочной информации для производственного персонала. И всё это с удобным интерфейсом. База данных НСИ у нас ведётся в SAP MDM и SAP ERP.
Для разделения и управления заказами в MES предусмотрен отдельный функционал, который позволяет сегментировать заказы на линии и позиции, обеспечивая их последующие обработку и планирование. Всё это помогает оптимизировать процесс обработки заказов, объединить их производственные кампании и предоставить оператору данные для составления оптимального графика работ.
Также MES важна для контроля производственного процесса, сертификации качества продукции и управления складом — здесь уже зона ответственности модуля оперативного планирования.
Отдельная заслуга системы — она предоставляет важную производственную информацию в режиме реального времени, что обеспечивает эффективность при ограниченных ресурсах. Это нужно не только для прозрачности процессов, но и для быстрой реакции на внутренние и внешние изменения.
Пример архитектуры системы:
Ценность уровня MES для производства большая:
- Здесь взаимоувязана вся оперативная производственная информация.
- В дополнение к «законодательной» верхнеуровневой системе (ERP) появляется исполнительная система, решающая вопрос «Как обеспечить выполнение заказов в условиях ограниченности ресурсов?»
- Обеспечивается быстрая реакция на любые внутренние и внешние изменения.
- Производство «прозрачно» для всех заинтересованных служб завода.
- MES даёт точный анализ узких мест и «поглотителей рабочего времени».
- Увеличивается дискретизация загрузки сбытовых заказов (от ежемесячного формирования плана можно перейти к добавлению заказов «на лету» в текущее производственное расписание).
- Повышается достоверность данных об использовании ресурсов (материалов, изделий, рабочего времени).
Ловить баги в системах увлекательно. Сейчас-то мы обвешали всё мониторингом, но я помню, как было лет так десять тому назад.
Яркий пример — линия отделки с гидропрессами, которая встала после очередного планово-предупредительного ремонта. Вроде физически всё целое, но прошивка даже не думает стартовать. 2005 год, из ИТ-инструментов у нас только отвёртки и кримпер. Начали проверять со своей стороны, плюс начали приезжать те, кто работал с этой линией раньше. А чтобы вы понимали, у нас многие топы начинали в цехах. И вот дошло до того, что приехал один из руководителей. Снял пальто и с остальными мужиками полез в шкаф управления, потому что он эту линию когда-то запускал, вот этими вот руками, пот вместе со всеми проливал.
А кончилось просто. Паренёк из автоматизации, стоявший в проходе вдруг увидел, что в шкафу из клеммника модуля ввода-вывода наконечник провода, так сказать, вывалился. И подошёл, на автопилоте поправил, чтобы он стоял ровно, заподлицо с контактной планкой. И заработало. И такое у нас тоже бывает.
ERP
Ещё выше лежит ERP — четвёртый уровень.
ERP — это про закупки, продажи, ремонты, финансы, управление персоналом и многими другими областями бизнеса конкретного завода и компании в целом. Это одновременно и учётная система, позволяющая принимать самые важные решения по компании, и операционная — позволяющая систематизировать и автоматизировать бизнес-процессы.
Возьмём, например, Material Management, мы у себя его зовём кратко — ММ. Мы вообще любим многие названия превращать в аббревиатуры. Чтобы никто не догадался, конечно же.
Так вот, в ММ нам важно управлять материалами. То есть мы должны своевременно обеспечивать весь завод необходимыми материалами и при этом не купить лишних.
Сотрудники формируют запросы: от гаечного ключа и чайника до мостового крана. Система оценивает, что из этого уже лежит на складах, а что нужно купить. Закупочные процессы весьма разнообразны и запутаны: правила, лимиты и прочие процедуры со стратегиями. Система помогает специалистам вести контракты, заказы, проводить тендеры и отслеживать поставку материалов. После чего идут складские процессы по управлению складом, адресному хранению, инвентаризации и выдаче материалов заявителю.
Таким же образом процессы остальных направлений отражаются в ERP. И если вернуться к производству, то из направления продаж заказы клиентов приходят в MES, где уже группируются, оптимизируются и отправляются в производство. АСУ ТП цехов разбивают это на задания для линий, отправляют на контроллеры станков, станки исполняют. Везде в этой цепочке могут произойти изменения: например, если какой-то станок на ремонте, то на уровне MES будет сделана коррекция изменений. Если что-то пошло не так с конкретной деталью, то либо это брак, либо она пойдёт пониженной сортностью на другие задачи.
ERP у нас SAP. Сразу скажу, на SAP сидим мы глубоко, и слазить с неё покуда особо некуда. Пока никто из отечественных вендоров не доказал, что может справиться с боевыми задачами завода. НО мы за этим особо пристально следим, т.к. хорошо понимаем, что SAP не вечен.
Почему эти 4 уровня развязаны, а не соединены в один?
Так сложилось исторически. От объединения систем можно было бы выиграть: например, если бы MES видела не только текущие запасы, но и то, что должно приехать по железной дороге на склад через неделю-две, возможно, она бы оптимальнее раскладывала заказы. Но системы разные, и, если нужно сделать такую оптимизацию, она делается отдельным модулем.
Объясняется это тем, что разные уровни должны работать независимо. Поскольку они часто ещё и внедряются с разницей в года или десятилетия в разных цехах, то шансов на единую систему просто не остаётся.
Например, когда нужно обновить ERP, если система будет тесно связана с MES, остановится и MES. Если она жёстко связана с АСУ ТП, то встанет и цех. С другой стороны, наоборот, сбой в цепочке производства, роняющий АСУ ТП, тогда ронял бы и MES/ERP по всему производству. Плюс есть ещё некоторый зоопарк систем, у каждого цеха — своя. Потому что остановка одного цеха не должна тормозить огромный прокатный стан, расположенный в другом месте, и вообще влиять на завод в целом. Потому что остановка одной системы ERP на всю группу компаний — это серьёзные потери.
Кстати, один раз нам несказанно повезло. Ну как повезло, так себе повезло. История в том, что упала база цеха, на которую завязана MES. Но одновременно и независимо от этого в цехе сломался один из главных агрегатов — печь, и, пока все занимались срочными работами по устранению последствий, мы успели всё восстановить, хотя это было непросто и в процессе мы рвали волосы и у себя, и у соседа. Но простоя MES никто не заметил. Потому что технологический простой покрыл айтишный.
В итоге из ERP берётся набор заказов, спускается в MES, там уже АСУ ТП исполняет с помощью контроллеров. В обратную сторону тоже едет информация: например, мы раскатали сляб, вырезали из него темплет, отправили в лабораторию, получили химсостав, прочность, текучесть и тому подобное. Это привязалось к конкретному слябу, затем привяжется к конкретному изделию. Например, про каждое произведённое железнодорожное колесо мы можем рассказать биографию, хоть оно с виду идентично другим таким же, но химия и механика разная.
MES для некоторых цехов пишем сами и изменяем сами. Но есть и внедрённые комплектно с оборудованием. Однажды в одном из крупных цехов свалилась база такой MES. Просто Оракл, 406-я ошибка. Если вы думаете, что мы в час ночи сразу сели разбираться, что это за ошибка и почему она внезапно вылезла, то нет. Мы накатили бэкап. Если точнее, два раза, потому что первый тоже не подошёл. Всю ночь мы восстанавливали систему. И только потом на утро начали чесать затылки, с вопросом — что это было. И в том случае так и не дочесались, даже вендор не помог, потому что никаких быстрых гипотез не нашлось, а там уж и «следы преступления» потёрлись. Так работает завод: на первом месте — восстановить работоспособность, затем расследовать инцидент и по возможности принять меры по недопущению повторного аналогичного косяка.
ЦОД
«Железные» системы
Весь этот стержень автоматизации стоит на инфраструктурном фундаменте и держится в вертикальном состоянии с помощью коммуникаций.
Например, раньше у нас было три ЦОДа на заводе. Потом мы из одного сняли всю вычислительную нагрузку и перевели в коммутационный узел. Оставшиеся два переделывали очень сильно. Например, когда купили тепловизор, увидели много такого, что потом стало дополнительным фактом необходимости обновления инфраструктуры. Сейчас они почти Tier2, защищены аккумуляторами, дизелями, двойными вводами, там везде камеры и так далее. Но даже там на ровном месте поймали кучу сюрпризов.
Расскажу про один из них: решили мы как-то заменить ИБП, из-за ошибки электронного байпаса, которую он периодически выдавал. Т.к. оборудование критичное для производственных процессов и с технологами разных цехов практически невозможно согласовать «окно» для отключения всего ЦОДа, решили провести данную работу бесшовно, блоков питания ведь в каждой железке минимум два. Сложность состояла лишь в том, что схема гарантированного питания на тот момент состояла из одного ИБП.
Начали мы с подготовки ППР и схемы переключения — вышло страниц на двадцать, что даже согласовывать пришлось больше двух недель. Далее выполнили расчёт потребляемой нагрузки, перепроверили работу всех БП, установили временный щит питания, который подключили от резервного ввода, и постепенно переключили одно плечо оборудования на него, а для успокоения души самую критичную нагрузку подключили через локальные маломощные ИБП, чтобы не оставаться на грязном питании.
И вот настал день Х — дёргаем автомат, через который от неисправного ИБП питается второе плечо, и у нас отключается одна из основных СХД. Рвём на себе волосы, останавливаем работы и начинаем разбираться. Выясняем, что большую часть БП СХД подключили к вводу, который благополучно отключили в час Х, и, к сожалению, мощности оставшихся не хватило для питания всей СХД… Выяснили уже позже, что кабели не промаркировали перед монтажом. Поняв, что все системы благополучно встали и нас уже «расстреляли», начали всё перепроверять, наклеивать на каждый кабель питания бирку с информацией о распределительном щите — и успешно переключили схему на новый ИБП. Пришлось уволить инженера.
Ещё самый смешной, на мой взгляд, случай, который, кстати, был не у нас, а на другом заводе — но баллоны мы после этого меняли и у себя. От лесных пожаров сработала система пожаротушения, углекислотная, от известного, всеми признанного производителя, специально сделанная для ЦОДов, и потушила виртуальный пожар. А потом взяло и отъехало 3 диска. Внимание, почему?
Начали расследовать — оказалось, когда баллон спускал газ, раздавался писк на частоте резонанса головок дисков. Вендор об этом знал и даже выпустил незаметный релиз, что есть вот такой побочный эффект. Технически не докопаться, документацию они обновили, но в ЦОДах с HDD нельзя использовать эти баллоны.
Вот почему надо 2 ЦОДа — потому что всё как на подлодке, по 2 штуки. Кстати, когда в одном ЦОДе пол-ядра падает и происходит перестроение дерева, то все чувствительные производственные циклы отваливаются, матмодели «разворачиваются и уходят». Нежные слишком. Цеха большинство проблем не чувствуют, но мы прекрасно понимаем, что после некоторых можно восстанавливаться часами.
Например, перезагрузка всего контура АСУ ТП после переключения ЦОДа — это не подарок. Извините, тут не как в красивых статьях, бесшовные переключения у нас, конечно, есть, но не везде или, точнее, не всегда. Большую часть проблем цех даже не видит, но крупный отвал замечает очень хорошо. Но «двойная звезда», которая сейчас превалирует в цехах, даёт очень приятную уверенность.
Ладно, давайте пойдём дальше по системам. Начнём с проводной связи. Это базовая связь для АСУ ТП, по которой передаются все технологические параметры. Это PROFINET-сети, Ethernet-сети плюс там, где есть слишком сильные помехи по электрике, — оптика. Все новые цеха проектируются с учётом, что силовой кабель нельзя класть рядом с проводной связью, поэтому вопрос с помехами у нас стоит довольно редко. Понятно, что есть цеха 80-х годов, где приямки и трассы отдельно не проектировались, поэтому, где надо, кладём экранированную витую пару, но оптика в целом — универсальное решение для сложных зон.
Беспроводная связь для производственных объектов практически не используется, но задействована на складах готовой продукции. Потому что цех — это сгусток металла. Зоны Френеля постоянно меняются, проехавший мимо кран меняет всю карту покрытия, а если он везёт «большую» трубу или сляб — тем более. Беспроводные сети в таких условиях научились обладать достаточной стабильностью буквально недавно — и то мы пока говорим про ограниченные применения. В некоторых случаях очень выручает APN, дёшево и сердито. В общем, на текущий момент практически всегда лучше кинуть оптику. Сейчас экспериментируем с рядом решений, но пока всё ещё непохоже, чтобы мы бросились менять оборудование везде.
Понятно, есть компьютеры, которые получают последнюю милю по Wi-Fi, мобильные терминалы на складах, сканеры и так далее, но это по сравнению с площадью производства — капля в море.
Всё это требует обычного обслуживания техподдержкой. Два человека выдают мышки, меняют клавиатуры и расследуют инциденты. На заводе их в шутку называют Чипом и Дейлом, но по квалификации они как Бэтмен и Тони Старк, потому что иногда приходится разбирать печку на принтере, а иногда копаться в прошивках. Надеюсь, они расскажут тут про свой треш и технические детективы, потому что работа у них крайне весёлая.
Есть даже старый добрый флоппинет. Например, некоторые стационарные газоанализаторы не подключаются к сети, а пишут данные на флешку. В целом газоанализатор работает так: стоит и стоит, но, если в какой-то момент включит сирену, надо бежать. Стационарный легко соединить с производственной сетью, а вот с мобильными сложнее. Мобильные газоанализаторы могут померить состав и выдать в моменте заключение о его составе. Их специальные сенсоры просовывают или опускают, например, в некоторые люки на штативе. Вот они показывают данные на экране и пишут на флешку. Стационарные могут быть в локальной сети как датчики и могут включаться в пульт диспетчера пожарной части на том же уровне как пожарные извещатели.
Кстати, в колодцах, которые надо открывать с газоанализатором (потому есть вероятность скопления вредных газов в замкнутом пространстве), у нас лежит, например, кабельная канализация с телефонной сетью, радио, оптикой, пожарной сетью и тому подобным.
Телефония — гибридная, старая добрая аналоговая и IP. От первой стараемся уйти, но на текущий момент не можем полностью: например, охрана требует стационарного питания и соблюдения ряда нормативов далеких времён.
При внештатных ситуациях работает оповещение: это громкоговорящая связь. Она использует IP-сегмент и специальный сегмент, телефонную сеть. Эти сети вещают в том числе по условиям от разных датчиков, даже если центральный сегмент разваливается, то есть в пределах коммутатора работают сами по себе очень устойчиво.
Есть радиоточки. Это требование от города. По сути, это единственный элемент, по которому из города может прийти аварийное оповещение. Других сверхустойчивых альтернативных каналов нет. Натуральное проводное радио. Есть и беспроводное, но на случай ЧС нужно именно проводное. Телевидение тоже есть, но оно для корпоративных новостей, а эфирное, спутниковое и кабельное приходит в офис и комнаты отдыха рабочих.
Видеонаблюдение тоже есть, причём оно нужно как для собственно наблюдения, так и для технологического зрения. Есть «умные» камеры, которые определяют температуру металла по цвету, наличие людей в запрещённой зоне, видеоаналитика участвует в ряде процессов всё больше и больше. Сами камеры ставятся обычно в защитных кожухах. Если камера в рабочей зоне, то устанавливаются специальные очистители (дворники) на кожух либо протираем руками в начале смены. Пробовали обдув, но он генерирует вихревые потоки, которые захватывают пыль, окалину и дополнительно загрязняют стекло. Иногда с ним бывает сложнее, чем без него. Ещё у нас есть камера, которая работает при адских температурах. Она находится на крышке вакууматора — это такой большой котёл с расплавленным металлом, туда ставится вот эта камера, и операторы наблюдают, при каких температурах там происходят всякие разные и нужные процессы. В последнее время стали всё чаще использовать тепловизионный контроль на базе «умных» тепловизоров.
Какие ещё подсистемы есть?
Жалобы пользователей за последние лет так десять точно никуда не делись. Все страдания возникают там, где раньше были большие проблемы. Заавтоматизировались — стало жить хорошо. И вот теперь пользователи страдают от автоматизации, потому что она как-то не по-человечески работает. Или потому что, если она отвалится, снова будет прошлый век. Раньше точно многие процессы были проще, но не лучше. Такой уровень производительности, как сейчас, без автоматизации в принципе невозможен. Зависимость завода от ИТ-систем просто критичная.
Например, раньше типичным утром можно было выслушать от начальника цеха, что стоит отгрузка. Отгрузка — это как релиз. На ней задействуются вообще все системы, потому что надо выпустить сертификат продукции, собрать всё, что мы про эту продукцию знаем. Железяка без бумажки — это просто лом. Железяка с бумажкой — изделие.
Сейчас всё это собирается автоматически. Где-то RPA заменяет людей, где-то есть внутренние связи систем, где-то обращения к электронному архиву документации (это общее хранилище всех данных завода). Вспоминая, как это было раньше на запуске новых цехов, вся эта адская сложность кажется очень даже приятной. Да, это надо поддерживать, но лучше так, чем вручную вбивать тысячи параметров.
А пример более простого процесса — командировки. Раньше, чтобы съездить в командировку, — надо было пройти семь кругов ада, 100 служебок распечатать, подписать, отсканировать, отправить, обязательно позвонить. Сейчас — 10 кнопок, потом ещё 3 — вернулся, всё закрылось само. Электронные болваны всё сделали. Жизнь кожаных мешков облегчилась. Да, им бывает неудобно в интерфейсах, непонятно, как грузить файл и что-то ещё, это мы помогаем по мере сил. Но если вспомнить, что было раньше, — их жизнь точно облегчилась. Я к тому, что на заводе есть ещё куча периферийных систем: обучение, порталы информационные, чат-боты и прочее — пальцев на руках и ногах не хватит, чтобы перечесть.
Тут можно вспомнить много подсистем, от управления вентиляцией до разных датчиков, управления складами (куда класть, чтобы потом быстро достать), техподдержку для всего этого и т.п., но в целом, думаю, идею вы уловили. Отдельно внутри систем очень много направлений. Например, одних только оптимизаторов разного уровня — от пакетирования заказа до расчёта оптимальной логистики внутри цеха или оптимальных путей производства разных заказов — сотни. А в ветке «прочие системы» есть, например, BIM, разные CAD/CAM-системы и так далее. В общем, это можно описывать довольно долго, но представление в целом вы получили.
Вот примерно так устроено производство.
За последнее время мы очень выросли, появилась круглосутка, появились мониторинги, правильные регламенты на всё, появилось море автоматизаций, дублирование систем и так далее. Были неоднократные модернизации инфраструктуры, менялись учётные системы. Сейчас завод работает так, что приятно посмотреть. Работы непочатый край, но она почти вся понятная и даже приятная. До следующего экскаваторщика, конечно! Или импортозамещения.
Комментарии (9)
igorts
20.05.2024 12:54да, отключения электричества в серверной - это вечный кошмар!
Постоянный страх, что что-нибудь не запустится.
Чаще всего меня подводили серверы HP с загрузкой vmware esxi с флэшки - почему то флэшки летят на некоторых сервера регулярно, а esxi может работать без загрузочного диска бесконечно долго, до очередной перезагрузки ;)
tref1977
20.05.2024 12:54+3Да, пришлось мне походить по вашим цехам. Ходил несколько дней между какими-то мегалитическими прессами и прочим мега-технологическим оборудованием. Собирал данные для последующего создания карт покрытия wi-fi, которое смонтировали наши монтажники. И чтобы сдать этот беспроводной сегмент сети к прочим документам требовалось приложить карты покрытия. Всё осложнялось тем что расстояния в цехах маленькими не назовёшь, а прикрутить GPS к ноутбуку с софтом не получается ибо, сами понимаете, никакой сигнал со спутников туда не проникает. Поэтому приходилось в ручном режиме указывать точку своего нахождения на загруженном плане цеха и медленно, именно медленно, двигаться к следующей точке и так далее, и так далее. Медленная скорость передвижения была необходима т. к. сканировать приходилось много каналов в двух диапазонах. И двигаясь быстро я бы просто смазал данные и они не соответствовали бы реальной картине.
BBQ39
20.05.2024 12:54Автоматизация нужна только АУПу и менеджменту чтобы знать сколько можно срезать по концу года людей и премий, а работяги как кувалдой махали так и машут по станкам 60-ых годов рождения.
EvilSpirits
20.05.2024 12:54Старые заводы автоматизировать это конечно приключение, надеюсь новые уже с учётом данного фактора строятся.
Valodzimir
Приятная работа - это автоматизировать завод, чтобы осталось осталось 1700 чел вместо 17000? )
cahbeua
Из них 100 чисто айти отдел. Локальный (с)
PanDubls
Сейчас будет яркий пример anecdotal evidence, но приятель работает в фирме, которая устанавливает промышленных роботов для автоматизации производства и я у него как-то спросил -- вот ты приезжаешь, ставишь робота, который работает за четверых сварщиков и всё, трёх из них увольняют? Говорит -- нет, просто теперь каждый сварщик варит в четыре раза больше прикладывая те же усилия, ещё и зарплату получает уже как оператор робота.
Canadienne
Предлагаете отдать "фабрики рабочим" и содержать на них 17.000 человек? Он выдержит конкуренцию с Китаем? Сейчас не 1914-й.. Чтобы завод работал и позволял зарабатывать сегодня, надо стремиться к штату 170 человек.