Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzAxMTkwMzczIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTcwMTE5MDM3NCIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LXA3MjUteG1hcy14My1zdGFud2ljay1waG90b3Bob3JlLW9mZmVyLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiJyk7CiAgICBwcm9kdWN0Q2FyZHMuZm9yRWFjaChmdW5jdGlvbiAoY2FyZCkgewogICAgICBpZiAoY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpICE9PSBudWxsKSB7CiAgICAgICAgbGlzdE5hbWUgPSBjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykuZ2V0QXR0cmlidXRlKCdndG0tdHJhY2tpbmctY3Jvc3NzZWxsJyk7CiAgICAgIH0KICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIHZhciBwcm9kdWN0RGF0YSA9IEpTT04ucGFyc2UoY2FyZC5nZXRBdHRyaWJ1dGUoJ2d0bS1jYXJkLWRhdGEnKSk7CiAgICAgICAgLy8gTmVlZCB0byBwdXNoIGxpc3ROYW1lCiAgICAgICAgcHJvZHVjdERhdGFbJ2l0ZW1fbGlzdF9uYW1lJ10gPSBsaXN0TmFtZTsKICAgICAgICAvLyBQdXNoIGNsaWNrZWQgcHJvZHVjdAogICAgICAgIGF4SXRlbS5wdXNoKHByb2R1Y3REYXRhKTsKICAgICAgICAvLyBTZW5kICJjbGljayIgZXZlbnQKICAgICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfY2xpY2snLAogICAgICAgICAgYXhJdGVtOiBheEl0ZW0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyBQdXNoIGFsbCBwcm9kdWN0IGluIGRhdGFMYXllcgogICAgYXhQcm9kdWN0TGlzdC5wdXNoKHsKICAgICAgaXRlbV9uYW1lOiAnUDcyNSBYTUFTIFgzIFNUQU5XSUNLK1BIT1RPUEhPUkUgT0ZGRVInLAogICAgICBpdGVtX2lkOiAnRVNQX1BST0RVQ1RfbzAwMXgwMl8xMDE2MzknLAogICAgICBwcmljZTogJzI2LDExIOKCrCcsCiAgICAgIGl0ZW1fYnJhbmQ6ICdTVEFOSE9NRScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnU1RBTkhPTUUnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0FtYmllbnRhZG9yZXMnLAogICAgICBpdGVtX2NhdGVnb3J5MzogJycsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIHByb2R1Y3QtbWluaWF0dXJlIHByb2R1Y3QtY2FyZC13cmFwcGVyIHVuZGVybGluZS1saW5rcy1ob3ZlciBndG0tY2FyZC1wcm9kdWN0IGd0bS1jYXJkLXByb2R1Y3QtcDcyNS14bWFzLXgzLXN0YW53aWNrLXBob3RvcGhvcmUtb2ZmZXItdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJQNzI1IFhNQVMgWDMgU1RBTldJQ0srUEhPVE9QSE9SRSBPRkZFUiIsCiAgICAgICAgICAgICJpdGVtX2lkIjogIkVTUF9QUk9EVUNUX28wMDF4MDJfMTAxNjM5IiwKICAgICAgICAgICAgInByaWNlIjogIjI2LDExIOKCrCIsCiAgICAgICAgICAgICJpdGVtX2JyYW5kIjogIlNUQU5IT01FIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkxIjogIiIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MiI6ICJhaXItZnJlc2hlbmVycyIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MyI6IG51bGwsCiAgICAgICAgICAgICJpdGVtX3ZhcmlhbnQiOiAiRGVmYXVsdCBUaXRsZSIKICAgICAgICB9CiAgICAnPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNzZXQ9Ii8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X09TX1A3MjVfNTdiNWZhYzgtNzRmMy00ZmEyLTk4MzYtNjQzODNlMDk4NmI1LmpwZz92PTE3MzI4MTQyODMmd2lkdGg9MTY1IDE2NXcsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfT1NfUDcyNV81N2I1ZmFjOC03NGYzLTRmYTItOTgzNi02NDM4M2UwOTg2YjUuanBnP3Y9MTczMjgxNDI4MyZ3aWR0aD0zNjAgMzYwdywvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9FU1BfcHJvZHVjdF9PU19QNzI1XzU3YjVmYWM4LTc0ZjMtNGZhMi05ODM2LTY0MzgzZTA5ODZiNS5qcGc/dj0xNzMyODE0MjgzJndpZHRoPTUzMyA1MzN3LC8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X09TX1A3MjVfNTdiNWZhYzgtNzRmMy00ZmEyLTk4MzYtNjQzODNlMDk4NmI1LmpwZz92PTE3MzI4MTQyODMmd2lkdGg9NzIwIDcyMHcsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfT1NfUDcyNV81N2I1ZmFjOC03NGYzLTRmYTItOTgzNi02NDM4M2UwOTg2YjUuanBnP3Y9MTczMjgxNDI4MyZ3aWR0aD05NDAgOTQwdywvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9FU1BfcHJvZHVjdF9PU19QNzI1XzU3YjVmYWM4LTc0ZjMtNGZhMi05ODM2LTY0MzgzZTA5ODZiNS5qcGc/dj0xNzMyODE0MjgzJndpZHRoPTEwNjYgMTA2NncsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfT1NfUDcyNV81N2I1ZmFjOC03NGYzLTRmYTItOTgzNi02NDM4M2UwOTg2YjUuanBnP3Y9MTczMjgxNDI4MyAxMjAwdwogICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X09TX1A3MjVfNTdiNWZhYzgtNzRmMy00ZmEyLTk4MzYtNjQzODNlMDk4NmI1LmpwZz92PTE3MzI4MTQyODMmd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iUDcyNSBYTUFTIFgzIFNUQU5XSUNLK1BIT1RPUEhPUkUgT0ZGRVIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfODA5ODAwNTk3NTIxNSIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSI4MDk4MDA1OTc1MjE1IiBkYXRhLXZhcmlhbnQtaWQ9IjQ0NTExNTA1NDQ5MTM1IiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwOi8vd3d3LnN0YW5ob21lLmVzL3Byb2R1Y3RzL3A3MjUteG1hcy14My1zdGFud2ljay1waG90b3Bob3JlLW9mZmVyIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUQU5IT01FCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxwIGNsYXNzPSJjYXJkX19oZWFkaW5nIGg1IiAgaWQ9InRpdGxlLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTgwOTgwMDU5NzUyMTUiID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL3A3MjUteG1hcy14My1zdGFud2ljay1waG90b3Bob3JlLW9mZmVyIiBpZD0iQ2FyZExpbmstdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODA5ODAwNTk3NTIxNSIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi04MDk4MDA1OTc1MjE1IEJhZGdlLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTgwOTgwMDU5NzUyMTUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgMyBTdGFud2lja3MgYSBlbGVnaXIgKyBmb3TDs2Zvcm8gZ3JhdGlzIAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBQNzI1IFhNQVMgWDMgU1RBTldJQ0srUEhPVE9QSE9SRSBPRkZFUgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZWNpbyBoYWJpdHVhbDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgIDI2LDExIOKCrAogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InByaWNlX19zYWxlIj4KICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZWNpbyBkZSBvZmVydGE8L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgMjYsMTEg4oKsCiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmVjaW8gaGFiaXR1YWw8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgICA8cyBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgICAgCiAgICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgPC9zPgogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxzbWFsbCBjbGFzcz0idW5pdC1wcmljZSBjYXB0aW9uIGhpZGRlbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZWNpbyB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPiZuYnNwO3BvciZuYnNwOzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvc3Bhbj4KICAgIDwvc21hbGw+CiAgPC9kaXY+PC9kaXY+Cgo8L2Rpdj48YSBocmVmPSIvcHJvZHVjdHMvcDcyNS14bWFzLXgzLXN0YW53aWNrLXBob3RvcGhvcmUtb2ZmZXIiIGNsYXNzPSJxdWljay1hZGQgcXVpY2stYWRkLWV5ZSBxdWljay1hZGQtbW9iaWxlIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9Imljb24gaWNvbi1leWUiIHdpZHRoPSIyNC43NjQiIGhlaWdodD0iMTMuMzE4Ij4KICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9Ii43IiBjbGlwLXBhdGg9InVybCgjcHJlZml4X19hKSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMiAxKSI+CiAgPHBhdGggZD0iTTEwLjQ4LjQ0aC4wMzdhMTEuOTgzIDExLjk4MyAwIDAgMSA1LjY0MSAxLjQyNEExMi4yNTMgMTIuMjUzIDAgMCAxIDE4LjUgMy40OTdhMTIuNDU3IDEyLjQ1NyAwIDAgMSAxLjczNCAxLjg5NCAxMi40MjIgMTIuNDIyIDAgMCAxLTEuNzI4IDIuMTA2IDEyLjA3NyAxMi4wNzcgMCAwIDEtMi4zNzkgMS44MSAxMS42NzYgMTEuNjc2IDAgMCAxLTIuNzcxIDEuMTYxIDExLjYgMTEuNiAwIDAgMS0zLjA2My40MWgtLjAzOWExMS42MTMgMTEuNjEzIDAgMCAxLTIuOTc2LS40IDExLjY2MyAxMS42NjMgMCAwIDEtMi43LTEuMTA2IDEyLjA0NyAxMi4wNDcgMCAwIDEtMi4zMzUtMS43MTcgMTIuNCAxMi40IDAgMCAxLTEuNzEyLTIgMTIuNDY0IDEyLjQ2NCAwIDAgMSAxLjc1My0yIDEyLjI3MSAxMi4yNzEgMCAwIDEgMi4zODgtMS43MjMgMTEuOTgyIDExLjk4MiAwIDAgMSA1LjgtMS40OTNabTAtLjQ0QTEyLjU4NyAxMi41ODcgMCAwIDAgMCA1LjY1NWExMi4zIDEyLjMgMCAwIDAgMTAuMjUzIDUuNjYzaC4wNGExMi4zMjQgMTIuMzI0IDAgMCAwIDEwLjQ3MS01Ljk0MkExMi41NzUgMTIuNTc1IDAgMCAwIDEwLjUxOC0uMDAzaC0uMDQxIi8+CiAgPHBhdGggZD0iTTEwLjM4Mi43MzRhNC43NDEgNC43NDEgMCAwIDEgMi43LjgzOSA0Ljg4OSA0Ljg4OSAwIDAgMSAuNzE1LjYgNC45NSA0Ljk1IDAgMCAxIDEuMzE5IDIuNDkzIDUuMDggNS4wOCAwIDAgMSAwIDEuOTkxIDQuOTQ4IDQuOTQ4IDAgMCAxLTEuMzE5IDIuNDkzIDQuODg5IDQuODg5IDAgMCAxLS43MTUuNiA0LjggNC44IDAgMCAxLS44Mi40NTMgNC43NDkgNC43NDkgMCAwIDEtMy43NTMgMCA0LjggNC44IDAgMCAxLS44Mi0uNDUzIDQuOTE1IDQuOTE1IDAgMCAxLTEuMzA2LTEuMzMxIDQuOTQ5IDQuOTQ5IDAgMCAxLS43MjgtMS43NjMgNS4wOCA1LjA4IDAgMCAxIDAtMS45OTEgNC45NDQgNC45NDQgMCAwIDEgMS4zMTktMi40OTMgNC44ODkgNC44ODkgMCAwIDEgLjcxNS0uNiA0LjggNC44IDAgMCAxIC44Mi0uNDUzIDQuNzMgNC43MyAwIDAgMSAxLjg3Ny0uMzg2bTAtLjVhNS40MjkgNS40MjkgMCAxIDAgNS4zMyA1LjQyOSA1LjM4IDUuMzggMCAwIDAtNS4zMy01LjQyOSIvPgogIDxwYXRoIGQ9Ik0xMy4wODMgNS43NTlhMi42ODMgMi42ODMgMCAxIDEtMi42ODItMi43MzIgMi43MDcgMi43MDcgMCAwIDEgMi42ODIgMi43MzIiLz4KICA8L2c+Cjwvc3ZnPgogIDwvYT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudC1ob3ZlciI+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF84MDk4MDA1OTc1MjE1IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjgwOTgwMDU5NzUyMTUiIGRhdGEtdmFyaWFudC1pZD0iNDQ1MTE1MDU0NDkxMzUiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHA6Ly93d3cuc3RhbmhvbWUuZXMvcHJvZHVjdHMvcDcyNS14bWFzLXgzLXN0YW53aWNrLXBob3RvcGhvcmUtb2ZmZXIiPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMyBTdGFud2lja3MgYSBlbGVnaXIgKyBmb3TDs2Zvcm8gZ3JhdGlzCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBQNzI1IFhNQVMgWDMgU1RBTldJQ0srUEhPVE9QSE9SRSBPRkZFUgogICAgICAgICAgICAgICAgICAgIDwvZGl2Pjx1bCBjbGFzcz0ibGlzdC11bnN0eWxlZCBjYXJkX192YXJpYW50LWtleV9wb2ludHMiPjxsaT48c3Bhbj41IGZyYWdhbmNpYXMgYSBlbGVnaXI8L3NwYW4+PC9saT48bGk+PHNwYW4+QWJzb3JiZSBsb3MgbWFsb3Mgb2xvcmVzPC9zcGFuPjwvbGk+PGxpPjxzcGFuPkVmaWNheiBoYXN0YSAxOCBzZW1hbmFzLjwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PGEgaHJlZj0iL3Byb2R1Y3RzL3A3MjUteG1hcy14My1zdGFud2ljay1waG90b3Bob3JlLW9mZmVyIiBjbGFzcz0icXVpY2stYWRkX19saW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENSRUEgVFUgQ0FKQQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pg==
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzAxMTkwMzczIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTcwMTE5MDM3NCIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LXA3MjYteG1hcy14My1zdGFud2ljay1sYW50ZXJuZS1ldG9pbGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2InKTsKICAgIHByb2R1Y3RDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uIChjYXJkKSB7CiAgICAgIGlmIChjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykgIT09IG51bGwpIHsKICAgICAgICBsaXN0TmFtZSA9IGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKS5nZXRBdHRyaWJ1dGUoJ2d0bS10cmFja2luZy1jcm9zc3NlbGwnKTsKICAgICAgfQogICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgdmFyIHByb2R1Y3REYXRhID0gSlNPTi5wYXJzZShjYXJkLmdldEF0dHJpYnV0ZSgnZ3RtLWNhcmQtZGF0YScpKTsKICAgICAgICAvLyBOZWVkIHRvIHB1c2ggbGlzdE5hbWUKICAgICAgICBwcm9kdWN0RGF0YVsnaXRlbV9saXN0X25hbWUnXSA9IGxpc3ROYW1lOwogICAgICAgIC8vIFB1c2ggY2xpY2tlZCBwcm9kdWN0CiAgICAgICAgYXhJdGVtLnB1c2gocHJvZHVjdERhdGEpOwogICAgICAgIC8vIFNlbmQgImNsaWNrIiBldmVudAogICAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9jbGljaycsCiAgICAgICAgICBheEl0ZW06IGF4SXRlbQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwoKICAgIC8vIFB1c2ggYWxsIHByb2R1Y3QgaW4gZGF0YUxheWVyCiAgICBheFByb2R1Y3RMaXN0LnB1c2goewogICAgICBpdGVtX25hbWU6ICdQNzI2IFhNQVMgWDMgU1RBTldJQ0srTEFOVEVSTkUgRVRPSUxFJywKICAgICAgaXRlbV9pZDogJ0VTUF9QUk9EVUNUX28wMDF4MDJfMTAxNjQwJywKICAgICAgcHJpY2U6ICcyNiwxMSDigqwnLAogICAgICBpdGVtX2JyYW5kOiAnU1RBTkhPTUUnLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ1NUQU5IT01FJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdBbWJpZW50YWRvcmVzJywKICAgICAgaXRlbV9jYXRlZ29yeTM6ICcnLAogICAgICBpdGVtX3ZhcmlhbnQ6ICdEZWZhdWx0IFRpdGxlJywKICAgICAgaXRlbV9saXN0X25hbWU6IGxpc3ROYW1lCiAgICB9KTsKCiAgICAvLyBTZW5kICJmaW5pc2hlZCIgZXZlbnQKICAgIGlmIChheFByb2R1Y3RMaXN0Lmxlbmd0aCA9PT0gd2luZG93LnRoZW1lLml0ZW1zX2NvdW50KSB7CiAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfbGlzdF9jb21wbGV0ZScsCiAgICAgICAgYXhQcm9kdWN0TGlzdDogYXhQcm9kdWN0TGlzdCwKICAgICAgfSk7CiAgICB9CiAgfSk7CgogIGZ1bmN0aW9uIGNsaWNrUHJvZHVjdChwcm9kdWN0RGF0YSkge30KPC9zY3JpcHQ+CgoKPHNjcmlwdCBkZWZlcj4KICBmdW5jdGlvbiBzd3ltQ2FsbGJhY2tGbihzd2F0KSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzd3ltOmNvbGxlY3Rpb25zLWxvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgc3dhdC5pbml0aWFsaXplQWN0aW9uQnV0dG9ucygnPDxDb2xsZWN0aW9ucyBHcmlkIFBBUkVOVCBTZWxlY3RvciA+PicpOwogICAgfSk7CiAgfQogIGlmICghd2luZG93LlN3eW1DYWxsYmFja3MpIHsKICAgIHdpbmRvdy5Td3ltQ2FsbGJhY2tzID0gW107CiAgfQogIHdpbmRvdy5Td3ltQ2FsbGJhY2tzLnB1c2goc3d5bUNhbGxiYWNrRm4pOwo8L3NjcmlwdD4KCgogICAgCiAgICAKICAgIDxkaXYgY2xhc3M9ImNhcmQtd3JhcHBlciBwcm9kdWN0LW1pbmlhdHVyZSBwcm9kdWN0LWNhcmQtd3JhcHBlciB1bmRlcmxpbmUtbGlua3MtaG92ZXIgZ3RtLWNhcmQtcHJvZHVjdCBndG0tY2FyZC1wcm9kdWN0LXA3MjYteG1hcy14My1zdGFud2ljay1sYW50ZXJuZS1ldG9pbGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJQNzI2IFhNQVMgWDMgU1RBTldJQ0srTEFOVEVSTkUgRVRPSUxFIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiRVNQX1BST0RVQ1RfbzAwMXgwMl8xMDE2NDAiLAogICAgICAgICAgICAicHJpY2UiOiAiMjYsMTEg4oKsIiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiU1RBTkhPTUUiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkyIjogImFpci1mcmVzaGVuZXJzIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkzIjogbnVsbCwKICAgICAgICAgICAgIml0ZW1fdmFyaWFudCI6ICJEZWZhdWx0IFRpdGxlIgogICAgICAgIH0KICAgICc+CiAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9IgogICAgICAgIGNhcmQgY2FyZC0tc3RhbmRhcmQKICAgICAgICAgY2FyZC0tbWVkaWEKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgIgogICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgPgogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNhcmRfX2lubmVyIGNvbG9yLWJhY2tncm91bmQtMSBncmFkaWVudCByYXRpbyIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICAgICAgPjxkaXYgY2xhc3M9ImNhcmRfX21lZGlhIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtLXRyYW5zcGFyZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY3NldD0iLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfT1NfUDcyNl9mODE0YmQ4YS1iM2I0LTQxYTUtOWJkYi1kZjQ0YjBkOWYzYWYuanBnP3Y9MTczMjgxNDMxMSZ3aWR0aD0xNjUgMTY1dywvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9FU1BfcHJvZHVjdF9PU19QNzI2X2Y4MTRiZDhhLWIzYjQtNDFhNS05YmRiLWRmNDRiMGQ5ZjNhZi5qcGc/dj0xNzMyODE0MzExJndpZHRoPTM2MCAzNjB3LC8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X09TX1A3MjZfZjgxNGJkOGEtYjNiNC00MWE1LTliZGItZGY0NGIwZDlmM2FmLmpwZz92PTE3MzI4MTQzMTEmd2lkdGg9NTMzIDUzM3csLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfT1NfUDcyNl9mODE0YmQ4YS1iM2I0LTQxYTUtOWJkYi1kZjQ0YjBkOWYzYWYuanBnP3Y9MTczMjgxNDMxMSZ3aWR0aD03MjAgNzIwdywvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9FU1BfcHJvZHVjdF9PU19QNzI2X2Y4MTRiZDhhLWIzYjQtNDFhNS05YmRiLWRmNDRiMGQ5ZjNhZi5qcGc/dj0xNzMyODE0MzExJndpZHRoPTk0MCA5NDB3LC8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X09TX1A3MjZfZjgxNGJkOGEtYjNiNC00MWE1LTliZGItZGY0NGIwZDlmM2FmLmpwZz92PTE3MzI4MTQzMTEmd2lkdGg9MTA2NiAxMDY2dywvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9FU1BfcHJvZHVjdF9PU19QNzI2X2Y4MTRiZDhhLWIzYjQtNDFhNS05YmRiLWRmNDRiMGQ5ZjNhZi5qcGc/dj0xNzMyODE0MzExIDEyMDB3CiAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfT1NfUDcyNl9mODE0YmQ4YS1iM2I0LTQxYTUtOWJkYi1kZjQ0YjBkOWYzYWYuanBnP3Y9MTczMjgxNDMxMSZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJQNzI2IFhNQVMgWDMgU1RBTldJQ0srTEFOVEVSTkUgRVRPSUxFIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibW90aW9uLXJlZHVjZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzgwOTgwMDYzMDI4OTUiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iODA5ODAwNjMwMjg5NSIgZGF0YS12YXJpYW50LWlkPSI0NDUxMTUwNTc3NjgxNSIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cDovL3d3dy5zdGFuaG9tZS5lcy9wcm9kdWN0cy9wNzI2LXhtYXMteDMtc3RhbndpY2stbGFudGVybmUtZXRvaWxlIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUQU5IT01FCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxwIGNsYXNzPSJjYXJkX19oZWFkaW5nIGg1IiAgaWQ9InRpdGxlLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTgwOTgwMDYzMDI4OTUiID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL3A3MjYteG1hcy14My1zdGFud2ljay1sYW50ZXJuZS1ldG9pbGUiIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi04MDk4MDA2MzAyODk1IiBjbGFzcz0iZnVsbC11bnN0eWxlZC1saW5rIGZ1bGwtdW5zdHlsZWQtbGluay1wcm9kdWN0IiBhcmlhLWxhYmVsbGVkYnk9IkNhcmRMaW5rLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTgwOTgwMDYzMDI4OTUgQmFkZ2UtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODA5ODAwNjMwMjg5NSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAzIFN0YW53aWNrIGEgZWxlZ2lyICsgRmFyb2xpbGxvIG9mcmVjaWRvIAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBQNzI2IFhNQVMgWDMgU1RBTldJQ0srTEFOVEVSTkUgRVRPSUxFCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbmZvcm1hdGlvbiI+PHNwYW4gY2xhc3M9ImNhcHRpb24tbGFyZ2UgbGlnaHQiPjwvc3Bhbj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uLWZvcm0tcmF0aW5nLXByaWNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhdGluZy1wcmljZSI+CjxkaXYKICBjbGFzcz0iCiAgICBwcmljZSAiCj4KICA8ZGl2IGNsYXNzPSJwcmljZV9fY29udGFpbmVyIj48ZGl2IGNsYXNzPSJwcmljZV9fcmVndWxhciI+PHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlY2lvIGhhYml0dWFsPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgMjYsMTEg4oKsCiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJpY2VfX3NhbGUiPgogICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlY2lvIGRlIG9mZXJ0YTwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICAyNiwxMSDigqwKICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZWNpbyBoYWJpdHVhbDwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICA8L3M+CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPHNtYWxsIGNsYXNzPSJ1bml0LXByaWNlIGNhcHRpb24gaGlkZGVuIj4KICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+UHJlY2lvIHVuaXRhcmlvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cG9yJm5ic3A7PC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9zcGFuPgogICAgPC9zbWFsbD4KICA8L2Rpdj48L2Rpdj4KCjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBxdWljay1hZGQtbW9iaWxlIG5vLWpzLWhpZGRlbiBleHRyYS1sYXJnZS11cC1oaWRlIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I4MDk4MDA2MzAyODk1IiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjQ0NTExNTA1Nzc2ODE1IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiODA5ODAwNjMwMjg5NS1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjgwOTgwMDYzMDI4OTUtc3VibWl0IHRpdGxlLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTgwOTgwMDYzMDI4OTUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZwogIGNsYXNzPSJpY29uIHNoLWljb24tY2FydC1lbXB0eSIKICBhcmlhLWhpZGRlbj0idHJ1ZSIKICBmb2N1c2FibGU9ImZhbHNlIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB2aWV3Qm94PSIwIDAgMTggMjIiCiAgZmlsbD0ibm9uZSIKPgogIDxwYXRoIGQ9Ik0xNi40MTkgNC43MTN2MTQuMzQ4YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5IDIuNjA3SDMuMzc2YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5LTIuNjA3VjQuNzEzWiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KICA8cGF0aCBkPSJNNC42NDcgNy4zMjFWNC43MTJhMy45NDYgMy45NDYgMCAxIDEgNy44OTEgMHYyLjYwOSIgIHN0cm9rZT0iY3VycmVudENvbG9yIi8+Cjwvc3ZnPgogIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZ290YWRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL3QvNi9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MDExOTAzNzYiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9IjgwOTgwMDYzMDI4OTUiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbi1pZCIgdmFsdWU9InRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiAvPjwvZm9ybT48L3Byb2R1Y3QtZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudC1ob3ZlciI+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF84MDk4MDA2MzAyODk1IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjgwOTgwMDYzMDI4OTUiIGRhdGEtdmFyaWFudC1pZD0iNDQ1MTE1MDU3NzY4MTUiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHA6Ly93d3cuc3RhbmhvbWUuZXMvcHJvZHVjdHMvcDcyNi14bWFzLXgzLXN0YW53aWNrLWxhbnRlcm5lLWV0b2lsZSI+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAzIFN0YW53aWNrIGEgZWxlZ2lyICsgRmFyb2xpbGxvIG9mcmVjaWRvCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBQNzI2IFhNQVMgWDMgU1RBTldJQ0srTEFOVEVSTkUgRVRPSUxFCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHVsIGNsYXNzPSJsaXN0LXVuc3R5bGVkIGNhcmRfX3ZhcmlhbnQta2V5X3BvaW50cyI+PGxpPjxzcGFuPjUgZnJhZ2FuY2lhcyBhIGVsZWdpcjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5BYnNvcmJlIGxvcyBtYWxvcyBvbG9yZXM8L3NwYW4+PC9saT48bGk+PHNwYW4+RWZpY2F6IGhhc3RhIDE4IHNlbWFuYXMuPC9zcGFuPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I4MDk4MDA2MzAyODk1IiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJoaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjQ0NTExNTA1Nzc2ODE1IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9kdWN0LXZhcmlhbnQtaWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I4MDk4MDA2MzAyODk1LXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I4MDk4MDA2MzAyODk1LXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi04MDk4MDA2MzAyODk1IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+QWdyZWdhciBhbCBjYXJyaXRvIC0gPHNwYW4gY2xhc3M9ImJ1dHRvbl9fcHJpY2UiPjI2LDExIOKCrDwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZ290YWRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzAxMTkwMzc2IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSI4MDk4MDA2MzAyODk1IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzAxMTkwMzczIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTcwMTE5MDM3NCIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LXA3Mi1jMTItYXF1aWxhdW4tNzUwbWwtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2InKTsKICAgIHByb2R1Y3RDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uIChjYXJkKSB7CiAgICAgIGlmIChjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykgIT09IG51bGwpIHsKICAgICAgICBsaXN0TmFtZSA9IGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKS5nZXRBdHRyaWJ1dGUoJ2d0bS10cmFja2luZy1jcm9zc3NlbGwnKTsKICAgICAgfQogICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgdmFyIHByb2R1Y3REYXRhID0gSlNPTi5wYXJzZShjYXJkLmdldEF0dHJpYnV0ZSgnZ3RtLWNhcmQtZGF0YScpKTsKICAgICAgICAvLyBOZWVkIHRvIHB1c2ggbGlzdE5hbWUKICAgICAgICBwcm9kdWN0RGF0YVsnaXRlbV9saXN0X25hbWUnXSA9IGxpc3ROYW1lOwogICAgICAgIC8vIFB1c2ggY2xpY2tlZCBwcm9kdWN0CiAgICAgICAgYXhJdGVtLnB1c2gocHJvZHVjdERhdGEpOwogICAgICAgIC8vIFNlbmQgImNsaWNrIiBldmVudAogICAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9jbGljaycsCiAgICAgICAgICBheEl0ZW06IGF4SXRlbQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwoKICAgIC8vIFB1c2ggYWxsIHByb2R1Y3QgaW4gZGF0YUxheWVyCiAgICBheFByb2R1Y3RMaXN0LnB1c2goewogICAgICBpdGVtX25hbWU6ICdQNzIgQzEyIEFRVUlMQVVOIDc1ME1MJywKICAgICAgaXRlbV9pZDogJ0VTUF9QUk9EVUNUX28wMDF4MDJfMTAxNzQ0JywKICAgICAgcHJpY2U6ICc4LDQ3IOKCrCcsCiAgICAgIGl0ZW1fYnJhbmQ6ICdTVEFOSE9NRScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnU1RBTkhPTUUnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0FsbCBwcm9kdWN0cycsCiAgICAgIGl0ZW1fY2F0ZWdvcnkzOiAnJywKICAgICAgaXRlbV92YXJpYW50OiAnRGVmYXVsdCBUaXRsZScsCiAgICAgIGl0ZW1fbGlzdF9uYW1lOiBsaXN0TmFtZQogICAgfSk7CgogICAgLy8gU2VuZCAiZmluaXNoZWQiIGV2ZW50CiAgICBpZiAoYXhQcm9kdWN0TGlzdC5sZW5ndGggPT09IHdpbmRvdy50aGVtZS5pdGVtc19jb3VudCkgewogICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2xpc3RfY29tcGxldGUnLAogICAgICAgIGF4UHJvZHVjdExpc3Q6IGF4UHJvZHVjdExpc3QsCiAgICAgIH0pOwogICAgfQogIH0pOwoKICBmdW5jdGlvbiBjbGlja1Byb2R1Y3QocHJvZHVjdERhdGEpIHt9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgZGVmZXI+CiAgZnVuY3Rpb24gc3d5bUNhbGxiYWNrRm4oc3dhdCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3d5bTpjb2xsZWN0aW9ucy1sb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHN3YXQuaW5pdGlhbGl6ZUFjdGlvbkJ1dHRvbnMoJzw8Q29sbGVjdGlvbnMgR3JpZCBQQVJFTlQgU2VsZWN0b3IgPj4nKTsKICAgIH0pOwogIH0KICBpZiAoIXdpbmRvdy5Td3ltQ2FsbGJhY2tzKSB7CiAgICB3aW5kb3cuU3d5bUNhbGxiYWNrcyA9IFtdOwogIH0KICB3aW5kb3cuU3d5bUNhbGxiYWNrcy5wdXNoKHN3eW1DYWxsYmFja0ZuKTsKPC9zY3JpcHQ+CgoKICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC1wNzItYzEyLWFxdWlsYXVuLTc1MG1sLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiBndG0tY2FyZC1kYXRhPScKICAgICAgICB7CiAgICAgICAgICAgICJpdGVtX25hbWUiOiAiUDcyIEMxMiBBUVVJTEFVTiA3NTBNTCIsCiAgICAgICAgICAgICJpdGVtX2lkIjogIkVTUF9QUk9EVUNUX28wMDF4MDJfMTAxNzQ0IiwKICAgICAgICAgICAgInByaWNlIjogIjgsNDcg4oKsIiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiU1RBTkhPTUUiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkyIjogImFsbC1wcm9kdWN0cyIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MyI6IG51bGwsCiAgICAgICAgICAgICJpdGVtX3ZhcmlhbnQiOiAiRGVmYXVsdCBUaXRsZSIKICAgICAgICB9CiAgICAnPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNzZXQ9Ii8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzU3MTI4XzFfYTg1ZTFmMGYtMGVkZi00NWVlLWE5MjQtY2MyNGQ1NGFiYTI3LmpwZz92PTE3MzI2MTU0MTImd2lkdGg9MTY1IDE2NXcsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNTcxMjhfMV9hODVlMWYwZi0wZWRmLTQ1ZWUtYTkyNC1jYzI0ZDU0YWJhMjcuanBnP3Y9MTczMjYxNTQxMiZ3aWR0aD0zNjAgMzYwdywvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF81NzEyOF8xX2E4NWUxZjBmLTBlZGYtNDVlZS1hOTI0LWNjMjRkNTRhYmEyNy5qcGc/dj0xNzMyNjE1NDEyIDQ5OXcKICAgICAgICAgICAgICAgICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF81NzEyOF8xX2E4NWUxZjBmLTBlZGYtNDVlZS1hOTI0LWNjMjRkNTRhYmEyNy5qcGc/dj0xNzMyNjE1NDEyJndpZHRoPTUzMyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZXM9IihtaW4td2lkdGg6IDE2MDBweCkgMzY3cHgsIChtaW4td2lkdGg6IDk5MHB4KSBjYWxjKCgxMDB2dyAtIDEzMHB4KSAvIDQpLCAobWluLXdpZHRoOiA3NTBweCkgY2FsYygoMTAwdncgLSAxMjBweCkgLyAzKSwgY2FsYygoMTAwdncgLSAzNXB4KSAvIDIpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9IlA3MiBDMTIgQVFVSUxBVU4gNzUwTUwiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjQ5OSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSI0OTkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzE0ODU0ODI2NDI2NzQyIiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjE0ODU0ODI2NDI2NzQyIiBkYXRhLXZhcmlhbnQtaWQ9IjU0ODI2ODU5OTU0NTUwIiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwOi8vd3d3LnN0YW5ob21lLmVzL3Byb2R1Y3RzL3A3Mi1jMTItYXF1aWxhdW4tNzUwbWwiPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19iYWRnZSB0b3AgbGVmdCI+PHNwYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9IkJhZGdlLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTE0ODU0ODI2NDI2NzQyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYmFkZ2UgYmFkZ2UtLWJvdHRvbS1sZWZ0IGNvbG9yLXNjaGVtZS1kNmE1YzAzNi02YzQ1LTQ3Y2YtYWRkNi1iYWRmZWZiNDVmZDkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+LTQwJQo8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPjxkaXYgY2xhc3M9ImNhcmRfX3R5cGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBTkhPTUUKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHAgY2xhc3M9ImNhcmRfX2hlYWRpbmcgaDUiICBpZD0idGl0bGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTQ4NTQ4MjY0MjY3NDIiID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL3A3Mi1jMTItYXF1aWxhdW4tNzUwbWwiIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xNDg1NDgyNjQyNjc0MiIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xNDg1NDgyNjQyNjc0MiBCYWRnZS10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xNDg1NDgyNjQyNjc0MiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXRlcmdlbnRlIGV4cGVydG8gcGFyYSBsYW5hIHkgcm9wYSBkZWxpY2FkYSAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgUDcyIEMxMiBBUVVJTEFVTiA3NTBNTAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIHByaWNlLS1vbi1zYWxlIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZWNpbyBoYWJpdHVhbDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgIDgsNDcg4oKsCiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJpY2VfX3NhbGUiPgogICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlY2lvIGRlIG9mZXJ0YTwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA4LDQ3IOKCrAogICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlY2lvIGhhYml0dWFsPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIDE0LDAxIOKCrAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiBoaWRkZW4iPgogICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5QcmVjaW8gdW5pdGFyaW88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+Lzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4mbmJzcDtwb3ImbmJzcDs8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjE0ODU0ODI2NDI2NzQyIiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjU0ODI2ODU5OTU0NTUwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTQ4NTQ4MjY0MjY3NDItc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxNDg1NDgyNjQyNjc0Mi1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTQ4NTQ4MjY0MjY3NDIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZwogIGNsYXNzPSJpY29uIHNoLWljb24tY2FydC1lbXB0eSIKICBhcmlhLWhpZGRlbj0idHJ1ZSIKICBmb2N1c2FibGU9ImZhbHNlIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB2aWV3Qm94PSIwIDAgMTggMjIiCiAgZmlsbD0ibm9uZSIKPgogIDxwYXRoIGQ9Ik0xNi40MTkgNC43MTN2MTQuMzQ4YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5IDIuNjA3SDMuMzc2YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5LTIuNjA3VjQuNzEzWiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KICA8cGF0aCBkPSJNNC42NDcgNy4zMjFWNC43MTJhMy45NDYgMy45NDYgMCAxIDEgNy44OTEgMHYyLjYwOSIgIHN0cm9rZT0iY3VycmVudENvbG9yIi8+Cjwvc3ZnPgogIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZ290YWRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL3QvNi9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MDExOTAzNzYiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9IjE0ODU0ODI2NDI2NzQyIiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQtaG92ZXIiPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTQ4NTQ4MjY0MjY3NDIiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTQ4NTQ4MjY0MjY3NDIiIGRhdGEtdmFyaWFudC1pZD0iNTQ4MjY4NTk5NTQ1NTAiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHA6Ly93d3cuc3RhbmhvbWUuZXMvcHJvZHVjdHMvcDcyLWMxMi1hcXVpbGF1bi03NTBtbCI+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXRlcmdlbnRlIGV4cGVydG8gcGFyYSBsYW5hIHkgcm9wYSBkZWxpY2FkYQogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgUDcyIEMxMiBBUVVJTEFVTiA3NTBNTAogICAgICAgICAgICAgICAgICAgIDwvZGl2Pjx1bCBjbGFzcz0ibGlzdC11bnN0eWxlZCBjYXJkX192YXJpYW50LWtleV9wb2ludHMiPjxsaT48c3Bhbj5MaW1waWEgeSB0acOxZSBlZmljYXptZW50ZSBsb3MgdGV4dGlsZXMgZGVsaWNhZG9zLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5TdSBhY2Npw7NuIGFudGlmaWVsdHJvIGF5dWRhIGEgcHJlc2VydmFyIGxhIHN1YXZpZGFkIHkgbGFzIGZpYnJhcyBkZWwgdGV4dGlsLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5Db250aWVuZSBtw6FzIGRlbCA4NyUgZGUgaW5ncmVkaWVudGVzIGRlIG9yaWdlbiBuYXR1cmFsLjwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTQ4NTQ4MjY0MjY3NDIiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTQ4MjY4NTk5NTQ1NTAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjE0ODU0ODI2NDI2NzQyLXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxNDg1NDgyNjQyNjc0Mi1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTQ4NTQ4MjY0MjY3NDIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BZ3JlZ2FyIGFsIGNhcnJpdG8gLSA8c3BhbiBjbGFzcz0iYnV0dG9uX19wcmljZSI+OCw0NyDigqw8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWdvdGFkbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKPGxpbmsgaHJlZj0iLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvdC82L2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTcwMTE5MDM3NiIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCjxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICA8c3ZnCiAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgIGZvY3VzYWJsZT0iZmFsc2UiCiAgICBjbGFzcz0ic3Bpbm5lciIKICAgIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICA+CiAgICA8Y2lyY2xlIGNsYXNzPSJwYXRoIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjYiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCI+PC9jaXJjbGU+CiAgPC9zdmc+CjwvZGl2Pgo8L2J1dHRvbj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iMTQ4NTQ4MjY0MjY3NDIiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbi1pZCIgdmFsdWU9InRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiAvPjwvZm9ybT48L3Byb2R1Y3QtZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4=
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzAxMTkwMzczIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTcwMTE5MDM3NCIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LXAyMTkteG1hcy10cmlvLWNyZW1lLXNlcnVtLWNvbnQtZWNoYXJwLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiJyk7CiAgICBwcm9kdWN0Q2FyZHMuZm9yRWFjaChmdW5jdGlvbiAoY2FyZCkgewogICAgICBpZiAoY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpICE9PSBudWxsKSB7CiAgICAgICAgbGlzdE5hbWUgPSBjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykuZ2V0QXR0cmlidXRlKCdndG0tdHJhY2tpbmctY3Jvc3NzZWxsJyk7CiAgICAgIH0KICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIHZhciBwcm9kdWN0RGF0YSA9IEpTT04ucGFyc2UoY2FyZC5nZXRBdHRyaWJ1dGUoJ2d0bS1jYXJkLWRhdGEnKSk7CiAgICAgICAgLy8gTmVlZCB0byBwdXNoIGxpc3ROYW1lCiAgICAgICAgcHJvZHVjdERhdGFbJ2l0ZW1fbGlzdF9uYW1lJ10gPSBsaXN0TmFtZTsKICAgICAgICAvLyBQdXNoIGNsaWNrZWQgcHJvZHVjdAogICAgICAgIGF4SXRlbS5wdXNoKHByb2R1Y3REYXRhKTsKICAgICAgICAvLyBTZW5kICJjbGljayIgZXZlbnQKICAgICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfY2xpY2snLAogICAgICAgICAgYXhJdGVtOiBheEl0ZW0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyBQdXNoIGFsbCBwcm9kdWN0IGluIGRhdGFMYXllcgogICAgYXhQcm9kdWN0TGlzdC5wdXNoKHsKICAgICAgaXRlbV9uYW1lOiAnUDIxOSBYTUFTIFRSSU8gQ1JFTUUrU0VSVU0rQ09OVCtFQ0hBUlAnLAogICAgICBpdGVtX2lkOiAnRVNQX1BST0RVQ1RfbzAwMXgwMl8xMDE3MTUnLAogICAgICBwcmljZTogJzg1LDYxIOKCrCcsCiAgICAgIGl0ZW1fYnJhbmQ6ICdEciBQaWVycmUgUmljYXVkJywKICAgICAgaXRlbV9jYXRlZ29yeTE6ICdEciBQaWVycmUgUmljYXVkJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdDdWlkYWRvIHkgcGVyZnVtZScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkzOiAnJywKICAgICAgaXRlbV92YXJpYW50OiAnRGVmYXVsdCBUaXRsZScsCiAgICAgIGl0ZW1fbGlzdF9uYW1lOiBsaXN0TmFtZQogICAgfSk7CgogICAgLy8gU2VuZCAiZmluaXNoZWQiIGV2ZW50CiAgICBpZiAoYXhQcm9kdWN0TGlzdC5sZW5ndGggPT09IHdpbmRvdy50aGVtZS5pdGVtc19jb3VudCkgewogICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2xpc3RfY29tcGxldGUnLAogICAgICAgIGF4UHJvZHVjdExpc3Q6IGF4UHJvZHVjdExpc3QsCiAgICAgIH0pOwogICAgfQogIH0pOwoKICBmdW5jdGlvbiBjbGlja1Byb2R1Y3QocHJvZHVjdERhdGEpIHt9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgZGVmZXI+CiAgZnVuY3Rpb24gc3d5bUNhbGxiYWNrRm4oc3dhdCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3d5bTpjb2xsZWN0aW9ucy1sb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHN3YXQuaW5pdGlhbGl6ZUFjdGlvbkJ1dHRvbnMoJzw8Q29sbGVjdGlvbnMgR3JpZCBQQVJFTlQgU2VsZWN0b3IgPj4nKTsKICAgIH0pOwogIH0KICBpZiAoIXdpbmRvdy5Td3ltQ2FsbGJhY2tzKSB7CiAgICB3aW5kb3cuU3d5bUNhbGxiYWNrcyA9IFtdOwogIH0KICB3aW5kb3cuU3d5bUNhbGxiYWNrcy5wdXNoKHN3eW1DYWxsYmFja0ZuKTsKPC9zY3JpcHQ+CgoKICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC1wMjE5LXhtYXMtdHJpby1jcmVtZS1zZXJ1bS1jb250LWVjaGFycC10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgZ3RtLWNhcmQtZGF0YT0nCiAgICAgICAgewogICAgICAgICAgICAiaXRlbV9uYW1lIjogIlAyMTkgWE1BUyBUUklPIENSRU1FK1NFUlVNK0NPTlQrRUNIQVJQIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiRVNQX1BST0RVQ1RfbzAwMXgwMl8xMDE3MTUiLAogICAgICAgICAgICAicHJpY2UiOiAiODUsNjEg4oKsIiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiRHIgUGllcnJlIFJpY2F1ZCIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MSI6ICIiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAiYmVhdXR5LWFuZC1wZXJmdW1lcyIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MyI6IG51bGwsCiAgICAgICAgICAgICJpdGVtX3ZhcmlhbnQiOiAiRGVmYXVsdCBUaXRsZSIKICAgICAgICB9CiAgICAnPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNzZXQ9Ii8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X0NTX1AyMTlfMDRlNTY2MDMtZjE1Yi00Y2E1LWFiMmMtZTNjMDhhOGQ0MzhlLmpwZz92PTE3Mjk1MDYxNTImd2lkdGg9MTY1IDE2NXcsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfQ1NfUDIxOV8wNGU1NjYwMy1mMTViLTRjYTUtYWIyYy1lM2MwOGE4ZDQzOGUuanBnP3Y9MTcyOTUwNjE1MiZ3aWR0aD0zNjAgMzYwdywvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9FU1BfcHJvZHVjdF9DU19QMjE5XzA0ZTU2NjAzLWYxNWItNGNhNS1hYjJjLWUzYzA4YThkNDM4ZS5qcGc/dj0xNzI5NTA2MTUyJndpZHRoPTUzMyA1MzN3LC8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X0NTX1AyMTlfMDRlNTY2MDMtZjE1Yi00Y2E1LWFiMmMtZTNjMDhhOGQ0MzhlLmpwZz92PTE3Mjk1MDYxNTImd2lkdGg9NzIwIDcyMHcsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfQ1NfUDIxOV8wNGU1NjYwMy1mMTViLTRjYTUtYWIyYy1lM2MwOGE4ZDQzOGUuanBnP3Y9MTcyOTUwNjE1MiZ3aWR0aD05NDAgOTQwdywvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9FU1BfcHJvZHVjdF9DU19QMjE5XzA0ZTU2NjAzLWYxNWItNGNhNS1hYjJjLWUzYzA4YThkNDM4ZS5qcGc/dj0xNzI5NTA2MTUyJndpZHRoPTEwNjYgMTA2NncsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfQ1NfUDIxOV8wNGU1NjYwMy1mMTViLTRjYTUtYWIyYy1lM2MwOGE4ZDQzOGUuanBnP3Y9MTcyOTUwNjE1MiAxMjAwdwogICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X0NTX1AyMTlfMDRlNTY2MDMtZjE1Yi00Y2E1LWFiMmMtZTNjMDhhOGQ0MzhlLmpwZz92PTE3Mjk1MDYxNTImd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iUDIxOSBYTUFTIFRSSU8gQ1JFTUUrU0VSVU0rQ09OVCtFQ0hBUlAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfODA5ODA4MDIyNzUwMyIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSI4MDk4MDgwMjI3NTAzIiBkYXRhLXZhcmlhbnQtaWQ9IjQ0NTExNjE5MDg4NTU5IiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwOi8vd3d3LnN0YW5ob21lLmVzL3Byb2R1Y3RzL3AyMTkteG1hcy10cmlvLWNyZW1lLXNlcnVtLWNvbnQtZWNoYXJwIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIERyIFBpZXJyZSBSaWNhdWQKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHAgY2xhc3M9ImNhcmRfX2hlYWRpbmcgaDUiICBpZD0idGl0bGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODA5ODA4MDIyNzUwMyIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvcDIxOS14bWFzLXRyaW8tY3JlbWUtc2VydW0tY29udC1lY2hhcnAiIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi04MDk4MDgwMjI3NTAzIiBjbGFzcz0iZnVsbC11bnN0eWxlZC1saW5rIGZ1bGwtdW5zdHlsZWQtbGluay1wcm9kdWN0IiBhcmlhLWxhYmVsbGVkYnk9IkNhcmRMaW5rLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTgwOTgwODAyMjc1MDMgQmFkZ2UtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODA5ODA4MDIyNzUwMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcsOtbyBkZSBjcmVtYSwgc8OpcnVtIHkgY29udG9ybm8gZGUgb2pvcyBhbnRpYXJydWdhcyArIHBhw7F1ZWxvIExhdmlsbGUgZGUgcmVnYWxvIAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBQMjE5IFhNQVMgVFJJTyBDUkVNRStTRVJVTStDT05UK0VDSEFSUAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZWNpbyBoYWJpdHVhbDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgIDg1LDYxIOKCrAogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InByaWNlX19zYWxlIj4KICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZWNpbyBkZSBvZmVydGE8L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgODUsNjEg4oKsCiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmVjaW8gaGFiaXR1YWw8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgICA8cyBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgICAgCiAgICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgPC9zPgogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxzbWFsbCBjbGFzcz0idW5pdC1wcmljZSBjYXB0aW9uIGhpZGRlbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZWNpbyB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPiZuYnNwO3BvciZuYnNwOzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvc3Bhbj4KICAgIDwvc21hbGw+CiAgPC9kaXY+PC9kaXY+Cgo8L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgcXVpY2stYWRkLW1vYmlsZSBuby1qcy1oaWRkZW4gZXh0cmEtbGFyZ2UtdXAtaGlkZSI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiODA5ODA4MDIyNzUwMyIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJoaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI0NDUxMTYxOTA4ODU1OSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9kdWN0LXZhcmlhbnQtaWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjgwOTgwODAyMjc1MDMtc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I4MDk4MDgwMjI3NTAzLXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi04MDk4MDgwMjI3NTAzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcKICBjbGFzcz0iaWNvbiBzaC1pY29uLWNhcnQtZW1wdHkiCiAgYXJpYS1oaWRkZW49InRydWUiCiAgZm9jdXNhYmxlPSJmYWxzZSIKICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgdmlld0JveD0iMCAwIDE4IDIyIgogIGZpbGw9Im5vbmUiCj4KICA8cGF0aCBkPSJNMTYuNDE5IDQuNzEzdjE0LjM0OGEyLjYwOSAyLjYwOSAwIDAgMS0yLjYwOSAyLjYwN0gzLjM3NmEyLjYwOSAyLjYwOSAwIDAgMS0yLjYwOS0yLjYwN1Y0LjcxM1oiIHN0cm9rZT0iY3VycmVudENvbG9yIi8+CiAgPHBhdGggZD0iTTQuNjQ3IDcuMzIxVjQuNzEyYTMuOTQ2IDMuOTQ2IDAgMSAxIDcuODkxIDB2Mi42MDkiICBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgo8L3N2Zz4KICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWdvdGFkbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzAxMTkwMzc2IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSI4MDk4MDgwMjI3NTAzIiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQtaG92ZXIiPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfODA5ODA4MDIyNzUwMyIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSI4MDk4MDgwMjI3NTAzIiBkYXRhLXZhcmlhbnQtaWQ9IjQ0NTExNjE5MDg4NTU5IiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwOi8vd3d3LnN0YW5ob21lLmVzL3Byb2R1Y3RzL3AyMTkteG1hcy10cmlvLWNyZW1lLXNlcnVtLWNvbnQtZWNoYXJwIj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2hlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyw61vIGRlIGNyZW1hLCBzw6lydW0geSBjb250b3JubyBkZSBvam9zIGFudGlhcnJ1Z2FzICsgcGHDsXVlbG8gTGF2aWxsZSBkZSByZWdhbG8KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIFAyMTkgWE1BUyBUUklPIENSRU1FK1NFUlVNK0NPTlQrRUNIQVJQCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHVsIGNsYXNzPSJsaXN0LXVuc3R5bGVkIGNhcmRfX3ZhcmlhbnQta2V5X3BvaW50cyI+PGxpPjxzcGFuPkdhbWEgYW50aWFycnVnYXMgYSBiYXNlIGRlIMOBY2lkbyBIaWFsdXLDs25pY28uIDwvc3Bhbj48L2xpPjxsaT48c3Bhbj5BY2Npw7NuIGNvbXBsZXRhIGNvbiB1biBjb250b3JubyBkZSBvam9zLCB1biBzw6lydW0geSB1bmEgY3JlbWEuIDwvc3Bhbj48L2xpPjxsaT48c3Bhbj5QYcOxdWVsbyBMYXZpbGxlIGRlIHJlZ2Fsbzwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiODA5ODA4MDIyNzUwMyIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI0NDUxMTYxOTA4ODU1OSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiODA5ODA4MDIyNzUwMy1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiODA5ODA4MDIyNzUwMy1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODA5ODA4MDIyNzUwMyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFncmVnYXIgYWwgY2Fycml0byAtIDxzcGFuIGNsYXNzPSJidXR0b25fX3ByaWNlIj44NSw2MSDigqw8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWdvdGFkbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKPGxpbmsgaHJlZj0iLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvdC82L2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTcwMTE5MDM3NiIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCjxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICA8c3ZnCiAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgIGZvY3VzYWJsZT0iZmFsc2UiCiAgICBjbGFzcz0ic3Bpbm5lciIKICAgIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICA+CiAgICA8Y2lyY2xlIGNsYXNzPSJwYXRoIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjYiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCI+PC9jaXJjbGU+CiAgPC9zdmc+CjwvZGl2Pgo8L2J1dHRvbj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iODA5ODA4MDIyNzUwMyIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pg==
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzAxMTkwMzczIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTcwMTE5MDM3NCIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LXAyMjMteG1hcy1kdW8tbnVpdC1jcmVtZS1zZXJ1bS1lY2hhcnBlLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiJyk7CiAgICBwcm9kdWN0Q2FyZHMuZm9yRWFjaChmdW5jdGlvbiAoY2FyZCkgewogICAgICBpZiAoY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpICE9PSBudWxsKSB7CiAgICAgICAgbGlzdE5hbWUgPSBjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykuZ2V0QXR0cmlidXRlKCdndG0tdHJhY2tpbmctY3Jvc3NzZWxsJyk7CiAgICAgIH0KICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIHZhciBwcm9kdWN0RGF0YSA9IEpTT04ucGFyc2UoY2FyZC5nZXRBdHRyaWJ1dGUoJ2d0bS1jYXJkLWRhdGEnKSk7CiAgICAgICAgLy8gTmVlZCB0byBwdXNoIGxpc3ROYW1lCiAgICAgICAgcHJvZHVjdERhdGFbJ2l0ZW1fbGlzdF9uYW1lJ10gPSBsaXN0TmFtZTsKICAgICAgICAvLyBQdXNoIGNsaWNrZWQgcHJvZHVjdAogICAgICAgIGF4SXRlbS5wdXNoKHByb2R1Y3REYXRhKTsKICAgICAgICAvLyBTZW5kICJjbGljayIgZXZlbnQKICAgICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfY2xpY2snLAogICAgICAgICAgYXhJdGVtOiBheEl0ZW0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyBQdXNoIGFsbCBwcm9kdWN0IGluIGRhdGFMYXllcgogICAgYXhQcm9kdWN0TGlzdC5wdXNoKHsKICAgICAgaXRlbV9uYW1lOiAnUDIyMyBYTUFTIERVTyBOVUlUIENSRU1FK1NFUlVNK0VDSEFSUEUnLAogICAgICBpdGVtX2lkOiAnRVNQX1BST0RVQ1RfbzAwMXgwMl8xMDE3MTknLAogICAgICBwcmljZTogJzY2LDA0IOKCrCcsCiAgICAgIGl0ZW1fYnJhbmQ6ICdEciBQaWVycmUgUmljYXVkJywKICAgICAgaXRlbV9jYXRlZ29yeTE6ICdEciBQaWVycmUgUmljYXVkJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdDdWlkYWRvIHkgcGVyZnVtZScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkzOiAnJywKICAgICAgaXRlbV92YXJpYW50OiAnRGVmYXVsdCBUaXRsZScsCiAgICAgIGl0ZW1fbGlzdF9uYW1lOiBsaXN0TmFtZQogICAgfSk7CgogICAgLy8gU2VuZCAiZmluaXNoZWQiIGV2ZW50CiAgICBpZiAoYXhQcm9kdWN0TGlzdC5sZW5ndGggPT09IHdpbmRvdy50aGVtZS5pdGVtc19jb3VudCkgewogICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2xpc3RfY29tcGxldGUnLAogICAgICAgIGF4UHJvZHVjdExpc3Q6IGF4UHJvZHVjdExpc3QsCiAgICAgIH0pOwogICAgfQogIH0pOwoKICBmdW5jdGlvbiBjbGlja1Byb2R1Y3QocHJvZHVjdERhdGEpIHt9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgZGVmZXI+CiAgZnVuY3Rpb24gc3d5bUNhbGxiYWNrRm4oc3dhdCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3d5bTpjb2xsZWN0aW9ucy1sb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHN3YXQuaW5pdGlhbGl6ZUFjdGlvbkJ1dHRvbnMoJzw8Q29sbGVjdGlvbnMgR3JpZCBQQVJFTlQgU2VsZWN0b3IgPj4nKTsKICAgIH0pOwogIH0KICBpZiAoIXdpbmRvdy5Td3ltQ2FsbGJhY2tzKSB7CiAgICB3aW5kb3cuU3d5bUNhbGxiYWNrcyA9IFtdOwogIH0KICB3aW5kb3cuU3d5bUNhbGxiYWNrcy5wdXNoKHN3eW1DYWxsYmFja0ZuKTsKPC9zY3JpcHQ+CgoKICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC1wMjIzLXhtYXMtZHVvLW51aXQtY3JlbWUtc2VydW0tZWNoYXJwZS10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgZ3RtLWNhcmQtZGF0YT0nCiAgICAgICAgewogICAgICAgICAgICAiaXRlbV9uYW1lIjogIlAyMjMgWE1BUyBEVU8gTlVJVCBDUkVNRStTRVJVTStFQ0hBUlBFIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiRVNQX1BST0RVQ1RfbzAwMXgwMl8xMDE3MTkiLAogICAgICAgICAgICAicHJpY2UiOiAiNjYsMDQg4oKsIiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiRHIgUGllcnJlIFJpY2F1ZCIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MSI6ICIiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAiYmVhdXR5LWFuZC1wZXJmdW1lcyIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MyI6IG51bGwsCiAgICAgICAgICAgICJpdGVtX3ZhcmlhbnQiOiAiRGVmYXVsdCBUaXRsZSIKICAgICAgICB9CiAgICAnPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNzZXQ9Ii8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X0NTX1AyMjNfZTc1N2M1MjgtY2IzNi00ZDRmLTgwMzctMGNlNTMxZGEwMGE0LmpwZz92PTE3Mjk1MDYxNTcmd2lkdGg9MTY1IDE2NXcsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfQ1NfUDIyM19lNzU3YzUyOC1jYjM2LTRkNGYtODAzNy0wY2U1MzFkYTAwYTQuanBnP3Y9MTcyOTUwNjE1NyZ3aWR0aD0zNjAgMzYwdywvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9FU1BfcHJvZHVjdF9DU19QMjIzX2U3NTdjNTI4LWNiMzYtNGQ0Zi04MDM3LTBjZTUzMWRhMDBhNC5qcGc/dj0xNzI5NTA2MTU3JndpZHRoPTUzMyA1MzN3LC8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X0NTX1AyMjNfZTc1N2M1MjgtY2IzNi00ZDRmLTgwMzctMGNlNTMxZGEwMGE0LmpwZz92PTE3Mjk1MDYxNTcmd2lkdGg9NzIwIDcyMHcsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfQ1NfUDIyM19lNzU3YzUyOC1jYjM2LTRkNGYtODAzNy0wY2U1MzFkYTAwYTQuanBnP3Y9MTcyOTUwNjE1NyZ3aWR0aD05NDAgOTQwdywvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9FU1BfcHJvZHVjdF9DU19QMjIzX2U3NTdjNTI4LWNiMzYtNGQ0Zi04MDM3LTBjZTUzMWRhMDBhNC5qcGc/dj0xNzI5NTA2MTU3JndpZHRoPTEwNjYgMTA2NncsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfQ1NfUDIyM19lNzU3YzUyOC1jYjM2LTRkNGYtODAzNy0wY2U1MzFkYTAwYTQuanBnP3Y9MTcyOTUwNjE1NyAxMjAwdwogICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X0NTX1AyMjNfZTc1N2M1MjgtY2IzNi00ZDRmLTgwMzctMGNlNTMxZGEwMGE0LmpwZz92PTE3Mjk1MDYxNTcmd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iUDIyMyBYTUFTIERVTyBOVUlUIENSRU1FK1NFUlVNK0VDSEFSUEUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfODA5ODA4MDQyNDExMSIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSI4MDk4MDgwNDI0MTExIiBkYXRhLXZhcmlhbnQtaWQ9IjQ0NTExNjE5Mjg1MTY3IiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwOi8vd3d3LnN0YW5ob21lLmVzL3Byb2R1Y3RzL3AyMjMteG1hcy1kdW8tbnVpdC1jcmVtZS1zZXJ1bS1lY2hhcnBlIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIERyIFBpZXJyZSBSaWNhdWQKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHAgY2xhc3M9ImNhcmRfX2hlYWRpbmcgaDUiICBpZD0idGl0bGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODA5ODA4MDQyNDExMSIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvcDIyMy14bWFzLWR1by1udWl0LWNyZW1lLXNlcnVtLWVjaGFycGUiIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi04MDk4MDgwNDI0MTExIiBjbGFzcz0iZnVsbC11bnN0eWxlZC1saW5rIGZ1bGwtdW5zdHlsZWQtbGluay1wcm9kdWN0IiBhcmlhLWxhYmVsbGVkYnk9IkNhcmRMaW5rLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTgwOTgwODA0MjQxMTEgQmFkZ2UtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODA5ODA4MDQyNDExMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEw7pvIENyZW1hIHkgU8OpcnVtIGRlIE5vY2hlICsgQnVmYW5kYSBMYXZpbGxlIGRlIHJlZ2FsbyAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgUDIyMyBYTUFTIERVTyBOVUlUIENSRU1FK1NFUlVNK0VDSEFSUEUKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm9ybWF0aW9uIj48c3BhbiBjbGFzcz0iY2FwdGlvbi1sYXJnZSBsaWdodCI+PC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24tZm9ybS1yYXRpbmctcHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0aW5nLXByaWNlIj4KPGRpdgogIGNsYXNzPSIKICAgIHByaWNlICIKPgogIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPjxkaXYgY2xhc3M9InByaWNlX19yZWd1bGFyIj48c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmVjaW8gaGFiaXR1YWw8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICA2NiwwNCDigqwKICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmVjaW8gZGUgb2ZlcnRhPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1zYWxlIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDY2LDA0IOKCrAogICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlY2lvIGhhYml0dWFsPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiBoaWRkZW4iPgogICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5QcmVjaW8gdW5pdGFyaW88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+Lzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4mbmJzcDtwb3ImbmJzcDs8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjgwOTgwODA0MjQxMTEiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNDQ1MTE2MTkyODUxNjciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I4MDk4MDgwNDI0MTExLXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiODA5ODA4MDQyNDExMS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODA5ODA4MDQyNDExMSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnCiAgY2xhc3M9Imljb24gc2gtaWNvbi1jYXJ0LWVtcHR5IgogIGFyaWEtaGlkZGVuPSJ0cnVlIgogIGZvY3VzYWJsZT0iZmFsc2UiCiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHZpZXdCb3g9IjAgMCAxOCAyMiIKICBmaWxsPSJub25lIgo+CiAgPHBhdGggZD0iTTE2LjQxOSA0LjcxM3YxNC4zNDhhMi42MDkgMi42MDkgMCAwIDEtMi42MDkgMi42MDdIMy4zNzZhMi42MDkgMi42MDkgMCAwIDEtMi42MDktMi42MDdWNC43MTNaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgogIDxwYXRoIGQ9Ik00LjY0NyA3LjMyMVY0LjcxMmEzLjk0NiAzLjk0NiAwIDEgMSA3Ljg5MSAwdjIuNjA5IiAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+CiAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnb3RhZG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKPGxpbmsgaHJlZj0iLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvdC82L2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTcwMTE5MDM3NiIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCjxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICA8c3ZnCiAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgIGZvY3VzYWJsZT0iZmFsc2UiCiAgICBjbGFzcz0ic3Bpbm5lciIKICAgIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICA+CiAgICA8Y2lyY2xlIGNsYXNzPSJwYXRoIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjYiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCI+PC9jaXJjbGU+CiAgPC9zdmc+CjwvZGl2Pgo8L2J1dHRvbj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iODA5ODA4MDQyNDExMSIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzgwOTgwODA0MjQxMTEiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iODA5ODA4MDQyNDExMSIgZGF0YS12YXJpYW50LWlkPSI0NDUxMTYxOTI4NTE2NyIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cDovL3d3dy5zdGFuaG9tZS5lcy9wcm9kdWN0cy9wMjIzLXhtYXMtZHVvLW51aXQtY3JlbWUtc2VydW0tZWNoYXJwZSI+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEw7pvIENyZW1hIHkgU8OpcnVtIGRlIE5vY2hlICsgQnVmYW5kYSBMYXZpbGxlIGRlIHJlZ2FsbwogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgUDIyMyBYTUFTIERVTyBOVUlUIENSRU1FK1NFUlVNK0VDSEFSUEUKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+Q3JlbWEgZGUgbm9jaGUgcGFyYSBwb3RlbmNpYXIgbGEgbWVsYXRvbmluYSBkZSBsYSBwaWVsLiA8L3NwYW4+PC9saT48bGk+PHNwYW4+U3Vlcm8gZGUgbm9jaGUgcGFyYSBkdXBsaWNhciBsYSBwZW5ldHJhY2nDs24gZGUgbG9zIGFjdGl2b3MgZGUgbGEgY3JlbWEgPC9zcGFuPjwvbGk+PGxpPjxzcGFuPlBhw7F1ZWxvIExhdmlsbGUgZGUgcmVnYWxvPC9zcGFuPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I4MDk4MDgwNDI0MTExIiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJoaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjQ0NTExNjE5Mjg1MTY3IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9kdWN0LXZhcmlhbnQtaWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I4MDk4MDgwNDI0MTExLXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I4MDk4MDgwNDI0MTExLXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi04MDk4MDgwNDI0MTExIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+QWdyZWdhciBhbCBjYXJyaXRvIC0gPHNwYW4gY2xhc3M9ImJ1dHRvbl9fcHJpY2UiPjY2LDA0IOKCrDwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZ290YWRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzAxMTkwMzc2IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSI4MDk4MDgwNDI0MTExIiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzAxMTkwMzczIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTcwMTE5MDM3NCIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LXA3MjQteG1hcy14Mi1zdGFud2ljay10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYicpOwogICAgcHJvZHVjdENhcmRzLmZvckVhY2goZnVuY3Rpb24gKGNhcmQpIHsKICAgICAgaWYgKGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKSAhPT0gbnVsbCkgewogICAgICAgIGxpc3ROYW1lID0gY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpLmdldEF0dHJpYnV0ZSgnZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpOwogICAgICB9CiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICB2YXIgcHJvZHVjdERhdGEgPSBKU09OLnBhcnNlKGNhcmQuZ2V0QXR0cmlidXRlKCdndG0tY2FyZC1kYXRhJykpOwogICAgICAgIC8vIE5lZWQgdG8gcHVzaCBsaXN0TmFtZQogICAgICAgIHByb2R1Y3REYXRhWydpdGVtX2xpc3RfbmFtZSddID0gbGlzdE5hbWU7CiAgICAgICAgLy8gUHVzaCBjbGlja2VkIHByb2R1Y3QKICAgICAgICBheEl0ZW0ucHVzaChwcm9kdWN0RGF0YSk7CiAgICAgICAgLy8gU2VuZCAiY2xpY2siIGV2ZW50CiAgICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2NsaWNrJywKICAgICAgICAgIGF4SXRlbTogYXhJdGVtCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gUHVzaCBhbGwgcHJvZHVjdCBpbiBkYXRhTGF5ZXIKICAgIGF4UHJvZHVjdExpc3QucHVzaCh7CiAgICAgIGl0ZW1fbmFtZTogJ1A3MjQgWE1BUyBYMiBTVEFOV0lDSycsCiAgICAgIGl0ZW1faWQ6ICdFU1BfUFJPRFVDVF9vMDAxeDAyXzEwMTYzOCcsCiAgICAgIHByaWNlOiAnMTksMDYg4oKsJywKICAgICAgaXRlbV9icmFuZDogJ1NUQU5IT01FJywKICAgICAgaXRlbV9jYXRlZ29yeTE6ICdTVEFOSE9NRScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkyOiAnQW1iaWVudGFkb3JlcycsCiAgICAgIGl0ZW1fY2F0ZWdvcnkzOiAnJywKICAgICAgaXRlbV92YXJpYW50OiAnRGVmYXVsdCBUaXRsZScsCiAgICAgIGl0ZW1fbGlzdF9uYW1lOiBsaXN0TmFtZQogICAgfSk7CgogICAgLy8gU2VuZCAiZmluaXNoZWQiIGV2ZW50CiAgICBpZiAoYXhQcm9kdWN0TGlzdC5sZW5ndGggPT09IHdpbmRvdy50aGVtZS5pdGVtc19jb3VudCkgewogICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2xpc3RfY29tcGxldGUnLAogICAgICAgIGF4UHJvZHVjdExpc3Q6IGF4UHJvZHVjdExpc3QsCiAgICAgIH0pOwogICAgfQogIH0pOwoKICBmdW5jdGlvbiBjbGlja1Byb2R1Y3QocHJvZHVjdERhdGEpIHt9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgZGVmZXI+CiAgZnVuY3Rpb24gc3d5bUNhbGxiYWNrRm4oc3dhdCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3d5bTpjb2xsZWN0aW9ucy1sb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHN3YXQuaW5pdGlhbGl6ZUFjdGlvbkJ1dHRvbnMoJzw8Q29sbGVjdGlvbnMgR3JpZCBQQVJFTlQgU2VsZWN0b3IgPj4nKTsKICAgIH0pOwogIH0KICBpZiAoIXdpbmRvdy5Td3ltQ2FsbGJhY2tzKSB7CiAgICB3aW5kb3cuU3d5bUNhbGxiYWNrcyA9IFtdOwogIH0KICB3aW5kb3cuU3d5bUNhbGxiYWNrcy5wdXNoKHN3eW1DYWxsYmFja0ZuKTsKPC9zY3JpcHQ+CgoKICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC1wNzI0LXhtYXMteDItc3RhbndpY2stdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJQNzI0IFhNQVMgWDIgU1RBTldJQ0siLAogICAgICAgICAgICAiaXRlbV9pZCI6ICJFU1BfUFJPRFVDVF9vMDAxeDAyXzEwMTYzOCIsCiAgICAgICAgICAgICJwcmljZSI6ICIxOSwwNiDigqwiLAogICAgICAgICAgICAiaXRlbV9icmFuZCI6ICJTVEFOSE9NRSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MSI6ICIiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAiYWlyLWZyZXNoZW5lcnMiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJz4KICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iCiAgICAgICAgY2FyZCBjYXJkLS1zdGFuZGFyZAogICAgICAgICBjYXJkLS1tZWRpYQogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAiCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY2FyZF9faW5uZXIgY29sb3ItYmFja2dyb3VuZC0xIGdyYWRpZW50IHJhdGlvIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgICAgICA+PGRpdiBjbGFzcz0iY2FyZF9fbWVkaWEiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS0tdHJhbnNwYXJlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Jjc2V0PSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9FU1BfcHJvZHVjdF9PU19QNzI0Xzg2ZWU1ODYzLTdjNzctNDJlYy1hZWQ5LTQwZDc1NDlmODkxMS5qcGc/dj0xNzMyODE0MjU1JndpZHRoPTE2NSAxNjV3LC8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X09TX1A3MjRfODZlZTU4NjMtN2M3Ny00MmVjLWFlZDktNDBkNzU0OWY4OTExLmpwZz92PTE3MzI4MTQyNTUmd2lkdGg9MzYwIDM2MHcsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfT1NfUDcyNF84NmVlNTg2My03Yzc3LTQyZWMtYWVkOS00MGQ3NTQ5Zjg5MTEuanBnP3Y9MTczMjgxNDI1NSZ3aWR0aD01MzMgNTMzdywvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9FU1BfcHJvZHVjdF9PU19QNzI0Xzg2ZWU1ODYzLTdjNzctNDJlYy1hZWQ5LTQwZDc1NDlmODkxMS5qcGc/dj0xNzMyODE0MjU1JndpZHRoPTcyMCA3MjB3LC8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X09TX1A3MjRfODZlZTU4NjMtN2M3Ny00MmVjLWFlZDktNDBkNzU0OWY4OTExLmpwZz92PTE3MzI4MTQyNTUmd2lkdGg9OTQwIDk0MHcsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfT1NfUDcyNF84NmVlNTg2My03Yzc3LTQyZWMtYWVkOS00MGQ3NTQ5Zjg5MTEuanBnP3Y9MTczMjgxNDI1NSZ3aWR0aD0xMDY2IDEwNjZ3LC8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X09TX1A3MjRfODZlZTU4NjMtN2M3Ny00MmVjLWFlZDktNDBkNzU0OWY4OTExLmpwZz92PTE3MzI4MTQyNTUgMTIwMHcKICAgICAgICAgICAgICAgICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9FU1BfcHJvZHVjdF9PU19QNzI0Xzg2ZWU1ODYzLTdjNzctNDJlYy1hZWQ5LTQwZDc1NDlmODkxMS5qcGc/dj0xNzMyODE0MjU1JndpZHRoPTUzMyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZXM9IihtaW4td2lkdGg6IDE2MDBweCkgMzY3cHgsIChtaW4td2lkdGg6IDk5MHB4KSBjYWxjKCgxMDB2dyAtIDEzMHB4KSAvIDQpLCAobWluLXdpZHRoOiA3NTBweCkgY2FsYygoMTAwdncgLSAxMjBweCkgLyAzKSwgY2FsYygoMTAwdncgLSAzNXB4KSAvIDIpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9IlA3MjQgWE1BUyBYMiBTVEFOV0lDSyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1vdGlvbi1yZWR1Y2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF84MDk4MDA1NjQ3NTM1IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjgwOTgwMDU2NDc1MzUiIGRhdGEtdmFyaWFudC1pZD0iNDQ1MTE1MDUxMjE0NTUiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHA6Ly93d3cuc3RhbmhvbWUuZXMvcHJvZHVjdHMvcDcyNC14bWFzLXgyLXN0YW53aWNrIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUQU5IT01FCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxwIGNsYXNzPSJjYXJkX19oZWFkaW5nIGg1IiAgaWQ9InRpdGxlLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTgwOTgwMDU2NDc1MzUiID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL3A3MjQteG1hcy14Mi1zdGFud2ljayIgaWQ9IkNhcmRMaW5rLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTgwOTgwMDU2NDc1MzUiIGNsYXNzPSJmdWxsLXVuc3R5bGVkLWxpbmsgZnVsbC11bnN0eWxlZC1saW5rLXByb2R1Y3QiIGFyaWEtbGFiZWxsZWRieT0iQ2FyZExpbmstdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODA5ODAwNTY0NzUzNSBCYWRnZS10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi04MDk4MDA1NjQ3NTM1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgU3RhbndpY2tzIGEgZWxlZ2lyIAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBQNzI0IFhNQVMgWDIgU1RBTldJQ0sKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm9ybWF0aW9uIj48c3BhbiBjbGFzcz0iY2FwdGlvbi1sYXJnZSBsaWdodCI+PC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24tZm9ybS1yYXRpbmctcHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0aW5nLXByaWNlIj4KPGRpdgogIGNsYXNzPSIKICAgIHByaWNlICIKPgogIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPjxkaXYgY2xhc3M9InByaWNlX19yZWd1bGFyIj48c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmVjaW8gaGFiaXR1YWw8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAxOSwwNiDigqwKICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmVjaW8gZGUgb2ZlcnRhPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1zYWxlIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDE5LDA2IOKCrAogICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlY2lvIGhhYml0dWFsPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiBoaWRkZW4iPgogICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5QcmVjaW8gdW5pdGFyaW88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+Lzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4mbmJzcDtwb3ImbmJzcDs8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjgwOTgwMDU2NDc1MzUiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNDQ1MTE1MDUxMjE0NTUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I4MDk4MDA1NjQ3NTM1LXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiODA5ODAwNTY0NzUzNS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODA5ODAwNTY0NzUzNSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnCiAgY2xhc3M9Imljb24gc2gtaWNvbi1jYXJ0LWVtcHR5IgogIGFyaWEtaGlkZGVuPSJ0cnVlIgogIGZvY3VzYWJsZT0iZmFsc2UiCiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHZpZXdCb3g9IjAgMCAxOCAyMiIKICBmaWxsPSJub25lIgo+CiAgPHBhdGggZD0iTTE2LjQxOSA0LjcxM3YxNC4zNDhhMi42MDkgMi42MDkgMCAwIDEtMi42MDkgMi42MDdIMy4zNzZhMi42MDkgMi42MDkgMCAwIDEtMi42MDktMi42MDdWNC43MTNaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgogIDxwYXRoIGQ9Ik00LjY0NyA3LjMyMVY0LjcxMmEzLjk0NiAzLjk0NiAwIDEgMSA3Ljg5MSAwdjIuNjA5IiAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+CiAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnb3RhZG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKPGxpbmsgaHJlZj0iLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvdC82L2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTcwMTE5MDM3NiIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCjxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICA8c3ZnCiAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgIGZvY3VzYWJsZT0iZmFsc2UiCiAgICBjbGFzcz0ic3Bpbm5lciIKICAgIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICA+CiAgICA8Y2lyY2xlIGNsYXNzPSJwYXRoIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjYiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCI+PC9jaXJjbGU+CiAgPC9zdmc+CjwvZGl2Pgo8L2J1dHRvbj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iODA5ODAwNTY0NzUzNSIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzgwOTgwMDU2NDc1MzUiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iODA5ODAwNTY0NzUzNSIgZGF0YS12YXJpYW50LWlkPSI0NDUxMTUwNTEyMTQ1NSIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cDovL3d3dy5zdGFuaG9tZS5lcy9wcm9kdWN0cy9wNzI0LXhtYXMteDItc3RhbndpY2siPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMiBTdGFud2lja3MgYSBlbGVnaXIKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIFA3MjQgWE1BUyBYMiBTVEFOV0lDSwogICAgICAgICAgICAgICAgICAgIDwvZGl2Pjx1bCBjbGFzcz0ibGlzdC11bnN0eWxlZCBjYXJkX192YXJpYW50LWtleV9wb2ludHMiPjxsaT48c3Bhbj41IGZyYWdhbmNpYXMgYSBlbGVnaXI8L3NwYW4+PC9saT48bGk+PHNwYW4+QWJzb3JiZSBsb3MgbWFsb3Mgb2xvcmVzPC9zcGFuPjwvbGk+PGxpPjxzcGFuPkVmaWNheiBoYXN0YSAxOCBzZW1hbmFzLjwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiODA5ODAwNTY0NzUzNSIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI0NDUxMTUwNTEyMTQ1NSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiODA5ODAwNTY0NzUzNS1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiODA5ODAwNTY0NzUzNS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODA5ODAwNTY0NzUzNSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFncmVnYXIgYWwgY2Fycml0byAtIDxzcGFuIGNsYXNzPSJidXR0b25fX3ByaWNlIj4xOSwwNiDigqw8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWdvdGFkbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKPGxpbmsgaHJlZj0iLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvdC82L2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTcwMTE5MDM3NiIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCjxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICA8c3ZnCiAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgIGZvY3VzYWJsZT0iZmFsc2UiCiAgICBjbGFzcz0ic3Bpbm5lciIKICAgIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICA+CiAgICA8Y2lyY2xlIGNsYXNzPSJwYXRoIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjYiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCI+PC9jaXJjbGU+CiAgPC9zdmc+CjwvZGl2Pgo8L2J1dHRvbj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iODA5ODAwNTY0NzUzNSIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pg==
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzAxMTkwMzczIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTcwMTE5MDM3NCIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LXA3NDItYzEyLTQtcHJvZHVpdHMtYXUtY2hvaXgtMmNhZGVhdXgtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2InKTsKICAgIHByb2R1Y3RDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uIChjYXJkKSB7CiAgICAgIGlmIChjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykgIT09IG51bGwpIHsKICAgICAgICBsaXN0TmFtZSA9IGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKS5nZXRBdHRyaWJ1dGUoJ2d0bS10cmFja2luZy1jcm9zc3NlbGwnKTsKICAgICAgfQogICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgdmFyIHByb2R1Y3REYXRhID0gSlNPTi5wYXJzZShjYXJkLmdldEF0dHJpYnV0ZSgnZ3RtLWNhcmQtZGF0YScpKTsKICAgICAgICAvLyBOZWVkIHRvIHB1c2ggbGlzdE5hbWUKICAgICAgICBwcm9kdWN0RGF0YVsnaXRlbV9saXN0X25hbWUnXSA9IGxpc3ROYW1lOwogICAgICAgIC8vIFB1c2ggY2xpY2tlZCBwcm9kdWN0CiAgICAgICAgYXhJdGVtLnB1c2gocHJvZHVjdERhdGEpOwogICAgICAgIC8vIFNlbmQgImNsaWNrIiBldmVudAogICAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9jbGljaycsCiAgICAgICAgICBheEl0ZW06IGF4SXRlbQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwoKICAgIC8vIFB1c2ggYWxsIHByb2R1Y3QgaW4gZGF0YUxheWVyCiAgICBheFByb2R1Y3RMaXN0LnB1c2goewogICAgICBpdGVtX25hbWU6ICdQNzQyIEMxMiA0IFBST0RVSVRTIEFVIENIT0lYKzJDQURFQVVYJywKICAgICAgaXRlbV9pZDogJ0VTUF9QUk9EVUNUX28wMDF4MDJfMTAxOTIxJywKICAgICAgcHJpY2U6ICc0MCwyMyDigqwnLAogICAgICBpdGVtX2JyYW5kOiAnU1RBTkhPTUUnLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ1NUQU5IT01FJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdDdWlkYWRvIGRlIGxhIHJvcGEnLAogICAgICBpdGVtX2NhdGVnb3J5MzogJycsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIHByb2R1Y3QtbWluaWF0dXJlIHByb2R1Y3QtY2FyZC13cmFwcGVyIHVuZGVybGluZS1saW5rcy1ob3ZlciBndG0tY2FyZC1wcm9kdWN0IGd0bS1jYXJkLXByb2R1Y3QtcDc0Mi1jMTItNC1wcm9kdWl0cy1hdS1jaG9peC0yY2FkZWF1eC10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgZ3RtLWNhcmQtZGF0YT0nCiAgICAgICAgewogICAgICAgICAgICAiaXRlbV9uYW1lIjogIlA3NDIgQzEyIDQgUFJPRFVJVFMgQVUgQ0hPSVgrMkNBREVBVVgiLAogICAgICAgICAgICAiaXRlbV9pZCI6ICJFU1BfUFJPRFVDVF9vMDAxeDAyXzEwMTkyMSIsCiAgICAgICAgICAgICJwcmljZSI6ICI0MCwyMyDigqwiLAogICAgICAgICAgICAiaXRlbV9icmFuZCI6ICJTVEFOSE9NRSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MSI6ICIiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAibGF1bmRyeS1jYXJlIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkzIjogbnVsbCwKICAgICAgICAgICAgIml0ZW1fdmFyaWFudCI6ICJEZWZhdWx0IFRpdGxlIgogICAgICAgIH0KICAgICc+CiAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9IgogICAgICAgIGNhcmQgY2FyZC0tc3RhbmRhcmQKICAgICAgICAgY2FyZC0tbWVkaWEKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgIgogICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgPgogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNhcmRfX2lubmVyIGNvbG9yLWJhY2tncm91bmQtMSBncmFkaWVudCByYXRpbyIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICAgICAgPjxkaXYgY2xhc3M9ImNhcmRfX21lZGlhIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtLXRyYW5zcGFyZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY3NldD0iLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfT1NfUDg1LmpwZz92PTE3MzIyNjM3OTQmd2lkdGg9MTY1IDE2NXcsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfT1NfUDg1LmpwZz92PTE3MzIyNjM3OTQmd2lkdGg9MzYwIDM2MHcsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfT1NfUDg1LmpwZz92PTE3MzIyNjM3OTQmd2lkdGg9NTMzIDUzM3csLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfT1NfUDg1LmpwZz92PTE3MzIyNjM3OTQmd2lkdGg9NzIwIDcyMHcsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfT1NfUDg1LmpwZz92PTE3MzIyNjM3OTQmd2lkdGg9OTQwIDk0MHcsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfT1NfUDg1LmpwZz92PTE3MzIyNjM3OTQmd2lkdGg9MTA2NiAxMDY2dywvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9FU1BfcHJvZHVjdF9PU19QODUuanBnP3Y9MTczMjI2Mzc5NCAxMjAwdwogICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X09TX1A4NS5qcGc/dj0xNzMyMjYzNzk0JndpZHRoPTUzMyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZXM9IihtaW4td2lkdGg6IDE2MDBweCkgMzY3cHgsIChtaW4td2lkdGg6IDk5MHB4KSBjYWxjKCgxMDB2dyAtIDEzMHB4KSAvIDQpLCAobWluLXdpZHRoOiA3NTBweCkgY2FsYygoMTAwdncgLSAxMjBweCkgLyAzKSwgY2FsYygoMTAwdncgLSAzNXB4KSAvIDIpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9IlA3NDIgQzEyIDQgUFJPRFVJVFMgQVUgQ0hPSVgrMkNBREVBVVgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTQ4Mzg4Mzg2NTczOTgiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTQ4Mzg4Mzg2NTczOTgiIGRhdGEtdmFyaWFudC1pZD0iNTQ4MTQ0Nzc0MTg4NzAiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHA6Ly93d3cuc3RhbmhvbWUuZXMvcHJvZHVjdHMvcDc0Mi1jMTItNC1wcm9kdWl0cy1hdS1jaG9peC0yY2FkZWF1eCI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+PGRpdiBjbGFzcz0iY2FyZF9fdHlwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFOSE9NRQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xNDgzODgzODY1NzM5OCIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvcDc0Mi1jMTItNC1wcm9kdWl0cy1hdS1jaG9peC0yY2FkZWF1eCIgaWQ9IkNhcmRMaW5rLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTE0ODM4ODM4NjU3Mzk4IiBjbGFzcz0iZnVsbC11bnN0eWxlZC1saW5rIGZ1bGwtdW5zdHlsZWQtbGluay1wcm9kdWN0IiBhcmlhLWxhYmVsbGVkYnk9IkNhcmRMaW5rLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTE0ODM4ODM4NjU3Mzk4IEJhZGdlLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTE0ODM4ODM4NjU3Mzk4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQgcHJvZHVjdG9zIHBhcmEgZWwgY3VpZGFkbyBkZWwgaG9nYXIgYSBlbGVnaXIgKyAxIENoYWxldCBCYWcgZGUgcmVnYWxvIAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBQNzQyIEMxMiA0IFBST0RVSVRTIEFVIENIT0lYKzJDQURFQVVYCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbmZvcm1hdGlvbiI+PHNwYW4gY2xhc3M9ImNhcHRpb24tbGFyZ2UgbGlnaHQiPjwvc3Bhbj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uLWZvcm0tcmF0aW5nLXByaWNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhdGluZy1wcmljZSI+CjxkaXYKICBjbGFzcz0iCiAgICBwcmljZSAiCj4KICA8ZGl2IGNsYXNzPSJwcmljZV9fY29udGFpbmVyIj48ZGl2IGNsYXNzPSJwcmljZV9fcmVndWxhciI+PHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlY2lvIGhhYml0dWFsPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgNDAsMjMg4oKsCiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJpY2VfX3NhbGUiPgogICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlY2lvIGRlIG9mZXJ0YTwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA0MCwyMyDigqwKICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZWNpbyBoYWJpdHVhbDwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICA8L3M+CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPHNtYWxsIGNsYXNzPSJ1bml0LXByaWNlIGNhcHRpb24gaGlkZGVuIj4KICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+UHJlY2lvIHVuaXRhcmlvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cG9yJm5ic3A7PC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9zcGFuPgogICAgPC9zbWFsbD4KICA8L2Rpdj48L2Rpdj4KCjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBxdWljay1hZGQtbW9iaWxlIG5vLWpzLWhpZGRlbiBleHRyYS1sYXJnZS11cC1oaWRlIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxNDgzODgzODY1NzM5OCIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJoaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1NDgxNDQ3NzQxODg3MCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9kdWN0LXZhcmlhbnQtaWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjE0ODM4ODM4NjU3Mzk4LXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTQ4Mzg4Mzg2NTczOTgtc3VibWl0IHRpdGxlLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTE0ODM4ODM4NjU3Mzk4IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcKICBjbGFzcz0iaWNvbiBzaC1pY29uLWNhcnQtZW1wdHkiCiAgYXJpYS1oaWRkZW49InRydWUiCiAgZm9jdXNhYmxlPSJmYWxzZSIKICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgdmlld0JveD0iMCAwIDE4IDIyIgogIGZpbGw9Im5vbmUiCj4KICA8cGF0aCBkPSJNMTYuNDE5IDQuNzEzdjE0LjM0OGEyLjYwOSAyLjYwOSAwIDAgMS0yLjYwOSAyLjYwN0gzLjM3NmEyLjYwOSAyLjYwOSAwIDAgMS0yLjYwOS0yLjYwN1Y0LjcxM1oiIHN0cm9rZT0iY3VycmVudENvbG9yIi8+CiAgPHBhdGggZD0iTTQuNjQ3IDcuMzIxVjQuNzEyYTMuOTQ2IDMuOTQ2IDAgMSAxIDcuODkxIDB2Mi42MDkiICBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgo8L3N2Zz4KICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWdvdGFkbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzAxMTkwMzc2IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSIxNDgzODgzODY1NzM5OCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzE0ODM4ODM4NjU3Mzk4IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjE0ODM4ODM4NjU3Mzk4IiBkYXRhLXZhcmlhbnQtaWQ9IjU0ODE0NDc3NDE4ODcwIiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwOi8vd3d3LnN0YW5ob21lLmVzL3Byb2R1Y3RzL3A3NDItYzEyLTQtcHJvZHVpdHMtYXUtY2hvaXgtMmNhZGVhdXgiPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgNCBwcm9kdWN0b3MgcGFyYSBlbCBjdWlkYWRvIGRlbCBob2dhciBhIGVsZWdpciArIDEgQ2hhbGV0IEJhZyBkZSByZWdhbG8KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIFA3NDIgQzEyIDQgUFJPRFVJVFMgQVUgQ0hPSVgrMkNBREVBVVgKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+VHVzIGltcHJlc2NpbmRpYmxlcyBwYXJhIHVuYXMgZmllc3RhcyBwZXJmZWN0YXMgPC9zcGFuPjwvbGk+PGxpPjxzcGFuPjQgcHJvZHVjdG9zIGEgZWxlZ2lyIHkgaGFzdGEgdW4gNDIlIGRlIGRlc2N1ZW50byA8L3NwYW4+PC9saT48bGk+PHNwYW4+TGEgTXVsdGlzdXBlcmZpY2llIHkgbGEgQm9sc2EgQ2hhbGV0IMKhZGUgcmVnYWxvITwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTQ4Mzg4Mzg2NTczOTgiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTQ4MTQ0Nzc0MTg4NzAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjE0ODM4ODM4NjU3Mzk4LXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxNDgzODgzODY1NzM5OC1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTQ4Mzg4Mzg2NTczOTgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BZ3JlZ2FyIGFsIGNhcnJpdG8gLSA8c3BhbiBjbGFzcz0iYnV0dG9uX19wcmljZSI+NDAsMjMg4oKsPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnb3RhZG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL3QvNi9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MDExOTAzNzYiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9IjE0ODM4ODM4NjU3Mzk4IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzAxMTkwMzczIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTcwMTE5MDM3NCIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LXAxOTAteG1hcy1iYWxtLXJlcGFpci10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYicpOwogICAgcHJvZHVjdENhcmRzLmZvckVhY2goZnVuY3Rpb24gKGNhcmQpIHsKICAgICAgaWYgKGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKSAhPT0gbnVsbCkgewogICAgICAgIGxpc3ROYW1lID0gY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpLmdldEF0dHJpYnV0ZSgnZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpOwogICAgICB9CiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICB2YXIgcHJvZHVjdERhdGEgPSBKU09OLnBhcnNlKGNhcmQuZ2V0QXR0cmlidXRlKCdndG0tY2FyZC1kYXRhJykpOwogICAgICAgIC8vIE5lZWQgdG8gcHVzaCBsaXN0TmFtZQogICAgICAgIHByb2R1Y3REYXRhWydpdGVtX2xpc3RfbmFtZSddID0gbGlzdE5hbWU7CiAgICAgICAgLy8gUHVzaCBjbGlja2VkIHByb2R1Y3QKICAgICAgICBheEl0ZW0ucHVzaChwcm9kdWN0RGF0YSk7CiAgICAgICAgLy8gU2VuZCAiY2xpY2siIGV2ZW50CiAgICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2NsaWNrJywKICAgICAgICAgIGF4SXRlbTogYXhJdGVtCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gUHVzaCBhbGwgcHJvZHVjdCBpbiBkYXRhTGF5ZXIKICAgIGF4UHJvZHVjdExpc3QucHVzaCh7CiAgICAgIGl0ZW1fbmFtZTogJ1AxOTAgWE1BUyBCQUxNIFJFUEFJUicsCiAgICAgIGl0ZW1faWQ6ICdFU1BfUFJPRFVDVF9vMDAxeDAyXzEwMTY4OCcsCiAgICAgIHByaWNlOiAnOCw0NyDigqwnLAogICAgICBpdGVtX2JyYW5kOiAnU1RBTkhPTUUnLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ1NUQU5IT01FJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdBbGwgcHJvZHVjdHMnLAogICAgICBpdGVtX2NhdGVnb3J5MzogJycsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIHByb2R1Y3QtbWluaWF0dXJlIHByb2R1Y3QtY2FyZC13cmFwcGVyIHVuZGVybGluZS1saW5rcy1ob3ZlciBndG0tY2FyZC1wcm9kdWN0IGd0bS1jYXJkLXByb2R1Y3QtcDE5MC14bWFzLWJhbG0tcmVwYWlyLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiBndG0tY2FyZC1kYXRhPScKICAgICAgICB7CiAgICAgICAgICAgICJpdGVtX25hbWUiOiAiUDE5MCBYTUFTIEJBTE0gUkVQQUlSIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiRVNQX1BST0RVQ1RfbzAwMXgwMl8xMDE2ODgiLAogICAgICAgICAgICAicHJpY2UiOiAiOCw0NyDigqwiLAogICAgICAgICAgICAiaXRlbV9icmFuZCI6ICJTVEFOSE9NRSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MSI6ICIiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAiYWxsLXByb2R1Y3RzIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkzIjogbnVsbCwKICAgICAgICAgICAgIml0ZW1fdmFyaWFudCI6ICJEZWZhdWx0IFRpdGxlIgogICAgICAgIH0KICAgICc+CiAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9IgogICAgICAgIGNhcmQgY2FyZC0tc3RhbmRhcmQKICAgICAgICAgY2FyZC0tbWVkaWEKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgIgogICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgPgogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNhcmRfX2lubmVyIGNvbG9yLWJhY2tncm91bmQtMSBncmFkaWVudCByYXRpbyIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICAgICAgPjxkaXYgY2xhc3M9ImNhcmRfX21lZGlhIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtLXRyYW5zcGFyZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY3NldD0iLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNTI4MTBfMV9mNzc0Zjk2MC0xNjQzLTRmNDItYmMyMC1kODVhOWQxZDU1YjAuanBnP3Y9MTcyOTc2OTc4NyZ3aWR0aD0xNjUgMTY1dywvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF81MjgxMF8xX2Y3NzRmOTYwLTE2NDMtNGY0Mi1iYzIwLWQ4NWE5ZDFkNTViMC5qcGc/dj0xNzI5NzY5Nzg3JndpZHRoPTM2MCAzNjB3LC8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzUyODEwXzFfZjc3NGY5NjAtMTY0My00ZjQyLWJjMjAtZDg1YTlkMWQ1NWIwLmpwZz92PTE3Mjk3Njk3ODcgNDk5dwogICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzUyODEwXzFfZjc3NGY5NjAtMTY0My00ZjQyLWJjMjAtZDg1YTlkMWQ1NWIwLmpwZz92PTE3Mjk3Njk3ODcmd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iUDE5MCBYTUFTIEJBTE0gUkVQQUlSIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibW90aW9uLXJlZHVjZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSI0OTkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iNDk5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF84MTAxMjc5NzkzMzI3IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjgxMDEyNzk3OTMzMjciIGRhdGEtdmFyaWFudC1pZD0iNDQ1Mjc0MzY2MjgxNDMiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHA6Ly93d3cuc3RhbmhvbWUuZXMvcHJvZHVjdHMvcDE5MC14bWFzLWJhbG0tcmVwYWlyIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjxzcGFuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJCYWRnZS10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi04MTAxMjc5NzkzMzI3IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYmFkZ2UgYmFkZ2UtLWJvdHRvbS1sZWZ0IGNvbG9yLXNjaGVtZS1kNmE1YzAzNi02YzQ1LTQ3Y2YtYWRkNi1iYWRmZWZiNDVmZDkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+LTE1JQo8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPjxkaXYgY2xhc3M9ImNhcmRfX3R5cGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBTkhPTUUKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHAgY2xhc3M9ImNhcmRfX2hlYWRpbmcgaDUiICBpZD0idGl0bGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODEwMTI3OTc5MzMyNyIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvcDE5MC14bWFzLWJhbG0tcmVwYWlyIiBpZD0iQ2FyZExpbmstdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODEwMTI3OTc5MzMyNyIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi04MTAxMjc5NzkzMzI3IEJhZGdlLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTgxMDEyNzk3OTMzMjciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQsOhbHNhbW8gcmVwYXJhZG9yIHBhcmEgbWFub3MgbXV5IHNlY2FzIHkgem9uYXMgZGViaWxpdGFkYXMgCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIFAxOTAgWE1BUyBCQUxNIFJFUEFJUgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIHByaWNlLS1vbi1zYWxlIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZWNpbyBoYWJpdHVhbDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgIDgsNDcg4oKsCiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJpY2VfX3NhbGUiPgogICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlY2lvIGRlIG9mZXJ0YTwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA4LDQ3IOKCrAogICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlY2lvIGhhYml0dWFsPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIDksOTgg4oKsCiAgICAgICAgICAgIAogICAgICAgICAgPC9zPgogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxzbWFsbCBjbGFzcz0idW5pdC1wcmljZSBjYXB0aW9uIGhpZGRlbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZWNpbyB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPiZuYnNwO3BvciZuYnNwOzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvc3Bhbj4KICAgIDwvc21hbGw+CiAgPC9kaXY+PC9kaXY+Cgo8L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgcXVpY2stYWRkLW1vYmlsZSBuby1qcy1oaWRkZW4gZXh0cmEtbGFyZ2UtdXAtaGlkZSI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiODEwMTI3OTc5MzMyNyIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJoaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI0NDUyNzQzNjYyODE0MyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9kdWN0LXZhcmlhbnQtaWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjgxMDEyNzk3OTMzMjctc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I4MTAxMjc5NzkzMzI3LXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi04MTAxMjc5NzkzMzI3IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcKICBjbGFzcz0iaWNvbiBzaC1pY29uLWNhcnQtZW1wdHkiCiAgYXJpYS1oaWRkZW49InRydWUiCiAgZm9jdXNhYmxlPSJmYWxzZSIKICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgdmlld0JveD0iMCAwIDE4IDIyIgogIGZpbGw9Im5vbmUiCj4KICA8cGF0aCBkPSJNMTYuNDE5IDQuNzEzdjE0LjM0OGEyLjYwOSAyLjYwOSAwIDAgMS0yLjYwOSAyLjYwN0gzLjM3NmEyLjYwOSAyLjYwOSAwIDAgMS0yLjYwOS0yLjYwN1Y0LjcxM1oiIHN0cm9rZT0iY3VycmVudENvbG9yIi8+CiAgPHBhdGggZD0iTTQuNjQ3IDcuMzIxVjQuNzEyYTMuOTQ2IDMuOTQ2IDAgMSAxIDcuODkxIDB2Mi42MDkiICBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgo8L3N2Zz4KICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWdvdGFkbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzAxMTkwMzc2IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSI4MTAxMjc5NzkzMzI3IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQtaG92ZXIiPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfODEwMTI3OTc5MzMyNyIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSI4MTAxMjc5NzkzMzI3IiBkYXRhLXZhcmlhbnQtaWQ9IjQ0NTI3NDM2NjI4MTQzIiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwOi8vd3d3LnN0YW5ob21lLmVzL3Byb2R1Y3RzL3AxOTAteG1hcy1iYWxtLXJlcGFpciI+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCw6Fsc2FtbyByZXBhcmFkb3IgcGFyYSBtYW5vcyBtdXkgc2VjYXMgeSB6b25hcyBkZWJpbGl0YWRhcwogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgUDE5MCBYTUFTIEJBTE0gUkVQQUlSCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHVsIGNsYXNzPSJsaXN0LXVuc3R5bGVkIGNhcmRfX3ZhcmlhbnQta2V5X3BvaW50cyI+PGxpPjxzcGFuPkNhbG1hIGxhcyBtYW5vcyBtdXkgc2VjYXMgeSB6b25hcyBkZWJpbGl0YWRhcy48L3NwYW4+PC9saT48bGk+PHNwYW4+RW5yaXF1ZWNpZG8gY29uIG1hbnRlY2EgZGUga2FyaXTDqS48L3NwYW4+PC9saT48bGk+PHNwYW4+Q29udGllbmUgbcOhcyBkZWwgOTglIGRlIGluZ3JlZGllbnRlcyBkZSBvcmlnZW4gbmF0dXJhbC48L3NwYW4+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBuby1qcy1oaWRkZW4iPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjgxMDEyNzk3OTMzMjciIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNDQ1Mjc0MzY2MjgxNDMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjgxMDEyNzk3OTMzMjctc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjgxMDEyNzk3OTMzMjctc3VibWl0IHRpdGxlLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTgxMDEyNzk3OTMzMjciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BZ3JlZ2FyIGFsIGNhcnJpdG8gLSA8c3BhbiBjbGFzcz0iYnV0dG9uX19wcmljZSI+OCw0NyDigqw8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWdvdGFkbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKPGxpbmsgaHJlZj0iLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvdC82L2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTcwMTE5MDM3NiIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCjxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICA8c3ZnCiAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgIGZvY3VzYWJsZT0iZmFsc2UiCiAgICBjbGFzcz0ic3Bpbm5lciIKICAgIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICA+CiAgICA8Y2lyY2xlIGNsYXNzPSJwYXRoIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjYiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCI+PC9jaXJjbGU+CiAgPC9zdmc+CjwvZGl2Pgo8L2J1dHRvbj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iODEwMTI3OTc5MzMyNyIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pg==
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzAxMTkwMzczIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTcwMTE5MDM3NCIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LXAyMTYteG1hcy1jcmVtZS1jb250b3VyLXlldXgtZWNoYXJwZS10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYicpOwogICAgcHJvZHVjdENhcmRzLmZvckVhY2goZnVuY3Rpb24gKGNhcmQpIHsKICAgICAgaWYgKGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKSAhPT0gbnVsbCkgewogICAgICAgIGxpc3ROYW1lID0gY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpLmdldEF0dHJpYnV0ZSgnZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpOwogICAgICB9CiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICB2YXIgcHJvZHVjdERhdGEgPSBKU09OLnBhcnNlKGNhcmQuZ2V0QXR0cmlidXRlKCdndG0tY2FyZC1kYXRhJykpOwogICAgICAgIC8vIE5lZWQgdG8gcHVzaCBsaXN0TmFtZQogICAgICAgIHByb2R1Y3REYXRhWydpdGVtX2xpc3RfbmFtZSddID0gbGlzdE5hbWU7CiAgICAgICAgLy8gUHVzaCBjbGlja2VkIHByb2R1Y3QKICAgICAgICBheEl0ZW0ucHVzaChwcm9kdWN0RGF0YSk7CiAgICAgICAgLy8gU2VuZCAiY2xpY2siIGV2ZW50CiAgICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2NsaWNrJywKICAgICAgICAgIGF4SXRlbTogYXhJdGVtCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gUHVzaCBhbGwgcHJvZHVjdCBpbiBkYXRhTGF5ZXIKICAgIGF4UHJvZHVjdExpc3QucHVzaCh7CiAgICAgIGl0ZW1fbmFtZTogJ1AyMTYgWE1BUyBDUkVNRStDT05UT1VSIFlFVVgrRUNIQVJQRScsCiAgICAgIGl0ZW1faWQ6ICdFU1BfUFJPRFVDVF9vMDAxeDAyXzEwMTcxMycsCiAgICAgIHByaWNlOiAnNTAsMzEg4oKsJywKICAgICAgaXRlbV9icmFuZDogJ0RyIFBpZXJyZSBSaWNhdWQnLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ0RyIFBpZXJyZSBSaWNhdWQnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0NyZW1hIGRlIGTDrWEgYW50aWVkYWQnLAogICAgICBpdGVtX2NhdGVnb3J5MzogJycsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIHByb2R1Y3QtbWluaWF0dXJlIHByb2R1Y3QtY2FyZC13cmFwcGVyIHVuZGVybGluZS1saW5rcy1ob3ZlciBndG0tY2FyZC1wcm9kdWN0IGd0bS1jYXJkLXByb2R1Y3QtcDIxNi14bWFzLWNyZW1lLWNvbnRvdXIteWV1eC1lY2hhcnBlLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiBndG0tY2FyZC1kYXRhPScKICAgICAgICB7CiAgICAgICAgICAgICJpdGVtX25hbWUiOiAiUDIxNiBYTUFTIENSRU1FK0NPTlRPVVIgWUVVWCtFQ0hBUlBFIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiRVNQX1BST0RVQ1RfbzAwMXgwMl8xMDE3MTMiLAogICAgICAgICAgICAicHJpY2UiOiAiNTAsMzEg4oKsIiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiRHIgUGllcnJlIFJpY2F1ZCIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MSI6ICIiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAiYW50aS1hZ2luZy1kYXktY3JlYW0iLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJz4KICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iCiAgICAgICAgY2FyZCBjYXJkLS1zdGFuZGFyZAogICAgICAgICBjYXJkLS1tZWRpYQogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAiCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY2FyZF9faW5uZXIgY29sb3ItYmFja2dyb3VuZC0xIGdyYWRpZW50IHJhdGlvIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgICAgICA+PGRpdiBjbGFzcz0iY2FyZF9fbWVkaWEiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS0tdHJhbnNwYXJlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Jjc2V0PSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9FU1BfcHJvZHVjdF9DU19QMjE2XzZhOGIwZmYxLTM3MzEtNGQwNi05MWQzLWFiN2FmOWIzNjM5MC5qcGc/dj0xNzI5NTA2MTQxJndpZHRoPTE2NSAxNjV3LC8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X0NTX1AyMTZfNmE4YjBmZjEtMzczMS00ZDA2LTkxZDMtYWI3YWY5YjM2MzkwLmpwZz92PTE3Mjk1MDYxNDEmd2lkdGg9MzYwIDM2MHcsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfQ1NfUDIxNl82YThiMGZmMS0zNzMxLTRkMDYtOTFkMy1hYjdhZjliMzYzOTAuanBnP3Y9MTcyOTUwNjE0MSZ3aWR0aD01MzMgNTMzdywvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9FU1BfcHJvZHVjdF9DU19QMjE2XzZhOGIwZmYxLTM3MzEtNGQwNi05MWQzLWFiN2FmOWIzNjM5MC5qcGc/dj0xNzI5NTA2MTQxJndpZHRoPTcyMCA3MjB3LC8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X0NTX1AyMTZfNmE4YjBmZjEtMzczMS00ZDA2LTkxZDMtYWI3YWY5YjM2MzkwLmpwZz92PTE3Mjk1MDYxNDEmd2lkdGg9OTQwIDk0MHcsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvRVNQX3Byb2R1Y3RfQ1NfUDIxNl82YThiMGZmMS0zNzMxLTRkMDYtOTFkMy1hYjdhZjliMzYzOTAuanBnP3Y9MTcyOTUwNjE0MSZ3aWR0aD0xMDY2IDEwNjZ3LC8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0VTUF9wcm9kdWN0X0NTX1AyMTZfNmE4YjBmZjEtMzczMS00ZDA2LTkxZDMtYWI3YWY5YjM2MzkwLmpwZz92PTE3Mjk1MDYxNDEgMTIwMHcKICAgICAgICAgICAgICAgICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9FU1BfcHJvZHVjdF9DU19QMjE2XzZhOGIwZmYxLTM3MzEtNGQwNi05MWQzLWFiN2FmOWIzNjM5MC5qcGc/dj0xNzI5NTA2MTQxJndpZHRoPTUzMyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZXM9IihtaW4td2lkdGg6IDE2MDBweCkgMzY3cHgsIChtaW4td2lkdGg6IDk5MHB4KSBjYWxjKCgxMDB2dyAtIDEzMHB4KSAvIDQpLCAobWluLXdpZHRoOiA3NTBweCkgY2FsYygoMTAwdncgLSAxMjBweCkgLyAzKSwgY2FsYygoMTAwdncgLSAzNXB4KSAvIDIpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9IlAyMTYgWE1BUyBDUkVNRStDT05UT1VSIFlFVVgrRUNIQVJQRSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1vdGlvbi1yZWR1Y2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF84MDk4MDc5NzY4NzUxIiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjgwOTgwNzk3Njg3NTEiIGRhdGEtdmFyaWFudC1pZD0iNDQ1MTE2MTg1NjQyNzEiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHA6Ly93d3cuc3RhbmhvbWUuZXMvcHJvZHVjdHMvcDIxNi14bWFzLWNyZW1lLWNvbnRvdXIteWV1eC1lY2hhcnBlIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIERyIFBpZXJyZSBSaWNhdWQKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHAgY2xhc3M9ImNhcmRfX2hlYWRpbmcgaDUiICBpZD0idGl0bGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODA5ODA3OTc2ODc1MSIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvcDIxNi14bWFzLWNyZW1lLWNvbnRvdXIteWV1eC1lY2hhcnBlIiBpZD0iQ2FyZExpbmstdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODA5ODA3OTc2ODc1MSIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi04MDk4MDc5NzY4NzUxIEJhZGdlLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTgwOTgwNzk3Njg3NTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRMO6byBkZSBjcmVtYSBhbnRpYXJydWdhcyB5IGNvbnRvcm5vIGRlIG9qb3MgKyBwYcOxdWVsbyBMYXZpbGxlIGRlIHJlZ2FsbyAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgUDIxNiBYTUFTIENSRU1FK0NPTlRPVVIgWUVVWCtFQ0hBUlBFCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbmZvcm1hdGlvbiI+PHNwYW4gY2xhc3M9ImNhcHRpb24tbGFyZ2UgbGlnaHQiPjwvc3Bhbj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uLWZvcm0tcmF0aW5nLXByaWNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhdGluZy1wcmljZSI+CjxkaXYKICBjbGFzcz0iCiAgICBwcmljZSAiCj4KICA8ZGl2IGNsYXNzPSJwcmljZV9fY29udGFpbmVyIj48ZGl2IGNsYXNzPSJwcmljZV9fcmVndWxhciI+PHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlY2lvIGhhYml0dWFsPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgNTAsMzEg4oKsCiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJpY2VfX3NhbGUiPgogICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlY2lvIGRlIG9mZXJ0YTwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA1MCwzMSDigqwKICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZWNpbyBoYWJpdHVhbDwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICA8L3M+CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPHNtYWxsIGNsYXNzPSJ1bml0LXByaWNlIGNhcHRpb24gaGlkZGVuIj4KICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+UHJlY2lvIHVuaXRhcmlvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cG9yJm5ic3A7PC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9zcGFuPgogICAgPC9zbWFsbD4KICA8L2Rpdj48L2Rpdj4KCjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBxdWljay1hZGQtbW9iaWxlIG5vLWpzLWhpZGRlbiBleHRyYS1sYXJnZS11cC1oaWRlIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I4MDk4MDc5NzY4NzUxIiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjQ0NTExNjE4NTY0MjcxIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiODA5ODA3OTc2ODc1MS1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjgwOTgwNzk3Njg3NTEtc3VibWl0IHRpdGxlLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTgwOTgwNzk3Njg3NTEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZwogIGNsYXNzPSJpY29uIHNoLWljb24tY2FydC1lbXB0eSIKICBhcmlhLWhpZGRlbj0idHJ1ZSIKICBmb2N1c2FibGU9ImZhbHNlIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB2aWV3Qm94PSIwIDAgMTggMjIiCiAgZmlsbD0ibm9uZSIKPgogIDxwYXRoIGQ9Ik0xNi40MTkgNC43MTN2MTQuMzQ4YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5IDIuNjA3SDMuMzc2YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5LTIuNjA3VjQuNzEzWiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KICA8cGF0aCBkPSJNNC42NDcgNy4zMjFWNC43MTJhMy45NDYgMy45NDYgMCAxIDEgNy44OTEgMHYyLjYwOSIgIHN0cm9rZT0iY3VycmVudENvbG9yIi8+Cjwvc3ZnPgogIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZ290YWRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL3QvNi9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MDExOTAzNzYiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9IjgwOTgwNzk3Njg3NTEiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbi1pZCIgdmFsdWU9InRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiAvPjwvZm9ybT48L3Byb2R1Y3QtZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudC1ob3ZlciI+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF84MDk4MDc5NzY4NzUxIiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjgwOTgwNzk3Njg3NTEiIGRhdGEtdmFyaWFudC1pZD0iNDQ1MTE2MTg1NjQyNzEiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHA6Ly93d3cuc3RhbmhvbWUuZXMvcHJvZHVjdHMvcDIxNi14bWFzLWNyZW1lLWNvbnRvdXIteWV1eC1lY2hhcnBlIj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2hlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIETDum8gZGUgY3JlbWEgYW50aWFycnVnYXMgeSBjb250b3JubyBkZSBvam9zICsgcGHDsXVlbG8gTGF2aWxsZSBkZSByZWdhbG8KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIFAyMTYgWE1BUyBDUkVNRStDT05UT1VSIFlFVVgrRUNIQVJQRQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pjx1bCBjbGFzcz0ibGlzdC11bnN0eWxlZCBjYXJkX192YXJpYW50LWtleV9wb2ludHMiPjxsaT48c3Bhbj5HYW1hIGFudGlhcnJ1Z2FzIGEgYmFzZSBkZSDDgWNpZG8gSGlhbHVyw7NuaWNvLiA8L3NwYW4+PC9saT48bGk+PHNwYW4+Q3JlbWEgcmVsbGVuYWRvcmEgZGUgY29udG9ybm8gZGUgb2pvcyBwYXJhIHJlZHVjaXIgbGFzIGFycnVnYXMgZGVsIGNvbnRvcm5vIGRlIG9qb3MuPC9zcGFuPjwvbGk+PGxpPjxzcGFuPlBhw7F1ZWxvIExhdmlsbGUgZGUgcmVnYWxvPC9zcGFuPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I4MDk4MDc5NzY4NzUxIiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJoaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjQ0NTExNjE4NTY0MjcxIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9kdWN0LXZhcmlhbnQtaWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I4MDk4MDc5NzY4NzUxLXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I4MDk4MDc5NzY4NzUxLXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi04MDk4MDc5NzY4NzUxIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+QWdyZWdhciBhbCBjYXJyaXRvIC0gPHNwYW4gY2xhc3M9ImJ1dHRvbl9fcHJpY2UiPjUwLDMxIOKCrDwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZ290YWRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzAxMTkwMzc2IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSI4MDk4MDc5NzY4NzUxIiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzAxMTkwMzczIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC90LzYvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTcwMTE5MDM3NCIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKPHNjcmlwdD4KICAvLyBDcmVhdGUgUHJvZHVjdCBMaXN0IGFycmF5CiAgaWYgKCFheFByb2R1Y3RMaXN0KSB7CiAgICB2YXIgYXhQcm9kdWN0TGlzdCA9IFtdOwogIH0KCiAgLy8gQ3JlYXRlIFByb2R1Y3QgY2xpY2sgYXJyYXkKICBpZiAoIWF4SXRlbSkgewogICAgdmFyIGF4SXRlbSA9IFtdOwogIH0KCiAgaWYgKCFsaXN0TmFtZSkgewogICAgdmFyIGxpc3ROYW1lID0gJyc7CiAgfSBlbHNlIHsKICAgIGxpc3ROYW1lID0gJyc7CiAgfQoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgLy8gT25jbGljayBldmVudAogICAgdmFyIHByb2R1Y3RDYXJkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndG0tY2FyZC1wcm9kdWN0LXAyMTIteG1hcy1jcmVtZS1hbnRpLXJpZGVzLWNvbWJsYW50ZS10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYicpOwogICAgcHJvZHVjdENhcmRzLmZvckVhY2goZnVuY3Rpb24gKGNhcmQpIHsKICAgICAgaWYgKGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKSAhPT0gbnVsbCkgewogICAgICAgIGxpc3ROYW1lID0gY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpLmdldEF0dHJpYnV0ZSgnZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpOwogICAgICB9CiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICB2YXIgcHJvZHVjdERhdGEgPSBKU09OLnBhcnNlKGNhcmQuZ2V0QXR0cmlidXRlKCdndG0tY2FyZC1kYXRhJykpOwogICAgICAgIC8vIE5lZWQgdG8gcHVzaCBsaXN0TmFtZQogICAgICAgIHByb2R1Y3REYXRhWydpdGVtX2xpc3RfbmFtZSddID0gbGlzdE5hbWU7CiAgICAgICAgLy8gUHVzaCBjbGlja2VkIHByb2R1Y3QKICAgICAgICBheEl0ZW0ucHVzaChwcm9kdWN0RGF0YSk7CiAgICAgICAgLy8gU2VuZCAiY2xpY2siIGV2ZW50CiAgICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2NsaWNrJywKICAgICAgICAgIGF4SXRlbTogYXhJdGVtCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gUHVzaCBhbGwgcHJvZHVjdCBpbiBkYXRhTGF5ZXIKICAgIGF4UHJvZHVjdExpc3QucHVzaCh7CiAgICAgIGl0ZW1fbmFtZTogJ1AyMTIgWE1BUyBDUkVNRSBBTlRJLVJJREVTIENPTUJMQU5URScsCiAgICAgIGl0ZW1faWQ6ICdFU1BfUFJPRFVDVF9vMDAxeDAyXzEwMTcxMCcsCiAgICAgIHByaWNlOiAnMzgsMjEg4oKsJywKICAgICAgaXRlbV9icmFuZDogJ0RyIFBpZXJyZSBSaWNhdWQnLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ0RyIFBpZXJyZSBSaWNhdWQnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0FsbCBwcm9kdWN0cycsCiAgICAgIGl0ZW1fY2F0ZWdvcnkzOiAnJywKICAgICAgaXRlbV92YXJpYW50OiAnRGVmYXVsdCBUaXRsZScsCiAgICAgIGl0ZW1fbGlzdF9uYW1lOiBsaXN0TmFtZQogICAgfSk7CgogICAgLy8gU2VuZCAiZmluaXNoZWQiIGV2ZW50CiAgICBpZiAoYXhQcm9kdWN0TGlzdC5sZW5ndGggPT09IHdpbmRvdy50aGVtZS5pdGVtc19jb3VudCkgewogICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2xpc3RfY29tcGxldGUnLAogICAgICAgIGF4UHJvZHVjdExpc3Q6IGF4UHJvZHVjdExpc3QsCiAgICAgIH0pOwogICAgfQogIH0pOwoKICBmdW5jdGlvbiBjbGlja1Byb2R1Y3QocHJvZHVjdERhdGEpIHt9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgZGVmZXI+CiAgZnVuY3Rpb24gc3d5bUNhbGxiYWNrRm4oc3dhdCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3d5bTpjb2xsZWN0aW9ucy1sb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHN3YXQuaW5pdGlhbGl6ZUFjdGlvbkJ1dHRvbnMoJzw8Q29sbGVjdGlvbnMgR3JpZCBQQVJFTlQgU2VsZWN0b3IgPj4nKTsKICAgIH0pOwogIH0KICBpZiAoIXdpbmRvdy5Td3ltQ2FsbGJhY2tzKSB7CiAgICB3aW5kb3cuU3d5bUNhbGxiYWNrcyA9IFtdOwogIH0KICB3aW5kb3cuU3d5bUNhbGxiYWNrcy5wdXNoKHN3eW1DYWxsYmFja0ZuKTsKPC9zY3JpcHQ+CgoKICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC1wMjEyLXhtYXMtY3JlbWUtYW50aS1yaWRlcy1jb21ibGFudGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJQMjEyIFhNQVMgQ1JFTUUgQU5USS1SSURFUyBDT01CTEFOVEUiLAogICAgICAgICAgICAiaXRlbV9pZCI6ICJFU1BfUFJPRFVDVF9vMDAxeDAyXzEwMTcxMCIsCiAgICAgICAgICAgICJwcmljZSI6ICIzOCwyMSDigqwiLAogICAgICAgICAgICAiaXRlbV9icmFuZCI6ICJEciBQaWVycmUgUmljYXVkIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkxIjogIiIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MiI6ICJhbGwtcHJvZHVjdHMiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJz4KICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iCiAgICAgICAgY2FyZCBjYXJkLS1zdGFuZGFyZAogICAgICAgICBjYXJkLS1tZWRpYQogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAiCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY2FyZF9faW5uZXIgY29sb3ItYmFja2dyb3VuZC0xIGdyYWRpZW50IHJhdGlvIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgICAgICA+PGRpdiBjbGFzcz0iY2FyZF9fbWVkaWEiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS0tdHJhbnNwYXJlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Jjc2V0PSIvL3d3dy5zdGFuaG9tZS5lcy9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF8xMDYzNl8xXzU4Y2ZhM2ZlLWYwNWEtNDNmNi05ZDY2LWU5YWUzM2U5MjRhOC5qcGc/dj0xNzI5NzY5ODIyJndpZHRoPTE2NSAxNjV3LC8vd3d3LnN0YW5ob21lLmVzL2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzEwNjM2XzFfNThjZmEzZmUtZjA1YS00M2Y2LTlkNjYtZTlhZTMzZTkyNGE4LmpwZz92PTE3Mjk3Njk4MjImd2lkdGg9MzYwIDM2MHcsLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfMTA2MzZfMV81OGNmYTNmZS1mMDVhLTQzZjYtOWQ2Ni1lOWFlMzNlOTI0YTguanBnP3Y9MTcyOTc2OTgyMiA0OTl3CiAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfMTA2MzZfMV81OGNmYTNmZS1mMDVhLTQzZjYtOWQ2Ni1lOWFlMzNlOTI0YTguanBnP3Y9MTcyOTc2OTgyMiZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJQMjEyIFhNQVMgQ1JFTUUgQU5USS1SSURFUyBDT01CTEFOVEUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjQ5OSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSI0OTkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzgxMDEyODAxMjEwMDciIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iODEwMTI4MDEyMTAwNyIgZGF0YS12YXJpYW50LWlkPSI0NDUyNzQ0MDEwMTU1MSIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cDovL3d3dy5zdGFuaG9tZS5lcy9wcm9kdWN0cy9wMjEyLXhtYXMtY3JlbWUtYW50aS1yaWRlcy1jb21ibGFudGUiPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19iYWRnZSB0b3AgbGVmdCI+PHNwYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9IkJhZGdlLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTgxMDEyODAxMjEwMDciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJiYWRnZSBiYWRnZS0tYm90dG9tLWxlZnQgY29sb3Itc2NoZW1lLWQ2YTVjMDM2LTZjNDUtNDdjZi1hZGQ2LWJhZGZlZmI0NWZkOSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4tMjclCjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+PGRpdiBjbGFzcz0iY2FyZF9fdHlwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEciBQaWVycmUgUmljYXVkCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxwIGNsYXNzPSJjYXJkX19oZWFkaW5nIGg1IiAgaWQ9InRpdGxlLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTgxMDEyODAxMjEwMDciID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL3AyMTIteG1hcy1jcmVtZS1hbnRpLXJpZGVzLWNvbWJsYW50ZSIgaWQ9IkNhcmRMaW5rLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTgxMDEyODAxMjEwMDciIGNsYXNzPSJmdWxsLXVuc3R5bGVkLWxpbmsgZnVsbC11bnN0eWxlZC1saW5rLXByb2R1Y3QiIGFyaWEtbGFiZWxsZWRieT0iQ2FyZExpbmstdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODEwMTI4MDEyMTAwNyBCYWRnZS10ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi04MTAxMjgwMTIxMDA3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZW1hIGFudGlhcnJ1Z2FzIAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBQMjEyIFhNQVMgQ1JFTUUgQU5USS1SSURFUyBDT01CTEFOVEUKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm9ybWF0aW9uIj48c3BhbiBjbGFzcz0iY2FwdGlvbi1sYXJnZSBsaWdodCI+PC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24tZm9ybS1yYXRpbmctcHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0aW5nLXByaWNlIj4KPGRpdgogIGNsYXNzPSIKICAgIHByaWNlICBwcmljZS0tb24tc2FsZSIKPgogIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPjxkaXYgY2xhc3M9InByaWNlX19yZWd1bGFyIj48c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmVjaW8gaGFiaXR1YWw8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAzOCwyMSDigqwKICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmVjaW8gZGUgb2ZlcnRhPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1zYWxlIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDM4LDIxIOKCrAogICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlY2lvIGhhYml0dWFsPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIDUyLDMzIOKCrAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiBoaWRkZW4iPgogICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5QcmVjaW8gdW5pdGFyaW88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+Lzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4mbmJzcDtwb3ImbmJzcDs8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMTYyMTk1MDg2Mzc4NzFfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjgxMDEyODAxMjEwMDciIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNDQ1Mjc0NDAxMDE1NTEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I4MTAxMjgwMTIxMDA3LXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiODEwMTI4MDEyMTAwNy1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODEwMTI4MDEyMTAwNyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnCiAgY2xhc3M9Imljb24gc2gtaWNvbi1jYXJ0LWVtcHR5IgogIGFyaWEtaGlkZGVuPSJ0cnVlIgogIGZvY3VzYWJsZT0iZmFsc2UiCiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHZpZXdCb3g9IjAgMCAxOCAyMiIKICBmaWxsPSJub25lIgo+CiAgPHBhdGggZD0iTTE2LjQxOSA0LjcxM3YxNC4zNDhhMi42MDkgMi42MDkgMCAwIDEtMi42MDkgMi42MDdIMy4zNzZhMi42MDkgMi42MDkgMCAwIDEtMi42MDktMi42MDdWNC43MTNaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgogIDxwYXRoIGQ9Ik00LjY0NyA3LjMyMVY0LjcxMmEzLjk0NiAzLjk0NiAwIDEgMSA3Ljg5MSAwdjIuNjA5IiAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+CiAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnb3RhZG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKPGxpbmsgaHJlZj0iLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvdC82L2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTcwMTE5MDM3NiIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCjxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICA8c3ZnCiAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgIGZvY3VzYWJsZT0iZmFsc2UiCiAgICBjbGFzcz0ic3Bpbm5lciIKICAgIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICA+CiAgICA8Y2lyY2xlIGNsYXNzPSJwYXRoIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjYiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCI+PC9jaXJjbGU+CiAgPC9zdmc+CjwvZGl2Pgo8L2J1dHRvbj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iODEwMTI4MDEyMTAwNyIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzgxMDEyODAxMjEwMDciIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iODEwMTI4MDEyMTAwNyIgZGF0YS12YXJpYW50LWlkPSI0NDUyNzQ0MDEwMTU1MSIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cDovL3d3dy5zdGFuaG9tZS5lcy9wcm9kdWN0cy9wMjEyLXhtYXMtY3JlbWUtYW50aS1yaWRlcy1jb21ibGFudGUiPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlbWEgYW50aWFycnVnYXMKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIFAyMTIgWE1BUyBDUkVNRSBBTlRJLVJJREVTIENPTUJMQU5URQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pjx1bCBjbGFzcz0ibGlzdC11bnN0eWxlZCBjYXJkX192YXJpYW50LWtleV9wb2ludHMiPjxsaT48c3Bhbj5SZWR1Y2UgeSBhbGlzYSBsYXMgYXJydWdhcyBlbiB0YW4gc29sbyA3IGTDrWFzLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5SZWp1dmVuZWNlIGxhIHBpZWwgZ3JhY2lhcyBhbCDDoWNpZG8gaGlhbHVyw7NuaWNvIHB1cm8geSBhIGxvcyBmbGF2b25vaWRlcyBkZSBnYWxhbmdhIG9yZ8Ohbmljb3MuPC9zcGFuPjwvbGk+PGxpPjxzcGFuPkxhIHByZXNlbmNpYSBkZSBmbGF2b25vaWRlcyBvcmfDoW5pY29zIGRlIGdhbGFuZ2EgZXN0aW11bGFuIGxhIHPDrW50ZXNpcyBkZSDDoWNpZG8gaGlhbHVyw7NuaWNvLjwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiODEwMTI4MDEyMTAwNyIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI0NDUyNzQ0MDEwMTU1MSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiODEwMTI4MDEyMTAwNy1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLXRlbXBsYXRlLS0xNjIxOTUwODYzNzg3MV9fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiODEwMTI4MDEyMTAwNy1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItODEwMTI4MDEyMTAwNyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFncmVnYXIgYWwgY2Fycml0byAtIDxzcGFuIGNsYXNzPSJidXR0b25fX3ByaWNlIj4zOCwyMSDigqw8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWdvdGFkbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKPGxpbmsgaHJlZj0iLy93d3cuc3RhbmhvbWUuZXMvY2RuL3Nob3AvdC82L2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTcwMTE5MDM3NiIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCjxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICA8c3ZnCiAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgIGZvY3VzYWJsZT0iZmFsc2UiCiAgICBjbGFzcz0ic3Bpbm5lciIKICAgIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICA+CiAgICA8Y2lyY2xlIGNsYXNzPSJwYXRoIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjYiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCI+PC9jaXJjbGU+CiAgPC9zdmc+CjwvZGl2Pgo8L2J1dHRvbj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iODEwMTI4MDEyMTAwNyIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTE2MjE5NTA4NjM3ODcxX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pg==