Разбор по составу слова нанесут: Словарь синонимов sinonim.org

The Web of Language

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

В 2003 году Дик Хеллер и пять других истцов оспорили жесткий закон Вашингтона, округ Колумбия, о контроле над оружием, утверждая, что его запрет на ношение пистолетов нарушает их право на ношение оружия согласно Второй поправке. Прошлой весной Окружной апелляционный суд США по округу Колумбия удовлетворил иск Хеллера. Затем Верховный суд согласился заслушать апелляцию округа Колумбия по делу Хеллера.

Вторая поправка к Конституции США гласит:

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

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

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

Джеймс Мэдисон изначально разработал 12 поправок к Конституции; нынешняя 2-я поправка изначально была четвертой


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

Нельсон Лунд в отчете amicus в поддержку Хеллера утверждает, что преамбула поправки не имеет силы, потому что это абсолютная фраза, и «такие конструкции грамматически независимы от остальной части предложения» (Лунд, стр. 7). По мнению Лунда, «преамбула» — это не более чем конституционное прочищение горла, которое не следует принимать во внимание при рассмотрении сути поправки.

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

В своей книге « Rudiments of English Grammar » (1790) Ной Вебстер пишет, что «именительный падеж или слово, соединенное с причастием, часто стоит независимо от предложения. Это называется абсолютным случаем». Вебстер приводит несколько примеров, в том числе: «Все они согласились, голосование было принято». Он поясняет: «Слова, выделенные курсивом, не связаны с другой частью предложения ни соглашением, ни правительством; поэтому они абсолютны в падеже, который в английском языке всегда является именительным падежом». Грамматическая независимость, по Вебстеру, заключается не в политическом самоопределении, а в именительном падеже. Но он без колебаний признал бы, что голосование не состоялось бы без согласия избирателей.

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


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

Любой образованный федералист также усвоил бы в школе, что правительство в грамматике просто относится к падежу существительного — его склонению в именительном, дательном, родительном, винительном (или, в случае латыни, аблативе). Как выразился Роберт Лоут, автор наиболее широко изучаемой школьной грамматики того времени, «режим или управление — это когда слово заставляет следующее слово быть в каком-то падеже или модусе». Например, предлоги заставляют следующее существительное или местоимение брать дательный падеж. Или, как любили говорить школьные учебники, предлоги управляют дательным падежом. Вот почему мы говорим: «Дай мне пистолет», а не «Дай его мне».

Епископ Лоут объясняет, что управление в грамматике — это все о падеже


Кроме того, грамматики с 18-го века до наших дней утверждают, что абсолютная конструкция неизменно устанавливает семантическую зависимость в предложении. Уильям Уорд в своей книге «Грамматика английского языка » (1767) объясняет, что абсолютная конструкция подразумевает «целое предложение», имеющее логическое отношение — если-то или причина-и-следствие — с остальной частью высказывания. : «Самый распространенный вид абсолютной конструкции. . . появляется, когда ряд слов, содержащих причастие в зависимости от существительного в именительном падеже, становится эквивалентным целому предложению в зависимости от союза или относительного наречия».

Уильям Уорд (1767, стр. 145) об абсолюте как эквиваленте целого предложения


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

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

В случае Второй поправки абсолют также показывает четкую причинно-следственную связь: поскольку необходима хорошо организованная милиция, право на ношение оружия не должно нарушаться. Добавьте к этому тот факт, что выражение «носить оружие» в подавляющем большинстве встречается в военных контекстах, а не в гражданских, как в 18 веке, так и сегодня: как историк Гарри Уиллс (1995), на кролика оружия не берут. Таким образом, было бы трудно сбрасывать со счетов ополчение при толковании Второй поправки.

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

Заполнение страницы: как работают браузеры — Веб-производительность

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

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

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

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

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

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

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

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

DNS-поиск

Первым шагом при переходе на веб-страницу является определение местоположения ресурсов этой страницы. Если вы перейдете к https://example.com , HTML-страница расположена на сервере с IP-адресом 93.184.216.34 . Если вы никогда не посещали этот сайт, необходимо выполнить поиск DNS.

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

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

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

TCP Handshake

Когда IP-адрес известен, браузер устанавливает соединение с сервером через трехстороннее TCP-рукопожатие. Этот механизм разработан таким образом, что два объекта, пытающиеся установить связь, — в данном случае браузер и веб-сервер — могут согласовать параметры сетевого TCP-сокета перед передачей данных, часто по протоколу HTTPS.

Метод трехэтапного квитирования TCP часто называют «SYN-SYN-ACK» или, точнее, SYN, SYN-ACK, ACK, поскольку протокол TCP передает три сообщения для согласования и запуска сеанса TCP между двумя компьютерами. . Да, это означает еще три сообщения взад и вперед между каждым сервером, и запрос еще не сделан.

Согласование TLS

Для безопасных соединений, установленных через HTTPS, требуется еще одно «рукопожатие». Это рукопожатие или, скорее, согласование TLS определяет, какой шифр будет использоваться для шифрования связи, проверяет сервер и устанавливает наличие безопасного соединения перед началом фактической передачи данных. Это требует еще трех обращений к серверу, прежде чем запрос контента будет фактически отправлен.

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

После 8 обходов браузер, наконец, может выполнить запрос.

Как только мы установили соединение с веб-сервером, браузер отправляет начальный HTTP-запрос GET от имени пользователя, который для веб-сайтов чаще всего представляет собой HTML-файл. Как только сервер получит запрос, он ответит соответствующими заголовками ответа и содержимым HTML.

 

  <голова>
    <метакодировка="UTF-8" />
    Моя простая страница
    <ссылка rel="stylesheet" href="styles.css" />  
  <тело>
     

Моя страница

Абзац с

ссылкой

<дел> описание изображения

Этот ответ на этот первоначальный запрос содержит первый байт полученных данных. Время до первого байта (TTFB) — это время между тем, когда пользователь сделал запрос, например, нажав на ссылку, и получением этого первого пакета HTML. Первый фрагмент контента обычно составляет 14 КБ данных.

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

Медленный запуск TCP / 14 КБ правило

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

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

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

Контроль перегрузки

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

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

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

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

Построение дерева DOM

Мы описываем пять шагов критического пути рендеринга.

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

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

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

Когда синтаксический анализатор находит неблокирующие ресурсы, такие как изображение, браузер запрашивает эти ресурсы и продолжает синтаксический анализ. Синтаксический анализ может продолжаться при обнаружении файла CSS, но 9Теги 0101 — особенно без атрибута async или defer — блокируют рендеринг и приостанавливают синтаксический анализ HTML. Хотя сканер предварительной загрузки браузера ускоряет этот процесс, чрезмерное количество скриптов все же может быть серьезным узким местом.

Сканер предварительной загрузки

Пока браузер строит DOM-дерево, этот процесс занимает основной поток. Когда это происходит, сканер предварительной загрузки будет анализировать доступный контент и запрашивать ресурсы с высоким приоритетом, такие как CSS, JavaScript и веб-шрифты. Благодаря сканеру предварительной загрузки нам не нужно ждать, пока парсер найдет ссылку на внешний ресурс, чтобы запросить его. Он будет извлекать ресурсы в фоновом режиме, так что к тому времени, когда основной анализатор HTML достигнет запрошенных ресурсов, они уже могут быть в полете или загружены. Оптимизации, которые обеспечивает сканер предварительной загрузки, уменьшают блокировки.

 <ссылка rel="stylesheet" href="styles.css" />  

В этом примере, пока основной поток анализирует HTML и CSS, сканер предварительной загрузки найдет сценарии и изображение и также начнет их загрузку. Чтобы сценарий не блокировал процесс, добавьте атрибут async или атрибут defer 9. 0102, если важен разбор и порядок выполнения JavaScript.

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

Построение CSSOM

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

Как и в случае с HTML, браузеру необходимо преобразовать полученные правила CSS во что-то, с чем он сможет работать. Следовательно, он повторяет процесс преобразования HTML в объект, но для CSS.

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

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

Другие процессы

Компиляция JavaScript

Пока выполняется синтаксический анализ CSS и создается CSSOM, другие активы, включая файлы JavaScript, загружаются (благодаря сканеру предварительной загрузки). JavaScript интерпретируется, компилируется, анализируется и выполняется. Сценарии анализируются в виде абстрактных синтаксических деревьев. Некоторые браузерные движки берут абстрактное синтаксическое дерево и передают его интерпретатору, выводя байт-код, который выполняется в основном потоке. Это известно как компиляция JavaScript.

Построение дерева специальных возможностей

Браузер также строит дерево специальных возможностей, которое вспомогательные устройства используют для анализа и интерпретации содержимого. Объектная модель доступности (AOM) похожа на семантическую версию DOM. Браузер обновляет дерево специальных возможностей при обновлении DOM. Дерево специальных возможностей не может быть изменено самими вспомогательными технологиями.

Пока AOM не будет построен, содержимое недоступно для программ чтения с экрана.

Шаги рендеринга включают стиль, компоновку, рисование и, в некоторых случаях, композитинг. Деревья CSSOM и DOM, созданные на этапе синтаксического анализа, объединяются в дерево рендеринга, которое затем используется для вычисления макета каждого видимого элемента, который затем отображается на экране. В некоторых случаях контент можно продвигать по отдельным слоям и компоновать, повышая производительность за счет рисования частей экрана на графическом процессоре, а не на ЦП, освобождая основной поток.

Стиль

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

Теги, которые не будут отображаться, например и его дочерние элементы, а также любые узлы с display: none , такие как скрипт { display: none; } , которые вы найдете в таблицах стилей пользовательского агента, не включены в дерево рендеринга, поскольку они не будут отображаться в выводе рендеринга. Узлы с видимость: скрытые примененные включены в дерево рендеринга, так как они занимают место. Поскольку мы не давали никаких директив для переопределения значения по умолчанию для пользовательского агента, узел сценария в нашем примере кода выше не будет включен в дерево рендеринга.

К каждому видимому узлу применяются свои правила CSSOM. Дерево рендеринга содержит все видимые узлы с содержимым и вычисленными стилями — все соответствующие стили сопоставляются с каждым видимым узлом в дереве DOM и определяются на основе каскада CSS, какие вычисленные стили предназначены для каждого узла.

Макет

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

После построения дерева рендеринга начинается компоновка. Дерево рендеринга определило, какие узлы отображаются (даже если они невидимы) вместе с их вычисленными стилями, но не размерами или расположением каждого узла. Чтобы определить точный размер и расположение каждого объекта, браузер начинает с корня дерева рендеринга и просматривает его.

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

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

Отрисовка

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

Чтобы обеспечить плавную прокрутку и анимацию, все, что занимает основной поток, включая вычисление стилей, а также перекомпоновку и рисование, должно выполняться браузером менее чем за 16,67 мс. При разрешении 2048 X 1536 iPad имеет более 3 145 000 пикселей, которые нужно отобразить на экране. Это очень много пикселей, которые нужно очень быстро закрашивать. Чтобы гарантировать, что перерисовка может быть выполнена даже быстрее, чем первоначальная краска, рисунок на экране обычно разбивается на несколько слоев. Если это происходит, то необходимо композитинг.

Рисование может разбить элементы в дереве макета на слои. Продвижение содержимого по слоям на графическом процессоре (вместо основного потока на ЦП) повышает производительность рисования и перерисовки. Существуют определенные свойства и элементы, которые создают экземпляр слоя, в том числе и , а также любой элемент, который имеет свойства CSS opacity , 3D transform , will-change и несколько других. Эти узлы будут прорисованы на своем собственном слое вместе со своими потомками, если только потомку не потребуется собственный слой по одной (или нескольким) из вышеперечисленных причин.

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

Композитинг

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

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

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

Время до интерактивности (TTI) — это измерение того, сколько времени прошло от первого запроса, который привел к поиску DNS и соединению SSL, до момента, когда страница стала интерактивной.

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *