Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1kYWlseS13YXNoLW5vdGUtZnJlc2NoZS1lLWFtYnJhdGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2InKTsKICAgIHByb2R1Y3RDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uIChjYXJkKSB7CiAgICAgIGlmIChjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykgIT09IG51bGwpIHsKICAgICAgICBsaXN0TmFtZSA9IGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKS5nZXRBdHRyaWJ1dGUoJ2d0bS10cmFja2luZy1jcm9zc3NlbGwnKTsKICAgICAgfQogICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgdmFyIHByb2R1Y3REYXRhID0gSlNPTi5wYXJzZShjYXJkLmdldEF0dHJpYnV0ZSgnZ3RtLWNhcmQtZGF0YScpKTsKICAgICAgICAvLyBOZWVkIHRvIHB1c2ggbGlzdE5hbWUKICAgICAgICBwcm9kdWN0RGF0YVsnaXRlbV9saXN0X25hbWUnXSA9IGxpc3ROYW1lOwogICAgICAgIC8vIFB1c2ggY2xpY2tlZCBwcm9kdWN0CiAgICAgICAgYXhJdGVtLnB1c2gocHJvZHVjdERhdGEpOwogICAgICAgIC8vIFNlbmQgImNsaWNrIiBldmVudAogICAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9jbGljaycsCiAgICAgICAgICBheEl0ZW06IGF4SXRlbQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwoKICAgIC8vIFB1c2ggYWxsIHByb2R1Y3QgaW4gZGF0YUxheWVyCiAgICBheFByb2R1Y3RMaXN0LnB1c2goewogICAgICBpdGVtX25hbWU6ICdEQUlMWSBXQVNIIE5PVEUgRlJFU0NIRSBFIEFNQlJBVEUnLAogICAgICBpdGVtX2lkOiAnSVRBX1BSREUwMDAzNTA5MlcnLAogICAgICBwcmljZTogJ+KCrDYsNTAnLAogICAgICBpdGVtX2JyYW5kOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ1N0YW5ob21lJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdCZXN0IC0gU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MzogJ0N1cmEgZGVsIGJ1Y2F0bycsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC1kYWlseS13YXNoLW5vdGUtZnJlc2NoZS1lLWFtYnJhdGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJEQUlMWSBXQVNIIE5PVEUgRlJFU0NIRSBFIEFNQlJBVEUiLAogICAgICAgICAgICAiaXRlbV9pZCI6ICJJVEFfUFJERTAwMDM1MDkyVyIsCiAgICAgICAgICAgICJwcmljZSI6ICLigqw2LDUwIiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiU3RhbmhvbWUiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiQ3VyYSBkZWwgYnVjYXRvIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkyIjogImJlc3Qtc3RhbmhvbWUiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJyBkYXRhLXByb2R1Y3QtaWQ9Ijk5MzY2OTAzMTU1OTciPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmNzZXQ9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzYxMDk4XzFfYTcxNDY4OTctNGY2OC00Y2ViLWI1NDItZTMxODQ2MmRiMmExLmpwZz92PTE3MzgwNTk3ODcmd2lkdGg9MTY1IDE2NXcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNjEwOThfMV9hNzE0Njg5Ny00ZjY4LTRjZWItYjU0Mi1lMzE4NDYyZGIyYTEuanBnP3Y9MTczODA1OTc4NyZ3aWR0aD0zNjAgMzYwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF82MTA5OF8xX2E3MTQ2ODk3LTRmNjgtNGNlYi1iNTQyLWUzMTg0NjJkYjJhMS5qcGc/dj0xNzM4MDU5Nzg3JndpZHRoPTUzMyA1MzN3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzYxMDk4XzFfYTcxNDY4OTctNGY2OC00Y2ViLWI1NDItZTMxODQ2MmRiMmExLmpwZz92PTE3MzgwNTk3ODcmd2lkdGg9NzIwIDcyMHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNjEwOThfMV9hNzE0Njg5Ny00ZjY4LTRjZWItYjU0Mi1lMzE4NDYyZGIyYTEuanBnP3Y9MTczODA1OTc4NyZ3aWR0aD05NDAgOTQwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF82MTA5OF8xX2E3MTQ2ODk3LTRmNjgtNGNlYi1iNTQyLWUzMTg0NjJkYjJhMS5qcGc/dj0xNzM4MDU5Nzg3IDk5OHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNjEwOThfMV9hNzE0Njg5Ny00ZjY4LTRjZWItYjU0Mi1lMzE4NDYyZGIyYTEuanBnP3Y9MTczODA1OTc4NyZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJWaXN1YWxlIGRlbCBwcm9kb3R0byBEZXRlcnNpdm8gQnVjYXRvIEJpYW5jaGkgRSBDb2xvcmF0aSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1vdGlvbi1yZWR1Y2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSI5OTgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iOTk4IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF85OTM2NjkwMzE1NTk3IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9Ijk5MzY2OTAzMTU1OTciIGRhdGEtdmFyaWFudC1pZD0iNTA5MjgwMzE5NTczMjUiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL2RhaWx5LXdhc2gtbm90ZS1mcmVzY2hlLWUtYW1icmF0ZSI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48c3BhbiBpZD0iQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY5MDMxNTU5NyIgY2xhc3M9ImJhZGdlIGJhZGdlLS1ib3R0b20tbGVmdCBjb2xvci1zY2hlbWUtZDZhNWMwMzYtNmM0NS00N2NmLWFkZDYtYmFkZmVmYjQ1ZmQ5Ij4tNTAlCjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+PGRpdiBjbGFzcz0iY2FyZF9fdHlwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFuaG9tZQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2NjkwMzE1NTk3IiA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9wcm9kdWN0cy9kYWlseS13YXNoLW5vdGUtZnJlc2NoZS1lLWFtYnJhdGUiIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2NjkwMzE1NTk3IiBjbGFzcz0iZnVsbC11bnN0eWxlZC1saW5rIGZ1bGwtdW5zdHlsZWQtbGluay1wcm9kdWN0IiBhcmlhLWxhYmVsbGVkYnk9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2OTAzMTU1OTcgQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY5MDMxNTU5NyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXRlcnNpdm8gQnVjYXRvIEJpYW5jaGkgRSBDb2xvcmF0aSAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIERBSUxZIFdBU0ggTk9URSBGUkVTQ0hFIEUgQU1CUkFURQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIHByaWNlLS1vbi1zYWxlIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAg4oKsNiw1MAogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InByaWNlX19zYWxlIj4KICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBzY29udGF0bzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICDigqw2LDUwCiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICDigqwxMywwMAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZXp6byB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS11bml0IHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPuKCrDQsMzM8L3NwYW4+CiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cGVyJm5ic3A7PC9zcGFuPgogICAgICAgIDxzcGFuPmwKICAgICAgICA8L3NwYW4+CiAgICAgIDwvc3Bhbj4KICAgIDwvc21hbGw+CiAgPC9kaXY+PC9kaXY+Cgo8L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgcXVpY2stYWRkLW1vYmlsZSBuby1qcy1oaWRkZW4gZXh0cmEtbGFyZ2UtdXAtaGlkZSI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY5MDMxNTU5NyIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJoaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1MDkyODAzMTk1NzMyNSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9kdWN0LXZhcmlhbnQtaWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2OTAzMTU1OTctc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I5OTM2NjkwMzE1NTk3LXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2NjkwMzE1NTk3IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcKICBjbGFzcz0iaWNvbiBzaC1pY29uLWNhcnQtZW1wdHkiCiAgYXJpYS1oaWRkZW49InRydWUiCiAgZm9jdXNhYmxlPSJmYWxzZSIKICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgdmlld0JveD0iMCAwIDE4IDIyIgogIGZpbGw9Im5vbmUiCj4KICA8cGF0aCBkPSJNMTYuNDE5IDQuNzEzdjE0LjM0OGEyLjYwOSAyLjYwOSAwIDAgMS0yLjYwOSAyLjYwN0gzLjM3NmEyLjYwOSAyLjYwOSAwIDAgMS0yLjYwOS0yLjYwN1Y0LjcxM1oiIHN0cm9rZT0iY3VycmVudENvbG9yIi8+CiAgPHBhdGggZD0iTTQuNjQ3IDcuMzIxVjQuNzEyYTMuOTQ2IDMuOTQ2IDAgMSAxIDcuODkxIDB2Mi42MDkiICBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgo8L3N2Zz4KICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNhdXJpdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKPGxpbmsgaHJlZj0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTczMDEwNzE2MSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCjxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICA8c3ZnCiAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgIGZvY3VzYWJsZT0iZmFsc2UiCiAgICBjbGFzcz0ic3Bpbm5lciIKICAgIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICA+CiAgICA8Y2lyY2xlIGNsYXNzPSJwYXRoIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjYiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCI+PC9jaXJjbGU+CiAgPC9zdmc+CjwvZGl2Pgo8L2J1dHRvbj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iOTkzNjY5MDMxNTU5NyIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0Xzk5MzY2OTAzMTU1OTciIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iOTkzNjY5MDMxNTU5NyIgZGF0YS12YXJpYW50LWlkPSI1MDkyODAzMTk1NzMyNSIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvZGFpbHktd2FzaC1ub3RlLWZyZXNjaGUtZS1hbWJyYXRlIj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2hlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldGVyc2l2byBCdWNhdG8gQmlhbmNoaSBFIENvbG9yYXRpCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBEQUlMWSBXQVNIIE5PVEUgRlJFU0NIRSBFIEFNQlJBVEUKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+RWZmaWNhY2UgcGVyIGkgY2FwaSBiaWFuY2hpIGUgY29sb3JhdGkuPC9zcGFuPjwvbGk+PGxpPjxzcGFuPkxhc2NpYSB1biBwcm9mdW1vIGZyZXNjbyBlIGRlbGljYXRvLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5Db250aWVuZSBvbHRyZSBsJzg4JSBkaSBpbmdyZWRpZW50aSBkaSBvcmlnaW5lIG5hdHVyYWxlLjwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY5MDMxNTU5NyIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1MDkyODAzMTk1NzMyNSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY5MDMxNTU5Ny1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY5MDMxNTU5Ny1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY5MDMxNTU5NyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFnZ2l1bmdpIGFsIGNhcnJlbGxvIC0gPHNwYW4gY2xhc3M9ImJ1dHRvbl9fcHJpY2UiPuKCrDYsNTA8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNhdXJpdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9Ijk5MzY2OTAzMTU1OTciIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbi1pZCIgdmFsdWU9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiAvPjwvZm9ybT48L3Byb2R1Y3QtZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4=
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1kYWlseS13YXNoLWZpb3JpLWQtYXJhbmNpby0xNTAwLW1sLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiJyk7CiAgICBwcm9kdWN0Q2FyZHMuZm9yRWFjaChmdW5jdGlvbiAoY2FyZCkgewogICAgICBpZiAoY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpICE9PSBudWxsKSB7CiAgICAgICAgbGlzdE5hbWUgPSBjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykuZ2V0QXR0cmlidXRlKCdndG0tdHJhY2tpbmctY3Jvc3NzZWxsJyk7CiAgICAgIH0KICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIHZhciBwcm9kdWN0RGF0YSA9IEpTT04ucGFyc2UoY2FyZC5nZXRBdHRyaWJ1dGUoJ2d0bS1jYXJkLWRhdGEnKSk7CiAgICAgICAgLy8gTmVlZCB0byBwdXNoIGxpc3ROYW1lCiAgICAgICAgcHJvZHVjdERhdGFbJ2l0ZW1fbGlzdF9uYW1lJ10gPSBsaXN0TmFtZTsKICAgICAgICAvLyBQdXNoIGNsaWNrZWQgcHJvZHVjdAogICAgICAgIGF4SXRlbS5wdXNoKHByb2R1Y3REYXRhKTsKICAgICAgICAvLyBTZW5kICJjbGljayIgZXZlbnQKICAgICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfY2xpY2snLAogICAgICAgICAgYXhJdGVtOiBheEl0ZW0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyBQdXNoIGFsbCBwcm9kdWN0IGluIGRhdGFMYXllcgogICAgYXhQcm9kdWN0TGlzdC5wdXNoKHsKICAgICAgaXRlbV9uYW1lOiAnREFJTFkgV0FTSCBGSU9SSSBEI0FSQU5DSU8gMTUwMCBNTCcsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDM2ODY2VycsCiAgICAgIHByaWNlOiAn4oKsNiw1MCcsCiAgICAgIGl0ZW1fYnJhbmQ6ICdTdGFuaG9tZScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0kgcHJvZG90dGkgU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MzogJycsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC1kYWlseS13YXNoLWZpb3JpLWQtYXJhbmNpby0xNTAwLW1sLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiBndG0tY2FyZC1kYXRhPScKICAgICAgICB7CiAgICAgICAgICAgICJpdGVtX25hbWUiOiAiREFJTFkgV0FTSCBGSU9SSSBEI0FSQU5DSU8gMTUwMCBNTCIsCiAgICAgICAgICAgICJpdGVtX2lkIjogIklUQV9QUkRFMDAwMzY4NjZXIiwKICAgICAgICAgICAgInByaWNlIjogIuKCrDYsNTAiLAogICAgICAgICAgICAiaXRlbV9icmFuZCI6ICJTdGFuaG9tZSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MSI6ICIiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAib3VyLXN0YW5ob21lLXByb2R1Y3RzIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkzIjogbnVsbCwKICAgICAgICAgICAgIml0ZW1fdmFyaWFudCI6ICJEZWZhdWx0IFRpdGxlIgogICAgICAgIH0KICAgICcgZGF0YS1wcm9kdWN0LWlkPSIxMDEzOTY3OTM1OTMwOSI+CiAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9IgogICAgICAgIGNhcmQgY2FyZC0tc3RhbmRhcmQKICAgICAgICAgY2FyZC0tbWVkaWEKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgIgogICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgPgogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNhcmRfX2lubmVyIGNvbG9yLWJhY2tncm91bmQtMSBncmFkaWVudCByYXRpbyIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICAgICAgPjxkaXYgY2xhc3M9ImNhcmRfX21lZGlhIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtLXRyYW5zcGFyZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyY3NldD0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNzgzOTNfMS5qcGc/dj0xNzUzMDkwNTAzJndpZHRoPTE2NSAxNjV3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0Xzc4MzkzXzEuanBnP3Y9MTc1MzA5MDUwMyZ3aWR0aD0zNjAgMzYwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF83ODM5M18xLmpwZz92PTE3NTMwOTA1MDMmd2lkdGg9NTMzIDUzM3csLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNzgzOTNfMS5qcGc/dj0xNzUzMDkwNTAzJndpZHRoPTcyMCA3MjB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0Xzc4MzkzXzEuanBnP3Y9MTc1MzA5MDUwMyZ3aWR0aD05NDAgOTQwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF83ODM5M18xLmpwZz92PTE3NTMwOTA1MDMmd2lkdGg9MTA2NiAxMDY2dywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF83ODM5M18xLmpwZz92PTE3NTMwOTA1MDMgMTIwMHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNzgzOTNfMS5qcGc/dj0xNzUzMDkwNTAzJndpZHRoPTUzMyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZXM9IihtaW4td2lkdGg6IDE2MDBweCkgMzY3cHgsIChtaW4td2lkdGg6IDk5MHB4KSBjYWxjKCgxMDB2dyAtIDEzMHB4KSAvIDQpLCAobWluLXdpZHRoOiA3NTBweCkgY2FsYygoMTAwdncgLSAxMjBweCkgLyAzKSwgY2FsYygoMTAwdncgLSAzNXB4KSAvIDIpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9IkRBSUxZIFdBU0ggRklPUkkgRCNBUkFOQ0lPIDE1MDAgTUwiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDEzOTY3OTM1OTMwOSIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDEzOTY3OTM1OTMwOSIgZGF0YS12YXJpYW50LWlkPSI1MTkxMzQzODc1NzE5NyIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvZGFpbHktd2FzaC1maW9yaS1kLWFyYW5jaW8tMTUwMC1tbCI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48c3BhbiBpZD0iQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAxMzk2NzkzNTkzMDkiIGNsYXNzPSJiYWRnZSBiYWRnZS0tYm90dG9tLWxlZnQgY29sb3Itc2NoZW1lLWQ2YTVjMDM2LTZjNDUtNDdjZi1hZGQ2LWJhZGZlZmI0NWZkOSI+LTUwJQo8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPjxkaXYgY2xhc3M9ImNhcmRfX3R5cGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhbmhvbWUKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHAgY2xhc3M9ImNhcmRfX2hlYWRpbmcgaDUiICBpZD0idGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAxMzk2NzkzNTkzMDkiID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL2RhaWx5LXdhc2gtZmlvcmktZC1hcmFuY2lvLTE1MDAtbWwiIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDEzOTY3OTM1OTMwOSIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDEzOTY3OTM1OTMwOSBCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDEzOTY3OTM1OTMwOSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXRlcnNpdm8gQnVjYXRvIEJpYW5jaGkgRSBDb2xvcmF0aSAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIERBSUxZIFdBU0ggRklPUkkgRCNBUkFOQ0lPIDE1MDAgTUwKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm9ybWF0aW9uIj48c3BhbiBjbGFzcz0iY2FwdGlvbi1sYXJnZSBsaWdodCI+PC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24tZm9ybS1yYXRpbmctcHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0aW5nLXByaWNlIj4KPGRpdgogIGNsYXNzPSIKICAgIHByaWNlICBwcmljZS0tb24tc2FsZSIKPgogIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPjxkaXYgY2xhc3M9InByaWNlX19yZWd1bGFyIj48c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgIOKCrDYsNTAKICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gc2NvbnRhdG88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAg4oKsNiw1MAogICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgICA8cyBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgICAgCiAgICAgICAgICAgICAg4oKsMTMsMDAKICAgICAgICAgICAgCiAgICAgICAgICA8L3M+CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPHNtYWxsIGNsYXNzPSJ1bml0LXByaWNlIGNhcHRpb24gaGlkZGVuIj4KICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+UHJlenpvIHVuaXRhcmlvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLXVuaXQgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPiZuYnNwO3BlciZuYnNwOzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvc3Bhbj4KICAgIDwvc21hbGw+CiAgPC9kaXY+PC9kaXY+Cgo8L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgcXVpY2stYWRkLW1vYmlsZSBuby1qcy1oaWRkZW4gZXh0cmEtbGFyZ2UtdXAtaGlkZSI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAxMzk2NzkzNTkzMDkiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTE5MTM0Mzg3NTcxOTciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDEzOTY3OTM1OTMwOS1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMTM5Njc5MzU5MzA5LXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDEzOTY3OTM1OTMwOSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnCiAgY2xhc3M9Imljb24gc2gtaWNvbi1jYXJ0LWVtcHR5IgogIGFyaWEtaGlkZGVuPSJ0cnVlIgogIGZvY3VzYWJsZT0iZmFsc2UiCiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHZpZXdCb3g9IjAgMCAxOCAyMiIKICBmaWxsPSJub25lIgo+CiAgPHBhdGggZD0iTTE2LjQxOSA0LjcxM3YxNC4zNDhhMi42MDkgMi42MDkgMCAwIDEtMi42MDkgMi42MDdIMy4zNzZhMi42MDkgMi42MDkgMCAwIDEtMi42MDktMi42MDdWNC43MTNaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgogIDxwYXRoIGQ9Ik00LjY0NyA3LjMyMVY0LjcxMmEzLjk0NiAzLjk0NiAwIDEgMSA3Ljg5MSAwdjIuNjA5IiAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+CiAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9IjEwMTM5Njc5MzU5MzA5IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQtaG92ZXIiPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTAxMzk2NzkzNTkzMDkiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTAxMzk2NzkzNTkzMDkiIGRhdGEtdmFyaWFudC1pZD0iNTE5MTM0Mzg3NTcxOTciIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL2RhaWx5LXdhc2gtZmlvcmktZC1hcmFuY2lvLTE1MDAtbWwiPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV0ZXJzaXZvIEJ1Y2F0byBCaWFuY2hpIEUgQ29sb3JhdGkKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIERBSUxZIFdBU0ggRklPUkkgRCNBUkFOQ0lPIDE1MDAgTUwKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+I04vQTwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAxMzk2NzkzNTkzMDkiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTE5MTM0Mzg3NTcxOTciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMTM5Njc5MzU5MzA5LXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDEzOTY3OTM1OTMwOS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAxMzk2NzkzNTkzMDkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BZ2dpdW5naSBhbCBjYXJyZWxsbyAtIDxzcGFuIGNsYXNzPSJidXR0b25fX3ByaWNlIj7igqw2LDUwPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSIxMDEzOTY3OTM1OTMwOSIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pg==
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1lYXUtZGUtcGVyZnVtLWNsdWItMTAwLW1sLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiJyk7CiAgICBwcm9kdWN0Q2FyZHMuZm9yRWFjaChmdW5jdGlvbiAoY2FyZCkgewogICAgICBpZiAoY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpICE9PSBudWxsKSB7CiAgICAgICAgbGlzdE5hbWUgPSBjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykuZ2V0QXR0cmlidXRlKCdndG0tdHJhY2tpbmctY3Jvc3NzZWxsJyk7CiAgICAgIH0KICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIHZhciBwcm9kdWN0RGF0YSA9IEpTT04ucGFyc2UoY2FyZC5nZXRBdHRyaWJ1dGUoJ2d0bS1jYXJkLWRhdGEnKSk7CiAgICAgICAgLy8gTmVlZCB0byBwdXNoIGxpc3ROYW1lCiAgICAgICAgcHJvZHVjdERhdGFbJ2l0ZW1fbGlzdF9uYW1lJ10gPSBsaXN0TmFtZTsKICAgICAgICAvLyBQdXNoIGNsaWNrZWQgcHJvZHVjdAogICAgICAgIGF4SXRlbS5wdXNoKHByb2R1Y3REYXRhKTsKICAgICAgICAvLyBTZW5kICJjbGljayIgZXZlbnQKICAgICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfY2xpY2snLAogICAgICAgICAgYXhJdGVtOiBheEl0ZW0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyBQdXNoIGFsbCBwcm9kdWN0IGluIGRhdGFMYXllcgogICAgYXhQcm9kdWN0TGlzdC5wdXNoKHsKICAgICAgaXRlbV9uYW1lOiAnRUFVIERFIFBFUkZVTSBDTFVCIDEwMCBNTCcsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDMyMzM0VycsCiAgICAgIHByaWNlOiAn4oKsMTksNTAnLAogICAgICBpdGVtX2JyYW5kOiAnS2lvdGlzJywKICAgICAgaXRlbV9jYXRlZ29yeTE6ICdLaW90aXMnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0JlbGxlenphIGUgQmVuZXNzZXJlJywKICAgICAgaXRlbV9jYXRlZ29yeTM6ICdQcm9mdW1pJywKICAgICAgaXRlbV92YXJpYW50OiAnRGVmYXVsdCBUaXRsZScsCiAgICAgIGl0ZW1fbGlzdF9uYW1lOiBsaXN0TmFtZQogICAgfSk7CgogICAgLy8gU2VuZCAiZmluaXNoZWQiIGV2ZW50CiAgICBpZiAoYXhQcm9kdWN0TGlzdC5sZW5ndGggPT09IHdpbmRvdy50aGVtZS5pdGVtc19jb3VudCkgewogICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2xpc3RfY29tcGxldGUnLAogICAgICAgIGF4UHJvZHVjdExpc3Q6IGF4UHJvZHVjdExpc3QsCiAgICAgIH0pOwogICAgfQogIH0pOwoKICBmdW5jdGlvbiBjbGlja1Byb2R1Y3QocHJvZHVjdERhdGEpIHt9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgZGVmZXI+CiAgZnVuY3Rpb24gc3d5bUNhbGxiYWNrRm4oc3dhdCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3d5bTpjb2xsZWN0aW9ucy1sb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHN3YXQuaW5pdGlhbGl6ZUFjdGlvbkJ1dHRvbnMoJzw8Q29sbGVjdGlvbnMgR3JpZCBQQVJFTlQgU2VsZWN0b3IgPj4nKTsKICAgIH0pOwogIH0KICBpZiAoIXdpbmRvdy5Td3ltQ2FsbGJhY2tzKSB7CiAgICB3aW5kb3cuU3d5bUNhbGxiYWNrcyA9IFtdOwogIH0KICB3aW5kb3cuU3d5bUNhbGxiYWNrcy5wdXNoKHN3eW1DYWxsYmFja0ZuKTsKPC9zY3JpcHQ+CgoKICAgIAoKICAgIDxkaXYgY2xhc3M9ImNhcmQtd3JhcHBlciBwcm9kdWN0LW1pbmlhdHVyZSBwcm9kdWN0LWNhcmQtd3JhcHBlciB1bmRlcmxpbmUtbGlua3MtaG92ZXIgZ3RtLWNhcmQtcHJvZHVjdCBndG0tY2FyZC1wcm9kdWN0LWVhdS1kZS1wZXJmdW0tY2x1Yi0xMDAtbWwtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJFQVUgREUgUEVSRlVNIENMVUIgMTAwIE1MIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiSVRBX1BSREUwMDAzMjMzNFciLAogICAgICAgICAgICAicHJpY2UiOiAi4oKsMTksNTAiLAogICAgICAgICAgICAiaXRlbV9icmFuZCI6ICJLaW90aXMiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiUHJvZnVtaSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MiI6ICJiZWF1dHktYW5kLXBlcmZ1bWVzIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkzIjogbnVsbCwKICAgICAgICAgICAgIml0ZW1fdmFyaWFudCI6ICJEZWZhdWx0IFRpdGxlIgogICAgICAgIH0KICAgICcgZGF0YS1wcm9kdWN0LWlkPSIxMDE5NDYwNTM0MzA1MyI+CiAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9IgogICAgICAgIGNhcmQgY2FyZC0tc3RhbmRhcmQKICAgICAgICAgY2FyZC0tbWVkaWEKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgIgogICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgPgogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNhcmRfX2lubmVyIGNvbG9yLWJhY2tncm91bmQtMSBncmFkaWVudCByYXRpbyIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICAgICAgPjxkaXYgY2xhc3M9ImNhcmRfX21lZGlhIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtLXRyYW5zcGFyZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyY3NldD0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfMzE1ODFfMV84ZjJjNWU4Ni00ZGJkLTQ3NjktYTZmZS0zNzY1NzQ4ZmZjMTMuanBnP3Y9MTc1NDM5NzM3MiZ3aWR0aD0xNjUgMTY1dywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF8zMTU4MV8xXzhmMmM1ZTg2LTRkYmQtNDc2OS1hNmZlLTM3NjU3NDhmZmMxMy5qcGc/dj0xNzU0Mzk3MzcyJndpZHRoPTM2MCAzNjB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzMxNTgxXzFfOGYyYzVlODYtNGRiZC00NzY5LWE2ZmUtMzc2NTc0OGZmYzEzLmpwZz92PTE3NTQzOTczNzImd2lkdGg9NTMzIDUzM3csLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfMzE1ODFfMV84ZjJjNWU4Ni00ZGJkLTQ3NjktYTZmZS0zNzY1NzQ4ZmZjMTMuanBnP3Y9MTc1NDM5NzM3MiZ3aWR0aD03MjAgNzIwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF8zMTU4MV8xXzhmMmM1ZTg2LTRkYmQtNDc2OS1hNmZlLTM3NjU3NDhmZmMxMy5qcGc/dj0xNzU0Mzk3MzcyJndpZHRoPTk0MCA5NDB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzMxNTgxXzFfOGYyYzVlODYtNGRiZC00NzY5LWE2ZmUtMzc2NTc0OGZmYzEzLmpwZz92PTE3NTQzOTczNzIgOTk4dwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF8zMTU4MV8xXzhmMmM1ZTg2LTRkYmQtNDc2OS1hNmZlLTM3NjU3NDhmZmMxMy5qcGc/dj0xNzU0Mzk3MzcyJndpZHRoPTUzMyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZXM9IihtaW4td2lkdGg6IDE2MDBweCkgMzY3cHgsIChtaW4td2lkdGg6IDk5MHB4KSBjYWxjKCgxMDB2dyAtIDEzMHB4KSAvIDQpLCAobWluLXdpZHRoOiA3NTBweCkgY2FsYygoMTAwdncgLSAxMjBweCkgLyAzKSwgY2FsYygoMTAwdncgLSAzNXB4KSAvIDIpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9IkVBVSBERSBQRVJGVU0gQ0xVQiAxMDAgTUwiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iOTk4IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9Ijk5OCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTAxOTQ2MDUzNDMwNTMiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTAxOTQ2MDUzNDMwNTMiIGRhdGEtdmFyaWFudC1pZD0iNTIxNjM5NDY3NDIwOTMiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL2VhdS1kZS1wZXJmdW0tY2x1Yi0xMDAtbWwiPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19iYWRnZSB0b3AgbGVmdCI+PHNwYW4gaWQ9IkJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMTk0NjA1MzQzMDUzIiBjbGFzcz0iYmFkZ2UgYmFkZ2UtLWJvdHRvbS1sZWZ0IGNvbG9yLXNjaGVtZS1kNmE1YzAzNi02YzQ1LTQ3Y2YtYWRkNi1iYWRmZWZiNDVmZDkiPi01MCUKPC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtpb3RpcwogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDE5NDYwNTM0MzA1MyIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvZWF1LWRlLXBlcmZ1bS1jbHViLTEwMC1tbCIgaWQ9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMTk0NjA1MzQzMDUzIiBjbGFzcz0iZnVsbC11bnN0eWxlZC1saW5rIGZ1bGwtdW5zdHlsZWQtbGluay1wcm9kdWN0IiBhcmlhLWxhYmVsbGVkYnk9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMTk0NjA1MzQzMDUzIEJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMTk0NjA1MzQzMDUzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsdWIgRWF1IERlIFBhcmZ1bSAKICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIEVBVSBERSBQRVJGVU0gQ0xVQiAxMDAgTUwKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm9ybWF0aW9uIj48c3BhbiBjbGFzcz0iY2FwdGlvbi1sYXJnZSBsaWdodCI+PC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24tZm9ybS1yYXRpbmctcHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0aW5nLXByaWNlIj4KPGRpdgogIGNsYXNzPSIKICAgIHByaWNlICBwcmljZS0tb24tc2FsZSIKPgogIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPjxkaXYgY2xhc3M9InByaWNlX19yZWd1bGFyIj48c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgIOKCrDE5LDUwCiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJpY2VfX3NhbGUiPgogICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIHNjb250YXRvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1zYWxlIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIOKCrDE5LDUwCiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICDigqwzOSwwMAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiBoaWRkZW4iPgogICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5QcmV6em8gdW5pdGFyaW88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tdW5pdCBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cGVyJm5ic3A7PC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9zcGFuPgogICAgPC9zbWFsbD4KICA8L2Rpdj48L2Rpdj4KCjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBxdWljay1hZGQtbW9iaWxlIG5vLWpzLWhpZGRlbiBleHRyYS1sYXJnZS11cC1oaWRlIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDE5NDYwNTM0MzA1MyIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJoaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1MjE2Mzk0Njc0MjA5MyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9kdWN0LXZhcmlhbnQtaWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMTk0NjA1MzQzMDUzLXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAxOTQ2MDUzNDMwNTMtc3VibWl0IHRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMTk0NjA1MzQzMDUzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcKICBjbGFzcz0iaWNvbiBzaC1pY29uLWNhcnQtZW1wdHkiCiAgYXJpYS1oaWRkZW49InRydWUiCiAgZm9jdXNhYmxlPSJmYWxzZSIKICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgdmlld0JveD0iMCAwIDE4IDIyIgogIGZpbGw9Im5vbmUiCj4KICA8cGF0aCBkPSJNMTYuNDE5IDQuNzEzdjE0LjM0OGEyLjYwOSAyLjYwOSAwIDAgMS0yLjYwOSAyLjYwN0gzLjM3NmEyLjYwOSAyLjYwOSAwIDAgMS0yLjYwOS0yLjYwN1Y0LjcxM1oiIHN0cm9rZT0iY3VycmVudENvbG9yIi8+CiAgPHBhdGggZD0iTTQuNjQ3IDcuMzIxVjQuNzEyYTMuOTQ2IDMuOTQ2IDAgMSAxIDcuODkxIDB2Mi42MDkiICBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgo8L3N2Zz4KICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNhdXJpdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKPGxpbmsgaHJlZj0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTczMDEwNzE2MSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCjxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICA8c3ZnCiAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgIGZvY3VzYWJsZT0iZmFsc2UiCiAgICBjbGFzcz0ic3Bpbm5lciIKICAgIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICA+CiAgICA8Y2lyY2xlIGNsYXNzPSJwYXRoIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjYiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCI+PC9jaXJjbGU+CiAgPC9zdmc+CjwvZGl2Pgo8L2J1dHRvbj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iMTAxOTQ2MDUzNDMwNTMiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbi1pZCIgdmFsdWU9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiAvPjwvZm9ybT48L3Byb2R1Y3QtZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudC1ob3ZlciI+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDE5NDYwNTM0MzA1MyIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDE5NDYwNTM0MzA1MyIgZGF0YS12YXJpYW50LWlkPSI1MjE2Mzk0Njc0MjA5MyIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvZWF1LWRlLXBlcmZ1bS1jbHViLTEwMC1tbCI+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbHViIEVhdSBEZSBQYXJmdW0KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIEVBVSBERSBQRVJGVU0gQ0xVQiAxMDAgTUwKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+VW4gcHJvZnVtbyBmcnV0dGF0byBlIGxlZ25vc28gZGFsbGUgbm90ZSBkaSBDZWRyby48L3NwYW4+PC9saT48bGk+PHNwYW4+RXZvY2EgdW4gdW5pdmVyc28gbWFzY2hpbGUgZSBhY2NvZ2xpZW50ZS48L3NwYW4+PC9saT48bGk+PHNwYW4+VmV0cm8gZSBjb25mZXppb25lIDEwMCUgcmljaWNsYWJpbGkuPC9zcGFuPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDE5NDYwNTM0MzA1MyIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1MjE2Mzk0Njc0MjA5MyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAxOTQ2MDUzNDMwNTMtc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMTk0NjA1MzQzMDUzLXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDE5NDYwNTM0MzA1MyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFnZ2l1bmdpIGFsIGNhcnJlbGxvIC0gPHNwYW4gY2xhc3M9ImJ1dHRvbl9fcHJpY2UiPuKCrDE5LDUwPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSIxMDE5NDYwNTM0MzA1MyIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pg==
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1raXNzLW1lLW1vcmUtbGlwLXRhdHRvby0wMi1jcmVhbXktdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2InKTsKICAgIHByb2R1Y3RDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uIChjYXJkKSB7CiAgICAgIGlmIChjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykgIT09IG51bGwpIHsKICAgICAgICBsaXN0TmFtZSA9IGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKS5nZXRBdHRyaWJ1dGUoJ2d0bS10cmFja2luZy1jcm9zc3NlbGwnKTsKICAgICAgfQogICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgdmFyIHByb2R1Y3REYXRhID0gSlNPTi5wYXJzZShjYXJkLmdldEF0dHJpYnV0ZSgnZ3RtLWNhcmQtZGF0YScpKTsKICAgICAgICAvLyBOZWVkIHRvIHB1c2ggbGlzdE5hbWUKICAgICAgICBwcm9kdWN0RGF0YVsnaXRlbV9saXN0X25hbWUnXSA9IGxpc3ROYW1lOwogICAgICAgIC8vIFB1c2ggY2xpY2tlZCBwcm9kdWN0CiAgICAgICAgYXhJdGVtLnB1c2gocHJvZHVjdERhdGEpOwogICAgICAgIC8vIFNlbmQgImNsaWNrIiBldmVudAogICAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9jbGljaycsCiAgICAgICAgICBheEl0ZW06IGF4SXRlbQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwoKICAgIC8vIFB1c2ggYWxsIHByb2R1Y3QgaW4gZGF0YUxheWVyCiAgICBheFByb2R1Y3RMaXN0LnB1c2goewogICAgICBpdGVtX25hbWU6ICdLSVNTIE1FIE1PUkUgTElQIFRBVFRPTyAwMiBDUkVBTVknLAogICAgICBpdGVtX2lkOiAnSVRBX1BSREUwMDAzNDI3OVcnLAogICAgICBwcmljZTogJ+KCrDgsNTAnLAogICAgICBpdGVtX2JyYW5kOiAnRmxvcm1hcicsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnRmxvcm1hcicsCiAgICAgIGl0ZW1fY2F0ZWdvcnkyOiAnSSBwcm9kb3R0aSBGbG9ybWFyJywKICAgICAgaXRlbV9jYXRlZ29yeTM6ICdUcnVjY28gbGFiYnJhJywKICAgICAgaXRlbV92YXJpYW50OiAnRGVmYXVsdCBUaXRsZScsCiAgICAgIGl0ZW1fbGlzdF9uYW1lOiBsaXN0TmFtZQogICAgfSk7CgogICAgLy8gU2VuZCAiZmluaXNoZWQiIGV2ZW50CiAgICBpZiAoYXhQcm9kdWN0TGlzdC5sZW5ndGggPT09IHdpbmRvdy50aGVtZS5pdGVtc19jb3VudCkgewogICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2xpc3RfY29tcGxldGUnLAogICAgICAgIGF4UHJvZHVjdExpc3Q6IGF4UHJvZHVjdExpc3QsCiAgICAgIH0pOwogICAgfQogIH0pOwoKICBmdW5jdGlvbiBjbGlja1Byb2R1Y3QocHJvZHVjdERhdGEpIHt9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgZGVmZXI+CiAgZnVuY3Rpb24gc3d5bUNhbGxiYWNrRm4oc3dhdCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3d5bTpjb2xsZWN0aW9ucy1sb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHN3YXQuaW5pdGlhbGl6ZUFjdGlvbkJ1dHRvbnMoJzw8Q29sbGVjdGlvbnMgR3JpZCBQQVJFTlQgU2VsZWN0b3IgPj4nKTsKICAgIH0pOwogIH0KICBpZiAoIXdpbmRvdy5Td3ltQ2FsbGJhY2tzKSB7CiAgICB3aW5kb3cuU3d5bUNhbGxiYWNrcyA9IFtdOwogIH0KICB3aW5kb3cuU3d5bUNhbGxiYWNrcy5wdXNoKHN3eW1DYWxsYmFja0ZuKTsKPC9zY3JpcHQ+CgoKICAgIAoKICAgIDxkaXYgY2xhc3M9ImNhcmQtd3JhcHBlciBwcm9kdWN0LW1pbmlhdHVyZSBwcm9kdWN0LWNhcmQtd3JhcHBlciB1bmRlcmxpbmUtbGlua3MtaG92ZXIgZ3RtLWNhcmQtcHJvZHVjdCBndG0tY2FyZC1wcm9kdWN0LWtpc3MtbWUtbW9yZS1saXAtdGF0dG9vLTAyLWNyZWFteS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgZ3RtLWNhcmQtZGF0YT0nCiAgICAgICAgewogICAgICAgICAgICAiaXRlbV9uYW1lIjogIktJU1MgTUUgTU9SRSBMSVAgVEFUVE9PIDAyIENSRUFNWSIsCiAgICAgICAgICAgICJpdGVtX2lkIjogIklUQV9QUkRFMDAwMzQyNzlXIiwKICAgICAgICAgICAgInByaWNlIjogIuKCrDgsNTAiLAogICAgICAgICAgICAiaXRlbV9icmFuZCI6ICJGbG9ybWFyIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkxIjogIlRydWNjbyBsYWJicmEiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAib3VyLWZsb3JtYXItcHJvZHVjdHMiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJyBkYXRhLXByb2R1Y3QtaWQ9IjEwMDcyNDI5MDM1ODUzIj4KICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iCiAgICAgICAgY2FyZCBjYXJkLS1zdGFuZGFyZAogICAgICAgICBjYXJkLS1tZWRpYQogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAiCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY2FyZF9faW5uZXIgY29sb3ItYmFja2dyb3VuZC0xIGdyYWRpZW50IHJhdGlvIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgICAgICA+PGRpdiBjbGFzcz0iY2FyZF9fbWVkaWEiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS0tdHJhbnNwYXJlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3Jjc2V0PSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQwNjMxXzFfMGY1MmQ2MTItNGY2Yy00NDE4LThlNTktNDRlMDUwZDQzOTBhLmpwZz92PTE3NDcxMTc5Mjkmd2lkdGg9MTY1IDE2NXcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0MDYzMV8xXzBmNTJkNjEyLTRmNmMtNDQxOC04ZTU5LTQ0ZTA1MGQ0MzkwYS5qcGc/dj0xNzQ3MTE3OTI5JndpZHRoPTM2MCAzNjB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDA2MzFfMV8wZjUyZDYxMi00ZjZjLTQ0MTgtOGU1OS00NGUwNTBkNDM5MGEuanBnP3Y9MTc0NzExNzkyOSZ3aWR0aD01MzMgNTMzdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQwNjMxXzFfMGY1MmQ2MTItNGY2Yy00NDE4LThlNTktNDRlMDUwZDQzOTBhLmpwZz92PTE3NDcxMTc5Mjkmd2lkdGg9NzIwIDcyMHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0MDYzMV8xXzBmNTJkNjEyLTRmNmMtNDQxOC04ZTU5LTQ0ZTA1MGQ0MzkwYS5qcGc/dj0xNzQ3MTE3OTI5JndpZHRoPTk0MCA5NDB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDA2MzFfMV8wZjUyZDYxMi00ZjZjLTQ0MTgtOGU1OS00NGUwNTBkNDM5MGEuanBnP3Y9MTc0NzExNzkyOSZ3aWR0aD0xMDY2IDEwNjZ3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDA2MzFfMV8wZjUyZDYxMi00ZjZjLTQ0MTgtOGU1OS00NGUwNTBkNDM5MGEuanBnP3Y9MTc0NzExNzkyOSAxMjAwdwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQwNjMxXzFfMGY1MmQ2MTItNGY2Yy00NDE4LThlNTktNDRlMDUwZDQzOTBhLmpwZz92PTE3NDcxMTc5Mjkmd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iVmlzdWFsZSBkZWwgcHJvZG90dG8gUm9zc2V0dG8gTGlxdWlkbyBFZmZldHRvIFRhdHRvbyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1vdGlvbi1yZWR1Y2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwMDcyNDI5MDM1ODUzIiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwMDcyNDI5MDM1ODUzIiBkYXRhLXZhcmlhbnQtaWQ9IjUxNjIzMzI2MzUxNjkzIiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9raXNzLW1lLW1vcmUtbGlwLXRhdHRvby0wMi1jcmVhbXkiPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19iYWRnZSB0b3AgbGVmdCI+PHNwYW4gaWQ9IkJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMDcyNDI5MDM1ODUzIiBjbGFzcz0iYmFkZ2UgYmFkZ2UtLWJvdHRvbS1sZWZ0IGNvbG9yLXNjaGVtZS1kNmE1YzAzNi02YzQ1LTQ3Y2YtYWRkNi1iYWRmZWZiNDVmZDkiPi0zOSUKPC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsb3JtYXIKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHAgY2xhc3M9ImNhcmRfX2hlYWRpbmcgaDUiICBpZD0idGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkwMzU4NTMiID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL2tpc3MtbWUtbW9yZS1saXAtdGF0dG9vLTAyLWNyZWFteSIgaWQ9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMDcyNDI5MDM1ODUzIiBjbGFzcz0iZnVsbC11bnN0eWxlZC1saW5rIGZ1bGwtdW5zdHlsZWQtbGluay1wcm9kdWN0IiBhcmlhLWxhYmVsbGVkYnk9IkNhcmRMaW5rLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMDcyNDI5MDM1ODUzIEJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMDcyNDI5MDM1ODUzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvc3NldHRvIExpcXVpZG8gRWZmZXR0byBUYXR0b28gIAogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgS0lTUyBNRSBNT1JFIExJUCBUQVRUT08gMDIgQ1JFQU1ZCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbmZvcm1hdGlvbiI+PHNwYW4gY2xhc3M9ImNhcHRpb24tbGFyZ2UgbGlnaHQiPjwvc3Bhbj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uLWZvcm0tcmF0aW5nLXByaWNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhdGluZy1wcmljZSI+CjxkaXYKICBjbGFzcz0iCiAgICBwcmljZSAgcHJpY2UtLW9uLXNhbGUiCj4KICA8ZGl2IGNsYXNzPSJwcmljZV9fY29udGFpbmVyIj48ZGl2IGNsYXNzPSJwcmljZV9fcmVndWxhciI+PHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICDigqw4LDUwCiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJpY2VfX3NhbGUiPgogICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIHNjb250YXRvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1zYWxlIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIOKCrDgsNTAKICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIOKCrDEzLDkwCiAgICAgICAgICAgIAogICAgICAgICAgPC9zPgogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxzbWFsbCBjbGFzcz0idW5pdC1wcmljZSBjYXB0aW9uIGhpZGRlbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZXp6byB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS11bml0IHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+Lzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4mbmJzcDtwZXImbmJzcDs8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMDcyNDI5MDM1ODUzIiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjUxNjIzMzI2MzUxNjkzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAwNzI0MjkwMzU4NTMtc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDA3MjQyOTAzNTg1My1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkwMzU4NTMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZwogIGNsYXNzPSJpY29uIHNoLWljb24tY2FydC1lbXB0eSIKICBhcmlhLWhpZGRlbj0idHJ1ZSIKICBmb2N1c2FibGU9ImZhbHNlIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB2aWV3Qm94PSIwIDAgMTggMjIiCiAgZmlsbD0ibm9uZSIKPgogIDxwYXRoIGQ9Ik0xNi40MTkgNC43MTN2MTQuMzQ4YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5IDIuNjA3SDMuMzc2YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5LTIuNjA3VjQuNzEzWiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KICA8cGF0aCBkPSJNNC42NDcgNy4zMjFWNC43MTJhMy45NDYgMy45NDYgMCAxIDEgNy44OTEgMHYyLjYwOSIgIHN0cm9rZT0iY3VycmVudENvbG9yIi8+Cjwvc3ZnPgogIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFc2F1cml0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSIxMDA3MjQyOTAzNTg1MyIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwMDcyNDI5MDM1ODUzIiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwMDcyNDI5MDM1ODUzIiBkYXRhLXZhcmlhbnQtaWQ9IjUxNjIzMzI2MzUxNjkzIiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9raXNzLW1lLW1vcmUtbGlwLXRhdHRvby0wMi1jcmVhbXkiPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUm9zc2V0dG8gTGlxdWlkbyBFZmZldHRvIFRhdHRvbyAKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIEtJU1MgTUUgTU9SRSBMSVAgVEFUVE9PIDAyIENSRUFNWQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pjx1bCBjbGFzcz0ibGlzdC11bnN0eWxlZCBjYXJkX192YXJpYW50LWtleV9wb2ludHMiPjxsaT48c3Bhbj5VbiBmaW5pc2ggbWF0dGUgZWZmZXR0byB0YXR1YWdnaW8gY2hlIGdhcmFudGlzY2UgdW5hIGx1bmdhIHRlbnV0YS48L3NwYW4+PC9saT48bGk+PHNwYW4+UmVzaXN0ZSBhaSBiYWNpIGUgbm9uIGxhc2NpYSB0cmFjY2UuPC9zcGFuPjwvbGk+PGxpPjxzcGFuPkxhIHN1YSBmb3JtdWxhIGxpcXVpZGEgw6ggZmFjaWxlIGRhIGFwcGxpY2FyZS48L3NwYW4+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBuby1qcy1oaWRkZW4iPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMDcyNDI5MDM1ODUzIiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJoaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjUxNjIzMzI2MzUxNjkzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9kdWN0LXZhcmlhbnQtaWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDA3MjQyOTAzNTg1My1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAwNzI0MjkwMzU4NTMtc3VibWl0IHRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMDcyNDI5MDM1ODUzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+QWdnaXVuZ2kgYWwgY2FycmVsbG8gLSA8c3BhbiBjbGFzcz0iYnV0dG9uX19wcmljZSI+4oKsOCw1MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFc2F1cml0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKPGxpbmsgaHJlZj0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTczMDEwNzE2MSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCjxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICA8c3ZnCiAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgIGZvY3VzYWJsZT0iZmFsc2UiCiAgICBjbGFzcz0ic3Bpbm5lciIKICAgIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICA+CiAgICA8Y2lyY2xlIGNsYXNzPSJwYXRoIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjYiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCI+PC9jaXJjbGU+CiAgPC9zdmc+CjwvZGl2Pgo8L2J1dHRvbj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iMTAwNzI0MjkwMzU4NTMiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbi1pZCIgdmFsdWU9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiAvPjwvZm9ybT48L3Byb2R1Y3QtZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4=
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1raXNzLW1lLW1vcmUtbGlwLXRhdHRvby0wMDQtcGVhY2gtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2InKTsKICAgIHByb2R1Y3RDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uIChjYXJkKSB7CiAgICAgIGlmIChjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykgIT09IG51bGwpIHsKICAgICAgICBsaXN0TmFtZSA9IGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKS5nZXRBdHRyaWJ1dGUoJ2d0bS10cmFja2luZy1jcm9zc3NlbGwnKTsKICAgICAgfQogICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgdmFyIHByb2R1Y3REYXRhID0gSlNPTi5wYXJzZShjYXJkLmdldEF0dHJpYnV0ZSgnZ3RtLWNhcmQtZGF0YScpKTsKICAgICAgICAvLyBOZWVkIHRvIHB1c2ggbGlzdE5hbWUKICAgICAgICBwcm9kdWN0RGF0YVsnaXRlbV9saXN0X25hbWUnXSA9IGxpc3ROYW1lOwogICAgICAgIC8vIFB1c2ggY2xpY2tlZCBwcm9kdWN0CiAgICAgICAgYXhJdGVtLnB1c2gocHJvZHVjdERhdGEpOwogICAgICAgIC8vIFNlbmQgImNsaWNrIiBldmVudAogICAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9jbGljaycsCiAgICAgICAgICBheEl0ZW06IGF4SXRlbQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwoKICAgIC8vIFB1c2ggYWxsIHByb2R1Y3QgaW4gZGF0YUxheWVyCiAgICBheFByb2R1Y3RMaXN0LnB1c2goewogICAgICBpdGVtX25hbWU6ICdLSVNTIE1FIE1PUkUgbGlwIHRhdHRvbyAtMDA0IFBFQUNIJywKICAgICAgaXRlbV9pZDogJ0lUQV9QUkRFMDAwMzQyODBXJywKICAgICAgcHJpY2U6ICfigqw4LDUwJywKICAgICAgaXRlbV9icmFuZDogJ0Zsb3JtYXInLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ0Zsb3JtYXInLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0kgcHJvZG90dGkgRmxvcm1hcicsCiAgICAgIGl0ZW1fY2F0ZWdvcnkzOiAnVHJ1Y2NvIGxhYmJyYScsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC1raXNzLW1lLW1vcmUtbGlwLXRhdHRvby0wMDQtcGVhY2gtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJLSVNTIE1FIE1PUkUgbGlwIHRhdHRvbyAtMDA0IFBFQUNIIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiSVRBX1BSREUwMDAzNDI4MFciLAogICAgICAgICAgICAicHJpY2UiOiAi4oKsOCw1MCIsCiAgICAgICAgICAgICJpdGVtX2JyYW5kIjogIkZsb3JtYXIiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiVHJ1Y2NvIGxhYmJyYSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MiI6ICJvdXItZmxvcm1hci1wcm9kdWN0cyIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MyI6IG51bGwsCiAgICAgICAgICAgICJpdGVtX3ZhcmlhbnQiOiAiRGVmYXVsdCBUaXRsZSIKICAgICAgICB9CiAgICAnIGRhdGEtcHJvZHVjdC1pZD0iMTAwNzI0MjkwNjg2MjEiPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmNzZXQ9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDA2NTVfMV80ZDkzZWMwMi1lZTYzLTRjNjUtYTYwMi0zZDZjZDA0ZDE4MzEuanBnP3Y9MTc0NzExNzkzMiZ3aWR0aD0xNjUgMTY1dywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQwNjU1XzFfNGQ5M2VjMDItZWU2My00YzY1LWE2MDItM2Q2Y2QwNGQxODMxLmpwZz92PTE3NDcxMTc5MzImd2lkdGg9MzYwIDM2MHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0MDY1NV8xXzRkOTNlYzAyLWVlNjMtNGM2NS1hNjAyLTNkNmNkMDRkMTgzMS5qcGc/dj0xNzQ3MTE3OTMyJndpZHRoPTUzMyA1MzN3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDA2NTVfMV80ZDkzZWMwMi1lZTYzLTRjNjUtYTYwMi0zZDZjZDA0ZDE4MzEuanBnP3Y9MTc0NzExNzkzMiZ3aWR0aD03MjAgNzIwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQwNjU1XzFfNGQ5M2VjMDItZWU2My00YzY1LWE2MDItM2Q2Y2QwNGQxODMxLmpwZz92PTE3NDcxMTc5MzImd2lkdGg9OTQwIDk0MHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0MDY1NV8xXzRkOTNlYzAyLWVlNjMtNGM2NS1hNjAyLTNkNmNkMDRkMTgzMS5qcGc/dj0xNzQ3MTE3OTMyJndpZHRoPTEwNjYgMTA2NncsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0MDY1NV8xXzRkOTNlYzAyLWVlNjMtNGM2NS1hNjAyLTNkNmNkMDRkMTgzMS5qcGc/dj0xNzQ3MTE3OTMyIDEyMDB3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDA2NTVfMV80ZDkzZWMwMi1lZTYzLTRjNjUtYTYwMi0zZDZjZDA0ZDE4MzEuanBnP3Y9MTc0NzExNzkzMiZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJWaXN1YWxlIGRlbCBwcm9kb3R0byBSb3NzZXR0byBMaXF1aWRvIEVmZmV0dG8gVGF0dG9vIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibW90aW9uLXJlZHVjZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTAwNzI0MjkwNjg2MjEiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTAwNzI0MjkwNjg2MjEiIGRhdGEtdmFyaWFudC1pZD0iNTE2MjMzMjYzODQ0NjEiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL2tpc3MtbWUtbW9yZS1saXAtdGF0dG9vLTAwNC1wZWFjaCI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48c3BhbiBpZD0iQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkwNjg2MjEiIGNsYXNzPSJiYWRnZSBiYWRnZS0tYm90dG9tLWxlZnQgY29sb3Itc2NoZW1lLWQ2YTVjMDM2LTZjNDUtNDdjZi1hZGQ2LWJhZGZlZmI0NWZkOSI+LTM5JQo8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPjxkaXYgY2xhc3M9ImNhcmRfX3R5cGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvcm1hcgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDA3MjQyOTA2ODYyMSIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMva2lzcy1tZS1tb3JlLWxpcC10YXR0b28tMDA0LXBlYWNoIiBpZD0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkwNjg2MjEiIGNsYXNzPSJmdWxsLXVuc3R5bGVkLWxpbmsgZnVsbC11bnN0eWxlZC1saW5rLXByb2R1Y3QiIGFyaWEtbGFiZWxsZWRieT0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkwNjg2MjEgQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkwNjg2MjEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUm9zc2V0dG8gTGlxdWlkbyBFZmZldHRvIFRhdHRvbyAgCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L3A+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBLSVNTIE1FIE1PUkUgbGlwIHRhdHRvbyAtMDA0IFBFQUNICiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbmZvcm1hdGlvbiI+PHNwYW4gY2xhc3M9ImNhcHRpb24tbGFyZ2UgbGlnaHQiPjwvc3Bhbj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uLWZvcm0tcmF0aW5nLXByaWNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhdGluZy1wcmljZSI+CjxkaXYKICBjbGFzcz0iCiAgICBwcmljZSAgcHJpY2UtLW9uLXNhbGUiCj4KICA8ZGl2IGNsYXNzPSJwcmljZV9fY29udGFpbmVyIj48ZGl2IGNsYXNzPSJwcmljZV9fcmVndWxhciI+PHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICDigqw4LDUwCiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJpY2VfX3NhbGUiPgogICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIHNjb250YXRvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1zYWxlIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIOKCrDgsNTAKICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIOKCrDEzLDkwCiAgICAgICAgICAgIAogICAgICAgICAgPC9zPgogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxzbWFsbCBjbGFzcz0idW5pdC1wcmljZSBjYXB0aW9uIGhpZGRlbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZXp6byB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS11bml0IHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+Lzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4mbmJzcDtwZXImbmJzcDs8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMDcyNDI5MDY4NjIxIiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjUxNjIzMzI2Mzg0NDYxIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAwNzI0MjkwNjg2MjEtc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDA3MjQyOTA2ODYyMS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkwNjg2MjEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZwogIGNsYXNzPSJpY29uIHNoLWljb24tY2FydC1lbXB0eSIKICBhcmlhLWhpZGRlbj0idHJ1ZSIKICBmb2N1c2FibGU9ImZhbHNlIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB2aWV3Qm94PSIwIDAgMTggMjIiCiAgZmlsbD0ibm9uZSIKPgogIDxwYXRoIGQ9Ik0xNi40MTkgNC43MTN2MTQuMzQ4YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5IDIuNjA3SDMuMzc2YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5LTIuNjA3VjQuNzEzWiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KICA8cGF0aCBkPSJNNC42NDcgNy4zMjFWNC43MTJhMy45NDYgMy45NDYgMCAxIDEgNy44OTEgMHYyLjYwOSIgIHN0cm9rZT0iY3VycmVudENvbG9yIi8+Cjwvc3ZnPgogIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFc2F1cml0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSIxMDA3MjQyOTA2ODYyMSIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwMDcyNDI5MDY4NjIxIiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwMDcyNDI5MDY4NjIxIiBkYXRhLXZhcmlhbnQtaWQ9IjUxNjIzMzI2Mzg0NDYxIiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9raXNzLW1lLW1vcmUtbGlwLXRhdHRvby0wMDQtcGVhY2giPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUm9zc2V0dG8gTGlxdWlkbyBFZmZldHRvIFRhdHRvbyAKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIEtJU1MgTUUgTU9SRSBsaXAgdGF0dG9vIC0wMDQgUEVBQ0gKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+VW4gZmluaXNoIG1hdHRlIGVmZmV0dG8gdGF0dWFnZ2lvIGNoZSBnYXJhbnRpc2NlIHVuYSBsdW5nYSB0ZW51dGEuPC9zcGFuPjwvbGk+PGxpPjxzcGFuPlJlc2lzdGUgYWkgYmFjaSBlIG5vbiBsYXNjaWEgdHJhY2NlLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5MYSBzdWEgZm9ybXVsYSBsaXF1aWRhIMOoIGZhY2lsZSBkYSBhcHBsaWNhcmUuPC9zcGFuPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDA3MjQyOTA2ODYyMSIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1MTYyMzMyNjM4NDQ2MSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAwNzI0MjkwNjg2MjEtc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMDcyNDI5MDY4NjIxLXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDA3MjQyOTA2ODYyMSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFnZ2l1bmdpIGFsIGNhcnJlbGxvIC0gPHNwYW4gY2xhc3M9ImJ1dHRvbl9fcHJpY2UiPuKCrDgsNTA8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNhdXJpdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9IjEwMDcyNDI5MDY4NjIxIiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1raXNzLW1lLW1vcmUtbGlwLXRhdHRvby0wMDYtZG9sbC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYicpOwogICAgcHJvZHVjdENhcmRzLmZvckVhY2goZnVuY3Rpb24gKGNhcmQpIHsKICAgICAgaWYgKGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKSAhPT0gbnVsbCkgewogICAgICAgIGxpc3ROYW1lID0gY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpLmdldEF0dHJpYnV0ZSgnZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpOwogICAgICB9CiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICB2YXIgcHJvZHVjdERhdGEgPSBKU09OLnBhcnNlKGNhcmQuZ2V0QXR0cmlidXRlKCdndG0tY2FyZC1kYXRhJykpOwogICAgICAgIC8vIE5lZWQgdG8gcHVzaCBsaXN0TmFtZQogICAgICAgIHByb2R1Y3REYXRhWydpdGVtX2xpc3RfbmFtZSddID0gbGlzdE5hbWU7CiAgICAgICAgLy8gUHVzaCBjbGlja2VkIHByb2R1Y3QKICAgICAgICBheEl0ZW0ucHVzaChwcm9kdWN0RGF0YSk7CiAgICAgICAgLy8gU2VuZCAiY2xpY2siIGV2ZW50CiAgICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2NsaWNrJywKICAgICAgICAgIGF4SXRlbTogYXhJdGVtCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gUHVzaCBhbGwgcHJvZHVjdCBpbiBkYXRhTGF5ZXIKICAgIGF4UHJvZHVjdExpc3QucHVzaCh7CiAgICAgIGl0ZW1fbmFtZTogJ0tJU1MgTUUgTU9SRSBsaXAgdGF0dG9vIC0wMDYgRE9MTCcsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDM0MjgxVycsCiAgICAgIHByaWNlOiAn4oKsOCw1MCcsCiAgICAgIGl0ZW1fYnJhbmQ6ICdGbG9ybWFyJywKICAgICAgaXRlbV9jYXRlZ29yeTE6ICdGbG9ybWFyJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdJIHByb2RvdHRpIEZsb3JtYXInLAogICAgICBpdGVtX2NhdGVnb3J5MzogJ1RydWNjbyBsYWJicmEnLAogICAgICBpdGVtX3ZhcmlhbnQ6ICdEZWZhdWx0IFRpdGxlJywKICAgICAgaXRlbV9saXN0X25hbWU6IGxpc3ROYW1lCiAgICB9KTsKCiAgICAvLyBTZW5kICJmaW5pc2hlZCIgZXZlbnQKICAgIGlmIChheFByb2R1Y3RMaXN0Lmxlbmd0aCA9PT0gd2luZG93LnRoZW1lLml0ZW1zX2NvdW50KSB7CiAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfbGlzdF9jb21wbGV0ZScsCiAgICAgICAgYXhQcm9kdWN0TGlzdDogYXhQcm9kdWN0TGlzdCwKICAgICAgfSk7CiAgICB9CiAgfSk7CgogIGZ1bmN0aW9uIGNsaWNrUHJvZHVjdChwcm9kdWN0RGF0YSkge30KPC9zY3JpcHQ+CgoKPHNjcmlwdCBkZWZlcj4KICBmdW5jdGlvbiBzd3ltQ2FsbGJhY2tGbihzd2F0KSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzd3ltOmNvbGxlY3Rpb25zLWxvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgc3dhdC5pbml0aWFsaXplQWN0aW9uQnV0dG9ucygnPDxDb2xsZWN0aW9ucyBHcmlkIFBBUkVOVCBTZWxlY3RvciA+PicpOwogICAgfSk7CiAgfQogIGlmICghd2luZG93LlN3eW1DYWxsYmFja3MpIHsKICAgIHdpbmRvdy5Td3ltQ2FsbGJhY2tzID0gW107CiAgfQogIHdpbmRvdy5Td3ltQ2FsbGJhY2tzLnB1c2goc3d5bUNhbGxiYWNrRm4pOwo8L3NjcmlwdD4KCgogICAgCgogICAgPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIHByb2R1Y3QtbWluaWF0dXJlIHByb2R1Y3QtY2FyZC13cmFwcGVyIHVuZGVybGluZS1saW5rcy1ob3ZlciBndG0tY2FyZC1wcm9kdWN0IGd0bS1jYXJkLXByb2R1Y3Qta2lzcy1tZS1tb3JlLWxpcC10YXR0b28tMDA2LWRvbGwtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJLSVNTIE1FIE1PUkUgbGlwIHRhdHRvbyAtMDA2IERPTEwiLAogICAgICAgICAgICAiaXRlbV9pZCI6ICJJVEFfUFJERTAwMDM0MjgxVyIsCiAgICAgICAgICAgICJwcmljZSI6ICLigqw4LDUwIiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiRmxvcm1hciIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MSI6ICJUcnVjY28gbGFiYnJhIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkyIjogIm91ci1mbG9ybWFyLXByb2R1Y3RzIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkzIjogbnVsbCwKICAgICAgICAgICAgIml0ZW1fdmFyaWFudCI6ICJEZWZhdWx0IFRpdGxlIgogICAgICAgIH0KICAgICcgZGF0YS1wcm9kdWN0LWlkPSIxMDA3MjQyOTEzNDE1NyI+CiAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9IgogICAgICAgIGNhcmQgY2FyZC0tc3RhbmRhcmQKICAgICAgICAgY2FyZC0tbWVkaWEKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgIgogICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgPgogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNhcmRfX2lubmVyIGNvbG9yLWJhY2tncm91bmQtMSBncmFkaWVudCByYXRpbyIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICAgICAgPjxkaXYgY2xhc3M9ImNhcmRfX21lZGlhIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtLXRyYW5zcGFyZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyY3NldD0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0MDY3OV8xXzhiNjFlMThhLTcyY2QtNDIwYS1iNjljLWNmNDY1Mjc2ZGZjOS5qcGc/dj0xNzQ3MTE3OTM3JndpZHRoPTE2NSAxNjV3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDA2NzlfMV84YjYxZTE4YS03MmNkLTQyMGEtYjY5Yy1jZjQ2NTI3NmRmYzkuanBnP3Y9MTc0NzExNzkzNyZ3aWR0aD0zNjAgMzYwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQwNjc5XzFfOGI2MWUxOGEtNzJjZC00MjBhLWI2OWMtY2Y0NjUyNzZkZmM5LmpwZz92PTE3NDcxMTc5Mzcmd2lkdGg9NTMzIDUzM3csLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0MDY3OV8xXzhiNjFlMThhLTcyY2QtNDIwYS1iNjljLWNmNDY1Mjc2ZGZjOS5qcGc/dj0xNzQ3MTE3OTM3JndpZHRoPTcyMCA3MjB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDA2NzlfMV84YjYxZTE4YS03MmNkLTQyMGEtYjY5Yy1jZjQ2NTI3NmRmYzkuanBnP3Y9MTc0NzExNzkzNyZ3aWR0aD05NDAgOTQwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQwNjc5XzFfOGI2MWUxOGEtNzJjZC00MjBhLWI2OWMtY2Y0NjUyNzZkZmM5LmpwZz92PTE3NDcxMTc5Mzcmd2lkdGg9MTA2NiAxMDY2dywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQwNjc5XzFfOGI2MWUxOGEtNzJjZC00MjBhLWI2OWMtY2Y0NjUyNzZkZmM5LmpwZz92PTE3NDcxMTc5MzcgMTIwMHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0MDY3OV8xXzhiNjFlMThhLTcyY2QtNDIwYS1iNjljLWNmNDY1Mjc2ZGZjOS5qcGc/dj0xNzQ3MTE3OTM3JndpZHRoPTUzMyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZXM9IihtaW4td2lkdGg6IDE2MDBweCkgMzY3cHgsIChtaW4td2lkdGg6IDk5MHB4KSBjYWxjKCgxMDB2dyAtIDEzMHB4KSAvIDQpLCAobWluLXdpZHRoOiA3NTBweCkgY2FsYygoMTAwdncgLSAxMjBweCkgLyAzKSwgY2FsYygoMTAwdncgLSAzNXB4KSAvIDIpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9IlZpc3VhbGUgZGVsIHByb2RvdHRvIFJvc3NldHRvIExpcXVpZG8gRWZmZXR0byBUYXR0b28iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDA3MjQyOTEzNDE1NyIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDA3MjQyOTEzNDE1NyIgZGF0YS12YXJpYW50LWlkPSI1MTYyMzMyNjUxNTUzMyIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMva2lzcy1tZS1tb3JlLWxpcC10YXR0b28tMDA2LWRvbGwiPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19iYWRnZSB0b3AgbGVmdCI+PHNwYW4gaWQ9IkJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMDcyNDI5MTM0MTU3IiBjbGFzcz0iYmFkZ2UgYmFkZ2UtLWJvdHRvbS1sZWZ0IGNvbG9yLXNjaGVtZS1kNmE1YzAzNi02YzQ1LTQ3Y2YtYWRkNi1iYWRmZWZiNDVmZDkiPi0zOSUKPC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsb3JtYXIKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHAgY2xhc3M9ImNhcmRfX2hlYWRpbmcgaDUiICBpZD0idGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkxMzQxNTciID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL2tpc3MtbWUtbW9yZS1saXAtdGF0dG9vLTAwNi1kb2xsIiBpZD0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkxMzQxNTciIGNsYXNzPSJmdWxsLXVuc3R5bGVkLWxpbmsgZnVsbC11bnN0eWxlZC1saW5rLXByb2R1Y3QiIGFyaWEtbGFiZWxsZWRieT0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkxMzQxNTcgQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkxMzQxNTciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUm9zc2V0dG8gTGlxdWlkbyBFZmZldHRvIFRhdHRvbyAgCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L3A+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBLSVNTIE1FIE1PUkUgbGlwIHRhdHRvbyAtMDA2IERPTEwKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm9ybWF0aW9uIj48c3BhbiBjbGFzcz0iY2FwdGlvbi1sYXJnZSBsaWdodCI+PC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24tZm9ybS1yYXRpbmctcHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0aW5nLXByaWNlIj4KPGRpdgogIGNsYXNzPSIKICAgIHByaWNlICBwcmljZS0tb24tc2FsZSIKPgogIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPjxkaXYgY2xhc3M9InByaWNlX19yZWd1bGFyIj48c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgIOKCrDgsNTAKICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gc2NvbnRhdG88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAg4oKsOCw1MAogICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgICA8cyBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgICAgCiAgICAgICAgICAgICAg4oKsMTMsOTAKICAgICAgICAgICAgCiAgICAgICAgICA8L3M+CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPHNtYWxsIGNsYXNzPSJ1bml0LXByaWNlIGNhcHRpb24gaGlkZGVuIj4KICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+UHJlenpvIHVuaXRhcmlvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLXVuaXQgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPiZuYnNwO3BlciZuYnNwOzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvc3Bhbj4KICAgIDwvc21hbGw+CiAgPC9kaXY+PC9kaXY+Cgo8L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgcXVpY2stYWRkLW1vYmlsZSBuby1qcy1oaWRkZW4gZXh0cmEtbGFyZ2UtdXAtaGlkZSI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAwNzI0MjkxMzQxNTciIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTE2MjMzMjY1MTU1MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDA3MjQyOTEzNDE1Ny1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMDcyNDI5MTM0MTU3LXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDA3MjQyOTEzNDE1NyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnCiAgY2xhc3M9Imljb24gc2gtaWNvbi1jYXJ0LWVtcHR5IgogIGFyaWEtaGlkZGVuPSJ0cnVlIgogIGZvY3VzYWJsZT0iZmFsc2UiCiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHZpZXdCb3g9IjAgMCAxOCAyMiIKICBmaWxsPSJub25lIgo+CiAgPHBhdGggZD0iTTE2LjQxOSA0LjcxM3YxNC4zNDhhMi42MDkgMi42MDkgMCAwIDEtMi42MDkgMi42MDdIMy4zNzZhMi42MDkgMi42MDkgMCAwIDEtMi42MDktMi42MDdWNC43MTNaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgogIDxwYXRoIGQ9Ik00LjY0NyA3LjMyMVY0LjcxMmEzLjk0NiAzLjk0NiAwIDEgMSA3Ljg5MSAwdjIuNjA5IiAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+CiAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9IjEwMDcyNDI5MTM0MTU3IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQtaG92ZXIiPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTAwNzI0MjkxMzQxNTciIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTAwNzI0MjkxMzQxNTciIGRhdGEtdmFyaWFudC1pZD0iNTE2MjMzMjY1MTU1MzMiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL2tpc3MtbWUtbW9yZS1saXAtdGF0dG9vLTAwNi1kb2xsIj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2hlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvc3NldHRvIExpcXVpZG8gRWZmZXR0byBUYXR0b28gCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBLSVNTIE1FIE1PUkUgbGlwIHRhdHRvbyAtMDA2IERPTEwKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+VW4gZmluaXNoIG1hdHRlIGVmZmV0dG8gdGF0dWFnZ2lvIGNoZSBnYXJhbnRpc2NlIHVuYSBsdW5nYSB0ZW51dGEuPC9zcGFuPjwvbGk+PGxpPjxzcGFuPlJlc2lzdGUgYWkgYmFjaSBlIG5vbiBsYXNjaWEgdHJhY2NlLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5MYSBzdWEgZm9ybXVsYSBsaXF1aWRhIMOoIGZhY2lsZSBkYSBhcHBsaWNhcmUuPC9zcGFuPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDA3MjQyOTEzNDE1NyIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1MTYyMzMyNjUxNTUzMyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAwNzI0MjkxMzQxNTctc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMDcyNDI5MTM0MTU3LXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDA3MjQyOTEzNDE1NyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFnZ2l1bmdpIGFsIGNhcnJlbGxvIC0gPHNwYW4gY2xhc3M9ImJ1dHRvbl9fcHJpY2UiPuKCrDgsNTA8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNhdXJpdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9IjEwMDcyNDI5MTM0MTU3IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1raXNzLW1lLW1vcmUtbGlwLXRhdHRvby0wMDctcm9zYS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYicpOwogICAgcHJvZHVjdENhcmRzLmZvckVhY2goZnVuY3Rpb24gKGNhcmQpIHsKICAgICAgaWYgKGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKSAhPT0gbnVsbCkgewogICAgICAgIGxpc3ROYW1lID0gY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpLmdldEF0dHJpYnV0ZSgnZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpOwogICAgICB9CiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICB2YXIgcHJvZHVjdERhdGEgPSBKU09OLnBhcnNlKGNhcmQuZ2V0QXR0cmlidXRlKCdndG0tY2FyZC1kYXRhJykpOwogICAgICAgIC8vIE5lZWQgdG8gcHVzaCBsaXN0TmFtZQogICAgICAgIHByb2R1Y3REYXRhWydpdGVtX2xpc3RfbmFtZSddID0gbGlzdE5hbWU7CiAgICAgICAgLy8gUHVzaCBjbGlja2VkIHByb2R1Y3QKICAgICAgICBheEl0ZW0ucHVzaChwcm9kdWN0RGF0YSk7CiAgICAgICAgLy8gU2VuZCAiY2xpY2siIGV2ZW50CiAgICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2NsaWNrJywKICAgICAgICAgIGF4SXRlbTogYXhJdGVtCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gUHVzaCBhbGwgcHJvZHVjdCBpbiBkYXRhTGF5ZXIKICAgIGF4UHJvZHVjdExpc3QucHVzaCh7CiAgICAgIGl0ZW1fbmFtZTogJ0tJU1MgTUUgTU9SRSBsaXAgdGF0dG9vIC0wMDcgUk9TQScsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDM0MjgyVycsCiAgICAgIHByaWNlOiAn4oKsOCw1MCcsCiAgICAgIGl0ZW1fYnJhbmQ6ICdGbG9ybWFyJywKICAgICAgaXRlbV9jYXRlZ29yeTE6ICdGbG9ybWFyJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdJIHByb2RvdHRpIEZsb3JtYXInLAogICAgICBpdGVtX2NhdGVnb3J5MzogJ1RydWNjbyBsYWJicmEnLAogICAgICBpdGVtX3ZhcmlhbnQ6ICdEZWZhdWx0IFRpdGxlJywKICAgICAgaXRlbV9saXN0X25hbWU6IGxpc3ROYW1lCiAgICB9KTsKCiAgICAvLyBTZW5kICJmaW5pc2hlZCIgZXZlbnQKICAgIGlmIChheFByb2R1Y3RMaXN0Lmxlbmd0aCA9PT0gd2luZG93LnRoZW1lLml0ZW1zX2NvdW50KSB7CiAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfbGlzdF9jb21wbGV0ZScsCiAgICAgICAgYXhQcm9kdWN0TGlzdDogYXhQcm9kdWN0TGlzdCwKICAgICAgfSk7CiAgICB9CiAgfSk7CgogIGZ1bmN0aW9uIGNsaWNrUHJvZHVjdChwcm9kdWN0RGF0YSkge30KPC9zY3JpcHQ+CgoKPHNjcmlwdCBkZWZlcj4KICBmdW5jdGlvbiBzd3ltQ2FsbGJhY2tGbihzd2F0KSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzd3ltOmNvbGxlY3Rpb25zLWxvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgc3dhdC5pbml0aWFsaXplQWN0aW9uQnV0dG9ucygnPDxDb2xsZWN0aW9ucyBHcmlkIFBBUkVOVCBTZWxlY3RvciA+PicpOwogICAgfSk7CiAgfQogIGlmICghd2luZG93LlN3eW1DYWxsYmFja3MpIHsKICAgIHdpbmRvdy5Td3ltQ2FsbGJhY2tzID0gW107CiAgfQogIHdpbmRvdy5Td3ltQ2FsbGJhY2tzLnB1c2goc3d5bUNhbGxiYWNrRm4pOwo8L3NjcmlwdD4KCgogICAgCgogICAgPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIHByb2R1Y3QtbWluaWF0dXJlIHByb2R1Y3QtY2FyZC13cmFwcGVyIHVuZGVybGluZS1saW5rcy1ob3ZlciBndG0tY2FyZC1wcm9kdWN0IGd0bS1jYXJkLXByb2R1Y3Qta2lzcy1tZS1tb3JlLWxpcC10YXR0b28tMDA3LXJvc2EtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJLSVNTIE1FIE1PUkUgbGlwIHRhdHRvbyAtMDA3IFJPU0EiLAogICAgICAgICAgICAiaXRlbV9pZCI6ICJJVEFfUFJERTAwMDM0MjgyVyIsCiAgICAgICAgICAgICJwcmljZSI6ICLigqw4LDUwIiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiRmxvcm1hciIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MSI6ICJUcnVjY28gbGFiYnJhIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkyIjogIm91ci1mbG9ybWFyLXByb2R1Y3RzIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkzIjogbnVsbCwKICAgICAgICAgICAgIml0ZW1fdmFyaWFudCI6ICJEZWZhdWx0IFRpdGxlIgogICAgICAgIH0KICAgICcgZGF0YS1wcm9kdWN0LWlkPSIxMDA3MjQyOTE2NjkyNSI+CiAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9IgogICAgICAgIGNhcmQgY2FyZC0tc3RhbmRhcmQKICAgICAgICAgY2FyZC0tbWVkaWEKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgIgogICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgPgogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImNhcmRfX2lubmVyIGNvbG9yLWJhY2tncm91bmQtMSBncmFkaWVudCByYXRpbyIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICAgICAgPjxkaXYgY2xhc3M9ImNhcmRfX21lZGlhIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtLXRyYW5zcGFyZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyY3NldD0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0MDY4Nl8xXzQ0NmNhOGQyLWY0NjMtNGQ2Ni05ZjUzLWJmNGJiMGQ1ZWQzZi5qcGc/dj0xNzQ3MTE3OTM3JndpZHRoPTE2NSAxNjV3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDA2ODZfMV80NDZjYThkMi1mNDYzLTRkNjYtOWY1My1iZjRiYjBkNWVkM2YuanBnP3Y9MTc0NzExNzkzNyZ3aWR0aD0zNjAgMzYwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQwNjg2XzFfNDQ2Y2E4ZDItZjQ2My00ZDY2LTlmNTMtYmY0YmIwZDVlZDNmLmpwZz92PTE3NDcxMTc5Mzcmd2lkdGg9NTMzIDUzM3csLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0MDY4Nl8xXzQ0NmNhOGQyLWY0NjMtNGQ2Ni05ZjUzLWJmNGJiMGQ1ZWQzZi5qcGc/dj0xNzQ3MTE3OTM3JndpZHRoPTcyMCA3MjB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDA2ODZfMV80NDZjYThkMi1mNDYzLTRkNjYtOWY1My1iZjRiYjBkNWVkM2YuanBnP3Y9MTc0NzExNzkzNyZ3aWR0aD05NDAgOTQwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQwNjg2XzFfNDQ2Y2E4ZDItZjQ2My00ZDY2LTlmNTMtYmY0YmIwZDVlZDNmLmpwZz92PTE3NDcxMTc5Mzcmd2lkdGg9MTA2NiAxMDY2dywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQwNjg2XzFfNDQ2Y2E4ZDItZjQ2My00ZDY2LTlmNTMtYmY0YmIwZDVlZDNmLmpwZz92PTE3NDcxMTc5MzcgMTIwMHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0MDY4Nl8xXzQ0NmNhOGQyLWY0NjMtNGQ2Ni05ZjUzLWJmNGJiMGQ1ZWQzZi5qcGc/dj0xNzQ3MTE3OTM3JndpZHRoPTUzMyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZXM9IihtaW4td2lkdGg6IDE2MDBweCkgMzY3cHgsIChtaW4td2lkdGg6IDk5MHB4KSBjYWxjKCgxMDB2dyAtIDEzMHB4KSAvIDQpLCAobWluLXdpZHRoOiA3NTBweCkgY2FsYygoMTAwdncgLSAxMjBweCkgLyAzKSwgY2FsYygoMTAwdncgLSAzNXB4KSAvIDIpIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9IlZpc3VhbGUgZGVsIHByb2RvdHRvIFJvc3NldHRvIExpcXVpZG8gRWZmZXR0byBUYXR0b28iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDA3MjQyOTE2NjkyNSIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDA3MjQyOTE2NjkyNSIgZGF0YS12YXJpYW50LWlkPSI1MTYyMzMyNjU0ODMwMSIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMva2lzcy1tZS1tb3JlLWxpcC10YXR0b28tMDA3LXJvc2EiPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19iYWRnZSB0b3AgbGVmdCI+PHNwYW4gaWQ9IkJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMDcyNDI5MTY2OTI1IiBjbGFzcz0iYmFkZ2UgYmFkZ2UtLWJvdHRvbS1sZWZ0IGNvbG9yLXNjaGVtZS1kNmE1YzAzNi02YzQ1LTQ3Y2YtYWRkNi1iYWRmZWZiNDVmZDkiPi0zOSUKPC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsb3JtYXIKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHAgY2xhc3M9ImNhcmRfX2hlYWRpbmcgaDUiICBpZD0idGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkxNjY5MjUiID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL2tpc3MtbWUtbW9yZS1saXAtdGF0dG9vLTAwNy1yb3NhIiBpZD0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkxNjY5MjUiIGNsYXNzPSJmdWxsLXVuc3R5bGVkLWxpbmsgZnVsbC11bnN0eWxlZC1saW5rLXByb2R1Y3QiIGFyaWEtbGFiZWxsZWRieT0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkxNjY5MjUgQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkxNjY5MjUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUm9zc2V0dG8gTGlxdWlkbyBFZmZldHRvIFRhdHRvbyAgCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L3A+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBLSVNTIE1FIE1PUkUgbGlwIHRhdHRvbyAtMDA3IFJPU0EKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm9ybWF0aW9uIj48c3BhbiBjbGFzcz0iY2FwdGlvbi1sYXJnZSBsaWdodCI+PC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24tZm9ybS1yYXRpbmctcHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0aW5nLXByaWNlIj4KPGRpdgogIGNsYXNzPSIKICAgIHByaWNlICBwcmljZS0tb24tc2FsZSIKPgogIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPjxkaXYgY2xhc3M9InByaWNlX19yZWd1bGFyIj48c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgIOKCrDgsNTAKICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gc2NvbnRhdG88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAg4oKsOCw1MAogICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgICA8cyBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgICAgCiAgICAgICAgICAgICAg4oKsMTMsOTAKICAgICAgICAgICAgCiAgICAgICAgICA8L3M+CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPHNtYWxsIGNsYXNzPSJ1bml0LXByaWNlIGNhcHRpb24gaGlkZGVuIj4KICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+UHJlenpvIHVuaXRhcmlvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLXVuaXQgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPiZuYnNwO3BlciZuYnNwOzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvc3Bhbj4KICAgIDwvc21hbGw+CiAgPC9kaXY+PC9kaXY+Cgo8L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgcXVpY2stYWRkLW1vYmlsZSBuby1qcy1oaWRkZW4gZXh0cmEtbGFyZ2UtdXAtaGlkZSI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAwNzI0MjkxNjY5MjUiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTE2MjMzMjY1NDgzMDEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDA3MjQyOTE2NjkyNS1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMDcyNDI5MTY2OTI1LXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDA3MjQyOTE2NjkyNSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnCiAgY2xhc3M9Imljb24gc2gtaWNvbi1jYXJ0LWVtcHR5IgogIGFyaWEtaGlkZGVuPSJ0cnVlIgogIGZvY3VzYWJsZT0iZmFsc2UiCiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHZpZXdCb3g9IjAgMCAxOCAyMiIKICBmaWxsPSJub25lIgo+CiAgPHBhdGggZD0iTTE2LjQxOSA0LjcxM3YxNC4zNDhhMi42MDkgMi42MDkgMCAwIDEtMi42MDkgMi42MDdIMy4zNzZhMi42MDkgMi42MDkgMCAwIDEtMi42MDktMi42MDdWNC43MTNaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgogIDxwYXRoIGQ9Ik00LjY0NyA3LjMyMVY0LjcxMmEzLjk0NiAzLjk0NiAwIDEgMSA3Ljg5MSAwdjIuNjA5IiAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+CiAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9IjEwMDcyNDI5MTY2OTI1IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQtaG92ZXIiPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTAwNzI0MjkxNjY5MjUiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTAwNzI0MjkxNjY5MjUiIGRhdGEtdmFyaWFudC1pZD0iNTE2MjMzMjY1NDgzMDEiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL2tpc3MtbWUtbW9yZS1saXAtdGF0dG9vLTAwNy1yb3NhIj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2hlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvc3NldHRvIExpcXVpZG8gRWZmZXR0byBUYXR0b28gCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBLSVNTIE1FIE1PUkUgbGlwIHRhdHRvbyAtMDA3IFJPU0EKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+VW4gZmluaXNoIG1hdHRlIGVmZmV0dG8gdGF0dWFnZ2lvIGNoZSBnYXJhbnRpc2NlIHVuYSBsdW5nYSB0ZW51dGEuPC9zcGFuPjwvbGk+PGxpPjxzcGFuPlJlc2lzdGUgYWkgYmFjaSBlIG5vbiBsYXNjaWEgdHJhY2NlLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5MYSBzdWEgZm9ybXVsYSBsaXF1aWRhIMOoIGZhY2lsZSBkYSBhcHBsaWNhcmUuPC9zcGFuPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDA3MjQyOTE2NjkyNSIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1MTYyMzMyNjU0ODMwMSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAwNzI0MjkxNjY5MjUtc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMDcyNDI5MTY2OTI1LXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDA3MjQyOTE2NjkyNSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFnZ2l1bmdpIGFsIGNhcnJlbGxvIC0gPHNwYW4gY2xhc3M9ImJ1dHRvbl9fcHJpY2UiPuKCrDgsNTA8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNhdXJpdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9IjEwMDcyNDI5MTY2OTI1IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1raXNzLW1lLW1vcmUtbGlwLXRhdHRvby0wOC1tYWRlbW9pLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiJyk7CiAgICBwcm9kdWN0Q2FyZHMuZm9yRWFjaChmdW5jdGlvbiAoY2FyZCkgewogICAgICBpZiAoY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpICE9PSBudWxsKSB7CiAgICAgICAgbGlzdE5hbWUgPSBjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykuZ2V0QXR0cmlidXRlKCdndG0tdHJhY2tpbmctY3Jvc3NzZWxsJyk7CiAgICAgIH0KICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIHZhciBwcm9kdWN0RGF0YSA9IEpTT04ucGFyc2UoY2FyZC5nZXRBdHRyaWJ1dGUoJ2d0bS1jYXJkLWRhdGEnKSk7CiAgICAgICAgLy8gTmVlZCB0byBwdXNoIGxpc3ROYW1lCiAgICAgICAgcHJvZHVjdERhdGFbJ2l0ZW1fbGlzdF9uYW1lJ10gPSBsaXN0TmFtZTsKICAgICAgICAvLyBQdXNoIGNsaWNrZWQgcHJvZHVjdAogICAgICAgIGF4SXRlbS5wdXNoKHByb2R1Y3REYXRhKTsKICAgICAgICAvLyBTZW5kICJjbGljayIgZXZlbnQKICAgICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfY2xpY2snLAogICAgICAgICAgYXhJdGVtOiBheEl0ZW0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyBQdXNoIGFsbCBwcm9kdWN0IGluIGRhdGFMYXllcgogICAgYXhQcm9kdWN0TGlzdC5wdXNoKHsKICAgICAgaXRlbV9uYW1lOiAnS0lTUyBNRSBNT1JFIGxpcCB0YXR0b28gLTA4IE1BREVNT0knLAogICAgICBpdGVtX2lkOiAnSVRBX1BSREUwMDAzNDI4M1cnLAogICAgICBwcmljZTogJ+KCrDgsNTAnLAogICAgICBpdGVtX2JyYW5kOiAnRmxvcm1hcicsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnRmxvcm1hcicsCiAgICAgIGl0ZW1fY2F0ZWdvcnkyOiAnSSBwcm9kb3R0aSBGbG9ybWFyJywKICAgICAgaXRlbV9jYXRlZ29yeTM6ICdUcnVjY28gbGFiYnJhJywKICAgICAgaXRlbV92YXJpYW50OiAnRGVmYXVsdCBUaXRsZScsCiAgICAgIGl0ZW1fbGlzdF9uYW1lOiBsaXN0TmFtZQogICAgfSk7CgogICAgLy8gU2VuZCAiZmluaXNoZWQiIGV2ZW50CiAgICBpZiAoYXhQcm9kdWN0TGlzdC5sZW5ndGggPT09IHdpbmRvdy50aGVtZS5pdGVtc19jb3VudCkgewogICAgICBkYXRhTGF5ZXIucHVzaCh7CiAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2xpc3RfY29tcGxldGUnLAogICAgICAgIGF4UHJvZHVjdExpc3Q6IGF4UHJvZHVjdExpc3QsCiAgICAgIH0pOwogICAgfQogIH0pOwoKICBmdW5jdGlvbiBjbGlja1Byb2R1Y3QocHJvZHVjdERhdGEpIHt9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgZGVmZXI+CiAgZnVuY3Rpb24gc3d5bUNhbGxiYWNrRm4oc3dhdCkgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc3d5bTpjb2xsZWN0aW9ucy1sb2FkZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgIHN3YXQuaW5pdGlhbGl6ZUFjdGlvbkJ1dHRvbnMoJzw8Q29sbGVjdGlvbnMgR3JpZCBQQVJFTlQgU2VsZWN0b3IgPj4nKTsKICAgIH0pOwogIH0KICBpZiAoIXdpbmRvdy5Td3ltQ2FsbGJhY2tzKSB7CiAgICB3aW5kb3cuU3d5bUNhbGxiYWNrcyA9IFtdOwogIH0KICB3aW5kb3cuU3d5bUNhbGxiYWNrcy5wdXNoKHN3eW1DYWxsYmFja0ZuKTsKPC9zY3JpcHQ+CgoKICAgIAoKICAgIDxkaXYgY2xhc3M9ImNhcmQtd3JhcHBlciBwcm9kdWN0LW1pbmlhdHVyZSBwcm9kdWN0LWNhcmQtd3JhcHBlciB1bmRlcmxpbmUtbGlua3MtaG92ZXIgZ3RtLWNhcmQtcHJvZHVjdCBndG0tY2FyZC1wcm9kdWN0LWtpc3MtbWUtbW9yZS1saXAtdGF0dG9vLTA4LW1hZGVtb2ktdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJLSVNTIE1FIE1PUkUgbGlwIHRhdHRvbyAtMDggTUFERU1PSSIsCiAgICAgICAgICAgICJpdGVtX2lkIjogIklUQV9QUkRFMDAwMzQyODNXIiwKICAgICAgICAgICAgInByaWNlIjogIuKCrDgsNTAiLAogICAgICAgICAgICAiaXRlbV9icmFuZCI6ICJGbG9ybWFyIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkxIjogIlRydWNjbyBsYWJicmEiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAib3VyLWZsb3JtYXItcHJvZHVjdHMiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJyBkYXRhLXByb2R1Y3QtaWQ9IjEwMDcyNDI5MjMyNDYxIj4KICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iCiAgICAgICAgY2FyZCBjYXJkLS1zdGFuZGFyZAogICAgICAgICBjYXJkLS1tZWRpYQogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAiCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY2FyZF9faW5uZXIgY29sb3ItYmFja2dyb3VuZC0xIGdyYWRpZW50IHJhdGlvIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgICAgICA+PGRpdiBjbGFzcz0iY2FyZF9fbWVkaWEiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS0tdHJhbnNwYXJlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3Jjc2V0PSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQwNjkzXzFfZDg0MGU5NzQtODYzYi00OTUwLWI0Y2MtNDJmZGYxYjExMTJkLmpwZz92PTE3NDcxMTc5NDAmd2lkdGg9MTY1IDE2NXcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0MDY5M18xX2Q4NDBlOTc0LTg2M2ItNDk1MC1iNGNjLTQyZmRmMWIxMTEyZC5qcGc/dj0xNzQ3MTE3OTQwJndpZHRoPTM2MCAzNjB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDA2OTNfMV9kODQwZTk3NC04NjNiLTQ5NTAtYjRjYy00MmZkZjFiMTExMmQuanBnP3Y9MTc0NzExNzk0MCZ3aWR0aD01MzMgNTMzdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQwNjkzXzFfZDg0MGU5NzQtODYzYi00OTUwLWI0Y2MtNDJmZGYxYjExMTJkLmpwZz92PTE3NDcxMTc5NDAmd2lkdGg9NzIwIDcyMHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0MDY5M18xX2Q4NDBlOTc0LTg2M2ItNDk1MC1iNGNjLTQyZmRmMWIxMTEyZC5qcGc/dj0xNzQ3MTE3OTQwJndpZHRoPTk0MCA5NDB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDA2OTNfMV9kODQwZTk3NC04NjNiLTQ5NTAtYjRjYy00MmZkZjFiMTExMmQuanBnP3Y9MTc0NzExNzk0MCZ3aWR0aD0xMDY2IDEwNjZ3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDA2OTNfMV9kODQwZTk3NC04NjNiLTQ5NTAtYjRjYy00MmZkZjFiMTExMmQuanBnP3Y9MTc0NzExNzk0MCAxMjAwdwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQwNjkzXzFfZDg0MGU5NzQtODYzYi00OTUwLWI0Y2MtNDJmZGYxYjExMTJkLmpwZz92PTE3NDcxMTc5NDAmd2lkdGg9NTMzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplcz0iKG1pbi13aWR0aDogMTYwMHB4KSAzNjdweCwgKG1pbi13aWR0aDogOTkwcHgpIGNhbGMoKDEwMHZ3IC0gMTMwcHgpIC8gNCksIChtaW4td2lkdGg6IDc1MHB4KSBjYWxjKCgxMDB2dyAtIDEyMHB4KSAvIDMpLCBjYWxjKCgxMDB2dyAtIDM1cHgpIC8gMikiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iVmlzdWFsZSBkZWwgcHJvZG90dG8gUm9zc2V0dG8gTGlxdWlkbyBFZmZldHRvIFRhdHRvbyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1vdGlvbi1yZWR1Y2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwMDcyNDI5MjMyNDYxIiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwMDcyNDI5MjMyNDYxIiBkYXRhLXZhcmlhbnQtaWQ9IjUxNjIzMzI2NjEzODM3IiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9raXNzLW1lLW1vcmUtbGlwLXRhdHRvby0wOC1tYWRlbW9pIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjxzcGFuIGlkPSJCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDA3MjQyOTIzMjQ2MSIgY2xhc3M9ImJhZGdlIGJhZGdlLS1ib3R0b20tbGVmdCBjb2xvci1zY2hlbWUtZDZhNWMwMzYtNmM0NS00N2NmLWFkZDYtYmFkZmVmYjQ1ZmQ5Ij4tMzklCjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+PGRpdiBjbGFzcz0iY2FyZF9fdHlwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9ybWFyCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxwIGNsYXNzPSJjYXJkX19oZWFkaW5nIGg1IiAgaWQ9InRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMDcyNDI5MjMyNDYxIiA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9wcm9kdWN0cy9raXNzLW1lLW1vcmUtbGlwLXRhdHRvby0wOC1tYWRlbW9pIiBpZD0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkyMzI0NjEiIGNsYXNzPSJmdWxsLXVuc3R5bGVkLWxpbmsgZnVsbC11bnN0eWxlZC1saW5rLXByb2R1Y3QiIGFyaWEtbGFiZWxsZWRieT0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkyMzI0NjEgQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkyMzI0NjEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUm9zc2V0dG8gTGlxdWlkbyBFZmZldHRvIFRhdHRvbyAgCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L3A+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBLSVNTIE1FIE1PUkUgbGlwIHRhdHRvbyAtMDggTUFERU1PSQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIHByaWNlLS1vbi1zYWxlIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAg4oKsOCw1MAogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InByaWNlX19zYWxlIj4KICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBzY29udGF0bzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tc2FsZSBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICDigqw4LDUwCiAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxzIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgICDigqwxMyw5MAogICAgICAgICAgICAKICAgICAgICAgIDwvcz4KICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8c21hbGwgY2xhc3M9InVuaXQtcHJpY2UgY2FwdGlvbiBoaWRkZW4iPgogICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5QcmV6em8gdW5pdGFyaW88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tdW5pdCBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+Jm5ic3A7cGVyJm5ic3A7PC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9zcGFuPgogICAgPC9zbWFsbD4KICA8L2Rpdj48L2Rpdj4KCjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBxdWljay1hZGQtbW9iaWxlIG5vLWpzLWhpZGRlbiBleHRyYS1sYXJnZS11cC1oaWRlIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDA3MjQyOTIzMjQ2MSIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJoaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1MTYyMzMyNjYxMzgzNyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9kdWN0LXZhcmlhbnQtaWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMDcyNDI5MjMyNDYxLXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAwNzI0MjkyMzI0NjEtc3VibWl0IHRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMDcyNDI5MjMyNDYxIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcKICBjbGFzcz0iaWNvbiBzaC1pY29uLWNhcnQtZW1wdHkiCiAgYXJpYS1oaWRkZW49InRydWUiCiAgZm9jdXNhYmxlPSJmYWxzZSIKICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgdmlld0JveD0iMCAwIDE4IDIyIgogIGZpbGw9Im5vbmUiCj4KICA8cGF0aCBkPSJNMTYuNDE5IDQuNzEzdjE0LjM0OGEyLjYwOSAyLjYwOSAwIDAgMS0yLjYwOSAyLjYwN0gzLjM3NmEyLjYwOSAyLjYwOSAwIDAgMS0yLjYwOS0yLjYwN1Y0LjcxM1oiIHN0cm9rZT0iY3VycmVudENvbG9yIi8+CiAgPHBhdGggZD0iTTQuNjQ3IDcuMzIxVjQuNzEyYTMuOTQ2IDMuOTQ2IDAgMSAxIDcuODkxIDB2Mi42MDkiICBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgo8L3N2Zz4KICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNhdXJpdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgoKPGxpbmsgaHJlZj0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvdC8zL2Fzc2V0cy9jb21wb25lbnQtbG9hZGluZy1zcGlubmVyLmNzcz92PTExNjcyNDk1NTU2Nzk1NTc2NjQ4MTczMDEwNzE2MSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCjxkaXYgY2xhc3M9ImxvYWRpbmdfX3NwaW5uZXIgaGlkZGVuIj4KICA8c3ZnCiAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgIGZvY3VzYWJsZT0iZmFsc2UiCiAgICBjbGFzcz0ic3Bpbm5lciIKICAgIHZpZXdCb3g9IjAgMCA2NiA2NiIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICA+CiAgICA8Y2lyY2xlIGNsYXNzPSJwYXRoIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjYiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCI+PC9jaXJjbGU+CiAgPC9zdmc+CjwvZGl2Pgo8L2J1dHRvbj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0LWlkIiB2YWx1ZT0iMTAwNzI0MjkyMzI0NjEiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbi1pZCIgdmFsdWU9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiAvPjwvZm9ybT48L3Byb2R1Y3QtZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudC1ob3ZlciI+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDA3MjQyOTIzMjQ2MSIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDA3MjQyOTIzMjQ2MSIgZGF0YS12YXJpYW50LWlkPSI1MTYyMzMyNjYxMzgzNyIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMva2lzcy1tZS1tb3JlLWxpcC10YXR0b28tMDgtbWFkZW1vaSI+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSb3NzZXR0byBMaXF1aWRvIEVmZmV0dG8gVGF0dG9vIAogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgS0lTUyBNRSBNT1JFIGxpcCB0YXR0b28gLTA4IE1BREVNT0kKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+VW4gZmluaXNoIG1hdHRlIGVmZmV0dG8gdGF0dWFnZ2lvIGNoZSBnYXJhbnRpc2NlIHVuYSBsdW5nYSB0ZW51dGEuPC9zcGFuPjwvbGk+PGxpPjxzcGFuPlJlc2lzdGUgYWkgYmFjaSBlIG5vbiBsYXNjaWEgdHJhY2NlLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5MYSBzdWEgZm9ybXVsYSBsaXF1aWRhIMOoIGZhY2lsZSBkYSBhcHBsaWNhcmUuPC9zcGFuPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDA3MjQyOTIzMjQ2MSIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1MTYyMzMyNjYxMzgzNyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAwNzI0MjkyMzI0NjEtc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMDcyNDI5MjMyNDYxLXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDA3MjQyOTIzMjQ2MSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFnZ2l1bmdpIGFsIGNhcnJlbGxvIC0gPHNwYW4gY2xhc3M9ImJ1dHRvbl9fcHJpY2UiPuKCrDgsNTA8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNhdXJpdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9IjEwMDcyNDI5MjMyNDYxIiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1raXNzLW1lLW1vcmUtbGlwLXRhdHRvby0wMTEtY2FuZHktdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2InKTsKICAgIHByb2R1Y3RDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uIChjYXJkKSB7CiAgICAgIGlmIChjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykgIT09IG51bGwpIHsKICAgICAgICBsaXN0TmFtZSA9IGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKS5nZXRBdHRyaWJ1dGUoJ2d0bS10cmFja2luZy1jcm9zc3NlbGwnKTsKICAgICAgfQogICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgdmFyIHByb2R1Y3REYXRhID0gSlNPTi5wYXJzZShjYXJkLmdldEF0dHJpYnV0ZSgnZ3RtLWNhcmQtZGF0YScpKTsKICAgICAgICAvLyBOZWVkIHRvIHB1c2ggbGlzdE5hbWUKICAgICAgICBwcm9kdWN0RGF0YVsnaXRlbV9saXN0X25hbWUnXSA9IGxpc3ROYW1lOwogICAgICAgIC8vIFB1c2ggY2xpY2tlZCBwcm9kdWN0CiAgICAgICAgYXhJdGVtLnB1c2gocHJvZHVjdERhdGEpOwogICAgICAgIC8vIFNlbmQgImNsaWNrIiBldmVudAogICAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9jbGljaycsCiAgICAgICAgICBheEl0ZW06IGF4SXRlbQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwoKICAgIC8vIFB1c2ggYWxsIHByb2R1Y3QgaW4gZGF0YUxheWVyCiAgICBheFByb2R1Y3RMaXN0LnB1c2goewogICAgICBpdGVtX25hbWU6ICdLSVNTIE1FIE1PUkUgbGlwIHRhdHRvbyAtMDExIENBTkRZJywKICAgICAgaXRlbV9pZDogJ0lUQV9QUkRFMDAwMzQyODRXJywKICAgICAgcHJpY2U6ICfigqw4LDUwJywKICAgICAgaXRlbV9icmFuZDogJ0Zsb3JtYXInLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ0Zsb3JtYXInLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0kgcHJvZG90dGkgRmxvcm1hcicsCiAgICAgIGl0ZW1fY2F0ZWdvcnkzOiAnVHJ1Y2NvIGxhYmJyYScsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC1raXNzLW1lLW1vcmUtbGlwLXRhdHRvby0wMTEtY2FuZHktdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJLSVNTIE1FIE1PUkUgbGlwIHRhdHRvbyAtMDExIENBTkRZIiwKICAgICAgICAgICAgIml0ZW1faWQiOiAiSVRBX1BSREUwMDAzNDI4NFciLAogICAgICAgICAgICAicHJpY2UiOiAi4oKsOCw1MCIsCiAgICAgICAgICAgICJpdGVtX2JyYW5kIjogIkZsb3JtYXIiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiVHJ1Y2NvIGxhYmJyYSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MiI6ICJvdXItZmxvcm1hci1wcm9kdWN0cyIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MyI6IG51bGwsCiAgICAgICAgICAgICJpdGVtX3ZhcmlhbnQiOiAiRGVmYXVsdCBUaXRsZSIKICAgICAgICB9CiAgICAnIGRhdGEtcHJvZHVjdC1pZD0iMTAwNzI0MjkyNjUyMjkiPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmNzZXQ9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDA4MjJfMV83Nzk4NzIzMC1iYTcxLTRkOTItYjA0OS03NDI3NzYwZTIxYzcuanBnP3Y9MTc0NzExNzk0MyZ3aWR0aD0xNjUgMTY1dywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQwODIyXzFfNzc5ODcyMzAtYmE3MS00ZDkyLWIwNDktNzQyNzc2MGUyMWM3LmpwZz92PTE3NDcxMTc5NDMmd2lkdGg9MzYwIDM2MHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0MDgyMl8xXzc3OTg3MjMwLWJhNzEtNGQ5Mi1iMDQ5LTc0Mjc3NjBlMjFjNy5qcGc/dj0xNzQ3MTE3OTQzJndpZHRoPTUzMyA1MzN3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDA4MjJfMV83Nzk4NzIzMC1iYTcxLTRkOTItYjA0OS03NDI3NzYwZTIxYzcuanBnP3Y9MTc0NzExNzk0MyZ3aWR0aD03MjAgNzIwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF9DMDQwODIyXzFfNzc5ODcyMzAtYmE3MS00ZDkyLWIwNDktNzQyNzc2MGUyMWM3LmpwZz92PTE3NDcxMTc5NDMmd2lkdGg9OTQwIDk0MHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0MDgyMl8xXzc3OTg3MjMwLWJhNzEtNGQ5Mi1iMDQ5LTc0Mjc3NjBlMjFjNy5qcGc/dj0xNzQ3MTE3OTQzJndpZHRoPTEwNjYgMTA2NncsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfQzA0MDgyMl8xXzc3OTg3MjMwLWJhNzEtNGQ5Mi1iMDQ5LTc0Mjc3NjBlMjFjNy5qcGc/dj0xNzQ3MTE3OTQzIDEyMDB3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0X0MwNDA4MjJfMV83Nzk4NzIzMC1iYTcxLTRkOTItYjA0OS03NDI3NzYwZTIxYzcuanBnP3Y9MTc0NzExNzk0MyZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJWaXN1YWxlIGRlbCBwcm9kb3R0byBSb3NzZXR0byBMaXF1aWRvIEVmZmV0dG8gVGF0dG9vIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibW90aW9uLXJlZHVjZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjEyMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj48ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTAwNzI0MjkyNjUyMjkiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTAwNzI0MjkyNjUyMjkiIGRhdGEtdmFyaWFudC1pZD0iNTE2MjMzMjY2NDY2MDUiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL2tpc3MtbWUtbW9yZS1saXAtdGF0dG9vLTAxMS1jYW5keSI+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2JhZGdlIHRvcCBsZWZ0Ij48c3BhbiBpZD0iQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkyNjUyMjkiIGNsYXNzPSJiYWRnZSBiYWRnZS0tYm90dG9tLWxlZnQgY29sb3Itc2NoZW1lLWQ2YTVjMDM2LTZjNDUtNDdjZi1hZGQ2LWJhZGZlZmI0NWZkOSI+LTM5JQo8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPjxkaXYgY2xhc3M9ImNhcmRfX3R5cGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvcm1hcgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDA3MjQyOTI2NTIyOSIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMva2lzcy1tZS1tb3JlLWxpcC10YXR0b28tMDExLWNhbmR5IiBpZD0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkyNjUyMjkiIGNsYXNzPSJmdWxsLXVuc3R5bGVkLWxpbmsgZnVsbC11bnN0eWxlZC1saW5rLXByb2R1Y3QiIGFyaWEtbGFiZWxsZWRieT0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkyNjUyMjkgQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkyNjUyMjkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUm9zc2V0dG8gTGlxdWlkbyBFZmZldHRvIFRhdHRvbyAgCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L3A+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBLSVNTIE1FIE1PUkUgbGlwIHRhdHRvbyAtMDExIENBTkRZCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbmZvcm1hdGlvbiI+PHNwYW4gY2xhc3M9ImNhcHRpb24tbGFyZ2UgbGlnaHQiPjwvc3Bhbj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uLWZvcm0tcmF0aW5nLXByaWNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhdGluZy1wcmljZSI+CjxkaXYKICBjbGFzcz0iCiAgICBwcmljZSAgcHJpY2UtLW9uLXNhbGUiCj4KICA8ZGl2IGNsYXNzPSJwcmljZV9fY29udGFpbmVyIj48ZGl2IGNsYXNzPSJwcmljZV9fcmVndWxhciI+PHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICDigqw4LDUwCiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icHJpY2VfX3NhbGUiPgogICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIHNjb250YXRvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1zYWxlIHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIOKCrDgsNTAKICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIOKCrDEzLDkwCiAgICAgICAgICAgIAogICAgICAgICAgPC9zPgogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxzbWFsbCBjbGFzcz0idW5pdC1wcmljZSBjYXB0aW9uIGhpZGRlbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZXp6byB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS11bml0IHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+Lzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4mbmJzcDtwZXImbmJzcDs8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMDcyNDI5MjY1MjI5IiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjUxNjIzMzI2NjQ2NjA1IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAwNzI0MjkyNjUyMjktc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDA3MjQyOTI2NTIyOS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAwNzI0MjkyNjUyMjkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZwogIGNsYXNzPSJpY29uIHNoLWljb24tY2FydC1lbXB0eSIKICBhcmlhLWhpZGRlbj0idHJ1ZSIKICBmb2N1c2FibGU9ImZhbHNlIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB2aWV3Qm94PSIwIDAgMTggMjIiCiAgZmlsbD0ibm9uZSIKPgogIDxwYXRoIGQ9Ik0xNi40MTkgNC43MTN2MTQuMzQ4YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5IDIuNjA3SDMuMzc2YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5LTIuNjA3VjQuNzEzWiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KICA8cGF0aCBkPSJNNC42NDcgNy4zMjFWNC43MTJhMy45NDYgMy45NDYgMCAxIDEgNy44OTEgMHYyLjYwOSIgIHN0cm9rZT0iY3VycmVudENvbG9yIi8+Cjwvc3ZnPgogIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFc2F1cml0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSIxMDA3MjQyOTI2NTIyOSIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwMDcyNDI5MjY1MjI5IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwMDcyNDI5MjY1MjI5IiBkYXRhLXZhcmlhbnQtaWQ9IjUxNjIzMzI2NjQ2NjA1IiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9raXNzLW1lLW1vcmUtbGlwLXRhdHRvby0wMTEtY2FuZHkiPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUm9zc2V0dG8gTGlxdWlkbyBFZmZldHRvIFRhdHRvbyAKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIEtJU1MgTUUgTU9SRSBsaXAgdGF0dG9vIC0wMTEgQ0FORFkKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+VW4gZmluaXNoIG1hdHRlIGVmZmV0dG8gdGF0dWFnZ2lvIGNoZSBnYXJhbnRpc2NlIHVuYSBsdW5nYSB0ZW51dGEuPC9zcGFuPjwvbGk+PGxpPjxzcGFuPlJlc2lzdGUgYWkgYmFjaSBlIG5vbiBsYXNjaWEgdHJhY2NlLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5MYSBzdWEgZm9ybXVsYSBsaXF1aWRhIMOoIGZhY2lsZSBkYSBhcHBsaWNhcmUuPC9zcGFuPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgbm8tanMtaGlkZGVuIj48cHJvZHVjdC1mb3JtIGRhdGEtc2VjdGlvbi1pZD0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY2FydC9hZGQiIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDA3MjQyOTI2NTIyOSIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1MTYyMzMyNjY0NjYwNSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAwNzI0MjkyNjUyMjktc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMDcyNDI5MjY1MjI5LXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDA3MjQyOTI2NTIyOSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFnZ2l1bmdpIGFsIGNhcnJlbGxvIC0gPHNwYW4gY2xhc3M9ImJ1dHRvbl9fcHJpY2UiPuKCrDgsNTA8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNhdXJpdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9IjEwMDcyNDI5MjY1MjI5IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1yb3NlLXBvd2VyLWVkcC01MC1tbC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYicpOwogICAgcHJvZHVjdENhcmRzLmZvckVhY2goZnVuY3Rpb24gKGNhcmQpIHsKICAgICAgaWYgKGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKSAhPT0gbnVsbCkgewogICAgICAgIGxpc3ROYW1lID0gY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpLmdldEF0dHJpYnV0ZSgnZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpOwogICAgICB9CiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICB2YXIgcHJvZHVjdERhdGEgPSBKU09OLnBhcnNlKGNhcmQuZ2V0QXR0cmlidXRlKCdndG0tY2FyZC1kYXRhJykpOwogICAgICAgIC8vIE5lZWQgdG8gcHVzaCBsaXN0TmFtZQogICAgICAgIHByb2R1Y3REYXRhWydpdGVtX2xpc3RfbmFtZSddID0gbGlzdE5hbWU7CiAgICAgICAgLy8gUHVzaCBjbGlja2VkIHByb2R1Y3QKICAgICAgICBheEl0ZW0ucHVzaChwcm9kdWN0RGF0YSk7CiAgICAgICAgLy8gU2VuZCAiY2xpY2siIGV2ZW50CiAgICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2NsaWNrJywKICAgICAgICAgIGF4SXRlbTogYXhJdGVtCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gUHVzaCBhbGwgcHJvZHVjdCBpbiBkYXRhTGF5ZXIKICAgIGF4UHJvZHVjdExpc3QucHVzaCh7CiAgICAgIGl0ZW1fbmFtZTogJ1JPU0UgUE9XRVIgRURQIDUwIE1MJywKICAgICAgaXRlbV9pZDogJ0lUQV9QUkRFMDAwMzExODFXJywKICAgICAgcHJpY2U6ICfigqwxOSw1MCcsCiAgICAgIGl0ZW1fYnJhbmQ6ICdLaW90aXMnLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ0tpb3RpcycsCiAgICAgIGl0ZW1fY2F0ZWdvcnkyOiAnQmVsbGV6emEgZSBCZW5lc3NlcmUnLAogICAgICBpdGVtX2NhdGVnb3J5MzogJ1Byb2Z1bWknLAogICAgICBpdGVtX3ZhcmlhbnQ6ICdEZWZhdWx0IFRpdGxlJywKICAgICAgaXRlbV9saXN0X25hbWU6IGxpc3ROYW1lCiAgICB9KTsKCiAgICAvLyBTZW5kICJmaW5pc2hlZCIgZXZlbnQKICAgIGlmIChheFByb2R1Y3RMaXN0Lmxlbmd0aCA9PT0gd2luZG93LnRoZW1lLml0ZW1zX2NvdW50KSB7CiAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfbGlzdF9jb21wbGV0ZScsCiAgICAgICAgYXhQcm9kdWN0TGlzdDogYXhQcm9kdWN0TGlzdCwKICAgICAgfSk7CiAgICB9CiAgfSk7CgogIGZ1bmN0aW9uIGNsaWNrUHJvZHVjdChwcm9kdWN0RGF0YSkge30KPC9zY3JpcHQ+CgoKPHNjcmlwdCBkZWZlcj4KICBmdW5jdGlvbiBzd3ltQ2FsbGJhY2tGbihzd2F0KSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzd3ltOmNvbGxlY3Rpb25zLWxvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgc3dhdC5pbml0aWFsaXplQWN0aW9uQnV0dG9ucygnPDxDb2xsZWN0aW9ucyBHcmlkIFBBUkVOVCBTZWxlY3RvciA+PicpOwogICAgfSk7CiAgfQogIGlmICghd2luZG93LlN3eW1DYWxsYmFja3MpIHsKICAgIHdpbmRvdy5Td3ltQ2FsbGJhY2tzID0gW107CiAgfQogIHdpbmRvdy5Td3ltQ2FsbGJhY2tzLnB1c2goc3d5bUNhbGxiYWNrRm4pOwo8L3NjcmlwdD4KCgogICAgCgogICAgPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIHByb2R1Y3QtbWluaWF0dXJlIHByb2R1Y3QtY2FyZC13cmFwcGVyIHVuZGVybGluZS1saW5rcy1ob3ZlciBndG0tY2FyZC1wcm9kdWN0IGd0bS1jYXJkLXByb2R1Y3Qtcm9zZS1wb3dlci1lZHAtNTAtbWwtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJST1NFIFBPV0VSIEVEUCA1MCBNTCIsCiAgICAgICAgICAgICJpdGVtX2lkIjogIklUQV9QUkRFMDAwMzExODFXIiwKICAgICAgICAgICAgInByaWNlIjogIuKCrDE5LDUwIiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiS2lvdGlzIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkxIjogIlByb2Z1bWkiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTIiOiAiYmVhdXR5LWFuZC1wZXJmdW1lcyIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MyI6IG51bGwsCiAgICAgICAgICAgICJpdGVtX3ZhcmlhbnQiOiAiRGVmYXVsdCBUaXRsZSIKICAgICAgICB9CiAgICAnIGRhdGEtcHJvZHVjdC1pZD0iMTAxOTQ2MDUzMTAyODUiPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmNzZXQ9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzMwMDAxXzFfOTBkN2M4ZWEtMGU4YS00MzlmLWExYjMtOGYxOGRkYzgxZjliLmpwZz92PTE3NTQzOTczNzEmd2lkdGg9MTY1IDE2NXcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfMzAwMDFfMV85MGQ3YzhlYS0wZThhLTQzOWYtYTFiMy04ZjE4ZGRjODFmOWIuanBnP3Y9MTc1NDM5NzM3MSZ3aWR0aD0zNjAgMzYwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF8zMDAwMV8xXzkwZDdjOGVhLTBlOGEtNDM5Zi1hMWIzLThmMThkZGM4MWY5Yi5qcGc/dj0xNzU0Mzk3MzcxJndpZHRoPTUzMyA1MzN3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzMwMDAxXzFfOTBkN2M4ZWEtMGU4YS00MzlmLWExYjMtOGYxOGRkYzgxZjliLmpwZz92PTE3NTQzOTczNzEmd2lkdGg9NzIwIDcyMHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfMzAwMDFfMV85MGQ3YzhlYS0wZThhLTQzOWYtYTFiMy04ZjE4ZGRjODFmOWIuanBnP3Y9MTc1NDM5NzM3MSZ3aWR0aD05NDAgOTQwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF8zMDAwMV8xXzkwZDdjOGVhLTBlOGEtNDM5Zi1hMWIzLThmMThkZGM4MWY5Yi5qcGc/dj0xNzU0Mzk3MzcxIDk5OHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfMzAwMDFfMV85MGQ3YzhlYS0wZThhLTQzOWYtYTFiMy04ZjE4ZGRjODFmOWIuanBnP3Y9MTc1NDM5NzM3MSZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJST1NFIFBPV0VSIEVEUCA1MCBNTCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1vdGlvbi1yZWR1Y2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSI5OTgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iOTk4IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDE5NDYwNTMxMDI4NSIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDE5NDYwNTMxMDI4NSIgZGF0YS12YXJpYW50LWlkPSI1MjE2Mzk0NjcwOTMyNSIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvcm9zZS1wb3dlci1lZHAtNTAtbWwiPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19iYWRnZSB0b3AgbGVmdCI+PHNwYW4gaWQ9IkJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMTk0NjA1MzEwMjg1IiBjbGFzcz0iYmFkZ2UgYmFkZ2UtLWJvdHRvbS1sZWZ0IGNvbG9yLXNjaGVtZS1kNmE1YzAzNi02YzQ1LTQ3Y2YtYWRkNi1iYWRmZWZiNDVmZDkiPi01MCUKPC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtpb3RpcwogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDE5NDYwNTMxMDI4NSIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvcm9zZS1wb3dlci1lZHAtNTAtbWwiIGlkPSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDE5NDYwNTMxMDI4NSIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDE5NDYwNTMxMDI4NSBCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDE5NDYwNTMxMDI4NSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSb3NlIFBvd2VyIEVhdSBEZSBQYXJmdW0gCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L3A+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBST1NFIFBPV0VSIEVEUCA1MCBNTAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJjYXB0aW9uLWxhcmdlIGxpZ2h0Ij48L3NwYW4+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbi1mb3JtLXJhdGluZy1wcmljZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYXRpbmctcHJpY2UiPgo8ZGl2CiAgY2xhc3M9IgogICAgcHJpY2UgIHByaWNlLS1vbi1zYWxlIgo+CiAgPGRpdiBjbGFzcz0icHJpY2VfX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icHJpY2VfX3JlZ3VsYXIiPjxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXJlZ3VsYXIiPgogICAgICAgICAg4oKsMTksNTAKICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gc2NvbnRhdG88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAg4oKsMTksNTAKICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4gdmlzdWFsbHktaGlkZGVuLS1pbmxpbmUiPlByZXp6byBkaSBsaXN0aW5vPC9zcGFuPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPHMgY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS0tcmVndWxhciI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIOKCrDM5LDAwCiAgICAgICAgICAgIAogICAgICAgICAgPC9zPgogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAgIDxzbWFsbCBjbGFzcz0idW5pdC1wcmljZSBjYXB0aW9uIGhpZGRlbiI+CiAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPlByZXp6byB1bml0YXJpbzwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWl0ZW0gcHJpY2UtaXRlbS11bml0IHByaWNlLWl0ZW0tLWxhc3QiPgogICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+Lzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4mbmJzcDtwZXImbmJzcDs8L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMTk0NjA1MzEwMjg1IiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjUyMTYzOTQ2NzA5MzI1IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAxOTQ2MDUzMTAyODUtc3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InF1aWNrLWFkZF9fc3VibWl0IGJ1dHRvbiBidXR0b24tLWZ1bGwtd2lkdGggYnV0dG9uLS1wcmltYXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDE5NDYwNTMxMDI4NS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAxOTQ2MDUzMTAyODUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZwogIGNsYXNzPSJpY29uIHNoLWljb24tY2FydC1lbXB0eSIKICBhcmlhLWhpZGRlbj0idHJ1ZSIKICBmb2N1c2FibGU9ImZhbHNlIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB2aWV3Qm94PSIwIDAgMTggMjIiCiAgZmlsbD0ibm9uZSIKPgogIDxwYXRoIGQ9Ik0xNi40MTkgNC43MTN2MTQuMzQ4YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5IDIuNjA3SDMuMzc2YTIuNjA5IDIuNjA5IDAgMCAxLTIuNjA5LTIuNjA3VjQuNzEzWiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KICA8cGF0aCBkPSJNNC42NDcgNy4zMjFWNC43MTJhMy45NDYgMy45NDYgMCAxIDEgNy44OTEgMHYyLjYwOSIgIHN0cm9rZT0iY3VycmVudENvbG9yIi8+Cjwvc3ZnPgogIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFc2F1cml0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSIxMDE5NDYwNTMxMDI4NSIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50LWhvdmVyIj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9IkFkZCB0byBXaXNobGlzdCIgZGF0YS13aXRoLWVwaT0idHJ1ZSIgY2xhc3M9InN3eW0tYnV0dG9uIHN3eW0tYWRkLXRvLXdpc2hsaXN0LXZpZXctcHJvZHVjdCBwcm9kdWN0XzEwMTk0NjA1MzEwMjg1IiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9IjEwMTk0NjA1MzEwMjg1IiBkYXRhLXZhcmlhbnQtaWQ9IjUyMTYzOTQ2NzA5MzI1IiBkYXRhLXByb2R1Y3QtdXJsPSJodHRwczovL3d3dy5zdGFuaG9tZS5pdC9wcm9kdWN0cy9yb3NlLXBvd2VyLWVkcC01MC1tbCI+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSb3NlIFBvd2VyIEVhdSBEZSBQYXJmdW0KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdmFyaWFudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIFJPU0UgUE9XRVIgRURQIDUwIE1MCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHVsIGNsYXNzPSJsaXN0LXVuc3R5bGVkIGNhcmRfX3ZhcmlhbnQta2V5X3BvaW50cyI+PGxpPjxzcGFuPlVuIHByb2Z1bW8gY2hlIG1lc2NvbGEgaWwgcG90ZXJlIGUgbGEgc2Vuc3VhbGl0w6AgZGVsbGEgUm9zYS48L3NwYW4+PC9saT48bGk+PHNwYW4+VW4gdW5pdmVyc28gZmVtbWluaWxlIGUgaXNwaXJhbnRlLjwvc3Bhbj48L2xpPjxsaT48c3Bhbj5WZXRybyBlIGNvbmZlemlvbmUgMTAwJSByaWNpY2xhYmlsaS48L3NwYW4+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InF1aWNrLWFkZCBuby1qcy1oaWRkZW4iPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMTk0NjA1MzEwMjg1IiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGNsYXNzPSJmb3JtIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBkYXRhLXR5cGU9ImFkZC10by1jYXJ0LWZvcm0iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdHlwZSIgdmFsdWU9InByb2R1Y3QiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idXRmOCIgdmFsdWU9IuKckyIgLz48aW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJoaWRkZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IjUyMTYzOTQ2NzA5MzI1IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9kdWN0LXZhcmlhbnQtaWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDE5NDYwNTMxMDI4NS1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAxOTQ2MDUzMTAyODUtc3VibWl0IHRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTEwMTk0NjA1MzEwMjg1IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc29sZC1vdXQtbWVzc2FnZT0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+QWdnaXVuZ2kgYWwgY2FycmVsbG8gLSA8c3BhbiBjbGFzcz0iYnV0dG9uX19wcmljZSI+4oKsMTksNTA8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNhdXJpdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9IjEwMTk0NjA1MzEwMjg1IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1zaGFtcG9vLXNvbGlkby02MC1nci10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYicpOwogICAgcHJvZHVjdENhcmRzLmZvckVhY2goZnVuY3Rpb24gKGNhcmQpIHsKICAgICAgaWYgKGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKSAhPT0gbnVsbCkgewogICAgICAgIGxpc3ROYW1lID0gY2FyZC5jbG9zZXN0KCcuZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpLmdldEF0dHJpYnV0ZSgnZ3RtLXRyYWNraW5nLWNyb3Nzc2VsbCcpOwogICAgICB9CiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICB2YXIgcHJvZHVjdERhdGEgPSBKU09OLnBhcnNlKGNhcmQuZ2V0QXR0cmlidXRlKCdndG0tY2FyZC1kYXRhJykpOwogICAgICAgIC8vIE5lZWQgdG8gcHVzaCBsaXN0TmFtZQogICAgICAgIHByb2R1Y3REYXRhWydpdGVtX2xpc3RfbmFtZSddID0gbGlzdE5hbWU7CiAgICAgICAgLy8gUHVzaCBjbGlja2VkIHByb2R1Y3QKICAgICAgICBheEl0ZW0ucHVzaChwcm9kdWN0RGF0YSk7CiAgICAgICAgLy8gU2VuZCAiY2xpY2siIGV2ZW50CiAgICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgICAgZXZlbnQ6ICdheF9wcm9kdWN0X2NsaWNrJywKICAgICAgICAgIGF4SXRlbTogYXhJdGVtCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gUHVzaCBhbGwgcHJvZHVjdCBpbiBkYXRhTGF5ZXIKICAgIGF4UHJvZHVjdExpc3QucHVzaCh7CiAgICAgIGl0ZW1fbmFtZTogJ1NIQU1QT08gU09MSURPICA2MCBHUicsCiAgICAgIGl0ZW1faWQ6ICdJVEFfUFJERTAwMDMzOTI3VycsCiAgICAgIHByaWNlOiAn4oKsOCwwMCcsCiAgICAgIGl0ZW1fYnJhbmQ6ICdTdGFuaG9tZScsCiAgICAgIGl0ZW1fY2F0ZWdvcnkxOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MjogJ0N1cmEgZGVpIGNhcGVsbGknLAogICAgICBpdGVtX2NhdGVnb3J5MzogJ0N1cmEgZGVpIGNhcGVsbGknLAogICAgICBpdGVtX3ZhcmlhbnQ6ICdEZWZhdWx0IFRpdGxlJywKICAgICAgaXRlbV9saXN0X25hbWU6IGxpc3ROYW1lCiAgICB9KTsKCiAgICAvLyBTZW5kICJmaW5pc2hlZCIgZXZlbnQKICAgIGlmIChheFByb2R1Y3RMaXN0Lmxlbmd0aCA9PT0gd2luZG93LnRoZW1lLml0ZW1zX2NvdW50KSB7CiAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICBldmVudDogJ2F4X3Byb2R1Y3RfbGlzdF9jb21wbGV0ZScsCiAgICAgICAgYXhQcm9kdWN0TGlzdDogYXhQcm9kdWN0TGlzdCwKICAgICAgfSk7CiAgICB9CiAgfSk7CgogIGZ1bmN0aW9uIGNsaWNrUHJvZHVjdChwcm9kdWN0RGF0YSkge30KPC9zY3JpcHQ+CgoKPHNjcmlwdCBkZWZlcj4KICBmdW5jdGlvbiBzd3ltQ2FsbGJhY2tGbihzd2F0KSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzd3ltOmNvbGxlY3Rpb25zLWxvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgICAgc3dhdC5pbml0aWFsaXplQWN0aW9uQnV0dG9ucygnPDxDb2xsZWN0aW9ucyBHcmlkIFBBUkVOVCBTZWxlY3RvciA+PicpOwogICAgfSk7CiAgfQogIGlmICghd2luZG93LlN3eW1DYWxsYmFja3MpIHsKICAgIHdpbmRvdy5Td3ltQ2FsbGJhY2tzID0gW107CiAgfQogIHdpbmRvdy5Td3ltQ2FsbGJhY2tzLnB1c2goc3d5bUNhbGxiYWNrRm4pOwo8L3NjcmlwdD4KCgogICAgCgogICAgPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIHByb2R1Y3QtbWluaWF0dXJlIHByb2R1Y3QtY2FyZC13cmFwcGVyIHVuZGVybGluZS1saW5rcy1ob3ZlciBndG0tY2FyZC1wcm9kdWN0IGd0bS1jYXJkLXByb2R1Y3Qtc2hhbXBvby1zb2xpZG8tNjAtZ3ItdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJTSEFNUE9PIFNPTElETyAgNjAgR1IiLAogICAgICAgICAgICAiaXRlbV9pZCI6ICJJVEFfUFJERTAwMDMzOTI3VyIsCiAgICAgICAgICAgICJwcmljZSI6ICLigqw4LDAwIiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiU3RhbmhvbWUiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiQ3VyYSBkZWkgY2FwZWxsaSIsCiAgICAgICAgICAgICJpdGVtX2NhdGVnb3J5MiI6ICJoYWlyLXByb2R1Y3QiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJyBkYXRhLXByb2R1Y3QtaWQ9Ijk5MzY2ODY2NDU1ODEiPgogICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSIKICAgICAgICBjYXJkIGNhcmQtLXN0YW5kYXJkCiAgICAgICAgIGNhcmQtLW1lZGlhCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICIKICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJjYXJkX19pbm5lciBjb2xvci1iYWNrZ3JvdW5kLTEgZ3JhZGllbnQgcmF0aW8iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9Ii0tcmF0aW8tcGVyY2VudDogMTAwJTsiCiAgICAgICAgICAgID48ZGl2IGNsYXNzPSJjYXJkX19tZWRpYSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLS10cmFuc3BhcmVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmNzZXQ9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzgzMjg2XzFfNzZmOGJlZjctZTdlOC00N2NiLWFiMzUtMTkzMzhkODA0M2E4LmpwZz92PTE3MzgwNTg2MTcmd2lkdGg9MTY1IDE2NXcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfODMyODZfMV83NmY4YmVmNy1lN2U4LTQ3Y2ItYWIzNS0xOTMzOGQ4MDQzYTguanBnP3Y9MTczODA1ODYxNyZ3aWR0aD0zNjAgMzYwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF84MzI4Nl8xXzc2ZjhiZWY3LWU3ZTgtNDdjYi1hYjM1LTE5MzM4ZDgwNDNhOC5qcGc/dj0xNzM4MDU4NjE3JndpZHRoPTUzMyA1MzN3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0XzgzMjg2XzFfNzZmOGJlZjctZTdlOC00N2NiLWFiMzUtMTkzMzhkODA0M2E4LmpwZz92PTE3MzgwNTg2MTcmd2lkdGg9NzIwIDcyMHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfODMyODZfMV83NmY4YmVmNy1lN2U4LTQ3Y2ItYWIzNS0xOTMzOGQ4MDQzYTguanBnP3Y9MTczODA1ODYxNyZ3aWR0aD05NDAgOTQwdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF84MzI4Nl8xXzc2ZjhiZWY3LWU3ZTgtNDdjYi1hYjM1LTE5MzM4ZDgwNDNhOC5qcGc/dj0xNzM4MDU4NjE3IDk5OHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfODMyODZfMV83NmY4YmVmNy1lN2U4LTQ3Y2ItYWIzNS0xOTMzOGQ4MDQzYTguanBnP3Y9MTczODA1ODYxNyZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJWaXN1YWxlIGRlbCBwcm9kb3R0byBTaGFtcG9vIFNvbGlkbyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1vdGlvbi1yZWR1Y2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSI5OTgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD0iOTk4IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF85OTM2Njg2NjQ1NTgxIiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9Ijk5MzY2ODY2NDU1ODEiIGRhdGEtdmFyaWFudC1pZD0iNTA5MjgwMTcwMTUxMTciIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL3NoYW1wb28tc29saWRvLTYwLWdyIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjxzcGFuIGlkPSJCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2Njg2NjQ1NTgxIiBjbGFzcz0iYmFkZ2UgYmFkZ2UtLWJvdHRvbS1sZWZ0IGNvbG9yLXNjaGVtZS1kNmE1YzAzNi02YzQ1LTQ3Y2YtYWRkNi1iYWRmZWZiNDVmZDkiPi01MCUKPC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj48ZGl2IGNsYXNzPSJjYXJkX190eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YW5ob21lCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjxwIGNsYXNzPSJjYXJkX19oZWFkaW5nIGg1IiAgaWQ9InRpdGxlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2ODY2NDU1ODEiID4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3Byb2R1Y3RzL3NoYW1wb28tc29saWRvLTYwLWdyIiBpZD0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY4NjY0NTU4MSIgY2xhc3M9ImZ1bGwtdW5zdHlsZWQtbGluayBmdWxsLXVuc3R5bGVkLWxpbmstcHJvZHVjdCIgYXJpYS1sYWJlbGxlZGJ5PSJDYXJkTGluay10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi05OTM2Njg2NjQ1NTgxIEJhZGdlLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiLTk5MzY2ODY2NDU1ODEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hhbXBvbyBTb2xpZG8gCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L3A+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBTSEFNUE9PIFNPTElETyAgNjAgR1IKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm9ybWF0aW9uIj48c3BhbiBjbGFzcz0iY2FwdGlvbi1sYXJnZSBsaWdodCI+PC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24tZm9ybS1yYXRpbmctcHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0aW5nLXByaWNlIj4KPGRpdgogIGNsYXNzPSIKICAgIHByaWNlICBwcmljZS0tb24tc2FsZSIKPgogIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPjxkaXYgY2xhc3M9InByaWNlX19yZWd1bGFyIj48c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgIOKCrDgsMDAKICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gc2NvbnRhdG88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAg4oKsOCwwMAogICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgICA8cyBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgICAgCiAgICAgICAgICAgICAg4oKsMTYsMDAKICAgICAgICAgICAgCiAgICAgICAgICA8L3M+CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPHNtYWxsIGNsYXNzPSJ1bml0LXByaWNlIGNhcHRpb24iPgogICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj5QcmV6em8gdW5pdGFyaW88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tdW5pdCBwcmljZS1pdGVtLS1sYXN0Ij4KICAgICAgICA8c3Bhbj7igqwwLDEzPC9zcGFuPgogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPiZuYnNwO3BlciZuYnNwOzwvc3Bhbj4KICAgICAgICA8c3Bhbj5nCiAgICAgICAgPC9zcGFuPgogICAgICA8L3NwYW4+CiAgICA8L3NtYWxsPgogIDwvZGl2PjwvZGl2PgoKPC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIHF1aWNrLWFkZC1tb2JpbGUgbm8tanMtaGlkZGVuIGV4dHJhLWxhcmdlLXVwLWhpZGUiPjxwcm9kdWN0LWZvcm0gZGF0YS1zZWN0aW9uLWlkPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jYXJ0L2FkZCIgaWQ9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjk5MzY2ODY2NDU1ODEiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTA5MjgwMTcwMTUxMTciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2I5OTM2Njg2NjQ1NTgxLXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9ImRpYWxvZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY4NjY0NTU4MS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY4NjY0NTU4MSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnCiAgY2xhc3M9Imljb24gc2gtaWNvbi1jYXJ0LWVtcHR5IgogIGFyaWEtaGlkZGVuPSJ0cnVlIgogIGZvY3VzYWJsZT0iZmFsc2UiCiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHZpZXdCb3g9IjAgMCAxOCAyMiIKICBmaWxsPSJub25lIgo+CiAgPHBhdGggZD0iTTE2LjQxOSA0LjcxM3YxNC4zNDhhMi42MDkgMi42MDkgMCAwIDEtMi42MDkgMi42MDdIMy4zNzZhMi42MDkgMi42MDkgMCAwIDEtMi42MDktMi42MDdWNC43MTNaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgogIDxwYXRoIGQ9Ik00LjY0NyA3LjMyMVY0LjcxMmEzLjk0NiAzLjk0NiAwIDEgMSA3Ljg5MSAwdjIuNjA5IiAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+CiAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9Ijk5MzY2ODY2NDU1ODEiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbi1pZCIgdmFsdWU9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiAvPjwvZm9ybT48L3Byb2R1Y3QtZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudC1ob3ZlciI+CiAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uIHdpdGggZGVmYXVsdCBmaXJzdCB2YXJpYW50IC0tPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF85OTM2Njg2NjQ1NTgxIiBkYXRhLXN3YWN0aW9uPSJhZGRUb1dpc2hsaXN0IiBkYXRhLXByb2R1Y3QtaWQ9Ijk5MzY2ODY2NDU1ODEiIGRhdGEtdmFyaWFudC1pZD0iNTA5MjgwMTcwMTUxMTciIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL3NoYW1wb28tc29saWRvLTYwLWdyIj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbi0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2hlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoYW1wb28gU29saWRvCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBTSEFNUE9PIFNPTElETyAgNjAgR1IKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48dWwgY2xhc3M9Imxpc3QtdW5zdHlsZWQgY2FyZF9fdmFyaWFudC1rZXlfcG9pbnRzIj48bGk+PHNwYW4+QWRhdHRvIGEgdHV0dGkgaSB0aXBpIGRpIGNhcGVsbGkgZGFsbGEgcmFkaWNlIGFsbGUgcHVudGUuPC9zcGFuPjwvbGk+PGxpPjxzcGFuPkFycmljY2hpdG8gY29uIGVzdHJhdHRpIGRpIGF2ZW5hIGUgc2VuemEgc29sZmF0aS48L3NwYW4+PC9saT48bGk+PHNwYW4+Q29udGllbmUgcGnDuSBkZWwgOTElIGQnaW5ncmVkaWVudGkgZGkgb3JpZ2luZSBuYXR1cmFsZTwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY4NjY0NTU4MSIgYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBjbGFzcz0iZm9ybSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbm92YWxpZGF0ZT0ibm92YWxpZGF0ZSIgZGF0YS10eXBlPSJhZGQtdG8tY2FydC1mb3JtIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX3R5cGUiIHZhbHVlPSJwcm9kdWN0IiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InV0ZjgiIHZhbHVlPSLinJMiIC8+PGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImlkIiBkYXRhLXByb2R1Y3RpZD0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSI1MDkyODAxNzAxNTExNyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY4NjY0NTU4MS1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3VibWl0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImFkZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiOTkzNjY4NjY0NTU4MS1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItOTkzNjY4NjY0NTU4MSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9InBvbGl0ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNvbGQtb3V0LW1lc3NhZ2U9InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFnZ2l1bmdpIGFsIGNhcnJlbGxvIC0gPHNwYW4gY2xhc3M9ImJ1dHRvbl9fcHJpY2UiPuKCrDgsMDA8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvbGQtb3V0LW1lc3NhZ2UgaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXNhdXJpdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9Ijk5MzY2ODY2NDU1ODEiIC8+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbi1pZCIgdmFsdWU9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIiAvPjwvZm9ybT48L3Byb2R1Y3QtZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4=
Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1yYXRpbmcuY3NzP3Y9MTU3NzcxODU0NTkyMTM3MTM3ODQxNzMwMTA3MTU5IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC12b2x1bWUtcHJpY2luZy5jc3M/dj01NzY1MTQ2MDk1NDMwNjM5NTMzMTczMDEwNzE1NSIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KCgoKCjxzY3JpcHQ+CiAgLy8gQ3JlYXRlIFByb2R1Y3QgTGlzdCBhcnJheQogIGlmICghYXhQcm9kdWN0TGlzdCkgewogICAgdmFyIGF4UHJvZHVjdExpc3QgPSBbXTsKICB9CgogIC8vIENyZWF0ZSBQcm9kdWN0IGNsaWNrIGFycmF5CiAgaWYgKCFheEl0ZW0pIHsKICAgIHZhciBheEl0ZW0gPSBbXTsKICB9CgogIGlmICghbGlzdE5hbWUpIHsKICAgIHZhciBsaXN0TmFtZSA9ICcnOwogIH0gZWxzZSB7CiAgICBsaXN0TmFtZSA9ICcnOwogIH0KCiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHsKICAgIC8vIE9uY2xpY2sgZXZlbnQKICAgIHZhciBwcm9kdWN0Q2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RtLWNhcmQtcHJvZHVjdC1kYWlseS13YXNoLXJvc2EtZS1sYXZhbmRhLTE1MDAtbWwtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2InKTsKICAgIHByb2R1Y3RDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uIChjYXJkKSB7CiAgICAgIGlmIChjYXJkLmNsb3Nlc3QoJy5ndG0tdHJhY2tpbmctY3Jvc3NzZWxsJykgIT09IG51bGwpIHsKICAgICAgICBsaXN0TmFtZSA9IGNhcmQuY2xvc2VzdCgnLmd0bS10cmFja2luZy1jcm9zc3NlbGwnKS5nZXRBdHRyaWJ1dGUoJ2d0bS10cmFja2luZy1jcm9zc3NlbGwnKTsKICAgICAgfQogICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgdmFyIHByb2R1Y3REYXRhID0gSlNPTi5wYXJzZShjYXJkLmdldEF0dHJpYnV0ZSgnZ3RtLWNhcmQtZGF0YScpKTsKICAgICAgICAvLyBOZWVkIHRvIHB1c2ggbGlzdE5hbWUKICAgICAgICBwcm9kdWN0RGF0YVsnaXRlbV9saXN0X25hbWUnXSA9IGxpc3ROYW1lOwogICAgICAgIC8vIFB1c2ggY2xpY2tlZCBwcm9kdWN0CiAgICAgICAgYXhJdGVtLnB1c2gocHJvZHVjdERhdGEpOwogICAgICAgIC8vIFNlbmQgImNsaWNrIiBldmVudAogICAgICAgIGRhdGFMYXllci5wdXNoKHsKICAgICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9jbGljaycsCiAgICAgICAgICBheEl0ZW06IGF4SXRlbQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwoKICAgIC8vIFB1c2ggYWxsIHByb2R1Y3QgaW4gZGF0YUxheWVyCiAgICBheFByb2R1Y3RMaXN0LnB1c2goewogICAgICBpdGVtX25hbWU6ICdEQUlMWSBXQVNIIFJPU0EgRSBMQVZBTkRBIDE1MDAgTUwnLAogICAgICBpdGVtX2lkOiAnSVRBX1BSREUwMDAzNjg2NFcnLAogICAgICBwcmljZTogJ+KCrDYsNTAnLAogICAgICBpdGVtX2JyYW5kOiAnU3RhbmhvbWUnLAogICAgICBpdGVtX2NhdGVnb3J5MTogJ1N0YW5ob21lJywKICAgICAgaXRlbV9jYXRlZ29yeTI6ICdDdXJhIGRlbCBidWNhdG8nLAogICAgICBpdGVtX2NhdGVnb3J5MzogJ0N1cmEgZGVsIGJ1Y2F0bycsCiAgICAgIGl0ZW1fdmFyaWFudDogJ0RlZmF1bHQgVGl0bGUnLAogICAgICBpdGVtX2xpc3RfbmFtZTogbGlzdE5hbWUKICAgIH0pOwoKICAgIC8vIFNlbmQgImZpbmlzaGVkIiBldmVudAogICAgaWYgKGF4UHJvZHVjdExpc3QubGVuZ3RoID09PSB3aW5kb3cudGhlbWUuaXRlbXNfY291bnQpIHsKICAgICAgZGF0YUxheWVyLnB1c2goewogICAgICAgIGV2ZW50OiAnYXhfcHJvZHVjdF9saXN0X2NvbXBsZXRlJywKICAgICAgICBheFByb2R1Y3RMaXN0OiBheFByb2R1Y3RMaXN0LAogICAgICB9KTsKICAgIH0KICB9KTsKCiAgZnVuY3Rpb24gY2xpY2tQcm9kdWN0KHByb2R1Y3REYXRhKSB7fQo8L3NjcmlwdD4KCgo8c2NyaXB0IGRlZmVyPgogIGZ1bmN0aW9uIHN3eW1DYWxsYmFja0ZuKHN3YXQpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3N3eW06Y29sbGVjdGlvbnMtbG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgICBzd2F0LmluaXRpYWxpemVBY3Rpb25CdXR0b25zKCc8PENvbGxlY3Rpb25zIEdyaWQgUEFSRU5UIFNlbGVjdG9yID4+Jyk7CiAgICB9KTsKICB9CiAgaWYgKCF3aW5kb3cuU3d5bUNhbGxiYWNrcykgewogICAgd2luZG93LlN3eW1DYWxsYmFja3MgPSBbXTsKICB9CiAgd2luZG93LlN3eW1DYWxsYmFja3MucHVzaChzd3ltQ2FsbGJhY2tGbik7Cjwvc2NyaXB0PgoKCiAgICAKCiAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgcHJvZHVjdC1taW5pYXR1cmUgcHJvZHVjdC1jYXJkLXdyYXBwZXIgdW5kZXJsaW5lLWxpbmtzLWhvdmVyIGd0bS1jYXJkLXByb2R1Y3QgZ3RtLWNhcmQtcHJvZHVjdC1kYWlseS13YXNoLXJvc2EtZS1sYXZhbmRhLTE1MDAtbWwtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIGd0bS1jYXJkLWRhdGE9JwogICAgICAgIHsKICAgICAgICAgICAgIml0ZW1fbmFtZSI6ICJEQUlMWSBXQVNIIFJPU0EgRSBMQVZBTkRBIDE1MDAgTUwiLAogICAgICAgICAgICAiaXRlbV9pZCI6ICJJVEFfUFJERTAwMDM2ODY0VyIsCiAgICAgICAgICAgICJwcmljZSI6ICLigqw2LDUwIiwKICAgICAgICAgICAgIml0ZW1fYnJhbmQiOiAiU3RhbmhvbWUiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTEiOiAiQ3VyYSBkZWwgYnVjYXRvIiwKICAgICAgICAgICAgIml0ZW1fY2F0ZWdvcnkyIjogImxhdW5kcnktYW5kLWxpbmVuLWNhcmUiLAogICAgICAgICAgICAiaXRlbV9jYXRlZ29yeTMiOiBudWxsLAogICAgICAgICAgICAiaXRlbV92YXJpYW50IjogIkRlZmF1bHQgVGl0bGUiCiAgICAgICAgfQogICAgJyBkYXRhLXByb2R1Y3QtaWQ9IjEwMjI1MDY1ODIwNDkzIj4KICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0iCiAgICAgICAgY2FyZCBjYXJkLS1zdGFuZGFyZAogICAgICAgICBjYXJkLS1tZWRpYQogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAiCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1yYXRpby1wZXJjZW50OiAxMDAlOyIKICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY2FyZF9faW5uZXIgY29sb3ItYmFja2dyb3VuZC0xIGdyYWRpZW50IHJhdGlvIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSItLXJhdGlvLXBlcmNlbnQ6IDEwMCU7IgogICAgICAgICAgICA+PGRpdiBjbGFzcz0iY2FyZF9fbWVkaWEiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS0tdHJhbnNwYXJlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3Jjc2V0PSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF83ODk1MV8xXzU0NDA4MmRlLTJkYjYtNDVmYy05NTE1LTEwNTNkZWM2YWFiZi5qcGc/dj0xNzU1NzY2NTExJndpZHRoPTE2NSAxNjV3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0Xzc4OTUxXzFfNTQ0MDgyZGUtMmRiNi00NWZjLTk1MTUtMTA1M2RlYzZhYWJmLmpwZz92PTE3NTU3NjY1MTEmd2lkdGg9MzYwIDM2MHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNzg5NTFfMV81NDQwODJkZS0yZGI2LTQ1ZmMtOTUxNS0xMDUzZGVjNmFhYmYuanBnP3Y9MTc1NTc2NjUxMSZ3aWR0aD01MzMgNTMzdywvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC9maWxlcy9BbGxfcHJvZHVjdF83ODk1MV8xXzU0NDA4MmRlLTJkYjYtNDVmYy05NTE1LTEwNTNkZWM2YWFiZi5qcGc/dj0xNzU1NzY2NTExJndpZHRoPTcyMCA3MjB3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0Xzc4OTUxXzFfNTQ0MDgyZGUtMmRiNi00NWZjLTk1MTUtMTA1M2RlYzZhYWJmLmpwZz92PTE3NTU3NjY1MTEmd2lkdGg9OTQwIDk0MHcsLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNzg5NTFfMV81NDQwODJkZS0yZGI2LTQ1ZmMtOTUxNS0xMDUzZGVjNmFhYmYuanBnP3Y9MTc1NTc2NjUxMSZ3aWR0aD0xMDY2IDEwNjZ3LC8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL2ZpbGVzL0FsbF9wcm9kdWN0Xzc4OTUxXzFfNTQ0MDgyZGUtMmRiNi00NWZjLTk1MTUtMTA1M2RlYzZhYWJmLmpwZz92PTE3NTU3NjY1MTEgMTIwMHcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iLy93d3cuc3RhbmhvbWUuaXQvY2RuL3Nob3AvZmlsZXMvQWxsX3Byb2R1Y3RfNzg5NTFfMV81NDQwODJkZS0yZGI2LTQ1ZmMtOTUxNS0xMDUzZGVjNmFhYmYuanBnP3Y9MTc1NTc2NjUxMSZ3aWR0aD01MzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWluLXdpZHRoOiAxNjAwcHgpIDM2N3B4LCAobWluLXdpZHRoOiA5OTBweCkgY2FsYygoMTAwdncgLSAxMzBweCkgLyA0KSwgKG1pbi13aWR0aDogNzUwcHgpIGNhbGMoKDEwMHZ3IC0gMTIwcHgpIC8gMyksIGNhbGMoKDEwMHZ3IC0gMzVweCkgLyAyKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJEQUlMWSBXQVNIIFJPU0EgRSBMQVZBTkRBIDE1MDAgTUwiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtb3Rpb24tcmVkdWNlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMTIwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxMjAwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PjxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24gd2l0aCBkZWZhdWx0IGZpcnN0IHZhcmlhbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPSJBZGQgdG8gV2lzaGxpc3QiIGRhdGEtd2l0aC1lcGk9InRydWUiIGNsYXNzPSJzd3ltLWJ1dHRvbiBzd3ltLWFkZC10by13aXNobGlzdC12aWV3LXByb2R1Y3QgcHJvZHVjdF8xMDIyNTA2NTgyMDQ5MyIgZGF0YS1zd2FjdGlvbj0iYWRkVG9XaXNobGlzdCIgZGF0YS1wcm9kdWN0LWlkPSIxMDIyNTA2NTgyMDQ5MyIgZGF0YS12YXJpYW50LWlkPSI1MjI3MDQwMDQzODYwNSIgZGF0YS1wcm9kdWN0LXVybD0iaHR0cHM6Ly93d3cuc3RhbmhvbWUuaXQvcHJvZHVjdHMvZGFpbHktd2FzaC1yb3NhLWUtbGF2YW5kYS0xNTAwLW1sIj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFN3eW0gV2lzaGxpc3QgUGx1cyBFUEkgQnV0dG9uLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fYmFkZ2UgdG9wIGxlZnQiPjxzcGFuIGlkPSJCYWRnZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDIyNTA2NTgyMDQ5MyIgY2xhc3M9ImJhZGdlIGJhZGdlLS1ib3R0b20tbGVmdCBjb2xvci1zY2hlbWUtZDZhNWMwMzYtNmM0NS00N2NmLWFkZDYtYmFkZmVmYjQ1ZmQ5Ij4tNTAlCjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19pbmZvcm1hdGlvbiI+PGRpdiBjbGFzcz0iY2FyZF9fdHlwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFuaG9tZQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48cCBjbGFzcz0iY2FyZF9faGVhZGluZyBoNSIgIGlkPSJ0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDIyNTA2NTgyMDQ5MyIgPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcHJvZHVjdHMvZGFpbHktd2FzaC1yb3NhLWUtbGF2YW5kYS0xNTAwLW1sIiBpZD0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAyMjUwNjU4MjA0OTMiIGNsYXNzPSJmdWxsLXVuc3R5bGVkLWxpbmsgZnVsbC11bnN0eWxlZC1saW5rLXByb2R1Y3QiIGFyaWEtbGFiZWxsZWRieT0iQ2FyZExpbmstdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAyMjUwNjU4MjA0OTMgQmFkZ2UtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAyMjUwNjU4MjA0OTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV0ZXJzaXZvIEJ1Y2F0byBCaWFuY2hpIGUgQ29sb3JhdGkgCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L3A+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX3ZhcmlhbnQtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBEQUlMWSBXQVNIIFJPU0EgRSBMQVZBTkRBIDE1MDAgTUwKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWluZm9ybWF0aW9uIj48c3BhbiBjbGFzcz0iY2FwdGlvbi1sYXJnZSBsaWdodCI+PC9zcGFuPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faW5mb3JtYXRpb24tZm9ybS1yYXRpbmctcHJpY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmF0aW5nLXByaWNlIj4KPGRpdgogIGNsYXNzPSIKICAgIHByaWNlICBwcmljZS0tb24tc2FsZSIKPgogIDxkaXYgY2xhc3M9InByaWNlX19jb250YWluZXIiPjxkaXYgY2xhc3M9InByaWNlX19yZWd1bGFyIj48c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gZGkgbGlzdGlubzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgIOKCrDYsNTAKICAgICAgICA8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwcmljZV9fc2FsZSI+CiAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIHZpc3VhbGx5LWhpZGRlbi0taW5saW5lIj5QcmV6em8gc2NvbnRhdG88L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1pdGVtIHByaWNlLWl0ZW0tLXNhbGUgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAg4oKsNiw1MAogICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiB2aXN1YWxseS1oaWRkZW4tLWlubGluZSI+UHJlenpvIGRpIGxpc3Rpbm88L3NwYW4+CiAgICAgICAgPHNwYW4+CiAgICAgICAgICA8cyBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLS1yZWd1bGFyIj4KICAgICAgICAgICAgCiAgICAgICAgICAgICAg4oKsMTMsMDAKICAgICAgICAgICAgCiAgICAgICAgICA8L3M+CiAgICAgICAgPC9zcGFuPjwvZGl2PgogICAgPHNtYWxsIGNsYXNzPSJ1bml0LXByaWNlIGNhcHRpb24gaGlkZGVuIj4KICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+UHJlenpvIHVuaXRhcmlvPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icHJpY2UtaXRlbSBwcmljZS1pdGVtLXVuaXQgcHJpY2UtaXRlbS0tbGFzdCI+CiAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4vPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPiZuYnNwO3BlciZuYnNwOzwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvc3Bhbj4KICAgIDwvc21hbGw+CiAgPC9kaXY+PC9kaXY+Cgo8L2Rpdj48ZGl2IGNsYXNzPSJxdWljay1hZGQgcXVpY2stYWRkLW1vYmlsZSBuby1qcy1oaWRkZW4gZXh0cmEtbGFyZ2UtdXAtaGlkZSI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLW1vYmlsZXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAyMjUwNjU4MjA0OTMiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iaWQiIGRhdGEtcHJvZHVjdGlkPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTIyNzA0MDA0Mzg2MDUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZHVjdC12YXJpYW50LWlkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJxdWljay1hZGQtbW9iaWxldGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDIyNTA2NTgyMDQ5My1zdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJhZGQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVpY2stYWRkX19zdWJtaXQgYnV0dG9uIGJ1dHRvbi0tZnVsbC13aWR0aCBidXR0b24tLXByaW1hcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9InF1aWNrLWFkZC1tb2JpbGV0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMjI1MDY1ODIwNDkzLXN1Ym1pdCB0aXRsZS10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYi0xMDIyNTA2NTgyMDQ5MyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnCiAgY2xhc3M9Imljb24gc2gtaWNvbi1jYXJ0LWVtcHR5IgogIGFyaWEtaGlkZGVuPSJ0cnVlIgogIGZvY3VzYWJsZT0iZmFsc2UiCiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHZpZXdCb3g9IjAgMCAxOCAyMiIKICBmaWxsPSJub25lIgo+CiAgPHBhdGggZD0iTTE2LjQxOSA0LjcxM3YxNC4zNDhhMi42MDkgMi42MDkgMCAwIDEtMi42MDkgMi42MDdIMy4zNzZhMi42MDkgMi42MDkgMCAwIDEtMi42MDktMi42MDdWNC43MTNaIiBzdHJva2U9ImN1cnJlbnRDb2xvciIvPgogIDxwYXRoIGQ9Ik00LjY0NyA3LjMyMVY0LjcxMmEzLjk0NiAzLjk0NiAwIDEgMSA3Ljg5MSAwdjIuNjA5IiAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+CiAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29sZC1vdXQtbWVzc2FnZSBoaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KCjxsaW5rIGhyZWY9Ii8vd3d3LnN0YW5ob21lLml0L2Nkbi9zaG9wL3QvMy9hc3NldHMvY29tcG9uZW50LWxvYWRpbmctc3Bpbm5lci5jc3M/dj0xMTY3MjQ5NTU1Njc5NTU3NjY0ODE3MzAxMDcxNjEiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+Cgo8ZGl2IGNsYXNzPSJsb2FkaW5nX19zcGlubmVyIGhpZGRlbiI+CiAgPHN2ZwogICAgYXJpYS1oaWRkZW49InRydWUiCiAgICBmb2N1c2FibGU9ImZhbHNlIgogICAgY2xhc3M9InNwaW5uZXIiCiAgICB2aWV3Qm94PSIwIDAgNjYgNjYiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgPgogICAgPGNpcmNsZSBjbGFzcz0icGF0aCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBjeD0iMzMiIGN5PSIzMyIgcj0iMzAiPjwvY2lyY2xlPgogIDwvc3ZnPgo8L2Rpdj4KPC9idXR0b24+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJvZHVjdC1pZCIgdmFsdWU9IjEwMjI1MDY1ODIwNDkzIiAvPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24taWQiIHZhbHVlPSJ0ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYiIgLz48L2Zvcm0+PC9wcm9kdWN0LWZvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2NvbnRlbnQtaG92ZXIiPgogICAgICAgICAgICAgICAgPCEtLSBTd3ltIFdpc2hsaXN0IFBsdXMgRVBJIEJ1dHRvbiB3aXRoIGRlZmF1bHQgZmlyc3QgdmFyaWFudCAtLT4KICAgICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD0iQWRkIHRvIFdpc2hsaXN0IiBkYXRhLXdpdGgtZXBpPSJ0cnVlIiBjbGFzcz0ic3d5bS1idXR0b24gc3d5bS1hZGQtdG8td2lzaGxpc3Qtdmlldy1wcm9kdWN0IHByb2R1Y3RfMTAyMjUwNjU4MjA0OTMiIGRhdGEtc3dhY3Rpb249ImFkZFRvV2lzaGxpc3QiIGRhdGEtcHJvZHVjdC1pZD0iMTAyMjUwNjU4MjA0OTMiIGRhdGEtdmFyaWFudC1pZD0iNTIyNzA0MDA0Mzg2MDUiIGRhdGEtcHJvZHVjdC11cmw9Imh0dHBzOi8vd3d3LnN0YW5ob21lLml0L3Byb2R1Y3RzL2RhaWx5LXdhc2gtcm9zYS1lLWxhdmFuZGEtMTUwMC1tbCI+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwhLS0gU3d5bSBXaXNobGlzdCBQbHVzIEVQSSBCdXR0b24tLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2luZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXRlcnNpdm8gQnVjYXRvIEJpYW5jaGkgZSBDb2xvcmF0aQogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX192YXJpYW50LXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgREFJTFkgV0FTSCBST1NBIEUgTEFWQU5EQSAxNTAwIE1MCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PHVsIGNsYXNzPSJsaXN0LXVuc3R5bGVkIGNhcmRfX3ZhcmlhbnQta2V5X3BvaW50cyI+PGxpPjxzcGFuPlVuIHByb2Z1bW8qIHByaW1hdmVyaWxlIGNvbiBub3RlIGRpIHJvc2UgZnJlc2NoZSBlIGxhdmFuZGEgYXJvbWF0aWNhPC9zcGFuPjwvbGk+PGxpPjxzcGFuPkZvcm11bGEgY29uY2VudHJhdGE6IGJhc3Rhbm8gMzUgbWw8L3NwYW4+PC9saT48bGk+PHNwYW4+ICsgIDg4JSBkaSBpbmdyZWRpZW50aSBkaSBvcmlnaW5lIG5hdHVyYWxlIChhY3F1YSBpbmNsdXNhKTwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0icXVpY2stYWRkIG5vLWpzLWhpZGRlbiI+PHByb2R1Y3QtZm9ybSBkYXRhLXNlY3Rpb24taWQ9InRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiIj48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NhcnQvYWRkIiBpZD0icXVpY2stYWRkLXRlbXBsYXRlLS0yMzc2MjcwMjk5MTY5M19fNjdkN2RjNGMtZWFiMS00ZWQyLWE3YmYtMjgwNjZmZjVkZGNiMTAyMjUwNjU4MjA0OTMiIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgY2xhc3M9ImZvcm0iIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5vdmFsaWRhdGU9Im5vdmFsaWRhdGUiIGRhdGEtdHlwZT0iYWRkLXRvLWNhcnQtZm9ybSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90eXBlIiB2YWx1ZT0icHJvZHVjdCIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1dGY4IiB2YWx1ZT0i4pyTIiAvPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJpZCIgZGF0YS1wcm9kdWN0aWQ9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNTIyNzA0MDA0Mzg2MDUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2R1Y3QtdmFyaWFudC1pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InF1aWNrLWFkZC10ZW1wbGF0ZS0tMjM3NjI3MDI5OTE2OTNfXzY3ZDdkYzRjLWVhYjEtNGVkMi1hN2JmLTI4MDY2ZmY1ZGRjYjEwMjI1MDY1ODIwNDkzLXN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iYWRkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJxdWljay1hZGRfX3N1Ym1pdCBidXR0b24gYnV0dG9uLS1mdWxsLXdpZHRoIGJ1dHRvbi0tcHJpbWFyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJkaWFsb2ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1hZGQtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IxMDIyNTA2NTgyMDQ5My1zdWJtaXQgdGl0bGUtdGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2ItMTAyMjUwNjU4MjA0OTMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zb2xkLW91dC1tZXNzYWdlPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BZ2dpdW5naSBhbCBjYXJyZWxsbyAtIDxzcGFuIGNsYXNzPSJidXR0b25fX3ByaWNlIj7igqw2LDUwPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2xkLW91dC1tZXNzYWdlIGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVzYXVyaXRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+Cgo8bGluayBocmVmPSIvL3d3dy5zdGFuaG9tZS5pdC9jZG4vc2hvcC90LzMvYXNzZXRzL2NvbXBvbmVudC1sb2FkaW5nLXNwaW5uZXIuY3NzP3Y9MTE2NzI0OTU1NTY3OTU1NzY2NDgxNzMwMTA3MTYxIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgoKPGRpdiBjbGFzcz0ibG9hZGluZ19fc3Bpbm5lciBoaWRkZW4iPgogIDxzdmcKICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgZm9jdXNhYmxlPSJmYWxzZSIKICAgIGNsYXNzPSJzcGlubmVyIgogICAgdmlld0JveD0iMCAwIDY2IDY2IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICA8L3N2Zz4KPC9kaXY+CjwvYnV0dG9uPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByb2R1Y3QtaWQiIHZhbHVlPSIxMDIyNTA2NTgyMDQ5MyIgLz48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uLWlkIiB2YWx1ZT0idGVtcGxhdGUtLTIzNzYyNzAyOTkxNjkzX182N2Q3ZGM0Yy1lYWIxLTRlZDItYTdiZi0yODA2NmZmNWRkY2IiIC8+PC9mb3JtPjwvcHJvZHVjdC1mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pg==