# Name: rss_unlimited_categories v0.7.4p4 # Type: Admin/Client side plugin # Enable unlimited categories (tags) per article. # Author: Rob Sable # URL: http://www.wilshireone.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMDp7czo0OiJuYW1lIjtzOjI0OiJyc3NfdW5saW1pdGVkX2NhdGVnb3JpZXMiO3M6Njoi YXV0aG9yIjtzOjk6IlJvYiBTYWJsZSI7czoxMDoiYXV0aG9yX3VyaSI7czoyNzoiaHR0cDov L3d3dy53aWxzaGlyZW9uZS5jb20vIjtzOjc6InZlcnNpb24iO3M6NzoiMC43LjRwNCI7czox MToiZGVzY3JpcHRpb24iO3M6NDc6IkVuYWJsZSB1bmxpbWl0ZWQgY2F0ZWdvcmllcyAodGFn cykgcGVyIGFydGljbGUuIjtzOjQ6ImNvZGUiO3M6MzY3NDE6Ii8vIHJzc191bmxpbWl0ZWRf Y2F0ZWdvcmllcw0KLy8gUm9iIFNhYmxlDQovLyBodHRwOi8vd3d3LndpbHNoaXJlb25lLmNv bQ0KLy8gVmVyc2lvbiAwLjEgLSAwMS8yMS8yMDA2DQovLyBWZXJzaW9uIDAuMiAtIDAzLzI4 LzIwMDYNCi8vIFZlcnNpb24gMC4zIC0gMDMvMzAvMjAwNg0KLy8gVmVyc2lvbiAwLjQgLSAw OC8wOS8yMDA2DQovLyBWZXJzaW9uIDAuNSAtIDA4LzE4LzIwMDYNCi8vIFZlcnNpb24gMC42 IC0gMTAvMTgvMjAwNg0KLy8gVmVyc2lvbiAwLjcgLSAxMi8yNy8yMDA2DQovLyBWZXJzaW9u IDAuNy4xIC0gMTIvMzEvMjAwNg0KLy8gVmVyc2lvbiAwLjcuMiAtIDEvMjEvMjAwNw0KLy8g VmVyc2lvbiAwLjcuMyAtIDQvMTEvMjAwNw0KLy8gVmVyc2lvbiAwLjcuNCAtIDQvMTgvMjAw Nw0KLy8gVGhhbmtzIHRvIGZvcnVtIHVzZXJzIFphbnphLCBBcHJpbDE5IGFuZCBiaXQgZm9y IGNvbnRyaWJ1dGluZyBjb2RlIHRvIHRoaXMgcGx1Z2luDQoNCi8vIDAuNy40cDEgKHBhdGNo IGZyb20gaHR0cDovL3RleHRwYXR0ZXJuLm9yZy51YS8pDQovLyBmaXggdW5zYWZlIHZhcmlh YmxlcyBpbiByc3NfdW5saW1pdGVkX2NhdGVnb3JpZXNfYXJ0aWNsZV9saXN0DQovLyBmaXgg YWRtaW4gcHJpdg0KDQovLyAwLjcuNHAyIChwYXRjaCBmcm9tIGh0dHA6Ly90ZXh0cGF0dGVy bi5vcmcudWEvKQ0KLy8gYWRkIG9wdGlvbiAiUGFyZW50IGZvciBkaXNwbGF5IiAoaW4gYWRt aW4gc2lkZSkNCg0KLy8gMC43LjRwMyAocGF0Y2ggYnkgaG9obyAtIDA1LzA0LzIwMDkpDQov LyAtIHByZXNlcnZlIGNhdGVnb3JpZXMgc2VsZWN0aW9uIG92ZXIgdGV4dC0+aHRtbC9wcmV2 aWV3LT50ZXh0IGN5Y2xlIChieSANCi8vICAgUmFtZW4gQW5nZWwsIGh0dHA6Ly9mb3J1bS50 ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9pZD0xNDE2OCZwPTQ4DQovLyAtIGFkZCAn RGVzZWxlY3QgYWxsJyBsaW5rIHRvIHRoZSBhcnRpY2xlIGludGVyZmFjZQ0KLy8gLSBkbyBu b3QgdHJ5IHRvIGNoYW5nZSB0aGUgaW50ZXJmYWNlIHdoZW4gb24gJ2h0bWwnIG9yICdwcmV2 aWV3Jw0KLy8gLSBmaXggbWlzc2luZyBzbGFzaCBpbiByc3NfdW5saW1pdGVkX2NhdGVnb3Jp ZXNfZmlsZWR1bmRlciAobGluZSAxODgsIA0KLy8gICBieSBmbG9vZGZpc2gsIGh0dHA6Ly9m b3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9pZD0xNDE2OCZwPTYyKQ0KDQov LyAwLjcuNHA0IChwYXRjaCBmcm9tIGh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmll d3RvcGljLnBocD9pZD0yNDkyNSB3aXRoIHNtYWxsIGJ1Z2ZpeCkNCi8vIGFkZCAiYWN0aXZl Y2xhc3MiIGF0dHJpYnV0ZSB0byByc3NfdW5saW1pdGVkX2NhdGVnb3JpZXNfbGlzdCB0YWcu DQoNCg0KDQppZiAoQHR4cGludGVyZmFjZSA9PSAnYWRtaW4nKSB7DQoNCiAgJHEgPSAiU0hP VyBUQUJMRVMgTElLRSAnIi5QRlguInRleHRwYXR0ZXJuX2NhdGVnb3J5JyI7DQogICR0Y2hl Y2sgPSBnZXRSb3dzKCRxKTsNCiAgaWYgKCEkdGNoZWNrKSB7DQogICAgJHFjID0gIkNSRUFU RSBUQUJMRSBgIi5QRlguInRleHRwYXR0ZXJuX2NhdGVnb3J5YCAoYGFydGljbGVfaWRgIGlu dCgxMSkgTk9UIE5VTEwgZGVmYXVsdCAnMCcsIGBjYXRlZ29yeV9pZGAgaW50KDYpIE5PVCBO VUxMIGRlZmF1bHQgJzAnLCBQUklNQVJZIEtFWSAgKGBhcnRpY2xlX2lkYCxgY2F0ZWdvcnlf aWRgKSkgVFlQRT1NeUlTQU07ICI7DQogICAgc2FmZV9xdWVyeSgkcWMpOw0KICB9DQoNCiAg cmVnaXN0ZXJfY2FsbGJhY2soJ3Jzc19hZG1pbl9jYXRsaXN0X3NhdmUnLCAnYXJ0aWNsZScs ICdwb3N0Jyk7DQogIHJlZ2lzdGVyX2NhbGxiYWNrKCdyc3NfYWRtaW5fY2F0bGlzdF9zYXZl JywgJ2FydGljbGUnLCAnZWRpdCcpOw0KICByZWdpc3Rlcl9jYWxsYmFjaygncnNzX2FkbWlu X2NhdGxpc3QnLCAnYXJ0aWNsZScpOw0KDQogIHJlZ2lzdGVyX2NhbGxiYWNrKCdyc3NfYWRt aW5fY2F0bGlzdF9kZWxldGUnLCAnbGlzdCcsICdsaXN0X211bHRpX2VkaXQnKTsNCi8vICBy ZWdpc3Rlcl9jYWxsYmFjaygncnNzX2FkbWluX2FydGljbGVsaXN0JywgJ2xpc3QnKTsNCg0K ICAgIGFkZF9wcml2cygncnNzX3VubGltaXRlZF9hZG1pbl90YWInLCAnMSwyJyk7DQogICAg cmVnaXN0ZXJfdGFiKCJleHRlbnNpb25zIiwgInJzc191bmxpbWl0ZWRfYWRtaW5fdGFiIiwg IlVubGltIENhdHMiKTsNCiAgICByZWdpc3Rlcl9jYWxsYmFjaygicnNzX3VubGltaXRlZF9h ZG1pbl90YWIiLCAicnNzX3VubGltaXRlZF9hZG1pbl90YWIiKTsNCg0KDQogIGlmIChncHMo J2V2ZW50JykgPT0gImFydGljbGUiIGFuZCBncHMoJ3N0ZXAnKSA9PSAic2F2ZSIpIHsNCg0K ICAgICAgc2FmZV9kZWxldGUoInRleHRwYXR0ZXJuX2NhdGVnb3J5IiwiYXJ0aWNsZV9pZD0k SUQiKTsNCiAgICAgIGZvcmVhY2goZ3BzKCdDYXRzJykgYXMgJHZhbCApew0KICAgICAgICBz YWZlX2luc2VydCgidGV4dHBhdHRlcm5fY2F0ZWdvcnkiLA0KICAgICAgICAgICJjYXRlZ29y eV9pZCA9ICckdmFsJywNCiAgICAgICAgICBhcnRpY2xlX2lkPSckSUQnIg0KICAgICAgICAp Ow0KICAgICAgfQ0KDQogIH0NCn0NCg0KcmVnaXN0ZXJfY2FsbGJhY2soJ3Jzc19tdWx0aV91 cmwnLCdwcmV0ZXh0Jyk7DQoNCmZ1bmN0aW9uIHJzc19tdWx0aV91cmwoKSB7DQogIGdsb2Jh bCAkYXR0YWNoX3RpdGxlc190b19wZXJtYWxpbmtzLCRwZXJtbGlua19tb2RlLCRwcmV0ZXh0 Ow0KDQogIC8vIHNldCBtZXNzeSB2YXJpYWJsZXMNCiAgJG91dCA9ICBtYWtlT3V0KCdpZCcs J3MnLCdjJywncScsJ3BnJywncCcsJ21vbnRoJywnYXV0aG9yJyk7DQoNCiAgaWYgKCEkb3V0 WydpZCddICYmICEkb3V0WydzJ10gJiYgISh0eHBpbnRlcmZhY2U9PSdjc3MnKSkgew0KDQog ICAgJHN1YnBhdGggPSBwcmVnX3F1b3RlKHByZWdfcmVwbGFjZSgiL2h0dHA6XC9cLy4qKFwv LiopL1VpIiwiJDEiLGh1KSwiLyIpOw0KICAgICRyZXEgPSBwcmVnX3JlcGxhY2UoIi9eJHN1 YnBhdGgvaSIsIi8iLHNlcnZlclNldCgnUkVRVUVTVF9VUkknKSk7DQogICAgZXh0cmFjdChj aG9wVXJsKCRyZXEpKTsNCg0KICAgIGlmICghZW1wdHkoJHUxKSkgew0KDQogICAgICBzd2l0 Y2goJHUxKSB7DQoNCiAgICAgICAgY2FzZSAnYXRvbSc6DQogICAgICAgICAgaW5jbHVkZSB0 eHBhdGguJy9wdWJsaXNoL2F0b20ucGhwJzsgZXhpdChhdG9tKCkpOw0KDQogICAgICAgIGNh c2UgJ3Jzcyc6DQogICAgICAgICAgaW5jbHVkZSB0eHBhdGguJy9wdWJsaXNoL3Jzcy5waHAn OyBleGl0KHJzcygpKTsNCg0KICAgICAgICBkZWZhdWx0Og0KDQogICAgICAgICAgICAgICAg ICAgICBpZiAoJHBlcm1saW5rX21vZGUgPT0gInNlY3Rpb25faWRfdGl0bGUiIHx8ICRwZXJt bGlua19tb2RlID0gInNlY3Rpb25fdGl0bGUiKSB7DQoNCiAgICAgICAgICAgICAgICAgICAg ICAgIGlmIChlbXB0eSgkdTIpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG91 dFsncyddID0gKGNrRXgoJ3NlY3Rpb24nLCR1MSkpID8gJHUxIDogJyc7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgJGlzXzQwNCA9IGVtcHR5KCRvdXRbJ3MnXSk7DQogICAgICAg ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkdTIpKSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRycyA9IGxvb2t1cEJ5VGl0bGVTZWN0aW9uKCR1 MiwkdTEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb3V0WydpZCddID0g QCRyc1snSUQnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJF9HRVRbJ2lk J10gPSBAJHJzWydJRCddOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb3V0 WydzJ10gPSBAJHJzWydTZWN0aW9uJ107DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRfR0VUWydzJ10gPSBAJHJzWydTZWN0aW9uJ107DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRpc180MDQgPSBlbXB0eSgkb3V0WydzJ10pOw0KDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmKCEkb3V0WydzJ10gJiYgZW1wdHkoJHUzKSkgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG91dFsnYyddID0gKGNrRXgo J2NhdGVnb3J5JywkdTIpKSA/ICR1MiA6IE5VTEw7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkX0dFVFsnYyddID0gKGNrRXgoJ2NhdGVnb3J5JywkdTIpKSA/ICR1 MiA6TlVMTDsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFl bXB0eSgkb3V0WydjJ10pKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJG91dFsncyddID0gKGNrRXgoJ3NlY3Rpb24nLCR1MSkpID8gJHUxIDogTlVMTDsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkX0dFVFsncyddID0g KGNrRXgoJ3NlY3Rpb24nLCR1MSkpID8gJHUxIDogTlVMTDsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRpc180MDQgPSBlbXB0eSgkb3V0WydjJ10pOw0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAoISRvdXRbJ2lkJ10gJiYgaXNzZXQoJHUzKSkg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcnMgPSBsb29rdXBCeVRpdGxl U2VjdGlvbigkdTMsJHUxKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAoZW1wdHkoJHJzWydJRCddKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJG91dFsncGcnXSA9ICR1MzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRpc180MDQgPSAoZW1wdHkoJG91dFsncyddKSBvciBlbXB0eSgkb3V0WydpZCdd KSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb3V0WydpZCddID0gQCRyc1snSUQnXTsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvdXRbJ3MnXSA9IEAkcnNb J1NlY3Rpb24nXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvdXRb J2MnXSA9IChja0V4KCdjYXRlZ29yeScsJHUyKSkgPyAkdTIgOiAnJzsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRfR0VUWydjJ10gPSAoY2tFeCgnY2F0ZWdvcnkn LCR1MikpID8gJHUyIDogJyc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkX0dFVFsncyddID0gQCRyc1snU2VjdGlvbiddOw0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJF9HRVRbJ2lkJ10gPSBAJHJzWydJRCddOw0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0K DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlbXB0eSgkdTQpKSB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvdXRbJ3MnXSA9IChja0V4KCdzZWN0aW9u JywkdTEpKSA/ICR1MSA6ICcnOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk X0dFVFsncyddID0gKGNrRXgoJ3NlY3Rpb24nLCR1MSkpID8gJHUxIDogJyc7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKCRvdXRbJ2lkJ10gb3IgJG91dFsnYyddKSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRvdXRbJ3MnXSA9IChja0V4KCdzZWN0aW9uJywkdTEpKSA/ICR1MSA6ICcn Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb3V0WydjJ10gPSAoY2tFeCgn Y2F0ZWdvcnknLCR1MikpID8gJHUyIDogJyc7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRfR0VUWydjJ10gPSAoY2tFeCgnY2F0ZWdvcnknLCR1MikpID8gJHUyIDogJyc7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfR0VUWydzJ10gPSAoY2tFeCgn c2VjdGlvbicsJHUxKSkgPyAkdTEgOiAnJzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXNfNDA0ID0g KGVtcHR5KCRvdXRbJ3MnXSkgb3IgZW1wdHkoJG91dFsnaWQnXSkpOw0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAg ICAgfQ0KICAgIH0NCg0KICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogICAgZnVuY3Rpb24gcnNzX3VjX2Zp bGVkdW5kZXIoJGF0dHMpIHsNCiAgICAgICAgcmV0dXJuIHJzc191bmxpbWl0ZWRfY2F0ZWdv cmllc19maWxlZHVuZGVyKCRhdHRzKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiByc3NfdW5s aW1pdGVkX2NhdGVnb3JpZXNfZmlsZWR1bmRlcigkYXR0cykgew0KICAgICAgICAgICAgZ2xv YmFsICR0aGlzYXJ0aWNsZTsNCiAgICAgICAgICAgIGV4dHJhY3QobEF0dHMoYXJyYXkoDQog ICAgICAgICAgICAgICAgJ3NlY3Rpb24nID0+ICcnLA0KICAgICAgICAgICAgICAgICdsaW5r dG9zZWN0aW9uJyA9PiAnYXJ0aWNsZScsDQogICAgICAgICAgICAgICAgJ3N1ZmZpeCcgPT4g JycsDQogICAgICAgICAgICAgICAgJ3BhcmVudCcgPT4gJycsDQogICAgICAgICAgICAgICAg J3VzZW1lc3N5JyA9PiAwLA0KICAgICAgICAgICAgICAgICdsaXN0d3JhcHRhZycgID0+ICcn LA0KICAgICAgICAgICAgICAgICdicmVhaycgICAgPT4gJywgJywNCiAgICAgICAgICAgICAg ICAnd3JhcHRhZycgID0+ICcnLA0KICAgICAgICAgICAgICAgICdsYWJlbCcgICAgPT4gJycs DQogICAgICAgICAgICAgICAgJ2xhYmVsdGFnJyA9PiAnJywNCiAgICAgICAgICAgICAgICAn Y2xhc3MnICAgICAgID0+ICcnLA0KICAgICAgICAgICAgICAgICdicmVha2NsYXNzJyAgPT4g JycsDQogICAgICAgICAgICAgICAgJ3NvcnRkaXInID0+ICdhc2MnDQogICAgICAgICAgICAp LCRhdHRzKSk7DQoNCiAgICAgICAgICAgICRzZWN0aW9ucz1yc3NCdWlsZFNjdFNxbCgkc2Vj dGlvbik7DQogICAgICAgICAgICAkcGFyZW50cyA9IHJzc0J1aWxkUGFyZW50Q2F0U3FsKCRw YXJlbnQpOw0KDQogICAgICAgICAgICAkY2F0cyA9IGFycmF5KCk7DQogICAgICAgICAgICAk cnNjID0gZ2V0Um93cygiU0VMRUNUIGMudGl0bGUsIGMubmFtZSBGUk9NICIuUEZYLiJ0ZXh0 cGF0dGVybl9jYXRlZ29yeSBhcyB0YyBMRUZUIEpPSU4gICIuUEZYLiJ0eHBfY2F0ZWdvcnkg YXMgYyBPTiB0Yy5jYXRlZ29yeV9pZCA9IGMuaWQgV0hFUkUgYXJ0aWNsZV9pZD0iLiR0aGlz YXJ0aWNsZVsndGhpc2lkJ10uJHBhcmVudHMuIiBPUkRFUiBCWSBjLm5hbWUgIiAuJHNvcnRk aXIpOw0KICAgICAgICAgICAgaWYgKCRyc2MpIHsNCiAgICAgICAgICAgICAgICBmb3JlYWNo ICgkcnNjIGFzICRhPT4kYikgew0KICAgICAgICAgICAgICAgICAgICAkcGF0aCA9ICgkdXNl bWVzc3kpID8gaHUuIj9zPSIuJGxpbmt0b3NlY3Rpb24uIiZhbXA7Yz0iLnN0cnRvbG93ZXIo JGJbJ25hbWUnXSkgOiBodS4kbGlua3Rvc2VjdGlvbi4iLyIuc3RydG9sb3dlcigkYlsnbmFt ZSddKS4kc3VmZml4Ow0KDQogICAgICAgICAgICAgICAgICAgICRjYXRzW109dGFnKGh0bWxz cGVjaWFsY2hhcnMoJGJbJ3RpdGxlJ10pLCdhJywnIGhyZWY9IicuJHBhdGguJyIgdGl0bGU9 IicuaHRtbHNwZWNpYWxjaGFycygkYlsndGl0bGUnXSkuJyInKTsNCiAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgcmV0dXJuIGRvVGFnKGRvTGFiZWwoJGxhYmVsLCAkbGFi ZWx0YWcpLmRvV3JhcCgkY2F0cywgJHdyYXB0YWcsICRicmVhaywgJGNsYXNzLCAkYnJlYWtj bGFzcyksICRsaXN0d3JhcHRhZyk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1 cm4gJyc7DQogICAgICAgIH0NCg0KICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogICAgZnVuY3Rpb24gcnNz X3VjX2xpc3QoJGF0dHMpIHsNCiAgICAgICAgcmV0dXJuIHJzc191bmxpbWl0ZWRfY2F0ZWdv cmllc19saXN0KCRhdHRzKTsNCiAgICB9DQoNCi8qKg0KICogVGhpcyBpcyBhIHBhdGNoZWQg ZnVuY3Rpb24gZm9yIHJzc191bmxpbWl0ZWRfY2F0ZWdvcmllcyAwLjc0DQogKiBJdCBhZGRz IGEgbmV3IGZlYXR1cmUgdG8gdGhlIGNhdGVnb3J5IGxpc3QgdGFnOiBhbiAnYWN0aXZlY2xh c3MnIGF0dHJpYnV0ZQ0KICogdGhhdCBhbGxvd3MgeW91IHRvIGFwcGx5IHNwZWNpYWwgZm9y bWF0dGluZyB0byB0aGUgY3VycmVudGx5LXZpZXdlZCBjYXRlZ29yeS4NCiAqLw0KDQogIGZ1 bmN0aW9uIHJzc191bmxpbWl0ZWRfY2F0ZWdvcmllc19saXN0KCRhdHRzKSB7DQogICAgICBl eHRyYWN0KGxBdHRzKGFycmF5KA0KICAgICAgICAnbGltaXQnICAgICA9PiA5OTksDQogICAg ICAgICdvZmZzZXQnICAgICA9PiAwLA0KICAgICAgICAnc2VjdGlvbicgPT4gJycsDQogICAg ICAgICd0aW1lJyA9PiAncGFzdCcsDQogICAgICAgICdwYXJlbnQnID0+ICcnLA0KICAgICAg ICAnc2hvd2NvdW50JyA9PiAxLA0KICAgICAgICAnc2hvd2FsbGNvdW50JyA9PiAwLA0KICAg ICAgICAnYWxsY291bnRsYWJlbCcgPT4gJ0FsbCcsDQogICAgICAgICdjb3VudGxpbmtlZCcg PT4gMSwNCiAgICAgICAgJ2xpbmt0b3NlY3Rpb24nID0+ICdhcnRpY2xlJywNCiAgICAgICAg J3VzZW1lc3N5JyA9PiAwLA0KICAgICAgICAnbGlzdHdyYXB0YWcnICA9PiAnJywNCiAgICAg ICAgJ2JyZWFrJyAgICA9PiAnbGknLA0KICAgICAgICAnd3JhcHRhZycgID0+ICd1bCcsDQog ICAgICAgICdsYWJlbCcgICAgPT4gJycsDQogICAgICAgICdsYWJlbHRhZycgPT4gJycsDQog ICAgICAgICdjbGFzcycgICAgICAgPT4gJycsDQogICAgICAgICdicmVha2NsYXNzJyAgPT4g JycsDQogICAgICAgICdzb3J0ZGlyJyA9PiAnYXNjJywNCiAgICAgICAgLyogTW9kIGJ5IFJh ZmFlbCBOZXZhcmV6OiBhY3RpdmVjbGFzcyBhdHRyaWJ1dGUNCiAgICAgICAgICAgc2VlIGh0 dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9waWQ9MTIyNjE4I3Ax MjI2MTgNCg0KICAgICAgICAgICBNb2QgdXBkYXRlZCA4LTEtMjAwNyBieSBBZGFtIE1lc3Np bmdlciAod3d3LnplbnNjb3BlLmNvbSkgZm9yDQogICAgICAgICAgIGNvbXBhdGliaWxpdHkg d2l0aCBuZXcgcGx1Z2luIHZlcnNpb24gDQoNCiAgICAgICAgICAgdXBkYXRlZCBhZ2FpbiAx Mi0zLTIwMDcgKGJ1Z2ZpeCwgc2VlIHd3dy50aW55dXJsLmNvbS8yZWh6N3IpDQogICAgICAg ICAgIHVwZGF0ZWQgYWdhaW4gNS01LTIwMDkgYnkgbWFrc3MgKHNtYWxsIGJ1Z2ZpeCkgKi8N CiAgICAgICAgJ2FjdGl2ZWNsYXNzJyA9PiAnJywNCiAgICAgICksJGF0dHMpKTsNCg0KICAg ICAgJHNlY3Rpb25zPXJzc0J1aWxkU2N0U3FsKCRzZWN0aW9uKTsNCiAgICAgICR0aW1lID0g cnNzQnVpbGRUaW1lU3FsKCR0aW1lKTsNCg0KICAgICAgJHBybnQgPSAoJHBhcmVudCkgPyAi IFdIRVJFIHBhcmVudCA9ICckcGFyZW50JyAiIDogIiI7DQogICAgICAkbG10ID0gJyBMSU1J VCAnLiRvZmZzZXQuJywnLiRsaW1pdC4nICc7DQogICAgICAkcnNjID0gZ2V0Um93cygiU0VM RUNUIGRpc3RpbmN0IGMuaWQsIGMubmFtZSwgYy50aXRsZSBGUk9NICIuUEZYLiJ0ZXh0cGF0 dGVybl9jYXRlZ29yeSBhcyB0YyBMRUZUIEpPSU4gICIuUEZYLiJ0eHBfY2F0ZWdvcnkgYXMg YyBPTiB0Yy5jYXRlZ29yeV9pZCA9IGMuaWQgIi4kcHJudC4iT1JERVIgQlkgYy5uYW1lICIg LiRzb3J0ZGlyLiRsbXQpOw0KDQogICAgICBpZiAoJHJzYykgew0KICAgICAgICBnbG9iYWwg JGM7ICAvLyBNb2Q6IGFjdGl2ZWNsYXNzIGF0dHJpYnV0ZQ0KICAgICAgICAkYWN0aXZlY2xh c3MgPSAoJGFjdGl2ZWNsYXNzKSA/ICIgY2xhc3M9XCIkYWN0aXZlY2xhc3NcIiIgOiIiOw0K ICAgICAgICAkcm93ID0gYXJyYXkoKTsNCiAgICAgICAgJHRvdGFsID0gMDsNCiAgICAgICAg Zm9yZWFjaCAoJHJzYyBhcyAkYT0+JGIpIHsNCiAgICAgICAgICAgICRhcT0gIlNFTEVDVCAq LCB1bml4X3RpbWVzdGFtcChQb3N0ZWQpIGFzIHVQb3N0ZWQgRlJPTSAiLlBGWC4idGV4dHBh dHRlcm4gYXMgdCBMRUZUIEpPSU4gIi5QRlguInRleHRwYXR0ZXJuX2NhdGVnb3J5IGFzIGMg T04gdC5JRCA9IGMuYXJ0aWNsZV9pZCBXSEVSRSAiLiRzZWN0aW9ucy4iIGMuY2F0ZWdvcnlf aWQgPSAnIi4kYlsnaWQnXS4iJyBhbmQgdC5TdGF0dXMgPSA0ICIuJHRpbWUuIiBPUkRFUiBC WSB0LnRpdGxlIjsNCiAgICAgICAgICAgICRyc2EgPSBnZXRSb3dzKCRhcSk7DQogICAgICAg ICAgICBpZiAoJHJzYSkgew0KICAgICAgICAgICAgICAkcGF0aCA9ICgkdXNlbWVzc3kpID8g aHUuIj9zPSIuJGxpbmt0b3NlY3Rpb24uIiZhbXA7Yz0iLnN0cnRvbG93ZXIoJGJbJ25hbWUn XSkgOiBodS4kbGlua3Rvc2VjdGlvbi4iLyIuc3RydG9sb3dlcigkYlsnbmFtZSddKTsNCiAg ICAgICAgICAgICAgJGNvdW50ID0gKCRzaG93Y291bnQpID8gIiAoIi5jb3VudCgkcnNhKS4i KSIgOiAiIjsNCiAgICAgICAgICAgICAgJHRvdGFsKz1jb3VudCgkcnNhKTsNCiAgICAgICAg ICAgICAgJHJvd1tdPSgkY291bnRsaW5rZWQpID8NCiAgICAgICAgICAgICAgICAvLyBOZXh0 IHR3byBsaW5lcyBhZGQgYWN0aXZlY2xhc3MgdG8gY2F0ZWdvcnkgbGluaw0KICAgICAgICAg ICAgICAgIHRhZyhodG1sc3BlY2lhbGNoYXJzKCRiWyd0aXRsZSddLiRjb3VudCksJ2EnLCcg aHJlZj0iJy4kcGF0aC4nIicuKCRjID09IHN0cnRvbG93ZXIoJGJbJ25hbWUnXSkgPyAkYWN0 aXZlY2xhc3MgOiAnJykuJyB0aXRsZT0iJy5odG1sc3BlY2lhbGNoYXJzKCRiWyd0aXRsZSdd KS4nIicpIDoNCiAgICAgICAgICAgICAgICB0YWcoaHRtbHNwZWNpYWxjaGFycygkYlsndGl0 bGUnXSksJ2EnLCcgaHJlZj0iJyAuICRwYXRoIC4gJyInLigkYyA9PSBzdHJ0b2xvd2VyKCRi WyduYW1lJ10pID8gJGFjdGl2ZWNsYXNzIDogJycpLicgdGl0bGU9IicgLiBodG1sc3BlY2lh bGNoYXJzKCRiWyd0aXRsZSddKSAuICciJykgLiAkY291bnQ7DQogICAgICAgICAgICB9DQog ICAgICAgIH0NCiAgICAgICAgaWYgKCRzaG93YWxsY291bnQpIHsNCiAgICAgICAgICAkcGF0 aCA9IGh1LiRsaW5rdG9zZWN0aW9uLiIvIi4kcGFyZW50Ow0KICAgICAgICAgICRjb3VudCA9 ICgkc2hvd2NvdW50KSA/ICIgKCIuJHRvdGFsLiIpICIgOiAiIjsNCiAgICAgICAgICAkcm93 W109KCRjb3VudGxpbmtlZCkgPw0KICAgICAgICAgICAgdGFnKGh0bWxzcGVjaWFsY2hhcnMo JGFsbGNvdW50bGFiZWwuJGNvdW50KSwnYScsJyBocmVmPSInLiRwYXRoLiciIHRpdGxlPSIn Lmh0bWxzcGVjaWFsY2hhcnMoJGFsbGNvdW50bGFiZWwpLiciJykgOg0KICAgICAgICAgICAg dGFnKGh0bWxzcGVjaWFsY2hhcnMoJGFsbGNvdW50bGFiZWwpLCdhJywnIGhyZWY9IicgLiAk cGF0aCAuICciIHRpdGxlPSInIC4gaHRtbHNwZWNpYWxjaGFycygkYWxsY291bnRsYWJlbCkg LiAnIicpIC4gJGNvdW50Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiBkb1RhZyhkb0xh YmVsKCRsYWJlbCwgJGxhYmVsdGFnKS5kb1dyYXAoJHJvdywgJHdyYXB0YWcsICRicmVhaywg JGNsYXNzLCAkYnJlYWtjbGFzcyksICRsaXN0d3JhcHRhZykubjsNCiAgICAgIH0NCiAgICAg IHJldHVybiAnJzsNCiAgICB9DQoNCiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICAgIGZ1bmN0aW9uIHJz c191Y19jb3VudCgkYXR0cykgew0KICAgICAgICByZXR1cm4gcnNzX3VubGltaXRlZF9jYXRl Z29yeV9jb3VudCgkYXR0cyk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gcnNzX3VubGltaXRl ZF9jYXRlZ29yeV9jb3VudCgkYXR0cykgew0KICAgICAgICAgICAgZXh0cmFjdChsQXR0cyhh cnJheSgNCiAgICAgICAgICAgICAgICAnc2VjdGlvbicgPT4gJycsDQogICAgICAgICAgICAg ICAgJ3RpbWUnID0+ICdwYXN0JywNCiAgICAgICAgICAgICAgICAnbmFtZScgPT4gJycsDQog ICAgICAgICAgICApLCRhdHRzKSk7DQoNCiAgICAgICAgICAgICRzZWN0aW9ucz1yc3NCdWls ZFNjdFNxbCgkc2VjdGlvbik7DQogICAgICAgICAgICAkdGltZSA9IHJzc0J1aWxkVGltZVNx bCgkdGltZSk7DQoNCiAgICAgICAgICAgICRwcm50ID0gKCRuYW1lKSA/ICIgV0hFUkUgYy5u YW1lID0gJyRuYW1lJyAiIDogIiI7DQogICAgICAgICAgICAkcnNjID0gZ2V0Um93cygiU0VM RUNUIGRpc3RpbmN0IGMuaWQsIGMubmFtZSwgYy50aXRsZSBGUk9NICIuUEZYLiJ0ZXh0cGF0 dGVybl9jYXRlZ29yeSBhcyB0YyBMRUZUIEpPSU4gICIuUEZYLiJ0eHBfY2F0ZWdvcnkgYXMg YyBPTiB0Yy5jYXRlZ29yeV9pZCA9IGMuaWQgIi4kcHJudC4iT1JERVIgQlkgYy5uYW1lICIp Ow0KDQogICAgICAgICAgICBpZiAoJHJzYykgew0KICAgICAgICAgICAgICAgICRyb3cgPSBh cnJheSgpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRyc2MgYXMgJGE9PiRiKSB7DQog ICAgICAgICAgICAgICAgICAgICRhcT0gIlNFTEVDVCAqLCB1bml4X3RpbWVzdGFtcChQb3N0 ZWQpIGFzIHVQb3N0ZWQgRlJPTSAiLlBGWC4idGV4dHBhdHRlcm4gYXMgdCBMRUZUIEpPSU4g Ii5QRlguInRleHRwYXR0ZXJuX2NhdGVnb3J5IGFzIGMgT04gdC5JRCA9IGMuYXJ0aWNsZV9p ZCBXSEVSRSAiLiRzZWN0aW9ucy4iIGMuY2F0ZWdvcnlfaWQgPSAnIi4kYlsnaWQnXS4iJyBh bmQgdC5TdGF0dXMgPSA0ICIuJHRpbWUuIiBPUkRFUiBCWSB0LnRpdGxlIjsNCiAgICAgICAg ICAgICAgICAgICAgJHJzYSA9IGdldFJvd3MoJGFxKTsNCiAgICAgICAgICAgICAgICAgICAg aWYgKCRyc2EpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb3VudCgkcnNh KTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuICcnOw0KICAgICAgICB9DQoNCiAgICAvLy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCg0KICAgIGZ1bmN0aW9uIHJzc191Y19jbG91ZCgkYXR0cykgew0KICAgICAgICBy ZXR1cm4gcnNzX3VubGltaXRlZF9jYXRlZ29yaWVzX2Nsb3VkKCRhdHRzKTsNCiAgICB9DQoN CiAgICAvLyBDbG91ZCBjYWxjdWxhdGlvbnMgZnJvbSBSYW4gQXJvdXNzaScncyB0eHBfdGFn cyBwbHVnaW4NCiAgICBmdW5jdGlvbiByc3NfdW5saW1pdGVkX2NhdGVnb3JpZXNfY2xvdWQo JGF0dHMpIHsNCiAgICAgICAgICAgIGV4dHJhY3QobEF0dHMoYXJyYXkoDQogICAgICAgICAg ICAgICAgJ3NlY3Rpb24nID0+ICcnLA0KICAgICAgICAgICAgICAgICd0aW1lJyA9PiAncGFz dCcsDQogICAgICAgICAgICAgICAgJ2xpbWl0JyAgICAgPT4gOTk5LA0KICAgICAgICAgICAg ICAgICdwYXJlbnQnID0+ICcnLA0KICAgICAgICAgICAgICAgICdsaW5rdG9zZWN0aW9uJyA9 PiAnYXJ0aWNsZScsDQogICAgICAgICAgICAgICAgJ3VzZW1lc3N5JyA9PiAwLA0KICAgICAg ICAgICAgICAgICdjbG91ZHdyYXB0YWcnICA9PiAnZGl2JywNCiAgICAgICAgICAgICAgICAn YnJlYWsnICAgID0+ICcsICcsDQogICAgICAgICAgICAgICAgJ3dyYXB0YWcnICA9PiAncCcs DQogICAgICAgICAgICAgICAgJ2xhYmVsJyAgICA9PiAnJywNCiAgICAgICAgICAgICAgICAn bGFiZWx0YWcnID0+ICcnLA0KICAgICAgICAgICAgICAgICdjbGFzcycgICAgICAgPT4gJycs DQogICAgICAgICAgICAgICAgJ2JyZWFrY2xhc3MnICA9PiAnJywNCiAgICAgICAgICAgICAg ICAnc29ydGRpcicgPT4gJ2FzYycNCiAgICAgICAgICAgICksJGF0dHMpKTsNCg0KICAgICAg ICAgICAgJHNlY3Rpb25zPXJzc0J1aWxkU2N0U3FsKCRzZWN0aW9uKTsNCiAgICAgICAgICAg ICR0aW1lID0gcnNzQnVpbGRUaW1lU3FsKCR0aW1lKTsNCg0KICAgICAgICAgICAgJHBybnQg PSAoJHBhcmVudCkgPyAiIFdIRVJFIHBhcmVudCA9ICckcGFyZW50JyAiIDogIiI7DQogICAg ICAgICAgICAkcnNjID0gZ2V0Um93cygiU0VMRUNUIGRpc3RpbmN0IGMuaWQsIGMubmFtZSwg Yy50aXRsZSBGUk9NICIuUEZYLiJ0ZXh0cGF0dGVybl9jYXRlZ29yeSBhcyB0YyBMRUZUIEpP SU4gICIuUEZYLiJ0eHBfY2F0ZWdvcnkgYXMgYyBPTiB0Yy5jYXRlZ29yeV9pZCA9IGMuaWQg Ii4kcHJudC4iT1JERVIgQlkgYy5uYW1lICIgLiRzb3J0ZGlyKTsNCg0KICAgICAgICAgICAg aWYgKCRyc2MpIHsNCg0KICAgICAgICAgICAgICAgICRyc3QgPSBnZXRSb3dzKCJTRUxFQ1Qg KiBGUk9NICIuUEZYLiJ0ZXh0cGF0dGVybl9jYXRlZ29yeSIpOw0KICAgICAgICAgICAgICAg ICRhbGwgPSBjb3VudCgkcnN0KTsNCg0KICAgICAgICAgICAgICAgICRhbGxjYXRzPSIiOw0K ICAgICAgICAgICAgICAgIGZvcmVhY2goJHJzdCBhcyAkYSkgew0KICAgICAgICAgICAgICAg ICAgICAkYWxsY2F0cy49ICAkYVsnY2F0ZWdvcnlfaWQnXS4iICI7DQogICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICRjYXRhcnIgPSBleHBsb2RlKCIgIiwgc3Vic3RyKCRh bGxjYXRzLCAwLCAtMSkpOw0KICAgICAgICAgICAgICAgICRjYXRjb3VudHMgPSBhcnJheV9j b3VudF92YWx1ZXMoJGNhdGFycik7DQogICAgICAgICAgICAgICAgaWYgKCRsaW1pdCAhPSA5 OTkpIGFyc29ydCgkY2F0Y291bnRzKTsNCg0KICAgICAgICAgICAgICAgICRtYXggPSBtYXgo JGNhdGNvdW50cyk7DQogICAgICAgICAgICAgICAgJG1pbiA9IG1pbigkY2F0Y291bnRzKTsN CiAgICAgICAgICAgICAgICAkeCA9IDIwMDsgJHkgPSAxMDA7IC8vIDIwMCUsIDEwMCUNCiAg ICAgICAgICAgICAgICAkc3RlcHZhbHVlID0gKCRtYXggLSAkbWluICE9IDApID8gKCRtYXgg LSAkbWluKSAvICgkeCAtICR5KSA6IDE7DQoNCiAgICAgICAgICAgICAgICAvLyByZWtleSBh cnJheSBieSBudW1iZXIgb2YgcG9zdHMgcGVyIGNhdGVnb3J5DQogICAgICAgICAgICAgICAg JHJlb3JkZXIgPSBhcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRyc2MgYXMg JGE9PiRiKSB7DQogICAgICAgICAgICAgICAgICAgICRyZW9yZGVyWyRiWydpZCddXSA9ICRi Ow0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICRpID0gMDsNCiAgICAg ICAgICAgICAgICAkcm93ID0gYXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICgk Y2F0Y291bnRzIGFzICRhPT4kYikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoJGkgPCAk bGltaXQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRhcT0gIlNFTEVDVCAqIEZST00g Ii5QRlguInRleHRwYXR0ZXJuIGFzIHQgTEVGVCBKT0lOICIuUEZYLiJ0ZXh0cGF0dGVybl9j YXRlZ29yeSBhcyBjIE9OIHQuSUQgPSBjLmFydGljbGVfaWQgV0hFUkUgIi4kc2VjdGlvbnMu IiBjLmNhdGVnb3J5X2lkID0gJyIuJHJlb3JkZXJbJGFdWydpZCddLiInIGFuZCB0LlN0YXR1 cyA9IDQgIi4kdGltZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICRyc2EgPSBnZXRSb3dz KCRhcSk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHJzYSkgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRudW0gPSBjb3VudCgkcnNhKTsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkc2l6ZSA9ICgoJG51bSAvICRhbGwpICogMTAwKSArIDEwMDsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkd2VpZ2h0ID0gJHkgKyByb3VuZCgoJG51bS0k bWluKSAvICRzdGVwdmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHls ZSA9ICgkd2VpZ2h0ID4gJHkpID8gJyBzdHlsZT0iZm9udC1zaXplOicuICR3ZWlnaHQgLiAn JTsiJyA6ICcnOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhdGggPSAoJHVz ZW1lc3N5KSA/IGh1LiI/cz0iLiRsaW5rdG9zZWN0aW9uLiImYW1wO2M9Ii5zdHJ0b2xvd2Vy KCRyZW9yZGVyWyRhXVsnbmFtZSddKSA6IGh1LiRsaW5rdG9zZWN0aW9uLiIvIi5zdHJ0b2xv d2VyKCRyZW9yZGVyWyRhXVsnbmFtZSddKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkcm93W109dGFnKGh0bWxzcGVjaWFsY2hhcnMoJHJlb3JkZXJbJGFdWyd0aXRsZSddKSwn YScsJyBocmVmPSInLiRwYXRoLiciJy4kc3R5bGUuJyB0aXRsZT0iJy5odG1sc3BlY2lhbGNo YXJzKCRyZW9yZGVyWyRhXVsndGl0bGUnXSkuJyInKS5uOw0KICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAkaSsrOw0KICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybiBkb1RhZyhk b0xhYmVsKCRsYWJlbCwgJGxhYmVsdGFnKS5kb1dyYXAoJHJvdywgJHdyYXB0YWcsICRicmVh aywgJGNsYXNzLCAkYnJlYWtjbGFzcyksICRjbG91ZHdyYXB0YWcpLm47DQogICAgICAgICAg ICB9DQogICAgICAgIH0NCg0KICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogICAgZnVuY3Rpb24gcnNzX3Vj X2FydGljbGVfbGlzdCgkYXR0cykgew0KICAgICAgICByZXR1cm4gcnNzX3VubGltaXRlZF9j YXRlZ29yaWVzX2FydGljbGVfbGlzdCgkYXR0cyk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24g cnNzX3VubGltaXRlZF9jYXRlZ29yaWVzX2FydGljbGVfbGlzdCgkYXR0cykgew0KICAgICAg ICAgICAgZ2xvYmFsICRzLCAkYywgJHBnLCAkcHJlZnMsICR0aGlzYXJ0aWNsZSwgJGlkLCAk aGFzX2FydGljbGVfdGFnOw0KDQokdGhpc2FydGljbGUyMj0kdGhpc2FydGljbGU7ICRzMjI9 JHM7ICRjMjI9JGM7ICRwZzIyPSRwZzsgJHByZWZzMjI9JHByZWZzOyAkaWQyMj0kaWQ7ICRo YXNfYXJ0aWNsZV90YWcyMj0kaGFzX2FydGljbGVfdGFnOw0KDQogICAgICAgICAgICAkYWN0 dWFsX2lkID0gJGlkOw0KICAgICAgICAgICAgZXh0cmFjdChsQXR0cyhhcnJheSgNCiAgICAg ICAgICAgICAgICAnc2VjdGlvbicgPT4gJHMsDQogICAgICAgICAgICAgICAgJ2NhdGVnb3J5 JyA9PiAkYywNCiAgICAgICAgICAgICAgICAndXNlY2hpbGRyZW4nID0+IDAsDQogICAgICAg ICAgICAgICAgJ2Zvcm0nID0+ICdkZWZhdWx0JywNCiAgICAgICAgICAgICAgICAnbGltaXQn ICAgICA9PiA5OTksDQogICAgICAgICAgICAgICAgJ29mZnNldCcgICAgPT4gMCwNCiAgICAg ICAgICAgICAgICAndGltZScgPT4gJ3Bhc3QnLA0KICAgICAgICAgICAgICAgICdzb3J0Ynkn ID0+ICd1UG9zdGVkJywNCiAgICAgICAgICAgICAgICAnc29ydGRpcicgPT4gJ2Rlc2MnLA0K ICAgICAgICAgICAgICAgICdpZCcgPT4gJycsDQogICAgICAgICAgICAgICAgJ2ZpbHRlcicg PT4gMCwNCiAgICAgICAgICAgICAgICAnZmlsdGVyZmllbGQnID0+ICcnLA0KICAgICAgICAg ICAgICAgICdmaWx0ZXJuYW1lJyA9PiAnJywNCiAgICAgICAgICAgICksJGF0dHMpKTsNCg0K ICAgICAgICAkc2VjdGlvbnM9cnNzQnVpbGRTY3RTcWwoJHNlY3Rpb24pOw0KDQogICAgICAg ICRwYXJlbnQgPSAiIjsNCiAgICAgICAgaWYgKCR1c2VjaGlsZHJlbikgew0KICAgICAgICAg ICAgJHJzID0gc2FmZV9yb3dzKCJuYW1lIiwgInR4cF9jYXRlZ29yeSIsICJwYXJlbnQ9JyRj YXRlZ29yeScgYW5kIG5hbWUgIT0gJ3Jvb3QnIik7DQogICAgICAgICAgICBpZiAoJHJzKSB7 DQogICAgICAgICAgICAgICAgJHBhcmVudCA9ICRjYXRlZ29yeTsNCiAgICAgICAgICAgICAg ICAkY2F0ZWdvcnkgPSAiIjsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICgkcnMgYXMgJHQp IHsNCiAgICAgICAgICAgICAgICAgICAgJGNhdGVnb3J5Lj0gJHRbJ25hbWUnXS4iLCI7DQog ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAg Zm9yZWFjaCAoZXhwbG9kZSgnLCcsICRjYXRlZ29yeSkgYXMgJGNhdGVnb3J5KSB7DQogICAg ICAgICAgICBpZiAoJGNhdGVnb3J5KSAkY2F0c3FsW10gPSAiIGNhdC5uYW1lID0gJyIgLiB1 cmxkZWNvZGUoJGNhdGVnb3J5KSAuICInICI7DQogICAgICAgIH0NCiAgICAgICAgJGNhdGVn b3JpZXM9IGlzc2V0KCRjYXRzcWwpID8gJyBBTkQgKCcgLiBqb2luKCcgT1IgJywgJGNhdHNx bCkgLiAnKSAnIDogIiI7DQoNCiAgICAgICAgJHRpbWUgPSByc3NCdWlsZFRpbWVTcWwoJHRp bWUpOw0KDQogICAgICAgICRmaWx0ZXJzcWwgPSAiIjsNCiAgICAgICAgaWYgKCRmaWx0ZXIg JiYgJGZpbHRlcmZpZWxkICYmICRmaWx0ZXJuYW1lKSB7DQoNCiAgICAgICAgICAgICRzdWJw YXRoID0gcHJlZ19xdW90ZShwcmVnX3JlcGxhY2UoIi9odHRwOlwvXC8uKihcLy4qKS9VaSIs IiQxIixodSksIi8iKTsNCiAgICAgICAgICAgICRyZXEgPSBwcmVnX3JlcGxhY2UoIi9eJHN1 YnBhdGgvaSIsIi8iLHNlcnZlclNldCgnUkVRVUVTVF9VUkknKSk7DQogICAgICAgICAgICBl eHRyYWN0KGNob3BVcmwoJHJlcSkpOw0KDQogICAgICAgICAgICBpZiAoJHUyID09ICRmaWx0 ZXJuYW1lICYmICR1NCkgew0KICAgICAgICAgICAgICAgICRxdCA9IChpc19udW1lcmljKCR1 NCkpID8gIiIgOiAiJyI7DQogICAgICAgICAgICAgICAgc3dpdGNoICgkdTMpIHsNCiAgICAg ICAgICAgICAgICAgICAgY2FzZSAnbHQnOg0KICAgICAgICAgICAgICAgICAgICAgICAgJGZp bHRlcm9wID0gIjwiOyBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZ3QnOg0K ICAgICAgICAgICAgICAgICAgICAgICAgJGZpbHRlcm9wID0gIiA+ICI7IGJyZWFrOw0KICAg ICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgJGZp bHRlcm9wID0gIiA9ICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRm aWx0ZXJzcWwgPSAiIEFORCAkZmlsdGVyZmllbGQgJGZpbHRlcm9wICIuJHF0LiR1NC4kcXQu IiAiOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgJGlkcz0iIjsNCiAg ICAgICAgaWYgKCRpZCkgew0KICAgICAgICAgICAgJHNlY3Rpb25zPSIiOw0KICAgICAgICAg ICAgJGNhdGVnb3JpZXM9IiI7DQogICAgICAgICAgICAkb2Zmc2V0PSIiOw0KICAgICAgICAg ICAgJGxpbWl0PSIiOw0KICAgICAgICAgICAgJGlkcyA9ICIgYW5kIHQuSUQgPSAnIi5pbnR2 YWwoJGlkKS4iJyI7DQogICAgICAgIH0NCg0KICAgICAgICAkcSA9ICJTRUxFQ1QgRElTVElO Q1QgdC5JRCBGUk9NICIuUEZYLiJ0ZXh0cGF0dGVybiBhcyB0DQogICAgICAgIExFRlQgSk9J TiAiLlBGWC4idGV4dHBhdHRlcm5fY2F0ZWdvcnkgYXMgdGMgT04gdC5JRCA9IHRjLmFydGlj bGVfaWQNCiAgICAgICAgTEVGVCBKT0lOICIuUEZYLiJ0eHBfY2F0ZWdvcnkgYXMgY2F0IE9O IGNhdC5pZCA9IHRjLmNhdGVnb3J5X2lkDQogICAgICAgIFdIRVJFICIuJHNlY3Rpb25zLiIg U3RhdHVzPTQgIi4kY2F0ZWdvcmllcy4kaWRzLiRmaWx0ZXJzcWwuJHRpbWU7DQogICAgICAg ICRyc2MgPSBnZXRSb3dzKCRxKTsNCg0KICAgICAgICBpZiAoJHJzYykgew0KICAgICAgICAg ICAgZm9yZWFjaCAoJHJzYyBhcyAkYSkgew0KICAgICAgICAgICAgICAgIGV4dHJhY3QoJGEp Ow0KICAgICAgICAgICAgICAgIGlmICgkSUQgIT09ICR0aGlzYXJ0aWNsZVsndGhpc2lkJ10p IHsNCiAgICAgICAgICAgICAgICAgICAgJGFydHNxbFtdID0gIiBJRCA9ICciIC4gJElEIC4g IicgIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAk YXJ0aWNsZXM9IGlzc2V0KCRhcnRzcWwpID8gJyBBTkQgKCcgLiBqb2luKCcgT1IgJywgJGFy dHNxbCkgLiAnKSAnIDogIiI7DQoNCiAgICAgICAgICAgIGlmICgkaWQpIHsNCiAgICAgICAg ICAgICAgICAkcTIgPSAiMT0xICIgLiAkdGltZSAuICRhcnRpY2xlczsNCiAgICAgICAgICAg ICAgICAkcnMgPSBzYWZlX3JvdygiKiwgdW5peF90aW1lc3RhbXAoUG9zdGVkKSBhcyB1UG9z dGVkIiwgInRleHRwYXR0ZXJuIiwgJHEyKTsNCg0KICAgICAgICAgICAgICAgIGlmICgkcnMp IHsNCiAgICAgICAgICAgICAgICAgICAgZXh0cmFjdCgkcnMpOw0KICAgICAgICAgICAgICAg ICAgICBwb3B1bGF0ZUFydGljbGVEYXRhKCRycyk7DQogICAgICAgICAgICAgICAgICAgIGds b2JhbCAkdGhpc2FydGljbGU7DQogICAgICAgICAgICAgICAgICAgICR0aGlzYXJ0aWNsZVsn cGFyZW50Y2F0J10gPSAkcGFyZW50Ow0KICAgICAgICAgICAgICAgICAgICAkdGhpc2FydGlj bGVbJ3RoaXNjYXQnXSA9ICRjYXRlZ29yeTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgICAkYXJ0aWNsZSA9IGZldGNoX2Zvcm0oJGZvcm0pOw0KICAgICAgICAgICAg ICAgICRoYXNfYXJ0aWNsZV90YWcgPSB0cnVlOw0KJHRoaXNhcnRpY2xlPSR0aGlzYXJ0aWNs ZTIyOyAkcz0kczIyOyAkYz0kYzIyOyAkcGc9JHBnMjI7ICRwcmVmcz0kcHJlZnMyMjsgJGlk PSRpZDIyOyAkaGFzX2FydGljbGVfdGFnPSRoYXNfYXJ0aWNsZV90YWcyMjsNCiAgICAgICAg ICAgICAgICByZXR1cm4gJGFydGljbGU7DQogICAgICAgICAgICB9IGVsc2UgaWYgKCRhcnRp Y2xlcykgew0KDQogICAgICAgICAgICAgICAgJHRvdGFsID0gc2FmZV9jb3VudCgndGV4dHBh dHRlcm4nLCIxPTEgIiAuICRhcnRpY2xlcykgLSAkb2Zmc2V0Ow0KICAgICAgICAgICAgICAg ICRudW1QYWdlcyA9IGNlaWwoJHRvdGFsLyRsaW1pdCk7DQogICAgICAgICAgICAgICAgJHBn ID0gKCEkcGcpID8gMSA6ICRwZzsNCiAgICAgICAgICAgICAgICAkcGdvZmZzZXQgPSAkb2Zm c2V0ICsgKCgkcGcgLSAxKSAqICRsaW1pdCkuJywgJzsNCiAgICAgICAgICAgICAgICAvLyBz ZW5kIHBhZ2luZyBpbmZvIHRvIHR4cDpuZXdlciBhbmQgdHhwOm9sZGVyDQogICAgICAgICAg ICAgICAgJHBhZ2VvdXRbJ3BnJ10gICAgICAgPSAkcGc7DQogICAgICAgICAgICAgICAgJHBh Z2VvdXRbJ251bVBhZ2VzJ10gPSAkbnVtUGFnZXM7DQogICAgICAgICAgICAgICAgJHBhZ2Vv dXRbJ3MnXSAgICAgICAgPSAkczsNCiAgICAgICAgICAgICAgICAkcGFnZW91dFsnYyddICAg ICAgICA9ICRjOw0KICAgICAgICAgICAgICAgICRwYWdlb3V0Wyd0b3RhbCddICAgID0gJHRv dGFsOw0KDQogICAgICAgICAgICAgICAgJEdMT0JBTFNbJ3RoaXNwYWdlJ10gPSAkcGFnZW91 dDsNCiAgICAgICAgICAgICAgICAkcTIgPSAiMT0xICIgLiAkdGltZSAuICRhcnRpY2xlcyAu ICIgT1JERVIgQlkgIi4kc29ydGJ5LiIgIiAuJHNvcnRkaXIgLiAiIGxpbWl0ICIgLiBkb1Ns YXNoKCRwZ29mZnNldC4kbGltaXQpOw0KDQogICAgICAgICAgICAgICAgJHJzID0gc2FmZV9y b3dzX3N0YXJ0KCIqLCB1bml4X3RpbWVzdGFtcChQb3N0ZWQpIGFzIHVQb3N0ZWQiLCAidGV4 dHBhdHRlcm4iLCAkcTIpOw0KDQogICAgICAgICAgICAgICAgaWYgKCRycykgew0KICAgICAg ICAgICAgICAgICAgICAkY291bnQgPSAwOw0KICAgICAgICAgICAgICAgICAgICAkYXJ0aWNs ZXMgPSBhcnJheSgpOw0KICAgICAgICAgICAgICAgICAgICB3aGlsZSgkYSA9IG5leHRSb3co JHJzKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgKyskY291bnQ7DQogICAgICAgICAg ICAgICAgICAgICAgICAkY29tcGFyaW5nID0gJGFbJ0lEJ107DQogICAgICAgICAgICAgICAg ICAgICAgICBwb3B1bGF0ZUFydGljbGVEYXRhKCRhKTsNCiAgICAgICAgICAgICAgICAgICAg ICAgIGdsb2JhbCAkdGhpc2FydGljbGUsICR1UG9zdGVkLCAkbGltaXQ7DQogICAgICAgICAg ICAgICAgICAgICAgICAkdGhpc2FydGljbGVbJ3BhcmVudGNhdCddID0gJHBhcmVudDsNCiAg ICAgICAgICAgICAgICAgICAgICAgICR0aGlzYXJ0aWNsZVsndGhpc2NhdCddID0gJGNhdGVn b3J5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXNhcnRpY2xlWydpc19maXJzdCdd ID0gKCRjb3VudCA9PSAxKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzYXJ0aWNs ZVsnaXNfbGFzdCddID0gKCRjb3VudCA9PSBudW1Sb3dzKCRycykpOw0KICAgICAgICAgICAg ICAgICAgICAgICAgLy8gZGVmaW5lIHRoZSBhcnRpY2xlIGZvcm0NCiAgICAgICAgICAgICAg ICAgICAgICAgICRhcnRpY2xlID0gKCRwcmVmc1snYWxsb3dfZm9ybV9vdmVycmlkZSddICYm ICRhWydvdmVycmlkZV9mb3JtJ10pID8gZmV0Y2hfZm9ybSgkYVsnb3ZlcnJpZGVfZm9ybSdd KSA6IGZldGNoX2Zvcm0oJGZvcm0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRj b21wYXJpbmcgIT0gJGFjdHVhbF9pZCkgeyRhcnRpY2xlc1tdID0gcGFyc2UoJGFydGljbGUp O30NCg0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2VuZGluZyB0aGVzZSB0byBwYWdp bmdfbGluaygpOyBSZXF1aXJlZD8NCiAgICAgICAgICAgICAgICAgICAgICAgICR1UG9zdGVk ID0gJGFbJ3VQb3N0ZWQnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICRsaW1pdCA9ICRs aW1pdDsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgLy91bnNldCgkR0xPQkFMU1sndGhp c2FydGljbGUnXSk7DQogICAgICAgICAgICAgICAgICAgICAgICAvL3Vuc2V0KCRHTE9CQUxT Wyd0aGVzZWF0dHMnXSk7Ly9SZXF1aXJlZD8NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICAgICAkaGFzX2FydGljbGVfdGFnID0gdHJ1ZTsNCiR0aGlzYXJ0aWNs ZT0kdGhpc2FydGljbGUyMjsgJHM9JHMyMjsgJGM9JGMyMjsgJHBnPSRwZzIyOyAkcHJlZnM9 JHByZWZzMjI7ICRpZD0kaWQyMjsgJGhhc19hcnRpY2xlX3RhZz0kaGFzX2FydGljbGVfdGFn MjI7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBqb2luKCcnLCRhcnRpY2xlcyk7DQog ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSAvLyBpZiAkaWQNCiAgICAgICAgfQ0K JHRoaXNhcnRpY2xlPSR0aGlzYXJ0aWNsZTIyOyAkcz0kczIyOyAkYz0kYzIyOyAkcGc9JHBn MjI7ICRwcmVmcz0kcHJlZnMyMjsgJGlkPSRpZDIyOyAkaGFzX2FydGljbGVfdGFnPSRoYXNf YXJ0aWNsZV90YWcyMjsNCiAgICB9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICAgIGZ1bmN0aW9uIHJz c191Y19yZWxhdGVkKCRhdHRzKSB7DQogICAgICAgIHJldHVybiByc3NfdW5saW1pdGVkX2Nh dGVnb3JpZXNfcmVsYXRlZCgkYXR0cyk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gcnNzX3Vu bGltaXRlZF9jYXRlZ29yaWVzX3JlbGF0ZWQoJGF0dHMpew0KICAgICAgICBnbG9iYWwgJGlk LCR0aGlzYXJ0aWNsZSwkczsNCg0KICAgICAgICBleHRyYWN0KGxBdHRzKGFycmF5KA0KICAg ICAgICAgICAgJ3NlY3Rpb24nID0+ICRzLA0KICAgICAgICAgICAgJ2Zvcm0nID0+ICdkZWZh dWx0JywNCiAgICAgICAgICAgICdsaW1pdCcgICAgID0+IDk5OSwNCiAgICAgICAgICAgICdv ZmZzZXQnICAgID0+IDAsDQogICAgICAgICAgICAndGltZScgPT4gJ3Bhc3QnLA0KICAgICAg ICAgICAgJ3NvcnRieScgPT4gJ3VQb3N0ZWQnLA0KICAgICAgICAgICAgJ3NvcnRkaXInID0+ ICdkZXNjJw0KICAgICAgICApLCRhdHRzKSk7DQoNCiAgICAgICAgJGNhdHMgPSBhcnJheSgp Ow0KICAgICAgICAkcnNjID0gZ2V0Um93cygiU0VMRUNUIGMudGl0bGUsIGMubmFtZSBGUk9N ICIuUEZYLiJ0ZXh0cGF0dGVybl9jYXRlZ29yeSBhcyB0Yw0KICAgICAgICAgICAgTEVGVCBK T0lOICAiLlBGWC4idHhwX2NhdGVnb3J5IGFzIGMgT04gdGMuY2F0ZWdvcnlfaWQgPSBjLmlk DQogICAgICAgICAgICBXSEVSRSBhcnRpY2xlX2lkPSIuJHRoaXNhcnRpY2xlWyd0aGlzaWQn XSk7DQoNCiAgICAgICAgaWYgKCRyc2MpIHsNCiAgICAgICAgICAgIGZvcmVhY2ggKCRyc2Mg YXMgJGEpIHsNCiAgICAgICAgICAgICAgICBleHRyYWN0KCRhKTsNCiAgICAgICAgICAgICAg ICAkY2F0c1skbmFtZV09JG5hbWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAg ICAgICByZXR1cm4gcnNzX3VubGltaXRlZF9jYXRlZ29yaWVzX2FydGljbGVfbGlzdCgNCiAg ICAgICAgICAgIGFycmF5KA0KICAgICAgICAgICAgICAgICdzZWN0aW9uJz0+JHNlY3Rpb24s DQogICAgICAgICAgICAgICAgJ2NhdGVnb3J5Jz0+aW1wbG9kZSgnLCcsICRjYXRzKSwNCiAg ICAgICAgICAgICAgICAnZm9ybSc9PiRmb3JtLA0KICAgICAgICAgICAgICAgICdsaW1pdCc9 PiRsaW1pdCwNCiAgICAgICAgICAgICAgICAnb2Zmc2V0Jz0+JG9mZnNldCwNCiAgICAgICAg ICAgICAgICAndGltZSc9PiR0aW1lLA0KICAgICAgICAgICAgICAgICdzb3J0YnknPT4kc29y dGJ5LA0KICAgICAgICAgICAgICAgICdzb3J0ZGlyJz0+JHNvcnRkaXIpDQogICAgICAgICAg ICApOw0KICAgIH0NCg0KDQogICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiAgICBmdW5jdGlvbiByc3NfaWZf YXJ0aWNsZV91bmxpbWl0ZWRfY2F0ZWdvcnkoJGF0dHMsICR0aGluZykgew0KICAgICAgICBn bG9iYWwgJHRoaXNhcnRpY2xlOw0KICAgICAgICBhc3NlcnRfYXJ0aWNsZSgpOw0KDQogICAg ICAgIGV4dHJhY3QobEF0dHMoYXJyYXkoDQogICAgICAgICAgICAnbmFtZScgPT4gJycsDQog ICAgICAgICksJGF0dHMpKTsNCg0KICAgICAgICAkY2F0cyA9IGFycmF5KCk7DQogICAgICAg ICRyc2MgPSBnZXRSb3dzKCJTRUxFQ1QgbmFtZSBhcyBjYXRuYW1lIEZST00gIi5QRlguInRl eHRwYXR0ZXJuX2NhdGVnb3J5IGFzIHRjDQogICAgICAgICAgICBMRUZUIEpPSU4gICIuUEZY LiJ0eHBfY2F0ZWdvcnkgYXMgYyBPTiB0Yy5jYXRlZ29yeV9pZCA9IGMuaWQNCiAgICAgICAg ICAgIFdIRVJFIGFydGljbGVfaWQ9Ii4kdGhpc2FydGljbGVbJ3RoaXNpZCddKTsNCg0KICAg ICAgICBpZiAoJHJzYykgew0KICAgICAgICAgICAgZm9yZWFjaCAoJHJzYyBhcyAkYSkgew0K ICAgICAgICAgICAgICAgICRjYXRzW109JGFbJ2NhdG5hbWUnXTsNCiAgICAgICAgICAgIH0N CiAgICAgICAgfQ0KDQogICAgICAgIHNvcnQoJGNhdHMpOw0KICAgICAgICByZXR1cm4gcGFy c2UoRXZhbEVsc2UoJHRoaW5nLCAoaW5fYXJyYXkoJG5hbWUsICRjYXRzKSkpKTsNCiAgICB9 DQoNCiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCg0KICAgIGZ1bmN0aW9uIHJzc19zY3RfcGVybWxpbmsoJGF0 dHMsICR0aGluZykgew0KICAgICAgICBnbG9iYWwgJHRoaXNhcnRpY2xlLCAkYzsNCg0KICAg ICAgICBleHRyYWN0KGxBdHRzKGFycmF5KA0KICAgICAgICAgICAgJ2lzcGFyZW50JyA9PiAw LA0KICAgICAgICAgICAgJ3VzZXBhcmVudCcgPT4gMCwNCiAgICAgICAgICAgICdmaW5kcGFy ZW50JyA9PiAwLA0KICAgICAgICAgICAgJ2lucGFyZW50cycgPT4gJycsDQogICAgICAgICAg ICAnY2F0ZWdvcnknID0+ICRjLA0KDQogICAgICAgICAgICAnaWQnID0+ICcnLA0KICAgICAg ICApLCRhdHRzKSk7DQoNCiAgICAgICAgaWYgKCR1c2VwYXJlbnQpIHsNCiAgICAgICAgICAg ICRycyA9IGZldGNoKCJwYXJlbnQiLCJ0eHBfY2F0ZWdvcnkiLCJuYW1lIiwkY2F0ZWdvcnkp Ow0KICAgICAgICAgICAgaWYgKCRycyAmJiAkcnMgIT0gJ3Jvb3QnKSB7DQogICAgICAgICAg ICAgICAgJGNhdGVnb3J5ID0gJHJzOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAg ICAgICAgJHVybHRpdGxlID0gJHRoaXNhcnRpY2xlWyd1cmxfdGl0bGUnXTsNCiAgICAgICAg JHNjdCA9ICR0aGlzYXJ0aWNsZVsnc2VjdGlvbiddOw0KDQogICAgICAgIGlmICgkaWQpIHsN CiAgICAgICAgICAgICRhcnRpY2xlID0gc2FmZV9yb3coDQogICAgICAgICAgICAgICAgIios SUQgYXMgdGhpc2lkLCB1bml4X3RpbWVzdGFtcChQb3N0ZWQpIGFzIHBvc3RlZCIsDQogICAg ICAgICAgICAgICAgInRleHRwYXR0ZXJuIiwNCiAgICAgICAgICAgICAgICAnSUQ9Jy5pbnR2 YWwoJGlkKSk7DQogICAgICAgICAgICAgICAgJHVybHRpdGxlID0gJGFydGljbGVbJ3VybF90 aXRsZSddOw0KICAgICAgICAgICAgICAgICRzY3QgPSAkYXJ0aWNsZVsnU2VjdGlvbiddOw0K ICAgICAgICB9DQoNCiAgICAgICAgJGNhdGxpbmsgPSAoJGNhdGVnb3J5KSA/ICIkY2F0ZWdv cnkvIiA6ICIiOw0KICAgICAgICAkY2F0bGluayA9IChpc3NldCgkdGhpc2FydGljbGVbJ3Ro aXNjYXQnXSkgJiYgJHRoaXNhcnRpY2xlWyd0aGlzY2F0J10gJiYgJHRoaXNhcnRpY2xlWyd0 aGlzY2F0J10gIT0gJGMpID8gJHRoaXNhcnRpY2xlWyd0aGlzY2F0J10uIi8iIDogJGNhdGxp bms7DQogICAgICAgICRjYXRsaW5rID0gKCRpc3BhcmVudCkgPyAkdGhpc2FydGljbGVbJ3Bh cmVudGNhdCddLiIvIiA6ICRjYXRsaW5rOw0KDQogICAgICAgIGlmICgkZmluZHBhcmVudCkg ew0KICAgICAgICAgICAgJHJzYyA9IHNhZmVfcm93cygiY2F0ZWdvcnlfaWQiLCAidGV4dHBh dHRlcm5fY2F0ZWdvcnkiLCAiYXJ0aWNsZV9pZD0iLiR0aGlzYXJ0aWNsZVsndGhpc2lkJ10p Ow0KDQogICAgICAgICAgICBpZiAoJHJzYykgew0KICAgICAgICAgICAgICAgICR0aGVjYXRz ID0gYXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICgkcnNjIGFzICRjYXQpIHsN CiAgICAgICAgICAgICAgICAgICAgJHRoZWNhdHNbXSA9ICRjYXRbJ2NhdGVnb3J5X2lkJ107 DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgJHJzID0gc2FmZV9yb3dz KCJwYXJlbnQiLCAidHhwX2NhdGVnb3J5IiwgImlkIGluICgiLmltcGxvZGUoIiwiLCR0aGVj YXRzKS4iKSIpOw0KICAgICAgICAgICAgICAgIGlmICgkcnMpIHsNCiAgICAgICAgICAgICAg ICAgICAgZm9yZWFjaCAoJHJzIGFzICR0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAk bGlua2NhdCA9ICR0WydwYXJlbnQnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChp bl9hcnJheSgkbGlua2NhdCwgZXhwbG9kZSgiLCIsJGlucGFyZW50cykpKSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAkY2F0bGluayA9ICRsaW5rY2F0LiIvIjsNCiAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgICR1cmwgPSBodS4k c2N0LiIvJGNhdGxpbmsiLiR1cmx0aXRsZTsNCiAgICAgICAgcmV0dXJuIHRhZyhwYXJzZSgk dGhpbmcpLCdhJywnIGhyZWY9IicuJHVybC4nIiB0aXRsZT0iJy5nVHh0KCdwZXJtYW5lbnRf bGluaycpLiciJyk7DQogICAgfQ0KDQogICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiAgICBmdW5jdGlvbiBy c3NCdWlsZFNjdFNxbCgkc2VjdGlvbikgew0KICAgICAgICBpZiAoJHNlY3Rpb24pIHsNCiAg ICAgICAgICAgIGZvcmVhY2ggKGV4cGxvZGUoJywnLCAkc2VjdGlvbikgYXMgJHNlY3Rpb24p IHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHN1YnN0cih0cmltKCRzZWN0aW9uKSwgMCwg MSkpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnKic6DQogICAgICAgICAgICAgICAg ICAgICAgICAkc2N0c3FsW10gPSAiIChzZWN0aW9uIGxpa2UgJyUnKSAiOw0KICAgICAgICAg ICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnISc6DQogICAg ICAgICAgICAgICAgICAgICAgICAkbm90c2N0c3FsW10gPSAiIEFORCAoc2VjdGlvbiAhPSAn IiAuIGRvU2xhc2goc3RyX3JlcGxhY2UoJyEnLCcnLCRzZWN0aW9uKSkgLiAiJykgIjsNCiAg ICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6 DQogICAgICAgICAgICAgICAgICAgICAgICAkc2N0c3FsW10gPSAiIChzZWN0aW9uID0gJyIg LiBkb1NsYXNoKCRzZWN0aW9uKSAuICInKSAiOw0KICAgICAgICAgICAgICAgICAgICBicmVh azsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICRz ZWN0aW9ucyA9ICcgMT0xIEFORCAoJyAuIGpvaW4oJyBPUiAnLCAkc2N0c3FsKSAuIEBqb2lu KCcgQU5EICcsICRub3RzY3RzcWwpIC4gJykgQU5EICc7DQogICAgICAgIH0gZWxzZSB7DQog ICAgICAgICAgICAkc2VjdGlvbnM9Jyc7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICRz ZWN0aW9uczsNCiAgICB9DQoNCiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICAgIGZ1bmN0aW9uIHJzc0J1 aWxkUGFyZW50Q2F0U3FsKCRwYXJlbnQpIHsNCiAgICAgICAgaWYgKCRwYXJlbnQpIHsNCiAg ICAgICAgICAgIGZvcmVhY2ggKGV4cGxvZGUoJywnLCAkcGFyZW50KSBhcyAkcGFyZW50KSB7 DQogICAgICAgICAgICAgICAgaWYgKCRwYXJlbnQpICRjYXRzcWxbXSA9ICIgYy5wYXJlbnQg PSAnIiAuIHVybGRlY29kZSgkcGFyZW50KSAuICInICI7DQogICAgICAgICAgICB9DQogICAg ICAgICAgICAkcGFyZW50cyA9IGlzc2V0KCRjYXRzcWwpID8gJyBBTkQgKCcgLiBqb2luKCcg T1IgJywgJGNhdHNxbCkgLiAnKSAnIDogIiI7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAg ICAgICAkcGFyZW50cyA9ICIiOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAkcGFyZW50 czsNCiAgICB9DQoNCiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICAgIGZ1bmN0aW9uIHJzc0J1aWxkVGlt ZVNxbCgkdGltZSkgew0KICAgICAgICBzd2l0Y2ggKCR0aW1lKSB7DQogICAgICAgICAgICBj YXNlICdhbnknOg0KICAgICAgICAgICAgICAgICR0aW1lID0gIiI7IGJyZWFrOw0KICAgICAg ICAgICAgY2FzZSAnZnV0dXJlJzoNCiAgICAgICAgICAgICAgICAkdGltZSA9ICIgYW5kIFBv c3RlZCA+IG5vdygpIjsgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAg ICAgICAgICR0aW1lID0gIiBhbmQgUG9zdGVkIDw9IG5vdygpIjsNCiAgICAgICAgfQ0KICAg ICAgICByZXR1cm4gJHRpbWU7DQogICAgfQ0KDQogICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiAgICBmdW5j dGlvbiByc3NfYWRtaW5fY2F0bGlzdCgkZXZlbnQsICRzdGVwKSB7DQoJZ2xvYmFsICRyc3Nf dW5saW1fc2VsX3BhcmVudDsNCiAgICAgICAgZXh0cmFjdChncHNhKGFycmF5KCd2aWV3Jywn ZnJvbV92aWV3Jywnc3RlcCcpKSk7DQogICAgICAgIGlmICghJHZpZXcpICR2aWV3ID0gInRl eHQiOw0KDQogICAgICAgIC8vIC0tIGJlZ2luIG5ldyBjb2RlIGJ5IHJtYSAyMDA3LTA5LTAz IC0tDQogICAgICAgIC8vIHN0b3JlIHNlbGVjdGVkIGNhdGVnb3JpZXMgaW4gaGlkZGVuIGZp ZWxkIGR1cmluZyBwcmV2aWV3L2h0bWwNCiAgICAgICAgaWYgKCR2aWV3ID09ICdwcmV2aWV3 JyBvciAkdmlldyA9PSAnaHRtbCcpICB7DQogICAgICAgICAgICAvLyBpZiBuYXYgaXMgdGV4 dC10by1wcmV2aWV3IG9yIC1odG1sLCBnZXQgY2F0cyBmcm9tIG11bHRpLXNlbGVjdCBib3gN CiAgICAgICAgICAgIGlmICgkZnJvbV92aWV3ID09ICd0ZXh0Jykgew0KICAgICAgICAgICAg ICAgICRjYXRzX2FycmF5ID0gcHMoJ0NhdHMnKTsNCiAgICAgICAgICAgICAgICAkY2F0c19s aXN0ID0gKCFlbXB0eSgkY2F0c19hcnJheSkpID8gaW1wbG9kZSgnLCcsICRjYXRzX2FycmF5 KSA6ICctMSc7DQogICAgICAgICAgICAgICAgJGNhdHNfc3RvcmUgPSBoSW5wdXQoJ2NhdHNf c3RvcmUnLCAkY2F0c19saXN0KTsNCiAgICAgICAgICAgICAgICBlY2hvIGRvbV9hdHRhY2go J2FydGljbGUtbWFpbicsICRjYXRzX3N0b3JlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAg ICAgIC8vIGlmIG5hdiBpcyBwcmV2aWV3LXRvLWh0bWwgb3IgdmljZSB2ZXJzYSwgZ2V0IGNh dHMgZnJvbSBoaWRkZW4gZmllbGQNCiAgICAgICAgICAgIGlmICgkZnJvbV92aWV3ID09ICdw cmV2aWV3JyBvciAkZnJvbV92aWV3ID09ICdodG1sJykgew0KICAgICAgICAgICAgICAgICRj YXRzX2xpc3QgPSBwcygnY2F0c19zdG9yZScpOw0KICAgICAgICAgICAgICAgIGlmICghZW1w dHkoJGNhdHNfbGlzdCkpIHsNCiAgICAgICAgICAgICAgICAgICAgJGNhdHNfc3RvcmUgPSBo SW5wdXQoJ2NhdHNfc3RvcmUnLCAkY2F0c19saXN0KTsNCiAgICAgICAgICAgICAgICAgICAg ZWNobyBkb21fYXR0YWNoKCdhcnRpY2xlLW1haW4nLCAkY2F0c19zdG9yZSk7DQogICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLy8gdXNl IHN0b3JlZCBjYXRlZ29yaWVzIGlmIGF2YWlsYWJsZSAoYW5kIGFwcGxpY2FibGUpDQogICAg ICAgIGlmICgkdmlldyA9PSAndGV4dCcgYW5kICgkZnJvbV92aWV3ID09ICdwcmV2aWV3JyBv ciAkZnJvbV92aWV3ID09ICdodG1sJykpIHsNCiAgICAgICAgICAgICRjYXRzX2xpc3QgPSBw cygnY2F0c19zdG9yZScpOw0KICAgICAgICAgICAgaWYgKCFlbXB0eSgkY2F0c19saXN0KSkg ew0KICAgICAgICAgICAgICAgICR0bXAgPSBleHBsb2RlKCcsJywgJGNhdHNfbGlzdCk7DQog ICAgICAgICAgICAgICAgJHJzYyA9IGFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yZWFj aCAoJHRtcCBhcyAkY2F0aWQpIHsNCiAgICAgICAgICAgICAgICAgICAgJGNhdCA9IGFycmF5 KCdjYXRlZ29yeV9pZCcgPT4gJGNhdGlkKTsNCiAgICAgICAgICAgICAgICAgICAgJHJzY1td ID0gJGNhdDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0N CiAgICAgICAgLy8gLS0gZW5kIG5ldyBjb2RlIC0tDQoNCiAgICAgICAgaWYgKGVtcHR5KCRy c2MpKSB7IC8vIHJtYSAyMDA3LTA5LTAzDQogICAgICAgICAgICAkSUQgPSByc3NfZ2V0SUQo KTsNCiAgICAgICAgICAgICRyc2MgPSBhcnJheSgpOw0KICAgICAgICAgICAgaWYgKCRJRCkg JHJzYyA9IHNhZmVfcm93cygiY2F0ZWdvcnlfaWQiLCAidGV4dHBhdHRlcm5fY2F0ZWdvcnki LCAiYXJ0aWNsZV9pZD0iLiRJRCk7DQogICAgICAgIH0gIC8vIHJtYSAyMDA3LTA5LTAzDQoN CglpZighJHJzc191bmxpbV9zZWxfcGFyZW50KXskcnNzX3VubGltX3NlbF9wYXJlbnQ9J3Jv b3QnO30NCiAgICAgICAgJHJzID0gZ2V0VHJlZSgkcnNzX3VubGltX3NlbF9wYXJlbnQsICdh cnRpY2xlJyk7DQogICAgICAgICRtdHNpID0gIiI7DQogICAgICAgIGlmICgkcnMpIHsNCiAg ICAgICAgICAgICRtdHNpID0gcnNzX211bHRpVHJlZVNlbGVjdElucHV0KCdDYXRzJywkcnMs JHJzYyk7DQogICAgICAgIH0NCg0KICAgICAgICAkY2F0c2VsID0gKCR2aWV3ID09ICd0ZXh0 JykgPyBncmFmKGdUeHQoJ2NhdGVnb3JpemUnKS4gJyBbJy5lTGluaygnY2F0ZWdvcnknLCcn LCcnLCcnLGdUeHQoJ2VkaXQnKSkuJ10nLmJyLiRtdHNpKSA6ICcnOw0KDQokanMgPSA8PDxF T0YNCg0KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2Ny aXB0Ij4NCjwhLS0NCnZhciBzaWRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dyaXRl LXNvcnQnKTsNCmlmIChzaWRlKSB7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs ZW1lbnQoJ2RpdicpOw0KICAgIGRpdi5pbm5lckhUTUwgPSAnJGNhdHNlbCcgKyAiPHA+Wzxh IGhyZWY9XCJqYXZhc2NyaXB0OmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyc3NfdWNfbXVs dGlzZWxlY3RfaWQnKS5zZWxlY3RlZEluZGV4PS0xO25vb3AoKTtcIj5EZXNlbGVjdCBhbGw8 L2E+XTwvcD4iOw0KICAgIHNpZGUuYXBwZW5kQ2hpbGQoZGl2KTsNCn0NCi0tPg0KPC9zY3Jp cHQ+DQoNCkVPRjsNCg0KZWNobyAkanM7DQoNCn0NCg0KDQogICAgIC8vLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQog ICAgZnVuY3Rpb24gcnNzX2dldElEKCkgew0KICAgICAgICBpZighZW1wdHkoJEdMT0JBTFNb J0lEJ10pKSB7IC8vIG5ld2x5LXNhdmVkIGFydGljbGUNCiAgICAgICAgICAgICRJRCA9IGlu dHZhbCgkR0xPQkFMU1snSUQnXSk7DQogICAgICAgICAgICAkc3RlcCA9ICdlZGl0JzsNCiAg ICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICRJRCA9IGdwcygnSUQnKTsNCiAgICAgICAg fQ0KICAgICAgICByZXR1cm4gJElEOw0KICAgIH0NCg0KICAgIC8vLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogICAg ZnVuY3Rpb24gcnNzX2FkbWluX2NhdGxpc3Rfc2F2ZSgkZXZlbnQsICRzdGVwKSB7DQogICAg ICAgIGlmICghZ3BzKCdzYXZlJykgJiYgIWdwcygncHVibGlzaCcpKSByZXR1cm47DQogICAg ICAgICRJRCA9IHJzc19nZXRJRCgpOw0KDQogICAgICAgIGlmIChwcygnSUQnKSkgDQogICAg ICAgICAgICBzYWZlX2RlbGV0ZSgidGV4dHBhdHRlcm5fY2F0ZWdvcnkiLCJhcnRpY2xlX2lk PSckSUQnIik7DQoNCiAgICAgICAgaWYgKHBzKCdDYXRzJykpIHsNCiAgICAgICAgICAgICRp bmNhdHMgPSBwcygnQ2F0cycpOw0KICAgICAgICAgICAgaWYgKCFlbXB0eSgkaW5jYXRzKSkg ew0KICAgICAgICAgICAgICAgIGZvcmVhY2goJGluY2F0cyBhcyAkdmFsICl7DQogICAgICAg ICAgICAgICAgICAgIHNhZmVfaW5zZXJ0KCJ0ZXh0cGF0dGVybl9jYXRlZ29yeSIsDQogICAg ICAgICAgICAgICAgICAgICAgICAiY2F0ZWdvcnlfaWQgPSAnJHZhbCcsDQogICAgICAgICAg ICAgICAgICAgICAgICBhcnRpY2xlX2lkPSckSUQnIg0KICAgICAgICAgICAgICAgICAgICAp Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0N Cg0KICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KDQogICAgZnVuY3Rpb24gcnNzX2FkbWluX2NhdGxpc3RfZGVs ZXRlKCRldmVudCwgJHN0ZXApIHsNCiAgICAgICAgJGRlbGV0ZWQgPSBldmVudF9tdWx0aV9l ZGl0KCd0ZXh0cGF0dGVybl9jYXRlZ29yeScsJ2FydGljbGVfaWQnKTsNCiAgICB9DQoNCiAg ICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCg0KICAgIGZ1bmN0aW9uIHJzc19tdWx0aVRyZWVTZWxlY3RJbnB1dCgk c2VsZWN0bmFtZT0iIiwgJGFycmF5PSIiLCAkdmFsdWU9IiIpIHsNCiAgICAgICAgZ2xvYmFs ICRwcmVmcywgJHJzc191bmxpbV9zZWxfc2l6ZTsNCg0KICAgICAgICAkb3V0W10gPSAnPHNl bGVjdCBpZD0icnNzX3VjX211bHRpc2VsZWN0X2lkIiBuYW1lPSInLiRzZWxlY3RuYW1lLidb XSIgY2xhc3M9Imxpc3QiIHNpemU9IicuJHJzc191bmxpbV9zZWxfc2l6ZS4nIiBtdWx0aXBs ZT4nOw0KICAgICAgICBmb3JlYWNoICgkYXJyYXkgYXMgJGEpIHsNCiAgICAgICAgICAgIGV4 dHJhY3QoJGEpOw0KICAgICAgICAgICAgaWYgKCRuYW1lPT0ncm9vdCcpIGNvbnRpbnVlOw0K DQogICAgICAgICAgICAkc2VsZWN0ZWQ9Jyc7DQogICAgICAgICAgICBmb3JlYWNoICgkdmFs dWUgYXMgJGE9PiRiKSB7DQogICAgICAgICAgICAgICAgaWYgKCRpZCA9PSAkYlsnY2F0ZWdv cnlfaWQnXSkgew0KICAgICAgICAgICAgICAgICAgICAkc2VsZWN0ZWQgPSAnIHNlbGVjdGVk PSJzZWxlY3RlZCInOw0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICRuYW1lID0gaHRtbHNw ZWNpYWxjaGFycygkbmFtZSk7DQogICAgICAgICAgICAkc3AgPSAoJGxldmVsID4gMCkgPyBz dHJfcmVwZWF0KHNwLnNwLnNwLCRsZXZlbCkgOiAnJzsNCiAgICAgICAgICAgICRvdXRbXSA9 IHQuJzxvcHRpb24gdmFsdWU9IicuJGlkLiciJy4kc2VsZWN0ZWQuJz4nLiRzcC5hZGRzbGFz aGVzKCR0aXRsZSkuJzwvb3B0aW9uPic7DQogICAgICAgIH0NCiAgICAgICAgJG91dFtdID0g Jzwvc2VsZWN0Pic7DQogICAgICAgIHJldHVybiBqb2luKCcnLCRvdXQpOw0KICAgIH0NCg0K ICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KDQogICAgZnVuY3Rpb24gcnNzX2FkbWluX2FydGljbGVfbGlzdF9j YXRzKCRJRCkgew0KICAgICAgICAkY2F0cyA9IGFycmF5KCk7DQogICAgICAgICRyc2MgPSBn ZXRSb3dzKCJTRUxFQ1QgYy50aXRsZSBGUk9NIHRleHRwYXR0ZXJuX2NhdGVnb3J5IGFzIHRj IExFRlQgSk9JTiAgdHhwX2NhdGVnb3J5IGFzIGMgT04gdGMuY2F0ZWdvcnlfaWQgPSBjLmlk IFdIRVJFIGFydGljbGVfaWQ9Ii4kSUQpOw0KICAgICAgICBpZiAoJHJzYykgew0KICAgICAg ICAgICAgZm9yZWFjaCAoJHJzYyBhcyAkYT0+JGIpIHsNCiAgICAgICAgICAgICAgICAkY2F0 c1tdPSRiWyd0aXRsZSddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGlt cGxvZGUoJzxici8+JywgJGNhdHMpOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAnJzsN CiAgICB9DQoNCiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICAgIGZ1bmN0aW9uIHJzc190ZXh0X2lucHV0 KCRpdGVtLCR2YXIsJHNpemU9IiIpIHsNCiAgICAgICAgcmV0dXJuIGZJbnB1dCgidGV4dCIs JGl0ZW0sJHZhciwnZWRpdCcsJycsJycsJHNpemUpOw0KICAgIH0NCg0KICAgIC8vLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KDQogICAgZnVuY3Rpb24gcnNzX3VubGltaXRlZF9hZG1pbl90YWIoJGV2ZW50LCAkc3Rl cCkgew0KICAgICAgICBnbG9iYWwgJHByZWZzLCAkcnNzX3VubGltX3NlbF9zaXplLCAkcnNz X3VubGltX3NlbF9wYXJlbnQ7DQoNCiAgICAgICAgaWYgKCFpc3NldCgkcnNzX3VubGltX3Nl bF9zaXplKSkgeyAkcnMgPSBzYWZlX2luc2VydCgndHhwX3ByZWZzJywgIm5hbWU9J3Jzc191 bmxpbV9zZWxfc2l6ZScsIHZhbD0nNScsIHByZWZzX2lkPScxJyIpOyB9DQogICAgICAgIGlm ICghJHJzc191bmxpbV9zZWxfc2l6ZSl7ICRyc3NfdW5saW1fc2VsX3NpemU9JzUnOyB9DQoN CiAgICAgICAgaWYgKHBzKCJzYXZlIikpIHsNCiAgICAgICAgICAgIHBhZ2V0b3AoIlVubGlt aXRlZCBDYXRlZ29yaWVzIFByZWZzIiwgIlByZWZlcmVuY2VzIFNhdmVkIik7DQogICAgICAg ICAgICBzYWZlX3VwZGF0ZSgidHhwX3ByZWZzIiwgInZhbCA9ICciLmFkZHNsYXNoZXMocHMo J3Jzc191bmxpbV9zZWxfc2l6ZScpKS4iJyIsIm5hbWUgPSAncnNzX3VubGltX3NlbF9zaXpl JyBhbmQgcHJlZnNfaWQgPScxJyIpOw0KICAgICAgICAgICAgc2FmZV91cGRhdGUoInR4cF9w cmVmcyIsICJ2YWwgPSAnIi5hZGRzbGFzaGVzKHBzKCdyc3NfdW5saW1fc2VsX3BhcmVudCcp KS4iJyIsIm5hbWUgPSAncnNzX3VubGltX3NlbF9wYXJlbnQnIGFuZCBwcmVmc19pZCA9JzEn Iik7DQogICAgICAgICAgICBoZWFkZXIoIkxvY2F0aW9uOiBpbmRleC5waHA/ZXZlbnQ9cnNz X3VubGltaXRlZF9hZG1pbl90YWIiKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAg IHBhZ2V0b3AoIlVubGltaXRlZCBDYXRlZ29yaWVzIFByZWZzIik7DQogICAgICAgIH0NCiAg ICAgICAgJHJzID0gZ2V0VHJlZSgncm9vdCcsICdhcnRpY2xlJyk7DQoNCiAgICAgICAgZWNo bw0KICAgICAgICBzdGFydFRhYmxlKCdsaXN0JykuDQogICAgICAgIGZvcm0oDQogICAgICAg IHRyKHRkY3MoaGVkKCJVbmxpbWl0ZWQgQ2F0ZWdvcmllcyBQcmVmZXJlbmNlcyIsMSksMykp Lg0KICAgICAgICB0cigNCiAgICAgICAgICAgIHRkYShnVHh0KCdTZWxlY3QgTGlzdCBTaXpl OicpLCAnIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSIn KS50ZGEocnNzX3RleHRfaW5wdXQoInJzc191bmxpbV9zZWxfc2l6ZSIsJHJzc191bmxpbV9z ZWxfc2l6ZSwnMzAnKSwgJyAnKQ0KICAgICAgICApLg0KICAgICAgICB0cigNCiAgICAgICAg ICAgIHRkYShnVHh0KCdQYXJlbnQgZm9yIGRpc3BsYXk6JyksICcgc3R5bGU9InRleHQtYWxp Z246cmlnaHQ7dmVydGljYWwtYWxpZ246bWlkZGxlIicpLnRkYSh0cmVlU2VsZWN0SW5wdXQo J3Jzc191bmxpbV9zZWxfcGFyZW50JywgJHJzLCAkcnNzX3VubGltX3NlbF9wYXJlbnQpLCAn ICcpDQogICAgICAgICkuDQogICAgICAgIHRyKA0KICAgICAgICAgICAgdGRhKGZJbnB1dCgi c3VibWl0Iiwic2F2ZSIsZ1R4dCgic2F2ZV9idXR0b24iKSwicHVibGlzaCIpLmVJbnB1dCgi cnNzX3VubGltaXRlZF9hZG1pbl90YWIiKS5zSW5wdXQoJ3NhdmVwcmVmcycpLCAiIGNsYXNz PVwibm9saW5lXCIiKQ0KICAgICAgICApKS4NCiAgICAgICAgZW5kVGFibGUoKTsNCg0KICAg IH0NCiI7czo0OiJ0eXBlIjtzOjE6IjEiO3M6NToib3JkZXIiO3M6MToiNSI7czo0OiJoZWxw IjtzOjI5Mjk1OiI8cD4KPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxLjJlbTsiPjxiciAvPgo8 dGFibGUgc3R5bGU9IndpZHRoOjkwJTtwYWRkaW5nOiAwIDAgMjBweDttYXJnaW46IDAgYXV0 byAyMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM2NjY7Ij48YnIgLz4KPHRyPjx0ZD48 L3A+CgoJPGgxPlVubGltaXRlZCBBcnRpY2xlIENhdGVnb3JpZXMgaW4gVGV4dHBhdHRlcm48 L2gxPjxiciAvPjxiciAvPgo8Yj52MC43LjRwNDwvYj4gQ2hlY2sgbmV3IHZlcnNpb24gPGEg aHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP2lkPTE0 MTY4JmFjdGlvbj1uZXciPmhlcmU8L2E+IG9yIDxhIGhyZWY9Imh0dHA6Ly90ZXh0cGF0dGVy bi5vcmcudWEvcGF0Y2hlcy9yc3NfdW5saW1pdGVkX2NhdGVnb3JpZXMiPmhlcmU8L2E+PGJy IC8+PGJyIC8+CgoJPHA+VGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lsc2hpcmVvbmUuY29t L3RleHRwYXR0ZXJuLXBsdWdpbnMvcnNzLXVubGltaXRlZC1jYXRlZ29yaWVzIj5yc3NfdW5s aW1pdGVkX2NhdGVnb3JpZXM8L2E+IHBsdWdpbiBlbmFibGVzIHlvdSB0byBhc3NpZ24gYW4g dW5saW1pdGVkIG51bWJlciBvZiBjYXRlZ29yaWVzIHRvIGFuIGFydGljbGUgc28gdGhhdCB5 b3UmIzgyMTc7cmUgbm90IGxpbWl0ZWQgdG8gdGhlIGRlZmF1bHQgbnVtYmVyIGFsbG93ZWQg YnkgVGV4dHBhdHRlcm4gKDIpLjwvcD4KCgk8cD5UaGUgcGx1Z2luIHdpbGwgYWRkIGEgbXVs dGlwbGUgc2VsZWN0IGxpc3QgdG8geW91ciBUeHAgPiBDb250ZW50IC0+IFdyaXRlIHRhYiB0 byBlbmFibGUgdGhlIHNlbGVjdGlvbiBvZiB1bmxpbWl0ZWQgY2F0ZWdvcmllcy4gIEl0IGFs c28gaW5jbHVkZXMgc2V2ZXJhbCBwdWJsaWMgc2lkZSB0YWdzIHRvIGRpc3BsYXkgdGhlIGNh dGVnb3JpZXMgYW5kIGxpc3QgYXJ0aWNsZXMgYnkgY2F0ZWdvcnkgYW5kIGFuIGFkbWluIHRh YiB0byBzZXQgcGx1Z2luIHByZWZlcmVuY2VzLjwvcD4KCjxici8+CgoJPGgyPkluc3RhbGxh dGlvbiBhbmQgU2V0dXA8L2gyPgoKCTxvbD4KCQk8bGk+U2ltcGx5IGluc3RhbGwgYW5kIGVu YWJsZSB0aGUgcGx1Z2luLiAgVGhlIHBsdWdpbiB3aWxsIGF1dG9tYXRpY2FsbHkgaW5zdGFs bCBhIG5ldyB0YWJsZSB0aGF0IHJlbGF0ZXMgYXJ0aWNsZXMgdG8gY2F0ZWdvcmllcy48L2xp PgoJCTxsaT5OYXZpZ2F0ZSB0byB0aGUgVHhwID4gQ29udGVudCAtPiBXcml0ZSB0YWIgYW5k IHlvdSYjODIxNztsbCBmaW5kIGEgbmV3IG11bHRpcGxlIHNlbGVjdCBsaXN0IGFib3ZlIHRo ZSBzdGFuZGFyZCBUZXh0cGF0dGVybiBjYXRlZ29yeSBzZWxlY3Rpb24uPC9saT4KCQk8bGk+ Rm9yIGV4aXN0aW5nIHNpdGVzLCB5b3UgY2FuIGNvcHkgeW91ciBjdXJyZW50IGFydGljbGUv Y2F0ZWdvcnkgYXNzaWdubWVudHMgdG8gdGhlIG5ldyBjYXRlZ29yeSB0YWJsZSBzdHJ1Y3R1 cmUgdXNpbmcgdGhlIGZvbGxvd2luZyA8c3BhbiBjbGFzcz0iY2FwcyI+U1FMPC9zcGFuPiBz dGF0ZW1lbnRzOjwvbGk+Cgk8L29sPgoKPHByZT48Y29kZT5JTlNFUlQgSU5UTyB0ZXh0cGF0 dGVybl9jYXRlZ29yeSAoYXJ0aWNsZV9pZCwgY2F0ZWdvcnlfaWQpIFNFTEVDVCB0LmlkLCBj LmlkCkZST00gdGV4dHBhdHRlcm4gdCBMRUZUIEpPSU4gdHhwX2NhdGVnb3J5IGMgb24gdC5j YXRlZ29yeTEgPSBjLm5hbWUKV0hFUkUgYy50eXBlID0gJiMzOTthcnRpY2xlJiMzOTsgYW5k IHQuY2F0ZWdvcnkxICE9ICYjMzk7JiMzOTs7PC9jb2RlPjwvcHJlPgoKPHByZT48Y29kZT5J TlNFUlQgSU5UTyB0ZXh0cGF0dGVybl9jYXRlZ29yeSAoYXJ0aWNsZV9pZCwgY2F0ZWdvcnlf aWQpIFNFTEVDVCB0LmlkLCBjLmlkCkZST00gdGV4dHBhdHRlcm4gdCBMRUZUIEpPSU4gdHhw X2NhdGVnb3J5IGMgb24gdC5jYXRlZ29yeTIgPSBjLm5hbWUKV0hFUkUgYy50eXBlID0gJiMz OTthcnRpY2xlJiMzOTsgYW5kIHQuY2F0ZWdvcnkyICE9ICYjMzk7JiMzOTs7PC9jb2RlPjwv cHJlPgoKPGJyLz4KCgk8cD48L3RkPjwvdHI+PC90YWJsZT48L3A+CgoJPHRhYmxlIHN0eWxl PSJjb2xvcjojMzMzO2ZvbnQ6bm9ybWFsIDFlbSB2ZXJkYW5hO3dpZHRoOiA5MCU7cGFkZGlu ZzogMCAwIDIwcHg7bWFyZ2luOiAwIGF1dG8gMjBweDtib3JkZXItYm90dG9tOjFweCBzb2xp ZCAjNjY2OyIgaWQ9Imxpc3QiPgoJCTx0cj4KCQkJPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGln bjptaWRkbGU7Zm9udDpub3JtYWwgYm9sZCAxLjRlbSBnZW9yZ2lhO3RleHQtYWxpZ246bGVm dDtjb2xvcjojNTAwOyIgaWQ9InJzc191bmxpbWl0ZWRfY2F0ZWdvcmllc19maWxlZHVuZGVy IiBjb2xzcGFuPSI0Ij5QdWJsaWMtc2lkZSBUYWdzPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJ PHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Zm9udDpub3JtYWwgMS4xZW0gdmVy ZGFuYTt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6IzAzNjsiIGNvbHNwYW49IjQiPkFsbCBvZiB0 aGUgdGFncyB1c2UgdGhlIG5ldyBjYXRlZ29yeSB0YWJsZSBjcmVhdGVkIGJ5IHRoaXMgcGx1 Z2luIGluc3RlYWQgb2YgdGhlIHN0YW5kYXJkIFRleHRwYXR0ZXJuIGNhdGVnb3J5IDEgYW5k IDIgZmllbGRzLiAgVGhlIGNvbGxlY3Rpb24gb2YgcHVibGljIHNpdGUgdGFncyBpbmNsdWRl OjwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0aCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlk ZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7Ij50YWcgbmFtZTwvdGg+CgkJCTx0aCBzdHlsZT0i dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7Ij5kZXNjcmlwdGlv bjwvdGg+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD48YSBocmVmPSIjcnNzX3VubGltaXRlZF9j YXRlZ29yaWVzX2ZpbGVkdW5kZXIiPjxzdHJvbmc+cnNzX3VubGltaXRlZF9jYXRlZ29yaWVz X2ZpbGVkdW5kZXI8L3N0cm9uZz48L2E+PC90ZD4KCQkJPHRkPkxpc3RzIGFsbCBjYXRlZ29y aWVzIGFzc2lnbmVkIHRvIHRoZSBjdXJyZW50IGFydGljbGUuPC90ZD4KCQk8L3RyPgoJCTx0 cj4KCQkJPHRkPjxhIGhyZWY9IiNyc3NfdW5saW1pdGVkX2NhdGVnb3JpZXNfY2xvdWQiPjxz dHJvbmc+cnNzX3VubGltaXRlZF9jYXRlZ29yaWVzX2Nsb3VkPC9zdHJvbmc+PC9hPjwvdGQ+ CgkJCTx0ZD5EaXNwbGF5cyBhIHdlaWdodGVkIGxpc3Qgb2YgYWxsIGNhdGVnb3JpZXMgYXMg YSA8YSBocmVmPSJodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1RhZ19jbG91ZCI+dGFn IGNsb3VkPC9hPi4gPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPjxhIGhyZWY9IiNyc3Nf dW5saW1pdGVkX2NhdGVnb3JpZXNfbGlzdCI+PHN0cm9uZz5yc3NfdW5saW1pdGVkX2NhdGVn b3JpZXNfbGlzdDwvc3Ryb25nPjwvYT48L3RkPgoJCQk8dGQ+RGlzcGxheXMgYSBsaXN0IG9m IGFsbCBjYXRlZ29yaWVzIHdpdGggdGhlIG51bWJlciBvZiBwb3N0cyBpbiBlYWNoLjwvdGQ+ CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD48YSBocmVmPSIjcnNzX3VubGltaXRlZF9jYXRlZ29y aWVzX2FydGljbGVfbGlzdCI+PHN0cm9uZz5yc3NfdW5saW1pdGVkX2NhdGVnb3JpZXNfYXJ0 aWNsZV9saXN0PC9zdHJvbmc+PC9hPjwvdGQ+CgkJCTx0ZD5MaXN0cyBhcnRpY2xlcyBieSBj YXRlZ29yeS4gIFRoaXMgaXMgYSByZXBsYWNlbWVudCBmb3IgdGhlIHN0YW5kYXJkIFRleHRw YXR0ZXJuIGFydGljbGUgbGlzdCB0YWdzLjwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD48 YSBocmVmPSIjcnNzX3VubGltaXRlZF9jYXRlZ29yaWVzX3JlbGF0ZWQiPjxzdHJvbmc+cnNz X3VubGltaXRlZF9jYXRlZ29yaWVzX3JlbGF0ZWQ8L3N0cm9uZz48L2E+PC90ZD4KCQkJPHRk Pkxpc3RzIHJlbGF0ZWQgYXJ0aWNsZXMgYnkgY2F0ZWdvcnkuICBUaGlzIGlzIGEgcmVwbGFj ZW1lbnQgZm9yIHRoZSBzdGFuZGFyZCBUZXh0cGF0dGVybiByZWxhdGVkIGFydGljbGUgdGFn IHRoYXQgdXNlcyB0aGUgdW5saW1pdGVkIGNhdGVnb3J5IHRhYmxlcyBpbnN0ZWFkIG9mIHRo ZSBzdGFuZGFyZCBUZXh0cGF0dGVybiBjYXRlZ29yeSAxIGFuZCAyIGZpZWxkcy48L3RkPgoJ CTwvdHI+CgkJPHRyPgoJCQk8dGQ+PGEgaHJlZj0iI3Jzc19zY3RfcGVybWxpbmsiPjxzdHJv bmc+cnNzX3NjdF9wZXJtbGluazwvc3Ryb25nPjwvYT48L3RkPgoJCQk8dGQ+QnVpbGRzIGEg cGVybWxpbmsgaW4gL3NlY3Rpb24vY2F0ZWdvcnkvdGl0bGUgZm9ybWF0LiAgVGhpcyBpcyB1 c2VkIGV4YWN0bHkgYXMgdGhlIHN0YW5kYXJkIFRleHRwYXR0ZXJuIHBlcm1saW5rIHRhZy48 L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+PGEgaHJlZj0iI3Jzc191bmxpbWl0ZWRfY2F0 ZWdvcnlfY291bnQiPjxzdHJvbmc+cnNzX3VubGltaXRlZF9jYXRlZ29yeV9jb3VudDwvc3Ry b25nPjwvYT48L3RkPgoJCQk8dGQ+RGlzcGxheXMgdGhlIG51bWJlciBvZiBhcnRpY2xlcyBh c3NpZ25lZCB0byBhIGdpdmVuIGNhdGVnb3J5LjwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0 ZD48YSBocmVmPSIjcnNzX2lmX2FydGljbGVfdW5saW1pdGVkX2NhdGVnb3J5Ij48c3Ryb25n PnJzc19pZl9hcnRpY2xlX3VubGltaXRlZF9jYXRlZ29yeTwvc3Ryb25nPjwvYT48L3RkPgoJ CQk8dGQ+Q29uZGl0aW9uYWwgdGFnIHRoYXQgdGVsbHMgaWYgYSBwYXJ0aWN1bGFyIGNhdGVn b3J5IGlzIGFzc2lnbmVkIHRvIGFuIGFydGljbGUuICBUaGlzIGlzIGEgcmVwbGFjZW1lbnQg Zm9yIHRoZSBzdGFuZGFyZCBUZXh0cGF0dGVybiBpZiBhcnRpY2xlIGNhdGVnb3J5IHRhZy48 L3RkPgoJCTwvdHI+Cgk8L3RhYmxlPgoKCTx0YWJsZSBzdHlsZT0iY29sb3I6IzMzMztmb250 Om5vcm1hbCAxZW0gdmVyZGFuYTt3aWR0aDogOTAlO3BhZGRpbmc6IDAgMCAyMHB4O21hcmdp bjogMCBhdXRvIDIwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzY2NjsiIGlkPSJsaXN0 Ij4KCQk8dHI+CgkJCTx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO2ZvbnQ6bm9y bWFsIGJvbGQgMS40ZW0gZ2VvcmdpYTt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6IzUwMDsiIGlk PSJyc3NfdW5saW1pdGVkX2NhdGVnb3JpZXNfZmlsZWR1bmRlciIgY29sc3Bhbj0iNCI+cnNz X3VubGltaXRlZF9jYXRlZ29yaWVzX2ZpbGVkdW5kZXIgb3IgcnNzX3VjX2ZpbGVkdW5kZXI8 L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRs ZTtmb250Om5vcm1hbCAxLjFlbSB2ZXJkYW5hO3RleHQtYWxpZ246bGVmdDtjb2xvcjojMDM2 OyIgY29sc3Bhbj0iNCI+TGlzdHMgYWxsIGNhdGVnb3JpZXMgYXNzaWduZWQgdG8gdGhlIGN1 cnJlbnQgYXJ0aWNsZS48L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGggc3R5bGU9InZlcnRp Y2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTogbm93cmFwOyI+YXR0cmlidXRlIG5hbWU8 L3RoPgoJCQk8dGggc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTog bm93cmFwOyI+ZGVzY3JpcHRpb248L3RoPgoJCQk8dGggc3R5bGU9InZlcnRpY2FsLWFsaWdu Om1pZGRsZTt3aGl0ZS1zcGFjZTogbm93cmFwOyI+ZGVmYXVsdCB2YWx1ZTwvdGg+CgkJCTx0 aCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7Ij5l eGFtcGxlIHVzYWdlPC90aD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPnNlY3Rpb248L3RkPgoJ CQk8dGQ+QWNjZXB0cyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHNlY3Rpb25zIHRoYXQg cG9zdHMgYXJlIGxpc3RlZCBmcm9tLiAgTk8gc3BhY2VzIGFmdGVyIGNvbW1hcy4KV2lsZGNh cmRzIGFuZCBuZWdhdGl2ZXMgY2FuIGFsc28gYmUgdXNlZCB3aGVuIHNwZWNpZnlpbmcgc2Vj dGlvbnMuIEZvciBpbnN0YW5jZSwgc2VjdGlvbj0mIzgyMjE7KiYjODIyMTsgKGFsbCBzZWN0 aW9ucywgcmVnYXJkbGVzcyBvZiBob3cgbWFueSksIHNlY3Rpb249JiM4MjIxOyFwaG90b3Ms d3JpdGluZyx0aG91Z2h0cyYjODIyMTsgKHdyaXRpbmcgPHNwYW4gY2xhc3M9ImNhcHMiPkFO RDwvc3Bhbj4gdGhvdWdodHMgPHNwYW4gY2xhc3M9ImNhcHMiPkFORDwvc3Bhbj4gPHNwYW4g Y2xhc3M9ImNhcHMiPk5PVDwvc3Bhbj4gcGhvdG9zKSwgb3IganVzdCBzZWN0aW9uPSYjODIy MTshcGhvdG9zJiM4MjIxOyAoYWxsIHNlY3Rpb25zIGV4Y2VwdCBwaG90b3MpLjwvdGQ+CgkJ CTx0ZD5hcnRpY2xlPC90ZD4KCQkJPHRkPnNlY3Rpb249JiM4MjIwO3NlY3Rpb25PbmUsc2Vj dGlvblR3byYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+cGFyZW50PC90ZD4K CQkJPHRkPkFjY2VwdHMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBjYXRlZ29yaWVzLiAg Tk8gc3BhY2VzIGFmdGVyIGNvbW1hcy4gIE9ubHkgY2F0ZWdvcmllcyB3aXRoIHRoZSBzcGVj aWZpZWQgY2F0ZWdvcnkgYXMgYSBwYXJlbnQgd2lsbCBiZSBkaXNwbGF5ZWQuPC90ZD4KCQkJ PHRkPiZuYnNwOzwvdGQ+CgkJCTx0ZD5jYXRlZ29yeT0mIzgyMjA7bXljYXRlZ29yeTEsbXlj YXRlZ29yeTImIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPmxpbmt0b3NlY3Rp b248L3RkPgoJCQk8dGQ+VGhlIHNlY3Rpb24gdXNlZCBmb3IgY2F0ZWdvcnkgbGlua3MuPC90 ZD4KCQkJPHRkPmFydGljbGU8L3RkPgoJCQk8dGQ+bGlua3Rvc2VjdGlvbj0mIzgyMjA7c2Vj dGlvblRocmVlJiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD51c2VtZXNzeTwv dGQ+CgkJCTx0ZD5Vc2UgbWVzc3kgKC9zZWN0aW9uLz9jPWNhdGVnb3J5KSBVUkxzIGluc3Rl YWQgb2YgY2xlYW4gKC9zZWN0aW9uL2NhdGVnb3J5KSBVUkxzIGZvciBjYXRlZ29yeSBsaW5r cy4uPC90ZD4KCQkJPHRkPjA8L3RkPgoJCQk8dGQ+dXNlbWVzc3k9JiM4MjIwOzEmIzgyMjE7 PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPmxpc3R3cmFwdGFnPC90ZD4KCQkJPHRkPlRo ZSA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gdGFnIHRoYXQgd3JhcHMgdGhlIGxh YmVsIGFuZCBjYXRlZ29yeSBsaXN0LjwvdGQ+CgkJCTx0ZD4mbmJzcDs8L3RkPgoJCQk8dGQ+ bGlzdHdyYXB0YWc9JiM4MjIwO2RpdiYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8 dGQ+d3JhcHRhZzwvdGQ+CgkJCTx0ZD5UaGUgPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3Nw YW4+IHRhZyB0aGF0IHdyYXBzIHRoZSBjYXRlZ29yeSBsaXN0LjwvdGQ+CgkJCTx0ZD4mbmJz cDs8L3RkPgoJCQk8dGQ+d3JhcHRhZz0mIzgyMjA7dWwmIzgyMjE7PC90ZD4KCQk8L3RyPgoJ CTx0cj4KCQkJPHRkPmNsYXNzPC90ZD4KCQkJPHRkPlRoZSBjbGFzcyBhdHRyaWJ1dGUgb24g dGhlIHdyYXB0YWcuPC90ZD4KCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCTx0ZD5jbGFzcz0mIzgy MjA7Y2F0bGlzdCYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+YnJlYWs8L3Rk PgoJCQk8dGQ+SFRNTC90ZXh0IHRoYXQgd3JhcHMvc2VwYXJhdGVzIGVhY2ggZWxlbWVudCBp biB0aGUgbGlzdC48L3RkPgoJCQk8dGQ+LCZuYnNwOzwvdGQ+CgkJCTx0ZD5icmVhaz0mIzgy MjA7bGkmIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPmJyZWFrY2xhc3M8L3Rk PgoJCQk8dGQ+VGhlIG1heGltdW0gbnVtYmVyIG9mIGxpdmUgc2VhcmNoIHJlc3VsdHMgcmV0 dXJuZWQuPC90ZD4KCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCTx0ZD5icmVha2NsYXNzPSYjODIy MDtjYXRlbGVtZW50JiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5sYWJlbDwv dGQ+CgkJCTx0ZD5BIGxhYmVsIHRoYXQgYXBwZWFycyBiZWZvcmUgdGhlIGxpc3QuPC90ZD4K CQkJPHRkPiZuYnNwOzwvdGQ+CgkJCTx0ZD5sYWJlbD0mIzgyMjA7RmlsZSB1bmRlcjogJiM4 MjIwOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5sYWJlbHRhZzwvdGQ+CgkJCTx0ZD5U aGUgPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IHRhZyB0aGF0IHdyYXBzIHRoZSBs YWJlbC48L3RkPgoJCQk8dGQ+Jm5ic3A7PC90ZD4KCQkJPHRkPmxhYmVsdGFnPSYjODIyMDto NCYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+c29ydGRpcjwvdGQ+CgkJCTx0 ZD5UaGUgZGlyZWN0aW9uIHRoZSBjYXRlZ29yeSBuYW1lcyBhcmUgc29ydGVkIGluLiAgVmFs aWQgY2hvaWNlcyBpbmNsdWRlICYjODIyMDthc2MmIzgyMjE7IGFuZCAmIzgyMjA7ZGVzYyYj ODIyMTsuPC90ZD4KCQkJPHRkPmFzYzwvdGQ+CgkJCTx0ZD5zb3J0ZGlyPSYjODIyMDtkZXNj JiM4MjIxOzwvdGQ+CgkJPC90cj4KCTwvdGFibGU+CgoJPHRhYmxlIHN0eWxlPSJjb2xvcjoj MzMzO2ZvbnQ6bm9ybWFsIDFlbSB2ZXJkYW5hO3dpZHRoOiA5MCU7cGFkZGluZzogMCAwIDIw cHg7bWFyZ2luOiAwIGF1dG8gMjBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNjY2OyIg aWQ9Imxpc3QiPgoJCTx0cj4KCQkJPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7 Zm9udDpub3JtYWwgYm9sZCAxLjRlbSBnZW9yZ2lhO3RleHQtYWxpZ246bGVmdDtjb2xvcjoj NTAwOyIgaWQ9InJzc191bmxpbWl0ZWRfY2F0ZWdvcmllc19jbG91ZCIgY29sc3Bhbj0iNCI+ cnNzX3VubGltaXRlZF9jYXRlZ29yaWVzX2Nsb3VkIG9yIHJzc191Y19jbG91ZDwvdGQ+CgkJ PC90cj4KCQk8dHI+CgkJCTx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO2ZvbnQ6 bm9ybWFsIDEuMWVtIHZlcmRhbmE7dGV4dC1hbGlnbjpsZWZ0O2NvbG9yOiMwMzY7IiBjb2xz cGFuPSI0Ij5EaXNwbGF5cyBhIHdlaWdodGVkIGxpc3Qgb2YgYWxsIGNhdGVnb3JpZXMgYXMg YSAmIzgyMjA7Y2xvdWQmIzgyMjE7LjwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0aCBzdHls ZT0idmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7Ij5hdHRyaWJ1 dGUgbmFtZTwvdGg+CgkJCTx0aCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRl LXNwYWNlOiBub3dyYXA7Ij5kZXNjcmlwdGlvbjwvdGg+CgkJCTx0aCBzdHlsZT0idmVydGlj YWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7Ij5kZWZhdWx0IHZhbHVlPC90 aD4KCQkJPHRoIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6IG5v d3JhcDsiPmV4YW1wbGUgdXNhZ2U8L3RoPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+c2VjdGlv bjwvdGQ+CgkJCTx0ZD5BY2NlcHRzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygc2VjdGlv bnMgdGhhdCBwb3N0cyBhcmUgbGlzdGVkIGZyb20uICBOTyBzcGFjZXMgYWZ0ZXIgY29tbWFz LgpXaWxkY2FyZHMgYW5kIG5lZ2F0aXZlcyBjYW4gYWxzbyBiZSB1c2VkIHdoZW4gc3BlY2lm eWluZyBzZWN0aW9ucy4gRm9yIGluc3RhbmNlLCBzZWN0aW9uPSYjODIyMTsqJiM4MjIxOyAo YWxsIHNlY3Rpb25zLCByZWdhcmRsZXNzIG9mIGhvdyBtYW55KSwgc2VjdGlvbj0mIzgyMjE7 IXBob3Rvcyx3cml0aW5nLHRob3VnaHRzJiM4MjIxOyAod3JpdGluZyA8c3BhbiBjbGFzcz0i Y2FwcyI+QU5EPC9zcGFuPiB0aG91Z2h0cyA8c3BhbiBjbGFzcz0iY2FwcyI+QU5EPC9zcGFu PiA8c3BhbiBjbGFzcz0iY2FwcyI+Tk9UPC9zcGFuPiBwaG90b3MpLCBvciBqdXN0IHNlY3Rp b249JiM4MjIxOyFwaG90b3MmIzgyMjE7IChhbGwgc2VjdGlvbnMgZXhjZXB0IHBob3Rvcyku PC90ZD4KCQkJPHRkPmFydGljbGU8L3RkPgoJCQk8dGQ+c2VjdGlvbj0mIzgyMjA7c2VjdGlv bk9uZSxzZWN0aW9uVHdvJiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD50aW1l PC90ZD4KCQkJPHRkPkFjY2VwdHMgb25lIG9mIDMgb3B0aW9ucyAmIzgyMjA7cGFzdCYjODIy MTssICYjODIyMDtmdXR1cmUmIzgyMjE7IG9yICYjODIyMDthbnkmIzgyMjE7LiAgQnkgZGVm YXVsdCAocGFzdCkgd2lsbCBkaXNwbGF5IGFydGljbGVzIHdpdGggYSBwb3N0ZWQgZGF0ZSBi ZWZvcmUgdGhlIGN1cnJlbnQgZGF0ZS90aW1lLgpTZWxlY3RpbmcgPHNwYW4gY2xhc3M9ImNh cHMiPkZVVFVSRTwvc3Bhbj4gd2lsbCBkaXNwbGF5IGFydGljbGVzIHdpdGggYSBwb3N0ZWQg ZGF0ZSBhZnRlciB0aGUgY3VycmVudCBkYXRlL3RpbWUuICBTZWxlY3RpbmcgPHNwYW4gY2xh c3M9ImNhcHMiPkFMTDwvc3Bhbj4gd2lsbCBkaXNwbGF5IGFsbCBhcnRpY2xlcyByZWdhcmRs ZXNzIG9mIHBvc3RlZCBkYXRlLjwvdGQ+CgkJCTx0ZD5wYXN0PC90ZD4KCQkJPHRkPnRpbWU9 JiM4MjIwO2FueSYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+bGltaXQ8L3Rk PgoJCQk8dGQ+VGhlIG1heGltdW0gbnVtYmVyIG9mIGNhdGVnb3JpZXMgcmV0dXJuZWQuPC90 ZD4KCQkJPHRkPjk5OTwvdGQ+CgkJCTx0ZD5saW1pdD0mIzgyMjA7NSYjODIyMTs8L3RkPgoJ CTwvdHI+CgkJPHRyPgoJCQk8dGQ+cGFyZW50PC90ZD4KCQkJPHRkPk9ubHkgY2F0ZWdvcmll cyB3aXRoIHRoZSBzcGVjaWZpZWQgY2F0ZWdvcnkgYXMgYSBwYXJlbnQgd2lsbCBiZSBkaXNw bGF5ZWQuPC90ZD4KCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCTx0ZD5wYXJlbnQ9JiM4MjIwO215 Y2F0ZWdvcnkmIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPmxpbmt0b3NlY3Rp b248L3RkPgoJCQk8dGQ+VGhlIHNlY3Rpb24gdXNlZCBmb3IgY2F0ZWdvcnkgbGlua3MuPC90 ZD4KCQkJPHRkPmFydGljbGU8L3RkPgoJCQk8dGQ+bGlua3Rvc2VjdGlvbj0mIzgyMjA7YXJj aGl2ZSYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+dXNlbWVzc3k8L3RkPgoJ CQk8dGQ+VXNlIG1lc3N5ICgvc2VjdGlvbi8/Yz1jYXRlZ29yeSkgVVJMcyBpbnN0ZWFkIG9m IGNsZWFuICgvc2VjdGlvbi9jYXRlZ29yeSkgVVJMcyBmb3IgY2F0ZWdvcnkgbGlua3MuPC90 ZD4KCQkJPHRkPjA8L3RkPgoJCQk8dGQ+dXNlbWVzc3k9JiM4MjIwOzEmIzgyMjE7PC90ZD4K CQk8L3RyPgoJCTx0cj4KCQkJPHRkPmNsb3Vkd3JhcHRhZzwvdGQ+CgkJCTx0ZD5UaGUgPHNw YW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IHRhZyB0aGF0IHdyYXBzIHRoZSBsYWJlbCBh bmQgY2F0ZWdvcnkgbGlzdC48L3RkPgoJCQk8dGQ+Jm5ic3A7PC90ZD4KCQkJPHRkPmNsb3Vk d3JhcHRhZz0mIzgyMjA7ZGl2JiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD53 cmFwdGFnPC90ZD4KCQkJPHRkPlRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4g dGFnIHRoYXQgd3JhcHMgdGhlIGNhdGVnb3J5IGxpc3QuPC90ZD4KCQkJPHRkPnA8L3RkPgoJ CQk8dGQ+d3JhcHRhZz0mIzgyMjA7dWwmIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJ PHRkPmNsYXNzPC90ZD4KCQkJPHRkPlRoZSBjbGFzcyBhdHRyaWJ1dGUgb24gdGhlIHdyYXB0 YWcuPC90ZD4KCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCTx0ZD5jbGFzcz0mIzgyMjA7Y2F0bGlz dCYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+YnJlYWs8L3RkPgoJCQk8dGQ+ SFRNTC90ZXh0IHRoYXQgd3JhcHMvc2VwYXJhdGVzIGVhY2ggZWxlbWVudCBpbiB0aGUgbGlz dC48L3RkPgoJCQk8dGQ+LCZuYnNwOzwvdGQ+CgkJCTx0ZD5icmVhaz0mIzgyMjA7bGkmIzgy MjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPmJyZWFrY2xhc3M8L3RkPgoJCQk8dGQ+ VGhlIG1heGltdW0gbnVtYmVyIG9mIGxpdmUgc2VhcmNoIHJlc3VsdHMgcmV0dXJuZWQuPC90 ZD4KCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCTx0ZD5icmVha2NsYXNzPSYjODIyMDtjYXRlbGVt ZW50JiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5sYWJlbDwvdGQ+CgkJCTx0 ZD5BIGxhYmVsIHRoYXQgYXBwZWFycyBiZWZvcmUgdGhlIGxpc3QuPC90ZD4KCQkJPHRkPiZu YnNwOzwvdGQ+CgkJCTx0ZD5sYWJlbD0mIzgyMjA7RmlsZSB1bmRlcjogJiM4MjIwOzwvdGQ+ CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5sYWJlbHRhZzwvdGQ+CgkJCTx0ZD5UaGUgPHNwYW4g Y2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IHRhZyB0aGF0IHdyYXBzIHRoZSBsYWJlbC48L3Rk PgoJCQk8dGQ+Jm5ic3A7PC90ZD4KCQkJPHRkPmxhYmVsdGFnPSYjODIyMDtoNCYjODIyMTs8 L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+c29ydGRpcjwvdGQ+CgkJCTx0ZD5UaGUgZGly ZWN0aW9uIHRoZSBjYXRlZ29yeSBuYW1lcyBhcmUgc29ydGVkIGluLiAgVmFsaWQgY2hvaWNl cyBpbmNsdWRlICYjODIyMDthc2MmIzgyMjE7IGFuZCAmIzgyMjA7ZGVzYyYjODIyMTsuPC90 ZD4KCQkJPHRkPmFzYzwvdGQ+CgkJCTx0ZD5zb3J0ZGlyPSYjODIyMDtkZXNjJiM4MjIxOzwv dGQ+CgkJPC90cj4KCTwvdGFibGU+CgoJPHRhYmxlIHN0eWxlPSJjb2xvcjojMzMzO2ZvbnQ6 bm9ybWFsIDFlbSB2ZXJkYW5hO3dpZHRoOiA5MCU7cGFkZGluZzogMCAwIDIwcHg7bWFyZ2lu OiAwIGF1dG8gMjBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNjY2OyIgaWQ9Imxpc3Qi PgoJCTx0cj4KCQkJPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Zm9udDpub3Jt YWwgYm9sZCAxLjRlbSBnZW9yZ2lhO3RleHQtYWxpZ246bGVmdDtjb2xvcjojNTAwOyIgaWQ9 InJzc191bmxpbWl0ZWRfY2F0ZWdvcmllc19saXN0IiBjb2xzcGFuPSI0Ij5yc3NfdW5saW1p dGVkX2NhdGVnb3JpZXNfbGlzdCBvciByc3NfdWNfbGlzdDwvdGQ+CgkJPC90cj4KCQk8dHI+ CgkJCTx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO2ZvbnQ6bm9ybWFsIDEuMWVt IHZlcmRhbmE7dGV4dC1hbGlnbjpsZWZ0O2NvbG9yOiMwMzY7IiBjb2xzcGFuPSI0Ij5EaXNw bGF5cyBhIGxpc3Qgb2YgYWxsIGNhdGVnb3JpZXMgd2l0aCB0aGUgbnVtYmVyIG9mIHBvc3Rz IGluIGVhY2guPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRoIHN0eWxlPSJ2ZXJ0aWNhbC1h bGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6IG5vd3JhcDsiPmF0dHJpYnV0ZSBuYW1lPC90aD4K CQkJPHRoIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6IG5vd3Jh cDsiPmRlc2NyaXB0aW9uPC90aD4KCQkJPHRoIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRk bGU7d2hpdGUtc3BhY2U6IG5vd3JhcDsiPmRlZmF1bHQgdmFsdWU8L3RoPgoJCQk8dGggc3R5 bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTogbm93cmFwOyI+ZXhhbXBs ZSB1c2FnZTwvdGg+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5zZWN0aW9uPC90ZD4KCQkJPHRk PkFjY2VwdHMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBzZWN0aW9ucyB0aGF0IHBvc3Rz IGFyZSBsaXN0ZWQgZnJvbS4gIE5PIHNwYWNlcyBhZnRlciBjb21tYXMuCldpbGRjYXJkcyBh bmQgbmVnYXRpdmVzIGNhbiBhbHNvIGJlIHVzZWQgd2hlbiBzcGVjaWZ5aW5nIHNlY3Rpb25z LiBGb3IgaW5zdGFuY2UsIHNlY3Rpb249JiM4MjIxOyomIzgyMjE7IChhbGwgc2VjdGlvbnMs IHJlZ2FyZGxlc3Mgb2YgaG93IG1hbnkpLCBzZWN0aW9uPSYjODIyMTshcGhvdG9zLHdyaXRp bmcsdGhvdWdodHMmIzgyMjE7ICh3cml0aW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3Nw YW4+IHRob3VnaHRzIDxzcGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3NwYW4+IDxzcGFuIGNsYXNz PSJjYXBzIj5OT1Q8L3NwYW4+IHBob3RvcyksIG9yIGp1c3Qgc2VjdGlvbj0mIzgyMjE7IXBo b3RvcyYjODIyMTsgKGFsbCBzZWN0aW9ucyBleGNlcHQgcGhvdG9zKS48L3RkPgoJCQk8dGQ+ YXJ0aWNsZTwvdGQ+CgkJCTx0ZD5zZWN0aW9uPSYjODIyMDtzZWN0aW9uT25lLHNlY3Rpb25U d28mIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPnRpbWU8L3RkPgoJCQk8dGQ+ QWNjZXB0cyBvbmUgb2YgMyBvcHRpb25zICYjODIyMDtwYXN0JiM4MjIxOywgJiM4MjIwO2Z1 dHVyZSYjODIyMTsgb3IgJiM4MjIwO2FueSYjODIyMTsuICBCeSBkZWZhdWx0IChwYXN0KSB3 aWxsIGRpc3BsYXkgYXJ0aWNsZXMgd2l0aCBhIHBvc3RlZCBkYXRlIGJlZm9yZSB0aGUgY3Vy cmVudCBkYXRlL3RpbWUuClNlbGVjdGluZyA8c3BhbiBjbGFzcz0iY2FwcyI+RlVUVVJFPC9z cGFuPiB3aWxsIGRpc3BsYXkgYXJ0aWNsZXMgd2l0aCBhIHBvc3RlZCBkYXRlIGFmdGVyIHRo ZSBjdXJyZW50IGRhdGUvdGltZS4gIFNlbGVjdGluZyA8c3BhbiBjbGFzcz0iY2FwcyI+QUxM PC9zcGFuPiB3aWxsIGRpc3BsYXkgYWxsIGFydGljbGVzIHJlZ2FyZGxlc3Mgb2YgcG9zdGVk IGRhdGUuPC90ZD4KCQkJPHRkPnBhc3Q8L3RkPgoJCQk8dGQ+dGltZT0mIzgyMjA7YW55JiM4 MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5wYXJlbnQ8L3RkPgoJCQk8dGQ+T25s eSBjYXRlZ29yaWVzIHdpdGggdGhlIHNwZWNpZmllZCBjYXRlZ29yeSBhcyBhIHBhcmVudCB3 aWxsIGJlIGRpc3BsYXllZC48L3RkPgoJCQk8dGQ+Jm5ic3A7PC90ZD4KCQkJPHRkPnBhcmVu dD0mIzgyMjA7bXljYXRlZ29yeSYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+ bGltaXQ8L3RkPgoJCQk8dGQ+VGhlIG1heGltdW0gbnVtYmVyIG9mIGNhdGVnb3JpZXMgcmV0 dXJuZWQuPC90ZD4KCQkJPHRkPjk5OTwvdGQ+CgkJCTx0ZD5saW1pdD0mIzgyMjA7NSYjODIy MTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+b2Zmc2V0PC90ZD4KCQkJPHRkPkV4Y2x1 ZGVzIHggbnVtYmVyIG9mIGNhdGVnb3JpZXMgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBj YXRlZ29yeSBsaXN0aW5nLjwvdGQ+CgkJCTx0ZD4wPC90ZD4KCQkJPHRkPm9mZnNldD0mIzgy MjA7MSYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+bGlua3Rvc2VjdGlvbjwv dGQ+CgkJCTx0ZD5UaGUgc2VjdGlvbiB1c2VkIGZvciBjYXRlZ29yeSBsaW5rcy48L3RkPgoJ CQk8dGQ+YXJ0aWNsZTwvdGQ+CgkJCTx0ZD5saW5rdG9zZWN0aW9uPSYjODIyMDthcmNoaXZl JiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD51c2VtZXNzeTwvdGQ+CgkJCTx0 ZD5Vc2UgbWVzc3kgKC9zZWN0aW9uLz9jPWNhdGVnb3J5KSBVUkxzIGluc3RlYWQgb2YgY2xl YW4gKC9zZWN0aW9uL2NhdGVnb3J5KSBVUkxzIGZvciBjYXRlZ29yeSBsaW5rcy4uPC90ZD4K CQkJPHRkPjA8L3RkPgoJCQk8dGQ+dXNlbWVzc3k9JiM4MjIwOzEmIzgyMjE7PC90ZD4KCQk8 L3RyPgoJCTx0cj4KCQkJPHRkPnNob3djb3VudDwvdGQ+CgkJCTx0ZD5EaXNwbGF5cyB0aGUg bnVtYmVyIG9mIHBvc3RzIGluIGVhY2ggY2F0ZWdvcnkuPC90ZD4KCQkJPHRkPjE8L3RkPgoJ CQk8dGQ+c2hvd2NvdW50PSYjODIyMDswJiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJ CTx0ZD5jb3VudGxpbmtlZDwvdGQ+CgkJCTx0ZD5EZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNh dGVnb3J5IGNvdW50IGlzIHNob3duIGluc2lkZSB0aGUgbGluay4gIEJ5IGRlZmF1bHQgKDEp IHRoZSBjb3VudCBpcyBpbnNpZGUgdGhlIGxpbmsuPC90ZD4KCQkJPHRkPjE8L3RkPgoJCQk8 dGQ+Y291bnRsaW5rZWQ9JiM4MjIwOzAmIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJ PHRkPnNob3dhbGxjb3VudDwvdGQ+CgkJCTx0ZD5EaXNwbGF5cyB0aGUgbnVtYmVyIG9mIHBv c3RzIGluIGFsbCBjYXRlZ29yaWVzIGF0IHRoZSBlbmQgb2YgdGhlIGNhdGVnb3J5IGxpc3Rp bmcuPC90ZD4KCQkJPHRkPjA8L3RkPgoJCQk8dGQ+c2hvd2FsbGNvdW50PSYjODIyMDsxJiM4 MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5hbGxjb3VudGxhYmVsPC90ZD4KCQkJ PHRkPlRoZSBsYWJlbCB1c2VkIGZvciB0aGUgYWxsIGNhdGVnb3JpZXMgY291bnQuPC90ZD4K CQkJPHRkPkFsbDwvdGQ+CgkJCTx0ZD5hbGxjb3VudGxhYmVsPSYjODIyMDtBbGwgQ2F0ZWdv cmllcyYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+bGlzdHdyYXB0YWc8L3Rk PgoJCQk8dGQ+VGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiB0YWcgdGhhdCB3 cmFwcyB0aGUgbGFiZWwgYW5kIGNhdGVnb3J5IGxpc3QuPC90ZD4KCQkJPHRkPiZuYnNwOzwv dGQ+CgkJCTx0ZD5saXN0d3JhcHRhZz0mIzgyMjA7ZGl2JiM4MjIxOzwvdGQ+CgkJPC90cj4K CQk8dHI+CgkJCTx0ZD53cmFwdGFnPC90ZD4KCQkJPHRkPlRoZSA8c3BhbiBjbGFzcz0iY2Fw cyI+SFRNTDwvc3Bhbj4gdGFnIHRoYXQgd3JhcHMgdGhlIGNhdGVnb3J5IGxpc3QuPC90ZD4K CQkJPHRkPnVsPC90ZD4KCQkJPHRkPndyYXB0YWc9JiM4MjIwO3AmIzgyMjE7PC90ZD4KCQk8 L3RyPgoJCTx0cj4KCQkJPHRkPmNsYXNzPC90ZD4KCQkJPHRkPlRoZSBjbGFzcyBhdHRyaWJ1 dGUgb24gdGhlIHdyYXB0YWcuPC90ZD4KCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCTx0ZD5jbGFz cz0mIzgyMjA7Y2F0bGlzdCYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+YnJl YWs8L3RkPgoJCQk8dGQ+SFRNTC90ZXh0IHRoYXQgd3JhcHMvc2VwYXJhdGVzIGVhY2ggZWxl bWVudCBpbiB0aGUgbGlzdC48L3RkPgoJCQk8dGQ+bGk8L3RkPgoJCQk8dGQ+YnJlYWs9JiM4 MjIxOywgJiM4MjIwOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5icmVha2NsYXNzPC90 ZD4KCQkJPHRkPlRoZSBjbGFzcyBhdHRyaWJ1dGUgb24gdGhlIGJyZWFrdGFnLjwvdGQ+CgkJ CTx0ZD4mbmJzcDs8L3RkPgoJCQk8dGQ+YnJlYWtjbGFzcz0mIzgyMjA7Y2F0ZWxlbWVudCYj ODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+bGFiZWw8L3RkPgoJCQk8dGQ+QSBs YWJlbCB0aGF0IGFwcGVhcnMgYmVmb3JlIHRoZSBsaXN0LjwvdGQ+CgkJCTx0ZD4mbmJzcDs8 L3RkPgoJCQk8dGQ+bGFiZWw9JiM4MjIwO0ZpbGUgdW5kZXI6ICYjODIyMDs8L3RkPgoJCTwv dHI+CgkJPHRyPgoJCQk8dGQ+bGFiZWx0YWc8L3RkPgoJCQk8dGQ+VGhlIDxzcGFuIGNsYXNz PSJjYXBzIj5IVE1MPC9zcGFuPiB0YWcgdGhhdCB3cmFwcyB0aGUgbGFiZWwuPC90ZD4KCQkJ PHRkPiZuYnNwOzwvdGQ+CgkJCTx0ZD5sYWJlbHRhZz0mIzgyMjA7aDQmIzgyMjE7PC90ZD4K CQk8L3RyPgoJCTx0cj4KCQkJPHRkPnNvcnRkaXI8L3RkPgoJCQk8dGQ+VGhlIGRpcmVjdGlv biB0aGUgY2F0ZWdvcnkgbmFtZXMgYXJlIHNvcnRlZCBpbi4gIFZhbGlkIGNob2ljZXMgaW5j bHVkZSAmIzgyMjA7YXNjJiM4MjIxOyBhbmQgJiM4MjIwO2Rlc2MmIzgyMjE7LjwvdGQ+CgkJ CTx0ZD5hc2M8L3RkPgoJCQk8dGQ+c29ydGRpcj0mIzgyMjA7ZGVzYyYjODIyMTs8L3RkPgoJ CTwvdHI+CgkJPHRyPgoJCQk8dGQ+PGI+YWN0aXZlY2xhc3M8L2I+PC90ZD4KCQkJPHRkPlRo aXMgYWxsb3dzIHlvdSB0byBhcHBseSBzcGVjaWFsIGNsYXNzIHRvIHRoZSBjdXJyZW50bHkt dmlld2VkIGNhdGVnb3J5LjwvdGQ+CgkJCTx0ZD4mbmJzcDs8L3RkPgoJCQk8dGQ+YWN0aXZl Y2xhc3M9JiM4MjIwO2Nzcy1hY3RpdmUtY2xhc3MmIzgyMjE7PC90ZD4KCQk8L3RyPgoKCTwv dGFibGU+CgoJPHRhYmxlIHN0eWxlPSJjb2xvcjojMzMzO2ZvbnQ6bm9ybWFsIDFlbSB2ZXJk YW5hO3dpZHRoOiA5MCU7cGFkZGluZzogMCAwIDIwcHg7bWFyZ2luOiAwIGF1dG8gMjBweDti b3JkZXItYm90dG9tOjFweCBzb2xpZCAjNjY2OyIgaWQ9Imxpc3QiPgoJCTx0cj4KCQkJPHRk IHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Zm9udDpub3JtYWwgYm9sZCAxLjRlbSBn ZW9yZ2lhO3RleHQtYWxpZ246bGVmdDtjb2xvcjojNTAwOyIgaWQ9InJzc191bmxpbWl0ZWRf Y2F0ZWdvcmllc19hcnRpY2xlX2xpc3QiIGNvbHNwYW49IjQiPnJzc191bmxpbWl0ZWRfY2F0 ZWdvcmllc19hcnRpY2xlX2xpc3Qgb3IgcnNzX3VjX2FydGljbGVfbGlzdDwvdGQ+CgkJPC90 cj4KCQk8dHI+CgkJCTx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO2ZvbnQ6bm9y bWFsIDEuMWVtIHZlcmRhbmE7dGV4dC1hbGlnbjpsZWZ0O2NvbG9yOiMwMzY7IiBjb2xzcGFu PSI0Ij5MaXN0cyBhcnRpY2xlcyBieSBjYXRlZ29yeS4gIFRoaXMgaXMgYSByZXBsYWNlbWVu dCBmb3IgdGhlIHN0YW5kYXJkIFRleHRwYXR0ZXJuIGFydGljbGUgbGlzdCB0YWdzIHRoYXQg dXNlcyB0aGUgdW5saW1pdGVkIGNhdGVnb3J5IHRhYmxlcyBpbnN0ZWFkIG9mIHRoZSBzdGFu ZGFyZCBUZXh0cGF0dGVybiBjYXRlZ29yeSAxIGFuZCAyIGZpZWxkcy48L3RkPgoJCTwvdHI+ CgkJPHRyPgoJCQk8dGggc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFj ZTogbm93cmFwOyI+YXR0cmlidXRlIG5hbWU8L3RoPgoJCQk8dGggc3R5bGU9InZlcnRpY2Fs LWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTogbm93cmFwOyI+ZGVzY3JpcHRpb248L3RoPgoJ CQk8dGggc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTogbm93cmFw OyI+ZGVmYXVsdCB2YWx1ZTwvdGg+CgkJCTx0aCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlk ZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7Ij5leGFtcGxlIHVzYWdlPC90aD4KCQk8L3RyPgoJ CTx0cj4KCQkJPHRkPnNlY3Rpb248L3RkPgoJCQk8dGQ+QWNjZXB0cyBhIGNvbW1hIHNlcGFy YXRlZCBsaXN0IG9mIHNlY3Rpb25zIHRoYXQgcG9zdHMgYXJlIGxpc3RlZCBmcm9tLiAgTk8g c3BhY2VzIGFmdGVyIGNvbW1hcy4KV2lsZGNhcmRzIGFuZCBuZWdhdGl2ZXMgY2FuIGFsc28g YmUgdXNlZCB3aGVuIHNwZWNpZnlpbmcgc2VjdGlvbnMuIEZvciBpbnN0YW5jZSwgc2VjdGlv bj0mIzgyMjE7KiYjODIyMTsgKGFsbCBzZWN0aW9ucywgcmVnYXJkbGVzcyBvZiBob3cgbWFu eSksIHNlY3Rpb249JiM4MjIxOyFwaG90b3Msd3JpdGluZyx0aG91Z2h0cyYjODIyMTsgKHdy aXRpbmcgPHNwYW4gY2xhc3M9ImNhcHMiPkFORDwvc3Bhbj4gdGhvdWdodHMgPHNwYW4gY2xh c3M9ImNhcHMiPkFORDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImNhcHMiPk5PVDwvc3Bhbj4gcGhv dG9zKSwgb3IganVzdCBzZWN0aW9uPSYjODIyMTshcGhvdG9zJiM4MjIxOyAoYWxsIHNlY3Rp b25zIGV4Y2VwdCBwaG90b3MpLjwvdGQ+CgkJCTx0ZD5hcnRpY2xlPC90ZD4KCQkJPHRkPnNl Y3Rpb249JiM4MjIwO3NlY3Rpb25PbmUsc2VjdGlvblR3byYjODIyMTs8L3RkPgoJCTwvdHI+ CgkJPHRyPgoJCQk8dGQ+CmNhdGVnb3J5PC90ZD4KCQkJPHRkPkFjY2VwdHMgYSBjb21tYSBz ZXBhcmF0ZWQgbGlzdCBvZiBjYXRlZ29yaWVzLiAgTk8gc3BhY2VzIGFmdGVyIGNvbW1hcy4g IElmIGN1cnJlbnRseSBicm93c2luZyBieSBjYXRlZ29yeSwgdGhlIGdsb2JhbCBjYXRlZ29y eSB3aWxsIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQuPC90ZD4KCQkJPHRkPjxjb2RlPiRjPC9j b2RlPiAoZ2xvYmFsIGNhdGVnb3J5KTwvdGQ+CgkJCTx0ZD5jYXRlZ29yeT0mIzgyMjA7NSYj ODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+dXNlY2hpbGRyZW48L3RkPgoJCQk8 dGQ+SWYgYSBzaW5nbGUgYXJ0aWNsZSBjYXRlZ29yeSBpcyBzcGVjaWZpZWQgYW5kIHRoYXQg Y2F0ZWdvcnkgaXMgYSBwYXJlbnQgY2F0ZWdvcnksIGFydGljbGVzIGFzc2lnbmVkIHRvIHRo ZSBwYXJlbnQmIzgyMTc7cyBjaGlsZCBjYXRlZ29yaWVzIHdpbGwgYmUgbGlzdGVkIHJhdGhl ciB0aGFuIGFydGljbGVzIGFzc2lnbmVkIHRvIHRoZSBwYXJlbnQuPC90ZD4KCQkJPHRkPjA8 L3RkPgoJCQk8dGQ+dXNlY2hpbGRyZW49JiM4MjIwOzEmIzgyMjE7PC90ZD4KCQk8L3RyPgoJ CTx0cj4KCQkJPHRkPmZvcm08L3RkPgoJCQk8dGQ+VGhlIGFydGljbGUgZm9ybSB1c2VkIGlu IHRoZSBhcnRpY2xlIGxpc3QuPC90ZD4KCQkJPHRkPmRlZmF1bHQ8L3RkPgoJCQk8dGQ+Zm9y bT0mIzgyMjA7bXlmb3JtJiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5saW1p dDwvdGQ+CgkJCTx0ZD5UaGUgbWF4aW11bSBudW1iZXIgb2YgYXJ0aWNsZXMgcmV0dXJuZWQu PC90ZD4KCQkJPHRkPjk5OTwvdGQ+CgkJCTx0ZD5saW1pdD0mIzgyMjA7NSYjODIyMTs8L3Rk PgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+b2Zmc2V0PC90ZD4KCQkJPHRkPkV4Y2x1ZGVzIHgg bnVtYmVyIG9mIGFydGljbGVzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgYXJ0aWNsZSBs aXN0aW5nLjwvdGQ+CgkJCTx0ZD4wPC90ZD4KCQkJPHRkPm9mZnNldD0mIzgyMjA7MSYjODIy MTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+dGltZTwvdGQ+CgkJCTx0ZD5BY2NlcHRz IG9uZSBvZiAzIG9wdGlvbnMgJiM4MjIwO3Bhc3QmIzgyMjE7LCAmIzgyMjA7ZnV0dXJlJiM4 MjIxOyBvciAmIzgyMjA7YW55JiM4MjIxOy4gIEJ5IGRlZmF1bHQgKHBhc3QpIHdpbGwgZGlz cGxheSBhcnRpY2xlcyB3aXRoIGEgcG9zdGVkIGRhdGUgYmVmb3JlIHRoZSBjdXJyZW50IGRh dGUvdGltZS4KU2VsZWN0aW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5GVVRVUkU8L3NwYW4+IHdp bGwgZGlzcGxheSBhcnRpY2xlcyB3aXRoIGEgcG9zdGVkIGRhdGUgYWZ0ZXIgdGhlIGN1cnJl bnQgZGF0ZS90aW1lLiAgU2VsZWN0aW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5BTEw8L3NwYW4+ IHdpbGwgZGlzcGxheSBhbGwgYXJ0aWNsZXMgcmVnYXJkbGVzcyBvZiBwb3N0ZWQgZGF0ZS48 L3RkPgoJCQk8dGQ+cGFzdDwvdGQ+CgkJCTx0ZD50aW1lPSYjODIyMDthbnkmIzgyMjE7PC90 ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPnNvcnRkaXI8L3RkPgoJCQk8dGQ+VGhlIGRpcmVj dGlvbiB0aGUgY2F0ZWdvcnkgbmFtZXMgYXJlIHNvcnRlZCBpbi4gIFZhbGlkIGNob2ljZXMg aW5jbHVkZSAmIzgyMjA7YXNjJiM4MjIxOyBhbmQgJiM4MjIwO2Rlc2MmIzgyMjE7LjwvdGQ+ CgkJCTx0ZD5hc2M8L3RkPgoJCQk8dGQ+c29ydGRpcj0mIzgyMjA7ZGVzYyYjODIyMTs8L3Rk PgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+c29ydGJ5PC90ZD4KCQkJPHRkPlRoZSBmaWVsZCB0 aGUgYXJ0aWNsZXMgYXJlIHNvcnRlZCBieS4gIFZhbGlkIGNob2ljZXMgaW5jbHVkZSBhbnkg ZmllbGQgb24gdGhlIHRleHRwYXR0ZXJuIHRhYmxlIHN1Y2ggYXMgJiM4MjIwO0lEJiM4MjIx OyBvciAmIzgyMjA7dGl0bGUmIzgyMjE7LjwvdGQ+CgkJCTx0ZD51UG9zdGVkPC90ZD4KCQkJ PHRkPnNvcnRieT0mIzgyMjA7dGl0bGUmIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJ PHRkPmlkPC90ZD4KCQkJPHRkPlRoZSBJRCBvZiBhIHNpbmdsZSBhcnRpY2xlIHRvIGRpc3Bs YXkuPC90ZD4KCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCTx0ZD5pZD0mIzgyMjA7MTAwJiM4MjIx OzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5maWx0ZXI8L3RkPgoJCQk8dGQ+SW5kaWNh dGVzIHdoZXRoZXIgZmlsdGVyaW5nIGlzIHR1cm5lZCBvbi48L3RkPgoJCQk8dGQ+MDwvdGQ+ CgkJCTx0ZD5maWx0ZXI9JiM4MjIwOzEmIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJ PHRkPmZpbHRlcmZpZWxkPC90ZD4KCQkJPHRkPlRoZSBmaWVsZCB0aGUgYXJ0aWNsZXMgYXJl IGZpbHRlcmVkIG9uLjwvdGQ+CgkJCTx0ZD4mbmJzcDs8L3RkPgoJCQk8dGQ+ZmlsdGVyZmll bGQ9JiM4MjIwO2N1c3RvbV80JiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5m aWx0ZXJuYW1lPC90ZD4KCQkJPHRkPlRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFu PiBrZXl3b3JkIHRoYXQgcHJlY2VlZHMgdGhlIGZpbHRlci4gIEZvciBleGFtcGxlLCB0aGVz ZSBhdHRyaWJ1dGVzIChmaWx0ZXI9JiM4MjIwOzEmIzgyMjE7IGZpbHRlcmZpZWxkPSYjODIy MDtjdXN0b21fNCYjODIyMTsgZmlsdGVybmFtZT0mIzgyMjA7YnlwcmljZSYjODIyMTspIHdv dWxkIGZpbHRlciB0aGlzIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+ICgvYXJ0aWNs ZS9ieXByaWNlL2x0LzMpIGFuZCBkaXNwbGF5IGFydGljbGVzIHdoZXJlIHRoZSB2YWx1ZSBp biB0aGUgY3VzdG9tXzQgZmllbGQgd2FzIGxlc3MgdGhhbiAzLiAgVGhlIHZhbGlkIDxzcGFu IGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IG9wZXJhdG9ycyBhcmUgPHN0cm9uZz5lcTwvc3Ry b25nPiAoZXF1YWxzKSwgPHN0cm9uZz5sdDwvc3Ryb25nPiAobGVzcyB0aGFuKSBhbmQgPHN0 cm9uZz5ndDwvc3Ryb25nPiAoZ3JlYXRlciB0aGFuKS4gIEZpbHRlciBVUkxzIG11c3QgYmUg Y29uc3RydWN0ZWQgbWFudWFsbHkgYXQgdGhpcyBwb2ludC48L3RkPgoJCQk8dGQ+Jm5ic3A7 PC90ZD4KCQkJPHRkPmZpbHRlcm5hbWU9JiM4MjIwO2J5cHJpY2UmIzgyMjE7PC90ZD4KCQk8 L3RyPgoJPC90YWJsZT4KCgk8dGFibGUgc3R5bGU9ImNvbG9yOiMzMzM7Zm9udDpub3JtYWwg MWVtIHZlcmRhbmE7d2lkdGg6IDkwJTtwYWRkaW5nOiAwIDAgMjBweDttYXJnaW46IDAgYXV0 byAyMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM2NjY7IiBpZD0ibGlzdCI+CgkJPHRy PgoJCQk8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTtmb250Om5vcm1hbCBib2xk IDEuNGVtIGdlb3JnaWE7dGV4dC1hbGlnbjpsZWZ0O2NvbG9yOiM1MDA7IiBpZD0icnNzX3Vu bGltaXRlZF9jYXRlZ29yaWVzX3JlbGF0ZWQiIGNvbHNwYW49IjQiPnJzc191bmxpbWl0ZWRf Y2F0ZWdvcmllc19yZWxhdGVkIG9yIHJzc191Y19yZWxhdGVkPC90ZD4KCQk8L3RyPgoJCTx0 cj4KCQkJPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Zm9udDpub3JtYWwgMS4x ZW0gdmVyZGFuYTt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6IzAzNjsiIGNvbHNwYW49IjQiPkxp c3RzIHJlbGF0ZWQgYXJ0aWNsZXMgYnkgY2F0ZWdvcnkuICBUaGlzIGlzIGEgcmVwbGFjZW1l bnQgZm9yIHRoZSBzdGFuZGFyZCBUZXh0cGF0dGVybiByZWxhdGVkIGFydGljbGUgdGFnIHRo YXQgdXNlcyB0aGUgdW5saW1pdGVkIGNhdGVnb3J5IHRhYmxlcyBpbnN0ZWFkIG9mIHRoZSBz dGFuZGFyZCBUZXh0cGF0dGVybiBjYXRlZ29yeSAxIGFuZCAyIGZpZWxkcy48L3RkPgoJCTwv dHI+CgkJPHRyPgoJCQk8dGggc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1z cGFjZTogbm93cmFwOyI+YXR0cmlidXRlIG5hbWU8L3RoPgoJCQk8dGggc3R5bGU9InZlcnRp Y2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTogbm93cmFwOyI+ZGVzY3JpcHRpb248L3Ro PgoJCQk8dGggc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTogbm93 cmFwOyI+ZGVmYXVsdCB2YWx1ZTwvdGg+CgkJCTx0aCBzdHlsZT0idmVydGljYWwtYWxpZ246 bWlkZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7Ij5leGFtcGxlIHVzYWdlPC90aD4KCQk8L3Ry PgoJCTx0cj4KCQkJPHRkPnNlY3Rpb248L3RkPgoJCQk8dGQ+QWNjZXB0cyBhIGNvbW1hIHNl cGFyYXRlZCBsaXN0IG9mIHNlY3Rpb25zIHRoYXQgcG9zdHMgYXJlIGxpc3RlZCBmcm9tLiAg Tk8gc3BhY2VzIGFmdGVyIGNvbW1hcy4KV2lsZGNhcmRzIGFuZCBuZWdhdGl2ZXMgY2FuIGFs c28gYmUgdXNlZCB3aGVuIHNwZWNpZnlpbmcgc2VjdGlvbnMuIEZvciBpbnN0YW5jZSwgc2Vj dGlvbj0mIzgyMjE7KiYjODIyMTsgKGFsbCBzZWN0aW9ucywgcmVnYXJkbGVzcyBvZiBob3cg bWFueSksIHNlY3Rpb249JiM4MjIxOyFwaG90b3Msd3JpdGluZyx0aG91Z2h0cyYjODIyMTsg KHdyaXRpbmcgPHNwYW4gY2xhc3M9ImNhcHMiPkFORDwvc3Bhbj4gdGhvdWdodHMgPHNwYW4g Y2xhc3M9ImNhcHMiPkFORDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImNhcHMiPk5PVDwvc3Bhbj4g cGhvdG9zKSwgb3IganVzdCBzZWN0aW9uPSYjODIyMTshcGhvdG9zJiM4MjIxOyAoYWxsIHNl Y3Rpb25zIGV4Y2VwdCBwaG90b3MpLjwvdGQ+CgkJCTx0ZD5hcnRpY2xlPC90ZD4KCQkJPHRk PnNlY3Rpb249JiM4MjIwO3NlY3Rpb25PbmUsc2VjdGlvblR3byYjODIyMTs8L3RkPgoJCTwv dHI+CgkJPHRyPgoJCQk8dGQ+Zm9ybTwvdGQ+CgkJCTx0ZD5UaGUgYXJ0aWNsZSBmb3JtIHVz ZWQgaW4gdGhlIGFydGljbGUgbGlzdC48L3RkPgoJCQk8dGQ+ZGVmYXVsdDwvdGQ+CgkJCTx0 ZD5mb3JtPSYjODIyMDtteWZvcm0mIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRk PmxpbWl0PC90ZD4KCQkJPHRkPlRoZSBtYXhpbXVtIG51bWJlciBvZiBhcnRpY2xlcyByZXR1 cm5lZC48L3RkPgoJCQk8dGQ+OTk5PC90ZD4KCQkJPHRkPmxpbWl0PSYjODIyMDs1JiM4MjIx OzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5vZmZzZXQ8L3RkPgoJCQk8dGQ+RXhjbHVk ZXMgeCBudW1iZXIgb2YgYXJ0aWNsZXMgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcnRp Y2xlIGxpc3RpbmcuPC90ZD4KCQkJPHRkPjA8L3RkPgoJCQk8dGQ+b2Zmc2V0PSYjODIyMDsx JiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD50aW1lPC90ZD4KCQkJPHRkPkFj Y2VwdHMgb25lIG9mIDMgb3B0aW9ucyAmIzgyMjA7cGFzdCYjODIyMTssICYjODIyMDtmdXR1 cmUmIzgyMjE7IG9yICYjODIyMDthbnkmIzgyMjE7LiAgQnkgZGVmYXVsdCAocGFzdCkgd2ls bCBkaXNwbGF5IGFydGljbGVzIHdpdGggYSBwb3N0ZWQgZGF0ZSBiZWZvcmUgdGhlIGN1cnJl bnQgZGF0ZS90aW1lLgpTZWxlY3RpbmcgPHNwYW4gY2xhc3M9ImNhcHMiPkZVVFVSRTwvc3Bh bj4gd2lsbCBkaXNwbGF5IGFydGljbGVzIHdpdGggYSBwb3N0ZWQgZGF0ZSBhZnRlciB0aGUg Y3VycmVudCBkYXRlL3RpbWUuICBTZWxlY3RpbmcgPHNwYW4gY2xhc3M9ImNhcHMiPkFMTDwv c3Bhbj4gd2lsbCBkaXNwbGF5IGFsbCBhcnRpY2xlcyByZWdhcmRsZXNzIG9mIHBvc3RlZCBk YXRlLjwvdGQ+CgkJCTx0ZD5wYXN0PC90ZD4KCQkJPHRkPnRpbWU9JiM4MjIwO2FueSYjODIy MTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+c29ydGRpcjwvdGQ+CgkJCTx0ZD5UaGUg ZGlyZWN0aW9uIHRoZSBjYXRlZ29yeSBuYW1lcyBhcmUgc29ydGVkIGluLiAgVmFsaWQgY2hv aWNlcyBpbmNsdWRlICYjODIyMDthc2MmIzgyMjE7IGFuZCAmIzgyMjA7ZGVzYyYjODIyMTsu PC90ZD4KCQkJPHRkPmFzYzwvdGQ+CgkJCTx0ZD5zb3J0ZGlyPSYjODIyMDtkZXNjJiM4MjIx OzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5zb3J0Ynk8L3RkPgoJCQk8dGQ+VGhlIGZp ZWxkIHRoZSBhcnRpY2xlcyBhcmUgc29ydGVkIGJ5LiAgVmFsaWQgY2hvaWNlcyBpbmNsdWRl IGFueSBmaWVsZCBvbiB0aGUgdGV4dHBhdHRlcm4gdGFibGUgc3VjaCBhcyAmIzgyMjA7SUQm IzgyMjE7IG9yICYjODIyMDt0aXRsZSYjODIyMTsuPC90ZD4KCQkJPHRkPnVQb3N0ZWQ8L3Rk PgoJCQk8dGQ+c29ydGJ5PSYjODIyMDt0aXRsZSYjODIyMTs8L3RkPgoJCTwvdHI+Cgk8L3Rh YmxlPgoKCTx0YWJsZSBzdHlsZT0iY29sb3I6IzMzMztmb250Om5vcm1hbCAxZW0gdmVyZGFu YTt3aWR0aDogOTAlO3BhZGRpbmc6IDAgMCAyMHB4O21hcmdpbjogMCBhdXRvIDIwcHg7Ym9y ZGVyLWJvdHRvbToxcHggc29saWQgIzY2NjsiIGlkPSJsaXN0Ij4KCQk8dHI+CgkJCTx0ZCBz dHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO2ZvbnQ6bm9ybWFsIGJvbGQgMS40ZW0gZ2Vv cmdpYTt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6IzUwMDsiIGlkPSJyc3Nfc2N0X3Blcm1saW5r IiBjb2xzcGFuPSI0Ij5yc3Nfc2N0X3Blcm1saW5rPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJ PHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Zm9udDpub3JtYWwgMS4xZW0gdmVy ZGFuYTt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6IzAzNjsiIGNvbHNwYW49IjQiPkJ1aWxkIGFy dGljbGUgcGVybWxpbmtzIGluIC9zZWN0aW9uL2NhdGVnb3J5L3RpdGxlIGZvcm1hdC4gIFVz ZSBhcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgPGNvZGU+JiM2MDt0eHA6cGVybWxpbmsvJiM2 Mjs8L2NvZGU+IHRhZy48YnIvPkZvciBleGFtcGxlOiA8Y29kZT4mIzYwO3R4cDpyc3Nfc2N0 X3Blcm1saW5rJiM2MjsmIzYwO3R4cDp0aXRsZS8mIzYyOyYjNjA7L3R4cDpyc3Nfc2N0X3Bl cm1saW5rJiM2Mjs8L2NvZGU+PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRoIHN0eWxlPSJ2 ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6IG5vd3JhcDsiPmF0dHJpYnV0ZSBu YW1lPC90aD4KCQkJPHRoIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3Bh Y2U6IG5vd3JhcDsiPmRlc2NyaXB0aW9uPC90aD4KCQkJPHRoIHN0eWxlPSJ2ZXJ0aWNhbC1h bGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6IG5vd3JhcDsiPmRlZmF1bHQgdmFsdWU8L3RoPgoJ CQk8dGggc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTogbm93cmFw OyI+ZXhhbXBsZSB1c2FnZTwvdGg+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5uYW1lPC90ZD4K CQkJPHRkPlRoZSBjYXRlZ29yeSBuYW1lIHRvIGNvdW50LjwvdGQ+CgkJCTx0ZD4mbmJzcDs8 L3RkPgoJCQk8dGQ+Y2F0ZWdvcnk9JiM4MjIwO215Y2F0ZWdvcnkmIzgyMjE7PC90ZD4KCQk8 L3RyPgoJPC90YWJsZT4KCgk8dGFibGUgc3R5bGU9ImNvbG9yOiMzMzM7Zm9udDpub3JtYWwg MWVtIHZlcmRhbmE7d2lkdGg6IDkwJTtwYWRkaW5nOiAwIDAgMjBweDttYXJnaW46IDAgYXV0 byAyMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM2NjY7IiBpZD0ibGlzdCI+CgkJPHRy PgoJCQk8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTtmb250Om5vcm1hbCBib2xk IDEuNGVtIGdlb3JnaWE7dGV4dC1hbGlnbjpsZWZ0O2NvbG9yOiM1MDA7IiBpZD0icnNzX3Vu bGltaXRlZF9jYXRlZ29yeV9jb3VudCIgY29sc3Bhbj0iNCI+cnNzX3VubGltaXRlZF9jYXRl Z29yeV9jb3VudDwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZCBzdHlsZT0idmVydGljYWwt YWxpZ246bWlkZGxlO2ZvbnQ6bm9ybWFsIDEuMWVtIHZlcmRhbmE7dGV4dC1hbGlnbjpsZWZ0 O2NvbG9yOiMwMzY7IiBjb2xzcGFuPSI0Ij5EaXNwbGF5cyB0aGUgbnVtYmVyIG9mIGFydGlj bGVzIGFzc2lnbmVkIHRvIGEgZ2l2ZW4gY2F0ZWdvcnkuPC90ZD4KCQk8L3RyPgoJCTx0cj4K CQkJPHRoIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6IG5vd3Jh cDsiPmF0dHJpYnV0ZSBuYW1lPC90aD4KCQkJPHRoIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjpt aWRkbGU7d2hpdGUtc3BhY2U6IG5vd3JhcDsiPmRlc2NyaXB0aW9uPC90aD4KCQkJPHRoIHN0 eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6IG5vd3JhcDsiPmRlZmF1 bHQgdmFsdWU8L3RoPgoJCQk8dGggc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0 ZS1zcGFjZTogbm93cmFwOyI+ZXhhbXBsZSB1c2FnZTwvdGg+CgkJPC90cj4KCQk8dHI+CgkJ CTx0ZD5zZWN0aW9uPC90ZD4KCQkJPHRkPkFjY2VwdHMgYSBjb21tYSBzZXBhcmF0ZWQgbGlz dCBvZiBzZWN0aW9ucyB0aGF0IHBvc3RzIGFyZSBsaXN0ZWQgZnJvbS4gIE5PIHNwYWNlcyBh ZnRlciBjb21tYXMuCldpbGRjYXJkcyBhbmQgbmVnYXRpdmVzIGNhbiBhbHNvIGJlIHVzZWQg d2hlbiBzcGVjaWZ5aW5nIHNlY3Rpb25zLiBGb3IgaW5zdGFuY2UsIHNlY3Rpb249JiM4MjIx OyomIzgyMjE7IChhbGwgc2VjdGlvbnMsIHJlZ2FyZGxlc3Mgb2YgaG93IG1hbnkpLCBzZWN0 aW9uPSYjODIyMTshcGhvdG9zLHdyaXRpbmcsdGhvdWdodHMmIzgyMjE7ICh3cml0aW5nIDxz cGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3NwYW4+IHRob3VnaHRzIDxzcGFuIGNsYXNzPSJjYXBz Ij5BTkQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJjYXBzIj5OT1Q8L3NwYW4+IHBob3RvcyksIG9y IGp1c3Qgc2VjdGlvbj0mIzgyMjE7IXBob3RvcyYjODIyMTsgKGFsbCBzZWN0aW9ucyBleGNl cHQgcGhvdG9zKS48L3RkPgoJCQk8dGQ+YXJ0aWNsZTwvdGQ+CgkJCTx0ZD5zZWN0aW9uPSYj ODIyMDtzZWN0aW9uT25lLHNlY3Rpb25Ud28mIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4K CQkJPHRkPnRpbWU8L3RkPgoJCQk8dGQ+QWNjZXB0cyBvbmUgb2YgMyBvcHRpb25zICYjODIy MDtwYXN0JiM4MjIxOywgJiM4MjIwO2Z1dHVyZSYjODIyMTsgb3IgJiM4MjIwO2FueSYjODIy MTsuICBCeSBkZWZhdWx0IChwYXN0KSB3aWxsIGRpc3BsYXkgYXJ0aWNsZXMgd2l0aCBhIHBv c3RlZCBkYXRlIGJlZm9yZSB0aGUgY3VycmVudCBkYXRlL3RpbWUuClNlbGVjdGluZyA8c3Bh biBjbGFzcz0iY2FwcyI+RlVUVVJFPC9zcGFuPiB3aWxsIGRpc3BsYXkgYXJ0aWNsZXMgd2l0 aCBhIHBvc3RlZCBkYXRlIGFmdGVyIHRoZSBjdXJyZW50IGRhdGUvdGltZS4gIFNlbGVjdGlu ZyA8c3BhbiBjbGFzcz0iY2FwcyI+QUxMPC9zcGFuPiB3aWxsIGRpc3BsYXkgYWxsIGFydGlj bGVzIHJlZ2FyZGxlc3Mgb2YgcG9zdGVkIGRhdGUuPC90ZD4KCQkJPHRkPnBhc3Q8L3RkPgoJ CQk8dGQ+dGltZT0mIzgyMjA7YW55JiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0 ZD5uYW1lPC90ZD4KCQkJPHRkPlRoZSBjYXRlZ29yeSBuYW1lIHRvIGNvdW50LjwvdGQ+CgkJ CTx0ZD4mbmJzcDs8L3RkPgoJCQk8dGQ+bmFtZT0mIzgyMjA7bXljYXRlZ29yeSYjODIyMTs8 L3RkPgoJCTwvdHI+Cgk8L3RhYmxlPgoKCTx0YWJsZSBzdHlsZT0iY29sb3I6IzMzMztmb250 Om5vcm1hbCAxZW0gdmVyZGFuYTt3aWR0aDogOTAlO3BhZGRpbmc6IDAgMCAyMHB4O21hcmdp bjogMCBhdXRvIDIwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzY2NjsiIGlkPSJsaXN0 Ij4KCQk8dHI+CgkJCTx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO2ZvbnQ6bm9y bWFsIGJvbGQgMS40ZW0gZ2VvcmdpYTt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6IzUwMDsiIGlk PSJyc3NfaWZfYXJ0aWNsZV91bmxpbWl0ZWRfY2F0ZWdvcnkiIGNvbHNwYW49IjQiPnJzc19p Zl9hcnRpY2xlX3VubGltaXRlZF9jYXRlZ29yeTwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0 ZCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO2ZvbnQ6bm9ybWFsIDEuMWVtIHZlcmRh bmE7dGV4dC1hbGlnbjpsZWZ0O2NvbG9yOiMwMzY7IiBjb2xzcGFuPSI0Ij5Db25kaXRpb25h bCB0YWcgdGhhdCB0ZWxscyBpZiBhIHBhcnRpY3VsYXIgY2F0ZWdvcnkgaXMgYXNzaWduZWQg dG8gYW4gYXJ0aWNsZS4gIFRoaXMgaXMgYSByZXBsYWNlbWVudCBmb3IgdGhlIHN0YW5kYXJk IFRleHRwYXR0ZXJuIGlmIGFydGljbGUgY2F0ZWdvcnkgdGFnLjwvdGQ+CgkJPC90cj4KCQk8 dHI+CgkJCTx0aCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOiBu b3dyYXA7Ij5hdHRyaWJ1dGUgbmFtZTwvdGg+CgkJCTx0aCBzdHlsZT0idmVydGljYWwtYWxp Z246bWlkZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7Ij5kZXNjcmlwdGlvbjwvdGg+CgkJCTx0 aCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7Ij5k ZWZhdWx0IHZhbHVlPC90aD4KCQkJPHRoIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7 d2hpdGUtc3BhY2U6IG5vd3JhcDsiPmV4YW1wbGUgdXNhZ2U8L3RoPgoJCTwvdHI+CgkJPHRy PgoJCQk8dGQ+bmFtZTwvdGQ+CgkJCTx0ZD5UaGUgY2F0ZWdvcnkgbmFtZSB0byBjaGVjay48 L3RkPgoJCQk8dGQ+Jm5ic3A7PC90ZD4KCQkJPHRkPm5hbWU9JiM4MjIwO215Y2F0ZWdvcnkm IzgyMjE7PC90ZD4KCQk8L3RyPgoJPC90YWJsZT4KCgk8L2Rpdj4iO3M6MzoibWQ1IjtzOjMy OiIxZWY2NDIyYzZlMzllODM5ZjZkM2VkMzAxMTBmMGRjZiI7fQ==