PHN0eWxlPgogICAgLmV4YW1wbGVfcmVzcG9uc2l2ZV81IHsgIHBvc2l0aW9uOmZpeGVkOyBsZWZ0OjA7IH0KICAgIEBtZWRpYShtaW4td2lkdGg6IDEzNDBweCkgeyAuZXhhbXBsZV9yZXNwb25zaXZlXzUgeyB3aWR0aDogMTYwcHg7IGhlaWdodDogNjAwcHg7ICBwb3NpdGlvbjpmaXhlZDsgbGVmdDowO319CiAgICBAbWVkaWEobWluLXdpZHRoOiAxNTAwcHgpIHsgLmV4YW1wbGVfcmVzcG9uc2l2ZV81IHsgd2lkdGg6IDI0MHB4OyBoZWlnaHQ6IDYwMHB4OyAgcG9zaXRpb246Zml4ZWQ7IGxlZnQ6MDt9fQogICAgQG1lZGlhKG1pbi13aWR0aDogMTYyMHB4KSB7IC5leGFtcGxlX3Jlc3BvbnNpdmVfNSB7IHdpZHRoOiAzMDBweDsgaGVpZ2h0OiA2MDBweDsgIHBvc2l0aW9uOmZpeGVkOyBsZWZ0OjA7fX0KCiAgICAuZXhhbXBsZV9yZXNwb25zaXZlXzEgeyAgcG9zaXRpb246Zml4ZWQ7IHJpZ2h0OjA7IH0KICAgIEBtZWRpYShtaW4td2lkdGg6IDEzNDBweCkgeyAuZXhhbXBsZV9yZXNwb25zaXZlXzEgeyB3aWR0aDogMTYwcHg7IGhlaWdodDogNjAwcHg7ICBwb3NpdGlvbjpmaXhlZDsgcmlnaHQ6MDt9fQogICAgQG1lZGlhKG1pbi13aWR0aDogMTUwMHB4KSB7IC5leGFtcGxlX3Jlc3BvbnNpdmVfMSB7IHdpZHRoOiAyNDBweDsgaGVpZ2h0OiA2MDBweDsgIHBvc2l0aW9uOmZpeGVkOyByaWdodDowO319CiAgICBAbWVkaWEobWluLXdpZHRoOiAxNjIwcHgpIHsgLmV4YW1wbGVfcmVzcG9uc2l2ZV8xIHsgd2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDYwMHB4OyAgcG9zaXRpb246Zml4ZWQ7IHJpZ2h0OjA7fX0KPC9zdHlsZT4KPHNjcmlwdD4KICAgIGdvb2dsZXRhZy5jbWQucHVzaChmdW5jdGlvbigpIHsKCiAgICAgICAgc2xvdFN0aWNrTGVmdE1hcHBpbmcgPSBnb29nbGV0YWcuc2l6ZU1hcHBpbmcoKS4KICAgICAgICAgICAgIGFkZFNpemUoWzAsIDBdLCBbXSkuCiAgICAgICAgICAgICBhZGRTaXplKFsxMzQwLCA2MDBdLCBbMTYwLCA2MDBdKS4KICAgICAgICAgICAgIGFkZFNpemUoWzE1MDAsIDYwMF0sIFsyNDAsIDYwMF0pLgogICAgICAgICAgICAgYWRkU2l6ZShbMTYyMCwgNjAwXSwgWzMwMCwgNjAwXSkuCiAgICAgICAgICAgICBidWlsZCgpOwogICAgICAgIGdvb2dsZXRhZy5kZWZpbmVTbG90KAogICAgICAgICAgICAnLzU4MzAyODQ0L1NMRFNfTm92eV9TdGlreV9MZWZ0JywKICAgICAgICAgICAgW1szMDAsIDYwMF0sIFsyNDAsIDYwMF0sIFsxNjAsIDYwMF1dLAogICAgICAgICAgICAnZGl2LWdwdC1hZC0xNTQwNDc2ODYwODA1LTAnKS5hZGRTZXJ2aWNlKGdvb2dsZXRhZy5wdWJhZHMoKSkuc2V0VGFyZ2V0aW5nKCJub3Z5LnR2ODM2NDEyIiwgIjRhYjk3ZTAxODRhN2YwOTgwMWRiOWFiMTQxMzU0MWI1Iikuc2V0VGFyZ2V0aW5nKCJub3Z5X3R2IiwgIm5vdnkudHYiKQogICAgICAgICAgICAuc2V0VGFyZ2V0aW5nKCJ1cmwiLCAiNGFiOTdlMDE4NGE3ZjA5ODAxZGI5YWIxNDEzNTQxYjUiKS5kZWZpbmVTaXplTWFwcGluZyhzbG90U3RpY2tMZWZ0TWFwcGluZyk7CgogICAgICAgIHNsb3RTdGlja1JpZ2h0TWFwcGluZyA9IGdvb2dsZXRhZy5zaXplTWFwcGluZygpLgogICAgICAgICAgICAgYWRkU2l6ZShbMCwgMF0sIFtdKS4KICAgICAgICAgICAgIGFkZFNpemUoWzEzNDAsIDYwMF0sIFsxNjAsIDYwMF0pLgogICAgICAgICAgICAgYWRkU2l6ZShbMTUwMCwgNjAwXSwgWzI0MCwgNjAwXSkuCiAgICAgICAgICAgICBhZGRTaXplKFsxNjIwLCA2MDBdLCBbMzAwLCA2MDBdKS4KICAgICAgICAgICAgIGJ1aWxkKCk7CiAgICAgICAgZ29vZ2xldGFnLmRlZmluZVNsb3QoCiAgICAgICAgICAgICcvNTgzMDI4NDQvU0xEU19Ob3Z5X1N0aWt5X1JpZ2h0JywKICAgICAgICAgICAgW1sxNjAsIDYwMF0sIFszMDAsIDYwMF0sIFsyNDAsIDYwMF1dLAogICAgICAgICAgICAnZGl2LWdwdC1hZC0xNTQwNDc2NzkyOTY5LTAnKS5hZGRTZXJ2aWNlKGdvb2dsZXRhZy5wdWJhZHMoKSkuc2V0VGFyZ2V0aW5nKCJub3Z5LnR2ODM2NDEyIiwgIjRhYjk3ZTAxODRhN2YwOTgwMWRiOWFiMTQxMzU0MWI1Iikuc2V0VGFyZ2V0aW5nKCJub3Z5X3R2IiwgIm5vdnkudHYiKQogICAgICAgICAgICAuc2V0VGFyZ2V0aW5nKCJ1cmwiLCAiNGFiOTdlMDE4NGE3ZjA5ODAxZGI5YWIxNDEzNTQxYjUiKS5kZWZpbmVTaXplTWFwcGluZyhzbG90U3RpY2tSaWdodE1hcHBpbmcpOwogICAgICAgIH0pOwo8L3NjcmlwdD4KPCEtLSAvNTgzMDI4NDQvU0xEU19Ob3Z5X1N0aWt5X0xlZnQgLS0+CjxkaXYgaWQ9J2Rpdi1ncHQtYWQtMTU0MDQ3Njg2MDgwNS0wJyBjbGFzcz0iZXhhbXBsZV9yZXNwb25zaXZlXzUiPgogICAgPHNjcmlwdD4KICAgICAgICBnb29nbGV0YWcuY21kLnB1c2goZnVuY3Rpb24oKSB7IGdvb2dsZXRhZy5kaXNwbGF5KCdkaXYtZ3B0LWFkLTE1NDA0NzY4NjA4MDUtMCcpOyB9KTsKICAgIDwvc2NyaXB0Pgo8L2Rpdj4KPCEtLSAvNTgzMDI4NDQvU0xEU19Ob3Z5X1N0aWt5X1JpZ2h0IC0tPgo8ZGl2IGlkPSdkaXYtZ3B0LWFkLTE1NDA0NzY3OTI5NjktMCcgY2xhc3M9ImV4YW1wbGVfcmVzcG9uc2l2ZV8xIj4KICAgIDxzY3JpcHQ+CiAgICAgICAgZ29vZ2xldGFnLmNtZC5wdXNoKGZ1bmN0aW9uKCkgeyBnb29nbGV0YWcuZGlzcGxheSgnZGl2LWdwdC1hZC0xNTQwNDc2NzkyOTY5LTAnKTsgfSk7CiAgICA8L3NjcmlwdD4KPC9kaXY+Cg==
CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRzLW91dHN0cmVhbSI+CiAgICAgICAgCQkJCTxkaXYgY2xhc3M9ImNlbnRlciI+CiAgICAgICAgCQkJCQk8c2NyaXB0IGRhdGEtb3V0c3RyZWFtLWlkPSIxMzE3IiBkYXRhLW91dHN0cmVhbS1mb3JtYXQ9ImZ1bGxzY3JlZW4iIGRhdGEtb3V0c3RyZWFtLXNpdGVfaWQ9Ik5vdnlfRnVsbHNjcmVlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtb3V0c3RyZWFtLWNvbnRlbnRfaWQ9Im5vdnkudHYiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vcGxheWVyLnZlcnRhbWVkaWEuY29tL291dHN0cmVhbS11bml0LzIuMDEvb3V0c3RyZWFtLXVuaXQubWluLmpzIj48L3NjcmlwdD4KICAgICAgICAJCQkJPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIA==