# Name: rss_unlimited_categories v0.7.4p2 # Type: Admin/Client side plugin # Enable unlimited categories (tags) per article. (patch from http://textpattern.org.ua) # 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 L3d3dy53aWxzaGlyZW9uZS5jb20vIjtzOjc6InZlcnNpb24iO3M6NzoiMC43LjRwMiI7czox MToiZGVzY3JpcHRpb24iO3M6ODY6IkVuYWJsZSB1bmxpbWl0ZWQgY2F0ZWdvcmllcyAodGFn cykgcGVyIGFydGljbGUuIChwYXRjaCBmcm9tIGh0dHA6Ly90ZXh0cGF0dGVybi5vcmcudWEp IjtzOjQ6ImNvZGUiO3M6MjY4MjA6Ii8vIHJzc191bmxpbWl0ZWRfY2F0ZWdvcmllcw0KLy8g Um9iIFNhYmxlDQovLyBodHRwOi8vd3d3LndpbHNoaXJlb25lLmNvbQ0KLy8gVmVyc2lvbiAw LjEgLSAwMS8yMS8yMDA2DQovLyBWZXJzaW9uIDAuMiAtIDAzLzI4LzIwMDYNCi8vIFZlcnNp b24gMC4zIC0gMDMvMzAvMjAwNg0KLy8gVmVyc2lvbiAwLjQgLSAwOC8wOS8yMDA2DQovLyBW ZXJzaW9uIDAuNSAtIDA4LzE4LzIwMDYNCi8vIFZlcnNpb24gMC42IC0gMTAvMTgvMjAwNg0K Ly8gVmVyc2lvbiAwLjcgLSAxMi8yNy8yMDA2DQovLyBWZXJzaW9uIDAuNy4xIC0gMTIvMzEv MjAwNg0KLy8gVmVyc2lvbiAwLjcuMiAtIDEvMjEvMjAwNw0KLy8gVmVyc2lvbiAwLjcuMyAt IDQvMTEvMjAwNw0KLy8gVmVyc2lvbiAwLjcuNCAtIDQvMTgvMjAwNw0KLy8gVGhhbmtzIHRv IGZvcnVtIHVzZXJzIFphbnphLCBBcHJpbDE5IGFuZCBiaXQgZm9yIGNvbnRyaWJ1dGluZyBj b2RlIHRvIHRoaXMgcGx1Z2luDQoNCi8vIDAuNy40cDEgKHBhdGNoIGZyb20gaHR0cDovL3Rl eHRwYXR0ZXJuLm9yZy51YS8pDQovLyBmaXggdW5zYWZlIHZhcmlhYmxlcyBpbiByc3NfdW5s aW1pdGVkX2NhdGVnb3JpZXNfYXJ0aWNsZV9saXN0DQovLyBmaXggYWRtaW4gcHJpdg0KDQov LyAwLjcuNHAyIChwYXRjaCBmcm9tIGh0dHA6Ly90ZXh0cGF0dGVybi5vcmcudWEvKQ0KLy8g YWRkIG9wdGlvbiAiUGFyZW50IGZvciBkaXNwbGF5IiAoaW4gYWRtaW4gc2lkZSkNCg0KDQoN Cg0KaWYgKEB0eHBpbnRlcmZhY2UgPT0gJ2FkbWluJykgew0KDQogICRxID0gIlNIT1cgVEFC TEVTIExJS0UgJyIuUEZYLiJ0ZXh0cGF0dGVybl9jYXRlZ29yeSciOw0KICAkdGNoZWNrID0g Z2V0Um93cygkcSk7DQogIGlmICghJHRjaGVjaykgew0KICAgICRxYyA9ICJDUkVBVEUgVEFC TEUgYCIuUEZYLiJ0ZXh0cGF0dGVybl9jYXRlZ29yeWAgKGBhcnRpY2xlX2lkYCBpbnQoMTEp IE5PVCBOVUxMIGRlZmF1bHQgJzAnLCBgY2F0ZWdvcnlfaWRgIGludCg2KSBOT1QgTlVMTCBk ZWZhdWx0ICcwJywgUFJJTUFSWSBLRVkgIChgYXJ0aWNsZV9pZGAsYGNhdGVnb3J5X2lkYCkp IFRZUEU9TXlJU0FNOyAiOw0KICAgIHNhZmVfcXVlcnkoJHFjKTsNCiAgfQ0KDQogIHJlZ2lz dGVyX2NhbGxiYWNrKCdyc3NfYWRtaW5fY2F0bGlzdF9zYXZlJywgJ2FydGljbGUnLCAncG9z dCcpOw0KICByZWdpc3Rlcl9jYWxsYmFjaygncnNzX2FkbWluX2NhdGxpc3Rfc2F2ZScsICdh cnRpY2xlJywgJ2VkaXQnKTsNCiAgcmVnaXN0ZXJfY2FsbGJhY2soJ3Jzc19hZG1pbl9jYXRs aXN0JywgJ2FydGljbGUnKTsNCg0KICByZWdpc3Rlcl9jYWxsYmFjaygncnNzX2FkbWluX2Nh dGxpc3RfZGVsZXRlJywgJ2xpc3QnLCAnbGlzdF9tdWx0aV9lZGl0Jyk7DQovLyAgcmVnaXN0 ZXJfY2FsbGJhY2soJ3Jzc19hZG1pbl9hcnRpY2xlbGlzdCcsICdsaXN0Jyk7DQoNCglhZGRf cHJpdnMoJ3Jzc191bmxpbWl0ZWRfYWRtaW5fdGFiJywgJzEsMicpOw0KCXJlZ2lzdGVyX3Rh YigiZXh0ZW5zaW9ucyIsICJyc3NfdW5saW1pdGVkX2FkbWluX3RhYiIsICJVbmxpbSBDYXRz Iik7DQoJcmVnaXN0ZXJfY2FsbGJhY2soInJzc191bmxpbWl0ZWRfYWRtaW5fdGFiIiwgInJz c191bmxpbWl0ZWRfYWRtaW5fdGFiIik7DQoNCg0KICBpZiAoZ3BzKCdldmVudCcpID09ICJh cnRpY2xlIiBhbmQgZ3BzKCdzdGVwJykgPT0gInNhdmUiKSB7DQoNCiAgICAgIHNhZmVfZGVs ZXRlKCJ0ZXh0cGF0dGVybl9jYXRlZ29yeSIsImFydGljbGVfaWQ9JElEIik7DQogICAgICBm b3JlYWNoKGdwcygnQ2F0cycpIGFzICR2YWwgKXsNCiAgICAgICAgc2FmZV9pbnNlcnQoInRl eHRwYXR0ZXJuX2NhdGVnb3J5IiwNCiAgICAgICAgICAiY2F0ZWdvcnlfaWQgPSAnJHZhbCcs DQogICAgICAgICAgYXJ0aWNsZV9pZD0nJElEJyINCiAgICAgICAgKTsNCiAgICAgIH0NCg0K ICB9DQp9DQoNCnJlZ2lzdGVyX2NhbGxiYWNrKCdyc3NfbXVsdGlfdXJsJywncHJldGV4dCcp Ow0KDQpmdW5jdGlvbiByc3NfbXVsdGlfdXJsKCkgew0KICBnbG9iYWwgJGF0dGFjaF90aXRs ZXNfdG9fcGVybWFsaW5rcywkcGVybWxpbmtfbW9kZSwkcHJldGV4dDsNCg0KICAvLyBzZXQg bWVzc3kgdmFyaWFibGVzDQogICRvdXQgPSAgbWFrZU91dCgnaWQnLCdzJywnYycsJ3EnLCdw ZycsJ3AnLCdtb250aCcsJ2F1dGhvcicpOw0KDQogIGlmICghJG91dFsnaWQnXSAmJiAhJG91 dFsncyddICYmICEodHhwaW50ZXJmYWNlPT0nY3NzJykpIHsNCg0KICAgICRzdWJwYXRoID0g cHJlZ19xdW90ZShwcmVnX3JlcGxhY2UoIi9odHRwOlwvXC8uKihcLy4qKS9VaSIsIiQxIixo dSksIi8iKTsNCiAgICAkcmVxID0gcHJlZ19yZXBsYWNlKCIvXiRzdWJwYXRoL2kiLCIvIixz ZXJ2ZXJTZXQoJ1JFUVVFU1RfVVJJJykpOw0KICAgIGV4dHJhY3QoY2hvcFVybCgkcmVxKSk7 DQoNCiAgICBpZiAoIWVtcHR5KCR1MSkpIHsNCg0KICAgICAgc3dpdGNoKCR1MSkgew0KDQog ICAgICAgIGNhc2UgJ2F0b20nOg0KICAgICAgICAgIGluY2x1ZGUgdHhwYXRoLicvcHVibGlz aC9hdG9tLnBocCc7IGV4aXQoYXRvbSgpKTsNCg0KICAgICAgICBjYXNlICdyc3MnOg0KICAg ICAgICAgIGluY2x1ZGUgdHhwYXRoLicvcHVibGlzaC9yc3MucGhwJzsgZXhpdChyc3MoKSk7 DQoNCiAgICAgICAgZGVmYXVsdDoNCg0KCQkJCQkgaWYgKCRwZXJtbGlua19tb2RlID09ICJz ZWN0aW9uX2lkX3RpdGxlIiB8fCAkcGVybWxpbmtfbW9kZSA9ICJzZWN0aW9uX3RpdGxlIikg ew0KDQoJCQkJCQlpZiAoZW1wdHkoJHUyKSkgew0KCQkJCQkJCSRvdXRbJ3MnXSA9IChja0V4 KCdzZWN0aW9uJywkdTEpKSA/ICR1MSA6ICcnOw0KCQkJCQkJCSRpc180MDQgPSBlbXB0eSgk b3V0WydzJ10pOw0KCQkJCQkJfQ0KCQkJCQkJZWxzZSB7DQoNCgkJCQkJCQlpZiAoaXNzZXQo JHUyKSkgew0KCQkJCQkJCQkkcnMgPSBsb29rdXBCeVRpdGxlU2VjdGlvbigkdTIsJHUxKTsN CgkJCQkJCQkJJG91dFsnaWQnXSA9IEAkcnNbJ0lEJ107DQoJCQkJCQkJCSRfR0VUWydpZCdd ID0gQCRyc1snSUQnXTsNCgkJCQkJCQkJJG91dFsncyddID0gQCRyc1snU2VjdGlvbiddOw0K CQkJCQkJCQkkX0dFVFsncyddID0gQCRyc1snU2VjdGlvbiddOw0KCQkJCQkJCQkkaXNfNDA0 ID0gZW1wdHkoJG91dFsncyddKTsNCg0KCQkJCQkJCQlpZighJG91dFsncyddICYmIGVtcHR5 KCR1MykpIHsNCgkJCQkJCQkJCSRvdXRbJ2MnXSA9IChja0V4KCdjYXRlZ29yeScsJHUyKSkg PyAkdTIgOiBOVUxMOw0KCQkJCQkJCQkJJF9HRVRbJ2MnXSA9IChja0V4KCdjYXRlZ29yeScs JHUyKSkgPyAkdTIgOk5VTEw7DQoNCgkJCQkJCQkJCWlmICghZW1wdHkoJG91dFsnYyddKSkg ew0KCQkJCQkJCQkJCSRvdXRbJ3MnXSA9IChja0V4KCdzZWN0aW9uJywkdTEpKSA/ICR1MSA6 IE5VTEw7DQoJCQkJCQkJCQkJJF9HRVRbJ3MnXSA9IChja0V4KCdzZWN0aW9uJywkdTEpKSA/ ICR1MSA6IE5VTEw7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQkkaXNfNDA0ID0gZW1wdHkoJG91 dFsnYyddKTsNCgkJCQkJCQkJfQ0KDQoJCQkJCQkJfQ0KDQoJCQkJCQkJaWYgKCEkb3V0Wydp ZCddICYmIGlzc2V0KCR1MykpIHsNCgkJCQkJCQkJJHJzID0gbG9va3VwQnlUaXRsZVNlY3Rp b24oJHUzLCR1MSk7DQoNCgkJCQkJCQkJaWYgKGVtcHR5KCRyc1snSUQnXSkpIHsNCgkJCQkJ CQkJCSRvdXRbJ3BnJ10gPSAkdTM7DQoJCQkJCQkJCQkkaXNfNDA0ID0gKGVtcHR5KCRvdXRb J3MnXSkgb3IgZW1wdHkoJG91dFsnaWQnXSkpOw0KCQkJCQkJCQl9IGVsc2Ugew0KCQkJCQkJ CQkJJG91dFsnaWQnXSA9IEAkcnNbJ0lEJ107DQoJCQkJCQkJCQkkb3V0WydzJ10gPSBAJHJz WydTZWN0aW9uJ107DQoJCQkJCQkJCQkkb3V0WydjJ10gPSAoY2tFeCgnY2F0ZWdvcnknLCR1 MikpID8gJHUyIDogJyc7DQoJCQkJCQkJCQkkX0dFVFsnYyddID0gKGNrRXgoJ2NhdGVnb3J5 JywkdTIpKSA/ICR1MiA6ICcnOw0KCQkJCQkJCQkJJF9HRVRbJ3MnXSA9IEAkcnNbJ1NlY3Rp b24nXTsNCgkJCQkJCQkJCSRfR0VUWydpZCddID0gQCRyc1snSUQnXTsNCgkJCQkJCQkJfQ0K CQkJCQkJCX0NCg0KCQkJCQkJCWlmICghZW1wdHkoJHU0KSkgew0KCQkJCQkJCQkkb3V0Wydz J10gPSAoY2tFeCgnc2VjdGlvbicsJHUxKSkgPyAkdTEgOiAnJzsNCgkJCQkJCQkJJF9HRVRb J3MnXSA9IChja0V4KCdzZWN0aW9uJywkdTEpKSA/ICR1MSA6ICcnOw0KCQkJCQkJCX0NCg0K CQkJCQkJCWlmICgkb3V0WydpZCddIG9yICRvdXRbJ2MnXSkgew0KCQkJCQkJCQkkb3V0Wydz J10gPSAoY2tFeCgnc2VjdGlvbicsJHUxKSkgPyAkdTEgOiAnJzsNCgkJCQkJCQkJJG91dFsn YyddID0gKGNrRXgoJ2NhdGVnb3J5JywkdTIpKSA/ICR1MiA6ICcnOw0KCQkJCQkJCQkkX0dF VFsnYyddID0gKGNrRXgoJ2NhdGVnb3J5JywkdTIpKSA/ICR1MiA6ICcnOw0KCQkJCQkJCQkk X0dFVFsncyddID0gKGNrRXgoJ3NlY3Rpb24nLCR1MSkpID8gJHUxIDogJyc7DQoJCQkJCQkJ fSBlbHNlIHsNCgkJCQkJCQkJJGlzXzQwNCA9IChlbXB0eSgkb3V0WydzJ10pIG9yIGVtcHR5 KCRvdXRbJ2lkJ10pKTsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9DQoJCQl9 DQoJCX0NCgl9DQoNCgkvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KCWZ1bmN0aW9uIHJzc191Y19maWxlZHVuZGVy KCRhdHRzKSB7DQoJCXJldHVybiByc3NfdW5saW1pdGVkX2NhdGVnb3JpZXNfZmlsZWR1bmRl cigkYXR0cyk7DQoJfQ0KDQoJZnVuY3Rpb24gcnNzX3VubGltaXRlZF9jYXRlZ29yaWVzX2Zp bGVkdW5kZXIoJGF0dHMpIHsNCgkJCWdsb2JhbCAkdGhpc2FydGljbGU7DQoJCQlleHRyYWN0 KGxBdHRzKGFycmF5KA0KCQkJCSdzZWN0aW9uJyA9PiAnJywNCgkJCQknbGlua3Rvc2VjdGlv bicgPT4gJ2FydGljbGUnLA0KCQkJCSdzdWZmaXgnID0+ICcnLA0KCQkJCSdwYXJlbnQnID0+ ICcnLA0KCQkJCSd1c2VtZXNzeScgPT4gMCwNCgkJCQknbGlzdHdyYXB0YWcnICA9PiAnJywN CgkJCQknYnJlYWsnICAgID0+ICcsICcsDQoJCQkJJ3dyYXB0YWcnICA9PiAnJywNCgkJCQkn bGFiZWwnICAgID0+ICcnLA0KCQkJCSdsYWJlbHRhZycgPT4gJycsDQoJCQkJJ2NsYXNzJyAg ICAgICA9PiAnJywNCgkJCQknYnJlYWtjbGFzcycgID0+ICcnLA0KCQkJCSdzb3J0ZGlyJyA9 PiAnYXNjJw0KCQkJKSwkYXR0cykpOw0KDQoJCQkkc2VjdGlvbnM9cnNzQnVpbGRTY3RTcWwo JHNlY3Rpb24pOw0KCQkJJHBhcmVudHMgPSByc3NCdWlsZFBhcmVudENhdFNxbCgkcGFyZW50 KTsNCg0KCQkJJGNhdHMgPSBhcnJheSgpOw0KCQkJJHJzYyA9IGdldFJvd3MoIlNFTEVDVCBj LnRpdGxlLCBjLm5hbWUgRlJPTSAiLlBGWC4idGV4dHBhdHRlcm5fY2F0ZWdvcnkgYXMgdGMg TEVGVCBKT0lOICAiLlBGWC4idHhwX2NhdGVnb3J5IGFzIGMgT04gdGMuY2F0ZWdvcnlfaWQg PSBjLmlkIFdIRVJFIGFydGljbGVfaWQ9Ii4kdGhpc2FydGljbGVbJ3RoaXNpZCddLiRwYXJl bnRzLiIgT1JERVIgQlkgYy5uYW1lICIgLiRzb3J0ZGlyKTsNCgkJCWlmICgkcnNjKSB7DQoJ CQkJZm9yZWFjaCAoJHJzYyBhcyAkYT0+JGIpIHsNCgkJCQkJJHBhdGggPSAoJHVzZW1lc3N5 KSA/IGh1LiI/cz0iLiRsaW5rdG9zZWN0aW9uLiImYW1wO2M9Ii5zdHJ0b2xvd2VyKCRiWydu YW1lJ10pIDogaHUuJGxpbmt0b3NlY3Rpb24uc3RydG9sb3dlcigkYlsnbmFtZSddKS4kc3Vm Zml4Ow0KDQoJCQkJCSRjYXRzW109dGFnKGh0bWxzcGVjaWFsY2hhcnMoJGJbJ3RpdGxlJ10p LCdhJywnIGhyZWY9IicuJHBhdGguJyIgdGl0bGU9IicuaHRtbHNwZWNpYWxjaGFycygkYlsn dGl0bGUnXSkuJyInKTsNCgkJCQl9DQoJCQkJcmV0dXJuIGRvVGFnKGRvTGFiZWwoJGxhYmVs LCAkbGFiZWx0YWcpLmRvV3JhcCgkY2F0cywgJHdyYXB0YWcsICRicmVhaywgJGNsYXNzLCAk YnJlYWtjbGFzcyksICRsaXN0d3JhcHRhZyk7DQoJCQl9DQoJCQlyZXR1cm4gJyc7DQoJCX0N Cg0KCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KDQoJZnVuY3Rpb24gcnNzX3VjX2xpc3QoJGF0dHMpIHsNCgkJcmV0 dXJuIHJzc191bmxpbWl0ZWRfY2F0ZWdvcmllc19saXN0KCRhdHRzKTsNCgl9DQoNCglmdW5j dGlvbiByc3NfdW5saW1pdGVkX2NhdGVnb3JpZXNfbGlzdCgkYXR0cykgew0KCQkJZXh0cmFj dChsQXR0cyhhcnJheSgNCgkJCQknbGltaXQnICAgICA9PiA5OTksDQoJCQkJJ29mZnNldCcg ICAgID0+IDAsDQoJCQkJJ3NlY3Rpb24nID0+ICcnLA0KCQkJCSd0aW1lJyA9PiAncGFzdCcs DQoJCQkJJ3BhcmVudCcgPT4gJycsDQoJCQkJJ3Nob3djb3VudCcgPT4gMSwNCgkJCQknc2hv d2FsbGNvdW50JyA9PiAwLA0KCQkJCSdhbGxjb3VudGxhYmVsJyA9PiAnQWxsJywNCgkJCQkn Y291bnRsaW5rZWQnID0+IDEsDQoJCQkJJ2xpbmt0b3NlY3Rpb24nID0+ICdhcnRpY2xlJywN CgkJCQkndXNlbWVzc3knID0+IDAsDQoJCQkJJ2xpc3R3cmFwdGFnJyAgPT4gJycsDQoJCQkJ J2JyZWFrJyAgICA9PiAnbGknLA0KCQkJCSd3cmFwdGFnJyAgPT4gJ3VsJywNCgkJCQknbGFi ZWwnICAgID0+ICcnLA0KCQkJCSdsYWJlbHRhZycgPT4gJycsDQoJCQkJJ2NsYXNzJyAgICAg ICA9PiAnJywNCgkJCQknYnJlYWtjbGFzcycgID0+ICcnLA0KCQkJCSdzb3J0ZGlyJyA9PiAn YXNjJywNCgkJCSksJGF0dHMpKTsNCg0KCQkJJHNlY3Rpb25zPXJzc0J1aWxkU2N0U3FsKCRz ZWN0aW9uKTsNCgkJCSR0aW1lID0gcnNzQnVpbGRUaW1lU3FsKCR0aW1lKTsNCg0KCQkJJHBy bnQgPSAoJHBhcmVudCkgPyAiIFdIRVJFIHBhcmVudCA9ICckcGFyZW50JyAiIDogIiI7DQoJ CQkkbG10ID0gJyBMSU1JVCAnLiRvZmZzZXQuJywnLiRsaW1pdC4nICc7DQoJCQkkcnNjID0g Z2V0Um93cygiU0VMRUNUIGRpc3RpbmN0IGMuaWQsIGMubmFtZSwgYy50aXRsZSBGUk9NICIu UEZYLiJ0ZXh0cGF0dGVybl9jYXRlZ29yeSBhcyB0YyBMRUZUIEpPSU4gICIuUEZYLiJ0eHBf Y2F0ZWdvcnkgYXMgYyBPTiB0Yy5jYXRlZ29yeV9pZCA9IGMuaWQgIi4kcHJudC4iT1JERVIg QlkgYy5uYW1lICIgLiRzb3J0ZGlyLiRsbXQpOw0KDQoJCQlpZiAoJHJzYykgew0KCQkJCSRy b3cgPSBhcnJheSgpOw0KCQkJCSR0b3RhbCA9IDA7DQoJCQkJZm9yZWFjaCAoJHJzYyBhcyAk YT0+JGIpIHsNCgkJCQkJCSRhcT0gIlNFTEVDVCAqLCB1bml4X3RpbWVzdGFtcChQb3N0ZWQp IGFzIHVQb3N0ZWQgRlJPTSAiLlBGWC4idGV4dHBhdHRlcm4gYXMgdCBMRUZUIEpPSU4gIi5Q RlguInRleHRwYXR0ZXJuX2NhdGVnb3J5IGFzIGMgT04gdC5JRCA9IGMuYXJ0aWNsZV9pZCBX SEVSRSAiLiRzZWN0aW9ucy4iIGMuY2F0ZWdvcnlfaWQgPSAnIi4kYlsnaWQnXS4iJyBhbmQg dC5TdGF0dXMgPSA0ICIuJHRpbWUuIiBPUkRFUiBCWSB0LnRpdGxlIjsNCgkJCQkJCSRyc2Eg PSBnZXRSb3dzKCRhcSk7DQoJCQkJCQlpZiAoJHJzYSkgew0KCQkJCQkJCSRwYXRoID0gKCR1 c2VtZXNzeSkgPyBodS4iP3M9Ii4kbGlua3Rvc2VjdGlvbi4iJmFtcDtjPSIuc3RydG9sb3dl cigkYlsnbmFtZSddKSA6IGh1LiRsaW5rdG9zZWN0aW9uLiIvIi5zdHJ0b2xvd2VyKCRiWydu YW1lJ10pOw0KCQkJCQkJCSRjb3VudCA9ICgkc2hvd2NvdW50KSA/ICIgKCIuY291bnQoJHJz YSkuIikgIiA6ICIiOw0KCQkJCQkJCSR0b3RhbCs9Y291bnQoJHJzYSk7DQoJCQkJCQkJJHJv d1tdPSgkY291bnRsaW5rZWQpID8NCgkJCQkJCQkJdGFnKGh0bWxzcGVjaWFsY2hhcnMoJGJb J3RpdGxlJ10uJGNvdW50KSwnYScsJyBocmVmPSInLiRwYXRoLiciIHRpdGxlPSInLmh0bWxz cGVjaWFsY2hhcnMoJGJbJ3RpdGxlJ10pLiciJykgOg0KCQkJCQkJCQl0YWcoaHRtbHNwZWNp YWxjaGFycygkYlsndGl0bGUnXSksJ2EnLCcgaHJlZj0iJyAuICRwYXRoIC4gJyIgdGl0bGU9 IicgLiBodG1sc3BlY2lhbGNoYXJzKCRiWyd0aXRsZSddKSAuICciJykgLiAkY291bnQ7DQoJ CQkJCQl9DQoJCQkJfQ0KCQkJCWlmICgkc2hvd2FsbGNvdW50KSB7DQoJCQkJCSRwYXRoID0g aHUuJGxpbmt0b3NlY3Rpb24uIi8iLiRwYXJlbnQ7DQoJCQkJCSRjb3VudCA9ICgkc2hvd2Nv dW50KSA/ICIgKCIuJHRvdGFsLiIpICIgOiAiIjsNCgkJCQkJJHJvd1tdPSgkY291bnRsaW5r ZWQpID8NCgkJCQkJCXRhZyhodG1sc3BlY2lhbGNoYXJzKCRhbGxjb3VudGxhYmVsLiRjb3Vu dCksJ2EnLCcgaHJlZj0iJy4kcGF0aC4nIiB0aXRsZT0iJy5odG1sc3BlY2lhbGNoYXJzKCRh bGxjb3VudGxhYmVsKS4nIicpIDoNCgkJCQkJCXRhZyhodG1sc3BlY2lhbGNoYXJzKCRhbGxj b3VudGxhYmVsKSwnYScsJyBocmVmPSInIC4gJHBhdGggLiAnIiB0aXRsZT0iJyAuIGh0bWxz cGVjaWFsY2hhcnMoJGFsbGNvdW50bGFiZWwpIC4gJyInKSAuICRjb3VudDsNCgkJCQl9DQoJ CQkJcmV0dXJuIGRvVGFnKGRvTGFiZWwoJGxhYmVsLCAkbGFiZWx0YWcpLmRvV3JhcCgkcm93 LCAkd3JhcHRhZywgJGJyZWFrLCAkY2xhc3MsICRicmVha2NsYXNzKSwgJGxpc3R3cmFwdGFn KS5uOw0KCQkJfQ0KCQkJcmV0dXJuICcnOw0KCQl9DQoNCgkvLy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KCWZ1bmN0 aW9uIHJzc191Y19jb3VudCgkYXR0cykgew0KCQlyZXR1cm4gcnNzX3VubGltaXRlZF9jYXRl Z29yeV9jb3VudCgkYXR0cyk7DQoJfQ0KDQoJZnVuY3Rpb24gcnNzX3VubGltaXRlZF9jYXRl Z29yeV9jb3VudCgkYXR0cykgew0KCQkJZXh0cmFjdChsQXR0cyhhcnJheSgNCgkJCQknc2Vj dGlvbicgPT4gJycsDQoJCQkJJ3RpbWUnID0+ICdwYXN0JywNCgkJCQknbmFtZScgPT4gJycs DQoJCQkpLCRhdHRzKSk7DQoNCgkJCSRzZWN0aW9ucz1yc3NCdWlsZFNjdFNxbCgkc2VjdGlv bik7DQoJCQkkdGltZSA9IHJzc0J1aWxkVGltZVNxbCgkdGltZSk7DQoNCgkJCSRwcm50ID0g KCRuYW1lKSA/ICIgV0hFUkUgYy5uYW1lID0gJyRuYW1lJyAiIDogIiI7DQoJCQkkcnNjID0g Z2V0Um93cygiU0VMRUNUIGRpc3RpbmN0IGMuaWQsIGMubmFtZSwgYy50aXRsZSBGUk9NICIu UEZYLiJ0ZXh0cGF0dGVybl9jYXRlZ29yeSBhcyB0YyBMRUZUIEpPSU4gICIuUEZYLiJ0eHBf Y2F0ZWdvcnkgYXMgYyBPTiB0Yy5jYXRlZ29yeV9pZCA9IGMuaWQgIi4kcHJudC4iT1JERVIg QlkgYy5uYW1lICIpOw0KDQoJCQlpZiAoJHJzYykgew0KCQkJCSRyb3cgPSBhcnJheSgpOw0K CQkJCWZvcmVhY2ggKCRyc2MgYXMgJGE9PiRiKSB7DQoJCQkJCSRhcT0gIlNFTEVDVCAqLCB1 bml4X3RpbWVzdGFtcChQb3N0ZWQpIGFzIHVQb3N0ZWQgRlJPTSAiLlBGWC4idGV4dHBhdHRl cm4gYXMgdCBMRUZUIEpPSU4gIi5QRlguInRleHRwYXR0ZXJuX2NhdGVnb3J5IGFzIGMgT04g dC5JRCA9IGMuYXJ0aWNsZV9pZCBXSEVSRSAiLiRzZWN0aW9ucy4iIGMuY2F0ZWdvcnlfaWQg PSAnIi4kYlsnaWQnXS4iJyBhbmQgdC5TdGF0dXMgPSA0ICIuJHRpbWUuIiBPUkRFUiBCWSB0 LnRpdGxlIjsNCgkJCQkJJHJzYSA9IGdldFJvd3MoJGFxKTsNCgkJCQkJaWYgKCRyc2EpIHsN CgkJCQkJCXJldHVybiBjb3VudCgkcnNhKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCg0KCQkJ cmV0dXJuICcnOw0KCQl9DQoNCgkvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KCWZ1bmN0aW9uIHJzc191Y19jbG91 ZCgkYXR0cykgew0KCQlyZXR1cm4gcnNzX3VubGltaXRlZF9jYXRlZ29yaWVzX2Nsb3VkKCRh dHRzKTsNCgl9DQoNCgkvLyBDbG91ZCBjYWxjdWxhdGlvbnMgZnJvbSBSYW4gQXJvdXNzaScn cyB0eHBfdGFncyBwbHVnaW4NCglmdW5jdGlvbiByc3NfdW5saW1pdGVkX2NhdGVnb3JpZXNf Y2xvdWQoJGF0dHMpIHsNCgkJCWV4dHJhY3QobEF0dHMoYXJyYXkoDQoJCQkJJ3NlY3Rpb24n ID0+ICcnLA0KCQkJCSd0aW1lJyA9PiAncGFzdCcsDQoJCQkJJ2xpbWl0JyAgICAgPT4gOTk5 LA0KCQkJCSdwYXJlbnQnID0+ICcnLA0KCQkJCSdsaW5rdG9zZWN0aW9uJyA9PiAnYXJ0aWNs ZScsDQoJCQkJJ3VzZW1lc3N5JyA9PiAwLA0KCQkJCSdjbG91ZHdyYXB0YWcnICA9PiAnZGl2 JywNCgkJCQknYnJlYWsnICAgID0+ICcsICcsDQoJCQkJJ3dyYXB0YWcnICA9PiAncCcsDQoJ CQkJJ2xhYmVsJyAgICA9PiAnJywNCgkJCQknbGFiZWx0YWcnID0+ICcnLA0KCQkJCSdjbGFz cycgICAgICAgPT4gJycsDQoJCQkJJ2JyZWFrY2xhc3MnICA9PiAnJywNCgkJCQknc29ydGRp cicgPT4gJ2FzYycNCgkJCSksJGF0dHMpKTsNCg0KCQkJJHNlY3Rpb25zPXJzc0J1aWxkU2N0 U3FsKCRzZWN0aW9uKTsNCgkJCSR0aW1lID0gcnNzQnVpbGRUaW1lU3FsKCR0aW1lKTsNCg0K CQkJJHBybnQgPSAoJHBhcmVudCkgPyAiIFdIRVJFIHBhcmVudCA9ICckcGFyZW50JyAiIDog IiI7DQoJCQkkcnNjID0gZ2V0Um93cygiU0VMRUNUIGRpc3RpbmN0IGMuaWQsIGMubmFtZSwg Yy50aXRsZSBGUk9NICIuUEZYLiJ0ZXh0cGF0dGVybl9jYXRlZ29yeSBhcyB0YyBMRUZUIEpP SU4gICIuUEZYLiJ0eHBfY2F0ZWdvcnkgYXMgYyBPTiB0Yy5jYXRlZ29yeV9pZCA9IGMuaWQg Ii4kcHJudC4iT1JERVIgQlkgYy5uYW1lICIgLiRzb3J0ZGlyKTsNCg0KCQkJaWYgKCRyc2Mp IHsNCg0KCQkJCSRyc3QgPSBnZXRSb3dzKCJTRUxFQ1QgKiBGUk9NICIuUEZYLiJ0ZXh0cGF0 dGVybl9jYXRlZ29yeSIpOw0KCQkJCSRhbGwgPSBjb3VudCgkcnN0KTsNCg0KCQkJCSRhbGxj YXRzPSIiOw0KCQkJCWZvcmVhY2goJHJzdCBhcyAkYSkgew0KCQkJCQkkYWxsY2F0cy49ICAk YVsnY2F0ZWdvcnlfaWQnXS4iICI7DQoJCQkJfQ0KCQkJCSRjYXRhcnIgPSBleHBsb2RlKCIg Iiwgc3Vic3RyKCRhbGxjYXRzLCAwLCAtMSkpOw0KCQkJCSRjYXRjb3VudHMgPSBhcnJheV9j b3VudF92YWx1ZXMoJGNhdGFycik7DQoJCQkJaWYgKCRsaW1pdCAhPSA5OTkpIGFyc29ydCgk Y2F0Y291bnRzKTsNCg0KCQkJCSRtYXggPSBtYXgoJGNhdGNvdW50cyk7DQoJCQkJJG1pbiA9 IG1pbigkY2F0Y291bnRzKTsNCgkJCQkkeCA9IDIwMDsgJHkgPSAxMDA7IC8vIDIwMCUsIDEw MCUNCgkJCQkkc3RlcHZhbHVlID0gKCRtYXggLSAkbWluICE9IDApID8gKCRtYXggLSAkbWlu KSAvICgkeCAtICR5KSA6IDE7DQoNCgkJCQkvLyByZWtleSBhcnJheSBieSBudW1iZXIgb2Yg cG9zdHMgcGVyIGNhdGVnb3J5DQoJCQkJJHJlb3JkZXIgPSBhcnJheSgpOw0KCQkJCWZvcmVh Y2ggKCRyc2MgYXMgJGE9PiRiKSB7DQoJCQkJCSRyZW9yZGVyWyRiWydpZCddXSA9ICRiOw0K CQkJCX0NCg0KCQkJCSRpID0gMDsNCgkJCQkkcm93ID0gYXJyYXkoKTsNCgkJCQlmb3JlYWNo ICgkY2F0Y291bnRzIGFzICRhPT4kYikgew0KCQkJCQlpZiAoJGkgPCAkbGltaXQpIHsNCgkJ CQkJCSRhcT0gIlNFTEVDVCAqIEZST00gIi5QRlguInRleHRwYXR0ZXJuIGFzIHQgTEVGVCBK T0lOICIuUEZYLiJ0ZXh0cGF0dGVybl9jYXRlZ29yeSBhcyBjIE9OIHQuSUQgPSBjLmFydGlj bGVfaWQgV0hFUkUgIi4kc2VjdGlvbnMuIiBjLmNhdGVnb3J5X2lkID0gJyIuJHJlb3JkZXJb JGFdWydpZCddLiInIGFuZCB0LlN0YXR1cyA9IDQgIi4kdGltZTsNCgkJCQkJCSRyc2EgPSBn ZXRSb3dzKCRhcSk7DQoJCQkJCQlpZiAoJHJzYSkgew0KCQkJCQkJCSRudW0gPSBjb3VudCgk cnNhKTsNCgkJCQkJCQkkc2l6ZSA9ICgoJG51bSAvICRhbGwpICogMTAwKSArIDEwMDsNCgkJ CQkJCQkkd2VpZ2h0ID0gJHkgKyByb3VuZCgoJG51bS0kbWluKSAvICRzdGVwdmFsdWUpOw0K CQkJCQkJCSRzdHlsZSA9ICgkd2VpZ2h0ID4gJHkpID8gJyBzdHlsZT0iZm9udC1zaXplOicu ICR3ZWlnaHQgLiAnJTsiJyA6ICcnOw0KDQoJCQkJCQkJJHBhdGggPSAoJHVzZW1lc3N5KSA/ IGh1LiI/cz0iLiRsaW5rdG9zZWN0aW9uLiImYW1wO2M9Ii5zdHJ0b2xvd2VyKCRyZW9yZGVy WyRhXVsnbmFtZSddKSA6IGh1LiRsaW5rdG9zZWN0aW9uLiIvIi5zdHJ0b2xvd2VyKCRyZW9y ZGVyWyRhXVsnbmFtZSddKTsNCgkJCQkJCQkkcm93W109dGFnKGh0bWxzcGVjaWFsY2hhcnMo JHJlb3JkZXJbJGFdWyd0aXRsZSddKSwnYScsJyBocmVmPSInLiRwYXRoLiciJy4kc3R5bGUu JyB0aXRsZT0iJy5odG1sc3BlY2lhbGNoYXJzKCRyZW9yZGVyWyRhXVsndGl0bGUnXSkuJyIn KS5uOw0KCQkJCQkJfQ0KCQkJCQkkaSsrOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCXJldHVybiBk b1RhZyhkb0xhYmVsKCRsYWJlbCwgJGxhYmVsdGFnKS5kb1dyYXAoJHJvdywgJHdyYXB0YWcs ICRicmVhaywgJGNsYXNzLCAkYnJlYWtjbGFzcyksICRjbG91ZHdyYXB0YWcpLm47DQoJCQl9 DQoJCX0NCg0KCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoJZnVuY3Rpb24gcnNzX3VjX2FydGljbGVfbGlzdCgk YXR0cykgew0KCQlyZXR1cm4gcnNzX3VubGltaXRlZF9jYXRlZ29yaWVzX2FydGljbGVfbGlz dCgkYXR0cyk7DQoJfQ0KDQoJZnVuY3Rpb24gcnNzX3VubGltaXRlZF9jYXRlZ29yaWVzX2Fy dGljbGVfbGlzdCgkYXR0cykgew0KCQkJZ2xvYmFsICRzLCAkYywgJHBnLCAkcHJlZnMsICR0 aGlzYXJ0aWNsZSwgJGlkLCAkaGFzX2FydGljbGVfdGFnOw0KDQokdGhpc2FydGljbGUyMj0k dGhpc2FydGljbGU7ICRzMjI9JHM7ICRjMjI9JGM7ICRwZzIyPSRwZzsgJHByZWZzMjI9JHBy ZWZzOyAkaWQyMj0kaWQ7ICRoYXNfYXJ0aWNsZV90YWcyMj0kaGFzX2FydGljbGVfdGFnOw0K DQoJCQkkYWN0dWFsX2lkID0gJGlkOw0KCQkJZXh0cmFjdChsQXR0cyhhcnJheSgNCgkJCQkn c2VjdGlvbicgPT4gJHMsDQoJCQkJJ2NhdGVnb3J5JyA9PiAkYywNCgkJCQkndXNlY2hpbGRy ZW4nID0+IDAsDQoJCQkJJ2Zvcm0nID0+ICdkZWZhdWx0JywNCgkJCQknbGltaXQnICAgICA9 PiA5OTksDQoJCQkJJ29mZnNldCcgICAgPT4gMCwNCgkJCQkndGltZScgPT4gJ3Bhc3QnLA0K CQkJCSdzb3J0YnknID0+ICd1UG9zdGVkJywNCgkJCQknc29ydGRpcicgPT4gJ2Rlc2MnLA0K CQkJCSdpZCcgPT4gJycsDQoJCQkJJ2ZpbHRlcicgPT4gMCwNCgkJCQknZmlsdGVyZmllbGQn ID0+ICcnLA0KCQkJCSdmaWx0ZXJuYW1lJyA9PiAnJywNCgkJCSksJGF0dHMpKTsNCg0KCQkk c2VjdGlvbnM9cnNzQnVpbGRTY3RTcWwoJHNlY3Rpb24pOw0KDQoJCSRwYXJlbnQgPSAiIjsN CgkJaWYgKCR1c2VjaGlsZHJlbikgew0KCQkJJHJzID0gc2FmZV9yb3dzKCJuYW1lIiwgInR4 cF9jYXRlZ29yeSIsICJwYXJlbnQ9JyRjYXRlZ29yeScgYW5kIG5hbWUgIT0gJ3Jvb3QnIik7 DQoJCQlpZiAoJHJzKSB7DQoJCQkJJHBhcmVudCA9ICRjYXRlZ29yeTsNCgkJCQkkY2F0ZWdv cnkgPSAiIjsNCgkJCQlmb3JlYWNoICgkcnMgYXMgJHQpIHsNCgkJCQkJJGNhdGVnb3J5Lj0g JHRbJ25hbWUnXS4iLCI7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoNCgkJZm9yZWFjaCAoZXhwbG9k ZSgnLCcsICRjYXRlZ29yeSkgYXMgJGNhdGVnb3J5KSB7DQoJCQlpZiAoJGNhdGVnb3J5KSAk Y2F0c3FsW10gPSAiIGNhdC5uYW1lID0gJyIgLiB1cmxkZWNvZGUoJGNhdGVnb3J5KSAuICIn ICI7DQoJCX0NCgkJJGNhdGVnb3JpZXM9IGlzc2V0KCRjYXRzcWwpID8gJyBBTkQgKCcgLiBq b2luKCcgT1IgJywgJGNhdHNxbCkgLiAnKSAnIDogIiI7DQoNCgkJJHRpbWUgPSByc3NCdWls ZFRpbWVTcWwoJHRpbWUpOw0KDQoJCSRmaWx0ZXJzcWwgPSAiIjsNCgkJaWYgKCRmaWx0ZXIg JiYgJGZpbHRlcmZpZWxkICYmICRmaWx0ZXJuYW1lKSB7DQoNCgkJCSRzdWJwYXRoID0gcHJl Z19xdW90ZShwcmVnX3JlcGxhY2UoIi9odHRwOlwvXC8uKihcLy4qKS9VaSIsIiQxIixodSks Ii8iKTsNCgkJCSRyZXEgPSBwcmVnX3JlcGxhY2UoIi9eJHN1YnBhdGgvaSIsIi8iLHNlcnZl clNldCgnUkVRVUVTVF9VUkknKSk7DQoJCQlleHRyYWN0KGNob3BVcmwoJHJlcSkpOw0KDQoJ CQlpZiAoJHUyID09ICRmaWx0ZXJuYW1lICYmICR1NCkgew0KCQkJCSRxdCA9IChpc19udW1l cmljKCR1NCkpID8gIiIgOiAiJyI7DQoJCQkJc3dpdGNoICgkdTMpIHsNCgkJCQkJY2FzZSAn bHQnOg0KCQkJCQkJJGZpbHRlcm9wID0gIjwiOyBicmVhazsNCgkJCQkJY2FzZSAnZ3QnOg0K CQkJCQkJJGZpbHRlcm9wID0gIiA+ICI7IGJyZWFrOw0KCQkJCQlkZWZhdWx0Og0KCQkJCQkJ JGZpbHRlcm9wID0gIiA9ICI7DQoJCQkJfQ0KCQkJCSRmaWx0ZXJzcWwgPSAiIEFORCAkZmls dGVyZmllbGQgJGZpbHRlcm9wICIuJHF0LiR1NC4kcXQuIiAiOw0KCQkJfQ0KCQl9DQoNCgkJ JGlkcz0iIjsNCgkJaWYgKCRpZCkgew0KCQkJJHNlY3Rpb25zPSIiOw0KCQkJJGNhdGVnb3Jp ZXM9IiI7DQoJCQkkb2Zmc2V0PSIiOw0KCQkJJGxpbWl0PSIiOw0KCQkJJGlkcyA9ICIgYW5k IHQuSUQgPSAnIi5pbnR2YWwoJGlkKS4iJyI7DQoJCX0NCg0KCQkkcSA9ICJTRUxFQ1QgRElT VElOQ1QgdC5JRCBGUk9NICIuUEZYLiJ0ZXh0cGF0dGVybiBhcyB0DQoJCUxFRlQgSk9JTiAi LlBGWC4idGV4dHBhdHRlcm5fY2F0ZWdvcnkgYXMgdGMgT04gdC5JRCA9IHRjLmFydGljbGVf aWQNCgkJTEVGVCBKT0lOICIuUEZYLiJ0eHBfY2F0ZWdvcnkgYXMgY2F0IE9OIGNhdC5pZCA9 IHRjLmNhdGVnb3J5X2lkDQoJCVdIRVJFICIuJHNlY3Rpb25zLiIgU3RhdHVzPTQgIi4kY2F0 ZWdvcmllcy4kaWRzLiRmaWx0ZXJzcWwuJHRpbWU7DQoJCSRyc2MgPSBnZXRSb3dzKCRxKTsN Cg0KCQlpZiAoJHJzYykgew0KCQkJZm9yZWFjaCAoJHJzYyBhcyAkYSkgew0KCQkJCWV4dHJh Y3QoJGEpOw0KCQkJCWlmICgkSUQgIT09ICR0aGlzYXJ0aWNsZVsndGhpc2lkJ10pIHsNCgkJ CQkJJGFydHNxbFtdID0gIiBJRCA9ICciIC4gJElEIC4gIicgIjsNCgkJCQl9DQoJCQl9DQoJ CQkkYXJ0aWNsZXM9IGlzc2V0KCRhcnRzcWwpID8gJyBBTkQgKCcgLiBqb2luKCcgT1IgJywg JGFydHNxbCkgLiAnKSAnIDogIiI7DQoNCgkJCWlmICgkaWQpIHsNCgkJCQkkcTIgPSAiMT0x ICIgLiAkdGltZSAuICRhcnRpY2xlczsNCgkJCQkkcnMgPSBzYWZlX3JvdygiKiwgdW5peF90 aW1lc3RhbXAoUG9zdGVkKSBhcyB1UG9zdGVkIiwgInRleHRwYXR0ZXJuIiwgJHEyKTsNCg0K CQkJCWlmICgkcnMpIHsNCgkJCQkJZXh0cmFjdCgkcnMpOw0KCQkJCQlwb3B1bGF0ZUFydGlj bGVEYXRhKCRycyk7DQoJCQkJCWdsb2JhbCAkdGhpc2FydGljbGU7DQoJCQkJCSR0aGlzYXJ0 aWNsZVsncGFyZW50Y2F0J10gPSAkcGFyZW50Ow0KCQkJCQkkdGhpc2FydGljbGVbJ3RoaXNj YXQnXSA9ICRjYXRlZ29yeTsNCgkJCQl9DQoNCgkJCQkkYXJ0aWNsZSA9IGZldGNoX2Zvcm0o JGZvcm0pOw0KCQkJCSRoYXNfYXJ0aWNsZV90YWcgPSB0cnVlOw0KJHRoaXNhcnRpY2xlPSR0 aGlzYXJ0aWNsZTIyOyAkcz0kczIyOyAkYz0kYzIyOyAkcGc9JHBnMjI7ICRwcmVmcz0kcHJl ZnMyMjsgJGlkPSRpZDIyOyAkaGFzX2FydGljbGVfdGFnPSRoYXNfYXJ0aWNsZV90YWcyMjsN CgkJCQlyZXR1cm4gJGFydGljbGU7DQoJCQl9IGVsc2UgaWYgKCRhcnRpY2xlcykgew0KDQoJ CQkJJHRvdGFsID0gc2FmZV9jb3VudCgndGV4dHBhdHRlcm4nLCIxPTEgIiAuICRhcnRpY2xl cykgLSAkb2Zmc2V0Ow0KCQkJCSRudW1QYWdlcyA9IGNlaWwoJHRvdGFsLyRsaW1pdCk7DQoJ CQkJJHBnID0gKCEkcGcpID8gMSA6ICRwZzsNCgkJCQkkcGdvZmZzZXQgPSAkb2Zmc2V0ICsg KCgkcGcgLSAxKSAqICRsaW1pdCkuJywgJzsNCgkJCQkvLyBzZW5kIHBhZ2luZyBpbmZvIHRv IHR4cDpuZXdlciBhbmQgdHhwOm9sZGVyDQoJCQkJJHBhZ2VvdXRbJ3BnJ10gICAgICAgPSAk cGc7DQoJCQkJJHBhZ2VvdXRbJ251bVBhZ2VzJ10gPSAkbnVtUGFnZXM7DQoJCQkJJHBhZ2Vv dXRbJ3MnXSAgICAgICAgPSAkczsNCgkJCQkkcGFnZW91dFsnYyddICAgICAgICA9ICRjOw0K CQkJCSRwYWdlb3V0Wyd0b3RhbCddICAgID0gJHRvdGFsOw0KDQoJCQkJJEdMT0JBTFNbJ3Ro aXNwYWdlJ10gPSAkcGFnZW91dDsNCgkJCQkkcTIgPSAiMT0xICIgLiAkdGltZSAuICRhcnRp Y2xlcyAuICIgT1JERVIgQlkgIi4kc29ydGJ5LiIgIiAuJHNvcnRkaXIgLiAiIGxpbWl0ICIg LiBkb1NsYXNoKCRwZ29mZnNldC4kbGltaXQpOw0KDQoJCQkJJHJzID0gc2FmZV9yb3dzX3N0 YXJ0KCIqLCB1bml4X3RpbWVzdGFtcChQb3N0ZWQpIGFzIHVQb3N0ZWQiLCAidGV4dHBhdHRl cm4iLCAkcTIpOw0KDQoJCQkJaWYgKCRycykgew0KCQkJCQkkY291bnQgPSAwOw0KCQkJCQkk YXJ0aWNsZXMgPSBhcnJheSgpOw0KCQkJCQl3aGlsZSgkYSA9IG5leHRSb3coJHJzKSkgew0K CQkJCQkJKyskY291bnQ7DQoJCQkJCQkkY29tcGFyaW5nID0gJGFbJ0lEJ107DQoJCQkJCQlw b3B1bGF0ZUFydGljbGVEYXRhKCRhKTsNCgkJCQkJCWdsb2JhbCAkdGhpc2FydGljbGUsICR1 UG9zdGVkLCAkbGltaXQ7DQoJCQkJCQkkdGhpc2FydGljbGVbJ3BhcmVudGNhdCddID0gJHBh cmVudDsNCgkJCQkJCSR0aGlzYXJ0aWNsZVsndGhpc2NhdCddID0gJGNhdGVnb3J5Ow0KCQkJ CQkJJHRoaXNhcnRpY2xlWydpc19maXJzdCddID0gKCRjb3VudCA9PSAxKTsNCgkJCQkJCSR0 aGlzYXJ0aWNsZVsnaXNfbGFzdCddID0gKCRjb3VudCA9PSBudW1Sb3dzKCRycykpOw0KCQkJ CQkJLy8gZGVmaW5lIHRoZSBhcnRpY2xlIGZvcm0NCgkJCQkJCSRhcnRpY2xlID0gKCRwcmVm c1snYWxsb3dfZm9ybV9vdmVycmlkZSddICYmICRhWydvdmVycmlkZV9mb3JtJ10pID8gZmV0 Y2hfZm9ybSgkYVsnb3ZlcnJpZGVfZm9ybSddKSA6IGZldGNoX2Zvcm0oJGZvcm0pOw0KCQkJ CQkJaWYgKCRjb21wYXJpbmcgIT0gJGFjdHVhbF9pZCkgeyRhcnRpY2xlc1tdID0gcGFyc2Uo JGFydGljbGUpO30NCg0KCQkJCQkJLy8gc2VuZGluZyB0aGVzZSB0byBwYWdpbmdfbGluaygp OyBSZXF1aXJlZD8NCgkJCQkJCSR1UG9zdGVkID0gJGFbJ3VQb3N0ZWQnXTsNCgkJCQkJCSRs aW1pdCA9ICRsaW1pdDsNCg0KCQkJCQkJLy91bnNldCgkR0xPQkFMU1sndGhpc2FydGljbGUn XSk7DQoJCQkJCQkvL3Vuc2V0KCRHTE9CQUxTWyd0aGVzZWF0dHMnXSk7Ly9SZXF1aXJlZD8N CgkJCQkJfQ0KCQkJCQkkaGFzX2FydGljbGVfdGFnID0gdHJ1ZTsNCiR0aGlzYXJ0aWNsZT0k dGhpc2FydGljbGUyMjsgJHM9JHMyMjsgJGM9JGMyMjsgJHBnPSRwZzIyOyAkcHJlZnM9JHBy ZWZzMjI7ICRpZD0kaWQyMjsgJGhhc19hcnRpY2xlX3RhZz0kaGFzX2FydGljbGVfdGFnMjI7 DQoJCQkJCXJldHVybiBqb2luKCcnLCRhcnRpY2xlcyk7DQoJCQkJfQ0KCQkJfSAvLyBpZiAk aWQNCgkJfQ0KJHRoaXNhcnRpY2xlPSR0aGlzYXJ0aWNsZTIyOyAkcz0kczIyOyAkYz0kYzIy OyAkcGc9JHBnMjI7ICRwcmVmcz0kcHJlZnMyMjsgJGlkPSRpZDIyOyAkaGFzX2FydGljbGVf dGFnPSRoYXNfYXJ0aWNsZV90YWcyMjsNCgl9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KCWZ1bmN0aW9u IHJzc191Y19yZWxhdGVkKCRhdHRzKSB7DQoJCXJldHVybiByc3NfdW5saW1pdGVkX2NhdGVn b3JpZXNfcmVsYXRlZCgkYXR0cyk7DQoJfQ0KDQoJZnVuY3Rpb24gcnNzX3VubGltaXRlZF9j YXRlZ29yaWVzX3JlbGF0ZWQoJGF0dHMpew0KCQlnbG9iYWwgJGlkLCR0aGlzYXJ0aWNsZSwk czsNCg0KCQlleHRyYWN0KGxBdHRzKGFycmF5KA0KCQkJJ3NlY3Rpb24nID0+ICRzLA0KCQkJ J2Zvcm0nID0+ICdkZWZhdWx0JywNCgkJCSdsaW1pdCcgICAgID0+IDk5OSwNCgkJCSdvZmZz ZXQnICAgID0+IDAsDQoJCQkndGltZScgPT4gJ3Bhc3QnLA0KCQkJJ3NvcnRieScgPT4gJ3VQ b3N0ZWQnLA0KCQkJJ3NvcnRkaXInID0+ICdkZXNjJw0KCQkpLCRhdHRzKSk7DQoNCgkJJGNh dHMgPSBhcnJheSgpOw0KCQkkcnNjID0gZ2V0Um93cygiU0VMRUNUIGMudGl0bGUsIGMubmFt ZSBGUk9NICIuUEZYLiJ0ZXh0cGF0dGVybl9jYXRlZ29yeSBhcyB0Yw0KCQkJTEVGVCBKT0lO ICAiLlBGWC4idHhwX2NhdGVnb3J5IGFzIGMgT04gdGMuY2F0ZWdvcnlfaWQgPSBjLmlkDQoJ CQlXSEVSRSBhcnRpY2xlX2lkPSIuJHRoaXNhcnRpY2xlWyd0aGlzaWQnXSk7DQoNCgkJaWYg KCRyc2MpIHsNCgkJCWZvcmVhY2ggKCRyc2MgYXMgJGEpIHsNCgkJCQlleHRyYWN0KCRhKTsN CgkJCQkkY2F0c1skbmFtZV09JG5hbWU7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gcnNzX3Vu bGltaXRlZF9jYXRlZ29yaWVzX2FydGljbGVfbGlzdCgNCgkJCWFycmF5KA0KCQkJCSdzZWN0 aW9uJz0+JHNlY3Rpb24sDQoJCQkJJ2NhdGVnb3J5Jz0+aW1wbG9kZSgnLCcsICRjYXRzKSwN CgkJCQknZm9ybSc9PiRmb3JtLA0KCQkJCSdsaW1pdCc9PiRsaW1pdCwNCgkJCQknb2Zmc2V0 Jz0+JG9mZnNldCwNCgkJCQkndGltZSc9PiR0aW1lLA0KCQkJCSdzb3J0YnknPT4kc29ydGJ5 LA0KCQkJCSdzb3J0ZGlyJz0+JHNvcnRkaXIpDQoJCQkpOw0KCX0NCg0KDQoJLy8tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQoNCglmdW5jdGlvbiByc3NfaWZfYXJ0aWNsZV91bmxpbWl0ZWRfY2F0ZWdvcnkoJGF0dHMs ICR0aGluZykgew0KCQlnbG9iYWwgJHRoaXNhcnRpY2xlOw0KCQlhc3NlcnRfYXJ0aWNsZSgp Ow0KDQoJCWV4dHJhY3QobEF0dHMoYXJyYXkoDQoJCQknbmFtZScgPT4gJycsDQoJCSksJGF0 dHMpKTsNCg0KCQkkY2F0cyA9IGFycmF5KCk7DQoJCSRyc2MgPSBnZXRSb3dzKCJTRUxFQ1Qg bmFtZSBhcyBjYXRuYW1lIEZST00gIi5QRlguInRleHRwYXR0ZXJuX2NhdGVnb3J5IGFzIHRj DQoJCQlMRUZUIEpPSU4gICIuUEZYLiJ0eHBfY2F0ZWdvcnkgYXMgYyBPTiB0Yy5jYXRlZ29y eV9pZCA9IGMuaWQNCgkJCVdIRVJFIGFydGljbGVfaWQ9Ii4kdGhpc2FydGljbGVbJ3RoaXNp ZCddKTsNCg0KCQlpZiAoJHJzYykgew0KCQkJZm9yZWFjaCAoJHJzYyBhcyAkYSkgew0KCQkJ CSRjYXRzW109JGFbJ2NhdG5hbWUnXTsNCgkJCX0NCgkJfQ0KDQoJCXNvcnQoJGNhdHMpOw0K CQlyZXR1cm4gcGFyc2UoRXZhbEVsc2UoJHRoaW5nLCAoaW5fYXJyYXkoJG5hbWUsICRjYXRz KSkpKTsNCgl9DQoNCgkvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KCWZ1bmN0aW9uIHJzc19zY3RfcGVybWxpbmso JGF0dHMsICR0aGluZykgew0KCQlnbG9iYWwgJHRoaXNhcnRpY2xlLCAkYzsNCg0KCQlleHRy YWN0KGxBdHRzKGFycmF5KA0KCQkJJ2lzcGFyZW50JyA9PiAwLA0KCQkJJ3VzZXBhcmVudCcg PT4gMCwNCgkJCSdmaW5kcGFyZW50JyA9PiAwLA0KCQkJJ2lucGFyZW50cycgPT4gJycsDQoJ CQknY2F0ZWdvcnknID0+ICRjLA0KCQkJJ2lkJyA9PiAnJywNCgkJKSwkYXR0cykpOw0KDQoJ CWlmICgkdXNlcGFyZW50KSB7DQoJCQkkcnMgPSBmZXRjaCgicGFyZW50IiwidHhwX2NhdGVn b3J5IiwibmFtZSIsJGNhdGVnb3J5KTsNCgkJCWlmICgkcnMgJiYgJHJzICE9ICdyb290Jykg ew0KCQkJCSRjYXRlZ29yeSA9ICRyczsNCgkJCX0NCgkJfQ0KDQoJCSR1cmx0aXRsZSA9ICR0 aGlzYXJ0aWNsZVsndXJsX3RpdGxlJ107DQoJCSRzY3QgPSAkdGhpc2FydGljbGVbJ3NlY3Rp b24nXTsNCg0KCQlpZiAoJGlkKSB7DQoJCQkkYXJ0aWNsZSA9IHNhZmVfcm93KA0KCQkJCSIq LElEIGFzIHRoaXNpZCwgdW5peF90aW1lc3RhbXAoUG9zdGVkKSBhcyBwb3N0ZWQiLA0KCQkJ CSJ0ZXh0cGF0dGVybiIsDQoJCQkJJ0lEPScuaW50dmFsKCRpZCkpOw0KCQkJCSR1cmx0aXRs ZSA9ICRhcnRpY2xlWyd1cmxfdGl0bGUnXTsNCgkJCQkkc2N0ID0gJGFydGljbGVbJ1NlY3Rp b24nXTsNCgkJfQ0KDQoJCSRjYXRsaW5rID0gKCRjYXRlZ29yeSkgPyAiJGNhdGVnb3J5LyIg OiAiIjsNCgkJJGNhdGxpbmsgPSAoaXNzZXQoJHRoaXNhcnRpY2xlWyd0aGlzY2F0J10pICYm ICR0aGlzYXJ0aWNsZVsndGhpc2NhdCddICYmICR0aGlzYXJ0aWNsZVsndGhpc2NhdCddICE9 ICRjKSA/ICR0aGlzYXJ0aWNsZVsndGhpc2NhdCddLiIvIiA6ICRjYXRsaW5rOw0KCQkkY2F0 bGluayA9ICgkaXNwYXJlbnQpID8gJHRoaXNhcnRpY2xlWydwYXJlbnRjYXQnXS4iLyIgOiAk Y2F0bGluazsNCg0KCQlpZiAoJGZpbmRwYXJlbnQpIHsNCgkJCSRyc2MgPSBzYWZlX3Jvd3Mo ImNhdGVnb3J5X2lkIiwgInRleHRwYXR0ZXJuX2NhdGVnb3J5IiwgImFydGljbGVfaWQ9Ii4k dGhpc2FydGljbGVbJ3RoaXNpZCddKTsNCg0KCQkJaWYgKCRyc2MpIHsNCgkJCQkkdGhlY2F0 cyA9IGFycmF5KCk7DQoJCQkJZm9yZWFjaCAoJHJzYyBhcyAkY2F0KSB7DQoJCQkJCSR0aGVj YXRzW10gPSAkY2F0WydjYXRlZ29yeV9pZCddOw0KCQkJCX0NCg0KCQkJCSRycyA9IHNhZmVf cm93cygicGFyZW50IiwgInR4cF9jYXRlZ29yeSIsICJpZCBpbiAoIi5pbXBsb2RlKCIsIiwk dGhlY2F0cykuIikiKTsNCgkJCQlpZiAoJHJzKSB7DQoJCQkJCWZvcmVhY2ggKCRycyBhcyAk dCkgew0KCQkJCQkJJGxpbmtjYXQgPSAkdFsncGFyZW50J107DQoJCQkJCQlpZiAoaW5fYXJy YXkoJGxpbmtjYXQsIGV4cGxvZGUoIiwiLCRpbnBhcmVudHMpKSkgew0KCQkJCQkJICAgJGNh dGxpbmsgPSAkbGlua2NhdC4iLyI7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJ CX0NCg0KCQkkdXJsID0gaHUuJHNjdC4iLyRjYXRsaW5rIi4kdXJsdGl0bGU7DQoJCXJldHVy biB0YWcocGFyc2UoJHRoaW5nKSwnYScsJyBocmVmPSInLiR1cmwuJyIgdGl0bGU9IicuZ1R4 dCgncGVybWFuZW50X2xpbmsnKS4nIicpOw0KCX0NCg0KCS8vLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoJZnVuY3Rp b24gcnNzQnVpbGRTY3RTcWwoJHNlY3Rpb24pIHsNCgkJaWYgKCRzZWN0aW9uKSB7DQoJCQlm b3JlYWNoIChleHBsb2RlKCcsJywgJHNlY3Rpb24pIGFzICRzZWN0aW9uKSB7DQoJCQkJc3dp dGNoIChzdWJzdHIodHJpbSgkc2VjdGlvbiksIDAsIDEpKSB7DQoJCQkJCWNhc2UgJyonOg0K CQkJCQkJJHNjdHNxbFtdID0gIiAoc2VjdGlvbiBsaWtlICclJykgIjsNCgkJCQkJYnJlYWs7 DQoJCQkJCWNhc2UgJyEnOg0KCQkJCQkJJG5vdHNjdHNxbFtdID0gIiBBTkQgKHNlY3Rpb24g IT0gJyIgLiBkb1NsYXNoKHN0cl9yZXBsYWNlKCchJywnJywkc2VjdGlvbikpIC4gIicpICI7 DQoJCQkJCWJyZWFrOw0KCQkJCQlkZWZhdWx0Og0KCQkJCQkJJHNjdHNxbFtdID0gIiAoc2Vj dGlvbiA9ICciIC4gZG9TbGFzaCgkc2VjdGlvbikgLiAiJykgIjsNCgkJCQkJYnJlYWs7DQoJ CQkJfQ0KCQkJfQ0KDQoJCQkkc2VjdGlvbnMgPSAnIDE9MSBBTkQgKCcgLiBqb2luKCcgT1Ig JywgJHNjdHNxbCkgLiBAam9pbignIEFORCAnLCAkbm90c2N0c3FsKSAuICcpIEFORCAnOw0K CQl9IGVsc2Ugew0KCQkJJHNlY3Rpb25zPScnOw0KCQl9DQoJCXJldHVybiAkc2VjdGlvbnM7 DQoJfQ0KDQoJLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQoNCglmdW5jdGlvbiByc3NCdWlsZFBhcmVudENhdFNxbCgk cGFyZW50KSB7DQoJCWlmICgkcGFyZW50KSB7DQoJCQlmb3JlYWNoIChleHBsb2RlKCcsJywg JHBhcmVudCkgYXMgJHBhcmVudCkgew0KCQkJCWlmICgkcGFyZW50KSAkY2F0c3FsW10gPSAi IGMucGFyZW50ID0gJyIgLiB1cmxkZWNvZGUoJHBhcmVudCkgLiAiJyAiOw0KCQkJfQ0KCQkJ JHBhcmVudHMgPSBpc3NldCgkY2F0c3FsKSA/ICcgQU5EICgnIC4gam9pbignIE9SICcsICRj YXRzcWwpIC4gJykgJyA6ICIiOw0KCQl9IGVsc2Ugew0KCQkJJHBhcmVudHMgPSAiIjsNCgkJ fQ0KCQlyZXR1cm4gJHBhcmVudHM7DQoJfQ0KDQoJLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCglmdW5jdGlvbiBy c3NCdWlsZFRpbWVTcWwoJHRpbWUpIHsNCgkJc3dpdGNoICgkdGltZSkgew0KCQkJY2FzZSAn YW55JzoNCgkJCQkkdGltZSA9ICIiOyBicmVhazsNCgkJCWNhc2UgJ2Z1dHVyZSc6DQoJCQkJ JHRpbWUgPSAiIGFuZCBQb3N0ZWQgPiBub3coKSI7IGJyZWFrOw0KCQkJZGVmYXVsdDoNCgkJ CQkkdGltZSA9ICIgYW5kIFBvc3RlZCA8PSBub3coKSI7DQoJCX0NCgkJcmV0dXJuICR0aW1l Ow0KCX0NCg0KCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoJZnVuY3Rpb24gcnNzX2FkbWluX2NhdGxpc3QoJGV2 ZW50LCAkc3RlcCkgew0KCQlnbG9iYWwgJHJzc191bmxpbV9zZWxfcGFyZW50Ow0KCQlleHRy YWN0KGdwc2EoYXJyYXkoJ3ZpZXcnLCdmcm9tX3ZpZXcnLCdzdGVwJykpKTsNCgkJaWYgKCEk dmlldykgJHZpZXcgPSAidGV4dCI7DQoNCgkJJElEID0gcnNzX2dldElEKCk7DQoJCSRyc2Mg PSBhcnJheSgpOw0KCQlpZiAoJElEKSAkcnNjID0gc2FmZV9yb3dzKCJjYXRlZ29yeV9pZCIs ICJ0ZXh0cGF0dGVybl9jYXRlZ29yeSIsICJhcnRpY2xlX2lkPSIuJElEKTsNCg0KCQlpZigh JHJzc191bmxpbV9zZWxfcGFyZW50KXskcnNzX3VubGltX3NlbF9wYXJlbnQ9J3Jvb3QnO30N CgkJJHJzID0gZ2V0VHJlZSgkcnNzX3VubGltX3NlbF9wYXJlbnQsICdhcnRpY2xlJyk7DQoJ CSRtdHNpID0gIiI7DQoJCWlmICgkcnMpIHsNCgkJCSRtdHNpID0gcnNzX211bHRpVHJlZVNl bGVjdElucHV0KCdDYXRzJywkcnMsJHJzYyk7DQoJCX0NCg0KCQkkY2F0c2VsID0gKCR2aWV3 PT0ndGV4dCcpID8gZ3JhZihnVHh0KCdjYXRlZ29yaXplJykuICcgWycuZUxpbmsoJ2NhdGVn b3J5JywnJywnJywnJyxnVHh0KCdlZGl0JykpLiddJy5ici4kbXRzaSkgOiAnJzsNCiRqcyA9 IDw8PEVPRg0KDQo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2ph dmFzY3JpcHQiPg0KPCEtLQ0KdmFyIHNpZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn d3JpdGUtc29ydCcpOw0KdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp Ow0KZGl2LmlubmVySFRNTCA9ICckY2F0c2VsJzsNCnNpZGUuYXBwZW5kQ2hpbGQoZGl2KTsN Ci8vIC0tPg0KPC9zY3JpcHQ+DQoNCkVPRjsNCg0KZWNobyAkanM7DQoNCn0NCg0KCSAvLy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCg0KCWZ1bmN0aW9uIHJzc19nZXRJRCgpIHsNCgkJaWYoIWVtcHR5KCRHTE9CQUxT WydJRCddKSkgeyAvLyBuZXdseS1zYXZlZCBhcnRpY2xlDQoJCQkkSUQgPSBpbnR2YWwoJEdM T0JBTFNbJ0lEJ10pOw0KCQkJJHN0ZXAgPSAnZWRpdCc7DQoJCX0gZWxzZSB7DQoJCQkkSUQg PSBncHMoJ0lEJyk7DQoJCX0NCgkJcmV0dXJuICRJRDsNCgl9DQoNCgkvLy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0K CWZ1bmN0aW9uIHJzc19hZG1pbl9jYXRsaXN0X3NhdmUoJGV2ZW50LCAkc3RlcCkgew0KCQkk SUQgPSByc3NfZ2V0SUQoKTsNCg0KCQlpZiAocHMoJ0lEJykpDQoJCQlzYWZlX2RlbGV0ZSgi dGV4dHBhdHRlcm5fY2F0ZWdvcnkiLCJhcnRpY2xlX2lkPSckSUQnIik7DQoNCgkJaWYgKHBz KCdDYXRzJykpIHsNCgkJCSRpbmNhdHMgPSBwcygnQ2F0cycpOw0KCQkJaWYgKCFlbXB0eSgk aW5jYXRzKSkgew0KCQkJCWZvcmVhY2goJGluY2F0cyBhcyAkdmFsICl7DQoJCQkJCXNhZmVf aW5zZXJ0KCJ0ZXh0cGF0dGVybl9jYXRlZ29yeSIsDQoJCQkJCQkiY2F0ZWdvcnlfaWQgPSAn JHZhbCcsDQoJCQkJCQlhcnRpY2xlX2lkPSckSUQnIg0KCQkJCQkpOw0KCQkJCX0NCgkJCX0N CgkJfQ0KCX0NCg0KCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoJZnVuY3Rpb24gcnNzX2FkbWluX2NhdGxpc3Rf ZGVsZXRlKCRldmVudCwgJHN0ZXApIHsNCgkJJGRlbGV0ZWQgPSBldmVudF9tdWx0aV9lZGl0 KCd0ZXh0cGF0dGVybl9jYXRlZ29yeScsJ2FydGljbGVfaWQnKTsNCgl9DQoNCgkvLy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCg0KCWZ1bmN0aW9uIHJzc19tdWx0aVRyZWVTZWxlY3RJbnB1dCgkc2VsZWN0bmFtZT0i IiwgJGFycmF5PSIiLCAkdmFsdWU9IiIpIHsNCgkJZ2xvYmFsICRwcmVmcywgJHJzc191bmxp bV9zZWxfc2l6ZTsNCg0KCQkkb3V0W10gPSAnPHNlbGVjdCBuYW1lPSInLiRzZWxlY3RuYW1l LidbXSIgY2xhc3M9Imxpc3QiIHNpemU9IicuJHJzc191bmxpbV9zZWxfc2l6ZS4nIiBtdWx0 aXBsZT4nOw0KCQlmb3JlYWNoICgkYXJyYXkgYXMgJGEpIHsNCgkJCWV4dHJhY3QoJGEpOw0K CQkJaWYgKCRuYW1lPT0ncm9vdCcpIGNvbnRpbnVlOw0KDQoJCQkkc2VsZWN0ZWQ9Jyc7DQoJ CQlmb3JlYWNoICgkdmFsdWUgYXMgJGE9PiRiKSB7DQoJCQkJaWYgKCRpZCA9PSAkYlsnY2F0 ZWdvcnlfaWQnXSkgew0KCQkJCQkkc2VsZWN0ZWQgPSAnIHNlbGVjdGVkPSJzZWxlY3RlZCIn Ow0KCQkJCQljb250aW51ZTsNCgkJCQl9DQoJCQl9DQoNCgkJCSRuYW1lID0gaHRtbHNwZWNp YWxjaGFycygkbmFtZSk7DQoJCQkkc3AgPSAoJGxldmVsID4gMCkgPyBzdHJfcmVwZWF0KHNw LnNwLnNwLCRsZXZlbCkgOiAnJzsNCgkJCSRvdXRbXSA9IHQuJzxvcHRpb24gdmFsdWU9Iicu JGlkLiciJy4kc2VsZWN0ZWQuJz4nLiRzcC5hZGRzbGFzaGVzKCR0aXRsZSkuJzwvb3B0aW9u Pic7DQoJCX0NCgkJJG91dFtdID0gJzwvc2VsZWN0Pic7DQoJCXJldHVybiBqb2luKCcnLCRv dXQpOw0KCX0NCg0KCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoJZnVuY3Rpb24gcnNzX2FkbWluX2FydGljbGVf bGlzdF9jYXRzKCRJRCkgew0KCQkkY2F0cyA9IGFycmF5KCk7DQoJCSRyc2MgPSBnZXRSb3dz KCJTRUxFQ1QgYy50aXRsZSBGUk9NIHRleHRwYXR0ZXJuX2NhdGVnb3J5IGFzIHRjIExFRlQg Sk9JTiAgdHhwX2NhdGVnb3J5IGFzIGMgT04gdGMuY2F0ZWdvcnlfaWQgPSBjLmlkIFdIRVJF IGFydGljbGVfaWQ9Ii4kSUQpOw0KCQlpZiAoJHJzYykgew0KCQkJZm9yZWFjaCAoJHJzYyBh cyAkYT0+JGIpIHsNCgkJCQkkY2F0c1tdPSRiWyd0aXRsZSddOw0KCQkJfQ0KCQkJcmV0dXJu IGltcGxvZGUoJzxici8+JywgJGNhdHMpOw0KCQl9DQoJCXJldHVybiAnJzsNCgl9DQoNCgkv Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCg0KCWZ1bmN0aW9uIHJzc190ZXh0X2lucHV0KCRpdGVtLCR2YXIsJHNpemU9 IiIpIHsNCgkJcmV0dXJuIGZJbnB1dCgidGV4dCIsJGl0ZW0sJHZhciwnZWRpdCcsJycsJycs JHNpemUpOw0KCX0NCg0KCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoJZnVuY3Rpb24gcnNzX3VubGltaXRlZF9h ZG1pbl90YWIoJGV2ZW50LCAkc3RlcCkgew0KCQlnbG9iYWwgJHByZWZzLCAkcnNzX3VubGlt X3NlbF9zaXplLCAkcnNzX3VubGltX3NlbF9wYXJlbnQ7DQoNCgkJaWYgKCFpc3NldCgkcnNz X3VubGltX3NlbF9zaXplKSkgeyAkcnMgPSBzYWZlX2luc2VydCgndHhwX3ByZWZzJywgIm5h bWU9J3Jzc191bmxpbV9zZWxfc2l6ZScsIHZhbD0nNScsIHByZWZzX2lkPScxJyIpOyB9DQoJ CWlmICghJHJzc191bmxpbV9zZWxfc2l6ZSl7ICRyc3NfdW5saW1fc2VsX3NpemU9JzUnOyB9 DQoNCgkJaWYgKHBzKCJzYXZlIikpIHsNCgkJCXBhZ2V0b3AoIlVubGltaXRlZCBDYXRlZ29y aWVzIFByZWZzIiwgIlByZWZlcmVuY2VzIFNhdmVkIik7DQoJCQlzYWZlX3VwZGF0ZSgidHhw X3ByZWZzIiwgInZhbCA9ICciLmFkZHNsYXNoZXMocHMoJ3Jzc191bmxpbV9zZWxfc2l6ZScp KS4iJyIsIm5hbWUgPSAncnNzX3VubGltX3NlbF9zaXplJyBhbmQgcHJlZnNfaWQgPScxJyIp Ow0KCQkJc2FmZV91cGRhdGUoInR4cF9wcmVmcyIsICJ2YWwgPSAnIi5hZGRzbGFzaGVzKHBz KCdyc3NfdW5saW1fc2VsX3BhcmVudCcpKS4iJyIsIm5hbWUgPSAncnNzX3VubGltX3NlbF9w YXJlbnQnIGFuZCBwcmVmc19pZCA9JzEnIik7DQoJCQloZWFkZXIoIkxvY2F0aW9uOiBpbmRl eC5waHA/ZXZlbnQ9cnNzX3VubGltaXRlZF9hZG1pbl90YWIiKTsNCgkJfSBlbHNlIHsNCgkJ CXBhZ2V0b3AoIlVubGltaXRlZCBDYXRlZ29yaWVzIFByZWZzIik7DQoJCX0NCgkJJHJzID0g Z2V0VHJlZSgncm9vdCcsICdhcnRpY2xlJyk7DQoNCgkJZWNobw0KCQlzdGFydFRhYmxlKCds aXN0JykuDQoJCWZvcm0oDQoJCXRyKHRkY3MoaGVkKCJVbmxpbWl0ZWQgQ2F0ZWdvcmllcyBQ cmVmZXJlbmNlcyIsMSksMykpLg0KCQl0cigNCgkJCXRkYShnVHh0KCdTZWxlY3QgTGlzdCBT aXplOicpLCAnIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0O3ZlcnRpY2FsLWFsaWduOm1pZGRs ZSInKS50ZGEocnNzX3RleHRfaW5wdXQoInJzc191bmxpbV9zZWxfc2l6ZSIsJHJzc191bmxp bV9zZWxfc2l6ZSwnMzAnKSwgJyAnKQ0KCQkpLg0KCQl0cigNCgkJCXRkYShnVHh0KCdQYXJl bnQgZm9yIGRpc3BsYXk6JyksICcgc3R5bGU9InRleHQtYWxpZ246cmlnaHQ7dmVydGljYWwt YWxpZ246bWlkZGxlIicpLnRkYSh0cmVlU2VsZWN0SW5wdXQoJ3Jzc191bmxpbV9zZWxfcGFy ZW50JywgJHJzLCAkcnNzX3VubGltX3NlbF9wYXJlbnQpLCAnICcpDQoJCSkuDQoJCXRyKA0K CQkJdGRhKGZJbnB1dCgic3VibWl0Iiwic2F2ZSIsZ1R4dCgic2F2ZV9idXR0b24iKSwicHVi bGlzaCIpLmVJbnB1dCgicnNzX3VubGltaXRlZF9hZG1pbl90YWIiKS5zSW5wdXQoJ3NhdmVw cmVmcycpLCAiIGNsYXNzPVwibm9saW5lXCIiKQ0KCQkpKS4NCgkJZW5kVGFibGUoKTsNCg0K CX0NCiI7czo0OiJ0eXBlIjtzOjE6IjEiO3M6NToib3JkZXIiO3M6MToiNSI7czo0OiJoZWxw IjtzOjI4ODgzOiI8cD4KPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxLjJlbTsiPjxiciAvPgo8 dGFibGUgc3R5bGU9IndpZHRoOjkwJTtwYWRkaW5nOiAwIDAgMjBweDttYXJnaW46IDAgYXV0 byAyMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM2NjY7Ij48YnIgLz4KPHRyPjx0ZD48 L3A+CgoJPGgxPlVubGltaXRlZCBBcnRpY2xlIENhdGVnb3JpZXMgaW4gVGV4dHBhdHRlcm48 L2gxPgoKCTxwPlRoZSA8YSBocmVmPSJodHRwOi8vd3d3LndpbHNoaXJlb25lLmNvbS90ZXh0 cGF0dGVybi1wbHVnaW5zL3Jzcy11bmxpbWl0ZWQtY2F0ZWdvcmllcyI+cnNzX3VubGltaXRl ZF9jYXRlZ29yaWVzPC9hPiBwbHVnaW4gZW5hYmxlcyB5b3UgdG8gYXNzaWduIGFuIHVubGlt aXRlZCBudW1iZXIgb2YgY2F0ZWdvcmllcyB0byBhbiBhcnRpY2xlIHNvIHRoYXQgeW91JiM4 MjE3O3JlIG5vdCBsaW1pdGVkIHRvIHRoZSBkZWZhdWx0IG51bWJlciBhbGxvd2VkIGJ5IFRl eHRwYXR0ZXJuICgyKS48L3A+CgoJPHA+VGhlIHBsdWdpbiB3aWxsIGFkZCBhIG11bHRpcGxl IHNlbGVjdCBsaXN0IHRvIHlvdXIgVHhwID4gQ29udGVudCAtPiBXcml0ZSB0YWIgdG8gZW5h YmxlIHRoZSBzZWxlY3Rpb24gb2YgdW5saW1pdGVkIGNhdGVnb3JpZXMuICBJdCBhbHNvIGlu Y2x1ZGVzIHNldmVyYWwgcHVibGljIHNpZGUgdGFncyB0byBkaXNwbGF5IHRoZSBjYXRlZ29y aWVzIGFuZCBsaXN0IGFydGljbGVzIGJ5IGNhdGVnb3J5IGFuZCBhbiBhZG1pbiB0YWIgdG8g c2V0IHBsdWdpbiBwcmVmZXJlbmNlcy48L3A+Cgo8YnIvPgoKCTxoMj5JbnN0YWxsYXRpb24g YW5kIFNldHVwPC9oMj4KCgk8b2w+CgkJPGxpPlNpbXBseSBpbnN0YWxsIGFuZCBlbmFibGUg dGhlIHBsdWdpbi4gIFRoZSBwbHVnaW4gd2lsbCBhdXRvbWF0aWNhbGx5IGluc3RhbGwgYSBu ZXcgdGFibGUgdGhhdCByZWxhdGVzIGFydGljbGVzIHRvIGNhdGVnb3JpZXMuPC9saT4KCQk8 bGk+TmF2aWdhdGUgdG8gdGhlIFR4cCA+IENvbnRlbnQgLT4gV3JpdGUgdGFiIGFuZCB5b3Um IzgyMTc7bGwgZmluZCBhIG5ldyBtdWx0aXBsZSBzZWxlY3QgbGlzdCBhYm92ZSB0aGUgc3Rh bmRhcmQgVGV4dHBhdHRlcm4gY2F0ZWdvcnkgc2VsZWN0aW9uLjwvbGk+CgkJPGxpPkZvciBl eGlzdGluZyBzaXRlcywgeW91IGNhbiBjb3B5IHlvdXIgY3VycmVudCBhcnRpY2xlL2NhdGVn b3J5IGFzc2lnbm1lbnRzIHRvIHRoZSBuZXcgY2F0ZWdvcnkgdGFibGUgc3RydWN0dXJlIHVz aW5nIHRoZSBmb2xsb3dpbmcgPHNwYW4gY2xhc3M9ImNhcHMiPlNRTDwvc3Bhbj4gc3RhdGVt ZW50czo8L2xpPgoJPC9vbD4KCjxwcmU+PGNvZGU+SU5TRVJUIElOVE8gdGV4dHBhdHRlcm5f Y2F0ZWdvcnkgKGFydGljbGVfaWQsIGNhdGVnb3J5X2lkKSBTRUxFQ1QgdC5pZCwgYy5pZApG Uk9NIHRleHRwYXR0ZXJuIHQgTEVGVCBKT0lOIHR4cF9jYXRlZ29yeSBjIG9uIHQuY2F0ZWdv cnkxID0gYy5uYW1lCldIRVJFIGMudHlwZSA9ICYjMzk7YXJ0aWNsZSYjMzk7IGFuZCB0LmNh dGVnb3J5MSAhPSAmIzM5OyYjMzk7OzwvY29kZT48L3ByZT4KCjxwcmU+PGNvZGU+SU5TRVJU IElOVE8gdGV4dHBhdHRlcm5fY2F0ZWdvcnkgKGFydGljbGVfaWQsIGNhdGVnb3J5X2lkKSBT RUxFQ1QgdC5pZCwgYy5pZApGUk9NIHRleHRwYXR0ZXJuIHQgTEVGVCBKT0lOIHR4cF9jYXRl Z29yeSBjIG9uIHQuY2F0ZWdvcnkyID0gYy5uYW1lCldIRVJFIGMudHlwZSA9ICYjMzk7YXJ0 aWNsZSYjMzk7IGFuZCB0LmNhdGVnb3J5MiAhPSAmIzM5OyYjMzk7OzwvY29kZT48L3ByZT4K Cjxici8+CgoJPHA+PC90ZD48L3RyPjwvdGFibGU+PC9wPgoKCTx0YWJsZSBzdHlsZT0iY29s b3I6IzMzMztmb250Om5vcm1hbCAxZW0gdmVyZGFuYTt3aWR0aDogOTAlO3BhZGRpbmc6IDAg MCAyMHB4O21hcmdpbjogMCBhdXRvIDIwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzY2 NjsiIGlkPSJsaXN0Ij4KCQk8dHI+CgkJCTx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlk ZGxlO2ZvbnQ6bm9ybWFsIGJvbGQgMS40ZW0gZ2VvcmdpYTt0ZXh0LWFsaWduOmxlZnQ7Y29s b3I6IzUwMDsiIGlkPSJyc3NfdW5saW1pdGVkX2NhdGVnb3JpZXNfZmlsZWR1bmRlciIgY29s c3Bhbj0iNCI+UHVibGljLXNpZGUgVGFnczwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZCBz dHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO2ZvbnQ6bm9ybWFsIDEuMWVtIHZlcmRhbmE7 dGV4dC1hbGlnbjpsZWZ0O2NvbG9yOiMwMzY7IiBjb2xzcGFuPSI0Ij5BbGwgb2YgdGhlIHRh Z3MgdXNlIHRoZSBuZXcgY2F0ZWdvcnkgdGFibGUgY3JlYXRlZCBieSB0aGlzIHBsdWdpbiBp bnN0ZWFkIG9mIHRoZSBzdGFuZGFyZCBUZXh0cGF0dGVybiBjYXRlZ29yeSAxIGFuZCAyIGZp ZWxkcy4gIFRoZSBjb2xsZWN0aW9uIG9mIHB1YmxpYyBzaXRlIHRhZ3MgaW5jbHVkZTo8L3Rk PgoJCTwvdHI+CgkJPHRyPgoJCQk8dGggc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTt3 aGl0ZS1zcGFjZTogbm93cmFwOyI+dGFnIG5hbWU8L3RoPgoJCQk8dGggc3R5bGU9InZlcnRp Y2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTogbm93cmFwOyI+ZGVzY3JpcHRpb248L3Ro PgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+PGEgaHJlZj0iI3Jzc191bmxpbWl0ZWRfY2F0ZWdv cmllc19maWxlZHVuZGVyIj48c3Ryb25nPnJzc191bmxpbWl0ZWRfY2F0ZWdvcmllc19maWxl ZHVuZGVyPC9zdHJvbmc+PC9hPjwvdGQ+CgkJCTx0ZD5MaXN0cyBhbGwgY2F0ZWdvcmllcyBh c3NpZ25lZCB0byB0aGUgY3VycmVudCBhcnRpY2xlLjwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJ CTx0ZD48YSBocmVmPSIjcnNzX3VubGltaXRlZF9jYXRlZ29yaWVzX2Nsb3VkIj48c3Ryb25n PnJzc191bmxpbWl0ZWRfY2F0ZWdvcmllc19jbG91ZDwvc3Ryb25nPjwvYT48L3RkPgoJCQk8 dGQ+RGlzcGxheXMgYSB3ZWlnaHRlZCBsaXN0IG9mIGFsbCBjYXRlZ29yaWVzIGFzIGEgPGEg aHJlZj0iaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9UYWdfY2xvdWQiPnRhZyBjbG91 ZDwvYT4uIDwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD48YSBocmVmPSIjcnNzX3VubGlt aXRlZF9jYXRlZ29yaWVzX2xpc3QiPjxzdHJvbmc+cnNzX3VubGltaXRlZF9jYXRlZ29yaWVz X2xpc3Q8L3N0cm9uZz48L2E+PC90ZD4KCQkJPHRkPkRpc3BsYXlzIGEgbGlzdCBvZiBhbGwg Y2F0ZWdvcmllcyB3aXRoIHRoZSBudW1iZXIgb2YgcG9zdHMgaW4gZWFjaC48L3RkPgoJCTwv dHI+CgkJPHRyPgoJCQk8dGQ+PGEgaHJlZj0iI3Jzc191bmxpbWl0ZWRfY2F0ZWdvcmllc19h cnRpY2xlX2xpc3QiPjxzdHJvbmc+cnNzX3VubGltaXRlZF9jYXRlZ29yaWVzX2FydGljbGVf bGlzdDwvc3Ryb25nPjwvYT48L3RkPgoJCQk8dGQ+TGlzdHMgYXJ0aWNsZXMgYnkgY2F0ZWdv cnkuICBUaGlzIGlzIGEgcmVwbGFjZW1lbnQgZm9yIHRoZSBzdGFuZGFyZCBUZXh0cGF0dGVy biBhcnRpY2xlIGxpc3QgdGFncy48L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+PGEgaHJl Zj0iI3Jzc191bmxpbWl0ZWRfY2F0ZWdvcmllc19yZWxhdGVkIj48c3Ryb25nPnJzc191bmxp bWl0ZWRfY2F0ZWdvcmllc19yZWxhdGVkPC9zdHJvbmc+PC9hPjwvdGQ+CgkJCTx0ZD5MaXN0 cyByZWxhdGVkIGFydGljbGVzIGJ5IGNhdGVnb3J5LiAgVGhpcyBpcyBhIHJlcGxhY2VtZW50 IGZvciB0aGUgc3RhbmRhcmQgVGV4dHBhdHRlcm4gcmVsYXRlZCBhcnRpY2xlIHRhZyB0aGF0 IHVzZXMgdGhlIHVubGltaXRlZCBjYXRlZ29yeSB0YWJsZXMgaW5zdGVhZCBvZiB0aGUgc3Rh bmRhcmQgVGV4dHBhdHRlcm4gY2F0ZWdvcnkgMSBhbmQgMiBmaWVsZHMuPC90ZD4KCQk8L3Ry PgoJCTx0cj4KCQkJPHRkPjxhIGhyZWY9IiNyc3Nfc2N0X3Blcm1saW5rIj48c3Ryb25nPnJz c19zY3RfcGVybWxpbms8L3N0cm9uZz48L2E+PC90ZD4KCQkJPHRkPkJ1aWxkcyBhIHBlcm1s aW5rIGluIC9zZWN0aW9uL2NhdGVnb3J5L3RpdGxlIGZvcm1hdC4gIFRoaXMgaXMgdXNlZCBl eGFjdGx5IGFzIHRoZSBzdGFuZGFyZCBUZXh0cGF0dGVybiBwZXJtbGluayB0YWcuPC90ZD4K CQk8L3RyPgoJCTx0cj4KCQkJPHRkPjxhIGhyZWY9IiNyc3NfdW5saW1pdGVkX2NhdGVnb3J5 X2NvdW50Ij48c3Ryb25nPnJzc191bmxpbWl0ZWRfY2F0ZWdvcnlfY291bnQ8L3N0cm9uZz48 L2E+PC90ZD4KCQkJPHRkPkRpc3BsYXlzIHRoZSBudW1iZXIgb2YgYXJ0aWNsZXMgYXNzaWdu ZWQgdG8gYSBnaXZlbiBjYXRlZ29yeS48L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+PGEg aHJlZj0iI3Jzc19pZl9hcnRpY2xlX3VubGltaXRlZF9jYXRlZ29yeSI+PHN0cm9uZz5yc3Nf aWZfYXJ0aWNsZV91bmxpbWl0ZWRfY2F0ZWdvcnk8L3N0cm9uZz48L2E+PC90ZD4KCQkJPHRk PkNvbmRpdGlvbmFsIHRhZyB0aGF0IHRlbGxzIGlmIGEgcGFydGljdWxhciBjYXRlZ29yeSBp cyBhc3NpZ25lZCB0byBhbiBhcnRpY2xlLiAgVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0 aGUgc3RhbmRhcmQgVGV4dHBhdHRlcm4gaWYgYXJ0aWNsZSBjYXRlZ29yeSB0YWcuPC90ZD4K CQk8L3RyPgoJPC90YWJsZT4KCgk8dGFibGUgc3R5bGU9ImNvbG9yOiMzMzM7Zm9udDpub3Jt YWwgMWVtIHZlcmRhbmE7d2lkdGg6IDkwJTtwYWRkaW5nOiAwIDAgMjBweDttYXJnaW46IDAg YXV0byAyMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM2NjY7IiBpZD0ibGlzdCI+CgkJ PHRyPgoJCQk8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTtmb250Om5vcm1hbCBi b2xkIDEuNGVtIGdlb3JnaWE7dGV4dC1hbGlnbjpsZWZ0O2NvbG9yOiM1MDA7IiBpZD0icnNz X3VubGltaXRlZF9jYXRlZ29yaWVzX2ZpbGVkdW5kZXIiIGNvbHNwYW49IjQiPnJzc191bmxp bWl0ZWRfY2F0ZWdvcmllc19maWxlZHVuZGVyIG9yIHJzc191Y19maWxlZHVuZGVyPC90ZD4K CQk8L3RyPgoJCTx0cj4KCQkJPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Zm9u dDpub3JtYWwgMS4xZW0gdmVyZGFuYTt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6IzAzNjsiIGNv bHNwYW49IjQiPkxpc3RzIGFsbCBjYXRlZ29yaWVzIGFzc2lnbmVkIHRvIHRoZSBjdXJyZW50 IGFydGljbGUuPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRoIHN0eWxlPSJ2ZXJ0aWNhbC1h bGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6IG5vd3JhcDsiPmF0dHJpYnV0ZSBuYW1lPC90aD4K CQkJPHRoIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6IG5vd3Jh cDsiPmRlc2NyaXB0aW9uPC90aD4KCQkJPHRoIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRk bGU7d2hpdGUtc3BhY2U6IG5vd3JhcDsiPmRlZmF1bHQgdmFsdWU8L3RoPgoJCQk8dGggc3R5 bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTogbm93cmFwOyI+ZXhhbXBs ZSB1c2FnZTwvdGg+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5zZWN0aW9uPC90ZD4KCQkJPHRk PkFjY2VwdHMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBzZWN0aW9ucyB0aGF0IHBvc3Rz IGFyZSBsaXN0ZWQgZnJvbS4gIE5PIHNwYWNlcyBhZnRlciBjb21tYXMuCldpbGRjYXJkcyBh bmQgbmVnYXRpdmVzIGNhbiBhbHNvIGJlIHVzZWQgd2hlbiBzcGVjaWZ5aW5nIHNlY3Rpb25z LiBGb3IgaW5zdGFuY2UsIHNlY3Rpb249JiM4MjIxOyomIzgyMjE7IChhbGwgc2VjdGlvbnMs IHJlZ2FyZGxlc3Mgb2YgaG93IG1hbnkpLCBzZWN0aW9uPSYjODIyMTshcGhvdG9zLHdyaXRp bmcsdGhvdWdodHMmIzgyMjE7ICh3cml0aW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3Nw YW4+IHRob3VnaHRzIDxzcGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3NwYW4+IDxzcGFuIGNsYXNz PSJjYXBzIj5OT1Q8L3NwYW4+IHBob3RvcyksIG9yIGp1c3Qgc2VjdGlvbj0mIzgyMjE7IXBo b3RvcyYjODIyMTsgKGFsbCBzZWN0aW9ucyBleGNlcHQgcGhvdG9zKS48L3RkPgoJCQk8dGQ+ YXJ0aWNsZTwvdGQ+CgkJCTx0ZD5zZWN0aW9uPSYjODIyMDtzZWN0aW9uT25lLHNlY3Rpb25U d28mIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPnBhcmVudDwvdGQ+CgkJCTx0 ZD5BY2NlcHRzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgY2F0ZWdvcmllcy4gIE5PIHNw YWNlcyBhZnRlciBjb21tYXMuICBPbmx5IGNhdGVnb3JpZXMgd2l0aCB0aGUgc3BlY2lmaWVk IGNhdGVnb3J5IGFzIGEgcGFyZW50IHdpbGwgYmUgZGlzcGxheWVkLjwvdGQ+CgkJCTx0ZD4m bmJzcDs8L3RkPgoJCQk8dGQ+Y2F0ZWdvcnk9JiM4MjIwO215Y2F0ZWdvcnkxLG15Y2F0ZWdv cnkyJiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5saW5rdG9zZWN0aW9uPC90 ZD4KCQkJPHRkPlRoZSBzZWN0aW9uIHVzZWQgZm9yIGNhdGVnb3J5IGxpbmtzLjwvdGQ+CgkJ CTx0ZD5hcnRpY2xlPC90ZD4KCQkJPHRkPmxpbmt0b3NlY3Rpb249JiM4MjIwO3NlY3Rpb25U aHJlZSYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+dXNlbWVzc3k8L3RkPgoJ CQk8dGQ+VXNlIG1lc3N5ICgvc2VjdGlvbi8/Yz1jYXRlZ29yeSkgVVJMcyBpbnN0ZWFkIG9m IGNsZWFuICgvc2VjdGlvbi9jYXRlZ29yeSkgVVJMcyBmb3IgY2F0ZWdvcnkgbGlua3MuLjwv dGQ+CgkJCTx0ZD4wPC90ZD4KCQkJPHRkPnVzZW1lc3N5PSYjODIyMDsxJiM4MjIxOzwvdGQ+ CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5saXN0d3JhcHRhZzwvdGQ+CgkJCTx0ZD5UaGUgPHNw YW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IHRhZyB0aGF0IHdyYXBzIHRoZSBsYWJlbCBh bmQgY2F0ZWdvcnkgbGlzdC48L3RkPgoJCQk8dGQ+Jm5ic3A7PC90ZD4KCQkJPHRkPmxpc3R3 cmFwdGFnPSYjODIyMDtkaXYmIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPndy YXB0YWc8L3RkPgoJCQk8dGQ+VGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiB0 YWcgdGhhdCB3cmFwcyB0aGUgY2F0ZWdvcnkgbGlzdC48L3RkPgoJCQk8dGQ+Jm5ic3A7PC90 ZD4KCQkJPHRkPndyYXB0YWc9JiM4MjIwO3VsJiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+ CgkJCTx0ZD5jbGFzczwvdGQ+CgkJCTx0ZD5UaGUgY2xhc3MgYXR0cmlidXRlIG9uIHRoZSB3 cmFwdGFnLjwvdGQ+CgkJCTx0ZD4mbmJzcDs8L3RkPgoJCQk8dGQ+Y2xhc3M9JiM4MjIwO2Nh dGxpc3QmIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPmJyZWFrPC90ZD4KCQkJ PHRkPkhUTUwvdGV4dCB0aGF0IHdyYXBzL3NlcGFyYXRlcyBlYWNoIGVsZW1lbnQgaW4gdGhl IGxpc3QuPC90ZD4KCQkJPHRkPiwmbmJzcDs8L3RkPgoJCQk8dGQ+YnJlYWs9JiM4MjIwO2xp JiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5icmVha2NsYXNzPC90ZD4KCQkJ PHRkPlRoZSBtYXhpbXVtIG51bWJlciBvZiBsaXZlIHNlYXJjaCByZXN1bHRzIHJldHVybmVk LjwvdGQ+CgkJCTx0ZD4mbmJzcDs8L3RkPgoJCQk8dGQ+YnJlYWtjbGFzcz0mIzgyMjA7Y2F0 ZWxlbWVudCYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+bGFiZWw8L3RkPgoJ CQk8dGQ+QSBsYWJlbCB0aGF0IGFwcGVhcnMgYmVmb3JlIHRoZSBsaXN0LjwvdGQ+CgkJCTx0 ZD4mbmJzcDs8L3RkPgoJCQk8dGQ+bGFiZWw9JiM4MjIwO0ZpbGUgdW5kZXI6ICYjODIyMDs8 L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+bGFiZWx0YWc8L3RkPgoJCQk8dGQ+VGhlIDxz cGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiB0YWcgdGhhdCB3cmFwcyB0aGUgbGFiZWwu PC90ZD4KCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCTx0ZD5sYWJlbHRhZz0mIzgyMjA7aDQmIzgy MjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPnNvcnRkaXI8L3RkPgoJCQk8dGQ+VGhl IGRpcmVjdGlvbiB0aGUgY2F0ZWdvcnkgbmFtZXMgYXJlIHNvcnRlZCBpbi4gIFZhbGlkIGNo b2ljZXMgaW5jbHVkZSAmIzgyMjA7YXNjJiM4MjIxOyBhbmQgJiM4MjIwO2Rlc2MmIzgyMjE7 LjwvdGQ+CgkJCTx0ZD5hc2M8L3RkPgoJCQk8dGQ+c29ydGRpcj0mIzgyMjA7ZGVzYyYjODIy MTs8L3RkPgoJCTwvdHI+Cgk8L3RhYmxlPgoKCTx0YWJsZSBzdHlsZT0iY29sb3I6IzMzMztm b250Om5vcm1hbCAxZW0gdmVyZGFuYTt3aWR0aDogOTAlO3BhZGRpbmc6IDAgMCAyMHB4O21h cmdpbjogMCBhdXRvIDIwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzY2NjsiIGlkPSJs aXN0Ij4KCQk8dHI+CgkJCTx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO2ZvbnQ6 bm9ybWFsIGJvbGQgMS40ZW0gZ2VvcmdpYTt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6IzUwMDsi IGlkPSJyc3NfdW5saW1pdGVkX2NhdGVnb3JpZXNfY2xvdWQiIGNvbHNwYW49IjQiPnJzc191 bmxpbWl0ZWRfY2F0ZWdvcmllc19jbG91ZCBvciByc3NfdWNfY2xvdWQ8L3RkPgoJCTwvdHI+ CgkJPHRyPgoJCQk8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTtmb250Om5vcm1h bCAxLjFlbSB2ZXJkYW5hO3RleHQtYWxpZ246bGVmdDtjb2xvcjojMDM2OyIgY29sc3Bhbj0i NCI+RGlzcGxheXMgYSB3ZWlnaHRlZCBsaXN0IG9mIGFsbCBjYXRlZ29yaWVzIGFzIGEgJiM4 MjIwO2Nsb3VkJiM4MjIxOy48L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGggc3R5bGU9InZl cnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTogbm93cmFwOyI+YXR0cmlidXRlIG5h bWU8L3RoPgoJCQk8dGggc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFj ZTogbm93cmFwOyI+ZGVzY3JpcHRpb248L3RoPgoJCQk8dGggc3R5bGU9InZlcnRpY2FsLWFs aWduOm1pZGRsZTt3aGl0ZS1zcGFjZTogbm93cmFwOyI+ZGVmYXVsdCB2YWx1ZTwvdGg+CgkJ CTx0aCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7 Ij5leGFtcGxlIHVzYWdlPC90aD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPnNlY3Rpb248L3Rk PgoJCQk8dGQ+QWNjZXB0cyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHNlY3Rpb25zIHRo YXQgcG9zdHMgYXJlIGxpc3RlZCBmcm9tLiAgTk8gc3BhY2VzIGFmdGVyIGNvbW1hcy4KV2ls ZGNhcmRzIGFuZCBuZWdhdGl2ZXMgY2FuIGFsc28gYmUgdXNlZCB3aGVuIHNwZWNpZnlpbmcg c2VjdGlvbnMuIEZvciBpbnN0YW5jZSwgc2VjdGlvbj0mIzgyMjE7KiYjODIyMTsgKGFsbCBz ZWN0aW9ucywgcmVnYXJkbGVzcyBvZiBob3cgbWFueSksIHNlY3Rpb249JiM4MjIxOyFwaG90 b3Msd3JpdGluZyx0aG91Z2h0cyYjODIyMTsgKHdyaXRpbmcgPHNwYW4gY2xhc3M9ImNhcHMi PkFORDwvc3Bhbj4gdGhvdWdodHMgPHNwYW4gY2xhc3M9ImNhcHMiPkFORDwvc3Bhbj4gPHNw YW4gY2xhc3M9ImNhcHMiPk5PVDwvc3Bhbj4gcGhvdG9zKSwgb3IganVzdCBzZWN0aW9uPSYj ODIyMTshcGhvdG9zJiM4MjIxOyAoYWxsIHNlY3Rpb25zIGV4Y2VwdCBwaG90b3MpLjwvdGQ+ CgkJCTx0ZD5hcnRpY2xlPC90ZD4KCQkJPHRkPnNlY3Rpb249JiM4MjIwO3NlY3Rpb25PbmUs c2VjdGlvblR3byYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+dGltZTwvdGQ+ CgkJCTx0ZD5BY2NlcHRzIG9uZSBvZiAzIG9wdGlvbnMgJiM4MjIwO3Bhc3QmIzgyMjE7LCAm IzgyMjA7ZnV0dXJlJiM4MjIxOyBvciAmIzgyMjA7YW55JiM4MjIxOy4gIEJ5IGRlZmF1bHQg KHBhc3QpIHdpbGwgZGlzcGxheSBhcnRpY2xlcyB3aXRoIGEgcG9zdGVkIGRhdGUgYmVmb3Jl IHRoZSBjdXJyZW50IGRhdGUvdGltZS4KU2VsZWN0aW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5G VVRVUkU8L3NwYW4+IHdpbGwgZGlzcGxheSBhcnRpY2xlcyB3aXRoIGEgcG9zdGVkIGRhdGUg YWZ0ZXIgdGhlIGN1cnJlbnQgZGF0ZS90aW1lLiAgU2VsZWN0aW5nIDxzcGFuIGNsYXNzPSJj YXBzIj5BTEw8L3NwYW4+IHdpbGwgZGlzcGxheSBhbGwgYXJ0aWNsZXMgcmVnYXJkbGVzcyBv ZiBwb3N0ZWQgZGF0ZS48L3RkPgoJCQk8dGQ+cGFzdDwvdGQ+CgkJCTx0ZD50aW1lPSYjODIy MDthbnkmIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPmxpbWl0PC90ZD4KCQkJ PHRkPlRoZSBtYXhpbXVtIG51bWJlciBvZiBjYXRlZ29yaWVzIHJldHVybmVkLjwvdGQ+CgkJ CTx0ZD45OTk8L3RkPgoJCQk8dGQ+bGltaXQ9JiM4MjIwOzUmIzgyMjE7PC90ZD4KCQk8L3Ry PgoJCTx0cj4KCQkJPHRkPnBhcmVudDwvdGQ+CgkJCTx0ZD5Pbmx5IGNhdGVnb3JpZXMgd2l0 aCB0aGUgc3BlY2lmaWVkIGNhdGVnb3J5IGFzIGEgcGFyZW50IHdpbGwgYmUgZGlzcGxheWVk LjwvdGQ+CgkJCTx0ZD4mbmJzcDs8L3RkPgoJCQk8dGQ+cGFyZW50PSYjODIyMDtteWNhdGVn b3J5JiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5saW5rdG9zZWN0aW9uPC90 ZD4KCQkJPHRkPlRoZSBzZWN0aW9uIHVzZWQgZm9yIGNhdGVnb3J5IGxpbmtzLjwvdGQ+CgkJ CTx0ZD5hcnRpY2xlPC90ZD4KCQkJPHRkPmxpbmt0b3NlY3Rpb249JiM4MjIwO2FyY2hpdmUm IzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPnVzZW1lc3N5PC90ZD4KCQkJPHRk PlVzZSBtZXNzeSAoL3NlY3Rpb24vP2M9Y2F0ZWdvcnkpIFVSTHMgaW5zdGVhZCBvZiBjbGVh biAoL3NlY3Rpb24vY2F0ZWdvcnkpIFVSTHMgZm9yIGNhdGVnb3J5IGxpbmtzLjwvdGQ+CgkJ CTx0ZD4wPC90ZD4KCQkJPHRkPnVzZW1lc3N5PSYjODIyMDsxJiM4MjIxOzwvdGQ+CgkJPC90 cj4KCQk8dHI+CgkJCTx0ZD5jbG91ZHdyYXB0YWc8L3RkPgoJCQk8dGQ+VGhlIDxzcGFuIGNs YXNzPSJjYXBzIj5IVE1MPC9zcGFuPiB0YWcgdGhhdCB3cmFwcyB0aGUgbGFiZWwgYW5kIGNh dGVnb3J5IGxpc3QuPC90ZD4KCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCTx0ZD5jbG91ZHdyYXB0 YWc9JiM4MjIwO2RpdiYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+d3JhcHRh ZzwvdGQ+CgkJCTx0ZD5UaGUgPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IHRhZyB0 aGF0IHdyYXBzIHRoZSBjYXRlZ29yeSBsaXN0LjwvdGQ+CgkJCTx0ZD5wPC90ZD4KCQkJPHRk PndyYXB0YWc9JiM4MjIwO3VsJiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5j bGFzczwvdGQ+CgkJCTx0ZD5UaGUgY2xhc3MgYXR0cmlidXRlIG9uIHRoZSB3cmFwdGFnLjwv dGQ+CgkJCTx0ZD4mbmJzcDs8L3RkPgoJCQk8dGQ+Y2xhc3M9JiM4MjIwO2NhdGxpc3QmIzgy MjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPmJyZWFrPC90ZD4KCQkJPHRkPkhUTUwv dGV4dCB0aGF0IHdyYXBzL3NlcGFyYXRlcyBlYWNoIGVsZW1lbnQgaW4gdGhlIGxpc3QuPC90 ZD4KCQkJPHRkPiwmbmJzcDs8L3RkPgoJCQk8dGQ+YnJlYWs9JiM4MjIwO2xpJiM4MjIxOzwv dGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5icmVha2NsYXNzPC90ZD4KCQkJPHRkPlRoZSBt YXhpbXVtIG51bWJlciBvZiBsaXZlIHNlYXJjaCByZXN1bHRzIHJldHVybmVkLjwvdGQ+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+Cgk8L3RhYmxlPgoKCTx0YWJsZSBzdHlsZT0iY29sb3I6IzMzMztmb250Om5vcm1h bCAxZW0gdmVyZGFuYTt3aWR0aDogOTAlO3BhZGRpbmc6IDAgMCAyMHB4O21hcmdpbjogMCBh dXRvIDIwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzY2NjsiIGlkPSJsaXN0Ij4KCQk8 dHI+CgkJCTx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO2ZvbnQ6bm9ybWFsIGJv bGQgMS40ZW0gZ2VvcmdpYTt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6IzUwMDsiIGlkPSJyc3Nf dW5saW1pdGVkX2NhdGVnb3JpZXNfbGlzdCIgY29sc3Bhbj0iNCI+cnNzX3VubGltaXRlZF9j YXRlZ29yaWVzX2xpc3Qgb3IgcnNzX3VjX2xpc3Q8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8 dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTtmb250Om5vcm1hbCAxLjFlbSB2ZXJk YW5hO3RleHQtYWxpZ246bGVmdDtjb2xvcjojMDM2OyIgY29sc3Bhbj0iNCI+RGlzcGxheXMg YSBsaXN0IG9mIGFsbCBjYXRlZ29yaWVzIHdpdGggdGhlIG51bWJlciBvZiBwb3N0cyBpbiBl YWNoLjwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0aCBzdHlsZT0idmVydGljYWwtYWxpZ246 bWlkZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7Ij5hdHRyaWJ1dGUgbmFtZTwvdGg+CgkJCTx0 aCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7Ij5k ZXNjcmlwdGlvbjwvdGg+CgkJCTx0aCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO3do aXRlLXNwYWNlOiBub3dyYXA7Ij5kZWZhdWx0IHZhbHVlPC90aD4KCQkJPHRoIHN0eWxlPSJ2 ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6IG5vd3JhcDsiPmV4YW1wbGUgdXNh Z2U8L3RoPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+c2VjdGlvbjwvdGQ+CgkJCTx0ZD5BY2Nl cHRzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygc2VjdGlvbnMgdGhhdCBwb3N0cyBhcmUg bGlzdGVkIGZyb20uICBOTyBzcGFjZXMgYWZ0ZXIgY29tbWFzLgpXaWxkY2FyZHMgYW5kIG5l Z2F0aXZlcyBjYW4gYWxzbyBiZSB1c2VkIHdoZW4gc3BlY2lmeWluZyBzZWN0aW9ucy4gRm9y IGluc3RhbmNlLCBzZWN0aW9uPSYjODIyMTsqJiM4MjIxOyAoYWxsIHNlY3Rpb25zLCByZWdh cmRsZXNzIG9mIGhvdyBtYW55KSwgc2VjdGlvbj0mIzgyMjE7IXBob3Rvcyx3cml0aW5nLHRo b3VnaHRzJiM4MjIxOyAod3JpdGluZyA8c3BhbiBjbGFzcz0iY2FwcyI+QU5EPC9zcGFuPiB0 aG91Z2h0cyA8c3BhbiBjbGFzcz0iY2FwcyI+QU5EPC9zcGFuPiA8c3BhbiBjbGFzcz0iY2Fw cyI+Tk9UPC9zcGFuPiBwaG90b3MpLCBvciBqdXN0IHNlY3Rpb249JiM4MjIxOyFwaG90b3Mm IzgyMjE7IChhbGwgc2VjdGlvbnMgZXhjZXB0IHBob3RvcykuPC90ZD4KCQkJPHRkPmFydGlj bGU8L3RkPgoJCQk8dGQ+c2VjdGlvbj0mIzgyMjA7c2VjdGlvbk9uZSxzZWN0aW9uVHdvJiM4 MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD50aW1lPC90ZD4KCQkJPHRkPkFjY2Vw dHMgb25lIG9mIDMgb3B0aW9ucyAmIzgyMjA7cGFzdCYjODIyMTssICYjODIyMDtmdXR1cmUm IzgyMjE7IG9yICYjODIyMDthbnkmIzgyMjE7LiAgQnkgZGVmYXVsdCAocGFzdCkgd2lsbCBk aXNwbGF5IGFydGljbGVzIHdpdGggYSBwb3N0ZWQgZGF0ZSBiZWZvcmUgdGhlIGN1cnJlbnQg ZGF0ZS90aW1lLgpTZWxlY3RpbmcgPHNwYW4gY2xhc3M9ImNhcHMiPkZVVFVSRTwvc3Bhbj4g d2lsbCBkaXNwbGF5IGFydGljbGVzIHdpdGggYSBwb3N0ZWQgZGF0ZSBhZnRlciB0aGUgY3Vy cmVudCBkYXRlL3RpbWUuICBTZWxlY3RpbmcgPHNwYW4gY2xhc3M9ImNhcHMiPkFMTDwvc3Bh bj4gd2lsbCBkaXNwbGF5IGFsbCBhcnRpY2xlcyByZWdhcmRsZXNzIG9mIHBvc3RlZCBkYXRl LjwvdGQ+CgkJCTx0ZD5wYXN0PC90ZD4KCQkJPHRkPnRpbWU9JiM4MjIwO2FueSYjODIyMTs8 L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+cGFyZW50PC90ZD4KCQkJPHRkPk9ubHkgY2F0 ZWdvcmllcyB3aXRoIHRoZSBzcGVjaWZpZWQgY2F0ZWdvcnkgYXMgYSBwYXJlbnQgd2lsbCBi ZSBkaXNwbGF5ZWQuPC90ZD4KCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCTx0ZD5wYXJlbnQ9JiM4 MjIwO215Y2F0ZWdvcnkmIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPmxpbWl0 PC90ZD4KCQkJPHRkPlRoZSBtYXhpbXVtIG51bWJlciBvZiBjYXRlZ29yaWVzIHJldHVybmVk LjwvdGQ+CgkJCTx0ZD45OTk8L3RkPgoJCQk8dGQ+bGltaXQ9JiM4MjIwOzUmIzgyMjE7PC90 ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPm9mZnNldDwvdGQ+CgkJCTx0ZD5FeGNsdWRlcyB4 IG51bWJlciBvZiBjYXRlZ29yaWVzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgY2F0ZWdv cnkgbGlzdGluZy48L3RkPgoJCQk8dGQ+MDwvdGQ+CgkJCTx0ZD5vZmZzZXQ9JiM4MjIwOzEm IzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPmxpbmt0b3NlY3Rpb248L3RkPgoJ CQk8dGQ+VGhlIHNlY3Rpb24gdXNlZCBmb3IgY2F0ZWdvcnkgbGlua3MuPC90ZD4KCQkJPHRk PmFydGljbGU8L3RkPgoJCQk8dGQ+bGlua3Rvc2VjdGlvbj0mIzgyMjA7YXJjaGl2ZSYjODIy MTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+dXNlbWVzc3k8L3RkPgoJCQk8dGQ+VXNl IG1lc3N5ICgvc2VjdGlvbi8/Yz1jYXRlZ29yeSkgVVJMcyBpbnN0ZWFkIG9mIGNsZWFuICgv c2VjdGlvbi9jYXRlZ29yeSkgVVJMcyBmb3IgY2F0ZWdvcnkgbGlua3MuLjwvdGQ+CgkJCTx0 ZD4wPC90ZD4KCQkJPHRkPnVzZW1lc3N5PSYjODIyMDsxJiM4MjIxOzwvdGQ+CgkJPC90cj4K CQk8dHI+CgkJCTx0ZD5zaG93Y291bnQ8L3RkPgoJCQk8dGQ+RGlzcGxheXMgdGhlIG51bWJl ciBvZiBwb3N0cyBpbiBlYWNoIGNhdGVnb3J5LjwvdGQ+CgkJCTx0ZD4xPC90ZD4KCQkJPHRk PnNob3djb3VudD0mIzgyMjA7MCYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+ Y291bnRsaW5rZWQ8L3RkPgoJCQk8dGQ+RGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjYXRlZ29y eSBjb3VudCBpcyBzaG93biBpbnNpZGUgdGhlIGxpbmsuICBCeSBkZWZhdWx0ICgxKSB0aGUg Y291bnQgaXMgaW5zaWRlIHRoZSBsaW5rLjwvdGQ+CgkJCTx0ZD4xPC90ZD4KCQkJPHRkPmNv dW50bGlua2VkPSYjODIyMDswJiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5z aG93YWxsY291bnQ8L3RkPgoJCQk8dGQ+RGlzcGxheXMgdGhlIG51bWJlciBvZiBwb3N0cyBp biBhbGwgY2F0ZWdvcmllcyBhdCB0aGUgZW5kIG9mIHRoZSBjYXRlZ29yeSBsaXN0aW5nLjwv dGQ+CgkJCTx0ZD4wPC90ZD4KCQkJPHRkPnNob3dhbGxjb3VudD0mIzgyMjA7MSYjODIyMTs8 L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+YWxsY291bnRsYWJlbDwvdGQ+CgkJCTx0ZD5U aGUgbGFiZWwgdXNlZCBmb3IgdGhlIGFsbCBjYXRlZ29yaWVzIGNvdW50LjwvdGQ+CgkJCTx0 ZD5BbGw8L3RkPgoJCQk8dGQ+YWxsY291bnRsYWJlbD0mIzgyMjA7QWxsIENhdGVnb3JpZXMm IzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPmxpc3R3cmFwdGFnPC90ZD4KCQkJ PHRkPlRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gdGFnIHRoYXQgd3JhcHMg dGhlIGxhYmVsIGFuZCBjYXRlZ29yeSBsaXN0LjwvdGQ+CgkJCTx0ZD4mbmJzcDs8L3RkPgoJ CQk8dGQ+bGlzdHdyYXB0YWc9JiM4MjIwO2RpdiYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRy PgoJCQk8dGQ+d3JhcHRhZzwvdGQ+CgkJCTx0ZD5UaGUgPHNwYW4gY2xhc3M9ImNhcHMiPkhU TUw8L3NwYW4+IHRhZyB0aGF0IHdyYXBzIHRoZSBjYXRlZ29yeSBsaXN0LjwvdGQ+CgkJCTx0 ZD51bDwvdGQ+CgkJCTx0ZD53cmFwdGFnPSYjODIyMDtwJiM4MjIxOzwvdGQ+CgkJPC90cj4K CQk8dHI+CgkJCTx0ZD5jbGFzczwvdGQ+CgkJCTx0ZD5UaGUgY2xhc3MgYXR0cmlidXRlIG9u IHRoZSB3cmFwdGFnLjwvdGQ+CgkJCTx0ZD4mbmJzcDs8L3RkPgoJCQk8dGQ+Y2xhc3M9JiM4 MjIwO2NhdGxpc3QmIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPmJyZWFrPC90 ZD4KCQkJPHRkPkhUTUwvdGV4dCB0aGF0IHdyYXBzL3NlcGFyYXRlcyBlYWNoIGVsZW1lbnQg aW4gdGhlIGxpc3QuPC90ZD4KCQkJPHRkPmxpPC90ZD4KCQkJPHRkPmJyZWFrPSYjODIyMTss ICYjODIyMDs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+YnJlYWtjbGFzczwvdGQ+CgkJ CTx0ZD5UaGUgbWF4aW11bSBudW1iZXIgb2YgbGl2ZSBzZWFyY2ggcmVzdWx0cyByZXR1cm5l ZC48L3RkPgoJCQk8dGQ+Jm5ic3A7PC90ZD4KCQkJPHRkPmJyZWFrY2xhc3M9JiM4MjIwO2Nh dGVsZW1lbnQmIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPmxhYmVsPC90ZD4K CQkJPHRkPkEgbGFiZWwgdGhhdCBhcHBlYXJzIGJlZm9yZSB0aGUgbGlzdC48L3RkPgoJCQk8 dGQ+Jm5ic3A7PC90ZD4KCQkJPHRkPmxhYmVsPSYjODIyMDtGaWxlIHVuZGVyOiAmIzgyMjA7 PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPmxhYmVsdGFnPC90ZD4KCQkJPHRkPlRoZSA8 c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gdGFnIHRoYXQgd3JhcHMgdGhlIGxhYmVs LjwvdGQ+CgkJCTx0ZD4mbmJzcDs8L3RkPgoJCQk8dGQ+bGFiZWx0YWc9JiM4MjIwO2g0JiM4 MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5zb3J0ZGlyPC90ZD4KCQkJPHRkPlRo ZSBkaXJlY3Rpb24gdGhlIGNhdGVnb3J5IG5hbWVzIGFyZSBzb3J0ZWQgaW4uICBWYWxpZCBj aG9pY2VzIGluY2x1ZGUgJiM4MjIwO2FzYyYjODIyMTsgYW5kICYjODIyMDtkZXNjJiM4MjIx Oy48L3RkPgoJCQk8dGQ+YXNjPC90ZD4KCQkJPHRkPnNvcnRkaXI9JiM4MjIwO2Rlc2MmIzgy MjE7PC90ZD4KCQk8L3RyPgoJPC90YWJsZT4KCgk8dGFibGUgc3R5bGU9ImNvbG9yOiMzMzM7 Zm9udDpub3JtYWwgMWVtIHZlcmRhbmE7d2lkdGg6IDkwJTtwYWRkaW5nOiAwIDAgMjBweDtt YXJnaW46IDAgYXV0byAyMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM2NjY7IiBpZD0i bGlzdCI+CgkJPHRyPgoJCQk8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTtmb250 Om5vcm1hbCBib2xkIDEuNGVtIGdlb3JnaWE7dGV4dC1hbGlnbjpsZWZ0O2NvbG9yOiM1MDA7 IiBpZD0icnNzX3VubGltaXRlZF9jYXRlZ29yaWVzX2FydGljbGVfbGlzdCIgY29sc3Bhbj0i NCI+cnNzX3VubGltaXRlZF9jYXRlZ29yaWVzX2FydGljbGVfbGlzdCBvciByc3NfdWNfYXJ0 aWNsZV9saXN0PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1h bGlnbjptaWRkbGU7Zm9udDpub3JtYWwgMS4xZW0gdmVyZGFuYTt0ZXh0LWFsaWduOmxlZnQ7 Y29sb3I6IzAzNjsiIGNvbHNwYW49IjQiPkxpc3RzIGFydGljbGVzIGJ5IGNhdGVnb3J5LiAg VGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgc3RhbmRhcmQgVGV4dHBhdHRlcm4gYXJ0 aWNsZSBsaXN0IHRhZ3MgdGhhdCB1c2VzIHRoZSB1bmxpbWl0ZWQgY2F0ZWdvcnkgdGFibGVz IGluc3RlYWQgb2YgdGhlIHN0YW5kYXJkIFRleHRwYXR0ZXJuIGNhdGVnb3J5IDEgYW5kIDIg ZmllbGRzLjwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0aCBzdHlsZT0idmVydGljYWwtYWxp Z246bWlkZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7Ij5hdHRyaWJ1dGUgbmFtZTwvdGg+CgkJ CTx0aCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7 Ij5kZXNjcmlwdGlvbjwvdGg+CgkJCTx0aCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxl O3doaXRlLXNwYWNlOiBub3dyYXA7Ij5kZWZhdWx0IHZhbHVlPC90aD4KCQkJPHRoIHN0eWxl PSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6IG5vd3JhcDsiPmV4YW1wbGUg dXNhZ2U8L3RoPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+c2VjdGlvbjwvdGQ+CgkJCTx0ZD5B Y2NlcHRzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygc2VjdGlvbnMgdGhhdCBwb3N0cyBh cmUgbGlzdGVkIGZyb20uICBOTyBzcGFjZXMgYWZ0ZXIgY29tbWFzLgpXaWxkY2FyZHMgYW5k IG5lZ2F0aXZlcyBjYW4gYWxzbyBiZSB1c2VkIHdoZW4gc3BlY2lmeWluZyBzZWN0aW9ucy4g Rm9yIGluc3RhbmNlLCBzZWN0aW9uPSYjODIyMTsqJiM4MjIxOyAoYWxsIHNlY3Rpb25zLCBy ZWdhcmRsZXNzIG9mIGhvdyBtYW55KSwgc2VjdGlvbj0mIzgyMjE7IXBob3Rvcyx3cml0aW5n LHRob3VnaHRzJiM4MjIxOyAod3JpdGluZyA8c3BhbiBjbGFzcz0iY2FwcyI+QU5EPC9zcGFu PiB0aG91Z2h0cyA8c3BhbiBjbGFzcz0iY2FwcyI+QU5EPC9zcGFuPiA8c3BhbiBjbGFzcz0i Y2FwcyI+Tk9UPC9zcGFuPiBwaG90b3MpLCBvciBqdXN0IHNlY3Rpb249JiM4MjIxOyFwaG90 b3MmIzgyMjE7IChhbGwgc2VjdGlvbnMgZXhjZXB0IHBob3RvcykuPC90ZD4KCQkJPHRkPmFy dGljbGU8L3RkPgoJCQk8dGQ+c2VjdGlvbj0mIzgyMjA7c2VjdGlvbk9uZSxzZWN0aW9uVHdv JiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD4KY2F0ZWdvcnk8L3RkPgoJCQk8 dGQ+QWNjZXB0cyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3JpZXMuICBOTyBz cGFjZXMgYWZ0ZXIgY29tbWFzLiAgSWYgY3VycmVudGx5IGJyb3dzaW5nIGJ5IGNhdGVnb3J5 LCB0aGUgZ2xvYmFsIGNhdGVnb3J5IHdpbGwgYmUgdXNlZCBhcyB0aGUgZGVmYXVsdC48L3Rk PgoJCQk8dGQ+PGNvZGU+JGM8L2NvZGU+IChnbG9iYWwgY2F0ZWdvcnkpPC90ZD4KCQkJPHRk PmNhdGVnb3J5PSYjODIyMDs1JiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD51 c2VjaGlsZHJlbjwvdGQ+CgkJCTx0ZD5JZiBhIHNpbmdsZSBhcnRpY2xlIGNhdGVnb3J5IGlz IHNwZWNpZmllZCBhbmQgdGhhdCBjYXRlZ29yeSBpcyBhIHBhcmVudCBjYXRlZ29yeSwgYXJ0 aWNsZXMgYXNzaWduZWQgdG8gdGhlIHBhcmVudCYjODIxNztzIGNoaWxkIGNhdGVnb3JpZXMg d2lsbCBiZSBsaXN0ZWQgcmF0aGVyIHRoYW4gYXJ0aWNsZXMgYXNzaWduZWQgdG8gdGhlIHBh cmVudC48L3RkPgoJCQk8dGQ+MDwvdGQ+CgkJCTx0ZD51c2VjaGlsZHJlbj0mIzgyMjA7MSYj ODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+Zm9ybTwvdGQ+CgkJCTx0ZD5UaGUg YXJ0aWNsZSBmb3JtIHVzZWQgaW4gdGhlIGFydGljbGUgbGlzdC48L3RkPgoJCQk8dGQ+ZGVm YXVsdDwvdGQ+CgkJCTx0ZD5mb3JtPSYjODIyMDtteWZvcm0mIzgyMjE7PC90ZD4KCQk8L3Ry PgoJCTx0cj4KCQkJPHRkPmxpbWl0PC90ZD4KCQkJPHRkPlRoZSBtYXhpbXVtIG51bWJlciBv ZiBhcnRpY2xlcyByZXR1cm5lZC48L3RkPgoJCQk8dGQ+OTk5PC90ZD4KCQkJPHRkPmxpbWl0 PSYjODIyMDs1JiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5vZmZzZXQ8L3Rk PgoJCQk8dGQ+RXhjbHVkZXMgeCBudW1iZXIgb2YgYXJ0aWNsZXMgZnJvbSB0aGUgYmVnaW5u aW5nIG9mIHRoZSBhcnRpY2xlIGxpc3RpbmcuPC90ZD4KCQkJPHRkPjA8L3RkPgoJCQk8dGQ+ b2Zmc2V0PSYjODIyMDsxJiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD50aW1l PC90ZD4KCQkJPHRkPkFjY2VwdHMgb25lIG9mIDMgb3B0aW9ucyAmIzgyMjA7cGFzdCYjODIy MTssICYjODIyMDtmdXR1cmUmIzgyMjE7IG9yICYjODIyMDthbnkmIzgyMjE7LiAgQnkgZGVm YXVsdCAocGFzdCkgd2lsbCBkaXNwbGF5IGFydGljbGVzIHdpdGggYSBwb3N0ZWQgZGF0ZSBi ZWZvcmUgdGhlIGN1cnJlbnQgZGF0ZS90aW1lLgpTZWxlY3RpbmcgPHNwYW4gY2xhc3M9ImNh cHMiPkZVVFVSRTwvc3Bhbj4gd2lsbCBkaXNwbGF5IGFydGljbGVzIHdpdGggYSBwb3N0ZWQg ZGF0ZSBhZnRlciB0aGUgY3VycmVudCBkYXRlL3RpbWUuICBTZWxlY3RpbmcgPHNwYW4gY2xh c3M9ImNhcHMiPkFMTDwvc3Bhbj4gd2lsbCBkaXNwbGF5IGFsbCBhcnRpY2xlcyByZWdhcmRs ZXNzIG9mIHBvc3RlZCBkYXRlLjwvdGQ+CgkJCTx0ZD5wYXN0PC90ZD4KCQkJPHRkPnRpbWU9 JiM4MjIwO2FueSYjODIyMTs8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+c29ydGRpcjwv dGQ+CgkJCTx0ZD5UaGUgZGlyZWN0aW9uIHRoZSBjYXRlZ29yeSBuYW1lcyBhcmUgc29ydGVk IGluLiAgVmFsaWQgY2hvaWNlcyBpbmNsdWRlICYjODIyMDthc2MmIzgyMjE7IGFuZCAmIzgy MjA7ZGVzYyYjODIyMTsuPC90ZD4KCQkJPHRkPmFzYzwvdGQ+CgkJCTx0ZD5zb3J0ZGlyPSYj ODIyMDtkZXNjJiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5zb3J0Ynk8L3Rk PgoJCQk8dGQ+VGhlIGZpZWxkIHRoZSBhcnRpY2xlcyBhcmUgc29ydGVkIGJ5LiAgVmFsaWQg Y2hvaWNlcyBpbmNsdWRlIGFueSBmaWVsZCBvbiB0aGUgdGV4dHBhdHRlcm4gdGFibGUgc3Vj aCBhcyAmIzgyMjA7SUQmIzgyMjE7IG9yICYjODIyMDt0aXRsZSYjODIyMTsuPC90ZD4KCQkJ PHRkPnVQb3N0ZWQ8L3RkPgoJCQk8dGQ+c29ydGJ5PSYjODIyMDt0aXRsZSYjODIyMTs8L3Rk PgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+aWQ8L3RkPgoJCQk8dGQ+VGhlIElEIG9mIGEgc2lu Z2xlIGFydGljbGUgdG8gZGlzcGxheS48L3RkPgoJCQk8dGQ+Jm5ic3A7PC90ZD4KCQkJPHRk PmlkPSYjODIyMDsxMDAmIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPmZpbHRl cjwvdGQ+CgkJCTx0ZD5JbmRpY2F0ZXMgd2hldGhlciBmaWx0ZXJpbmcgaXMgdHVybmVkIG9u LjwvdGQ+CgkJCTx0ZD4wPC90ZD4KCQkJPHRkPmZpbHRlcj0mIzgyMjA7MSYjODIyMTs8L3Rk PgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+ZmlsdGVyZmllbGQ8L3RkPgoJCQk8dGQ+VGhlIGZp ZWxkIHRoZSBhcnRpY2xlcyBhcmUgZmlsdGVyZWQgb24uPC90ZD4KCQkJPHRkPiZuYnNwOzwv dGQ+CgkJCTx0ZD5maWx0ZXJmaWVsZD0mIzgyMjA7Y3VzdG9tXzQmIzgyMjE7PC90ZD4KCQk8 L3RyPgoJCTx0cj4KCQkJPHRkPmZpbHRlcm5hbWU8L3RkPgoJCQk8dGQ+VGhlIDxzcGFuIGNs YXNzPSJjYXBzIj5VUkw8L3NwYW4+IGtleXdvcmQgdGhhdCBwcmVjZWVkcyB0aGUgZmlsdGVy LiAgRm9yIGV4YW1wbGUsIHRoZXNlIGF0dHJpYnV0ZXMgKGZpbHRlcj0mIzgyMjA7MSYjODIy MTsgZmlsdGVyZmllbGQ9JiM4MjIwO2N1c3RvbV80JiM4MjIxOyBmaWx0ZXJuYW1lPSYjODIy MDtieXByaWNlJiM4MjIxOykgd291bGQgZmlsdGVyIHRoaXMgPHNwYW4gY2xhc3M9ImNhcHMi PlVSTDwvc3Bhbj4gKC9hcnRpY2xlL2J5cHJpY2UvbHQvMykgYW5kIGRpc3BsYXkgYXJ0aWNs ZXMgd2hlcmUgdGhlIHZhbHVlIGluIHRoZSBjdXN0b21fNCBmaWVsZCB3YXMgbGVzcyB0aGFu IDMuICBUaGUgdmFsaWQgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gb3BlcmF0b3Jz IGFyZSA8c3Ryb25nPmVxPC9zdHJvbmc+IChlcXVhbHMpLCA8c3Ryb25nPmx0PC9zdHJvbmc+ IChsZXNzIHRoYW4pIGFuZCA8c3Ryb25nPmd0PC9zdHJvbmc+IChncmVhdGVyIHRoYW4pLiAg RmlsdGVyIFVSTHMgbXVzdCBiZSBjb25zdHJ1Y3RlZCBtYW51YWxseSBhdCB0aGlzIHBvaW50 LjwvdGQ+CgkJCTx0ZD4mbmJzcDs8L3RkPgoJCQk8dGQ+ZmlsdGVybmFtZT0mIzgyMjA7Ynlw cmljZSYjODIyMTs8L3RkPgoJCTwvdHI+Cgk8L3RhYmxlPgoKCTx0YWJsZSBzdHlsZT0iY29s b3I6IzMzMztmb250Om5vcm1hbCAxZW0gdmVyZGFuYTt3aWR0aDogOTAlO3BhZGRpbmc6IDAg MCAyMHB4O21hcmdpbjogMCBhdXRvIDIwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzY2 NjsiIGlkPSJsaXN0Ij4KCQk8dHI+CgkJCTx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlk ZGxlO2ZvbnQ6bm9ybWFsIGJvbGQgMS40ZW0gZ2VvcmdpYTt0ZXh0LWFsaWduOmxlZnQ7Y29s b3I6IzUwMDsiIGlkPSJyc3NfdW5saW1pdGVkX2NhdGVnb3JpZXNfcmVsYXRlZCIgY29sc3Bh bj0iNCI+cnNzX3VubGltaXRlZF9jYXRlZ29yaWVzX3JlbGF0ZWQgb3IgcnNzX3VjX3JlbGF0 ZWQ8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOm1p ZGRsZTtmb250Om5vcm1hbCAxLjFlbSB2ZXJkYW5hO3RleHQtYWxpZ246bGVmdDtjb2xvcjoj MDM2OyIgY29sc3Bhbj0iNCI+TGlzdHMgcmVsYXRlZCBhcnRpY2xlcyBieSBjYXRlZ29yeS4g IFRoaXMgaXMgYSByZXBsYWNlbWVudCBmb3IgdGhlIHN0YW5kYXJkIFRleHRwYXR0ZXJuIHJl bGF0ZWQgYXJ0aWNsZSB0YWcgdGhhdCB1c2VzIHRoZSB1bmxpbWl0ZWQgY2F0ZWdvcnkgdGFi bGVzIGluc3RlYWQgb2YgdGhlIHN0YW5kYXJkIFRleHRwYXR0ZXJuIGNhdGVnb3J5IDEgYW5k IDIgZmllbGRzLjwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0aCBzdHlsZT0idmVydGljYWwt YWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7Ij5hdHRyaWJ1dGUgbmFtZTwvdGg+ CgkJCTx0aCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOiBub3dy YXA7Ij5kZXNjcmlwdGlvbjwvdGg+CgkJCTx0aCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlk ZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7Ij5kZWZhdWx0IHZhbHVlPC90aD4KCQkJPHRoIHN0 eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6IG5vd3JhcDsiPmV4YW1w bGUgdXNhZ2U8L3RoPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+c2VjdGlvbjwvdGQ+CgkJCTx0 ZD5BY2NlcHRzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygc2VjdGlvbnMgdGhhdCBwb3N0 cyBhcmUgbGlzdGVkIGZyb20uICBOTyBzcGFjZXMgYWZ0ZXIgY29tbWFzLgpXaWxkY2FyZHMg YW5kIG5lZ2F0aXZlcyBjYW4gYWxzbyBiZSB1c2VkIHdoZW4gc3BlY2lmeWluZyBzZWN0aW9u cy4gRm9yIGluc3RhbmNlLCBzZWN0aW9uPSYjODIyMTsqJiM4MjIxOyAoYWxsIHNlY3Rpb25z LCByZWdhcmRsZXNzIG9mIGhvdyBtYW55KSwgc2VjdGlvbj0mIzgyMjE7IXBob3Rvcyx3cml0 aW5nLHRob3VnaHRzJiM4MjIxOyAod3JpdGluZyA8c3BhbiBjbGFzcz0iY2FwcyI+QU5EPC9z cGFuPiB0aG91Z2h0cyA8c3BhbiBjbGFzcz0iY2FwcyI+QU5EPC9zcGFuPiA8c3BhbiBjbGFz cz0iY2FwcyI+Tk9UPC9zcGFuPiBwaG90b3MpLCBvciBqdXN0IHNlY3Rpb249JiM4MjIxOyFw aG90b3MmIzgyMjE7IChhbGwgc2VjdGlvbnMgZXhjZXB0IHBob3RvcykuPC90ZD4KCQkJPHRk PmFydGljbGU8L3RkPgoJCQk8dGQ+c2VjdGlvbj0mIzgyMjA7c2VjdGlvbk9uZSxzZWN0aW9u VHdvJiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5mb3JtPC90ZD4KCQkJPHRk PlRoZSBhcnRpY2xlIGZvcm0gdXNlZCBpbiB0aGUgYXJ0aWNsZSBsaXN0LjwvdGQ+CgkJCTx0 ZD5kZWZhdWx0PC90ZD4KCQkJPHRkPmZvcm09JiM4MjIwO215Zm9ybSYjODIyMTs8L3RkPgoJ CTwvdHI+CgkJPHRyPgoJCQk8dGQ+bGltaXQ8L3RkPgoJCQk8dGQ+VGhlIG1heGltdW0gbnVt YmVyIG9mIGFydGljbGVzIHJldHVybmVkLjwvdGQ+CgkJCTx0ZD45OTk8L3RkPgoJCQk8dGQ+ bGltaXQ9JiM4MjIwOzUmIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPm9mZnNl dDwvdGQ+CgkJCTx0ZD5FeGNsdWRlcyB4IG51bWJlciBvZiBhcnRpY2xlcyBmcm9tIHRoZSBi ZWdpbm5pbmcgb2YgdGhlIGFydGljbGUgbGlzdGluZy48L3RkPgoJCQk8dGQ+MDwvdGQ+CgkJ CTx0ZD5vZmZzZXQ9JiM4MjIwOzEmIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRk PnRpbWU8L3RkPgoJCQk8dGQ+QWNjZXB0cyBvbmUgb2YgMyBvcHRpb25zICYjODIyMDtwYXN0 JiM4MjIxOywgJiM4MjIwO2Z1dHVyZSYjODIyMTsgb3IgJiM4MjIwO2FueSYjODIyMTsuICBC eSBkZWZhdWx0IChwYXN0KSB3aWxsIGRpc3BsYXkgYXJ0aWNsZXMgd2l0aCBhIHBvc3RlZCBk YXRlIGJlZm9yZSB0aGUgY3VycmVudCBkYXRlL3RpbWUuClNlbGVjdGluZyA8c3BhbiBjbGFz cz0iY2FwcyI+RlVUVVJFPC9zcGFuPiB3aWxsIGRpc3BsYXkgYXJ0aWNsZXMgd2l0aCBhIHBv c3RlZCBkYXRlIGFmdGVyIHRoZSBjdXJyZW50IGRhdGUvdGltZS4gIFNlbGVjdGluZyA8c3Bh biBjbGFzcz0iY2FwcyI+QUxMPC9zcGFuPiB3aWxsIGRpc3BsYXkgYWxsIGFydGljbGVzIHJl Z2FyZGxlc3Mgb2YgcG9zdGVkIGRhdGUuPC90ZD4KCQkJPHRkPnBhc3Q8L3RkPgoJCQk8dGQ+ dGltZT0mIzgyMjA7YW55JiM4MjIxOzwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5zb3J0 ZGlyPC90ZD4KCQkJPHRkPlRoZSBkaXJlY3Rpb24gdGhlIGNhdGVnb3J5IG5hbWVzIGFyZSBz b3J0ZWQgaW4uICBWYWxpZCBjaG9pY2VzIGluY2x1ZGUgJiM4MjIwO2FzYyYjODIyMTsgYW5k ICYjODIyMDtkZXNjJiM4MjIxOy48L3RkPgoJCQk8dGQ+YXNjPC90ZD4KCQkJPHRkPnNvcnRk aXI9JiM4MjIwO2Rlc2MmIzgyMjE7PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPnNvcnRi eTwvdGQ+CgkJCTx0ZD5UaGUgZmllbGQgdGhlIGFydGljbGVzIGFyZSBzb3J0ZWQgYnkuICBW YWxpZCBjaG9pY2VzIGluY2x1ZGUgYW55IGZpZWxkIG9uIHRoZSB0ZXh0cGF0dGVybiB0YWJs ZSBzdWNoIGFzICYjODIyMDtJRCYjODIyMTsgb3IgJiM4MjIwO3RpdGxlJiM4MjIxOy48L3Rk PgoJCQk8dGQ+dVBvc3RlZDwvdGQ+CgkJCTx0ZD5zb3J0Ynk9JiM4MjIwO3RpdGxlJiM4MjIx OzwvdGQ+CgkJPC90cj4KCTwvdGFibGU+CgoJPHRhYmxlIHN0eWxlPSJjb2xvcjojMzMzO2Zv bnQ6bm9ybWFsIDFlbSB2ZXJkYW5hO3dpZHRoOiA5MCU7cGFkZGluZzogMCAwIDIwcHg7bWFy Z2luOiAwIGF1dG8gMjBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNjY2OyIgaWQ9Imxp c3QiPgoJCTx0cj4KCQkJPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Zm9udDpu b3JtYWwgYm9sZCAxLjRlbSBnZW9yZ2lhO3RleHQtYWxpZ246bGVmdDtjb2xvcjojNTAwOyIg aWQ9InJzc19zY3RfcGVybWxpbmsiIGNvbHNwYW49IjQiPnJzc19zY3RfcGVybWxpbms8L3Rk PgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTtm b250Om5vcm1hbCAxLjFlbSB2ZXJkYW5hO3RleHQtYWxpZ246bGVmdDtjb2xvcjojMDM2OyIg Y29sc3Bhbj0iNCI+QnVpbGQgYXJ0aWNsZSBwZXJtbGlua3MgaW4gL3NlY3Rpb24vY2F0ZWdv cnkvdGl0bGUgZm9ybWF0LiAgVXNlIGFzIGEgcmVwbGFjZW1lbnQgZm9yIHRoZSA8Y29kZT4m IzYwO3R4cDpwZXJtbGluay8mIzYyOzwvY29kZT4gdGFnLjxici8+Rm9yIGV4YW1wbGU6IDxj b2RlPiYjNjA7dHhwOnJzc19zY3RfcGVybWxpbmsmIzYyOyYjNjA7dHhwOnRpdGxlLyYjNjI7 JiM2MDsvdHhwOnJzc19zY3RfcGVybWxpbmsmIzYyOzwvY29kZT48L3RkPgoJCTwvdHI+CgkJ PHRyPgoJCQk8dGggc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTog bm93cmFwOyI+YXR0cmlidXRlIG5hbWU8L3RoPgoJCQk8dGggc3R5bGU9InZlcnRpY2FsLWFs aWduOm1pZGRsZTt3aGl0ZS1zcGFjZTogbm93cmFwOyI+ZGVzY3JpcHRpb248L3RoPgoJCQk8 dGggc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTogbm93cmFwOyI+ ZGVmYXVsdCB2YWx1ZTwvdGg+CgkJCTx0aCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlkZGxl O3doaXRlLXNwYWNlOiBub3dyYXA7Ij5leGFtcGxlIHVzYWdlPC90aD4KCQk8L3RyPgoJCTx0 cj4KCQkJPHRkPm5hbWU8L3RkPgoJCQk8dGQ+VGhlIGNhdGVnb3J5IG5hbWUgdG8gY291bnQu PC90ZD4KCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCTx0ZD5jYXRlZ29yeT0mIzgyMjA7bXljYXRl Z29yeSYjODIyMTs8L3RkPgoJCTwvdHI+Cgk8L3RhYmxlPgoKCTx0YWJsZSBzdHlsZT0iY29s b3I6IzMzMztmb250Om5vcm1hbCAxZW0gdmVyZGFuYTt3aWR0aDogOTAlO3BhZGRpbmc6IDAg MCAyMHB4O21hcmdpbjogMCBhdXRvIDIwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzY2 NjsiIGlkPSJsaXN0Ij4KCQk8dHI+CgkJCTx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246bWlk ZGxlO2ZvbnQ6bm9ybWFsIGJvbGQgMS40ZW0gZ2VvcmdpYTt0ZXh0LWFsaWduOmxlZnQ7Y29s b3I6IzUwMDsiIGlkPSJyc3NfdW5saW1pdGVkX2NhdGVnb3J5X2NvdW50IiBjb2xzcGFuPSI0 Ij5yc3NfdW5saW1pdGVkX2NhdGVnb3J5X2NvdW50PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJ PHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Zm9udDpub3JtYWwgMS4xZW0gdmVy ZGFuYTt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6IzAzNjsiIGNvbHNwYW49IjQiPkRpc3BsYXlz IHRoZSBudW1iZXIgb2YgYXJ0aWNsZXMgYXNzaWduZWQgdG8gYSBnaXZlbiBjYXRlZ29yeS48 L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGggc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRs ZTt3aGl0ZS1zcGFjZTogbm93cmFwOyI+YXR0cmlidXRlIG5hbWU8L3RoPgoJCQk8dGggc3R5 bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTogbm93cmFwOyI+ZGVzY3Jp cHRpb248L3RoPgoJCQk8dGggc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1z cGFjZTogbm93cmFwOyI+ZGVmYXVsdCB2YWx1ZTwvdGg+CgkJCTx0aCBzdHlsZT0idmVydGlj YWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOiBub3dyYXA7Ij5leGFtcGxlIHVzYWdlPC90 aD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPnNlY3Rpb248L3RkPgoJCQk8dGQ+QWNjZXB0cyBh IGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHNlY3Rpb25zIHRoYXQgcG9zdHMgYXJlIGxpc3Rl ZCBmcm9tLiAgTk8gc3BhY2VzIGFmdGVyIGNvbW1hcy4KV2lsZGNhcmRzIGFuZCBuZWdhdGl2 ZXMgY2FuIGFsc28gYmUgdXNlZCB3aGVuIHNwZWNpZnlpbmcgc2VjdGlvbnMuIEZvciBpbnN0 YW5jZSwgc2VjdGlvbj0mIzgyMjE7KiYjODIyMTsgKGFsbCBzZWN0aW9ucywgcmVnYXJkbGVz cyBvZiBob3cgbWFueSksIHNlY3Rpb249JiM4MjIxOyFwaG90b3Msd3JpdGluZyx0aG91Z2h0 cyYjODIyMTsgKHdyaXRpbmcgPHNwYW4gY2xhc3M9ImNhcHMiPkFORDwvc3Bhbj4gdGhvdWdo dHMgPHNwYW4gY2xhc3M9ImNhcHMiPkFORDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImNhcHMiPk5P VDwvc3Bhbj4gcGhvdG9zKSwgb3IganVzdCBzZWN0aW9uPSYjODIyMTshcGhvdG9zJiM4MjIx OyAoYWxsIHNlY3Rpb25zIGV4Y2VwdCBwaG90b3MpLjwvdGQ+CgkJCTx0ZD5hcnRpY2xlPC90 ZD4KCQkJPHRkPnNlY3Rpb249JiM4MjIwO3NlY3Rpb25PbmUsc2VjdGlvblR3byYjODIyMTs8 L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+dGltZTwvdGQ+CgkJCTx0ZD5BY2NlcHRzIG9u ZSBvZiAzIG9wdGlvbnMgJiM4MjIwO3Bhc3QmIzgyMjE7LCAmIzgyMjA7ZnV0dXJlJiM4MjIx OyBvciAmIzgyMjA7YW55JiM4MjIxOy4gIEJ5IGRlZmF1bHQgKHBhc3QpIHdpbGwgZGlzcGxh eSBhcnRpY2xlcyB3aXRoIGEgcG9zdGVkIGRhdGUgYmVmb3JlIHRoZSBjdXJyZW50IGRhdGUv dGltZS4KU2VsZWN0aW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5GVVRVUkU8L3NwYW4+IHdpbGwg ZGlzcGxheSBhcnRpY2xlcyB3aXRoIGEgcG9zdGVkIGRhdGUgYWZ0ZXIgdGhlIGN1cnJlbnQg ZGF0ZS90aW1lLiAgU2VsZWN0aW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5BTEw8L3NwYW4+IHdp bGwgZGlzcGxheSBhbGwgYXJ0aWNsZXMgcmVnYXJkbGVzcyBvZiBwb3N0ZWQgZGF0ZS48L3Rk PgoJCQk8dGQ+cGFzdDwvdGQ+CgkJCTx0ZD50aW1lPSYjODIyMDthbnkmIzgyMjE7PC90ZD4K CQk8L3RyPgoJCTx0cj4KCQkJPHRkPm5hbWU8L3RkPgoJCQk8dGQ+VGhlIGNhdGVnb3J5IG5h bWUgdG8gY291bnQuPC90ZD4KCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCTx0ZD5uYW1lPSYjODIy MDtteWNhdGVnb3J5JiM4MjIxOzwvdGQ+CgkJPC90cj4KCTwvdGFibGU+CgoJPHRhYmxlIHN0 eWxlPSJjb2xvcjojMzMzO2ZvbnQ6bm9ybWFsIDFlbSB2ZXJkYW5hO3dpZHRoOiA5MCU7cGFk ZGluZzogMCAwIDIwcHg7bWFyZ2luOiAwIGF1dG8gMjBweDtib3JkZXItYm90dG9tOjFweCBz b2xpZCAjNjY2OyIgaWQ9Imxpc3QiPgoJCTx0cj4KCQkJPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1h bGlnbjptaWRkbGU7Zm9udDpub3JtYWwgYm9sZCAxLjRlbSBnZW9yZ2lhO3RleHQtYWxpZ246 bGVmdDtjb2xvcjojNTAwOyIgaWQ9InJzc19pZl9hcnRpY2xlX3VubGltaXRlZF9jYXRlZ29y eSIgY29sc3Bhbj0iNCI+cnNzX2lmX2FydGljbGVfdW5saW1pdGVkX2NhdGVnb3J5PC90ZD4K CQk8L3RyPgoJCTx0cj4KCQkJPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Zm9u dDpub3JtYWwgMS4xZW0gdmVyZGFuYTt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6IzAzNjsiIGNv bHNwYW49IjQiPkNvbmRpdGlvbmFsIHRhZyB0aGF0IHRlbGxzIGlmIGEgcGFydGljdWxhciBj YXRlZ29yeSBpcyBhc3NpZ25lZCB0byBhbiBhcnRpY2xlLiAgVGhpcyBpcyBhIHJlcGxhY2Vt ZW50IGZvciB0aGUgc3RhbmRhcmQgVGV4dHBhdHRlcm4gaWYgYXJ0aWNsZSBjYXRlZ29yeSB0 YWcuPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRoIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjpt aWRkbGU7d2hpdGUtc3BhY2U6IG5vd3JhcDsiPmF0dHJpYnV0ZSBuYW1lPC90aD4KCQkJPHRo IHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6IG5vd3JhcDsiPmRl c2NyaXB0aW9uPC90aD4KCQkJPHRoIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hp dGUtc3BhY2U6IG5vd3JhcDsiPmRlZmF1bHQgdmFsdWU8L3RoPgoJCQk8dGggc3R5bGU9InZl cnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTogbm93cmFwOyI+ZXhhbXBsZSB1c2Fn ZTwvdGg+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD5uYW1lPC90ZD4KCQkJPHRkPlRoZSBjYXRl Z29yeSBuYW1lIHRvIGNoZWNrLjwvdGQ+CgkJCTx0ZD4mbmJzcDs8L3RkPgoJCQk8dGQ+bmFt ZT0mIzgyMjA7bXljYXRlZ29yeSYjODIyMTs8L3RkPgoJCTwvdHI+Cgk8L3RhYmxlPgoKCTwv ZGl2PiI7czozOiJtZDUiO3M6MzI6IjYzNTRiMDhjNGJjMzkyMTZmNDc0MTJiMTk2NTA3NTE5 Ijt9