<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ejudge.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cher</id>
	<title>EjudgeWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://ejudge.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cher"/>
	<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php/Special:Contributions/Cher"/>
	<updated>2026-04-12T09:01:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Serve.cfg:global:max_input_size&amp;diff=6874</id>
		<title>Serve.cfg:global:max input size</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Serve.cfg:global:max_input_size&amp;diff=6874"/>
		<updated>2024-12-30T13:24:04Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:global|Глобальные конфигурационные параметры]]/&amp;lt;tt&amp;gt;[[Serve.cfg:global:max_input_size|max_input_size]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данный параметр позволяет задать&lt;br /&gt;
максимальный размер пользовательских данных при&lt;br /&gt;
[[Запуск на пользовательских данных|запуске на пользовательских данных]]&lt;br /&gt;
одного пользователя в одном турнире.&lt;br /&gt;
&lt;br /&gt;
Значение параметра по умолчанию равно 1024.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Пример:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 max_input_size = 512&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.10.0|3.10.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.13.0&amp;diff=6873</id>
		<title>Изменения в версии 3.13.0</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.13.0&amp;diff=6873"/>
		<updated>2024-12-29T13:01:18Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.13.0]]&lt;br /&gt;
&lt;br /&gt;
Время выхода: 25 декабря 2024 г.&lt;br /&gt;
&lt;br /&gt;
[[Изменения в версии 3.12.0|Предыдущая версия]]&lt;br /&gt;
&lt;br /&gt;
=== Обновление с предыдущих версий ===&lt;br /&gt;
&lt;br /&gt;
После инсталляции новой версии ejudge обязательно выполните команды &amp;lt;code&amp;gt;ejudge-suid-setup&amp;lt;/code&amp;gt;&lt;br /&gt;
и &amp;lt;code&amp;gt;ejudge-upgrade-web&amp;lt;/code&amp;gt; из-под пользователя root и команду&lt;br /&gt;
&amp;lt;code&amp;gt;ejudge-configure-compilers&amp;lt;/code&amp;gt; из-под пользователя ejudge.&lt;br /&gt;
&lt;br /&gt;
=== Список Pull Requests ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/blackav/ejudge/milestone/6?closed=1 Список изменений на GitHub]&lt;br /&gt;
&lt;br /&gt;
=== Главные новые возможности и улучшения ===&lt;br /&gt;
&lt;br /&gt;
* Добавлена поддержка [[Правила IOI расчета баллов|режима слияния подгрупп (правила IOI)]].&lt;br /&gt;
* Добавлен универсальный плагин для [[Аутентификация с помощью OAUTH2|аутентификации по OIDC]].&lt;br /&gt;
* Переработан механизм [[Улучшенная поддержка серверов компиляции|взаимодействия сервера турнира и агентов компиляции]].&lt;br /&gt;
* Улучшена поддержка [[Задачи на неполные программы|задач на неполные программы]].&lt;br /&gt;
* В HTML-условиях поддерживается MathJax3.&lt;br /&gt;
* Добавлен плагин для отправки нотификаций в redis streams.&lt;br /&gt;
* Обновлена программа [[ej-polygon]] импорта задач из системы Polygon.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-compile]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается аргумент командной строки &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, в котором&lt;br /&gt;
передаётся серийный номер параллельного запуска программы на одном&lt;br /&gt;
хосте. Этот параметр используется при запуске процесса компиляции&lt;br /&gt;
в контейнере, чтобы использовать отдельный идентификатор пользователя&lt;br /&gt;
компиляции. Параллельные компиляции на одном хосте будут выполняться&lt;br /&gt;
под разными идентификаторами пользователя и не будут влиять&lt;br /&gt;
друг на друга.&lt;br /&gt;
&lt;br /&gt;
Поддерживаются расширенные свойства скомпилированных файлов.&lt;br /&gt;
Они активируются с помощью установки глобального конфигурационного&lt;br /&gt;
параметра &amp;lt;code&amp;gt;[[Serve.cfg:global:enable_run_props|enable_run_props]]&amp;lt;/code&amp;gt; турнира. В этом случае в скрипт&lt;br /&gt;
компиляции передается третий параметр &amp;amp;mdash; путь к файлу,&lt;br /&gt;
в который скрипт компиляции может записать дополнительные свойства&lt;br /&gt;
сгенерированного исполняемого файла. Этот файл передается&lt;br /&gt;
в сервис запуска решений.&lt;br /&gt;
&lt;br /&gt;
При копировании файлов из каталога, заданного с помощью конфигурационного&lt;br /&gt;
параметра &amp;lt;code&amp;gt;[[serve.cfg:problem:extra_src_dir|extra_src_dir]]&amp;lt;/code&amp;gt;, в рабочий каталог компиляции&lt;br /&gt;
выполняется рекурсивное копирование.&lt;br /&gt;
&lt;br /&gt;
Для [[Lang:tsnode|Typescript]] поддерживается альтернативный транслятор tsx.&lt;br /&gt;
&lt;br /&gt;
В ejudge.xml поддерживается возможность не запускать инстансы ej-compile и ej-super-run (&lt;br /&gt;
[[ejudge.xml:host_options:host:option|parallelism]] и&lt;br /&gt;
[[ejudge.xml:host_options:host:option|compile_parallelism]] могут быть равны 0).&lt;br /&gt;
&lt;br /&gt;
=== [[ej-compile-control]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается аргумент командной строки &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, который&lt;br /&gt;
передаётся в [[ej-compile]].&lt;br /&gt;
&lt;br /&gt;
=== [[ej-contests]] ===&lt;br /&gt;
&lt;br /&gt;
В конфигурационном параметре [[Serve.cfg:problem:open_tests|open_tests]] поддерживатся видимость тестов&lt;br /&gt;
&amp;lt;code&amp;gt;icpc&amp;lt;/code&amp;gt;. Если для группы тестов установлена видимость &amp;lt;code&amp;gt;icpc&amp;lt;/code&amp;gt;, то&lt;br /&gt;
участнику турнира отображается только балл и минимальная информация&lt;br /&gt;
о первом непрошедшем тесте в группе.&lt;br /&gt;
&lt;br /&gt;
Если у задачи была хотя бы одна группа тестов с видимостью icpc,&lt;br /&gt;
протокол тестирования для участника показывает только информацию&lt;br /&gt;
об открытых тестах и суммарную информацию по группам тестов.&lt;br /&gt;
&lt;br /&gt;
Добавлена конфигурационная переменная задачи &amp;lt;code&amp;gt;[[Serve.cfg:problem:standard_valuer|standard_valuer]]&amp;lt;/code&amp;gt;,&lt;br /&gt;
которая позволяет задать стандартную программу оценивания [[gvaluer]] и не копировать её каждый раз&lt;br /&gt;
в каталог турнира.&lt;br /&gt;
&lt;br /&gt;
Поддерживается экспорт архивов посылок в фоновом режиме.&lt;br /&gt;
После нажатия &amp;quot;Download archive of runs&amp;quot; и выбора опций&lt;br /&gt;
скачивания решений создаётся фоновое задание, статус исполнения&lt;br /&gt;
которого можно отслеживать. Когда подготовка архива будет&lt;br /&gt;
закончена, архив можно будет скачать по ссылке.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:get-user|get-user]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:copy-user-info|copy-user-info]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:change-registration|change-registration]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:problem-status-json|problem-status-json]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:list-languages|list-languages]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:create-user-session|create-user-session]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:change-registrations|change-registrations]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка API-вызова &amp;lt;code&amp;gt;[[API:priv:special-flow|special-flow]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В протоколах тестирования отображается размер использованной памяти (RSS).&lt;br /&gt;
Это поддерживается только в случае запуска решений в контейнере.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр &amp;lt;code&amp;gt;[[Serve.cfg:global:enable_run_props|enable_run_props]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Исправлена ошибка, из-за которой не работала смена языка интерфейса.&lt;br /&gt;
&lt;br /&gt;
Если apache не может подключиться к ej-contests, клиенту возвращается http status 500.&lt;br /&gt;
&lt;br /&gt;
Добавлены атрибуты&lt;br /&gt;
&amp;lt;code&amp;gt;[[contest.xml:enable_user_finish|enable_user_finish]]&amp;lt;/code&amp;gt;,&lt;br /&gt;
&amp;lt;code&amp;gt;[[contest.xml:disable_user_finish|disable_user_finish]]&amp;lt;/code&amp;gt;, которые модифицируют возможность&lt;br /&gt;
пользовательского завершения турнира.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:language:default_disabled|default_disabled]]&amp;lt;/code&amp;gt;&lt;br /&gt;
языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:language:version|version]]&amp;lt;/code&amp;gt; языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:language:disable_auto_update|disable_auto_update]]&amp;lt;/code&amp;gt;&lt;br /&gt;
языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:global:enable_language_import|enable_language_import]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:global:language_import|language_import]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пользователь может завершить невиртуальный турнир в любой момент времени.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:problem:enable_group_merge|enable_group_merge]]&amp;lt;/code&amp;gt; задач.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:language:run_max_file_size|run_max_file_size]]&amp;lt;/code&amp;gt; языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:global:disable_bson_store|disable_bson_store]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-polygon]] ===&lt;br /&gt;
&lt;br /&gt;
При импорте из полигона поддерживаются баллы за тесты и группы тестов,&lt;br /&gt;
которые хранятся в элементах &amp;lt;code&amp;gt;tests&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;group&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поддерживается генерация параметров&lt;br /&gt;
[[serve.cfg:problem:test_score_list|test_score_list]],&lt;br /&gt;
[[serve.cfg:problem:open_tests|open_tests]],&lt;br /&gt;
[[serve.cfg:problem:final_open_tests|final_open_tests]].&lt;br /&gt;
&lt;br /&gt;
Поддерживается генерация файла valuer.cfg для оценивающей программы&lt;br /&gt;
[[gvaluer]].&lt;br /&gt;
&lt;br /&gt;
При импорте турнира из полигона задачи сортируются по строковому&lt;br /&gt;
значению ключа задачи, он же используется для короткого имени задачи.&lt;br /&gt;
&lt;br /&gt;
Добавлена опция enable_rss_limit при импорте из полигона.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-suid-container]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается переключение в разные непривилегированные пользователи&lt;br /&gt;
для параллельной компиляции.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-super-run]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ej-super-server]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается заголовок 'Authorization:' для последующей реализации API-вызовов.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;login-action-json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== [[ejudge-control]] ===&lt;br /&gt;
&lt;br /&gt;
Добавлена опция --compile-queue.&lt;br /&gt;
&lt;br /&gt;
=== [[gvaluer]] ===&lt;br /&gt;
&lt;br /&gt;
При компиляции ejudge программа автоматически компилируется и инсталлируется&lt;br /&gt;
в каталог с проверяющими программами. Для этого в системе должен быть&lt;br /&gt;
установлен компилятор C++.&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Serve.cfg:problem:enable_group_merge&amp;diff=6872</id>
		<title>Serve.cfg:problem:enable group merge</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Serve.cfg:problem:enable_group_merge&amp;diff=6872"/>
		<updated>2024-12-29T13:01:17Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:problem|Конфигурационные параметры задач]]/&amp;lt;code&amp;gt;[[Serve.cfg:problem:enable_group_merge|enable_group_merge]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если данный конфигурационный параметр установлен в положительное значение, для текущей задачи&lt;br /&gt;
включается [[Правила IOI расчета баллов|режим слияния подгрупп (правила IOI)]].&lt;br /&gt;
&lt;br /&gt;
Параметр наследуется из абстрактной задачи.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
 [problem]&lt;br /&gt;
 enable_group_merge&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Serve.cfg:language:run_max_file_size&amp;diff=6871</id>
		<title>Serve.cfg:language:run max file size</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Serve.cfg:language:run_max_file_size&amp;diff=6871"/>
		<updated>2024-12-29T13:01:17Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:language|Конфигурационные параметры языков]]/&amp;lt;code&amp;gt;[[Serve.cfg:language:run_max_file_size|run_max_file_size]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если данный конфигурационный параметр языка программирования установлен в положительное значение,&lt;br /&gt;
при выполнении программ на данном языке будет использоваться указанное ограничение&lt;br /&gt;
на максимальный размер файла, а не ограничение,&lt;br /&gt;
указанное в параметре &amp;lt;code&amp;gt;[[Serve.cfg:problem:max_file_size|max_file_size]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Данный конфигурационный параметр может быть полезным при запуске программ на языках .Net.&lt;br /&gt;
По непонятной причине программы на [[Lang:dotnet-cs|C#]] не запускаются, если это ограничение&lt;br /&gt;
меньше &amp;lt;code&amp;gt;4096G&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Serve.cfg:global:enable_language_import&amp;diff=6869</id>
		<title>Serve.cfg:global:enable language import</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Serve.cfg:global:enable_language_import&amp;diff=6869"/>
		<updated>2024-12-29T13:01:16Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:global|Глобальные конфигурационные параметры]]/&amp;lt;code&amp;gt;[[Serve.cfg:global:enable_language_import|enable_language_import]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если данный конфигурационный параметр установлен в положительное значение,&lt;br /&gt;
включается [[Улучшенная поддержка серверов компиляции|улучшенная поддержка серверов компиляции]].&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 enable_language_import&lt;br /&gt;
 language_import = &amp;quot;enable all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Serve.cfg:global:language_import&amp;diff=6870</id>
		<title>Serve.cfg:global:language import</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Serve.cfg:global:language_import&amp;diff=6870"/>
		<updated>2024-12-29T13:01:16Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:global|Глобальные конфигурационные параметры]]/&amp;lt;code&amp;gt;[[Serve.cfg:global:enable_language_import|enable_language_import]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данный конфигурационный параметр позволяет задавать список языков программирования,&lt;br /&gt;
импортируемых в данный турнир в режиме&lt;br /&gt;
[[Улучшенная поддержка серверов компиляции|улучшенной поддержки серверов компиляции]].&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 enable_language_import&lt;br /&gt;
 language_import = &amp;quot;enable all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Serve.cfg:global:disable_bson_store&amp;diff=6868</id>
		<title>Serve.cfg:global:disable bson store</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Serve.cfg:global:disable_bson_store&amp;diff=6868"/>
		<updated>2024-12-29T13:01:16Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:global|Глобальные конфигурационные параметры]]/&amp;lt;code&amp;gt;[[Serve.cfg:global:disable_bson_store|disable_bson_store]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если данный глобальный конфигурационный параметр установлен в положительное значение,&lt;br /&gt;
протоколы запуска будут храниться в формате XML, даже если при компиляции в системе была&lt;br /&gt;
обнаружена библиотека libbson.&lt;br /&gt;
&lt;br /&gt;
В противном случае, если при компиляции ejudge была включена поддержка BSON, для хранения&lt;br /&gt;
протоколов тестирования будет использоваться формат BSON.&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB_%D1%81%D0%BE_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8_%D1%81%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B9_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B&amp;diff=6867</id>
		<title>Файл со свойствами скомпилированной программы</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB_%D1%81%D0%BE_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8_%D1%81%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B9_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B&amp;diff=6867"/>
		<updated>2024-12-29T10:19:32Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[Файл со свойствами скомпилированной программы]]&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Gvaluer&amp;diff=6866</id>
		<title>Gvaluer</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Gvaluer&amp;diff=6866"/>
		<updated>2024-12-29T10:19:31Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Оценивающие программы]]/[[gvaluer]]&lt;br /&gt;
&lt;br /&gt;
=== Компиляция ===&lt;br /&gt;
&lt;br /&gt;
Программа находится в каталоге &amp;lt;tt&amp;gt;checkers&amp;lt;/tt&amp;gt; исходных текстов ejudge. Для компиляции необходим компилятор C++ с поддержкой C++11 (например, g++ 4.7 и выше).&lt;br /&gt;
 g++ -O2 -Wall -std=gnu++11 gvaluer.cpp -ogvaluer&lt;br /&gt;
&lt;br /&gt;
Откомпилированную программу можно поместить либо в каталог задачи, либо в каталог &amp;lt;tt&amp;gt;problems&amp;lt;/tt&amp;gt; турнира (то есть родительский каталог относительно каталога задачи).&lt;br /&gt;
&lt;br /&gt;
С версии [[изменения в версии 3.13.0|3.13.0]] и выше нет необходимости компилировать программу самостоятельно,&lt;br /&gt;
она инсталлируется в каталог проверяющих программ.&lt;br /&gt;
&lt;br /&gt;
=== Настройка [[serve.cfg]] ===&lt;br /&gt;
&lt;br /&gt;
Если программа gvaluer помещена в каталог &amp;lt;tt&amp;gt;problems&amp;lt;/tt&amp;gt;, то раздел определения задачи должен содержать следующую строку&lt;br /&gt;
 [[serve.cfg:problem:valuer_cmd|valuer_cmd]] = &amp;quot;../gvaluer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
С версии [[изменения в версии 3.13.0|3.13.0]] и выше рекомендуется использовать стандартную программу.&lt;br /&gt;
&lt;br /&gt;
 [[serve.cfg:problem:standard_valuer|standard_valuer]] = &amp;quot;gvaluer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
В каталоге задачи необходимо создать файл &amp;lt;tt&amp;gt;valuer.cfg&amp;lt;/tt&amp;gt;, в котором описывается структура групп тестов.&lt;br /&gt;
&lt;br /&gt;
=== Файл valuer.cfg ===&lt;br /&gt;
&lt;br /&gt;
Файл описывает структуру групп тестов. Файл имеет свободный формат, то есть элементы описания могут быть разделены произвольным количеством пробельных символов. Символ # используется для обозначения начала комментария. Символы, начиная от # и до конца текущей строки игнорируются. Синтаксис файла описывается следующей грамматикой:&lt;br /&gt;
&lt;br /&gt;
 file : [ global_definition ] { group_definition } EOF ;&lt;br /&gt;
 global_definition : &amp;quot;global&amp;quot; &amp;quot;{&amp;quot; { global_option } &amp;quot;}&amp;quot; ;  /* определяет настройки для всех групп тестов (с [[Изменения в версии 3.6.1|3.6.1]]) */&lt;br /&gt;
 global_option :&lt;br /&gt;
     &amp;quot;stat_to_users&amp;quot;                                       /* выводить информацию о прохождении всех групп для участников турнира */&lt;br /&gt;
   | &amp;quot;stat_to_judges&amp;quot;                                      /* выводить информацию о прохождении всех групп для привилегированных пользователей */&lt;br /&gt;
   ;&lt;br /&gt;
 group_definition : &amp;quot;group&amp;quot; GROUP_ID &amp;quot;{&amp;quot; { group_option } &amp;quot;}&amp;quot; ;&lt;br /&gt;
 group_option :&lt;br /&gt;
     &amp;quot;tests&amp;quot; FIRST_TEST_NUM &amp;quot;-&amp;quot; LAST_TEST_NUM &amp;quot;;&amp;quot;          /* определяет диапазон номеров тестов в этой группе */&lt;br /&gt;
   | &amp;quot;score&amp;quot; SCORE &amp;quot;;&amp;quot;                                     /* определяет балл за группу тестов */&lt;br /&gt;
   | &amp;quot;test_score&amp;quot; SCORE &amp;quot;;&amp;quot;                                /* определяет балл за один тест */&lt;br /&gt;
   | &amp;quot;requires&amp;quot; GROUP_ID { &amp;quot;,&amp;quot; GROUP_ID } &amp;quot;;&amp;quot;              /* перечисляет группы тестов, от которых зависит данная группа тестов */&lt;br /&gt;
   | &amp;quot;offline&amp;quot; &amp;quot;;&amp;quot;                                         /* тесты с off-line проверкой */&lt;br /&gt;
   | &amp;quot;sets_marked&amp;quot; &amp;quot;;&amp;quot;                                     /* установить флаг marked, если группа прошла (с [[Изменения в версии 2.3.27|2.3.27]]) */&lt;br /&gt;
   | &amp;quot;skip&amp;quot; &amp;quot;;&amp;quot;                                            /* безусловно пропустить данную группу тестов (с [[Изменения в версии 2.3.27|2.3.27]]) */&lt;br /&gt;
   | &amp;quot;sets_marked_if_passed&amp;quot; GROUP_ID { &amp;quot;,&amp;quot; GROUP_ID } &amp;quot;;&amp;quot; /* установить флаг marked, если прошли указанные группы тестов (с [[Изменения в версии 2.3.28|2.3.28]]) */&lt;br /&gt;
   | &amp;quot;pass_if_count&amp;quot; NUM &amp;quot;;&amp;quot;                               /* считать группу тестов прошедшей, если в ней прошло NUM тестов (с [[Изменения в версии 2.3.28|2.3.28]]) */&lt;br /&gt;
   | &amp;quot;skip_if_not_rejudge&amp;quot; &amp;quot;;&amp;quot;                             /* пропустить группу тестов, если это не повторное тестирование посылки (REJUDGE) (с [[Изменения в версии 3.0|3.0]]) */&lt;br /&gt;
   | &amp;quot;stat_to_judges&amp;quot; &amp;quot;;&amp;quot;                                  /* вывести статистику о прохождении данной группы в файл комментариев для судей (с [[Изменения в версии 3.3.0|3.3.0]]) */&lt;br /&gt;
   | &amp;quot;stat_to_users&amp;quot; &amp;quot;;&amp;quot;                                   /* вывести статистику о прохождении данной группы в файл комментариев для участников турнира (с [[Изменения в версии 3.6.1|3.6.1]]) */&lt;br /&gt;
   | &amp;quot;user_status&amp;quot; STATUS &amp;quot;;&amp;quot;                              /* установить пользовательский статус тестирования в указанный, если прошла данная группа тестов (с [[Изменения в версии 3.3.0|3.3.0]]) */&lt;br /&gt;
   | &amp;quot;test_all&amp;quot; &amp;quot;;&amp;quot;                                        /* тестировать на всех тестах даже группы с групповой оценкой (с [[Изменения в версии 3.3.0|3.3.0]]) */&lt;br /&gt;
   | &amp;quot;0_if&amp;quot; TEST { &amp;quot;,&amp;quot; TEST } &amp;quot;;&amp;quot;                          /* оценить группу в 0 баллов, если прошли только указанные тесты (с [[Изменения в версии 3.6.0|3.6.0]]) */&lt;br /&gt;
   | &amp;quot;0_if_subset&amp;quot; TEST { &amp;quot;,&amp;quot; TEST } &amp;quot;;&amp;quot;                   /* оценить группу в 0 баллов, если прошли только тесты из указанного множества тестов (с [[Изменения в версии 3.10.2|3.10.2]]) */&lt;br /&gt;
   ;&lt;br /&gt;
&lt;br /&gt;
Пример файла приведен далее&lt;br /&gt;
&lt;br /&gt;
 group 0 {&lt;br /&gt;
     tests 1-2;&lt;br /&gt;
     score 0;&lt;br /&gt;
     test_score 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 group 1 {&lt;br /&gt;
     tests 3-18;&lt;br /&gt;
     score 20;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 group 2 {&lt;br /&gt;
     tests 19-26;&lt;br /&gt;
     score 20;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 group 3 {&lt;br /&gt;
     tests 27-42;&lt;br /&gt;
     score 60;&lt;br /&gt;
     requires 1,2;&lt;br /&gt;
     offline;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Переменные окружения ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Переменные окружения&lt;br /&gt;
|-&lt;br /&gt;
! Имя !! значение !! описание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EJUDGE&amp;lt;/code&amp;gt; || любое значение || должна быть установлена&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EJUDGE_INTERACTIVE&amp;lt;/code&amp;gt; || любое значение || если установлена, см. &amp;lt;code&amp;gt;[[serve.cfg:problem:interactive_valuer|interactive_valuer]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EJUDGE_REJUDGE&amp;lt;/code&amp;gt; || любое значение || если установлена, то посылка перепроверяется&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EJUDGE_USER_SCORE&amp;lt;/code&amp;gt; || любое значение || если установлена, см &amp;lt;code&amp;gt;[[Serve.cfg:global:separate_user_score|separate_user_score]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EJUDGE_MARKED&amp;lt;/code&amp;gt; || любое значение || если установлена, см. &amp;lt;code&amp;gt;[[Serve.cfg:problem:valuer sets marked|valuer_sets_marked]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EJUDGE_GROUP_MERGE&amp;lt;/code&amp;gt; || любое значение || если установлена, см. &amp;lt;code&amp;gt;[[Serve.cfg:problem:enable_group_merge|enable_group_merge]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EJUDGE_LOCALE&amp;lt;/code&amp;gt; || ID языка (int) || если установлена, см. &amp;lt;code&amp;gt;[[serve.cfg:global:checker_locale|checker_locale]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.13.0&amp;diff=6865</id>
		<title>Изменения в версии 3.13.0</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.13.0&amp;diff=6865"/>
		<updated>2024-12-29T07:37:07Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.13.0]]&lt;br /&gt;
&lt;br /&gt;
Время выхода: 25 декабря 2024 г.&lt;br /&gt;
&lt;br /&gt;
[[Изменения в версии 3.12.0|Предыдущая версия]]&lt;br /&gt;
&lt;br /&gt;
=== Обновление с предыдущих версий ===&lt;br /&gt;
&lt;br /&gt;
После инсталляции новой версии ejudge обязательно выполните команды &amp;lt;code&amp;gt;ejudge-suid-setup&amp;lt;/code&amp;gt;&lt;br /&gt;
и &amp;lt;code&amp;gt;ejudge-upgrade-web&amp;lt;/code&amp;gt; из-под пользователя root и команду&lt;br /&gt;
&amp;lt;code&amp;gt;ejudge-configure-compilers&amp;lt;/code&amp;gt; из-под пользователя ejudge.&lt;br /&gt;
&lt;br /&gt;
=== Список Pull Requests ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/blackav/ejudge/milestone/6?closed=1 Список изменений на GitHub]&lt;br /&gt;
&lt;br /&gt;
=== Главные новые возможности и улучшения ===&lt;br /&gt;
&lt;br /&gt;
* Добавлена поддержка [[Правила IOI расчета баллов|режима слияния подгрупп (правила IOI)]].&lt;br /&gt;
* Добавлен универсальный плагин для [[Аутентификация с помощью OAUTH2|аутентификации по OIDC]].&lt;br /&gt;
* Переработан механизм [[Улучшенная поддержка серверов компиляции|взаимодействия сервера турнира и агентов компиляции]].&lt;br /&gt;
* Улучшена поддержка [[Задачи на неполные программы|задач на неполные программы]].&lt;br /&gt;
* В HTML-условиях поддерживается MathJax3.&lt;br /&gt;
* Добавлен плагин для отправки нотификаций в redis streams.&lt;br /&gt;
* Обновлена программа [[ej-polygon]] импорта задач из системы Polygon.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-compile]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается аргумент командной строки &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, в котором&lt;br /&gt;
передаётся серийный номер параллельного запуска программы на одном&lt;br /&gt;
хосте. Этот параметр используется при запуске процесса компиляции&lt;br /&gt;
в контейнере, чтобы использовать отдельный идентификатор пользователя&lt;br /&gt;
компиляции. Параллельные компиляции на одном хосте будут выполняться&lt;br /&gt;
под разными идентификаторами пользователя и не будут влиять&lt;br /&gt;
друг на друга.&lt;br /&gt;
&lt;br /&gt;
Поддерживаются расширенные свойства скомпилированных файлов.&lt;br /&gt;
Они активируются с помощью установки глобального конфигурационного&lt;br /&gt;
параметра &amp;lt;code&amp;gt;[[Serve.cfg:global:enable_run_props|enable_run_props]]&amp;lt;/code&amp;gt; турнира. В этом случае в скрипт&lt;br /&gt;
компиляции передается третий параметр &amp;amp;mdash; путь к файлу,&lt;br /&gt;
в который скрипт компиляции может записать дополнительные свойства&lt;br /&gt;
сгенерированного исполняемого файла. Этот файл передается&lt;br /&gt;
в сервис запуска решений.&lt;br /&gt;
&lt;br /&gt;
При копировании файлов из каталога, заданного с помощью конфигурационного&lt;br /&gt;
параметра &amp;lt;code&amp;gt;[[serve.cfg:problem:extra_src_dir|extra_src_dir]]&amp;lt;/code&amp;gt;, в рабочий каталог компиляции&lt;br /&gt;
выполняется рекурсивное копирование.&lt;br /&gt;
&lt;br /&gt;
Для [[Lang:tsnode|Typescript]] поддерживается альтернативный транслятор tsx.&lt;br /&gt;
&lt;br /&gt;
В ejudge.xml поддерживается возможность не запускать инстансы ej-compile и ej-super-run (&lt;br /&gt;
[[ejudge.xml:host_options:host:option|parallelism]] и&lt;br /&gt;
[[ejudge.xml:host_options:host:option|compile_parallelism]] могут быть равны 0).&lt;br /&gt;
&lt;br /&gt;
=== [[ej-compile-control]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается аргумент командной строки &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, который&lt;br /&gt;
передаётся в [[ej-compile]].&lt;br /&gt;
&lt;br /&gt;
=== [[ej-contests]] ===&lt;br /&gt;
&lt;br /&gt;
В конфигурационном параметре [[Serve.cfg:problem:open_tests|open_tests]] поддерживатся видимость тестов&lt;br /&gt;
&amp;lt;code&amp;gt;icpc&amp;lt;/code&amp;gt;. Если для группы тестов установлена видимость &amp;lt;code&amp;gt;icpc&amp;lt;/code&amp;gt;, то&lt;br /&gt;
участнику турнира отображается только балл и минимальная информация&lt;br /&gt;
о первом непрошедшем тесте в группе.&lt;br /&gt;
&lt;br /&gt;
Если у задачи была хотя бы одна группа тестов с видимостью icpc,&lt;br /&gt;
протокол тестирования для участника показывает только информацию&lt;br /&gt;
об открытых тестах и суммарную информацию по группам тестов.&lt;br /&gt;
&lt;br /&gt;
Добавлена конфигурационная переменная задачи &amp;lt;code&amp;gt;[[Serve.cfg:problem:standard_valuer|standard_valuer]]&amp;lt;/code&amp;gt;,&lt;br /&gt;
которая позволяет задать стандартную программу оценивания [[gvaluer]] и не копировать её каждый раз&lt;br /&gt;
в каталог турнира.&lt;br /&gt;
&lt;br /&gt;
Поддерживается экспорт архивов посылок в фоновом режиме.&lt;br /&gt;
После нажатия &amp;quot;Download archive of runs&amp;quot; и выбора опций&lt;br /&gt;
скачивания решений создаётся фоновое задание, статус исполнения&lt;br /&gt;
которого можно отслеживать. Когда подготовка архива будет&lt;br /&gt;
закончена, архив можно будет скачать по ссылке.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:get-user|get-user]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:copy-user-info|copy-user-info]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:change-registration|change-registration]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:problem-status-json|problem-status-json]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:list-languages|list-languages]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:create-user-session|create-user-session]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:change-registrations|change-registrations]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка API-вызова &amp;lt;code&amp;gt;[[API:priv:special-flow|special-flow]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В протоколах тестирования отображается размер использованной памяти (RSS).&lt;br /&gt;
Это поддерживается только в случае запуска решений в контейнере.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр &amp;lt;code&amp;gt;[[Serve.cfg:global:enable_run_props|enable_run_props]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Исправлена ошибка, из-за которой не работала смена языка интерфейса.&lt;br /&gt;
&lt;br /&gt;
Если apache не может подключиться к ej-contests, клиенту возвращается http status 500.&lt;br /&gt;
&lt;br /&gt;
Добавлены атрибуты&lt;br /&gt;
&amp;lt;code&amp;gt;[[contest.xml:enable_user_finish|enable_user_finish]]&amp;lt;/code&amp;gt;,&lt;br /&gt;
&amp;lt;code&amp;gt;[[contest.xml:disable_user_finish|disable_user_finish]]&amp;lt;/code&amp;gt;, которые модифицируют возможность&lt;br /&gt;
пользовательского завершения турнира.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:language:default_disabled|default_disabled]]&amp;lt;/code&amp;gt;&lt;br /&gt;
языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:language:version|version]]&amp;lt;/code&amp;gt; языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:language:disable_auto_update|disable_auto_update]]&amp;lt;/code&amp;gt;&lt;br /&gt;
языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр [[Serve.cfg:global:enable_language_import|enable_language_import]].&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр [[Serve.cfg:global:language_import|language_import]].&lt;br /&gt;
&lt;br /&gt;
Пользователь может завершить невиртуальный турнир в любой момент времени.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:problem:enable_group_merge|enable_group_merge]] задач.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:language:run_max_file_size|run_max_file_size]] языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр [[Serve.cfg:global:disable_bson_store|disable_bson_store]].&lt;br /&gt;
&lt;br /&gt;
=== [[ej-polygon]] ===&lt;br /&gt;
&lt;br /&gt;
При импорте из полигона поддерживаются баллы за тесты и группы тестов,&lt;br /&gt;
которые хранятся в элементах &amp;lt;code&amp;gt;tests&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;group&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поддерживается генерация параметров&lt;br /&gt;
[[serve.cfg:problem:test_score_list|test_score_list]],&lt;br /&gt;
[[serve.cfg:problem:open_tests|open_tests]],&lt;br /&gt;
[[serve.cfg:problem:final_open_tests|final_open_tests]].&lt;br /&gt;
&lt;br /&gt;
Поддерживается генерация файла valuer.cfg для оценивающей программы&lt;br /&gt;
[[gvaluer]].&lt;br /&gt;
&lt;br /&gt;
При импорте турнира из полигона задачи сортируются по строковому&lt;br /&gt;
значению ключа задачи, он же используется для короткого имени задачи.&lt;br /&gt;
&lt;br /&gt;
Добавлена опция enable_rss_limit при импорте из полигона.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-suid-container]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается переключение в разные непривилегированные пользователи&lt;br /&gt;
для параллельной компиляции.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-super-run]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ej-super-server]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается заголовок 'Authorization:' для последующей реализации API-вызовов.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;login-action-json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== [[ejudge-control]] ===&lt;br /&gt;
&lt;br /&gt;
Добавлена опция --compile-queue.&lt;br /&gt;
&lt;br /&gt;
=== [[gvaluer]] ===&lt;br /&gt;
&lt;br /&gt;
При компиляции ejudge программа автоматически компилируется и инсталлируется&lt;br /&gt;
в каталог с проверяющими программами. Для этого в системе должен быть&lt;br /&gt;
установлен компилятор C++.&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Serve.cfg:language:default_disabled&amp;diff=6862</id>
		<title>Serve.cfg:language:default disabled</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Serve.cfg:language:default_disabled&amp;diff=6862"/>
		<updated>2024-12-29T07:37:06Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:language|Конфигурационные параметры языков]]/&amp;lt;code&amp;gt;[[Serve.cfg:language:default_disabled|default_disabled]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если данный конфиграционный параметр установлен в положительное значение, соответствующий язык не&lt;br /&gt;
импортируется в турнир в режиме&lt;br /&gt;
[[Улучшенная поддержка серверов компиляции|улучшенной поддержке серверов компиляции]]&lt;br /&gt;
при указании директивы&lt;br /&gt;
&lt;br /&gt;
 language_import = &amp;quot;enable all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Данный язык потребуется импортировать явно.&lt;br /&gt;
&lt;br /&gt;
Данный конфигурационный параметр предназначен для использования в конфигурационном файле сервера&lt;br /&gt;
компиляции [[ej-compile]]. В конфигурационном файле турнира [[Serve.cfg]] он игнорируется.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
 [language]&lt;br /&gt;
 id = 77&lt;br /&gt;
 short_name = &amp;quot;custom&amp;quot;&lt;br /&gt;
 long_name = &amp;quot;Custom&amp;quot;&lt;br /&gt;
 default_disabled&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Serve.cfg:language:version&amp;diff=6864</id>
		<title>Serve.cfg:language:version</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Serve.cfg:language:version&amp;diff=6864"/>
		<updated>2024-12-29T07:37:06Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:language|Конфигурационные параметры языков]]/&amp;lt;code&amp;gt;[[Serve.cfg:language:version|version]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данный конфигурационный параметр позволяет указать версию языка программирования. Он предназначен&lt;br /&gt;
для использования в конфигурационном файле &amp;lt;code&amp;gt;compile.cfg&amp;lt;/code&amp;gt; компонента [[ej-compile]].&lt;br /&gt;
Он полезен, чтобы отделить версию компилятора от названия компилятора. Например,&lt;br /&gt;
&lt;br /&gt;
 [language]&lt;br /&gt;
 id = 52&lt;br /&gt;
 short_name = &amp;quot;clang++&amp;quot;&lt;br /&gt;
 long_name = &amp;quot;clang C++&amp;quot;&lt;br /&gt;
 arch = &amp;quot;linux-shared&amp;quot;&lt;br /&gt;
 src_sfx = &amp;quot;.cpp&amp;quot;&lt;br /&gt;
 cmd = &amp;quot;clang++&amp;quot;&lt;br /&gt;
 version = &amp;quot;18.1.8&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Serve.cfg:language:disable_auto_update&amp;diff=6863</id>
		<title>Serve.cfg:language:disable auto update</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Serve.cfg:language:disable_auto_update&amp;diff=6863"/>
		<updated>2024-12-29T07:37:06Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:language|Конфигурационные параметры языков]]/&amp;lt;code&amp;gt;[[Serve.cfg:language:disable_auto_update|disable_auto_update]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данный конфигурационный параметр предназначен&lt;br /&gt;
для использования в конфигурационном файле &amp;lt;code&amp;gt;compile.cfg&amp;lt;/code&amp;gt; компонента [[ej-compile]].&lt;br /&gt;
Он запрещает обновление конфигурации данного языка программирования программой&lt;br /&gt;
[[ejudge-configure-compilers]]. Конфигурационный параметр полезен, когда в файл compile.cfg&lt;br /&gt;
были внесены ручные изменения, и нежелательно, чтобы эти изменения были затерты программой&lt;br /&gt;
ejudge-configure-compilers.&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Serve.cfg:global:enable_run_props&amp;diff=6861</id>
		<title>Serve.cfg:global:enable run props</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Serve.cfg:global:enable_run_props&amp;diff=6861"/>
		<updated>2024-12-29T07:37:05Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:global|Глобальные конфигурационные параметры]]/&amp;lt;code&amp;gt;[[Serve.cfg:global:enable_run_props|enable_run_props]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если переменная установлена в положительное значение, результатом компиляции программы может быть&lt;br /&gt;
не только исполняемый файл, как в предыдущих версиях, но и дополнительный файл со свойствами скомпилированной&lt;br /&gt;
программы.&lt;br /&gt;
&lt;br /&gt;
При включенном &amp;lt;code&amp;gt;enable_run_props&amp;lt;/code&amp;gt; компонент [[ej-compile]] передаёт скрипту компиляции не два, а три&lt;br /&gt;
аргумента командной строки:&lt;br /&gt;
* имя файла с исходным кодом;&lt;br /&gt;
* имя файла, в который должен быть записан результат компиляции;&lt;br /&gt;
* имя выходного файла с дополнительными свойствами скомпилированной программы.&lt;br /&gt;
&lt;br /&gt;
Если скрипт компиляции не создал выходной файл со свойствами, это не рассматривается как ошибка,&lt;br /&gt;
а в дальнейшем скомпилированная программа передаётся на выполнение по обычной схеме.&lt;br /&gt;
&lt;br /&gt;
Файл со свойствами должен быть корректным JSON-файлом с одним объектом со следующими атрибутами:&lt;br /&gt;
* &amp;lt;code&amp;gt;start_cmd&amp;lt;/code&amp;gt; &amp;amp;mdash; путь к интерпретатору, который должен использоваться для запуска программы на исполнение;&lt;br /&gt;
* &amp;lt;code&amp;gt;start_args&amp;lt;/code&amp;gt; &amp;amp;mdash; аргументы командной строки для интерпретатора;&lt;br /&gt;
* &amp;lt;code&amp;gt;start_env&amp;lt;/code&amp;gt; &amp;amp;mdash; переменные окружения, которые должны быть установлены при запуске тестируемой программы на выполнение;&lt;br /&gt;
* &amp;lt;code&amp;gt;is_archive&amp;lt;/code&amp;gt; &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;code&amp;gt;is_archive&amp;lt;/code&amp;gt; равен &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, должен быть указан &amp;lt;code&amp;gt;start_cmd&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;code&amp;gt;is_archive&amp;lt;/code&amp;gt; не задан или равен &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;, последним аргументом командной строки&lt;br /&gt;
запуска всегда добавляется имя исполняемой запускаемой программы, имя не нужно явно записывать&lt;br /&gt;
в &amp;lt;code&amp;gt;start_args&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;code&amp;gt;start_args&amp;lt;/code&amp;gt; не задан, он формируется автоматически из &amp;lt;code&amp;gt;start_cmd&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, скрипт для &amp;quot;компиляции&amp;quot; питон-программ может генерировать следующий JSON:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;start_cmd&amp;quot;: &amp;quot;/bin/python3&amp;quot;,&lt;br /&gt;
   &amp;quot;start_args&amp;quot;: [ &amp;quot;/bin/python3&amp;quot;, &amp;quot;-s&amp;quot; ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Contest.xml:enable_user_finish&amp;diff=6860</id>
		<title>Contest.xml:enable user finish</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Contest.xml:enable_user_finish&amp;diff=6860"/>
		<updated>2024-12-29T07:37:05Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[contest.xml]]/[[contest.xml:contest|contest]]/&amp;lt;code&amp;gt;[[contest.xml:enable_user_finish|enable_user_finish]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот атрибут разрешает завершение турнира пользователем в том случае, когда оно по умолчанию запрещено.&lt;br /&gt;
&lt;br /&gt;
Завершение турнира по умолчанию запрещено в турнирах неограниченной продолжительности.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;contest id=&amp;quot;auto&amp;quot; enable_user_finish=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;/contest&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Contest.xml:disable_user_finish&amp;diff=6859</id>
		<title>Contest.xml:disable user finish</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Contest.xml:disable_user_finish&amp;diff=6859"/>
		<updated>2024-12-29T07:37:04Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[contest.xml]]/[[contest.xml:contest|contest]]/&amp;lt;code&amp;gt;[[contest.xml:disable_user_finish|disable_user_finish]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот атрибут запрещает завершение турнира пользователем в том случае, когда оно по умолчанию разрешено.&lt;br /&gt;
&lt;br /&gt;
Завершение турнира по умолчанию разрешено в турнирах ограниченной продолжительности.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;contest id=&amp;quot;auto&amp;quot; disable_user_finish=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;/contest&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_ejudge&amp;diff=6858</id>
		<title>Система ejudge</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_ejudge&amp;diff=6858"/>
		<updated>2024-12-29T05:19:18Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ejudge - это система для проведения различных мероприятий, в которых необходима автоматическая проверка программ.&lt;br /&gt;
Система может применяться для:&lt;br /&gt;
&lt;br /&gt;
* Проведения олимпиад.&lt;br /&gt;
* Поддержки учебных курсов.&lt;br /&gt;
* [[Поддерживаемые возможности|Подробнее...]]&lt;br /&gt;
&lt;br /&gt;
=== Содержание ===&lt;br /&gt;
&lt;br /&gt;
* [[Инсталляция]]&lt;br /&gt;
* [[Использование]]&lt;br /&gt;
* [[Расширение]]&lt;br /&gt;
* [[Разработка]]&lt;br /&gt;
* [[Патч к ядру Linux]]&lt;br /&gt;
&lt;br /&gt;
=== Текущая версия (25 декабря 2024 г) ===&lt;br /&gt;
&lt;br /&gt;
* Система ejudge: [http://www.ejudge.ru/download/ejudge-3.13.0.tgz 3.13.0], [[Изменения в версии 3.13.0]]&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B9&amp;diff=6857</id>
		<title>История версий</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B9&amp;diff=6857"/>
		<updated>2024-12-29T05:19:18Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| 3.13.0&lt;br /&gt;
| 2024/12/25&lt;br /&gt;
| [[Изменения в версии 3.13.0]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.12.0&lt;br /&gt;
| 2023/12/29&lt;br /&gt;
| [[Изменения в версии 3.12.0]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.11.0&lt;br /&gt;
| 2023/08/12&lt;br /&gt;
| [[Изменения в версии 3.11.0]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.10.3&lt;br /&gt;
| 2023/05/21&lt;br /&gt;
| [[Изменения в версии 3.10.3]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.10.2&lt;br /&gt;
| 2023/03/25&lt;br /&gt;
| [[Изменения в версии 3.10.2]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.10.1&lt;br /&gt;
| 2023/01/31&lt;br /&gt;
| [[Изменения в версии 3.10.1]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.10.0&lt;br /&gt;
| 2022/12/26&lt;br /&gt;
| [[Изменения в версии 3.10.0]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.9.1&lt;br /&gt;
| 2022/03/23&lt;br /&gt;
| [[Изменения в версии 3.9.1]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.9.0&lt;br /&gt;
| 2021/12/27&lt;br /&gt;
| [[Изменения в версии 3.9.0]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.8.0&lt;br /&gt;
| 2020/02/01&lt;br /&gt;
| [[Изменения в версии 3.8.0]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.7.9&lt;br /&gt;
| 2018/12/31&lt;br /&gt;
| [[Изменения в версии 3.7.9]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.7.8&lt;br /&gt;
| 2018/09/06&lt;br /&gt;
| [[Изменения в версии 3.7.8]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.7.7&lt;br /&gt;
| 2018/04/11&lt;br /&gt;
| [[Изменения в версии 3.7.7]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.7.6&lt;br /&gt;
| 2018/02/25&lt;br /&gt;
| [[Изменения в версии 3.7.6]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.7.5&lt;br /&gt;
| 2018/01/16&lt;br /&gt;
| [[Изменения в версии 3.7.5]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.7.4&lt;br /&gt;
| 2017/12/31&lt;br /&gt;
| [[Изменения в версии 3.7.4]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.7.3&lt;br /&gt;
| 2017/11/14&lt;br /&gt;
| [[Изменения в версии 3.7.3]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.7.2&lt;br /&gt;
| 2017/10/27&lt;br /&gt;
| [[Изменения в версии 3.7.2]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.7.1&lt;br /&gt;
| 2017/10/12&lt;br /&gt;
| [[Изменения в версии 3.7.1]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.7.0&lt;br /&gt;
| 2017/09/28&lt;br /&gt;
| [[Изменения в версии 3.7.0]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.6.5&lt;br /&gt;
| 2017/07/07&lt;br /&gt;
| [[Изменения в версии 3.6.5]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.6.4&lt;br /&gt;
| 2017/05/23&lt;br /&gt;
| [[Изменения в версии 3.6.4]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.6.3&lt;br /&gt;
| 2017/05/22&lt;br /&gt;
| [[Изменения в версии 3.6.3]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.6.2&lt;br /&gt;
| 2017/04/15&lt;br /&gt;
| [[Изменения в версии 3.6.2]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.6.1&lt;br /&gt;
| 2017/04/12&lt;br /&gt;
| [[Изменения в версии 3.6.1]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.6.0&lt;br /&gt;
| 2017/01/29&lt;br /&gt;
| [[Изменения в версии 3.6.0]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.5.2&lt;br /&gt;
| 2016/05/16&lt;br /&gt;
| [[Изменения в версии 3.5.2]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.5.1&lt;br /&gt;
| 2016/01/31&lt;br /&gt;
| [[Изменения в версии 3.5.1]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.5.0&lt;br /&gt;
| 2015/12/30&lt;br /&gt;
| [[Изменения в версии 3.5.0]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.4.2&lt;br /&gt;
| 2015/09/27&lt;br /&gt;
| [[Изменения в версии 3.4.2]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.4.1&lt;br /&gt;
| 2015/06/27&lt;br /&gt;
| [[Изменения в версии 3.4.1]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.4.0&lt;br /&gt;
| 2015/06/26&lt;br /&gt;
| [[Изменения в версии 3.4.0]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.3.1&lt;br /&gt;
| 2015/01/18&lt;br /&gt;
| [[Изменения в версии 3.3.1]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.3.0&lt;br /&gt;
| 2015/01/15&lt;br /&gt;
| [[Изменения в версии 3.3.0]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.2.2&lt;br /&gt;
| 2014/12/28&lt;br /&gt;
| [[Изменения в версии 3.2.2]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.2.1&lt;br /&gt;
| 2014/12/20&lt;br /&gt;
| [[Изменения в версии 3.2.1]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.2.0&lt;br /&gt;
| 2014/12/01&lt;br /&gt;
| [[Изменения в версии 3.2.0]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.1.0&lt;br /&gt;
| 2014/10/25&lt;br /&gt;
| [[Изменения в версии 3.1.0]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.2&lt;br /&gt;
| 2014/09/17&lt;br /&gt;
| [[Изменения в версии 3.0.2]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.1&lt;br /&gt;
| 2014/09/03&lt;br /&gt;
| [[Изменения в версии 3.0.1]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| 2014/08/28&lt;br /&gt;
| [[Изменения в версии 3.0]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.29&lt;br /&gt;
| 2013/12/14&lt;br /&gt;
| [[Изменения в версии 2.3.29]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.28&lt;br /&gt;
| 2013/10/31&lt;br /&gt;
| [[Изменения в версии 2.3.28]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.27&lt;br /&gt;
| 2013/02/13&lt;br /&gt;
| [[Изменения в версии 2.3.27]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.26&lt;br /&gt;
| 2012/12/20&lt;br /&gt;
| [[Изменения в версии 2.3.26]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.25&lt;br /&gt;
| 2012/11/24&lt;br /&gt;
| [[Изменения в версии 2.3.25]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.24&lt;br /&gt;
| 2012/09/01&lt;br /&gt;
| [[Изменения в версии 2.3.24]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.23&lt;br /&gt;
| 2012/06/23&lt;br /&gt;
| [[Изменения в версии 2.3.23]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.22&lt;br /&gt;
| 2012/05/23&lt;br /&gt;
| [[Изменения в версии 2.3.22]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.21&lt;br /&gt;
| 2012/04/06&lt;br /&gt;
| [[Изменения в версии 2.3.21]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.20&lt;br /&gt;
| 2011/12/28&lt;br /&gt;
| [[Изменения в версии 2.3.20]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.19&lt;br /&gt;
| 2011/07/06&lt;br /&gt;
| [[Изменения в версии 2.3.19]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.18&lt;br /&gt;
| 2011/04/10&lt;br /&gt;
| [[Изменения в версии 2.3.18]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.17&lt;br /&gt;
| 2010/11/04&lt;br /&gt;
| [[Изменения в версии 2.3.17]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.16&lt;br /&gt;
| 2010/08/17&lt;br /&gt;
| [[Изменения в версии 2.3.16]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.15&lt;br /&gt;
| 2010/01/31&lt;br /&gt;
| [[Изменения в версии 2.3.15]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.14&lt;br /&gt;
| 2009/09/05&lt;br /&gt;
| [[Изменения в версии 2.3.14]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.13&lt;br /&gt;
| 2008/12/29&lt;br /&gt;
| [[Изменения в версии 2.3.13]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.12&lt;br /&gt;
| 2008/11/19&lt;br /&gt;
| [[Изменения в версии 2.3.12]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.11&lt;br /&gt;
| 2008/10/13&lt;br /&gt;
| [[Изменения в версии 2.3.11]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.10&lt;br /&gt;
| 2008/10/04&lt;br /&gt;
| [[Изменения в версии 2.3.10]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.9&lt;br /&gt;
| 2008/08/12&lt;br /&gt;
| [[Изменения в версии 2.3.9]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.8&lt;br /&gt;
| 2008/04/13&lt;br /&gt;
|[[Изменения в версии 2.3.8]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.7&lt;br /&gt;
| 2008/03/11&lt;br /&gt;
|[[Изменения в версии 2.3.7]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.6&lt;br /&gt;
| 2008/02/18&lt;br /&gt;
|[[Изменения в версии 2.3.6]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.5&lt;br /&gt;
| 2008/01/07&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.4&lt;br /&gt;
| 2007/12/26&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.3&lt;br /&gt;
| 2007/08/25&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.2&lt;br /&gt;
| 2007/02/06&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.1&lt;br /&gt;
| 2006/07/05&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.3.0&lt;br /&gt;
| 2006/06/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.49&lt;br /&gt;
| 2006/06/09&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.48&lt;br /&gt;
| 2006/04/30&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.47&lt;br /&gt;
| 2006/04/19&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.46&lt;br /&gt;
| 2006/03/19&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.45&lt;br /&gt;
| 2006/01/21&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.44&lt;br /&gt;
| 2005/12/07&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.43&lt;br /&gt;
| 2005/11/17&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.42&lt;br /&gt;
| 2005/09/30&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.41&lt;br /&gt;
| 2005/09/16&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.40&lt;br /&gt;
| 2005/09/02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.39&lt;br /&gt;
| 2005/08/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.38&lt;br /&gt;
| 2005/06/06&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.37&lt;br /&gt;
| 2005/04/22&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.36&lt;br /&gt;
| 2005/04/02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.35&lt;br /&gt;
| 2005/01/18&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.34&lt;br /&gt;
| 2005/01/08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.33&lt;br /&gt;
| 2004/10/29&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.32&lt;br /&gt;
| 2004/10/01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.31&lt;br /&gt;
| 2004/06/20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.30&lt;br /&gt;
| 2004/06/19&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.29&lt;br /&gt;
| 2004/04/20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.28&lt;br /&gt;
| 2004/04/01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.27&lt;br /&gt;
| 2004/03/27&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.26&lt;br /&gt;
| 2004/02/18&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.25&lt;br /&gt;
| 2003/12/29&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.24&lt;br /&gt;
| 2003/12/09&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.23&lt;br /&gt;
| 2003/11/21&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.22&lt;br /&gt;
| 2003/11/02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.21&lt;br /&gt;
| 2003/11/01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.20&lt;br /&gt;
| 2003/10/27&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.19&lt;br /&gt;
| 2003/10/26&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.18&lt;br /&gt;
| 2003/10/24&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.17&lt;br /&gt;
| 2003/10/24&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.16&lt;br /&gt;
| 2003/10/20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.15&lt;br /&gt;
| 2003/10/12&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.14&lt;br /&gt;
| 2003/10/06&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.13&lt;br /&gt;
| 2003/10/02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.12&lt;br /&gt;
| 2003/09/29&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.11&lt;br /&gt;
| 2003/09/21&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.10&lt;br /&gt;
| 2003/09/20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.9&lt;br /&gt;
| 2003/09/15&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.8&lt;br /&gt;
| 2003/09/06&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.7&lt;br /&gt;
| 2003/07/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.6&lt;br /&gt;
| 2003/07/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.5&lt;br /&gt;
| 2003/07/11&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.4&lt;br /&gt;
| 2003/07/10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.3&lt;br /&gt;
| 2003/07/01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.2&lt;br /&gt;
| 2003/06/30&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.1&lt;br /&gt;
| 2003/06/30&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.1.0&lt;br /&gt;
| 2003/06/30&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.9&lt;br /&gt;
| 2003/03/08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.8&lt;br /&gt;
| 2003/02/24&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.7&lt;br /&gt;
| 2003/02/16&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.6&lt;br /&gt;
| 2003/02/04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.5&lt;br /&gt;
| 2003/01/31&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.4&lt;br /&gt;
| 2003/01/28&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.3&lt;br /&gt;
| 2003/01/27&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.2&lt;br /&gt;
| 2003/01/06&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.1&lt;br /&gt;
| 2002/12/30&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2.0.0&lt;br /&gt;
| 2002/12/30&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.13.0&amp;diff=6856</id>
		<title>Изменения в версии 3.13.0</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.13.0&amp;diff=6856"/>
		<updated>2024-12-29T05:19:18Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.13.0]]&lt;br /&gt;
&lt;br /&gt;
Время выхода: 25 декабря 2024 г.&lt;br /&gt;
&lt;br /&gt;
[[Изменения в версии 3.12.0|Предыдущая версия]]&lt;br /&gt;
&lt;br /&gt;
=== Обновление с предыдущих версий ===&lt;br /&gt;
&lt;br /&gt;
После инсталляции новой версии ejudge обязательно выполните команды &amp;lt;code&amp;gt;ejudge-suid-setup&amp;lt;/code&amp;gt;&lt;br /&gt;
и &amp;lt;code&amp;gt;ejudge-upgrade-web&amp;lt;/code&amp;gt; из-под пользователя root и команду&lt;br /&gt;
&amp;lt;code&amp;gt;ejudge-configure-compilers&amp;lt;/code&amp;gt; из-под пользователя ejudge.&lt;br /&gt;
&lt;br /&gt;
=== Список Pull Requests ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/blackav/ejudge/milestone/6?closed=1 Список изменений на GitHub]&lt;br /&gt;
&lt;br /&gt;
=== Главные новые возможности и улучшения ===&lt;br /&gt;
&lt;br /&gt;
* Добавлена поддержка [[Правила IOI расчета баллов|режима слияния подгрупп (правила IOI)]].&lt;br /&gt;
* Добавлен универсальный плагин для [[Аутентификация с помощью OAUTH2|аутентификации по OIDC]].&lt;br /&gt;
* Переработан механизм [[Улучшенная поддержка серверов компиляции|взаимодействия сервера турнира и агентов компиляции]].&lt;br /&gt;
* Улучшена поддержка [[Задачи на неполные программы|задач на неполные программы]].&lt;br /&gt;
* В HTML-условиях поддерживается MathJax3.&lt;br /&gt;
* Добавлен плагин для отправки нотификаций в redis streams.&lt;br /&gt;
* Обновлена программа [[ej-polygon]] импорта задач из системы Polygon.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-compile]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается аргумент командной строки &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, в котором&lt;br /&gt;
передаётся серийный номер параллельного запуска программы на одном&lt;br /&gt;
хосте. Этот параметр используется при запуске процесса компиляции&lt;br /&gt;
в контейнере, чтобы использовать отдельный идентификатор пользователя&lt;br /&gt;
компиляции. Параллельные компиляции на одном хосте будут выполняться&lt;br /&gt;
под разными идентификаторами пользователя и не будут влиять&lt;br /&gt;
друг на друга.&lt;br /&gt;
&lt;br /&gt;
Поддерживаются расширенные свойства скомпилированных файлов.&lt;br /&gt;
Они активируются с помощью установки глобального конфигурационного&lt;br /&gt;
параметра [[Serve.cfg:global:enable_run_props|enable_run_props]] турнира. В этом случае в скрипт&lt;br /&gt;
компиляции передается третий параметр &amp;amp;mdash; путь к файлу,&lt;br /&gt;
в который скрипт компиляции может записать дополнительные свойства&lt;br /&gt;
сгенерированного исполняемого файла. Этот файл передается&lt;br /&gt;
в сервис запуска решений.&lt;br /&gt;
&lt;br /&gt;
При копировании файлов из каталога, заданного с помощью конфигурационного&lt;br /&gt;
параметра [[serve.cfg:problem:extra_src_dir|extra_src_dir]], в рабочий каталог компиляции&lt;br /&gt;
выполняется рекурсивное копирование.&lt;br /&gt;
&lt;br /&gt;
Для [[Lang:tsnode|Typescript]] поддерживается альтернативный транслятор tsx.&lt;br /&gt;
&lt;br /&gt;
В ejudge.xml поддерживается возможность не запускать инстансы ej-compile и ej-super-run (&lt;br /&gt;
[[ejudge.xml:host_options:host:option|parallelism]] и&lt;br /&gt;
[[ejudge.xml:host_options:host:option|compile_parallelism]] могут быть равны 0).&lt;br /&gt;
&lt;br /&gt;
=== [[ej-compile-control]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается аргумент командной строки &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, который&lt;br /&gt;
передаётся в [[ej-compile]].&lt;br /&gt;
&lt;br /&gt;
=== [[ej-contests]] ===&lt;br /&gt;
&lt;br /&gt;
В конфигурационном параметре [[Serve.cfg:problem:open_tests|open_tests]] поддерживатся видимость тестов&lt;br /&gt;
&amp;lt;code&amp;gt;icpc&amp;lt;/code&amp;gt;. Если для группы тестов установлена видимость &amp;lt;code&amp;gt;icpc&amp;lt;/code&amp;gt;, то&lt;br /&gt;
участнику турнира отображается только балл и минимальная информация&lt;br /&gt;
о первом непрошедшем тесте в группе.&lt;br /&gt;
&lt;br /&gt;
Если у задачи была хотя бы одна группа тестов с видимостью icpc,&lt;br /&gt;
протокол тестирования для участника показывает только информацию&lt;br /&gt;
об открытых тестах и суммарную информацию по группам тестов.&lt;br /&gt;
&lt;br /&gt;
Добавлена конфигурационная переменная задачи &amp;lt;code&amp;gt;[[Serve.cfg:problem:standard_valuer|standard_valuer]]&amp;lt;/code&amp;gt;,&lt;br /&gt;
которая позволяет задать стандартную программу оценивания [[gvaluer]] и не копировать её каждый раз&lt;br /&gt;
в каталог турнира.&lt;br /&gt;
&lt;br /&gt;
Поддерживается экспорт архивов посылок в фоновом режиме.&lt;br /&gt;
После нажатия &amp;quot;Download archive of runs&amp;quot; и выбора опций&lt;br /&gt;
скачивания решений создаётся фоновое задание, статус исполнения&lt;br /&gt;
которого можно отслеживать. Когда подготовка архива будет&lt;br /&gt;
закончена, архив можно будет скачать по ссылке.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:get-user|get-user]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:copy-user-info|copy-user-info]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:change-registration|change-registration]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:problem-status-json|problem-status-json]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:list-languages|list-languages]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:create-user-session|create-user-session]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:change-registrations|change-registrations]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка API-вызова &amp;lt;code&amp;gt;[[API:priv:special-flow|special-flow]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В протоколах тестирования отображается размер использованной памяти (RSS).&lt;br /&gt;
Это поддерживается только в случае запуска решений в контейнере.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр [[Serve.cfg:global:enable_run_props|enable_run_props]]..&lt;br /&gt;
&lt;br /&gt;
Исправлена ошибка, из-за которой не работала смена языка интерфейса.&lt;br /&gt;
&lt;br /&gt;
Если apache не может подключиться к ej-contests, клиенту возвращается http status 500.&lt;br /&gt;
&lt;br /&gt;
Добавлены атрибуты&lt;br /&gt;
[[contest.xml:enable_user_finish|enable_user_finish]],&lt;br /&gt;
[[contest.xml:disable_user_finish|disable_user_finish]], которые модифицируют возможность&lt;br /&gt;
пользовательского завершения турнира.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:language:default_disabled|default_disabled]] языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:language:version|version]] языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:language:disable_auto_update|disable_auto_update]]&lt;br /&gt;
языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр [[Serve.cfg:global:enable_language_import|enable_language_import]].&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр [[Serve.cfg:global:enable_language_import|enable_language_import]].&lt;br /&gt;
&lt;br /&gt;
Переработан механизм взаимодействия сервера турнира и агентов компиляции.&lt;br /&gt;
&lt;br /&gt;
Пользователь может завершить невиртуальный турнир в любой момент времени.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:problem:enable_group_merge|enable_group_merge]] задач.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:language:run_max_file_size|run_max_file_size]] языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр [[Serve.cfg:global:disable_bson_store|disable_bson_store]].&lt;br /&gt;
&lt;br /&gt;
=== [[ej-polygon]] ===&lt;br /&gt;
&lt;br /&gt;
При импорте из полигона поддерживаются баллы за тесты и группы тестов,&lt;br /&gt;
которые хранятся в элементах &amp;lt;code&amp;gt;tests&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;group&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поддерживается генерация параметров&lt;br /&gt;
[[serve.cfg:problem:test_score_list|test_score_list]],&lt;br /&gt;
[[serve.cfg:problem:open_tests|open_tests]],&lt;br /&gt;
[[serve.cfg:problem:final_open_tests|final_open_tests]].&lt;br /&gt;
&lt;br /&gt;
Поддерживается генерация файла valuer.cfg для оценивающей программы&lt;br /&gt;
[[gvaluer]].&lt;br /&gt;
&lt;br /&gt;
При импорте турнира из полигона задачи сортируются по строковому&lt;br /&gt;
значению ключа задачи, он же используется для короткого имени задачи.&lt;br /&gt;
&lt;br /&gt;
Добавлена опция enable_rss_limit при импорте из полигона.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-suid-container]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается переключение в разные непривилегированные пользователи&lt;br /&gt;
для параллельной компиляции.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-super-run]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ej-super-server]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается заголовок 'Authorization:' для последующей реализации API-вызовов.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;login-action-json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== [[ejudge-control]] ===&lt;br /&gt;
&lt;br /&gt;
Добавлена опция --compile-queue.&lt;br /&gt;
&lt;br /&gt;
=== [[gvaluer]] ===&lt;br /&gt;
&lt;br /&gt;
При компиляции ejudge программа автоматически компилируется и инсталлируется&lt;br /&gt;
в каталог с проверяющими программами. Для этого в системе должен быть&lt;br /&gt;
установлен компилятор C++.&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.12.0&amp;diff=6855</id>
		<title>Изменения в версии 3.12.0</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.12.0&amp;diff=6855"/>
		<updated>2024-12-29T05:19:17Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.12.0]]&lt;br /&gt;
&lt;br /&gt;
Время выхода: 29 декабря 2023 г.&lt;br /&gt;
&lt;br /&gt;
[[Изменения в версии 3.11.0|Предыдущая версия]] [[Изменения в версии 3.13.0|Следующая версия]]&lt;br /&gt;
&lt;br /&gt;
=== Основные улучшения ===&lt;br /&gt;
&lt;br /&gt;
* Добавлена поддержка языка [[lang:postgres|PostgresQL]].&lt;br /&gt;
* [[serve.cfg:problem:enable_src_for_testing|Реализована возможность]] передать исходный код посылки в проверяющую программу.&lt;br /&gt;
* Поддерживаются задачи с [[Динамические задачи|динамической генерацией условий и тестов]].&lt;br /&gt;
* Поддерживается эвристическое определение ошибки [[Memory-Limit Exceeded]].&lt;br /&gt;
* Поддерживается [[Telegram bot: регистрация на турнир|регистрация на турнир]] и [[Telegram bot: получение пароля|получение пароля для входа]] для уже зарегистрированных пользователей с помощью Telegram-бота.&lt;br /&gt;
&lt;br /&gt;
Полный список закрытых ошибок и улучшений доступен&lt;br /&gt;
[https://github.com/blackav/ejudge/milestone/5?closed=1 здесь].&lt;br /&gt;
&lt;br /&gt;
=== [[ej-compile]] ===&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:language:compiler_container_options|compiler_container_options]]&amp;lt;/code&amp;gt;, который позволяет задать настройки контейнеризации&lt;br /&gt;
для запуска транслятора данного языка программирования.&lt;br /&gt;
Обратите внимание, что параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:language:container_options|container_options]]&amp;lt;/code&amp;gt;&lt;br /&gt;
применяется для запуска программ, написанных на данном языке&lt;br /&gt;
программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр языка программирования&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:language:preserve_line_numbers|preserve_line_numbers]]&amp;lt;/code&amp;gt;,&lt;br /&gt;
который включает или выключает режим сохранения номеров строк&lt;br /&gt;
в программах на скриптовых языках для конкретного языка программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка для языка SQL в реализации [[Lang:postgres|Postgres]]&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/222 Issue #222]).&lt;br /&gt;
&lt;br /&gt;
Для языка [[Lang:rust|Rust]] поддерживается сборка с помощью cargo.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-contests]] ===&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр задачи&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:problem:plugin_entry_name|plugin_entry_name]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Этот параметр позволяет задать имя точки входа в плагин задачи.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр задачи&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:problem:statement_ignore_ip|statement_ignore_ip]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Этот параметр разрешает показ условия задачи без ограничения на&lt;br /&gt;
IP-адрес.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр задачи&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:problem:enable_src_for_testing|enable_src_for_testing]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Этот параметр включает передачу исходного кода тестируемой посылки&lt;br /&gt;
в программу [[ej-super-run]].&lt;br /&gt;
&lt;br /&gt;
При просмотре исходного кода посылок, сданных с помощью интеграции&lt;br /&gt;
с системами контроля версий, добавлена ссылка на соответствующий&lt;br /&gt;
коммит в системе контроля версий&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/263 Issue #263]).&lt;br /&gt;
&lt;br /&gt;
Исправлена ошибка, которая приводила к потере пакетов,&lt;br /&gt;
содержащих результаты компиляции или тестирования, если в конфигурационном&lt;br /&gt;
файле соответствующего турнира содержалась ошибка,&lt;br /&gt;
которая приводила к невозможности загрузки турнира в память&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/267 Issue #267]).&lt;br /&gt;
&lt;br /&gt;
При экспорте архива с посылками добавлено экранирование&lt;br /&gt;
&amp;quot;проблемных&amp;quot; символов в названии задачи&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/244 Issue #244]).&lt;br /&gt;
&lt;br /&gt;
Добавлена возможность скачивания &amp;quot;скрытых&amp;quot; посылок&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/246 Issue #246]).&lt;br /&gt;
&lt;br /&gt;
Исправлена ошибка утечки файловых дескрипторов при просмотре&lt;br /&gt;
очереди посылок&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/266 Issue #266]).&lt;br /&gt;
&lt;br /&gt;
Исправлена ошибка двойного освобождения памяти&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/261 Issue #261]).&lt;br /&gt;
&lt;br /&gt;
Для посылок в формате Microsoft Office 2007 и выше&lt;br /&gt;
правильно определяется mime type&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/257 Issue #257]).&lt;br /&gt;
&lt;br /&gt;
В лог-файл выводится больше информации о действиях&lt;br /&gt;
привилегированных пользователей&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/255 Issue #255]).&lt;br /&gt;
&lt;br /&gt;
Исправлена ошибка неправильного значения поля &amp;lt;code&amp;gt;user_score&amp;lt;/code&amp;gt;&lt;br /&gt;
в XML-протоколе тестирования.&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/237 Issue #237]).&lt;br /&gt;
&lt;br /&gt;
Реализована поддержка динамической генерации условия задачи&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/231 Issue #231]).&lt;br /&gt;
&lt;br /&gt;
=== [[ej-jobs]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается регистрация в ejudge и на турнир с помощью Telegram.&lt;br /&gt;
Для этого добавлен атрибут&lt;br /&gt;
&amp;lt;code&amp;gt;[[ejudge.xml:config:enable_telegram_registration|enable_telegram_registration]]&amp;lt;/code&amp;gt; в конфигурационный файл &amp;lt;code&amp;gt;[[ejudge.xml]]&amp;lt;/code&amp;gt;&lt;br /&gt;
и атрибут&lt;br /&gt;
&amp;lt;code&amp;gt;[[contest.xml:enable_telegram_registration|enable_telegram_registration]]&amp;lt;/code&amp;gt; в конфигурационный файл турнира [[contest.xml]].&lt;br /&gt;
&lt;br /&gt;
При аутентификации OAUTH или Telegram корректно поддерживаются&lt;br /&gt;
свойства &amp;lt;code&amp;gt;user_contest&amp;lt;/code&amp;gt;&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/260 Issue #260]).&lt;br /&gt;
&lt;br /&gt;
Бот Telegram поддерживает выдачу паролей с помощью команды &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt;&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/238 Issue #238]).&lt;br /&gt;
&lt;br /&gt;
=== [[ej-polygon]] ===&lt;br /&gt;
&lt;br /&gt;
Улучшения импорта из системы polygon&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/227 Issue #227]):&lt;br /&gt;
&lt;br /&gt;
* при импорте создается statement.xml, который включает условие задачи в HTML-формате с помощью iframe&lt;br /&gt;
* по умолчанию используется polygon API&lt;br /&gt;
* по умолчанию у импортированных задач игнорируется главное решение&lt;br /&gt;
* поддерживается импорт задач с правами доступа OWNER&lt;br /&gt;
&lt;br /&gt;
=== [[ej-suid-container]] ===&lt;br /&gt;
&lt;br /&gt;
Улучшена поддержка языка java и других jvm-языков. Им для работы&lt;br /&gt;
нужно актуальное содержимое каталога &amp;lt;code&amp;gt;/etc/java&amp;lt;/code&amp;gt;,&lt;br /&gt;
поэтому этот каталог монтируется с хост-системы&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/276 Issue #276]).&lt;br /&gt;
&lt;br /&gt;
Поддерживается эвристическое определение ошибок [[Memory-Limit Exceeded]]&lt;br /&gt;
и [[Security Violation]].&lt;br /&gt;
&lt;br /&gt;
Улучшена изоляция запускаемых решений.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-super-run]] ===&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр задачи&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:problem:disable_vm_size_limit|disable_vm_size_limit]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Этот параметр снимает ограничение на размер виртуального адресного пространства.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр задачи&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:problem:ignore_term_signal|ignore_term_signal]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Этот параметр включает игнорирование аварийного завершения тестируемой&lt;br /&gt;
программы по сигналу.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр языка программирования&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:language:enable_ejudge_env|enable_ejudge_env]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Этот параметр включает передачу различных параметров тестирования&lt;br /&gt;
в тестируемую программу с помощью&lt;br /&gt;
[[Переменные окружения для запускаемых программ|переменных окружения]].&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр языка программирования&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:language:run_env_file|run_env_file]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Этот параметр позволяет задать имя файла с переменными окружения,&lt;br /&gt;
которые будут переданы в тестируемую программу.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр языка программирования&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:language:clean_up_cmd|clean_up_cmd]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Этот параметр позволяет задать имя программы, которая будет&lt;br /&gt;
выполняться после тестирования программы на данном языке,&lt;br /&gt;
и задача которой корректно очистить окружение.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр языка программирования&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:language:clean_up_env_file|clean_up_env_file]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Этот параметр позволяет задать имя файла с переменными окружения,&lt;br /&gt;
которые будут переданы в программу очистки окружения.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр задачи&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:problem:test_generator_cmd|test_generator_cmd]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Он позволяет задать [[Программы генерации тестов|программу для генерации тестовых данных]] &amp;quot;на лету&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр задачи&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:problem:test_generator_env|test_generator_env]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Он позволяет задать переменные окружения для&lt;br /&gt;
[[Программы генерации тестов|программы генерации тестовых данных]]&lt;br /&gt;
&amp;quot;на лету&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Добавлено эвристическое определение ошибки [[Memory-Limit Exceeded]]&lt;br /&gt;
при выполнения программ в контейнере&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/221 Issue #221]).&lt;br /&gt;
&lt;br /&gt;
Исправлена ошибка, заключающаяся в том, что слишком большой&lt;br /&gt;
файл стандартного потока вывода или стандартного потока ошибок&lt;br /&gt;
не добавлялся в протокол тестирования. Теперь файл обрезается&lt;br /&gt;
до максимально допустимого размера&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/240 Issue #240]).&lt;br /&gt;
&lt;br /&gt;
В запускаемые программы передаётся переменная окружения&lt;br /&gt;
&amp;lt;code&amp;gt;EJUDGE_SUPER_RUN_SERIAL&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-super-server]] ===&lt;br /&gt;
&lt;br /&gt;
При операции &amp;quot;Check contests settings&amp;quot; поддерживается конфигурационный&lt;br /&gt;
параметр задачи&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:problem:problem_dir|problem_dir]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Таким образом, эта операция работает, когда задачи не находятся&lt;br /&gt;
в каталоге турнира&lt;br /&gt;
(см. [https://github.com/blackav/ejudge/issues/265 Issue #265]).&lt;br /&gt;
&lt;br /&gt;
=== [[.inf-файлы]] ===&lt;br /&gt;
&lt;br /&gt;
Добавлен параметр &amp;lt;code&amp;gt;ignore_term_signal&amp;lt;/code&amp;gt; для игнорирования&lt;br /&gt;
аварийного завершения тестируемой программы по сигналу на данном тесте.&lt;br /&gt;
&lt;br /&gt;
=== [[cmp_binary]] ===&lt;br /&gt;
&lt;br /&gt;
Новая стандартная проверяющая программа, которая сравнивает&lt;br /&gt;
заданный файл в рабочем каталоге тестируемой программы&lt;br /&gt;
после её завершения и эталонный файл с ответом.&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Serve.cfg:problem:standard_valuer&amp;diff=6854</id>
		<title>Serve.cfg:problem:standard valuer</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Serve.cfg:problem:standard_valuer&amp;diff=6854"/>
		<updated>2024-12-29T05:19:16Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:problem|Конфигурационные параметры задач]]/&amp;lt;code&amp;gt;[[Serve.cfg:problem:standard_valuer|standard_valuer]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная конфигурационная переменная позволяет установить имя стандартной&lt;br /&gt;
[[Оценивающие программы|оценивающей программы]] для данной задачи.&lt;br /&gt;
В настоящее время единственной стандартной программой оценивания является [[gvaluer]].&lt;br /&gt;
Установка этой конфигурационной переменной позволяет не копировать gvaluer в каждый турнир,&lt;br /&gt;
а использовать программу, проинсталлированную в каталоги ejudge.&lt;br /&gt;
&lt;br /&gt;
Значение переменной наследуется из абстрактной задачи, поэтому можно установить значение один раз&lt;br /&gt;
в абстрактной задаче, чтобы распространить её действие на все конкретные задачи.&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Serve.cfg:global:enable_run_props&amp;diff=6853</id>
		<title>Serve.cfg:global:enable run props</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Serve.cfg:global:enable_run_props&amp;diff=6853"/>
		<updated>2024-12-29T05:19:16Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:global|Глобальные конфигурационные параметры]]/&amp;lt;code&amp;gt;[[Serve.cfg:global:enable_run_props|enable_run_props]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если переменная установлена в положительное значение, результатом компиляции программы может быть&lt;br /&gt;
не только исполняемый файл, как в предыдущих версиях, но и дополнительный файл со свойствами скомпилированной&lt;br /&gt;
программы.&lt;br /&gt;
&lt;br /&gt;
При включенном &amp;lt;code&amp;gt;enable_run_props&amp;lt;/code&amp;gt; компонент [[ej-compile]] передаёт скрипту компиляции не два, а три&lt;br /&gt;
аргумента командной строки:&lt;br /&gt;
* имя файла с исходным кодом;&lt;br /&gt;
* имя файла, в который должен быть записан результат компиляции;&lt;br /&gt;
* имя выходного файла с дополнительными свойствами скомпилированной программы.&lt;br /&gt;
&lt;br /&gt;
Если скрипт компиляции не создал выходной файл со свойствами, это не рассматривается как ошибка,&lt;br /&gt;
а в дальнейшем скомпилированная программа передаётся на выполнение по обычной схеме.&lt;br /&gt;
&lt;br /&gt;
Файл со свойствами должен быть корректным JSON-файлом с одним объектом со следующими атрибутами:&lt;br /&gt;
* &amp;lt;code&amp;gt;start_cmd&amp;lt;/code&amp;gt; &amp;amp;mdash; путь к интерпретатору, который должен использоваться для запуска программы на исполнение;&lt;br /&gt;
* &amp;lt;code&amp;gt;start_args&amp;lt;/code&amp;gt; &amp;amp;mdash; аргументы командной строки для интерпретатора;&lt;br /&gt;
* &amp;lt;code&amp;gt;start_env&amp;lt;/code&amp;gt; &amp;amp;mdash; переменные окружения, которые должны быть установлены при запуске тестируемой программы на выполнение;&lt;br /&gt;
* &amp;lt;code&amp;gt;is_archive&amp;lt;/code&amp;gt; &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.13.0&amp;diff=6852</id>
		<title>Изменения в версии 3.13.0</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.13.0&amp;diff=6852"/>
		<updated>2024-12-29T05:19:14Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.13.0]]&lt;br /&gt;
&lt;br /&gt;
Время выхода: 25 декабря 2024 г.&lt;br /&gt;
&lt;br /&gt;
[[Изменения в версии 3.12.0|Предыдущая версия]]&lt;br /&gt;
&lt;br /&gt;
=== Обновление с предыдущих версий ===&lt;br /&gt;
&lt;br /&gt;
После инсталляции новой версии ejudge обязательно выполните команды &amp;lt;code&amp;gt;ejudge-suid-setup&amp;lt;/code&amp;gt;&lt;br /&gt;
и &amp;lt;code&amp;gt;ejudge-upgrade-web&amp;lt;/code&amp;gt; из-под пользователя root и команду&lt;br /&gt;
&amp;lt;code&amp;gt;ejudge-configure-compilers&amp;lt;/code&amp;gt; из-под пользователя ejudge.&lt;br /&gt;
&lt;br /&gt;
=== Список Pull Requests ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/blackav/ejudge/milestone/6?closed=1 Список изменений на GitHub]&lt;br /&gt;
&lt;br /&gt;
=== Главные новые возможности и улучшения ===&lt;br /&gt;
&lt;br /&gt;
* Добавлена поддержка [[Правила IOI расчета баллов|режима слияния подгрупп (правила IOI)]].&lt;br /&gt;
* Добавлен универсальный плагин для [[Аутентификация с помощью OAUTH2|аутентификации по OIDC]].&lt;br /&gt;
* Переработан механизм [[Улучшенная поддержка серверов компиляции|взаимодействия сервера турнира и агентов компиляции]].&lt;br /&gt;
* Улучшена поддержка [[Задачи на неполные программы|задач на неполные программы]].&lt;br /&gt;
* В HTML-условиях поддерживается MathJax3.&lt;br /&gt;
* Добавлен плагин для отправки нотификаций в redis streams.&lt;br /&gt;
* Обновлена программа [[ej-polygon]] импорта задач из системы Polygon.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-compile]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается аргумент командной строки &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, в котором&lt;br /&gt;
передаётся серийный номер параллельного запуска программы на одном&lt;br /&gt;
хосте. Этот параметр используется при запуске процесса компиляции&lt;br /&gt;
в контейнере, чтобы использовать отдельный идентификатор пользователя&lt;br /&gt;
компиляции. Параллельные компиляции на одном хосте будут выполняться&lt;br /&gt;
под разными идентификаторами пользователя и не будут влиять&lt;br /&gt;
друг на друга.&lt;br /&gt;
&lt;br /&gt;
Поддерживаются расширенные свойства скомпилированных файлов.&lt;br /&gt;
Они активируются с помощью установки глобального конфигурационного&lt;br /&gt;
параметра [[Serve.cfg:global:enable_run_props|enable_run_props]] турнира. В этом случае в скрипт&lt;br /&gt;
компиляции передается третий параметр &amp;amp;mdash; путь к файлу,&lt;br /&gt;
в который скрипт компиляции может записать дополнительные свойства&lt;br /&gt;
сгенерированного исполняемого файла. Этот файл передается&lt;br /&gt;
в сервис запуска решений.&lt;br /&gt;
&lt;br /&gt;
При копировании файлов из каталога, заданного с помощью конфигурационного&lt;br /&gt;
параметра [[serve.cfg:problem:extra_src_dir|extra_src_dir]], в рабочий каталог компиляции&lt;br /&gt;
выполняется рекурсивное копирование.&lt;br /&gt;
&lt;br /&gt;
Для [[Lang:tsnode|Typescript]] поддерживается альтернативный транслятор tsx.&lt;br /&gt;
&lt;br /&gt;
В ejudge.xml поддерживается возможность не запускать инстансы ej-compile и ej-super-run (&lt;br /&gt;
[[ejudge.xml:host_options:host:option|parallelism]] и&lt;br /&gt;
[[ejudge.xml:host_options:host:option|compile_parallelism]] могут быть равны 0).&lt;br /&gt;
&lt;br /&gt;
=== [[ej-compile-control]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается аргумент командной строки &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, который&lt;br /&gt;
передаётся в [[ej-compile]].&lt;br /&gt;
&lt;br /&gt;
=== [[ej-contests]] ===&lt;br /&gt;
&lt;br /&gt;
В конфигурационном параметре [[Serve.cfg:problem:open_tests|open_tests]] поддерживатся видимость тестов&lt;br /&gt;
&amp;lt;code&amp;gt;icpc&amp;lt;/code&amp;gt;. Если для группы тестов установлена видимость &amp;lt;code&amp;gt;icpc&amp;lt;/code&amp;gt;, то&lt;br /&gt;
участнику турнира отображается только балл и минимальная информация&lt;br /&gt;
о первом непрошедшем тесте в группе.&lt;br /&gt;
&lt;br /&gt;
Если у задачи была хотя бы одна группа тестов с видимостью icpc,&lt;br /&gt;
протокол тестирования для участника показывает только информацию&lt;br /&gt;
об открытых тестах и суммарную информацию по группам тестов.&lt;br /&gt;
&lt;br /&gt;
Добавлена конфигурационная переменная задачи [[Serve.cfg:problem:standard_valuer|standard_valuer]],&lt;br /&gt;
которая позволяет задать стандартную программу оценивания [[gvaluer]] и не копировать её каждый раз&lt;br /&gt;
в каталог турнира.&lt;br /&gt;
&lt;br /&gt;
Поддерживается экспорт архивов посылок в фоновом режиме.&lt;br /&gt;
После нажатия &amp;quot;Download archive of runs&amp;quot; и выбора опций&lt;br /&gt;
скачивания решений создаётся фоновое задание, статус исполнения&lt;br /&gt;
которого можно отслеживать. Когда подготовка архива будет&lt;br /&gt;
закончена, архив можно будет скачать по ссылке.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:get-user|get-user]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:copy-user-info|copy-user-info]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:change-registration|change-registration]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:problem-status-json|problem-status-json]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:list-languages|list-languages]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:create-user-session|create-user-session]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:change-registrations|change-registrations]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка API-вызова &amp;lt;code&amp;gt;[[API:priv:special-flow|special-flow]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В протоколах тестирования отображается размер использованной памяти (RSS).&lt;br /&gt;
Это поддерживается только в случае запуска решений в контейнере.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр [[Serve.cfg:global:enable_run_props|enable_run_props]]..&lt;br /&gt;
&lt;br /&gt;
Исправлена ошибка, из-за которой не работала смена языка интерфейса.&lt;br /&gt;
&lt;br /&gt;
Если apache не может подключиться к ej-contests, клиенту возвращается http status 500.&lt;br /&gt;
&lt;br /&gt;
Добавлены атрибуты&lt;br /&gt;
[[contest.xml:enable_user_finish|enable_user_finish]],&lt;br /&gt;
[[contest.xml:disable_user_finish|disable_user_finish]], которые модифицируют возможность&lt;br /&gt;
пользовательского завершения турнира.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:language:default_disabled|default_disabled]] языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:language:version|version]] языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:language:disable_auto_update|disable_auto_update]]&lt;br /&gt;
языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр [[Serve.cfg:global:enable_language_import|enable_language_import]].&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр [[Serve.cfg:global:enable_language_import|enable_language_import]].&lt;br /&gt;
&lt;br /&gt;
Переработан механизм взаимодействия сервера турнира и агентов компиляции.&lt;br /&gt;
&lt;br /&gt;
Пользователь может завершить невиртуальный турнир в любой момент времени.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:problem:enable_group_merge|enable_group_merge]] задач.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:language:run_max_file_size|run_max_file_size]] языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр [[Serve.cfg:global:disable_bson_store|disable_bson_store]].&lt;br /&gt;
&lt;br /&gt;
=== [[ej-polygon]] ===&lt;br /&gt;
&lt;br /&gt;
При импорте из полигона поддерживаются баллы за тесты и группы тестов,&lt;br /&gt;
которые хранятся в элементах &amp;lt;code&amp;gt;tests&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;group&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поддерживается генерация параметров&lt;br /&gt;
[[serve.cfg:problem:test_score_list|test_score_list]],&lt;br /&gt;
[[serve.cfg:problem:open_tests|open_tests]],&lt;br /&gt;
[[serve.cfg:problem:final_open_tests|final_open_tests]].&lt;br /&gt;
&lt;br /&gt;
Поддерживается генерация файла valuer.cfg для оценивающей программы&lt;br /&gt;
[[gvaluer]].&lt;br /&gt;
&lt;br /&gt;
При импорте турнира из полигона задачи сортируются по строковому&lt;br /&gt;
значению ключа задачи, он же используется для короткого имени задачи.&lt;br /&gt;
&lt;br /&gt;
Добавлена опция enable_rss_limit при импорте из полигона.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-suid-container]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается переключение в разные непривилегированные пользователи&lt;br /&gt;
для параллельной компиляции.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-super-run]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ej-super-server]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается заголовок 'Authorization:' для последующей реализации API-вызовов.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;login-action-json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== [[ejudge-control]] ===&lt;br /&gt;
&lt;br /&gt;
Добавлена опция --compile-queue.&lt;br /&gt;
&lt;br /&gt;
=== [[gvaluer]] ===&lt;br /&gt;
&lt;br /&gt;
При компиляции ejudge программа автоматически компилируется и инсталлируется&lt;br /&gt;
в каталог с проверяющими программами. Для этого в системе должен быть&lt;br /&gt;
установлен компилятор C++.&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.13.0&amp;diff=6851</id>
		<title>Изменения в версии 3.13.0</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.13.0&amp;diff=6851"/>
		<updated>2024-12-25T07:06:38Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.13.0]]&lt;br /&gt;
&lt;br /&gt;
Время выхода: 25 декабря 2024 г.&lt;br /&gt;
&lt;br /&gt;
[[Изменения в версии 3.12.0|Предыдущая версия]]&lt;br /&gt;
&lt;br /&gt;
=== Обновление с предыдущих версий ===&lt;br /&gt;
&lt;br /&gt;
После инсталляции новой версии ejudge обязательно выполните команды &amp;lt;code&amp;gt;ejudge-suid-setup&amp;lt;/code&amp;gt;&lt;br /&gt;
и &amp;lt;code&amp;gt;ejudge-upgrade-web&amp;lt;/code&amp;gt; из-под пользователя root и команду&lt;br /&gt;
&amp;lt;code&amp;gt;ejudge-configure-compilers&amp;lt;/code&amp;gt; из-под пользователя ejudge.&lt;br /&gt;
&lt;br /&gt;
=== Список Pull Requests ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/blackav/ejudge/milestone/6?closed=1 Список изменений на GitHub]&lt;br /&gt;
&lt;br /&gt;
=== Главные новые возможности и улучшения ===&lt;br /&gt;
&lt;br /&gt;
* Добавлена поддержка [[Правила IOI расчета баллов|режима слияния подгрупп (правила IOI)]].&lt;br /&gt;
* Добавлен универсальный плагин для [[Аутентификация с помощью OAUTH2|аутентификации по OIDC]].&lt;br /&gt;
* Переработан механизм [[Улучшенная поддержка серверов компиляции|взаимодействия сервера турнира и агентов компиляции]].&lt;br /&gt;
* Улучшена поддержка [[Задачи на неполные программы|задач на неполные программы]].&lt;br /&gt;
* В HTML-условиях поддерживается MathJax3.&lt;br /&gt;
* Добавлен плагин для отправки нотификаций в redis streams.&lt;br /&gt;
* Обновлена программа [[ej-polygon]] импорта задач из системы Polygon.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-compile]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается аргумент командной строки &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, в котором&lt;br /&gt;
передаётся серийный номер параллельного запуска программы на одном&lt;br /&gt;
хосте. Этот параметр используется при запуске процесса компиляции&lt;br /&gt;
в контейнере, чтобы использовать отдельный идентификатор пользователя&lt;br /&gt;
компиляции. Параллельные компиляции на одном хосте будут выполняться&lt;br /&gt;
под разными идентификаторами пользователя и не будут влиять&lt;br /&gt;
друг на друга.&lt;br /&gt;
&lt;br /&gt;
Поддерживаются расширенные свойства скомпилированных файлов.&lt;br /&gt;
Они активируются с помощью установки глобального конфигурационного&lt;br /&gt;
параметра [[Serve.cfg:global:enable_run_props|enable_run_props]] турнира. В этом случае в скрипт&lt;br /&gt;
компиляции передается третий параметр &amp;amp;mdash; путь к файлу,&lt;br /&gt;
в который скрипт компиляции может записать дополнительные свойства&lt;br /&gt;
сгенерированного исполняемого файла. Этот файл передается&lt;br /&gt;
в сервис запуска решений.&lt;br /&gt;
&lt;br /&gt;
При копировании файлов из каталога, заданного с помощью конфигурационного&lt;br /&gt;
параметра [[serve.cfg:problem:extra_src_dir|extra_src_dir]], в рабочий каталог компиляции&lt;br /&gt;
выполняется рекурсивное копирование.&lt;br /&gt;
&lt;br /&gt;
Для [[Lang:tsnode|Typescript]] поддерживается альтернативный транслятор tsx.&lt;br /&gt;
&lt;br /&gt;
В ejudge.xml поддерживается возможность не запускать инстансы ej-compile и ej-super-run (&lt;br /&gt;
[[ejudge.xml:host_options:host:option|parallelism]] и&lt;br /&gt;
[[ejudge.xml:host_options:host:option|compile_parallelism]] могут быть равны 0).&lt;br /&gt;
&lt;br /&gt;
=== [[ej-compile-control]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается аргумент командной строки &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, который&lt;br /&gt;
передаётся в [[ej-compile]].&lt;br /&gt;
&lt;br /&gt;
=== [[ej-contests]] ===&lt;br /&gt;
&lt;br /&gt;
В конфигурационном параметре [[Serve.cfg:problem:open_tests|open_tests]] поддерживатся видимость тестов&lt;br /&gt;
&amp;lt;code&amp;gt;icpc&amp;lt;/code&amp;gt;. Если для группы тестов установлена видимость &amp;lt;code&amp;gt;icpc&amp;lt;/code&amp;gt;, то&lt;br /&gt;
участнику турнира отображается только балл и минимальная информация&lt;br /&gt;
о первом непрошедшем тесте в группе.&lt;br /&gt;
&lt;br /&gt;
Если у задачи была хотя бы одна группа тестов с видимостью icpc,&lt;br /&gt;
протокол тестирования для участника показывает только информацию&lt;br /&gt;
об открытых тестах и суммарную информацию по группам тестов.&lt;br /&gt;
&lt;br /&gt;
Добавлена конфигурационная переменная задачи [[Serve.cfg:problem:standard_valuer|standard_valuer]],&lt;br /&gt;
которая позволяет задать стандартную программу оценивания [[gvaluer]] и не копировать её каждый раз&lt;br /&gt;
в каталог турнира.&lt;br /&gt;
&lt;br /&gt;
Поддерживается экспорт архивов посылок в фоновом режиме.&lt;br /&gt;
После нажатия &amp;quot;Download archive of runs&amp;quot; и выбора опций&lt;br /&gt;
скачивания решений создаётся фоновое задание, статус исполнения&lt;br /&gt;
которого можно отслеживать. Когда подготовка архива будет&lt;br /&gt;
закончена, архив можно будет скачать по ссылке.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:get-user|get-user]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:copy-user-info|copy-user-info]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:change-registration|change-registration]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:problem-status-json|problem-status-json]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:list-languages|list-languages]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:create-user-session|create-user-session]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;[[API:priv:change-registrations|change-registrations]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка API-вызова &amp;lt;code&amp;gt;[[API:priv:special-flow|special-flow]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В протоколах тестирования отображается размер использованной памяти (RSS).&lt;br /&gt;
Это поддерживается только в случае запуска решений в контейнере.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр [[Serve.cfg:global:enable_run_props|enable_run_props]]..&lt;br /&gt;
&lt;br /&gt;
Исправлена ошибка, из-за которой не работала смена языка интерфейса.&lt;br /&gt;
&lt;br /&gt;
Если apache не может подключиться к ej-contests, клиенту возвращается http status 500.&lt;br /&gt;
&lt;br /&gt;
Добавлены атрибуты&lt;br /&gt;
[[contest.xml:enable_user_finish|enable_user_finish]],&lt;br /&gt;
[[contest.xml:disable_user_finish|disable_user_finish]], которые модифицируют возможность&lt;br /&gt;
пользовательского завершения турнира.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:language:default_disabled|default_disabled]] языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:language:version|version]] языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:language:disable_auto_update|disable_auto_update]]&lt;br /&gt;
языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр [[Serve.cfg:global:enable_language_import|enable_language_import]].&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр [[Serve.cfg:global:enable_language_import|enable_language_import]].&lt;br /&gt;
&lt;br /&gt;
Переработан механизм взаимодействия сервера турнира и агентов компиляции.&lt;br /&gt;
&lt;br /&gt;
Пользователь может завершить невиртуальный турнир в любой момент времени.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:problem:enable_group_merge|enable_group_merge]] задач.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр [[Serve.cfg:language:run_max_file_size|run_max_file_size]] языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр [[Serve.cfg:global:disable_bson_store|disable_bson_store]].&lt;br /&gt;
&lt;br /&gt;
=== [[ej-polygon]] ===&lt;br /&gt;
&lt;br /&gt;
При импорте из полигона поддерживаются баллы за тесты и группы тестов,&lt;br /&gt;
которые хранятся в элементах &amp;lt;code&amp;gt;tests&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;group&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поддерживается генерация параметров test_score_list, open_tests,&lt;br /&gt;
final_open_tests.&lt;br /&gt;
&lt;br /&gt;
Поддерживается генерация файла valuer.cfg для оценивающей программы&lt;br /&gt;
gvaluer.&lt;br /&gt;
&lt;br /&gt;
При импорте турнира из полигона задачи сортируются по строковому&lt;br /&gt;
значению ключа задачи, он же используется для короткого имени задачи.&lt;br /&gt;
&lt;br /&gt;
Добавлена опция enable_rss_limit при импорте из полигона.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-suid-container]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается переключение в разные непривилегированные пользователи&lt;br /&gt;
для параллельной компиляции.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-super-run]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ej-super-server]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается заголовок 'Authorization:' для последующей реализации API-вызовов.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;login-action-json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== [[ejudge-control]] ===&lt;br /&gt;
&lt;br /&gt;
Добавлена опция --compile-queue.&lt;br /&gt;
&lt;br /&gt;
=== [[gvaluer]] ===&lt;br /&gt;
&lt;br /&gt;
При компиляции ejudge программа автоматически компилируется и инсталлируется&lt;br /&gt;
в каталог с проверяющими программами. Для этого в системе должен быть&lt;br /&gt;
установлен компилятор C++.&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Ejudge.xml&amp;diff=6849</id>
		<title>Ejudge.xml</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Ejudge.xml&amp;diff=6849"/>
		<updated>2024-12-25T07:06:37Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[ejudge.xml]]&lt;br /&gt;
&lt;br /&gt;
Этот конфигурационный файл содержит общие настройки системы ejudge,&lt;br /&gt;
которые используются всеми компонентами. Обычно этот файл находится&lt;br /&gt;
по пути &amp;lt;tt&amp;gt;/home/judges/data/ejudge.xml&amp;lt;/tt&amp;gt;, то есть в подкаталоге&lt;br /&gt;
&amp;lt;tt&amp;gt;data&amp;lt;/tt&amp;gt; каталога турниров.&lt;br /&gt;
&lt;br /&gt;
===Общая структура===&lt;br /&gt;
Конфигурационный файл должен быть корректным XML-файлом. Он должен состоять из&lt;br /&gt;
единственного элемента первого уровня config. Иерархия элементов приведена на схеме&lt;br /&gt;
ниже.&lt;br /&gt;
: &amp;lt;tt&amp;gt;[[ejudge.xml:config|config]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:caps|caps]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::: &amp;lt;tt&amp;gt;[[ejudge.xml:cap|cap]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:caps_file|caps_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:charset|charset]]&amp;lt;/tt&amp;gt; (*)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:compile_home_dir|compile_home_dir]]&amp;lt;/tt&amp;gt; (**)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:compile_log|compile_log]]&amp;lt;/tt&amp;gt; (**)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:compiler_options|compiler_options]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
:::&amp;lt;tt&amp;gt;[[ejudge.xml:compiler_option|compiler_option]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:config_dir|config_dir]]&amp;lt;/tt&amp;gt; (*)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:contests_dir|contests_dir]]&amp;lt;/tt&amp;gt; (*)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:contests_home_dir|contests_home_dir]]&amp;lt;/tt&amp;gt; (*)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:contests_ws_port|contests_ws_port]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:default_avatar_plugin|default_avatar_plugin]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:default_clardb_plugin|default_clardb_plugin]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:default_content_plugin|default_content_plugin]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:default_content_url_prefix|default_content_url_prefix]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:default_rundb_plugin|default_rundb_plugin]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:default_status_plugin|default_status_plugin]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:default_variant_plugin|default_variant_plugin]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:default_xuser_plugin|default_xuser_plugin]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:email_program|email_program]]&amp;lt;/tt&amp;gt; (**)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:full_cgi_data_dir|full_cgi_data_dir]]&amp;lt;/tt&amp;gt; (**)&lt;br /&gt;
::&amp;lt;code&amp;gt;[[ejudge.xml:host_options|host_options]]&amp;lt;/code&amp;gt;&lt;br /&gt;
:::&amp;lt;code&amp;gt;[[ejudge.xml:host_options:host|host]]&amp;lt;/code&amp;gt;&lt;br /&gt;
::::&amp;lt;code&amp;gt;[[ejudge.xml:host_options:host:option|option]]&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:job_server_log|job_server_log]]&amp;lt;/tt&amp;gt; (**)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:job_server_spool|job_server_spool]]&amp;lt;/tt&amp;gt; (**)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:job_server_work|job_server_work]]&amp;lt;/tt&amp;gt; (**)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:l10n_dir|l10n_dir]]&amp;lt;/tt&amp;gt; (*)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:max_loaded_contests|max_loaded_contests]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:oauth_user_map|oauth_user_map]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
:::&amp;lt;tt&amp;gt;[[ejudge.xml:oauth_entry|oauth_entry]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:register_email|register_email]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:register_url|register_url]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:run_path|run_path]]&amp;lt;/tt&amp;gt; (*)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:script_dir|script_dir]]&amp;lt;/tt&amp;gt; (*)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:serialization_key|serialization_key]]&amp;lt;/tt&amp;gt; (**)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:serve_path|serve_path]]&amp;lt;/tt&amp;gt; (*)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:socket_path|socket_path]]&amp;lt;/tt&amp;gt; (*)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:super_serve_log|super_serve_log]]&amp;lt;/tt&amp;gt; (**)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:super_serve_socket|super_serve_socket]]&amp;lt;/tt&amp;gt; (*)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:testing_work_dir|testing_work_dir]]&amp;lt;/tt&amp;gt; (**)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:userdb_file|userdb_file]]&amp;lt;/tt&amp;gt; (**)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:userlist_log|userlist_log]]&amp;lt;/tt&amp;gt; (**)&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:user_map|user_map]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
:::&amp;lt;tt&amp;gt;[[ejudge.xml:map|map]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;[[ejudge.xml:var_dir|var_dir]]&amp;lt;/tt&amp;gt; (**)&lt;br /&gt;
(*) обозначены элементы, не рекомендуемые к явному использованию, поскольку их значение&lt;br /&gt;
предпочтительнее задавать при компиляции системы опциями скрипта &amp;lt;tt&amp;gt;[[configure]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
(**) Обозначены элементы, корректное значение которых устанавливается при первоначальной&lt;br /&gt;
настройке системы &amp;lt;tt&amp;gt;ejudge&amp;lt;/tt&amp;gt;, и которые не рекомендуется изменять в дальнейшем.&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_OAUTH2&amp;diff=6850</id>
		<title>Аутентификация с помощью OAUTH2</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_OAUTH2&amp;diff=6850"/>
		<updated>2024-12-25T07:06:37Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Аутентификация с помощью OAUTH2]]&lt;br /&gt;
&lt;br /&gt;
Поддерживается с версии [[Изменения в версии 3.9.0|3.9.0]].&lt;br /&gt;
&lt;br /&gt;
Данный документ описывает настройку поддержки аутентификации&lt;br /&gt;
с помощью протокола OAUTH2.&lt;br /&gt;
&lt;br /&gt;
Поддерживаются два провайдера идентификационной информации: Google&lt;br /&gt;
и VK. Чтобы добавить новый провайдер необходимо реализовать&lt;br /&gt;
auth-плагин, который будет поддерживать особенности реализации&lt;br /&gt;
нового провайдера. Схема OAUTH2 достаточно гибкая, и разные&lt;br /&gt;
провайдеры реализуют разные допустимые схемы аутентификации.&lt;br /&gt;
&lt;br /&gt;
OAUTH2 требует, чтобы клиент имел доступный из интернета URL&lt;br /&gt;
по протоколу https. Сайт должен иметь валидный сертификат https,&lt;br /&gt;
например, от Let's Encrypt. Самоподписанный сертификат не подойдет.&lt;br /&gt;
&lt;br /&gt;
Плагин для реализации OAUTH2 в ejudge использует mysql. Если&lt;br /&gt;
поддержка mysql не включена, или база ejudge для mysql не&lt;br /&gt;
развернута, плагин OAUTH2 работать не будет.&lt;br /&gt;
&lt;br /&gt;
Если развернуто несколько инсталляций ejudge, которые доступны&lt;br /&gt;
по разным URL, для каждой инсталляции ejudge потребуется&lt;br /&gt;
зарегистрировать отдельное &amp;quot;приложение&amp;quot; на сайте провайдера&lt;br /&gt;
аутентификации.&lt;br /&gt;
&lt;br /&gt;
==== Регистрация приложения в Google ====&lt;br /&gt;
&lt;br /&gt;
Для настройки приложения в google требуется доступ к Google Cloud&lt;br /&gt;
Platform.&lt;br /&gt;
&lt;br /&gt;
Перейдите в пункт меню APIs &amp;amp;amp; Services / Dashboard.&lt;br /&gt;
Нажмите кнопку &amp;quot;CREATE PROJECT&amp;quot;.&lt;br /&gt;
Заполните поля &amp;quot;Project name&amp;quot;, &amp;quot;Organization&amp;quot;, &amp;quot;Location&amp;quot;.&lt;br /&gt;
После создания проекта выберите его вверху слева от &amp;quot;Google Cloud Platform&amp;quot;.&lt;br /&gt;
Выберите вкладку &amp;quot;OAuth Consent Screen&amp;quot;.&lt;br /&gt;
Заполните поля &amp;quot;App Name&amp;quot;, &amp;quot;User Support Email&amp;quot;, &amp;quot;Developer Contact&lt;br /&gt;
Information&amp;quot;. Нажмите &amp;quot;SAVE AND CONTINUE&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
На вкладке Scopes нажмите кнопку &amp;quot;Add or Remove Scopes&amp;quot;&lt;br /&gt;
и выберите три первых: userinfo.email, userinfo.profile, openid.&lt;br /&gt;
Это базовые разрешения, они не требуют верификации приложения.&lt;br /&gt;
Нажмите кнопку UPDATE внизу. В разделе &amp;quot;Your non-sensitive scopes&amp;quot;&lt;br /&gt;
должны появиться эти три разрешения.&lt;br /&gt;
Нажмите &amp;quot;SAVE AND CONTINUE&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
На вкладке &amp;quot;Test users&amp;quot; можно сразу нажать &amp;quot;SAVE AND CONTINUE&amp;quot;.&lt;br /&gt;
Дальше нажмите &amp;quot;BACK TO DASHBOARD&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Перейдите на вкладку &amp;quot;Credentials&amp;quot;. Выберите &amp;quot;+ CREATE CREDENTIALS&amp;quot;.&lt;br /&gt;
Выберите &amp;quot;OAUTH client ID&amp;quot;.&lt;br /&gt;
Заполните &amp;quot;Application type&amp;quot; &amp;amp;mdash; &amp;quot;Desktop App&amp;quot;.&lt;br /&gt;
Заполните поле &amp;quot;Name&amp;quot;, например, &amp;quot;testsite-io-client&amp;quot;.&lt;br /&gt;
Нажмите &amp;quot;CREATE&amp;quot;. Скопируйте значение поля &amp;quot;Your Client ID&amp;quot;.&lt;br /&gt;
Обозначим его google_app_id.&lt;br /&gt;
Скопируйте значение поля &amp;quot;Your client secret&amp;quot;.&lt;br /&gt;
Обозначим его google_app_secret.&lt;br /&gt;
&lt;br /&gt;
Перейдите на вкладку &amp;quot;OAuth Consent Screen&amp;quot;. Нажмите на кнопку&lt;br /&gt;
&amp;quot;PUBLISH APP&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Регистрация приложения в VK ====&lt;br /&gt;
&lt;br /&gt;
В левом боковом меню в самом низу выберите пункт &amp;quot;Управление&amp;quot;.&lt;br /&gt;
Вы должны попасть в раздел VK Developers.&lt;br /&gt;
В меню сверху выберите пункт &amp;quot;Мои приложения&amp;quot;.&lt;br /&gt;
Появится список созданных приложений.&lt;br /&gt;
Нажмите кнопку &amp;quot;Создать&amp;quot;.&lt;br /&gt;
Введите название, например, &amp;quot;Test Site&amp;quot;.&lt;br /&gt;
В опциях &amp;quot;Платформа&amp;quot; выберите &amp;quot;Сайт&amp;quot;.&lt;br /&gt;
Введите адрес сайта, например, &amp;quot;https://testsite.io&amp;quot;.&lt;br /&gt;
Введите базовый домен, например, &amp;quot;testsite.io&amp;quot;.&lt;br /&gt;
Нажмите кнопку &amp;quot;Создать&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
В случае успешного создания вы перейдете на вкладку &amp;quot;Информация&amp;quot;&lt;br /&gt;
нового приложения. В принципе, на этой странице ничего можно не заполнять.&lt;br /&gt;
Перейдите на вкладку &amp;quot;Настройки&amp;quot;.&lt;br /&gt;
Сохраните где-нибудь ID приложения (обозначим его vk_app_id)&lt;br /&gt;
и защищенный ключ (vk_app_secret).&lt;br /&gt;
Проверьте что адрес сайта и базовый домен правильные.&lt;br /&gt;
В тематике сайта выберите, например, &amp;quot;Образование&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Самое важное. В поле &amp;quot;Доверенный редирект URI&amp;quot; впишите URI,&lt;br /&gt;
по которому будет выполняться переход в случае успешной авторизации.&lt;br /&gt;
Для примера сайта выше это может быть &amp;quot;https://testsite.io/ej/client/oauth-login-2/S2&amp;quot;. Часть до /S2, то есть &amp;quot;https://testsite.io/ej/client/oauth-login-2&amp;quot; обозначим как vk_callback.&lt;br /&gt;
Сохраните измененные настройки приложения.&lt;br /&gt;
&lt;br /&gt;
==== Регистрация приложения в Yandex ([[Изменения в версии 3.10.0|3.10.0]]) ====&lt;br /&gt;
&lt;br /&gt;
Перейдите на страницу [https://oauth.yandex.ru/ Yandex Oauth].&lt;br /&gt;
Нажмите на кнопку &amp;quot;Создать приложение&amp;quot;.&lt;br /&gt;
Заполните поле &amp;quot;Название сервиса&amp;quot;, например, &amp;quot;testsite-io&amp;quot;.&lt;br /&gt;
Установите галочку &amp;quot;Веб-сервисы&amp;quot;.&lt;br /&gt;
В появившемся поле &amp;quot;Callback URL&amp;quot; впишите URL вида&lt;br /&gt;
&amp;quot;https://testsite.io/ej/client/oauth-login-2/S3&amp;quot;.&lt;br /&gt;
В разделе &amp;quot;Какие данные вам нужны&amp;quot; выберите &amp;quot;API Yandex ID&amp;quot;&lt;br /&gt;
и отметьте &amp;quot;Доступ к адресу электронной почты&amp;quot; и&lt;br /&gt;
&amp;quot;Доступ к логину, имени и фамилии, полу&amp;quot;.&lt;br /&gt;
Дополнительно можно вписать &amp;quot;Описание сервиса&amp;quot;, &amp;quot;Ссылка на сайт&amp;quot;&lt;br /&gt;
и &amp;quot;Контактные данные&amp;quot;.&lt;br /&gt;
После заполнения формы нажмите кнопку &amp;quot;Создать приложение&amp;quot;.&lt;br /&gt;
Часть до /S3, то есть &amp;quot;https://testsite.io/ej/client/oauth-login-2&amp;quot;&lt;br /&gt;
обозначим как yandex_callback.&lt;br /&gt;
&lt;br /&gt;
После создания приложения ему автоматически будет назначен ClientID&lt;br /&gt;
и Client secret, они потребуются в конфигурационном файле ejudge.xml.&lt;br /&gt;
&lt;br /&gt;
=== Настройка apache ===&lt;br /&gt;
&lt;br /&gt;
Чтобы URI вида HOST/ej/client/PATH передавались в cgi-bin программы&lt;br /&gt;
ejudge потребуется добавить rewrite правила в конфигурационный файл&lt;br /&gt;
apache.&lt;br /&gt;
&lt;br /&gt;
В секции конфигурации соответствующего виртуального хоста,&lt;br /&gt;
либо в глобальной секции найдите директиву вида:&lt;br /&gt;
&lt;br /&gt;
 ScriptAlias /cgi-bin/   &amp;quot;PATH/cgi-bin/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; какой-то путь в файловой системе.&lt;br /&gt;
Добавьте ниже директиву:&lt;br /&gt;
&lt;br /&gt;
 ScriptAliasMatch ^/ej/.+ PATH/cgi-bin/new-client&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; &amp;amp;mdash; тот же самый путь.&lt;br /&gt;
&lt;br /&gt;
=== Настройка ejudge ===&lt;br /&gt;
&lt;br /&gt;
В глобальном конфигурационном файле [[ejudge.xml]] в раздел&lt;br /&gt;
плагинов добавьте конфигурацию плагинов для google и VK:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;plugin type=&amp;quot;auth&amp;quot; name=&amp;quot;google&amp;quot; load=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;config&amp;gt;&lt;br /&gt;
     &amp;lt;client_id&amp;gt;${google_app_id}&amp;lt;/client_id&amp;gt;&lt;br /&gt;
     &amp;lt;client_secret&amp;gt;${google_app_secret}&amp;lt;/client_secret&amp;gt;&lt;br /&gt;
     &amp;lt;redirect_uri&amp;gt;${google_callback}&amp;lt;/redirect_uri&amp;gt;&lt;br /&gt;
   &amp;lt;/config&amp;gt;&lt;br /&gt;
 &amp;lt;/plugin&amp;gt;&lt;br /&gt;
 &amp;lt;plugin type=&amp;quot;auth&amp;quot; name=&amp;quot;vk&amp;quot; load=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;config&amp;gt;&lt;br /&gt;
     &amp;lt;client_id&amp;gt;${vk_app_id}&amp;lt;/client_id&amp;gt;&lt;br /&gt;
     &amp;lt;client_secret&amp;gt;${vk_app_secret}&amp;lt;/client_secret&amp;gt;&lt;br /&gt;
     &amp;lt;redirect_uri&amp;gt;${vk_callback}&amp;lt;/redirect_uri&amp;gt;&lt;br /&gt;
   &amp;lt;/config&amp;gt;&lt;br /&gt;
 &amp;lt;/plugin&amp;gt;&lt;br /&gt;
 &amp;lt;plugin type=&amp;quot;auth&amp;quot; name=&amp;quot;yandex&amp;quot; load=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;config&amp;gt;&lt;br /&gt;
     &amp;lt;client_id&amp;gt;${yandex_client_id}&amp;lt;/client_id&amp;gt;&lt;br /&gt;
     &amp;lt;client_secret&amp;gt;${yandex_client_secret}&amp;lt;/client_secret&amp;gt;&lt;br /&gt;
     &amp;lt;redirect_uri&amp;gt;${yandex_callback}&amp;lt;/redirect_uri&amp;gt;&lt;br /&gt;
   &amp;lt;/config&amp;gt;&lt;br /&gt;
 &amp;lt;/plugin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь через ${VAR} обозначена подстановка параметра VAR, определенного&lt;br /&gt;
при настройке приложения у провайдера аутентификации.&lt;br /&gt;
&lt;br /&gt;
==== Настройка входа привилегированных пользователей ====&lt;br /&gt;
&lt;br /&gt;
Чтобы привилегированные пользователи могли входить в ejudge&lt;br /&gt;
через OAUTH2 аутентификацию потребуется следующая настройка:&lt;br /&gt;
&lt;br /&gt;
Добавить атрибут &amp;lt;code&amp;gt;enable_oauth&amp;lt;/code&amp;gt; в элемент &amp;lt;code&amp;gt;config&amp;lt;/code&amp;gt;&lt;br /&gt;
в конфигурационный файл [[ejudge.xml]] примерно следующим образом:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;config enable_oauth=&amp;quot;yes&amp;quot; ...&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В конфигурационный файл &amp;lt;code&amp;gt;capabilities.xml&amp;lt;/code&amp;gt;, который находится&lt;br /&gt;
в том же каталоге, что &amp;lt;code&amp;gt;ejudge.xml&amp;lt;/code&amp;gt;, добавить&lt;br /&gt;
таблицу отображений внешних OAUTH2 идентификаторов пользователей&lt;br /&gt;
во внутренние:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;oauth_user_map&amp;gt;&lt;br /&gt;
   &amp;lt;oauth_entry oauth_user=&amp;quot;EXT-ID-1&amp;quot; local_user=&amp;quot;LOCAL-LOGIN-1&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;oauth_entry oauth_user=&amp;quot;EXT-ID-2&amp;quot; local_user=&amp;quot;LOCAL-LOGIN-2&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/oauth_user_map&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;EXT-ID&amp;lt;/code&amp;gt; &amp;amp;mdash; это идентификатор пользователя&lt;br /&gt;
у провайдера аутентификации. В случае google &amp;amp;mdash; это email,&lt;br /&gt;
например, &amp;lt;code&amp;gt;user@gmail.com&amp;lt;/code&amp;gt;. В случае VK &amp;amp;mdash;&lt;br /&gt;
это заданный при регистрации email, либо идентификатор вида&lt;br /&gt;
&amp;lt;code&amp;gt;user${VK-ID}@vk&amp;lt;/code&amp;gt;, где &amp;lt;code&amp;gt;VK-ID&amp;lt;/code&amp;gt; &amp;amp;mdash;&lt;br /&gt;
идентификатор пользователя VK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LOCAL-LOGIN&amp;lt;/code&amp;gt; &amp;amp;mdash; это логин пользователя в ejudge,&lt;br /&gt;
например, &amp;lt;code&amp;gt;ejudge&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Настройка входа пользователей в турнир ====&lt;br /&gt;
&lt;br /&gt;
Аутентификация пользователей по OAUTH2 разрешается в каждом&lt;br /&gt;
турнире по отдельности.&lt;br /&gt;
Для этого нужно установить атрибут&lt;br /&gt;
&amp;lt;code&amp;gt;[[contest.xml:enable_oauth|enable_oauth]]&amp;lt;/code&amp;gt;&lt;br /&gt;
элемента &amp;lt;code&amp;gt;[[contest.xml:contest|contest]]&amp;lt;/code&amp;gt; в файле [[contest.xml]].&lt;br /&gt;
Конфигурационный файл будет выглядеть примерно так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;contest id=&amp;quot;auto&amp;quot;&lt;br /&gt;
          enable_oauth=&amp;quot;yes&amp;quot;&lt;br /&gt;
          ...&lt;br /&gt;
&lt;br /&gt;
Если доступ к программе register разрешен с помощью правила&lt;br /&gt;
&amp;lt;code&amp;gt;[[contest.xml:register_access|register_access]]&amp;lt;/code&amp;gt;,&lt;br /&gt;
на турнир смогут регистрироваться новые пользователи.&lt;br /&gt;
Иначе в турнир смогут заходить только уже зарегистрированные&lt;br /&gt;
пользователи.&lt;br /&gt;
&lt;br /&gt;
Дополнительные ограничения на вход с помощью OAUTH2&lt;br /&gt;
можно задать с помощью элемента&lt;br /&gt;
&amp;lt;code&amp;gt;[[contest.xml:oauth_rules|oauth_rules]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Например,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;oauth_rules&amp;gt;&lt;br /&gt;
   &amp;lt;oauth_rule domain=&amp;quot;school.ru&amp;quot; allow=&amp;quot;yes&amp;quot; strip_domain=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;oauth_rule domain=&amp;quot;&amp;quot; deny=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/oauth_rules&amp;gt;&lt;br /&gt;
&lt;br /&gt;
в турнир с помощью OAUTH2 смогут заходить только пользователи&lt;br /&gt;
с почтовым адресом вида &amp;lt;code&amp;gt;USER@school.ru&amp;lt;/code&amp;gt;,&lt;br /&gt;
при этом в системе ejudge им будет соответствовать логин &amp;lt;code&amp;gt;USER&amp;lt;/code&amp;gt;.&lt;br /&gt;
Вход остальных пользователей с помощью OAUTH2 запрещен.&lt;br /&gt;
&lt;br /&gt;
==== Особенности создания пользователей с помощью OAUTH2 ====&lt;br /&gt;
&lt;br /&gt;
Если в турнире открыт доступ к программе регистрации register,&lt;br /&gt;
причем регистрация может быть как свободная, так и модерируемая,&lt;br /&gt;
то пользователи, входящие по OAUTH2 будут автоматически зарегистрированы&lt;br /&gt;
в данный турнир, если такой логин еще не существовал.&lt;br /&gt;
&lt;br /&gt;
Для пользователей, созданных при входе по OAUTH2, в поле &amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt;&lt;br /&gt;
и в поле &amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt; прописывается OAUTH-идентификатор пользователя&lt;br /&gt;
(обычно это адрес электронной почты). Генерируется случайный&lt;br /&gt;
16-символьный пароль, который в базу сохраняется в хешированном виде.&lt;br /&gt;
Таким образом пользователь, зарегистрировавшийся с помощью OAUTH2,&lt;br /&gt;
в дальнейшем в ejudge сможет входить только с помощью OAUTH2.&lt;br /&gt;
&lt;br /&gt;
=== OIDC-плагин ===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии [[изменения в версии 3.13.0|3.13.0]] поддерживается&lt;br /&gt;
плагин для OIDC-аутентификации. Поддерживаемый протокол обмена данными&lt;br /&gt;
при OIDC-аутентификации аналогичен аутентификации Google, но конфигурация&lt;br /&gt;
OIDC-плагина позволяет задавать больше параметров.&lt;br /&gt;
&lt;br /&gt;
Конфигурация плагина задаётся следующим образом:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;plugin type=&amp;quot;auth&amp;quot; name=&amp;quot;oidc&amp;quot; load=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;config&amp;gt;&lt;br /&gt;
     &amp;lt;client_id&amp;gt;CLIENT-ID&amp;lt;/client_id&amp;gt;&lt;br /&gt;
     &amp;lt;client_secret&amp;gt;CLIENT-SECRET&amp;lt;/client_secret&amp;gt;&lt;br /&gt;
     &amp;lt;redirect_uri&amp;gt;OIDC-CALLBACK&amp;lt;/redirect_uri&amp;gt;&lt;br /&gt;
     &amp;lt;configuration_endpoint&amp;gt;OIDC-CONFIGURATION-ENDPOINT&amp;lt;/configuration_endpoint&amp;gt;&lt;br /&gt;
     &amp;lt;scope&amp;gt;SCOPE&amp;lt;/scope&amp;gt;&lt;br /&gt;
   &amp;lt;/config&amp;gt;&lt;br /&gt;
 &amp;lt;/plugin&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%A3%D0%BB%D1%83%D1%87%D1%88%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2_%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D0%B8&amp;diff=6848</id>
		<title>Улучшенная поддержка серверов компиляции</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%A3%D0%BB%D1%83%D1%87%D1%88%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2_%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D0%B8&amp;diff=6848"/>
		<updated>2024-12-09T21:03:20Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Улучшенная поддержка серверов компиляции]]&lt;br /&gt;
&lt;br /&gt;
В версии [[Изменения в версии 3.13.0|3.13.0]] поддерживается&lt;br /&gt;
улучшенный механизм взаимодействия сервера турнира [[ej-contests]]&lt;br /&gt;
и серверов компиляции [[e-compile]].&lt;br /&gt;
&lt;br /&gt;
Главным недостатком &amp;quot;старой&amp;quot; модели поддержки языков программирования было то, что&lt;br /&gt;
конфигурации языков программирования в турнире были несинхронизированы с конфигурацией&lt;br /&gt;
языков программирования в используемом сервере компиляции [[ej-compile]].&lt;br /&gt;
&lt;br /&gt;
* При обновлении версий языков программирования информация о версиях не обновляется в конфигурационных файлах турниров.&lt;br /&gt;
* Конфигурации языков программирования нужно копировать в каждый турнир.&lt;br /&gt;
* При переключении на другой сервер компиляции информация о языках программирования не синхронизируется.&lt;br /&gt;
&lt;br /&gt;
Новый механизм взаимодействия сервера турнира и сервера компиляции доступен, если при конфигурировании ejudge&lt;br /&gt;
с помощью &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt; была указана опция &amp;lt;code&amp;gt;--enable-compile-spool-dir&amp;lt;/code&amp;gt;,&lt;br /&gt;
доступная с версии [[Изменения в версии 3.8.0|3.8.0]]. Новый механизм не включается автоматически,&lt;br /&gt;
он должен быть активирован вручную для каждого турнира. Для его активации нужно&lt;br /&gt;
на странице списка турниров в serve-control перейти к редактированию настроек (Settings),&lt;br /&gt;
перейти на вкладку Language Settings и в строке &amp;quot;Compilation server integration DISABLED&amp;quot; нажать кнопку &amp;quot;Enable&amp;quot;.&lt;br /&gt;
Затем потребуется выполнить операцию &amp;quot;COMMIT changes!&amp;quot;, и после этого снова открыть экран настроек&lt;br /&gt;
языков программирования при редактировании турнира. Новый экран настроек языков&lt;br /&gt;
программирования сильно отличается от старого. Изменение сервера компиляции по умолчанию в турнире&lt;br /&gt;
тоже потребует сохранения настроек турнира с помощью &amp;quot;COMMIT changes!&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Новая страница редактирования настроек языков программирования позволяет выбирать сервер компиляции&lt;br /&gt;
для турнира, если доступно несколько серверов компиляции. Каждый язык программирования может&lt;br /&gt;
активироваться и деактивироваться.&lt;br /&gt;
&lt;br /&gt;
==== Настройка доступных языков программирования в турнире ====&lt;br /&gt;
&lt;br /&gt;
Новый механизм взаимодействия сервера турнира с сервером компиляции включается, если&lt;br /&gt;
установлен в положительное значение глобальный конфигурационный параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:global:enable_language_import|enable_language_import]]&amp;lt;/code&amp;gt;, например так:&lt;br /&gt;
&lt;br /&gt;
 enable_language_import&lt;br /&gt;
&lt;br /&gt;
Если в качестве основного сервера компиляции используется не сервер по умолчанию, его имя&lt;br /&gt;
указывается в глобальном конфигурационном параметре &lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:global:compile_server_id|compile_server_id]]&amp;lt;/code&amp;gt;, например так:&lt;br /&gt;
&lt;br /&gt;
 compile_server_id = &amp;quot;fast&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Сервер компиляции [[ej-compile]] при старте сохраняет актуальную конфигурацию поддерживаемых&lt;br /&gt;
языков в каталог, задаваемый опцией &amp;lt;code&amp;gt;--enable-compile-spool-dir&amp;lt;/code&amp;gt;. Таким образом&lt;br /&gt;
актуальная конфигурация становится доступной серверу турниров [[ej-contests]]. Сервер турниров&lt;br /&gt;
загружает актуальную конфигурацию языков программирования из файла и объединяет с локальными&lt;br /&gt;
конфигурационными секциями языков программирования. Локальные конфигурационные секции&lt;br /&gt;
могут модифицировать конфигурацию языков от сервера компиляции.&lt;br /&gt;
&lt;br /&gt;
Список разрешенных языков программирования для турнира можно задать с помощью&lt;br /&gt;
глобального конфигурационного параметра&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:global:language_import|language_import]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, конфигурация&lt;br /&gt;
&lt;br /&gt;
 enable_language_import&lt;br /&gt;
 language_import = &amp;quot;enable all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
включает все языки программирования, поддерживаемые сервером компиляции, кроме языков,&lt;br /&gt;
явно помеченных &amp;lt;code&amp;gt;[[Serve.cfg:language:default_disabled|default_disabled]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
В текущей версии к ним относятся языки [[Lang:postgres|postgres]] и [[Lang:custom|custom]].&lt;br /&gt;
&lt;br /&gt;
Выборочно запретить некоторые языки программирования можно следующим образом:&lt;br /&gt;
&lt;br /&gt;
 enable_language_import&lt;br /&gt;
 language_import = &amp;quot;enable all&amp;quot;&lt;br /&gt;
 language_import = &amp;quot;disable python,vbnc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Возможна конфигурация языков с разрешением избранных языков и запретом всех остальных:&lt;br /&gt;
&lt;br /&gt;
 enable_language_import&lt;br /&gt;
 language_import = &amp;quot;disable all&amp;quot;&lt;br /&gt;
 language_import = &amp;quot;enable g++,clang++&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Кроме того, можно изменить конфигурацию языка программирования с помощью явной секции:&lt;br /&gt;
&lt;br /&gt;
 enable_language_import&lt;br /&gt;
 language_import = &amp;quot;disable all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 [language]&lt;br /&gt;
 short_name = &amp;quot;g++&amp;quot;&lt;br /&gt;
 compiler_env = &amp;quot;EJUDGE_FLAGS=-O2 -Wall -std=gnu++23&amp;quot;&lt;br /&gt;
&lt;br /&gt;
У секции модификации конфигурации языка должен быть задан параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:language:short_name|short_name]]&amp;lt;/code&amp;gt;&lt;br /&gt;
и не должен быть задан параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:language:id|id]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Если для языка заданы дополнительные настройки с помощью секции &amp;lt;code&amp;gt;[language]&amp;lt;/code&amp;gt;,&lt;br /&gt;
такой язык активируется по умолчанию. Его можно не указывать в &amp;lt;code&amp;gt;language_import&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0_IOI_%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%B0_%D0%B1%D0%B0%D0%BB%D0%BB%D0%BE%D0%B2&amp;diff=6847</id>
		<title>Правила IOI расчета баллов</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0_IOI_%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%B0_%D0%B1%D0%B0%D0%BB%D0%BB%D0%BE%D0%B2&amp;diff=6847"/>
		<updated>2024-12-09T21:03:20Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Правила IOI расчета баллов]]&lt;br /&gt;
&lt;br /&gt;
Правила IOI применяются только с задачами с групповой оценкой тестов. Для этого у задачи должна быть&lt;br /&gt;
задана [[Оценивающие программы|оценивающая программа]] с помощью&lt;br /&gt;
конфигурационного параметра задачи &amp;lt;code&amp;gt;[[Serve.cfg:problem:standard_valuer|standard_valuer]]&amp;lt;/code&amp;gt;&lt;br /&gt;
или &amp;lt;code&amp;gt;[[serve.cfg:problem:valuer_cmd|valuer_cmd]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Рекомендуется использовать стандартную оценивающую программу [[gvaluer]],&lt;br /&gt;
задавая конфигурацию задачи следующим образом:&lt;br /&gt;
 [problem]&lt;br /&gt;
 standard_valuer = &amp;quot;gvaluer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Режим слияния баллов за подгруппы для задачи включается с помощью конфигурационного параметра&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:problem:enable_group_merge|enable_group_merge]]&amp;lt;/code&amp;gt;. Он действует только на данную&lt;br /&gt;
задачу, и в турнире могут быть как задачи со слиянием баллов по подгруппам, так и задачи без слияния баллов.&lt;br /&gt;
&lt;br /&gt;
В режиме слияния баллов поддерживается не более 15 групп тестов.&lt;br /&gt;
&lt;br /&gt;
В режиме слияния баллов итоговый балл за задачу выставляется как сумма по всем группам&lt;br /&gt;
максимального выставленного балла за группу на всех посылках. Предположим, что тесты в задаче&lt;br /&gt;
оцениваются в четыре группы, и участник сделал три посылки по этой задаче:&lt;br /&gt;
* первая посылка получила за группы тестов 10, 15, 0, 20 баллов, итого 45 баллов;&lt;br /&gt;
* вторая посылка получила за группы тестов 5, 15, 10, 20 баллов, итого 50 баллов;&lt;br /&gt;
* третья посылка получила за группы тестов 20, 0, 5, 10 баллов, итого 35 баллов.&lt;br /&gt;
Итоговый балл за задачу равен сумме максимальных баллов за каждую группу тестов, то есть 20 + 15 + 10 + 20 = 65 баллов.&lt;br /&gt;
&lt;br /&gt;
Если режим слияния баллов выключен, итоговый балл за задачу выставляется как максимум выставленных&lt;br /&gt;
за все посылки данной задачи баллов, и в данном примере он равен 50.&lt;br /&gt;
&lt;br /&gt;
Поддерживается с версии [[Изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.13.0&amp;diff=6846</id>
		<title>Изменения в версии 3.13.0</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.13.0&amp;diff=6846"/>
		<updated>2024-12-09T21:03:19Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.13.0]]&lt;br /&gt;
&lt;br /&gt;
Время выхода: TBA г.&lt;br /&gt;
&lt;br /&gt;
[[Изменения в версии 3.12.0|Предыдущая версия]]&lt;br /&gt;
&lt;br /&gt;
=== Обновление с предыдущих версий ===&lt;br /&gt;
&lt;br /&gt;
После инсталляции новой версии ejudge обязательно выполните команды &amp;lt;code&amp;gt;ejudge-suid-setup&amp;lt;/code&amp;gt;&lt;br /&gt;
и &amp;lt;code&amp;gt;ejudge-upgrade-web&amp;lt;/code&amp;gt; из-под пользователя root и команду&lt;br /&gt;
&amp;lt;code&amp;gt;ejudge-configure-compilers&amp;lt;/code&amp;gt; из-под пользователя ejudge.&lt;br /&gt;
&lt;br /&gt;
=== Список Pull Requests ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/blackav/ejudge/milestone/6?closed=1 Список изменений на GitHub]&lt;br /&gt;
&lt;br /&gt;
=== Главные новые возможности и улучшения ===&lt;br /&gt;
&lt;br /&gt;
* Добавлена поддержка [[Правила IOI расчета баллов|режима слияния подгрупп (правила IOI)]].&lt;br /&gt;
* Добавлен универсальный плагин для [[Аутентификация с помощью OAUTH2|аутентификации по OIDC]].&lt;br /&gt;
* Переработан механизм [[Улучшенная поддержка серверов компиляции|взаимодействия сервера турнира и агентов компиляции]].&lt;br /&gt;
* Улучшена поддержка [[Задачи на неполные программы|задач на неполные программы]].&lt;br /&gt;
* В HTML-условиях поддерживается MathJax3.&lt;br /&gt;
* Добавлен плагин для отправки нотификаций в redis streams.&lt;br /&gt;
* Обновлена программа [[ej-polygon]] импорта задач из системы Polygon.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-compile]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается аргумент командной строки &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, в котором&lt;br /&gt;
передаётся серийный номер параллельного запуска программы на одном&lt;br /&gt;
хосте. Этот параметр используется при запуске процесса компиляции&lt;br /&gt;
в контейнере, чтобы использовать отдельный идентификатор пользователя&lt;br /&gt;
компиляции. Параллельные компиляции на одном хосте будут выполняться&lt;br /&gt;
под разными идентификаторами пользователя и не будут влиять&lt;br /&gt;
друг на друга.&lt;br /&gt;
&lt;br /&gt;
Поддерживаются расширенные свойства скомпилированных файлов.&lt;br /&gt;
Они активируются с помощью установки глобального конфигурационного&lt;br /&gt;
параметра enable_run_props турнира. В этом случае в скрипт&lt;br /&gt;
компиляции передается третий параметр - путь к файлу,&lt;br /&gt;
в который скрипт компиляции может записать дополнительные свойства&lt;br /&gt;
сгенерированного исполняемого файла. Этот файл передается&lt;br /&gt;
в сервис запуска решений.&lt;br /&gt;
&lt;br /&gt;
При копировании файлов из каталога, заданного с помощью конфигурационного&lt;br /&gt;
параметра extra_src_dir, в рабочий каталог компиляции&lt;br /&gt;
выполняется рекурсивное копирование.&lt;br /&gt;
&lt;br /&gt;
Для Typescript поддерживается альтернативный транслятор tsx.&lt;br /&gt;
&lt;br /&gt;
В ejudge.xml поддерживается возможность не запускать инстансы ej-compile и ej-super-run (parallelism и&lt;br /&gt;
compile_parallelism).&lt;br /&gt;
&lt;br /&gt;
=== [[ej-compile-control]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается аргумент командной строки &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, который&lt;br /&gt;
передаётся в [[ej-compile]].&lt;br /&gt;
&lt;br /&gt;
=== [[ej-contests]] ===&lt;br /&gt;
&lt;br /&gt;
В конфигурационном параметре open_tests поддерживатся видимость тестов&lt;br /&gt;
icpc. Если для группы тестов установлена видимость icpc, то&lt;br /&gt;
участнику турнира отображается только балл и минимальная информация&lt;br /&gt;
о первом непрошедшем тесте в группе.&lt;br /&gt;
&lt;br /&gt;
Если у задачи была хотя бы одна группа тестов с видимостью icpc,&lt;br /&gt;
протокол тестирования для участника показывает только информацию&lt;br /&gt;
об открытых тестах и суммарную информацию по группам тестов.&lt;br /&gt;
&lt;br /&gt;
Добавлена конфигурационная переменная задачи standard_valuer,&lt;br /&gt;
которая позволяет задать стандартную программу оценивания gvaluer.&lt;br /&gt;
&lt;br /&gt;
Поддерживается экспорт архивов посылок в фоновом режиме.&lt;br /&gt;
После нажатия &amp;quot;Download archive of runs&amp;quot; и выбора опций&lt;br /&gt;
скачивания решений создаётся фоновое задание, статус исполнения&lt;br /&gt;
которого можно отслеживать. Когда подготовка архива будет&lt;br /&gt;
закончена, архив можно будет скачать по ссылке.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;get-user&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;copy-user-info&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;change-registration&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;problem-status-json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;list-languages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;create-user-session&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;change-registrations&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка API-вызова &amp;lt;code&amp;gt;special-flow&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В протоколах тестирования отображается размер использованной памяти (RSS).&lt;br /&gt;
Это поддерживается только в случае запуска решений в контейнере.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр enable_run_props.&lt;br /&gt;
&lt;br /&gt;
Исправлена ошибка, из-за которой не работала смена языка интерфейса.&lt;br /&gt;
&lt;br /&gt;
Если apache не может подключиться к ej-contests, клиенту возвращается http status 500.&lt;br /&gt;
&lt;br /&gt;
Добавлены атрибуты enable_user_finish, disable_user_finish, которые модифицируют возможность&lt;br /&gt;
пользовательского завершения турнира.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр default_disabled языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр version языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр disable_auto_update языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр enable_language_import.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр language_import.&lt;br /&gt;
&lt;br /&gt;
Переработан механизм взаимодействия сервера турнира и агентов компиляции.&lt;br /&gt;
&lt;br /&gt;
Пользователь может завершить невиртуальный турнир в любой момент времени.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр enable_group_merge задач.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр run_max_file_size языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр disable_bson_store.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-polygon]] ===&lt;br /&gt;
&lt;br /&gt;
При импорте из полигона поддерживаются баллы за тесты и группы тестов,&lt;br /&gt;
которые хранятся в элементах &amp;lt;code&amp;gt;tests&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;group&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поддерживается генерация параметров test_score_list, open_tests,&lt;br /&gt;
final_open_tests.&lt;br /&gt;
&lt;br /&gt;
Поддерживается генерация файла valuer.cfg для оценивающей программы&lt;br /&gt;
gvaluer.&lt;br /&gt;
&lt;br /&gt;
При импорте турнира из полигона задачи сортируются по строковому&lt;br /&gt;
значению ключа задачи, он же используется для короткого имени задачи.&lt;br /&gt;
&lt;br /&gt;
Добавлена опция enable_rss_limit при импорте из полигона.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-suid-container]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается переключение в разные непривилегированные пользователи&lt;br /&gt;
для параллельной компиляции.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-super-run]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ej-super-server]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается заголовок 'Authorization:' для последующей реализации API-вызовов.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;login-action-json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== [[ejudge-control]] ===&lt;br /&gt;
&lt;br /&gt;
Добавлена опция --compile-queue.&lt;br /&gt;
&lt;br /&gt;
=== [[gvaluer]] ===&lt;br /&gt;
&lt;br /&gt;
При компиляции ejudge программа автоматически компилируется и инсталлируется&lt;br /&gt;
в каталог с проверяющими программами. Для этого в системе должен быть&lt;br /&gt;
установлен компилятор C++.&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BD%D0%B0_%D0%BD%D0%B5%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B&amp;diff=6845</id>
		<title>Задачи на неполные программы</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BD%D0%B0_%D0%BD%D0%B5%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B&amp;diff=6845"/>
		<updated>2024-12-09T21:03:19Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Задачи на неполные программы]]&lt;br /&gt;
&lt;br /&gt;
В задачах на неполные программы требуется написать не программу целиком, которая будет запускаться при тестировании&lt;br /&gt;
как полная программа в отдельном процессе, но отдельную структурную единицу программы, например,&lt;br /&gt;
функцию, класс или модуль. Написанный участником фрагмент программы будет объединен с другими частями программы,&lt;br /&gt;
написанными заранее. В результате получится полная программа, которая будет тестироваться обычным способом.&lt;br /&gt;
&lt;br /&gt;
В версии [[Изменения в версии 3.13.0|3.13.0]] добавлен глобальный конфигурационный параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:global:enable_run_props|enable_run_props]]&amp;lt;/code&amp;gt;, который упрощает реализацию&lt;br /&gt;
задач на неполные программы для скриптовых языков, таких как [[Lang:python3|python3]].&lt;br /&gt;
Кроме того, в версии [[Изменения в версии 3.13.0|3.13.0]] в скрипты компиляции добавлена поддержка сборки программы из&lt;br /&gt;
нескольких файлов.&lt;br /&gt;
&lt;br /&gt;
Несколько вариантов поддержки задач на неполные программы рассматриваются далее.&lt;br /&gt;
&lt;br /&gt;
=== Единственный язык, стандартные скрипты компиляции ===&lt;br /&gt;
&lt;br /&gt;
В случае единственного разрешенного языка программирования конфигурация задачи может выглядить следующим образом.&lt;br /&gt;
&lt;br /&gt;
Глобальный параметр enable_run_props должен быть установлен.&lt;br /&gt;
&lt;br /&gt;
 enable_run_props&lt;br /&gt;
&lt;br /&gt;
У задачи должен быть задан параметр &amp;lt;code&amp;gt;[[serve.cfg:problem:extra_src_dir|extra_src_dir]]&amp;lt;/code&amp;gt; например&lt;br /&gt;
следующим образом:&lt;br /&gt;
&lt;br /&gt;
 extra_src_dir = &amp;quot;build&amp;quot;&lt;br /&gt;
&lt;br /&gt;
В подкаталоге &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; каталога задачи должны размещаться файлы, необходимые для сборки полной программы&lt;br /&gt;
при компиляции. Все файлы и подкаталоги в каталоге &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; рекурсивно копируются в каталог сборки.&lt;br /&gt;
Например, в случае сборки программы на C++ каталог &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; может содержать файл &amp;lt;code&amp;gt;main.cpp&amp;lt;/code&amp;gt;,&lt;br /&gt;
в котором находится функция &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; программы.&lt;br /&gt;
&lt;br /&gt;
Дополнительно у задачи нужно установить три переменных окружения для компиляции:&lt;br /&gt;
* &amp;lt;code&amp;gt;EJUDGE_SOLUTION_FILE&amp;lt;/code&amp;gt; &amp;amp;mdash; имя файла, в котором при компиляции будет находиться сданный на проверку код.&lt;br /&gt;
* &amp;lt;code&amp;gt;EJUDGE_START_FILE&amp;lt;/code&amp;gt; &amp;amp;mdash; имя файла, в котором находится точка входа в программу (главная функция).&lt;br /&gt;
* &amp;lt;code&amp;gt;EJUDGE_ARCHIVE&amp;lt;/code&amp;gt; &amp;amp;mdash; если установлен в 1, в качестве результата компиляции будет сформирован .tar.gz архив со всеми файлами в текущем каталоге.&lt;br /&gt;
&lt;br /&gt;
Имена файлов должны указываться без суффикса, правильный суффикс в зависимости от языка будет добавлен&lt;br /&gt;
автоматически. Скрипты компиляции разных языков программирования могут использовать эти переменные окружения&lt;br /&gt;
по-разному. Например, для языка C++ важно только чтобы была задана переменная окружения&lt;br /&gt;
&amp;lt;code&amp;gt;EJUDGE_SOLUTION_FILE&amp;lt;/code&amp;gt;, для python должны быть заданы все три переменные окружения, а для Java &amp;amp;mdash;&lt;br /&gt;
первые две переменных окружения.&lt;br /&gt;
&lt;br /&gt;
Кроме того, для многих языков поддерживается переменная окружения &amp;lt;code&amp;gt;EJUDGE_FLAGS&amp;lt;/code&amp;gt;, которая позволяет&lt;br /&gt;
задавать опции компиляции.&lt;br /&gt;
&lt;br /&gt;
Таким образом, для настройки сборки программы на языке C++ переменные окружения в секции конфигурации&lt;br /&gt;
задачи могут быть такими:&lt;br /&gt;
&lt;br /&gt;
 lang_compiler_env = &amp;quot;*=EJUDGE_SOLUTION_FILE=solution&amp;quot;&lt;br /&gt;
 lang_compiler_env = &amp;quot;*=EJUDGE_FLAGS=-O2 -g -std=gnu++23 -fsanitize=undefined,address,leak -fno-sanitize-recover&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Для сборки программы на python переменные окружения могут быть такими:&lt;br /&gt;
&lt;br /&gt;
 lang_compiler_env = &amp;quot;*=EJUDGE_SOLUTION_FILE=solution&amp;quot;&lt;br /&gt;
 lang_compiler_env = &amp;quot;*=EJUDGE_START_FILE=main&amp;quot;&lt;br /&gt;
 lang_compiler_env = &amp;quot;*=EJUDGE_ARCHIVE=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Единственный язык, нестандартный скрипт компиляции ===&lt;br /&gt;
&lt;br /&gt;
Глобальный параметр enable_run_props должен быть установлен.&lt;br /&gt;
&lt;br /&gt;
 enable_run_props&lt;br /&gt;
&lt;br /&gt;
У задачи должен быть задан параметр &amp;lt;code&amp;gt;[[serve.cfg:problem:extra_src_dir|extra_src_dir]]&amp;lt;/code&amp;gt; например&lt;br /&gt;
следующим образом:&lt;br /&gt;
&lt;br /&gt;
 extra_src_dir = &amp;quot;build&amp;quot;&lt;br /&gt;
&lt;br /&gt;
В подкаталоге &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; каталога задачи должны размещаться файлы, необходимые для сборки полной программы&lt;br /&gt;
при компиляции. Все файлы и подкаталоги в каталоге &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; рекурсивно копируются в каталог сборки.&lt;br /&gt;
Например, в случае сборки программы на C++ каталог &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; может содержать файл &amp;lt;code&amp;gt;main.cpp&amp;lt;/code&amp;gt;,&lt;br /&gt;
в котором находится функция &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; программы.&lt;br /&gt;
&lt;br /&gt;
У задачи должна быть установлена переменная окружения компиляции &amp;lt;code&amp;gt;EJUDGE_BUILD_SCRIPT&amp;lt;/code&amp;gt;,&lt;br /&gt;
например, следующим образом:&lt;br /&gt;
&lt;br /&gt;
 lang_compiler_env = &amp;quot;*=EJUDGE_BUILD_SCRIPT=./build.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Кроме того, в каталоге &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; должен размещаться исполняемый файл &amp;lt;code&amp;gt;build.sh&amp;lt;/code&amp;gt;,&lt;br /&gt;
который будет запущен для сборки программы. Этот файл принимает три аргумента командной строки:&lt;br /&gt;
* имя файла с программой, отправленной на проверку;&lt;br /&gt;
* имя файла с собранной программой;&lt;br /&gt;
* имя файла с свойствами собранной программы (run properties) &amp;amp;mdash; необязательно.&lt;br /&gt;
&lt;br /&gt;
Скрипту сборки &amp;lt;code&amp;gt;build.sh&amp;lt;/code&amp;gt; передаются все переменные окружения, заданные для компиляции,&lt;br /&gt;
и дополнительно две переменных окружения:&lt;br /&gt;
* &amp;lt;code&amp;gt;EJUDGE_LANGUAGE&amp;lt;/code&amp;gt; &amp;amp;mdash; короткое имя языка программирования;&lt;br /&gt;
* &amp;lt;code&amp;gt;EJUDGE_COMPILER&amp;lt;/code&amp;gt; &amp;amp;mdash; компилятор, который используется при сборке программ на данном языке программирования стандартными скриптами.&lt;br /&gt;
&lt;br /&gt;
В переменной окружения &amp;lt;code&amp;gt;EJUDGE_BUILD_SCRIPT&amp;lt;/code&amp;gt; можно указать другое имя скрипта, если это необходимо.&lt;br /&gt;
&lt;br /&gt;
=== Единственный язык, необязательный нестандартный скрипт компиляции ===&lt;br /&gt;
&lt;br /&gt;
Если установить переменную окружения компиляции &amp;lt;code&amp;gt;EJUDGE_OPT_BUILD_SCRIPT&amp;lt;/code&amp;gt;, активируется&lt;br /&gt;
гибридный режим. Если указанный в переменной окружения файл существует и может быть выполнен,&lt;br /&gt;
для компиляции программы будет вызываться он, как для случая установки &amp;lt;code&amp;gt;EJUDGE_BUILD_SCRIPT&amp;lt;/code&amp;gt;.&lt;br /&gt;
Иначе будут использоваться стандартные скрипты компиляции.&lt;br /&gt;
&lt;br /&gt;
=== Несколько поддерживаемых языков ===&lt;br /&gt;
&lt;br /&gt;
В этом случае конфигурация задачи может выглядить следующим образом.&lt;br /&gt;
&lt;br /&gt;
Глобальный параметр enable_run_props должен быть установлен.&lt;br /&gt;
&lt;br /&gt;
 enable_run_props&lt;br /&gt;
&lt;br /&gt;
У задачи должен быть задан параметр &amp;lt;code&amp;gt;[[serve.cfg:problem:extra_src_dir|extra_src_dir]]&amp;lt;/code&amp;gt; например&lt;br /&gt;
следующим образом:&lt;br /&gt;
&lt;br /&gt;
 extra_src_dir = &amp;quot;build/${language.short_name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Для каждого поддерживаемого языка программирования должен существовать соответствующий каталог,&lt;br /&gt;
в котором должны размещаться файлы, необходимые для сборки. Например, для компиляторв g++ каталог&lt;br /&gt;
должен называться &amp;lt;code&amp;gt;build/g++&amp;lt;/code&amp;gt;, а для языка python3 &amp;amp;mdash; &amp;lt;code&amp;gt;build/python3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Дальнейшая настройка языков для случая стандартных и нестандартных скриптов компиляции описана выше.&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_OAUTH2&amp;diff=6844</id>
		<title>Аутентификация с помощью OAUTH2</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_OAUTH2&amp;diff=6844"/>
		<updated>2024-12-09T21:03:18Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Аутентификация с помощью OAUTH2]]&lt;br /&gt;
&lt;br /&gt;
Поддерживается с версии [[Изменения в версии 3.9.0|3.9.0]].&lt;br /&gt;
&lt;br /&gt;
Данный документ описывает настройку поддержки аутентификации&lt;br /&gt;
с помощью протокола OAUTH2.&lt;br /&gt;
&lt;br /&gt;
Поддерживаются два провайдера идентификационной информации: Google&lt;br /&gt;
и VK. Чтобы добавить новый провайдер необходимо реализовать&lt;br /&gt;
auth-плагин, который будет поддерживать особенности реализации&lt;br /&gt;
нового провайдера. Схема OAUTH2 достаточно гибкая, и разные&lt;br /&gt;
провайдеры реализуют разные допустимые схемы аутентификации.&lt;br /&gt;
&lt;br /&gt;
OAUTH2 требует, чтобы клиент имел доступный из интернета URL&lt;br /&gt;
по протоколу https. Сайт должен иметь валидный сертификат https,&lt;br /&gt;
например, от Let's Encrypt. Самоподписанный сертификат не подойдет.&lt;br /&gt;
&lt;br /&gt;
Плагин для реализации OAUTH2 в ejudge использует mysql. Если&lt;br /&gt;
поддержка mysql не включена, или база ejudge для mysql не&lt;br /&gt;
развернута, плагин OAUTH2 работать не будет.&lt;br /&gt;
&lt;br /&gt;
Если развернуто несколько инсталляций ejudge, которые доступны&lt;br /&gt;
по разным URL, для каждой инсталляции ejudge потребуется&lt;br /&gt;
зарегистрировать отдельное &amp;quot;приложение&amp;quot; на сайте провайдера&lt;br /&gt;
аутентификации.&lt;br /&gt;
&lt;br /&gt;
==== Регистрация приложения в Google ====&lt;br /&gt;
&lt;br /&gt;
Для настройки приложения в google требуется доступ к Google Cloud&lt;br /&gt;
Platform.&lt;br /&gt;
&lt;br /&gt;
Перейдите в пункт меню APIs &amp;amp;amp; Services / Dashboard.&lt;br /&gt;
Нажмите кнопку &amp;quot;CREATE PROJECT&amp;quot;.&lt;br /&gt;
Заполните поля &amp;quot;Project name&amp;quot;, &amp;quot;Organization&amp;quot;, &amp;quot;Location&amp;quot;.&lt;br /&gt;
После создания проекта выберите его вверху слева от &amp;quot;Google Cloud Platform&amp;quot;.&lt;br /&gt;
Выберите вкладку &amp;quot;OAuth Consent Screen&amp;quot;.&lt;br /&gt;
Заполните поля &amp;quot;App Name&amp;quot;, &amp;quot;User Support Email&amp;quot;, &amp;quot;Developer Contact&lt;br /&gt;
Information&amp;quot;. Нажмите &amp;quot;SAVE AND CONTINUE&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
На вкладке Scopes нажмите кнопку &amp;quot;Add or Remove Scopes&amp;quot;&lt;br /&gt;
и выберите три первых: userinfo.email, userinfo.profile, openid.&lt;br /&gt;
Это базовые разрешения, они не требуют верификации приложения.&lt;br /&gt;
Нажмите кнопку UPDATE внизу. В разделе &amp;quot;Your non-sensitive scopes&amp;quot;&lt;br /&gt;
должны появиться эти три разрешения.&lt;br /&gt;
Нажмите &amp;quot;SAVE AND CONTINUE&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
На вкладке &amp;quot;Test users&amp;quot; можно сразу нажать &amp;quot;SAVE AND CONTINUE&amp;quot;.&lt;br /&gt;
Дальше нажмите &amp;quot;BACK TO DASHBOARD&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Перейдите на вкладку &amp;quot;Credentials&amp;quot;. Выберите &amp;quot;+ CREATE CREDENTIALS&amp;quot;.&lt;br /&gt;
Выберите &amp;quot;OAUTH client ID&amp;quot;.&lt;br /&gt;
Заполните &amp;quot;Application type&amp;quot; &amp;amp;mdash; &amp;quot;Desktop App&amp;quot;.&lt;br /&gt;
Заполните поле &amp;quot;Name&amp;quot;, например, &amp;quot;testsite-io-client&amp;quot;.&lt;br /&gt;
Нажмите &amp;quot;CREATE&amp;quot;. Скопируйте значение поля &amp;quot;Your Client ID&amp;quot;.&lt;br /&gt;
Обозначим его google_app_id.&lt;br /&gt;
Скопируйте значение поля &amp;quot;Your client secret&amp;quot;.&lt;br /&gt;
Обозначим его google_app_secret.&lt;br /&gt;
&lt;br /&gt;
Перейдите на вкладку &amp;quot;OAuth Consent Screen&amp;quot;. Нажмите на кнопку&lt;br /&gt;
&amp;quot;PUBLISH APP&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Регистрация приложения в VK ====&lt;br /&gt;
&lt;br /&gt;
В левом боковом меню в самом низу выберите пункт &amp;quot;Управление&amp;quot;.&lt;br /&gt;
Вы должны попасть в раздел VK Developers.&lt;br /&gt;
В меню сверху выберите пункт &amp;quot;Мои приложения&amp;quot;.&lt;br /&gt;
Появится список созданных приложений.&lt;br /&gt;
Нажмите кнопку &amp;quot;Создать&amp;quot;.&lt;br /&gt;
Введите название, например, &amp;quot;Test Site&amp;quot;.&lt;br /&gt;
В опциях &amp;quot;Платформа&amp;quot; выберите &amp;quot;Сайт&amp;quot;.&lt;br /&gt;
Введите адрес сайта, например, &amp;quot;https://testsite.io&amp;quot;.&lt;br /&gt;
Введите базовый домен, например, &amp;quot;testsite.io&amp;quot;.&lt;br /&gt;
Нажмите кнопку &amp;quot;Создать&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
В случае успешного создания вы перейдете на вкладку &amp;quot;Информация&amp;quot;&lt;br /&gt;
нового приложения. В принципе, на этой странице ничего можно не заполнять.&lt;br /&gt;
Перейдите на вкладку &amp;quot;Настройки&amp;quot;.&lt;br /&gt;
Сохраните где-нибудь ID приложения (обозначим его vk_app_id)&lt;br /&gt;
и защищенный ключ (vk_app_secret).&lt;br /&gt;
Проверьте что адрес сайта и базовый домен правильные.&lt;br /&gt;
В тематике сайта выберите, например, &amp;quot;Образование&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Самое важное. В поле &amp;quot;Доверенный редирект URI&amp;quot; впишите URI,&lt;br /&gt;
по которому будет выполняться переход в случае успешной авторизации.&lt;br /&gt;
Для примера сайта выше это может быть &amp;quot;https://testsite.io/ej/client/oauth-login-2/S2&amp;quot;. Часть до /S2, то есть &amp;quot;https://testsite.io/ej/client/oauth-login-2&amp;quot; обозначим как vk_callback.&lt;br /&gt;
Сохраните измененные настройки приложения.&lt;br /&gt;
&lt;br /&gt;
==== Регистрация приложения в Yandex ([[Изменения в версии 3.10.0|3.10.0]]) ====&lt;br /&gt;
&lt;br /&gt;
Перейдите на страницу [https://oauth.yandex.ru/ Yandex Oauth].&lt;br /&gt;
Нажмите на кнопку &amp;quot;Создать приложение&amp;quot;.&lt;br /&gt;
Заполните поле &amp;quot;Название сервиса&amp;quot;, например, &amp;quot;testsite-io&amp;quot;.&lt;br /&gt;
Установите галочку &amp;quot;Веб-сервисы&amp;quot;.&lt;br /&gt;
В появившемся поле &amp;quot;Callback URL&amp;quot; впишите URL вида&lt;br /&gt;
&amp;quot;https://testsite.io/ej/client/oauth-login-2/S3&amp;quot;.&lt;br /&gt;
В разделе &amp;quot;Какие данные вам нужны&amp;quot; выберите &amp;quot;API Yandex ID&amp;quot;&lt;br /&gt;
и отметьте &amp;quot;Доступ к адресу электронной почты&amp;quot; и&lt;br /&gt;
&amp;quot;Доступ к логину, имени и фамилии, полу&amp;quot;.&lt;br /&gt;
Дополнительно можно вписать &amp;quot;Описание сервиса&amp;quot;, &amp;quot;Ссылка на сайт&amp;quot;&lt;br /&gt;
и &amp;quot;Контактные данные&amp;quot;.&lt;br /&gt;
После заполнения формы нажмите кнопку &amp;quot;Создать приложение&amp;quot;.&lt;br /&gt;
Часть до /S3, то есть &amp;quot;https://testsite.io/ej/client/oauth-login-2&amp;quot;&lt;br /&gt;
обозначим как yandex_callback.&lt;br /&gt;
&lt;br /&gt;
После создания приложения ему автоматически будет назначен ClientID&lt;br /&gt;
и Client secret, они потребуются в конфигурационном файле ejudge.xml.&lt;br /&gt;
&lt;br /&gt;
=== Настройка apache ===&lt;br /&gt;
&lt;br /&gt;
Чтобы URI вида HOST/ej/client/PATH передавались в cgi-bin программы&lt;br /&gt;
ejudge потребуется добавить rewrite правила в конфигурационный файл&lt;br /&gt;
apache.&lt;br /&gt;
&lt;br /&gt;
В секции конфигурации соответствующего виртуального хоста,&lt;br /&gt;
либо в глобальной секции найдите директиву вида:&lt;br /&gt;
&lt;br /&gt;
 ScriptAlias /cgi-bin/   &amp;quot;PATH/cgi-bin/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; какой-то путь в файловой системе.&lt;br /&gt;
Добавьте ниже директиву:&lt;br /&gt;
&lt;br /&gt;
 ScriptAliasMatch ^/ej/.+ PATH/cgi-bin/new-client&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; &amp;amp;mdash; тот же самый путь.&lt;br /&gt;
&lt;br /&gt;
=== Настройка ejudge ===&lt;br /&gt;
&lt;br /&gt;
В глобальном конфигурационном файле [[ejudge.xml]] в раздел&lt;br /&gt;
плагинов добавьте конфигурацию плагинов для google и VK:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;plugin type=&amp;quot;auth&amp;quot; name=&amp;quot;google&amp;quot; load=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;config&amp;gt;&lt;br /&gt;
     &amp;lt;client_id&amp;gt;${google_app_id}&amp;lt;/client_id&amp;gt;&lt;br /&gt;
     &amp;lt;client_secret&amp;gt;${google_app_secret}&amp;lt;/client_secret&amp;gt;&lt;br /&gt;
     &amp;lt;redirect_uri&amp;gt;${google_callback}&amp;lt;/redirect_uri&amp;gt;&lt;br /&gt;
   &amp;lt;/config&amp;gt;&lt;br /&gt;
 &amp;lt;/plugin&amp;gt;&lt;br /&gt;
 &amp;lt;plugin type=&amp;quot;auth&amp;quot; name=&amp;quot;vk&amp;quot; load=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;config&amp;gt;&lt;br /&gt;
     &amp;lt;client_id&amp;gt;${vk_app_id}&amp;lt;/client_id&amp;gt;&lt;br /&gt;
     &amp;lt;client_secret&amp;gt;${vk_app_secret}&amp;lt;/client_secret&amp;gt;&lt;br /&gt;
     &amp;lt;redirect_uri&amp;gt;${vk_callback}&amp;lt;/redirect_uri&amp;gt;&lt;br /&gt;
   &amp;lt;/config&amp;gt;&lt;br /&gt;
 &amp;lt;/plugin&amp;gt;&lt;br /&gt;
 &amp;lt;plugin type=&amp;quot;auth&amp;quot; name=&amp;quot;yandex&amp;quot; load=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;config&amp;gt;&lt;br /&gt;
     &amp;lt;client_id&amp;gt;${yandex_client_id}&amp;lt;/client_id&amp;gt;&lt;br /&gt;
     &amp;lt;client_secret&amp;gt;${yandex_client_secret}&amp;lt;/client_secret&amp;gt;&lt;br /&gt;
     &amp;lt;redirect_uri&amp;gt;${yandex_callback}&amp;lt;/redirect_uri&amp;gt;&lt;br /&gt;
   &amp;lt;/config&amp;gt;&lt;br /&gt;
 &amp;lt;/plugin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь через ${VAR} обозначена подстановка параметра VAR, определенного&lt;br /&gt;
при настройке приложения у провайдера аутентификации.&lt;br /&gt;
&lt;br /&gt;
==== Настройка входа привилегированных пользователей ====&lt;br /&gt;
&lt;br /&gt;
Чтобы привилегированные пользователи могли входить в ejudge&lt;br /&gt;
через OAUTH2 аутентификацию потребуется следующая настройка:&lt;br /&gt;
&lt;br /&gt;
Добавить атрибут &amp;lt;code&amp;gt;enable_oauth&amp;lt;/code&amp;gt; в элемент &amp;lt;code&amp;gt;config&amp;lt;/code&amp;gt;&lt;br /&gt;
в конфигурационный файл [[ejudge.xml]] примерно следующим образом:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;config enable_oauth=&amp;quot;yes&amp;quot; ...&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В конфигурационный файл &amp;lt;code&amp;gt;capabilities.xml&amp;lt;/code&amp;gt;, который находится&lt;br /&gt;
в том же каталоге, что &amp;lt;code&amp;gt;ejudge.xml&amp;lt;/code&amp;gt;, добавить&lt;br /&gt;
таблицу отображений внешних OAUTH2 идентификаторов пользователей&lt;br /&gt;
во внутренние:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;oauth_user_map&amp;gt;&lt;br /&gt;
   &amp;lt;oauth_entry oauth_user=&amp;quot;EXT-ID-1&amp;quot; local_user=&amp;quot;LOCAL-LOGIN-1&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;oauth_entry oauth_user=&amp;quot;EXT-ID-2&amp;quot; local_user=&amp;quot;LOCAL-LOGIN-2&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/oauth_user_map&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;EXT-ID&amp;lt;/code&amp;gt; &amp;amp;mdash; это идентификатор пользователя&lt;br /&gt;
у провайдера аутентификации. В случае google &amp;amp;mdash; это email,&lt;br /&gt;
например, &amp;lt;code&amp;gt;user@gmail.com&amp;lt;/code&amp;gt;. В случае VK &amp;amp;mdash;&lt;br /&gt;
это заданный при регистрации email, либо идентификатор вида&lt;br /&gt;
&amp;lt;code&amp;gt;user${VK-ID}@vk&amp;lt;/code&amp;gt;, где &amp;lt;code&amp;gt;VK-ID&amp;lt;/code&amp;gt; &amp;amp;mdash;&lt;br /&gt;
идентификатор пользователя VK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LOCAL-LOGIN&amp;lt;/code&amp;gt; &amp;amp;mdash; это логин пользователя в ejudge,&lt;br /&gt;
например, &amp;lt;code&amp;gt;ejudge&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Настройка входа пользователей в турнир ====&lt;br /&gt;
&lt;br /&gt;
Аутентификация пользователей по OAUTH2 разрешается в каждом&lt;br /&gt;
турнире по отдельности.&lt;br /&gt;
Для этого нужно установить атрибут&lt;br /&gt;
&amp;lt;code&amp;gt;[[contest.xml:enable_oauth|enable_oauth]]&amp;lt;/code&amp;gt;&lt;br /&gt;
элемента &amp;lt;code&amp;gt;[[contest.xml:contest|contest]]&amp;lt;/code&amp;gt; в файле [[contest.xml]].&lt;br /&gt;
Конфигурационный файл будет выглядеть примерно так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;contest id=&amp;quot;auto&amp;quot;&lt;br /&gt;
          enable_oauth=&amp;quot;yes&amp;quot;&lt;br /&gt;
          ...&lt;br /&gt;
&lt;br /&gt;
Если доступ к программе register разрешен с помощью правила&lt;br /&gt;
&amp;lt;code&amp;gt;[[contest.xml:register_access|register_access]]&amp;lt;/code&amp;gt;,&lt;br /&gt;
на турнир смогут регистрироваться новые пользователи.&lt;br /&gt;
Иначе в турнир смогут заходить только уже зарегистрированные&lt;br /&gt;
пользователи.&lt;br /&gt;
&lt;br /&gt;
Дополнительные ограничения на вход с помощью OAUTH2&lt;br /&gt;
можно задать с помощью элемента&lt;br /&gt;
&amp;lt;code&amp;gt;[[contest.xml:oauth_rules|oauth_rules]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
Например,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;oauth_rules&amp;gt;&lt;br /&gt;
   &amp;lt;oauth_rule domain=&amp;quot;school.ru&amp;quot; allow=&amp;quot;yes&amp;quot; strip_domain=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;oauth_rule domain=&amp;quot;&amp;quot; deny=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/oauth_rules&amp;gt;&lt;br /&gt;
&lt;br /&gt;
в турнир с помощью OAUTH2 смогут заходить только пользователи&lt;br /&gt;
с почтовым адресом вида &amp;lt;code&amp;gt;USER@school.ru&amp;lt;/code&amp;gt;,&lt;br /&gt;
при этом в системе ejudge им будет соответствовать логин &amp;lt;code&amp;gt;USER&amp;lt;/code&amp;gt;.&lt;br /&gt;
Вход остальных пользователей с помощью OAUTH2 запрещен.&lt;br /&gt;
&lt;br /&gt;
==== Особенности создания пользователей с помощью OAUTH2 ====&lt;br /&gt;
&lt;br /&gt;
Если в турнире открыт доступ к программе регистрации register,&lt;br /&gt;
причем регистрация может быть как свободная, так и модерируемая,&lt;br /&gt;
то пользователи, входящие по OAUTH2 будут автоматически зарегистрированы&lt;br /&gt;
в данный турнир, если такой логин еще не существовал.&lt;br /&gt;
&lt;br /&gt;
Для пользователей, созданных при входе по OAUTH2, в поле &amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt;&lt;br /&gt;
и в поле &amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt; прописывается OAUTH-идентификатор пользователя&lt;br /&gt;
(обычно это адрес электронной почты). Генерируется случайный&lt;br /&gt;
16-символьный пароль, который в базу сохраняется в хешированном виде.&lt;br /&gt;
Таким образом пользователь, зарегистрировавшийся с помощью OAUTH2,&lt;br /&gt;
в дальнейшем в ejudge сможет входить только с помощью OAUTH2.&lt;br /&gt;
&lt;br /&gt;
=== OIDC-плагин ===&lt;br /&gt;
&lt;br /&gt;
Начиная с версии [[изменения в версии 3.13.0|3.13.0]] поддерживается&lt;br /&gt;
плагин для OIDC-аутентификации. Поддерживаемый протокол обмена данными&lt;br /&gt;
при OIDC-аутентификации аналогичен аутентификации Google, но конфигурация&lt;br /&gt;
OIDC-плагина позволяет задавать больше параметров.&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Serve.cfg:problem:extra_src_dir&amp;diff=6843</id>
		<title>Serve.cfg:problem:extra src dir</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Serve.cfg:problem:extra_src_dir&amp;diff=6843"/>
		<updated>2024-12-09T21:03:18Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:problem|Конфигурационные параметры задач]]/&amp;lt;code&amp;gt;[[serve.cfg:problem:extra_src_dir|extra_src_dir]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данный конфигурационный параметр позволяет задать каталог с&lt;br /&gt;
дополнительными файлами, необходимыми для компиляции.&lt;br /&gt;
Все файлы в данном каталоге будут скопированы в рабочий каталог,&lt;br /&gt;
в котором компилируется программа. Копируются только регулярные файлы,&lt;br /&gt;
подкаталоги не копируются.&lt;br /&gt;
&lt;br /&gt;
С версии [[изменения в версии 3.13.0|3.13.0]] копируются регулярные файлы и подкаталоги.&lt;br /&gt;
&lt;br /&gt;
Если в параметре указан относительный путь, он отсчитывается относительно&lt;br /&gt;
каталога задачи.&lt;br /&gt;
&lt;br /&gt;
Конфигурационный параметр полезен, когда для компиляции программы&lt;br /&gt;
необходимы дополнительные файлы.&lt;br /&gt;
&lt;br /&gt;
 [problem]&lt;br /&gt;
 # ...&lt;br /&gt;
 extra_src_dir = &amp;quot;lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.10.3|3.10.3]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BD%D0%B0_%D0%BD%D0%B5%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B&amp;diff=6842</id>
		<title>Задачи на неполные программы</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BD%D0%B0_%D0%BD%D0%B5%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B&amp;diff=6842"/>
		<updated>2024-11-24T12:41:45Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Задачи на неполные программы]]&lt;br /&gt;
&lt;br /&gt;
В задачах на неполные программы требуется написать не программу целиком, которая будет запускаться при тестировании&lt;br /&gt;
как полная программа в отдельном процессе, но отдельную структурную единицу программы, например,&lt;br /&gt;
функцию, класс или модуль. Написанный участником фрагмент программы будет объединен с другими частями программы,&lt;br /&gt;
написанными заранее. В результате получится полная программа, которая будет тестироваться обычным способом.&lt;br /&gt;
&lt;br /&gt;
В версии [[Изменения в версии 3.13.0|3.13.0]] добавлен глобальный конфигурационный параметр&lt;br /&gt;
&amp;lt;code&amp;gt;[[serve.cfg:global:enable_run_props|enable_run_props]]&amp;lt;/code&amp;gt;, который упрощает реализацию&lt;br /&gt;
задач на неполные программы для скриптовых языков, таких как [[Lang:python3|python3]].&lt;br /&gt;
Кроме того, в версии [[Изменения в версии 3.13.0|3.13.0]] в скрипты компиляции добавлена поддержка сборки программы из&lt;br /&gt;
нескольких файлов.&lt;br /&gt;
&lt;br /&gt;
Несколько вариантов поддержки задач на неполные программы рассматриваются далее.&lt;br /&gt;
&lt;br /&gt;
=== Единственный язык, стандартные скрипты компиляции ===&lt;br /&gt;
&lt;br /&gt;
В случае единственного разрешенного языка программирования конфигурация задачи может выглядить следующим образом.&lt;br /&gt;
&lt;br /&gt;
Глобальный параметр enable_run_props должен быть установлен.&lt;br /&gt;
&lt;br /&gt;
 enable_run_props&lt;br /&gt;
&lt;br /&gt;
У задачи должен быть задан параметр &amp;lt;code&amp;gt;[[serve.cfg:problem:extra_src_dir|extra_src_dir]]&amp;lt;/code&amp;gt; например&lt;br /&gt;
следующим образом:&lt;br /&gt;
&lt;br /&gt;
 extra_src_dir = &amp;quot;build&amp;quot;&lt;br /&gt;
&lt;br /&gt;
В подкаталоге &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; каталога задачи должны размещаться файлы, необходимые для сборки полной программы&lt;br /&gt;
при компиляции. Все файлы и подкаталоги в каталоге &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; рекурсивно копируются в каталог сборки.&lt;br /&gt;
Например, в случае сборки программы на C++ каталог &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; может содержать файл &amp;lt;code&amp;gt;main.cpp&amp;lt;/code&amp;gt;,&lt;br /&gt;
в котором находится функция &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; программы.&lt;br /&gt;
&lt;br /&gt;
Дополнительно у задачи нужно установить три переменных окружения для компиляции:&lt;br /&gt;
* &amp;lt;code&amp;gt;EJUDGE_SOLUTION_FILE&amp;lt;/code&amp;gt; &amp;amp;mdash; имя файла, в котором при компиляции будет находиться сданный на проверку код.&lt;br /&gt;
* &amp;lt;code&amp;gt;EJUDGE_START_FILE&amp;lt;/code&amp;gt; &amp;amp;mdash; имя файла, в котором находится точка входа в программу (главная функция).&lt;br /&gt;
* &amp;lt;code&amp;gt;EJUDGE_ARCHIVE&amp;lt;/code&amp;gt; &amp;amp;mdash; если установлен в 1, в качестве результата компиляции будет сформирован .tar.gz архив со всеми файлами в текущем каталоге.&lt;br /&gt;
&lt;br /&gt;
Имена файлов должны указываться без суффикса, правильный суффикс в зависимости от языка будет добавлен&lt;br /&gt;
автоматически. Скрипты компиляции разных языков программирования могут использовать эти переменные окружения&lt;br /&gt;
по-разному. Например, для языка C++ важно только чтобы была задана переменная окружения&lt;br /&gt;
&amp;lt;code&amp;gt;EJUDGE_SOLUTION_FILE&amp;lt;/code&amp;gt;, для python должны быть заданы все три переменные окружения, а для Java &amp;amp;mdash;&lt;br /&gt;
первые две переменных окружения.&lt;br /&gt;
&lt;br /&gt;
Кроме того, для многих языков поддерживается переменная окружения &amp;lt;code&amp;gt;EJUDGE_FLAGS&amp;lt;/code&amp;gt;, которая позволяет&lt;br /&gt;
задавать опции компиляции.&lt;br /&gt;
&lt;br /&gt;
Таким образом, для настройки сборки программы на языке C++ переменные окружения в секции конфигурации&lt;br /&gt;
задачи могут быть такими:&lt;br /&gt;
&lt;br /&gt;
 lang_compiler_env = &amp;quot;*=EJUDGE_SOLUTION_FILE=solution&amp;quot;&lt;br /&gt;
 lang_compiler_env = &amp;quot;*=EJUDGE_FLAGS=-O2 -g -std=gnu++23 -fsanitize=undefined,address,leak -fno-sanitize-recover&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Для сборки программы на python переменные окружения могут быть такими:&lt;br /&gt;
&lt;br /&gt;
 lang_compiler_env = &amp;quot;*=EJUDGE_SOLUTION_FILE=solution&amp;quot;&lt;br /&gt;
 lang_compiler_env = &amp;quot;*=EJUDGE_START_FILE=main&amp;quot;&lt;br /&gt;
 lang_compiler_env = &amp;quot;*=EJUDGE_ARCHIVE=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Единственный язык, нестандартный скрипт компиляции ===&lt;br /&gt;
&lt;br /&gt;
Глобальный параметр enable_run_props должен быть установлен.&lt;br /&gt;
&lt;br /&gt;
 enable_run_props&lt;br /&gt;
&lt;br /&gt;
У задачи должен быть задан параметр &amp;lt;code&amp;gt;[[serve.cfg:problem:extra_src_dir|extra_src_dir]]&amp;lt;/code&amp;gt; например&lt;br /&gt;
следующим образом:&lt;br /&gt;
&lt;br /&gt;
 extra_src_dir = &amp;quot;build&amp;quot;&lt;br /&gt;
&lt;br /&gt;
В подкаталоге &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; каталога задачи должны размещаться файлы, необходимые для сборки полной программы&lt;br /&gt;
при компиляции. Все файлы и подкаталоги в каталоге &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; рекурсивно копируются в каталог сборки.&lt;br /&gt;
Например, в случае сборки программы на C++ каталог &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; может содержать файл &amp;lt;code&amp;gt;main.cpp&amp;lt;/code&amp;gt;,&lt;br /&gt;
в котором находится функция &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; программы.&lt;br /&gt;
&lt;br /&gt;
Кроме того, в каталоге &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; должен размещаться исполняемый файл &amp;lt;code&amp;gt;build.sh&amp;lt;/code&amp;gt;,&lt;br /&gt;
который будет запущен для сборки программы. Этот файл принимает три аргумента командной строки:&lt;br /&gt;
* имя файла с программой, отправленной на проверку;&lt;br /&gt;
* имя файла с собранной программой;&lt;br /&gt;
* имя файла с свойствами собранной программы (run properties) &amp;amp;mdash; необязательно.&lt;br /&gt;
&lt;br /&gt;
Скрипту сборки &amp;lt;code&amp;gt;build.sh&amp;lt;/code&amp;gt; передаются все переменные окружения, заданные для компиляции,&lt;br /&gt;
и дополнительно две переменных окружения:&lt;br /&gt;
* &amp;lt;code&amp;gt;EJUDGE_LANGUAGE&amp;lt;/code&amp;gt; &amp;amp;mdash; короткое имя языка программирования;&lt;br /&gt;
* &amp;lt;code&amp;gt;EJUDGE_COMPILER&amp;lt;/code&amp;gt; &amp;amp;mdash; компилятор, который используется при сборке программ на данном языке программирования стандартными скриптами.&lt;br /&gt;
&lt;br /&gt;
=== Несколько поддерживаемых языков ===&lt;br /&gt;
&lt;br /&gt;
В этом случае конфигурация задачи может выглядить следующим образом.&lt;br /&gt;
&lt;br /&gt;
Глобальный параметр enable_run_props должен быть установлен.&lt;br /&gt;
&lt;br /&gt;
 enable_run_props&lt;br /&gt;
&lt;br /&gt;
У задачи должен быть задан параметр &amp;lt;code&amp;gt;[[serve.cfg:problem:extra_src_dir|extra_src_dir]]&amp;lt;/code&amp;gt; например&lt;br /&gt;
следующим образом:&lt;br /&gt;
&lt;br /&gt;
 extra_src_dir = &amp;quot;build/${language.short_name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Для каждого поддерживаемого языка программирования должен существовать соответствующий каталог,&lt;br /&gt;
в котором должны размещаться файлы, необходимые для сборки. Например, для компиляторв g++ каталог&lt;br /&gt;
должен называться &amp;lt;code&amp;gt;build/g++&amp;lt;/code&amp;gt;, а для языка python3 &amp;amp;mdash; &amp;lt;code&amp;gt;build/python3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Дальнейшая настройка языков для случая стандартных и нестандартных скриптов компиляции описана выше.&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BD%D0%B0_%D0%BD%D0%B5%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B&amp;diff=6841</id>
		<title>Задачи на неполные программы</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BD%D0%B0_%D0%BD%D0%B5%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B&amp;diff=6841"/>
		<updated>2024-11-23T06:16:56Z</updated>

		<summary type="html">&lt;p&gt;Cher: Created page with &amp;quot;Навигация: Главная страница/Система ejudge/Использование/Задачи на неполные програм...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Задачи на неполные программы]]&lt;br /&gt;
&lt;br /&gt;
Поддерживается с версии [[Изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=6840</id>
		<title>Использование</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=6840"/>
		<updated>2024-11-23T06:16:01Z</updated>

		<summary type="html">&lt;p&gt;Cher: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]&lt;br /&gt;
&lt;br /&gt;
* [[API]] ([[Изменения в версии 3.8.0|3.8.0]])&lt;br /&gt;
* [[Поддержка аватаров|Аватары]] ([[Изменения в версии 3.7.0|3.7.0]])&lt;br /&gt;
* [[Альтернативная раскладка файлов]]&lt;br /&gt;
* [[Аутентификация с помощью OAUTH2]] ([[Изменения в версии 3.9.0|3.9.0]])&lt;br /&gt;
* [[libchecker|Библиотека libchecker]]&lt;br /&gt;
* [[Бот для telegram]] (3.6.0)&lt;br /&gt;
* [[Веб-интерфейс пользователя]]&lt;br /&gt;
* [[Вердикты тестирования]]&lt;br /&gt;
* [[Виды задач]]&lt;br /&gt;
* [[Виды турниров]]&lt;br /&gt;
* [[Внешние идентификаторы пользователей]] ([[Изменения в версии 3.11.0|3.11.0]])&lt;br /&gt;
* [[Динамические задачи]] ([[Изменения в версии 3.12.0|3.12.0]])&lt;br /&gt;
* [[Задачи на неполные программы]] ([[Изменения в версии 3.13.0|3.13.0]])&lt;br /&gt;
* [[Запуск на пользовательских данных]] ([[Изменения в версии 3.10.0|3.10.0]])&lt;br /&gt;
* [[Изоляция недоверенных процессов в контейнерах]] ([[Изменения в версии 3.9.0|3.9.0]])&lt;br /&gt;
* [[Интеграция с github/gitlab]] ([[Изменения в версии 3.10.0|3.10.0]])&lt;br /&gt;
* [[Использование из командной строки]]&lt;br /&gt;
* [[Компиляция под отдельным пользователем]] ([[Изменения в версии 3.7.9|3.7.9]])&lt;br /&gt;
* [[Конфигурационные файлы]]&lt;br /&gt;
* [[Метрики]] ([[Изменения в версии 3.13.0|3.13.0]])&lt;br /&gt;
* [[Миграция в базу данных]]&lt;br /&gt;
* [[Нотификации во внешние системы]] ([[Изменения в версии 3.11.0|3.11.0]])&lt;br /&gt;
* [[Общая архитектура системы]]&lt;br /&gt;
* [[Оценивающие программы]]&lt;br /&gt;
* [[Пакетное управление]] (3.5.0)&lt;br /&gt;
* [[Параллельная компиляция]] ([[Изменения в версии 3.6.1|3.6.1]])&lt;br /&gt;
* [[Параллельное тестирование]]&lt;br /&gt;
* [[Переменные окружения для запускаемых программ]]&lt;br /&gt;
* [[Печать протоколов]]&lt;br /&gt;
* [[Поддерживаемые языки программирования]]&lt;br /&gt;
* [[Потестовая компиляция]] (3.5.1)&lt;br /&gt;
* [[Правила IOI расчета баллов]] ([[Изменения в версии 3.13.0|3.13.0]])&lt;br /&gt;
* [[Примеры конфигурационных файлов]]&lt;br /&gt;
* [[Проверяющие программы]]&lt;br /&gt;
* [[Style checkers|Проверяющие программы для стиля оформления исходного кода]]&lt;br /&gt;
* [[Test checkers|Проверяющие программы для тестов]] (валидаторы)&lt;br /&gt;
* [[Программы генерации тестов]] ([[Изменения в версии 3.12.0|3.12.0]])&lt;br /&gt;
* [[Программы инициализации]]&lt;br /&gt;
* [[Программы-интеракторы]]&lt;br /&gt;
* [[Руководство по импорту задач из системы Polygon в турниры ejudge]]&lt;br /&gt;
* [[Руководство по созданию турниров]]&lt;br /&gt;
* [[Специальная компиляция]] ([[Изменения в версии 3.10.2|3.10.2]])&lt;br /&gt;
* [[Тестирование под отдельным пользователем]] (3.5.0)&lt;br /&gt;
* [[Турниры с токенами]]&lt;br /&gt;
* [[Улучшенная поддержка серверов компиляции]] ([[Изменения в версии 3.13.0|3.13.0]])&lt;br /&gt;
* [[Файл состояния ej-contests]] ([[Изменения в версии 3.10.1|3.10.1]])&lt;br /&gt;
* [[Шаблоны HTML]]&lt;br /&gt;
* [[Шаблоны HTML для турниров]] ([[Изменения в версии 3.7.0|3.7.0]])&lt;br /&gt;
* [[Win32-тестирование]]&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0_IOI_%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%B0_%D0%B1%D0%B0%D0%BB%D0%BB%D0%BE%D0%B2&amp;diff=6839</id>
		<title>Правила IOI расчета баллов</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0_IOI_%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%B0_%D0%B1%D0%B0%D0%BB%D0%BB%D0%BE%D0%B2&amp;diff=6839"/>
		<updated>2024-11-19T20:19:16Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Правила IOI расчета баллов]]&lt;br /&gt;
&lt;br /&gt;
Правила IOI применяются только с задачами с групповой оценкой тестов. Для этого у задачи должна быть&lt;br /&gt;
задана [[Оценивающие программы|оценивающая программа]] с помощью&lt;br /&gt;
конфигурационного параметра задачи &amp;lt;code&amp;gt;[[Serve.cfg:problem:standard_valuer|standard_valuer]]&amp;lt;/code&amp;gt;&lt;br /&gt;
или &amp;lt;code&amp;gt;[[serve.cfg:problem:valuer_cmd|valuer_cmd]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Рекомендуется использовать стандартную оценивающую программу [[gvaluer]],&lt;br /&gt;
задавая конфигурацию задачи следующим образом:&lt;br /&gt;
 [problem]&lt;br /&gt;
 standard_valuer = &amp;quot;gvaluer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Режим слияния баллов за подгруппы для задачи включается с помощью конфигурационного параметра&lt;br /&gt;
&amp;lt;code&amp;gt;[[Serve.cfg:problem:enable_group_merge|enable_group_merge]]&amp;lt;/code&amp;gt;. Он действует только на данную&lt;br /&gt;
задачу, и в турнире могут быть как задачи со слиянием баллов по подгруппам, так и задачи без слияния баллов.&lt;br /&gt;
&lt;br /&gt;
В режиме слияния баллов поддерживается не более 15 групп тестов.&lt;br /&gt;
&lt;br /&gt;
В режиме слияния баллов итоговый балл за задачу выставляется как сумма по всем группам&lt;br /&gt;
максимального выставленного балла за группу на всех посылках. Предположим, что тесты в задаче&lt;br /&gt;
оцениваются в четыре группы и участник сделал три посылки по этой задаче:&lt;br /&gt;
* первая посылка получила за группы тестов 10, 15, 0, 20 баллов, итого 45 баллов;&lt;br /&gt;
* вторая посылка получила за группы тестов 5, 15, 10, 20 баллов, итого 50 баллов;&lt;br /&gt;
* третья посылка получила за группы тестов 20, 0, 5, 10 баллов, итого 35 баллов.&lt;br /&gt;
Итоговый балл за задачу равен 20 + 15 + 10 + 20 = 65 баллов.&lt;br /&gt;
&lt;br /&gt;
Если режим слияния баллов выключен, итоговый балл за задачу выставляется как максимум выставленных&lt;br /&gt;
за все посылки данной задачи баллов, и в данном примере он равен 50.&lt;br /&gt;
&lt;br /&gt;
Поддерживается с версии [[Изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.13.0&amp;diff=6838</id>
		<title>Изменения в версии 3.13.0</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.13.0&amp;diff=6838"/>
		<updated>2024-11-18T19:04:02Z</updated>

		<summary type="html">&lt;p&gt;Cher: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.13.0]]&lt;br /&gt;
&lt;br /&gt;
Время выхода: TBA г.&lt;br /&gt;
&lt;br /&gt;
[[Изменения в версии 3.12.0|Предыдущая версия]]&lt;br /&gt;
&lt;br /&gt;
=== Список Pull Requests ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/blackav/ejudge/milestone/6?closed=1 Список изменений на GitHub]&lt;br /&gt;
&lt;br /&gt;
=== Большие новые возможности ===&lt;br /&gt;
&lt;br /&gt;
* Добавлена поддержка [[Правила IOI расчета баллов|режима слияния подгрупп (правила IOI)]].&lt;br /&gt;
* Добавлен универсальный плагин для [[Аутентификация с помощью OAUTH2|аутентификации по OIDC]].&lt;br /&gt;
* Переработан механизм [[Улучшенная поддержка серверов компиляции|взаимодействия сервера турнира и агентов компиляции]].&lt;br /&gt;
* Добавлен плагин для отправки нотификаций в redis streams.&lt;br /&gt;
* В HTML-условиях поддерживается MathJax3.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-compile]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается аргумент командной строки &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, в котором&lt;br /&gt;
передаётся серийный номер параллельного запуска программы на одном&lt;br /&gt;
хосте. Этот параметр используется при запуске процесса компиляции&lt;br /&gt;
в контейнере, чтобы использовать отдельный идентификатор пользователя&lt;br /&gt;
компиляции. Параллельные компиляции на одном хосте будут выполняться&lt;br /&gt;
под разными идентификаторами пользователя и не будут влиять&lt;br /&gt;
друг на друга.&lt;br /&gt;
&lt;br /&gt;
Поддерживаются расширенные свойства скомпилированных файлов.&lt;br /&gt;
Они активируются с помощью установки глобального конфигурационного&lt;br /&gt;
параметра enable_run_props турнира. В этом случае в скрипт&lt;br /&gt;
компиляции передается третий параметр - путь к файлу,&lt;br /&gt;
в который скрипт компиляции может записать дополнительные свойства&lt;br /&gt;
сгенерированного исполняемого файла. Этот файл передается&lt;br /&gt;
в сервис запуска решений.&lt;br /&gt;
&lt;br /&gt;
При копировании файлов из каталога, заданного с помощью конфигурационного&lt;br /&gt;
параметра extra_src_dir, в рабочий каталог компиляции&lt;br /&gt;
выполняется рекурсивное копирование.&lt;br /&gt;
&lt;br /&gt;
Для Typescript поддерживается альтернативный транслятор tsx.&lt;br /&gt;
&lt;br /&gt;
В ejudge.xml поддерживается возможность не запускать инстансы ej-compile и ej-super-run (parallelism и&lt;br /&gt;
compile_parallelism).&lt;br /&gt;
&lt;br /&gt;
=== [[ej-compile-control]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается аргумент командной строки &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt;, который&lt;br /&gt;
передаётся в [[ej-compile]].&lt;br /&gt;
&lt;br /&gt;
=== [[ej-contests]] ===&lt;br /&gt;
&lt;br /&gt;
В конфигурационном параметре open_tests поддерживатся видимость тестов&lt;br /&gt;
icpc. Если для группы тестов установлена видимость icpc, то&lt;br /&gt;
участнику турнира отображается только балл и минимальная информация&lt;br /&gt;
о первом непрошедшем тесте в группе.&lt;br /&gt;
&lt;br /&gt;
Если у задачи была хотя бы одна группа тестов с видимостью icpc,&lt;br /&gt;
протокол тестирования для участника показывает только информацию&lt;br /&gt;
об открытых тестах и суммарную информацию по группам тестов.&lt;br /&gt;
&lt;br /&gt;
Добавлена конфигурационная переменная задачи standard_valuer,&lt;br /&gt;
которая позволяет задать стандартную программу оценивания gvaluer.&lt;br /&gt;
&lt;br /&gt;
Поддерживается экспорт архивов посылок в фоновом режиме.&lt;br /&gt;
После нажатия &amp;quot;Download archive of runs&amp;quot; и выбора опций&lt;br /&gt;
скачивания решений создаётся фоновое задание, статус исполнения&lt;br /&gt;
которого можно отслеживать. Когда подготовка архива будет&lt;br /&gt;
закончена, архив можно будет скачать по ссылке.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;get-user&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;copy-user-info&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;change-registration&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;problem-status-json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;list-languages&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;create-user-session&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;change-registrations&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка API-вызова &amp;lt;code&amp;gt;special-flow&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В протоколах тестирования отображается размер использованной памяти (RSS).&lt;br /&gt;
Это поддерживается только в случае запуска решений в контейнере.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр enable_run_props.&lt;br /&gt;
&lt;br /&gt;
Исправлена ошибка, из-за которой не работала смена языка интерфейса.&lt;br /&gt;
&lt;br /&gt;
Если apache не может подключиться к ej-contests, клиенту возвращается http status 500.&lt;br /&gt;
&lt;br /&gt;
Добавлены атрибуты enable_user_finish, disable_user_finish, которые модифицируют возможность&lt;br /&gt;
пользовательского завершения турнира.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр default_disabled языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр version языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр disable_auto_update языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр enable_language_import.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр language_import.&lt;br /&gt;
&lt;br /&gt;
Переработан механизм взаимодействия сервера турнира и агентов компиляции.&lt;br /&gt;
&lt;br /&gt;
Пользователь может завершить невиртуальный турнир в любой момент времени.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр enable_group_merge задач.&lt;br /&gt;
&lt;br /&gt;
Добавлен конфигурационный параметр run_max_file_size языков программирования.&lt;br /&gt;
&lt;br /&gt;
Добавлен глобальный конфигурационный параметр disable_bson_store.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-polygon]] ===&lt;br /&gt;
&lt;br /&gt;
При импорте из полигона поддерживаются баллы за тесты и группы тестов,&lt;br /&gt;
которые хранятся в элементах &amp;lt;code&amp;gt;tests&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;group&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поддерживается генерация параметров test_score_list, open_tests,&lt;br /&gt;
final_open_tests.&lt;br /&gt;
&lt;br /&gt;
Поддерживается генерация файла valuer.cfg для оценивающей программы&lt;br /&gt;
gvaluer.&lt;br /&gt;
&lt;br /&gt;
При импорте турнира из полигона задачи сортируются по строковому&lt;br /&gt;
значению ключа задачи, он же используется для короткого имени задачи.&lt;br /&gt;
&lt;br /&gt;
Добавлена опция enable_rss_limit при импорте из полигона.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-suid-container]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается переключение в разные непривилегированные пользователи&lt;br /&gt;
для параллельной компиляции.&lt;br /&gt;
&lt;br /&gt;
=== [[ej-super-run]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ej-super-server]] ===&lt;br /&gt;
&lt;br /&gt;
Поддерживается заголовок 'Authorization:' для последующей реализации API-вызовов.&lt;br /&gt;
&lt;br /&gt;
Добавлена поддержка привилегированного API-вызова &amp;lt;code&amp;gt;login-action-json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== [[ejudge-control]] ===&lt;br /&gt;
&lt;br /&gt;
Добавлена опция --compile-queue.&lt;br /&gt;
&lt;br /&gt;
=== [[gvaluer]] ===&lt;br /&gt;
&lt;br /&gt;
При компиляции ejudge программа автоматически компилируется и инсталлируется&lt;br /&gt;
в каталог с проверяющими программами. Для этого в системе должен быть&lt;br /&gt;
установлен компилятор C++.&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0_IOI_%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%B0_%D0%B1%D0%B0%D0%BB%D0%BB%D0%BE%D0%B2&amp;diff=6837</id>
		<title>Правила IOI расчета баллов</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0_IOI_%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%B0_%D0%B1%D0%B0%D0%BB%D0%BB%D0%BE%D0%B2&amp;diff=6837"/>
		<updated>2024-11-18T18:56:41Z</updated>

		<summary type="html">&lt;p&gt;Cher: Created page with &amp;quot;Навигация: Главная страница/Система ejudge/Использование/Правила IOI расчета баллов...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Правила IOI расчета баллов]]&lt;br /&gt;
&lt;br /&gt;
Поддерживается с версии [[Изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=6836</id>
		<title>Использование</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=6836"/>
		<updated>2024-11-18T18:56:10Z</updated>

		<summary type="html">&lt;p&gt;Cher: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]&lt;br /&gt;
&lt;br /&gt;
* [[API]] ([[Изменения в версии 3.8.0|3.8.0]])&lt;br /&gt;
* [[Поддержка аватаров|Аватары]] ([[Изменения в версии 3.7.0|3.7.0]])&lt;br /&gt;
* [[Альтернативная раскладка файлов]]&lt;br /&gt;
* [[Аутентификация с помощью OAUTH2]] ([[Изменения в версии 3.9.0|3.9.0]])&lt;br /&gt;
* [[libchecker|Библиотека libchecker]]&lt;br /&gt;
* [[Бот для telegram]] (3.6.0)&lt;br /&gt;
* [[Веб-интерфейс пользователя]]&lt;br /&gt;
* [[Вердикты тестирования]]&lt;br /&gt;
* [[Виды задач]]&lt;br /&gt;
* [[Виды турниров]]&lt;br /&gt;
* [[Внешние идентификаторы пользователей]] ([[Изменения в версии 3.11.0|3.11.0]])&lt;br /&gt;
* [[Динамические задачи]] ([[Изменения в версии 3.12.0|3.12.0]])&lt;br /&gt;
* [[Запуск на пользовательских данных]] ([[Изменения в версии 3.10.0|3.10.0]])&lt;br /&gt;
* [[Изоляция недоверенных процессов в контейнерах]] ([[Изменения в версии 3.9.0|3.9.0]])&lt;br /&gt;
* [[Интеграция с github/gitlab]] ([[Изменения в версии 3.10.0|3.10.0]])&lt;br /&gt;
* [[Использование из командной строки]]&lt;br /&gt;
* [[Компиляция под отдельным пользователем]] ([[Изменения в версии 3.7.9|3.7.9]])&lt;br /&gt;
* [[Конфигурационные файлы]]&lt;br /&gt;
* [[Метрики]] ([[Изменения в версии 3.13.0|3.13.0]])&lt;br /&gt;
* [[Миграция в базу данных]]&lt;br /&gt;
* [[Нотификации во внешние системы]] ([[Изменения в версии 3.11.0|3.11.0]])&lt;br /&gt;
* [[Общая архитектура системы]]&lt;br /&gt;
* [[Оценивающие программы]]&lt;br /&gt;
* [[Пакетное управление]] (3.5.0)&lt;br /&gt;
* [[Параллельная компиляция]] ([[Изменения в версии 3.6.1|3.6.1]])&lt;br /&gt;
* [[Параллельное тестирование]]&lt;br /&gt;
* [[Переменные окружения для запускаемых программ]]&lt;br /&gt;
* [[Печать протоколов]]&lt;br /&gt;
* [[Поддерживаемые языки программирования]]&lt;br /&gt;
* [[Потестовая компиляция]] (3.5.1)&lt;br /&gt;
* [[Правила IOI расчета баллов]] ([[Изменения в версии 3.13.0|3.13.0]])&lt;br /&gt;
* [[Примеры конфигурационных файлов]]&lt;br /&gt;
* [[Проверяющие программы]]&lt;br /&gt;
* [[Style checkers|Проверяющие программы для стиля оформления исходного кода]]&lt;br /&gt;
* [[Test checkers|Проверяющие программы для тестов]] (валидаторы)&lt;br /&gt;
* [[Программы генерации тестов]] ([[Изменения в версии 3.12.0|3.12.0]])&lt;br /&gt;
* [[Программы инициализации]]&lt;br /&gt;
* [[Программы-интеракторы]]&lt;br /&gt;
* [[Руководство по импорту задач из системы Polygon в турниры ejudge]]&lt;br /&gt;
* [[Руководство по созданию турниров]]&lt;br /&gt;
* [[Специальная компиляция]] ([[Изменения в версии 3.10.2|3.10.2]])&lt;br /&gt;
* [[Тестирование под отдельным пользователем]] (3.5.0)&lt;br /&gt;
* [[Турниры с токенами]]&lt;br /&gt;
* [[Улучшенная поддержка серверов компиляции]] ([[Изменения в версии 3.13.0|3.13.0]])&lt;br /&gt;
* [[Файл состояния ej-contests]] ([[Изменения в версии 3.10.1|3.10.1]])&lt;br /&gt;
* [[Шаблоны HTML]]&lt;br /&gt;
* [[Шаблоны HTML для турниров]] ([[Изменения в версии 3.7.0|3.7.0]])&lt;br /&gt;
* [[Win32-тестирование]]&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Contest.xml:disable_user_finish&amp;diff=6835</id>
		<title>Contest.xml:disable user finish</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Contest.xml:disable_user_finish&amp;diff=6835"/>
		<updated>2024-11-16T11:56:14Z</updated>

		<summary type="html">&lt;p&gt;Cher: Created page with &amp;quot;Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/co...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[contest.xml]]/[[contest.xml:contest|contest]]/&amp;lt;code&amp;gt;[[contest.xml:disable_user_finish|disable_user_finish]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Contest.xml:enable_user_finish&amp;diff=6834</id>
		<title>Contest.xml:enable user finish</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Contest.xml:enable_user_finish&amp;diff=6834"/>
		<updated>2024-11-16T11:55:55Z</updated>

		<summary type="html">&lt;p&gt;Cher: Created page with &amp;quot;Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/co...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[contest.xml]]/[[contest.xml:contest|contest]]/&amp;lt;code&amp;gt;[[contest.xml:enable_user_finish|enable_user_finish]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Contest.xml:contest&amp;diff=6833</id>
		<title>Contest.xml:contest</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Contest.xml:contest&amp;diff=6833"/>
		<updated>2024-11-16T11:55:17Z</updated>

		<summary type="html">&lt;p&gt;Cher: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[contest.xml]]/[[contest.xml:contest|contest]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| '''Имя элемента''':   || &amp;lt;tt&amp;gt;'''contest'''&amp;lt;/tt&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
|  '''Содержится в:'''    || ''нет''   ||&lt;br /&gt;
|-&lt;br /&gt;
| '''Атрибуты:'''   || &amp;lt;tt&amp;gt;[[contest.xml:id|id]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[contest.xml:autoregister|autoregister]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[contest.xml:managed|managed]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[contest.xml:run_managed|run_managed]]&amp;lt;/tt&amp;gt;,&lt;br /&gt;
&amp;lt;tt&amp;gt;[[contest.xml:clean_users|clean_users]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[contest.xml:disable_team_password|disable_team_password]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[contest.xml:closed|closed]]&amp;lt;/tt&amp;gt;,&lt;br /&gt;
&amp;lt;tt&amp;gt;[[contest.xml:invisible|invisible]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[contest.xml:enable_avatar|enable_avatar]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[contest.xml:enable_local_pages|enable_local_pages]]&amp;lt;/tt&amp;gt;,&lt;br /&gt;
&amp;lt;tt&amp;gt;[[contest.xml:read_only_name|read_only_name]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[contest.xml:enable_oauth|enable_oauth]]&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;[[contest.xml:enable_reminders|enable_reminders]]&amp;lt;/tt&amp;gt;,&lt;br /&gt;
&amp;lt;code&amp;gt;[[contest.xml:enable_telegram_registration|enable_telegram_registration]]&amp;lt;/code&amp;gt;,&lt;br /&gt;
&amp;lt;code&amp;gt;[[contest.xml:enable_special_flow|enable_special_flow]]&amp;lt;/code&amp;gt;,&lt;br /&gt;
&amp;lt;code&amp;gt;[[contest.xml:enable_user_finish|enable_user_finish]]&amp;lt;/code&amp;gt;,&lt;br /&gt;
&amp;lt;code&amp;gt;[[contest.xml:disable_user_finish|disable_user_finish]]&amp;lt;/code&amp;gt;,&lt;br /&gt;
|-&lt;br /&gt;
| '''Тип содержимого:''' || игнорируется ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Может отсутствовать:''' || ''нет'' ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Может повторяться:''' || ''нет'' ||&lt;br /&gt;
|}&lt;br /&gt;
'''Описание.''' Элемент верхнего уровня конфигурационного файла. Элемент должен иметь&lt;br /&gt;
обязательный атрибут &amp;lt;tt&amp;gt;id&amp;lt;/tt&amp;gt;, определяющий идентификатор этого турнира.&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Serve.cfg:global:disable_bson_store&amp;diff=6832</id>
		<title>Serve.cfg:global:disable bson store</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Serve.cfg:global:disable_bson_store&amp;diff=6832"/>
		<updated>2024-11-16T10:50:43Z</updated>

		<summary type="html">&lt;p&gt;Cher: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:global|Глобальные конфигурационные параметры]]/&amp;lt;code&amp;gt;[[Serve.cfg:global:disable_bson_store|disable_bson_store]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Serve.cfg:global:notification_spec&amp;diff=6831</id>
		<title>Serve.cfg:global:notification spec</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Serve.cfg:global:notification_spec&amp;diff=6831"/>
		<updated>2024-11-16T10:50:14Z</updated>

		<summary type="html">&lt;p&gt;Cher: Created page with &amp;quot;Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/se...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:global|Глобальные конфигурационные параметры]]/&amp;lt;code&amp;gt;[[Serve.cfg:global:notification_spec|notification_spec]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=Serve.cfg:global&amp;diff=6830</id>
		<title>Serve.cfg:global</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=Serve.cfg:global&amp;diff=6830"/>
		<updated>2024-11-16T10:49:29Z</updated>

		<summary type="html">&lt;p&gt;Cher: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:global|Глобальные конфигурационные параметры]]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:a2ps_args|a2ps_args]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:a2ps_path|a2ps_path]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:accept_sound|accept_sound]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:advanced_layout|advanced_layout]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:always_show_problems|always_show_problems]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:appeal_deadline|appeal_deadline]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:archive_dir|archive_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:auto_short_problem_name|auto_short_problem_name]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:autoupdate_standings|autoupdate_standings]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:board_fog_time|board_fog_time]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:board_unfog_time|board_unfog_time]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:charset|charset]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:checker_dir|checker_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:checker_locale|checker_locale]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:checker_real_time_limit|checker_real_time_limit]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:clar_archive_dir|clar_archive_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:clardb_plugin|clardb_plugin]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:clar_log_file|clar_log_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:compile_dir|compile_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:compile_max_file_size|compile_max_file_size]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:compile_max_rss_size|compile_max_rss_size]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:compile_max_stack_size|compile_max_stack_size]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:compile_max_vm_size|compile_max_vm_size]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:compile_real_time_limit|compile_real_time_limit]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:compile_server_id|compile_server_id]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:compile_work_dir|compile_work_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:conf_dir|conf_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:contestant_status_legend|contestant_status_legend]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:contestant_status_num|contestant_status_num]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:contestant_status_row_attr|contestant_status_row_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:contest_finish_time|contest_finish_time]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:contest_id|contest_id]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:contest_plugin_file|contest_plugin_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:contests_dir|contests_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:contest_start_cmd|contest_start_cmd]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:contest_stop_cmd|contest_stop_cmd]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:contest_time|contest_time]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:corr_dir|corr_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:corr_pat|corr_pat]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:corr_sfx|corr_sfx]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:cpu_bogomips|cpu_bogomips]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:cr_serialization_key|cr_serialization_key]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:dates_config_file|dates_config_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:description_file|description_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:detect_violations|detect_violations]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:diff_path|diff_path]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:diff_work_dir|diff_work_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:disable_auto_refresh|disable_auto_refresh]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:disable_auto_testing|disable_auto_testing]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:disable_banner_page|disable_banner_page]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[serve.cfg:global:disable_bson_store|disable_bson_store]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:disable_clars|disable_clars]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:disable_failed_test_view|disable_failed_test_view]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:disable_language|disable_language]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:disable_sound|disable_sound]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:disable_submit_after_ok|disable_submit_after_ok]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:disable_team_clars|disable_team_clars]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:disable_testing|disable_testing]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:disable_user_database|disable_user_database]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:disable_user_standings|disable_user_standings]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:disable_virtual_auto_judge|disable_virtual_auto_judge]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:disable_virtual_start|disable_virtual_start]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:ejudge_checkers_dir|ejudge_checkers_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:enable_32bit_checkers|enable_32bit_checkers]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:enable_auto_print_protocol|enable_auto_print_protocol]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:enable_continue|enable_continue]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:enable_eoln_select|enable_eoln_select]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:enable_full_archive|enable_full_archive]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:enable_l10n|enable_l10n]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[serve.cfg:global:enable_language_import|enable_language_import]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:enable_max_stack_size|enable_max_stack_size]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:enable_memory_limit_error|enable_memory_limit_error]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:enable_printing|enable_printing]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:enable_problem_history|enable_problem_history]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[serve.cfg:global:enable_remote_cache|enable_remote_cache]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:enable_report_upload|enable_report_upload]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:enable_runlog_merge|enable_runlog_merge]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[serve.cfg:global:enable_run_props|enable_run_props]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:enable_virtual_restart|enable_virtual_restart]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:extended_sound|extended_sound]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:external_xml_update_time|external_xml_update_time]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:extra_compile_dirs|extra_compile_dirs]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:full_exam_protocol_footer_file|full_exam_protocol_footer_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:full_exam_protocol_header_file|full_exam_protocol_header_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:htdocs_dir|htdocs_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:html_report|html_report]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:ignore_bom|ignore_bom]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:ignore_compile_errors|ignore_compile_errors]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:ignore_duplicated_runs|ignore_duplicated_runs]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:ignore_success_time|ignore_success_time]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:inactivity_timeout|inactivity_timeout]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:info_dir|info_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:info_pat|info_pat]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:info_sfx|info_sfx]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:internal_sound|internal_sound]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:internal_xml_update_time|internal_xml_update_time]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:is_virtual|is_virtual]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:l10n_dir|l10n_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:lang_config_dir|lang_config_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[serve.cfg:global:language_import|language_import]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:load_user_group|load_user_group]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:lpr_args|lpr_args]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:lpr_path|lpr_path]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:max_clar_num|max_clar_num]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:max_clar_size|max_clar_size]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:max_clar_total|max_clar_total]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:max_file_length|max_file_length]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:max_input_size|max_input_size]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:max_line_length|max_line_length]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:max_run_num|max_run_num]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:max_run_size|max_run_size]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:max_run_total|max_run_total]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:max_submit_num|max_submit_num]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:max_submit_total|max_submit_total]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:memoize_user_results|memoize_user_results]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:min_gzip_size|min_gzip_size]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:name|name]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[serve.cfg:global:notification_spec|notification_spec]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:notify_clar_reply|notify_clar_reply]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:notify_status_change|notify_status_change]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:plog_charset|plog_charset]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:plog_file_name|plog_file_name]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:plog_footer_file|plog_footer_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:plog_header_file|plog_header_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:plog_symlink_dir|plog_symlink_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:plog_update_time|plog_update_time]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:plugin_dir|plugin_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:presentation_sound|presentation_sound]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[serve.cfg:global:preserve_line_numbers|preserve_line_numbers]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:printout_uses_login|printout_uses_login]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:print_just_copy|print_just_copy]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:print_work_dir|print_work_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:priority_adjustment|priority_adjustment]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:prob_exam_protocol_footer_file|prob_exam_protocol_footer_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:prob_exam_protocol_header_file|prob_exam_protocol_header_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:prob_info_url|prob_info_url]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:problem_navigation|problem_navigation]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:problems_dir|problems_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:problem_tab_size|problem_tab_size]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:prune_empty_users|prune_empty_users]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:report_archive_dir|report_archive_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:report_error_code|report_error_code]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:require_problem_uuid|require_problem_uuid]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:root_dir|root_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:rounding_mode|rounding_mode]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:run_archive_dir|run_archive_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:run_check_dir|run_check_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:rundb_plugin|rundb_plugin]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:run_dir|run_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:run_log_file|run_log_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:runtime_sound|runtime_sound]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:run_work_dir|run_work_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:score_n_best_problems|score_n_best_problems]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:score_system|score_system]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:script_dir|script_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:secure_run|secure_run]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:separate_user_score|separate_user_score]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:serve_sleep_time|serve_sleep_time]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:serve_socket|serve_socket]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:show_astr_time|show_astr_time]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:show_deadline|show_deadline]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:show_judge_identity|show_judge_identity]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:show_sha1|show_sha1]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:skip_accept_testing|skip_accept_testing]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:skip_full_testing|skip_full_testing]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:sleep_time|sleep_time]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:socket_path|socket_path]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:sound_player|sound_player]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand2_charset|stand2_charset]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand2_file_name|stand2_file_name]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand2_footer_file|stand2_footer_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand2_header_file|stand2_header_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand2_symlink_dir|stand2_symlink_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_collate_name|stand_collate_name]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_contestant_status_attr|stand_contestant_status_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_disq_attr|stand_disq_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_enable_penalty|stand_enable_penalty]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_extra_attr|stand_extra_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_extra_format|stand_extra_format]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_extra_legend|stand_extra_legend]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_fail_attr|stand_fail_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_fancy_style|stand_fancy_style]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_footer_file|stand_footer_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_freeze_time|stand_freeze_time]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_header_file|stand_header_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_ignore_after|stand_ignore_after]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:standings_charset|standings_charset]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:standings_file_name|standings_file_name]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:standings_locale|standings_locale]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_melt_time|stand_melt_time]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_page_col_attr|stand_page_col_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_page_cur_attr|stand_page_cur_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_page_row_attr|stand_page_row_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_page_table_attr|stand_page_table_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_penalty_attr|stand_penalty_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_place_attr|stand_place_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_prob_attr|stand_prob_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_row_attr|stand_row_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_r_row_attr|stand_r_row_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_score_attr|stand_score_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_self_row_attr|stand_self_row_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_show_att_num|stand_show_att_num]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_show_avatar|stand_show_avatar]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_show_contestant_status|stand_show_contestant_status]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_show_first_solver|stand_show_first_solver]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_show_ok_time|stand_show_ok_time]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_show_warn_number|stand_show_warn_number]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_solved_attr|stand_solved_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_sort_by_solved|stand_sort_by_solved]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_success_attr|stand_success_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_symlink_dir|stand_symlink_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_table_attr|stand_table_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_team_attr|stand_team_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_time_attr|stand_time_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_trans_attr|stand_trans_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_u_row_attr|stand_u_row_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_use_login|stand_use_login]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_v_row_attr|stand_v_row_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:stand_warn_number_attr|stand_warn_number_attr]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:start_sound|start_sound]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:start_on_first_login|start_on_first_login]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:statement_dir|statement_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:status_dir|status_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:status_plugin|status_plugin]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:super_run_dir|super_run_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:team_download_time|team_download_time]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:team_enable_ce_view|team_enable_ce_view]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:team_enable_rep_view|team_enable_rep_view]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:team_enable_src_view|team_enable_src_view]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:team_extra_dir|team_extra_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:team_info_url|team_info_url]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:team_page_quota|team_page_quota]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:team_report_archive_dir|team_report_archive_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:team_show_judge_report|team_show_judge_report]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:test_dir|test_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:test_pat|test_pat]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:test_sfx|test_sfx]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:tests_to_accept|tests_to_accept]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:tgzdir_pat|tgzdir_pat]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:tgzdir_sfx|tgzdir_sfx]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:tgz_dir|tgz_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:tgz_pat|tgz_pat]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:tgz_sfx|tgz_sfx]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:time_between_submits|time_between_submits]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:time_limit_retry_count|time_limit_retry_count]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:timelimit_sound|timelimit_sound]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:use_ac_not_ok|use_ac_not_ok]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:use_dir_hierarchy|use_dir_hierarchy]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:use_gzip|use_gzip]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:user_exam_protocol_footer_file|user_exam_protocol_footer_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:user_exam_protocol_header_file|user_exam_protocol_header_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:user_priority_adjustments|user_priority_adjustments]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:users_on_page|users_on_page]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:uuid_run_store|uuid_run_store]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:var_dir|var_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:variant_map_file|variant_map_file]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:variant_plugin|variant_plugin]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:vertical_navigation|vertical_navigation]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:virtual|virtual]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:virtual_end_options|virtual_end_options]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:work_dir|work_dir]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:wrong_sound|wrong_sound]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:xml_report|xml_report]]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[[serve.cfg:global:xuser_plugin|xuser_plugin]]&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%A3%D0%BB%D1%83%D1%87%D1%88%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2_%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D0%B8&amp;diff=6829</id>
		<title>Улучшенная поддержка серверов компиляции</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%A3%D0%BB%D1%83%D1%87%D1%88%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2_%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D0%B8&amp;diff=6829"/>
		<updated>2024-11-15T22:50:03Z</updated>

		<summary type="html">&lt;p&gt;Cher: Created page with &amp;quot;Навигация: Главная страница/Система ejudge/Использование/Улучшенная поддержка серве...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Улучшенная поддержка серверов компиляции]]&lt;br /&gt;
&lt;br /&gt;
Поддерживается с версии [[Изменения в версии 3.13.0|3.13.0]].&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=6828</id>
		<title>Использование</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=6828"/>
		<updated>2024-11-15T22:49:27Z</updated>

		<summary type="html">&lt;p&gt;Cher: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]&lt;br /&gt;
&lt;br /&gt;
* [[API]] ([[Изменения в версии 3.8.0|3.8.0]])&lt;br /&gt;
* [[Поддержка аватаров|Аватары]] ([[Изменения в версии 3.7.0|3.7.0]])&lt;br /&gt;
* [[Альтернативная раскладка файлов]]&lt;br /&gt;
* [[Аутентификация с помощью OAUTH2]] ([[Изменения в версии 3.9.0|3.9.0]])&lt;br /&gt;
* [[libchecker|Библиотека libchecker]]&lt;br /&gt;
* [[Бот для telegram]] (3.6.0)&lt;br /&gt;
* [[Веб-интерфейс пользователя]]&lt;br /&gt;
* [[Вердикты тестирования]]&lt;br /&gt;
* [[Виды задач]]&lt;br /&gt;
* [[Виды турниров]]&lt;br /&gt;
* [[Внешние идентификаторы пользователей]] ([[Изменения в версии 3.11.0|3.11.0]])&lt;br /&gt;
* [[Динамические задачи]] ([[Изменения в версии 3.12.0|3.12.0]])&lt;br /&gt;
* [[Запуск на пользовательских данных]] ([[Изменения в версии 3.10.0|3.10.0]])&lt;br /&gt;
* [[Изоляция недоверенных процессов в контейнерах]] ([[Изменения в версии 3.9.0|3.9.0]])&lt;br /&gt;
* [[Интеграция с github/gitlab]] ([[Изменения в версии 3.10.0|3.10.0]])&lt;br /&gt;
* [[Использование из командной строки]]&lt;br /&gt;
* [[Компиляция под отдельным пользователем]] ([[Изменения в версии 3.7.9|3.7.9]])&lt;br /&gt;
* [[Конфигурационные файлы]]&lt;br /&gt;
* [[Метрики]] ([[Изменения в версии 3.13.0|3.13.0]])&lt;br /&gt;
* [[Миграция в базу данных]]&lt;br /&gt;
* [[Нотификации во внешние системы]] ([[Изменения в версии 3.11.0|3.11.0]])&lt;br /&gt;
* [[Общая архитектура системы]]&lt;br /&gt;
* [[Оценивающие программы]]&lt;br /&gt;
* [[Пакетное управление]] (3.5.0)&lt;br /&gt;
* [[Параллельная компиляция]] ([[Изменения в версии 3.6.1|3.6.1]])&lt;br /&gt;
* [[Параллельное тестирование]]&lt;br /&gt;
* [[Переменные окружения для запускаемых программ]]&lt;br /&gt;
* [[Печать протоколов]]&lt;br /&gt;
* [[Поддерживаемые языки программирования]]&lt;br /&gt;
* [[Потестовая компиляция]] (3.5.1)&lt;br /&gt;
* [[Примеры конфигурационных файлов]]&lt;br /&gt;
* [[Проверяющие программы]]&lt;br /&gt;
* [[Style checkers|Проверяющие программы для стиля оформления исходного кода]]&lt;br /&gt;
* [[Test checkers|Проверяющие программы для тестов]] (валидаторы)&lt;br /&gt;
* [[Программы генерации тестов]] ([[Изменения в версии 3.12.0|3.12.0]])&lt;br /&gt;
* [[Программы инициализации]]&lt;br /&gt;
* [[Программы-интеракторы]]&lt;br /&gt;
* [[Руководство по импорту задач из системы Polygon в турниры ejudge]]&lt;br /&gt;
* [[Руководство по созданию турниров]]&lt;br /&gt;
* [[Специальная компиляция]] ([[Изменения в версии 3.10.2|3.10.2]])&lt;br /&gt;
* [[Тестирование под отдельным пользователем]] (3.5.0)&lt;br /&gt;
* [[Турниры с токенами]]&lt;br /&gt;
* [[Улучшенная поддержка серверов компиляции]] ([[Изменения в версии 3.13.0|3.13.0]])&lt;br /&gt;
* [[Файл состояния ej-contests]] ([[Изменения в версии 3.10.1|3.10.1]])&lt;br /&gt;
* [[Шаблоны HTML]]&lt;br /&gt;
* [[Шаблоны HTML для турниров]] ([[Изменения в версии 3.7.0|3.7.0]])&lt;br /&gt;
* [[Win32-тестирование]]&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB_%D1%81%D0%BE_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8_%D1%81%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B9_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B&amp;diff=6827</id>
		<title>Файл со свойствами скомпилированной программы</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB_%D1%81%D0%BE_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8_%D1%81%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B9_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B&amp;diff=6827"/>
		<updated>2024-11-10T07:57:55Z</updated>

		<summary type="html">&lt;p&gt;Cher: Created page with &amp;quot;Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/Ф...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[Файл со свойствами скомпилированной программы]]&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%9A%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D1%84%D0%B0%D0%B9%D0%BB%D1%8B&amp;diff=6826</id>
		<title>Конфигурационные файлы</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%9A%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D1%84%D0%B0%D0%B9%D0%BB%D1%8B&amp;diff=6826"/>
		<updated>2024-11-10T07:57:07Z</updated>

		<summary type="html">&lt;p&gt;Cher: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]&lt;br /&gt;
&lt;br /&gt;
* [[Обзор конфигурационных файлов]]&lt;br /&gt;
* Глобальный конфигурационный файл [[ejudge.xml]]&lt;br /&gt;
* [[contest.xml]]&lt;br /&gt;
* [[serve.cfg]]&lt;br /&gt;
* [[.inf-файлы|файлы с дополнительной информацией о тестах (.inf-файлы)]]&lt;br /&gt;
* [[statement.xml|Условия задач в XML (statement.xml)]]&lt;br /&gt;
&lt;br /&gt;
* [[Полномочия пользователей]]&lt;br /&gt;
* [[Ограничение доступа по IP-адресам]]&lt;br /&gt;
* [[Поддержка кодировок символов]]&lt;br /&gt;
* [[Файл со свойствами скомпилированной программы]]&lt;br /&gt;
&lt;br /&gt;
=== Устаревшие ===&lt;br /&gt;
&lt;br /&gt;
* [[register.xml]]&lt;br /&gt;
* [[users.xml]]&lt;br /&gt;
* [[serve-control.xml]]&lt;br /&gt;
* [[master.cfg]]&lt;br /&gt;
* [[judge.cfg]]&lt;br /&gt;
* [[team.cfg]]&lt;br /&gt;
&lt;br /&gt;
* [[Локализация системы]]&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
	<entry>
		<id>https://ejudge.ru/wiki/index.php?title=%D0%9C%D0%B5%D1%82%D1%80%D0%B8%D0%BA%D0%B8&amp;diff=6825</id>
		<title>Метрики</title>
		<link rel="alternate" type="text/html" href="https://ejudge.ru/wiki/index.php?title=%D0%9C%D0%B5%D1%82%D1%80%D0%B8%D0%BA%D0%B8&amp;diff=6825"/>
		<updated>2024-11-05T20:28:03Z</updated>

		<summary type="html">&lt;p&gt;Cher: initial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Метрики]]&lt;br /&gt;
&lt;br /&gt;
Поддерживается с версии [[Изменения в версии 3.13.0|3.13.0]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Экспортируемые переменные&lt;br /&gt;
|-&lt;br /&gt;
! ID !! тип !! описание&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_agent_total&amp;lt;/code&amp;gt; || int || число работающих процессов [[ej-agent]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_compile_total&amp;lt;/code&amp;gt; || int || число работающих процессов [[ej-compile]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_total&amp;lt;/code&amp;gt; || int || число работающих процессов [[ej-contests]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_jobs_total&amp;lt;/code&amp;gt; || int || число работающих процессов [[ej-jobs]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_super_run_total&amp;lt;/code&amp;gt; || int || число работающих процессов [[ej-super-run]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_super_server_total&amp;lt;/code&amp;gt; || int || число работающих процессов [[ej-super-server]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_users_total&amp;lt;/code&amp;gt; || int || число работающих процессов [[ej-users]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_agent_cpu_seconds&amp;lt;/code&amp;gt; || float || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_compile_cpu_seconds&amp;lt;/code&amp;gt; || float || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_cpu_seconds&amp;lt;/code&amp;gt; || float || использованное время CPU всеми процессами ej-contests&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_jobs_cpu_seconds&amp;lt;/code&amp;gt; || float || использованное время CPU всеми процессами ej-jobs&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_super_run_cpu_seconds&amp;lt;/code&amp;gt; || float || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_super_server_cpu_seconds&amp;lt;/code&amp;gt; || float || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_users_cpu_seconds&amp;lt;/code&amp;gt; || float || использованное время CPU всеми процессами ej-users&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_agent_vm_size_kib&amp;lt;/code&amp;gt; || int || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_compile_vm_size_kib&amp;lt;/code&amp;gt; || int || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_vm_size_kib&amp;lt;/code&amp;gt; || int || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_jobs_vm_size_kib&amp;lt;/code&amp;gt; || int || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_super_run_vm_size_kib&amp;lt;/code&amp;gt; || int || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_super_server_vm_size_kib&amp;lt;/code&amp;gt; || int || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_users_vm_size_kib&amp;lt;/code&amp;gt; || int || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_agent_vm_rss_kib&amp;lt;/code&amp;gt; || int || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_compile_vm_rss_kib&amp;lt;/code&amp;gt; || int || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_vm_rss_kib&amp;lt;/code&amp;gt; || int || размер использованной ОЗУ процессами ej-contests&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_jobs_vm_rss_kib&amp;lt;/code&amp;gt; || int || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_super_run_vm_rss_kib&amp;lt;/code&amp;gt; || int || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_super_server_vm_rss_kib&amp;lt;/code&amp;gt; || int || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_users_vm_rss_kib&amp;lt;/code&amp;gt; || int || размер использованной ОЗУ процессами ej-users&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;compile_queue_total&amp;lt;/code&amp;gt; || int || суммарная длина всех очередей компиляции&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;run_queue_total&amp;lt;/code&amp;gt; || int || суммарная длина всех очередей исполнения&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_uptime_seconds&amp;lt;/code&amp;gt; || float || uptime программы ej-contests&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_loaded_contests_total&amp;lt;/code&amp;gt; || int || количество контестов, находящихся в памяти&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_requests_total&amp;lt;/code&amp;gt; || int || количество обработанных запросов (каждый запрос увеличивает счетчик на 2)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;submitted_runs_total&amp;lt;/code&amp;gt; || int || количество обработанных запросов на тестирование на тестах&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;submitted_submits_total&amp;lt;/code&amp;gt; || int || количество обработанных запросов на запуск с данными пользователя&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;compilation_total_seconds&amp;lt;/code&amp;gt; || float || накопленное время CPU на компиляцию всех посылок&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;testing_total_seconds&amp;lt;/code&amp;gt; || float || накопленное время CPU на тестирование всех посылок&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_get_cookie_tsc&amp;lt;/code&amp;gt; || int ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_get_cookie_count&amp;lt;/code&amp;gt; || int || &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_hit_cookie_tsc&amp;lt;/code&amp;gt; || int ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_hit_cookie_count&amp;lt;/code&amp;gt; || int ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_get_key_tsc&amp;lt;/code&amp;gt; || int ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_get_key_count&amp;lt;/code&amp;gt; || int ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_hit_key_tsc&amp;lt;/code&amp;gt; || int ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_hit_key_count&amp;lt;/code&amp;gt; || int ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_cookie_cache_size&amp;lt;/code&amp;gt; || int ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_key_cache_size&amp;lt;/code&amp;gt; || int ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_append_run_seconds&amp;lt;/code&amp;gt; || int || суммарное время операций добавления в таблицу runs&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ej_contests_append_run_total&amp;lt;/code&amp;gt; || int || количество операций добавления в таблицу runs БД&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Cher</name></author>
		
	</entry>
</feed>