<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>36048</bug_id>
          
          <creation_ts>2019-02-06 11:00:20 +0300</creation_ts>
          <short_desc>Добавить в пакет скрипт grub-entries</short_desc>
          <delta_ts>2019-03-13 16:41:05 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>grub-pc</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergey Y. Afonin">asy</reporter>
          <assigned_to name="Николай Костригин">nickel</assigned_to>
          <cc>klark.devel</cc>
    
    <cc>klark</cc>
    
    <cc>nickel</cc>
    
    <cc>placeholder</cc>
    
    <cc>rider</cc>
    
    <cc>yukh</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>178217</commentid>
    <comment_count>0</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-06 11:00:20 +0300</bug_when>
    <thetext>Тема в рассылке:
https://lists.altlinux.org/pipermail/sisyphus/2019-February/367590.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178218</commentid>
    <comment_count>1</comment_count>
      <attachid>7989</attachid>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-06 11:02:18 +0300</bug_when>
    <thetext>Created attachment 7989
Скрипт в первом приближении

Срипт из сообщения
https://lists.altlinux.org/pipermail/sisyphus/2019-February/367605.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178219</commentid>
    <comment_count>2</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2019-02-06 11:06:42 +0300</bug_when>
    <thetext>Лёня, хотелось бы видеть твой скрипт в виде задания на сборку grub.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178221</commentid>
    <comment_count>3</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2019-02-06 11:07:42 +0300</bug_when>
    <thetext>Ну и можно в апстрим отправить.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178222</commentid>
    <comment_count>4</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-06 11:24:36 +0300</bug_when>
    <thetext>(In reply to comment #3)

&gt; Ну и можно в апстрим отправить.

В апстриме хорошо бы ещё проверку ввода для grub-reboot и grub-set-default реализовать. И можно на основе вывода этого скрипта, но тогда он должен все варианты уметь показывать, например, с ключиком -f/--full. А вариантов получается 9 на первый уровень подменю: любой из трёх слева, любой из трёх справа. Чуть-чуть вариантов для примера:

gnulinux-advanced-97dc55e0-56b2-4f33-ae5a-a0c9d2c5daf3&gt;5
gnulinux-advanced-97dc55e0-56b2-4f33-ae5a-a0c9d2c5daf3&gt;ALT p8 starter kit, 4.4.116-std-def-alt0.M80C.1
1&gt;5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178227</commentid>
    <comment_count>5</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-06 11:53:26 +0300</bug_when>
    <thetext>(В ответ на комментарий №2)
&gt; Лёня, хотелось бы видеть твой скрипт в виде задания на сборку grub.

Это не проблема. Как только появится возможность -- отправлю.

Но сначала хотелось бы понять, чего (и в каком виде) этот скрипт должен выводить? Каково будет типовое использование? И в плане безопасности: нынешний вариант слишком рисковый, хотя у нас весь /boot зарутованный и содержимому grub.cfg root может доверять.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178230</commentid>
    <comment_count>6</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-06 12:07:52 +0300</bug_when>
    <thetext>(In reply to comment #5)

&gt; Но сначала хотелось бы понять, чего (и в каком виде) этот
&gt; скрипт должен выводить? Каково будет типовое использование?

Я вопросом использования Grub озадачился из-за bug 34363. Соответственно, лично мне требуется удобное отображение вариантов загрузки для реализации чего-то похожего на &quot;lilo -R&quot;. То есть в /etc/sysconfig/grub2 меняю GRUB_SAVEDEFAULT на false, устанавливаю некоторое проверенное ядро на загрузку через grub-set-default, а после обновления ядра выбираю на следующую перезагрузку свежепоставленное, чтобы, если что, можно было послать кого-то нажать кнопку, либо дёрнуть компьютер PDU-шкой и т.п. Для этого удобно иметь под руками выведенный список вариантов загрузки, откуда можно просто скопировать, а не смотреть каждый раз в /boot/grub/grub.cfg

&gt; И в плане безопасности: нынешний вариант слишком рисковый, хотя
&gt; у нас весь /boot зарутованный и содержимому grub.cfg root может
&gt; доверять.

А чем рисковый? Да, шаблон исполняется, но в начале строк есть вариант только из трёх функций, и они в скрипте определены. Для endmenu только пробел добавить для однозначности, либо конец строки поставить.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178231</commentid>
    <comment_count>7</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2019-02-06 12:14:55 +0300</bug_when>
    <thetext>Да, мне скрипт тоже не понравился тем что ты фактически соурсишь содержимое grub.cfg.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178232</commentid>
    <comment_count>8</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-06 12:37:58 +0300</bug_when>
    <thetext>(In reply to comment #6)

&gt; То есть в /etc/sysconfig/grub2 меняю GRUB_SAVEDEFAULT на false,

Ещё GRUB_DEFAULT=&apos;saved&apos;, но это по-умолчанию в ALT, на сколько я вижу.

&gt; Для этого удобно иметь под руками выведенный список вариантов загрузки

Ещё подумалось, что можно придумать ситуацию, когда обновление делается при отсутствии удобной возможности скопировать. На этот случай, всё же, хорошо видеть и сокращённый вариант из номеров. Для grub-set-default это плохо, так как номера могут меняться, но для grub-reboot вполне годится.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178234</commentid>
    <comment_count>9</comment_count>
      <attachid>7990</attachid>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-06 13:15:32 +0300</bug_when>
    <thetext>Created attachment 7990
Пример конфига для отладки (от Ubuntu)

Если что-то будет доделываться, то вот достаточно развесистый конфиг от Ubuntu (два подменю первого уровня, второго нет). Скрипт из первого аттача обрабатывает его нормально.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178273</commentid>
    <comment_count>10</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-07 01:16:29 +0300</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; В апстриме хорошо бы ещё проверку ввода для grub-reboot и grub-set-default
&gt; реализовать.

Насчёт апстрима пока ничего не скажу, но то что увидел у нас, поменять легко.

&gt; И можно на основе вывода этого скрипта, но тогда он должен все
&gt; варианты уметь показывать, например, с ключиком -f/--full. А вариантов
&gt; получается 9 на первый уровень подменю: любой из трёх слева, любой из трёх
&gt; справа. Чуть-чуть вариантов для примера:
&gt; 
&gt; gnulinux-advanced-97dc55e0-56b2-4f33-ae5a-a0c9d2c5daf3&gt;5
&gt; gnulinux-advanced-97dc55e0-56b2-4f33-ae5a-a0c9d2c5daf3&gt;ALT p8 starter kit,
&gt; 4.4.116-std-def-alt0.M80C.1
&gt; 1&gt;5

Пока не понял как вы считали, смотрю документацию и смотрю ваш конфиг, где есть не только такие ID, но и похлеще:

osprober-gnulinux-/boot/vmlinuz-4.13.0-25-generic-root=UUID=843c9318-4d20-49be-83cf-c09a6e4926c5 ro recovery nomodeset-843c9318-4d20-49be-83cf-c09a6e4926c5

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

https://github.com/thias/glim/tree/master/grub2
https://github.com/aguslr/multibootusb/tree/master/mbusb.d

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

(В ответ на комментарий №6)
&gt; А чем рисковый? Да, шаблон исполняется, но в начале строк есть вариант только
&gt; из трёх функций, и они в скрипте определены.

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

Мне кажется, что бы там не говорилось в документации, проверять и сохранять для многоуровневых меню стоит только числовые варианты a.k.a &apos;1&gt;5&apos;, а для одноуровневых меню ещё название пункта, при условии, что он не дублируется.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178275</commentid>
    <comment_count>11</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-07 01:34:20 +0300</bug_when>
    <thetext>16.1.1 menuentry

menuentry title [--class=class …] [--users=users] [--unrestricted] [--hotkey=key] [--id=id] [arg …] { command; … }

The --id may be used to associate unique identifier with a menu entry. id is string of ASCII aphanumeric characters, underscore and hyphen and should not start with a digit.

16.1.2 submenu

submenu title [--class=class …] [--users=users] [--unrestricted] [--hotkey=key] [--id=id] { menu entries … }

All options are the same as in the menuentry command (see menuentry).

То есть, документация по конфигу противоречит документации по grub-set-default и grub-reboot, которые не описаны на сайте gnu.org, зато там есть пример в разделе 15.1.10 default, где такой дикости с ID нет и ID указаны везде, тогда как по логике авторов эти ID опциональны. Именно поэтому я не вижу смысла их поддерживать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178278</commentid>
    <comment_count>12</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-07 01:51:45 +0300</bug_when>
    <thetext>Короче, приведённый выше пример ID по-любому написан в нарушении документации, так как содержит пробелы, точки, прямой слэш и символ равенства. Пример в документации в разделе &quot;15.1.10 default&quot;, хоть и выглядит разумнее этого ID, тоже противоречит разделу &quot;16.1.1 menuentry&quot;, поскольку в ID используются точки, хотя не должны! Или &quot;aphanumeric&quot; с пропущенной буквой &quot;l&quot; допускает десятичные точки? :)

Кроме того, у всего grubenv блока есть ограничение на общий размер в 1024 байта, а хранится там может три значения вместе с именами переменных, так что многоуровневые меню с такими сумасшедшими ID и заголовками могут попросту не влезть.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178280</commentid>
    <comment_count>13</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-07 02:10:18 +0300</bug_when>
    <thetext>echo -n &quot;Дополнительные параметры для Ubuntu Bionic Beaver (development branch) (18.04) (на /dev/sdb6)&gt;Ubuntu, с Linux 4.4.0-109-generic (recovery mode) (на /dev/sdb6)&quot; | wc -c

189 (байт). А всего вместе с именем переменной -- 341 байт в блоке. Ещё один уровень с таким названием -- и уже не влезет в блок. И это мы, русские, о себе любимых думаем (x2 на символ), а у Японцев/Китайцев до x6 может UTF8 зашкаливать!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178289</commentid>
    <comment_count>14</comment_count>
      <attachid>7996</attachid>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-07 04:43:33 +0300</bug_when>
    <thetext>Created attachment 7996
Скрипт во втором приближении

Сделал безопасней. Переделать его теперь совсем несложно. Просто решите, КАК.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178296</commentid>
    <comment_count>15</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-07 09:52:15 +0300</bug_when>
    <thetext>(In reply to comment #13)

&gt; а у Японцев/Китайцев до x6 может UTF8 зашкаливать!

Как-то при обсуждении длинны имени файла в рассылке про ext4 на эту тему привели контраргумент вида &quot;зато этот символ как абзац текста у европейцев&quot; (или что-то в этом роде). :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178298</commentid>
    <comment_count>16</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-07 10:32:40 +0300</bug_when>
    <thetext>(In reply to comment #14)

&gt; Сделал безопасней. Переделать его теперь совсем несложно. Просто решите, КАК.

Вот это надо:

--- grub-entries.sh.old 2019-02-07 10:57:42.000000000 +0400
+++ grub-entries.sh     2019-02-07 11:20:13.000000000 +0400
@@ -8,7 +8,9 @@
 prefix=&quot;___vxZZZy275___&quot;
 grubmenu=&quot;$(mktemp -q &quot;${TMPDIR-/tmp}/grubmenu-XXXXXXXX.tmp&quot;)&quot;

-cat &quot;$1&quot; | sed \
+grubcfg=${1-/boot/grub/grub.cfg}
+
+cat &quot;$grubcfg&quot; | sed \
        -re &quot;s/^[[:space:]]*menuentry[[:space:]]+&apos;([^&apos;]+)&apos;.*\$/${prefix}M:      \1/g&quot; \
        -re &quot;s/^[[:space:]]*submenu[[:space:]]+&apos;([^&apos;]+)&apos;.*\$/${prefix}S:        \1/g&quot; \
        -re &quot;s/^[[:space:]]*}[[:space:]]*\$/${prefix}E: -/g&quot; \

И вывод. Сейчас как-то вот так:

ALT p8 starter kit
Advanced options for ALT p8 starter kit&gt;ALT p8 starter kit, vmlinuz
Advanced options for ALT p8 starter kit&gt;ALT p8 starter kit, vmlinuz (recovery mode)

А хорошо бы

0   ALT p8 starter kit
1&gt;0 Advanced options for ALT p8 starter kit&gt;ALT p8 starter kit, vmlinuz
1&gt;1 Advanced options for ALT p8 starter kit&gt;ALT p8 starter kit, vmlinuz (recovery mode)

То есть, с числовой альтернативой. Только что-то не соображу, как красиво без массивов обойтись. Или уж перейти на bash4...

И, наверное, всё тогда.

(In reply to comment #11)

&gt; То есть, документация по конфигу противоречит документации по grub-set-default
&gt; и grub-reboot

Как же проще и понятнее с lilo... :-) Тут тогда проще потом баг в апстрим с этим скриптом, и пусть дальше сами за совместимостью следат.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178301</commentid>
    <comment_count>17</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-07 11:13:18 +0300</bug_when>
    <thetext>(В ответ на комментарий №14)
&gt; Переделать его теперь совсем несложно.

Кстати, такая регулярка попроще будет и тоже работает:

-re &apos;/^\s*(menuentry\s+|submenu\s+|})/!d&apos;     \
-re &quot;s/^\s*menuentry\s+&apos;([^&apos;]+)&apos;.*\$/M  \1/g&quot; \
-re &quot;s/^\s*submenu\s+&apos;([^&apos;]+)&apos;.*\$/S    \1/g&quot; \
-re &quot;s/^\s*}\s*\$/E     -/g&quot; &gt; &quot;$grubmenu&quot;

Может ему вообще данные из входного потока брать?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178304</commentid>
    <comment_count>18</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-07 12:03:57 +0300</bug_when>
    <thetext>(In reply to comment #17)

&gt; Может ему вообще данные из входного потока брать?

Вообще да. Хоть сейчас /tmp на tmpfs, но, всё равно, лишние операции файлами. Для отладки только удобно, посмотреть, что там в grubmenu получается.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178309</commentid>
    <comment_count>19</comment_count>
      <attachid>7998</attachid>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-07 13:55:35 +0300</bug_when>
    <thetext>Created attachment 7998
Скрипт в третьем приближении

Вы это имели ввиду? Там есть одна логическая ветка, протестировать которую можно только многомерным меню. Проверить это лучше до опакечивания.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178310</commentid>
    <comment_count>20</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-07 14:00:17 +0300</bug_when>
    <thetext>(В ответ на комментарий №19)
&gt; Проверить это лучше до опакечивания.

Проверять теперь так:
./grub-entries.sh /path/to/grub.cfg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178311</commentid>
    <comment_count>21</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-07 14:01:12 +0300</bug_when>
    <thetext>(В ответ на комментарий №19)
&gt; Проверить это лучше до опакечивания.

Проверять теперь так:
./grub-entries.sh &lt; /path/to/grub.cfg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178312</commentid>
    <comment_count>22</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-07 14:15:21 +0300</bug_when>
    <thetext>(In reply to comment #19)

&gt; Вы это имели ввиду?

Да, так.

&gt; Там есть одна логическая ветка, протестировать
&gt; которую можно только многомерным меню. 

С самим бы этим многомерным меню не ошибиться... :-)

(In reply to comment #21)

&gt; Проверять теперь так:
&gt; ./grub-entries.sh &lt; /path/to/grub.cfg

В окончательном варианте лучше название сделать grub-entries для однообразия и конфиг по-умолчанию /boot/grub/grub.cfg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178313</commentid>
    <comment_count>23</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-07 14:16:07 +0300</bug_when>
    <thetext>(In reply to comment #22)

&gt; grub-entries для однообразия

без .sh то есть.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178314</commentid>
    <comment_count>24</comment_count>
      <attachid>7999</attachid>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-07 14:40:38 +0300</bug_when>
    <thetext>Created attachment 7999
пример grub.cfg, ALT p8, с memtest

А вот и разнообразие пошло. У нас элемент меню с memtest сокращённый, не ловится.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178316</commentid>
    <comment_count>25</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-07 15:10:57 +0300</bug_when>
    <thetext>(В ответ на комментарий №24)
&gt; А вот и разнообразие пошло. У нас элемент меню с memtest сокращённый, не
&gt; ловится.

Да, не ловится из-за двойныйх кавычек. Могу поправить регулярку.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178317</commentid>
    <comment_count>26</comment_count>
      <attachid>8000</attachid>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-07 15:12:46 +0300</bug_when>
    <thetext>Created attachment 8000
пример grub.cfg, ALT p8, с memtest, два уровня

Сделал пример с двумя уровнями вложенности. В общем-то работает и по номерам строк, если учесть пропущенный memtest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178318</commentid>
    <comment_count>27</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-07 15:14:00 +0300</bug_when>
    <thetext>(In reply to comment #25)

&gt; Да, не ловится из-за двойныйх кавычек. Могу поправить регулярку.

Так для ALT же в первую очередь, надо, разумеется. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178323</commentid>
    <comment_count>28</comment_count>
      <attachid>8001</attachid>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-07 16:29:39 +0300</bug_when>
    <thetext>Created attachment 8001
Теперь и с двойными, и с одинарными кавычками

(В ответ на комментарий №27)
&gt; Так для ALT же в первую очередь, надо, разумеется. :-)

Пофиксил.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178324</commentid>
    <comment_count>29</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-07 16:36:12 +0300</bug_when>
    <thetext>(В ответ на комментарий №26)
&gt; Сделал пример с двумя уровнями вложенности. В общем-то работает и по номерам
&gt; строк, если учесть пропущенный memtest.

Этот пример не тестирует логическую ветвь, про которую я говорил. Здесь возврат происходит сразу на нулевой уровень.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178343</commentid>
    <comment_count>30</comment_count>
      <attachid>8002</attachid>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-08 02:00:13 +0300</bug_when>
    <thetext>Created attachment 8002
Окончательная версия скрипта

Там тоже была ошибка, исправил. Вот это уже можно опакечивать?

P.S.: в названии конфига какой смысл, если данные берутся из stdin?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178346</commentid>
    <comment_count>31</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-08 03:14:42 +0300</bug_when>
    <thetext>На всякий случай: Task #221001, там ещё man(8) добавил.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178348</commentid>
    <comment_count>32</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2019-02-08 07:37:48 +0300</bug_when>
    <thetext>было бы отлично убрать из этого скрипта временный файл $grubmenu&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178351</commentid>
    <comment_count>33</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-08 09:12:41 +0300</bug_when>
    <thetext>(In reply to comment #30)

&gt; P.S.: в названии конфига какой смысл, если данные берутся из stdin?

А зачем так? В 99.9% случаев интересен только один конфиг, и удобно запускать скрипт просто без параметров. Для 0.1% случаев можно оставить возможность ввода параметра, а stdn - задел на использование в скрипте для проверки правильности ввода у grub-reboot и grub-set-default? Так там тоже не надо выбирать ничего, просто запускать и проверять вывод.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178352</commentid>
    <comment_count>34</comment_count>
      <attachid>8003</attachid>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-08 09:20:51 +0300</bug_when>
    <thetext>Created attachment 8003
пример grub.cfg, ALT p8, с memtest, два уровня, с переходом на первый

Вот этот конфиг последний скрипт (аттач 8002) нормально разбирает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178353</commentid>
    <comment_count>35</comment_count>
      <attachid>8004</attachid>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-08 09:24:04 +0300</bug_when>
    <thetext>Created attachment 8004
Вариант скрипта без промежуточного файла

В окончательном виде вот так предлагаю сделать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178361</commentid>
    <comment_count>36</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-08 11:26:10 +0300</bug_when>
    <thetext>(В ответ на комментарий №32)
&gt; было бы отлично убрать из этого скрипта временный файл $grubmenu&quot;.

Боюсь, это невозможно, поскольку это единственно возможный вариант работы с данными, лежащими за пределами цикла их обработки:

глобальное = ...
for/while ... do
    что_то_делать_с_глобальным()
done &lt; $временный_файл

Если делать иначе, данные не сохраняются между итерациями.


(В ответ на комментарий №35)
&gt; В окончательном виде вот так предлагаю сделать.

И чего, он правильно работает!? Проверяли? ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178363</commentid>
    <comment_count>37</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-08 11:50:00 +0300</bug_when>
    <thetext>&gt; (В ответ на комментарий №35)
&gt; &gt; В окончательном виде вот так предлагаю сделать.
&gt; 
&gt; И чего, он правильно работает!? Проверяли? ;-)

Конечно. Я себе его так и переделал. Какая разница, скармливать в wile поток данных через &quot;|&quot; или или через &quot;&lt;&quot;? Вот если бы речь шла о передаче значений переменных из цикла наружу... Вот там что-то такое вспоминается.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178364</commentid>
    <comment_count>38</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-08 11:57:09 +0300</bug_when>
    <thetext>(In reply to comment #37)

&gt; Вот там что-то такое вспоминается.

Да, как раз именно это, из comment #36. &quot;глобальное&quot; будет иметь значение, как до цикла. Но внутри цикла всё должно быть хорошо.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178365</commentid>
    <comment_count>39</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-08 12:03:31 +0300</bug_when>
    <thetext>(В ответ на комментарий №37)
&gt; Вот если бы речь шла о передаче значений
&gt; переменных из цикла наружу... Вот там что-то такое вспоминается.

Пожалуй, Вы правы!

(В ответ на комментарий №38)
&gt; Да, как раз именно это, из comment #36. &quot;глобальное&quot; будет иметь значение, как
&gt; до цикла. Но внутри цикла всё должно быть хорошо.

Нет, с массивами и внутри всё плохо, и снаружи всё плохо. Использовал mkfifo чтобы обойти эту проблему. Поэтому давно не использую |while конструкцию.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178385</commentid>
    <comment_count>40</comment_count>
      <attachid>8007</attachid>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-08 16:41:13 +0300</bug_when>
    <thetext>Created attachment 8007
Варинт скрипта с опциями и проверкой

Может лучше так?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178386</commentid>
    <comment_count>41</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2019-02-08 16:41:22 +0300</bug_when>
    <thetext>если делать с временным файлом, то надо предусмотреть падение скрипта и удаление временных файлов.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178389</commentid>
    <comment_count>42</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-08 16:58:09 +0300</bug_when>
    <thetext>(В ответ на комментарий №41)
&gt; если делать с временным файлом, то надо предусмотреть падение скрипта и
&gt; удаление временных файлов.

В последнем варианте без временного файла с проверкой результата. Проверку сделать через временный файл можно понадёжней. Здесь я не уверен, что grep во всех случаях отработает корректно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178390</commentid>
    <comment_count>43</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-08 17:01:00 +0300</bug_when>
    <thetext>Да, возможно единственный правильный вариант с grep -- это когда счётчик вернул одно полное совпадение, тогда как 0 -- отсутствие элемента, а &gt;1 -- наличие дубликатов, что может привести к неоднозначности.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178392</commentid>
    <comment_count>44</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-08 17:26:03 +0300</bug_when>
    <thetext>(In reply to comment #43)

&gt; Да, возможно единственный правильный вариант с grep -- это когда счётчик вернул
&gt; одно полное совпадение, тогда как 0 -- отсутствие элемента, а &gt;1 -- наличие
&gt; дубликатов, что может привести к неоднозначности.

Да.

(In reply to comment #40)

&gt; Created an attachment (id=8007) [details]
&gt; Варинт скрипта с опциями и проверкой

# ./grub-entries sdf
To many arguments: &apos;sdf&apos;

Наверное правильнее unrecognized arguments: &apos;sdf&apos;

И проверка. В-первых, сама её нужность тут под вопросом. Проверять нужно именно
в момент задания, в grub-reboot и grub-set-default. Или уж, если отдельно, то
проверять, что написано в /boot/grub/grubenv, и, может быть, в
/etc/sysconfig/grub2 в GRUB_DEFAULT, если в GRUB_DEFAULT не saved. Во-вторых
вот это место:

 case &quot;$search_item&quot; in
 [0-9]*) numbers_only=1; titles_only=0;;
 *)      numbers_only=0; titles_only=1;;
 esac

А какова гарантия, что текстовая строка с цифры не начнётся? Проверять не так
уж много, можно просто проверить все варианты.

В остальном всё хорошо на мой взгляд.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178395</commentid>
    <comment_count>45</comment_count>
      <attachid>8008</attachid>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-08 18:22:50 +0300</bug_when>
    <thetext>Created attachment 8008
Окончательная версия скрипта

(В ответ на комментарий №44)
&gt; В остальном всё хорошо на мой взгляд.

Готов на 146%!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178396</commentid>
    <comment_count>46</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2019-02-08 19:35:13 +0300</bug_when>
    <thetext>(In reply to comment #45)

&gt; Готов на 146%!

На мой взгляд да.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178403</commentid>
    <comment_count>47</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2019-02-09 08:38:42 +0300</bug_when>
    <thetext>Коля, забери коммит у Леонида, как только тот будет готов.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178410</commentid>
    <comment_count>48</comment_count>
      <attachid>8009</attachid>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2019-02-09 13:42:06 +0300</bug_when>
    <thetext>Created attachment 8009
Патч с добавление скрипта и man-страницы к grub

(В ответ на комментарий №47)
&gt; Коля, забери коммит у Леонида, как только тот будет готов.

Вот он, если что.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179421</commentid>
    <comment_count>49</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2019-03-13 16:41:05 +0300</bug_when>
    <thetext>grub-2.02-alt15 -&gt; sisyphus:

Tue Feb 12 2019 Nikolai Kostrigin &lt;nickel@altlinux&gt; 2.02-alt15
- add rhboot/grub2 SB patch set to prevent unauthorized code execution at boot time when SB is enabled
- add grub-entries script by klark@ for list grub menu (closes: #36048)
- add patch preventing boot failure for unsigned kernel in SB environment
  + add an optional patch application flag for convenience</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7989</attachid>
            <date>2019-02-06 11:02:18 +0300</date>
            <delta_ts>2019-02-06 11:02:18 +0300</delta_ts>
            <desc>Скрипт в первом приближении</desc>
            <filename>grub-entries</filename>
            <type>application/octet-stream</type>
            <size>832</size>
            <attacher name="Sergey Y. Afonin">asy</attacher>
            
              <data encoding="base64">IyEvYmluL3NoIC1lZnUKIyMjIFRoaXMgZmlsZSBpcyBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQojIyMgdmVyc2lvbiAyIG9yIGxhdGVyLgojIyMKIyMjIENvcHlyaWdo
dCAoQykgMjAxOSAgQUxUIExpbnV4IFRlYW0KIyMjIEF1dGhvcjogTGVvbmlkIEtyaXZvc2hlaW4g
PGtsYXJrQGFsdGxpbnV4Lm9yZz4KCm1lbnVlbnRyeSgpIHsKCWVjaG8gIiR7cHJlZml4fSQxIgoJ
ZW50cnk9MQp9CgpzdWJtZW51KCkgewoJcHJlZml4PSIke3ByZWZpeH0kezF9PiIKfQoKZW5kbWVu
dSgpIHsKCWlmIFsgJGVudHJ5IC1uZSAwIF07IHRoZW4KCQllbnRyeT0wCgkJcmV0dXJuCglmaQoJ
aWYgWyAteiAiJHByZWZpeCIgXTsgdGhlbgoJCXJldHVybgoJZmkKCXByZWZpeD0iJHtwcmVmaXgl
Pn0iCgljYXNlICIkcHJlZml4IiBpbgoJKiI+IiopCXByZWZpeD0iJHtwcmVmaXglPip9Ijs7Cgkq
KQlwcmVmaXg9OzsKCWVzYWMKfQoKCmdydWJtZW51PSIkKG1rdGVtcCAtcSAiJHtUTVBESVItL3Rt
cH0vZ3J1Ym1lbnUtWFhYWFhYWFgudG1wIikiCgpncnViY2ZnPSR7MS0vYm9vdC9ncnViL2dydWIu
Y2ZnfQoKY2F0ICIkZ3J1YmNmZyIgfCBzZWQgXAoJLWUgJ3MvXltbOnNwYWNlOl1dKi8vZycgXAoJ
LWUgJ3MvW1s6c3BhY2U6XV0qJC8vZycgXAoJLWUgJ3MvXn0kL2VuZG1lbnUvZycgXAoJLWUgJ3Mv
W1s6c3BhY2U6XV0qeyQvL2cnIHwKZ3JlcCAtRSAnXihtZW51ZW50cnkgfHN1Ym1lbnUgfGVuZG1l
bnUpJyA+ICIkZ3J1Ym1lbnUiCgpwcmVmaXg9CmVudHJ5PTAKbWVudWVudHJ5X2lkX29wdGlvbj0K
Ci4gIiRncnVibWVudSIKcm0gLWYgIiRncnVibWVudSIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7990</attachid>
            <date>2019-02-06 13:15:32 +0300</date>
            <delta_ts>2019-02-07 09:56:07 +0300</delta_ts>
            <desc>Пример конфига для отладки (от Ubuntu)</desc>
            <filename>grub.cfg</filename>
            <type>application/octet-stream</type>
            <size>18185</size>
            <attacher name="Sergey Y. Afonin">asy</attacher>
            
              <data encoding="base64">IwojIERPIE5PVCBFRElUIFRISVMgRklMRQojCiMgSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0
ZWQgYnkgZ3J1Yi1ta2NvbmZpZyB1c2luZyB0ZW1wbGF0ZXMKIyBmcm9tIC9ldGMvZ3J1Yi5kIGFu
ZCBzZXR0aW5ncyBmcm9tIC9ldGMvZGVmYXVsdC9ncnViCiMKCiMjIyBCRUdJTiAvZXRjL2dydWIu
ZC8wMF9oZWFkZXIgIyMjCmlmIFsgLXMgJHByZWZpeC9ncnViZW52IF07IHRoZW4KICBzZXQgaGF2
ZV9ncnViZW52PXRydWUKICBsb2FkX2VudgpmaQppZiBbICIke25leHRfZW50cnl9IiBdIDsgdGhl
bgogICBzZXQgZGVmYXVsdD0iJHtuZXh0X2VudHJ5fSIKICAgc2V0IG5leHRfZW50cnk9CiAgIHNh
dmVfZW52IG5leHRfZW50cnkKICAgc2V0IGJvb3Rfb25jZT10cnVlCmVsc2UKICAgc2V0IGRlZmF1
bHQ9IjAiCmZpCgppZiBbIHgiJHtmZWF0dXJlX21lbnVlbnRyeV9pZH0iID0geHkgXTsgdGhlbgog
IG1lbnVlbnRyeV9pZF9vcHRpb249Ii0taWQiCmVsc2UKICBtZW51ZW50cnlfaWRfb3B0aW9uPSIi
CmZpCgpleHBvcnQgbWVudWVudHJ5X2lkX29wdGlvbgoKaWYgWyAiJHtwcmV2X3NhdmVkX2VudHJ5
fSIgXTsgdGhlbgogIHNldCBzYXZlZF9lbnRyeT0iJHtwcmV2X3NhdmVkX2VudHJ5fSIKICBzYXZl
X2VudiBzYXZlZF9lbnRyeQogIHNldCBwcmV2X3NhdmVkX2VudHJ5PQogIHNhdmVfZW52IHByZXZf
c2F2ZWRfZW50cnkKICBzZXQgYm9vdF9vbmNlPXRydWUKZmkKCmZ1bmN0aW9uIHNhdmVkZWZhdWx0
IHsKICBpZiBbIC16ICIke2Jvb3Rfb25jZX0iIF07IHRoZW4KICAgIHNhdmVkX2VudHJ5PSIke2No
b3Nlbn0iCiAgICBzYXZlX2VudiBzYXZlZF9lbnRyeQogIGZpCn0KZnVuY3Rpb24gcmVjb3JkZmFp
bCB7CiAgc2V0IHJlY29yZGZhaWw9MQogIGlmIFsgLW4gIiR7aGF2ZV9ncnViZW52fSIgXTsgdGhl
biBpZiBbIC16ICIke2Jvb3Rfb25jZX0iIF07IHRoZW4gc2F2ZV9lbnYgcmVjb3JkZmFpbDsgZmk7
IGZpCn0KZnVuY3Rpb24gbG9hZF92aWRlbyB7CiAgaWYgWyB4JGZlYXR1cmVfYWxsX3ZpZGVvX21v
ZHVsZSA9IHh5IF07IHRoZW4KICAgIGluc21vZCBhbGxfdmlkZW8KICBlbHNlCiAgICBpbnNtb2Qg
ZWZpX2dvcAogICAgaW5zbW9kIGVmaV91Z2EKICAgIGluc21vZCBpZWVlMTI3NV9mYgogICAgaW5z
bW9kIHZiZQogICAgaW5zbW9kIHZnYQogICAgaW5zbW9kIHZpZGVvX2JvY2hzCiAgICBpbnNtb2Qg
dmlkZW9fY2lycnVzCiAgZmkKfQoKaWYgWyB4JGZlYXR1cmVfZGVmYXVsdF9mb250X3BhdGggPSB4
eSBdIDsgdGhlbgogICBmb250PXVuaWNvZGUKZWxzZQppbnNtb2QgcGFydF9tc2RvcwppbnNtb2Qg
ZXh0MgpzZXQgcm9vdD0naGQwLG1zZG9zMScKaWYgWyB4JGZlYXR1cmVfcGxhdGZvcm1fc2VhcmNo
X2hpbnQgPSB4eSBdOyB0aGVuCiAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1y
b290IC0taGludC1iaW9zPWhkMCxtc2RvczEgLS1oaW50LWVmaT1oZDAsbXNkb3MxIC0taGludC1i
YXJlbWV0YWw9YWhjaTAsbXNkb3MxICBmMGQ0MjQ0My04ZTkzLTQ0NzAtYTA1Mi03MDQ0ZDczYmVj
ZWIKZWxzZQogIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCBmMGQ0MjQ0
My04ZTkzLTQ0NzAtYTA1Mi03MDQ0ZDczYmVjZWIKZmkKICAgIGZvbnQ9Ii91c3Ivc2hhcmUvZ3J1
Yi91bmljb2RlLnBmMiIKZmkKCmlmIGxvYWRmb250ICRmb250IDsgdGhlbgogIHNldCBnZnhtb2Rl
PWF1dG8KICBsb2FkX3ZpZGVvCiAgaW5zbW9kIGdmeHRlcm0KICBzZXQgbG9jYWxlX2Rpcj0kcHJl
Zml4L2xvY2FsZQogIHNldCBsYW5nPXJ1X1JVCiAgaW5zbW9kIGdldHRleHQKZmkKdGVybWluYWxf
b3V0cHV0IGdmeHRlcm0KaWYgWyAiJHtyZWNvcmRmYWlsfSIgPSAxIF0gOyB0aGVuCiAgc2V0IHRp
bWVvdXQ9MzAKZWxzZQogIGlmIFsgeCRmZWF0dXJlX3RpbWVvdXRfc3R5bGUgPSB4eSBdIDsgdGhl
bgogICAgc2V0IHRpbWVvdXRfc3R5bGU9aGlkZGVuCiAgICBzZXQgdGltZW91dD0xMAogICMgRmFs
bGJhY2sgaGlkZGVuLXRpbWVvdXQgY29kZSBpbiBjYXNlIHRoZSB0aW1lb3V0X3N0eWxlIGZlYXR1
cmUgaXMKICAjIHVuYXZhaWxhYmxlLgogIGVsaWYgc2xlZXAgLS1pbnRlcnJ1cHRpYmxlIDEwIDsg
dGhlbgogICAgc2V0IHRpbWVvdXQ9MAogIGZpCmZpCiMjIyBFTkQgL2V0Yy9ncnViLmQvMDBfaGVh
ZGVyICMjIwoKIyMjIEJFR0lOIC9ldGMvZ3J1Yi5kLzA1X2RlYmlhbl90aGVtZSAjIyMKc2V0IG1l
bnVfY29sb3Jfbm9ybWFsPXdoaXRlL2JsYWNrCnNldCBtZW51X2NvbG9yX2hpZ2hsaWdodD1ibGFj
ay9saWdodC1ncmF5CiNzZXRfYmFja2dyb3VuZF9pbWFnZSAiaW1hZ2VzL3RpbGUucG5nIjsKCnNl
dCBtZW51X2NvbG9yX25vcm1hbD13aGl0ZS9ibGFjawpzZXQgbWVudV9jb2xvcl9oaWdobGlnaHQ9
YmxhY2svbGlnaHQtZ3JheQppZiBiYWNrZ3JvdW5kX2NvbG9yIDAsMCwwOyB0aGVuCiAgY2xlYXIK
ZmkKIyMjIEVORCAvZXRjL2dydWIuZC8wNV9kZWJpYW5fdGhlbWUgIyMjCgojIyMgQkVHSU4gL2V0
Yy9ncnViLmQvMTBfbGludXggIyMjCmZ1bmN0aW9uIGdmeG1vZGUgewoJc2V0IGdmeHBheWxvYWQ9
IiR7MX0iCglpZiBbICIkezF9IiA9ICJrZWVwIiBdOyB0aGVuCgkJc2V0IHZ0X2hhbmRvZmY9dnQu
aGFuZG9mZj0xCgllbHNlCgkJc2V0IHZ0X2hhbmRvZmY9CglmaQp9CmlmIFsgIiR7cmVjb3JkZmFp
bH0iICE9IDEgXTsgdGhlbgogIGlmIFsgLWUgJHtwcmVmaXh9L2dmeGJsYWNrbGlzdC50eHQgXTsg
dGhlbgogICAgaWYgaHdtYXRjaCAke3ByZWZpeH0vZ2Z4YmxhY2tsaXN0LnR4dCAzOyB0aGVuCiAg
ICAgIGlmIFsgJHttYXRjaH0gPSAwIF07IHRoZW4KICAgICAgICBzZXQgbGludXhfZ2Z4X21vZGU9
a2VlcAogICAgICBlbHNlCiAgICAgICAgc2V0IGxpbnV4X2dmeF9tb2RlPXRleHQKICAgICAgZmkK
ICAgIGVsc2UKICAgICAgc2V0IGxpbnV4X2dmeF9tb2RlPXRleHQKICAgIGZpCiAgZWxzZQogICAg
c2V0IGxpbnV4X2dmeF9tb2RlPWtlZXAKICBmaQplbHNlCiAgc2V0IGxpbnV4X2dmeF9tb2RlPXRl
eHQKZmkKZXhwb3J0IGxpbnV4X2dmeF9tb2RlCm1lbnVlbnRyeSAnVWJ1bnR1JyAtLWNsYXNzIHVi
dW50dSAtLWNsYXNzIGdudS1saW51eCAtLWNsYXNzIGdudSAtLWNsYXNzIG9zICRtZW51ZW50cnlf
aWRfb3B0aW9uICdnbnVsaW51eC1zaW1wbGUtZjBkNDI0NDMtOGU5My00NDcwLWEwNTItNzA0NGQ3
M2JlY2ViJyB7CglyZWNvcmRmYWlsCglsb2FkX3ZpZGVvCglnZnhtb2RlICRsaW51eF9nZnhfbW9k
ZQoJaW5zbW9kIGd6aW8KCWlmIFsgeCRncnViX3BsYXRmb3JtID0geHhlbiBdOyB0aGVuIGluc21v
ZCB4emlvOyBpbnNtb2QgbHpvcGlvOyBmaQoJaW5zbW9kIHBhcnRfbXNkb3MKCWluc21vZCBleHQy
CglzZXQgcm9vdD0naGQwLG1zZG9zMScKCWlmIFsgeCRmZWF0dXJlX3BsYXRmb3JtX3NlYXJjaF9o
aW50ID0geHkgXTsgdGhlbgoJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJv
b3QgLS1oaW50LWJpb3M9aGQwLG1zZG9zMSAtLWhpbnQtZWZpPWhkMCxtc2RvczEgLS1oaW50LWJh
cmVtZXRhbD1haGNpMCxtc2RvczEgIGYwZDQyNDQzLThlOTMtNDQ3MC1hMDUyLTcwNDRkNzNiZWNl
YgoJZWxzZQoJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgZjBkNDI0
NDMtOGU5My00NDcwLWEwNTItNzA0NGQ3M2JlY2ViCglmaQogICAgICAgIGxpbnV4CS9ib290L3Zt
bGludXotNC4xNS4wLTQ1LWdlbmVyaWMgcm9vdD1VVUlEPWYwZDQyNDQzLThlOTMtNDQ3MC1hMDUy
LTcwNDRkNzNiZWNlYiBybyAgcXVpZXQgc3BsYXNoICR2dF9oYW5kb2ZmCglpbml0cmQJL2Jvb3Qv
aW5pdHJkLmltZy00LjE1LjAtNDUtZ2VuZXJpYwp9CnN1Ym1lbnUgJ9CU0L7Qv9C+0LvQvdC40YLQ
tdC70YzQvdGL0LUg0L/QsNGA0LDQvNC10YLRgNGLINC00LvRjyBVYnVudHUnICRtZW51ZW50cnlf
aWRfb3B0aW9uICdnbnVsaW51eC1hZHZhbmNlZC1mMGQ0MjQ0My04ZTkzLTQ0NzAtYTA1Mi03MDQ0
ZDczYmVjZWInIHsKCW1lbnVlbnRyeSAnVWJ1bnR1LCDRgSBMaW51eCA0LjE1LjAtNDUtZ2VuZXJp
YycgLS1jbGFzcyB1YnVudHUgLS1jbGFzcyBnbnUtbGludXggLS1jbGFzcyBnbnUgLS1jbGFzcyBv
cyAkbWVudWVudHJ5X2lkX29wdGlvbiAnZ251bGludXgtNC4xNS4wLTQ1LWdlbmVyaWMtYWR2YW5j
ZWQtZjBkNDI0NDMtOGU5My00NDcwLWEwNTItNzA0NGQ3M2JlY2ViJyB7CgkJcmVjb3JkZmFpbAoJ
CWxvYWRfdmlkZW8KCQlnZnhtb2RlICRsaW51eF9nZnhfbW9kZQoJCWluc21vZCBnemlvCgkJaWYg
WyB4JGdydWJfcGxhdGZvcm0gPSB4eGVuIF07IHRoZW4gaW5zbW9kIHh6aW87IGluc21vZCBsem9w
aW87IGZpCgkJaW5zbW9kIHBhcnRfbXNkb3MKCQlpbnNtb2QgZXh0MgoJCXNldCByb290PSdoZDAs
bXNkb3MxJwoJCWlmIFsgeCRmZWF0dXJlX3BsYXRmb3JtX3NlYXJjaF9oaW50ID0geHkgXTsgdGhl
bgoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290IC0taGludC1iaW9z
PWhkMCxtc2RvczEgLS1oaW50LWVmaT1oZDAsbXNkb3MxIC0taGludC1iYXJlbWV0YWw9YWhjaTAs
bXNkb3MxICBmMGQ0MjQ0My04ZTkzLTQ0NzAtYTA1Mi03MDQ0ZDczYmVjZWIKCQllbHNlCgkJICBz
ZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgZjBkNDI0NDMtOGU5My00NDcw
LWEwNTItNzA0NGQ3M2JlY2ViCgkJZmkKCQllY2hvCSfQl9Cw0LPRgNGD0LbQsNC10YLRgdGPIExp
bnV4IDQuMTUuMC00NS1nZW5lcmljIOKApicKCSAgICAgICAgbGludXgJL2Jvb3Qvdm1saW51ei00
LjE1LjAtNDUtZ2VuZXJpYyByb290PVVVSUQ9ZjBkNDI0NDMtOGU5My00NDcwLWEwNTItNzA0NGQ3
M2JlY2ViIHJvICBxdWlldCBzcGxhc2ggJHZ0X2hhbmRvZmYKCQllY2hvCSfQl9Cw0LPRgNGD0LbQ
sNC10YLRgdGPINC90LDRh9Cw0LvRjNC90YvQuSDQstC40YDRgtGD0LDQu9GM0L3Ri9C5INC00LjR
gdC6IOKApicKCQlpbml0cmQJL2Jvb3QvaW5pdHJkLmltZy00LjE1LjAtNDUtZ2VuZXJpYwoJfQoJ
bWVudWVudHJ5ICdVYnVudHUsINGBIExpbnV4IDQuMTUuMC00NS1nZW5lcmljIChyZWNvdmVyeSBt
b2RlKScgLS1jbGFzcyB1YnVudHUgLS1jbGFzcyBnbnUtbGludXggLS1jbGFzcyBnbnUgLS1jbGFz
cyBvcyAkbWVudWVudHJ5X2lkX29wdGlvbiAnZ251bGludXgtNC4xNS4wLTQ1LWdlbmVyaWMtcmVj
b3ZlcnktZjBkNDI0NDMtOGU5My00NDcwLWEwNTItNzA0NGQ3M2JlY2ViJyB7CgkJcmVjb3JkZmFp
bAoJCWxvYWRfdmlkZW8KCQlpbnNtb2QgZ3ppbwoJCWlmIFsgeCRncnViX3BsYXRmb3JtID0geHhl
biBdOyB0aGVuIGluc21vZCB4emlvOyBpbnNtb2QgbHpvcGlvOyBmaQoJCWluc21vZCBwYXJ0X21z
ZG9zCgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9vdD0naGQwLG1zZG9zMScKCQlpZiBbIHgkZmVhdHVy
ZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4KCQkgIHNlYXJjaCAtLW5vLWZsb3Bw
eSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDAsbXNkb3MxIC0taGludC1lZmk9
aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFsPWFoY2kwLG1zZG9zMSAgZjBkNDI0NDMtOGU5My00
NDcwLWEwNTItNzA0NGQ3M2JlY2ViCgkJZWxzZQoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMt
dXVpZCAtLXNldD1yb290IGYwZDQyNDQzLThlOTMtNDQ3MC1hMDUyLTcwNDRkNzNiZWNlYgoJCWZp
CgkJZWNobwkn0JfQsNCz0YDRg9C20LDQtdGC0YHRjyBMaW51eCA0LjE1LjAtNDUtZ2VuZXJpYyDi
gKYnCgkgICAgICAgIGxpbnV4CS9ib290L3ZtbGludXotNC4xNS4wLTQ1LWdlbmVyaWMgcm9vdD1V
VUlEPWYwZDQyNDQzLThlOTMtNDQ3MC1hMDUyLTcwNDRkNzNiZWNlYiBybyByZWNvdmVyeSBub21v
ZGVzZXQgCgkJZWNobwkn0JfQsNCz0YDRg9C20LDQtdGC0YHRjyDQvdCw0YfQsNC70YzQvdGL0Lkg
0LLQuNGA0YLRg9Cw0LvRjNC90YvQuSDQtNC40YHQuiDigKYnCgkJaW5pdHJkCS9ib290L2luaXRy
ZC5pbWctNC4xNS4wLTQ1LWdlbmVyaWMKCX0KCW1lbnVlbnRyeSAnVWJ1bnR1LCDRgSBMaW51eCA0
LjE1LjAtNDQtZ2VuZXJpYycgLS1jbGFzcyB1YnVudHUgLS1jbGFzcyBnbnUtbGludXggLS1jbGFz
cyBnbnUgLS1jbGFzcyBvcyAkbWVudWVudHJ5X2lkX29wdGlvbiAnZ251bGludXgtNC4xNS4wLTQ0
LWdlbmVyaWMtYWR2YW5jZWQtZjBkNDI0NDMtOGU5My00NDcwLWEwNTItNzA0NGQ3M2JlY2ViJyB7
CgkJcmVjb3JkZmFpbAoJCWxvYWRfdmlkZW8KCQlnZnhtb2RlICRsaW51eF9nZnhfbW9kZQoJCWlu
c21vZCBnemlvCgkJaWYgWyB4JGdydWJfcGxhdGZvcm0gPSB4eGVuIF07IHRoZW4gaW5zbW9kIHh6
aW87IGluc21vZCBsem9waW87IGZpCgkJaW5zbW9kIHBhcnRfbXNkb3MKCQlpbnNtb2QgZXh0MgoJ
CXNldCByb290PSdoZDAsbXNkb3MxJwoJCWlmIFsgeCRmZWF0dXJlX3BsYXRmb3JtX3NlYXJjaF9o
aW50ID0geHkgXTsgdGhlbgoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1y
b290IC0taGludC1iaW9zPWhkMCxtc2RvczEgLS1oaW50LWVmaT1oZDAsbXNkb3MxIC0taGludC1i
YXJlbWV0YWw9YWhjaTAsbXNkb3MxICBmMGQ0MjQ0My04ZTkzLTQ0NzAtYTA1Mi03MDQ0ZDczYmVj
ZWIKCQllbHNlCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgZjBk
NDI0NDMtOGU5My00NDcwLWEwNTItNzA0NGQ3M2JlY2ViCgkJZmkKCQllY2hvCSfQl9Cw0LPRgNGD
0LbQsNC10YLRgdGPIExpbnV4IDQuMTUuMC00NC1nZW5lcmljIOKApicKCSAgICAgICAgbGludXgJ
L2Jvb3Qvdm1saW51ei00LjE1LjAtNDQtZ2VuZXJpYyByb290PVVVSUQ9ZjBkNDI0NDMtOGU5My00
NDcwLWEwNTItNzA0NGQ3M2JlY2ViIHJvICBxdWlldCBzcGxhc2ggJHZ0X2hhbmRvZmYKCQllY2hv
CSfQl9Cw0LPRgNGD0LbQsNC10YLRgdGPINC90LDRh9Cw0LvRjNC90YvQuSDQstC40YDRgtGD0LDQ
u9GM0L3Ri9C5INC00LjRgdC6IOKApicKCQlpbml0cmQJL2Jvb3QvaW5pdHJkLmltZy00LjE1LjAt
NDQtZ2VuZXJpYwoJfQoJbWVudWVudHJ5ICdVYnVudHUsINGBIExpbnV4IDQuMTUuMC00NC1nZW5l
cmljIChyZWNvdmVyeSBtb2RlKScgLS1jbGFzcyB1YnVudHUgLS1jbGFzcyBnbnUtbGludXggLS1j
bGFzcyBnbnUgLS1jbGFzcyBvcyAkbWVudWVudHJ5X2lkX29wdGlvbiAnZ251bGludXgtNC4xNS4w
LTQ0LWdlbmVyaWMtcmVjb3ZlcnktZjBkNDI0NDMtOGU5My00NDcwLWEwNTItNzA0NGQ3M2JlY2Vi
JyB7CgkJcmVjb3JkZmFpbAoJCWxvYWRfdmlkZW8KCQlpbnNtb2QgZ3ppbwoJCWlmIFsgeCRncnVi
X3BsYXRmb3JtID0geHhlbiBdOyB0aGVuIGluc21vZCB4emlvOyBpbnNtb2QgbHpvcGlvOyBmaQoJ
CWluc21vZCBwYXJ0X21zZG9zCgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9vdD0naGQwLG1zZG9zMScK
CQlpZiBbIHgkZmVhdHVyZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4KCQkgIHNl
YXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDAsbXNk
b3MxIC0taGludC1lZmk9aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFsPWFoY2kwLG1zZG9zMSAg
ZjBkNDI0NDMtOGU5My00NDcwLWEwNTItNzA0NGQ3M2JlY2ViCgkJZWxzZQoJCSAgc2VhcmNoIC0t
bm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290IGYwZDQyNDQzLThlOTMtNDQ3MC1hMDUyLTcw
NDRkNzNiZWNlYgoJCWZpCgkJZWNobwkn0JfQsNCz0YDRg9C20LDQtdGC0YHRjyBMaW51eCA0LjE1
LjAtNDQtZ2VuZXJpYyDigKYnCgkgICAgICAgIGxpbnV4CS9ib290L3ZtbGludXotNC4xNS4wLTQ0
LWdlbmVyaWMgcm9vdD1VVUlEPWYwZDQyNDQzLThlOTMtNDQ3MC1hMDUyLTcwNDRkNzNiZWNlYiBy
byByZWNvdmVyeSBub21vZGVzZXQgCgkJZWNobwkn0JfQsNCz0YDRg9C20LDQtdGC0YHRjyDQvdCw
0YfQsNC70YzQvdGL0Lkg0LLQuNGA0YLRg9Cw0LvRjNC90YvQuSDQtNC40YHQuiDigKYnCgkJaW5p
dHJkCS9ib290L2luaXRyZC5pbWctNC4xNS4wLTQ0LWdlbmVyaWMKCX0KCW1lbnVlbnRyeSAnVWJ1
bnR1LCDRgSBMaW51eCA0LjE1LjAtNDMtZ2VuZXJpYycgLS1jbGFzcyB1YnVudHUgLS1jbGFzcyBn
bnUtbGludXggLS1jbGFzcyBnbnUgLS1jbGFzcyBvcyAkbWVudWVudHJ5X2lkX29wdGlvbiAnZ251
bGludXgtNC4xNS4wLTQzLWdlbmVyaWMtYWR2YW5jZWQtZjBkNDI0NDMtOGU5My00NDcwLWEwNTIt
NzA0NGQ3M2JlY2ViJyB7CgkJcmVjb3JkZmFpbAoJCWxvYWRfdmlkZW8KCQlnZnhtb2RlICRsaW51
eF9nZnhfbW9kZQoJCWluc21vZCBnemlvCgkJaWYgWyB4JGdydWJfcGxhdGZvcm0gPSB4eGVuIF07
IHRoZW4gaW5zbW9kIHh6aW87IGluc21vZCBsem9waW87IGZpCgkJaW5zbW9kIHBhcnRfbXNkb3MK
CQlpbnNtb2QgZXh0MgoJCXNldCByb290PSdoZDAsbXNkb3MxJwoJCWlmIFsgeCRmZWF0dXJlX3Bs
YXRmb3JtX3NlYXJjaF9oaW50ID0geHkgXTsgdGhlbgoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0t
ZnMtdXVpZCAtLXNldD1yb290IC0taGludC1iaW9zPWhkMCxtc2RvczEgLS1oaW50LWVmaT1oZDAs
bXNkb3MxIC0taGludC1iYXJlbWV0YWw9YWhjaTAsbXNkb3MxICBmMGQ0MjQ0My04ZTkzLTQ0NzAt
YTA1Mi03MDQ0ZDczYmVjZWIKCQllbHNlCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlk
IC0tc2V0PXJvb3QgZjBkNDI0NDMtOGU5My00NDcwLWEwNTItNzA0NGQ3M2JlY2ViCgkJZmkKCQll
Y2hvCSfQl9Cw0LPRgNGD0LbQsNC10YLRgdGPIExpbnV4IDQuMTUuMC00My1nZW5lcmljIOKApicK
CSAgICAgICAgbGludXgJL2Jvb3Qvdm1saW51ei00LjE1LjAtNDMtZ2VuZXJpYyByb290PVVVSUQ9
ZjBkNDI0NDMtOGU5My00NDcwLWEwNTItNzA0NGQ3M2JlY2ViIHJvICBxdWlldCBzcGxhc2ggJHZ0
X2hhbmRvZmYKCQllY2hvCSfQl9Cw0LPRgNGD0LbQsNC10YLRgdGPINC90LDRh9Cw0LvRjNC90YvQ
uSDQstC40YDRgtGD0LDQu9GM0L3Ri9C5INC00LjRgdC6IOKApicKCQlpbml0cmQJL2Jvb3QvaW5p
dHJkLmltZy00LjE1LjAtNDMtZ2VuZXJpYwoJfQoJbWVudWVudHJ5ICdVYnVudHUsINGBIExpbnV4
IDQuMTUuMC00My1nZW5lcmljIChyZWNvdmVyeSBtb2RlKScgLS1jbGFzcyB1YnVudHUgLS1jbGFz
cyBnbnUtbGludXggLS1jbGFzcyBnbnUgLS1jbGFzcyBvcyAkbWVudWVudHJ5X2lkX29wdGlvbiAn
Z251bGludXgtNC4xNS4wLTQzLWdlbmVyaWMtcmVjb3ZlcnktZjBkNDI0NDMtOGU5My00NDcwLWEw
NTItNzA0NGQ3M2JlY2ViJyB7CgkJcmVjb3JkZmFpbAoJCWxvYWRfdmlkZW8KCQlpbnNtb2QgZ3pp
bwoJCWlmIFsgeCRncnViX3BsYXRmb3JtID0geHhlbiBdOyB0aGVuIGluc21vZCB4emlvOyBpbnNt
b2QgbHpvcGlvOyBmaQoJCWluc21vZCBwYXJ0X21zZG9zCgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9v
dD0naGQwLG1zZG9zMScKCQlpZiBbIHgkZmVhdHVyZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5
IF07IHRoZW4KCQkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhp
bnQtYmlvcz1oZDAsbXNkb3MxIC0taGludC1lZmk9aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFs
PWFoY2kwLG1zZG9zMSAgZjBkNDI0NDMtOGU5My00NDcwLWEwNTItNzA0NGQ3M2JlY2ViCgkJZWxz
ZQoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290IGYwZDQyNDQzLThl
OTMtNDQ3MC1hMDUyLTcwNDRkNzNiZWNlYgoJCWZpCgkJZWNobwkn0JfQsNCz0YDRg9C20LDQtdGC
0YHRjyBMaW51eCA0LjE1LjAtNDMtZ2VuZXJpYyDigKYnCgkgICAgICAgIGxpbnV4CS9ib290L3Zt
bGludXotNC4xNS4wLTQzLWdlbmVyaWMgcm9vdD1VVUlEPWYwZDQyNDQzLThlOTMtNDQ3MC1hMDUy
LTcwNDRkNzNiZWNlYiBybyByZWNvdmVyeSBub21vZGVzZXQgCgkJZWNobwkn0JfQsNCz0YDRg9C2
0LDQtdGC0YHRjyDQvdCw0YfQsNC70YzQvdGL0Lkg0LLQuNGA0YLRg9Cw0LvRjNC90YvQuSDQtNC4
0YHQuiDigKYnCgkJaW5pdHJkCS9ib290L2luaXRyZC5pbWctNC4xNS4wLTQzLWdlbmVyaWMKCX0K
fQoKIyMjIEVORCAvZXRjL2dydWIuZC8xMF9saW51eCAjIyMKCiMjIyBCRUdJTiAvZXRjL2dydWIu
ZC8yMF9saW51eF94ZW4gIyMjCgojIyMgRU5EIC9ldGMvZ3J1Yi5kLzIwX2xpbnV4X3hlbiAjIyMK
CiMjIyBCRUdJTiAvZXRjL2dydWIuZC8yMF9tZW10ZXN0ODYrICMjIwptZW51ZW50cnkgJ01lbW9y
eSB0ZXN0IChtZW10ZXN0ODYrKScgewoJaW5zbW9kIHBhcnRfbXNkb3MKCWluc21vZCBleHQyCglz
ZXQgcm9vdD0naGQwLG1zZG9zMScKCWlmIFsgeCRmZWF0dXJlX3BsYXRmb3JtX3NlYXJjaF9oaW50
ID0geHkgXTsgdGhlbgoJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3Qg
LS1oaW50LWJpb3M9aGQwLG1zZG9zMSAtLWhpbnQtZWZpPWhkMCxtc2RvczEgLS1oaW50LWJhcmVt
ZXRhbD1haGNpMCxtc2RvczEgIGYwZDQyNDQzLThlOTMtNDQ3MC1hMDUyLTcwNDRkNzNiZWNlYgoJ
ZWxzZQoJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgZjBkNDI0NDMt
OGU5My00NDcwLWEwNTItNzA0NGQ3M2JlY2ViCglmaQoJa25ldGJzZAkvYm9vdC9tZW10ZXN0ODYr
LmVsZgp9Cm1lbnVlbnRyeSAnTWVtb3J5IHRlc3QgKG1lbXRlc3Q4NissIHNlcmlhbCBjb25zb2xl
IDExNTIwMCknIHsKCWluc21vZCBwYXJ0X21zZG9zCglpbnNtb2QgZXh0MgoJc2V0IHJvb3Q9J2hk
MCxtc2RvczEnCglpZiBbIHgkZmVhdHVyZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRo
ZW4KCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290IC0taGludC1iaW9z
PWhkMCxtc2RvczEgLS1oaW50LWVmaT1oZDAsbXNkb3MxIC0taGludC1iYXJlbWV0YWw9YWhjaTAs
bXNkb3MxICBmMGQ0MjQ0My04ZTkzLTQ0NzAtYTA1Mi03MDQ0ZDczYmVjZWIKCWVsc2UKCSAgc2Vh
cmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290IGYwZDQyNDQzLThlOTMtNDQ3MC1h
MDUyLTcwNDRkNzNiZWNlYgoJZmkKCWxpbnV4MTYJL2Jvb3QvbWVtdGVzdDg2Ky5iaW4gY29uc29s
ZT10dHlTMCwxMTUyMDBuOAp9CiMjIyBFTkQgL2V0Yy9ncnViLmQvMjBfbWVtdGVzdDg2KyAjIyMK
CiMjIyBCRUdJTiAvZXRjL2dydWIuZC8zMF9vcy1wcm9iZXIgIyMjCm1lbnVlbnRyeSAnVWJ1bnR1
IEJpb25pYyBCZWF2ZXIgKGRldmVsb3BtZW50IGJyYW5jaCkgKDE4LjA0KSAo0L3QsCAvZGV2L3Nk
YjYpJyAtLWNsYXNzIHVidW50dSAtLWNsYXNzIGdudS1saW51eCAtLWNsYXNzIGdudSAtLWNsYXNz
IG9zICRtZW51ZW50cnlfaWRfb3B0aW9uICdvc3Byb2Jlci1nbnVsaW51eC1zaW1wbGUtODQzYzkz
MTgtNGQyMC00OWJlLTgzY2YtYzA5YTZlNDkyNmM1JyB7CglpbnNtb2QgcGFydF9tc2RvcwoJaW5z
bW9kIGV4dDIKCXNldCByb290PSdoZDEsbXNkb3M2JwoJaWYgWyB4JGZlYXR1cmVfcGxhdGZvcm1f
c2VhcmNoX2hpbnQgPSB4eSBdOyB0aGVuCgkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQg
LS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDEsbXNkb3M2IC0taGludC1lZmk9aGQxLG1zZG9zNiAt
LWhpbnQtYmFyZW1ldGFsPWFoY2kxLG1zZG9zNiAgODQzYzkzMTgtNGQyMC00OWJlLTgzY2YtYzA5
YTZlNDkyNmM1CgllbHNlCgkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9v
dCA4NDNjOTMxOC00ZDIwLTQ5YmUtODNjZi1jMDlhNmU0OTI2YzUKCWZpCglsaW51eCAvYm9vdC92
bWxpbnV6LTQuMTMuMC0yNS1nZW5lcmljIHJvb3Q9VVVJRD04NDNjOTMxOC00ZDIwLTQ5YmUtODNj
Zi1jMDlhNmU0OTI2YzUgcm8gcXVpZXQgc3BsYXNoICR2dF9oYW5kb2ZmCglpbml0cmQgL2Jvb3Qv
aW5pdHJkLmltZy00LjEzLjAtMjUtZ2VuZXJpYwp9CnN1Ym1lbnUgJ9CU0L7Qv9C+0LvQvdC40YLQ
tdC70YzQvdGL0LUg0L/QsNGA0LDQvNC10YLRgNGLINC00LvRjyBVYnVudHUgQmlvbmljIEJlYXZl
ciAoZGV2ZWxvcG1lbnQgYnJhbmNoKSAoMTguMDQpICjQvdCwIC9kZXYvc2RiNiknICRtZW51ZW50
cnlfaWRfb3B0aW9uICdvc3Byb2Jlci1nbnVsaW51eC1hZHZhbmNlZC04NDNjOTMxOC00ZDIwLTQ5
YmUtODNjZi1jMDlhNmU0OTI2YzUnIHsKCW1lbnVlbnRyeSAnVWJ1bnR1ICjQvdCwIC9kZXYvc2Ri
NiknIC0tY2xhc3MgZ251LWxpbnV4IC0tY2xhc3MgZ251IC0tY2xhc3Mgb3MgJG1lbnVlbnRyeV9p
ZF9vcHRpb24gJ29zcHJvYmVyLWdudWxpbnV4LS9ib290L3ZtbGludXotNC4xMy4wLTI1LWdlbmVy
aWMtLTg0M2M5MzE4LTRkMjAtNDliZS04M2NmLWMwOWE2ZTQ5MjZjNScgewoJCWluc21vZCBwYXJ0
X21zZG9zCgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9vdD0naGQxLG1zZG9zNicKCQlpZiBbIHgkZmVh
dHVyZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4KCQkgIHNlYXJjaCAtLW5vLWZs
b3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDEsbXNkb3M2IC0taGludC1l
Zmk9aGQxLG1zZG9zNiAtLWhpbnQtYmFyZW1ldGFsPWFoY2kxLG1zZG9zNiAgODQzYzkzMTgtNGQy
MC00OWJlLTgzY2YtYzA5YTZlNDkyNmM1CgkJZWxzZQoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0t
ZnMtdXVpZCAtLXNldD1yb290IDg0M2M5MzE4LTRkMjAtNDliZS04M2NmLWMwOWE2ZTQ5MjZjNQoJ
CWZpCgkJbGludXggL2Jvb3Qvdm1saW51ei00LjEzLjAtMjUtZ2VuZXJpYyByb290PVVVSUQ9ODQz
YzkzMTgtNGQyMC00OWJlLTgzY2YtYzA5YTZlNDkyNmM1IHJvIHF1aWV0IHNwbGFzaCAkdnRfaGFu
ZG9mZgoJCWluaXRyZCAvYm9vdC9pbml0cmQuaW1nLTQuMTMuMC0yNS1nZW5lcmljCgl9CgltZW51
ZW50cnkgJ1VidW50dSwg0YEgTGludXggNC4xMy4wLTI1LWdlbmVyaWMgKNC90LAgL2Rldi9zZGI2
KScgLS1jbGFzcyBnbnUtbGludXggLS1jbGFzcyBnbnUgLS1jbGFzcyBvcyAkbWVudWVudHJ5X2lk
X29wdGlvbiAnb3Nwcm9iZXItZ251bGludXgtL2Jvb3Qvdm1saW51ei00LjEzLjAtMjUtZ2VuZXJp
Yy0tODQzYzkzMTgtNGQyMC00OWJlLTgzY2YtYzA5YTZlNDkyNmM1JyB7CgkJaW5zbW9kIHBhcnRf
bXNkb3MKCQlpbnNtb2QgZXh0MgoJCXNldCByb290PSdoZDEsbXNkb3M2JwoJCWlmIFsgeCRmZWF0
dXJlX3BsYXRmb3JtX3NlYXJjaF9oaW50ID0geHkgXTsgdGhlbgoJCSAgc2VhcmNoIC0tbm8tZmxv
cHB5IC0tZnMtdXVpZCAtLXNldD1yb290IC0taGludC1iaW9zPWhkMSxtc2RvczYgLS1oaW50LWVm
aT1oZDEsbXNkb3M2IC0taGludC1iYXJlbWV0YWw9YWhjaTEsbXNkb3M2ICA4NDNjOTMxOC00ZDIw
LTQ5YmUtODNjZi1jMDlhNmU0OTI2YzUKCQllbHNlCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1m
cy11dWlkIC0tc2V0PXJvb3QgODQzYzkzMTgtNGQyMC00OWJlLTgzY2YtYzA5YTZlNDkyNmM1CgkJ
ZmkKCQlsaW51eCAvYm9vdC92bWxpbnV6LTQuMTMuMC0yNS1nZW5lcmljIHJvb3Q9VVVJRD04NDNj
OTMxOC00ZDIwLTQ5YmUtODNjZi1jMDlhNmU0OTI2YzUgcm8gcXVpZXQgc3BsYXNoICR2dF9oYW5k
b2ZmCgkJaW5pdHJkIC9ib290L2luaXRyZC5pbWctNC4xMy4wLTI1LWdlbmVyaWMKCX0KCW1lbnVl
bnRyeSAnVWJ1bnR1LCDRgSBMaW51eCA0LjEzLjAtMjUtZ2VuZXJpYyAodXBzdGFydCkgKNC90LAg
L2Rldi9zZGI2KScgLS1jbGFzcyBnbnUtbGludXggLS1jbGFzcyBnbnUgLS1jbGFzcyBvcyAkbWVu
dWVudHJ5X2lkX29wdGlvbiAnb3Nwcm9iZXItZ251bGludXgtL2Jvb3Qvdm1saW51ei00LjEzLjAt
MjUtZ2VuZXJpYy0tODQzYzkzMTgtNGQyMC00OWJlLTgzY2YtYzA5YTZlNDkyNmM1JyB7CgkJaW5z
bW9kIHBhcnRfbXNkb3MKCQlpbnNtb2QgZXh0MgoJCXNldCByb290PSdoZDEsbXNkb3M2JwoJCWlm
IFsgeCRmZWF0dXJlX3BsYXRmb3JtX3NlYXJjaF9oaW50ID0geHkgXTsgdGhlbgoJCSAgc2VhcmNo
IC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290IC0taGludC1iaW9zPWhkMSxtc2RvczYg
LS1oaW50LWVmaT1oZDEsbXNkb3M2IC0taGludC1iYXJlbWV0YWw9YWhjaTEsbXNkb3M2ICA4NDNj
OTMxOC00ZDIwLTQ5YmUtODNjZi1jMDlhNmU0OTI2YzUKCQllbHNlCgkJICBzZWFyY2ggLS1uby1m
bG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgODQzYzkzMTgtNGQyMC00OWJlLTgzY2YtYzA5YTZl
NDkyNmM1CgkJZmkKCQlsaW51eCAvYm9vdC92bWxpbnV6LTQuMTMuMC0yNS1nZW5lcmljIHJvb3Q9
VVVJRD04NDNjOTMxOC00ZDIwLTQ5YmUtODNjZi1jMDlhNmU0OTI2YzUgcm8gcXVpZXQgc3BsYXNo
ICR2dF9oYW5kb2ZmIGluaXQ9L3NiaW4vdXBzdGFydAoJCWluaXRyZCAvYm9vdC9pbml0cmQuaW1n
LTQuMTMuMC0yNS1nZW5lcmljCgl9CgltZW51ZW50cnkgJ1VidW50dSwg0YEgTGludXggNC4xMy4w
LTI1LWdlbmVyaWMgKHJlY292ZXJ5IG1vZGUpICjQvdCwIC9kZXYvc2RiNiknIC0tY2xhc3MgZ251
LWxpbnV4IC0tY2xhc3MgZ251IC0tY2xhc3Mgb3MgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ29zcHJv
YmVyLWdudWxpbnV4LS9ib290L3ZtbGludXotNC4xMy4wLTI1LWdlbmVyaWMtcm9vdD1VVUlEPTg0
M2M5MzE4LTRkMjAtNDliZS04M2NmLWMwOWE2ZTQ5MjZjNSBybyByZWNvdmVyeSBub21vZGVzZXQt
ODQzYzkzMTgtNGQyMC00OWJlLTgzY2YtYzA5YTZlNDkyNmM1JyB7CgkJaW5zbW9kIHBhcnRfbXNk
b3MKCQlpbnNtb2QgZXh0MgoJCXNldCByb290PSdoZDEsbXNkb3M2JwoJCWlmIFsgeCRmZWF0dXJl
X3BsYXRmb3JtX3NlYXJjaF9oaW50ID0geHkgXTsgdGhlbgoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5
IC0tZnMtdXVpZCAtLXNldD1yb290IC0taGludC1iaW9zPWhkMSxtc2RvczYgLS1oaW50LWVmaT1o
ZDEsbXNkb3M2IC0taGludC1iYXJlbWV0YWw9YWhjaTEsbXNkb3M2ICA4NDNjOTMxOC00ZDIwLTQ5
YmUtODNjZi1jMDlhNmU0OTI2YzUKCQllbHNlCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11
dWlkIC0tc2V0PXJvb3QgODQzYzkzMTgtNGQyMC00OWJlLTgzY2YtYzA5YTZlNDkyNmM1CgkJZmkK
CQlsaW51eCAvYm9vdC92bWxpbnV6LTQuMTMuMC0yNS1nZW5lcmljIHJvb3Q9VVVJRD04NDNjOTMx
OC00ZDIwLTQ5YmUtODNjZi1jMDlhNmU0OTI2YzUgcm8gcmVjb3Zlcnkgbm9tb2Rlc2V0CgkJaW5p
dHJkIC9ib290L2luaXRyZC5pbWctNC4xMy4wLTI1LWdlbmVyaWMKCX0KCW1lbnVlbnRyeSAnVWJ1
bnR1LCDRgSBMaW51eCA0LjQuMC0xMDktZ2VuZXJpYyAo0L3QsCAvZGV2L3NkYjYpJyAtLWNsYXNz
IGdudS1saW51eCAtLWNsYXNzIGdudSAtLWNsYXNzIG9zICRtZW51ZW50cnlfaWRfb3B0aW9uICdv
c3Byb2Jlci1nbnVsaW51eC0vYm9vdC92bWxpbnV6LTQuNC4wLTEwOS1nZW5lcmljLS04NDNjOTMx
OC00ZDIwLTQ5YmUtODNjZi1jMDlhNmU0OTI2YzUnIHsKCQlpbnNtb2QgcGFydF9tc2RvcwoJCWlu
c21vZCBleHQyCgkJc2V0IHJvb3Q9J2hkMSxtc2RvczYnCgkJaWYgWyB4JGZlYXR1cmVfcGxhdGZv
cm1fc2VhcmNoX2hpbnQgPSB4eSBdOyB0aGVuCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11
dWlkIC0tc2V0PXJvb3QgLS1oaW50LWJpb3M9aGQxLG1zZG9zNiAtLWhpbnQtZWZpPWhkMSxtc2Rv
czYgLS1oaW50LWJhcmVtZXRhbD1haGNpMSxtc2RvczYgIDg0M2M5MzE4LTRkMjAtNDliZS04M2Nm
LWMwOWE2ZTQ5MjZjNQoJCWVsc2UKCQkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1z
ZXQ9cm9vdCA4NDNjOTMxOC00ZDIwLTQ5YmUtODNjZi1jMDlhNmU0OTI2YzUKCQlmaQoJCWxpbnV4
IC9ib290L3ZtbGludXotNC40LjAtMTA5LWdlbmVyaWMgcm9vdD1VVUlEPTg0M2M5MzE4LTRkMjAt
NDliZS04M2NmLWMwOWE2ZTQ5MjZjNSBybyBxdWlldCBzcGxhc2ggJHZ0X2hhbmRvZmYKCQlpbml0
cmQgL2Jvb3QvaW5pdHJkLmltZy00LjQuMC0xMDktZ2VuZXJpYwoJfQoJbWVudWVudHJ5ICdVYnVu
dHUsINGBIExpbnV4IDQuNC4wLTEwOS1nZW5lcmljICh1cHN0YXJ0KSAo0L3QsCAvZGV2L3NkYjYp
JyAtLWNsYXNzIGdudS1saW51eCAtLWNsYXNzIGdudSAtLWNsYXNzIG9zICRtZW51ZW50cnlfaWRf
b3B0aW9uICdvc3Byb2Jlci1nbnVsaW51eC0vYm9vdC92bWxpbnV6LTQuNC4wLTEwOS1nZW5lcmlj
LS04NDNjOTMxOC00ZDIwLTQ5YmUtODNjZi1jMDlhNmU0OTI2YzUnIHsKCQlpbnNtb2QgcGFydF9t
c2RvcwoJCWluc21vZCBleHQyCgkJc2V0IHJvb3Q9J2hkMSxtc2RvczYnCgkJaWYgWyB4JGZlYXR1
cmVfcGxhdGZvcm1fc2VhcmNoX2hpbnQgPSB4eSBdOyB0aGVuCgkJICBzZWFyY2ggLS1uby1mbG9w
cHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgLS1oaW50LWJpb3M9aGQxLG1zZG9zNiAtLWhpbnQtZWZp
PWhkMSxtc2RvczYgLS1oaW50LWJhcmVtZXRhbD1haGNpMSxtc2RvczYgIDg0M2M5MzE4LTRkMjAt
NDliZS04M2NmLWMwOWE2ZTQ5MjZjNQoJCWVsc2UKCQkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZz
LXV1aWQgLS1zZXQ9cm9vdCA4NDNjOTMxOC00ZDIwLTQ5YmUtODNjZi1jMDlhNmU0OTI2YzUKCQlm
aQoJCWxpbnV4IC9ib290L3ZtbGludXotNC40LjAtMTA5LWdlbmVyaWMgcm9vdD1VVUlEPTg0M2M5
MzE4LTRkMjAtNDliZS04M2NmLWMwOWE2ZTQ5MjZjNSBybyBxdWlldCBzcGxhc2ggJHZ0X2hhbmRv
ZmYgaW5pdD0vc2Jpbi91cHN0YXJ0CgkJaW5pdHJkIC9ib290L2luaXRyZC5pbWctNC40LjAtMTA5
LWdlbmVyaWMKCX0KCW1lbnVlbnRyeSAnVWJ1bnR1LCDRgSBMaW51eCA0LjQuMC0xMDktZ2VuZXJp
YyAocmVjb3ZlcnkgbW9kZSkgKNC90LAgL2Rldi9zZGI2KScgLS1jbGFzcyBnbnUtbGludXggLS1j
bGFzcyBnbnUgLS1jbGFzcyBvcyAkbWVudWVudHJ5X2lkX29wdGlvbiAnb3Nwcm9iZXItZ251bGlu
dXgtL2Jvb3Qvdm1saW51ei00LjQuMC0xMDktZ2VuZXJpYy1yb290PVVVSUQ9ODQzYzkzMTgtNGQy
MC00OWJlLTgzY2YtYzA5YTZlNDkyNmM1IHJvIHJlY292ZXJ5IG5vbW9kZXNldC04NDNjOTMxOC00
ZDIwLTQ5YmUtODNjZi1jMDlhNmU0OTI2YzUnIHsKCQlpbnNtb2QgcGFydF9tc2RvcwoJCWluc21v
ZCBleHQyCgkJc2V0IHJvb3Q9J2hkMSxtc2RvczYnCgkJaWYgWyB4JGZlYXR1cmVfcGxhdGZvcm1f
c2VhcmNoX2hpbnQgPSB4eSBdOyB0aGVuCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlk
IC0tc2V0PXJvb3QgLS1oaW50LWJpb3M9aGQxLG1zZG9zNiAtLWhpbnQtZWZpPWhkMSxtc2RvczYg
LS1oaW50LWJhcmVtZXRhbD1haGNpMSxtc2RvczYgIDg0M2M5MzE4LTRkMjAtNDliZS04M2NmLWMw
OWE2ZTQ5MjZjNQoJCWVsc2UKCQkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9
cm9vdCA4NDNjOTMxOC00ZDIwLTQ5YmUtODNjZi1jMDlhNmU0OTI2YzUKCQlmaQoJCWxpbnV4IC9i
b290L3ZtbGludXotNC40LjAtMTA5LWdlbmVyaWMgcm9vdD1VVUlEPTg0M2M5MzE4LTRkMjAtNDli
ZS04M2NmLWMwOWE2ZTQ5MjZjNSBybyByZWNvdmVyeSBub21vZGVzZXQKCQlpbml0cmQgL2Jvb3Qv
aW5pdHJkLmltZy00LjQuMC0xMDktZ2VuZXJpYwoJfQp9CgpzZXQgdGltZW91dF9zdHlsZT1tZW51
CmlmIFsgIiR7dGltZW91dH0iID0gMCBdOyB0aGVuCiAgc2V0IHRpbWVvdXQ9MTAKZmkKIyMjIEVO
RCAvZXRjL2dydWIuZC8zMF9vcy1wcm9iZXIgIyMjCgojIyMgQkVHSU4gL2V0Yy9ncnViLmQvMzBf
dWVmaS1maXJtd2FyZSAjIyMKIyMjIEVORCAvZXRjL2dydWIuZC8zMF91ZWZpLWZpcm13YXJlICMj
IwoKIyMjIEJFR0lOIC9ldGMvZ3J1Yi5kLzQwX2N1c3RvbSAjIyMKIyBUaGlzIGZpbGUgcHJvdmlk
ZXMgYW4gZWFzeSB3YXkgdG8gYWRkIGN1c3RvbSBtZW51IGVudHJpZXMuICBTaW1wbHkgdHlwZSB0
aGUKIyBtZW51IGVudHJpZXMgeW91IHdhbnQgdG8gYWRkIGFmdGVyIHRoaXMgY29tbWVudC4gIEJl
IGNhcmVmdWwgbm90IHRvIGNoYW5nZQojIHRoZSAnZXhlYyB0YWlsJyBsaW5lIGFib3ZlLgojIyMg
RU5EIC9ldGMvZ3J1Yi5kLzQwX2N1c3RvbSAjIyMKCiMjIyBCRUdJTiAvZXRjL2dydWIuZC80MV9j
dXN0b20gIyMjCmlmIFsgLWYgICR7Y29uZmlnX2RpcmVjdG9yeX0vY3VzdG9tLmNmZyBdOyB0aGVu
CiAgc291cmNlICR7Y29uZmlnX2RpcmVjdG9yeX0vY3VzdG9tLmNmZwplbGlmIFsgLXogIiR7Y29u
ZmlnX2RpcmVjdG9yeX0iIC1hIC1mICAkcHJlZml4L2N1c3RvbS5jZmcgXTsgdGhlbgogIHNvdXJj
ZSAkcHJlZml4L2N1c3RvbS5jZmc7CmZpCiMjIyBFTkQgL2V0Yy9ncnViLmQvNDFfY3VzdG9tICMj
Iwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7996</attachid>
            <date>2019-02-07 04:43:33 +0300</date>
            <delta_ts>2019-02-07 04:43:33 +0300</delta_ts>
            <desc>Скрипт во втором приближении</desc>
            <filename>grub-entries.sh</filename>
            <type>text/plain</type>
            <size>1001</size>
            <attacher name="Leonid Krivoshein">klark.devel</attacher>
            
              <data encoding="base64">IyEvYmluL3NoIC1lZnUKIyMjIFRoaXMgZmlsZSBpcyBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQojIyMgdmVyc2lvbiAyIG9yIGxhdGVyLgojIyMKIyMjIENvcHlyaWdo
dCAoQykgMjAxOSAgQUxUIExpbnV4IFRlYW0KIyMjIEF1dGhvcjogTGVvbmlkIEtyaXZvc2hlaW4g
PGtsYXJrQGFsdGxpbnV4Lm9yZz4KCnByZWZpeD0iX19fdnhaWlp5Mjc1X19fIgpncnVibWVudT0i
JChta3RlbXAgLXEgIiR7VE1QRElSLS90bXB9L2dydWJtZW51LVhYWFhYWFhYLnRtcCIpIgoKY2F0
ICIkMSIgfCBzZWQgXAoJLXJlICJzL15bWzpzcGFjZTpdXSptZW51ZW50cnlbWzpzcGFjZTpdXSsn
KFteJ10rKScuKlwkLyR7cHJlZml4fU06CVwxL2ciIFwKCS1yZSAicy9eW1s6c3BhY2U6XV0qc3Vi
bWVudVtbOnNwYWNlOl1dKycoW14nXSspJy4qXCQvJHtwcmVmaXh9UzoJXDEvZyIgXAoJLXJlICJz
L15bWzpzcGFjZTpdXSp9W1s6c3BhY2U6XV0qXCQvJHtwcmVmaXh9RToJLS9nIiBcCgktcmUgJy9e
JyR7cHJlZml4fSdbTVNFXTovIWQnIFwKCS1yZSAicy9eJHtwcmVmaXh9TTovTS9nIiBcCgktcmUg
InMvXiR7cHJlZml4fVM6L1MvZyIgXAoJLXJlICJzL14ke3ByZWZpeH1FOi9FL2ciID4gIiRncnVi
bWVudSIKCnByZWZpeD0KZW50cnk9MAp3aGlsZSByZWFkIG1vZGUgdGl0bGUKZG8KCWNhc2UgIiRt
b2RlIiBpbgoJTSkJZWNobyAiJHtwcmVmaXh9JHt0aXRsZX0iCgkJZW50cnk9MQoJCTs7CglTKQlw
cmVmaXg9IiR7cHJlZml4fSR7dGl0bGV9PiIKCQk7OwoJKikJaWYgWyAkZW50cnkgLW5lIDAgXTsg
dGhlbgoJCQllbnRyeT0wCgkJZWxpZiBbIC1uICIkcHJlZml4IiBdOyB0aGVuCgkJCXByZWZpeD0i
JHtwcmVmaXglPn0iCgkJCWNhc2UgIiRwcmVmaXgiIGluCgkJCSoiPiIqKQlwcmVmaXg9IiR7cHJl
Zml4JT4qfSI7OwoJCQkqKQlwcmVmaXg9OzsKCQkJZXNhYwoJCWZpCgkJOzsKCWVzYWMKZG9uZSA8
ICIkZ3J1Ym1lbnUiCnJtIC1mICIkZ3J1Ym1lbnUiCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7998</attachid>
            <date>2019-02-07 13:55:35 +0300</date>
            <delta_ts>2019-02-07 13:55:35 +0300</delta_ts>
            <desc>Скрипт в третьем приближении</desc>
            <filename>grub-entries.sh</filename>
            <type>text/plain</type>
            <size>1143</size>
            <attacher name="Leonid Krivoshein">klark.devel</attacher>
            
              <data encoding="base64">IyEvYmluL3NoIC1lZnUKIyMjIFRoaXMgZmlsZSBpcyBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQojIyMgdmVyc2lvbiAyIG9yIGxhdGVyLgojIyMKIyMjIENvcHlyaWdo
dCAoQykgMjAxOSAgQUxUIExpbnV4IFRlYW0KIyMjIEF1dGhvcjogTGVvbmlkIEtyaXZvc2hlaW4g
PGtsYXJrQGFsdGxpbnV4Lm9yZz4KCmdydWJtZW51PSIkKG1rdGVtcCAtcSAiJHtUTVBESVItL3Rt
cH0vZ3J1Ym1lbnUtWFhYWFhYWFgudG1wIikiCgpzZWQgXAoJLXJlICcvXlxzKihtZW51ZW50cnlc
cyt8c3VibWVudVxzK3x9KS8hZCcgICAgIFwKCS1yZSAicy9eXHMqbWVudWVudHJ5XHMrJyhbXidd
KyknLipcJC9NCVwxL2ciIFwKCS1yZSAicy9eXHMqc3VibWVudVxzKycoW14nXSspJy4qXCQvUwlc
MS9nIiBcCgktcmUgInMvXlxzKn1ccypcJC9FCS0vZyIgPiAiJGdydWJtZW51IgoKIyBEZWJ1Zwoj
Y2F0ICIkZ3J1Ym1lbnUiCiNybSAtZiAiJGdydWJtZW51IgojZXhpdAoKbnVtYmVyPQpwcmVmaXg9
CmVudHJ5PTAKaXRlbW5vPTAKd2hpbGUgcmVhZCBtb2RlIHRpdGxlCmRvCgljYXNlICIkbW9kZSIg
aW4KCU0pCWVjaG8gIiR7bnVtYmVyfSR7aXRlbW5vfQkke3ByZWZpeH0ke3RpdGxlfSIKCQlpdGVt
bm89JCgoJGl0ZW1ubyArIDEpKQoJCWVudHJ5PTEKCQk7OwoJUykJbnVtYmVyPSIke251bWJlcn0k
e2l0ZW1ub30+IgoJCXByZWZpeD0iJHtwcmVmaXh9JHt0aXRsZX0+IgoJCWl0ZW1ubz0wCgkJOzsK
CSopCWlmIFsgJGVudHJ5IC1uZSAwIF07IHRoZW4KCQkJZW50cnk9MAoJCWVsaWYgWyAtbiAiJG51
bWJlciIgXTsgdGhlbgoJCQludW1iZXI9IiR7bnVtYmVyJT59IgoJCQlwcmVmaXg9IiR7cHJlZml4
JT59IgoJCQljYXNlICIkbnVtYmVyIiBpbgoJCQkqIj4iKikJaXRlbW5vPSIke251bWJlciMjKj59
IgoJCQkJbnVtYmVyPSIke251bWJlciU+Kn0iCgkJCQlwcmVmaXg9IiR7cHJlZml4JT4qfSIKCQkJ
CWl0ZW1ubz0kKCgkaXRlbW5vICsgMSkpCgkJCQk7OwoJCQkqKQlpdGVtbm89JG51bWJlcgoJCQkJ
aXRlbW5vPSQoKCRpdGVtbm8gKyAxKSkKCQkJCXByZWZpeD0KCQkJCW51bWJlcj0KCQkJCTs7CgkJ
CWVzYWMKCQlmaQoJCTs7Cgllc2FjCmRvbmUgPCAiJGdydWJtZW51IgpybSAtZiAiJGdydWJtZW51
IgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7999</attachid>
            <date>2019-02-07 14:40:38 +0300</date>
            <delta_ts>2019-02-08 09:20:51 +0300</delta_ts>
            <desc>пример grub.cfg, ALT p8, с memtest</desc>
            <filename>grub.cfg</filename>
            <type>application/octet-stream</type>
            <size>9138</size>
            <attacher name="Sergey Y. Afonin">asy</attacher>
            
              <data encoding="base64">IwojIERPIE5PVCBFRElUIFRISVMgRklMRQojCiMgSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0
ZWQgYnkgZ3J1Yi1ta2NvbmZpZyB1c2luZyB0ZW1wbGF0ZXMKIyBmcm9tIC9ldGMvZ3J1Yi5kIGFu
ZCBzZXR0aW5ncyBmcm9tIC9ldGMvc3lzY29uZmlnL2dydWIyCiMKCiMjIyBCRUdJTiAvZXRjL2dy
dWIuZC8wMF9oZWFkZXIgIyMjCmlmIFsgLXMgJHByZWZpeC9ncnViZW52IF07IHRoZW4KICBsb2Fk
X2VudgpmaQppZiBbICIke25leHRfZW50cnl9IiBdIDsgdGhlbgogICBzZXQgZGVmYXVsdD0iJHtu
ZXh0X2VudHJ5fSIKICAgc2V0IG5leHRfZW50cnk9CiAgIHNhdmVfZW52IG5leHRfZW50cnkKICAg
c2V0IGJvb3Rfb25jZT10cnVlCmVsc2UKICAgc2V0IGRlZmF1bHQ9IiR7c2F2ZWRfZW50cnl9Igpm
aQoKaWYgWyB4IiR7ZmVhdHVyZV9tZW51ZW50cnlfaWR9IiA9IHh5IF07IHRoZW4KICBtZW51ZW50
cnlfaWRfb3B0aW9uPSItLWlkIgplbHNlCiAgbWVudWVudHJ5X2lkX29wdGlvbj0iIgpmaQoKZXhw
b3J0IG1lbnVlbnRyeV9pZF9vcHRpb24KCmlmIFsgIiR7cHJldl9zYXZlZF9lbnRyeX0iIF07IHRo
ZW4KICBzZXQgc2F2ZWRfZW50cnk9IiR7cHJldl9zYXZlZF9lbnRyeX0iCiAgc2F2ZV9lbnYgc2F2
ZWRfZW50cnkKICBzZXQgcHJldl9zYXZlZF9lbnRyeT0KICBzYXZlX2VudiBwcmV2X3NhdmVkX2Vu
dHJ5CiAgc2V0IGJvb3Rfb25jZT10cnVlCmZpCgpmdW5jdGlvbiBzYXZlZGVmYXVsdCB7CiAgaWYg
WyAteiAiJHtib290X29uY2V9IiBdOyB0aGVuCiAgICBzYXZlZF9lbnRyeT0iJHtjaG9zZW59Igog
ICAgc2F2ZV9lbnYgc2F2ZWRfZW50cnkKICBmaQp9CgpmdW5jdGlvbiBsb2FkX3ZpZGVvIHsKICBp
ZiBbIHgkZmVhdHVyZV9hbGxfdmlkZW9fbW9kdWxlID0geHkgXTsgdGhlbgogICAgaW5zbW9kIGFs
bF92aWRlbwogIGVsc2UKICAgIGluc21vZCBlZmlfZ29wCiAgICBpbnNtb2QgZWZpX3VnYQogICAg
aW5zbW9kIGllZWUxMjc1X2ZiCiAgICBpbnNtb2QgdmJlCiAgICBpbnNtb2QgdmdhCiAgICBpbnNt
b2QgdmlkZW9fYm9jaHMKICAgIGluc21vZCB2aWRlb19jaXJydXMKICBmaQp9CgppZiBbIHgkZmVh
dHVyZV9kZWZhdWx0X2ZvbnRfcGF0aCA9IHh5IF0gOyB0aGVuCiAgIGZvbnQ9dW5pY29kZQplbHNl
Cmluc21vZCBwYXJ0X21zZG9zCmluc21vZCBleHQyCnNldCByb290PSdoZDAsbXNkb3MxJwppZiBb
IHgkZmVhdHVyZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4KICBzZWFyY2ggLS1u
by1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgLS1oaW50LWJpb3M9aGQwLG1zZG9zMSAtLWhp
bnQtZWZpPWhkMCxtc2RvczEgLS1oaW50LWJhcmVtZXRhbD1haGNpMCxtc2RvczEgIDk5MGZlMGRm
LWFkZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgplbHNlCiAgc2VhcmNoIC0tbm8tZmxvcHB5IC0t
ZnMtdXVpZCAtLXNldD1yb290IDk5MGZlMGRmLWFkZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgpm
aQogICAgZm9udD0iL2dydWIvdW5pZm9udC5wZjIiCmZpCgppZiBsb2FkZm9udCAkZm9udCA7IHRo
ZW4KICBzZXQgZ2Z4bW9kZT04MDB4NjAwCiAgbG9hZF92aWRlbwogIGluc21vZCBnZnh0ZXJtCiAg
c2V0IGxvY2FsZV9kaXI9JHByZWZpeC9sb2NhbGUKICBzZXQgbGFuZz1ydV9SVQogIGluc21vZCBn
ZXR0ZXh0CmZpCnRlcm1pbmFsX291dHB1dCBnZnh0ZXJtCmlmIFsgeCRmZWF0dXJlX3RpbWVvdXRf
c3R5bGUgPSB4eSBdIDsgdGhlbgogIHNldCB0aW1lb3V0X3N0eWxlPW1lbnUKICBzZXQgdGltZW91
dD01CiMgRmFsbGJhY2sgbm9ybWFsIHRpbWVvdXQgY29kZSBpbiBjYXNlIHRoZSB0aW1lb3V0X3N0
eWxlIGZlYXR1cmUgaXMKIyB1bmF2YWlsYWJsZS4KZWxzZQogIHNldCB0aW1lb3V0PTUKZmkKIyBp
bnRlcnJ1cHQgZ3J1YiBib290aW5nIHByb2Nlc3MgaWYgc2hpZnQga2V5IHByZXNzZWQKaWYga2V5
c3RhdHVzIC0tc2hpZnQ7dGhlbgogIHNldCB0aW1lb3V0PS0xCmZpCiMjIyBFTkQgL2V0Yy9ncnVi
LmQvMDBfaGVhZGVyICMjIwoKIyMjIEJFR0lOIC9ldGMvZ3J1Yi5kLzA1X2FsdGxpbnV4X3RoZW1l
ICMjIwpzZXQgbWVudV9jb2xvcl9ub3JtYWw9d2hpdGUvYmxhY2sKc2V0IG1lbnVfY29sb3JfaGln
aGxpZ2h0PWJsYWNrL2xpZ2h0LWdyYXkKIyMjIEVORCAvZXRjL2dydWIuZC8wNV9hbHRsaW51eF90
aGVtZSAjIyMKCiMjIyBCRUdJTiAvZXRjL2dydWIuZC8xMF9saW51eCAjIyMKbWVudWVudHJ5ICdB
TFQgcDggc3RhcnRlciBraXQnIC0tY2xhc3MgZ251LWxpbnV4IC0tY2xhc3MgZ251IC0tY2xhc3Mg
b3MgLS11bnJlc3RyaWN0ZWQgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ2dudWxpbnV4LXNpbXBsZS05
N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjMnIHsKCWxvYWRfdmlkZW8KCWluc21v
ZCBnemlvCglpbnNtb2QgcGFydF9tc2RvcwoJaW5zbW9kIGV4dDIKCXNldCByb290PSdoZDAsbXNk
b3MxJwoJaWYgWyB4JGZlYXR1cmVfcGxhdGZvcm1fc2VhcmNoX2hpbnQgPSB4eSBdOyB0aGVuCgkg
IHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDAs
bXNkb3MxIC0taGludC1lZmk9aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFsPWFoY2kwLG1zZG9z
MSAgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgllbHNlCgkgIHNlYXJjaCAt
LW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0w
OTllZDQwMzM5MzIKCWZpCgllY2hvCSdMb2FkaW5nIExpbnV4IHZtbGludXogLi4uJwoJbGludXgJ
L3ZtbGludXogcm9vdD1VVUlEPTk3ZGM1NWUwLTU2YjItNGYzMy1hZTVhLWEwYzlkMmM1ZGFmMyBy
byBwYW5pYz0zMCBzcGxhc2gKCWVjaG8JJ0xvYWRpbmcgaW5pdGlhbCByYW1kaXNrIC4uLicKCWlu
aXRyZAkvaW5pdHJkLmltZwp9CnN1Ym1lbnUgJ0FkdmFuY2VkIG9wdGlvbnMgZm9yIEFMVCBwOCBz
dGFydGVyIGtpdCcgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ2dudWxpbnV4LWFkdmFuY2VkLTk3ZGM1
NWUwLTU2YjItNGYzMy1hZTVhLWEwYzlkMmM1ZGFmMycgewoJbWVudWVudHJ5ICdBTFQgcDggc3Rh
cnRlciBraXQsIHZtbGludXonIC0tY2xhc3MgZ251LWxpbnV4IC0tY2xhc3MgZ251IC0tY2xhc3Mg
b3MgLS11bnJlc3RyaWN0ZWQgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ2dudWxpbnV4LXZtbGludXot
YWR2YW5jZWQtOTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzJyB7CgkJbG9hZF92
aWRlbwoJCWluc21vZCBnemlvCgkJaW5zbW9kIHBhcnRfbXNkb3MKCQlpbnNtb2QgZXh0MgoJCXNl
dCByb290PSdoZDAsbXNkb3MxJwoJCWlmIFsgeCRmZWF0dXJlX3BsYXRmb3JtX3NlYXJjaF9oaW50
ID0geHkgXTsgdGhlbgoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290
IC0taGludC1iaW9zPWhkMCxtc2RvczEgLS1oaW50LWVmaT1oZDAsbXNkb3MxIC0taGludC1iYXJl
bWV0YWw9YWhjaTAsbXNkb3MxICA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0wOTllZDQwMzM5MzIK
CQllbHNlCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgOTkwZmUw
ZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZmkKCQllY2hvCSdMb2FkaW5nIExpbnV4
IHZtbGludXogLi4uJwoJCWxpbnV4CS92bWxpbnV6IHJvb3Q9VVVJRD05N2RjNTVlMC01NmIyLTRm
MzMtYWU1YS1hMGM5ZDJjNWRhZjMgcm8gcGFuaWM9MzAgc3BsYXNoCgkJZWNobwknTG9hZGluZyBp
bml0aWFsIHJhbWRpc2sgLi4uJwoJCWluaXRyZAkvaW5pdHJkLmltZwoJfQoJbWVudWVudHJ5ICdB
TFQgcDggc3RhcnRlciBraXQsIHZtbGludXogKHJlY292ZXJ5IG1vZGUpJyAtLWNsYXNzIGdudS1s
aW51eCAtLWNsYXNzIGdudSAtLWNsYXNzIG9zIC0tdW5yZXN0cmljdGVkICRtZW51ZW50cnlfaWRf
b3B0aW9uICdnbnVsaW51eC12bWxpbnV6LXJlY292ZXJ5LTk3ZGM1NWUwLTU2YjItNGYzMy1hZTVh
LWEwYzlkMmM1ZGFmMycgewoJCWxvYWRfdmlkZW8KCQlpbnNtb2QgZ3ppbwoJCWluc21vZCBwYXJ0
X21zZG9zCgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9vdD0naGQwLG1zZG9zMScKCQlpZiBbIHgkZmVh
dHVyZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4KCQkgIHNlYXJjaCAtLW5vLWZs
b3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDAsbXNkb3MxIC0taGludC1l
Zmk9aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFsPWFoY2kwLG1zZG9zMSAgOTkwZmUwZGYtYWRl
NS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZWxzZQoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0t
ZnMtdXVpZCAtLXNldD1yb290IDk5MGZlMGRmLWFkZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgoJ
CWZpCgkJZWNobwknTG9hZGluZyBMaW51eCB2bWxpbnV6IC4uLicKCQlsaW51eAkvdm1saW51eiBy
b290PVVVSUQ9OTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzIHJvIGZhaWxzYWZl
IHZnYT1ub3JtYWwKCQllY2hvCSdMb2FkaW5nIGluaXRpYWwgcmFtZGlzayAuLi4nCgkJaW5pdHJk
CS9pbml0cmQuaW1nCgl9CgltZW51ZW50cnkgJ0FMVCBwOCBzdGFydGVyIGtpdCwgNC45LjE1NC1z
dGQtZGVmLWFsdDAuTTgwUC4xJyAtLWNsYXNzIGdudS1saW51eCAtLWNsYXNzIGdudSAtLWNsYXNz
IG9zIC0tdW5yZXN0cmljdGVkICRtZW51ZW50cnlfaWRfb3B0aW9uICdnbnVsaW51eC00LjkuMTU0
LXN0ZC1kZWYtYWx0MC5NODBQLjEtYWR2YW5jZWQtOTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBj
OWQyYzVkYWYzJyB7CgkJbG9hZF92aWRlbwoJCXNldCBnZnhwYXlsb2FkPWtlZXAKCQlpbnNtb2Qg
Z3ppbwoJCWluc21vZCBwYXJ0X21zZG9zCgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9vdD0naGQwLG1z
ZG9zMScKCQlpZiBbIHgkZmVhdHVyZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4K
CQkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1o
ZDAsbXNkb3MxIC0taGludC1lZmk9aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFsPWFoY2kwLG1z
ZG9zMSAgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZWxzZQoJCSAgc2Vh
cmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290IDk5MGZlMGRmLWFkZTUtNDJhOC1h
Mjk1LTA5OWVkNDAzMzkzMgoJCWZpCgkJZWNobwknTG9hZGluZyBMaW51eCA0LjkuMTU0LXN0ZC1k
ZWYtYWx0MC5NODBQLjEgLi4uJwoJCWxpbnV4CS92bWxpbnV6LTQuOS4xNTQtc3RkLWRlZi1hbHQw
Lk04MFAuMSByb290PVVVSUQ9OTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzIHJv
IHBhbmljPTMwIHNwbGFzaAoJCWVjaG8JJ0xvYWRpbmcgaW5pdGlhbCByYW1kaXNrIC4uLicKCQlp
bml0cmQJL2luaXRyZC00LjkuMTU0LXN0ZC1kZWYtYWx0MC5NODBQLjEuaW1nCgl9CgltZW51ZW50
cnkgJ0FMVCBwOCBzdGFydGVyIGtpdCwgNC40LjExNi1zdGQtZGVmLWFsdDAuTTgwQy4xJyAtLWNs
YXNzIGdudS1saW51eCAtLWNsYXNzIGdudSAtLWNsYXNzIG9zIC0tdW5yZXN0cmljdGVkICRtZW51
ZW50cnlfaWRfb3B0aW9uICdnbnVsaW51eC00LjQuMTE2LXN0ZC1kZWYtYWx0MC5NODBDLjEtYWR2
YW5jZWQtOTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzJyB7CgkJbG9hZF92aWRl
bwoJCXNldCBnZnhwYXlsb2FkPWtlZXAKCQlpbnNtb2QgZ3ppbwoJCWluc21vZCBwYXJ0X21zZG9z
CgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9vdD0naGQwLG1zZG9zMScKCQlpZiBbIHgkZmVhdHVyZV9w
bGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4KCQkgIHNlYXJjaCAtLW5vLWZsb3BweSAt
LWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDAsbXNkb3MxIC0taGludC1lZmk9aGQw
LG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFsPWFoY2kwLG1zZG9zMSAgOTkwZmUwZGYtYWRlNS00MmE4
LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZWxzZQoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVp
ZCAtLXNldD1yb290IDk5MGZlMGRmLWFkZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgoJCWZpCgkJ
ZWNobwknTG9hZGluZyBMaW51eCA0LjQuMTE2LXN0ZC1kZWYtYWx0MC5NODBDLjEgLi4uJwoJCWxp
bnV4CS92bWxpbnV6LTQuNC4xMTYtc3RkLWRlZi1hbHQwLk04MEMuMSByb290PVVVSUQ9OTdkYzU1
ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzIHJvIHBhbmljPTMwIHNwbGFzaAoJCWVjaG8J
J0xvYWRpbmcgaW5pdGlhbCByYW1kaXNrIC4uLicKCQlpbml0cmQJL2luaXRyZC00LjQuMTE2LXN0
ZC1kZWYtYWx0MC5NODBDLjEuaW1nCgl9CgltZW51ZW50cnkgJ0FMVCBwOCBzdGFydGVyIGtpdCwg
NC40LjE0My1zdGQtZGVmLWFsdDAuTTcwQy4xJyAtLWNsYXNzIGdudS1saW51eCAtLWNsYXNzIGdu
dSAtLWNsYXNzIG9zIC0tdW5yZXN0cmljdGVkICRtZW51ZW50cnlfaWRfb3B0aW9uICdnbnVsaW51
eC00LjQuMTQzLXN0ZC1kZWYtYWx0MC5NNzBDLjEtYWR2YW5jZWQtOTdkYzU1ZTAtNTZiMi00ZjMz
LWFlNWEtYTBjOWQyYzVkYWYzJyB7CgkJbG9hZF92aWRlbwoJCXNldCBnZnhwYXlsb2FkPWtlZXAK
CQlpbnNtb2QgZ3ppbwoJCWluc21vZCBwYXJ0X21zZG9zCgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9v
dD0naGQwLG1zZG9zMScKCQlpZiBbIHgkZmVhdHVyZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5
IF07IHRoZW4KCQkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhp
bnQtYmlvcz1oZDAsbXNkb3MxIC0taGludC1lZmk9aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFs
PWFoY2kwLG1zZG9zMSAgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZWxz
ZQoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290IDk5MGZlMGRmLWFk
ZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgoJCWZpCgkJZWNobwknTG9hZGluZyBMaW51eCA0LjQu
MTQzLXN0ZC1kZWYtYWx0MC5NNzBDLjEgLi4uJwoJCWxpbnV4CS92bWxpbnV6LTQuNC4xNDMtc3Rk
LWRlZi1hbHQwLk03MEMuMSByb290PVVVSUQ9OTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQy
YzVkYWYzIHJvIHBhbmljPTMwIHNwbGFzaAoJCWVjaG8JJ0xvYWRpbmcgaW5pdGlhbCByYW1kaXNr
IC4uLicKCQlpbml0cmQJL2luaXRyZC00LjQuMTQzLXN0ZC1kZWYtYWx0MC5NNzBDLjEuaW1nCgl9
CgltZW51ZW50cnkgJ0FMVCBwOCBzdGFydGVyIGtpdCwgNC40LjY4LXN0ZC1kZWYtYWx0MC5NODBQ
LjInIC0tY2xhc3MgZ251LWxpbnV4IC0tY2xhc3MgZ251IC0tY2xhc3Mgb3MgLS11bnJlc3RyaWN0
ZWQgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ2dudWxpbnV4LTQuNC42OC1zdGQtZGVmLWFsdDAuTTgw
UC4yLWFkdmFuY2VkLTk3ZGM1NWUwLTU2YjItNGYzMy1hZTVhLWEwYzlkMmM1ZGFmMycgewoJCWxv
YWRfdmlkZW8KCQlzZXQgZ2Z4cGF5bG9hZD1rZWVwCgkJaW5zbW9kIGd6aW8KCQlpbnNtb2QgcGFy
dF9tc2RvcwoJCWluc21vZCBleHQyCgkJc2V0IHJvb3Q9J2hkMCxtc2RvczEnCgkJaWYgWyB4JGZl
YXR1cmVfcGxhdGZvcm1fc2VhcmNoX2hpbnQgPSB4eSBdOyB0aGVuCgkJICBzZWFyY2ggLS1uby1m
bG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgLS1oaW50LWJpb3M9aGQwLG1zZG9zMSAtLWhpbnQt
ZWZpPWhkMCxtc2RvczEgLS1oaW50LWJhcmVtZXRhbD1haGNpMCxtc2RvczEgIDk5MGZlMGRmLWFk
ZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgoJCWVsc2UKCQkgIHNlYXJjaCAtLW5vLWZsb3BweSAt
LWZzLXV1aWQgLS1zZXQ9cm9vdCA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0wOTllZDQwMzM5MzIK
CQlmaQoJCWVjaG8JJ0xvYWRpbmcgTGludXggNC40LjY4LXN0ZC1kZWYtYWx0MC5NODBQLjIgLi4u
JwoJCWxpbnV4CS92bWxpbnV6LTQuNC42OC1zdGQtZGVmLWFsdDAuTTgwUC4yIHJvb3Q9VVVJRD05
N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjMgcm8gcGFuaWM9MzAgc3BsYXNoCgkJ
ZWNobwknTG9hZGluZyBpbml0aWFsIHJhbWRpc2sgLi4uJwoJCWluaXRyZAkvaW5pdHJkLTQuNC42
OC1zdGQtZGVmLWFsdDAuTTgwUC4yLmltZwoJfQp9CgojIyMgRU5EIC9ldGMvZ3J1Yi5kLzEwX2xp
bnV4ICMjIwoKIyMjIEJFR0lOIC9ldGMvZ3J1Yi5kLzIwX2xpbnV4X3hlbiAjIyMKCiMjIyBFTkQg
L2V0Yy9ncnViLmQvMjBfbGludXhfeGVuICMjIwoKIyMjIEJFR0lOIC9ldGMvZ3J1Yi5kLzMwX29z
LXByb2JlciAjIyMKIyMjIEVORCAvZXRjL2dydWIuZC8zMF9vcy1wcm9iZXIgIyMjCgojIyMgQkVH
SU4gL2V0Yy9ncnViLmQvMzBfdWVmaS1maXJtd2FyZSAjIyMKIyMjIEVORCAvZXRjL2dydWIuZC8z
MF91ZWZpLWZpcm13YXJlICMjIwoKIyMjIEJFR0lOIC9ldGMvZ3J1Yi5kLzM5X21lbXRlc3QgIyMj
Cm1lbnVlbnRyeSAiTWVtdGVzdDg2Ky01LjAxIiB7CglpbnNtb2QgcGFydF9tc2RvcwoJaW5zbW9k
IGV4dDIKCXNldCByb290PSdoZDAsbXNkb3MxJwoJaWYgWyB4JGZlYXR1cmVfcGxhdGZvcm1fc2Vh
cmNoX2hpbnQgPSB4eSBdOyB0aGVuCgkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1z
ZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDAsbXNkb3MxIC0taGludC1lZmk9aGQwLG1zZG9zMSAtLWhp
bnQtYmFyZW1ldGFsPWFoY2kwLG1zZG9zMSAgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0
MDMzOTMyCgllbHNlCgkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCA5
OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0wOTllZDQwMzM5MzIKCWZpCglsaW51eDE2IC9tZW10ZXN0
LTUuMDEuYmluCn0KIyMjIEVORCAvZXRjL2dydWIuZC8zOV9tZW10ZXN0ICMjIwoKIyMjIEJFR0lO
IC9ldGMvZ3J1Yi5kLzQwX2N1c3RvbSAjIyMKIyBUaGlzIGZpbGUgcHJvdmlkZXMgYW4gZWFzeSB3
YXkgdG8gYWRkIGN1c3RvbSBtZW51IGVudHJpZXMuICBTaW1wbHkgdHlwZSB0aGUKIyBtZW51IGVu
dHJpZXMgeW91IHdhbnQgdG8gYWRkIGFmdGVyIHRoaXMgY29tbWVudC4gIEJlIGNhcmVmdWwgbm90
IHRvIGNoYW5nZQojIHRoZSAnZXhlYyB0YWlsJyBsaW5lIGFib3ZlLgojIyMgRU5EIC9ldGMvZ3J1
Yi5kLzQwX2N1c3RvbSAjIyMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>8000</attachid>
            <date>2019-02-07 15:12:46 +0300</date>
            <delta_ts>2019-02-08 09:20:51 +0300</delta_ts>
            <desc>пример grub.cfg, ALT p8, с memtest, два уровня</desc>
            <filename>grub.cfg</filename>
            <type>application/octet-stream</type>
            <size>14483</size>
            <attacher name="Sergey Y. Afonin">asy</attacher>
            
              <data encoding="base64">IwojIERPIE5PVCBFRElUIFRISVMgRklMRQojCiMgSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0
ZWQgYnkgZ3J1Yi1ta2NvbmZpZyB1c2luZyB0ZW1wbGF0ZXMKIyBmcm9tIC9ldGMvZ3J1Yi5kIGFu
ZCBzZXR0aW5ncyBmcm9tIC9ldGMvc3lzY29uZmlnL2dydWIyCiMKCiMjIyBCRUdJTiAvZXRjL2dy
dWIuZC8wMF9oZWFkZXIgIyMjCmlmIFsgLXMgJHByZWZpeC9ncnViZW52IF07IHRoZW4KICBsb2Fk
X2VudgpmaQppZiBbICIke25leHRfZW50cnl9IiBdIDsgdGhlbgogICBzZXQgZGVmYXVsdD0iJHtu
ZXh0X2VudHJ5fSIKICAgc2V0IG5leHRfZW50cnk9CiAgIHNhdmVfZW52IG5leHRfZW50cnkKICAg
c2V0IGJvb3Rfb25jZT10cnVlCmVsc2UKICAgc2V0IGRlZmF1bHQ9IiR7c2F2ZWRfZW50cnl9Igpm
aQoKaWYgWyB4IiR7ZmVhdHVyZV9tZW51ZW50cnlfaWR9IiA9IHh5IF07IHRoZW4KICBtZW51ZW50
cnlfaWRfb3B0aW9uPSItLWlkIgplbHNlCiAgbWVudWVudHJ5X2lkX29wdGlvbj0iIgpmaQoKZXhw
b3J0IG1lbnVlbnRyeV9pZF9vcHRpb24KCmlmIFsgIiR7cHJldl9zYXZlZF9lbnRyeX0iIF07IHRo
ZW4KICBzZXQgc2F2ZWRfZW50cnk9IiR7cHJldl9zYXZlZF9lbnRyeX0iCiAgc2F2ZV9lbnYgc2F2
ZWRfZW50cnkKICBzZXQgcHJldl9zYXZlZF9lbnRyeT0KICBzYXZlX2VudiBwcmV2X3NhdmVkX2Vu
dHJ5CiAgc2V0IGJvb3Rfb25jZT10cnVlCmZpCgpmdW5jdGlvbiBzYXZlZGVmYXVsdCB7CiAgaWYg
WyAteiAiJHtib290X29uY2V9IiBdOyB0aGVuCiAgICBzYXZlZF9lbnRyeT0iJHtjaG9zZW59Igog
ICAgc2F2ZV9lbnYgc2F2ZWRfZW50cnkKICBmaQp9CgpmdW5jdGlvbiBsb2FkX3ZpZGVvIHsKICBp
ZiBbIHgkZmVhdHVyZV9hbGxfdmlkZW9fbW9kdWxlID0geHkgXTsgdGhlbgogICAgaW5zbW9kIGFs
bF92aWRlbwogIGVsc2UKICAgIGluc21vZCBlZmlfZ29wCiAgICBpbnNtb2QgZWZpX3VnYQogICAg
aW5zbW9kIGllZWUxMjc1X2ZiCiAgICBpbnNtb2QgdmJlCiAgICBpbnNtb2QgdmdhCiAgICBpbnNt
b2QgdmlkZW9fYm9jaHMKICAgIGluc21vZCB2aWRlb19jaXJydXMKICBmaQp9CgppZiBbIHgkZmVh
dHVyZV9kZWZhdWx0X2ZvbnRfcGF0aCA9IHh5IF0gOyB0aGVuCiAgIGZvbnQ9dW5pY29kZQplbHNl
Cmluc21vZCBwYXJ0X21zZG9zCmluc21vZCBleHQyCnNldCByb290PSdoZDAsbXNkb3MxJwppZiBb
IHgkZmVhdHVyZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4KICBzZWFyY2ggLS1u
by1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgLS1oaW50LWJpb3M9aGQwLG1zZG9zMSAtLWhp
bnQtZWZpPWhkMCxtc2RvczEgLS1oaW50LWJhcmVtZXRhbD1haGNpMCxtc2RvczEgIDk5MGZlMGRm
LWFkZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgplbHNlCiAgc2VhcmNoIC0tbm8tZmxvcHB5IC0t
ZnMtdXVpZCAtLXNldD1yb290IDk5MGZlMGRmLWFkZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgpm
aQogICAgZm9udD0iL2dydWIvdW5pZm9udC5wZjIiCmZpCgppZiBsb2FkZm9udCAkZm9udCA7IHRo
ZW4KICBzZXQgZ2Z4bW9kZT04MDB4NjAwCiAgbG9hZF92aWRlbwogIGluc21vZCBnZnh0ZXJtCiAg
c2V0IGxvY2FsZV9kaXI9JHByZWZpeC9sb2NhbGUKICBzZXQgbGFuZz1ydV9SVQogIGluc21vZCBn
ZXR0ZXh0CmZpCnRlcm1pbmFsX291dHB1dCBnZnh0ZXJtCmlmIFsgeCRmZWF0dXJlX3RpbWVvdXRf
c3R5bGUgPSB4eSBdIDsgdGhlbgogIHNldCB0aW1lb3V0X3N0eWxlPW1lbnUKICBzZXQgdGltZW91
dD01CiMgRmFsbGJhY2sgbm9ybWFsIHRpbWVvdXQgY29kZSBpbiBjYXNlIHRoZSB0aW1lb3V0X3N0
eWxlIGZlYXR1cmUgaXMKIyB1bmF2YWlsYWJsZS4KZWxzZQogIHNldCB0aW1lb3V0PTUKZmkKIyBp
bnRlcnJ1cHQgZ3J1YiBib290aW5nIHByb2Nlc3MgaWYgc2hpZnQga2V5IHByZXNzZWQKaWYga2V5
c3RhdHVzIC0tc2hpZnQ7dGhlbgogIHNldCB0aW1lb3V0PS0xCmZpCiMjIyBFTkQgL2V0Yy9ncnVi
LmQvMDBfaGVhZGVyICMjIwoKIyMjIEJFR0lOIC9ldGMvZ3J1Yi5kLzA1X2FsdGxpbnV4X3RoZW1l
ICMjIwpzZXQgbWVudV9jb2xvcl9ub3JtYWw9d2hpdGUvYmxhY2sKc2V0IG1lbnVfY29sb3JfaGln
aGxpZ2h0PWJsYWNrL2xpZ2h0LWdyYXkKIyMjIEVORCAvZXRjL2dydWIuZC8wNV9hbHRsaW51eF90
aGVtZSAjIyMKCiMjIyBCRUdJTiAvZXRjL2dydWIuZC8xMF9saW51eCAjIyMKbWVudWVudHJ5ICdB
TFQgcDggc3RhcnRlciBraXQnIC0tY2xhc3MgZ251LWxpbnV4IC0tY2xhc3MgZ251IC0tY2xhc3Mg
b3MgLS11bnJlc3RyaWN0ZWQgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ2dudWxpbnV4LXNpbXBsZS05
N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjMnIHsKCWxvYWRfdmlkZW8KCWluc21v
ZCBnemlvCglpbnNtb2QgcGFydF9tc2RvcwoJaW5zbW9kIGV4dDIKCXNldCByb290PSdoZDAsbXNk
b3MxJwoJaWYgWyB4JGZlYXR1cmVfcGxhdGZvcm1fc2VhcmNoX2hpbnQgPSB4eSBdOyB0aGVuCgkg
IHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDAs
bXNkb3MxIC0taGludC1lZmk9aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFsPWFoY2kwLG1zZG9z
MSAgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgllbHNlCgkgIHNlYXJjaCAt
LW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0w
OTllZDQwMzM5MzIKCWZpCgllY2hvCSdMb2FkaW5nIExpbnV4IHZtbGludXogLi4uJwoJbGludXgJ
L3ZtbGludXogcm9vdD1VVUlEPTk3ZGM1NWUwLTU2YjItNGYzMy1hZTVhLWEwYzlkMmM1ZGFmMyBy
byBwYW5pYz0zMCBzcGxhc2gKCWVjaG8JJ0xvYWRpbmcgaW5pdGlhbCByYW1kaXNrIC4uLicKCWlu
aXRyZAkvaW5pdHJkLmltZwp9CnN1Ym1lbnUgJ0FkdmFuY2VkIG9wdGlvbnMgZm9yIEFMVCBwOCBz
dGFydGVyIGtpdCcgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ2dudWxpbnV4LWFkdmFuY2VkLTk3ZGM1
NWUwLTU2YjItNGYzMy1hZTVhLWEwYzlkMmM1ZGFmMycgewoJbWVudWVudHJ5ICdBTFQgcDggc3Rh
cnRlciBraXQsIHZtbGludXonIC0tY2xhc3MgZ251LWxpbnV4IC0tY2xhc3MgZ251IC0tY2xhc3Mg
b3MgLS11bnJlc3RyaWN0ZWQgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ2dudWxpbnV4LXZtbGludXot
YWR2YW5jZWQtOTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzJyB7CgkJbG9hZF92
aWRlbwoJCWluc21vZCBnemlvCgkJaW5zbW9kIHBhcnRfbXNkb3MKCQlpbnNtb2QgZXh0MgoJCXNl
dCByb290PSdoZDAsbXNkb3MxJwoJCWlmIFsgeCRmZWF0dXJlX3BsYXRmb3JtX3NlYXJjaF9oaW50
ID0geHkgXTsgdGhlbgoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290
IC0taGludC1iaW9zPWhkMCxtc2RvczEgLS1oaW50LWVmaT1oZDAsbXNkb3MxIC0taGludC1iYXJl
bWV0YWw9YWhjaTAsbXNkb3MxICA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0wOTllZDQwMzM5MzIK
CQllbHNlCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgOTkwZmUw
ZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZmkKCQllY2hvCSdMb2FkaW5nIExpbnV4
IHZtbGludXogLi4uJwoJCWxpbnV4CS92bWxpbnV6IHJvb3Q9VVVJRD05N2RjNTVlMC01NmIyLTRm
MzMtYWU1YS1hMGM5ZDJjNWRhZjMgcm8gcGFuaWM9MzAgc3BsYXNoCgkJZWNobwknTG9hZGluZyBp
bml0aWFsIHJhbWRpc2sgLi4uJwoJCWluaXRyZAkvaW5pdHJkLmltZwoJfQoJbWVudWVudHJ5ICdB
TFQgcDggc3RhcnRlciBraXQsIHZtbGludXogKHJlY292ZXJ5IG1vZGUpJyAtLWNsYXNzIGdudS1s
aW51eCAtLWNsYXNzIGdudSAtLWNsYXNzIG9zIC0tdW5yZXN0cmljdGVkICRtZW51ZW50cnlfaWRf
b3B0aW9uICdnbnVsaW51eC12bWxpbnV6LXJlY292ZXJ5LTk3ZGM1NWUwLTU2YjItNGYzMy1hZTVh
LWEwYzlkMmM1ZGFmMycgewoJCWxvYWRfdmlkZW8KCQlpbnNtb2QgZ3ppbwoJCWluc21vZCBwYXJ0
X21zZG9zCgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9vdD0naGQwLG1zZG9zMScKCQlpZiBbIHgkZmVh
dHVyZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4KCQkgIHNlYXJjaCAtLW5vLWZs
b3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDAsbXNkb3MxIC0taGludC1l
Zmk9aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFsPWFoY2kwLG1zZG9zMSAgOTkwZmUwZGYtYWRl
NS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZWxzZQoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0t
ZnMtdXVpZCAtLXNldD1yb290IDk5MGZlMGRmLWFkZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgoJ
CWZpCgkJZWNobwknTG9hZGluZyBMaW51eCB2bWxpbnV6IC4uLicKCQlsaW51eAkvdm1saW51eiBy
b290PVVVSUQ9OTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzIHJvIGZhaWxzYWZl
IHZnYT1ub3JtYWwKCQllY2hvCSdMb2FkaW5nIGluaXRpYWwgcmFtZGlzayAuLi4nCgkJaW5pdHJk
CS9pbml0cmQuaW1nCgl9CgltZW51ZW50cnkgJ0FMVCBwOCBzdGFydGVyIGtpdCwgNC45LjE1NC1z
dGQtZGVmLWFsdDAuTTgwUC4xJyAtLWNsYXNzIGdudS1saW51eCAtLWNsYXNzIGdudSAtLWNsYXNz
IG9zIC0tdW5yZXN0cmljdGVkICRtZW51ZW50cnlfaWRfb3B0aW9uICdnbnVsaW51eC00LjkuMTU0
LXN0ZC1kZWYtYWx0MC5NODBQLjEtYWR2YW5jZWQtOTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBj
OWQyYzVkYWYzJyB7CgkJbG9hZF92aWRlbwoJCXNldCBnZnhwYXlsb2FkPWtlZXAKCQlpbnNtb2Qg
Z3ppbwoJCWluc21vZCBwYXJ0X21zZG9zCgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9vdD0naGQwLG1z
ZG9zMScKCQlpZiBbIHgkZmVhdHVyZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4K
CQkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1o
ZDAsbXNkb3MxIC0taGludC1lZmk9aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFsPWFoY2kwLG1z
ZG9zMSAgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZWxzZQoJCSAgc2Vh
cmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290IDk5MGZlMGRmLWFkZTUtNDJhOC1h
Mjk1LTA5OWVkNDAzMzkzMgoJCWZpCgkJZWNobwknTG9hZGluZyBMaW51eCA0LjkuMTU0LXN0ZC1k
ZWYtYWx0MC5NODBQLjEgLi4uJwoJCWxpbnV4CS92bWxpbnV6LTQuOS4xNTQtc3RkLWRlZi1hbHQw
Lk04MFAuMSByb290PVVVSUQ9OTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzIHJv
IHBhbmljPTMwIHNwbGFzaAoJCWVjaG8JJ0xvYWRpbmcgaW5pdGlhbCByYW1kaXNrIC4uLicKCQlp
bml0cmQJL2luaXRyZC00LjkuMTU0LXN0ZC1kZWYtYWx0MC5NODBQLjEuaW1nCgl9CgltZW51ZW50
cnkgJ0FMVCBwOCBzdGFydGVyIGtpdCwgNC40LjExNi1zdGQtZGVmLWFsdDAuTTgwQy4xJyAtLWNs
YXNzIGdudS1saW51eCAtLWNsYXNzIGdudSAtLWNsYXNzIG9zIC0tdW5yZXN0cmljdGVkICRtZW51
ZW50cnlfaWRfb3B0aW9uICdnbnVsaW51eC00LjQuMTE2LXN0ZC1kZWYtYWx0MC5NODBDLjEtYWR2
YW5jZWQtOTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzJyB7CgkJbG9hZF92aWRl
bwoJCXNldCBnZnhwYXlsb2FkPWtlZXAKCQlpbnNtb2QgZ3ppbwoJCWluc21vZCBwYXJ0X21zZG9z
CgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9vdD0naGQwLG1zZG9zMScKCQlpZiBbIHgkZmVhdHVyZV9w
bGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4KCQkgIHNlYXJjaCAtLW5vLWZsb3BweSAt
LWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDAsbXNkb3MxIC0taGludC1lZmk9aGQw
LG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFsPWFoY2kwLG1zZG9zMSAgOTkwZmUwZGYtYWRlNS00MmE4
LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZWxzZQoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVp
ZCAtLXNldD1yb290IDk5MGZlMGRmLWFkZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgoJCWZpCgkJ
ZWNobwknTG9hZGluZyBMaW51eCA0LjQuMTE2LXN0ZC1kZWYtYWx0MC5NODBDLjEgLi4uJwoJCWxp
bnV4CS92bWxpbnV6LTQuNC4xMTYtc3RkLWRlZi1hbHQwLk04MEMuMSByb290PVVVSUQ9OTdkYzU1
ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzIHJvIHBhbmljPTMwIHNwbGFzaAoJCWVjaG8J
J0xvYWRpbmcgaW5pdGlhbCByYW1kaXNrIC4uLicKCQlpbml0cmQJL2luaXRyZC00LjQuMTE2LXN0
ZC1kZWYtYWx0MC5NODBDLjEuaW1nCgl9CgltZW51ZW50cnkgJ0FMVCBwOCBzdGFydGVyIGtpdCwg
NC40LjE0My1zdGQtZGVmLWFsdDAuTTcwQy4xJyAtLWNsYXNzIGdudS1saW51eCAtLWNsYXNzIGdu
dSAtLWNsYXNzIG9zIC0tdW5yZXN0cmljdGVkICRtZW51ZW50cnlfaWRfb3B0aW9uICdnbnVsaW51
eC00LjQuMTQzLXN0ZC1kZWYtYWx0MC5NNzBDLjEtYWR2YW5jZWQtOTdkYzU1ZTAtNTZiMi00ZjMz
LWFlNWEtYTBjOWQyYzVkYWYzJyB7CgkJbG9hZF92aWRlbwoJCXNldCBnZnhwYXlsb2FkPWtlZXAK
CQlpbnNtb2QgZ3ppbwoJCWluc21vZCBwYXJ0X21zZG9zCgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9v
dD0naGQwLG1zZG9zMScKCQlpZiBbIHgkZmVhdHVyZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5
IF07IHRoZW4KCQkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhp
bnQtYmlvcz1oZDAsbXNkb3MxIC0taGludC1lZmk9aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFs
PWFoY2kwLG1zZG9zMSAgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZWxz
ZQoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290IDk5MGZlMGRmLWFk
ZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgoJCWZpCgkJZWNobwknTG9hZGluZyBMaW51eCA0LjQu
MTQzLXN0ZC1kZWYtYWx0MC5NNzBDLjEgLi4uJwoJCWxpbnV4CS92bWxpbnV6LTQuNC4xNDMtc3Rk
LWRlZi1hbHQwLk03MEMuMSByb290PVVVSUQ9OTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQy
YzVkYWYzIHJvIHBhbmljPTMwIHNwbGFzaAoJCWVjaG8JJ0xvYWRpbmcgaW5pdGlhbCByYW1kaXNr
IC4uLicKCQlpbml0cmQJL2luaXRyZC00LjQuMTQzLXN0ZC1kZWYtYWx0MC5NNzBDLjEuaW1nCgl9
CgltZW51ZW50cnkgJ0FMVCBwOCBzdGFydGVyIGtpdCwgNC40LjY4LXN0ZC1kZWYtYWx0MC5NODBQ
LjInIC0tY2xhc3MgZ251LWxpbnV4IC0tY2xhc3MgZ251IC0tY2xhc3Mgb3MgLS11bnJlc3RyaWN0
ZWQgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ2dudWxpbnV4LTQuNC42OC1zdGQtZGVmLWFsdDAuTTgw
UC4yLWFkdmFuY2VkLTk3ZGM1NWUwLTU2YjItNGYzMy1hZTVhLWEwYzlkMmM1ZGFmMycgewoJCWxv
YWRfdmlkZW8KCQlzZXQgZ2Z4cGF5bG9hZD1rZWVwCgkJaW5zbW9kIGd6aW8KCQlpbnNtb2QgcGFy
dF9tc2RvcwoJCWluc21vZCBleHQyCgkJc2V0IHJvb3Q9J2hkMCxtc2RvczEnCgkJaWYgWyB4JGZl
YXR1cmVfcGxhdGZvcm1fc2VhcmNoX2hpbnQgPSB4eSBdOyB0aGVuCgkJICBzZWFyY2ggLS1uby1m
bG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgLS1oaW50LWJpb3M9aGQwLG1zZG9zMSAtLWhpbnQt
ZWZpPWhkMCxtc2RvczEgLS1oaW50LWJhcmVtZXRhbD1haGNpMCxtc2RvczEgIDk5MGZlMGRmLWFk
ZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgoJCWVsc2UKCQkgIHNlYXJjaCAtLW5vLWZsb3BweSAt
LWZzLXV1aWQgLS1zZXQ9cm9vdCA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0wOTllZDQwMzM5MzIK
CQlmaQoJCWVjaG8JJ0xvYWRpbmcgTGludXggNC40LjY4LXN0ZC1kZWYtYWx0MC5NODBQLjIgLi4u
JwoJCWxpbnV4CS92bWxpbnV6LTQuNC42OC1zdGQtZGVmLWFsdDAuTTgwUC4yIHJvb3Q9VVVJRD05
N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjMgcm8gcGFuaWM9MzAgc3BsYXNoCgkJ
ZWNobwknTG9hZGluZyBpbml0aWFsIHJhbWRpc2sgLi4uJwoJCWluaXRyZAkvaW5pdHJkLTQuNC42
OC1zdGQtZGVmLWFsdDAuTTgwUC4yLmltZwoJfQp9CgojIyMgRU5EIC9ldGMvZ3J1Yi5kLzEwX2xp
bnV4ICMjIwoKIyMjIEJFR0lOIC9ldGMvZ3J1Yi5kLzIwX2xpbnV4X3hlbiAjIyMKCiMjIyBFTkQg
L2V0Yy9ncnViLmQvMjBfbGludXhfeGVuICMjIwoKIyMjIEJFR0lOIC9ldGMvZ3J1Yi5kLzMwX29z
LXByb2JlciAjIyMKIyMjIEVORCAvZXRjL2dydWIuZC8zMF9vcy1wcm9iZXIgIyMjCgojIyMgQkVH
SU4gL2V0Yy9ncnViLmQvMzBfdWVmaS1maXJtd2FyZSAjIyMKIyMjIEVORCAvZXRjL2dydWIuZC8z
MF91ZWZpLWZpcm13YXJlICMjIwoKIyMjIEJFR0lOIC9ldGMvZ3J1Yi5kLzM5X21lbXRlc3QgIyMj
Cm1lbnVlbnRyeSAiTWVtdGVzdDg2Ky01LjAxIiB7CglpbnNtb2QgcGFydF9tc2RvcwoJaW5zbW9k
IGV4dDIKCXNldCByb290PSdoZDAsbXNkb3MxJwoJaWYgWyB4JGZlYXR1cmVfcGxhdGZvcm1fc2Vh
cmNoX2hpbnQgPSB4eSBdOyB0aGVuCgkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1z
ZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDAsbXNkb3MxIC0taGludC1lZmk9aGQwLG1zZG9zMSAtLWhp
bnQtYmFyZW1ldGFsPWFoY2kwLG1zZG9zMSAgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0
MDMzOTMyCgllbHNlCgkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCA5
OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0wOTllZDQwMzM5MzIKCWZpCglsaW51eDE2IC9tZW10ZXN0
LTUuMDEuYmluCn0KIyMjIEVORCAvZXRjL2dydWIuZC8zOV9tZW10ZXN0ICMjIwoKc3VibWVudSAn
QWR2YW5jZWQgb3B0aW9ucyBmb3IgQUxUIHA4IHN0YXJ0ZXIga2l0IDInICRtZW51ZW50cnlfaWRf
b3B0aW9uICdnbnVsaW51eC1hZHZhbmNlZC05N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJj
NWRhZjQnIHsKICAgIHN1Ym1lbnUgJ0FkdmFuY2VkIG9wdGlvbnMgZm9yIEFMVCBwOCBzdGFydGVy
IGtpdCAzJyAkbWVudWVudHJ5X2lkX29wdGlvbiAnZ251bGludXgtYWR2YW5jZWQtOTdkYzU1ZTAt
NTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWY1JyB7CgltZW51ZW50cnkgJ0FMVCBwOCBzdGFydGVy
IGtpdCwgdm1saW51eicgLS1jbGFzcyBnbnUtbGludXggLS1jbGFzcyBnbnUgLS1jbGFzcyBvcyAt
LXVucmVzdHJpY3RlZCAkbWVudWVudHJ5X2lkX29wdGlvbiAnZ251bGludXgtdm1saW51ei1hZHZh
bmNlZC05N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjMnIHsKCQlsb2FkX3ZpZGVv
CgkJaW5zbW9kIGd6aW8KCQlpbnNtb2QgcGFydF9tc2RvcwoJCWluc21vZCBleHQyCgkJc2V0IHJv
b3Q9J2hkMCxtc2RvczEnCgkJaWYgWyB4JGZlYXR1cmVfcGxhdGZvcm1fc2VhcmNoX2hpbnQgPSB4
eSBdOyB0aGVuCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgLS1o
aW50LWJpb3M9aGQwLG1zZG9zMSAtLWhpbnQtZWZpPWhkMCxtc2RvczEgLS1oaW50LWJhcmVtZXRh
bD1haGNpMCxtc2RvczEgIDk5MGZlMGRmLWFkZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgoJCWVs
c2UKCQkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCA5OTBmZTBkZi1h
ZGU1LTQyYTgtYTI5NS0wOTllZDQwMzM5MzIKCQlmaQoJCWVjaG8JJ0xvYWRpbmcgTGludXggdm1s
aW51eiAuLi4nCgkJbGludXgJL3ZtbGludXogcm9vdD1VVUlEPTk3ZGM1NWUwLTU2YjItNGYzMy1h
ZTVhLWEwYzlkMmM1ZGFmMyBybyBwYW5pYz0zMCBzcGxhc2gKCQllY2hvCSdMb2FkaW5nIGluaXRp
YWwgcmFtZGlzayAuLi4nCgkJaW5pdHJkCS9pbml0cmQuaW1nCgl9CgltZW51ZW50cnkgJ0FMVCBw
OCBzdGFydGVyIGtpdCwgdm1saW51eiAocmVjb3ZlcnkgbW9kZSknIC0tY2xhc3MgZ251LWxpbnV4
IC0tY2xhc3MgZ251IC0tY2xhc3Mgb3MgLS11bnJlc3RyaWN0ZWQgJG1lbnVlbnRyeV9pZF9vcHRp
b24gJ2dudWxpbnV4LXZtbGludXotcmVjb3ZlcnktOTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBj
OWQyYzVkYWYzJyB7CgkJbG9hZF92aWRlbwoJCWluc21vZCBnemlvCgkJaW5zbW9kIHBhcnRfbXNk
b3MKCQlpbnNtb2QgZXh0MgoJCXNldCByb290PSdoZDAsbXNkb3MxJwoJCWlmIFsgeCRmZWF0dXJl
X3BsYXRmb3JtX3NlYXJjaF9oaW50ID0geHkgXTsgdGhlbgoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5
IC0tZnMtdXVpZCAtLXNldD1yb290IC0taGludC1iaW9zPWhkMCxtc2RvczEgLS1oaW50LWVmaT1o
ZDAsbXNkb3MxIC0taGludC1iYXJlbWV0YWw9YWhjaTAsbXNkb3MxICA5OTBmZTBkZi1hZGU1LTQy
YTgtYTI5NS0wOTllZDQwMzM5MzIKCQllbHNlCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11
dWlkIC0tc2V0PXJvb3QgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZmkK
CQllY2hvCSdMb2FkaW5nIExpbnV4IHZtbGludXogLi4uJwoJCWxpbnV4CS92bWxpbnV6IHJvb3Q9
VVVJRD05N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjMgcm8gZmFpbHNhZmUgdmdh
PW5vcm1hbAoJCWVjaG8JJ0xvYWRpbmcgaW5pdGlhbCByYW1kaXNrIC4uLicKCQlpbml0cmQJL2lu
aXRyZC5pbWcKCX0KCW1lbnVlbnRyeSAnQUxUIHA4IHN0YXJ0ZXIga2l0LCA0LjkuMTU0LXN0ZC1k
ZWYtYWx0MC5NODBQLjEnIC0tY2xhc3MgZ251LWxpbnV4IC0tY2xhc3MgZ251IC0tY2xhc3Mgb3Mg
LS11bnJlc3RyaWN0ZWQgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ2dudWxpbnV4LTQuOS4xNTQtc3Rk
LWRlZi1hbHQwLk04MFAuMS1hZHZhbmNlZC05N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJj
NWRhZjMnIHsKCQlsb2FkX3ZpZGVvCgkJc2V0IGdmeHBheWxvYWQ9a2VlcAoJCWluc21vZCBnemlv
CgkJaW5zbW9kIHBhcnRfbXNkb3MKCQlpbnNtb2QgZXh0MgoJCXNldCByb290PSdoZDAsbXNkb3Mx
JwoJCWlmIFsgeCRmZWF0dXJlX3BsYXRmb3JtX3NlYXJjaF9oaW50ID0geHkgXTsgdGhlbgoJCSAg
c2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290IC0taGludC1iaW9zPWhkMCxt
c2RvczEgLS1oaW50LWVmaT1oZDAsbXNkb3MxIC0taGludC1iYXJlbWV0YWw9YWhjaTAsbXNkb3Mx
ICA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0wOTllZDQwMzM5MzIKCQllbHNlCgkJICBzZWFyY2gg
LS1uby1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUt
MDk5ZWQ0MDMzOTMyCgkJZmkKCQllY2hvCSdMb2FkaW5nIExpbnV4IDQuOS4xNTQtc3RkLWRlZi1h
bHQwLk04MFAuMSAuLi4nCgkJbGludXgJL3ZtbGludXotNC45LjE1NC1zdGQtZGVmLWFsdDAuTTgw
UC4xIHJvb3Q9VVVJRD05N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjMgcm8gcGFu
aWM9MzAgc3BsYXNoCgkJZWNobwknTG9hZGluZyBpbml0aWFsIHJhbWRpc2sgLi4uJwoJCWluaXRy
ZAkvaW5pdHJkLTQuOS4xNTQtc3RkLWRlZi1hbHQwLk04MFAuMS5pbWcKCX0KCW1lbnVlbnRyeSAn
QUxUIHA4IHN0YXJ0ZXIga2l0LCA0LjQuMTE2LXN0ZC1kZWYtYWx0MC5NODBDLjEnIC0tY2xhc3Mg
Z251LWxpbnV4IC0tY2xhc3MgZ251IC0tY2xhc3Mgb3MgLS11bnJlc3RyaWN0ZWQgJG1lbnVlbnRy
eV9pZF9vcHRpb24gJ2dudWxpbnV4LTQuNC4xMTYtc3RkLWRlZi1hbHQwLk04MEMuMS1hZHZhbmNl
ZC05N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjMnIHsKCQlsb2FkX3ZpZGVvCgkJ
c2V0IGdmeHBheWxvYWQ9a2VlcAoJCWluc21vZCBnemlvCgkJaW5zbW9kIHBhcnRfbXNkb3MKCQlp
bnNtb2QgZXh0MgoJCXNldCByb290PSdoZDAsbXNkb3MxJwoJCWlmIFsgeCRmZWF0dXJlX3BsYXRm
b3JtX3NlYXJjaF9oaW50ID0geHkgXTsgdGhlbgoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMt
dXVpZCAtLXNldD1yb290IC0taGludC1iaW9zPWhkMCxtc2RvczEgLS1oaW50LWVmaT1oZDAsbXNk
b3MxIC0taGludC1iYXJlbWV0YWw9YWhjaTAsbXNkb3MxICA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5
NS0wOTllZDQwMzM5MzIKCQllbHNlCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0t
c2V0PXJvb3QgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZmkKCQllY2hv
CSdMb2FkaW5nIExpbnV4IDQuNC4xMTYtc3RkLWRlZi1hbHQwLk04MEMuMSAuLi4nCgkJbGludXgJ
L3ZtbGludXotNC40LjExNi1zdGQtZGVmLWFsdDAuTTgwQy4xIHJvb3Q9VVVJRD05N2RjNTVlMC01
NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjMgcm8gcGFuaWM9MzAgc3BsYXNoCgkJZWNobwknTG9h
ZGluZyBpbml0aWFsIHJhbWRpc2sgLi4uJwoJCWluaXRyZAkvaW5pdHJkLTQuNC4xMTYtc3RkLWRl
Zi1hbHQwLk04MEMuMS5pbWcKCX0KCW1lbnVlbnRyeSAnQUxUIHA4IHN0YXJ0ZXIga2l0LCA0LjQu
MTQzLXN0ZC1kZWYtYWx0MC5NNzBDLjEnIC0tY2xhc3MgZ251LWxpbnV4IC0tY2xhc3MgZ251IC0t
Y2xhc3Mgb3MgLS11bnJlc3RyaWN0ZWQgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ2dudWxpbnV4LTQu
NC4xNDMtc3RkLWRlZi1hbHQwLk03MEMuMS1hZHZhbmNlZC05N2RjNTVlMC01NmIyLTRmMzMtYWU1
YS1hMGM5ZDJjNWRhZjMnIHsKCQlsb2FkX3ZpZGVvCgkJc2V0IGdmeHBheWxvYWQ9a2VlcAoJCWlu
c21vZCBnemlvCgkJaW5zbW9kIHBhcnRfbXNkb3MKCQlpbnNtb2QgZXh0MgoJCXNldCByb290PSdo
ZDAsbXNkb3MxJwoJCWlmIFsgeCRmZWF0dXJlX3BsYXRmb3JtX3NlYXJjaF9oaW50ID0geHkgXTsg
dGhlbgoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290IC0taGludC1i
aW9zPWhkMCxtc2RvczEgLS1oaW50LWVmaT1oZDAsbXNkb3MxIC0taGludC1iYXJlbWV0YWw9YWhj
aTAsbXNkb3MxICA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0wOTllZDQwMzM5MzIKCQllbHNlCgkJ
ICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgOTkwZmUwZGYtYWRlNS00
MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZmkKCQllY2hvCSdMb2FkaW5nIExpbnV4IDQuNC4xNDMt
c3RkLWRlZi1hbHQwLk03MEMuMSAuLi4nCgkJbGludXgJL3ZtbGludXotNC40LjE0My1zdGQtZGVm
LWFsdDAuTTcwQy4xIHJvb3Q9VVVJRD05N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRh
ZjMgcm8gcGFuaWM9MzAgc3BsYXNoCgkJZWNobwknTG9hZGluZyBpbml0aWFsIHJhbWRpc2sgLi4u
JwoJCWluaXRyZAkvaW5pdHJkLTQuNC4xNDMtc3RkLWRlZi1hbHQwLk03MEMuMS5pbWcKCX0KCW1l
bnVlbnRyeSAnQUxUIHA4IHN0YXJ0ZXIga2l0LCA0LjQuNjgtc3RkLWRlZi1hbHQwLk04MFAuMicg
LS1jbGFzcyBnbnUtbGludXggLS1jbGFzcyBnbnUgLS1jbGFzcyBvcyAtLXVucmVzdHJpY3RlZCAk
bWVudWVudHJ5X2lkX29wdGlvbiAnZ251bGludXgtNC40LjY4LXN0ZC1kZWYtYWx0MC5NODBQLjIt
YWR2YW5jZWQtOTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzJyB7CgkJbG9hZF92
aWRlbwoJCXNldCBnZnhwYXlsb2FkPWtlZXAKCQlpbnNtb2QgZ3ppbwoJCWluc21vZCBwYXJ0X21z
ZG9zCgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9vdD0naGQwLG1zZG9zMScKCQlpZiBbIHgkZmVhdHVy
ZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4KCQkgIHNlYXJjaCAtLW5vLWZsb3Bw
eSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDAsbXNkb3MxIC0taGludC1lZmk9
aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFsPWFoY2kwLG1zZG9zMSAgOTkwZmUwZGYtYWRlNS00
MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZWxzZQoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMt
dXVpZCAtLXNldD1yb290IDk5MGZlMGRmLWFkZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgoJCWZp
CgkJZWNobwknTG9hZGluZyBMaW51eCA0LjQuNjgtc3RkLWRlZi1hbHQwLk04MFAuMiAuLi4nCgkJ
bGludXgJL3ZtbGludXotNC40LjY4LXN0ZC1kZWYtYWx0MC5NODBQLjIgcm9vdD1VVUlEPTk3ZGM1
NWUwLTU2YjItNGYzMy1hZTVhLWEwYzlkMmM1ZGFmMyBybyBwYW5pYz0zMCBzcGxhc2gKCQllY2hv
CSdMb2FkaW5nIGluaXRpYWwgcmFtZGlzayAuLi4nCgkJaW5pdHJkCS9pbml0cmQtNC40LjY4LXN0
ZC1kZWYtYWx0MC5NODBQLjIuaW1nCgl9CiAgICB9Cn0KCgojIyMgQkVHSU4gL2V0Yy9ncnViLmQv
NDBfY3VzdG9tICMjIwojIFRoaXMgZmlsZSBwcm92aWRlcyBhbiBlYXN5IHdheSB0byBhZGQgY3Vz
dG9tIG1lbnUgZW50cmllcy4gIFNpbXBseSB0eXBlIHRoZQojIG1lbnUgZW50cmllcyB5b3Ugd2Fu
dCB0byBhZGQgYWZ0ZXIgdGhpcyBjb21tZW50LiAgQmUgY2FyZWZ1bCBub3QgdG8gY2hhbmdlCiMg
dGhlICdleGVjIHRhaWwnIGxpbmUgYWJvdmUuCiMjIyBFTkQgL2V0Yy9ncnViLmQvNDBfY3VzdG9t
ICMjIwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>8001</attachid>
            <date>2019-02-07 16:29:39 +0300</date>
            <delta_ts>2019-02-07 16:29:39 +0300</delta_ts>
            <desc>Теперь и с двойными, и с одинарными кавычками</desc>
            <filename>grub-entries.sh</filename>
            <type>text/plain</type>
            <size>1235</size>
            <attacher name="Leonid Krivoshein">klark.devel</attacher>
            
              <data encoding="base64">IyEvYmluL3NoIC1lZnUKIyMjIFRoaXMgZmlsZSBpcyBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQojIyMgdmVyc2lvbiAyIG9yIGxhdGVyLgojIyMKIyMjIENvcHlyaWdo
dCAoQykgMjAxOSAgQUxUIExpbnV4IFRlYW0KIyMjIEF1dGhvcjogTGVvbmlkIEtyaXZvc2hlaW4g
PGtsYXJrQGFsdGxpbnV4Lm9yZz4KCmdydWJtZW51PSIkKG1rdGVtcCAtcSAiJHtUTVBESVItL3Rt
cH0vZ3J1Ym1lbnUtWFhYWFhYWFgudG1wIikiCgpzZWQgXAoJLXJlICcvXlxzKihtZW51ZW50cnlc
cyt8c3VibWVudVxzK3x9KS8hZCcgICAgIFwKCS1yZSAicy9eXHMqbWVudWVudHJ5XHMrJyhbXidd
KyknLipcJC9NCVwxL2ciIFwKCS1yZSAncy9eXHMqbWVudWVudHJ5XHMrIihbXiJdKykiLiokL00J
XDEvZycgXAoJLXJlICJzL15ccypzdWJtZW51XHMrJyhbXiddKyknLipcJC9TCVwxL2ciIFwKCS1y
ZSAncy9eXHMqc3VibWVudVxzKyIoW14iXSspIi4qJC9TCVwxL2cnIFwKCS1yZSAicy9eXHMqfVxz
KlwkL0UJLS9nIiA+ICIkZ3J1Ym1lbnUiCgojIERlYnVnCiNjYXQgIiRncnVibWVudSIKI3JtIC1m
ICIkZ3J1Ym1lbnUiCiNleGl0CgpudW1iZXI9CnByZWZpeD0KZW50cnk9MAppdGVtbm89MAp3aGls
ZSByZWFkIG1vZGUgdGl0bGUKZG8KCWNhc2UgIiRtb2RlIiBpbgoJTSkJZWNobyAiJHtudW1iZXJ9
JHtpdGVtbm99CSR7cHJlZml4fSR7dGl0bGV9IgoJCWl0ZW1ubz0kKCgkaXRlbW5vICsgMSkpCgkJ
ZW50cnk9MQoJCTs7CglTKQludW1iZXI9IiR7bnVtYmVyfSR7aXRlbW5vfT4iCgkJcHJlZml4PSIk
e3ByZWZpeH0ke3RpdGxlfT4iCgkJaXRlbW5vPTAKCQk7OwoJKikJaWYgWyAkZW50cnkgLW5lIDAg
XTsgdGhlbgoJCQllbnRyeT0wCgkJZWxpZiBbIC1uICIkbnVtYmVyIiBdOyB0aGVuCgkJCW51bWJl
cj0iJHtudW1iZXIlPn0iCgkJCXByZWZpeD0iJHtwcmVmaXglPn0iCgkJCWNhc2UgIiRudW1iZXIi
IGluCgkJCSoiPiIqKQlpdGVtbm89IiR7bnVtYmVyIyMqPn0iCgkJCQludW1iZXI9IiR7bnVtYmVy
JT4qfSIKCQkJCXByZWZpeD0iJHtwcmVmaXglPip9IgoJCQkJaXRlbW5vPSQoKCRpdGVtbm8gKyAx
KSkKCQkJCTs7CgkJCSopCWl0ZW1ubz0kbnVtYmVyCgkJCQlpdGVtbm89JCgoJGl0ZW1ubyArIDEp
KQoJCQkJcHJlZml4PQoJCQkJbnVtYmVyPQoJCQkJOzsKCQkJZXNhYwoJCWZpCgkJOzsKCWVzYWMK
ZG9uZSA8ICIkZ3J1Ym1lbnUiCnJtIC1mICIkZ3J1Ym1lbnUiCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>8002</attachid>
            <date>2019-02-08 02:00:13 +0300</date>
            <delta_ts>2019-02-08 02:00:13 +0300</delta_ts>
            <desc>Окончательная версия скрипта</desc>
            <filename>grub-entries</filename>
            <type>text/plain</type>
            <size>1186</size>
            <attacher name="Leonid Krivoshein">klark.devel</attacher>
            
              <data encoding="base64">IyEvYmluL3NoIC1lZnUKIyMjIFRoaXMgZmlsZSBpcyBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQojIyMgdmVyc2lvbiAyIG9yIGxhdGVyLgojIyMKIyMjIENvcHlyaWdo
dCAoQykgMjAxOSAgQUxUIExpbnV4IFRlYW0KIyMjIEF1dGhvcjogTGVvbmlkIEtyaXZvc2hlaW4g
PGtsYXJrQGFsdGxpbnV4Lm9yZz4KCmdydWJtZW51PSIkKG1rdGVtcCAtcSAiJHtUTVBESVItL3Rt
cH0vZ3J1Ym1lbnUtWFhYWFhYWFgudG1wIikiCgpzZWQgXAoJLXJlICcvXlxzKihtZW51ZW50cnlc
cyt8c3VibWVudVxzK3x9KS8hZCcgICAgIFwKCS1yZSAicy9eXHMqbWVudWVudHJ5XHMrJyhbXidd
KyknLipcJC9NCVwxL2ciIFwKCS1yZSAncy9eXHMqbWVudWVudHJ5XHMrIihbXiJdKykiLiokL00J
XDEvZycgXAoJLXJlICJzL15ccypzdWJtZW51XHMrJyhbXiddKyknLipcJC9TCVwxL2ciIFwKCS1y
ZSAncy9eXHMqc3VibWVudVxzKyIoW14iXSspIi4qJC9TCVwxL2cnIFwKCS1yZSAicy9eXHMqfVxz
KlwkL0UJLS9nIiA+ICIkZ3J1Ym1lbnUiCgpudW1iZXI9CnByZWZpeD0KZW50cnk9MAppdGVtbm89
MAp3aGlsZSByZWFkIG1vZGUgdGl0bGUKZG8KCWNhc2UgIiRtb2RlIiBpbgoJTSkJZWNobyAiJHtu
dW1iZXJ9JHtpdGVtbm99CSR7cHJlZml4fSR7dGl0bGV9IgoJCWl0ZW1ubz0kKCgkaXRlbW5vICsg
MSkpCgkJZW50cnk9MQoJCTs7CglTKQludW1iZXI9IiR7bnVtYmVyfSR7aXRlbW5vfT4iCgkJcHJl
Zml4PSIke3ByZWZpeH0ke3RpdGxlfT4iCgkJaXRlbW5vPTAKCQk7OwoJKikJaWYgWyAkZW50cnkg
LW5lIDAgXTsgdGhlbgoJCQllbnRyeT0wCgkJZWxpZiBbIC1uICIkbnVtYmVyIiBdOyB0aGVuCgkJ
CW51bWJlcj0iJHtudW1iZXIlPn0iCgkJCXByZWZpeD0iJHtwcmVmaXglPn0iCgkJCWNhc2UgIiRu
dW1iZXIiIGluCgkJCSoiPiIqKQlpdGVtbm89IiR7bnVtYmVyIyMqPn0iCgkJCQludW1iZXI9IiR7
bnVtYmVyJT4qfT4iCgkJCQlwcmVmaXg9IiR7cHJlZml4JT4qfT4iCgkJCQlpdGVtbm89JCgoJGl0
ZW1ubyArIDEpKQoJCQkJOzsKCQkJKikJaXRlbW5vPSRudW1iZXIKCQkJCWl0ZW1ubz0kKCgkaXRl
bW5vICsgMSkpCgkJCQlwcmVmaXg9CgkJCQludW1iZXI9CgkJCQk7OwoJCQllc2FjCgkJZmkKCQk7
OwoJZXNhYwpkb25lIDwgIiRncnVibWVudSIKcm0gLWYgIiRncnVibWVudSIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>8003</attachid>
            <date>2019-02-08 09:20:51 +0300</date>
            <delta_ts>2019-02-08 09:20:51 +0300</delta_ts>
            <desc>пример grub.cfg, ALT p8, с memtest, два уровня, с переходом на первый</desc>
            <filename>grub.cfg</filename>
            <type>application/octet-stream</type>
            <size>16279</size>
            <attacher name="Sergey Y. Afonin">asy</attacher>
            
              <data encoding="base64">IwojIERPIE5PVCBFRElUIFRISVMgRklMRQojCiMgSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0
ZWQgYnkgZ3J1Yi1ta2NvbmZpZyB1c2luZyB0ZW1wbGF0ZXMKIyBmcm9tIC9ldGMvZ3J1Yi5kIGFu
ZCBzZXR0aW5ncyBmcm9tIC9ldGMvc3lzY29uZmlnL2dydWIyCiMKCiMjIyBCRUdJTiAvZXRjL2dy
dWIuZC8wMF9oZWFkZXIgIyMjCmlmIFsgLXMgJHByZWZpeC9ncnViZW52IF07IHRoZW4KICBsb2Fk
X2VudgpmaQppZiBbICIke25leHRfZW50cnl9IiBdIDsgdGhlbgogICBzZXQgZGVmYXVsdD0iJHtu
ZXh0X2VudHJ5fSIKICAgc2V0IG5leHRfZW50cnk9CiAgIHNhdmVfZW52IG5leHRfZW50cnkKICAg
c2V0IGJvb3Rfb25jZT10cnVlCmVsc2UKICAgc2V0IGRlZmF1bHQ9IiR7c2F2ZWRfZW50cnl9Igpm
aQoKaWYgWyB4IiR7ZmVhdHVyZV9tZW51ZW50cnlfaWR9IiA9IHh5IF07IHRoZW4KICBtZW51ZW50
cnlfaWRfb3B0aW9uPSItLWlkIgplbHNlCiAgbWVudWVudHJ5X2lkX29wdGlvbj0iIgpmaQoKZXhw
b3J0IG1lbnVlbnRyeV9pZF9vcHRpb24KCmlmIFsgIiR7cHJldl9zYXZlZF9lbnRyeX0iIF07IHRo
ZW4KICBzZXQgc2F2ZWRfZW50cnk9IiR7cHJldl9zYXZlZF9lbnRyeX0iCiAgc2F2ZV9lbnYgc2F2
ZWRfZW50cnkKICBzZXQgcHJldl9zYXZlZF9lbnRyeT0KICBzYXZlX2VudiBwcmV2X3NhdmVkX2Vu
dHJ5CiAgc2V0IGJvb3Rfb25jZT10cnVlCmZpCgpmdW5jdGlvbiBzYXZlZGVmYXVsdCB7CiAgaWYg
WyAteiAiJHtib290X29uY2V9IiBdOyB0aGVuCiAgICBzYXZlZF9lbnRyeT0iJHtjaG9zZW59Igog
ICAgc2F2ZV9lbnYgc2F2ZWRfZW50cnkKICBmaQp9CgpmdW5jdGlvbiBsb2FkX3ZpZGVvIHsKICBp
ZiBbIHgkZmVhdHVyZV9hbGxfdmlkZW9fbW9kdWxlID0geHkgXTsgdGhlbgogICAgaW5zbW9kIGFs
bF92aWRlbwogIGVsc2UKICAgIGluc21vZCBlZmlfZ29wCiAgICBpbnNtb2QgZWZpX3VnYQogICAg
aW5zbW9kIGllZWUxMjc1X2ZiCiAgICBpbnNtb2QgdmJlCiAgICBpbnNtb2QgdmdhCiAgICBpbnNt
b2QgdmlkZW9fYm9jaHMKICAgIGluc21vZCB2aWRlb19jaXJydXMKICBmaQp9CgppZiBbIHgkZmVh
dHVyZV9kZWZhdWx0X2ZvbnRfcGF0aCA9IHh5IF0gOyB0aGVuCiAgIGZvbnQ9dW5pY29kZQplbHNl
Cmluc21vZCBwYXJ0X21zZG9zCmluc21vZCBleHQyCnNldCByb290PSdoZDAsbXNkb3MxJwppZiBb
IHgkZmVhdHVyZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4KICBzZWFyY2ggLS1u
by1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgLS1oaW50LWJpb3M9aGQwLG1zZG9zMSAtLWhp
bnQtZWZpPWhkMCxtc2RvczEgLS1oaW50LWJhcmVtZXRhbD1haGNpMCxtc2RvczEgIDk5MGZlMGRm
LWFkZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgplbHNlCiAgc2VhcmNoIC0tbm8tZmxvcHB5IC0t
ZnMtdXVpZCAtLXNldD1yb290IDk5MGZlMGRmLWFkZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgpm
aQogICAgZm9udD0iL2dydWIvdW5pZm9udC5wZjIiCmZpCgppZiBsb2FkZm9udCAkZm9udCA7IHRo
ZW4KICBzZXQgZ2Z4bW9kZT04MDB4NjAwCiAgbG9hZF92aWRlbwogIGluc21vZCBnZnh0ZXJtCiAg
c2V0IGxvY2FsZV9kaXI9JHByZWZpeC9sb2NhbGUKICBzZXQgbGFuZz1ydV9SVQogIGluc21vZCBn
ZXR0ZXh0CmZpCnRlcm1pbmFsX291dHB1dCBnZnh0ZXJtCmlmIFsgeCRmZWF0dXJlX3RpbWVvdXRf
c3R5bGUgPSB4eSBdIDsgdGhlbgogIHNldCB0aW1lb3V0X3N0eWxlPW1lbnUKICBzZXQgdGltZW91
dD01CiMgRmFsbGJhY2sgbm9ybWFsIHRpbWVvdXQgY29kZSBpbiBjYXNlIHRoZSB0aW1lb3V0X3N0
eWxlIGZlYXR1cmUgaXMKIyB1bmF2YWlsYWJsZS4KZWxzZQogIHNldCB0aW1lb3V0PTUKZmkKIyBp
bnRlcnJ1cHQgZ3J1YiBib290aW5nIHByb2Nlc3MgaWYgc2hpZnQga2V5IHByZXNzZWQKaWYga2V5
c3RhdHVzIC0tc2hpZnQ7dGhlbgogIHNldCB0aW1lb3V0PS0xCmZpCiMjIyBFTkQgL2V0Yy9ncnVi
LmQvMDBfaGVhZGVyICMjIwoKIyMjIEJFR0lOIC9ldGMvZ3J1Yi5kLzA1X2FsdGxpbnV4X3RoZW1l
ICMjIwpzZXQgbWVudV9jb2xvcl9ub3JtYWw9d2hpdGUvYmxhY2sKc2V0IG1lbnVfY29sb3JfaGln
aGxpZ2h0PWJsYWNrL2xpZ2h0LWdyYXkKIyMjIEVORCAvZXRjL2dydWIuZC8wNV9hbHRsaW51eF90
aGVtZSAjIyMKCiMjIyBCRUdJTiAvZXRjL2dydWIuZC8xMF9saW51eCAjIyMKbWVudWVudHJ5ICdB
TFQgcDggc3RhcnRlciBraXQnIC0tY2xhc3MgZ251LWxpbnV4IC0tY2xhc3MgZ251IC0tY2xhc3Mg
b3MgLS11bnJlc3RyaWN0ZWQgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ2dudWxpbnV4LXNpbXBsZS05
N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjMnIHsKCWxvYWRfdmlkZW8KCWluc21v
ZCBnemlvCglpbnNtb2QgcGFydF9tc2RvcwoJaW5zbW9kIGV4dDIKCXNldCByb290PSdoZDAsbXNk
b3MxJwoJaWYgWyB4JGZlYXR1cmVfcGxhdGZvcm1fc2VhcmNoX2hpbnQgPSB4eSBdOyB0aGVuCgkg
IHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDAs
bXNkb3MxIC0taGludC1lZmk9aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFsPWFoY2kwLG1zZG9z
MSAgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgllbHNlCgkgIHNlYXJjaCAt
LW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0w
OTllZDQwMzM5MzIKCWZpCgllY2hvCSdMb2FkaW5nIExpbnV4IHZtbGludXogLi4uJwoJbGludXgJ
L3ZtbGludXogcm9vdD1VVUlEPTk3ZGM1NWUwLTU2YjItNGYzMy1hZTVhLWEwYzlkMmM1ZGFmMyBy
byBwYW5pYz0zMCBzcGxhc2gKCWVjaG8JJ0xvYWRpbmcgaW5pdGlhbCByYW1kaXNrIC4uLicKCWlu
aXRyZAkvaW5pdHJkLmltZwp9CnN1Ym1lbnUgJ0FkdmFuY2VkIG9wdGlvbnMgZm9yIEFMVCBwOCBz
dGFydGVyIGtpdCcgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ2dudWxpbnV4LWFkdmFuY2VkLTk3ZGM1
NWUwLTU2YjItNGYzMy1hZTVhLWEwYzlkMmM1ZGFmMycgewoJbWVudWVudHJ5ICdBTFQgcDggc3Rh
cnRlciBraXQsIHZtbGludXonIC0tY2xhc3MgZ251LWxpbnV4IC0tY2xhc3MgZ251IC0tY2xhc3Mg
b3MgLS11bnJlc3RyaWN0ZWQgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ2dudWxpbnV4LXZtbGludXot
YWR2YW5jZWQtOTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzJyB7CgkJbG9hZF92
aWRlbwoJCWluc21vZCBnemlvCgkJaW5zbW9kIHBhcnRfbXNkb3MKCQlpbnNtb2QgZXh0MgoJCXNl
dCByb290PSdoZDAsbXNkb3MxJwoJCWlmIFsgeCRmZWF0dXJlX3BsYXRmb3JtX3NlYXJjaF9oaW50
ID0geHkgXTsgdGhlbgoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290
IC0taGludC1iaW9zPWhkMCxtc2RvczEgLS1oaW50LWVmaT1oZDAsbXNkb3MxIC0taGludC1iYXJl
bWV0YWw9YWhjaTAsbXNkb3MxICA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0wOTllZDQwMzM5MzIK
CQllbHNlCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgOTkwZmUw
ZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZmkKCQllY2hvCSdMb2FkaW5nIExpbnV4
IHZtbGludXogLi4uJwoJCWxpbnV4CS92bWxpbnV6IHJvb3Q9VVVJRD05N2RjNTVlMC01NmIyLTRm
MzMtYWU1YS1hMGM5ZDJjNWRhZjMgcm8gcGFuaWM9MzAgc3BsYXNoCgkJZWNobwknTG9hZGluZyBp
bml0aWFsIHJhbWRpc2sgLi4uJwoJCWluaXRyZAkvaW5pdHJkLmltZwoJfQoJbWVudWVudHJ5ICdB
TFQgcDggc3RhcnRlciBraXQsIHZtbGludXogKHJlY292ZXJ5IG1vZGUpJyAtLWNsYXNzIGdudS1s
aW51eCAtLWNsYXNzIGdudSAtLWNsYXNzIG9zIC0tdW5yZXN0cmljdGVkICRtZW51ZW50cnlfaWRf
b3B0aW9uICdnbnVsaW51eC12bWxpbnV6LXJlY292ZXJ5LTk3ZGM1NWUwLTU2YjItNGYzMy1hZTVh
LWEwYzlkMmM1ZGFmMycgewoJCWxvYWRfdmlkZW8KCQlpbnNtb2QgZ3ppbwoJCWluc21vZCBwYXJ0
X21zZG9zCgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9vdD0naGQwLG1zZG9zMScKCQlpZiBbIHgkZmVh
dHVyZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4KCQkgIHNlYXJjaCAtLW5vLWZs
b3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDAsbXNkb3MxIC0taGludC1l
Zmk9aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFsPWFoY2kwLG1zZG9zMSAgOTkwZmUwZGYtYWRl
NS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZWxzZQoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0t
ZnMtdXVpZCAtLXNldD1yb290IDk5MGZlMGRmLWFkZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgoJ
CWZpCgkJZWNobwknTG9hZGluZyBMaW51eCB2bWxpbnV6IC4uLicKCQlsaW51eAkvdm1saW51eiBy
b290PVVVSUQ9OTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzIHJvIGZhaWxzYWZl
IHZnYT1ub3JtYWwKCQllY2hvCSdMb2FkaW5nIGluaXRpYWwgcmFtZGlzayAuLi4nCgkJaW5pdHJk
CS9pbml0cmQuaW1nCgl9CgltZW51ZW50cnkgJ0FMVCBwOCBzdGFydGVyIGtpdCwgNC45LjE1NC1z
dGQtZGVmLWFsdDAuTTgwUC4xJyAtLWNsYXNzIGdudS1saW51eCAtLWNsYXNzIGdudSAtLWNsYXNz
IG9zIC0tdW5yZXN0cmljdGVkICRtZW51ZW50cnlfaWRfb3B0aW9uICdnbnVsaW51eC00LjkuMTU0
LXN0ZC1kZWYtYWx0MC5NODBQLjEtYWR2YW5jZWQtOTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBj
OWQyYzVkYWYzJyB7CgkJbG9hZF92aWRlbwoJCXNldCBnZnhwYXlsb2FkPWtlZXAKCQlpbnNtb2Qg
Z3ppbwoJCWluc21vZCBwYXJ0X21zZG9zCgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9vdD0naGQwLG1z
ZG9zMScKCQlpZiBbIHgkZmVhdHVyZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4K
CQkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1o
ZDAsbXNkb3MxIC0taGludC1lZmk9aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFsPWFoY2kwLG1z
ZG9zMSAgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZWxzZQoJCSAgc2Vh
cmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290IDk5MGZlMGRmLWFkZTUtNDJhOC1h
Mjk1LTA5OWVkNDAzMzkzMgoJCWZpCgkJZWNobwknTG9hZGluZyBMaW51eCA0LjkuMTU0LXN0ZC1k
ZWYtYWx0MC5NODBQLjEgLi4uJwoJCWxpbnV4CS92bWxpbnV6LTQuOS4xNTQtc3RkLWRlZi1hbHQw
Lk04MFAuMSByb290PVVVSUQ9OTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzIHJv
IHBhbmljPTMwIHNwbGFzaAoJCWVjaG8JJ0xvYWRpbmcgaW5pdGlhbCByYW1kaXNrIC4uLicKCQlp
bml0cmQJL2luaXRyZC00LjkuMTU0LXN0ZC1kZWYtYWx0MC5NODBQLjEuaW1nCgl9CgltZW51ZW50
cnkgJ0FMVCBwOCBzdGFydGVyIGtpdCwgNC40LjExNi1zdGQtZGVmLWFsdDAuTTgwQy4xJyAtLWNs
YXNzIGdudS1saW51eCAtLWNsYXNzIGdudSAtLWNsYXNzIG9zIC0tdW5yZXN0cmljdGVkICRtZW51
ZW50cnlfaWRfb3B0aW9uICdnbnVsaW51eC00LjQuMTE2LXN0ZC1kZWYtYWx0MC5NODBDLjEtYWR2
YW5jZWQtOTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzJyB7CgkJbG9hZF92aWRl
bwoJCXNldCBnZnhwYXlsb2FkPWtlZXAKCQlpbnNtb2QgZ3ppbwoJCWluc21vZCBwYXJ0X21zZG9z
CgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9vdD0naGQwLG1zZG9zMScKCQlpZiBbIHgkZmVhdHVyZV9w
bGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4KCQkgIHNlYXJjaCAtLW5vLWZsb3BweSAt
LWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDAsbXNkb3MxIC0taGludC1lZmk9aGQw
LG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFsPWFoY2kwLG1zZG9zMSAgOTkwZmUwZGYtYWRlNS00MmE4
LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZWxzZQoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVp
ZCAtLXNldD1yb290IDk5MGZlMGRmLWFkZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgoJCWZpCgkJ
ZWNobwknTG9hZGluZyBMaW51eCA0LjQuMTE2LXN0ZC1kZWYtYWx0MC5NODBDLjEgLi4uJwoJCWxp
bnV4CS92bWxpbnV6LTQuNC4xMTYtc3RkLWRlZi1hbHQwLk04MEMuMSByb290PVVVSUQ9OTdkYzU1
ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzIHJvIHBhbmljPTMwIHNwbGFzaAoJCWVjaG8J
J0xvYWRpbmcgaW5pdGlhbCByYW1kaXNrIC4uLicKCQlpbml0cmQJL2luaXRyZC00LjQuMTE2LXN0
ZC1kZWYtYWx0MC5NODBDLjEuaW1nCgl9CgltZW51ZW50cnkgJ0FMVCBwOCBzdGFydGVyIGtpdCwg
NC40LjE0My1zdGQtZGVmLWFsdDAuTTcwQy4xJyAtLWNsYXNzIGdudS1saW51eCAtLWNsYXNzIGdu
dSAtLWNsYXNzIG9zIC0tdW5yZXN0cmljdGVkICRtZW51ZW50cnlfaWRfb3B0aW9uICdnbnVsaW51
eC00LjQuMTQzLXN0ZC1kZWYtYWx0MC5NNzBDLjEtYWR2YW5jZWQtOTdkYzU1ZTAtNTZiMi00ZjMz
LWFlNWEtYTBjOWQyYzVkYWYzJyB7CgkJbG9hZF92aWRlbwoJCXNldCBnZnhwYXlsb2FkPWtlZXAK
CQlpbnNtb2QgZ3ppbwoJCWluc21vZCBwYXJ0X21zZG9zCgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9v
dD0naGQwLG1zZG9zMScKCQlpZiBbIHgkZmVhdHVyZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5
IF07IHRoZW4KCQkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhp
bnQtYmlvcz1oZDAsbXNkb3MxIC0taGludC1lZmk9aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFs
PWFoY2kwLG1zZG9zMSAgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZWxz
ZQoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290IDk5MGZlMGRmLWFk
ZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgoJCWZpCgkJZWNobwknTG9hZGluZyBMaW51eCA0LjQu
MTQzLXN0ZC1kZWYtYWx0MC5NNzBDLjEgLi4uJwoJCWxpbnV4CS92bWxpbnV6LTQuNC4xNDMtc3Rk
LWRlZi1hbHQwLk03MEMuMSByb290PVVVSUQ9OTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQy
YzVkYWYzIHJvIHBhbmljPTMwIHNwbGFzaAoJCWVjaG8JJ0xvYWRpbmcgaW5pdGlhbCByYW1kaXNr
IC4uLicKCQlpbml0cmQJL2luaXRyZC00LjQuMTQzLXN0ZC1kZWYtYWx0MC5NNzBDLjEuaW1nCgl9
CgltZW51ZW50cnkgJ0FMVCBwOCBzdGFydGVyIGtpdCwgNC40LjY4LXN0ZC1kZWYtYWx0MC5NODBQ
LjInIC0tY2xhc3MgZ251LWxpbnV4IC0tY2xhc3MgZ251IC0tY2xhc3Mgb3MgLS11bnJlc3RyaWN0
ZWQgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ2dudWxpbnV4LTQuNC42OC1zdGQtZGVmLWFsdDAuTTgw
UC4yLWFkdmFuY2VkLTk3ZGM1NWUwLTU2YjItNGYzMy1hZTVhLWEwYzlkMmM1ZGFmMycgewoJCWxv
YWRfdmlkZW8KCQlzZXQgZ2Z4cGF5bG9hZD1rZWVwCgkJaW5zbW9kIGd6aW8KCQlpbnNtb2QgcGFy
dF9tc2RvcwoJCWluc21vZCBleHQyCgkJc2V0IHJvb3Q9J2hkMCxtc2RvczEnCgkJaWYgWyB4JGZl
YXR1cmVfcGxhdGZvcm1fc2VhcmNoX2hpbnQgPSB4eSBdOyB0aGVuCgkJICBzZWFyY2ggLS1uby1m
bG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgLS1oaW50LWJpb3M9aGQwLG1zZG9zMSAtLWhpbnQt
ZWZpPWhkMCxtc2RvczEgLS1oaW50LWJhcmVtZXRhbD1haGNpMCxtc2RvczEgIDk5MGZlMGRmLWFk
ZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgoJCWVsc2UKCQkgIHNlYXJjaCAtLW5vLWZsb3BweSAt
LWZzLXV1aWQgLS1zZXQ9cm9vdCA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0wOTllZDQwMzM5MzIK
CQlmaQoJCWVjaG8JJ0xvYWRpbmcgTGludXggNC40LjY4LXN0ZC1kZWYtYWx0MC5NODBQLjIgLi4u
JwoJCWxpbnV4CS92bWxpbnV6LTQuNC42OC1zdGQtZGVmLWFsdDAuTTgwUC4yIHJvb3Q9VVVJRD05
N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjMgcm8gcGFuaWM9MzAgc3BsYXNoCgkJ
ZWNobwknTG9hZGluZyBpbml0aWFsIHJhbWRpc2sgLi4uJwoJCWluaXRyZAkvaW5pdHJkLTQuNC42
OC1zdGQtZGVmLWFsdDAuTTgwUC4yLmltZwoJfQp9CgojIyMgRU5EIC9ldGMvZ3J1Yi5kLzEwX2xp
bnV4ICMjIwoKIyMjIEJFR0lOIC9ldGMvZ3J1Yi5kLzIwX2xpbnV4X3hlbiAjIyMKCiMjIyBFTkQg
L2V0Yy9ncnViLmQvMjBfbGludXhfeGVuICMjIwoKIyMjIEJFR0lOIC9ldGMvZ3J1Yi5kLzMwX29z
LXByb2JlciAjIyMKIyMjIEVORCAvZXRjL2dydWIuZC8zMF9vcy1wcm9iZXIgIyMjCgojIyMgQkVH
SU4gL2V0Yy9ncnViLmQvMzBfdWVmaS1maXJtd2FyZSAjIyMKIyMjIEVORCAvZXRjL2dydWIuZC8z
MF91ZWZpLWZpcm13YXJlICMjIwoKIyMjIEJFR0lOIC9ldGMvZ3J1Yi5kLzM5X21lbXRlc3QgIyMj
Cm1lbnVlbnRyeSAiTWVtdGVzdDg2Ky01LjAxIiB7CglpbnNtb2QgcGFydF9tc2RvcwoJaW5zbW9k
IGV4dDIKCXNldCByb290PSdoZDAsbXNkb3MxJwoJaWYgWyB4JGZlYXR1cmVfcGxhdGZvcm1fc2Vh
cmNoX2hpbnQgPSB4eSBdOyB0aGVuCgkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1z
ZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDAsbXNkb3MxIC0taGludC1lZmk9aGQwLG1zZG9zMSAtLWhp
bnQtYmFyZW1ldGFsPWFoY2kwLG1zZG9zMSAgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0
MDMzOTMyCgllbHNlCgkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCA5
OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0wOTllZDQwMzM5MzIKCWZpCglsaW51eDE2IC9tZW10ZXN0
LTUuMDEuYmluCn0KIyMjIEVORCAvZXRjL2dydWIuZC8zOV9tZW10ZXN0ICMjIwoKc3VibWVudSAn
QWR2YW5jZWQgb3B0aW9ucyBmb3IgQUxUIHA4IHN0YXJ0ZXIga2l0IDInICRtZW51ZW50cnlfaWRf
b3B0aW9uICdnbnVsaW51eC1hZHZhbmNlZC05N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJj
NWRhZjQnIHsKICAgIHN1Ym1lbnUgJ0FkdmFuY2VkIG9wdGlvbnMgZm9yIEFMVCBwOCBzdGFydGVy
IGtpdCAzJyAkbWVudWVudHJ5X2lkX29wdGlvbiAnZ251bGludXgtYWR2YW5jZWQtOTdkYzU1ZTAt
NTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWY1JyB7CgltZW51ZW50cnkgJ0FMVCBwOCBzdGFydGVy
IGtpdCwgdm1saW51eicgLS1jbGFzcyBnbnUtbGludXggLS1jbGFzcyBnbnUgLS1jbGFzcyBvcyAt
LXVucmVzdHJpY3RlZCAkbWVudWVudHJ5X2lkX29wdGlvbiAnZ251bGludXgtdm1saW51ei1hZHZh
bmNlZC05N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjMnIHsKCQlsb2FkX3ZpZGVv
CgkJaW5zbW9kIGd6aW8KCQlpbnNtb2QgcGFydF9tc2RvcwoJCWluc21vZCBleHQyCgkJc2V0IHJv
b3Q9J2hkMCxtc2RvczEnCgkJaWYgWyB4JGZlYXR1cmVfcGxhdGZvcm1fc2VhcmNoX2hpbnQgPSB4
eSBdOyB0aGVuCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgLS1o
aW50LWJpb3M9aGQwLG1zZG9zMSAtLWhpbnQtZWZpPWhkMCxtc2RvczEgLS1oaW50LWJhcmVtZXRh
bD1haGNpMCxtc2RvczEgIDk5MGZlMGRmLWFkZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgoJCWVs
c2UKCQkgIHNlYXJjaCAtLW5vLWZsb3BweSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCA5OTBmZTBkZi1h
ZGU1LTQyYTgtYTI5NS0wOTllZDQwMzM5MzIKCQlmaQoJCWVjaG8JJ0xvYWRpbmcgTGludXggdm1s
aW51eiAuLi4nCgkJbGludXgJL3ZtbGludXogcm9vdD1VVUlEPTk3ZGM1NWUwLTU2YjItNGYzMy1h
ZTVhLWEwYzlkMmM1ZGFmMyBybyBwYW5pYz0zMCBzcGxhc2gKCQllY2hvCSdMb2FkaW5nIGluaXRp
YWwgcmFtZGlzayAuLi4nCgkJaW5pdHJkCS9pbml0cmQuaW1nCgl9CgltZW51ZW50cnkgJ0FMVCBw
OCBzdGFydGVyIGtpdCwgdm1saW51eiAocmVjb3ZlcnkgbW9kZSknIC0tY2xhc3MgZ251LWxpbnV4
IC0tY2xhc3MgZ251IC0tY2xhc3Mgb3MgLS11bnJlc3RyaWN0ZWQgJG1lbnVlbnRyeV9pZF9vcHRp
b24gJ2dudWxpbnV4LXZtbGludXotcmVjb3ZlcnktOTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBj
OWQyYzVkYWYzJyB7CgkJbG9hZF92aWRlbwoJCWluc21vZCBnemlvCgkJaW5zbW9kIHBhcnRfbXNk
b3MKCQlpbnNtb2QgZXh0MgoJCXNldCByb290PSdoZDAsbXNkb3MxJwoJCWlmIFsgeCRmZWF0dXJl
X3BsYXRmb3JtX3NlYXJjaF9oaW50ID0geHkgXTsgdGhlbgoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5
IC0tZnMtdXVpZCAtLXNldD1yb290IC0taGludC1iaW9zPWhkMCxtc2RvczEgLS1oaW50LWVmaT1o
ZDAsbXNkb3MxIC0taGludC1iYXJlbWV0YWw9YWhjaTAsbXNkb3MxICA5OTBmZTBkZi1hZGU1LTQy
YTgtYTI5NS0wOTllZDQwMzM5MzIKCQllbHNlCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11
dWlkIC0tc2V0PXJvb3QgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZmkK
CQllY2hvCSdMb2FkaW5nIExpbnV4IHZtbGludXogLi4uJwoJCWxpbnV4CS92bWxpbnV6IHJvb3Q9
VVVJRD05N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjMgcm8gZmFpbHNhZmUgdmdh
PW5vcm1hbAoJCWVjaG8JJ0xvYWRpbmcgaW5pdGlhbCByYW1kaXNrIC4uLicKCQlpbml0cmQJL2lu
aXRyZC5pbWcKCX0KCW1lbnVlbnRyeSAnQUxUIHA4IHN0YXJ0ZXIga2l0LCA0LjkuMTU0LXN0ZC1k
ZWYtYWx0MC5NODBQLjEnIC0tY2xhc3MgZ251LWxpbnV4IC0tY2xhc3MgZ251IC0tY2xhc3Mgb3Mg
LS11bnJlc3RyaWN0ZWQgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ2dudWxpbnV4LTQuOS4xNTQtc3Rk
LWRlZi1hbHQwLk04MFAuMS1hZHZhbmNlZC05N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJj
NWRhZjMnIHsKCQlsb2FkX3ZpZGVvCgkJc2V0IGdmeHBheWxvYWQ9a2VlcAoJCWluc21vZCBnemlv
CgkJaW5zbW9kIHBhcnRfbXNkb3MKCQlpbnNtb2QgZXh0MgoJCXNldCByb290PSdoZDAsbXNkb3Mx
JwoJCWlmIFsgeCRmZWF0dXJlX3BsYXRmb3JtX3NlYXJjaF9oaW50ID0geHkgXTsgdGhlbgoJCSAg
c2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290IC0taGludC1iaW9zPWhkMCxt
c2RvczEgLS1oaW50LWVmaT1oZDAsbXNkb3MxIC0taGludC1iYXJlbWV0YWw9YWhjaTAsbXNkb3Mx
ICA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0wOTllZDQwMzM5MzIKCQllbHNlCgkJICBzZWFyY2gg
LS1uby1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUt
MDk5ZWQ0MDMzOTMyCgkJZmkKCQllY2hvCSdMb2FkaW5nIExpbnV4IDQuOS4xNTQtc3RkLWRlZi1h
bHQwLk04MFAuMSAuLi4nCgkJbGludXgJL3ZtbGludXotNC45LjE1NC1zdGQtZGVmLWFsdDAuTTgw
UC4xIHJvb3Q9VVVJRD05N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjMgcm8gcGFu
aWM9MzAgc3BsYXNoCgkJZWNobwknTG9hZGluZyBpbml0aWFsIHJhbWRpc2sgLi4uJwoJCWluaXRy
ZAkvaW5pdHJkLTQuOS4xNTQtc3RkLWRlZi1hbHQwLk04MFAuMS5pbWcKCX0KCW1lbnVlbnRyeSAn
QUxUIHA4IHN0YXJ0ZXIga2l0LCA0LjQuMTE2LXN0ZC1kZWYtYWx0MC5NODBDLjEnIC0tY2xhc3Mg
Z251LWxpbnV4IC0tY2xhc3MgZ251IC0tY2xhc3Mgb3MgLS11bnJlc3RyaWN0ZWQgJG1lbnVlbnRy
eV9pZF9vcHRpb24gJ2dudWxpbnV4LTQuNC4xMTYtc3RkLWRlZi1hbHQwLk04MEMuMS1hZHZhbmNl
ZC05N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjMnIHsKCQlsb2FkX3ZpZGVvCgkJ
c2V0IGdmeHBheWxvYWQ9a2VlcAoJCWluc21vZCBnemlvCgkJaW5zbW9kIHBhcnRfbXNkb3MKCQlp
bnNtb2QgZXh0MgoJCXNldCByb290PSdoZDAsbXNkb3MxJwoJCWlmIFsgeCRmZWF0dXJlX3BsYXRm
b3JtX3NlYXJjaF9oaW50ID0geHkgXTsgdGhlbgoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMt
dXVpZCAtLXNldD1yb290IC0taGludC1iaW9zPWhkMCxtc2RvczEgLS1oaW50LWVmaT1oZDAsbXNk
b3MxIC0taGludC1iYXJlbWV0YWw9YWhjaTAsbXNkb3MxICA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5
NS0wOTllZDQwMzM5MzIKCQllbHNlCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0t
c2V0PXJvb3QgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZmkKCQllY2hv
CSdMb2FkaW5nIExpbnV4IDQuNC4xMTYtc3RkLWRlZi1hbHQwLk04MEMuMSAuLi4nCgkJbGludXgJ
L3ZtbGludXotNC40LjExNi1zdGQtZGVmLWFsdDAuTTgwQy4xIHJvb3Q9VVVJRD05N2RjNTVlMC01
NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjMgcm8gcGFuaWM9MzAgc3BsYXNoCgkJZWNobwknTG9h
ZGluZyBpbml0aWFsIHJhbWRpc2sgLi4uJwoJCWluaXRyZAkvaW5pdHJkLTQuNC4xMTYtc3RkLWRl
Zi1hbHQwLk04MEMuMS5pbWcKCX0KCW1lbnVlbnRyeSAnQUxUIHA4IHN0YXJ0ZXIga2l0LCA0LjQu
MTQzLXN0ZC1kZWYtYWx0MC5NNzBDLjEnIC0tY2xhc3MgZ251LWxpbnV4IC0tY2xhc3MgZ251IC0t
Y2xhc3Mgb3MgLS11bnJlc3RyaWN0ZWQgJG1lbnVlbnRyeV9pZF9vcHRpb24gJ2dudWxpbnV4LTQu
NC4xNDMtc3RkLWRlZi1hbHQwLk03MEMuMS1hZHZhbmNlZC05N2RjNTVlMC01NmIyLTRmMzMtYWU1
YS1hMGM5ZDJjNWRhZjMnIHsKCQlsb2FkX3ZpZGVvCgkJc2V0IGdmeHBheWxvYWQ9a2VlcAoJCWlu
c21vZCBnemlvCgkJaW5zbW9kIHBhcnRfbXNkb3MKCQlpbnNtb2QgZXh0MgoJCXNldCByb290PSdo
ZDAsbXNkb3MxJwoJCWlmIFsgeCRmZWF0dXJlX3BsYXRmb3JtX3NlYXJjaF9oaW50ID0geHkgXTsg
dGhlbgoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1yb290IC0taGludC1i
aW9zPWhkMCxtc2RvczEgLS1oaW50LWVmaT1oZDAsbXNkb3MxIC0taGludC1iYXJlbWV0YWw9YWhj
aTAsbXNkb3MxICA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0wOTllZDQwMzM5MzIKCQllbHNlCgkJ
ICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgOTkwZmUwZGYtYWRlNS00
MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZmkKCQllY2hvCSdMb2FkaW5nIExpbnV4IDQuNC4xNDMt
c3RkLWRlZi1hbHQwLk03MEMuMSAuLi4nCgkJbGludXgJL3ZtbGludXotNC40LjE0My1zdGQtZGVm
LWFsdDAuTTcwQy4xIHJvb3Q9VVVJRD05N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRh
ZjMgcm8gcGFuaWM9MzAgc3BsYXNoCgkJZWNobwknTG9hZGluZyBpbml0aWFsIHJhbWRpc2sgLi4u
JwoJCWluaXRyZAkvaW5pdHJkLTQuNC4xNDMtc3RkLWRlZi1hbHQwLk03MEMuMS5pbWcKCX0KCW1l
bnVlbnRyeSAnQUxUIHA4IHN0YXJ0ZXIga2l0LCA0LjQuNjgtc3RkLWRlZi1hbHQwLk04MFAuMicg
LS1jbGFzcyBnbnUtbGludXggLS1jbGFzcyBnbnUgLS1jbGFzcyBvcyAtLXVucmVzdHJpY3RlZCAk
bWVudWVudHJ5X2lkX29wdGlvbiAnZ251bGludXgtNC40LjY4LXN0ZC1kZWYtYWx0MC5NODBQLjIt
YWR2YW5jZWQtOTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzJyB7CgkJbG9hZF92
aWRlbwoJCXNldCBnZnhwYXlsb2FkPWtlZXAKCQlpbnNtb2QgZ3ppbwoJCWluc21vZCBwYXJ0X21z
ZG9zCgkJaW5zbW9kIGV4dDIKCQlzZXQgcm9vdD0naGQwLG1zZG9zMScKCQlpZiBbIHgkZmVhdHVy
ZV9wbGF0Zm9ybV9zZWFyY2hfaGludCA9IHh5IF07IHRoZW4KCQkgIHNlYXJjaCAtLW5vLWZsb3Bw
eSAtLWZzLXV1aWQgLS1zZXQ9cm9vdCAtLWhpbnQtYmlvcz1oZDAsbXNkb3MxIC0taGludC1lZmk9
aGQwLG1zZG9zMSAtLWhpbnQtYmFyZW1ldGFsPWFoY2kwLG1zZG9zMSAgOTkwZmUwZGYtYWRlNS00
MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZWxzZQoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMt
dXVpZCAtLXNldD1yb290IDk5MGZlMGRmLWFkZTUtNDJhOC1hMjk1LTA5OWVkNDAzMzkzMgoJCWZp
CgkJZWNobwknTG9hZGluZyBMaW51eCA0LjQuNjgtc3RkLWRlZi1hbHQwLk04MFAuMiAuLi4nCgkJ
bGludXgJL3ZtbGludXotNC40LjY4LXN0ZC1kZWYtYWx0MC5NODBQLjIgcm9vdD1VVUlEPTk3ZGM1
NWUwLTU2YjItNGYzMy1hZTVhLWEwYzlkMmM1ZGFmMyBybyBwYW5pYz0zMCBzcGxhc2gKCQllY2hv
CSdMb2FkaW5nIGluaXRpYWwgcmFtZGlzayAuLi4nCgkJaW5pdHJkCS9pbml0cmQtNC40LjY4LXN0
ZC1kZWYtYWx0MC5NODBQLjIuaW1nCgl9CiAgICB9CiAgICBtZW51ZW50cnkgJ0FMVCBwOCBzdGFy
dGVyIGtpdCB0ZXN0IGVudHJ5IDEsIDQuNC42OC1zdGQtZGVmLWFsdDAuTTgwUC4yJyAtLWNsYXNz
IGdudS1saW51eCAtLWNsYXNzIGdudSAtLWNsYXNzIG9zIC0tdW5yZXN0cmljdGVkICRtZW51ZW50
cnlfaWRfb3B0aW9uICdnbnVsaW51eC00LjQuNjgtc3RkLWRlZi1hbHQwLk04MFAuMi1hZHZhbmNl
ZC05N2RjNTVlMC01NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjknIHsKCQlsb2FkX3ZpZGVvCgkJ
c2V0IGdmeHBheWxvYWQ9a2VlcAoJCWluc21vZCBnemlvCgkJaW5zbW9kIHBhcnRfbXNkb3MKCQlp
bnNtb2QgZXh0MgoJCXNldCByb290PSdoZDAsbXNkb3MxJwoJCWlmIFsgeCRmZWF0dXJlX3BsYXRm
b3JtX3NlYXJjaF9oaW50ID0geHkgXTsgdGhlbgoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMt
dXVpZCAtLXNldD1yb290IC0taGludC1iaW9zPWhkMCxtc2RvczEgLS1oaW50LWVmaT1oZDAsbXNk
b3MxIC0taGludC1iYXJlbWV0YWw9YWhjaTAsbXNkb3MxICA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5
NS0wOTllZDQwMzM5MzIKCQllbHNlCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0t
c2V0PXJvb3QgOTkwZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZmkKCQllY2hv
CSdMb2FkaW5nIExpbnV4IDQuNC42OC1zdGQtZGVmLWFsdDAuTTgwUC4yIC4uLicKCQlsaW51eAkv
dm1saW51ei00LjQuNjgtc3RkLWRlZi1hbHQwLk04MFAuMiByb290PVVVSUQ9OTdkYzU1ZTAtNTZi
Mi00ZjMzLWFlNWEtYTBjOWQyYzVkYWYzIHJvIHBhbmljPTMwIHNwbGFzaAoJCWVjaG8JJ0xvYWRp
bmcgaW5pdGlhbCByYW1kaXNrIC4uLicKCQlpbml0cmQJL2luaXRyZC00LjQuNjgtc3RkLWRlZi1h
bHQwLk04MFAuMi5pbWcKICAgIH0KfQptZW51ZW50cnkgJ0FMVCBwOCBzdGFydGVyIGtpdCB0ZXN0
IGVudHJ5IDIsIDQuNC42OC1zdGQtZGVmLWFsdDAuTTgwUC4yJyAtLWNsYXNzIGdudS1saW51eCAt
LWNsYXNzIGdudSAtLWNsYXNzIG9zIC0tdW5yZXN0cmljdGVkICRtZW51ZW50cnlfaWRfb3B0aW9u
ICdnbnVsaW51eC00LjQuNjgtc3RkLWRlZi1hbHQwLk04MFAuMi1hZHZhbmNlZC05N2RjNTVlMC01
NmIyLTRmMzMtYWU1YS1hMGM5ZDJjNWRhZjknIHsKCQlsb2FkX3ZpZGVvCgkJc2V0IGdmeHBheWxv
YWQ9a2VlcAoJCWluc21vZCBnemlvCgkJaW5zbW9kIHBhcnRfbXNkb3MKCQlpbnNtb2QgZXh0MgoJ
CXNldCByb290PSdoZDAsbXNkb3MxJwoJCWlmIFsgeCRmZWF0dXJlX3BsYXRmb3JtX3NlYXJjaF9o
aW50ID0geHkgXTsgdGhlbgoJCSAgc2VhcmNoIC0tbm8tZmxvcHB5IC0tZnMtdXVpZCAtLXNldD1y
b290IC0taGludC1iaW9zPWhkMCxtc2RvczEgLS1oaW50LWVmaT1oZDAsbXNkb3MxIC0taGludC1i
YXJlbWV0YWw9YWhjaTAsbXNkb3MxICA5OTBmZTBkZi1hZGU1LTQyYTgtYTI5NS0wOTllZDQwMzM5
MzIKCQllbHNlCgkJICBzZWFyY2ggLS1uby1mbG9wcHkgLS1mcy11dWlkIC0tc2V0PXJvb3QgOTkw
ZmUwZGYtYWRlNS00MmE4LWEyOTUtMDk5ZWQ0MDMzOTMyCgkJZmkKCQllY2hvCSdMb2FkaW5nIExp
bnV4IDQuNC42OC1zdGQtZGVmLWFsdDAuTTgwUC4yIC4uLicKCQlsaW51eAkvdm1saW51ei00LjQu
Njgtc3RkLWRlZi1hbHQwLk04MFAuMiByb290PVVVSUQ9OTdkYzU1ZTAtNTZiMi00ZjMzLWFlNWEt
YTBjOWQyYzVkYWYzIHJvIHBhbmljPTMwIHNwbGFzaAoJCWVjaG8JJ0xvYWRpbmcgaW5pdGlhbCBy
YW1kaXNrIC4uLicKCQlpbml0cmQJL2luaXRyZC00LjQuNjgtc3RkLWRlZi1hbHQwLk04MFAuMi5p
bWcKfQoKCiMjIyBCRUdJTiAvZXRjL2dydWIuZC80MF9jdXN0b20gIyMjCiMgVGhpcyBmaWxlIHBy
b3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGFkZCBjdXN0b20gbWVudSBlbnRyaWVzLiAgU2ltcGx5IHR5
cGUgdGhlCiMgbWVudSBlbnRyaWVzIHlvdSB3YW50IHRvIGFkZCBhZnRlciB0aGlzIGNvbW1lbnQu
ICBCZSBjYXJlZnVsIG5vdCB0byBjaGFuZ2UKIyB0aGUgJ2V4ZWMgdGFpbCcgbGluZSBhYm92ZS4K
IyMjIEVORCAvZXRjL2dydWIuZC80MF9jdXN0b20gIyMjCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>8004</attachid>
            <date>2019-02-08 09:24:04 +0300</date>
            <delta_ts>2019-02-08 09:24:04 +0300</delta_ts>
            <desc>Вариант скрипта без промежуточного файла</desc>
            <filename>grub-entries</filename>
            <type>application/octet-stream</type>
            <size>1131</size>
            <attacher name="Sergey Y. Afonin">asy</attacher>
            
              <data encoding="base64">IyEvYmluL3NoIC1lZnUKIyMjIFRoaXMgZmlsZSBpcyBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQojIyMgdmVyc2lvbiAyIG9yIGxhdGVyLgojIyMKIyMjIENvcHlyaWdo
dCAoQykgMjAxOSAgQUxUIExpbnV4IFRlYW0KIyMjIEF1dGhvcjogTGVvbmlkIEtyaXZvc2hlaW4g
PGtsYXJrQGFsdGxpbnV4Lm9yZz4KCm51bWJlcj0KcHJlZml4PQplbnRyeT0wCml0ZW1ubz0wCgpn
cnViY2ZnPSR7MS0vYm9vdC9ncnViL2dydWIuY2ZnfQoKY2F0ICIkZ3J1YmNmZyIgfCBzZWQgXAoJ
LXJlICcvXlxzKihtZW51ZW50cnlccyt8c3VibWVudVxzK3x9KS8hZCcgICAgIFwKCS1yZSAicy9e
XHMqbWVudWVudHJ5XHMrJyhbXiddKyknLipcJC9NCVwxL2ciIFwKCS1yZSAncy9eXHMqbWVudWVu
dHJ5XHMrIihbXiJdKykiLiokL00JXDEvZycgXAoJLXJlICJzL15ccypzdWJtZW51XHMrJyhbXidd
KyknLipcJC9TCVwxL2ciIFwKCS1yZSAncy9eXHMqc3VibWVudVxzKyIoW14iXSspIi4qJC9TCVwx
L2cnIFwKCS1yZSAicy9eXHMqfVxzKlwkL0UJLS9nIiB8IFwKd2hpbGUgcmVhZCBtb2RlIHRpdGxl
CmRvCgljYXNlICIkbW9kZSIgaW4KCU0pCWVjaG8gIiR7bnVtYmVyfSR7aXRlbW5vfQkke3ByZWZp
eH0ke3RpdGxlfSIKCQlpdGVtbm89JCgoJGl0ZW1ubyArIDEpKQoJCWVudHJ5PTEKCQk7OwoJUykJ
bnVtYmVyPSIke251bWJlcn0ke2l0ZW1ub30+IgoJCXByZWZpeD0iJHtwcmVmaXh9JHt0aXRsZX0+
IgoJCWl0ZW1ubz0wCgkJOzsKCSopCWlmIFsgJGVudHJ5IC1uZSAwIF07IHRoZW4KCQkJZW50cnk9
MAoJCWVsaWYgWyAtbiAiJG51bWJlciIgXTsgdGhlbgoJCQludW1iZXI9IiR7bnVtYmVyJT59IgoJ
CQlwcmVmaXg9IiR7cHJlZml4JT59IgoJCQljYXNlICIkbnVtYmVyIiBpbgoJCQkqIj4iKikJaXRl
bW5vPSIke251bWJlciMjKj59IgoJCQkJbnVtYmVyPSIke251bWJlciU+Kn0+IgoJCQkJcHJlZml4
PSIke3ByZWZpeCU+Kn0+IgoJCQkJaXRlbW5vPSQoKCRpdGVtbm8gKyAxKSkKCQkJCTs7CgkJCSop
CWl0ZW1ubz0kbnVtYmVyCgkJCQlpdGVtbm89JCgoJGl0ZW1ubyArIDEpKQoJCQkJcHJlZml4PQoJ
CQkJbnVtYmVyPQoJCQkJOzsKCQkJZXNhYwoJCWZpCgkJOzsKCWVzYWMKZG9uZQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>8007</attachid>
            <date>2019-02-08 16:41:13 +0300</date>
            <delta_ts>2019-02-08 16:41:13 +0300</delta_ts>
            <desc>Варинт скрипта с опциями и проверкой</desc>
            <filename>grub-entries</filename>
            <type>text/plain</type>
            <size>3129</size>
            <attacher name="Leonid Krivoshein">klark.devel</attacher>
            
              <data encoding="base64">IyEvYmluL3NoIC1lZnUKIyMjIFRoaXMgZmlsZSBpcyBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQojIyMgdmVyc2lvbiAyIG9yIGxhdGVyLgojIyMKIyMjIENvcHlyaWdo
dCAoQykgMjAxOSAgQUxUIExpbnV4IFRlYW0KIyMjIEF1dGhvcjogTGVvbmlkIEtyaXZvc2hlaW4g
PGtsYXJrQGFsdGxpbnV4Lm9yZz4KCm51bWJlcnNfb25seT0wCnRpdGxlc19vbmx5PTAKc2VhcmNo
X2l0ZW09CnByb2duYW1lPSIkezAjIyovfSIKZ3J1Ym1lbnU9Ii9ib290L2dydWIvZ3J1Yi5jZmci
CgoKc2hvd19oZWxwKCkgewoJY2F0IDw8LUVPRgokcHJvZ25hbWUgLSBTaG93IGRlZmF1bHQgb3Ig
c3BlY2lmaWVkIGdydWIgbWVudS4KClVzYWdlOiAkcHJvZ25hbWUgW29wdGlvbnNdCgpPcHRpb25z
OgogIC1mLCAtLWNvbmZpZz0gIFNwZWNpZnkgcGF0aCB0byB0aGUgZ3J1YiBjb25maWcuCiAgLW4s
IC0tbnVtYmVycyAgU2hvdyBvbmx5IG51bWJlcnMgb2YgdGhlIGl0ZW1zLgogIC10LCAtLXRpdGxl
cyAgIFNob3cgb25seSB0aXRsZXMgb2YgdGhlIGl0ZW1zLgogIC1jLCAtLWNoZWNrPSAgIFNwZWNp
ZnkgaXRlbSBuYW1lIHRvIHZhbGlkYXRlLgogIC1WLCAtLXZlcnNpb24gIFNob3cgc2NyaXB0IHZl
cnNpb24gYW5kIGV4aXQuCiAgLWgsIC0taGVscCAgICAgU2hvdyB0aGlzIGhlbHAgbWVzc2FnZSBh
bmQgZXhpdC4KRU9GCglleGl0IDAKfQoKc2hvd192ZXJzaW9uKCkgewoJY2F0IDw8LUVPRgokcHJv
Z25hbWUgdmVyc2lvbiAwLjkKQ29weXJpZ2h0IChDKSAyMDE5LCBBTFQgTGludXggVGVhbQpFT0YK
CWV4aXQgMAp9CgpzaG93X3VzYWdlKCkgewoJWyAteiAiJCoiIF0gfHwgZWNobyAiJCoiID4mMgoJ
ZWNobyAiVHJ5ICckcHJvZ25hbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMgoJ
ZXhpdCAxCn0KCnBhcnNlX2FyZ3MoKSB7Cglsb2NhbCBvcHRzPSIrZjosbix0LGM6LFYsaCIKCWxv
Y2FsIGxvbmdvcHRzPSJjb25maWc6LG51bWJlcnMsdGl0bGVzLGNoZWNrOix2ZXJzaW9uLGhlbHAi
CgoJb3B0cz0kKGdldG9wdCAtbiAiJHByb2duYW1lIiAtbyAiJG9wdHMiIC1sICIkbG9uZ29wdHMi
IC0tICIkQCIpIHx8CgkJc2hvd191c2FnZSAiSW52YWxpZCBjb21tYW5kLWxpbmUgYXJndW1lbnRz
LiIKCWV2YWwgc2V0IC0tICIkb3B0cyIKCXdoaWxlIFsgJCMgLWd0IDAgXTsgZG8KCQljYXNlICIk
MSIgaW4KCQktZnwtLWNvbmZpZykJc2hpZnQ7IGdydWJtZW51PSIkMSI7OwoJCS1ufC0tbnVtYmVy
cykJbnVtYmVyc19vbmx5PTE7IHRpdGxlc19vbmx5PTA7OwoJCS10fC0tdGl0bGVzKQludW1iZXJz
X29ubHk9MDsgdGl0bGVzX29ubHk9MTs7CgkJLWN8LS1jaGVjaykJc2hpZnQ7IHNlYXJjaF9pdGVt
PSIkMSI7OwoJCS1WfC0tdmVyc2lvbikJc2hvd192ZXJzaW9uOzsKCQktaHwtLWhlbHApCXNob3df
aGVscDs7CgkJLS0pCQlzaGlmdDsgYnJlYWs7OwoJCS0qKQkJc2hvd191c2FnZSAiVW5yZWNvZ25p
emVkIG9wdGlvbjogJyQxJyI7OwoJCSopCQlicmVhazs7CgkJZXNhYwoJCXNoaWZ0Cglkb25lCglb
ICQjIC1lcSAwIF0gfHwgc2hvd191c2FnZSAiVG8gbWFueSBhcmd1bWVudHM6ICckKiciCn0KCnNo
b3dfbWVudSgpIHsKCWxvY2FsIG1vZGUgdGl0bGUgbnVtYmVyIHByZWZpeCBlbnRyeT0wIGl0ZW1u
bz0wCgoJY2F0ICIkZ3J1Ym1lbnUiIHwgc2VkIFwKCQktcmUgJy9eXHMqKG1lbnVlbnRyeVxzK3xz
dWJtZW51XHMrfH0pLyFkJyBcCgkJLXJlICJzL15ccyptZW51ZW50cnlccysnKFteJ10rKScuKlwk
L01cdFwxL2ciIFwKCQktcmUgJ3MvXlxzKm1lbnVlbnRyeVxzKyIoW14iXSspIi4qJC9NXHRcMS9n
JyBcCgkJLXJlICJzL15ccypzdWJtZW51XHMrJyhbXiddKyknLipcJC9TXHRcMS9nIiBcCgkJLXJl
ICdzL15ccypzdWJtZW51XHMrIihbXiJdKykiLiokL1NcdFwxL2cnIFwKCQktcmUgInMvXlxzKn1c
cypcJC9FXHQtL2ciIHwKCXdoaWxlIHJlYWQgbW9kZSB0aXRsZTsgZG8KCQljYXNlICIkbW9kZSIg
aW4KCQlNKQlpZiBbICRudW1iZXJzX29ubHkgLW5lIDAgXTsgdGhlbgoJCQkJZWNobyAtZSAiJHtu
dW1iZXJ9JHtpdGVtbm99IgoJCQllbGlmIFsgJHRpdGxlc19vbmx5IC1uZSAwIF07IHRoZW4KCQkJ
CWVjaG8gLWUgIiR7cHJlZml4fSR7dGl0bGV9IgoJCQllbHNlCgkJCQllY2hvIC1lICIke251bWJl
cn0ke2l0ZW1ub31cdCR7cHJlZml4fSR7dGl0bGV9IgoJCQlmaQoJCQlpdGVtbm89JCgoJGl0ZW1u
byArIDEpKQoJCQllbnRyeT0xCgkJCTs7CgkJUykJbnVtYmVyPSIke251bWJlcn0ke2l0ZW1ub30+
IgoJCQlwcmVmaXg9IiR7cHJlZml4fSR7dGl0bGV9PiIKCQkJaXRlbW5vPTAKCQkJOzsKCQkqKQlp
ZiBbICRlbnRyeSAtbmUgMCBdOyB0aGVuCgkJCQllbnRyeT0wCgkJCWVsaWYgWyAtbiAiJG51bWJl
ciIgXTsgdGhlbgoJCQkJbnVtYmVyPSIke251bWJlciU+fSIKCQkJCXByZWZpeD0iJHtwcmVmaXgl
Pn0iCgkJCQljYXNlICIkbnVtYmVyIiBpbgoJCQkJKiI+IiopCWl0ZW1ubz0iJHtudW1iZXIjIyo+
fSIKCQkJCQludW1iZXI9IiR7bnVtYmVyJT4qfT4iCgkJCQkJcHJlZml4PSIke3ByZWZpeCU+Kn0+
IgoJCQkJCWl0ZW1ubz0kKCgkaXRlbW5vICsgMSkpCgkJCQkJOzsKCQkJCSopCWl0ZW1ubz0kbnVt
YmVyCgkJCQkJaXRlbW5vPSQoKCRpdGVtbm8gKyAxKSkKCQkJCQlwcmVmaXg9CgkJCQkJbnVtYmVy
PQoJCQkJCTs7CgkJCQllc2FjCgkJCWZpCgkJCTs7CgkJZXNhYwoJZG9uZQp9CgpjaGVja19pdGVt
KCkgewoJY2FzZSAiJHNlYXJjaF9pdGVtIiBpbgoJWzAtOV0qKQludW1iZXJzX29ubHk9MTsgdGl0
bGVzX29ubHk9MDs7CgkqKQludW1iZXJzX29ubHk9MDsgdGl0bGVzX29ubHk9MTs7Cgllc2FjCgls
b2NhbCBjbnQ9JChzaG93X21lbnUgfCBncmVwIC1zd2MgIiRzZWFyY2hfaXRlbSIpCglpZiBbICRj
bnQgLWVxIDAgXTsgdGhlbgoJCWVjaG8gIiRzZWFyY2hfaXRlbTogbWVudSBpdGVtIG5vdCBmb3Vu
ZC4iID4mMgoJCWV4aXQgMQoJZmkKCWV4aXQgMAp9CgoKcGFyc2VfYXJncyAiJEAiClsgLXIgIiRn
cnVibWVudSIgXSB8fCBzaG93X3VzYWdlICIkZ3J1Ym1lbnU6IGNvbmZpZyBmaWxlIG5vdCBmb3Vu
ZC4iClsgLXogIiRzZWFyY2hfaXRlbSIgXSB8fCBjaGVja19pdGVtCnNob3dfbWVudQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>8008</attachid>
            <date>2019-02-08 18:22:50 +0300</date>
            <delta_ts>2019-02-08 18:22:50 +0300</delta_ts>
            <desc>Окончательная версия скрипта</desc>
            <filename>grub-entries</filename>
            <type>text/plain</type>
            <size>3259</size>
            <attacher name="Leonid Krivoshein">klark.devel</attacher>
            
              <data encoding="base64">IyEvYmluL3NoIC1lZnUKIyMjIFRoaXMgZmlsZSBpcyBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQojIyMgdmVyc2lvbiAyIG9yIGxhdGVyLgojIyMKIyMjIENvcHlyaWdo
dCAoQykgMjAxOSAgQUxUIExpbnV4IFRlYW0KIyMjIEF1dGhvcjogTGVvbmlkIEtyaXZvc2hlaW4g
PGtsYXJrQGFsdGxpbnV4Lm9yZz4KCm51bWJlcnNfb25seT0wCnRpdGxlc19vbmx5PTAKc2VhcmNo
X2l0ZW09CnByb2duYW1lPSIkezAjIyovfSIKZ3J1Ym1lbnU9Ii9ib290L2dydWIvZ3J1Yi5jZmci
CgoKc2hvd19oZWxwKCkgewoJY2F0IDw8LUVPRgokcHJvZ25hbWUgLSBTaG93IGRlZmF1bHQgb3Ig
c3BlY2lmaWVkIGdydWIgbWVudS4KClVzYWdlOiAkcHJvZ25hbWUgW29wdGlvbnNdCgpPcHRpb25z
OgogIC1mLCAtLWNvbmZpZz0gIFNwZWNpZnkgcGF0aCB0byB0aGUgZ3J1YiBjb25maWcuCiAgLW4s
IC0tbnVtYmVycyAgU2hvdyBvbmx5IG51bWJlcnMgb2YgdGhlIGl0ZW1zLgogIC10LCAtLXRpdGxl
cyAgIFNob3cgb25seSB0aXRsZXMgb2YgdGhlIGl0ZW1zLgogIC1jLCAtLWNoZWNrPSAgIFNwZWNp
ZnkgaXRlbSBuYW1lIHRvIHZhbGlkYXRlLgogIC1WLCAtLXZlcnNpb24gIFNob3cgc2NyaXB0IHZl
cnNpb24gYW5kIGV4aXQuCiAgLWgsIC0taGVscCAgICAgU2hvdyB0aGlzIGhlbHAgbWVzc2FnZSBh
bmQgZXhpdC4KRU9GCglleGl0IDAKfQoKc2hvd192ZXJzaW9uKCkgewoJY2F0IDw8LUVPRgokcHJv
Z25hbWUgdmVyc2lvbiAwLjkKQ29weXJpZ2h0IChDKSAyMDE5LCBBTFQgTGludXggVGVhbQpFT0YK
CWV4aXQgMAp9CgpzaG93X3VzYWdlKCkgewoJWyAteiAiJCoiIF0gfHwgZWNobyAiJCoiIDE+JjIK
CWVjaG8gIlRyeSAnJHByb2duYW1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiAxPiYy
CglleGl0IDEKfQoKcGFyc2VfYXJncygpIHsKCWxvY2FsIG9wdHM9IitmOixuLHQsYzosVixoIgoJ
bG9jYWwgbG9uZ29wdHM9ImNvbmZpZzosbnVtYmVycyx0aXRsZXMsY2hlY2s6LHZlcnNpb24saGVs
cCIKCglvcHRzPSQoZ2V0b3B0IC1uICIkcHJvZ25hbWUiIC1vICIkb3B0cyIgLWwgIiRsb25nb3B0
cyIgLS0gIiRAIikgfHwKCQlzaG93X3VzYWdlICJJbnZhbGlkIGNvbW1hbmQtbGluZSBhcmd1bWVu
dHMuIgoJZXZhbCBzZXQgLS0gIiRvcHRzIgoJd2hpbGUgWyAkIyAtZ3QgMCBdOyBkbwoJCWNhc2Ug
IiQxIiBpbgoJCS1mfC0tY29uZmlnKQlzaGlmdDsgZ3J1Ym1lbnU9IiQxIjs7CgkJLW58LS1udW1i
ZXJzKQludW1iZXJzX29ubHk9MTsgdGl0bGVzX29ubHk9MDs7CgkJLXR8LS10aXRsZXMpCW51bWJl
cnNfb25seT0wOyB0aXRsZXNfb25seT0xOzsKCQktY3wtLWNoZWNrKQlzaGlmdDsgc2VhcmNoX2l0
ZW09IiQxIjs7CgkJLVZ8LS12ZXJzaW9uKQlzaG93X3ZlcnNpb247OwoJCS1ofC0taGVscCkJc2hv
d19oZWxwOzsKCQktLSkJCXNoaWZ0OyBicmVhazs7CgkJLSopCQlzaG93X3VzYWdlICJVbnJlY29n
bml6ZWQgb3B0aW9uOiAnJDEnIjs7CgkJKikJCWJyZWFrOzsKCQllc2FjCgkJc2hpZnQKCWRvbmUK
CVsgJCMgLWVxIDAgXSB8fCBzaG93X3VzYWdlICJVbnJlY29nbml6ZWQgYXJndW1lbnRzOiAnJCon
Igp9CgpzaG93X21lbnUoKSB7Cglsb2NhbCBtb2RlIHRpdGxlIG51bWJlciBwcmVmaXggZW50cnk9
MCBpdGVtbm89MAoKCWNhdCAiJGdydWJtZW51IiB8IHNlZCBcCgkJLXJlICcvXlxzKihtZW51ZW50
cnlccyt8c3VibWVudVxzK3x9KS8hZCcgXAoJCS1yZSAicy9eXHMqbWVudWVudHJ5XHMrJyhbXidd
KyknLipcJC9NXHRcMS9nIiBcCgkJLXJlICdzL15ccyptZW51ZW50cnlccysiKFteIl0rKSIuKiQv
TVx0XDEvZycgXAoJCS1yZSAicy9eXHMqc3VibWVudVxzKycoW14nXSspJy4qXCQvU1x0XDEvZyIg
XAoJCS1yZSAncy9eXHMqc3VibWVudVxzKyIoW14iXSspIi4qJC9TXHRcMS9nJyBcCgkJLXJlICJz
L15ccyp9XHMqXCQvRVx0LS9nIiB8Cgl3aGlsZSByZWFkIG1vZGUgdGl0bGU7IGRvCgkJY2FzZSAi
JG1vZGUiIGluCgkJTSkJaWYgWyAkbnVtYmVyc19vbmx5IC1uZSAwIF07IHRoZW4KCQkJCWVjaG8g
LWUgIiR7bnVtYmVyfSR7aXRlbW5vfSIKCQkJZWxpZiBbICR0aXRsZXNfb25seSAtbmUgMCBdOyB0
aGVuCgkJCQllY2hvIC1lICIke3ByZWZpeH0ke3RpdGxlfSIKCQkJZWxzZQoJCQkJZWNobyAtZSAi
JHtudW1iZXJ9JHtpdGVtbm99XHQke3ByZWZpeH0ke3RpdGxlfSIKCQkJZmkKCQkJaXRlbW5vPSQo
KCRpdGVtbm8gKyAxKSkKCQkJZW50cnk9MQoJCQk7OwoJCVMpCW51bWJlcj0iJHtudW1iZXJ9JHtp
dGVtbm99PiIKCQkJcHJlZml4PSIke3ByZWZpeH0ke3RpdGxlfT4iCgkJCWl0ZW1ubz0wCgkJCTs7
CgkJKikJaWYgWyAkZW50cnkgLW5lIDAgXTsgdGhlbgoJCQkJZW50cnk9MAoJCQllbGlmIFsgLW4g
IiRudW1iZXIiIF07IHRoZW4KCQkJCW51bWJlcj0iJHtudW1iZXIlPn0iCgkJCQlwcmVmaXg9IiR7
cHJlZml4JT59IgoJCQkJY2FzZSAiJG51bWJlciIgaW4KCQkJCSoiPiIqKQlpdGVtbm89IiR7bnVt
YmVyIyMqPn0iCgkJCQkJbnVtYmVyPSIke251bWJlciU+Kn0+IgoJCQkJCXByZWZpeD0iJHtwcmVm
aXglPip9PiIKCQkJCQlpdGVtbm89JCgoJGl0ZW1ubyArIDEpKQoJCQkJCTs7CgkJCQkqKQlpdGVt
bm89JG51bWJlcgoJCQkJCWl0ZW1ubz0kKCgkaXRlbW5vICsgMSkpCgkJCQkJcHJlZml4PQoJCQkJ
CW51bWJlcj0KCQkJCQk7OwoJCQkJZXNhYwoJCQlmaQoJCQk7OwoJCWVzYWMKCWRvbmUKfQoKY2hl
Y2tfaXRlbSgpIHsKCWxvY2FsIGNudAoKCW51bWJlcnNfb25seT0xCgl0aXRsZXNfb25seT0wCglj
bnQ9JChzaG93X21lbnUgfCBncmVwIC1zd2MgIiRzZWFyY2hfaXRlbSIgfHw6KQoJWyAiJGNudCIg
IT0gIjEiIF0gfHwgZXhpdCAwCgoJbnVtYmVyc19vbmx5PTAKCXRpdGxlc19vbmx5PTEKCWNudD0k
KHNob3dfbWVudSB8IGdyZXAgLXN3YyAiJHNlYXJjaF9pdGVtIiB8fDopCglbICIkY250IiAhPSAi
MSIgXSB8fCBleGl0IDAKCglpZiBbICRjbnQgLWVxIDAgXTsgdGhlbgoJCWVjaG8gIiRzZWFyY2hf
aXRlbTogbWVudSBpdGVtIG5vdCBmb3VuZC4iIDE+JjIKCWVsc2UKCQllY2hvICIkc2VhcmNoX2l0
ZW06IGR1cGxpY2F0ZSBpdGVtcyBmb3VuZC4iIDE+JjIKCWZpCglleGl0IDEKfQoKCnBhcnNlX2Fy
Z3MgIiRAIgpbIC1yICIkZ3J1Ym1lbnUiIF0gfHwgc2hvd191c2FnZSAiJGdydWJtZW51OiBjb25m
aWcgZmlsZSBub3QgZm91bmQuIgpbIC16ICIkc2VhcmNoX2l0ZW0iIF0gfHwgY2hlY2tfaXRlbQpz
aG93X21lbnUKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8009</attachid>
            <date>2019-02-09 13:42:06 +0300</date>
            <delta_ts>2019-02-09 13:42:06 +0300</delta_ts>
            <desc>Патч с добавление скрипта и man-страницы к grub</desc>
            <filename>grub-entries.patch</filename>
            <type>text/plain</type>
            <size>6748</size>
            <attacher name="Leonid Krivoshein">klark.devel</attacher>
            
              <data encoding="base64">Y29tbWl0IDVkY2FkNWM3MjE0MmJiYzUzYTllYmY0ODhhMjc5NzI0MzEwZDk2OTgKQXV0aG9yOiBM
ZW9uaWQgS3Jpdm9zaGVpbiA8a2xhcmtAYWx0bGludXgub3JnPgpEYXRlOiAgIFNhdCBGZWIgOSAx
MzozODoxMiAyMDE5ICswMzAwCgogICAgZ3J1Yi1lbnRyaWVzOiBhZGRlZCBzY3JpcHQgZm9yIGxp
c3QgZ3J1YiBtZW51IChjbG9zZXM6ICMzNjA0OCkKCmRpZmYgLS1naXQgYS8uZ2Vhci9ydWxlcyBi
Ly5nZWFyL3J1bGVzCmluZGV4IDhhNzNhYmYuLjcxOGU0YTggMTAwNjQ0Ci0tLSBhLy5nZWFyL3J1
bGVzCisrKyBiLy5nZWFyL3J1bGVzCkBAIC0yLDYgKzIsOCBAQCB0YXI6IGdydWIKIHRhcjogZ3J1
Yi1leHRyYXMKIGNvcHk6IGdydWIyLXN5c2NvbmZpZwogY29weTogZ3J1YiotYXV0b3VwZGF0ZQor
Y29weTogZ3J1Yi1lbnRyaWVzCitjb3B5OiBncnViLWVudHJpZXMuOAogY29weTogKi5wYXRjaAog
Y29weTogYWx0LyoKIGNvcHk6ICouZmlsZXRyaWdnZXIKZGlmZiAtLWdpdCBhL2dydWItZW50cmll
cyBiL2dydWItZW50cmllcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NDM5
NTkzCi0tLSAvZGV2L251bGwKKysrIGIvZ3J1Yi1lbnRyaWVzCkBAIC0wLDAgKzEsMTQxIEBACisj
IS9iaW4vc2ggLWVmdQorIyMjIFRoaXMgZmlsZSBpcyBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorIyMjIHZlcnNpb24gMiBvciBsYXRlci4KKyMjIworIyMjIENvcHly
aWdodCAoQykgMjAxOSAgQUxUIExpbnV4IFRlYW0KKyMjIyBBdXRob3I6IExlb25pZCBLcml2b3No
ZWluIDxrbGFya0BhbHRsaW51eC5vcmc+CisKK251bWJlcnNfb25seT0wCit0aXRsZXNfb25seT0w
CitzZWFyY2hfaXRlbT0KK3Byb2duYW1lPSIkezAjIyovfSIKK2dydWJtZW51PSIvYm9vdC9ncnVi
L2dydWIuY2ZnIgorCisKK3Nob3dfaGVscCgpIHsKKwljYXQgPDwtRU9GCiskcHJvZ25hbWUgLSBT
aG93IGRlZmF1bHQgb3Igc3BlY2lmaWVkIGdydWIgbWVudS4KKworVXNhZ2U6ICRwcm9nbmFtZSBb
b3B0aW9uc10KKworT3B0aW9uczoKKyAgLWYsIC0tY29uZmlnPSAgU3BlY2lmeSBwYXRoIHRvIHRo
ZSBncnViIGNvbmZpZy4KKyAgLW4sIC0tbnVtYmVycyAgU2hvdyBvbmx5IG1lbnUgaXRlbSBzZXF1
ZW5jZSBudW1iZXJzLgorICAtdCwgLS10aXRsZXMgICBTaG93IG9ubHkgbWVudSBpdGVtIG5hbWVz
LgorICAtYywgLS1jaGVjaz0gICBTcGVjaWZ5IG1lbnUgaXRlbSB0byB2YWxpZGF0ZS4KKyAgLVYs
IC0tdmVyc2lvbiAgU2hvdyBzY3JpcHQgdmVyc2lvbiBhbmQgZXhpdC4KKyAgLWgsIC0taGVscCAg
ICAgU2hvdyB0aGlzIGhlbHAgbWVzc2FnZSBhbmQgZXhpdC4KK0VPRgorCWV4aXQgMAorfQorCitz
aG93X3ZlcnNpb24oKSB7CisJY2F0IDw8LUVPRgorJHByb2duYW1lIHZlcnNpb24gMS4wCitDb3B5
cmlnaHQgKEMpIDIwMTksIEFMVCBMaW51eCBUZWFtCitFT0YKKwlleGl0IDAKK30KKworc2hvd191
c2FnZSgpIHsKKwlbIC16ICIkKiIgXSB8fCBlY2hvICIkKiIgPiYyCisJZWNobyAiVHJ5ICckcHJv
Z25hbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMgorCWV4aXQgMQorfQorCitw
YXJzZV9hcmdzKCkgeworCWxvY2FsIG9wdHM9IitmOixuLHQsYzosVixoIgorCWxvY2FsIGxvbmdv
cHRzPSJjb25maWc6LG51bWJlcnMsdGl0bGVzLGNoZWNrOix2ZXJzaW9uLGhlbHAiCisKKwlvcHRz
PSQoZ2V0b3B0IC1uICIkcHJvZ25hbWUiIC1vICIkb3B0cyIgLWwgIiRsb25nb3B0cyIgLS0gIiRA
IikgfHwKKwkJc2hvd191c2FnZSAiSW52YWxpZCBjb21tYW5kLWxpbmUgYXJndW1lbnRzLiIKKwll
dmFsIHNldCAtLSAiJG9wdHMiCisJd2hpbGUgWyAkIyAtZ3QgMCBdOyBkbworCQljYXNlICIkMSIg
aW4KKwkJLWZ8LS1jb25maWcpCXNoaWZ0OyBncnVibWVudT0iJDEiOzsKKwkJLW58LS1udW1iZXJz
KQludW1iZXJzX29ubHk9MTsgdGl0bGVzX29ubHk9MDs7CisJCS10fC0tdGl0bGVzKQludW1iZXJz
X29ubHk9MDsgdGl0bGVzX29ubHk9MTs7CisJCS1jfC0tY2hlY2spCXNoaWZ0OyBzZWFyY2hfaXRl
bT0iJDEiOzsKKwkJLVZ8LS12ZXJzaW9uKQlzaG93X3ZlcnNpb247OworCQktaHwtLWhlbHApCXNo
b3dfaGVscDs7CisJCS0tKQkJc2hpZnQ7IGJyZWFrOzsKKwkJLSopCQlzaG93X3VzYWdlICJVbnJl
Y29nbml6ZWQgb3B0aW9uOiAnJDEnIjs7CisJCSopCQlicmVhazs7CisJCWVzYWMKKwkJc2hpZnQK
Kwlkb25lCisJWyAkIyAtZXEgMCBdIHx8IHNob3dfdXNhZ2UgIlVucmVjb2duaXplZCBhcmd1bWVu
dHM6ICckKiciCit9CisKK3Nob3dfbWVudSgpIHsKKwlsb2NhbCBtb2RlIHRpdGxlIG51bWJlciBw
cmVmaXggZW50cnk9MCBpdGVtbm89MAorCisJY2F0ICIkZ3J1Ym1lbnUiIHwgc2VkIFwKKwkJLXJl
ICcvXlxzKihtZW51ZW50cnlccyt8c3VibWVudVxzK3x9KS8hZCcgXAorCQktcmUgInMvXlxzKm1l
bnVlbnRyeVxzKycoW14nXSspJy4qXCQvTVx0XDEvZyIgXAorCQktcmUgJ3MvXlxzKm1lbnVlbnRy
eVxzKyIoW14iXSspIi4qJC9NXHRcMS9nJyBcCisJCS1yZSAicy9eXHMqc3VibWVudVxzKycoW14n
XSspJy4qXCQvU1x0XDEvZyIgXAorCQktcmUgJ3MvXlxzKnN1Ym1lbnVccysiKFteIl0rKSIuKiQv
U1x0XDEvZycgXAorCQktcmUgInMvXlxzKn1ccypcJC9FXHQtL2ciIHwKKwl3aGlsZSByZWFkIG1v
ZGUgdGl0bGU7IGRvCisJCWNhc2UgIiRtb2RlIiBpbgorCQlNKQlpZiBbICRudW1iZXJzX29ubHkg
LW5lIDAgXTsgdGhlbgorCQkJCWVjaG8gLWUgIiR7bnVtYmVyfSR7aXRlbW5vfSIKKwkJCWVsaWYg
WyAkdGl0bGVzX29ubHkgLW5lIDAgXTsgdGhlbgorCQkJCWVjaG8gLWUgIiR7cHJlZml4fSR7dGl0
bGV9IgorCQkJZWxzZQorCQkJCWVjaG8gLWUgIiR7bnVtYmVyfSR7aXRlbW5vfVx0JHtwcmVmaXh9
JHt0aXRsZX0iCisJCQlmaQorCQkJaXRlbW5vPSQoKCRpdGVtbm8gKyAxKSkKKwkJCWVudHJ5PTEK
KwkJCTs7CisJCVMpCW51bWJlcj0iJHtudW1iZXJ9JHtpdGVtbm99PiIKKwkJCXByZWZpeD0iJHtw
cmVmaXh9JHt0aXRsZX0+IgorCQkJaXRlbW5vPTAKKwkJCTs7CisJCSopCWlmIFsgJGVudHJ5IC1u
ZSAwIF07IHRoZW4KKwkJCQllbnRyeT0wCisJCQllbGlmIFsgLW4gIiRudW1iZXIiIF07IHRoZW4K
KwkJCQludW1iZXI9IiR7bnVtYmVyJT59IgorCQkJCXByZWZpeD0iJHtwcmVmaXglPn0iCisJCQkJ
Y2FzZSAiJG51bWJlciIgaW4KKwkJCQkqIj4iKikJaXRlbW5vPSIke251bWJlciMjKj59IgorCQkJ
CQludW1iZXI9IiR7bnVtYmVyJT4qfT4iCisJCQkJCXByZWZpeD0iJHtwcmVmaXglPip9PiIKKwkJ
CQkJaXRlbW5vPSQoKCRpdGVtbm8gKyAxKSkKKwkJCQkJOzsKKwkJCQkqKQlpdGVtbm89JG51bWJl
cgorCQkJCQlpdGVtbm89JCgoJGl0ZW1ubyArIDEpKQorCQkJCQlwcmVmaXg9CisJCQkJCW51bWJl
cj0KKwkJCQkJOzsKKwkJCQllc2FjCisJCQlmaQorCQkJOzsKKwkJZXNhYworCWRvbmUKK30KKwor
Y2hlY2tfaXRlbSgpIHsKKwlsb2NhbCBjbnQKKworCW51bWJlcnNfb25seT0xOyB0aXRsZXNfb25s
eT0wCisJY250PSQoc2hvd19tZW51IHwgZ3JlcCAtc3djICIkc2VhcmNoX2l0ZW0iIHx8OikKKwlb
ICIkY250IiAhPSAiMSIgXSB8fCBleGl0IDAKKworCW51bWJlcnNfb25seT0wOyB0aXRsZXNfb25s
eT0xCisJY250PSQoc2hvd19tZW51IHwgZ3JlcCAtc3djICIkc2VhcmNoX2l0ZW0iIHx8OikKKwlb
ICIkY250IiAhPSAiMSIgXSB8fCBleGl0IDAKKworCVsgLXogIiRjbnQiIC1vICIkY250IiA9ICIw
IiBdICYmCisJCWVjaG8gIiRzZWFyY2hfaXRlbTogbWVudSBpdGVtIG5vdCBmb3VuZC4iID4mMiB8
fAorCQllY2hvICIkc2VhcmNoX2l0ZW06IGR1cGxpY2F0ZSBpdGVtcyBmb3VuZC4iID4mMgorCWV4
aXQgMQorfQorCisKK3BhcnNlX2FyZ3MgIiRAIgorWyAtciAiJGdydWJtZW51IiBdIHx8IHNob3df
dXNhZ2UgIiRncnVibWVudTogY29uZmlnIGZpbGUgbm90IGZvdW5kLiIKK1sgLXogIiRzZWFyY2hf
aXRlbSIgXSB8fCBjaGVja19pdGVtCitzaG93X21lbnUKKwpkaWZmIC0tZ2l0IGEvZ3J1Yi1lbnRy
aWVzLjggYi9ncnViLWVudHJpZXMuOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5lNWE4ZGE1Ci0tLSAvZGV2L251bGwKKysrIGIvZ3J1Yi1lbnRyaWVzLjgKQEAgLTAsMCArMSw0
NCBAQAorLlwiIENvcHlyaWdodCAyMDE5IEFMVCBMaW51eCBUZWFtCisuXCIgTGluY2Vuc2VkIHVu
ZGVyIEdQTHYyKworLlRIIEdSVUItRU5UUklFUyA4ICJGZWJyYXJ5IDIwMTkiICJncnViLWVudHJp
ZXMgKEFMVCBMaW51eCBUZWFtKSIKKy5TSCBOQU1FCitncnViLWVudHJpZXMgXC0gc2ltcGxlIHNj
cmlwdCBmb3Igc2hvdyBncnViIG1lbnUgYW5kIGNoZWNrIG1lbnUgaXRlbXMKKy5TSCBTWU5PUFNJ
UworLkIgZ3J1Yi1lbnRyaWVzCitbXGZJb3B0aW9uc1xmUF0KKworLlNIIERFU0NSSVBUSU9OCisu
QiBncnViLWVudHJpZXMKK3BhcnNlIHNwZWNpZmllZCBvciBkZWZhdWx0IGdydWIgY29uZmlnIGZp
bGUsIGxpc3QgYWxsIGdydWIgbWVudSBpdGVtcyBpbiB0aGUgb25lIG9mIHRoZSB0aHJlZSBmb3Jt
cy4KK0Fsc28gY2FuIHNlYXJjaCBzcGVjaWZpZWQgaXRlbSBpbiBtZW51IGFuZCByZXR1cm5zIDAs
IGlmIHRoaXMgaXRlbSBleGlzdHMsIG90aGVyd2lzZSByZXR1cm5zIG5vbi16ZXJvCit2YWx1ZS4g
QnkgZGVmYXVsdCwgXGZJL2Jvb3QvZ3J1Yi9ncnViLmNmZ1xmUCBjb25maWcgZmlsZSB1c2VkLgor
CisuU0ggT1BUSU9OUworLlRQIDUKKy5CSSBcLWYgIlxmUiwgXGZQIiBcLVwtY29uZmlnICIgZmls
ZW5hbWUiCitTcGVjaWZ5IHBhdGggdG8gdGhlIGdydWIgY29uZmlnLgorLlRQIDUKKy5CSSBcLW4g
IlxmUiwgXGZQIiBcLVwtbnVtYmVycworU2hvdyBvbmx5IG1lbnUgaXRlbSBzZXF1ZW5jZSBudW1i
ZXJzLgorLlRQIDUKKy5CSSBcLXQgIlxmUiwgXGZQIiBcLVwtdGl0bGVzCitTaG93IG9ubHkgbWVu
dSBpdGVtIG5hbWVzLgorLlRQIDUKKy5CSSBcLWMgIlxmUiwgXGZQIiBcLVwtY2hlY2sgIiBtZW51
aXRlbSIKK1NwZWNpZnkgbWVudSBpdGVtIHRvIHZhbGlkYXRlLgorLlRQIDUKKy5CSSBcLVYgIlxm
UiwgXGZQIiBcLVwtdmVyc2lvbgorU2hvdyBzY3JpcHQgdmVyc2lvbiBhbmQgZXhpdC4KKy5UUCA1
CisuQkkgXC1oICJcZlIsIFxmUCIgXC1cLWhlbHAKK1Nob3cgaGVscCBtZXNzYWdlIGFuZCBleGl0
LgorCisuU0ggRklMRVMKKy5QRCAwCisuQiAvYm9vdC9ncnViL2dydWIuY2ZnCisuUEQKKy5TSCBB
VVRIT1JTCitMZW9uaWQgS3Jpdm9zaGVpbiA8a2xhcmtAYWx0bGludXgub3JnPgorLlNIICJTRUUg
QUxTTyIKKy5CUiBncnViLXJlYm9vdCAoOCksCisuQlIgZ3J1Yi1zZXQtZGVmYXVsdCAoOCkKZGlm
ZiAtLWdpdCBhL2dydWIuc3BlYyBiL2dydWIuc3BlYwppbmRleCA5YmZkMjExLi5hNzgxYjUwIDEw
MDY0NAotLS0gYS9ncnViLnNwZWMKKysrIGIvZ3J1Yi5zcGVjCkBAIC0yNCw2ICsyNCw5IEBAIFNv
dXJjZTk6IHVwZGF0ZS1ncnViLjgKIFNvdXJjZTEwOiBncnViLWVmaS1hdXRvdXBkYXRlCiBTb3Vy
Y2UxMTogZW1iZWRkZWRfZ3J1Yi5jZmcKIAorU291cmNlMTI6IGdydWItZW50cmllcworU291cmNl
MTM6IGdydWItZW50cmllcy44CisKIFBhdGNoMDogZ3J1Yi0yLjAyLW9zLWFsdC5wYXRjaAogUGF0
Y2gxOiBncnViLTIuMDAtc3lzY29uZmlnLXBhdGgtYWx0LnBhdGNoCiBQYXRjaDI6IGdydWItMi4w
Mi1hbHRsaW51eC10aGVtZS5wYXRjaApAQCAtMzAwLDYgKzMwMyw3IEBAIG1rZGlyIC1wICVidWls
ZHJvb3QvYm9vdC9ncnViL2ZvbnRzCiAKIGluc3RhbGwgLXBEIC1tNzU1ICVTT1VSQ0U4ICVidWls
ZHJvb3QlX3NiaW5kaXIvCiBpbnN0YWxsIC1wRCAtbTY0NCAlU09VUkNFOSAlYnVpbGRyb290JV9t
YW44ZGlyL3VwZGF0ZS1ncnViLjgKK2luc3RhbGwgLXBEIC1tNjQ0ICVTT1VSQ0UxMyAlYnVpbGRy
b290JV9tYW44ZGlyL2dydWItZW50cmllcy44CiAKICMgVE9ETzogZHJvcCB0aGUgb2Jzb2xldGUg
b25lICh1bmlmb250LnBmMikKICVidWlsZHJvb3QlX2JpbmRpci9ncnViLW1rZm9udCAtbyAlYnVp
bGRyb290L2Jvb3QvZ3J1Yi91bmlmb250LnBmMiAlX2RhdGFkaXIvZm9udHMvYml0bWFwL21pc2Mv
OHgxMy5wY2YuZ3oKQEAgLTMxNCw2ICszMTgsNyBAQCBzZWQgLWkgJ3MsQExPQ0FMRURJUkAsJV9k
YXRhZGlyL2xvY2FsZSxnJyAlYnVpbGRyb290JV9zeXNjb25mZGlyL2dydWIuZC8qCiBpbnN0YWxs
IC1wRG03NTUgJVNPVVJDRTQgICVidWlsZHJvb3QlX3JwbWxpYmRpci9ncnViLmZpbGV0cmlnZ2Vy
CiBpbnN0YWxsIC1wRG03NTUgJVNPVVJDRTYgICVidWlsZHJvb3QlX3NiaW5kaXIvZ3J1Yi1hdXRv
dXBkYXRlCiBpbnN0YWxsIC1wRG03NTUgJVNPVVJDRTEwICVidWlsZHJvb3QlX3NiaW5kaXIvZ3J1
Yi1lZmktYXV0b3VwZGF0ZQoraW5zdGFsbCAtcERtNzU1ICVTT1VSQ0UxMiAlYnVpbGRyb290JV9z
YmluZGlyL2dydWItZW50cmllcwogCiAjIEdob3N0IGNvbmZpZyBmaWxlCiBpbnN0YWxsIC1kICVi
dWlsZHJvb3QvYm9vdC9ncnViCkBAIC0zNjksNiArMzc0LDcgQEAgcm0gLWYgJWJ1aWxkcm9vdCVf
bGliZGlyL2dydWItZWZpLyovKi5oCiAlX3NiaW5kaXIvZ3J1Yi1yZWJvb3QKICVfc2JpbmRpci9n
cnViLXNldC1kZWZhdWx0CiAlX3NiaW5kaXIvZ3J1Yi1zcGFyYzY0LXNldHVwCislX3NiaW5kaXIv
Z3J1Yi1lbnRyaWVzCiAlX3NiaW5kaXIvdXBkYXRlLWdydWIKICVfYmluZGlyL2dydWItZWRpdGVu
dgogJV9iaW5kaXIvZ3J1Yi1maWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>