to Anton
Ваша тестовая кнопка не помогла, надо попробовать на чистом профиле.
Кнопка, код которой приведён мною в посте №774, служит для сохранения текущего состояния автономной работы (вкл/выкл) после перезапуска браузера
Добавлено 05-03-2009 11:11:31
to Anton
На чистом профиле надпись не появляется, заработало
А вот состояние "автономной работы" по прежнему не сохраняется.
Отредактировано alexmac (05-03-2009 12:41:40)
Отсутствует
alexmac
На чистом профиле надпись не появляется, заработало
Понятно. Буду придумывать что-нибудь более надёжное. Спасибо за информацию.
А вот состояние "автономной работы" по прежнему не сохраняется.
Попробуйте
var pref = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch); var ios = Components. classes ["@mozilla.org/network/io-service;1"]. getService (Components. interfaces. nsIIOService); if( pref.getBoolPref('browser.offline') ) { ios. offline = !ios. offline; }
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Плиз, объясните непутёвому на каком языке кнопки писать и есть ли какой справочник о том, как это делается в mozilla (ну названия компонентов браузера и пр.
Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями
Отсутствует
Добрый вечер, хотелось бы встроить в боковую панель панели ресурсов и поиска, которыми пользовался ещё со времен MyIE. Смысл задачи - создание кнопки для запуска *.htm файла в боковой панели, причём путь к файлу должен быть "относительным", т.к. планируется использование с портабельной версией лисы. Возможно ли написать подобную кнопку?
Отсутствует
Смысл задачи - создание кнопки для запуска *.htm файла в боковой панели, причём путь к файлу должен быть "относительным", т.к. планируется использование с портабельной версией лисы. Возможно ли написать подобную кнопку?
*.htm конвертируете в base64 и используете результат в качестве uri.
Добавлено 16-03-2009 02:05:38
P.S. И не проще ли сделать закладку?
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher, прошу прощения за свою неграмотность, но можно ли расписать поподробней?
Что есть "*.htm конвертируете в base64" и как прописать относительный путь к htm-файлу, если например он лежит в ".../Папка профиля/Sidebars/resource.htm"?
Спасибо!
Отсутствует
Хоелось бы иметь аналог "Закладки Ru-Board 1.6beta2" из Maxthon.
Плагин показывает в боковой панели список выбранных мной тем форума и цифрой количество новых не прочтеных сообщений.При наведении на строку темы появляется всплывающее окно с последним сообщением при нажатии-переход на страницу с сообщением.
Отредактировано wald (16-03-2009 11:46:39)
Отсутствует
Что есть "*.htm конвертируете в base64" и как прописать относительный путь к htm-файлу, если например он лежит в ".../Папка профиля/Sidebars/resource.htm"?
Далее или делаете кнопку
, или закладку на base64-ссылку.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
wald
Хоелось бы иметь аналог "Закладки Ru-Board 1.6beta2" из Maxthon.
Извините, не могу за это взяться. Я не пользователь ни ru-board, ни maxton. Может быть, сделаю позже, но обещать ничего не могу.
BALANCE
Как написать code для кнопки которая будет открывать окошко добовления ссылки в черный список в расширении blocksite
Несложно:
window.open('chrome://blocksite/content/BlockSiteSetWebsite.xul', '', 'chrome,centerscreen');
только это окошко blocksite обречено работать только из окна настроек расширения.
Если надо добавлять адреса в список blocksite, могу предложить такое решение:
var Cc = Components. classes; var Ci = Components. interfaces; var NSISSI = Ci. nsISupportsString; var newLocation = prompt ("Add new location", getBrowser (). contentDocument. location. href); var blockedWebsitesArray; var BlockSitePrefBranch = Cc ["@mozilla.org/preferences-service;1"]. getService (Ci. nsIPrefService). getBranch("BlockSite."); if (BlockSitePrefBranch. prefHasUserValue ("locations")) { blockedWebsitesString = BlockSitePrefBranch. getComplexValue ("locations", NSISSI). data; blockedWebsitesArray = blockedWebsitesString. split ("|||"); } else { blockedWebsitesArray = new Array(); } blockedWebsitesArray. push (newLocation); var locationNsIString = Cc ["@mozilla.org/supports-string;1"]. createInstance (NSISSI); locationNsIString. data = blockedWebsitesArray. join ("|||"); BlockSitePrefBranch. setComplexValue ("locations", NSISSI, locationNsIString);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton, Спасибо тебе огромное!! Все супер работает!! Очень теперь удобно!)
Только есть проблема если нажимаешь на отмену... но он блокирует как бы все ссылки, помогает помогает только перезагрузка мазилы!
Отредактировано BALANCE (17-03-2009 20:50:15)
Отсутствует
BALANCE
Только есть проблема если нажимаешь на отмену
Да, не подумал. Надо после строки
var newLocation = prompt ("Add new location", getBrowser (). contentDocument. location. href);
добавить строку
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Infocatcher, большое спасибо, получилось.
Но данный метод имеет ограничения. Как быть если ссылки на открываемой в боковой панели странице ведут на локальные html-файлы, лежащие рядом с исходной html'кой, которую мы перекодировали в base64?
Я долго ковырял кнопки, в итоге подсмотрел код у кнопки OpenLocation от Dark-Demon'a, а именно 1-ю строку инициализации:
Из описания кнопки стало ясно что указанный путь ведет в папку ...\Firefox\chrome\local\, закинул туда html-файлы и вбил подправленный код в поле инициализации новой кнопки (остальные строки кода взял от кнопки Менеджер расширений от того же Dark-Demon'a), пример одной из кнопок - SuperUploader: сохраняем страницу в ...\Firefox\chrome\local\superuploader.htm, создаем кнопку:
Картинка:
data:image/gif;base64,R0lGODlhEAAQAJECAGqbzAAAZv///wAAACH5BAEAAAIALAAAAAAQABAAAAIkFI6Zpu0aXgtUIoot3m97Cx4REGXOWIqniq4kWbmp1oYSEwoFADs=
Инициализация:
this.url2xul= 'chrome://local/content/superuploader.htm'; this.onClick= function(e) { switch (e.button) { case 0: if (document.getElementById('sidebar-box').getAttribute('sidebarcommand')) // close sidebar toggleSidebar(); else // open in sidebar openWebPanel(this.tooltipText, this.url2xul); break; case 1: { var t= gBrowser.mTabs; var current= content.document.location.href; var i= t.length; if (current==this.url2xul) gBrowser.removeCurrentTab(); else while (true) { if (--i<0) { if (current=='about:blank') // replace blank tab loadURI(this.url2xul); else // add new tab gBrowser.selectedTab= gBrowser.addTab(this.url2xul); break; }; if (t[i].linkedBrowser.currentURI.spec==this.url2xul) // popup loaded { gBrowser.selectedTab= gBrowser.tabContainer.childNodes[i]; break; }; }; }; break; }; }; this.setAttribute('onclick','this.onClick(event);');
Есть несколько вопросов:
1) Кнопка работает, но нет ли "подводных камней" в коде и вообще при таком способе написания ссылок и размещении файлов в папке chrome?
2) Можно ли как нибудь указать путь к папке/подпапке с профилем Firefox (хочу перекинуть html'ки туда) по аналогии с методом, описанным выше (chrome://local/content/superuploader.htm)?
3) Как должен выглядеть код, чтобы открытая панель закрывалась при повторном нажатии кнопку (сейчас так и происходит), но не закрывалась при нажатии на другую кнопу, а открывала в панели содержимое, вызываемое нажатием другой кнопки (как в All-in-one sidebar)?
Добавлено 18-03-2009 13:34:58
Infocatcher, пример 2-х кнопок, сделанных конвертированием html-файла в base64-ссылку, почему то они нормально открываются только со 2-го нажатия
1) SuperUploader
Картинка:
openWebPanel("Заголовок панели", "data:text/html;base64,PCFET0NUWVBFIEhUTUwgU1lTVEVNICJodHRwOi8vdGFnc291cC5jb20vZHRkLyI+CjxodG1sIGxhbmc9ImVuIj48aGVhZD4NCgoKCTx0aXRsZT5TdXBlciBVcGxvYWRlcjwvdGl0bGU+DQoJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPg0KCTxtZXRhIG5hbWU9IkRlc2NyaXB0aW9uIiBjb250ZW50PSJTdXBlciBVcGxvYWRlciBpcyBhIHBhbmVsIHRvIHF1aWNrbHkgdXBsb2FkIGZpbGVzIHRvIGltYWdlc2hhc2sudXMsIHJhcGlkc2hhcmUuY29tIGFuZCBzb21lIG90aGVyIGZpbGUtc2hhcmluZyBzZXJ2aWNlcy4iPg0KCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0iaHR0cDovL3VwbG9hZGVyLXBhbmVsLmNvbS9pL3VwMy5naWYiPg0KCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJKiB7bWFyZ2luOjA7IHBhZGRpbmc6MH0NCglodG1sIHtiYWNrZ3JvdW5kOiNFQUVDRjE7IGNvbG9yOiMzMzM7fQ0KCWJvZHkge2ZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIC43NWVtLzEuOGVtIEFyaWFsLFRhaG9tYSxzYW5zLXNlcmlmO30NCglpbWcge2JvcmRlcjowfQ0KCXVsIHttYXJnaW4tbGVmdDo0cHg7fQ0KCWxpIHtsaXN0LXN0eWxlLXR5cGU6bm9uZX0NCgloMSB7Zm9udC1zaXplOjEuNWVtfQ0KCWEgc3BhbiB7ZGlzcGxheTpibG9jazsgd2lkdGg6MTUwcHg7IG1hcmdpbjowIGF1dG87IHBhZGRpbmc6LjRlbSAwIC40ZW0gNHB4OyBmb250LXdlaWdodDo1MDB9DQoJI3ZlcnNpb24gc3BhbiB7cGFkZGluZy1sZWZ0OjhweH0NCglkaXYge2Rpc3BsYXk6YmxvY2s7IHdpZHRoOjE2MnB4OyBtYXJnaW46MCBhdXRvfQ0KCS5uIHtkaXNwbGF5Om5vbmV9DQoJOnRhcmdldCB7YmFja2dyb3VuZDojOGJjYzZhO30NCglkaXYuZmlsZWlucHV0cyB7cG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOiAxNDRweDsgaGVpZ2h0OiAyNHB4OyBvdmVyZmxvdzogaGlkZGVuOyBtYXJnaW4tbGVmdDowfQ0KCWRpdi5mYWtlZmlsZSB7cG9zaXRpb246YWJzb2x1dGU7IHRvcDowcHg7IGxlZnQ6MHB4OyB6LWluZGV4OjF9DQoJZGl2LmZha2VmaWxlIGEge3BhZGRpbmc6IDAgNHB4OyB9DQoJaW5wdXQuZmlsZSB7cG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjA7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjMwMHB4OyBmb250LXNpemU6M2VtICFpbXBvcnRhbnQ7IGhlaWdodDozMHB4OyB0ZXh0LWFsaWduOiByaWdodDsgb3BhY2l0eTogMDsgLW1vei1vcGFjaXR5OjA7IGZpbHRlcjphbHBoYShvcGFjaXR5OiAwKTsvKiovei1pbmRleDogMn0NCg0KCS5qcyAuc3VibWl0IHtkaXNwbGF5Om5vbmV9DQoNCgkvKiBMaW5rcyAqLwkNCglhIHtkaXNwbGF5OmJsb2NrOyBjb2xvcjojMDM2OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweH0NCgkuZmFrZWZpbGUgYSB7cGFkZGluZy1ib3R0b206LjFlbX0NCgkjdmVyc2lvbiBhIHtjb2xvcjojYTNiOGNjfQ0KCWE6aG92ZXIsIGgxOmhvdmVyIGEge2NvbG9yOiNmNGY1ZjggIWltcG9ydGFudH0NCglhOmhvdmVyLCBoMTpob3ZlciB7YmFja2dyb3VuZDojNmE5YmNjfQ0KCWEuYnRuLCBhLmJ0bnJlYWR5IHtmb250LXNpemU6IDlwdDsgY3Vyc29yOiBwb2ludGVyOyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDE0MHB4OyBoZWlnaHQ6IDI0cHg7IG1hcmdpbjogMnB4IDAgMCAycHh9ICANCglhLmJ0bnJlYWR5IHtjb2xvcjogI2ZmZjsgYmFja2dyb3VuZDogIzhiY2Q2YX0NCglhIGltZyB7ZmxvYXQ6bGVmdDsgcGFkZGluZzo0cHggMCAwOyAvKnBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0Oi0xOHB4OyBwYWRkaW5nOjAgNHB4IDAgMDsgbWFyZ2luLWJvdHRvbTotMjBweCovfQ0KDQoJLyogQ3Vyc29yICovDQoJYSwgYnV0dG9uLCBsYWJlbCwgaW5wdXQge2N1cnNvcjpwb2ludGVyICFpbXBvcnRhbnR9DQoJDQoJLyogSW50ZXJuZXQgRXhwbG9yZXIgKi8NCgkqIGh0bWwgaW1nIHtkaXNwbGF5Om5vbmV9DQoJKjpmaXJzdC1jaGlsZCtodG1sIGltZyB7ZGlzcGxheTpub25lO30NCgkNCglAbWVkaWEgYWxsIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjApIHsNCgkJaDEsIGEgey13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuNHMgZWFzZS1vdXR9DQoJfQ0KCTwvc3R5bGU+DQoJPGxpbmsgcmVsPSJhbHRlcm5hdGUgZmVlZCIgdHlwZT0iYXBwbGljYXRpb24vYXRvbSt4bWwiIGhyZWY9Imh0dHA6Ly91cGxvYWRlci1wYW5lbC5jb20vY2hhbmdlbG9nLnhtbCIgdGl0bGU9IlVwbG9hZGVyIHBhbmVsOiBjaGFuZ2Vsb2ciPg0KCTxsaW5rIHJlbD0ic3RhcnQiIGhyZWY9Imh0dHA6Ly91cGxvYWRlci1wYW5lbC5jb20vIiB0aXRsZT0iVXBsb2FkZXIgcGFuZWwiPg0KCTxsaW5rIHJlbD0icHJldmlvdXMiIGhyZWY9Imh0dHA6Ly91cGxvYWRlci1wYW5lbC5jb20vdXAuaHRtbCIgdGl0bGU9IlVwbG9hZGVyIj4NCgk8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly91cGxvYWRlci1wYW5lbC5jb20vZmFxLyIgdGl0bGU9IkZBUSI+DQoJPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJNaWtpdmFuY2gsIHByb2ZpVCDQuCDRh9GD0YLRjC3Rh9GD0YLRjCDQndC40LrQuNGC0LAg0JLQsNGB0LjQu9GM0LXQsiI+DQoJPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Imh0dHA6Ly9lbHYxcy5ydS8iIHRpdGxlPSLQndC40LrQuNGC0LAg0JLQsNGB0LjQu9GM0LXQsiI+CQ0KPC9oZWFkPjxib2R5IGxpbmtpZnltYXg9IjAiIGxpbmtpZnljdXJyZW50PSIwIiBsaW5raWZ5aW5nPSJ0cnVlIiBjbGFzcz0ianMiPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCWRvY3VtZW50LmJvZHkuY2xhc3NOYW1lKz0nIGpzJzsJDQo8L3NjcmlwdD4NCjxoMSBpZD0idG9wIj4NCgk8YSBocmVmPSIiIHRhcmdldD0iX2JsYW5rIj4NCgkJPHNwYW4+U3VwZXIgVXBsb2FkZXI8L3NwYW4+CQkNCgk8L2E+DQo8L2gxPg0KPHVsPg0KDQo8IS0tbGkgaWQ9ImZ1bmt5aW1nIj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly9mdW5reWltZy5jb20vIj48aW1nIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoRUFBUUFMTUFBQUVCUk1mYjhJcVJud01uaGVQdDl5bGRyOHJOMVdweWd4WklvZUxrNnFxdnV1VG03SksyNE9yczhRQUFBQUFBQUNINUJBQUFBQUFBTEFBQUFBQVFBQkFBQUFRbXNNbEpxNzA0NjgyNy8walJBVVBBWkl0QU1vUjVKY0t4dHVkbHhLU2JHWW9RZnNDZ0pRSUFPdz09IiBhbHQ9IiI+PC9hPgo8Zm9ybSBhY3Rpb249Imh0dHA6Ly9mdW5reWltZy5jb20vdXAucGhwIiBuYW1lPSJ1cCIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiB0YXJnZXQ9Il9ibGFuayI+Cgk8ZGl2IGNsYXNzPSJmaWxlaW5wdXRzIj4KCQk8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSIgcmVxdWlyZWQgY2xhc3M9ImZpbGUiIHNpemU9IjEiIG9ubW91c2VvdmVyPSJvbk92ZXJGaWxlKCdidG5fZnVua3lpbWdfY29tJykiIG9ubW91c2VvdXQ9Im9uT3V0RmlsZSgnYnRuX2Z1bmt5aW1nX2NvbScpIiBvbmNoYW5nZT0ic2V0UmVhZHkyKCdidG5fZnVua3lpbWdfY29tJywgdGhpcykiPgoJCTxkaXYgY2xhc3M9ImZha2VmaWxlIj4KCQkJPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgaWQ9ImJ0bl9mdW5reWltZ19jb20iIGNsYXNzPSJidG4iPkZ1bmt5aW1nLmNvbTwvYT4KCQk8L2Rpdj4KCTwvZGl2PgoJPGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgbmFtZT0idXBsb2FkIiB2YWx1ZT0iVXBsb2FkIj4KCTxpbnB1dCBjbGFzcz0ibiIgdHlwZT0icmFkaW8iIG5hbWU9InVwdHlwZSIgdmFsdWU9ImZpbGUiIGNoZWNrZWQ+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJNQVhfRklMRV9TSVpFIiB2YWx1ZT0iMzE0NTcyOCI+Cgk8aW5wdXQgY2xhc3M9Im4iIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJhZGRJbmZvIiBjaGVja2VkPgo8L2Zvcm0+CjwvZGl2PjwvbGktLT4NCg0KPGxpIGlkPSJiYXlpbWciPjxkaXY+PGEgaHJlZj0iaHR0cDovL2JheWltZy5jb20vIj48aW1nIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoRUFBUUFOVS9BT2pzOWFxOTNmVHk3dGZtOUxURTI5dmo3clRINGRyYTJhUys0NXExM2JuUjdZcXAyV21MeWZMeThzVGI4NnpHNTM2ZDBuT1N5NFdqMUUxenZNdmg5dGJmN1ptdTFIK2F5K0hoNGNETjR1M3I2Y25iN3FmQjVlZm41dC9mMzU2NTRmRHU2Ky91N3M3aytNL2g4VGxpc3JmUDdOemY0OHZmOGNUWTdzclY1Ny9QNTQrczJZZWZ6V0dEd1c2T3lPam82TFBKNXMzVzZkYmQ1bnVYemNIWDhKYXgzYS9JNkorejA3L0szZUxxOHFuQTRwR3UyM21aME0vYzY3TEw2Ly8vL3lINUJBRUFBRDhBTEFBQUFBQVFBQkFBQUFhQ3dKOXdTQ3dhajBpaXdaQWM1bUFmU2FVNUtEMFNrRXR5UkNzaEZyeFpha29NblNnMDJ5ZWcydGdXQmFLbTRGRG9lZ09LN3dNSkZEc29QZ2taSWdvY0t4RVJSakljT3pjYkR6VVFEQk1aUlJvR0N4Y0VVUzRUSkJaR0poSXVCQXNNTFN3eFJ3STRCUTBXQVFBQ0FnZEhJQ0FlSVNFZEJ4Z05SdzBlSFJnSEwwMU5RUUE3IiBhbHQ9IiI+PC9hPgo8Zm9ybSBhY3Rpb249Imh0dHA6Ly9iYXlpbWcuY29tL3VwbG9hZCIgbmFtZT0idXBsb2FkIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIHRhcmdldD0iX2JsYW5rIj4KCTxkaXYgY2xhc3M9ImZpbGVpbnB1dHMiPgoJCTxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmaWxlIiBjbGFzcz0iZmlsZSIgc2l6ZT0iMSIgcmVxdWlyZWQgb25tb3VzZW92ZXI9Im9uT3ZlckZpbGUoJ2J0bl9iYXlpbWdfY29tJykiIG9ubW91c2VvdXQ9Im9uT3V0RmlsZSgnYnRuX2JheWltZ19jb20nKSIgb25jaGFuZ2U9InNldFJlYWR5MignYnRuX2JheWltZ19jb20nLCB0aGlzKSI+CgkJPGRpdiBjbGFzcz0iZmFrZWZpbGUiPgoJCQk8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBpZD0iYnRuX2JheWltZ19jb20iIGNsYXNzPSJidG4iPmJheWltZy5jb208L2E+CgkJPC9kaXY+Cgk8L2Rpdj4KCTxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJVcGxvYWQiPgoJPGlucHV0IGNsYXNzPSJuIiB0eXBlPSJ0ZXh0IiBuYW1lPSJjb2RlIiB2YWx1ZT0idXBsb2FkZXIiPgoJPGlucHV0IGNsYXNzPSJuIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ0YWdzIiB2YWx1ZT0idXBsb2FkZXIiPgkKCTxpbnB1dCBjbGFzcz0ibiIgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlc2l6ZSI+Cgk8aW5wdXQgY2xhc3M9Im4iIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJvZmZlbnNpdmUiPgkKPC9mb3JtPgo8L2Rpdj48L2xpPg0KDQo8bGkgaWQ9ImltYWdlc2hhY2siPjxkaXY+PGEgaHJlZj0iaHR0cDovL3d3dy5pbWFnZXNoYWNrLnVzLyI+PGltZyBhbHQ9IiIgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhFQUFRQU1RZkFLczlGbWx0VEtpV0s0WjJIc3UzSFJVWUhYWitkajVIUHE2QkZjM015cVpQR1VaalRPWEJFK3JvS3EzYzdkNmJGREU0TmxwWlY4UmhFOXUySnRPSkV1cThIRU0zSnFTbWwvelVGWkU0SUlna0d1U3FGUFRIR1pRckZHTlBKT3JzOFNINUJBRUFBQjhBTEFBQUFBQVFBQkFBQUFXZzRDY21seEVFeGhWNG5wRjhGeHNNUk5NUWczQmRnbmNkRzg0RVF5UUtBZzZIeVJPaFBDaEJEb2NBT1VDdWhVRUVzZGxVT01TSnBVQ0daQTBlNkpmSThFQVdpNE5GOElFb0pHb09BK0d4K0JFVk1CWVpBSGhlRXdJREhseUJNQWNlaEhnVEV3UUVGUnNUSWlJUmtCMkZEeE5nUXBvZkNSQVpIYWwzRkY4Y3BJS29xWjZHcng4Umc2a2FxWVcxdHBBYXdNQUF2YllXd2JyRHhCRVJHYzEzSVFBNyI+PC9hPg0KPGZvcm0gYWN0aW9uPSJodHRwOi8vd3d3LmltYWdlc2hhY2sudXMvaW5kZXgucGhwIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIHRhcmdldD0iX2JsYW5rIj4NCgk8aW5wdXQgdmFsdWU9IjEwNDg1NzYiIG5hbWU9Ik1BWF9GSUxFX1NJWkUiIHR5cGU9ImhpZGRlbiI+DQoJPGlucHV0IHZhbHVlPSJibGFuayIgbmFtZT0idHlwZSIgdHlwZT0iaGlkZGVuIj4NCgk8ZGl2IGNsYXNzPSJmaWxlaW5wdXRzIj4NCgkJPGlucHV0IG5hbWU9ImZpbGV1cGxvYWQiIGNsYXNzPSJmaWxlIiBzaXplPSIxIiByZXF1aXJlZD0iIiBvbm1vdXNlb3Zlcj0ib25PdmVyRmlsZSgnYnRuX2ltYWdlc2hhY2tfdXMnKSIgb25tb3VzZW91dD0ib25PdXRGaWxlKCdidG5faW1hZ2VzaGFja191cycpIiBvbmNoYW5nZT0ic2V0UmVhZHkoJ2J0bl9pbWFnZXNoYWNrX3VzJywgdGhpcykiIHR5cGU9ImZpbGUiPg0KCQk8ZGl2IGNsYXNzPSJmYWtlZmlsZSI+DQoJCQk8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBpZD0iYnRuX2ltYWdlc2hhY2tfdXMiIGNsYXNzPSJidG4iPkltYWdlc2hhY2sudXM8L2E+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KCTxpbnB1dCBjbGFzcz0ic3VibWl0IiB2YWx1ZT0iVXBsb2FkIiB0eXBlPSJzdWJtaXQiPg0KPC9mb3JtPg0KPC9kaXY+PC9saT4NCg0KPGxpIGlkPSJpZm9sZGVyIj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly9lbHYxcy5pZm9sZGVyLnJ1LyI+PGltZyBhbHQ9IiIgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhFQUFRQUxNQUFBRUJSTWZiOElxUm53TW5oZVB0OXlsZHI4ck4xV3B5Z3haSW9lTGs2cXF2dXVUbTdKSzI0T3JzOFFBQUFBQUFBQ0g1QkFBQUFBQUFMQUFBQUFBUUFCQUFBQVFtc01sSnE3MDQ2ODI3LzBqUkFVUEFaSXRBTW9SNUpjS3h0dWRseEtTYkdZb1Fmc0NnSlFJQU93PT0iPjwvYT4NCjxmb3JtIGFjdGlvbj0iaHR0cDovL3VwbC5zdGcyMy5pZm9sZGVyLnJ1Lz9zZXJpYWw9ZjNkZjhjOTdjMmRkZmVkNjQ5YWYzNmIzYzFjNmNlNjMiIG5hbWU9InRoZXVwbG9hZGZvcm0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgdGFyZ2V0PSJfYmxhbmsiPg0KCTxkaXYgY2xhc3M9ImZpbGVpbnB1dHMiPg0KCQk8aW5wdXQgbmFtZT0iZmlsZW5hbWUiIGNsYXNzPSJmaWxlIiBzaXplPSIxIiByZXF1aXJlZD0iIiBvbm1vdXNlb3Zlcj0ib25PdmVyRmlsZSgnYnRuX2lmb2xkZXJfcnUnKSIgb25tb3VzZW91dD0ib25PdXRGaWxlKCdidG5faWZvbGRlcl9ydScpIiBvbmNoYW5nZT0ic2V0UmVhZHkoJ2J0bl9pZm9sZGVyX3J1JywgdGhpcykiIHR5cGU9ImZpbGUiPg0KCQk8ZGl2IGNsYXNzPSJmYWtlZmlsZSI+DQoJCQk8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBpZD0iYnRuX2lmb2xkZXJfcnUiIGNsYXNzPSJidG4iPmlGb2xkZXIucnU8L2E+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KCTxpbnB1dCBuYW1lPSJ1cGxvYWRfcGFyYW1zIiB2YWx1ZT0iYmYwYWYzNTdmOWY0NzFkODYwNDZmMGQzMjQ2ZTg0ZGExOTVlNzMyYzZiNjRjNTRjZDkyODExYmZmYTcxYzExN2QzMjY0ZjQ4N2EwNjRhYTJmNzRiOTgxMGM4MGZlZDc5N2RhNTY2Y2Q2MTczNzNhNiIgdHlwZT0iaGlkZGVuIj4NCgk8aW5wdXQgbmFtZT0iY2xvbmUiIHZhbHVlPSJlbHYxcy5pZm9sZGVyLnJ1IiB0eXBlPSJoaWRkZW4iPg0KCTxpbnB1dCBuYW1lPSJwcm9ncmVzc19iYXIiIHZhbHVlPSJmM2RmOGM5N2MyZGRmZWQ2NDlhZjM2YjNjMWM2Y2U2MyIgdHlwZT0iaGlkZGVuIj4NCgk8aW5wdXQgbmFtZT0idXBsb2FkX2hvc3QiIHZhbHVlPSJzdGcyMy5pZm9sZGVyLnJ1IiB0eXBlPSJoaWRkZW4iPg0KCTxpbnB1dCBuYW1lPSJNQVhfRklMRV9TSVpFIiB2YWx1ZT0iMTA0ODU3NjAwIiB0eXBlPSJoaWRkZW4iPg0KCTxpbnB1dCBjbGFzcz0ibiIgbmFtZT0ic2hvd19wcm9ncmVzc19iYXIiIHZhbHVlPSIwIiB0eXBlPSJjaGVja2JveCI+DQoJPGlucHV0IGNsYXNzPSJzdWJtaXQiIHZhbHVlPSJVcGxvYWQiIHR5cGU9InN1Ym1pdCI+DQo8L2Zvcm0+DQo8L2Rpdj48L2xpPg0KDQo8bGkgaWQ9InNsaWwiPjxkaXY+PGEgaHJlZj0iaHR0cDovL3NsaWwucnUvIiByZWw9Im5vZm9sbG93Ij48aW1nIGFsdD0iIiBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEVBQVFBTVFkQUJVVkZUUTBNek0wTkRRek5CVVdGWDkvZ0JVV0ZuK0FnSUNBZ0tlbnBzdkx6SCtBZjRDQWY4ekx5MzkvZnhZV0Zzdkx5eFVWRmxoWVdUUXpNNEIvZ0JZV0ZhZW1wNEIvZnhZVkZxZW5welEwTkZoWVdBQUFBUC8vL3dBQUFBQUFBQ0g1QkFFQUFCMEFMQUFBQUFBUUFCQUFBQVZoWUNlT1pHbWVwNktZRFZSbVNaYTk4MWpjMStHUXh6SnV3Q0R3dHhrTk5KM0FvS09aakRSSVVVUmtNSWdBSXdPMnhPR012SjJ1Q053QlBFWUVUS2VDSlJCR0FzRW9vS0VManRIT2tBaVVGRWNVUGlRSURBd0lKVEVtRmpVb2pZNG1JUUE3Ij48L2E+DQo8Zm9ybSBhY3Rpb249Imh0dHA6Ly96YWxpbC5ydS91cGxvYWQvIiBuYW1lPSJzZW5kZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbWV0aG9kPSJwb3N0IiB0YXJnZXQ9Il9ibGFuayI+DQoJPGRpdiBjbGFzcz0iZmlsZWlucHV0cyI+DQoJCTxpbnB1dCBuYW1lPSJmaWxlIiBjbGFzcz0iZmlsZSIgc2l6ZT0iMSIgcmVxdWlyZWQ9IiIgb25tb3VzZW92ZXI9Im9uT3ZlckZpbGUoJ2J0bl9zbGlsX3J1JykiIG9ubW91c2VvdXQ9Im9uT3V0RmlsZSgnYnRuX3NsaWxfcnUnKSIgb25jaGFuZ2U9InNldFJlYWR5KCdidG5fc2xpbF9ydScsIHRoaXMpIiB0eXBlPSJmaWxlIj4NCgkJPGRpdiBjbGFzcz0iZmFrZWZpbGUiPg0KCQkJPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgaWQ9ImJ0bl9zbGlsX3J1IiBjbGFzcz0iYnRuIj5zbGlsLnJ1PC9hPg0KCQk8L2Rpdj4NCgk8L2Rpdj4NCgk8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdmFsdWU9IlVwbG9hZCIgdHlwZT0ic3VibWl0Ij4NCjwvZm9ybT4NCjwvZGl2PjwvbGk+DQoNCjxsaSBpZD0iZHVtcCI+PGRpdj48YSBocmVmPSJodHRwOi8vZHVtcC5ydS8iIHJlbD0ibm9mb2xsb3ciPjxpbWcgYWx0PSIiIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoRUFBUUFOVS9BSVBRNndHaDBsU3hBYlRkazFPd0FIek42bksrTFhYSzVnT2YwUnlwMmNYa3FVUzUzbWE3SEcyOUp3V2gxV0hFNUJTbTFxRFVjenExM1Z5MkRYckNPd1NnMDFHeUFRU2cwVGV5MjczaW5YUENNeWV2MlFXZjA5anR4SnJSYkhmTjVsS3dBZ0tnejZ6aDg4N291TG5pMnJIYmlUKzEyNmpaZnNMbHBjcmxycUxlNW4vUDZLcmY3OS94eTlYc3Zwdlk3Uyt5M0Zhd0FWT3lBS2ZjN2dTZjFWZTFDUU9lMW9USFJ0M3V5azY5NGIzbThyL2tvUWFpMDUzVmNtVzNGLy8vL3lINUJBRUFBRDhBTEFBQUFBQVFBQkFBQUFhTXdKOVFxQnNhajhQUERNbjhBUzZycHZDUXVBUWNJWXlxcERnbUtyUUtBc0dCUkEyZW9RUlJDVWtXbGR3UUo0Z0lMdzZiNkZlSUdtOENJejhWRnd0Q0xFZzdBZzAvTUFnUFVpNFdBaDB2RGlaSUtFSVpCQVFEUHdzOFJ5a0dQeTArQXA1Q0VKQkNKeUFNRkJZeEZqVkdHeUlEREFLcE1ha1RYVVlISkQwVEJBSXlCblpTUHcwYXpFY1VTRUVBT3c9PSI+PC9hPg0KPGZvcm0gYWN0aW9uPSJodHRwOi8vZHVtcC5ydTo4MDgwL2NnaS1iaW4vdXVfdXBsb2FkLnBsP3RtcF9zaWQ9YmUxOTMxMjQ4ZTg0NDg4OTU2MmRmZGFkZWI1OThlZDAmYW1wO2NvbmZpZ19maWxlPXV1X2RlZmF1bHRfY29uZmlnIiBuYW1lPSJmb3JtX3VwbG9hZCIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiB0YXJnZXQ9Il9ibGFuayI+DQoJPGlucHV0IG5hbWU9InVwbG9hZF9yYW5nZSIgdmFsdWU9IjEiIHR5cGU9ImhpZGRlbiI+DQoJPGlucHV0IG5hbWU9Im5vX3NjcmlwdCIgdmFsdWU9IjEiIHR5cGU9ImhpZGRlbiI+DQoJPGRpdiBjbGFzcz0iZmlsZWlucHV0cyI+DQoJCTxpbnB1dCBuYW1lPSJ1cGZpbGVfMCIgY2xhc3M9ImZpbGUiIHNpemU9IjEiIHJlcXVpcmVkPSIiIG9ubW91c2VvdmVyPSJvbk92ZXJGaWxlKCdidG5fZHVtcF9ydScpIiBvbm1vdXNlb3V0PSJvbk91dEZpbGUoJ2J0bl9kdW1wX3J1JykiIG9uY2hhbmdlPSJzZXRSZWFkeSgnYnRuX2R1bXBfcnUnLCB0aGlzKSIgdHlwZT0iZmlsZSI+DQoJCTxkaXYgY2xhc3M9ImZha2VmaWxlIj4NCgkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIGlkPSJidG5fZHVtcF9ydSIgY2xhc3M9ImJ0biI+ZHVtcC5ydTwvYT4NCgkJPC9kaXY+DQoJPC9kaXY+DQoJPGlucHV0IGNsYXNzPSJzdWJtaXQiIHZhbHVlPSJVcGxvYWQiIHR5cGU9InN1Ym1pdCI+DQo8L2Zvcm0+DQo8L2Rpdj48L2xpPg0KDQo8bGkgaWQ9InJhcGlkc2hhcmUtY29tIj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly9yYXBpZHNoYXJlLmNvbS8iIHJlbD0ibm9mb2xsb3ciPjxpbWcgYWx0PSIiIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoRUFBUUFMTUFBQUVCUk1mYjhJcVJud01uaGVQdDl5bGRyOHJOMVdweWd4WklvZUxrNnFxdnV1VG03SksyNE9yczhRQUFBQUFBQUNINUJBQUFBQUFBTEFBQUFBQVFBQkFBQUFRbXNNbEpxNzA0NjgyNy8walJBVVBBWkl0QU1vUjVKY0t4dHVkbHhLU2JHWW9RZnNDZ0pRSUFPdz09Ij48L2E+DQo8Zm9ybSBhY3Rpb249Imh0dHA6Ly9yczY1bDMucmFwaWRzaGFyZS5jb20vY2dpLWJpbi91cGxvYWQuY2dpP3JzdXBsb2FkaWQ9MTQxNTQ5MDU1NTYwMjk3NzA1IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJ1bCIgbWV0aG9kPSJwb3N0IiB0YXJnZXQ9Il9ibGFuayI+DQoJPCEtLSA8aW5wdXQgbmFtZT0ibWlycm9yIiB0eXBlPSJyYWRpbyI+TGV2ZWwoMykgPGlucHV0IGNoZWNrZWQgbmFtZT0ibWlycm9yIiB0eXBlPSJyYWRpbyI+VGVsaWEgPGlucHV0IG5hbWU9Im1pcnJvciIgdHlwZT0icmFkaW8iPiAtLT4NCgk8ZGl2IGNsYXNzPSJmaWxlaW5wdXRzIj4NCgkJPGlucHV0IG5hbWU9ImZpbGVjb250ZW50IiBjbGFzcz0iZmlsZSIgc2l6ZT0iMSIgcmVxdWlyZWQ9IiIgb25tb3VzZW92ZXI9Im9uT3ZlckZpbGUoJ2J0bl9yYXBpZHNoYXJlX2NvbScpIiBvbm1vdXNlb3V0PSJvbk91dEZpbGUoJ2J0bl9yYXBpZHNoYXJlX2NvbScpIiBvbmNoYW5nZT0ic2V0UmVhZHkoJ2J0bl9yYXBpZHNoYXJlX2NvbScsIHRoaXMpIiB0eXBlPSJmaWxlIj4NCgkJPGRpdiBjbGFzcz0iZmFrZWZpbGUiPg0KCQkJPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgaWQ9ImJ0bl9yYXBpZHNoYXJlX2NvbSIgY2xhc3M9ImJ0biI+UmFwaWRzaGFyZS5jb208L2E+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KCTxpbnB1dCBjbGFzcz0ic3VibWl0IiB2YWx1ZT0iVXBsb2FkIiB0eXBlPSJzdWJtaXQiPg0KPC9mb3JtPg0KPC9kaXY+PC9saT4NCg0KPCEtLWxpIGlkPSJ1cGxvYWQyIj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly93d3cudXBsb2FkMi5uZXQvIiByZWw9Im5vZm9sbG93Ij48aW1nIGFsdD0iIiBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEVBQVFBTE1BQUFFQlJNZmI4SXFSbndNbmhlUHQ5eWxkcjhyTjFXcHlneFpJb2VMazZxcXZ1dVRtN0pLMjRPcnM4UUFBQUFBQUFDSDVCQUFBQUFBQUxBQUFBQUFRQUJBQUFBUW1zTWxKcTcwNDY4MjcvMGpSQVVQQVpJdEFNb1I1SmNLeHR1ZGx4S1NiR1lvUWZzQ2dKUUlBT3c9PSI+PC9hPgo8Zm9ybSBhY3Rpb249Imh0dHA6Ly93d3c1LnVwbG9hZDIubmV0L3VwbG9hZC5waHAiIG5hbWU9ImZvcm0xIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIHRhcmdldD0iX2JsYW5rIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik1BWF9GSUxFX1NJWkUiIHZhbHVlPSIyNzAwMDAwMCI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlIiB2YWx1ZT0idXBsb2FkIj4KCTxkaXYgY2xhc3M9ImZpbGVpbnB1dHMiPgoJCTxpbnB1dCBuYW1lPSJmaWxlIiB0eXBlPSJmaWxlIiBjbGFzcz0iZmlsZSIgc2l6ZT0iMSIgcmVxdWlyZWQgb25tb3VzZW92ZXI9Im9uT3ZlckZpbGUoJ2J0bl91cGxvYWQyX25ldCcpIiBvbm1vdXNlb3V0PSJvbk91dEZpbGUoJ2J0bl91cGxvYWQyX25ldCcpIiBvbmNoYW5nZT0ic2V0UmVhZHkoJ2J0bl91cGxvYWQyX25ldCcsIHRoaXMpIj4KCQk8ZGl2IGNsYXNzPSJmYWtlZmlsZSI+CgkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIGlkPSJidG5fdXBsb2FkMl9uZXQiIGNsYXNzPSJidG4iPlVwbG9hZDIubmV0PC9hPgoJCTwvZGl2PgoJPC9kaXY+Cgk8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iVXBsb2FkIj4KPC9mb3JtPgo8L2Rpdj48L2xpLS0+DQoNCjwhLS1saSBpZD0iZWdvc2hhcmUiPjxkaXY+PGEgaHJlZj0iaHR0cDovL3d3dy5lZ29zaGFyZS5jb20vIiByZWw9Im5vZm9sbG93Ij48aW1nIGFsdD0iIiBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEVBQVFBTE1KQVA4QUFLcXFxb2lJaU4zZDNVUkVSSGQzZC8vLy81bVptUUFBQVAvLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQUVBQUFrQUxBQUFBQUFRQUJBQUFBUlhNTW1KQ3BvWVYzTE11Vm15ZGNOZ2VLQlljRVZibklCSFhFZnAzZ2ZSQ2dnU2xBTlhiamREZkh6QllVRlE1Q0Y3bkVPdXgrd2RmNzFzRmVIRUlxSlRidkU2eUZLYlBTKzRXUlE5emRzTVZCb09VY3oydkQwQ0FEcz0iPjwvYT4KPGZvcm0gYWN0aW9uPSJodHRwOi8vd3d3LmVnb3NoYXJlLmNvbS8iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgdGFyZ2V0PSJfYmxhbmsiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9InRydWUiIG5hbWU9InVwbG9hZCI+Cgk8ZGl2IGNsYXNzPSJmaWxlaW5wdXRzIj4KCQk8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0idXBmaWxlIiBjbGFzcz0iZmlsZSIgc2l6ZT0iMSIgcmVxdWlyZWQgb25tb3VzZW92ZXI9Im9uT3ZlckZpbGUoJ2J0bl9lZ29zaGFyZV9jb20nKSIgb25tb3VzZW91dD0ib25PdXRGaWxlKCdidG5fZWdvc2hhcmVfY29tJykiIG9uY2hhbmdlPSJzZXRSZWFkeSgnYnRuX2Vnb3NoYXJlX2NvbScsIHRoaXMpIj4KCQk8ZGl2IGNsYXNzPSJmYWtlZmlsZSI+CgkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIGlkPSJidG5fZWdvc2hhcmVfY29tIiBjbGFzcz0iYnRuIj5FZ29zaGFyZS5jb208L2E+CgkJPC9kaXY+Cgk8L2Rpdj4KCTxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJVcGxvYWQiPgo8L2Zvcm0+CjwvZGl2PjwvbGktLT4NCg0KPGxpIGlkPSJzZW5kc3BhY2UiPjxkaXY+PGEgaHJlZj0iaHR0cDovL3d3dy5zZW5kc3BhY2UuY29tLyIgcmVsPSJub2ZvbGxvdyI+PGltZyBhbHQ9IiIgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhFQUFRQUxNQUFBRUJSTWZiOElxUm53TW5oZVB0OXlsZHI4ck4xV3B5Z3haSW9lTGs2cXF2dXVUbTdKSzI0T3JzOFFBQUFBQUFBQ0g1QkFBQUFBQUFMQUFBQUFBUUFCQUFBQVFtc01sSnE3MDQ2ODI3LzBqUkFVUEFaSXRBTW9SNUpjS3h0dWRseEtTYkdZb1Fmc0NnSlFJQU93PT0iPjwvYT4NCjxmb3JtIGFjdGlvbj0iaHR0cDovL2ZzMDJ1LnNlbmRzcGFjZS5jb20vcHJvY2Vzc3VwbG9hZC5odG1sIiBuYW1lPSJ1cGxvYWQiIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgdGFyZ2V0PSJfYmxhbmsiPg0KCTxpbnB1dCBuYW1lPSJNQVhfRklMRV9TSVpFIiB2YWx1ZT0iMzE0NTcyODAwIiB0eXBlPSJoaWRkZW4iPg0KCTxpbnB1dCBuYW1lPSJVUExPQURfSURFTlRJRklFUiIgdmFsdWU9IjIwODI3NzkxOTUuMTE3NjI4OTIxMy41NDVFMDUzOC4xNS4wIiB0eXBlPSJoaWRkZW4iPg0KCTxpbnB1dCBuYW1lPSJERVNUSU5BVElPTl9ESVIiIHZhbHVlPSIxMCIgdHlwZT0iaGlkZGVuIj4NCgk8aW5wdXQgbmFtZT0ianNfZW5hYmxlZCIgdmFsdWU9IjAiIHR5cGU9ImhpZGRlbiI+DQoJPGRpdiBjbGFzcz0iZmlsZWlucHV0cyI+DQoJCTxpbnB1dCBuYW1lPSJmaWxlXzAiIGNsYXNzPSJmaWxlIiBzaXplPSIxIiByZXF1aXJlZD0iIiBvbm1vdXNlb3Zlcj0ib25PdmVyRmlsZSgnYnRuX3NlbmRzcGFjZV9jb20nKSIgb25tb3VzZW91dD0ib25PdXRGaWxlKCdidG5fc2VuZHNwYWNlX2NvbScpIiBvbmNoYW5nZT0ic2V0UmVhZHkoJ2J0bl9zZW5kc3BhY2VfY29tJywgdGhpcykiIHR5cGU9ImZpbGUiPg0KCQk8ZGl2IGNsYXNzPSJmYWtlZmlsZSI+DQoJCQk8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBpZD0iYnRuX3NlbmRzcGFjZV9jb20iIGNsYXNzPSJidG4iPnNlbmRzcGFjZS5jb208L2E+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KCTxpbnB1dCBjbGFzcz0ic3VibWl0IiB2YWx1ZT0iVXBsb2FkIiB0eXBlPSJzdWJtaXQiPg0KPC9mb3JtPg0KPC9kaXY+PC9saT4NCg0KPGxpIGlkPSJyYWRpa2FsIj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly9mb3RvLnJhZGlrYWwucnUvIiByZWw9Im5vZm9sbG93IiBsYW5nPSJydSI+PGltZyBhbHQ9IiIgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhFQUFRQU1RZkFBNFVFemhtSUZsWldjckt5amMzTjB4cFBTb3FLam82T3FPam83Mit2a3hVU1Q0K1BnMDFTUmhnaFI5RldWZXdLSUNBZ0RsU1lOWFYxVWhNUlpXWWs0aUxqUnMxRFY1ZVhsR2pKbVZsWlJsa2kxcGFXMWl4S1JwbmpqTXpNLy8vL3lINUJBRUFBQjhBTEFBQUFBQVFBQkFBQUFWMjRDZCtWY1JjWXpvbVR0TnBLTEI0M21HSWJLZkRuNWRDbTQ5RHQ0c2RhSVFid0VYa0dTQUF3VUFFSUJaN0lnUkI4V0ZZWHlpSTZuUFltTS9qdEVyQmJrOCtnNk5nbE1Gdzd2Y0FHYUdxNCs4RlBUUWVCQXNmZm5nWUZEMThLWWdjRDRHTWZYYVFBUklpQjJOK0dBV1lhajBXQUFBcElRQTciPjwvYT4NCjxmb3JtIGFjdGlvbj0iaHR0cDovL2ZvdG8ucmFkaWthbC5ydS9hY3Rpb24uYXNweCIgbmFtZT0idXBsb2FkIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIHRhcmdldD0iX2JsYW5rIj4NCgk8aW5wdXQgbmFtZT0idXBsb2FkIiB2YWx1ZT0ieWVzIiB0eXBlPSJoaWRkZW4iPg0KCTxkaXYgY2xhc3M9ImZpbGVpbnB1dHMiPg0KCQk8aW5wdXQgbmFtZT0iRiIgY2xhc3M9ImZpbGUiIHNpemU9IjEiIHJlcXVpcmVkPSIiIG9ubW91c2VvdmVyPSJvbk92ZXJGaWxlKCdidG5fcmFkaWthbF9ydScpIiBvbm1vdXNlb3V0PSJvbk91dEZpbGUoJ2J0bl9yYWRpa2FsX3J1JykiIG9uY2hhbmdlPSJzZXRSZWFkeSgnYnRuX3JhZGlrYWxfcnUnLCB0aGlzKSIgdHlwZT0iZmlsZSI+DQoJCTxkaXYgY2xhc3M9ImZha2VmaWxlIj4NCgkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIGlkPSJidG5fcmFkaWthbF9ydSIgY2xhc3M9ImJ0biI+0KDQsNC00LjQutCw0Lst0KTQvtGC0L48L2E+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KCTxpbnB1dCBjbGFzcz0ic3VibWl0IiB2YWx1ZT0iVXBsb2FkIiB0eXBlPSJzdWJtaXQiPg0KCTxpbnB1dCBuYW1lPSJDUCIgdmFsdWU9InllcyIgY2hlY2tlZD0iY2hlY2tlZCIgdHlwZT0iaGlkZGVuIj4NCgk8aW5wdXQgbmFtZT0iVk0iIHZhbHVlPSIyMDAiIHR5cGU9ImhpZGRlbiI+DQo8L2Zvcm0+DQo8L2Rpdj48L2xpPg0KDQo8bGkgaWQ9ImxldGl0Yml0Ij48ZGl2PjxhIGhyZWY9Imh0dHA6Ly9sZXRpdGJpdC5uZXQvIiByZWw9Im5vZm9sbG93Ij48aW1nIGFsdD0iIiBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEVBQVFBTE1BQUFFQlJNZmI4SXFSbndNbmhlUHQ5eWxkcjhyTjFXcHlneFpJb2VMazZxcXZ1dVRtN0pLMjRPcnM4UUFBQUFBQUFDSDVCQUFBQUFBQUxBQUFBQUFRQUJBQUFBUW1zTWxKcTcwNDY4MjcvMGpSQVVQQVpJdEFNb1I1SmNLeHR1ZGx4S1NiR1lvUWZzQ2dKUUlBT3c9PSI+PC9hPg0KPGZvcm0gbmFtZT0iRjEiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGFjdGlvbj0iaHR0cDovL3IyLmxldGl0Yml0Lm5ldC9jZ2ktYmluL2hvbWVyL3VwbG9hZC5jZ2k/dXBsb2FkX2lkPSIgbWV0aG9kPSJwb3N0IiB0YXJnZXQ9Il9ibGFuayI+DQoJPGlucHV0IGNsYXNzPSJuIiBuYW1lPSJjaGVja2JveCIgdmFsdWU9ImNoZWNrYm94IiB0eXBlPSJjaGVja2JveCI+DQoJPGlucHV0IGNsYXNzPSJuIiBuYW1lPSJhY2NlcHQiIHZhbHVlPSIwIiBjaGVja2VkPSJjaGVja2VkIiB0eXBlPSJjaGVja2JveCI+DQoJPGRpdiBjbGFzcz0iZmlsZWlucHV0cyI+DQoJCTxpbnB1dCBuYW1lPSJteWZpbGUiIGNsYXNzPSJmaWxlIiBzaXplPSIxIiByZXF1aXJlZD0iIiBvbm1vdXNlb3Zlcj0ib25PdmVyRmlsZSgnYnRuX2xldGl0Yml0X25ldCcpIiBvbm1vdXNlb3V0PSJvbk91dEZpbGUoJ2J0bl9sZXRpdGJpdF9uZXQnKSIgb25jaGFuZ2U9InNldFJlYWR5KCdidG5fbGV0aXRiaXRfbmV0JywgdGhpcykiIHR5cGU9ImZpbGUiPg0KCQk8ZGl2IGNsYXNzPSJmYWtlZmlsZSI+DQoJCQk8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBpZD0iYnRuX2xldGl0Yml0X25ldCIgY2xhc3M9ImJ0biI+bGV0aXRiaXQubmV0PC9hPg0KCQk8L2Rpdj4NCgk8L2Rpdj4NCgk8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdmFsdWU9IlVwbG9hZCIgdHlwZT0ic3VibWl0Ij4NCgk8aW5wdXQgY2xhc3M9Im4iIG5hbWU9InNlbGZfZGVzYyIgdmFsdWU9InVwbG9hZGVyLXBhbmVsLmNvbSIgdHlwZT0idGV4dCI+DQoJPGlucHV0IG5hbWU9Ik1BWF9GSUxFX1NJWkUiIHZhbHVlPSIxMjAwMDAwMDAwIiB0eXBlPSJoaWRkZW4iPg0KCTxpbnB1dCBuYW1lPSJ1aWQiIHZhbHVlPSIxMjMiIHR5cGU9ImhpZGRlbiI+DQo8L2Zvcm0+DQo8L2Rpdj48L2xpPg0KDQo8bGkgaWQ9ImlwaWN0dXJlIj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly9pcGljdHVyZS5ydS8iIHJlbD0ibm9mb2xsb3ciPjxpbWcgYWx0PSIiIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoRUFBUUFNUUFBUC8vLzRDQWdNM055elF5THhVU0Roc1lGS1drbzVtWWwzVnpjYkt4c0JrV0VrQkFRQ0lmRy96TzN1NFdZZ0FBQUx5OHVzVER3cXFwcUxHd3NPYm01bmw0ZHZWNnBiQ3ZyWStPakhOeGIycG9abHBYVk1uSng5emMzQjRiRjM1OGVpSDVCQUFBQUFBQUxBQUFBQUFRQUJBQUFBVjQ0QktNWkZtS0FOQllEY0FaaHNTbHdKaGFqZ1ZrWHFFb21wUk54UUlnQ2hmQlJoR3BCV2cwaEVJQWlCQU96aFJra0RCT1hRUk1GcEFnR0x6VU1uWllQaU04aU0rQTBSbTNqWXo4WUNKOGtzMUdCUkFVVUd5QVVsU0ZmaE9IWHc4MGhtNEZpWkIrQ1FWbkZSNVVqNDlEVUtDUUlpYWtJd3NoQURzPSI+PC9hPg0KPGZvcm0gYWN0aW9uPSJodHRwOi8vaXBpY3R1cmUucnUvVXBsb2FkLyIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJ1cGxvYWQiIHRhcmdldD0iX2JsYW5rIj4NCgk8aW5wdXQgY2xhc3M9Im4iIG5hbWU9Im9wdGltaXplIiB0eXBlPSJjaGVja2JveCI+DQoJPGlucHV0IGNsYXNzPSJuIiBuYW1lPSJ0aHVtYl9yZXNpemVfb24iIGNoZWNrZWQ9ImNoZWNrZWQiIHR5cGU9ImNoZWNrYm94Ij4NCgk8aW5wdXQgY2xhc3M9Im4iIG5hbWU9InRodW1iX3Jlc2l6ZSIgc2l6ZT0iOCIgdmFsdWU9IjIwMCIgdHlwZT0idGV4dCI+DQoJPGlucHV0IGNsYXNzPSJuIiBuYW1lPSJzdHJpbmdfc21hbGxfb24iIHR5cGU9ImNoZWNrYm94Ij4JDQoJPGlucHV0IGNsYXNzPSJuIiBuYW1lPSJtZXRob2QiIHZhbHVlPSJmaWxlIiB0eXBlPSJoaWRkZW4iPg0KCTxpbnB1dCBjbGFzcz0ibiIgbmFtZT0idXBsb2FkdHlwZSIgdmFsdWU9IjEiIHR5cGU9InJhZGlvIj4NCgk8bGFiZWwgY2xhc3M9Im4iPtCd0LDQtNC/0LjRgdGMINC90LAg0L/RgNC10LLRjNGOIDxpbnB1dCBjbGFzcz0ibiIgc2l6ZT0iMTMiIG5hbWU9InN0cmluZ19zbWFsbCIgdmFsdWU9IiIgdHlwZT0idGV4dCI+PC9sYWJlbD4NCgk8ZGl2IGNsYXNzPSJmaWxlaW5wdXRzIj4NCgkJPGlucHV0IG5hbWU9InVzZXJmaWxlIiBzaXplPSIxIiBjbGFzcz0iZmlsZSIgcmVxdWlyZWQ9IiIgb25tb3VzZW92ZXI9Im9uT3ZlckZpbGUoJ2J0bl9pcGljdHVyZV9ydScpIiBvbm1vdXNlb3V0PSJvbk91dEZpbGUoJ2J0bl9pcGljdHVyZV9ydScpIiBvbmNoYW5nZT0ic2V0UmVhZHkoJ2J0bl9pcGljdHVyZV9ydScsIHRoaXMpIiB0eXBlPSJmaWxlIj4NCgkJPGRpdiBjbGFzcz0iZmFrZWZpbGUiPg0KCQkJPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgaWQ9ImJ0bl9pcGljdHVyZV9ydSIgY2xhc3M9ImJ0biI+aVBpY3R1cmUucnU8L2E+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KCTxpbnB1dCBjbGFzcz0ic3VibWl0IiB2YWx1ZT0iVXBsb2FkIiB0eXBlPSJzdWJtaXQiPg0KPC9mb3JtPg0KPC9kaXY+PC9saT4NCg0KPGxpIGlkPSJ6c2hhcmUiPjxkaXY+PGEgaHJlZj0iaHR0cDovL3pzaGFyZS5uZXQvIiByZWw9Im5vZm9sbG93Ij48aW1nIGFsdD0iIiBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEVBQVFBTE1BQUFFQlJNZmI4SXFSbndNbmhlUHQ5eWxkcjhyTjFXcHlneFpJb2VMazZxcXZ1dVRtN0pLMjRPcnM4UUFBQUFBQUFDSDVCQUFBQUFBQUxBQUFBQUFRQUJBQUFBUW1zTWxKcTcwNDY4MjcvMGpSQVVQQVpJdEFNb1I1SmNLeHR1ZGx4S1NiR1lvUWZzQ2dKUUlBT3c9PSI+PC9hPg0KPGZvcm0gZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgYWN0aW9uPSJodHRwOi8vNjkuODAuMjU1LjEzMC91cGxvYWQucGhwIiBtZXRob2Q9InBvc3QiIG5hbWU9InVwbG9hZCIgdGFyZ2V0PSJfYmxhbmsiPg0KCTxpbnB1dCB2YWx1ZT0iMSIgbmFtZT0iVE9TIiBjaGVja2VkPSJjaGVja2VkIiBjbGFzcz0ibiIgdHlwZT0iY2hlY2tib3giPg0KCTxkaXYgY2xhc3M9ImZpbGVpbnB1dHMiPg0KCQk8aW5wdXQgbmFtZT0iZmlsZSIgc2l6ZT0iMSIgY2xhc3M9ImZpbGUiIHJlcXVpcmVkPSIiIG9ubW91c2VvdmVyPSJvbk92ZXJGaWxlKCdidG5fenNoYXJlJykiIG9ubW91c2VvdXQ9Im9uT3V0RmlsZSgnYnRuX3pzaGFyZScpIiBvbmNoYW5nZT0ic2V0UmVhZHkoJ2J0bl96c2hhcmUnLCB0aGlzKSIgdHlwZT0iZmlsZSI+DQoJCTxkaXYgY2xhc3M9ImZha2VmaWxlIj4NCgkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIGlkPSJidG5fenNoYXJlIiBjbGFzcz0iYnRuIj56c2hhcmUubmV0PC9hPg0KCQk8L2Rpdj4NCgk8L2Rpdj4NCgk8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdmFsdWU9IlVwbG9hZCIgdHlwZT0ic3VibWl0Ij4NCjwvZm9ybT4NCg0KPCEtLTxsaSBpZD0iZnJlZXNoYXJlIj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly9mcmVlc2hhcmUudXMvIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+ZnJlZXNoYXJlLnVzPC9hPgo8Zm9ybSBuYW1lPSJ1cGxvYWQiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGFjdGlvbj0iaHR0cDovL2ZyZWVzaGFyZS51cy91cGxvYWQxLnBocCIgbWV0aG9kPSJwb3N0IiB0YXJnZXQ9Il9ibGFuayI+Cgk8aW5wdXQgY2xhc3M9Im4iIHR5cGU9ImhpZGRlbiIgdmFsdWU9InVwbG9hZCIgbmFtZT0iYWN0aW9uIj4KCTxpbnB1dCBjbGFzcz0ibiIgbmFtZT0idXBsb2FkIiB0eXBlPSJyYWRpbyIgdmFsdWU9ImZpbGUiIGNoZWNrZWQ+Cgk8aW5wdXQgY2xhc3M9Im4iIG5hbWU9InVwbG9hZCIgdHlwZT0icmFkaW8iIHZhbHVlPSJ1cmwiPgoJPGRpdiBjbGFzcz0iZmlsZWlucHV0cyI+CgkJPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImZpbGVuYW1lIiBjbGFzcz0iZmlsZSIgc2l6ZT0iMSIgcmVxdWlyZWQgb25tb3VzZW92ZXI9Im9uT3ZlckZpbGUoJ2J0bl9mcmVlc2hhcmVfdXMnKSIgb25tb3VzZW91dD0ib25PdXRGaWxlKCdidG5fZnJlZXNoYXJlX3VzJykiIG9uY2hhbmdlPSJzZXRSZWFkeSgnYnRuX2ZyZWVzaGFyZV91cycsIHRoaXMpIj4KCQk8ZGl2IGNsYXNzPSJmYWtlZmlsZSI+CgkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIGlkPSJidG5fZnJlZXNoYXJlX3VzIiBjbGFzcz0iYnRuIj5mcmVlc2hhcmUudXM8L2E+CgkJPC9kaXY+Cgk8L2Rpdj4KCTxpbnB1dCBjbGFzcz0ibiIgbmFtZT0icHVibGljIiB0eXBlPSJyYWRpbyIgdmFsdWU9IjEiIGNoZWNrZWQ+Cgk8aW5wdXQgY2xhc3M9Im4iIG5hbWU9InB1YmxpYyIgdHlwZT0icmFkaW8iIHZhbHVlPSIwIj4KCQo8L2Zvcm0+CjwvZGl2PjwvbGk+LS0+DQoNCjwvZGl2PjwvbGk+PC91bD4NCg0KPHAgaWQ9InZlcnNpb24iPg0KCTxhIGhyZWY9Imh0dHA6Ly91cGxvYWRlci1wYW5lbC5jb20vIj4NCgkJPHNwYW4+U3VwZXIgVXBsb2FkZXIgMC4yNiAoMTIuMDYuMjAwOCk8L3NwYW4+DQoJPC9hPg0KPC9wPg0KDQo8ZGl2IGNsYXNzPSJyb2JvdHMtbm9jb250ZW50Ij4NCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJZnVuY3Rpb24gc2hvd0Zvcm0ob2JqKSB7DQoJCWlmKCFvYmopIHJldHVybjsNCgkJb2JqLmNsYXNzTmFtZT0ndmlzaWJsZSc7DQoJCWlmKCFvYmouZm9ybSkgcmV0dXJuOw0KCQlvYmouZm9ybS5jbGFzc05hbWU9J3Zpc2libGUnfQ0KIA0KICBmdW5jdGlvbiBvbk92ZXJCdG4oYnRuKQ0KICB7DQogICAgaWYoYnRuKSANCiAgICAgIGJ0bi5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2NvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiAjNmE5YmNkOycsIGZhbHNlKQ0KICAgICAgfQ0KICANCiAgZnVuY3Rpb24gb25PdXRCdG4oYnRuKQ0KICB7DQogICAgaWYoYnRuKQ0KICAgICAgYnRuLnJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnLCBmYWxzZSl9DQogIA0KICBmdW5jdGlvbiBvbk92ZXJGaWxlKGlkKQ0KICB7DQogICAgdmFyIGJ0biA9IGdldEJ0bihpZCk7DQogICAgb25PdmVyQnRuKGJ0bil9DQogIA0KICBmdW5jdGlvbiBvbk91dEZpbGUoaWQpDQogIHsNCg0KICAgIHZhciBidG4gPSBnZXRCdG4oaWQpOw0KICAgIG9uT3V0QnRuKGJ0bil9DQogIA0KICBmdW5jdGlvbiBzZXRSZWFkeShpZCwgZmlsZU9iaikNCiAgew0KICAgIHZhciBidG4gPSBnZXRCdG4oaWQpOw0KICAgIGlmKGJ0bikNCiAgICAgIGJ0bi5jbGFzc05hbWUgPSAnYnRucmVhZHknOw0KICAgICAgDQogICAgaWYoZmlsZU9iaikNCiAgICAgIGZpbGVPYmouZm9ybS5zdWJtaXQoKX0NCiAgDQogIGZ1bmN0aW9uIHNldFJlYWR5MihpZCwgZmlsZU9iaikNCiAgew0KICAgIHZhciBidG4gPSBnZXRCdG4oaWQpOw0KICAgIGlmKGJ0bikNCiAgICAgIGJ0bi5jbGFzc05hbWUgPSAnYnRucmVhZHknOw0KICAgICAgDQogICAgdmFyIGZvcm0gPSBmaWxlT2JqLmZvcm07DQogICAgaWYoZm9ybSkgIA0KICAgIHsNCiAgICAgIGZvcih2YXIgaSA9IGZvcm0uZWxlbWVudHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pDQogICAgICB7DQogICAgICAgIGlmKGZvcm0uZWxlbWVudHNbaV0udGFnTmFtZSA9PSAnSU5QVVQnICYmIGZvcm0uZWxlbWVudHNbaV0udHlwZSA9PSAnc3VibWl0JykNCiAgICAgICAgew0KICAgICAgICAgIGZvcm0uZWxlbWVudHNbaV0uY2xpY2soKTsNCiAgICAgICAgICBicmVha30NCiAgICAgIH0NCiAgICB9DQogIH0NCg0KICBmdW5jdGlvbiBnZXRCdG4oaWQpDQogIHsNCiAgICBpZighaWQpDQogICAgICByZXR1cm47DQogICAgICANCiAgICB2YXIgb2JqID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICAgIGlmKG9iaiAmJiBvYmoudGFnTmFtZSA9PSAnQScpDQogICAgew0KICAgICAgcmV0dXJuIG9ian0NCiAgICANCiAgICByZXR1cm4gbnVsbH0JDQoJPC9zY3JpcHQ+DQoNCjwvZGl2Pg0KPC9ib2R5PjwvaHRtbD4=");
2) GISMETEO.RU: Погода
Картинка:
openWebPanel("Заголовок панели", "data:text/html;base64,PGh0bWw+PGhlYWQ+DQoNCjx0aXRsZT5HSVNNRVRFTy5SVTogz+7j7uTgPC90aXRsZT4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MSI+DQo8c3R5bGU+DQpib2R5LHRhYmxlLHRke2ZvbnQtZmFtaWx5OkFyaWFsLFNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxM3B4O30NCi5iaWd7Zm9udC1mYW1pbHk6IEFyaWFsLFNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTdweDsgZm9udC13ZWlnaHQ6IGJvbGQ7fQ0KPC9zdHlsZT4NCjwvaGVhZD48Ym9keSBsaW5raWZ5dGltZT0iMTUiIGxpbmtpZmllZD0iMCIgbGlua2lmeWluZz0iZmFsc2UiIHRvcG1hcmdpbj0iMCIgbGVmdG1hcmdpbj0iMCIgdGV4dD0iIzAwMDAwMCIgdmxpbms9IiMwMDAwODAiIGFsaW5rPSIjZmYwMDAwIiBiZ2NvbG9yPSIjZmZmZmZmIiBsaW5rPSIjMDAwMDgwIiBtYXJnaW5oZWlnaHQ9IjAiIG1hcmdpbndpZHRoPSIwIj4NCg0KPHRhYmxlIHdpZHRoPSIyMjUiIGJvcmRlcj0iMCI+DQogIDx0Ym9keT48dHI+DQogICAgPHRkIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMzM5OWZmIj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj4NCiAgICAgIDx0Ym9keT48dHI+DQogICAgICAgIDx0ZCB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iI2ZmZmZmZiI+DQo8YSBocmVmPSJodHRwOi8vd3d3Lmdpc21ldGVvLnJ1Ij48Yj53d3cuZ2lzbWV0ZW8ucnU8L2I+PC9hPiAgICAgICAgDQogICAgICA8L3RyPg0KICAgIDwvdGJvZHk+PC90YWJsZT4NCiAgICA8L3RkPg0KICA8L3RyPg0KICAgICAgICA8L3Rib2R5PjwvdGFibGU+DQogICAgICAgIDwvdGQ+DQogICAgICA8L3RyPg0KICAgIDwvdGJvZHk+PC90YWJsZT4NCiAgICA8L3RkPg0KICA8L3RyPg0KICA8dHI+DQogICAgPHRkIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjMzM5OWZmIj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj4NCiAgICAgIDx0Ym9keT48dHI+DQogICAgICAgIDx0ZCB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iI2ZmZmZmZiI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSI+DQogICAgICAgICAgPHRib2R5Pjx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0iYmlnIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iI2JiZTBmZiI+PGNlbnRlcj7P7uPu5OAg7+4g4+7w7uTg7DwvY2VudGVyPjwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNlMGUwZTAiPjxiPtDu8fHo/zwvYj48L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkIHdpZHRoPSIxMDAlIj4NCiAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjQiPg0KICAgICAgICAgICAgIDx0Ym9keT48dHI+DQogICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjEwMCIgbm93cmFwPSJub3dyYXAiPiANCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzI3NjEyLmh0bSIgdGFyZ2V0PSJfc2VsZiI+PGI+zO7x6uLgPC9iPjwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yNjA2My5odG0iIHRhcmdldD0iX3NlbGYiPjxiPtEuLc/l8uXw4fPw4zwvYj48L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjk4NjUuaHRtIiB0YXJnZXQ9Il9zZWxmIj7A4eDq4O08L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjI1NTAuaHRtIiB0YXJnZXQ9Il9zZWxmIj7A8PXg7ePl6/zx6jwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8zNDg4MC5odG0iIHRhcmdldD0iX3NlbGYiPsDx8vDg9eDt/DwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yOTgzOC5odG0iIHRhcmdldD0iX3NlbGYiPsHg8O3g8+s8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzQyMTQuaHRtIiB0YXJnZXQ9Il9zZWxmIj7B5evj7vDu5DwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8zMTUxMC5odG0iIHRhcmdldD0iX3NlbGYiPsHr4OPu4uX55e3x6jwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yNjg5OC5odG0iIHRhcmdldD0iX3NlbGYiPsHw/+3x6jwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8zMTk2MC5odG0iIHRhcmdldD0iX3NlbGYiPsLr4OTo4u7x8u7qPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzM3MjI4Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+wuvg5Ojq4OLq4Oc8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjc1MzIuaHRtIiB0YXJnZXQ9Il9zZWxmIj7C6+Dk6Ozo8DwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8zNDU2MC5odG0iIHRhcmdldD0iX3NlbGYiPsLu6+Pu4/Dg5DwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yNzAzNy5odG0iIHRhcmdldD0iX3NlbGYiPsLu6+7j5OA8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzQxMjIuaHRtIiB0YXJnZXQ9Il9zZWxmIj7C7vDu7eXmPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzM2MDUyLmh0bSIgdGFyZ2V0PSJfc2VsZiI+w+7w7e4twOvy4Onx6jwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8zNzIzNS5odG0iIHRhcmdldD0iX3NlbGYiPsPw7uft++k8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzc0NzAuaHRtIiB0YXJnZXQ9Il9zZWxmIj7E5fDh5e3yPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzI4NDQwLmh0bSIgdGFyZ2V0PSJfc2VsZiI+xerg8uXw6O3h8/DjPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzI3MzQ3Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+yOLg7e7i7jwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yODQxMS5odG0iIHRhcmdldD0iX3NlbGYiPsjm5eLx6jwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS85OTk5MC5odG0iIHRhcmdldD0iX3NlbGYiPsnu+Org8C3O6+A8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzA3MTAuaHRtIiB0YXJnZXQ9Il9zZWxmIj7I8Orz8vHqPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzI3NTk1Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+yuDn4O38PC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzI2NzAyLmh0bSIgdGFyZ2V0PSJfc2VsZiI+yuDr6O3o7ePw4OQ8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjc3MDMuaHRtIiB0YXJnZXQ9Il9zZWxmIj7K4Ovz4+A8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzcxMTYuaHRtIiB0YXJnZXQ9Il9zZWxmIj7K4PDg9+Dl4vHqPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzI5NjQyLmh0bSIgdGFyZ2V0PSJfc2VsZiI+yuXs5fDu4u48L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjcxOTYuaHRtIiB0YXJnZXQ9Il9zZWxmIj7K6PDu4jwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yNzMzMy5odG0iIHRhcmdldD0iX3NlbGYiPsru8fLw7uzgPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzM0OTI5Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+yvDg8e3u5ODwPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzI5NTc0Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+yvDg8e3u//Dx6jwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yODExNi5odG0iIHRhcmdldD0iX3NlbGYiPsrz5Pvs6uDwPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzI4NjYxLmh0bSIgdGFyZ2V0PSJfc2VsZiI+yvPw4+DtPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzM0MDA5Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+yvPw8eo8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzYwOTYuaHRtIiB0YXJnZXQ9Il9zZWxmIj7K++f76zwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yNzkzMC5odG0iIHRhcmdldD0iX3NlbGYiPsvo7+X26jwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yNTkxMy5odG0iIHRhcmdldD0iX3NlbGYiPszg4+Dk4O08L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzcwMjEuaHRtIiB0YXJnZXQ9Il9zZWxmIj7M4Onq7u88L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzc0NzIuaHRtIiB0YXJnZXQ9Il9zZWxmIj7M4PXg9+rg6+A8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzcwNTQuaHRtIiB0YXJnZXQ9Il9zZWxmIj7M6O0uwu7k+zwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yMjExMy5odG0iIHRhcmdldD0iX3NlbGYiPszz8Ozg7fHqPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzM3MjEyLmh0bSIgdGFyZ2V0PSJfc2VsZiI+zeDr/Pfo6jwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yODUwNi5odG0iIHRhcmdldD0iX3NlbGYiPs3g4eXwLtfl6+37PC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1Lzk5OTQ2Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+zeDn8ODt/DwvYT4NCiAgICAgICAgICAgICAgPC90ZD48dGQgd2lkdGg9IjMiPiZuYnNwOw0KICAgICAgICAgICAgICA8L3RkPjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjEwMCIgbm93cmFwPSJub3dyYXAiPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjM4NDguaHRtIiB0YXJnZXQ9Il9zZWxmIj7N5fTy5f7j4O3x6jwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yMzQ3MS5odG0iIHRhcmdldD0iX3NlbGYiPs3o5u3l4uDw8u7i8eo8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjc1NTMuaHRtIiB0YXJnZXQ9Il9zZWxmIj7NLs3u4uPu8O7kPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzI2MTc5Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+ze7i4+7w7uQ8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzcwMDYuaHRtIiB0YXJnZXQ9Il9zZWxmIj7N7uLu8O7x8ejp8eo8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjk2MzQuaHRtIiB0YXJnZXQ9Il9zZWxmIj7N7uLu8ejh6PDx6jwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yMzA3OC5odG0iIHRhcmdldD0iX3NlbGYiPs3u8Ojr/PHqPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzI4Njk4Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+zuzx6jwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yNzkwNi5odG0iIHRhcmdldD0iX3NlbGYiPs7w5es8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzUxMjEuaHRtIiB0YXJnZXQ9Il9zZWxmIj7O8OXt4fPw4zwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yNzk2Mi5odG0iIHRhcmdldD0iX3NlbGYiPs/l7efgPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzI4MjI1Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+z+Xw7Pw8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjI4MjAuaHRtIiB0YXJnZXQ9Il9zZWxmIj7P5fLw7ufg4u7k8eo8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzI1NDAuaHRtIiB0YXJnZXQ9Il9zZWxmIj7P5fLw7u8uLcrg7PcuPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzI2MjU4Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+z/Hq7uI8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzcwNTAuaHRtIiB0YXJnZXQ9Il9zZWxmIj7P//Lo4+7w8eo8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzQ3MzEuaHRtIiB0YXJnZXQ9Il9zZWxmIj7Q7vHy7uIt7eAtxC48L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjc3MzEuaHRtIiB0YXJnZXQ9Il9zZWxmIj7Q/+fg7fw8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjg5MDAuaHRtIiB0YXJnZXQ9Il9zZWxmIj7R4Ozg8OA8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjc3NjAuaHRtIiB0YXJnZXQ9Il9zZWxmIj7R4PDg7fHqPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzM0MTcyLmh0bSIgdGFyZ2V0PSJfc2VsZiI+0eDw4PLu4jwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yNjc4MS5odG0iIHRhcmdldD0iX3NlbGYiPtHs7uvl7fHqPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzM3MDk5Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+0e736DwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8zNDk0OS5odG0iIHRhcmdldD0iX3NlbGYiPtHy4OLw7u/u6/w8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjM4NDkuaHRtIiB0YXJnZXQ9Il9zZWxmIj7R8/Dj8/I8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjM4MDQuaHRtIiB0YXJnZXQ9Il9zZWxmIj7R++ry++Lq4PA8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjc5NDcuaHRtIiB0YXJnZXQ9Il9zZWxmIj7S4Ozh7uI8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjc0MDIuaHRtIiB0YXJnZXQ9Il9zZWxmIj7S4uXw/DwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yNzg5MC5odG0iIHRhcmdldD0iX3NlbGYiPtLu6/z/8vLoPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzI5NDMwLmh0bSIgdGFyZ2V0PSJfc2VsZiI+0u7s8eo8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjc3MTkuaHRtIiB0YXJnZXQ9Il9zZWxmIj7S8+vgPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzI4MzY3Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+0v7s5e38PC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzMwODIzLmh0bSIgdGFyZ2V0PSJfc2VsZiI+0+vg7S3T5P08L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjc3ODYuaHRtIiB0YXJnZXQ9Il9zZWxmIj7T6/z/7e7i8eo8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjg3MjIuaHRtIiB0YXJnZXQ9Il9zZWxmIj7T9OA8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzE3MzUuaHRtIiB0YXJnZXQ9Il9zZWxmIj7V4OHg8O7i8eo8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjM5MzMuaHRtIiB0YXJnZXQ9Il9zZWxmIj7V4O3y+y3M4O3xLjwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yNzU4MS5odG0iIHRhcmdldD0iX3NlbGYiPtfl4e7q8eDw+zwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yODY0Mi5odG0iIHRhcmdldD0iX3NlbGYiPtfl6//h6O3x6jwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8zMDc1OC5odG0iIHRhcmdldD0iX3NlbGYiPtfo8uA8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzQ4NjEuaHRtIiB0YXJnZXQ9Il9zZWxmIj7d6+jx8uA8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzIxNTAuaHRtIiB0YXJnZXQ9Il9zZWxmIj7eLi3R4PXg6+jt8eo8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjQ5NTkuaHRtIiB0YXJnZXQ9Il9zZWxmIj7f6vPy8eo8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjczMzEuaHRtIiB0YXJnZXQ9Il9zZWxmIj7f8O7x6+Di6/w8L2E+DQogICAgICAgICAgICAgIDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+DQogICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNlMGUwZTAiPjxiPtHNwyDoIMHg6/Lo/yA8L2I+PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCB3aWR0aD0iMTAwJSI+DQogICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSI0Ij4NCiAgICAgICAgICAgICA8dGJvZHk+PHRyPg0KICAgICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIxMDAiIG5vd3JhcD0ibm93cmFwIj4gDQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8zNjg3MC5odG0iIHRhcmdldD0iX3NlbGYiPsDr7OAtwPLgPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzM1MTg4Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+wPHy4O3gPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzM4ODgwLmh0bSIgdGFyZ2V0PSJfc2VsZiI+wPj14OHg5DwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8zNzg1MC5odG0iIHRhcmdldD0iX3NlbGYiPsHg6vM8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzgzNTMuaHRtIiB0YXJnZXQ9Il9zZWxmIj7B6Pjq5eo8L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMjY3MzAuaHRtIiB0YXJnZXQ9Il9zZWxmIj7C6Ov87f7xPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzM4ODM2Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+xPP44O3h5TwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8zNzc4OS5odG0iIHRhcmdldD0iX3NlbGYiPsXw5eLg7TwvYT4NCiAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgd2lkdGg9IjMiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjEwMCIgbm93cmFwPSJub3dyYXAiPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzMzNDUuaHRtIiB0YXJnZXQ9Il9zZWxmIj7K6OXiPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzMzODE1Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+yuj46O3l4jwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yNjg1MC5odG0iIHRhcmdldD0iX3NlbGYiPszo7fHqPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzI2NDIyLmh0bSIgdGFyZ2V0PSJfc2VsZiI+0Ojj4DwvYT48YnI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS8yNjAzOC5odG0iIHRhcmdldD0iX3NlbGYiPtLg6+vo7e08L2E+PGJyPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvMzg0NTcuaHRtIiB0YXJnZXQ9Il9zZWxmIj7S4Pjq5e3yPC9hPjxicj4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcGRhLmdpc21ldGVvLnJ1LzM3NTQ5Lmh0bSIgdGFyZ2V0PSJfc2VsZiI+0uHo6+jx6DwvYT48YnI+DQogICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIDwvdGJvZHk+PC90YWJsZT4NCiAgICAgICAgICA8L3RkPg0KICAgICAgICAgIDwvdHI+DQoNCg0KICAgICAgPHRib2R5Pjx0cj4NCiAgICAgICAgPHRkIHdpZHRoPSIxMDAlIj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIj4NCiAgICAgICAgICA8dGJvZHk+PHRyPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJiaWciIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjYmJlMGZmIj48Y2VudGVyPsjt9O7w7OD26P88L2NlbnRlcj48L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkIHdpZHRoPSIxMDAlIj4NCiAgICAgICAgICAgIC0gPGEgaHJlZj0iaHR0cDovL3BkYS5naXNtZXRlby5ydS9hYm91dC5odG0iIHRhcmdldD0iX3NlbGYiPs4g7/Du5ery5TwvYT48YnI+DQogICAgICAgICAgICAtIDxhIGhyZWY9Imh0dHA6Ly9wZGEuZ2lzbWV0ZW8ucnUvIiB0YXJnZXQ9Il9zZWxmIj5wZGEuZ2lzbWV0ZW8ucnU8L2E+PGJyPg0KICAgICAgICAgICAgLSA8YSBocmVmPSJodHRwOi8vd2FwLmdpc21ldGVvLnJ1LyIgdGFyZ2V0PSJfc2VsZiI+d2FwLmdpc21ldGVvLnJ1PC9hPg0KICAgICAgICAgICA8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgIDwvdGJvZHk+PC90YWJsZT4NCiAgICAgICAgPC90ZD4NCiAgICAgIDwvdHI+DQogICAgPC90Ym9keT48L3RhYmxlPg0KICAgIDwvdGQ+DQogIDwvdHI+DQogIDx0cj4NCiAgICA8dGQgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMzMzk5ZmYiPjx0YWJsZSB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iI2ZmZmZmZiIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjAiPg0KPC90YWJsZT4NCiAgICA8L3RkPg0KICA8L3RyPg0KICA8dHI+DQoNCiAgICAgIDwvdHI+DQogICAgPC90Ym9keT48L3RhYmxlPg0KICAgIDwvdGQ+DQogIDwvdHI+DQo8L3Rib2R5PjwvdGFibGU+DQo8L2JvZHk+PC9odG1sPg==");
Отредактировано 3Jlou (18-03-2009 13:38:09)
Отсутствует
3) Как должен выглядеть код, чтобы открытая панель закрывалась при повторном нажатии кнопку (сейчас так и происходит), но не закрывалась при нажатии на другую кнопу, а открывала в панели содержимое, вызываемое нажатием другой кнопки (как в All-in-one sidebar)?
case 0: if (document.getElementById('sidebar-box').getAttribute('sidebarcommand')) // close sidebar toggleSidebar(); else // open in sidebar openWebPanel(this.tooltipText, this.url2xul); break;
заменить на
пример 2-х кнопок, сделанных конвертированием html-файла в base64-ссылку, почему то они нормально открываются только со 2-го нажатия
Секция «код»:
openWebPanel("SuperUploader", "data:text/html;base64,PCFET0NUWVBFIEhUTUwgU1lTVEVNICJodHRwOi8vdGFnc291cC5jb20vZHRkLyI+CjxodG1sIGxhbmc9ImVuIj48aGVhZD4NCgoKCTx0aXRsZT5TdXBlciBVcGxvYWRlcjwvdGl0bGU+DQoJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPg0KCTxtZXRhIG5hbWU9IkRlc2NyaXB0aW9uIiBjb250ZW50PSJTdXBlciBVcGxvYWRlciBpcyBhIHBhbmVsIHRvIHF1aWNrbHkgdXBsb2FkIGZpbGVzIHRvIGltYWdlc2hhc2sudXMsIHJhcGlkc2hhcmUuY29tIGFuZCBzb21lIG90aGVyIGZpbGUtc2hhcmluZyBzZXJ2aWNlcy4iPg0KCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0iaHR0cDovL3VwbG9hZGVyLXBhbmVsLmNvbS9pL3VwMy5naWYiPg0KCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJKiB7bWFyZ2luOjA7IHBhZGRpbmc6MH0NCglodG1sIHtiYWNrZ3JvdW5kOiNFQUVDRjE7IGNvbG9yOiMzMzM7fQ0KCWJvZHkge2ZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIC43NWVtLzEuOGVtIEFyaWFsLFRhaG9tYSxzYW5zLXNlcmlmO30NCglpbWcge2JvcmRlcjowfQ0KCXVsIHttYXJnaW4tbGVmdDo0cHg7fQ0KCWxpIHtsaXN0LXN0eWxlLXR5cGU6bm9uZX0NCgloMSB7Zm9udC1zaXplOjEuNWVtfQ0KCWEgc3BhbiB7ZGlzcGxheTpibG9jazsgd2lkdGg6MTUwcHg7IG1hcmdpbjowIGF1dG87IHBhZGRpbmc6LjRlbSAwIC40ZW0gNHB4OyBmb250LXdlaWdodDo1MDB9DQoJI3ZlcnNpb24gc3BhbiB7cGFkZGluZy1sZWZ0OjhweH0NCglkaXYge2Rpc3BsYXk6YmxvY2s7IHdpZHRoOjE2MnB4OyBtYXJnaW46MCBhdXRvfQ0KCS5uIHtkaXNwbGF5Om5vbmV9DQoJOnRhcmdldCB7YmFja2dyb3VuZDojOGJjYzZhO30NCglkaXYuZmlsZWlucHV0cyB7cG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOiAxNDRweDsgaGVpZ2h0OiAyNHB4OyBvdmVyZmxvdzogaGlkZGVuOyBtYXJnaW4tbGVmdDowfQ0KCWRpdi5mYWtlZmlsZSB7cG9zaXRpb246YWJzb2x1dGU7IHRvcDowcHg7IGxlZnQ6MHB4OyB6LWluZGV4OjF9DQoJZGl2LmZha2VmaWxlIGEge3BhZGRpbmc6IDAgNHB4OyB9DQoJaW5wdXQuZmlsZSB7cG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjA7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjMwMHB4OyBmb250LXNpemU6M2VtICFpbXBvcnRhbnQ7IGhlaWdodDozMHB4OyB0ZXh0LWFsaWduOiByaWdodDsgb3BhY2l0eTogMDsgLW1vei1vcGFjaXR5OjA7IGZpbHRlcjphbHBoYShvcGFjaXR5OiAwKTsvKiovei1pbmRleDogMn0NCg0KCS5qcyAuc3VibWl0IHtkaXNwbGF5Om5vbmV9DQoNCgkvKiBMaW5rcyAqLwkNCglhIHtkaXNwbGF5OmJsb2NrOyBjb2xvcjojMDM2OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweH0NCgkuZmFrZWZpbGUgYSB7cGFkZGluZy1ib3R0b206LjFlbX0NCgkjdmVyc2lvbiBhIHtjb2xvcjojYTNiOGNjfQ0KCWE6aG92ZXIsIGgxOmhvdmVyIGEge2NvbG9yOiNmNGY1ZjggIWltcG9ydGFudH0NCglhOmhvdmVyLCBoMTpob3ZlciB7YmFja2dyb3VuZDojNmE5YmNjfQ0KCWEuYnRuLCBhLmJ0bnJlYWR5IHtmb250LXNpemU6IDlwdDsgY3Vyc29yOiBwb2ludGVyOyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDE0MHB4OyBoZWlnaHQ6IDI0cHg7IG1hcmdpbjogMnB4IDAgMCAycHh9ICANCglhLmJ0bnJlYWR5IHtjb2xvcjogI2ZmZjsgYmFja2dyb3VuZDogIzhiY2Q2YX0NCglhIGltZyB7ZmxvYXQ6bGVmdDsgcGFkZGluZzo0cHggMCAwOyAvKnBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0Oi0xOHB4OyBwYWRkaW5nOjAgNHB4IDAgMDsgbWFyZ2luLWJvdHRvbTotMjBweCovfQ0KDQoJLyogQ3Vyc29yICovDQoJYSwgYnV0dG9uLCBsYWJlbCwgaW5wdXQge2N1cnNvcjpwb2ludGVyICFpbXBvcnRhbnR9DQoJDQoJLyogSW50ZXJuZXQgRXhwbG9yZXIgKi8NCgkqIGh0bWwgaW1nIHtkaXNwbGF5Om5vbmV9DQoJKjpmaXJzdC1jaGlsZCtodG1sIGltZyB7ZGlzcGxheTpub25lO30NCgkNCglAbWVkaWEgYWxsIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjApIHsNCgkJaDEsIGEgey13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuNHMgZWFzZS1vdXR9DQoJfQ0KCTwvc3R5bGU+DQoJPGxpbmsgcmVsPSJhbHRlcm5hdGUgZmVlZCIgdHlwZT0iYXBwbGljYXRpb24vYXRvbSt4bWwiIGhyZWY9Imh0dHA6Ly91cGxvYWRlci1wYW5lbC5jb20vY2hhbmdlbG9nLnhtbCIgdGl0bGU9IlVwbG9hZGVyIHBhbmVsOiBjaGFuZ2Vsb2ciPg0KCTxsaW5rIHJlbD0ic3RhcnQiIGhyZWY9Imh0dHA6Ly91cGxvYWRlci1wYW5lbC5jb20vIiB0aXRsZT0iVXBsb2FkZXIgcGFuZWwiPg0KCTxsaW5rIHJlbD0icHJldmlvdXMiIGhyZWY9Imh0dHA6Ly91cGxvYWRlci1wYW5lbC5jb20vdXAuaHRtbCIgdGl0bGU9IlVwbG9hZGVyIj4NCgk8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly91cGxvYWRlci1wYW5lbC5jb20vZmFxLyIgdGl0bGU9IkZBUSI+DQoJPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJNaWtpdmFuY2gsIHByb2ZpVCDQuCDRh9GD0YLRjC3Rh9GD0YLRjCDQndC40LrQuNGC0LAg0JLQsNGB0LjQu9GM0LXQsiI+DQoJPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Imh0dHA6Ly9lbHYxcy5ydS8iIHRpdGxlPSLQndC40LrQuNGC0LAg0JLQsNGB0LjQu9GM0LXQsiI+CQ0KPC9oZWFkPjxib2R5IGxpbmtpZnltYXg9IjAiIGxpbmtpZnljdXJyZW50PSIwIiBsaW5raWZ5aW5nPSJ0cnVlIiBjbGFzcz0ianMiPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCWRvY3VtZW50LmJvZHkuY2xhc3NOYW1lKz0nIGpzJzsJDQo8L3NjcmlwdD4NCjxoMSBpZD0idG9wIj4NCgk8YSBocmVmPSIiIHRhcmdldD0iX2JsYW5rIj4NCgkJPHNwYW4+U3VwZXIgVXBsb2FkZXI8L3NwYW4+CQkNCgk8L2E+DQo8L2gxPg0KPHVsPg0KDQo8IS0tbGkgaWQ9ImZ1bmt5aW1nIj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly9mdW5reWltZy5jb20vIj48aW1nIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoRUFBUUFMTUFBQUVCUk1mYjhJcVJud01uaGVQdDl5bGRyOHJOMVdweWd4WklvZUxrNnFxdnV1VG03SksyNE9yczhRQUFBQUFBQUNINUJBQUFBQUFBTEFBQUFBQVFBQkFBQUFRbXNNbEpxNzA0NjgyNy8walJBVVBBWkl0QU1vUjVKY0t4dHVkbHhLU2JHWW9RZnNDZ0pRSUFPdz09IiBhbHQ9IiI+PC9hPgo8Zm9ybSBhY3Rpb249Imh0dHA6Ly9mdW5reWltZy5jb20vdXAucGhwIiBuYW1lPSJ1cCIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiB0YXJnZXQ9Il9ibGFuayI+Cgk8ZGl2IGNsYXNzPSJmaWxlaW5wdXRzIj4KCQk8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSIgcmVxdWlyZWQgY2xhc3M9ImZpbGUiIHNpemU9IjEiIG9ubW91c2VvdmVyPSJvbk92ZXJGaWxlKCdidG5fZnVua3lpbWdfY29tJykiIG9ubW91c2VvdXQ9Im9uT3V0RmlsZSgnYnRuX2Z1bmt5aW1nX2NvbScpIiBvbmNoYW5nZT0ic2V0UmVhZHkyKCdidG5fZnVua3lpbWdfY29tJywgdGhpcykiPgoJCTxkaXYgY2xhc3M9ImZha2VmaWxlIj4KCQkJPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgaWQ9ImJ0bl9mdW5reWltZ19jb20iIGNsYXNzPSJidG4iPkZ1bmt5aW1nLmNvbTwvYT4KCQk8L2Rpdj4KCTwvZGl2PgoJPGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgbmFtZT0idXBsb2FkIiB2YWx1ZT0iVXBsb2FkIj4KCTxpbnB1dCBjbGFzcz0ibiIgdHlwZT0icmFkaW8iIG5hbWU9InVwdHlwZSIgdmFsdWU9ImZpbGUiIGNoZWNrZWQ+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJNQVhfRklMRV9TSVpFIiB2YWx1ZT0iMzE0NTcyOCI+Cgk8aW5wdXQgY2xhc3M9Im4iIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJhZGRJbmZvIiBjaGVja2VkPgo8L2Zvcm0+CjwvZGl2PjwvbGktLT4NCg0KPGxpIGlkPSJiYXlpbWciPjxkaXY+PGEgaHJlZj0iaHR0cDovL2JheWltZy5jb20vIj48aW1nIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoRUFBUUFOVS9BT2pzOWFxOTNmVHk3dGZtOUxURTI5dmo3clRINGRyYTJhUys0NXExM2JuUjdZcXAyV21MeWZMeThzVGI4NnpHNTM2ZDBuT1N5NFdqMUUxenZNdmg5dGJmN1ptdTFIK2F5K0hoNGNETjR1M3I2Y25iN3FmQjVlZm41dC9mMzU2NTRmRHU2Ky91N3M3aytNL2g4VGxpc3JmUDdOemY0OHZmOGNUWTdzclY1Ny9QNTQrczJZZWZ6V0dEd1c2T3lPam82TFBKNXMzVzZkYmQ1bnVYemNIWDhKYXgzYS9JNkorejA3L0szZUxxOHFuQTRwR3UyM21aME0vYzY3TEw2Ly8vL3lINUJBRUFBRDhBTEFBQUFBQVFBQkFBQUFhQ3dKOXdTQ3dhajBpaXdaQWM1bUFmU2FVNUtEMFNrRXR5UkNzaEZyeFpha29NblNnMDJ5ZWcydGdXQmFLbTRGRG9lZ09LN3dNSkZEc29QZ2taSWdvY0t4RVJSakljT3pjYkR6VVFEQk1aUlJvR0N4Y0VVUzRUSkJaR0poSXVCQXNNTFN3eFJ3STRCUTBXQVFBQ0FnZEhJQ0FlSVNFZEJ4Z05SdzBlSFJnSEwwMU5RUUE3IiBhbHQ9IiI+PC9hPgo8Zm9ybSBhY3Rpb249Imh0dHA6Ly9iYXlpbWcuY29tL3VwbG9hZCIgbmFtZT0idXBsb2FkIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIHRhcmdldD0iX2JsYW5rIj4KCTxkaXYgY2xhc3M9ImZpbGVpbnB1dHMiPgoJCTxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmaWxlIiBjbGFzcz0iZmlsZSIgc2l6ZT0iMSIgcmVxdWlyZWQgb25tb3VzZW92ZXI9Im9uT3ZlckZpbGUoJ2J0bl9iYXlpbWdfY29tJykiIG9ubW91c2VvdXQ9Im9uT3V0RmlsZSgnYnRuX2JheWltZ19jb20nKSIgb25jaGFuZ2U9InNldFJlYWR5MignYnRuX2JheWltZ19jb20nLCB0aGlzKSI+CgkJPGRpdiBjbGFzcz0iZmFrZWZpbGUiPgoJCQk8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBpZD0iYnRuX2JheWltZ19jb20iIGNsYXNzPSJidG4iPmJheWltZy5jb208L2E+CgkJPC9kaXY+Cgk8L2Rpdj4KCTxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJVcGxvYWQiPgoJPGlucHV0IGNsYXNzPSJuIiB0eXBlPSJ0ZXh0IiBuYW1lPSJjb2RlIiB2YWx1ZT0idXBsb2FkZXIiPgoJPGlucHV0IGNsYXNzPSJuIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ0YWdzIiB2YWx1ZT0idXBsb2FkZXIiPgkKCTxpbnB1dCBjbGFzcz0ibiIgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlc2l6ZSI+Cgk8aW5wdXQgY2xhc3M9Im4iIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJvZmZlbnNpdmUiPgkKPC9mb3JtPgo8L2Rpdj48L2xpPg0KDQo8bGkgaWQ9ImltYWdlc2hhY2siPjxkaXY+PGEgaHJlZj0iaHR0cDovL3d3dy5pbWFnZXNoYWNrLnVzLyI+PGltZyBhbHQ9IiIgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhFQUFRQU1RZkFLczlGbWx0VEtpV0s0WjJIc3UzSFJVWUhYWitkajVIUHE2QkZjM015cVpQR1VaalRPWEJFK3JvS3EzYzdkNmJGREU0TmxwWlY4UmhFOXUySnRPSkV1cThIRU0zSnFTbWwvelVGWkU0SUlna0d1U3FGUFRIR1pRckZHTlBKT3JzOFNINUJBRUFBQjhBTEFBQUFBQVFBQkFBQUFXZzRDY21seEVFeGhWNG5wRjhGeHNNUk5NUWczQmRnbmNkRzg0RVF5UUtBZzZIeVJPaFBDaEJEb2NBT1VDdWhVRUVzZGxVT01TSnBVQ0daQTBlNkpmSThFQVdpNE5GOElFb0pHb09BK0d4K0JFVk1CWVpBSGhlRXdJREhseUJNQWNlaEhnVEV3UUVGUnNUSWlJUmtCMkZEeE5nUXBvZkNSQVpIYWwzRkY4Y3BJS29xWjZHcng4Umc2a2FxWVcxdHBBYXdNQUF2YllXd2JyRHhCRVJHYzEzSVFBNyI+PC9hPg0KPGZvcm0gYWN0aW9uPSJodHRwOi8vd3d3LmltYWdlc2hhY2sudXMvaW5kZXgucGhwIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIHRhcmdldD0iX2JsYW5rIj4NCgk8aW5wdXQgdmFsdWU9IjEwNDg1NzYiIG5hbWU9Ik1BWF9GSUxFX1NJWkUiIHR5cGU9ImhpZGRlbiI+DQoJPGlucHV0IHZhbHVlPSJibGFuayIgbmFtZT0idHlwZSIgdHlwZT0iaGlkZGVuIj4NCgk8ZGl2IGNsYXNzPSJmaWxlaW5wdXRzIj4NCgkJPGlucHV0IG5hbWU9ImZpbGV1cGxvYWQiIGNsYXNzPSJmaWxlIiBzaXplPSIxIiByZXF1aXJlZD0iIiBvbm1vdXNlb3Zlcj0ib25PdmVyRmlsZSgnYnRuX2ltYWdlc2hhY2tfdXMnKSIgb25tb3VzZW91dD0ib25PdXRGaWxlKCdidG5faW1hZ2VzaGFja191cycpIiBvbmNoYW5nZT0ic2V0UmVhZHkoJ2J0bl9pbWFnZXNoYWNrX3VzJywgdGhpcykiIHR5cGU9ImZpbGUiPg0KCQk8ZGl2IGNsYXNzPSJmYWtlZmlsZSI+DQoJCQk8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBpZD0iYnRuX2ltYWdlc2hhY2tfdXMiIGNsYXNzPSJidG4iPkltYWdlc2hhY2sudXM8L2E+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KCTxpbnB1dCBjbGFzcz0ic3VibWl0IiB2YWx1ZT0iVXBsb2FkIiB0eXBlPSJzdWJtaXQiPg0KPC9mb3JtPg0KPC9kaXY+PC9saT4NCg0KPGxpIGlkPSJpZm9sZGVyIj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly9lbHYxcy5pZm9sZGVyLnJ1LyI+PGltZyBhbHQ9IiIgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhFQUFRQUxNQUFBRUJSTWZiOElxUm53TW5oZVB0OXlsZHI4ck4xV3B5Z3haSW9lTGs2cXF2dXVUbTdKSzI0T3JzOFFBQUFBQUFBQ0g1QkFBQUFBQUFMQUFBQUFBUUFCQUFBQVFtc01sSnE3MDQ2ODI3LzBqUkFVUEFaSXRBTW9SNUpjS3h0dWRseEtTYkdZb1Fmc0NnSlFJQU93PT0iPjwvYT4NCjxmb3JtIGFjdGlvbj0iaHR0cDovL3VwbC5zdGcyMy5pZm9sZGVyLnJ1Lz9zZXJpYWw9ZjNkZjhjOTdjMmRkZmVkNjQ5YWYzNmIzYzFjNmNlNjMiIG5hbWU9InRoZXVwbG9hZGZvcm0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgdGFyZ2V0PSJfYmxhbmsiPg0KCTxkaXYgY2xhc3M9ImZpbGVpbnB1dHMiPg0KCQk8aW5wdXQgbmFtZT0iZmlsZW5hbWUiIGNsYXNzPSJmaWxlIiBzaXplPSIxIiByZXF1aXJlZD0iIiBvbm1vdXNlb3Zlcj0ib25PdmVyRmlsZSgnYnRuX2lmb2xkZXJfcnUnKSIgb25tb3VzZW91dD0ib25PdXRGaWxlKCdidG5faWZvbGRlcl9ydScpIiBvbmNoYW5nZT0ic2V0UmVhZHkoJ2J0bl9pZm9sZGVyX3J1JywgdGhpcykiIHR5cGU9ImZpbGUiPg0KCQk8ZGl2IGNsYXNzPSJmYWtlZmlsZSI+DQoJCQk8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBpZD0iYnRuX2lmb2xkZXJfcnUiIGNsYXNzPSJidG4iPmlGb2xkZXIucnU8L2E+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KCTxpbnB1dCBuYW1lPSJ1cGxvYWRfcGFyYW1zIiB2YWx1ZT0iYmYwYWYzNTdmOWY0NzFkODYwNDZmMGQzMjQ2ZTg0ZGExOTVlNzMyYzZiNjRjNTRjZDkyODExYmZmYTcxYzExN2QzMjY0ZjQ4N2EwNjRhYTJmNzRiOTgxMGM4MGZlZDc5N2RhNTY2Y2Q2MTczNzNhNiIgdHlwZT0iaGlkZGVuIj4NCgk8aW5wdXQgbmFtZT0iY2xvbmUiIHZhbHVlPSJlbHYxcy5pZm9sZGVyLnJ1IiB0eXBlPSJoaWRkZW4iPg0KCTxpbnB1dCBuYW1lPSJwcm9ncmVzc19iYXIiIHZhbHVlPSJmM2RmOGM5N2MyZGRmZWQ2NDlhZjM2YjNjMWM2Y2U2MyIgdHlwZT0iaGlkZGVuIj4NCgk8aW5wdXQgbmFtZT0idXBsb2FkX2hvc3QiIHZhbHVlPSJzdGcyMy5pZm9sZGVyLnJ1IiB0eXBlPSJoaWRkZW4iPg0KCTxpbnB1dCBuYW1lPSJNQVhfRklMRV9TSVpFIiB2YWx1ZT0iMTA0ODU3NjAwIiB0eXBlPSJoaWRkZW4iPg0KCTxpbnB1dCBjbGFzcz0ibiIgbmFtZT0ic2hvd19wcm9ncmVzc19iYXIiIHZhbHVlPSIwIiB0eXBlPSJjaGVja2JveCI+DQoJPGlucHV0IGNsYXNzPSJzdWJtaXQiIHZhbHVlPSJVcGxvYWQiIHR5cGU9InN1Ym1pdCI+DQo8L2Zvcm0+DQo8L2Rpdj48L2xpPg0KDQo8bGkgaWQ9InNsaWwiPjxkaXY+PGEgaHJlZj0iaHR0cDovL3NsaWwucnUvIiByZWw9Im5vZm9sbG93Ij48aW1nIGFsdD0iIiBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEVBQVFBTVFkQUJVVkZUUTBNek0wTkRRek5CVVdGWDkvZ0JVV0ZuK0FnSUNBZ0tlbnBzdkx6SCtBZjRDQWY4ekx5MzkvZnhZV0Zzdkx5eFVWRmxoWVdUUXpNNEIvZ0JZV0ZhZW1wNEIvZnhZVkZxZW5welEwTkZoWVdBQUFBUC8vL3dBQUFBQUFBQ0g1QkFFQUFCMEFMQUFBQUFBUUFCQUFBQVZoWUNlT1pHbWVwNktZRFZSbVNaYTk4MWpjMStHUXh6SnV3Q0R3dHhrTk5KM0FvS09aakRSSVVVUmtNSWdBSXdPMnhPR012SjJ1Q053QlBFWUVUS2VDSlJCR0FzRW9vS0VManRIT2tBaVVGRWNVUGlRSURBd0lKVEVtRmpVb2pZNG1JUUE3Ij48L2E+DQo8Zm9ybSBhY3Rpb249Imh0dHA6Ly96YWxpbC5ydS91cGxvYWQvIiBuYW1lPSJzZW5kZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbWV0aG9kPSJwb3N0IiB0YXJnZXQ9Il9ibGFuayI+DQoJPGRpdiBjbGFzcz0iZmlsZWlucHV0cyI+DQoJCTxpbnB1dCBuYW1lPSJmaWxlIiBjbGFzcz0iZmlsZSIgc2l6ZT0iMSIgcmVxdWlyZWQ9IiIgb25tb3VzZW92ZXI9Im9uT3ZlckZpbGUoJ2J0bl9zbGlsX3J1JykiIG9ubW91c2VvdXQ9Im9uT3V0RmlsZSgnYnRuX3NsaWxfcnUnKSIgb25jaGFuZ2U9InNldFJlYWR5KCdidG5fc2xpbF9ydScsIHRoaXMpIiB0eXBlPSJmaWxlIj4NCgkJPGRpdiBjbGFzcz0iZmFrZWZpbGUiPg0KCQkJPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgaWQ9ImJ0bl9zbGlsX3J1IiBjbGFzcz0iYnRuIj5zbGlsLnJ1PC9hPg0KCQk8L2Rpdj4NCgk8L2Rpdj4NCgk8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdmFsdWU9IlVwbG9hZCIgdHlwZT0ic3VibWl0Ij4NCjwvZm9ybT4NCjwvZGl2PjwvbGk+DQoNCjxsaSBpZD0iZHVtcCI+PGRpdj48YSBocmVmPSJodHRwOi8vZHVtcC5ydS8iIHJlbD0ibm9mb2xsb3ciPjxpbWcgYWx0PSIiIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoRUFBUUFOVS9BSVBRNndHaDBsU3hBYlRkazFPd0FIek42bksrTFhYSzVnT2YwUnlwMmNYa3FVUzUzbWE3SEcyOUp3V2gxV0hFNUJTbTFxRFVjenExM1Z5MkRYckNPd1NnMDFHeUFRU2cwVGV5MjczaW5YUENNeWV2MlFXZjA5anR4SnJSYkhmTjVsS3dBZ0tnejZ6aDg4N291TG5pMnJIYmlUKzEyNmpaZnNMbHBjcmxycUxlNW4vUDZLcmY3OS94eTlYc3Zwdlk3Uyt5M0Zhd0FWT3lBS2ZjN2dTZjFWZTFDUU9lMW9USFJ0M3V5azY5NGIzbThyL2tvUWFpMDUzVmNtVzNGLy8vL3lINUJBRUFBRDhBTEFBQUFBQVFBQkFBQUFhTXdKOVFxQnNhajhQUERNbjhBUzZycHZDUXVBUWNJWXlxcERnbUtyUUtBc0dCUkEyZW9RUlJDVWtXbGR3UUo0Z0lMdzZiNkZlSUdtOENJejhWRnd0Q0xFZzdBZzAvTUFnUFVpNFdBaDB2RGlaSUtFSVpCQVFEUHdzOFJ5a0dQeTArQXA1Q0VKQkNKeUFNRkJZeEZqVkdHeUlEREFLcE1ha1RYVVlISkQwVEJBSXlCblpTUHcwYXpFY1VTRUVBT3c9PSI+PC9hPg0KPGZvcm0gYWN0aW9uPSJodHRwOi8vZHVtcC5ydTo4MDgwL2NnaS1iaW4vdXVfdXBsb2FkLnBsP3RtcF9zaWQ9YmUxOTMxMjQ4ZTg0NDg4OTU2MmRmZGFkZWI1OThlZDAmYW1wO2NvbmZpZ19maWxlPXV1X2RlZmF1bHRfY29uZmlnIiBuYW1lPSJmb3JtX3VwbG9hZCIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiB0YXJnZXQ9Il9ibGFuayI+DQoJPGlucHV0IG5hbWU9InVwbG9hZF9yYW5nZSIgdmFsdWU9IjEiIHR5cGU9ImhpZGRlbiI+DQoJPGlucHV0IG5hbWU9Im5vX3NjcmlwdCIgdmFsdWU9IjEiIHR5cGU9ImhpZGRlbiI+DQoJPGRpdiBjbGFzcz0iZmlsZWlucHV0cyI+DQoJCTxpbnB1dCBuYW1lPSJ1cGZpbGVfMCIgY2xhc3M9ImZpbGUiIHNpemU9IjEiIHJlcXVpcmVkPSIiIG9ubW91c2VvdmVyPSJvbk92ZXJGaWxlKCdidG5fZHVtcF9ydScpIiBvbm1vdXNlb3V0PSJvbk91dEZpbGUoJ2J0bl9kdW1wX3J1JykiIG9uY2hhbmdlPSJzZXRSZWFkeSgnYnRuX2R1bXBfcnUnLCB0aGlzKSIgdHlwZT0iZmlsZSI+DQoJCTxkaXYgY2xhc3M9ImZha2VmaWxlIj4NCgkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIGlkPSJidG5fZHVtcF9ydSIgY2xhc3M9ImJ0biI+ZHVtcC5ydTwvYT4NCgkJPC9kaXY+DQoJPC9kaXY+DQoJPGlucHV0IGNsYXNzPSJzdWJtaXQiIHZhbHVlPSJVcGxvYWQiIHR5cGU9InN1Ym1pdCI+DQo8L2Zvcm0+DQo8L2Rpdj48L2xpPg0KDQo8bGkgaWQ9InJhcGlkc2hhcmUtY29tIj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly9yYXBpZHNoYXJlLmNvbS8iIHJlbD0ibm9mb2xsb3ciPjxpbWcgYWx0PSIiIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoRUFBUUFMTUFBQUVCUk1mYjhJcVJud01uaGVQdDl5bGRyOHJOMVdweWd4WklvZUxrNnFxdnV1VG03SksyNE9yczhRQUFBQUFBQUNINUJBQUFBQUFBTEFBQUFBQVFBQkFBQUFRbXNNbEpxNzA0NjgyNy8walJBVVBBWkl0QU1vUjVKY0t4dHVkbHhLU2JHWW9RZnNDZ0pRSUFPdz09Ij48L2E+DQo8Zm9ybSBhY3Rpb249Imh0dHA6Ly9yczY1bDMucmFwaWRzaGFyZS5jb20vY2dpLWJpbi91cGxvYWQuY2dpP3JzdXBsb2FkaWQ9MTQxNTQ5MDU1NTYwMjk3NzA1IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJ1bCIgbWV0aG9kPSJwb3N0IiB0YXJnZXQ9Il9ibGFuayI+DQoJPCEtLSA8aW5wdXQgbmFtZT0ibWlycm9yIiB0eXBlPSJyYWRpbyI+TGV2ZWwoMykgPGlucHV0IGNoZWNrZWQgbmFtZT0ibWlycm9yIiB0eXBlPSJyYWRpbyI+VGVsaWEgPGlucHV0IG5hbWU9Im1pcnJvciIgdHlwZT0icmFkaW8iPiAtLT4NCgk8ZGl2IGNsYXNzPSJmaWxlaW5wdXRzIj4NCgkJPGlucHV0IG5hbWU9ImZpbGVjb250ZW50IiBjbGFzcz0iZmlsZSIgc2l6ZT0iMSIgcmVxdWlyZWQ9IiIgb25tb3VzZW92ZXI9Im9uT3ZlckZpbGUoJ2J0bl9yYXBpZHNoYXJlX2NvbScpIiBvbm1vdXNlb3V0PSJvbk91dEZpbGUoJ2J0bl9yYXBpZHNoYXJlX2NvbScpIiBvbmNoYW5nZT0ic2V0UmVhZHkoJ2J0bl9yYXBpZHNoYXJlX2NvbScsIHRoaXMpIiB0eXBlPSJmaWxlIj4NCgkJPGRpdiBjbGFzcz0iZmFrZWZpbGUiPg0KCQkJPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgaWQ9ImJ0bl9yYXBpZHNoYXJlX2NvbSIgY2xhc3M9ImJ0biI+UmFwaWRzaGFyZS5jb208L2E+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KCTxpbnB1dCBjbGFzcz0ic3VibWl0IiB2YWx1ZT0iVXBsb2FkIiB0eXBlPSJzdWJtaXQiPg0KPC9mb3JtPg0KPC9kaXY+PC9saT4NCg0KPCEtLWxpIGlkPSJ1cGxvYWQyIj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly93d3cudXBsb2FkMi5uZXQvIiByZWw9Im5vZm9sbG93Ij48aW1nIGFsdD0iIiBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEVBQVFBTE1BQUFFQlJNZmI4SXFSbndNbmhlUHQ5eWxkcjhyTjFXcHlneFpJb2VMazZxcXZ1dVRtN0pLMjRPcnM4UUFBQUFBQUFDSDVCQUFBQUFBQUxBQUFBQUFRQUJBQUFBUW1zTWxKcTcwNDY4MjcvMGpSQVVQQVpJdEFNb1I1SmNLeHR1ZGx4S1NiR1lvUWZzQ2dKUUlBT3c9PSI+PC9hPgo8Zm9ybSBhY3Rpb249Imh0dHA6Ly93d3c1LnVwbG9hZDIubmV0L3VwbG9hZC5waHAiIG5hbWU9ImZvcm0xIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIHRhcmdldD0iX2JsYW5rIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik1BWF9GSUxFX1NJWkUiIHZhbHVlPSIyNzAwMDAwMCI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlIiB2YWx1ZT0idXBsb2FkIj4KCTxkaXYgY2xhc3M9ImZpbGVpbnB1dHMiPgoJCTxpbnB1dCBuYW1lPSJmaWxlIiB0eXBlPSJmaWxlIiBjbGFzcz0iZmlsZSIgc2l6ZT0iMSIgcmVxdWlyZWQgb25tb3VzZW92ZXI9Im9uT3ZlckZpbGUoJ2J0bl91cGxvYWQyX25ldCcpIiBvbm1vdXNlb3V0PSJvbk91dEZpbGUoJ2J0bl91cGxvYWQyX25ldCcpIiBvbmNoYW5nZT0ic2V0UmVhZHkoJ2J0bl91cGxvYWQyX25ldCcsIHRoaXMpIj4KCQk8ZGl2IGNsYXNzPSJmYWtlZmlsZSI+CgkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIGlkPSJidG5fdXBsb2FkMl9uZXQiIGNsYXNzPSJidG4iPlVwbG9hZDIubmV0PC9hPgoJCTwvZGl2PgoJPC9kaXY+Cgk8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iVXBsb2FkIj4KPC9mb3JtPgo8L2Rpdj48L2xpLS0+DQoNCjwhLS1saSBpZD0iZWdvc2hhcmUiPjxkaXY+PGEgaHJlZj0iaHR0cDovL3d3dy5lZ29zaGFyZS5jb20vIiByZWw9Im5vZm9sbG93Ij48aW1nIGFsdD0iIiBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEVBQVFBTE1KQVA4QUFLcXFxb2lJaU4zZDNVUkVSSGQzZC8vLy81bVptUUFBQVAvLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQUVBQUFrQUxBQUFBQUFRQUJBQUFBUlhNTW1KQ3BvWVYzTE11Vm15ZGNOZ2VLQlljRVZibklCSFhFZnAzZ2ZSQ2dnU2xBTlhiamREZkh6QllVRlE1Q0Y3bkVPdXgrd2RmNzFzRmVIRUlxSlRidkU2eUZLYlBTKzRXUlE5emRzTVZCb09VY3oydkQwQ0FEcz0iPjwvYT4KPGZvcm0gYWN0aW9uPSJodHRwOi8vd3d3LmVnb3NoYXJlLmNvbS8iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgdGFyZ2V0PSJfYmxhbmsiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9InRydWUiIG5hbWU9InVwbG9hZCI+Cgk8ZGl2IGNsYXNzPSJmaWxlaW5wdXRzIj4KCQk8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0idXBmaWxlIiBjbGFzcz0iZmlsZSIgc2l6ZT0iMSIgcmVxdWlyZWQgb25tb3VzZW92ZXI9Im9uT3ZlckZpbGUoJ2J0bl9lZ29zaGFyZV9jb20nKSIgb25tb3VzZW91dD0ib25PdXRGaWxlKCdidG5fZWdvc2hhcmVfY29tJykiIG9uY2hhbmdlPSJzZXRSZWFkeSgnYnRuX2Vnb3NoYXJlX2NvbScsIHRoaXMpIj4KCQk8ZGl2IGNsYXNzPSJmYWtlZmlsZSI+CgkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIGlkPSJidG5fZWdvc2hhcmVfY29tIiBjbGFzcz0iYnRuIj5FZ29zaGFyZS5jb208L2E+CgkJPC9kaXY+Cgk8L2Rpdj4KCTxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJVcGxvYWQiPgo8L2Zvcm0+CjwvZGl2PjwvbGktLT4NCg0KPGxpIGlkPSJzZW5kc3BhY2UiPjxkaXY+PGEgaHJlZj0iaHR0cDovL3d3dy5zZW5kc3BhY2UuY29tLyIgcmVsPSJub2ZvbGxvdyI+PGltZyBhbHQ9IiIgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhFQUFRQUxNQUFBRUJSTWZiOElxUm53TW5oZVB0OXlsZHI4ck4xV3B5Z3haSW9lTGs2cXF2dXVUbTdKSzI0T3JzOFFBQUFBQUFBQ0g1QkFBQUFBQUFMQUFBQUFBUUFCQUFBQVFtc01sSnE3MDQ2ODI3LzBqUkFVUEFaSXRBTW9SNUpjS3h0dWRseEtTYkdZb1Fmc0NnSlFJQU93PT0iPjwvYT4NCjxmb3JtIGFjdGlvbj0iaHR0cDovL2ZzMDJ1LnNlbmRzcGFjZS5jb20vcHJvY2Vzc3VwbG9hZC5odG1sIiBuYW1lPSJ1cGxvYWQiIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgdGFyZ2V0PSJfYmxhbmsiPg0KCTxpbnB1dCBuYW1lPSJNQVhfRklMRV9TSVpFIiB2YWx1ZT0iMzE0NTcyODAwIiB0eXBlPSJoaWRkZW4iPg0KCTxpbnB1dCBuYW1lPSJVUExPQURfSURFTlRJRklFUiIgdmFsdWU9IjIwODI3NzkxOTUuMTE3NjI4OTIxMy41NDVFMDUzOC4xNS4wIiB0eXBlPSJoaWRkZW4iPg0KCTxpbnB1dCBuYW1lPSJERVNUSU5BVElPTl9ESVIiIHZhbHVlPSIxMCIgdHlwZT0iaGlkZGVuIj4NCgk8aW5wdXQgbmFtZT0ianNfZW5hYmxlZCIgdmFsdWU9IjAiIHR5cGU9ImhpZGRlbiI+DQoJPGRpdiBjbGFzcz0iZmlsZWlucHV0cyI+DQoJCTxpbnB1dCBuYW1lPSJmaWxlXzAiIGNsYXNzPSJmaWxlIiBzaXplPSIxIiByZXF1aXJlZD0iIiBvbm1vdXNlb3Zlcj0ib25PdmVyRmlsZSgnYnRuX3NlbmRzcGFjZV9jb20nKSIgb25tb3VzZW91dD0ib25PdXRGaWxlKCdidG5fc2VuZHNwYWNlX2NvbScpIiBvbmNoYW5nZT0ic2V0UmVhZHkoJ2J0bl9zZW5kc3BhY2VfY29tJywgdGhpcykiIHR5cGU9ImZpbGUiPg0KCQk8ZGl2IGNsYXNzPSJmYWtlZmlsZSI+DQoJCQk8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBpZD0iYnRuX3NlbmRzcGFjZV9jb20iIGNsYXNzPSJidG4iPnNlbmRzcGFjZS5jb208L2E+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KCTxpbnB1dCBjbGFzcz0ic3VibWl0IiB2YWx1ZT0iVXBsb2FkIiB0eXBlPSJzdWJtaXQiPg0KPC9mb3JtPg0KPC9kaXY+PC9saT4NCg0KPGxpIGlkPSJyYWRpa2FsIj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly9mb3RvLnJhZGlrYWwucnUvIiByZWw9Im5vZm9sbG93IiBsYW5nPSJydSI+PGltZyBhbHQ9IiIgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhFQUFRQU1RZkFBNFVFemhtSUZsWldjckt5amMzTjB4cFBTb3FLam82T3FPam83Mit2a3hVU1Q0K1BnMDFTUmhnaFI5RldWZXdLSUNBZ0RsU1lOWFYxVWhNUlpXWWs0aUxqUnMxRFY1ZVhsR2pKbVZsWlJsa2kxcGFXMWl4S1JwbmpqTXpNLy8vL3lINUJBRUFBQjhBTEFBQUFBQVFBQkFBQUFWMjRDZCtWY1JjWXpvbVR0TnBLTEI0M21HSWJLZkRuNWRDbTQ5RHQ0c2RhSVFid0VYa0dTQUF3VUFFSUJaN0lnUkI4V0ZZWHlpSTZuUFltTS9qdEVyQmJrOCtnNk5nbE1Gdzd2Y0FHYUdxNCs4RlBUUWVCQXNmZm5nWUZEMThLWWdjRDRHTWZYYVFBUklpQjJOK0dBV1lhajBXQUFBcElRQTciPjwvYT4NCjxmb3JtIGFjdGlvbj0iaHR0cDovL2ZvdG8ucmFkaWthbC5ydS9hY3Rpb24uYXNweCIgbmFtZT0idXBsb2FkIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIHRhcmdldD0iX2JsYW5rIj4NCgk8aW5wdXQgbmFtZT0idXBsb2FkIiB2YWx1ZT0ieWVzIiB0eXBlPSJoaWRkZW4iPg0KCTxkaXYgY2xhc3M9ImZpbGVpbnB1dHMiPg0KCQk8aW5wdXQgbmFtZT0iRiIgY2xhc3M9ImZpbGUiIHNpemU9IjEiIHJlcXVpcmVkPSIiIG9ubW91c2VvdmVyPSJvbk92ZXJGaWxlKCdidG5fcmFkaWthbF9ydScpIiBvbm1vdXNlb3V0PSJvbk91dEZpbGUoJ2J0bl9yYWRpa2FsX3J1JykiIG9uY2hhbmdlPSJzZXRSZWFkeSgnYnRuX3JhZGlrYWxfcnUnLCB0aGlzKSIgdHlwZT0iZmlsZSI+DQoJCTxkaXYgY2xhc3M9ImZha2VmaWxlIj4NCgkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIGlkPSJidG5fcmFkaWthbF9ydSIgY2xhc3M9ImJ0biI+0KDQsNC00LjQutCw0Lst0KTQvtGC0L48L2E+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KCTxpbnB1dCBjbGFzcz0ic3VibWl0IiB2YWx1ZT0iVXBsb2FkIiB0eXBlPSJzdWJtaXQiPg0KCTxpbnB1dCBuYW1lPSJDUCIgdmFsdWU9InllcyIgY2hlY2tlZD0iY2hlY2tlZCIgdHlwZT0iaGlkZGVuIj4NCgk8aW5wdXQgbmFtZT0iVk0iIHZhbHVlPSIyMDAiIHR5cGU9ImhpZGRlbiI+DQo8L2Zvcm0+DQo8L2Rpdj48L2xpPg0KDQo8bGkgaWQ9ImxldGl0Yml0Ij48ZGl2PjxhIGhyZWY9Imh0dHA6Ly9sZXRpdGJpdC5uZXQvIiByZWw9Im5vZm9sbG93Ij48aW1nIGFsdD0iIiBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEVBQVFBTE1BQUFFQlJNZmI4SXFSbndNbmhlUHQ5eWxkcjhyTjFXcHlneFpJb2VMazZxcXZ1dVRtN0pLMjRPcnM4UUFBQUFBQUFDSDVCQUFBQUFBQUxBQUFBQUFRQUJBQUFBUW1zTWxKcTcwNDY4MjcvMGpSQVVQQVpJdEFNb1I1SmNLeHR1ZGx4S1NiR1lvUWZzQ2dKUUlBT3c9PSI+PC9hPg0KPGZvcm0gbmFtZT0iRjEiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGFjdGlvbj0iaHR0cDovL3IyLmxldGl0Yml0Lm5ldC9jZ2ktYmluL2hvbWVyL3VwbG9hZC5jZ2k/dXBsb2FkX2lkPSIgbWV0aG9kPSJwb3N0IiB0YXJnZXQ9Il9ibGFuayI+DQoJPGlucHV0IGNsYXNzPSJuIiBuYW1lPSJjaGVja2JveCIgdmFsdWU9ImNoZWNrYm94IiB0eXBlPSJjaGVja2JveCI+DQoJPGlucHV0IGNsYXNzPSJuIiBuYW1lPSJhY2NlcHQiIHZhbHVlPSIwIiBjaGVja2VkPSJjaGVja2VkIiB0eXBlPSJjaGVja2JveCI+DQoJPGRpdiBjbGFzcz0iZmlsZWlucHV0cyI+DQoJCTxpbnB1dCBuYW1lPSJteWZpbGUiIGNsYXNzPSJmaWxlIiBzaXplPSIxIiByZXF1aXJlZD0iIiBvbm1vdXNlb3Zlcj0ib25PdmVyRmlsZSgnYnRuX2xldGl0Yml0X25ldCcpIiBvbm1vdXNlb3V0PSJvbk91dEZpbGUoJ2J0bl9sZXRpdGJpdF9uZXQnKSIgb25jaGFuZ2U9InNldFJlYWR5KCdidG5fbGV0aXRiaXRfbmV0JywgdGhpcykiIHR5cGU9ImZpbGUiPg0KCQk8ZGl2IGNsYXNzPSJmYWtlZmlsZSI+DQoJCQk8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBpZD0iYnRuX2xldGl0Yml0X25ldCIgY2xhc3M9ImJ0biI+bGV0aXRiaXQubmV0PC9hPg0KCQk8L2Rpdj4NCgk8L2Rpdj4NCgk8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdmFsdWU9IlVwbG9hZCIgdHlwZT0ic3VibWl0Ij4NCgk8aW5wdXQgY2xhc3M9Im4iIG5hbWU9InNlbGZfZGVzYyIgdmFsdWU9InVwbG9hZGVyLXBhbmVsLmNvbSIgdHlwZT0idGV4dCI+DQoJPGlucHV0IG5hbWU9Ik1BWF9GSUxFX1NJWkUiIHZhbHVlPSIxMjAwMDAwMDAwIiB0eXBlPSJoaWRkZW4iPg0KCTxpbnB1dCBuYW1lPSJ1aWQiIHZhbHVlPSIxMjMiIHR5cGU9ImhpZGRlbiI+DQo8L2Zvcm0+DQo8L2Rpdj48L2xpPg0KDQo8bGkgaWQ9ImlwaWN0dXJlIj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly9pcGljdHVyZS5ydS8iIHJlbD0ibm9mb2xsb3ciPjxpbWcgYWx0PSIiIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoRUFBUUFNUUFBUC8vLzRDQWdNM055elF5THhVU0Roc1lGS1drbzVtWWwzVnpjYkt4c0JrV0VrQkFRQ0lmRy96TzN1NFdZZ0FBQUx5OHVzVER3cXFwcUxHd3NPYm01bmw0ZHZWNnBiQ3ZyWStPakhOeGIycG9abHBYVk1uSng5emMzQjRiRjM1OGVpSDVCQUFBQUFBQUxBQUFBQUFRQUJBQUFBVjQ0QktNWkZtS0FOQllEY0FaaHNTbHdKaGFqZ1ZrWHFFb21wUk54UUlnQ2hmQlJoR3BCV2cwaEVJQWlCQU96aFJra0RCT1hRUk1GcEFnR0x6VU1uWllQaU04aU0rQTBSbTNqWXo4WUNKOGtzMUdCUkFVVUd5QVVsU0ZmaE9IWHc4MGhtNEZpWkIrQ1FWbkZSNVVqNDlEVUtDUUlpYWtJd3NoQURzPSI+PC9hPg0KPGZvcm0gYWN0aW9uPSJodHRwOi8vaXBpY3R1cmUucnUvVXBsb2FkLyIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJ1cGxvYWQiIHRhcmdldD0iX2JsYW5rIj4NCgk8aW5wdXQgY2xhc3M9Im4iIG5hbWU9Im9wdGltaXplIiB0eXBlPSJjaGVja2JveCI+DQoJPGlucHV0IGNsYXNzPSJuIiBuYW1lPSJ0aHVtYl9yZXNpemVfb24iIGNoZWNrZWQ9ImNoZWNrZWQiIHR5cGU9ImNoZWNrYm94Ij4NCgk8aW5wdXQgY2xhc3M9Im4iIG5hbWU9InRodW1iX3Jlc2l6ZSIgc2l6ZT0iOCIgdmFsdWU9IjIwMCIgdHlwZT0idGV4dCI+DQoJPGlucHV0IGNsYXNzPSJuIiBuYW1lPSJzdHJpbmdfc21hbGxfb24iIHR5cGU9ImNoZWNrYm94Ij4JDQoJPGlucHV0IGNsYXNzPSJuIiBuYW1lPSJtZXRob2QiIHZhbHVlPSJmaWxlIiB0eXBlPSJoaWRkZW4iPg0KCTxpbnB1dCBjbGFzcz0ibiIgbmFtZT0idXBsb2FkdHlwZSIgdmFsdWU9IjEiIHR5cGU9InJhZGlvIj4NCgk8bGFiZWwgY2xhc3M9Im4iPtCd0LDQtNC/0LjRgdGMINC90LAg0L/RgNC10LLRjNGOIDxpbnB1dCBjbGFzcz0ibiIgc2l6ZT0iMTMiIG5hbWU9InN0cmluZ19zbWFsbCIgdmFsdWU9IiIgdHlwZT0idGV4dCI+PC9sYWJlbD4NCgk8ZGl2IGNsYXNzPSJmaWxlaW5wdXRzIj4NCgkJPGlucHV0IG5hbWU9InVzZXJmaWxlIiBzaXplPSIxIiBjbGFzcz0iZmlsZSIgcmVxdWlyZWQ9IiIgb25tb3VzZW92ZXI9Im9uT3ZlckZpbGUoJ2J0bl9pcGljdHVyZV9ydScpIiBvbm1vdXNlb3V0PSJvbk91dEZpbGUoJ2J0bl9pcGljdHVyZV9ydScpIiBvbmNoYW5nZT0ic2V0UmVhZHkoJ2J0bl9pcGljdHVyZV9ydScsIHRoaXMpIiB0eXBlPSJmaWxlIj4NCgkJPGRpdiBjbGFzcz0iZmFrZWZpbGUiPg0KCQkJPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgaWQ9ImJ0bl9pcGljdHVyZV9ydSIgY2xhc3M9ImJ0biI+aVBpY3R1cmUucnU8L2E+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KCTxpbnB1dCBjbGFzcz0ic3VibWl0IiB2YWx1ZT0iVXBsb2FkIiB0eXBlPSJzdWJtaXQiPg0KPC9mb3JtPg0KPC9kaXY+PC9saT4NCg0KPGxpIGlkPSJ6c2hhcmUiPjxkaXY+PGEgaHJlZj0iaHR0cDovL3pzaGFyZS5uZXQvIiByZWw9Im5vZm9sbG93Ij48aW1nIGFsdD0iIiBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEVBQVFBTE1BQUFFQlJNZmI4SXFSbndNbmhlUHQ5eWxkcjhyTjFXcHlneFpJb2VMazZxcXZ1dVRtN0pLMjRPcnM4UUFBQUFBQUFDSDVCQUFBQUFBQUxBQUFBQUFRQUJBQUFBUW1zTWxKcTcwNDY4MjcvMGpSQVVQQVpJdEFNb1I1SmNLeHR1ZGx4S1NiR1lvUWZzQ2dKUUlBT3c9PSI+PC9hPg0KPGZvcm0gZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgYWN0aW9uPSJodHRwOi8vNjkuODAuMjU1LjEzMC91cGxvYWQucGhwIiBtZXRob2Q9InBvc3QiIG5hbWU9InVwbG9hZCIgdGFyZ2V0PSJfYmxhbmsiPg0KCTxpbnB1dCB2YWx1ZT0iMSIgbmFtZT0iVE9TIiBjaGVja2VkPSJjaGVja2VkIiBjbGFzcz0ibiIgdHlwZT0iY2hlY2tib3giPg0KCTxkaXYgY2xhc3M9ImZpbGVpbnB1dHMiPg0KCQk8aW5wdXQgbmFtZT0iZmlsZSIgc2l6ZT0iMSIgY2xhc3M9ImZpbGUiIHJlcXVpcmVkPSIiIG9ubW91c2VvdmVyPSJvbk92ZXJGaWxlKCdidG5fenNoYXJlJykiIG9ubW91c2VvdXQ9Im9uT3V0RmlsZSgnYnRuX3pzaGFyZScpIiBvbmNoYW5nZT0ic2V0UmVhZHkoJ2J0bl96c2hhcmUnLCB0aGlzKSIgdHlwZT0iZmlsZSI+DQoJCTxkaXYgY2xhc3M9ImZha2VmaWxlIj4NCgkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIGlkPSJidG5fenNoYXJlIiBjbGFzcz0iYnRuIj56c2hhcmUubmV0PC9hPg0KCQk8L2Rpdj4NCgk8L2Rpdj4NCgk8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdmFsdWU9IlVwbG9hZCIgdHlwZT0ic3VibWl0Ij4NCjwvZm9ybT4NCg0KPCEtLTxsaSBpZD0iZnJlZXNoYXJlIj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly9mcmVlc2hhcmUudXMvIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+ZnJlZXNoYXJlLnVzPC9hPgo8Zm9ybSBuYW1lPSJ1cGxvYWQiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGFjdGlvbj0iaHR0cDovL2ZyZWVzaGFyZS51cy91cGxvYWQxLnBocCIgbWV0aG9kPSJwb3N0IiB0YXJnZXQ9Il9ibGFuayI+Cgk8aW5wdXQgY2xhc3M9Im4iIHR5cGU9ImhpZGRlbiIgdmFsdWU9InVwbG9hZCIgbmFtZT0iYWN0aW9uIj4KCTxpbnB1dCBjbGFzcz0ibiIgbmFtZT0idXBsb2FkIiB0eXBlPSJyYWRpbyIgdmFsdWU9ImZpbGUiIGNoZWNrZWQ+Cgk8aW5wdXQgY2xhc3M9Im4iIG5hbWU9InVwbG9hZCIgdHlwZT0icmFkaW8iIHZhbHVlPSJ1cmwiPgoJPGRpdiBjbGFzcz0iZmlsZWlucHV0cyI+CgkJPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImZpbGVuYW1lIiBjbGFzcz0iZmlsZSIgc2l6ZT0iMSIgcmVxdWlyZWQgb25tb3VzZW92ZXI9Im9uT3ZlckZpbGUoJ2J0bl9mcmVlc2hhcmVfdXMnKSIgb25tb3VzZW91dD0ib25PdXRGaWxlKCdidG5fZnJlZXNoYXJlX3VzJykiIG9uY2hhbmdlPSJzZXRSZWFkeSgnYnRuX2ZyZWVzaGFyZV91cycsIHRoaXMpIj4KCQk8ZGl2IGNsYXNzPSJmYWtlZmlsZSI+CgkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIGlkPSJidG5fZnJlZXNoYXJlX3VzIiBjbGFzcz0iYnRuIj5mcmVlc2hhcmUudXM8L2E+CgkJPC9kaXY+Cgk8L2Rpdj4KCTxpbnB1dCBjbGFzcz0ibiIgbmFtZT0icHVibGljIiB0eXBlPSJyYWRpbyIgdmFsdWU9IjEiIGNoZWNrZWQ+Cgk8aW5wdXQgY2xhc3M9Im4iIG5hbWU9InB1YmxpYyIgdHlwZT0icmFkaW8iIHZhbHVlPSIwIj4KCQo8L2Zvcm0+CjwvZGl2PjwvbGk+LS0+DQoNCjwvZGl2PjwvbGk+PC91bD4NCg0KPHAgaWQ9InZlcnNpb24iPg0KCTxhIGhyZWY9Imh0dHA6Ly91cGxvYWRlci1wYW5lbC5jb20vIj4NCgkJPHNwYW4+U3VwZXIgVXBsb2FkZXIgMC4yNiAoMTIuMDYuMjAwOCk8L3NwYW4+DQoJPC9hPg0KPC9wPg0KDQo8ZGl2IGNsYXNzPSJyb2JvdHMtbm9jb250ZW50Ij4NCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJZnVuY3Rpb24gc2hvd0Zvcm0ob2JqKSB7DQoJCWlmKCFvYmopIHJldHVybjsNCgkJb2JqLmNsYXNzTmFtZT0ndmlzaWJsZSc7DQoJCWlmKCFvYmouZm9ybSkgcmV0dXJuOw0KCQlvYmouZm9ybS5jbGFzc05hbWU9J3Zpc2libGUnfQ0KIA0KICBmdW5jdGlvbiBvbk92ZXJCdG4oYnRuKQ0KICB7DQogICAgaWYoYnRuKSANCiAgICAgIGJ0bi5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2NvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiAjNmE5YmNkOycsIGZhbHNlKQ0KICAgICAgfQ0KICANCiAgZnVuY3Rpb24gb25PdXRCdG4oYnRuKQ0KICB7DQogICAgaWYoYnRuKQ0KICAgICAgYnRuLnJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnLCBmYWxzZSl9DQogIA0KICBmdW5jdGlvbiBvbk92ZXJGaWxlKGlkKQ0KICB7DQogICAgdmFyIGJ0biA9IGdldEJ0bihpZCk7DQogICAgb25PdmVyQnRuKGJ0bil9DQogIA0KICBmdW5jdGlvbiBvbk91dEZpbGUoaWQpDQogIHsNCg0KICAgIHZhciBidG4gPSBnZXRCdG4oaWQpOw0KICAgIG9uT3V0QnRuKGJ0bil9DQogIA0KICBmdW5jdGlvbiBzZXRSZWFkeShpZCwgZmlsZU9iaikNCiAgew0KICAgIHZhciBidG4gPSBnZXRCdG4oaWQpOw0KICAgIGlmKGJ0bikNCiAgICAgIGJ0bi5jbGFzc05hbWUgPSAnYnRucmVhZHknOw0KICAgICAgDQogICAgaWYoZmlsZU9iaikNCiAgICAgIGZpbGVPYmouZm9ybS5zdWJtaXQoKX0NCiAgDQogIGZ1bmN0aW9uIHNldFJlYWR5MihpZCwgZmlsZU9iaikNCiAgew0KICAgIHZhciBidG4gPSBnZXRCdG4oaWQpOw0KICAgIGlmKGJ0bikNCiAgICAgIGJ0bi5jbGFzc05hbWUgPSAnYnRucmVhZHknOw0KICAgICAgDQogICAgdmFyIGZvcm0gPSBmaWxlT2JqLmZvcm07DQogICAgaWYoZm9ybSkgIA0KICAgIHsNCiAgICAgIGZvcih2YXIgaSA9IGZvcm0uZWxlbWVudHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pDQogICAgICB7DQogICAgICAgIGlmKGZvcm0uZWxlbWVudHNbaV0udGFnTmFtZSA9PSAnSU5QVVQnICYmIGZvcm0uZWxlbWVudHNbaV0udHlwZSA9PSAnc3VibWl0JykNCiAgICAgICAgew0KICAgICAgICAgIGZvcm0uZWxlbWVudHNbaV0uY2xpY2soKTsNCiAgICAgICAgICBicmVha30NCiAgICAgIH0NCiAgICB9DQogIH0NCg0KICBmdW5jdGlvbiBnZXRCdG4oaWQpDQogIHsNCiAgICBpZighaWQpDQogICAgICByZXR1cm47DQogICAgICANCiAgICB2YXIgb2JqID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICAgIGlmKG9iaiAmJiBvYmoudGFnTmFtZSA9PSAnQScpDQogICAgew0KICAgICAgcmV0dXJuIG9ian0NCiAgICANCiAgICByZXR1cm4gbnVsbH0JDQoJPC9zY3JpcHQ+DQoNCjwvZGl2Pg0KPC9ib2R5PjwvaHRtbD4=");
Открывается и закрывается панель через встроенную в Firefox функцию. Почему в этом случае панель не закрывается при повторном вызове – не знаю.
Отредактировано Infocatcher (18-03-2009 13:57:18)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
BALANCE
Слушай а нет какого нибудь справочного материала? чтобы самому научится?)
Его много, но чтобы научиться - такого нет.
3Jlou
1) Кнопка работает, но нет ли "подводных камней" в коде и вообще при таком способе написания ссылок и размещении файлов в папке chrome?
Возможно, html загружаемый по chrome:// протоколу, будет иметь chrome-привилегии.
2) Можно ли как нибудь указать путь к папке/подпапке с профилем Firefox (хочу перекинуть html'ки туда) по аналогии с методом, описанным выше (chrome://local/content/superuploader.htm)?
Есть такой вариант: в подкаталоге extensions\custombuttons@xsms.org профиля найти файл chrome.manifest, открыть его в редакторе, записать в конец строку
перезапустить браузер. После этого html можно хранить в подкаталоге htmls профиля и ссылаться на них посредством resource://myresource/myhtml.htm.
Недостаток тоже есть, всё содержимое подкаталога, в принципе, будет доступно открываемым в браузере страницам (если странице известен псевдоним 'myresource' и путь к файлам).
Можно в chrome.manifest расширения ничего не писать, и размещать файлы в подкаталоге res каталога установки Firefox. Путь туда - resource://gre/res/
Отредактировано Anton (18-03-2009 16:28:27)
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Есть такой вариант: в подкаталоге extensions\custombuttons@xsms.org профиля найти файл chrome.manifest, открыть его в редакторе, записать в конец строку
Вот только этот файл будет перезаписан при переустановке или обновлении расширения.
var chromeDir = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("UChrm", Components.interfaces.nsILocalFile); chromeDir = "file://" + chromeDir.path.replace(/\\/g, "/") + "/"; openWebPanel("", chromeDir + "userChrome-example.css");
chromeDir – путь к папке chrome в профиле.
Или вот так:
var dir = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("ProfD", Components.interfaces.nsILocalFile); dir = "file://" + dir.path.replace(/\\/g, "/") + "/my_dir/"; openWebPanel("", dir + "some.html");
dir – путь к папке my_dir в профиле.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher, вот теперь точно ОГРОМНОЕ СПАСИБО!!! 2-й вариант как раз то что надо, 5 баллов!
Anton'у тоже благодарность
Кстати в чем различия полей Код и Инициализация?
Отредактировано 3Jlou (18-03-2009 19:41:31)
Отсутствует
Подскажите какой код на в кнопку написать, что бы туда влезло меню. Ну то которое "файл", "правка", "вид" и т.д. Есть такое расширение Tiny Menu, вот я хочу сделать тоже самое, т.к. Tiny Menu нельзя двигать по тулбару, а кнопку можно.
Отсутствует
3Jlou
Кстати в чем различия полей Код и Инициализация?
Код из раздела "Код" выполняется при нажатии на кнопку.
Код из раздела "Инициализация" выполняется, когда браузер создаёт кнопку.
MAFi0Z0
Подскажите какой код на в кнопку написать, что бы туда влезло меню. Ну то которое "файл", "правка", "вид" и т.д.
var mp = document. createElement ("menupopup"); this. appendChild (mp); var mc = document. getElementById ("main-menubar"); while (mc. hasChildNodes ()) mp. appendChild (mc. firstChild); this. type = "menu"; this. orient = "horizontal";
в раздел "Инициализация".
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Есть расширение Reframe It, которое позволяет сохранять онлайн комментариии и заметки. Я его только установил. Кнопка Reframe It находится в строке состояния. Может я изобретаю велосипед, но через Custom Button (правда у меня CB с двойкой) сделал кнопку для размещения на панели инструментов. Традиционный вопрос - как запускать расширение через эту кнопку? Я в технической информации не профи, поэтому просьба подсказать в популярной форме. Заранее спасибо.
Отредактировано Supernovus (21-03-2009 14:18:07)
Отсутствует
Supernovus
как запускать расширение через эту кнопку?
Что значит "запустить" ?
Вроде бы на английском это называется инициализация. А по нашему ВКЛ./ВЫКЛ. Я не хочу кнопку от Reframe It в строке состояния, потому что она длинная (с индикатором сообщений). По этой же причине не хочу на панель инструментов. Я сделал в Custom Buttons кнопку (скопировал с их сайта), но для включения расширения через мою самодельную кнопку нужны коды. Где их скопировать или как сделать?
Отсутствует
Supernovus
Вроде бы на английском это называется инициализация. А по нашему ВКЛ./ВЫКЛ.
Непонятно. Надо открыть/закрыть боковую панель ? Тогда пишите в раздел "Код":
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует