[{"Attribute":[{"category":"External analysis","disable_correlation":false,"first_seen":"2023-11-20T02:39:08.437000+00:00","to_ids":false,"type":"link","uuid":"ec397860-4375-4d71-b8c9-f92007668a39","value":"https://lookyloo.circl.lu/tree/54135b03-f60e-4474-9b65-d72ac20d35a5"},{"category":"External analysis","comment":"Screenshot of the page at the end of the capture","data":"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AAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgAAAAAAACiEAAwAAAAAAABQCAEYAAAAAAAAoBACMAAAAAAAAEAhBGAAAAAAAACAQgjAAAAAAAAAAIUQgAEAAAAAAAAKIQADAAAAAAAAFEIABgD4/9uzAxkAAACAQf7W9/hKIwAAAACACQEMAAAAAAAAMCGAAQAAAAAAACYEMAAAAAAAAMCEAAYAAAAAAACYEMAAAAAAAAAAEwIYAAAAAAAAYEIAAwAAAAAAAEwIYAAAAAAAAIAJAQwAAAAAAAAwIYABAAAAAAAAJgQwAAAAAAAAwIQABgAAAAAAAJgQwAAAAAAAAAATAhgAAAAAAABgQgADAAAAAAAATAhgAAAAAAAAgAkBDAAAAAAAADAhgAEAAAAAAAAmBDAAAAAAAADAhAAGAAAAAAAAmBDAAAAAAAAAABMCGAAAAAAAAGBCAAMAAAAAAABMCGAAAAAAAACACQEMAAAAAAAAMCGAAQAAAAAAACYEMAAAAAAAAMCEAAYAAAAAAACYEMAAAAAAAAAAEwIYAAAAAAAAYEIAAwAAAAAAAEwIYAAAAAAAAIAJAQwAAAAAAAAwIYABAAAAAAAAJgQwAAAAAAAAwIQABgAAAAAAAJgQwAAAAAAAAAATAhgAAAAAAABgQgADAAAAAAAATAhgAAAAAAAAgAkBDAAAAAAAADAhgAEAAAAAAAAmBDAAAAAAAADAhAAGAAAAAAAAmBDAAAAAAAAAABMCGAAAAAAAAGBCAAMAAAAAAABMCGAAAAAAAACACQEMAAAAAAAAMCGAAQAAAAAAACYEMAAAAAAAAMCEAAYAAAAAAACYEMAAAAAAAAAAEwIYAAAAAAAAYEIAAwAAAAAAAEwIYAAAAAAAAIAJAQwAAAAAAAAwIYABAAAAAAAAJgQwAAAAAAAAwIQABgAAAAAAAJgQwAAAAAAAAAATAhgAAAAAAABgQgADAAAAAAAATAhgAAAAAAAAgAkBDAAAAAAAADAhgAEAAAAAAAAmBDAAAAAAAADAhAAGAAAAAAAAmBDAAAAAAAAAABMCGAAAAAAAAGBCAAMAAAAAAABMCGAAAAAAAACACQEMAAAAAAAAMCGAAQAAAAAAACYEMAAAAAAAAMCEAAYAAAAAAACYEMAAAAAAAAAAEwIYAAAAAAAAYEIAAwAAAAAAAEwIYAAAAAAAAIAJAQwAAAAAAAAwIYABAAAAAAAAJgQwAAAAAAAAwIQABgAAAAAAAJgQwAAAAAAAAAATAhgAAAAAAABgQgADAAAAAAAATAhgAAAAAAAAgAkBDAAAAAAAADAhgAEAAAAAAAAmBDAAAAAAAADAhAAGAAAAAAAAmBDAAAAAAAAAABMCGAAAAAAAAGBCAAMAAAAAAABMCGAAAAAAAACACQEMAAAAAAAAMCGAAQAAAAAAACYEMAAAAAAAAMCEAAYAAAAAAACYEMAAAAAAAAAAEwIYAAAAAAAAYEIAAwAAAAAAAEwIYAAAAAAAAIAJAQwAAAAAAAAwIYABAAAAAAAAJgQwAAAAAAAAwIQABgAAAAAAAJgQwAAAAAAAAAATAhgAAAAAAABgQgADAAAAAAAATAhgAAAAAAAAgAkBDAAAAAAAADAhgAEAAAAAAAAmBDAAAAAAAADAhAAGAAAAAAAAmBDAAAAAAAAAABMCGAAAAAAAAGAiQB6paVRIntIAAAAASUVORK5CYII=","disable_correlation":true,"first_seen":"2023-11-20T02:39:08.437000+00:00","to_ids":false,"type":"attachment","uuid":"2917ef01-40cd-48ac-84a2-8c1dbb1a35fc","value":"screenshot_landing_page.png"},{"category":"External analysis","comment":"HTTP Archive (HAR) of the whole capture","data":"eyJsb2ciOiB7InZlcnNpb24iOiAiMS4yIiwgImNyZWF0b3IiOiB7Im5hbWUiOiAiUGxheXdyaWdodCIsICJ2ZXJzaW9uIjogIjEuMzkuMCJ9LCAiYnJvd3NlciI6IHsibmFtZSI6ICJjaHJvbWl1bSIsICJ2ZXJzaW9uIjogIjExOS4wLjYwNDUuOSJ9LCAicGFnZXMiOiBbeyJzdGFydGVkRGF0ZVRpbWUiOiAiMjAyMy0xMS0yMFQwMjozOTowOC4zMTRaIiwgImlkIjogInBhZ2VAMGIzMTkwNGExMjMyY2RkMGNhOGVlZDJmNGRiZTEwNWQiLCAidGl0bGUiOiAiY3Vyc2VkLWtuaWdodC5mciIsICJwYWdlVGltaW5ncyI6IHsib25Db250ZW50TG9hZCI6IDY3MCwgIm9uTG9hZCI6IDEwNjJ9fV0sICJlbnRyaWVzIjogW3sic3RhcnRlZERhdGVUaW1lIjogIjIwMjMtMTEtMjBUMDI6Mzk6MDguNDM3WiIsICJ0aW1lIjogMTM3LjEyMDk5OTk5OTk5OTk4LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9jdXJzZWQta25pZ2h0LmZyLyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzEuMSIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJBY2NlcHQiLCAidmFsdWUiOiAidGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksaW1hZ2UvYXZpZixpbWFnZS93ZWJwLGltYWdlL2FwbmcsKi8qO3E9MC44LGFwcGxpY2F0aW9uL3NpZ25lZC1leGNoYW5nZTt2PWIzO3E9MC43In0sIHsibmFtZSI6ICJBY2NlcHQtRW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIifSwgeyJuYW1lIjogIkFjY2VwdC1MYW5ndWFnZSIsICJ2YWx1ZSI6ICJlbi1VUyxlbjtxPTAuOSJ9LCB7Im5hbWUiOiAiQ29ubmVjdGlvbiIsICJ2YWx1ZSI6ICJrZWVwLWFsaXZlIn0sIHsibmFtZSI6ICJIb3N0IiwgInZhbHVlIjogImN1cnNlZC1rbmlnaHQuZnIifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1EZXN0IiwgInZhbHVlIjogImRvY3VtZW50In0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtTW9kZSIsICJ2YWx1ZSI6ICJuYXZpZ2F0ZSJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLVNpdGUiLCAidmFsdWUiOiAibm9uZSJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLVVzZXIiLCAidmFsdWUiOiAiPzEifSwgeyJuYW1lIjogIlVwZ3JhZGUtSW5zZWN1cmUtUmVxdWVzdHMiLCAidmFsdWUiOiAiMSJ9LCB7Im5hbWUiOiAiVXNlci1BZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTE5LjAuNjA0NS45IFNhZmFyaS81MzcuMzYifV0sICJxdWVyeVN0cmluZyI6IFtdLCAiaGVhZGVyc1NpemUiOiA1MzAsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiT0siLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8xLjEiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogInZpZXdwb3J0LXdpZHRoIn0sIHsibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAiZHByIn0sIHsibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAiZGV2aWNlLW1lbW9yeSJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogInJ0dCJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogImRvd25saW5rIn0sIHsibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAiZWN0In0sIHsibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAidWEifSwgeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJ1YS1mdWxsLXZlcnNpb24ifSwgeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJ1YS1wbGF0Zm9ybSJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogInVhLXBsYXRmb3JtLXZlcnNpb24ifSwgeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJ1YS1hcmNoIn0sIHsibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAidWEtbW9kZWwifSwgeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJ1YS1tb2JpbGUifSwgeyJuYW1lIjogIkFjY2VwdC1DaC1MaWZldGltZSIsICJ2YWx1ZSI6ICIzMCJ9LCB7Im5hbWUiOiAiQ29udGVudC1FbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwIn0sIHsibmFtZSI6ICJDb250ZW50LVR5cGUiLCAidmFsdWUiOiAidGV4dC9odG1sOyBjaGFyc2V0PVVURi04In0sIHsibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIk1vbiwgMjAgTm92IDIwMjMgMDI6Mzk6MDggR01UIn0sIHsibmFtZSI6ICJTZXJ2ZXIiLCAidmFsdWUiOiAibmdpbngifSwgeyJuYW1lIjogIlRyYW5zZmVyLUVuY29kaW5nIiwgInZhbHVlIjogImNodW5rZWQifSwgeyJuYW1lIjogIlZhcnkiLCAidmFsdWUiOiAiQWNjZXB0LUVuY29kaW5nIn0sIHsibmFtZSI6ICJYLUFkYmxvY2stS2V5IiwgInZhbHVlIjogIk1Gd3dEUVlKS29aSWh2Y05BUUVCQlFBRFN3QXdTQUpCQUxxdURGRVRYUm4wSHIwNWZVUDdFSlQ3N3hZblBtUmJwTXk0dms4S1lpSG5rTnBlZG5qT0FOSmNhWERYY0tRSk4wblhLWkpMN1RjaUpEOEFvSFhLMTU4Q0F3RUFBUT09X05tUkNpOUp2MUNnUU1raHN2VTdVcXE5TW9lYmZsY2gzSEkrdTBRRkVCUGJtY2NzL0RHc25XdlRKdFJkOXhpRHZQSkVaSEY5ZE5XbWhFREp3WTlPcE13PT0ifSwgeyJuYW1lIjogIlgtQnVja2V0cyIsICJ2YWx1ZSI6ICJidWNrZXQwMTEsYnVja2V0MDc3In0sIHsibmFtZSI6ICJYLURvbWFpbiIsICJ2YWx1ZSI6ICJjdXJzZWQta25pZ2h0LmZyIn0sIHsibmFtZSI6ICJYLUxhbmd1YWdlIiwgInZhbHVlIjogImdlcm1hbiJ9LCB7Im5hbWUiOiAiWC1TdWJkb21haW4iLCAidmFsdWUiOiAiIn0sIHsibmFtZSI6ICJYLVRlbXBsYXRlIiwgInZhbHVlIjogInRwbF9DbGVhblBlcHBlcm1pbnRCbGFja190d29jbGljayJ9XSwgImNvbnRlbnQiOiB7InNpemUiOiAxNjk2OCwgIm1pbWVUeXBlIjogInRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIsICJjb21wcmVzc2lvbiI6IDExMDE2LCAidGV4dCI6ICI8IURPQ1RZUEUgaHRtbD5cbjxodG1sIGRhdGEtYWRibG9ja2tleT1cIk1Gd3dEUVlKS29aSWh2Y05BUUVCQlFBRFN3QXdTQUpCQUxxdURGRVRYUm4wSHIwNWZVUDdFSlQ3N3hZblBtUmJwTXk0dms4S1lpSG5rTnBlZG5qT0FOSmNhWERYY0tRSk4wblhLWkpMN1RjaUpEOEFvSFhLMTU4Q0F3RUFBUT09X05tUkNpOUp2MUNnUU1raHN2VTdVcXE5TW9lYmZsY2gzSEkrdTBRRkVCUGJtY2NzL0RHc25XdlRKdFJkOXhpRHZQSkVaSEY5ZE5XbWhFREp3WTlPcE13PT1cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIiB4bWw6bGFuZz1cImVuXCIgbGFuZz1cImVuXCI+XG48aGVhZD5cbiAgICA8bWV0YSBodHRwLWVxdWl2PVwiQ29udGVudC1UeXBlXCIgY29udGVudD1cInRleHQvaHRtbDsgY2hhcnNldD11dGYtOFwiLz5cbiAgICA8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm9cIi8+XG4gICAgPHRpdGxlPmN1cnNlZC1rbmlnaHQuZnI8L3RpdGxlPlxuICAgIDxzY3JpcHQgc3JjPVwiLy93d3cuZ29vZ2xlLmNvbS9hZHNlbnNlL2RvbWFpbnMvY2FmLmpzP2FicD0xXCI+PC9zY3JpcHQ+ICAgIDxzdHlsZSBtZWRpYT1cInNjcmVlblwiPlxuLmFzc2V0X3N0YXIwIHtcblx0YmFja2dyb3VuZDogdXJsKCcvL2QzOHBzcm5pMTdidnh1LmNsb3VkZnJvbnQubmV0L3RoZW1lcy9hc3NldHMvc3RhcjAuZ2lmJykgbm8tcmVwZWF0IGNlbnRlcjtcblx0d2lkdGg6IDEzcHg7XG5cdGhlaWdodDogMTJweDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uYXNzZXRfc3RhcjEge1xuXHRiYWNrZ3JvdW5kOiB1cmwoJy8vZDM4cHNybmkxN2J2eHUuY2xvdWRmcm9udC5uZXQvdGhlbWVzL2Fzc2V0cy9zdGFyMS5naWYnKSBuby1yZXBlYXQgY2VudGVyO1xuXHR3aWR0aDogMTNweDtcblx0aGVpZ2h0OiAxMnB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5hc3NldF9zdGFySCB7XG5cdGJhY2tncm91bmQ6IHVybCgnLy9kMzhwc3JuaTE3YnZ4dS5jbG91ZGZyb250Lm5ldC90aGVtZXMvYXNzZXRzL3N0YXJILmdpZicpIG5vLXJlcGVhdCBjZW50ZXI7XG5cdHdpZHRoOiAxM3B4O1xuXHRoZWlnaHQ6IDEycHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnNpdGVsaW5rIHtcblx0cGFkZGluZy1yaWdodDogMTZweDtcbn1cblxuLnNlbGxlclJhdGluZ3MgYTpsaW5rLFxuLnNlbGxlclJhdGluZ3MgYTp2aXNpdGVkLFxuLnNlbGxlclJhdGluZ3MgYTpob3Zlcixcbi5zZWxsZXJSYXRpbmdzIGE6YWN0aXZlIHtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRjdXJzb3I6IHRleHQ7XG59XG5cbi5zZWxsZXJSYXRpbmdzIHtcblx0bWFyZ2luOjAgMCAzcHggMjBweDtcbn1cblxuLnNpdGVsaW5rSG9sZGVyIHtcblx0bWFyZ2luOi0xNXB4IDAgMTVweCAzNXB4O1xufVxuXG4jYWpheGxvYWRlckhvbGRlciB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMjRweDtcblx0aGVpZ2h0OiAyNHB4O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRwYWRkaW5nOiA4cHggMCAwIDhweDtcblx0bWFyZ2luOjEwcHggYXV0bztcblx0LXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHg7XG5cdC1tb3otYm9yZGVyLXJhZGl1czogNHB4O1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG59PC9zdHlsZT4gICAgPHN0eWxlIG1lZGlhPVwic2NyZWVuXCI+XG4qIHtcbiAgICBtYXJnaW46MDtwYWRkaW5nOjBcbn1cblxuYm9keSB7XG4gICAgYmFja2dyb3VuZDojMTAxYzM2O1xuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6MXJlbTtcbn1cblxuLmhlYWRlciB7XG4gICAgcGFkZGluZzoxcmVtIDFyZW0gMDtcbiAgICBvdmVyZmxvdzpoaWRkZW47XG59XG5cbmgxIHtcbiAgICBjb2xvcjojODQ4NDg0O1xuICAgIGZvbnQtc2l6ZToxLjVyZW07XG59XG5cbi5oZWFkZXItdGV4dC1jb2xvcjp2aXNpdGVkLFxuLmhlYWRlci10ZXh0LWNvbG9yOmxpbmssXG4uaGVhZGVyLXRleHQtY29sb3Ige1xuICAgIGNvbG9yOiM4NDg0ODQ7XG59XG5cbi5jb21wLWlzLXBhcmtlZCB7XG4gIG1hcmdpbjogNHB4IDAgMnB4O1xufVxuXG4uY29tcC1zcG9uc29yZWQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW46IDAgMCAtMS44cmVtIDRweDtcbn1cblxuLndyYXBwZXIxIHtcbiAgICBtYXJnaW46MXJlbTtcbn1cblxuLndyYXBwZXIyIHtcbiAgICBiYWNrZ3JvdW5kOnVybCgnLy9kMzhwc3JuaTE3YnZ4dS5jbG91ZGZyb250Lm5ldC90aGVtZXMvY2xlYW5QZXBwZXJtaW50QmxhY2tfNjU3ZDkwMTMvaW1nL2JvdHRvbS5wbmcnKSBuby1yZXBlYXQgY2VudGVyIGJvdHRvbTtcbiAgICBwYWRkaW5nLWJvdHRvbToxNDBweDtcbn1cblxuLndyYXBwZXIzIHtcbiAgICBiYWNrZ3JvdW5kOiNmZmY7XG4gICAgbWF4LXdpZHRoOjMwMHB4O1xuICAgIG1hcmdpbjowIGF1dG8gMXJlbTtcbiAgICBwYWRkaW5nLXRvcDoxcHg7XG4gICAgcGFkZGluZy1ib3R0b206MXB4O1xufVxuXG4ub25EZXNrdG9wIHtcbiAgICBkaXNwbGF5Om5vbmU7XG59XG5cbi50Y0hvbGRlciB7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG59XG5cbi5hZHNIb2xkZXIge1xuICAgIG1hcmdpbjogMXJlbSAwO1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIG92ZXJmbG93OmhpZGRlbjtcbn1cblxuLmZvb3RlciB7XG4gICAgY29sb3I6IzYyNjU3NDtcbiAgICBwYWRkaW5nOjJyZW0gMXJlbTtcbiAgICBmb250LXNpemU6LjhyZW07XG4gICAgbWFyZ2luOjAgYXV0bztcbiAgICBtYXgtd2lkdGg6NDQwcHg7XG59XG5cbi5mb290ZXIgYTpsaW5rLFxuLmZvb3RlciBhOnZpc2l0ZWQge1xuICAgIGNvbG9yOiM2MjY1NzQ7XG59XG5cbi5zYWxlX2xpbmtfYm9sZCBhLFxuLnNhbGVfbGluayxcbi5zYWxlX2xpbmsgYSB7XG4gICAgY29sb3I6IzYyNjU3NCAhaW1wb3J0YW50O1xufVxuXG4uc2VhcmNoSG9sZGVyIHtcbiAgICBwYWRkaW5nOjFweCAwIDFweCAxcHg7XG4gICAgbWFyZ2luOjFyZW0gYXV0bztcbiAgICB3aWR0aDogOTUlO1xuICAgIG1heC13aWR0aDogNTAwcHg7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjAwcHgpIHtcblxuICAgIC5jb21wLWlzLXBhcmtlZCxcbiAgICAuY29tcC1zcG9uc29yZWQge1xuICAgICAgY29sb3I6ICM4NDg0ODQ7XG4gICAgfVxuXG4gICAgLmNvbXAtc3BvbnNvcmVkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC53cmFwcGVyMSB7XG4gICAgICAgIG1heC13aWR0aDoxNTAwcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OmF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDphdXRvO1xuICAgIH1cblxuICAgIC53cmFwcGVyMiB7XG4gICAgICAgIGJhY2tncm91bmQ6dXJsKCcvL2QzOHBzcm5pMTdidnh1LmNsb3VkZnJvbnQubmV0L3RoZW1lcy9jbGVhblBlcHBlcm1pbnRCbGFja182NTdkOTAxMy9pbWcvYXJyb3dzLnBuZycpIG5vLXJlcGVhdCBjZW50ZXIgdG9wO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTowO1xuICAgICAgICBtaW4taGVpZ2h0OjYwMHB4O1xuICAgIH1cblxuICAgIC53cmFwcGVyMyB7XG4gICAgICAgIG1heC13aWR0aDo1MzBweDtcbiAgICAgICAgYmFja2dyb3VuZDpub25lO1xuICAgIH1cbn1cbjwvc3R5bGU+ICAgIDxtZXRhIG5hbWU9XCJkZXNjcmlwdGlvblwiIGNvbnRlbnQ9XCJEaWVzZSBEb21haW4gc3RlaHQgenVtIFZlcmthdWYhXCIgLz5cbiAgICA8L2hlYWQ+XG5cbjxib2R5IGlkPVwiYWZkXCIgc3R5bGU9XCJ2aXNpYmlsaXR5OmhpZGRlblwiPlxuXG48ZGl2IGNsYXNzPVwid3JhcHBlcjFcIj5cbiAgICBcbjxzdHlsZT5cblx0LnNhbGVfYmFubmVyX29yYW5nZSB7XG5cdFx0YmFja2dyb3VuZDojZjI1YjAwO1xuXHRcdGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2Y0OTMwMCAwJSwgI2YyNWIwMCAxMDAlKTtcblx0XHRiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmNDkzMDAgMCUsI2YyNWIwMCAxMDAlKTtcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZjQ5MzAwIDAlLCNmMjViMDAgMTAwJSk7XG5cdFx0ZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNmNDkzMDAnLCBlbmRDb2xvcnN0cj0nI2YyNWIwMCcsR3JhZGllbnRUeXBlPTAgKTtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcblx0XHRjb2xvcjogI2M4YzhjODtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Zm9udDogYm9sZCAxNnB4LzM2cHggc2Fucy1zZXJpZjtcblx0XHRoZWlnaHQ6IDM2cHg7XG5cdH1cblxuXHQuc2FsZV9iYW5uZXJfb3JhbmdlIGEge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGNvbG9yOiNmZmY7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR9XG48L3N0eWxlPlxuXG5cblxuPGRpdiBjbGFzcz1cInNhbGVfYmFubmVyX29yYW5nZVwiIHN0eWxlPVwiYm9yZGVyLXRvcDpub25lXCI+XG5cdFx0XHQ8YSBocmVmPVwiaHR0cHM6Ly93d3cubXlkb21haW5jb250YWN0LmNvbS9pbmRleC5waHA/ZG9tYWluX25hbWU9Y3Vyc2VkLWtuaWdodC5mclwiIHRhcmdldD1cIl9ibGFua1wiPlxuXHRcdFx0RGllc2UgRG9tYWluIGthdWZlbi5cblx0PC9hPlxuPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIndyYXBwZXIyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyM1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiIGlkPVwiZG9tYWlubmFtZVwiPlxuICAgICAgICA8aDE+Y3Vyc2VkLWtuaWdodC5mcjwvaDE+XG4gICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGNIb2xkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwidGNcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJcIj5cbiAgICAgICAgICAgIDIwMjMgQ29weXJpZ2h0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbjxici8+PGJyLz5cbjxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCIgb25DbGljaz1cIndpbmRvdy5vcGVuKCcvcHJpdmFjeS5odG1sJywgJ3ByaXZhY3ktcG9saWN5JywgJ3dpZHRoPTg5MCxoZWlnaHQ9MzMwLGxlZnQ9MjAwLHRvcD0yMDAsbWVudWJhcj1ubyxzdGF0dXM9eWVzLHRvb2xiYXI9bm8nKS5mb2N1cygpXCIgY2xhc3M9XCJwcml2YWN5LXBvbGljeVwiPlxuICAgIFByaXZhY3kgUG9saWN5XG48L2E+XG48YnIvPjxici8+XG48YnIvPjxici8+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCIgbGFuZ3VhZ2U9XCJKYXZhU2NyaXB0XCI+XG4gICAgdmFyIHRjYmxvY2sgPSB7XG4gICAgICAgIC8vIFJlcXVpcmVkIGFuZCBzdGVhZHlcbiAgICAgICAgJ2NvbnRhaW5lcic6ICd0YycsXG4gICAgICAgICd0eXBlJzogJ3JlbGF0ZWRzZWFyY2gnLFxuICAgICAgICAnY29sb3JCYWNrZ3JvdW5kJzogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgXG4gICAgICAgICdudW1iZXInOiAzLFxuICAgICAgICBcbiAgICAgICAgLy8gRm9udC1TaXplcyBhbmQgTGluZS1IZWlnaHRzXG4gICAgICAgICdmb250U2l6ZUF0dHJpYnV0aW9uJzogMTQsXG4gICAgICAgICdmb250U2l6ZVRpdGxlJzogMjQsXG4gICAgICAgICdsaW5lSGVpZ2h0VGl0bGUnOiAzNCxcbiAgICAgICAgLy8gQ29sb3JzXG4gICAgICAgICdjb2xvckF0dHJpYnV0aW9uJzogJyNhYWEnLFxuICAgICAgICAnY29sb3JUaXRsZUxpbmsnOiAnIzAyNzdiZCcsXG4gICAgICAgIC8vIEFscGhhYmV0aWNhbGx5XG4gICAgICAgICdob3Jpem9udGFsQWxpZ25tZW50JzogJ2NlbnRlcicsXG4gICAgICAgICdub1RpdGxlVW5kZXJsaW5lJzogZmFsc2UsXG4gICAgICAgICdyb2xsb3ZlckxpbmtDb2xvcic6ICcjMDE1NzliJyxcbiAgICAgICAgJ3ZlcnRpY2FsU3BhY2luZyc6IDEwXG4gICAgfTtcbiAgICB2YXIgc2VhcmNoYm94QmxvY2sgPSB7XG4gICAgICAgICdjb250YWluZXInOiAnc2VhcmNoJyxcbiAgICAgICAgJ3R5cGUnOiAnc2VhcmNoYm94JyxcbiAgICAgICAgJ2ZvbnRTaXplU2VhcmNoSW5wdXQnOiAxMixcbiAgICAgICAgJ2hpZGVTZWFyY2hJbnB1dEJvcmRlcic6IGZhbHNlLFxuICAgICAgICAnaGlkZVNlYXJjaEJ1dHRvbkJvcmRlcic6IHRydWUsXG4gICAgICAgICdmb250U2l6ZVNlYXJjaEJ1dHRvbic6IDEzLFxuICAgICAgICAnY29sb3JCYWNrZ3JvdW5kJzogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgJ2NvbG9yU2VhcmNoQnV0dG9uJzogJyMwYjMyNzknLFxuICAgICAgICAnY29sb3JTZWFyY2hCdXR0b25UZXh0JzogJyNmZmYnXG4gICAgfTtcbiAgICA8L3NjcmlwdD5cbjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPnZhciBpc0FkdWx0PWZhbHNlOyAgICAgdmFyIGNvbnRhaW5lck5hbWVzPVtdOyAgICAgdmFyIHVuaXF1ZVRyYWNraW5nSUQ9J01UY3dNRFEwTnprME9DNDJORG8wTm1FeVlXTXhNRE5tTTJWbFl6UXpOVGhtWTJFNU5qYzRaV1V4WVRZNU9EZGlaRFJsTURsaE1XTTVOamt5WmpSbVl6Qm1aV1k0TTJKbU56YzNNekZtT2pZMU5XRmpObU5qT1dNME1XRT0nOyAgICAgdmFyIHNlYXJjaD0nJzsgICAgIHZhciB0aGVtZWRhdGE9J2ZFTnNaV0Z1VUdWd2NHVnliV2x1ZEVKc1lXTnJmSHcxWTJVNE5IeGlkV05yWlhRd01URXNZblZqYTJWME1EYzNmSHg4Zkh4OE5qVTFZV00yWTJNNVl6Tmxabng4ZkRFM01EQTBORGM1TkRndU5qUTROM3d6TWpsaE1XUTRZVEprTkRreFlUVmhNelExT1RjeVpUazBOV1U0Wm1aall6aGpZV1UyWldRM2ZIeDhmSHd4Zkh3d2ZEQjhmSHg4TVh4OGZIeDhNSHd3Zkh4OGZIeDhmSHg4ZkRCOE1IeDhNSHg4ZkRCOE1IeFhNVEE5Zkh3eGZGY3hNRDE4WXpZMFpqTTVOV0poTVRGaU1UWTJaVEJrTVdOaE1UbGtORE01WkRrM04yUTBZVGN5WW1WbE0zd3dmR1J3TFhSbFlXMXBiblJsY201bGREQTVYek53YUh3d2ZEQjgnOyAgICAgdmFyIGRvbWFpbj0nY3Vyc2VkLWtuaWdodC5mcic7ICAgICB2YXIgc2NyaXB0UGF0aD0nJzsgICAgIHZhciBhZHRlc3Q9J29mZic7IDwvc2NyaXB0PjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPmlmKHRvcC5sb2NhdGlvbiE9PWxvY2F0aW9uKSB7IHRvcC5sb2NhdGlvbi5ocmVmPWxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIGxvY2F0aW9uLmhvc3QgKyBsb2NhdGlvbi5wYXRobmFtZSArIChsb2NhdGlvbi5zZWFyY2ggPyBsb2NhdGlvbi5zZWFyY2ggKyAnJicgOiAnPycpICsgJ194YWZ2cj1NemRrTXpabE1EZ3laak5rTkRObVpUWTBaVFE1WVRRelpUZzNNbVZpWm1JM09UazBaamczTlN3Mk5UVmhZelpqWXpsbE5qQmsnOyB9IDwvc2NyaXB0PjxzY3JpcHQ+XG52YXIgcGFnZUxvYWRlZENhbGxiYWNrVHJpZ2dlcmVkID0gZmFsc2U7XG52YXIgZmFsbGJhY2tUcmlnZ2VyZWQgPSBmYWxzZTtcbnZhciBmb3JtZXJDYWxsZWRBcmd1bWVudHMgPSBmYWxzZTtcblxudmFyIHBhZ2VPcHRpb25zID0ge1xuICAgICdwdWJJZCc6ICdkcC10ZWFtaW50ZXJuZXQwMScsXG4gICAgJ3Jlc3VsdHNQYWdlQmFzZVVybCc6ICcvLycgKyBsb2NhdGlvbi5ob3N0ICsgJy8/dHM9JyxcbiAgICAnZm9udEZhbWlseSc6ICdhcmlhbCcsXG4gICAgJ29wdGltaXplVGVybXMnOiB0cnVlLFxuICAgICdtYXhUZXJtTGVuZ3RoJzogNDAsXG4gICAgJ2FkdGVzdCc6IHRydWUsXG4gICAgJ2NsaWNrdHJhY2tVcmwnOiAnLy8nICsgbG9jYXRpb24uaG9zdCArICcvdHJhY2sucGhwPycsXG4gICAgJ2F0dHJpYnV0aW9uVGV4dCc6ICdBZHMnLFxuICAgICdjb2xvckF0dHJpYnV0aW9uJzogJyNiN2I3YjcnLFxuICAgICdmb250U2l6ZUF0dHJpYnV0aW9uJzogMTYsXG4gICAgJ2F0dHJpYnV0aW9uQm9sZCc6IGZhbHNlLFxuICAgICdyb2xsb3ZlckxpbmtCb2xkJzogZmFsc2UsXG4gICAgJ2ZvbnRGYW1pbHlBdHRyaWJ1dGlvbic6ICdhcmlhbCcsXG4gICAgJ2FkTG9hZGVkQ2FsbGJhY2snOiBmdW5jdGlvbihjb250YWluZXJOYW1lLCBhZHNMb2FkZWQsIGlzRXhwZXJpbWVudFZhcmlhbnQsIGNhbGxiYWNrT3B0aW9ucykge1xuICAgICAgICBpZiAoIWFkc0xvYWRlZCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB2YXIgZWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY29udGFpbmVyKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1lJylbMF07XG4gICAgICAgICAgICAgICAgdmFyIHZhcnMgPSBKU09OLnBhcnNlKGVsZS5uYW1lLnN1YnN0cihlbGUuaWQubGVuZ3RoICsgMSkpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFyc1tlbGUuaWRdLnR5cGUgPT0gXCJzdHJpbmdcIiAmJiB2YXJzW2VsZS5pZF0udHlwZSA9PSBcInJlbGF0ZWRzZWFyY2hcIikge1xuICAgICAgICAgICAgICAgICAgICByZWxhdGVkRmFsbGJhY2soKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0ZWRDYWxsYmFjayh2YXJzW2VsZS5pZF0pO1xuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgaWYgKCEoZXJyIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoY29udGFpbmVyTmFtZSBpbiBjb250YWluZXJOYW1lcykge1xuXG4gICAgICAgICAgICB2YXIgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICBjb250YWluZXJOYW1lOiBjb250YWluZXJOYW1lLFxuICAgICAgICAgICAgICAgIGFkc0xvYWRlZDogYWRzTG9hZGVkLFxuICAgICAgICAgICAgICAgIGlzRXhwZXJpbWVudFZhcmlhbnQ6IGlzRXhwZXJpbWVudFZhcmlhbnQsXG4gICAgICAgICAgICAgICAgY2FsbGJhY2tPcHRpb25zOiBjYWxsYmFja09wdGlvbnMsXG4gICAgICAgICAgICAgICAgdGVybXM6IHBhZ2VPcHRpb25zLnRlcm1zXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGFqYXhRdWVyeShcbiAgICAgICAgICAgICAgICBzY3JpcHRQYXRoICsgXCIvdHJhY2sucGhwXCJcbiAgICAgICAgICAgICAgICArIFwiP3RvZ2dsZT1hZGxvYWRlZFwiXG4gICAgICAgICAgICAgICAgKyBcIiZ1aWQ9XCIgKyBlbmNvZGVVUklDb21wb25lbnQodW5pcXVlVHJhY2tpbmdJRClcbiAgICAgICAgICAgICAgICArIFwiJmRvbWFpbj1cIiArIGVuY29kZVVSSUNvbXBvbmVudChkb21haW4pXG4gICAgICAgICAgICAgICAgKyBcIiZkYXRhPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGRhdGEpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgJ3BhZ2VMb2FkZWRDYWxsYmFjayc6IGZ1bmN0aW9uIChyZXF1ZXN0QWNjZXB0ZWQsIHN0YXR1cykge1xuXG4gICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgICAgcGFnZUxvYWRlZENhbGxiYWNrVHJpZ2dlcmVkID0gdHJ1ZTtcblxuICAgICAgICBpZiAoKHN0YXR1cy5mYWlsbGlzdGVkID09PSB0cnVlIHx8IHN0YXR1cy5mYWlsbGlzdGVkID09IFwidHJ1ZVwiIHx8IHN0YXR1cy5ibG9ja2VkID09PSB0cnVlIHx8IHN0YXR1cy5ibG9ja2VkID09IFwidHJ1ZVwiICkgJiYgc3RhdHVzLmVycm9yX2NvZGUgIT0gMjUpIHtcbiAgICAgICAgICAgIGFqYXhRdWVyeShzY3JpcHRQYXRoICsgXCIvdHJhY2sucGhwP2RvbWFpbj1cIiArIGVuY29kZVVSSUNvbXBvbmVudChkb21haW4pICsgXCImY2FmPTEmdG9nZ2xlPWJsb2NrJnJlYXNvbj1vdGhlciZ1aWQ9XCIgKyBlbmNvZGVVUklDb21wb25lbnQodW5pcXVlVHJhY2tpbmdJRCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0YXR1cy5lcnJvcmNvZGUgJiYgIXN0YXR1cy5lcnJvcl9jb2RlKSB7XG4gICAgICAgICAgICBzdGF0dXMuZXJyb3JfY29kZSA9IHN0YXR1cy5lcnJvcmNvZGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RhdHVzLmVycm9yX2NvZGUpIHtcbiAgICAgICAgICAgIGFqYXhRdWVyeShzY3JpcHRQYXRoICsgXCIvdHJhY2sucGhwP2RvbWFpbj1cIiArIGVuY29kZVVSSUNvbXBvbmVudChkb21haW4pICsgXCImY2FmPTEmdG9nZ2xlPWVycm9yY29kZSZjb2RlPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHN0YXR1cy5lcnJvcl9jb2RlKSArIFwiJnVpZD1cIiArIGVuY29kZVVSSUNvbXBvbmVudCh1bmlxdWVUcmFja2luZ0lEKSk7XG5cbiAgICAgICAgICAgIGlmIChbMTgsIDE5XS5pbmRleE9mKHBhcnNlSW50KHN0YXR1cy5lcnJvcl9jb2RlKSkgIT0gLTEgJiYgZmFsbGJhY2tUcmlnZ2VyZWQgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBmYWxsYmFja1RyaWdnZXJlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBsb2FkRmVlZCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy8vJyArIGxvY2F0aW9uLmhvc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc3RhdHVzLmVycm9yX2NvZGUgPT0gMjApIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZShcIi8vZHAuZy5kb3VibGVjbGljay5uZXQvYXBwcy9kb21haW5wYXJrL2RvbWFpbnBhcmsuY2dpP2NsaWVudD1cIiArIGVuY29kZVVSSUNvbXBvbmVudCgocGFnZU9wdGlvbnMucHViaWQubWF0Y2goL15jYS0vaSkgPyBcIlwiIDogXCJjYS1cIikgKyBwYWdlT3B0aW9ucy5wdWJpZCkgKyBcIiZkb21haW5fbmFtZT1cIiArIGVuY29kZVVSSUNvbXBvbmVudChkb21haW4pICsgXCImb3V0cHV0PWh0bWwmZHJpZD1cIiArIGVuY29kZVVSSUNvbXBvbmVudChwYWdlT3B0aW9ucy5kb21haW5SZWdpc3RyYW50KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RhdHVzLm5lZWRzcmV2aWV3ID09PSB0cnVlIHx8IHN0YXR1cy5uZWVkc3JldmlldyA9PSBcInRydWVcIikge1xuICAgICAgICAgICAgYWpheFF1ZXJ5KHNjcmlwdFBhdGggKyBcIi90cmFjay5waHA/ZG9tYWluPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvbWFpbikgKyBcIiZjYWY9MSZ0b2dnbGU9bmVlZHNyZXZpZXcmdWlkPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHVuaXF1ZVRyYWNraW5nSUQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgoc3RhdHVzLmFkdWx0ID09PSB0cnVlIHx8IHN0YXR1cy5hZHVsdCA9PSBcInRydWVcIikgJiYgIWlzQWR1bHQpIHtcbiAgICAgICAgICAgIGFqYXhRdWVyeShzY3JpcHRQYXRoICsgXCIvdHJhY2sucGhwP2RvbWFpbj1cIiArIGVuY29kZVVSSUNvbXBvbmVudChkb21haW4pICsgXCImY2FmPTEmdG9nZ2xlPWFkdWx0JnVpZD1cIiArIGVuY29kZVVSSUNvbXBvbmVudCh1bmlxdWVUcmFja2luZ0lEKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoKHN0YXR1cy5hZHVsdCA9PT0gZmFsc2UgfHwgc3RhdHVzLmFkdWx0ID09IFwiZmFsc2VcIikgJiYgaXNBZHVsdCkge1xuICAgICAgICAgICAgYWpheFF1ZXJ5KHNjcmlwdFBhdGggKyBcIi90cmFjay5waHA/ZG9tYWluPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvbWFpbikgKyBcIiZjYWY9MSZ0b2dnbGU9bm9uYWR1bHQmdWlkPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHVuaXF1ZVRyYWNraW5nSUQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIC0tIGdvb2dsZSBwYXJraW5nXG4gICAgICAgIGlmIChyZXF1ZXN0QWNjZXB0ZWQpIHtcbiAgICAgICAgICAgIGlmIChzdGF0dXMuZmVlZCkge1xuICAgICAgICAgICAgICAgIGFqYXhRdWVyeShzY3JpcHRQYXRoICsgXCIvdHJhY2sucGhwP2RvbWFpbj1cIiArIGVuY29kZVVSSUNvbXBvbmVudChkb21haW4pICsgXCImY2FmPTEmdG9nZ2xlPWZlZWQmZmVlZD1cIiArIGVuY29kZVVSSUNvbXBvbmVudChzdGF0dXMuZmVlZCkgKyBcIiZ1aWQ9XCIgKyBlbmNvZGVVUklDb21wb25lbnQodW5pcXVlVHJhY2tpbmdJRCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHN0YXR1cy5lcnJvcl9jb2RlKSB7XG4gICAgICAgICAgICAgICAgYWpheFF1ZXJ5KHNjcmlwdFBhdGggKyBcIi90cmFjay5waHA/ZG9tYWluPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvbWFpbikgKyBcIiZjYWY9MSZ0b2dnbGU9YW5zd2VyY2hlY2smYW5zd2VyPWVycm9yX1wiICsgZW5jb2RlVVJJQ29tcG9uZW50KHN0YXR1cy5lcnJvcl9jb2RlKSArIFwiJnVpZD1cIiArIGVuY29kZVVSSUNvbXBvbmVudCh1bmlxdWVUcmFja2luZ0lEKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFqYXhRdWVyeShzY3JpcHRQYXRoICsgXCIvdHJhY2sucGhwP2RvbWFpbj1cIiArIGVuY29kZVVSSUNvbXBvbmVudChkb21haW4pICsgXCImY2FmPTEmdG9nZ2xlPWFuc3dlcmNoZWNrJmFuc3dlcj15ZXMmdWlkPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHVuaXF1ZVRyYWNraW5nSUQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFqYXhRdWVyeShzY3JpcHRQYXRoICsgXCIvdHJhY2sucGhwP2RvbWFpbj1cIiArIGVuY29kZVVSSUNvbXBvbmVudChkb21haW4pICsgXCImY2FmPTEmdG9nZ2xlPWFuc3dlcmNoZWNrJmFuc3dlcj1yZWplY3RlZCZ1aWQ9XCIgKyBlbmNvZGVVUklDb21wb25lbnQodW5pcXVlVHJhY2tpbmdJRCkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG52YXIgeCA9IGZ1bmN0aW9uIChvYmoxLCBvYmoyKSB7XG4gICAgaWYgKHR5cGVvZiBvYmoxICE9IFwib2JqZWN0XCIpXG4gICAgICAgIG9iajEgPSB7fTtcblxuICAgIGZvciAodmFyIGtleSBpbiBvYmoyKVxuICAgICAgICBvYmoxW2tleV0gPSBvYmoyW2tleV07XG5cbiAgICByZXR1cm4gb2JqMTtcbn07XG5cbmZ1bmN0aW9uIGdldFhNTGh0dHAoKSB7XG4gICAgdmFyIHhtbEh0dHAgPSBudWxsO1xuICAgIHRyeSB7XG4gICAgICAgIHhtbEh0dHAgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB4bWxIdHRwID0gbmV3IEFjdGl2ZVhPYmplY3QoXCJNc3htbDIuWE1MSFRUUFwiKTtcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeG1sSHR0cCA9IG5ldyBBY3RpdmVYT2JqZWN0KFwiTWljcm9zb2Z0LlhNTEhUVFBcIik7XG4gICAgICAgICAgICB9IGNhdGNoIChleGMpIHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geG1sSHR0cDtcbn1cblxuZnVuY3Rpb24gYWpheFF1ZXJ5KHVybCkge1xuICAgIGlmIChhZHRlc3QgPT0gJ29uJykgcmV0dXJuIGZhbHNlO1xuICAgIHhtbEh0dHAgPSBnZXRYTUxodHRwKCk7XG4gICAgaWYgKCF4bWxIdHRwKSByZXR1cm4gYWpheEJhY2tmaWxsKHVybCk7XG4gICAgeG1sSHR0cC5vcGVuKFwiR0VUXCIsIHVybCwgZmFsc2UpO1xuICAgIHJldHVybiB4bWxIdHRwLnNlbmQobnVsbCk7XG59XG5cbmZ1bmN0aW9uIGFqYXhCYWNrZmlsbCh1cmwpIHtcbiAgICBpZiAoYWR0ZXN0ID09ICdvbicpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodXJsLmluZGV4T2YoXCImdG9nZ2xlPWJyb3dzZXJqc1wiKSA+IC0xKSByZXR1cm4gZmFsc2U7XG4gICAgdHJ5IHtcbiAgICAgICAgdmFyIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpO1xuICAgICAgICBpbWcuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICBpbWcuc3R5bGUud2lkdGggPSAnMXB4JztcbiAgICAgICAgaW1nLnN0eWxlLmhlaWdodCA9ICcxcHgnO1xuICAgICAgICBpbWcuc3JjID0gdXJsICsgXCImX3Q9XCIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWcpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICB9XG59XG5cbnZhciB3YWl0VGltZSA9IDA7XG52YXIgdGltZW91dCA9IDIwMDA7XG52YXIgd2FpdFN0ZXAgPSAxMDAwO1xuZnVuY3Rpb24gbGlzdGVuRm9yMVRpZXJSZXNwb25zZSgpIHtcblxuICAgIGlmICh0eXBlb2YgcGFnZUxvYWRlZENhbGxiYWNrVHJpZ2dlcmVkID09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAod2FpdFRpbWUgPCB0aW1lb3V0ICYmIHBhZ2VMb2FkZWRDYWxsYmFja1RyaWdnZXJlZCA9PSBmYWxzZSkge1xuICAgICAgICB3YWl0VGltZSA9IHdhaXRUaW1lICsgd2FpdFN0ZXA7XG4gICAgICAgIHNldFRpbWVvdXQobGlzdGVuRm9yMVRpZXJSZXNwb25zZSwgd2FpdFN0ZXApO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHBhZ2VMb2FkZWRDYWxsYmFja1RyaWdnZXJlZCA9PSBmYWxzZSkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG4gICAgfVxufVxubGlzdGVuRm9yMVRpZXJSZXNwb25zZSgpO1xuXG5cbmFqYXhRdWVyeShzY3JpcHRQYXRoICsgXCIvdHJhY2sucGhwP2RvbWFpbj1cIiArIGVuY29kZVVSSUNvbXBvbmVudChkb21haW4pICsgXCImdG9nZ2xlPWJyb3dzZXJqcyZ1aWQ9XCIgKyBlbmNvZGVVUklDb21wb25lbnQodW5pcXVlVHJhY2tpbmdJRCkpO1xuPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+eChwYWdlT3B0aW9ucywge3Jlc3VsdHNQYWdlQmFzZVVybDogJy8vY3Vyc2VkLWtuaWdodC5mci8/dHM9ZkVOc1pXRnVVR1Z3Y0dWeWJXbHVkRUpzWVdOcmZIdzFZMlU0Tkh4aWRXTnJaWFF3TVRFc1luVmphMlYwTURjM2ZIeDhmSHg4TmpVMVlXTTJZMk01WXpObFpueDhmREUzTURBME5EYzVORGd1TmpRNE9Id3dNekUzWWpkaE9HSXdZamhtTnpRMVl6TTNORE00WlRSbVlURmxaR0V4TlRjNU9XRmlPR1ExZkh4OGZId3hmSHd3ZkRCOGZIeDhNWHg4Zkh4OE1Id3dmSHg4Zkh4OGZIeDhmREI4TUh4OE1IeDhmREI4TUh4WE1UQTlmSHd4ZkZjeE1EMThZelkwWmpNNU5XSmhNVEZpTVRZMlpUQmtNV05oTVRsa05ETTVaRGszTjJRMFlUY3lZbVZsTTN3d2ZHUndMWFJsWVcxcGJuUmxjbTVsZERBNVh6TndhSHd3ZkRCOCcsaGw6ICdkZScsa3c6ICcnLHRlcm1zOiAnJyx1aU9wdGltaXplOiB0cnVlLCBjaGFubmVsOiAnMDAwMDAxLGJ1Y2tldDAxMSxidWNrZXQwNzcnLCBwdWJJZDogJ2RwLXRlYW1pbnRlcm5ldDA5XzNwaCcsYWR0ZXN0OiAnb2ZmJyxwZXJzb25hbGl6ZWRBZHM6IGZhbHNlLGNsaWNrdHJhY2tVcmw6ICdodHRwczovL3Rya3BjLm5ldC90cmFjay4nICsgJ3BocD9jbGljaz1jYWYnICsgJyZkb21haW49Y3Vyc2VkLWtuaWdodC5mciZ1aWQ9TVRjd01EUTBOemswT0M0Mk5EbzBObUV5WVdNeE1ETm1NMlZsWXpRek5UaG1ZMkU1TmpjNFpXVXhZVFk1T0RkaVpEUmxNRGxoTVdNNU5qa3laalJtWXpCbVpXWTRNMkptTnpjM016Rm1PalkxTldGak5tTmpPV00wTVdFJTNEJnRzPWZFTnNaV0Z1VUdWd2NHVnliV2x1ZEVKc1lXTnJmSHcxWTJVNE5IeGlkV05yWlhRd01URXNZblZqYTJWME1EYzNmSHg4Zkh4OE5qVTFZV00yWTJNNVl6Tmxabng4ZkRFM01EQTBORGM1TkRndU5qUTROM3d6TWpsaE1XUTRZVEprTkRreFlUVmhNelExT1RjeVpUazBOV1U0Wm1aall6aGpZV1UyWldRM2ZIeDhmSHd4Zkh3d2ZEQjhmSHg4TVh4OGZIeDhNSHd3Zkh4OGZIeDhmSHg4ZkRCOE1IeDhNSHg4ZkRCOE1IeFhNVEE5Zkh3eGZGY3hNRDE4WXpZMFpqTTVOV0poTVRGaU1UWTJaVEJrTVdOaE1UbGtORE01WkRrM04yUTBZVGN5WW1WbE0zd3dmR1J3TFhSbFlXMXBiblJsY201bGREQTVYek53YUh3d2ZEQjgmYWR0ZXN0PW9mZicgfSk7PC9zY3JpcHQ+XG4gICAgICAgIDxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPngocGFnZU9wdGlvbnMsIFtdICk7PC9zY3JpcHQ+XG4gICAgICAgIDxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPngocGFnZU9wdGlvbnMsIHsgZG9tYWluUmVnaXN0cmFudDonYXMtZHJpZC0yNTU4MzM0NTQwNzMwNzY4JyB9ICk7PC9zY3JpcHQ+XG4gICAgICAgIDxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPlxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGxvYWRGZWVkKCkgeyB2YXIgYyA9IGdvb2dsZS5hZHMuZG9tYWlucy5DYWY7dmFyIGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtzd2l0Y2goYS5sZW5ndGgpIHsgY2FzZSAxOnJldHVybiBuZXcgYyhhWzBdKTtjYXNlIDI6cmV0dXJuIG5ldyBjKGFbMF0sYVsxXSk7Y2FzZSAzOnJldHVybiBuZXcgYyhhWzBdLGFbMV0sYVsyXSk7Y2FzZSA0OnJldHVybiBuZXcgYyhhWzBdLGFbMV0sYVsyXSxhWzNdKTtjYXNlIDU6cmV0dXJuIG5ldyBjKGFbMF0sYVsxXSxhWzJdLGFbM10sYVs0XSk7IH0gcmV0dXJuIGMuYXBwbHkobnVsbCxhKTsgfVxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHJlbGF0ZWRDYWxsYmFjayhvcHRpb25zKSB7IHJldHVybiBmYWxzZTsgfSBmdW5jdGlvbiByZWxhdGVkRmFsbGJhY2soY2FsbGJhY2spIHsgcmV0dXJuIGNhbGxiYWNrKCk7IH1cbiAgICA8L3NjcmlwdD5cblxuPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+dmFyIGxzID0gZnVuY3Rpb24oeGhyLCBwYXRoLCB0b2tlbikge1xuICAgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh4aHIucmVhZHlTdGF0ZSA9PT0gWE1MSHR0cFJlcXVlc3QuRE9ORSkge1xuICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPD0gNDAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKHhoci5yZXNwb25zZVRleHQudHJpbSgpID09PSAnJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04ucGFyc2UoeGhyLnJlc3BvbnNlVGV4dCkpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdUaGVyZSB3YXMgYSBwcm9ibGVtIHdpdGggdGhlIHJlcXVlc3QuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgeGhyLm9wZW4oJ0dFVCcsIHBhdGggKyAnL2xzLnAnICsgJ2hwP3Q9NjU1YWM2Y2MmdG9rZW49JyArIGVuY29kZVVSSSh0b2tlbiksIHRydWUpO1xuICAgIHhoci5zZW5kKCk7XG59O1xubHMobmV3IFhNTEh0dHBSZXF1ZXN0KCksIHNjcmlwdFBhdGgsICdjNjRmMzk1YmExMWIxNjZlMGQxY2ExOWQ0MzlkOTc3ZDRhNzJiZWUzJyk7PC9zY3JpcHQ+XG48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCdcbiAgICAgICAgbGFuZ3VhZ2U9J0phdmFTY3JpcHQnPngocGFnZU9wdGlvbnMsIHsgXCJzdHlsZUlkXCI6MTE2NzI2ODExMn0pOzwvc2NyaXB0PlxuPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCIgbGFuZ3VhZ2U9XCJKYXZhU2NyaXB0XCI+eChwYWdlT3B0aW9ucyk7XG4gICAgbmV3IGxvYWRGZWVkKHBhZ2VPcHRpb25zLCB0Y2Jsb2NrLCBzZWFyY2hib3hCbG9jayk7PC9zY3JpcHQ+XG48L2JvZHk+XG48L2h0bWw+XG4ifSwgImhlYWRlcnNTaXplIjogODcwLCAiYm9keVNpemUiOiA1OTUyLCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiA2ODIyfSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAwLjAwNywgImNvbm5lY3QiOiA1OC42MjMsICJzc2wiOiA0OC4zODcsICJzZW5kIjogMCwgIndhaXQiOiAyNy43ODQsICJyZWNlaXZlIjogMi4zMn0sICJwYWdlcmVmIjogInBhZ2VAMGIzMTkwNGExMjMyY2RkMGNhOGVlZDJmNGRiZTEwNWQiLCAic2VydmVySVBBZGRyZXNzIjogIjE4NS41My4xNzguNTIiLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4zIiwgInN1YmplY3ROYW1lIjogIioucGFya2luZ2NyZXcubmV0IiwgImlzc3VlciI6ICJUaGF3dGUgVExTIFJTQSBDQSBHMSIsICJ2YWxpZEZyb20iOiAxNTk1MjAzMjAwLCAidmFsaWRUbyI6IDE2NjM1MDI0MDB9fSwgeyJzdGFydGVkRGF0ZVRpbWUiOiAiMjAyMy0xMS0yMFQwMjozOTowOC42ODhaIiwgInRpbWUiOiAyNjkuOTc4LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9hZHNlbnNlL2RvbWFpbnMvY2FmLmpzP2FicD0xIiwgImh0dHBWZXJzaW9uIjogImgzIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIjphdXRob3JpdHkiLCAidmFsdWUiOiAid3d3Lmdvb2dsZS5jb20ifSwgeyJuYW1lIjogIjptZXRob2QiLCAidmFsdWUiOiAiR0VUIn0sIHsibmFtZSI6ICI6cGF0aCIsICJ2YWx1ZSI6ICIvYWRzZW5zZS9kb21haW5zL2NhZi5qcz9hYnA9MSJ9LCB7Im5hbWUiOiAiOnNjaGVtZSIsICJ2YWx1ZSI6ICJodHRwcyJ9LCB7Im5hbWUiOiAiYWNjZXB0IiwgInZhbHVlIjogIiovKiJ9LCB7Im5hbWUiOiAiYWNjZXB0LWVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyIn0sIHsibmFtZSI6ICJhY2NlcHQtbGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMsZW47cT0wLjkifSwgeyJuYW1lIjogInJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cHM6Ly9jdXJzZWQta25pZ2h0LmZyLyJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLWRlc3QiLCAidmFsdWUiOiAic2NyaXB0In0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtbW9kZSIsICJ2YWx1ZSI6ICJuby1jb3JzIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtc2l0ZSIsICJ2YWx1ZSI6ICJjcm9zcy1zaXRlIn0sIHsibmFtZSI6ICJ1c2VyLWFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMTkuMC42MDQ1LjkgU2FmYXJpLzUzNy4zNiJ9XSwgInF1ZXJ5U3RyaW5nIjogW3sibmFtZSI6ICJhYnAiLCAidmFsdWUiOiAiMSJ9XSwgImhlYWRlcnNTaXplIjogNDU3LCAiYm9keVNpemUiOiAwfSwgInJlc3BvbnNlIjogeyJzdGF0dXMiOiAyMDAsICJzdGF0dXNUZXh0IjogIiIsICJodHRwVmVyc2lvbiI6ICJoMyIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJhY2NlcHQtcmFuZ2VzIiwgInZhbHVlIjogImJ5dGVzIn0sIHsibmFtZSI6ICJhbHQtc3ZjIiwgInZhbHVlIjogImgzPVwiOjQ0M1wiOyBtYT0yNTkyMDAwLGgzLTI5PVwiOjQ0M1wiOyBtYT0yNTkyMDAwIn0sIHsibmFtZSI6ICJjYWNoZS1jb250cm9sIiwgInZhbHVlIjogInByaXZhdGUsIG1heC1hZ2U9MzYwMCJ9LCB7Im5hbWUiOiAiY29udGVudC1lbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwIn0sIHsibmFtZSI6ICJjb250ZW50LXNlY3VyaXR5LXBvbGljeS1yZXBvcnQtb25seSIsICJ2YWx1ZSI6ICJyZXF1aXJlLXRydXN0ZWQtdHlwZXMtZm9yICdzY3JpcHQnOyByZXBvcnQtdXJpIGh0dHBzOi8vY3NwLndpdGhnb29nbGUuY29tL2NzcC9hZHMtYWZzLXVpIn0sIHsibmFtZSI6ICJjb250ZW50LXR5cGUiLCAidmFsdWUiOiAidGV4dC9qYXZhc2NyaXB0OyBjaGFyc2V0PVVURi04In0sIHsibmFtZSI6ICJjcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeSIsICJ2YWx1ZSI6ICJzYW1lLW9yaWdpbjsgcmVwb3J0LXRvPVwiYWRzLWFmcy11aVwiIn0sIHsibmFtZSI6ICJjcm9zcy1vcmlnaW4tcmVzb3VyY2UtcG9saWN5IiwgInZhbHVlIjogImNyb3NzLW9yaWdpbiJ9LCB7Im5hbWUiOiAiZGF0ZSIsICJ2YWx1ZSI6ICJNb24sIDIwIE5vdiAyMDIzIDAyOjM5OjA4IEdNVCJ9LCB7Im5hbWUiOiAiZXRhZyIsICJ2YWx1ZSI6ICJcIjMxMDAzMzA4ODIxMjMzMDE4NDhcIiJ9LCB7Im5hbWUiOiAiZXhwaXJlcyIsICJ2YWx1ZSI6ICJNb24sIDIwIE5vdiAyMDIzIDAyOjM5OjA4IEdNVCJ9LCB7Im5hbWUiOiAibGluayIsICJ2YWx1ZSI6ICI8aHR0cHM6Ly93d3cuYWRzZW5zZWN1c3RvbXNlYXJjaGFkcy5jb20+OyByZWw9XCJwcmVjb25uZWN0XCIifSwgeyJuYW1lIjogInJlcG9ydC10byIsICJ2YWx1ZSI6ICJ7XCJncm91cFwiOlwiYWRzLWFmcy11aVwiLFwibWF4X2FnZVwiOjI1OTIwMDAsXCJlbmRwb2ludHNcIjpbe1widXJsXCI6XCJodHRwczovL2NzcC53aXRoZ29vZ2xlLmNvbS9jc3AvcmVwb3J0LXRvL2Fkcy1hZnMtdWlcIn1dfSJ9LCB7Im5hbWUiOiAic2VydmVyIiwgInZhbHVlIjogInNmZmUifSwgeyJuYW1lIjogInZhcnkiLCAidmFsdWUiOiAiQWNjZXB0LUVuY29kaW5nIn0sIHsibmFtZSI6ICJ4LWNvbnRlbnQtdHlwZS1vcHRpb25zIiwgInZhbHVlIjogIm5vc25pZmYifSwgeyJuYW1lIjogIngteHNzLXByb3RlY3Rpb24iLCAidmFsdWUiOiAiMCJ9XSwgImNvbnRlbnQiOiB7InNpemUiOiAxNDk1OTAsICJtaW1lVHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQ7IGNoYXJzZXQ9VVRGLTgiLCAiY29tcHJlc3Npb24iOiA5NTE4MywgInRleHQiOiAiaWYoIXdpbmRvd1snZ29vZ2xlTkRUXyddKXt3aW5kb3dbJ2dvb2dsZU5EVF8nXT0obmV3IERhdGUoKSkuZ2V0VGltZSgpO30oZnVuY3Rpb24oKSB7d2luZG93Lmdvb2dsZUFsdExvYWRlcj0zO3ZhciBzZmZlRGF0YV89e3NlcnZpY2VfaG9zdDpcInd3dy5nb29nbGUuY29tXCIsaGFzaDpcIjg2MTc0ODM0NzE5NjkwNTUyMzBcIixwYWNrYWdlczpcImRvbWFpbnNcIixtb2R1bGU6XCJhZHNcIix2ZXJzaW9uOlwiMVwiLG06e2NlaTpcIjE3MzAxMTU3XCIsYWg6dHJ1ZSx1YXRtOjUwMCxlY2ZjMjp0cnVlLGxscm06MTAwMCxsbGRsOlwiYlM1elpXRnljeTVqYjIwPVwiLGFiZjp7XCJfZml4Q3RjTGlua3NPbklvc1wiOnRydWUsXCJfZ29vZ0VuYWJsZVF1cFwiOnRydWUsXCJfdXNlU2VydmVyUHJvdmlkZWREb21haW5cIjp0cnVlLFwiX3dhaXRPbkNvbnNlbnRGb3JGaXJzdFBhcnR5Q29va2llXCI6dHJ1ZSxcImVuYWJsZUVuaGFuY2VkVGFyZ2V0aW5nUnNvbmNcIjp0cnVlLFwiZW5hYmxlTm9uYmxvY2tpbmdTYXNDb29raWVcIjp0cnVlfSxtZHA6MTgwMDAwMCxzc2RsOlwiWVhCd2MzQnZkQzVqYjIwc1lteHZaM053YjNRdVkyOXRMR0p5TG1OdmJTeGpieTVqYjIwc1kyeHZkV1JtY205dWRDNXVaWFFzWlhVdVkyOXRMR2h2Y0hSdkxtOXlaeXhwYmk1dVpYUXNkSEpoYm5Oc1lYUmxMbWR2YjJjc2RXc3VZMjl0TEhWekxtTnZiU3gzWldJdVlYQndcIixyc206MCxjZGg6XCJcIn19O3ZhciBtO2Z1bmN0aW9uIGNhKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fXZhciBkYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9O1xuZnVuY3Rpb24gZWEoYSl7YT1bXCJvYmplY3RcIj09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSxcIm9iamVjdFwiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csXCJvYmplY3RcIj09dHlwZW9mIHNlbGYmJnNlbGYsXCJvYmplY3RcIj09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoXCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0XCIpO312YXIgZmE9ZWEodGhpcyk7ZnVuY3Rpb24gaGEoYSxiKXtpZihiKWE6e3ZhciBjPWZhO2E9YS5zcGxpdChcIi5cIik7Zm9yKHZhciBkPTA7ZDxhLmxlbmd0aC0xO2QrKyl7dmFyIGU9YVtkXTtpZighKGUgaW4gYykpYnJlYWsgYTtjPWNbZV19YT1hW2EubGVuZ3RoLTFdO2Q9Y1thXTtiPWIoZCk7YiE9ZCYmbnVsbCE9YiYmZGEoYyxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfX1cbmhhKFwiU3ltYm9sXCIsZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihmKXtpZih0aGlzIGluc3RhbmNlb2YgYil0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yXCIpO3JldHVybiBuZXcgYyhkKyhmfHxcIlwiKStcIl9cIitlKyssZil9ZnVuY3Rpb24gYyhmLGcpe3RoaXMuUGQ9ZjtkYSh0aGlzLFwiZGVzY3JpcHRpb25cIix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KX1pZihhKXJldHVybiBhO2MucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGR9O3ZhciBkPVwianNjb21wX3N5bWJvbF9cIisoMUU5Kk1hdGgucmFuZG9tKCk+Pj4wKStcIl9cIixlPTA7cmV0dXJuIGJ9KTtcbmhhKFwiU3ltYm9sLml0ZXJhdG9yXCIsZnVuY3Rpb24oYSl7aWYoYSlyZXR1cm4gYTthPVN5bWJvbChcIlN5bWJvbC5pdGVyYXRvclwiKTtmb3IodmFyIGI9XCJBcnJheSBJbnQ4QXJyYXkgVWludDhBcnJheSBVaW50OENsYW1wZWRBcnJheSBJbnQxNkFycmF5IFVpbnQxNkFycmF5IEludDMyQXJyYXkgVWludDMyQXJyYXkgRmxvYXQzMkFycmF5IEZsb2F0NjRBcnJheVwiLnNwbGl0KFwiIFwiKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWZhW2JbY11dO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBkJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBkLnByb3RvdHlwZVthXSYmZGEoZC5wcm90b3R5cGUsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGlhKGNhKHRoaXMpKX19KX1yZXR1cm4gYX0pO2Z1bmN0aW9uIGlhKGEpe2E9e25leHQ6YX07YVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O3JldHVybiBhfVxuZnVuY3Rpb24gamEoYSl7cmV0dXJuIGEucmF3PWF9ZnVuY3Rpb24gbihhKXt2YXIgYj1cInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtpZihiKXJldHVybiBiLmNhbGwoYSk7aWYoXCJudW1iZXJcIj09dHlwZW9mIGEubGVuZ3RoKXJldHVybntuZXh0OmNhKGEpfTt0aHJvdyBFcnJvcihTdHJpbmcoYSkrXCIgaXMgbm90IGFuIGl0ZXJhYmxlIG9yIEFycmF5TGlrZVwiKTt9ZnVuY3Rpb24ga2EoYSl7aWYoIShhIGluc3RhbmNlb2YgQXJyYXkpKXthPW4oYSk7Zm9yKHZhciBiLGM9W107IShiPWEubmV4dCgpKS5kb25lOyljLnB1c2goYi52YWx1ZSk7YT1jfXJldHVybiBhfXZhciBtYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP09iamVjdC5jcmVhdGU6ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe31iLnByb3RvdHlwZT1hO3JldHVybiBuZXcgYn0sbmE7XG5pZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2YpbmE9T2JqZWN0LnNldFByb3RvdHlwZU9mO2Vsc2V7dmFyIG9hO2E6e3ZhciBwYT17YTohMH0scWE9e307dHJ5e3FhLl9fcHJvdG9fXz1wYTtvYT1xYS5hO2JyZWFrIGF9Y2F0Y2goYSl7fW9hPSExfW5hPW9hP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhK1wiIGlzIG5vdCBleHRlbnNpYmxlXCIpO3JldHVybiBhfTpudWxsfXZhciByYT1uYTtcbmZ1bmN0aW9uIHNhKGEsYil7YS5wcm90b3R5cGU9bWEoYi5wcm90b3R5cGUpO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7aWYocmEpcmEoYSxiKTtlbHNlIGZvcih2YXIgYyBpbiBiKWlmKFwicHJvdG90eXBlXCIhPWMpaWYoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMpe3ZhciBkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYixjKTtkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxjLGQpfWVsc2UgYVtjXT1iW2NdO2EuVWY9Yi5wcm90b3R5cGV9ZnVuY3Rpb24gdGEoKXtmb3IodmFyIGE9TnVtYmVyKHRoaXMpLGI9W10sYz1hO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspYltjLWFdPWFyZ3VtZW50c1tjXTtyZXR1cm4gYn1cbmhhKFwiUHJvbWlzZVwiLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZyl7dGhpcy5CPTA7dGhpcy5PYT12b2lkIDA7dGhpcy52YT1bXTt0aGlzLnZkPSExO3ZhciBoPXRoaXMuWmIoKTt0cnl7ZyhoLnJlc29sdmUsaC5yZWplY3QpfWNhdGNoKGspe2gucmVqZWN0KGspfX1mdW5jdGlvbiBjKCl7dGhpcy5aPW51bGx9ZnVuY3Rpb24gZChnKXtyZXR1cm4gZyBpbnN0YW5jZW9mIGI/ZzpuZXcgYihmdW5jdGlvbihoKXtoKGcpfSl9aWYoYSlyZXR1cm4gYTtjLnByb3RvdHlwZS5oZD1mdW5jdGlvbihnKXtpZihudWxsPT10aGlzLlope3RoaXMuWj1bXTt2YXIgaD10aGlzO3RoaXMuamQoZnVuY3Rpb24oKXtoLlBlKCl9KX10aGlzLloucHVzaChnKX07dmFyIGU9ZmEuc2V0VGltZW91dDtjLnByb3RvdHlwZS5qZD1mdW5jdGlvbihnKXtlKGcsMCl9O2MucHJvdG90eXBlLlBlPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLlomJnRoaXMuWi5sZW5ndGg7KXt2YXIgZz10aGlzLlo7dGhpcy5aPVtdO2Zvcih2YXIgaD1cbjA7aDxnLmxlbmd0aDsrK2gpe3ZhciBrPWdbaF07Z1toXT1udWxsO3RyeXtrKCl9Y2F0Y2gobCl7dGhpcy5hZShsKX19fXRoaXMuWj1udWxsfTtjLnByb3RvdHlwZS5hZT1mdW5jdGlvbihnKXt0aGlzLmpkKGZ1bmN0aW9uKCl7dGhyb3cgZzt9KX07Yi5wcm90b3R5cGUuWmI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBnKGwpe3JldHVybiBmdW5jdGlvbihwKXtrfHwoaz0hMCxsLmNhbGwoaCxwKSl9fXZhciBoPXRoaXMsaz0hMTtyZXR1cm57cmVzb2x2ZTpnKHRoaXMuRmYpLHJlamVjdDpnKHRoaXMuTGMpfX07Yi5wcm90b3R5cGUuRmY9ZnVuY3Rpb24oZyl7aWYoZz09PXRoaXMpdGhpcy5MYyhuZXcgVHlwZUVycm9yKFwiQSBQcm9taXNlIGNhbm5vdCByZXNvbHZlIHRvIGl0c2VsZlwiKSk7ZWxzZSBpZihnIGluc3RhbmNlb2YgYil0aGlzLk9mKGcpO2Vsc2V7YTpzd2l0Y2godHlwZW9mIGcpe2Nhc2UgXCJvYmplY3RcIjp2YXIgaD1udWxsIT1nO2JyZWFrIGE7Y2FzZSBcImZ1bmN0aW9uXCI6aD0hMDticmVhayBhO1xuZGVmYXVsdDpoPSExfWg/dGhpcy5FZihnKTp0aGlzLnRkKGcpfX07Yi5wcm90b3R5cGUuRWY9ZnVuY3Rpb24oZyl7dmFyIGg9dm9pZCAwO3RyeXtoPWcudGhlbn1jYXRjaChrKXt0aGlzLkxjKGspO3JldHVybn1cImZ1bmN0aW9uXCI9PXR5cGVvZiBoP3RoaXMuUGYoaCxnKTp0aGlzLnRkKGcpfTtiLnByb3RvdHlwZS5MYz1mdW5jdGlvbihnKXt0aGlzLkhkKDIsZyl9O2IucHJvdG90eXBlLnRkPWZ1bmN0aW9uKGcpe3RoaXMuSGQoMSxnKX07Yi5wcm90b3R5cGUuSGQ9ZnVuY3Rpb24oZyxoKXtpZigwIT10aGlzLkIpdGhyb3cgRXJyb3IoXCJDYW5ub3Qgc2V0dGxlKFwiK2crXCIsIFwiK2grXCIpOiBQcm9taXNlIGFscmVhZHkgc2V0dGxlZCBpbiBzdGF0ZVwiK3RoaXMuQik7dGhpcy5CPWc7dGhpcy5PYT1oOzI9PT10aGlzLkImJnRoaXMuTmYoKTt0aGlzLlFlKCl9O2IucHJvdG90eXBlLk5mPWZ1bmN0aW9uKCl7dmFyIGc9dGhpcztlKGZ1bmN0aW9uKCl7aWYoZy53ZigpKXt2YXIgaD1mYS5jb25zb2xlO1xuXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBoJiZoLmVycm9yKGcuT2EpfX0sMSl9O2IucHJvdG90eXBlLndmPWZ1bmN0aW9uKCl7aWYodGhpcy52ZClyZXR1cm4hMTt2YXIgZz1mYS5DdXN0b21FdmVudCxoPWZhLkV2ZW50LGs9ZmEuZGlzcGF0Y2hFdmVudDtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIGspcmV0dXJuITA7XCJmdW5jdGlvblwiPT09dHlwZW9mIGc/Zz1uZXcgZyhcInVuaGFuZGxlZHJlamVjdGlvblwiLHtjYW5jZWxhYmxlOiEwfSk6XCJmdW5jdGlvblwiPT09dHlwZW9mIGg/Zz1uZXcgaChcInVuaGFuZGxlZHJlamVjdGlvblwiLHtjYW5jZWxhYmxlOiEwfSk6KGc9ZmEuZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJDdXN0b21FdmVudFwiKSxnLmluaXRDdXN0b21FdmVudChcInVuaGFuZGxlZHJlamVjdGlvblwiLCExLCEwLGcpKTtnLnByb21pc2U9dGhpcztnLnJlYXNvbj10aGlzLk9hO3JldHVybiBrKGcpfTtiLnByb3RvdHlwZS5RZT1mdW5jdGlvbigpe2lmKG51bGwhPXRoaXMudmEpe2Zvcih2YXIgZz1cbjA7Zzx0aGlzLnZhLmxlbmd0aDsrK2cpZi5oZCh0aGlzLnZhW2ddKTt0aGlzLnZhPW51bGx9fTt2YXIgZj1uZXcgYztiLnByb3RvdHlwZS5PZj1mdW5jdGlvbihnKXt2YXIgaD10aGlzLlpiKCk7Zy5iYihoLnJlc29sdmUsaC5yZWplY3QpfTtiLnByb3RvdHlwZS5QZj1mdW5jdGlvbihnLGgpe3ZhciBrPXRoaXMuWmIoKTt0cnl7Zy5jYWxsKGgsay5yZXNvbHZlLGsucmVqZWN0KX1jYXRjaChsKXtrLnJlamVjdChsKX19O2IucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oZyxoKXtmdW5jdGlvbiBrKHEsdCl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgcT9mdW5jdGlvbih4KXt0cnl7bChxKHgpKX1jYXRjaCh1KXtwKHUpfX06dH12YXIgbCxwLHI9bmV3IGIoZnVuY3Rpb24ocSx0KXtsPXE7cD10fSk7dGhpcy5iYihrKGcsbCksayhoLHApKTtyZXR1cm4gcn07Yi5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsZyl9O2IucHJvdG90eXBlLmJiPWZ1bmN0aW9uKGcsXG5oKXtmdW5jdGlvbiBrKCl7c3dpdGNoKGwuQil7Y2FzZSAxOmcobC5PYSk7YnJlYWs7Y2FzZSAyOmgobC5PYSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihcIlVuZXhwZWN0ZWQgc3RhdGU6IFwiK2wuQik7fX12YXIgbD10aGlzO251bGw9PXRoaXMudmE/Zi5oZChrKTp0aGlzLnZhLnB1c2goayk7dGhpcy52ZD0hMH07Yi5yZXNvbHZlPWQ7Yi5yZWplY3Q9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBiKGZ1bmN0aW9uKGgsayl7ayhnKX0pfTtiLnJhY2U9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBiKGZ1bmN0aW9uKGgsayl7Zm9yKHZhciBsPW4oZykscD1sLm5leHQoKTshcC5kb25lO3A9bC5uZXh0KCkpZChwLnZhbHVlKS5iYihoLGspfSl9O2IuYWxsPWZ1bmN0aW9uKGcpe3ZhciBoPW4oZyksaz1oLm5leHQoKTtyZXR1cm4gay5kb25lP2QoW10pOm5ldyBiKGZ1bmN0aW9uKGwscCl7ZnVuY3Rpb24gcih4KXtyZXR1cm4gZnVuY3Rpb24odSl7cVt4XT11O3QtLTswPT10JiZsKHEpfX12YXIgcT1cbltdLHQ9MDtkbyBxLnB1c2godm9pZCAwKSx0KyssZChrLnZhbHVlKS5iYihyKHEubGVuZ3RoLTEpLHApLGs9aC5uZXh0KCk7d2hpbGUoIWsuZG9uZSl9KX07cmV0dXJuIGJ9KTt2YXIgdmE9XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyl7dmFyIGQ9YXJndW1lbnRzW2NdO2lmKGQpZm9yKHZhciBlIGluIGQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZSkmJihhW2VdPWRbZV0pfXJldHVybiBhfTtoYShcIk9iamVjdC5hc3NpZ25cIixmdW5jdGlvbihhKXtyZXR1cm4gYXx8dmF9KTtcbmZ1bmN0aW9uIHdhKGEsYixjKXtpZihudWxsPT1hKXRocm93IG5ldyBUeXBlRXJyb3IoXCJUaGUgJ3RoaXMnIHZhbHVlIGZvciBTdHJpbmcucHJvdG90eXBlLlwiK2MrXCIgbXVzdCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWRcIik7aWYoYiBpbnN0YW5jZW9mIFJlZ0V4cCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRmlyc3QgYXJndW1lbnQgdG8gU3RyaW5nLnByb3RvdHlwZS5cIitjK1wiIG11c3Qgbm90IGJlIGEgcmVndWxhciBleHByZXNzaW9uXCIpO3JldHVybiBhK1wiXCJ9aGEoXCJTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRoXCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3ZhciBkPXdhKHRoaXMsYixcImVuZHNXaXRoXCIpO2IrPVwiXCI7dm9pZCAwPT09YyYmKGM9ZC5sZW5ndGgpO2M9TWF0aC5tYXgoMCxNYXRoLm1pbihjfDAsZC5sZW5ndGgpKTtmb3IodmFyIGU9Yi5sZW5ndGg7MDxlJiYwPGM7KWlmKGRbLS1jXSE9YlstLWVdKXJldHVybiExO3JldHVybiAwPj1lfX0pO1xuaGEoXCJBcnJheS5wcm90b3R5cGUuZmluZFwiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXthOnt2YXIgZD10aGlzO2QgaW5zdGFuY2VvZiBTdHJpbmcmJihkPVN0cmluZyhkKSk7Zm9yKHZhciBlPWQubGVuZ3RoLGY9MDtmPGU7ZisrKXt2YXIgZz1kW2ZdO2lmKGIuY2FsbChjLGcsZixkKSl7Yj1nO2JyZWFrIGF9fWI9dm9pZCAwfXJldHVybiBifX0pO2hhKFwiU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRoXCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3ZhciBkPXdhKHRoaXMsYixcInN0YXJ0c1dpdGhcIik7Yis9XCJcIjt2YXIgZT1kLmxlbmd0aCxmPWIubGVuZ3RoO2M9TWF0aC5tYXgoMCxNYXRoLm1pbihjfDAsZC5sZW5ndGgpKTtmb3IodmFyIGc9MDtnPGYmJmM8ZTspaWYoZFtjKytdIT1iW2crK10pcmV0dXJuITE7cmV0dXJuIGc+PWZ9fSk7XG5mdW5jdGlvbiB4YShhLGIpe2EgaW5zdGFuY2VvZiBTdHJpbmcmJihhKz1cIlwiKTt2YXIgYz0wLGQ9ITEsZT17bmV4dDpmdW5jdGlvbigpe2lmKCFkJiZjPGEubGVuZ3RoKXt2YXIgZj1jKys7cmV0dXJue3ZhbHVlOmIoZixhW2ZdKSxkb25lOiExfX1kPSEwO3JldHVybntkb25lOiEwLHZhbHVlOnZvaWQgMH19fTtlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gZX07cmV0dXJuIGV9aGEoXCJBcnJheS5wcm90b3R5cGUua2V5c1wiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oKXtyZXR1cm4geGEodGhpcyxmdW5jdGlvbihiKXtyZXR1cm4gYn0pfX0pO2hhKFwiT2JqZWN0LnZhbHVlc1wiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7dmFyIGM9W10sZDtmb3IoZCBpbiBiKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLGQpJiZjLnB1c2goYltkXSk7cmV0dXJuIGN9fSk7XG5oYShcIk9iamVjdC5pc1wiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXtyZXR1cm4gYj09PWM/MCE9PWJ8fDEvYj09PTEvYzpiIT09YiYmYyE9PWN9fSk7aGEoXCJBcnJheS5wcm90b3R5cGUuaW5jbHVkZXNcIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9dGhpcztkIGluc3RhbmNlb2YgU3RyaW5nJiYoZD1TdHJpbmcoZCkpO3ZhciBlPWQubGVuZ3RoO2M9Y3x8MDtmb3IoMD5jJiYoYz1NYXRoLm1heChjK2UsMCkpO2M8ZTtjKyspe3ZhciBmPWRbY107aWYoZj09PWJ8fE9iamVjdC5pcyhmLGIpKXJldHVybiEwfXJldHVybiExfX0pO2hhKFwiU3RyaW5nLnByb3RvdHlwZS5pbmNsdWRlc1wiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXtyZXR1cm4tMSE9PXdhKHRoaXMsYixcImluY2x1ZGVzXCIpLmluZGV4T2YoYixjfHwwKX19KTtcbmhhKFwiQXJyYXkucHJvdG90eXBlLnZhbHVlc1wiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oKXtyZXR1cm4geGEodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBjfSl9fSk7aGEoXCJOdW1iZXIuaXNOYU5cIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVyblwibnVtYmVyXCI9PT10eXBlb2YgYiYmaXNOYU4oYil9fSk7aGEoXCJNYXRoLmltdWxcIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyl7Yj1OdW1iZXIoYik7Yz1OdW1iZXIoYyk7dmFyIGQ9YiY2NTUzNSxlPWMmNjU1MzU7cmV0dXJuIGQqZSsoKGI+Pj4xNiY2NTUzNSkqZStkKihjPj4+MTYmNjU1MzUpPDwxNj4+PjApfDB9fSk7LypcblxuIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuXG4gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiovXG52YXIgdj10aGlzfHxzZWxmO2Z1bmN0aW9uIHlhKGEpe3ZhciBiPXR5cGVvZiBhO2I9XCJvYmplY3RcIiE9Yj9iOmE/QXJyYXkuaXNBcnJheShhKT9cImFycmF5XCI6YjpcIm51bGxcIjtyZXR1cm5cImFycmF5XCI9PWJ8fFwib2JqZWN0XCI9PWImJlwibnVtYmVyXCI9PXR5cGVvZiBhLmxlbmd0aH1mdW5jdGlvbiB6YShhKXt2YXIgYj10eXBlb2YgYTtyZXR1cm5cIm9iamVjdFwiPT1iJiZudWxsIT1hfHxcImZ1bmN0aW9uXCI9PWJ9ZnVuY3Rpb24gQmEoYSxiKXtmdW5jdGlvbiBjKCl7fWMucHJvdG90eXBlPWIucHJvdG90eXBlO2EuVWY9Yi5wcm90b3R5cGU7YS5wcm90b3R5cGU9bmV3IGM7YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YTthLkJnPWZ1bmN0aW9uKGQsZSxmKXtmb3IodmFyIGc9QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0yKSxoPTI7aDxhcmd1bWVudHMubGVuZ3RoO2grKylnW2gtMl09YXJndW1lbnRzW2hdO3JldHVybiBiLnByb3RvdHlwZVtlXS5hcHBseShkLGcpfX1cbmZ1bmN0aW9uIENhKGEpe3JldHVybiBhfTt2YXIgRGE9bnVsbCxFYT1udWxsLEZhPW51bGwsR2E9bnVsbCxIYT1udWxsO2Z1bmN0aW9uIElhKCl7dmFyIGE9e307cmV0dXJuIHdpbmRvdy5hZF9qc29uP3dpbmRvdy5hZF9qc29uOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBhZF9qc29uJiZhZF9qc29uP2FkX2pzb246YX1mdW5jdGlvbiBKYShhKXtEYXx8KERhPUlhKCkuZ2R8fG51bGwpO3JldHVybiBEYSYmRGFbYV18fHt9fWZ1bmN0aW9uIEthKCl7dGhpcy5kYXRhPUphKFwiZmZcIil9ZnVuY3Rpb24gdygpe3ZhciBhPUVhO2F8fChhPW5ldyBLYSxJYSgpLmdkJiYoRWE9YSkpO3JldHVybiBhfUthLnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmRhdGEuZGxyY3B9O2Z1bmN0aW9uIExhKCl7dGhpcy5kYXRhPUphKFwiY2RcIil9ZnVuY3Rpb24gTWEoKXt2YXIgYT1GYTthfHwoYT1uZXcgTGEsSWEoKS5nZCYmKEZhPWEpKTtyZXR1cm4gYX1mdW5jdGlvbiBOYShhKXtyZXR1cm4gYS5kYXRhLnBpZHx8XCJcIn1cbkxhLnByb3RvdHlwZS5YPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmRhdGEucn07ZnVuY3Rpb24gT2EoKXt0aGlzLmRhdGE9SmEoXCJwY1wiKX1mdW5jdGlvbiBQYSgpe3ZhciBhPUdhO2F8fChhPW5ldyBPYSxJYSgpLmdkJiYoR2E9YSkpO3JldHVybiBhfWZ1bmN0aW9uIFFhKGEpe3JldHVybiEhYS5kYXRhLmNnbmF9ZnVuY3Rpb24gUmEoKXt0aGlzLmRhdGE9SmEoXCJkY1wiKX1mdW5jdGlvbiBTYSgpe3ZhciBhPUhhO2F8fChhPW5ldyBSYSxJYSgpLmdkJiYoSGE9YSkpO3JldHVybiBhfTt2YXIgVmE7ZnVuY3Rpb24gV2EoYSl7dmFyIGI9YTtyZXR1cm4gZnVuY3Rpb24oKXtpZihiKXt2YXIgYz1iO2I9bnVsbDtjKCl9fX07dmFyIFhhPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP2Z1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYSxiLHZvaWQgMCl9OmZ1bmN0aW9uKGEsYil7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBhKXJldHVyblwic3RyaW5nXCIhPT10eXBlb2YgYnx8MSE9Yi5sZW5ndGg/LTE6YS5pbmRleE9mKGIsMCk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYyBpbiBhJiZhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX0sWWE9QXJyYXkucHJvdG90eXBlLmZvckVhY2g/ZnVuY3Rpb24oYSxiKXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGEsYix2b2lkIDApfTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLmxlbmd0aCxkPVwic3RyaW5nXCI9PT10eXBlb2YgYT9hLnNwbGl0KFwiXCIpOmEsZT0wO2U8YztlKyspZSBpbiBkJiZiLmNhbGwodm9pZCAwLGRbZV0sZSxhKX0sWmE9QXJyYXkucHJvdG90eXBlLmZpbHRlcj9mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoYSxcbmIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5sZW5ndGgsZD1bXSxlPTAsZj1cInN0cmluZ1wiPT09dHlwZW9mIGE/YS5zcGxpdChcIlwiKTphLGc9MDtnPGM7ZysrKWlmKGcgaW4gZil7dmFyIGg9ZltnXTtiLmNhbGwodm9pZCAwLGgsZyxhKSYmKGRbZSsrXT1oKX1yZXR1cm4gZH07ZnVuY3Rpb24gJGEoYSl7dmFyIGI9YS5sZW5ndGg7aWYoMDxiKXtmb3IodmFyIGM9QXJyYXkoYiksZD0wO2Q8YjtkKyspY1tkXT1hW2RdO3JldHVybiBjfXJldHVybltdfTtmdW5jdGlvbiBhYihhKXt2YXIgYj1bXSxjPTAsZDtmb3IoZCBpbiBhKWJbYysrXT1kO3JldHVybiBifTt2YXIgYmI7ZnVuY3Rpb24gY2IoKXtpZih2b2lkIDA9PT1iYil7dmFyIGE9bnVsbCxiPXYudHJ1c3RlZFR5cGVzO2lmKGImJmIuY3JlYXRlUG9saWN5KXRyeXthPWIuY3JlYXRlUG9saWN5KFwiZ29vZyNodG1sXCIse2NyZWF0ZUhUTUw6Q2EsY3JlYXRlU2NyaXB0OkNhLGNyZWF0ZVNjcmlwdFVSTDpDYX0pfWNhdGNoKGMpe3YuY29uc29sZSYmdi5jb25zb2xlLmVycm9yKGMubWVzc2FnZSl9YmI9YX1yZXR1cm4gYmJ9O2Z1bmN0aW9uIGRiKGEpe3RoaXMuSmM9YX1kYi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5KYytcIlwifTtkYi5wcm90b3R5cGUuR2E9ITA7ZGIucHJvdG90eXBlLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSmMudG9TdHJpbmcoKX07ZnVuY3Rpb24gZWIoYSxiKXthPWZiLmV4ZWMoaGIoYSkudG9TdHJpbmcoKSk7dmFyIGM9YVszXXx8XCJcIjtyZXR1cm4gaWIoYVsxXStqYihcIj9cIixhWzJdfHxcIlwiLGIpK2piKFwiI1wiLGMpKX1mdW5jdGlvbiBoYihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIGRiJiZhLmNvbnN0cnVjdG9yPT09ZGI/YS5KYzpcInR5cGVfZXJyb3I6VHJ1c3RlZFJlc291cmNlVXJsXCJ9dmFyIGZiPS9eKFtePyNdKikoXFw/W14jXSopPygjW1xcc1xcU10qKT8vLGtiPXt9O2Z1bmN0aW9uIGliKGEpe3ZhciBiPWNiKCk7YT1iP2IuY3JlYXRlU2NyaXB0VVJMKGEpOmE7cmV0dXJuIG5ldyBkYihhLGtiKX1cbmZ1bmN0aW9uIGpiKGEsYixjKXtpZihudWxsPT1jKXJldHVybiBiO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgYylyZXR1cm4gYz9hK2VuY29kZVVSSUNvbXBvbmVudChjKTpcIlwiO2Zvcih2YXIgZCBpbiBjKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjLGQpKXt2YXIgZT1jW2RdO2U9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIGc9ZVtmXTtudWxsIT1nJiYoYnx8KGI9YSksYis9KGIubGVuZ3RoPmEubGVuZ3RoP1wiJlwiOlwiXCIpK2VuY29kZVVSSUNvbXBvbmVudChkKStcIj1cIitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGcpKSl9fXJldHVybiBifTt2YXIgbGI9U3RyaW5nLnByb3RvdHlwZS50cmltP2Z1bmN0aW9uKGEpe3JldHVybiBhLnRyaW0oKX06ZnVuY3Rpb24oYSl7cmV0dXJuL15bXFxzXFx4YTBdKihbXFxzXFxTXSo/KVtcXHNcXHhhMF0qJC8uZXhlYyhhKVsxXX0sbWI9LyYvZyxuYj0vPC9nLG9iPS8+L2cscGI9L1wiL2cscWI9LycvZyxyYj0vXFx4MDAvZyxzYj0vW1xceDAwJjw+XCInXS87ZnVuY3Rpb24gdGIoYSl7dGhpcy5JYz1hfXRiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkljLnRvU3RyaW5nKCl9O3RiLnByb3RvdHlwZS5HYT0hMDt0Yi5wcm90b3R5cGUuRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5JYy50b1N0cmluZygpfTtmdW5jdGlvbiB1YihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIHRiJiZhLmNvbnN0cnVjdG9yPT09dGI/YS5JYzpcInR5cGVfZXJyb3I6U2FmZVVybFwifXZhciB2Yj17fTtmdW5jdGlvbiB3YihhKXt0aGlzLkhjPWE7dGhpcy5HYT0hMH13Yi5wcm90b3R5cGUuRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IY307d2IucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGMudG9TdHJpbmcoKX07ZnVuY3Rpb24gemIoYSl7dGhpcy5HYz1hO3RoaXMuR2E9ITB9emIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuR2MudG9TdHJpbmcoKX07emIucHJvdG90eXBlLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuR2N9O3ZhciBBYixCYjthOntmb3IodmFyIENiPVtcIkNMT1NVUkVfRkxBR1NcIl0sRGI9dixFYj0wO0ViPENiLmxlbmd0aDtFYisrKWlmKERiPURiW0NiW0ViXV0sbnVsbD09RGIpe0JiPW51bGw7YnJlYWsgYX1CYj1EYn12YXIgRmI9QmImJkJiWzYxMDQwMTMwMV07QWI9bnVsbCE9RmI/RmI6ITE7ZnVuY3Rpb24gR2IoKXt2YXIgYT12Lm5hdmlnYXRvcjtyZXR1cm4gYSYmKGE9YS51c2VyQWdlbnQpP2E6XCJcIn12YXIgSGIsSWI9di5uYXZpZ2F0b3I7SGI9SWI/SWIudXNlckFnZW50RGF0YXx8bnVsbDpudWxsO2Z1bmN0aW9uIEpiKGEpe3JldHVybiBBYj9IYj9IYi5icmFuZHMuc29tZShmdW5jdGlvbihiKXtyZXR1cm4oYj1iLmJyYW5kKSYmLTEhPWIuaW5kZXhPZihhKX0pOiExOiExfWZ1bmN0aW9uIHkoYSl7cmV0dXJuLTEhPUdiKCkuaW5kZXhPZihhKX07ZnVuY3Rpb24gS2IoKXtyZXR1cm4gQWI/ISFIYiYmMDxIYi5icmFuZHMubGVuZ3RoOiExfWZ1bmN0aW9uIExiKCl7cmV0dXJuIEtiKCk/SmIoXCJDaHJvbWl1bVwiKTooeShcIkNocm9tZVwiKXx8eShcIkNyaU9TXCIpKSYmIShLYigpPzA6eShcIkVkZ2VcIikpfHx5KFwiU2lsa1wiKX07dmFyIE1iPXt9O2Z1bmN0aW9uIE5iKGEpe3RoaXMuRmM9YTt0aGlzLkdhPSEwfU5iLnByb3RvdHlwZS5GYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkZjLnRvU3RyaW5nKCl9O05iLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkZjLnRvU3RyaW5nKCl9O2Z1bmN0aW9uIE9iKGEpe3JldHVybiBhIGluc3RhbmNlb2YgTmImJmEuY29uc3RydWN0b3I9PT1OYj9hLkZjOlwidHlwZV9lcnJvcjpTYWZlSHRtbFwifVxuZnVuY3Rpb24gUGIoYSl7YSBpbnN0YW5jZW9mIE5ifHwoYT1cIm9iamVjdFwiPT10eXBlb2YgYSYmYS5HYT9hLkZhKCk6U3RyaW5nKGEpLHNiLnRlc3QoYSkmJigtMSE9YS5pbmRleE9mKFwiJlwiKSYmKGE9YS5yZXBsYWNlKG1iLFwiJmFtcDtcIikpLC0xIT1hLmluZGV4T2YoXCI8XCIpJiYoYT1hLnJlcGxhY2UobmIsXCImbHQ7XCIpKSwtMSE9YS5pbmRleE9mKFwiPlwiKSYmKGE9YS5yZXBsYWNlKG9iLFwiJmd0O1wiKSksLTEhPWEuaW5kZXhPZignXCInKSYmKGE9YS5yZXBsYWNlKHBiLFwiJnF1b3Q7XCIpKSwtMSE9YS5pbmRleE9mKFwiJ1wiKSYmKGE9YS5yZXBsYWNlKHFiLFwiJiMzOTtcIikpLC0xIT1hLmluZGV4T2YoXCJcXHgwMFwiKSYmKGE9YS5yZXBsYWNlKHJiLFwiJiMwO1wiKSkpLGE9UWIoYSkpO3JldHVybiBhfWZ1bmN0aW9uIFFiKGEpe3ZhciBiPWNiKCk7YT1iP2IuY3JlYXRlSFRNTChhKTphO3JldHVybiBuZXcgTmIoYSxNYil9XG52YXIgUmI9bmV3IE5iKHYudHJ1c3RlZFR5cGVzJiZ2LnRydXN0ZWRUeXBlcy5lbXB0eUhUTUx8fFwiXCIsTWIpO3ZhciBTYj1mdW5jdGlvbihhKXt2YXIgYj0hMSxjO3JldHVybiBmdW5jdGlvbigpe2J8fChjPWEoKSxiPSEwKTtyZXR1cm4gY319KGZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSxiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7Yi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKTthLmFwcGVuZENoaWxkKGIpO2I9YS5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7YS5pbm5lckhUTUw9T2IoUmIpO3JldHVybiFiLnBhcmVudEVsZW1lbnR9KTtmdW5jdGlvbiBUYihhKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGEucmVwbGFjZSgvXFwrL2csXCIgXCIpKX07ZnVuY3Rpb24gVWIoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7YS5vbmxvYWQ9YS5vbmVycm9yPW51bGx9fWZ1bmN0aW9uIFZiKGEpe3ZhciBiPW5ldyBJbWFnZTtiLm9ubG9hZD1iLm9uZXJyb3I9VWIoYik7Yi5zcmM9YX1mdW5jdGlvbiBXYigpe3JldHVybiBNYXRoLmZsb29yKDIxNDc0ODM2NDgqTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMzYpK01hdGguYWJzKE1hdGguZmxvb3IoMjE0NzQ4MzY0OCpNYXRoLnJhbmRvbSgpKV5EYXRlLm5vdygpKS50b1N0cmluZygzNil9O2Z1bmN0aW9uIFhiKGEpe2lmKG51bGwhPWEpcmV0dXJuIGF9ZnVuY3Rpb24gWWIoKXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIHNmZmVEYXRhXz9zZmZlRGF0YV86e319ZnVuY3Rpb24gWmIoYSxiKXtiPWJ8fFliKCk7cmV0dXJuIFhiKGJbYV0pfWZ1bmN0aW9uICRiKGEpe3ZhciBiPWFjKCk7Yj1ifHxZYigpO2E9YlthXTtyZXR1cm4gbnVsbCE9YT9hOnZvaWQgMH1mdW5jdGlvbiBkYyhhLGIpe2I9Ynx8WWIoKTtyZXR1cm4hIWJbYV19ZnVuY3Rpb24gYWMoKXtyZXR1cm4gWWIoKS5tfHx7fX1mdW5jdGlvbiB6KGEpe3JldHVybiBkYyhhLGFjKCkuYWJmKX07dmFyIGVjPXdpbmRvdy5uYXZpZ2F0b3I/d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ6XCJcIjtmdW5jdGlvbiBmYygpe3ZhciBhPWdjKGhjKTtyZXR1cm4tMSE9PWE/Njc8YTohMH12YXIgaGM9L0ZpcmVmb3hcXC8oXFxkKylcXC4vLGljPS9WZXJzaW9uXFwvKFxcZCspXFwuLipTYWZhcmkvLGpjPS9DaHJvbWVcXC8oXFxkKylcXC4vLGtjPS8oPzppUGhvbmV8aVBvZHxpUGFkKS4qQXBwbGVXZWJLaXRcXC8oXFxkKykoPyEuKlZlcnNpb24pLztmdW5jdGlvbiBnYyhhKXthPShhPWEuZXhlYyhlYykpP2FbMV06XCJcIjtyZXR1cm4gMDxhLmxlbmd0aCYmKGE9cGFyc2VJbnQoYSwxMCkpP2E6LTF9ZnVuY3Rpb24gbGMoKXtyZXR1cm4vQ2hyb21lfENyaU9TL2kudGVzdChlYyl9ZnVuY3Rpb24gbWMoKXt2YXIgYT1lYy50b0xvd2VyQ2FzZSgpO3JldHVybi0xIT1hLmluZGV4T2YoXCJzZXJpZXM2MFwiKXx8LTEhPWEuaW5kZXhPZihcInNlcmllcyA2MFwiKX07dmFyIG5jPW51bGw7ZnVuY3Rpb24gb2MoKXtuY3x8KG5jPXBjKCkpO3JldHVybiBuY31cbmZ1bmN0aW9uIHBjKCl7ZnVuY3Rpb24gYShjLGQsZSxmLGcpe2Y9ZGMoXCJhaFwiLGFjKCkpP2Y6ZztpZihcIlwiIT09KFpiKFwiY2RoXCIsYWMoKSl8fFwiXCIpKXJldHVybiBmKyhaYihcImNkaFwiLGFjKCkpfHxcIlwiKTtpZih6KFwiX3N3aXRjaEd3c1JlcXVlc3RUb1VzZUFkc2Vuc2VEb21haW5cIikpcmV0dXJuIGYrZTtlPXooXCJfc3dpdGNoR3dzUmVxdWVzdFRvVXNlQ29va2llbGVzc0RvbWFpblwiKTtnPWxjKCkmJnooXCJfc3dpdGNoR3dzUmVxdWVzdFRvVXNlQ29va2llbGVzc0RvbWFpbkNocm9tZVwiKTtyZXR1cm4geihcIl9lbmFibGVNY21FeHBlcmltZW50XCIpfHxlfHxnP2YrZDpmK2N9dmFyIGI9WGIodi5nd3NCYXNlXyk7cmV0dXJuIGJ8fChiPVpiKFwiZ3dzX2hvc3RcIikpP2I6KGI9WmIoXCJzZXJ2aWNlX2hvc3RcIikpP2EoYixcImFmcy5nb29nbGVzeW5kaWNhdGlvbi5jb21cIixcInd3dy5hZHNlbnNlY3VzdG9tc2VhcmNoYWRzLmNvbVwiLFwiaHR0cHM6Ly9cIixcIi8vXCIpOmEoXCIvL3d3dy5nb29nbGUuY29tXCIsXCIvL2Fmcy5nb29nbGVzeW5kaWNhdGlvbi5jb21cIixcblwid3d3LmFkc2Vuc2VjdXN0b21zZWFyY2hhZHMuY29tXCIsXCJodHRwczpcIixcIlwiKX07ZnVuY3Rpb24gcWMoYSl7dGhpcy5OPVtdO3RoaXMuaWM9W107YT1hLnNwbGl0KFwiI1wiKTt0aGlzLnFkPWFbMF07dGhpcy5mYz1hWzFdfHxcIlwiO3RoaXMueGI9Nzk1MH1mdW5jdGlvbiBBKGEsYixjLGQpeyhjfHwwPT09Y3x8ITE9PT1jKSYmKGQ/YS5OOmEuaWMpLnB1c2goW2VuY29kZVVSSUNvbXBvbmVudChiKSxlbmNvZGVVUklDb21wb25lbnQoXCJcIitjKV0pfVxuZnVuY3Rpb24gcmMoYSl7Zm9yKHZhciBiPWEucWQsYz0tMSE9PWEucWQuaW5kZXhPZihcIj9cIiksZD0wO2Q8YS5pYy5sZW5ndGg7ZCsrKXt2YXIgZT0oYz9cIiZcIjpcIj9cIikrYS5pY1tkXS5qb2luKFwiPVwiKTtlLmxlbmd0aCtiLmxlbmd0aDw9YS54YiYmKGIrPWUsYz0hMCl9Zm9yKGU9ZD0wO2U8YS5OLmxlbmd0aDtlKyspZCs9YS5OW2VdWzBdLmxlbmd0aDtkPWEueGItYi5sZW5ndGgtZC0yKmEuTi5sZW5ndGg7dmFyIGY9TWF0aC5mbG9vcihkL2EuTi5sZW5ndGgpO2lmKDE8PWYpZm9yKGU9MDtlPGEuTi5sZW5ndGg7ZSsrKXt2YXIgZz1hLk5bZV1bMV07Zj1nLmxlbmd0aD5mP2cuc3Vic3RyaW5nKDAsZik6ZztiKz0oYz9cIiZcIjpcIj9cIikrYS5OW2VdWzBdK1wiPVwiK2Y7ZC09Zi5sZW5ndGg7Zj1NYXRoLmZsb29yKGQvKGEuTi5sZW5ndGgtZS0xKSk7Yz0hMH1lbHNlIGZvcihkPTA7ZDxhLk4ubGVuZ3RoO2QrKylhLk5bZF1bMF0ubGVuZ3RoKzMrYi5sZW5ndGg8PWEueGImJihiKz0oYz9cIiZcIjpcIj9cIikrXG5hLk5bZF0uam9pbihcIj1cIiksYz0hMCk7Yj1iLnN1YnN0cmluZygwLGEueGIpO2I9Yi5yZXBsYWNlKC8lXFx3PyQvLFwiXCIpOzA8YS5mYy5sZW5ndGgmJihiKz1cIiNcIithLmZjKTtyZXR1cm4gYn07dmFyIHNjPS4wMT5NYXRoLnJhbmRvbSgpLHRjPW51bGw7ZnVuY3Rpb24gdWMoYSl7dGhpcy5YZT1XYjt0aGlzLmhhPVZiO3RoaXMuS2M9TWEoKS5kYXRhLnFpfHxcIlwiO3RoaXMuR2I9XCJcIjt0aGlzLmNsaWVudD1hfHxcInVua25vd25cIn1mdW5jdGlvbiB2Yygpe3RjfHwodGM9bmV3IHVjKG51bGwpKTtyZXR1cm4gdGN9ZnVuY3Rpb24gd2MoYSl7dmFyIGI9eihcInVzZUNvb2tpZWxlc3NIb3N0Rm9yUGluZ2JhY2tcIik7Yj0oKHZvaWQgMD09PWI/MDpiKT9cImh0dHBzOi8vYWZzLmdvb2dsZXN5bmRpY2F0aW9uLmNvbVwiOm9jKCkpK1wiL2Fmcy9nZW5fMjA0XCI7Yj1uZXcgcWMoYik7dmFyIGM9YS5jbGllbnQ7XCJ1bmtub3duXCI9PT1jJiZOYShNYSgpKSYmKGM9TmEoTWEoKSkpO0EoYixcImNsaWVudFwiLGMpO0EoYixcIm91dHB1dFwiLFwidWRzX2Fkc19vbmx5XCIpO0EoYixcInp4XCIsYS5YZSgpKTthLktjJiZBKGIsXCJhcWlkXCIsYS5LYyk7YS5HYiYmQShiLFwicHNpZFwiLGEuR2IpO3JldHVybiBifVxuZnVuY3Rpb24geGMoYSxiLGMpe3ZhciBkPXdjKGEpO0EoZCxcInBidFwiLGIpO0EoZCxcImFkYnhcIixjLmxlZnQpO0EoZCxcImFkYnlcIixjLnRvcCk7QShkLFwiYWRiaFwiLGMuaGVpZ2h0KTtBKGQsXCJhZGJ3XCIsYy53aWR0aCk7QShkLFwiYWRiYWhcIixjLlZhKTtBKGQsXCJhZGJuXCIsYy5sZSk7QShkLFwiZWF3cFwiLGMuTWUpO0EoZCxcImVycnZcIixjLnZlKTtBKGQsXCJjc2FsYVwiLGMudGYpO0EoZCxcImxsZVwiLGMuY2c/MTowKTtBKGQsXCJpZnZcIixjLm1mPzE6MCk7QShkLFwiaHB0XCIsYy5ZZT8xOjApO2EuaGEocmMoZCkpfWZ1bmN0aW9uIHljKGEsYixjKXt2YXIgZD13YyhhKTtBKGQsXCJwYnRcIixcInRwXCIpO0EoZCxcImVycm1cIixiKTtBKGQsXCJlbXNnXCIsYywhMCk7YS5oYShyYyhkKSl9ZnVuY3Rpb24gemMoYSxiKXt2YXIgYz13YyhhKTtBKGMsXCJwYnRcIixiKTthLmhhKHJjKGMpKX07dmFyIEFjPXt9O2Z1bmN0aW9uIEJjKCl7dmFyIGE9KDU3OTk2Nzg2MikudG9TdHJpbmcoKTt0aGlzLnNmPVwiYWRzLlwiK0NjO3RoaXMud2U9YTt0aGlzLnhkPVwiZ29vZ2xlLmFkcy5kb21haW5zLkNhZjogXCI7dGhpcy5XZT12YygpfUJjLnByb3RvdHlwZS5sb2c9ZnVuY3Rpb24oYSxiKXtpZighMD09PXdpbmRvdy5JU19HT09HTEVfQUZTX0lGUkFNRV8mJndpbmRvdy5wYXJlbnQ9PXdpbmRvdylyZXR1cm4hMTthPXphKGEpP2EubWVzc2FnZTphO3ZhciBjPWErYjtpZighQWNbY10pe0FjW2NdPSEwO2M9dGhpcy5XZTt2YXIgZD10aGlzLnNmLGU9dGhpcy53ZSxmPXdjKGMpO0EoZixcInBidFwiLFwiZXJcIik7QShmLFwiZXJydFwiLGQpO0EoZixcImVycnZcIixlKTtBKGYsXCJlcnJtXCIsYik7QShmLFwiZW1zZ1wiLGEsITApO2MuaGEocmMoZikpO3JldHVybiEwfXJldHVybiExfTtcbmZ1bmN0aW9uIEIoYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCl8fFtdO3RyeXtyZXR1cm4gYS5hcHBseSh0aGlzLGMpfWNhdGNoKGUpe1wic3RyaW5nXCI9PT10eXBlb2YgZSYmKGU9e21lc3NhZ2U6ZX0pO2M9ZS5tZXNzYWdlO3ZhciBkPS0xPT1jLmluZGV4T2YoQy54ZCk7ZCYmQy5sb2coZSxiKTt0aHJvdyBkP0MueGQrYzpjO319fWZ1bmN0aW9uIERjKGEpe3JldHVyblwiZ29vZ2xlLmFkcy5kb21haW5zLkNhZjogXCIrYX1mdW5jdGlvbiBFKGEsYil7cmV0dXJuIEIoYSxiKX12YXIgRWM9WmIoXCJwYWNrYWdlc1wiKSxDYz1cInVua25vd25cIjtudWxsIT1FYyYmKENjPUVjKTt2YXIgQz1uZXcgQmM7dmFyIEZjO2E6e3ZhciBHYz13aW5kb3cucGFyZW50O3RyeXtGYz1HYy5wb3N0TWVzc2FnZT9HYzpHYy5kb2N1bWVudC5wb3N0TWVzc2FnZT9HYy5kb2N1bWVudDpudWxsO2JyZWFrIGF9Y2F0Y2goYSl7fUZjPW51bGx9dmFyIEhjPUZjLEljPXt9LEpjPUUoZnVuY3Rpb24oKXtmb3IodmFyIGE9bihhYihJYykpLGI9YS5uZXh0KCk7IWIuZG9uZTtiPWEubmV4dCgpKWI9Yi52YWx1ZSxJYy5oYXNPd25Qcm9wZXJ0eShiKSYmKEljW2JdLmpiKCl8fGRlbGV0ZSBJY1tiXSl9LFwiZnNDRElcIiksS2M9ITEsTWM9RShmdW5jdGlvbigpe0tjfHwoS2M9ITAsd2luZG93LnNldEludGVydmFsKEpjLDUwMCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsTGMpKX0sXCJmc0lMXCIpO2Z1bmN0aW9uIE5jKGEsYil7dGhpcy5QYz1hO3RoaXMuQj17fTt0aGlzLlVhPWI7SWNbdGhpcy5QY109dGhpcztNYygpfVxuZnVuY3Rpb24gT2MoYSxiKXtyZXR1cm4gYS5CLmhhc093blByb3BlcnR5KGIpP2EuQltiXS52YWx1ZTpudWxsfWZ1bmN0aW9uIFBjKGEsYil7cmV0dXJuIGEuQi5oYXNPd25Qcm9wZXJ0eShiKT9hLkJbYl0udmFsdWU6bnVsbH1mdW5jdGlvbiBGKGEsYixjLGQpe2EuQi5oYXNPd25Qcm9wZXJ0eShiKXx8KGEuQltiXT1jKCkpO2M9YS5CW2JdO2MuUWI9ZHx8ZnVuY3Rpb24oKXt9O251bGwhPWMudmFsdWUmJmMuUWIoYSxhLlBjLGIsYy52YWx1ZSl9TmMucHJvdG90eXBlLmpiPWZ1bmN0aW9uKCl7cmV0dXJuISEodGhpcy5VYSYmdGhpcy5VYS5wYXJlbnROb2RlJiZ0aGlzLlVhLmNvbnRlbnRXaW5kb3cpfTt2YXIgUWM9e307ZnVuY3Rpb24gUmMoKXt0aGlzLnZhbHVlPW51bGw7dGhpcy5RYj1mdW5jdGlvbigpe307dGhpcy5vYT0hMX1tPVJjLnByb3RvdHlwZTttLnFhPWZ1bmN0aW9uKCl7fTttLlJhPWZ1bmN0aW9uKCl7fTttLk1hPWZ1bmN0aW9uKCl7fTttLkVhPWZ1bmN0aW9uKCl7fTtcbm0uamM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWU9PWF9O2Z1bmN0aW9uIEcoKXtSYy5jYWxsKHRoaXMpfXNhKEcsUmMpO0cucHJvdG90eXBlLnFhPWZ1bmN0aW9uKGEsYil7cmV0dXJuISFifTtHLnByb3RvdHlwZS5SYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlP1widFwiOlwiZlwifTtHLnByb3RvdHlwZS5NYT1mdW5jdGlvbihhKXtyZXR1cm5cInRcIj09YX07Ry5wcm90b3R5cGUuRWE9ZnVuY3Rpb24oKXtyZXR1cm4gMH07Ry5qPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBHfTtmdW5jdGlvbiBTYygpe1JjLmNhbGwodGhpcyl9c2EoU2MsUmMpO1xuU2MucHJvdG90eXBlLnFhPWZ1bmN0aW9uKGEsYil7dmFyIGM9cGFyc2VJbnQoYiwxMCk7YT1hK1wiID0gXCIrYjtpZihpc05hTihjKSlyZXR1cm4gQy5sb2coYSxcInNJR1ZWbm5cIiksbnVsbDs5MDA3MTk5MjU0NzQwOTkxPGMmJihDLmxvZyhhLFwic0lHVlZ0bFwiKSxjPTkwMDcxOTkyNTQ3NDA5OTEpOzA+YyYmKEMubG9nKGEsXCJzSUdWVnRzXCIpLGM9MCk7cmV0dXJuIGN9O1NjLnByb3RvdHlwZS5SYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlK1wiXCJ9O1NjLnByb3RvdHlwZS5NYT1mdW5jdGlvbihhKXtyZXR1cm4gcGFyc2VJbnQoYSwxMCl9O1NjLnByb3RvdHlwZS5FYT1mdW5jdGlvbigpe3JldHVybiAxfTtTYy5qPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBTY307ZnVuY3Rpb24gVGMoKXtSYy5jYWxsKHRoaXMpfXNhKFRjLFJjKTtUYy5wcm90b3R5cGUucWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9iLnRvU3RyaW5nKCk6XCJcIn07XG5UYy5wcm90b3R5cGUuUmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZT9lbmNvZGVVUklDb21wb25lbnQodGhpcy52YWx1ZSk6XCJcIn07VGMucHJvdG90eXBlLk1hPWZ1bmN0aW9uKGEpe3JldHVybiBUYihhKX07VGMucHJvdG90eXBlLkVhPWZ1bmN0aW9uKCl7cmV0dXJuIDJ9O1RjLmo9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFRjfTtmdW5jdGlvbiBVYygpe1JjLmNhbGwodGhpcyl9c2EoVWMsUmMpO209VWMucHJvdG90eXBlO20ucWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9iOm51bGx9O20uUmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZT9lbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSkpOlwiXCJ9O20uTWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/SlNPTi5wYXJzZShUYihhKSk6bnVsbH07bS5FYT1mdW5jdGlvbigpe3JldHVybiAzfTtcbm0uamM9ZnVuY3Rpb24oYSl7dmFyIGI9SlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSk7YT1KU09OLnN0cmluZ2lmeShhKTtyZXR1cm4gYj09PWF9O1VjLmo9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFVjfTt2YXIgVmM9e30sYmQ9KFZjWzBdPUcuaixWY1sxXT1TYy5qLFZjWzJdPVRjLmosVmNbM109VWMuaixWYyk7ZnVuY3Rpb24gY2QoYSxiLGMpe1FjLmhhc093blByb3BlcnR5KGEpfHwoUWNbYV09YygpKTtjPVFjW2FdO2E9Yy5xYShhLGIpO251bGw9PWF8fGMuamMoYSl8fChjLnZhbHVlPWEsYy5vYT0hMCl9XG5mdW5jdGlvbiBMYyhhKXtpZihhPWF8fHdpbmRvdy5ldmVudClmb3IodmFyIGI9bihhYihJYykpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWlmKGM9SWNbYy52YWx1ZV0sYy5qYigpJiZhLnNvdXJjZT09Yy5VYS5jb250ZW50V2luZG93KXtpZigoYT1hLmRhdGEpJiZhLnNwbGl0JiYoYT1hLnNwbGl0KFwiLFwiKSxcIkZTWERDXCI9PWFbMF0pKXtmb3IoYj0xO2I8YS5sZW5ndGg7YisrKXt2YXIgZD1hW2JdLnNwbGl0KFwiOlwiKSxlPVRiKGRbMF0pLGY9YmRbcGFyc2VJbnQoZFsxXSwxMCldO2MuQi5oYXNPd25Qcm9wZXJ0eShlKXx8KGMuQltlXT1mKCkpO2Q9Yy5CW2VdLk1hKGRbMl0pO2MuQi5oYXNPd25Qcm9wZXJ0eShlKXx8KGMuQltlXT1mKCkpO2Y9Yy5CW2VdO2Q9Zi5xYShlLGQpO251bGwhPWQmJmYudmFsdWUhPWQmJihmLnZhbHVlPWQsZi5vYT0hMCl9YT1uKGFiKGMuQikpO2ZvcihiPWEubmV4dCgpOyFiLmRvbmU7Yj1hLm5leHQoKSliPWIudmFsdWUsZj1jLkJbYl0sZi5vYSYmXG4oZi5vYT0hMSxmLlFiKGMsYy5QYyxiLGYudmFsdWUpKX1icmVha319TmMucHJvdG90eXBlLmpiPUIoTmMucHJvdG90eXBlLmpiLFwiZnNpSFZJXCIpO3ZhciBkZD1FKGZ1bmN0aW9uKCl7aWYoSGMpe2Zvcih2YXIgYT1bXSxiPW4oYWIoUWMpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7Yz1jLnZhbHVlO3ZhciBkPVFjW2NdO2lmKGQub2Epe3ZhciBlPWQuUmEoKTthLnB1c2goW2VuY29kZVVSSUNvbXBvbmVudChjKSxkLkVhKCksZV0uam9pbihcIjpcIikpO2Qub2E9ITF9fTAhPWEubGVuZ3RoJiZIYy5wb3N0TWVzc2FnZShbXCJGU1hEQ1wiXS5jb25jYXQoYSkuam9pbihcIixcIiksXCIqXCIpfX0sXCJmc1NDXCIpO2Z1bmN0aW9uIGVkKGEsYil7Y2QoYSxiLFNjLmopfWZ1bmN0aW9uIGZkKGEsYil7Y2QoYSxiLEcuail9O2Z1bmN0aW9uIGdkKGEsYil7Zm9yKHZhciBjPW4oT2JqZWN0LmtleXMoYikpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWQ9ZC52YWx1ZSxhW2RdPXt9LE9iamVjdC5hc3NpZ24oYVtkXSxiW2RdKX1mdW5jdGlvbiBoZChhLGIpe2I9bihiKTtmb3IodmFyIGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWM9Yy52YWx1ZSxhLmhhc093blByb3BlcnR5KGMpLGFbY10udmM9ITB9O2Z1bmN0aW9uIGlkKCl7dmFyIGE9amQ7dGhpcy5LYT0xMDt0aGlzLkphPU1hdGguZmxvb3IoYSl9aWQucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LYStcInB4IC0gXCIrdGhpcy5KYStcInB4XCJ9O2lkLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe2E9cGFyc2VJbnQoYSwxMCk7cmV0dXJuIGlzTmFOKGEpP251bGw6TWF0aC5tYXgodGhpcy5LYSxNYXRoLm1pbih0aGlzLkphLGEpKX07aWQucHJvdG90eXBlLkc9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuRChhKX07ZnVuY3Rpb24ga2QoYSxiKXt0aGlzLng9dm9pZCAwIT09YT9hOjA7dGhpcy55PXZvaWQgMCE9PWI/YjowfW09a2QucHJvdG90eXBlO20uY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGtkKHRoaXMueCx0aGlzLnkpfTttLmpjPWZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2Yga2QmJih0aGlzPT1hPyEwOnRoaXMmJmE/dGhpcy54PT1hLngmJnRoaXMueT09YS55OiExKX07bS5jZWlsPWZ1bmN0aW9uKCl7dGhpcy54PU1hdGguY2VpbCh0aGlzLngpO3RoaXMueT1NYXRoLmNlaWwodGhpcy55KTtyZXR1cm4gdGhpc307bS5mbG9vcj1mdW5jdGlvbigpe3RoaXMueD1NYXRoLmZsb29yKHRoaXMueCk7dGhpcy55PU1hdGguZmxvb3IodGhpcy55KTtyZXR1cm4gdGhpc307bS5yb3VuZD1mdW5jdGlvbigpe3RoaXMueD1NYXRoLnJvdW5kKHRoaXMueCk7dGhpcy55PU1hdGgucm91bmQodGhpcy55KTtyZXR1cm4gdGhpc307XG5tLnRyYW5zbGF0ZT1mdW5jdGlvbihhLGIpe2EgaW5zdGFuY2VvZiBrZD8odGhpcy54Kz1hLngsdGhpcy55Kz1hLnkpOih0aGlzLngrPU51bWJlcihhKSxcIm51bWJlclwiPT09dHlwZW9mIGImJih0aGlzLnkrPWIpKTtyZXR1cm4gdGhpc307bS5zY2FsZT1mdW5jdGlvbihhLGIpe3RoaXMueCo9YTt0aGlzLnkqPVwibnVtYmVyXCI9PT10eXBlb2YgYj9iOmE7cmV0dXJuIHRoaXN9O2Z1bmN0aW9uIGxkKGEsYixjLGQpe3RoaXMudG9wPWE7dGhpcy5yaWdodD1iO3RoaXMuYm90dG9tPWM7dGhpcy5sZWZ0PWR9bT1sZC5wcm90b3R5cGU7bS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgbGQodGhpcy50b3AsdGhpcy5yaWdodCx0aGlzLmJvdHRvbSx0aGlzLmxlZnQpfTttLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzJiZhP2EgaW5zdGFuY2VvZiBsZD9hLmxlZnQ+PXRoaXMubGVmdCYmYS5yaWdodDw9dGhpcy5yaWdodCYmYS50b3A+PXRoaXMudG9wJiZhLmJvdHRvbTw9dGhpcy5ib3R0b206YS54Pj10aGlzLmxlZnQmJmEueDw9dGhpcy5yaWdodCYmYS55Pj10aGlzLnRvcCYmYS55PD10aGlzLmJvdHRvbTohMX07XG5tLmV4cGFuZD1mdW5jdGlvbihhLGIsYyxkKXt6YShhKT8odGhpcy50b3AtPWEudG9wLHRoaXMucmlnaHQrPWEucmlnaHQsdGhpcy5ib3R0b20rPWEuYm90dG9tLHRoaXMubGVmdC09YS5sZWZ0KToodGhpcy50b3AtPWEsdGhpcy5yaWdodCs9TnVtYmVyKGIpLHRoaXMuYm90dG9tKz1OdW1iZXIoYyksdGhpcy5sZWZ0LT1OdW1iZXIoZCkpO3JldHVybiB0aGlzfTttLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLnRvcD1NYXRoLmNlaWwodGhpcy50b3ApO3RoaXMucmlnaHQ9TWF0aC5jZWlsKHRoaXMucmlnaHQpO3RoaXMuYm90dG9tPU1hdGguY2VpbCh0aGlzLmJvdHRvbSk7dGhpcy5sZWZ0PU1hdGguY2VpbCh0aGlzLmxlZnQpO3JldHVybiB0aGlzfTtcbm0uZmxvb3I9ZnVuY3Rpb24oKXt0aGlzLnRvcD1NYXRoLmZsb29yKHRoaXMudG9wKTt0aGlzLnJpZ2h0PU1hdGguZmxvb3IodGhpcy5yaWdodCk7dGhpcy5ib3R0b209TWF0aC5mbG9vcih0aGlzLmJvdHRvbSk7dGhpcy5sZWZ0PU1hdGguZmxvb3IodGhpcy5sZWZ0KTtyZXR1cm4gdGhpc307bS5yb3VuZD1mdW5jdGlvbigpe3RoaXMudG9wPU1hdGgucm91bmQodGhpcy50b3ApO3RoaXMucmlnaHQ9TWF0aC5yb3VuZCh0aGlzLnJpZ2h0KTt0aGlzLmJvdHRvbT1NYXRoLnJvdW5kKHRoaXMuYm90dG9tKTt0aGlzLmxlZnQ9TWF0aC5yb3VuZCh0aGlzLmxlZnQpO3JldHVybiB0aGlzfTtcbm0udHJhbnNsYXRlPWZ1bmN0aW9uKGEsYil7YSBpbnN0YW5jZW9mIGtkPyh0aGlzLmxlZnQrPWEueCx0aGlzLnJpZ2h0Kz1hLngsdGhpcy50b3ArPWEueSx0aGlzLmJvdHRvbSs9YS55KToodGhpcy5sZWZ0Kz1hLHRoaXMucmlnaHQrPWEsXCJudW1iZXJcIj09PXR5cGVvZiBiJiYodGhpcy50b3ArPWIsdGhpcy5ib3R0b20rPWIpKTtyZXR1cm4gdGhpc307bS5zY2FsZT1mdW5jdGlvbihhLGIpe2I9XCJudW1iZXJcIj09PXR5cGVvZiBiP2I6YTt0aGlzLmxlZnQqPWE7dGhpcy5yaWdodCo9YTt0aGlzLnRvcCo9Yjt0aGlzLmJvdHRvbSo9YjtyZXR1cm4gdGhpc307ZnVuY3Rpb24gbWQoYSl7bWRbXCIgXCJdKGEpO3JldHVybiBhfW1kW1wiIFwiXT1mdW5jdGlvbigpe307dmFyIG5kPUtiKCk/ITE6eShcIk9wZXJhXCIpLG9kPUtiKCk/ITE6eShcIlRyaWRlbnRcIil8fHkoXCJNU0lFXCIpLHBkPXkoXCJFZGdlXCIpLHFkPXkoXCJHZWNrb1wiKSYmISgtMSE9R2IoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoXCJ3ZWJraXRcIikmJiF5KFwiRWRnZVwiKSkmJiEoeShcIlRyaWRlbnRcIil8fHkoXCJNU0lFXCIpKSYmIXkoXCJFZGdlXCIpLHJkPS0xIT1HYigpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihcIndlYmtpdFwiKSYmIXkoXCJFZGdlXCIpO2Z1bmN0aW9uIHNkKCl7dmFyIGE9di5kb2N1bWVudDtyZXR1cm4gYT9hLmRvY3VtZW50TW9kZTp2b2lkIDB9dmFyIHRkO1xuYTp7dmFyIHVkPVwiXCIsdmQ9ZnVuY3Rpb24oKXt2YXIgYT1HYigpO2lmKHFkKXJldHVybi9ydjooW15cXCk7XSspKFxcKXw7KS8uZXhlYyhhKTtpZihwZClyZXR1cm4vRWRnZVxcLyhbXFxkXFwuXSspLy5leGVjKGEpO2lmKG9kKXJldHVybi9cXGIoPzpNU0lFfHJ2KVs6IF0oW15cXCk7XSspKFxcKXw7KS8uZXhlYyhhKTtpZihyZClyZXR1cm4vV2ViS2l0XFwvKFxcUyspLy5leGVjKGEpO2lmKG5kKXJldHVybi8oPzpWZXJzaW9uKVsgXFwvXT8oXFxTKykvLmV4ZWMoYSl9KCk7dmQmJih1ZD12ZD92ZFsxXTpcIlwiKTtpZihvZCl7dmFyIHdkPXNkKCk7aWYobnVsbCE9d2QmJndkPnBhcnNlRmxvYXQodWQpKXt0ZD1TdHJpbmcod2QpO2JyZWFrIGF9fXRkPXVkfXZhciB4ZD10ZCx5ZDtpZih2LmRvY3VtZW50JiZvZCl7dmFyIHpkPXNkKCk7eWQ9emQ/emQ6cGFyc2VJbnQoeGQsMTApfHx2b2lkIDB9ZWxzZSB5ZD12b2lkIDA7dmFyIEFkPXlkO2Z1bmN0aW9uIEJkKGEsYil7dGhpcy53aWR0aD1hO3RoaXMuaGVpZ2h0PWJ9bT1CZC5wcm90b3R5cGU7bS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgQmQodGhpcy53aWR0aCx0aGlzLmhlaWdodCl9O20uYXNwZWN0UmF0aW89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWR0aC90aGlzLmhlaWdodH07bS5jZWlsPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1NYXRoLmNlaWwodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5jZWlsKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307bS5mbG9vcj1mdW5jdGlvbigpe3RoaXMud2lkdGg9TWF0aC5mbG9vcih0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmZsb29yKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307bS5yb3VuZD1mdW5jdGlvbigpe3RoaXMud2lkdGg9TWF0aC5yb3VuZCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLnJvdW5kKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307XG5tLnNjYWxlPWZ1bmN0aW9uKGEsYil7dGhpcy53aWR0aCo9YTt0aGlzLmhlaWdodCo9XCJudW1iZXJcIj09PXR5cGVvZiBiP2I6YTtyZXR1cm4gdGhpc307ZnVuY3Rpb24gQ2QoYSl7cmV0dXJuIGE/bmV3IERkKEVkKGEpKTpWYXx8KFZhPW5ldyBEZCl9XG5mdW5jdGlvbiBGZChhLGIsYyl7dmFyIGQ9ZG9jdW1lbnQ7Yz1jfHxkO3ZhciBlPWEmJlwiKlwiIT1hP1N0cmluZyhhKS50b1VwcGVyQ2FzZSgpOlwiXCI7aWYoYy5xdWVyeVNlbGVjdG9yQWxsJiZjLnF1ZXJ5U2VsZWN0b3ImJihlfHxiKSlyZXR1cm4gYy5xdWVyeVNlbGVjdG9yQWxsKGUrKGI/XCIuXCIrYjpcIlwiKSk7aWYoYiYmYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXthPWMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShiKTtpZihlKXtjPXt9O2Zvcih2YXIgZj1kPTAsZztnPWFbZl07ZisrKWU9PWcubm9kZU5hbWUmJihjW2QrK109Zyk7Yy5sZW5ndGg9ZDtyZXR1cm4gY31yZXR1cm4gYX1hPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZXx8XCIqXCIpO2lmKGIpe2M9e307Zm9yKGY9ZD0wO2c9YVtmXTtmKyspe2U9Zy5jbGFzc05hbWU7dmFyIGg7aWYoaD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnNwbGl0KWg9MDw9WGEoZS5zcGxpdCgvXFxzKy8pLGIpO2gmJihjW2QrK109Zyl9Yy5sZW5ndGg9ZDtyZXR1cm4gY31yZXR1cm4gYX1cbmZ1bmN0aW9uIEdkKGEpe2E9YS5kb2N1bWVudDthPVwiQ1NTMUNvbXBhdFwiPT1hLmNvbXBhdE1vZGU/YS5kb2N1bWVudEVsZW1lbnQ6YS5ib2R5O3JldHVybiBuZXcgQmQoYS5jbGllbnRXaWR0aCxhLmNsaWVudEhlaWdodCl9ZnVuY3Rpb24gSGQoYSl7cmV0dXJuIGEuc2Nyb2xsaW5nRWxlbWVudD9hLnNjcm9sbGluZ0VsZW1lbnQ6cmR8fFwiQ1NTMUNvbXBhdFwiIT1hLmNvbXBhdE1vZGU/YS5ib2R5fHxhLmRvY3VtZW50RWxlbWVudDphLmRvY3VtZW50RWxlbWVudH1cbmZ1bmN0aW9uIElkKGEsYixjKXtmdW5jdGlvbiBkKGgpe2gmJmIuYXBwZW5kQ2hpbGQoXCJzdHJpbmdcIj09PXR5cGVvZiBoP2EuY3JlYXRlVGV4dE5vZGUoaCk6aCl9Zm9yKHZhciBlPTE7ZTxjLmxlbmd0aDtlKyspe3ZhciBmPWNbZV07aWYoIXlhKGYpfHx6YShmKSYmMDxmLm5vZGVUeXBlKWQoZik7ZWxzZXthOntpZihmJiZcIm51bWJlclwiPT10eXBlb2YgZi5sZW5ndGgpe2lmKHphKGYpKXt2YXIgZz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBmLml0ZW18fFwic3RyaW5nXCI9PXR5cGVvZiBmLml0ZW07YnJlYWsgYX1pZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZil7Zz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBmLml0ZW07YnJlYWsgYX19Zz0hMX1ZYShnPyRhKGYpOmYsZCl9fX1mdW5jdGlvbiBKZChhLGIpe2I9U3RyaW5nKGIpO1wiYXBwbGljYXRpb24veGh0bWwreG1sXCI9PT1hLmNvbnRlbnRUeXBlJiYoYj1iLnRvTG93ZXJDYXNlKCkpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoYil9XG5mdW5jdGlvbiBFZChhKXtyZXR1cm4gOT09YS5ub2RlVHlwZT9hOmEub3duZXJEb2N1bWVudHx8YS5kb2N1bWVudH1mdW5jdGlvbiBEZChhKXt0aGlzLlU9YXx8di5kb2N1bWVudHx8ZG9jdW1lbnR9bT1EZC5wcm90b3R5cGU7bS5nZXRFbGVtZW50c0J5VGFnTmFtZT1mdW5jdGlvbihhLGIpe3JldHVybihifHx0aGlzLlUpLmdldEVsZW1lbnRzQnlUYWdOYW1lKFN0cmluZyhhKSl9O20uY3JlYXRlRWxlbWVudD1mdW5jdGlvbihhKXtyZXR1cm4gSmQodGhpcy5VLGEpfTttLmNyZWF0ZVRleHROb2RlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLlUuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKGEpKX07bS5hcHBlbmRDaGlsZD1mdW5jdGlvbihhLGIpe2EuYXBwZW5kQ2hpbGQoYil9O20uYXBwZW5kPWZ1bmN0aW9uKGEsYil7SWQoRWQoYSksYSxhcmd1bWVudHMpfTttLmNhbkhhdmVDaGlsZHJlbj1mdW5jdGlvbihhKXtpZigxIT1hLm5vZGVUeXBlKXJldHVybiExO3N3aXRjaChhLnRhZ05hbWUpe2Nhc2UgXCJBUFBMRVRcIjpjYXNlIFwiQVJFQVwiOmNhc2UgXCJCQVNFXCI6Y2FzZSBcIkJSXCI6Y2FzZSBcIkNPTFwiOmNhc2UgXCJDT01NQU5EXCI6Y2FzZSBcIkVNQkVEXCI6Y2FzZSBcIkZSQU1FXCI6Y2FzZSBcIkhSXCI6Y2FzZSBcIklNR1wiOmNhc2UgXCJJTlBVVFwiOmNhc2UgXCJJRlJBTUVcIjpjYXNlIFwiSVNJTkRFWFwiOmNhc2UgXCJLRVlHRU5cIjpjYXNlIFwiTElOS1wiOmNhc2UgXCJOT0ZSQU1FU1wiOmNhc2UgXCJOT1NDUklQVFwiOmNhc2UgXCJNRVRBXCI6Y2FzZSBcIk9CSkVDVFwiOmNhc2UgXCJQQVJBTVwiOmNhc2UgXCJTQ1JJUFRcIjpjYXNlIFwiU09VUkNFXCI6Y2FzZSBcIlNUWUxFXCI6Y2FzZSBcIlRSQUNLXCI6Y2FzZSBcIldCUlwiOnJldHVybiExfXJldHVybiEwfTtcbm0ucmVtb3ZlTm9kZT1mdW5jdGlvbihhKXtyZXR1cm4gYSYmYS5wYXJlbnROb2RlP2EucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKTpudWxsfTttLmNvbnRhaW5zPWZ1bmN0aW9uKGEsYil7aWYoIWF8fCFiKXJldHVybiExO2lmKGEuY29udGFpbnMmJjE9PWIubm9kZVR5cGUpcmV0dXJuIGE9PWJ8fGEuY29udGFpbnMoYik7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24pcmV0dXJuIGE9PWJ8fCEhKGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikmMTYpO2Zvcig7YiYmYSE9YjspYj1iLnBhcmVudE5vZGU7cmV0dXJuIGI9PWF9O2Z1bmN0aW9uIEtkKGEsYil7YTp7dmFyIGM9RWQoYSk7aWYoYy5kZWZhdWx0VmlldyYmYy5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlJiYoYz1jLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoYSxudWxsKSkpe2M9Y1tiXXx8Yy5nZXRQcm9wZXJ0eVZhbHVlKGIpfHxcIlwiO2JyZWFrIGF9Yz1cIlwifXJldHVybiBjfHwoYS5jdXJyZW50U3R5bGU/YS5jdXJyZW50U3R5bGVbYl06bnVsbCl8fGEuc3R5bGUmJmEuc3R5bGVbYl19ZnVuY3Rpb24gTGQoYSl7dHJ5e3JldHVybiBhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWNhdGNoKGIpe3JldHVybntsZWZ0OjAsdG9wOjAscmlnaHQ6MCxib3R0b206MH19fVxuZnVuY3Rpb24gTWQoYSl7aWYob2QmJiEoODw9TnVtYmVyKEFkKSkpcmV0dXJuIGEub2Zmc2V0UGFyZW50O3ZhciBiPUVkKGEpLGM9S2QoYSxcInBvc2l0aW9uXCIpLGQ9XCJmaXhlZFwiPT1jfHxcImFic29sdXRlXCI9PWM7Zm9yKGE9YS5wYXJlbnROb2RlO2EmJmEhPWI7YT1hLnBhcmVudE5vZGUpaWYoMTE9PWEubm9kZVR5cGUmJmEuaG9zdCYmKGE9YS5ob3N0KSxjPUtkKGEsXCJwb3NpdGlvblwiKSxkPWQmJlwic3RhdGljXCI9PWMmJmEhPWIuZG9jdW1lbnRFbGVtZW50JiZhIT1iLmJvZHksIWQmJihhLnNjcm9sbFdpZHRoPmEuY2xpZW50V2lkdGh8fGEuc2Nyb2xsSGVpZ2h0PmEuY2xpZW50SGVpZ2h0fHxcImZpeGVkXCI9PWN8fFwiYWJzb2x1dGVcIj09Y3x8XCJyZWxhdGl2ZVwiPT1jKSlyZXR1cm4gYTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIE5kKGEpe3ZhciBiPUVkKGEpLGM9bmV3IGtkKDAsMCk7dmFyIGQ9Yj9FZChiKTpkb2N1bWVudDtkPSFvZHx8OTw9TnVtYmVyKEFkKXx8XCJDU1MxQ29tcGF0XCI9PUNkKGQpLlUuY29tcGF0TW9kZT9kLmRvY3VtZW50RWxlbWVudDpkLmJvZHk7aWYoYT09ZClyZXR1cm4gYzthPUxkKGEpO2Q9Q2QoYikuVTtiPUhkKGQpO2Q9ZC5wYXJlbnRXaW5kb3d8fGQuZGVmYXVsdFZpZXc7Yj1vZCYmZC5wYWdlWU9mZnNldCE9Yi5zY3JvbGxUb3A/bmV3IGtkKGIuc2Nyb2xsTGVmdCxiLnNjcm9sbFRvcCk6bmV3IGtkKGQucGFnZVhPZmZzZXR8fGIuc2Nyb2xsTGVmdCxkLnBhZ2VZT2Zmc2V0fHxiLnNjcm9sbFRvcCk7Yy54PWEubGVmdCtiLng7Yy55PWEudG9wK2IueTtyZXR1cm4gY31cbmZ1bmN0aW9uIE9kKGEpe2lmKDE9PWEubm9kZVR5cGUpcmV0dXJuIGE9TGQoYSksbmV3IGtkKGEubGVmdCxhLnRvcCk7YT1hLmNoYW5nZWRUb3VjaGVzP2EuY2hhbmdlZFRvdWNoZXNbMF06YTtyZXR1cm4gbmV3IGtkKGEuY2xpZW50WCxhLmNsaWVudFkpfWZ1bmN0aW9uIFBkKGEpe3ZhciBiPVFkO2lmKFwibm9uZVwiIT1LZChhLFwiZGlzcGxheVwiKSlyZXR1cm4gYihhKTt2YXIgYz1hLnN0eWxlLGQ9Yy5kaXNwbGF5LGU9Yy52aXNpYmlsaXR5LGY9Yy5wb3NpdGlvbjtjLnZpc2liaWxpdHk9XCJoaWRkZW5cIjtjLnBvc2l0aW9uPVwiYWJzb2x1dGVcIjtjLmRpc3BsYXk9XCJpbmxpbmVcIjthPWIoYSk7Yy5kaXNwbGF5PWQ7Yy5wb3NpdGlvbj1mO2MudmlzaWJpbGl0eT1lO3JldHVybiBhfVxuZnVuY3Rpb24gUWQoYSl7dmFyIGI9YS5vZmZzZXRXaWR0aCxjPWEub2Zmc2V0SGVpZ2h0LGQ9cmQmJiFiJiYhYztyZXR1cm4odm9pZCAwPT09Ynx8ZCkmJmEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0PyhhPUxkKGEpLG5ldyBCZChhLnJpZ2h0LWEubGVmdCxhLmJvdHRvbS1hLnRvcCkpOm5ldyBCZChiLGMpfTtmdW5jdGlvbiBSZChhKXt2YXIgYj1hLmluZGV4T2YoXCIjXCIpO3JldHVybiAwPmI/YTphLnNsaWNlKDAsYil9dmFyIFNkPS8jfCQvO2Z1bmN0aW9uIFRkKGEsYil7dmFyIGM9YS5zZWFyY2goU2QpO2E6e3ZhciBkPTA7Zm9yKHZhciBlPWIubGVuZ3RoOzA8PShkPWEuaW5kZXhPZihiLGQpKSYmZDxjOyl7dmFyIGY9YS5jaGFyQ29kZUF0KGQtMSk7aWYoMzg9PWZ8fDYzPT1mKWlmKGY9YS5jaGFyQ29kZUF0KGQrZSksIWZ8fDYxPT1mfHwzOD09Znx8MzU9PWYpYnJlYWsgYTtkKz1lKzF9ZD0tMX1pZigwPmQpcmV0dXJuIG51bGw7ZT1hLmluZGV4T2YoXCImXCIsZCk7aWYoMD5lfHxlPmMpZT1jO2QrPWIubGVuZ3RoKzE7cmV0dXJuIFRiKGEuc2xpY2UoZCwtMSE9PWU/ZTowKSl9O3ZhciBVZD17fSxWZD0oVWQuYWRzPTAsVWQucGxhcz0xLFVkLnJlbGF0ZWRzZWFyY2g9MyxVZCksV2Q9KCF3aW5kb3cuSVNfR09PR0xFX0FGU19JRlJBTUVffHxQYSgpLDgpLGpkPSghd2luZG93LklTX0dPT0dMRV9BRlNfSUZSQU1FX3x8UGEoKSwyNCksWGQ9bmV3IGlkLFlkPXtjb250ZW50OlwiY1wiLHF1ZXJ5OlwicVwiLGRvbWFpbjpcImRcIn07ZnVuY3Rpb24gWmQoYSxiLGMpe2lmKCFiLmcpcmV0dXJuIGM7Yz1iLmcuRChjKTtpZihudWxsPT1jJiYhYi5DKXRocm93IERjKGErXCIgaGFzIGFuIGludmFsaWQgdmFsdWUuIFZhbGlkIGlucHV0IHZhbHVlczogW1wiK2IuZy5IKCkrXCJdLlwiKTtyZXR1cm4gY31mdW5jdGlvbiAkZChhKXtyZXR1cm4vXig/Oig/OnNsYXZlLVxcZCsoPzotKD86YXxiKSk/KXwoPzptYXN0ZXItKD86YXxiKSkpLVxcZCskLy50ZXN0KGEpfWZ1bmN0aW9uIGFlKGEpe3JldHVybihhPWEubWF0Y2goL3NsYXZlLShcXGQrKS0vKSk/cGFyc2VJbnQoYVsxXSwxMCkrMToxfVxuZnVuY3Rpb24gYmUoYSxiLGMpe2Zvcih2YXIgZD1bXSxlLGY9MDtlPWNbZl07ZisrKWU9bmV3IHFjKGUpLEEoZSxhLGIpLGQucHVzaChyYyhlKSk7cmV0dXJuIGR9ZnVuY3Rpb24gY2UoYSxiKXthPVJkKGEpO2lmKChhPWEubWF0Y2gobmV3IFJlZ0V4cChcIls/Jl1cIitiK1wiPShbXiZdKilcIikpKSYmYVsxXSl0cnl7cmV0dXJuIFRiKGFbMV0pfWNhdGNoKGMpe31yZXR1cm4gbnVsbH1mdW5jdGlvbiBkZShhKXthPVJkKGEpO3ZhciBiPXt9O2EucmVwbGFjZSgvWz8mXSsoW149Jl0rKT0/KFteJl0qKS9naSxmdW5jdGlvbihjLGQsZSl7dHJ5e2JbVGIoZCldPVRiKGUpfWNhdGNoKGYpe319KTtyZXR1cm4gYn1cbmZ1bmN0aW9uIGVlKCl7dmFyIGE9dm9pZCAwPT09YT93aW5kb3cubG9jYXRpb24uaHJlZjphO3ZhciBiPXooXCJfZW5hYmxlTGF6eUxvYWRpbmdcIiksYz1aYihcImxsZGxcIixhYygpKTtyZXR1cm4gYiYmYyYmKGM9bmV3IFJlZ0V4cChcIihcIithdG9iKGMpLnJlcGxhY2UoLywvZyxcIil8KFwiKStcIilcIiksYS5tYXRjaChjKSk/ITE6ISEoXCJJbnRlcnNlY3Rpb25PYnNlcnZlclwiaW4gd2luZG93JiZiKX1cbmZ1bmN0aW9uIGZlKGEsYixjKXtiPXZvaWQgMD09PWI/MDpiO2M9dm9pZCAwPT09Yz9udWxsOmM7dmFyIGQ9bmV3IGxkKDAsSW5maW5pdHksSW5maW5pdHksMCk7Zm9yKHZhciBlPUNkKGEpLGY9ZS5VLmJvZHksZz1lLlUuZG9jdW1lbnRFbGVtZW50LGg9SGQoZS5VKSxrPWE7az1NZChrKTspaWYoIShvZCYmMD09ay5jbGllbnRXaWR0aHx8cmQmJjA9PWsuY2xpZW50SGVpZ2h0JiZrPT1mKSYmayE9ZiYmayE9ZyYmXCJ2aXNpYmxlXCIhPUtkKGssXCJvdmVyZmxvd1wiKSl7dmFyIGw9TmQoaykscD1uZXcga2Qoay5jbGllbnRMZWZ0LGsuY2xpZW50VG9wKTtsLngrPXAueDtsLnkrPXAueTtkLnRvcD1NYXRoLm1heChkLnRvcCxsLnkpO2QucmlnaHQ9TWF0aC5taW4oZC5yaWdodCxsLngray5jbGllbnRXaWR0aCk7ZC5ib3R0b209TWF0aC5taW4oZC5ib3R0b20sbC55K2suY2xpZW50SGVpZ2h0KTtkLmxlZnQ9TWF0aC5tYXgoZC5sZWZ0LGwueCl9Zj1oLnNjcm9sbExlZnQ7aD1oLnNjcm9sbFRvcDtcbmQubGVmdD1NYXRoLm1heChkLmxlZnQsZik7ZC50b3A9TWF0aC5tYXgoZC50b3AsaCk7ZT1lLlU7ZT1HZChlLnBhcmVudFdpbmRvd3x8ZS5kZWZhdWx0Vmlld3x8d2luZG93KTtkLnJpZ2h0PU1hdGgubWluKGQucmlnaHQsZitlLndpZHRoKTtkLmJvdHRvbT1NYXRoLm1pbihkLmJvdHRvbSxoK2UuaGVpZ2h0KTtkPTA8PWQudG9wJiYwPD1kLmxlZnQmJmQuYm90dG9tPmQudG9wJiZkLnJpZ2h0PmQubGVmdD9kOm51bGw7ZT1uZXcga2QoYS5vZmZzZXRMZWZ0LGEub2Zmc2V0VG9wKTthPVBkKGEpO2U9bmV3IGxkKGUueSxlLngrYS53aWR0aCxlLnkrYS5oZWlnaHQsZS54KTtudWxsIT1jJiYoYj0tTWF0aC5hYnMoYS5oZWlnaHQqYykpO3JldHVybiEhKGQmJmQubGVmdDw9ZS5yaWdodCtiJiZlLmxlZnQ8PWQucmlnaHQrYiYmZC50b3A8PWUuYm90dG9tK2ImJmUudG9wPD1kLmJvdHRvbStiKX1cbmZ1bmN0aW9uIGdlKCl7cmV0dXJuIG51bGwhPT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNzcmFiXCIpfTt2YXIgaGU9e307ZnVuY3Rpb24gaWUoYSl7dmFyIGI9e25hbWVzOltdLGZyYW1lczpbXX0sYztmb3IoYyBpbiBoZSl7dmFyIGQ9amUoYyxhKTtudWxsPT1kP2RlbGV0ZSBoZVtjXTooYi5uYW1lcy5wdXNoKGMpLGIuZnJhbWVzLnB1c2goZCkpfXJldHVybiBifWllPUIoaWUsXCJjRnJcIik7ZnVuY3Rpb24gamUoYSxiKXtpZihrZSlyZXR1cm4ga2UoYSxiKTtpZihhPT1iLm5hbWUpcmV0dXJuIHdpbmRvdzt0cnl7dmFyIGM9d2luZG93LnBhcmVudC5mcmFtZXNbYStcInxcIit3aW5kb3cubmFtZV07aWYoYylyZXR1cm4gY31jYXRjaChkKXt9dHJ5e3JldHVybiB3aW5kb3cucGFyZW50LmZyYW1lc1thXXx8bnVsbH1jYXRjaChkKXt9cmV0dXJuIG51bGx9amU9QihqZSxcImdGQk5cIik7dmFyIGtlPW51bGwsbGU9aWUsbWU9amU7ZnVuY3Rpb24gbmUoYSxiLGMpe2M9dm9pZCAwPT09Yz9bXTpjO3RoaXMuZnJhbWVXaWR0aD1hO3RoaXMuZnJhbWVIZWlnaHQ9Yjt0aGlzLlZhPWN9O2Z1bmN0aW9uIG9lKGEsYixjKXt2YXIgZD0hMTthLmFkZEV2ZW50TGlzdGVuZXIoYixjKTthLmFkZEV2ZW50TGlzdGVuZXIoYixmdW5jdGlvbigpe2R8fChhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjKSxkPSEwKX0pfTtmdW5jdGlvbiBwZSgpe3ZhciBhLGI7cmV0dXJue3Byb21pc2U6bmV3IFByb21pc2UoZnVuY3Rpb24oYyxkKXthPWM7Yj1kfSkscmVzb2x2ZTphLHJlamVjdDpifX1mdW5jdGlvbiBxZShhLGIpe3ZhciBjPXBlKCk7YS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5yZXNvbHZlKGIpfSwwKTtyZXR1cm4gYy5wcm9taXNlfWZ1bmN0aW9uIHJlKGEsYil7dmFyIGM9cGUoKTt3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2MucmVzb2x2ZShiKX0sYSk7cmV0dXJuIGMucHJvbWlzZX1cbmZ1bmN0aW9uIHNlKGEpe3ZhciBiPVtdLGM9MCxkPWEubGVuZ3RoO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLGYpe2lmKGQpZm9yKHZhciBnPXtzYTowfTtnLnNhPGQ7Zz17c2E6Zy5zYX0sZy5zYSsrKVByb21pc2UucmVzb2x2ZShhW2cuc2FdKS50aGVuKGZ1bmN0aW9uKGgpe3JldHVybiBmdW5jdGlvbihrKXtiW2guc2FdPWs7Yys9MTtjPT09ZCYmZShiKX19KGcpKS5jYXRjaChmdW5jdGlvbihoKXtmKGgpfSk7ZWxzZSBlKGIpfSl9O3ZhciB0ZT1udWxsO2Z1bmN0aW9uIHVlKCl7aWYobnVsbCE9dGUpcmV0dXJuIHRlO3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7YS5zdHlsZS53aWR0aD1cIjFweFwiO2Euc3R5bGUuaGVpZ2h0PVwiMXB4XCI7YS5zdHlsZS5ib3JkZXI9XCIxcHggc29saWQgYmxhY2tcIjthLnN0eWxlLnBhZGRpbmc9XCIxcHhcIjthLnN0eWxlLnZpc2liaWxpdHk9XCJoaWRkZW5cIjtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO3ZhciBiPWEub2Zmc2V0V2lkdGg7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKTtyZXR1cm4gdGU9NT09Yn1mdW5jdGlvbiB2ZShhKXtyZXR1cm4gcGFyc2VGbG9hdChhLnJlcGxhY2UoXCJweFwiLFwiXCIpKXx8MH1cbmZ1bmN0aW9uIHdlKGEsYil7dmFyIGM9Yj9hLm9mZnNldEhlaWdodDphLm9mZnNldFdpZHRoO2I9Yj9bXCJUb3BcIixcIkJvdHRvbVwiXTpbXCJSaWdodFwiLFwiTGVmdFwiXTt2YXIgZD0hMTt2YXIgZT11ZSgpP1tcIm1hcmdpblwiXTpbXCJib3JkZXJcIixcIm1hcmdpblwiLFwicGFkZGluZ1wiXTt2YXIgZj1lLmxlbmd0aCxnPWIubGVuZ3RoLGg9ZG9jdW1lbnQuZGVmYXVsdFZpZXc7aWYoaCYmaC5nZXRDb21wdXRlZFN0eWxlJiYoaD1oLmdldENvbXB1dGVkU3R5bGUoYSkpKXtkPSEwO2Zvcih2YXIgaz0wO2s8ZjtrKyspZm9yKHZhciBsPTA7bDxnO2wrKyljKz12ZShoLmdldFByb3BlcnR5VmFsdWUoW2Vba10sYltsXS50b0xvd2VyQ2FzZSgpXS5qb2luKFwiLVwiKSkpfWlmKCFkJiYoYT1hLmN1cnJlbnRTdHlsZSkpe2lmKCF1ZSgpKWZvcihkPTA7ZDxnO2QrKyljKz12ZShhW1tcImJvcmRlclwiLGJbZF0sXCJXaWR0aFwiXS5qb2luKFwiXCIpXSk7Zm9yKGQ9MDtkPGY7ZCsrKWlmKFwiYm9yZGVyXCIhPWVbZF0pZm9yKGg9MDtoPFxuZztoKyspYys9dmUoYVtbZVtkXSxiW2hdXS5qb2luKFwiXCIpXSl9cmV0dXJuIGN9O2Z1bmN0aW9uIHhlKGEpe2lmKHllKXJldHVybiB5ZShhKTt2YXIgYj1sZShhKTtpZih3KCkuZGF0YS5laWVsbCl6ZShiKTtlbHNlIHJldHVybiBBZShiLmZyYW1lcykudGhlbihmdW5jdGlvbigpe3plKGIpfSl9eGU9Qih4ZSxcInNQSFwiKTt2YXIgeWU9bnVsbDtmdW5jdGlvbiBCZShhKXt0cnl7cmV0dXJuIHdlKGEuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCEwKX1jYXRjaChiKXtyZXR1cm4gbnVsbH19QmU9QihCZSxcImdCSFwiKTtmdW5jdGlvbiBDZShhKXt0cnl7dmFyIGI9YS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIik7cmV0dXJuIHdlKGIsITEpfWNhdGNoKGMpe3JldHVybiBudWxsfX1DZT1CKENlLFwiZ0JXXCIpO1xuZnVuY3Rpb24gRGUoYSl7dmFyIGI9W107YT1uKGEuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJpbWdcIikpO2Zvcih2YXIgYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpe3ZhciBkPWIsZT1kLnB1c2g7Yz1jLnZhbHVlO3ZhciBmPXBlKCk7Yy5jb21wbGV0ZT9mLnJlc29sdmUoKToob2UoYyxcImxvYWRcIixmLnJlc29sdmUpLG9lKGMsXCJlcnJvclwiLGYucmVzb2x2ZSkpO2UuY2FsbChkLGYucHJvbWlzZSl9cmV0dXJuIHNlKGIpfURlPUIoRGUsXCJnRkhfd2ZpcFwiKTtcbmZ1bmN0aW9uIHplKGEpe2Zvcih2YXIgYj0wO2I8YS5mcmFtZXMubGVuZ3RoO2IrKyl7dmFyIGM9YS5mcmFtZXNbYl07aWYoeihcIl9vcHRpbWl6ZUZyYW1lTWVhc3VyZW1lbnRcIikpe3ZhciBkPWMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2Q9bmV3IEJkKGQub2Zmc2V0V2lkdGgsZC5vZmZzZXRIZWlnaHQpO2M9RWUoYyk7Yz1uZXcgbmUoZC53aWR0aCxkLmhlaWdodCxjKX1lbHNle2Q9QmUoYyk7dmFyIGU9Q2UoYyk7RmUoYyxkLGUpP2M9bmV3IG5lKDEsMSk6KGM9RWUoYyksYz1uZXcgbmUoZSxkLGMpKX1kPXt9O2M9KGQuZnc9Yy5mcmFtZVdpZHRoLGQuZmg9Yy5mcmFtZUhlaWdodCxkLmFoPWMuVmEsZCk7Y2QoYS5uYW1lc1tiXStcIi5mc1wiLGMsVWMuail9ZGQoKX1cbmZ1bmN0aW9uIEFlKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspYi5wdXNoKERlKGFbY10pKTtyZXR1cm4gUHJvbWlzZS5yYWNlKFtQcm9taXNlLmFsbChiKSxyZSg1MDAsXCJ0aW1lZE91dFdhaXRpbmdGb3JJbWFnZXNcIildKX1BZT1CKEFlLFwiZ0ZIXCIpO3ZhciBFZT1FKGZ1bmN0aW9uKGEpe3ZhciBiPVtdO2E9bih6KFwiX2VuYWJsZVVuaWZpZWRNdWRza2lwcGVySWZyYW1lXCIpP2EuZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5jbGlja3RyYWNrZWRBZF9qc1wiKTphLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuc2kxMDFcIikpO2Zvcih2YXIgYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpYz1jLnZhbHVlLGM9eihcIl9vcHRpbWl6ZUZyYW1lTWVhc3VyZW1lbnRcIik/KG5ldyBCZChjLm9mZnNldFdpZHRoLGMub2Zmc2V0SGVpZ2h0KSkuaGVpZ2h0OndlKGMsITApLGIucHVzaChjKTtyZXR1cm4gYn0sXCJnQUhJRlwiKTtcbmZ1bmN0aW9uIEZlKGEsYixjKXtyZXR1cm4oXCJudW1iZXJcIj09dHlwZW9mIGImJjE2PmJ8fFwibnVtYmVyXCI9PXR5cGVvZiBjJiYxNj5jKSYmKGE9YS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIikpJiZcIlwiIT1hLmlubmVySFRNTD8hMDohMX1GZT1CKEZlLFwiaUNTSVwiKTt2YXIgR2U9eGU7LypcblxuIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4qL1xudmFyIEhlPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBVUkw7ZnVuY3Rpb24gS2UoYSl7aWYoYSBpbnN0YW5jZW9mIHRiKWE9dWIoYSk7ZWxzZXtiOmlmKEhlKXt0cnl7dmFyIGI9bmV3IFVSTChhKX1jYXRjaChjKXtiPVwiaHR0cHM6XCI7YnJlYWsgYn1iPWIucHJvdG9jb2x9ZWxzZSBjOntiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO3RyeXtiLmhyZWY9YX1jYXRjaChjKXtiPXZvaWQgMDticmVhayBjfWI9Yi5wcm90b2NvbDtiPVwiOlwiPT09Ynx8XCJcIj09PWI/XCJodHRwczpcIjpifWE9XCJqYXZhc2NyaXB0OlwiIT09Yj9hOnZvaWQgMH1yZXR1cm4gYX07ZnVuY3Rpb24gTGUoYSl7dmFyIGI9dGEuYXBwbHkoMSxhcmd1bWVudHMpO2lmKDA9PT1iLmxlbmd0aClyZXR1cm4gaWIoYVswXSk7Zm9yKHZhciBjPWFbMF0sZD0wO2Q8Yi5sZW5ndGg7ZCsrKWMrPWVuY29kZVVSSUNvbXBvbmVudChiW2RdKSthW2QrMV07cmV0dXJuIGliKGMpfTt2YXIgTWU9amEoW1wiLy9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVwiLFwiXCJdKTtmdW5jdGlvbiBOZShhLGIpe2I9YlthXTtifHwoQy5sb2coXCJmcmFtZU9wdGlvbnMgaXMgdW5kZWZpbmVkIGZvciBcIithLFwiZkFVXCIpLGI9e30pO3JldHVybiBifU5lPUIoTmUsXCJnRk9cIik7ZnVuY3Rpb24gT2UoYSl7cmV0dXJuIGZ1bmN0aW9uKGIsYyl7cmV0dXJuXCJ1bmRlZmluZWRcIj09dHlwZW9mIGFbYl0/Y3x8bnVsbDphW2JdfX1mdW5jdGlvbiBQZShhKXtyZXR1cm4gZnVuY3Rpb24oYixjKXtpZihhLmhhc093blByb3BlcnR5KGIpKXtiPWFbYl0uc3BsaXQoXCIsXCIpO2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKWlmKGJbZF09PWMpcmV0dXJuITA7cmV0dXJuITF9cmV0dXJuITB9fWZ1bmN0aW9uIFFlKGEpe3JldHVybihhPWEud2lkdGgpJiZcImF1dG9cIiE9YT9hOlwiMTAwJVwifVxuZnVuY3Rpb24gUmUoYSl7dmFyIGI9e3JhOiExLGJkOm51bGwsa2Q6bnVsbH07YS52ZXJ0aWNhbFNwYWNpbmcmJihhPWEudmVydGljYWxTcGFjaW5nLzIsYi5yYT0hMCxiLmJkPU1hdGguZmxvb3IoYSksYi5rZD1NYXRoLmNlaWwoYSkpO3JldHVybiBifWZ1bmN0aW9uIFNlKGEpe2lmKGEuZm9udFNpemVUaXRsZSlyZXR1cm4gYS5mb250U2l6ZVRpdGxlO2E9U2EoKTtyZXR1cm4gYS5kYXRhLmhtfHxhLmRhdGEudD8xODpudWxsfWZ1bmN0aW9uIFRlKGEpe3ZhciBiPVtdO2lmKGEud2ViRm9udEZhbWlseSl7dmFyIGM9YS53ZWJGb250RmFtaWx5O2EudGl0bGVCb2xkJiYoYys9XCI6NDAwLDcwMFwiKTtiLnB1c2goYyl9YS53ZWJGb250RmFtaWx5QXR0cmlidXRpb24mJihjPWEud2ViRm9udEZhbWlseUF0dHJpYnV0aW9uLGEuYXR0cmlidXRpb25Cb2xkJiYoYys9XCI6NDAwLDcwMFwiKSxiLnB1c2goYykpO3JldHVybiAwPT1iLmxlbmd0aD9udWxsOkxlKE1lLGIuam9pbihcInxcIikpfXZhciBVZT1OZTsheShcIkFuZHJvaWRcIil8fExiKCk7TGIoKTt5KFwiU2FmYXJpXCIpJiYoTGIoKXx8KEtiKCk/MDp5KFwiQ29hc3RcIikpfHwoS2IoKT8wOnkoXCJPcGVyYVwiKSl8fChLYigpPzA6eShcIkVkZ2VcIikpfHwoS2IoKT9KYihcIk1pY3Jvc29mdCBFZGdlXCIpOnkoXCJFZGcvXCIpKXx8S2IoKSYmSmIoXCJPcGVyYVwiKSk7TWF0aC5tYXguYXBwbHkoTWF0aCxrYShPYmplY3QudmFsdWVzKHtzZzoxLHFnOjIscGc6NCx2Zzo4LHVnOjE2LHRnOjMyLGtnOjY0LHhnOjEyOCxvZzoyNTYsbmc6NTEyLHJnOjEwMjQsbGc6MjA0OCx3Zzo0MDk2LG1nOjgxOTJ9KSkpO09iamVjdC5mcmVlemUoe30pO3ZhciBWZT0vPFtePl0qPnwmW147XSs7L2c7ZnVuY3Rpb24gV2UoYSxiKXtyZXR1cm4gYj9hLnJlcGxhY2UoVmUsXCJcIik6YX1cbnZhciBYZT1SZWdFeHAoXCJbQS1aYS16XFx1MDBjMC1cXHUwMGQ2XFx1MDBkOC1cXHUwMGY2XFx1MDBmOC1cXHUwMmI4XFx1MDMwMC1cXHUwNTkwXFx1MDkwMC1cXHUxZmZmXFx1MjAwZVxcdTJjMDAtXFx1ZDgwMVxcdWQ4MDQtXFx1ZDgzOVxcdWQ4M2MtXFx1ZGJmZlxcdWY5MDAtXFx1ZmIxY1xcdWZlMDAtXFx1ZmU2ZlxcdWZlZmQtXFx1ZmZmZl1cIiksWWU9UmVnRXhwKFwiXlteQS1aYS16XFx1MDBjMC1cXHUwMGQ2XFx1MDBkOC1cXHUwMGY2XFx1MDBmOC1cXHUwMmI4XFx1MDMwMC1cXHUwNTkwXFx1MDkwMC1cXHUxZmZmXFx1MjAwZVxcdTJjMDAtXFx1ZDgwMVxcdWQ4MDQtXFx1ZDgzOVxcdWQ4M2MtXFx1ZGJmZlxcdWY5MDAtXFx1ZmIxY1xcdWZlMDAtXFx1ZmU2ZlxcdWZlZmQtXFx1ZmZmZl0qW1xcdTA1OTEtXFx1MDZlZlxcdTA2ZmEtXFx1MDhmZlxcdTIwMGZcXHVkODAyLVxcdWQ4MDNcXHVkODNhLVxcdWQ4M2JcXHVmYjFkLVxcdWZkZmZcXHVmZTcwLVxcdWZlZmNdXCIpLFplPS9eaHR0cDpcXC9cXC8uKi8sJGU9L1xccysvLGFmPS9bXFxkXFx1MDZmMC1cXHUwNmY5XS87dmFyIGJmPXt9LGNmPXt9LGRmPXt9LGVmPXt9LGZmPXt9O2Z1bmN0aW9uIGdmKCl7dGhyb3cgRXJyb3IoXCJEbyBub3QgaW5zdGFudGlhdGUgZGlyZWN0bHlcIik7fWdmLnByb3RvdHlwZS5TPW51bGw7Z2YucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVudH07Z2YucHJvdG90eXBlLkpkPWZ1bmN0aW9uKCl7aWYodGhpcy5PIT09YmYpdGhyb3cgRXJyb3IoXCJTYW5pdGl6ZWQgY29udGVudCB3YXMgbm90IG9mIGtpbmQgSFRNTC5cIik7cmV0dXJuIFFiKHRoaXMudG9TdHJpbmcoKSl9O2Z1bmN0aW9uIGhmKCl7Z2YuY2FsbCh0aGlzKX1CYShoZixnZik7aGYucHJvdG90eXBlLk89YmY7ZnVuY3Rpb24gamYoKXtnZi5jYWxsKHRoaXMpfUJhKGpmLGdmKTtqZi5wcm90b3R5cGUuTz1jZjtqZi5wcm90b3R5cGUuUz0xO2Z1bmN0aW9uIGtmKCl7Z2YuY2FsbCh0aGlzKX1CYShrZixnZik7a2YucHJvdG90eXBlLk89ZGY7a2YucHJvdG90eXBlLlM9MTtcbmZ1bmN0aW9uIGxmKCl7Z2YuY2FsbCh0aGlzKX1CYShsZixnZik7bGYucHJvdG90eXBlLk89ZWY7bGYucHJvdG90eXBlLlM9MTtmdW5jdGlvbiBtZigpe2dmLmNhbGwodGhpcyl9QmEobWYsZ2YpO21mLnByb3RvdHlwZS5PPWZmO21mLnByb3RvdHlwZS5TPTE7ZnVuY3Rpb24gbmYoYSxiKXtyZXR1cm4gbnVsbCE9YSYmYS5PPT09Yn07ZnVuY3Rpb24gb2YoYSl7aWYobnVsbCE9YSlzd2l0Y2goYS5TKXtjYXNlIDE6cmV0dXJuIDE7Y2FzZSAtMTpyZXR1cm4tMTtjYXNlIDA6cmV0dXJuIDB9cmV0dXJuIG51bGx9ZnVuY3Rpb24gcGYoYSl7cmV0dXJuIG5mKGEsYmYpP2E6YSBpbnN0YW5jZW9mIE5iP0goT2IoYSkudG9TdHJpbmcoKSk6SChTdHJpbmcoU3RyaW5nKGEpKS5yZXBsYWNlKHFmLHJmKSxvZihhKSl9ZnVuY3Rpb24gc2YoYSl7ZnVuY3Rpb24gYihjKXt0aGlzLmNvbnRlbnQ9Y31iLnByb3RvdHlwZT1hLnByb3RvdHlwZTtyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuIG5ldyBiKFN0cmluZyhjKSl9fXZhciBIPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyl7dGhpcy5jb250ZW50PWN9Yi5wcm90b3R5cGU9YS5wcm90b3R5cGU7cmV0dXJuIGZ1bmN0aW9uKGMsZCl7Yz1uZXcgYihTdHJpbmcoYykpO3ZvaWQgMCE9PWQmJihjLlM9ZCk7cmV0dXJuIGN9fShoZiksdGY9c2YobGYpLHVmPXNmKG1mKTtcbmZ1bmN0aW9uIHZmKGEpe3ZhciBiPVtdLGM7Zm9yKGMgaW4gYSliLnB1c2goYyk7cmV0dXJuIGJ9ZnVuY3Rpb24gd2YoYSl7aWYobnVsbD09YSl0aHJvdyBFcnJvcihcInVuZXhwZWN0ZWQgbnVsbCB2YWx1ZVwiKTtyZXR1cm4gYX1mdW5jdGlvbiBJKGEsYil7cmV0dXJuIGEmJmImJmEubmYmJmIubmY/YS5PIT09Yi5PPyExOmEudG9TdHJpbmcoKT09PWIudG9TdHJpbmcoKTphIGluc3RhbmNlb2YgZ2YmJmIgaW5zdGFuY2VvZiBnZj9hLk8hPWIuTz8hMTphLnRvU3RyaW5nKCk9PWIudG9TdHJpbmcoKTphPT1ifWZ1bmN0aW9uIEooYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBnZj8hIWEuY29udGVudDohIWF9ZnVuY3Rpb24geGYoYSl7ZnVuY3Rpb24gYihjKXt0aGlzLmNvbnRlbnQ9Y31iLnByb3RvdHlwZT1hLnByb3RvdHlwZTtyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuKGM9U3RyaW5nKGMpKT9uZXcgYihjKTpcIlwifX1cbnZhciB5Zj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGMpe3RoaXMuY29udGVudD1jfWIucHJvdG90eXBlPWEucHJvdG90eXBlO3JldHVybiBmdW5jdGlvbihjLGQpe2M9U3RyaW5nKGMpO2lmKCFjKXJldHVyblwiXCI7Yz1uZXcgYihjKTt2b2lkIDAhPT1kJiYoYy5TPWQpO3JldHVybiBjfX0oaGYpLHpmPXhmKGtmKSxBZj14ZihqZiksQmY9eGYobGYpLENmPXhmKG1mKTtmdW5jdGlvbiBEZihhKXtyZXR1cm4gYS5yZXBsYWNlKC88XFwvL2csXCI8XFxcXC9cIikucmVwbGFjZSgvXFxdXFxdPi9nLFwiXV1cXFxcPlwiKX1mdW5jdGlvbiBMKGEpe2lmKG5mKGEsYmYpKXt2YXIgYj1TdHJpbmc7YT1TdHJpbmcoYS5jb250ZW50KS5yZXBsYWNlKEVmLFwiXCIpLnJlcGxhY2UoRmYsXCImbHQ7XCIpO2I9YihhKS5yZXBsYWNlKEdmLHJmKX1lbHNlIGI9U3RyaW5nKGEpLnJlcGxhY2UocWYscmYpO3JldHVybiBifVxuZnVuY3Rpb24gSGYoYSl7bmYoYSxlZik/YT1hLmNvbnRlbnQ6KGE9U3RyaW5nKGEpLGE9SWYudGVzdChhKT9hOlwielNveXpcIik7cmV0dXJuIGF9ZnVuY3Rpb24gSmYoYSl7bmYoYSxlZikmJihhPWEuY29udGVudCk7cmV0dXJuKGEmJiFhLnN0YXJ0c1dpdGgoXCIgXCIpP1wiIFwiOlwiXCIpK2F9ZnVuY3Rpb24gS2YoYSl7bmYoYSxjZil8fG5mKGEsZGYpP2E9TGYoYSk6YSBpbnN0YW5jZW9mIHRiP2E9TGYodWIoYSkpOmEgaW5zdGFuY2VvZiBkYj9hPUxmKGhiKGEpLnRvU3RyaW5nKCkpOihhPVN0cmluZyhhKSxhPU1mLnRlc3QoYSk/YS5yZXBsYWNlKE5mLE9mKTpcImFib3V0OmludmFsaWQjelNveXpcIik7cmV0dXJuIGF9XG5mdW5jdGlvbiBQZihhKXtuZihhLGNmKXx8bmYoYSxkZik/YT1MZihhKTphIGluc3RhbmNlb2YgdGI/YT1MZih1YihhKSk6YSBpbnN0YW5jZW9mIGRiP2E9TGYoaGIoYSkudG9TdHJpbmcoKSk6KGE9U3RyaW5nKGEpLGE9UWYudGVzdChhKT9hLnJlcGxhY2UoTmYsT2YpOlwiYWJvdXQ6aW52YWxpZCN6U295elwiKTtyZXR1cm4gYX1mdW5jdGlvbiBOKGEpe25mKGEsZmYpP2E9RGYoYS5jb250ZW50KTpudWxsPT1hP2E9XCJcIjphIGluc3RhbmNlb2Ygd2I/YT1EZihhIGluc3RhbmNlb2Ygd2ImJmEuY29uc3RydWN0b3I9PT13Yj9hLkhjOlwidHlwZV9lcnJvcjpTYWZlU3R5bGVcIik6YSBpbnN0YW5jZW9mIHpiP2E9RGYoYSBpbnN0YW5jZW9mIHpiJiZhLmNvbnN0cnVjdG9yPT09emI/YS5HYzpcInR5cGVfZXJyb3I6U2FmZVN0eWxlU2hlZXRcIik6KGE9U3RyaW5nKGEpLGE9UmYudGVzdChhKT9hOlwielNveXpcIik7cmV0dXJuIGF9XG52YXIgU2Y9e1wiXFx4MDBcIjpcIiYjMDtcIixcIlxcdFwiOlwiJiM5O1wiLFwiXFxuXCI6XCImIzEwO1wiLFwiXFx2XCI6XCImIzExO1wiLFwiXFxmXCI6XCImIzEyO1wiLFwiXFxyXCI6XCImIzEzO1wiLFwiIFwiOlwiJiMzMjtcIiwnXCInOlwiJnF1b3Q7XCIsXCImXCI6XCImYW1wO1wiLFwiJ1wiOlwiJiMzOTtcIixcIi1cIjpcIiYjNDU7XCIsXCIvXCI6XCImIzQ3O1wiLFwiPFwiOlwiJmx0O1wiLFwiPVwiOlwiJiM2MTtcIixcIj5cIjpcIiZndDtcIixcImBcIjpcIiYjOTY7XCIsXCJcXHUwMDg1XCI6XCImIzEzMztcIixcIlxcdTAwYTBcIjpcIiYjMTYwO1wiLFwiXFx1MjAyOFwiOlwiJiM4MjMyO1wiLFwiXFx1MjAyOVwiOlwiJiM4MjMzO1wifTtmdW5jdGlvbiByZihhKXtyZXR1cm4gU2ZbYV19XG52YXIgVGY9e1wiXFx4MDBcIjpcIlxcXFwwIFwiLFwiXFxiXCI6XCJcXFxcOCBcIixcIlxcdFwiOlwiXFxcXDkgXCIsXCJcXG5cIjpcIlxcXFxhIFwiLFwiXFx2XCI6XCJcXFxcYiBcIixcIlxcZlwiOlwiXFxcXGMgXCIsXCJcXHJcIjpcIlxcXFxkIFwiLCdcIic6XCJcXFxcMjIgXCIsXCImXCI6XCJcXFxcMjYgXCIsXCInXCI6XCJcXFxcMjcgXCIsXCIoXCI6XCJcXFxcMjggXCIsXCIpXCI6XCJcXFxcMjkgXCIsXCIqXCI6XCJcXFxcMmEgXCIsXCIvXCI6XCJcXFxcMmYgXCIsXCI6XCI6XCJcXFxcM2EgXCIsXCI7XCI6XCJcXFxcM2IgXCIsXCI8XCI6XCJcXFxcM2MgXCIsXCI9XCI6XCJcXFxcM2QgXCIsXCI+XCI6XCJcXFxcM2UgXCIsXCJAXCI6XCJcXFxcNDAgXCIsXCJcXFxcXCI6XCJcXFxcNWMgXCIsXCJ7XCI6XCJcXFxcN2IgXCIsXCJ9XCI6XCJcXFxcN2QgXCIsXCJcXHUwMDg1XCI6XCJcXFxcODUgXCIsXCJcXHUwMGEwXCI6XCJcXFxcYTAgXCIsXCJcXHUyMDI4XCI6XCJcXFxcMjAyOCBcIixcIlxcdTIwMjlcIjpcIlxcXFwyMDI5IFwifTtmdW5jdGlvbiBVZihhKXtyZXR1cm4gVGZbYV19XG52YXIgVmY9e1wiXFx4MDBcIjpcIiUwMFwiLFwiXFx1MDAwMVwiOlwiJTAxXCIsXCJcXHUwMDAyXCI6XCIlMDJcIixcIlxcdTAwMDNcIjpcIiUwM1wiLFwiXFx1MDAwNFwiOlwiJTA0XCIsXCJcXHUwMDA1XCI6XCIlMDVcIixcIlxcdTAwMDZcIjpcIiUwNlwiLFwiXFx1MDAwN1wiOlwiJTA3XCIsXCJcXGJcIjpcIiUwOFwiLFwiXFx0XCI6XCIlMDlcIixcIlxcblwiOlwiJTBBXCIsXCJcXHZcIjpcIiUwQlwiLFwiXFxmXCI6XCIlMENcIixcIlxcclwiOlwiJTBEXCIsXCJcXHUwMDBlXCI6XCIlMEVcIixcIlxcdTAwMGZcIjpcIiUwRlwiLFwiXFx1MDAxMFwiOlwiJTEwXCIsXCJcXHUwMDExXCI6XCIlMTFcIixcIlxcdTAwMTJcIjpcIiUxMlwiLFwiXFx1MDAxM1wiOlwiJTEzXCIsXCJcXHUwMDE0XCI6XCIlMTRcIixcIlxcdTAwMTVcIjpcIiUxNVwiLFwiXFx1MDAxNlwiOlwiJTE2XCIsXCJcXHUwMDE3XCI6XCIlMTdcIixcIlxcdTAwMThcIjpcIiUxOFwiLFwiXFx1MDAxOVwiOlwiJTE5XCIsXCJcXHUwMDFhXCI6XCIlMUFcIixcIlxcdTAwMWJcIjpcIiUxQlwiLFwiXFx1MDAxY1wiOlwiJTFDXCIsXCJcXHUwMDFkXCI6XCIlMURcIixcIlxcdTAwMWVcIjpcIiUxRVwiLFwiXFx1MDAxZlwiOlwiJTFGXCIsXCIgXCI6XCIlMjBcIiwnXCInOlwiJTIyXCIsXCInXCI6XCIlMjdcIixcIihcIjpcIiUyOFwiLFxuXCIpXCI6XCIlMjlcIixcIjxcIjpcIiUzQ1wiLFwiPlwiOlwiJTNFXCIsXCJcXFxcXCI6XCIlNUNcIixcIntcIjpcIiU3QlwiLFwifVwiOlwiJTdEXCIsXCJcXHUwMDdmXCI6XCIlN0ZcIixcIlxcdTAwODVcIjpcIiVDMiU4NVwiLFwiXFx1MDBhMFwiOlwiJUMyJUEwXCIsXCJcXHUyMDI4XCI6XCIlRTIlODAlQThcIixcIlxcdTIwMjlcIjpcIiVFMiU4MCVBOVwiLFwiXFx1ZmYwMVwiOlwiJUVGJUJDJTgxXCIsXCJcXHVmZjAzXCI6XCIlRUYlQkMlODNcIixcIlxcdWZmMDRcIjpcIiVFRiVCQyU4NFwiLFwiXFx1ZmYwNlwiOlwiJUVGJUJDJTg2XCIsXCJcXHVmZjA3XCI6XCIlRUYlQkMlODdcIixcIlxcdWZmMDhcIjpcIiVFRiVCQyU4OFwiLFwiXFx1ZmYwOVwiOlwiJUVGJUJDJTg5XCIsXCJcXHVmZjBhXCI6XCIlRUYlQkMlOEFcIixcIlxcdWZmMGJcIjpcIiVFRiVCQyU4QlwiLFwiXFx1ZmYwY1wiOlwiJUVGJUJDJThDXCIsXCJcXHVmZjBmXCI6XCIlRUYlQkMlOEZcIixcIlxcdWZmMWFcIjpcIiVFRiVCQyU5QVwiLFwiXFx1ZmYxYlwiOlwiJUVGJUJDJTlCXCIsXCJcXHVmZjFkXCI6XCIlRUYlQkMlOURcIixcIlxcdWZmMWZcIjpcIiVFRiVCQyU5RlwiLFwiXFx1ZmYyMFwiOlwiJUVGJUJDJUEwXCIsXCJcXHVmZjNiXCI6XCIlRUYlQkMlQkJcIixcblwiXFx1ZmYzZFwiOlwiJUVGJUJDJUJEXCJ9O2Z1bmN0aW9uIE9mKGEpe3JldHVybiBWZlthXX1cbnZhciBxZj0vW1xceDAwXFx4MjJcXHgyNlxceDI3XFx4M2NcXHgzZV0vZyxHZj0vW1xceDAwXFx4MjJcXHgyN1xceDNjXFx4M2VdL2csV2Y9L1tcXHgwMFxceDA4LVxceDBkXFx4MjJcXHgyNi1cXHgyYVxcL1xceDNhLVxceDNlQFxcXFxcXHg3YlxceDdkXFx4ODVcXHhhMFxcdTIwMjhcXHUyMDI5XS9nLE5mPS9bXFx4MDAtIFxceDIyXFx4MjctXFx4MjlcXHgzY1xceDNlXFxcXFxceDdiXFx4N2RcXHg3ZlxceDg1XFx4YTBcXHUyMDI4XFx1MjAyOVxcdWZmMDFcXHVmZjAzXFx1ZmYwNFxcdWZmMDYtXFx1ZmYwY1xcdWZmMGZcXHVmZjFhXFx1ZmYxYlxcdWZmMWRcXHVmZjFmXFx1ZmYyMFxcdWZmM2JcXHVmZjNkXS9nLFJmPS9eKD8hLSooPzpleHByZXNzaW9ufCg/Om1vei0pP2JpbmRpbmcpKSg/Oig/OlsuI10/LT8oPzpbX2EtejAtOS1dKykoPzotW19hLXowLTktXSspKi0/fCg/OmNhbGN8Y3ViaWMtYmV6aWVyfGRyb3Atc2hhZG93fGhzbHxoc2xhfGh1ZS1yb3RhdGV8aW52ZXJ0fGxpbmVhci1ncmFkaWVudHxtYXh8bWlufHJnYnxyZ2JhfHJvdGF0ZXxyb3RhdGVafHRyYW5zbGF0ZXx0cmFuc2xhdGUzZHx0cmFuc2xhdGVYfHRyYW5zbGF0ZVl8dmFyKVxcKCg/OlstXFx1MDAyMFxcdCwrLiEjJV8wLTlhLXpBLVpdfCg/OmNhbGN8Y3ViaWMtYmV6aWVyfGRyb3Atc2hhZG93fGhzbHxoc2xhfGh1ZS1yb3RhdGV8aW52ZXJ0fGxpbmVhci1ncmFkaWVudHxtYXh8bWlufHJnYnxyZ2JhfHJvdGF0ZXxyb3RhdGVafHRyYW5zbGF0ZXx0cmFuc2xhdGUzZHx0cmFuc2xhdGVYfHRyYW5zbGF0ZVl8dmFyKVxcKFstXFx1MDAyMFxcdCwrLiEjJV8wLTlhLXpBLVpdK1xcKSkrXFwpfFstK10/KD86WzAtOV0rKD86XFwuWzAtOV0qKT98XFwuWzAtOV0rKSg/OmUtP1swLTldKyk/KD86W2Etel17MSw0fXwlKT98IWltcG9ydGFudCkoPzpcXHMqWyxcXHUwMDIwXVxccyp8JCkpKiQvaSxNZj1cbi9eKD8hamF2YXNjcmlwdDopKD86W2EtejAtOSsuLV0rOnxbXiY6XFwvPyNdKig/OltcXC8/I118JCkpL2ksUWY9L15bXiY6XFwvPyNdKig/OltcXC8/I118JCl8Xmh0dHBzPzp8XmZ0cDp8XmRhdGE6aW1hZ2VcXC9bYS16MC05Ky1dKztiYXNlNjQsW2EtejAtOStcXC9dKz0qJHxeYmxvYjovaSxJZj0vXig/IW9ufHNyY3woPzphY3Rpb258YXJjaGl2ZXxiYWNrZ3JvdW5kfGNpdGV8Y2xhc3NpZHxjb2RlYmFzZXxjb250ZW50fGRhdGF8ZHN5bmN8aHJlZnxodHRwLWVxdWl2fGxvbmdkZXNjfHN0eWxlfHVzZW1hcClcXHMqJCkoPzpbYS16MC05XyQ6LV0qKSQvaTtmdW5jdGlvbiBMZihhKXtyZXR1cm4gU3RyaW5nKGEpLnJlcGxhY2UoTmYsT2YpfXZhciBFZj0vPCg/OiF8XFwvPyhbYS16QS1aXVthLXpBLVowLTk6XFwtXSopKSg/OltePidcIl18XCJbXlwiXSpcInwnW14nXSonKSo+L2csRmY9LzwvZzsvKlxuIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuXG4gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiovXG5mdW5jdGlvbiBYZihhLGIpe2I9Ynx8Q2QoKTtpZihhJiZhLk1jKWI9YS5NYygpO2Vsc2V7Yj1iLmNyZWF0ZUVsZW1lbnQoXCJESVZcIik7YTppZih6YShhKSl7aWYoYS5KZCYmKGE9YS5KZCgpLGEgaW5zdGFuY2VvZiBOYikpe3ZhciBjPWE7YnJlYWsgYX1jPVBiKFwielNveXpcIil9ZWxzZSBjPVBiKFN0cmluZyhhKSk7YT1iO2lmKFNiKCkpZm9yKDthLmxhc3RDaGlsZDspYS5yZW1vdmVDaGlsZChhLmxhc3RDaGlsZCk7YS5pbm5lckhUTUw9T2IoYyl9cmV0dXJuIDE9PWIuY2hpbGROb2Rlcy5sZW5ndGgmJihhPWIuZmlyc3RDaGlsZCwxPT1hLm5vZGVUeXBlKT9hOmJ9dmFyIFlmPXt9O2Z1bmN0aW9uIFpmKGEpe3ZhciBiPWEuWCxjPWEubGYsZD1hLnFmLGU9YS5tZSxmPWEuYWcsZz1hLllkLGg9YS5FZSxrPWEuRmUsbD1hLnllLHA9YS56ZSxyPWEueGUscT1hLmZvbnRGYW1pbHksdD1hLlJlLHg9YS5WZSx1PWEuU2UsRD1hLlZmLEs9YS5XZixPPWEuSmYsVj1hLktmLHVhPWEuSWYsQWE9YS5MZixUYT1hLkhmLGFhPWEudmYsYmE9YS5RZCxXYz1hLmhlLGJjPWEuamUsY2M9YS5rZSxYYz1hLmdlLE09YS5YZCx4Yj1hLlNkLFc9YS5UZCxYPWEuVmQsbGE9YS5VZCxZYz1hLldkLFpjPWEudWYsJGM9YS5kZyxJZT1hLmVnLFRnPWEuZGUseWI9YS50eXBlLFVhPWEuR2UsYWQ9YS5nZixnYj1hLmVmLEplPWEua2YsVWc9YS51ZSx5aj1hLnRlO2E9YS5LO3ZhciB6aj1mLnJhP1wicGFkZGluZy10b3A6XCIrTihmLmJkKStcInB4OyBwYWRkaW5nLWJvdHRvbTpcIitOKGYua2QpK1wicHg7XCI6Y3x8ZD9cInBhZGRpbmc6N3B4IDA7XCI6XCJcIjt2YXIgQWo9dT9OKHUpOmQ/XCIxNVwiOlwiMTNcIjtlPVwiPHN0eWxlPiNyZXNwb25zZV9kZWJ1Z19vdXRwdXR7bWF4LWhlaWdodDo1MDBweDsgb3ZlcmZsb3c6YXV0bzt9Ym9keXtcIitcbihjP1wiLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCU7XCI6XCJcIikrXCJjb2xvcjpcIisoaD9OKGgpOlwiIzAwMFwiKStcIjsgZm9udC1mYW1pbHk6XCIrKCRjP1wiJ1wiK1N0cmluZygkYykucmVwbGFjZShXZixVZikrXCInLFwiOlwiXCIpKyhxP04ocSk6XCJhcmlhbFwiKStcIiwgc2Fucy1zZXJpZjsgZm9udC1zaXplOlwiKyhjfHxkP1wiMTRcIjpcIjEyXCIpK1wicHg7IHdpZHRoOlwiK04oZSkrXCI7IHBhZGRpbmc6MHB4OyBtYXJnaW46MHB4O1wiKyhKKHApJiYoSihiYyl8fEooYmEpKT9cInBhZGRpbmctcmlnaHQ6MnB4O1wiOlwiXCIpKyhKZSYmYj9cImRpcmVjdGlvbjpydGw7XCI6XCJcIikrXCJ9Ym9keXstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTsgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O31hey13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjppbml0aWFsO30uYWR7cGFkZGluZzoycHggMDsgbWFyZ2luOjBweDsgd29yZC13cmFwOmJyZWFrLXdvcmQ7XCIremorKGc/XCJib3JkZXItYm90dG9tOjFweCBzb2xpZCBcIitcbk4oZykrXCI7XCI6XCJcIikrXCJ9XCIrKEooVGEpJiYoIUplfHxKKHliKSYmXCJyZWxhdGVkc2VhcmNoXCI9PXliKT9cIi5cIitOKFwiYV9cIikrXCI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpcIitOKFRhKStcIjt9XCI6XCJcIikrXCIuYWQuZntcIisoZi5yYT9cInBhZGRpbmctdG9wOjJweDtcIjpcIlwiKStcIn0uYWQuZnJ7XCIrKGYucmE/XCJwYWRkaW5nLXRvcDoycHg7XCI6XCJcIikrXCJ9LmFkLmx7XCIrKGYucmE/XCJwYWRkaW5nLWJvdHRvbToycHg7XCI6XCJcIikrKGc/XCJib3JkZXItYm90dG9tOjBweDtcIjpcIlwiKStcIn0uYWQubHJ7XCIrKGYucmE/XCJwYWRkaW5nLWJvdHRvbToycHg7XCI6XCJcIikrXCJ9I2FkQmxvY2sgYntcIisoeWp8fEplP1wiXCI6XCJmb250LXdlaWdodDpub3JtYWw7XCIpK1wifS5hZCBzcGFue193aWR0aDo5OSU7fSNhZEJsb2Nre2JhY2tncm91bmQ6I0ZGRiBub25lIHJlcGVhdCBzY3JvbGwgMCAwOyBtYXJnaW46MDsgcGFkZGluZzowO1wiKyhsP1wiYmFja2dyb3VuZC1jb2xvcjpcIitOKGwpK1wiO1wiOlwiXCIpKyhKKHApJiZKKFdjKT9cImJvcmRlci1sZWZ0OjFweCBzb2xpZCBcIitcbk4ocCkrXCI7XCI6XCJcIikrKEoocCkmJkooYmMpP1wiYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCBcIitOKHApK1wiO1wiOlwiXCIpKyhKKHApJiZKKGNjKT9cImJvcmRlci10b3A6MXB4IHNvbGlkIFwiK04ocCkrXCI7XCI6XCJcIikrKEoocCkmJkooWGMpP1wiYm9yZGVyLWJvdHRvbToxcHggc29saWQgXCIrTihwKStcIjtcIjpcIlwiKStcIn0jYWRCbG9jayBoMntmb250LXNpemU6XCIrQWorXCJweDsgZm9udC13ZWlnaHQ6bm9ybWFsO1wiKyhUZz9cInBhZGRpbmctYm90dG9tOlwiK04oVGcpK1wicHg7XCI6XCJwYWRkaW5nOjA7XCIpK1wibWFyZ2luOjA7XCIrKEoodCl8fEooSWUpP1wiZm9udC1mYW1pbHk6XCIrKEllP1wiJ1wiK1N0cmluZyhJZSkucmVwbGFjZShXZixVZikrXCInLFwiOlwiXCIpKyh0P04odCkrXCIsXCI6XCJcIikrXCIgc2Fucy1zZXJpZjtcIjpcIlwiKStcIn0jYWRCbG9jayBzcGFuLmxoSGVhZGVye21hcmdpbjozcHggNHB4IDA7fSNhZEJsb2NrIGgyIGEsICNhZEJsb2NrIGgye2NvbG9yOlwiKyhyP04ocik6XCIjNjc2NzY3XCIpK1wiOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9LlwiK1xuTihcImNfXCIpK1wie2NvbG9yOlwiK04oaykrXCI7fS5cIitOKFwiY19cIikrXCJ7XCIrKHg/XCJmb250LXNpemU6XCIrTih4KStcInB4O1wiOlwiXCIpK1wiZm9udC13ZWlnaHQ6XCIrKEQ/XCJib2xkXCI6XCJub3JtYWxcIikrXCI7fS5cIitOKFwiY19cIikrXCJ7XCIrKEs/XCJkaXNwbGF5OmlubGluZS1ibG9jaztcIjpcIlwiKStcImxpbmUtaGVpZ2h0OlwiKyhaYz9OKFpjKStcInB4XCI6XCIxLjRlbVwiKStcIjtcIisoYWE/XCJ0ZXh0LWRlY29yYXRpb246bm9uZTtcIjpcIlwiKStcIm1hcmdpbjowOyBwYWRkaW5nOjA7fVwiKyhBYT9cIi5cIitOKFwiY19cIikrXCI6aG92ZXIge3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fWF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fVwiOlwiXCIpK1wiaDIgYTpob3Zlcntjb2xvcjpcIisocj9OKHIpOlwiIzY3Njc2N1wiKStcIjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDt9YTpob3ZlcntcIisoTz9cImZvbnQtd2VpZ2h0OmJvbGQ7XCI6XCJcIikrKFY/XCJjb2xvcjpcIitOKFYpK1xuXCI7XCI6XCJcIikrKHVhP1wiYmFja2dyb3VuZC1jb2xvcjpcIitOKHVhKStcIjtcIjpcIlwiKStcIn1cIjtmPWI/XCJyaWdodFwiOlwibGVmdFwiO2I9Yj9cImxlZnRcIjpcInJpZ2h0XCI7Sih5YikmJlwicmVsYXRlZHNlYXJjaFwiPT15YiYmIWE/KHliPWdiP1widGV4dC1hbGlnbjpcIisoXCJyaWdodFwiPT1mJiZcImxlZnRcIj09Z2I/XCJyaWdodFwiOlwicmlnaHRcIj09ZiYmXCJyaWdodFwiPT1nYj9cImxlZnRcIjpOKGdiKSkrXCI7XCI6XCJcIixVYT1VYT9KKGFkKSYmSihnYik/XCJjZW50ZXJcIj09Z2I/XCJwYWRkaW5nLXJpZ2h0OlwiK04oTWF0aC5mbG9vcihVYS8yKSkrXCJweDsgcGFkZGluZy1sZWZ0OlwiK04oTWF0aC5mbG9vcihVYS8yKSkrXCJweDtcIjpcInJpZ2h0XCI9PWdiP1wicGFkZGluZy1cIitOKGYpK1wiOlwiK04oVWEpK1wicHg7XCI6XCJwYWRkaW5nLVwiK04oYikrXCI6XCIrTihVYSkrXCJweDtcIjpcInBhZGRpbmctcmlnaHQ6XCIrTihVYSkrXCJweDtcIjpcIlwiLGc9XCIucmFkbGlua0N7XCIrKEooYWQpJiZ4PHU/XCJwYWRkaW5nOlwiK04oMSsodS14KSkrXCJweCA0cHg7XCI6XCJwYWRkaW5nOjFweCA0cHg7XCIpK1xuXCJ3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7fS5jb2x7XCIreWIrKGFkP1wiYm9yZGVyLVwiK04oYikrXCI6MXB4IHNvbGlkIFwiK04oZykrXCI7XCI6XCJcIikrXCJ2ZXJ0aWNhbC1hbGlnbjp0b3A7XCIrVWErXCJ9XCIrKGFkP1wiI2FkQmxvY2sgaDJ7ZmxvYXQ6XCIrTihmKStcIjsgbGluZS1oZWlnaHQ6MS40ZW07IHZlcnRpY2FsLWFsaWduOnRvcDtcIisoeD49dT9cInBhZGRpbmc6XCIrTigzKyh4LXUpKStcInB4IDRweDtcIjpcInBhZGRpbmc6M3B4IDRweDtcIikrXCJ9LmFke2JvcmRlci1ib3R0b206bm9uZTt9LmNvbC5se2JvcmRlci1cIitOKGIpK1wiOm5vbmU7fVwiOlwiI2FkQmxvY2sgaDJ7dGV4dC1hbGlnbjpcIitOKGYpK1wiO31cIikpOmc9XCJcIjtYPShKKE0pJiZKKHhiKSYmVWc/XCIuYWRJY29ue3Zpc2liaWxpdHk6dmlzaWJsZTsgd2lkdGg6XCIrTihNKStcInB4OyBoZWlnaHQ6XCIrTih4YikrXCJweDsgYm9yZGVyOm5vbmU7IGZsb2F0OlwiK04oZikrXCI7IG1hcmdpbi1cIitOKGYpK1wiOlwiK04obnVsbCE9WD9YOjApK1wicHg7IG1hcmdpbi1cIitcbk4oYikrXCI6XCIrTihudWxsIT1sYT9sYTo0KStcInB4OyBtYXJnaW4tdG9wOlwiK04obnVsbCE9Vz9XOjQpK1wicHg7IG1hcmdpbi1ib3R0b206XCIrTihudWxsIT1ZYz9ZYzowKStcInB4O30uYWRELCAuXCIrTihcImFfXCIpK1wie2Rpc3BsYXk6YmxvY2s7IG92ZXJmbG93OmhpZGRlbjt9XCI6XCJcIikrKGM/XCIuYWREe2NsZWFyOlwiK04oYikrXCI7fVwiOlwiXCIpK2c7Yz1jfHxkP3VmKFwiYm9keXtmb250LWZhbWlseTpcIisoJGM/XCInXCIrU3RyaW5nKCRjKS5yZXBsYWNlKFdmLFVmKStcIicsXCI6XCJcIikrKHE/TihxKStcIixcIjpcIlwiKSsnXCJSb2JvdG9cIixcIkhlbHZldGljYSBOZXVlXCIsYXJpYWwsc2Fucy1zZXJpZjt9LmFke21hcmdpbjowOyBwYWRkaW5nOjA7fS4nK04oXCJjX1wiKStcIntsaW5lLWhlaWdodDpcIisoWmM/TihaYyk6XCIyMFwiKStcInB4OyBtYXJnaW46MDt9dGR7cGFkZGluZzowcHg7fS5hZFN0ZHtjbGVhcjpub25lO31cIisoSihNKSYmSih4YikmJkooVWcpP1wiLmFkSWNvbnttYXJnaW4tdG9wOlwiK04obnVsbCE9Vz9XOjApK1xuXCJweDsgbWFyZ2luLWJvdHRvbTpcIitOKG51bGwhPVljP1ljOjApK1wicHg7IG1hcmdpbi1cIitOKGYpK1wiOjBweDt9XCI6XCJcIikrXCIuYWRTdGR7Y2xlYXI6bm9uZTt9XCIpOlwiXCI7cmV0dXJuIEgoZSsoWCtjK1wiPC9zdHlsZT5cIikpfTtmdW5jdGlvbiAkZihhKXt2YXIgYj1hLlgsYz1hLnR5cGUsZD1hLmRmLGU9YS5iZixmPWEuQWUsZz1hLkJlLGg9YS5EZSxrPWEuamcsbD1hLmdnLHA9YS5VZSxyPWEuVGUscT1hLmFmLHQ9YS5aZSx4PWEuQ2UsdT1hLmhnLEQ9YS5BZixLPWEuY2UsTz1hLmZnLFY9YS5lZSx1YT1hLlhmLEFhPWEuUmQ7YT1hLks7Yj1cInNlYXJjaGJveFwiPT1jP1wiLnNiaXtcIisoaz9cIndpZHRoOlwiK04oaykrXCJweDtcIjpcIndpZHRoOjEwMCU7XCIpKyhwP1wiZm9udC1zaXplOlwiK04ocCkrXCJweDtcIjpcImZvbnQtc2l6ZToxNnB4O1wiKSsoZD9cImJvcmRlcjowIG5vbmU7XCI6XCJcIikrKGY/XCJiYWNrZ3JvdW5kLWNvbG9yOlwiK04oZikrXCI7XCI6XCJcIikrKHE/XCJoZWlnaHQ6XCIrTihxKStcInB4O1wiOlwiXCIpKyhEP1wiYm9yZGVyLXJhZGl1czpcIitOKEQpK1wicHg7XCI6XCJcIikrXCJ9XCIrKGs/XCJcIjpcIi5zYmktdGR7d2lkdGg6MTAwJTt9XCIpK1wiLnNiYntjdXJzb3I6cG9pbnRlcjtcIisocj9cImZvbnQtc2l6ZTpcIitOKHIpK1wicHg7XCI6XCJmb250LXNpemU6MTZweDtcIikrXG5cIm1hcmdpbi1cIisoYj9cInJpZ2h0XCI6XCJsZWZ0XCIpK1wiOjE1cHg7XCIrKGU/XCJib3JkZXI6MCBub25lO1wiOih4P1wiYm9yZGVyLWNvbG9yOlwiK04oeCkrXCI7XCI6XCJcIikrKHU/XCJib3JkZXItd2lkdGg6XCIrTih1KStcInB4O1wiOlwiXCIpKyhEP1wiYm9yZGVyLXJhZGl1czpcIitOKEQpK1wicHg7XCI6XCJcIikpKyhnP1wiYmFja2dyb3VuZDpcIitOKGcpK1wiO1wiOlwiXCIpKyhoP1wiY29sb3I6XCIrTihoKStcIjtcIisoXCJ0cmFuc3BhcmVudFwiPT1oP1wiZmlsdGVyOmFscGhhKG9wYWNpdHk9MCk7XCI6XCJcIik6XCJcIikrKGw/XCJ3aWR0aDpcIitOKGwpK1wicHg7XCI6XCJcIikrKHQ/XCJoZWlnaHQ6XCIrTih0KStcInB4O1wiOlwiXCIpK1wifVwiOlwiaW1hZ2VhZFwiIT1jfHxhP1wiZHluYW1pY1wiIT1jfHxhP1wiXCI6XCIucmFkbGlua0MuaHlicmlke21hcmdpbi1yaWdodDowOyBtYXJnaW4tbGVmdDowO31cIjpcIiNhZEJsb2Nre2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7fVwiO3JldHVybiBIKFwiPHN0eWxlPlwiKyhPP1wiQGltcG9ydCB1cmwoXCIrKG5mKE8sZGYpP08uY29udGVudDpcbk8gaW5zdGFuY2VvZiBkYj9oYihPKS50b1N0cmluZygpOlwiYWJvdXQ6aW52YWxpZCN6U295elwiKStcIik7XCI6XCJcIikrKEs/XCIjYWRCbG9jayBoMiwgaDIgYTpob3Zlcntmb250LXdlaWdodDpib2xkO31cIjpcIlwiKSsoVj9cIiNhZEJsb2NrIGgye3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt9XCI6XCJcIikrKHVhP1wiLlwiK04oXCJjX1wiKStcInt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7fVwiOlwiXCIpKyhBYT9cIi5cIitOKFwiYV9cIikrXCJ7Ym9yZGVyLXdpZHRoOlwiK04oQWEpK1wicHg7fVwiOlwiXCIpK2IrXCI8L3N0eWxlPlwiKX07dmFyIGFnPS0xO2Z1bmN0aW9uIGJnKGEpe3JldHVybiBhP2E6U2EoKS5kYXRhLmhtfHxTYSgpLmRhdGEudD9cIiNiZGJkYmRcIjpudWxsfVxuZnVuY3Rpb24gY2coYSxiLGMpe2Z1bmN0aW9uIGQocil7cmV0dXJuKHI9ZShyKSk/dWYocik6dm9pZCAwfXZhciBlPU9lKGIpLGY9UGUoYiksZz1lKFwidHlwZVwiKXx8XCJhZHNcIixoPVBhKCksaz1TYSgpLGw9XCIjMDAwMENDXCI7aWYoay5kYXRhLmhtfHxrLmRhdGEudClsPVwiIzFhMGRhYlwiO2w9ZShcImNvbG9yVGl0bGVMaW5rXCIsbCk7Zj17WDpNYSgpLlgoKSxtZTpRZShiKSxhZzpSZShiKSxZZDpiZyhlKFwiY29sb3JBZFNlcGFyYXRvclwiKSksRGc6MjAsRWU6ZShcImNvbG9yVGV4dFwiKSxGZTpsLHllOmUoXCJjb2xvckJhY2tncm91bmRcIiksemU6ZShcImNvbG9yQm9yZGVyXCIpLHhlOmUoXCJjb2xvckF0dHJpYnV0aW9uXCIpLGZvbnRGYW1pbHk6ZChcImZvbnRGYW1pbHlcIiksUmU6ZChcImZvbnRGYW1pbHlBdHRyaWJ1dGlvblwiKSxWZTpTZShiKXx8ZShcImZvbnRTaXplVGl0bGVcIiksU2U6ZShcImZvbnRTaXplQXR0cmlidXRpb25cIiksVmY6ZShcInRpdGxlQm9sZFwiKSxXZjohay5kYXRhLmhtLEpmOmUoXCJyb2xsb3ZlckxpbmtCb2xkXCIpLFxuS2Y6ZShcInJvbGxvdmVyTGlua0NvbG9yXCIpLElmOmUoXCJyb2xsb3ZlckxpbmtCYWNrZ3JvdW5kQ29sb3JcIiksTGY6ZShcInJvbGxvdmVyTGlua1VuZGVybGluZVwiKSxIZjplKFwicm9sbG92ZXJBZEJhY2tncm91bmRDb2xvclwiKSx2ZjplKFwibm9UaXRsZVVuZGVybGluZVwiKSx6ZzpmKFwiYWRCb3JkZXJTZWxlY3Rpb25zXCIsXCJsZWZ0XCIpLFFkOmYoXCJhZEJvcmRlclNlbGVjdGlvbnNcIixcInJpZ2h0XCIpLEFnOmYoXCJhZEJvcmRlclNlbGVjdGlvbnNcIixcInRvcFwiKSx5ZzpmKFwiYWRCb3JkZXJTZWxlY3Rpb25zXCIsXCJib3R0b21cIiksaGU6ZihcImJvcmRlclNlbGVjdGlvbnNcIixcImxlZnRcIiksamU6ZihcImJvcmRlclNlbGVjdGlvbnNcIixcInJpZ2h0XCIpLGtlOmYoXCJib3JkZXJTZWxlY3Rpb25zXCIsXCJ0b3BcIiksZ2U6ZihcImJvcmRlclNlbGVjdGlvbnNcIixcImJvdHRvbVwiKSx1ZjplKFwibGluZUhlaWdodFRpdGxlXCIpLGRlOmUoXCJhdHRyaWJ1dGlvblNwYWNpbmdCZWxvd1wiKSxrZjohMCxsZjohIWsuZGF0YS5obSxxZjohIWsuZGF0YS50LFxudWU6ISFoLmRhdGEuY3VjYWksdGU6ISFoLmRhdGEuY2dhYixLOncoKS5LKCl9O2UoXCJhZEljb25VcmxcIikmJiF3KCkuSygpJiYoZi5YZD1lKFwiYWRJY29uV2lkdGhcIiksZi5TZD1lKFwiYWRJY29uSGVpZ2h0XCIpLGYuVGQ9ZShcImFkSWNvblNwYWNpbmdBYm92ZVwiKSxmLlZkPWUoXCJhZEljb25TcGFjaW5nQmVmb3JlXCIpLGYuVWQ9ZShcImFkSWNvblNwYWNpbmdBZnRlclwiKSxmLldkPWUoXCJhZEljb25TcGFjaW5nQmVsb3dcIikpO1wicmVsYXRlZHNlYXJjaFwiIT09Z3x8dygpLksoKXx8KGYudHlwZT1cInJlbGF0ZWRzZWFyY2hcIixmLkdlPWUoXCJjb2x1bW5TcGFjaW5nXCIpLGYuZ2Y9ZShcImhvcml6b250YWxGbG93XCIpLGYuZWY9ZShcImhvcml6b250YWxBbGlnbm1lbnRcIikpO2YuZGc9ZShcIndlYkZvbnRGYW1pbHlcIik7Zi5lZz1lKFwid2ViRm9udEZhbWlseUF0dHJpYnV0aW9uXCIpO2Y9WmYoZik7ZGcoZixhKTtiPVRlKGIpO2c9e1g6TWEoKS5YKCksdHlwZTpnLGRmOmUoXCJoaWRlU2VhcmNoSW5wdXRCb3JkZXJcIiksXG5iZjplKFwiaGlkZVNlYXJjaEJ1dHRvbkJvcmRlclwiKSxBZTplKFwiY29sb3JTZWFyY2hCb3hcIiksQmU6ZShcImNvbG9yU2VhcmNoQnV0dG9uXCIpLERlOmUoXCJjb2xvclNlYXJjaEJ1dHRvblRleHRcIiksamc6ZShcIndpZHRoU2VhcmNoSW5wdXRcIiksZ2c6ZShcIndpZHRoU2VhcmNoQnV0dG9uXCIpLFVlOmUoXCJmb250U2l6ZVNlYXJjaElucHV0XCIpLFRlOmUoXCJmb250U2l6ZVNlYXJjaEJ1dHRvblwiKSxhZjplKFwiaGVpZ2h0U2VhcmNoSW5wdXRcIiksWmU6ZShcImhlaWdodFNlYXJjaEJ1dHRvblwiKSxDZTplKFwiY29sb3JTZWFyY2hCdXR0b25Cb3JkZXJcIiksaGc6ZShcIndpZHRoU2VhcmNoQnV0dG9uQm9yZGVyXCIpLEFmOmUoXCJyYWRpdXNTZWFyY2hJbnB1dEJvcmRlclwiKSxjZTplKFwiYXR0cmlidXRpb25Cb2xkXCIpLGVlOmUoXCJhdHRyaWJ1dGlvblVwcGVyY2FzZVwiKSxYZjplKFwidGl0bGVVcHBlcmNhc2VcIiksZmc6YixSZDplKFwiYWRCb3JkZXJXaWR0aFwiKSxLOncoKS5LKCl9O2lmKGImJi0xPT1hZyl7YWc9NTt2YXIgcD1cbmZ1bmN0aW9uKCl7MDxhZyYmKEdlKGMpLGFnLS0sc2V0VGltZW91dChwLDFFMykpfTtwKCl9Zz0kZihnKTtkZyhnLGEpfWZ1bmN0aW9uIGRnKGEsYil7Yi5hcHBlbmRDaGlsZChYZihhKSl9O3ZhciBlZz0vXigoaHR0cHM/KTopP1xcL1xcL2Fmcy5nb29nbGV1c2VyY29udGVudC5jb21cXC8vO2Z1bmN0aW9uIGZnKGEsYixjKXtpZihlZy50ZXN0KGIpKWZvcihiLnN0YXJ0c1dpdGgoXCJodHRwOlwiKSYmYz9iPVwiaHR0cHM6XCIrYi5zdWJzdHJpbmcoNSk6Yi5zdGFydHNXaXRoKFwiLy9cIikmJihiPShjP1wiaHR0cHM6XCI6XCJcIikrYiksYz0wO2M8YS5sZW5ndGg7YysrKWFbY10uYWRJY29uVXJsPWJ9dmFyIGdnPWZnPUIoZmcsXCJhaUlJRFwiKTtmdW5jdGlvbiBoZygpe307ZnVuY3Rpb24gaWcoYSxiKXthLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGZ1bmN0aW9uKGMpezIhPT1jLmJ1dHRvbiYmYihjKX0pfTtmdW5jdGlvbiBqZyhhKXt2YXIgYj1cImh0dHBzXCI9PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbDthPWEuY2xpY2t0cmFja1VybDtyZXR1cm4gUGEoKS5kYXRhLmN0JiZ5YShhKT9aYShhLGZ1bmN0aW9uKGMpe3JldHVybiEoMD09Yy5pbmRleE9mKFwiaHR0cDpcIikmJmIpfSk6W119XG5mdW5jdGlvbiBrZyhhLGIpe2E9YS5nZXRFbGVtZW50c0J5VGFnTmFtZShcImFcIik7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY107KGQuaGFzQXR0cmlidXRlP2QuaGFzQXR0cmlidXRlKFwiZGF0YS1ub3RyYWNrXCIpOmQuZ2V0QXR0cmlidXRlKFwiZGF0YS1ub3RyYWNrXCIpKXx8aWcoZCxmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSxmPW4oYiksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpZz1uZXcgcWMoZy52YWx1ZSksQShnLFwibmNcIixbTWF0aC5yb3VuZCg5RTYqTWF0aC5yYW5kb20oKSksKG5ldyBEYXRlKS5nZXRUaW1lKCldLmpvaW4oXCJcIikpLGUucHVzaChyYyhnKSk7aWYod2luZG93Lm5hdmlnYXRvci5zZW5kQmVhY29uKWZvcihlPW4oZSksZz1lLm5leHQoKTshZy5kb25lO2c9ZS5uZXh0KCkpd2luZG93Lm5hdmlnYXRvci5zZW5kQmVhY29uKGcudmFsdWUpO2Vsc2UgZm9yKGU9bihlKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSlWYihmLnZhbHVlKX0pfX1cbmZ1bmN0aW9uIGxnKGEsYixjKXtpZihQYSgpLmRhdGEuY3QmJihhPWpnKGEpLDA8YS5sZW5ndGgpKWlmKFBhKCkuZGF0YS5hbGN0KXtjPWJlKFwiYmxvY2tcIixcIlwiK2MsYSk7dmFyIGQ9Z2UoKT9cImNsaWNrdHJhY2tlZEFkX2pzXCI6XCJiX1wiO2E9JGEoRmQoXCJkaXZcIixkLGIpKTthPWEuY29uY2F0KCRhKEZkKFwidHJcIixkLGIpKSk7YT1hLmNvbmNhdCgkYShGZChcImxpXCIsZCxiKSkpO3ZhciBlO2ZvcihiPTA7ZT1hW2JdO2IrKylkPWMsZD1iZShcImFkXCIsXCJcIisoYisxKSxkKSxrZyhlLGQpfWVsc2Uga2coYixhKX07dmFyIG1nPUUoZnVuY3Rpb24oYSxiKXt2YXIgYz1hLnJlc3VsdHNQYWdlQmFzZVVybCxkPWEucmVzdWx0c1BhZ2VRdWVyeVBhcmFtLGU9YlswXSYmYlswXS5hZHR5cGU7Yj1uKGIpO2Zvcih2YXIgZj1iLm5leHQoKTshZi5kb25lO2Y9Yi5uZXh0KCkpe2Y9Zi52YWx1ZTtlJiYoZj1mW2VdKTt2YXIgZz1mLnN0LGg9Zi5hZmR0O2lmKG51bGwhPWcmJm51bGwhPWgpe2lmKCFjKXRocm93IERjKFwicmVzdWx0c1BhZ2VCYXNlVXJsIG5lZWRzIHRvIGJlIHNldC5cIik7dmFyIGs9bmV3IHFjKGMpO0EoayxkLGcpO0EoayxcImFmZFRva2VuXCIsaCk7bnVsbCE9YS5wZXJzb25hbGl6ZWRBZHMmJkEoayxcInBjc2FcIixcIlwiK2EucGVyc29uYWxpemVkQWRzKTtmLmw9cmMoayk7Zi51PXJjKGspfX19LFwiZlJTQ0xcIik7ZnVuY3Rpb24gbmcoKXt2YXIgYT17WmY6ISF3KCkuZGF0YS5lc3JzfTthPWF8fHt9O3ZhciBiPWEuWmY7cmV0dXJuIEgoXCI8c3R5bGVcIisoYS5GZz8nIGRhdGEtcGVybWFuZW50PVwidHJ1ZVwiJzpcIlwiKStcIj5ib2R5ey13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlOyBmb250LWZhbWlseTphcmlhbCxzYW5zLXNlcmlmOyBtYXJnaW46MDt9ZGl2e1wiK29nKDApK1wibWF4LXdpZHRoOjEwMCU7fXNwYW46bGFzdC1jaGlsZCwgZGl2Omxhc3QtY2hpbGR7XCIrb2coMSkrXCJ9LlwiK04oXCJ4X1wiKStcIntcIitvZygxKStcIn0uXCIrTihcImpfXCIpK1wiPnNwYW46bGFzdC1jaGlsZCwgLlwiK04oXCJqX1wiKStcIj5kaXY6bGFzdC1jaGlsZCwgLlwiK04oXCJ5X1wiKStcIiwgLlwiK04oXCJ5X1wiKStcIjpsYXN0LWNoaWxke1wiK29nKDApK1wifS5cIitOKFwibF9cIikrXCJ7LW1zLW92ZXJmbG93LXN0eWxlOm5vbmU7IHNjcm9sbGJhci13aWR0aDpub25lO30uXCIrTihcImxfXCIpK1wiOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmU7fWF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGNvbG9yOmluaGVyaXQ7IGRpc3BsYXk6aW5saW5lLWJsb2NrO31zcGFue1wiK1xub2coMCkrXCJkaXNwbGF5OmlubGluZS1ibG9jazsgb3ZlcmZsb3c6aGlkZGVuOyB0ZXh0LXRyYW5zZm9ybTpub25lO31pbWd7Ym9yZGVyOm5vbmU7IG1heC13aWR0aDoxMDAlOyBtYXgtaGVpZ2h0OjEwMCU7fS5cIitOKFwiaV9cIikrXCJ7ZGlzcGxheTotbXMtZmxleGJveDsgZGlzcGxheTotd2Via2l0LWJveDsgZGlzcGxheTotd2Via2l0LWZsZXg7IGRpc3BsYXk6ZmxleDtcIitwZyhcImZsZXgtc3RhcnRcIikrXCJib3gtc2l6aW5nOmJvcmRlci1ib3g7IG92ZXJmbG93OmhpZGRlbjt9LlwiK04oXCJ1X1wiKStcIntwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7XCIrKGI/XCJ3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTtcIjpcIlwiKStcIn0uXCIrTihcIndfXCIpK1wie3Bvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyBoZWlnaHQ6MTAwJTtcIisoYj9cImJhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O1wiOlwiYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6YXV0byAxMDAlO1wiKStcblwifS5cIitOKFwidl9cIikrXCJ7ZGlzcGxheTpibG9jaztcIisoYj9cImhlaWdodDoxMDAlOyBiYWNrZ3JvdW5kLXNpemU6MjAlIDEwMCU7IGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O1wiOlwiXCIpK1wifS5cIitOKFwidF9cIikrXCJ7XCIrcWcoKStcIn0uXCIrTihcInFfXCIpK1wie2JveC1zaXppbmc6Ym9yZGVyLWJveDsgbWF4LXdpZHRoOjEwMCU7IG1heC1oZWlnaHQ6MTAwJTsgb3ZlcmZsb3c6aGlkZGVuO1wiK3FnKCkrXCJ9LlwiK04oXCJuX1wiKStcInstbXMtZmxleC1uZWdhdGl2ZToxOyB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOyB3aGl0ZS1zcGFjZTpub3dyYXA7fS5cIitOKFwicF9cIikrXCJ7LW1zLWZsZXgtbmVnYXRpdmU6MTsgbWF4LXdpZHRoOiAxMDAlO30uXCIrTihcIm1fXCIpK1wie292ZXJmbG93OmhpZGRlbjt9LlwiK04oXCJvX1wiKStcInt3aGl0ZS1zcGFjZTpub3dyYXA7fS5cIitOKFwiel9cIikrXCJ7Y3Vyc29yOnBvaW50ZXI7fS5cIitOKFwiYWFfXCIpK1wie2Rpc3BsYXk6bm9uZTsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTt9LlwiK1xuTihcImtfXCIpK1wiPmRpdjpub3QoLlwiK04oXCJhYV9cIikrXCIpIHtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWJveDsgZGlzcGxheTotbW96LWlubGluZS1ib3g7IGRpc3BsYXk6LW1zLWlubGluZS1mbGV4Ym94OyBkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWZsZXg7IGRpc3BsYXk6aW5saW5lLWZsZXg7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTt9LlwiK04oXCJrX1wiKStcIi50b3BBbGlnbj5kaXZ7dmVydGljYWwtYWxpZ246dG9wO30uXCIrTihcImtfXCIpK1wiLmNlbnRlckFsaWduPmRpdnt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7fS5cIitOKFwia19cIikrXCIuYm90dG9tQWxpZ24+ZGl2e3ZlcnRpY2FsLWFsaWduOmJvdHRvbTt9LlwiK04oXCJrX1wiKStcIj5zcGFuLCAuXCIrTihcImtfXCIpK1wiPmEsIC5cIitOKFwia19cIikrXCI+aW1nLCAuXCIrTihcImtfXCIpK1wie2Rpc3BsYXk6aW5saW5lOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7fS5zaTEwMTpudGgtb2YtdHlwZSg1bisxKSA+IC5zaTE0MXtib3JkZXItbGVmdDogIzFmOGE3MCA3cHggc29saWQ7fS5yc3NBdHRyQ29udGFpbmVyIH4gLnNpMTAxOm50aC1vZi10eXBlKDVuKzIpID4gLnNpMTQxe2JvcmRlci1sZWZ0OiAjMWY4YTcwIDdweCBzb2xpZDt9LnNpMTAxOm50aC1vZi10eXBlKDVuKzMpID4gLnNpMTQxe2JvcmRlci1sZWZ0OiAjYmVkYjM5IDdweCBzb2xpZDt9LnJzc0F0dHJDb250YWluZXIgfiAuc2kxMDE6bnRoLW9mLXR5cGUoNW4rNCkgPiAuc2kxNDF7Ym9yZGVyLWxlZnQ6ICNiZWRiMzkgN3B4IHNvbGlkO30uc2kxMDE6bnRoLW9mLXR5cGUoNW4rNSkgPiAuc2kxNDF7Ym9yZGVyLWxlZnQ6ICNmZmUxMWEgN3B4IHNvbGlkO30ucnNzQXR0ckNvbnRhaW5lciB+IC5zaTEwMTpudGgtb2YtdHlwZSg1bis2KSA+IC5zaTE0MXtib3JkZXItbGVmdDogI2ZmZTExYSA3cHggc29saWR9LnNpMTAxOm50aC1vZi10eXBlKDVuKzIpID4gLnNpMTQxe2JvcmRlci1sZWZ0OiAjZmQ3NDAwIDdweCBzb2xpZDt9LnJzc0F0dHJDb250YWluZXIgfiAuc2kxMDE6bnRoLW9mLXR5cGUoNW4rMykgPiAuc2kxNDF7Ym9yZGVyLWxlZnQ6ICNmZDc0MDAgN3B4IHNvbGlkO30uc2kxMDE6bnRoLW9mLXR5cGUoNW4rNCkgPiAuc2kxNDF7Ym9yZGVyLWxlZnQ6ICMwMDQzNTggN3B4IHNvbGlkO30ucnNzQXR0ckNvbnRhaW5lciB+IC5zaTEwMTpudGgtb2YtdHlwZSg1bis1KSA+IC5zaTE0MXtib3JkZXItbGVmdDogIzAwNDM1OCA3cHggc29saWQ7fS5cIitcbk4oXCJiYV9cIikrXCJ7Y3Vyc29yOnBvaW50ZXI7fS5zaTEzMHtkaXNwbGF5OmlubGluZTsgdGV4dC10cmFuc2Zvcm06aW5oZXJpdDt9LlwiK04oXCJyX1wiKStcIntwb3NpdGlvbjogcmVsYXRpdmU7fTwvc3R5bGU+XCIpfWZ1bmN0aW9uIHFnKCl7cmV0dXJuIHVmKFwiZGlzcGxheTotbXMtZmxleGJveDsgZGlzcGxheTotd2Via2l0LWJveDsgZGlzcGxheTotd2Via2l0LWZsZXg7IGRpc3BsYXk6ZmxleDtcIitwZyhcImNlbnRlclwiKStyZyhcImNlbnRlclwiKSl9XG5mdW5jdGlvbiBzZyhhLGIpe3ZhciBjPVwiXCIsZD1iP1wicmlnaHRcIjpcImxlZnRcIjtiPWI/XCJsZWZ0XCI6XCJyaWdodFwiO2Zvcih2YXIgZT12ZihhKSxmPWUubGVuZ3RoLGc9MDtnPGY7ZysrKXt2YXIgaD1lW2ddO3N3aXRjaCh6YShoKT9oLnRvU3RyaW5nKCk6aCl7Y2FzZSBcImZ3XCI6Yys9XCJmb250LXdlaWdodDpcIjtoPWEuZnc7c3dpdGNoKHphKGgpP2gudG9TdHJpbmcoKTpoKXtjYXNlIDE6Yys9XCIxMDBcIjticmVhaztjYXNlIDI6Yys9XCI0MDBcIjticmVhaztjYXNlIDQ6Yys9XCI1MDBcIjticmVhaztjYXNlIDM6Yys9XCI3MDBcIjticmVhaztjYXNlIDA6Yys9XCI0MDBcIn1icmVhaztjYXNlIFwiYmFjXCI6Yys9XCJiYWNrZ3JvdW5kLWNvbG9yOlwiK04oYS5iYWMpO2JyZWFrO2Nhc2UgXCJiclwiOmMrPVwiYm9yZGVyLXJhZGl1czpcIitOKGEuYnIpK1wicHhcIjticmVhaztjYXNlIFwiYndcIjpjKz1cImJvcmRlcjpcIitOKGEuYncpK1wicHggc29saWQgXCIrTihhLmJvYyk7YnJlYWs7Y2FzZSBcImZmXCI6Yys9XCJmb250LWZhbWlseTpcIitcbk4oYS5mZikrXCIsYXJpYWwsc2Fucy1zZXJpZjtcIjticmVhaztjYXNlIFwiZnNcIjpjKz1cImZvbnQtc2l6ZTpcIitOKGEuZnMpK1wicHhcIjticmVhaztjYXNlIFwiaFwiOmMrPVwiaGVpZ2h0OlwiK04oYS5oKSsoLTEhPShcIlwiK3dmKGEuaCkpLmluZGV4T2YoXCIlXCIpP1wiXCI6XCJweFwiKTticmVhaztjYXNlIFwiaVwiOmMrPVwiZm9udC1zdHlsZTpcIitOKEkoYS5pLCEwKT9cIml0YWxpY1wiOlwibm9ybWFsXCIpO2JyZWFrO2Nhc2UgXCJsaFwiOmMrPVwibGluZS1oZWlnaHQ6XCIrTihhLmxoKStcInB4XCI7YnJlYWs7Y2FzZSBcIm1heGhcIjpjKz1cIm1heC1oZWlnaHQ6XCIrTihhLm1heGgpK1wicHhcIjticmVhaztjYXNlIFwibWF4d1wiOmMrPVwibWF4LXdpZHRoOlwiK04oYS5tYXh3KStcInB4XCI7YnJlYWs7Y2FzZSBcIm1iXCI6Yys9XCJtYXJnaW4tYm90dG9tOlwiK04oYS5tYikrXCJweFwiO2JyZWFrO2Nhc2UgXCJtaW5oXCI6Yys9XCJtaW4taGVpZ2h0OlwiK04oYS5taW5oKStcInB4XCI7YnJlYWs7Y2FzZSBcIm1pbndcIjpjKz1cIm1pbi13aWR0aDpcIitOKGEubWludykrXG5cInB4XCI7YnJlYWs7Y2FzZSBcIm1sXCI6Yys9XCJtYXJnaW4tXCIrTihkKStcIjpcIitOKGEubWwpK1wicHhcIjticmVhaztjYXNlIFwibXJcIjpjKz1cIm1hcmdpbi1cIitOKGIpK1wiOlwiK04oYS5tcikrXCJweFwiO2JyZWFrO2Nhc2UgXCJtdFwiOmMrPVwibWFyZ2luLXRvcDpcIitOKGEubXQpK1wicHhcIjticmVhaztjYXNlIFwib3BcIjpjKz1cIm9wYWNpdHk6XCIrTihhLm9wKTticmVhaztjYXNlIFwicGJcIjpjKz1cInBhZGRpbmctYm90dG9tOlwiK04oYS5wYikrXCJweFwiO2JyZWFrO2Nhc2UgXCJwbFwiOmMrPVwicGFkZGluZy1cIitOKGQpK1wiOiBcIitOKGEucGwpK1wicHhcIjticmVhaztjYXNlIFwicHJcIjpjKz1cInBhZGRpbmctXCIrTihiKStcIjogXCIrTihhLnByKStcInB4XCI7YnJlYWs7Y2FzZSBcInB0XCI6Yys9XCJwYWRkaW5nLXRvcDpcIitOKGEucHQpK1wicHhcIjticmVhaztjYXNlIFwidGNcIjpjKz1cImNvbG9yOlwiK04oYS50Yyk7YnJlYWs7Y2FzZSBcInVcIjpjKz1cInRleHQtZGVjb3JhdGlvbjpcIitOKGEudT9cInVuZGVybGluZVwiOlwibm9uZVwiKTticmVhaztjYXNlIFwic3RcIjpjKz1cblwidGV4dC1kZWNvcmF0aW9uOlwiK04oYS5zdD9cImxpbmUtdGhyb3VnaFwiOlwibm9uZVwiKTticmVhaztjYXNlIFwicG9cIjpoPWEucG87dmFyIGs9ZCxsPWI7aD11ZigoaC50P04oKStcInRvcDpcIitOKGgudCkrXCJweDtcIjpcIlwiKSsoaC5yP04oKStOKGwpK1wiOlwiK04oaC5yKStcInB4O1wiOlwiXCIpKyhoLmI/TigpK1wiYm90dG9tOlwiK04oaC5iKStcInB4O1wiOlwiXCIpKyhoLmw/TigpK04oaykrXCI6XCIrTihoLmwpK1wicHg7XCI6XCJcIikpO2MrPWgrXCJwb3NpdGlvbjphYnNvbHV0ZVwiO2JyZWFrO2Nhc2UgXCJib3NcIjpoPWEuYm9zO2s9XCJcIjtsPWg7Zm9yKHZhciBwPWwubGVuZ3RoLHI9MDtyPHA7cisrKXt2YXIgcT1sW3JdO2srPU4ocS54bykrXCJweCBcIitOKHEueW8pK1wicHggXCIrKHEuYnI/TihxLmJyKStcInB4IFwiKyhxLnNyP04ocS5zcikrXCJweCBcIjpcIlwiKTpcIlwiKStOKHEuc2MpKyhyIT1oLmxlbmd0aC0xP1wiLFwiOlwiXCIpfWg9dWYoayk7aD1DZihcIlwiK2gpO2g9dWYoXCItd2Via2l0LWJveC1zaGFkb3c6XCIrTihoKStcIjsgLW1vei1ib3gtc2hhZG93OlwiK1xuTihoKStcIjsgLW1zLWJveC1zaGFkb3c6XCIrTihoKStcIjsgYm94LXNoYWRvdzpcIitOKGgpK1wiO1wiKTtjKz1oO2JyZWFrO2Nhc2UgXCJ3XCI6Yys9XCJ3aWR0aDpcIitOKGEudykrKC0xIT0oXCJcIit3ZihcIlwiK2EudykpLmluZGV4T2YoXCIlXCIpP1wiOyAtbXMtZmxleC1uZWdhdGl2ZToxO1wiK29nKDEpOlwicHhcIik7YnJlYWs7Y2FzZSBcInR0XCI6c3dpdGNoKGMrPVwidGV4dC10cmFuc2Zvcm06XCIsaD1hLnR0LHphKGgpP2gudG9TdHJpbmcoKTpoKXtjYXNlIDE6Yys9XCJ1cHBlcmNhc2VcIjticmVhaztkZWZhdWx0OmMrPVwiaW5pdGlhbFwifX1jKz1cIjtcIn1yZXR1cm4gdWYoYyl9ZnVuY3Rpb24gb2coYSl7cmV0dXJuIHVmKFwiLXdlYmtpdC1ib3gtZmxleDpcIitOKGEpK1wiIDA7IC13ZWJraXQtZmxleC1zaHJpbms6XCIrTihhKStcIjsgZmxleC1zaHJpbms6XCIrTihhKStcIjtcIil9XG5mdW5jdGlvbiBwZyhhKXt2YXIgYj1cIi1tcy1mbGV4LWFsaWduOlwiLGM9XCJcIisoMD09KFwiXCIrd2YoYSkpLmluZGV4T2YoXCJmbGV4LVwiKT9OKChcIlwiK3dmKGEpKS5zdWJzdHJpbmcoNSkpOk4oYSkpO2M9Q2YoYyk7Yis9TihjKStcIjsgLXdlYmtpdC1ib3gtYWxpZ246XCIrTihjKStcIjsgLXdlYmtpdC1hbGlnbi1pdGVtczpcIitOKGEpK1wiOyBhbGlnbi1pdGVtczpcIitOKGEpK1wiO1wiO3JldHVybiB1ZihiKX1mdW5jdGlvbiByZyhhKXt2YXIgYj1cIi1tcy1mbGV4LXBhY2s6XCIsYz1cIlwiKygwPT0oXCJcIit3ZihhKSkuaW5kZXhPZihcImZsZXgtXCIpP04oKFwiXCIrd2YoYSkpLnN1YnN0cmluZyg1KSk6TihhKSk7Yz1DZihjKTtiKz1OKGMpK1wiOyAtd2Via2l0LWJveC1wYWNrOlwiK04oYykrXCI7IC13ZWJraXQtanVzdGlmeS1jb250ZW50OlwiK04oYSkrXCI7IGp1c3RpZnktY29udGVudDpcIitOKGEpK1wiO1wiO3JldHVybiB1ZihiKX07ZnVuY3Rpb24gdGcoYSl7dmFyIGI9W107YT1uKGEuc3x8W10pO2Zvcih2YXIgYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpe2M9Yy52YWx1ZTt2YXIgZD1jLnI7ZCYmZC5oYXNPd25Qcm9wZXJ0eShcImZmXCIpJiYoZC5mZj11ZihkLmZmKSk7KGQ9Yy5ocikmJmQuaGFzT3duUHJvcGVydHkoXCJmZlwiKSYmKGQuZmY9dWYoZC5mZikpO2IucHVzaCh7Y2xhc3NOYW1lOmMuc2sscnVsZXM6Yy5yfHx7fSxrYjpjLmhyfHx7fX0pfWE9TWEoKS5YKCk7dmFyIGU9XCI8c3R5bGU+XCI7Yz1iLmxlbmd0aDtmb3IoZD0wO2Q8YztkKyspe3ZhciBmPWJbZF07aWYoSihmLnJ1bGVzKSYmMDx2ZihmLnJ1bGVzKS5sZW5ndGgpe3ZhciBnPVwiLlwiK04oZi5jbGFzc05hbWUpK1wie1wiK3NnKGYucnVsZXMsYSkrXCJ9XCI7dmFyIGg9Zi5ydWxlcztoPXVmKEooaC5pc3MpJiZKKGguaXNzLmJjKSYmSihoLmlzcy5vKT9cIi5cIitOKGYuY2xhc3NOYW1lKStcIiA+IC5cIitOKFwic19cIikrXCJ7YmFja2dyb3VuZC1jb2xvcjpcIitOKGguaXNzLmJjKStcblwiOyBvcGFjaXR5OlwiK04oaC5pc3MubykrXCI7IGJvdHRvbTowOyB0b3A6MDsgcmlnaHQ6MDsgbGVmdDowOyBwb3NpdGlvbjphYnNvbHV0ZTt9XCI6XCJcIik7Zys9aH1lbHNlIGc9XCJcIjtlKz1nKyhKKGYua2IpJiYwPHZmKGYua2IpLmxlbmd0aD9cIi5cIitOKGYuY2xhc3NOYW1lKStcIjpob3ZlcntcIitzZyhmLmtiLGEpK1wifVwiOlwiXCIpfXJldHVybiBIKGUrXCI8L3N0eWxlPlwiKX07ZnVuY3Rpb24gdWcoYSxiKXtpZighYSlyZXR1cm4hMTtpZigzPT1hLm5vZGVUeXBlJiZhLm5vZGVWYWx1ZSYmKGImJihhLm5vZGVWYWx1ZSs9XCIgLi4uXCIpLDQ8YS5ub2RlVmFsdWUubGVuZ3RoKSl7Yj1hLm5vZGVWYWx1ZTt2YXIgYz1hLm5vZGVWYWx1ZS5sZW5ndGgtMTtiLmxlbmd0aD5jJiYoYj1iLnN1YnN0cmluZygwLGMtMykrXCIuLi5cIik7YS5ub2RlVmFsdWU9YjtyZXR1cm4hMX1jPWEudGV4dENvbnRlbnR8fGEuaW5uZXJUZXh0O2lmKCFjfHxjLmxlbmd0aDw9KGI/MDo0KSlyZXR1cm4gYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpLCEwO2ZvcihiPXVnKGEubGFzdENoaWxkLGIpO2I7KWI9dWcoYS5sYXN0Q2hpbGQsYik7cmV0dXJuITF9XG5mdW5jdGlvbiB2ZyhhLGIpe2lmKCEoMD49Yikpe2Zvcih2YXIgYz1hLmlubmVySFRNTC5sZW5ndGg7MDxjJiZhLm9mZnNldEhlaWdodD5iO2MtLSlmb3IodmFyIGQ9YSxlPXVnKGQubGFzdENoaWxkLCExKTtlOyllPXVnKGQubGFzdENoaWxkLGUpO2Eub2Zmc2V0SGVpZ2h0PmImJihhLnRleHRDb250ZW50PVwiXCIpfX07dmFyIHdnPTE7ZnVuY3Rpb24geGcoYSxiLGMpe2lmKCFjKXJldHVybiBudWxsO2lmKFwiLlwiPT1jWzBdKXJldHVybiBiW2Muc3Vic3RyaW5nKDEpXTtjPW4oYy5zcGxpdChcIi5cIikpO2ZvcihiPWMubmV4dCgpOyFiLmRvbmU7Yj1jLm5leHQoKSl7Yj1iLnZhbHVlO2lmKG51bGw9PWEpcmV0dXJuIG51bGw7aWYoQXJyYXkuaXNBcnJheShhKSl7Yj1wYXJzZUludChiLDEwKTtpZihpc05hTihiKSlyZXR1cm4gbnVsbDthPWFbYl19ZWxzZSBpZih6YShhKSYmYS5oYXNPd25Qcm9wZXJ0eShiKSlhPWFbYl07ZWxzZSByZXR1cm4gbnVsbH1yZXR1cm4gYX07dmFyIHlnPW51bGw7ZnVuY3Rpb24gemcoYSxiLGMpe3ZhciBkPVwiQVwiPT09Yy50YWdOYW1lP2M6Yy5xdWVyeVNlbGVjdG9yKFwiYVwiKTtiLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGZ1bmN0aW9uKGUpe0FnKGEsYixjKTtCZyhlKX0pO2IuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixmdW5jdGlvbihlKXtpZigzMj09ZS5rZXlDb2RlfHwxMz09ZS5rZXlDb2RlKUFnKGEsYixjKSxCZyhlKSxkJiZkLmZvY3VzKCl9KTthLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLENnKTthLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixDZyk7Yi5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsXCJidXR0b25cIik7Yi5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLDApO2QmJmIuc2V0QXR0cmlidXRlKFwiYXJpYS1sYWJlbFwiLGMudGV4dENvbnRlbnQpfWZ1bmN0aW9uIEJnKGEpe2Euc3RvcFByb3BhZ2F0aW9uP2Euc3RvcFByb3BhZ2F0aW9uKCk6KGEuY2FuY2VsQnViYmxlPSEwLGEucmV0dXJuVmFsdWU9ITEpfVxuZnVuY3Rpb24gQWcoYSxiLGMpe3lnJiZ5ZyE9YyYmKHlnLnN0eWxlLmRpc3BsYXk9XCJub25lXCIseWc9bnVsbCk7aWYoYy5zdHlsZS5kaXNwbGF5JiZcIm5vbmVcIiE9Yy5zdHlsZS5kaXNwbGF5KWMuc3R5bGUuZGlzcGxheT1cIm5vbmVcIix5Zz1udWxsO2Vsc2V7YS5hcHBlbmRDaGlsZChjKTt2YXIgZD1PZChiKSxlPVBkKGIpLGY9UGQoYyksZz1QZChhKSxoPU9kKGEpLGs9ZC54K2Euc2Nyb2xsTGVmdC1oLng7ZD1kLnkrYS5zY3JvbGxUb3AtaC55O3N3aXRjaChiLmdldEF0dHJpYnV0ZShcImRhdGEtcG9zaXRpb25cIikpe2Nhc2UgXCJvdmVyXCI6Yj1lLndpZHRoLzItZi53aWR0aC8yO2U9ZS5oZWlnaHQvMi1mLmhlaWdodC8yO2JyZWFrO2RlZmF1bHQ6Yj1lLndpZHRoLzItZi53aWR0aC8yLGU9ZS5oZWlnaHR9aD1hLnNjcm9sbFRvcDt2YXIgbD1hLnNjcm9sbFRvcCtnLmhlaWdodC1mLmhlaWdodC0xMDtjLnN0eWxlLmxlZnQ9TWF0aC5taW4oTWF0aC5tYXgoTWF0aC5yb3VuZChrK2IpLGEuc2Nyb2xsTGVmdCksXG5hLnNjcm9sbExlZnQrZy53aWR0aC1mLndpZHRoLTEwKStcInB4XCI7Yy5zdHlsZS50b3A9TWF0aC5taW4oTWF0aC5tYXgoTWF0aC5yb3VuZChkK2UpLGgpLGwpK1wicHhcIjtjLnN0eWxlLmRpc3BsYXk9XCJibG9ja1wiO3lnPWN9fWZ1bmN0aW9uIENnKCl7eWcmJih5Zy5zdHlsZS5kaXNwbGF5PVwibm9uZVwiLHlnPW51bGwpfTtmdW5jdGlvbiBEZyhhKXt2YXIgYj1hLm9yaWVudGF0aW9uLGM9YS5pZCxkPWEuUCxlPWEuWmQsZj1hLm92ZXJmbG93LGc9YS5IZSxoPWEuc2Usaz1hLnBmLGw9YS5ocmVmLHA9XCJcIixyPUkoZSwwKXx8SShlLDEpfHxJKGUsMikscT1JKGUsNil8fEkoZSw3KXx8SShlLDgpLHQ9SShlLDMpfHxJKGUsNCl8fEkoZSw1KTtjPShjPydpZD1cIicrTChjKSsnXCInOlwiXCIpKycgY2xhc3M9XCInK0woXCJpX1wiKSsoZD9cIiBcIitMKGQpOlwiXCIpKyhJKGYsMyk/XCIgXCIrTChcImpfXCIpOlwiXCIpO0koZyw0KSYmKGMrPVwiIFwiK0woXCJrX1wiKStcIiBcIixjKz1MKHI/XCJ0b3BBbGlnblwiOnE/XCJjZW50ZXJBbGlnblwiOnQ/XCJib3R0b21BbGlnblwiOlwiXCIpKTtjKz0oSShmLDQpP1wiIFwiK0woXCJqX1wiKStcIiBcIitMKFwibF9cIik6XCJcIikrJ1wiJysoaD8nIGRhdGEtZHJvcD1cInRydWVcIic6XCJcIik7Zz1cIi1tcy1mbGV4LWRpcmVjdGlvbjpcIjtoPVwiXCIrTigwPT1iP1wicm93XCI6XCJjb2x1bW5cIik7aD1DZihoKTtnKz1OKGgpK1wiOyAtd2Via2l0LWJveC1vcmllbnQ6XCIrXG5OKDA9PWI/XCJob3Jpem9udGFsXCI6XCJ2ZXJ0aWNhbFwiKStcIjsgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpcIitOKGgpK1wiOyBmbGV4LWRpcmVjdGlvbjpcIitOKGgpK1wiO1wiO2c9Q2YoZyk7aD1udWxsIT1lP3JnKEkoZSwwKXx8SShlLDMpfHxJKGUsOSl8fEkoZSw2KT9cImZsZXgtc3RhcnRcIjpJKGUsMSl8fEkoZSw0KXx8SShlLDEwKXx8SShlLDcpP1wiY2VudGVyXCI6SShlLDIpfHxJKGUsNSl8fEkoZSwxMSl8fEkoZSw4KT9cImZsZXgtZW5kXCI6XCJcIik6XCJcIjtoPUNmKFwiXCIraCk7ZT1udWxsIT1lP3BnKHI/XCJmbGV4LXN0YXJ0XCI6dD9cImZsZXgtZW5kXCI6cT9cImNlbnRlclwiOkkoZSw5KXx8SShlLDEwKXx8SShlLDExKT9cInN0cmV0Y2hcIjpcIlwiKTpcIlwiO2U9Q2YoXCJcIitlKTtyPVwiXCI7c3dpdGNoKGYpe2Nhc2UgMjpyKz1cIi1tcy1mbGV4LXdyYXA6d3JhcDsgLXdlYmtpdC1mbGV4LXdyYXA6d3JhcDsgZmxleC13cmFwOndyYXA7XCI7YnJlYWs7Y2FzZSAzOmNhc2UgNDpyKz1cIm92ZXJmbG93LVwiK04oMD09Yj9cInhcIjpcInlcIikrXG5cIjphdXRvOyAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1wifWI9Q2Yocik7Yys9JyBzdHlsZT1cIicrTChOKGcpKStMKE4oaCkpK0woTihlKSkrTChOKGIpKSsoaz9cInBvc2l0aW9uOnJlbGF0aXZlO1wiOlwiXCIpKydcIic7az1CZihjKTtwKz1sP1wiPGFcIitKZihFZyhhKSkrSmYoSGYoaykpK1wiPjwvYT5cIjpcIjxkaXZcIitKZihIZihrKSkrXCI+PC9kaXY+XCI7cmV0dXJuIEgocCl9XG5mdW5jdGlvbiBGZyhhKXthPWF8fHt9O3ZhciBiPWEuaWQsYz1hLnRleHQsZD1hLlAsZT1hLnhmLGY9YS5ZZixnPWEuaHJlZixoPWEuQ2Qsaz1cIlwiLGw9bnVsbCE9ZT8nZGF0YS1saW5lcz1cIicrTChlKSsnXCInKyhudWxsIT1mPycgZGF0YS10cnVuY2F0ZT1cIicrTChmKSsnXCInOicgZGF0YS10cnVuY2F0ZT1cIjBcIicpOlwiXCI7bD1CZihsKTtmPUkoZSwxKT9cIm1fIFwiKyhJKGYsMCk/XCJuX1wiOlwib19cIik6XCJwX1wiO2M9KEooZSkmJjE8ZT9cIjxzcGFuXCIrSmYoSGYobCkpKycgc3R5bGU9XCJkaXNwbGF5OiAtd2Via2l0LWJveDsgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsgb3ZlcmZsb3c6IGhpZGRlbjsgLXdlYmtpdC1saW5lLWNsYW1wOiAnK0woTihlKSkrJzsgXCI+JzpcIlwiKStwZihudWxsIT1jP2M6XCJcIikrKEooZSkmJjE8ZT9cIjwvc3Bhbj5cIjpcIlwiKTtjPXlmKGMpO2srPWc/XCI8YVwiKyhiPycgaWQ9XCInK0woYikrJ1wiJzpcIlwiKSsnIGNsYXNzPVwiJytMKGYpK1wiIFwiK0wobnVsbCE9ZD9kOlwiXCIpKydcIicrXG4oSihlKSYmMTxlP1wiXCI6SmYoSGYobCkpKSsoaD8nIGRhdGEtcGluZ2JhY2stdHlwZT1cIicrTChoKSsnXCInOlwiXCIpK0pmKEVnKGEpKStcIj5cIitjK1wiPC9hPlwiOlwiPHNwYW5cIisoYj8nIGlkPVwiJytMKGIpKydcIic6XCJcIikrKEooZSkmJjE8ZT9cIlwiOkpmKEhmKGwpKSkrKGg/JyBkYXRhLXBpbmdiYWNrLXR5cGU9XCInK0woaCkrJ1wiJzpcIlwiKSsnIGNsYXNzPVwiJytMKGYpK1wiIFwiK0wobnVsbCE9ZD9kOlwiXCIpKydcIj4nK2MrXCI8L3NwYW4+XCI7cmV0dXJuIEgoayl9XG5mdW5jdGlvbiBHZyhhKXt2YXIgYj1hLnNyYyxjPWEuaWQsZD1hLmpmLGU9YS5hcmlhSGlkZGVuLGY9YS5QLGc9YS5ocmVmLGg9YS5DZCxrPWEuTmUsbD1cIlwiO2M9KGM/J2lkPVwiJytMKGMpKydcIic6XCJcIikrKGU/JyBhcmlhLWhpZGRlbj1cInRydWVcIiB0YWJpbmRleD1cIi0xXCInOlwiXCIpKycgY2xhc3M9XCInK0woXCJxX1wiKSsoZj9cIiBcIitMKGYpOlwiXCIpKyhrP1wiIFwiK0woXCJyX1wiKTpcIlwiKSsnXCInO2M9QmYoYyk7Yj0nPGltZyBzcmM9XCInK0woUGYoYikpKydcIicrKGg/JyBkYXRhLXBpbmdiYWNrLXR5cGU9XCInK0woaCkrJ1wiJzpcIlwiKSsoZD8nIGFyaWEtbGFiZWw9XCInK0woZCkrJ1wiJzpcIlwiKStcIj5cIjtiPXlmKGIpO2Q9JzxkaXYgY2xhc3M9XCInK0woXCJzX1wiKSsnXCI+PC9kaXY+JztkPXlmKGQpO2wrPWc/XCI8YVwiK0pmKEVnKGEpKStKZihIZihjKSkrXCI+XCIrKGs/ZDpcIlwiKStiK1wiPC9hPlwiOlwiPGRpdlwiK0pmKEhmKGMpKStcIj5cIisoaz9kOlwiXCIpK2IrXCI8L2Rpdj5cIjtyZXR1cm4gSChsKX1cbmZ1bmN0aW9uIEhnKGEpe3ZhciBiPWEuQmYsYz1hLkNmLGQ9YS5pZCxlPWEuUWYsZj1hLlJmLGc9YS5HZyxoPWEuSGcsaz1hLklnLGw9YS5QLHA9YS5ocmVmLHI9YS5nYSxxPWEuU2MsdD1hLmVjLHg9YS53aWR0aCx1PWEuaGVpZ2h0LEQ9bnVsbCE9az9rOlwiXCI7az1NYXRoLm1heChNYXRoLm1pbihiLDUpLDApO2E9SihhLk9lKSYmIWUmJiFmO2Q9XCI8ZGl2XCIrKGQ/JyBpZD1cIicrTChkKSsnXCInOlwiXCIpKycgY2xhc3M9XCInK0woXCJ0X1wiKSsobD9cIiBcIitMKGwpOlwiXCIpKydcIicrKGE/JyBzdHlsZT1cIndpZHRoOicrTChOKG51bGwhPXg/eDpcIlwiKSkrXCI7aGVpZ2h0OlwiK0woTihudWxsIT11P3U6XCJcIikpKyc7XCInOlwiXCIpKyc+PGRpdiBjbGFzcz1cIicrTChcInVfXCIpKydcIj4nO2U9XCJcIitLZigoZz9cIlwiOkQpKyhudWxsIT1lP2U6XCIvaW1hZ2VzL2Fmcy9zci1zdGFyLW9mZi5wbmdcIikpO2U9QWYoZSk7Zz16ZihcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDIxIDE5Jz48cG9seWdvbiBmaWxsPSclMjNkYWRjZTAnIHBvaW50cz0nMTAsMTUuMjcgMTYuMTgsMTkgMTQuNTQsMTEuOTcgMjAsNy4yNCAxMi44MSw2LjYzIDEwLDAgNy4xOSw2LjYzIDAsNy4yNCA1LjQ2LDExLjk3IDMuODIsMTknLz48L3N2Zz5cIik7XG5kKz1hPyc8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZC1pbWFnZTogdXJsKCcrTChQZihnKSkrJylcIiBjbGFzcz1cIicrTChcInZfXCIpKydcIiByb2xlPVwibm9uZVwiPjwvZGl2Pic6JzxpbWcgc3JjPVwiJytMKFBmKGUpKSsnXCIgY2xhc3M9XCInK0woXCJ2X1wiKSsnXCIgcm9sZT1cIm5vbmVcIi8+JztmPVwiXCIrS2YoKGg/XCJcIjpEKSsobnVsbCE9Zj9mOlwiL2ltYWdlcy9hZnMvc3Itc3Rhci1vbi5wbmdcIikpO2Y9QWYoZik7aD16ZihcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDIxIDE5Jz48cG9seWdvbiBmaWxsPSclMjNmYmJjMDQnIHBvaW50cz0nMTAsMTUuMjcgMTYuMTgsMTkgMTQuNTQsMTEuOTcgMjAsNy4yNCAxMi44MSw2LjYzIDEwLDAgNy4xOSw2LjYzIDAsNy4yNCA1LjQ2LDExLjk3IDMuODIsMTknLz48L3N2Zz5cIik7ZCs9JzxkaXYgY2xhc3M9XCInK0woXCJ3X1wiKSsnXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJytcbkwoUGYoYT9oOmYpKStcIik7XCI7YT8oYj0yMC8xMDUqayoxMDArMS8xMDUqTWF0aC5tYXgoTWF0aC5mbG9vcihrKSwwKSoxMDAsZD1kK1wiYmFja2dyb3VuZC1zaXplOiBcIisoTChOKDJFMy9iKSkrXCIlIDEwMCU7IHdpZHRoOiBcIitMKE4oYikpK1wiJVwiKSk6ZCs9XCJ3aWR0aDogXCIrTChOKDIwKk1hdGgubWF4KE1hdGgubWluKGIsNSksMCkpKStcIiVcIjtkKz0nXCIgcm9sZT1cImltZ1wiJysoYz8nIGFyaWEtbGFiZWw9XCInK0woYykrJ1wiJzonIGFyaWEtaGlkZGVuPVwidHJ1ZVwiJykrXCI+PC9kaXY+PC9kaXY+PC9kaXY+XCI7Yz1jPXtocmVmOnAsZ2E6cixTYzpxLGVjOnQsSWU6eWYoZCl9O3A9Yy5JZTtjPUgoYy5ocmVmP1wiPGFcIitKZihFZyhjKSkrXCI+XCIrcGYocCkrXCI8L2E+XCI6cGYocCkpO3JldHVybiBIKFwiXCIrYyl9XG5mdW5jdGlvbiBFZyhhKXthPWF8fHt9O3ZhciBiPWEuZ2EsYz1hLlNjLGQ9YS5lYyxlPWEuSmU7YT0naHJlZj1cIicrTChLZihhLmhyZWYpKSsnXCInKyhkPycgZGF0YS1ub3RyYWNrPVwidHJ1ZVwiJzpcIlwiKSsobnVsbCE9Yz8nIGRhdGEtbmI9XCInK0woYykrJ1wiJzpcIlwiKSsoYj8nIHRhcmdldD1cIicrTChiKSsnXCInOlwiXCIpO251bGwhPWU/KGU9dGYoSShudWxsPT1lP251bGw6ZS5hcyxcInRydWVcIik/J2F0dHJpYnV0aW9uc3JjPVwiXCInOidhdHRyaWJ1dGlvbnNyYz1cIicrTChudWxsPT1lP251bGw6ZS5hcykrJ1wiJyksZT1KZihlKSk6ZT1cIlwiO3JldHVybiB0ZihhK2UpfTtmdW5jdGlvbiBJZygpe3RoaXMuS2U9Q2QoKTt0aGlzLkhiPW51bGx9SWcucHJvdG90eXBlLk1jPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5IYj90aGlzLkhiLmdldERhdGEoKTp7fSxkPXRoaXMuS2U7cmV0dXJuIFhmKGEoYnx8WWYsYyksZCl9O0lnLnByb3RvdHlwZS5FZD1mdW5jdGlvbihhKXthPWEoe30sdGhpcy5IYj90aGlzLkhiLmdldERhdGEoKTp7fSk7cmV0dXJuIFN0cmluZyhhKX07ZnVuY3Rpb24gSmcoYSl7aWYoIWEpcmV0dXJue307dmFyIGI9e307YT1uKGEpO2Zvcih2YXIgYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpYz1jLnZhbHVlLGJbYy5za109e3J1bGVzOmMucixrYjpjLmhyfTtyZXR1cm4gYn12YXIgS2c9bmV3IElnLExnPXt9LE1nPShMZ1syXT1cInhfXCIsTGdbM109XCJ5X1wiLExnKTtcbmZ1bmN0aW9uIE5nKGEsYixjLGQsZSxmKXtmdW5jdGlvbiBnKHgsdSxEKXt2YXIgSz1cImFkQmxvY2tcIj09eC5kYmssTz1kP1wiX2JsYW5rXCI6XCJfdG9wXCI7dT17aWQ6Sz9cImFkQmxvY2tcIjp1LFA6KHguc2t8fFwiXCIpK1wiIFwiKyh2b2lkIDA9PT1EP1wiXCI6RCksZ2E6T307eC5wYiYmKHUuQ2Q9eC5wYi5wYnQpO0Q9XCJjdGNcIj09PXguZGJrO3ZhciBWPVwiY3RjLmJ0XCI9PT14LmRiaztpZihwfHxEfHxWKVwiXCI9PT0odygpLmRhdGEuY3RjbHR8fFwiXCIpPyh1LmdhPVwiX3NlbGZcIiwhL2koUGhvbmV8UGFkKTsvaS50ZXN0KGVjKXx8bGMoKSYmOTg8Z2MoamMpfHwodS5nYT1PKSk6dS5nYT13KCkuZGF0YS5jdGNsdHx8XCJcIjtyJiYodS5nYT1cIl90b3BcIik7RD14LmRiaz94ZyhjLGIseC5kYmspOnZvaWQgMDtWPXguYWNjJiZ4LmFjYy5hbHQ/eGcoYyxiLHguYWNjLmFsdCk6dm9pZCAwO3ZhciB1YT14LmFjYyYmeC5hY2MuYWgsQWE9eGcoYyxiLFwiYmNhbGFcIik7aWYoeC5kYmsmJiFEJiYhS3x8eC5obmsmJm51bGwhPVxueGcoYyxiLHguaG5rKSlyZXR1cm4gbnVsbDtPPW51bGw7dmFyIFRhPTA7aWYoeC5hYyl7dmFyIGFhPXguYWNbMF0sYmE9YWEuYWN0LFdjPWFhLmRiaz94ZyhjLGIsYWEuZGJrKTp2b2lkIDAsYmM9YWEuZW4sY2M9dm9pZCAwLFhjPXZvaWQgMDtzd2l0Y2goYmEpe2Nhc2UgMDp1LmhyZWY9V2M7dS5lYz0hIWFhLm5tO3UuU2M9YWEubmI7dS5KZT1BYTticmVhaztjYXNlIDM6dS5QKz1cIiB6X1wiO1hjPVwiYWFfXCI7Y2M9XCJlXCIrd2crKzt1LmlkfHwodS5pZD1cImVcIit3ZysrKTtsLnB1c2goe2hmOnUuaWQsbmU6Y2N9KTticmVhaztjYXNlIDU6aWYoVGE9cGFyc2VJbnQoV2MsMTApKXUuUCs9XCIgYmFfXCJ9YmMmJihPPWcoYmMsY2MsWGMpKX1iYT1udWxsO0FhPXgubnQ7YWE9eC5scnx8e307YmE9KGhbeC5za118fHt9KS5ydWxlc3x8e307c3dpdGNoKEFhKXtjYXNlIDA6RD1hYS5vO251bGw9PUQmJihEPTApO3Uub3JpZW50YXRpb249RDt1LlpkPWFhLmE7dS5zZT0xPT1hYS50O3Uub3ZlcmZsb3c9YWEub3Y7XG51LkhlPWFhLmNmO3UucGY9YWEuYXAmJiFiYS5wbztiYT1EZzticmVhaztjYXNlIDE6dS50ZXh0PUgoRCk7dS54Zj1hYS5ubDt1LllmPWFhLnQ7YmE9Rmc7YnJlYWs7Y2FzZSAyOnUuc3JjPWJhLnNmYyYmXCJzdmdcIj09RC5zdWJzdHIoLTMpP0QrXCI/Yz1cIitlbmNvZGVVUklDb21wb25lbnQoYmEuc2ZjKTpEO3UuTmU9XCJpc3NcImluIGJhJiZcImJjXCJpbiBiYS5pc3MmJlwib1wiaW4gYmEuaXNzO3UuamY9Vjt1LmFyaWFIaWRkZW49dWE7YmE9R2c7YnJlYWs7Y2FzZSA0Olwic3RyaW5nXCI9PXR5cGVvZiBEJiYoRD1wYXJzZUZsb2F0KEQpKTtpZihcIm51bWJlclwiIT10eXBlb2YgRHx8aXNOYU4oRCkpcmV0dXJuIG51bGw7dS5RZj1iYS5idTt1LlJmPWJhLmZ1O3UuQmY9RDt1LkNmPVY7dS5PZT0hIXcoKS5kYXRhLmVzcnM7TWEoKS5kYXRhLmluc3ImJjI9PWs/KHUud2lkdGg9XCIxNzdweFwiLHUuaGVpZ2h0PVwiMzJweFwiKToodS53aWR0aD1cIjYxcHhcIix1LmhlaWdodD1cIjExcHhcIik7YmE9SGc7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gbnVsbH1pZihEPVxuTWdbYWEuc2JdKXUuUCs9XCIgXCIrRDt2YXIgTT1LZy5NYyhiYSx1KTt4Lmhhc093blByb3BlcnR5KFwiaG5lXCIpJiZ0W3guaG5lXS5wdXNoKE0pO2lmKEspe3ZhciB4Yj1FKGZ1bmN0aW9uKCl7Zm9yKHZhciBXPW4odFsxXSksWD1XLm5leHQoKTshWC5kb25lO1g9Vy5uZXh0KCkpe1g9WC52YWx1ZTt2YXIgbGE9ITE7XCJhdXRvXCI9PT1NLnN0eWxlLm92ZXJmbG93WD9sYT0wIT09TS5zY3JvbGxMZWZ0OlwiYXV0b1wiPT09TS5zdHlsZS5vdmVyZmxvd1kmJihsYT0wIT09TS5zY3JvbGxUb3ApO1guc3R5bGUudmlzaWJpbGl0eT1sYT9cInZpc2libGVcIjpcImhpZGRlblwifVc9bih0WzJdKTtmb3IoWD1XLm5leHQoKTshWC5kb25lO1g9Vy5uZXh0KCkpWD1YLnZhbHVlLGxhPSEwLFwiYXV0b1wiPT09TS5zdHlsZS5vdmVyZmxvd1g/bGE9TWF0aC5hYnMoTS5zY3JvbGxMZWZ0KSE9PU0uc2Nyb2xsV2lkdGgtTS5jbGllbnRXaWR0aDpcImF1dG9cIj09PU0uc3R5bGUub3ZlcmZsb3dZJiYobGE9TS5zY3JvbGxUb3AhPT1cbk0uc2Nyb2xsSGVpZ2h0LU0uY2xpZW50SGVpZ2h0KSxYLnN0eWxlLnZpc2liaWxpdHk9bGE/XCJ2aXNpYmxlXCI6XCJoaWRkZW5cIn0sXCJobmVTY1wiKTtFKGZ1bmN0aW9uKCl7ZSYmKE0uYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHhiKSxlLmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix4YikpfSxcImhuZUFzY1wiKSgpfVRhJiZNLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGZ1bmN0aW9uKCl7dmFyIFc9TS5vd25lckRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYWRCbG9ja1wiKTtcImF1dG9cIj09PVcuc3R5bGUub3ZlcmZsb3dYP1cuc2Nyb2xsTGVmdCs9VGE6XCJhdXRvXCI9PT1XLnN0eWxlLm92ZXJmbG93WSYmKFcuc2Nyb2xsVG9wKz1UYSk7Vz0wPlRhP1wiY2JsY1wiOlwiY2JyY1wiO3ZhciBYPXZjKCk7aWYoc2Mpe3ZhciBsYT13YyhYKTtBKGxhLFwicGJ0XCIsXCJ1aVwiKTtBKGxhLFwiZW1zZ1wiLFcpO1guaGEocmMobGEpKX19KTt4PXguY2g7aWYoMD09QWEmJngmJjA8eC5sZW5ndGgpe0s9ITE7Zm9yKHU9MDt1PFxueC5sZW5ndGg7dSsrKUQ9Zyh4W3VdKSxudWxsIT1EJiYoSz0hMCxNLmFwcGVuZENoaWxkKEQpKTtpZighSylyZXR1cm4gbnVsbH1yZXR1cm4gTz8oeD1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkseC5hcHBlbmRDaGlsZChNKSx4LmFwcGVuZENoaWxkKE8pLHgpOk19ZD12b2lkIDA9PT1kPyExOmQ7ZT12b2lkIDA9PT1lP251bGw6ZTtmPXZvaWQgMD09PWY/W106Zjt2YXIgaD1KZyhhLnMpLGs9YS5hdCxsPVtdLHA9ISF4ZyhjLGIsXCJjdGMuY290dFwiKSxyPSEheGcoYyxiLFwiY3RkXCIpLHE9e30sdD0ocVsxXT1bXSxxWzJdPVtdLHEpO3E9XCJlXCIrd2crKzthPWcoYS5sfHx7fSxxLGYuam9pbihcIiBcIikpO2F8fChhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpLGEuaWQ9cSk7cmV0dXJue3Jvb3RFbGVtZW50OmEsT2Q6bCxNZjpxfX1cbmZ1bmN0aW9uIE9nKGEsYil7ZnVuY3Rpb24gYyhyKXt2YXIgcT1yLnN0eWxlLndvcmRXcmFwLHQ9ci5zdHlsZS53aGl0ZVNwYWNlO3Iuc3R5bGUud2hpdGVTcGFjZT1cIm5vd3JhcFwiO3Iuc3R5bGUud29yZFdyYXA9XCJub3JtYWxcIjt2YXIgeD1yLm9mZnNldEhlaWdodDtyLnN0eWxlLndoaXRlU3BhY2U9dDtyLnN0eWxlLndvcmRXcmFwPXE7cmV0dXJuIHh9ZnVuY3Rpb24gZChyLHEpe3ZhciB0PTA9PXIuY2hpbGRFbGVtZW50Q291bnQ7cT1xJiZcInRydWVcIj09ci5nZXRBdHRyaWJ1dGUoXCJkYXRhLWRyb3BcIik7aWYodHx8cSl0PXIucGFyZW50Tm9kZSx0LnJlbW92ZUNoaWxkKHIpLHIuaWQhPWImJmQodCxxKX1hPWEucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLWxpbmVzXVwiKTtmb3IodmFyIGU9YS5sZW5ndGgtMTswPD1lO2UtLSl7dmFyIGY9YVtlXSxnPWYucGFyZW50Tm9kZSxoPXBhcnNlSW50KGYuZ2V0QXR0cmlidXRlKFwiZGF0YS1saW5lc1wiKSwxMCksaz1wYXJzZUludChmLmdldEF0dHJpYnV0ZShcImRhdGEtdHJ1bmNhdGVcIiksXG4xMCk7aWYoMSE9aHx8MCE9ayl7dmFyIGw9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxwPWcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bD1wLmxlZnQ+bC5sZWZ0fHxwLnJpZ2h0PGwucmlnaHQ7MCE9PWt8fGZjKCk/MT09PWsmJihrPTE8aD9jKGYpOnZvaWQgMCwoMT09aD9mLm9mZnNldFdpZHRoPGYuc2Nyb2xsV2lkdGg6MTxoJiZmLm9mZnNldEhlaWdodC9rPmgpfHxsKSYmKGcucmVtb3ZlQ2hpbGQoZiksZChnLCEwKSk6KGc9YyhmKSwoMTxoJiZmLm9mZnNldEhlaWdodC9nPmh8fGwpJiZ2ZyhmLChnKzEpKmgpKX19fWZ1bmN0aW9uIFBnKGEsYil7Yj1uKGIpO2Zvcih2YXIgYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWU7Yz1hLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGQubmUpO2Q9YS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChkLmhmKTtjJiZkJiZ6ZyhhLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYWRCbG9ja1wiKSxkLGMpfX07ZnVuY3Rpb24gUWcoYSl7YT1hfHx7fTtyZXR1cm4gSChSZyhhLk5hLFwiZ29vZ05vQWRzXCIpKX1mdW5jdGlvbiBSZyhhLGIpe3JldHVybiBIKCc8ZGl2IHN0eWxlPVwiZGlzcGxheTpub25lO1wiJysoYj8nIGlkPVwiXycrTChiKStcIl9cIitMKG51bGwhPWE/YTpcInVua25vd25fcHViSWRcIikrJ1wiJzpcIlwiKStcIj48L2Rpdj5cIil9O2Z1bmN0aW9uIFNnKGEpe3ZhciBiPWEudXJsO2E9YS5XYzt0aGlzLkliPWI7dGhpcy5TYT1hO2E9L1s/Jl1kc2g9MSgmfCQpLy50ZXN0KGIpO3RoaXMucmI9IWEmJi9bPyZdYWU9MSgmfCQpLy50ZXN0KGIpO3RoaXMud2Q9IWEmJi9bPyZdYWU9MigmfCQpLy50ZXN0KGIpO2lmKCh0aGlzLmxhPS9bPyZdYWR1cmw9KFteJl0qKS8uZXhlYyhiKSkmJnRoaXMubGFbMV0pe3RyeXt2YXIgYz1kZWNvZGVVUklDb21wb25lbnQodGhpcy5sYVsxXSl9Y2F0Y2goZCl7Yz1udWxsfXRoaXMuTWI9Y319ZnVuY3Rpb24gVmcoYSxiKXtyZXR1cm4gYS5yYiYmYS5NYnx8YS53ZD8xPT1iP2EucmI/YS5NYjpXZyhhLFwiJmRjdD0xXCIpOjI9PWI/V2coYSxcIiZyaT0yXCIpOldnKGEsXCImcmk9MTZcIik6YS5JYn1mdW5jdGlvbiBXZyhhLGIpe3JldHVybiBhLmxhP2EuSWIuc2xpY2UoMCxhLmxhLmluZGV4KStiK2EuSWIuc2xpY2UoYS5sYS5pbmRleCk6YS5JYitifVxuZnVuY3Rpb24gWGcoYSl7YT1hLlNhO3ZhciBiPWVuY29kZVVSSUNvbXBvbmVudCxjPVwiXCI7YS5wbGF0Zm9ybSYmKGMrPVwiJnVhcD1cIitiKGEucGxhdGZvcm0pKTthLnBsYXRmb3JtVmVyc2lvbiYmKGMrPVwiJnVhcHY9XCIrYihhLnBsYXRmb3JtVmVyc2lvbikpO2EudWFGdWxsVmVyc2lvbiYmKGMrPVwiJnVhZnY9XCIrYihhLnVhRnVsbFZlcnNpb24pKTthLmFyY2hpdGVjdHVyZSYmKGMrPVwiJnVhYT1cIitiKGEuYXJjaGl0ZWN0dXJlKSk7YS5tb2RlbCYmKGMrPVwiJnVhbT1cIitiKGEubW9kZWwpKTthLmJpdG5lc3MmJihjKz1cIiZ1YWI9XCIrYihhLmJpdG5lc3MpKTthLmZ1bGxWZXJzaW9uTGlzdCYmKGMrPVwiJnVhZnZsPVwiK2IoYS5mdWxsVmVyc2lvbkxpc3QubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBiKGQuYnJhbmQpK1wiO1wiK2IoZC52ZXJzaW9uKX0pLmpvaW4oXCJ8XCIpKSk7XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBhLndvdzY0JiYoYys9XCImdWF3PVwiK051bWJlcihhLndvdzY0KSk7cmV0dXJuIGN9O3ZhciBZZz0vXigobWFya2V0fGl0bXN8aW50ZW50fGl0bXMtYXBwc3MpOlxcL1xcLykvaTt2YXIgWmc9XCJhbHRlcm5hdGUgYXV0aG9yIGJvb2ttYXJrIGNhbm9uaWNhbCBjaXRlIGhlbHAgaWNvbiBsaWNlbnNlIG5leHQgcHJlZmV0Y2ggZG5zLXByZWZldGNoIHByZXJlbmRlciBwcmVjb25uZWN0IHByZWxvYWQgcHJldiBzZWFyY2ggc3VicmVzb3VyY2VcIi5zcGxpdChcIiBcIik7ZnVuY3Rpb24gJGcoYSxiKXthLnNyYz1oYihiKTt2YXIgYyxkOyhjPShiPW51bGw9PShkPShjPShhLm93bmVyRG9jdW1lbnQmJmEub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5kb2N1bWVudCkucXVlcnlTZWxlY3Rvcik/dm9pZCAwOmQuY2FsbChjLFwic2NyaXB0W25vbmNlXVwiKSk/Yi5ub25jZXx8Yi5nZXRBdHRyaWJ1dGUoXCJub25jZVwiKXx8XCJcIjpcIlwiKSYmYS5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLGMpfTtmdW5jdGlvbiBhaChhKXt2YXIgYj1RYihcIjwhZG9jdHlwZSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT48L2JvZHk+PC9odG1sPlwiKTthLndyaXRlKE9iKGIpKX07ZnVuY3Rpb24gYmgoKXt2YXIgYT10aGlzLGI9e30uRWc7dGhpcy5TYT1udWxsO2ImJm5hdmlnYXRvci51c2VyQWdlbnREYXRhJiZuYXZpZ2F0b3IudXNlckFnZW50RGF0YS5nZXRIaWdoRW50cm9weVZhbHVlcyYmKGI9bmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuZ2V0SGlnaEVudHJvcHlWYWx1ZXMoXCJwbGF0Zm9ybSBwbGF0Zm9ybVZlcnNpb24gdWFGdWxsVmVyc2lvbiBhcmNoaXRlY3R1cmUgbW9kZWwgYml0bmVzcyBmdWxsVmVyc2lvbkxpc3Qgd293NjRcIi5zcGxpdChcIiBcIikpKSYmYi50aGVuKGZ1bmN0aW9uKGMpe2EuU2E9Y30pfVxuYmgucHJvdG90eXBlLmhhbmRsZT1mdW5jdGlvbihhKXtpZihhLmhhc0F0dHJpYnV0ZShcImRhdGEtb2hyZWZcIikpdmFyIGI9YS5nZXRBdHRyaWJ1dGUoXCJkYXRhLW9ocmVmXCIpO2Vsc2UgYj1hLmhyZWYsYS5zZXRBdHRyaWJ1dGUoXCJkYXRhLW9ocmVmXCIsYik7dmFyIGM9Yjt2YXIgZD17V2M6dGhpcy5TYX07ZD1uZXcgU2coe3VybDpjLFdjOih2b2lkIDA9PT1kP3t9OmQpLldjfSk7aWYoZC5yYiYmZC5NYnx8ZC53ZClpZihuYXZpZ2F0b3Iuc2VuZEJlYWNvbil7Yz1uYXZpZ2F0b3I7dmFyIGU9Yy5zZW5kQmVhY29uLGY9XCImYWN0PTEmcmk9MVwiO2QucmImJmQuU2EmJihmKz1YZyhkKSk7ZD1lLmNhbGwoYyxXZyhkLGYpLFwiXCIpP1ZnKGQsMSk6VmcoZCwyKX1lbHNlIGQ9VmcoZCwwKTtlbHNlIGQ9YztkPWQgaW5zdGFuY2VvZiB0Ynx8IVlnLnRlc3QoZCk/ZDpuZXcgdGIoZCx2Yik7YiE9ZCYmKGI9S2UoZCksdm9pZCAwIT09YiYmKGEuaHJlZj1iKSl9O3ZhciBjaD1FKGZ1bmN0aW9uKGEpeyhuZXcgYmgpLmhhbmRsZShhKX0sXCJtRFNcIik7dmFyIGRoPS8oWz98Jl17MX1ubT0pKFtcXGRdezEsfSkvLGVoPS8oXFw/fCYpY2xrdD0tP1tcXGRdKi9nLGZoPS8oXFw/fCYpYmc9W14mXSovZyxnaD0vKFxcP3wmKW54PS0/W1xcZF0rL2csaGg9LyhcXD98JilueT0tP1tcXGRdKy9nO2Z1bmN0aW9uIGloKGEpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKXt2YXIgYz1hW2JdO2lmKGMuemEpe3ZhciBkPWMuZWxlbWVudC5ocmVmLGU9ZC5tYXRjaChkaCk7ZT8zPT1lLmxlbmd0aCYmKGQ9ZC5yZXBsYWNlKGRoLGVbMV0rKHBhcnNlSW50KGVbMl0sMTApKzEpKSk6ZCs9KC0xPT1kLmluZGV4T2YoXCI/XCIpP1wiP1wiOlwiJlwiKStcIm5tPTFcIjtqaChjLGQpfX19fWZ1bmN0aW9uIGtoKGEpe3JldHVybiBmdW5jdGlvbigpe2lmKGEud2Mpe3ZhciBiPVwiJmNsa3Q9XCIrKChuZXcgRGF0ZSkuZ2V0VGltZSgpLWEud2MpLGM9YS5lbGVtZW50LmhyZWY7Yz1jLnJlcGxhY2UoZWgsXCJcIik7amgoYSxjK2IpfX19XG5mdW5jdGlvbiBsaChhKXtyZXR1cm4gZnVuY3Rpb24oYil7YS53Yz0obmV3IERhdGUpLmdldFRpbWUoKTt2YXIgYz1OZChhLmVsZW1lbnQpLGQ9TWF0aC5yb3VuZChiLmNsaWVudFgtYy54KTtiPU1hdGgucm91bmQoYi5jbGllbnRZLWMueSk7Yz1hLmVsZW1lbnQuaHJlZjtjPWMucmVwbGFjZShnaCxcIlwiKTtjPWMucmVwbGFjZShoaCxcIlwiKTtqaChhLGMrKFwiJm54PVwiK2QpKyhcIiZueT1cIitiKSl9fWZ1bmN0aW9uIG1oKGEpe3JldHVybiBmdW5jdGlvbigpe3ZhciBiPWEuZWxlbWVudC5vd25lckRvY3VtZW50O2lmKGI9KGIuZGVmYXVsdFZpZXd8fGIucGFyZW50V2luZG93KS5jc2FiZyl7Yj1cIiZiZz1cIitiLm9jKCk7dmFyIGM9YS5lbGVtZW50LmhyZWY7Yz1jLnJlcGxhY2UoZmgsXCJcIik7amgoYSxjK2IpfX19XG5mdW5jdGlvbiBuaChhKXthLnphJiYoYS5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW92ZXJcIixpaChbYV0pKSxhLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLGxoKGEpKSk7dmFyIGI9a2goYSksYz1taChhKTtpZyhhLmVsZW1lbnQsZnVuY3Rpb24oZCl7ZWQoXCIuYUNTXCIsRGF0ZS5ub3coKSk7ZGQoKTthLnphJiYoYihkKSxjKGQpKTt0cnl7Y2goYS5lbGVtZW50KX1jYXRjaChlKXt9fSl9ZnVuY3Rpb24gb2goYSxiLGMpe3JldHVybi0xPT1hLmluZGV4T2YoYikmJjE2MzM0PmEubGVuZ3RoK2IubGVuZ3RoJiYoYSs9YitlbmNvZGVVUklDb21wb25lbnQoYyksMTYzMzQ8YS5sZW5ndGgpP2Euc3Vic3RyaW5nKDAsMTYzMzQpOmF9XG5mdW5jdGlvbiBwaChhLGIpe29lKGEuZWxlbWVudCxcIm1vdXNlZG93blwiLGZ1bmN0aW9uKCl7dHJ5e3ZhciBjPXdlKGIsITApO3ZhciBkPXdlKGIsITEpfWNhdGNoKGYpe31pZihjJiZkKXt2YXIgZT1hLmVsZW1lbnQuaHJlZjtlPW9oKGUsXCImaXM9XCIsW2QsY10uam9pbihcInhcIikpO2poKGEsZSl9fSl9XG5mdW5jdGlvbiBxaChhLGIsYyl7Zm9yKHZhciBkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWFbZF07bmgoZSk7aWYoZS56YSYmdm9pZCAwIT09ZS5wZCl7dmFyIGY9XCImbmI9XCIrKGUucGR8fFwiXCIpLGc9ZS5lbGVtZW50LmhyZWY7Zz1nLnJlcGxhY2UocmgsXCJcIik7Zz0tMT09Zy5pbmRleE9mKFwiP1wiKT9nK2YucmVwbGFjZSgvXiYvLFwiP1wiKTpnK2Y7amgoZSxnKX1lLnphJiYocGgoZSxjKSxmPU1hKCkuZGF0YS5ydXx8bnVsbCkmJihnPWUuZWxlbWVudC5ocmVmLGc9b2goZyxcIiZydXJsPVwiLGYpLGpoKGUsZykpfTA8YS5sZW5ndGgmJmIuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlb3ZlclwiLGloKGEpKX07ZnVuY3Rpb24gc2goYSxiKXt0aGlzLnBkPWI7dGhpcy56YT0hMDt0aGlzLmVsZW1lbnQ9YTt0aGlzLndjPW51bGx9ZnVuY3Rpb24gamgoYSxiKXsxNjM4NDxiLmxlbmd0aHx8KGE9YS5lbGVtZW50LGI9S2UoYiksdm9pZCAwIT09YiYmKGEuaHJlZj1iKSl9dmFyIHJoPS9bJlxcP11uYj1cXGQvO3ZhciB0aD17bnQ6MCxzazpcInNpMTI4XCJ9LHVoPXtudDowLHNrOlwic2kxNzdcIn07ZnVuY3Rpb24gdmgoYSl7dmFyIGI9W107YT1uKGEuc3x8W10pO2Zvcih2YXIgYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpYz1jLnZhbHVlLFwic2kxMjhcIiE9Yy5zayYmXCJzaTE3N1wiIT1jLnNrfHwhYy5yfHwoYy5yLmJhYyYmYi5wdXNoKGMpLGMuci5oJiYhYy5yLmguaW5jbHVkZXMoXCIlXCIpJiYxPHBhcnNlSW50KGMuci5oLDEwKSYmYi5wdXNoKGMpKTtyZXR1cm4gMT09PWIubGVuZ3RoP2JbMF06Yi5maW5kKGZ1bmN0aW9uKGQpe3JldHVyblwic2kxMjhcIj09PWQuc2t9KXx8bnVsbH1cbmZ1bmN0aW9uIHdoKGEsYixjLGQsZSxmLGcpe2Y9dm9pZCAwPT09Zj9bXTpmO2c9dm9pZCAwPT09Zz9udWxsOmc7dGhpcy5iZT1xaDt0aGlzLmthPVtdO3RoaXMuTmI9W107dGhpcy5YYT1udWxsO3RoaXMuTT1lO3RoaXMuVGY9WGYodGcoYikpO3ZhciBoPXZoKGIpO251bGwhPWgmJih0aGlzLlhhPU5nKHtzOltoXSxsOlwic2kxMjhcIj09PWguc2s/dGg6dWh9LHt9LHt9KS5yb290RWxlbWVudCx0aGlzLlhhLnJlbW92ZUF0dHJpYnV0ZShcImlkXCIpKTthPW4oYSk7Zm9yKHZhciBrPWEubmV4dCgpOyFrLmRvbmU7az1hLm5leHQoKSlrPWsudmFsdWUsdGhpcy5rYS5wdXNoKE5nKGIsYyxrW2suYWR0eXBlXSxkLGUsW1wiYl9cIl0pKTt0aGlzLmRkPWIuYXQ7dGhpcy5HZj1jO3RoaXMueWY9ZDt0aGlzLlNiPWc7YTppZihkPWYsdGhpcy5YYSlpZihoPSgoaHx8e30pLnJ8fHt9KS5yc2kpYj1oO2Vsc2V7Yz1oPSExO2lmKDQ9PXRoaXMuZGQpZm9yKGI9bihiLnN8fFtdKSxkPWIubmV4dCgpOyFkLmRvbmU7ZD1cbmIubmV4dCgpKWlmKGQ9ZC52YWx1ZSxcInNpMTAxXCI9PT1kLnNrKXtpZihcIjEwMCVcIiE9PWQuci53KXtiPVtdO2JyZWFrIGF9fWVsc2V7aWYoXCJzaTE0NFwiPT09ZC5zayl7Yz1oPSEwO2JyZWFrfX1lbHNlIGg9ZC5pbmNsdWRlcygyKSxjPWQuaW5jbHVkZXMoMyk7Yj1bXTtmb3IoZD0wO2Q8dGhpcy5rYS5sZW5ndGgtMTtkKyspYi5wdXNoKGQpO2gmJmIudW5zaGlmdCgtMSk7YyYmYi5wdXNoKHRoaXMua2EubGVuZ3RoLTEpfWVsc2UgYj1bXTt0aGlzLkdkPWJ9XG5mdW5jdGlvbiB4aChhLGIpe3ZhciBjPWEuTS5kb2N1bWVudC5oZWFkLGQ9Yi5wYXJlbnROb2RlO2MuYXBwZW5kQ2hpbGQoYS5UZik7dmFyIGU9YjthLlNiJiYoYy5hcHBlbmRDaGlsZChYZih0ZyhhLlNiKSkpLGU9TmcoYS5TYixhLkdmLHt9LGEueWYsYS5NKSxjPWUucm9vdEVsZW1lbnQsYS5OYj1lLk9kLGQucmVwbGFjZUNoaWxkKGMsYiksZT1kLnF1ZXJ5U2VsZWN0b3IoXCIjYWRCbG9ja1wiKSxlLnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxcIixkb2N1bWVudC50aXRsZSksZS5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsXCJyZWdpb25cIikpO2I9MDtmb3IoZD0tMTtkPGEua2EubGVuZ3RoO2QrKykwPD1kJiZlLmFwcGVuZENoaWxkKGEua2FbZF0ucm9vdEVsZW1lbnQpLGI8YS5HZC5sZW5ndGgmJmEuR2RbYl09PT1kJiYoZS5hcHBlbmRDaGlsZChhLlhhLmNsb25lTm9kZSghMCkpLGIrKyk7YT1hPXtOYTpOYShNYSgpKSxZYTphLmRkfTtiPWEuTmE7ZD1cIlwiO3N3aXRjaChhLllhKXtjYXNlIDE6ZCs9XG5SZyhiLFwiZ29vZ0FGU1wiKTticmVhaztjYXNlIDI6ZCs9UmcoYixcImdvb2dBRlNoUExBc1wiKTticmVhaztkZWZhdWx0OmQrPVJnKCl9YT1IKGQpO2E9WGYoYSk7ZS5hcHBlbmRDaGlsZChhKTthLnNldEF0dHJpYnV0ZShcImRhdGEtcmVuZGVyLWNvbXBsZXRlXCIsITApO3JldHVybiBlfVxud2gucHJvdG90eXBlLkVkPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1udWxsLGQ9cGUoKTtpZihcIk11dGF0aW9uT2JzZXJ2ZXJcImluIHdpbmRvdylyZXR1cm4obmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZSxmKXtlPW4oZSk7Zm9yKHZhciBnPWUubmV4dCgpOyFnLmRvbmU7Zz1lLm5leHQoKSlcImRhdGEtcmVuZGVyLWNvbXBsZXRlXCI9PWcudmFsdWUuYXR0cmlidXRlTmFtZSYmKGQucmVzb2x2ZShjKSxmLmRpc2Nvbm5lY3QoKSl9KSkub2JzZXJ2ZShhLnBhcmVudEVsZW1lbnQse3N1YnRyZWU6ITAsYXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6W1wiZGF0YS1yZW5kZXItY29tcGxldGVcIl19KSxjPXhoKHRoaXMsYSksZC5wcm9taXNlLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHFlKGIuTSxlKX0pLnRoZW4oZnVuY3Rpb24oZSl7eWgoYixlLGIuTSk7cmV0dXJuIGV9KTtjPXhoKHRoaXMsYSk7dGhpcy5NLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt5aChiLGMsYi5NKTtNYSgpLmRhdGEuaWN2MiYmXG5cInJlcXVlc3RBbmltYXRpb25GcmFtZVwiaW4gYi5NP2IuTS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtkLnJlc29sdmUoYyl9KTpkLnJlc29sdmUoYyl9LDApO3JldHVybiBkLnByb21pc2V9O1xuZnVuY3Rpb24geWgoYSxiLGMpe2Zvcih2YXIgZD1bXSxlPW4oYi5xdWVyeVNlbGVjdG9yQWxsKFwiYVtocmVmXVwiKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpaWYoZj1mLnZhbHVlLFwidHJ1ZVwiIT1mLmdldEF0dHJpYnV0ZShcImRhdGEtbm90cmFja1wiKSl7dmFyIGc9Zi5nZXRBdHRyaWJ1dGUoXCJkYXRhLW5iXCIpfHx2b2lkIDA7ZC5wdXNoKG5ldyBzaChmLGcpKX1lPW4oYi5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtcGluZ2JhY2stdHlwZV1cIikpO2Y9ZS5uZXh0KCk7Zm9yKGc9e307IWYuZG9uZTtnPXtnYjpnLmdifSxmPWUubmV4dCgpKWcuZ2I9Zi52YWx1ZSxnLmdiLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGZ1bmN0aW9uKGgpe3JldHVybiBmdW5jdGlvbigpe3pjKHZjKCksaC5nYi5nZXRBdHRyaWJ1dGUoXCJkYXRhLXBpbmdiYWNrLXR5cGVcIikpfX0oZykpO2U9bihiLnF1ZXJ5U2VsZWN0b3JBbGwoXCIuYl9cIikpO2ZvcihmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSlmLnZhbHVlLnNldEF0dHJpYnV0ZShcImRhdGEtYmdcIixcblwidHJ1ZVwiKTthLmJlKGQsYixjLmRvY3VtZW50LmJvZHkpO2Q9bihhLmthKTtmb3IoZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpZT1lLnZhbHVlLFBnKGMsZS5PZHx8W10pLE9nKGIsZS5NZik7MDxhLk5iLmxlbmd0aCYmUGcoYyxhLk5iKX07dmFyIEFoPUUoZnVuY3Rpb24oYSxiLGMsZCxlLGYpe2M9dm9pZCAwPT09Yz8hMTpjO2Q9dm9pZCAwPT09ZD9xaDpkO2U9dm9pZCAwPT09ZT96ZzplO2Y9dm9pZCAwPT09Zj9PZzpmO2Zvcih2YXIgZz1uKGIucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLXd0YS1idWJibGVdXCIpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7aD1oLnZhbHVlO3ZhciBrPWguZ2V0QXR0cmlidXRlKFwiZGF0YS13dGEtYnViYmxlXCIpO2lmKGspe3ZhciBsPWEuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoayk7aWYoIWwpdGhyb3cgRXJyb3IoXCJDb3VsZCBub3QgZmluZCBlbGVtZW50IHdpdGggaWQ6IFwiK2spO2UoYixoLGwpfX1lPW4oYi5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtcGluZ2JhY2stdHlwZV1cIikpO2c9ZS5uZXh0KCk7Zm9yKGg9e307IWcuZG9uZTtoPXtoYjpoLmhifSxnPWUubmV4dCgpKWguaGI9Zy52YWx1ZSxoLmhiLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGZ1bmN0aW9uKHApe3JldHVybiBmdW5jdGlvbigpe3pjKHZjKCksXG5wLmhiLmdldEF0dHJpYnV0ZShcImRhdGEtcGluZ2JhY2stdHlwZVwiKSl9fShoKSk7ZT1uKGIucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLXNldC10YXJnZXRdXCIpKTtmb3IoZz1lLm5leHQoKTshZy5kb25lO2c9ZS5uZXh0KCkpZz1nLnZhbHVlLGMmJihnLnRhcmdldD1cIl9ibGFua1wiKSxnLnJlbW92ZUF0dHJpYnV0ZShcImRhdGEtc2V0LXRhcmdldFwiKTtjPW4oYi5xdWVyeVNlbGVjdG9yQWxsKFwiLmNsaWNrdHJhY2tlZEFkX2pzXCIpKTtmb3IoZT1jLm5leHQoKTshZS5kb25lO2U9Yy5uZXh0KCkpZT1lLnZhbHVlLGUuc2V0QXR0cmlidXRlKFwiZGF0YS1iZ1wiLFwidHJ1ZVwiKSxmKGIsZS5pZCk7Zj1bXTtjPW4oYi5xdWVyeVNlbGVjdG9yQWxsKFwiYVtocmVmXVwiKSk7Zm9yKGU9Yy5uZXh0KCk7IWUuZG9uZTtlPWMubmV4dCgpKWU9ZS52YWx1ZSxcInRydWVcIiE9PWUuZ2V0QXR0cmlidXRlKFwiZGF0YS1ub3RyYWNrXCIpJiYoZz1lLmdldEF0dHJpYnV0ZShcImRhdGEtbmJcIil8fHZvaWQgMCxmLnB1c2gobmV3IHNoKGUsXG5nKSkpO2QoZixiLGIpO3poKGEsYil9LFwiYVBSU1wiKSx6aD1FKGZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtYWQtY29udGFpbmVyXVwiKTtpZighKDE+Yy5sZW5ndGgpKXt2YXIgZD1jWzBdLGU9Yi5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1oaWRlLW5vZGUtZXZlbnQ9XCJTQ1JPTExfQkVHSU5cIl0nKSxmPWIucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtaGlkZS1ub2RlLWV2ZW50PVwiU0NST0xMX0VORFwiXScpO2M9MDxlLmxlbmd0aHx8MDxmLmxlbmd0aDt2YXIgZz1mdW5jdGlvbigpe2Zvcih2YXIgbD1NYXRoLmFicyhNYXRoLnJvdW5kKGQuc2Nyb2xsTGVmdCkpLHA9TWF0aC5yb3VuZChkLnNjcm9sbFRvcCkscj1uKGUpLHE9ci5uZXh0KCk7IXEuZG9uZTtxPXIubmV4dCgpKXtxPXEudmFsdWU7dmFyIHQ9ITE7XCJhdXRvXCI9PT1kLnN0eWxlLm92ZXJmbG93WD90PTAhPT1sOlwiYXV0b1wiPT09ZC5zdHlsZS5vdmVyZmxvd1kmJih0PTAhPT1wKTtxLnN0eWxlLnZpc2liaWxpdHk9XG50P1widmlzaWJsZVwiOlwiaGlkZGVuXCJ9cj1uKGYpO2ZvcihxPXIubmV4dCgpOyFxLmRvbmU7cT1yLm5leHQoKSlxPXEudmFsdWUsdD0hMCxcImF1dG9cIj09PWQuc3R5bGUub3ZlcmZsb3dYP3Q9bCE9PWQuc2Nyb2xsV2lkdGgtZC5jbGllbnRXaWR0aDpcImF1dG9cIj09PWQuc3R5bGUub3ZlcmZsb3dZJiYodD1wIT09ZC5zY3JvbGxIZWlnaHQtZC5jbGllbnRIZWlnaHQpLHEuc3R5bGUudmlzaWJpbGl0eT10P1widmlzaWJsZVwiOlwiaGlkZGVuXCJ9O2MmJihkLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixnKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgUmVzaXplT2JzZXJ2ZXI/KG5ldyBSZXNpemVPYnNlcnZlcihnKSkub2JzZXJ2ZShkKTphLmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIixnKSk7YT1uKGIucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLXNjcm9sbC1kaXNwbGFjZW1lbnRdXCIpKTt2YXIgaD1hLm5leHQoKTtmb3IoYj17fTshaC5kb25lO2I9e1BhOmIuUGF9LGg9YS5uZXh0KCkpe2g9aC52YWx1ZTtcbnZhciBrPWguZ2V0QXR0cmlidXRlKFwiZGF0YS1zY3JvbGwtZGlzcGxhY2VtZW50XCIpO2lmKGspe2IuUGE9TnVtYmVyKGspO2lmKGlzTmFOKGIuUGEpKXRocm93IEVycm9yKFwiU2Nyb2xsIERpc3BsYWNlbWVudCBpcyBub3QgYSBudW1iZXI6IFwiK2spO2guYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKCl7XCJhdXRvXCI9PT1kLnN0eWxlLm92ZXJmbG93WD9kLnNjcm9sbExlZnQrPWwuUGE6XCJhdXRvXCI9PT1kLnN0eWxlLm92ZXJmbG93WSYmKGQuc2Nyb2xsVG9wKz1sLlBhKX19KGIpKX19YyYmZygpfX0sXCJhU0hcIik7ZnVuY3Rpb24gQmgoYSxiLGMpe2EuYWRkRXZlbnRMaXN0ZW5lciYmYS5hZGRFdmVudExpc3RlbmVyKGIsYywhMSl9O2Z1bmN0aW9uIENoKGEsYil7aWYoYSlmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmYihhW2NdLGMsYSl9ZnVuY3Rpb24gRGgoYSxiKXtmb3IodmFyIGM9MDs1MD5jOysrYyl7dHJ5e3ZhciBkPSEoIWEuZnJhbWVzfHwhYS5mcmFtZXNbYl0pfWNhdGNoKGcpe2Q9ITF9aWYoZClyZXR1cm4gYTthOnt0cnl7dmFyIGU9YS5wYXJlbnQ7aWYoZSYmZSE9YSl7dmFyIGY9ZTticmVhayBhfX1jYXRjaChnKXt9Zj1udWxsfWlmKCEoYT1mKSlicmVha31yZXR1cm4gbnVsbH1mdW5jdGlvbiBFaChhKXthPXZvaWQgMD09PWE/ZG9jdW1lbnQ6YTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KFwiaW1nXCIpfTtmdW5jdGlvbiBGaChhLGIsYyl7Yz12b2lkIDA9PT1jP2RvY3VtZW50OmM7dmFyIGQ9Q2QoYykuY3JlYXRlRWxlbWVudChcIlNDUklQVFwiKTtkLnR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIjtiJiYodm9pZCAwIT09ZC5vbnJlYWR5c3RhdGVjaGFuZ2U/ZC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZihcImNvbXBsZXRlXCI9PWQucmVhZHlTdGF0ZXx8XCJsb2FkZWRcIj09ZC5yZWFkeVN0YXRlKXRyeXtiJiZiKCl9Y2F0Y2goZil7fX06ZC5vbmxvYWQ9Yik7JGcoZCxpYihudWxsPT09YT9cIm51bGxcIjp2b2lkIDA9PT1hP1widW5kZWZpbmVkXCI6YSkpO3ZhciBlPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdO2lmKGUpdHJ5e3Yuc2V0VGltZW91dChmdW5jdGlvbigpe2UuYXBwZW5kQ2hpbGQoZCl9LDApfWNhdGNoKGYpe319O2Z1bmN0aW9uIEdoKGEsYixjKXt2YXIgZD10aGlzO3RoaXMuU2Y9Yjt0aGlzLkxlPWM7dGhpcy5lYT1cIjBcIjt0aGlzLm5kPW51bGw7dGhpcy5NPWE7dGhpcy5wYT1udWxsO2EmJmEuZG9jdW1lbnQmJlwiY29tcGxldGVcIj09PWEuZG9jdW1lbnQucmVhZHlTdGF0ZT90aGlzLmViKCk6b2UoYSxcImxvYWRcIixmdW5jdGlvbigpe3JldHVybiBkLmViKCl9KX1tPUdoLnByb3RvdHlwZTtcbm0uZWI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2lmKCF0aGlzLnBhKXt2YXIgYj0obmV3IERkKHRoaXMuTS5kb2N1bWVudCkpLmNyZWF0ZUVsZW1lbnQoXCJJRlJBTUVcIik7Yi5mcmFtZUJvcmRlcj1cIjBcIjtiLnN0eWxlLmhlaWdodD0wO2Iuc3R5bGUud2lkdGg9MDtiLnN0eWxlLnBvc2l0aW9uPVwiYWJzb2x1dGVcIjt0aGlzLnBhPWI7dGhpcy5NLmRvY3VtZW50LmJvZHkmJih0aGlzLk0uZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChiKSx0aGlzLnBhLmNvbnRlbnREb2N1bWVudD90aGlzLkJiKCk6b2UodGhpcy5wYSxcImxvYWRcIixmdW5jdGlvbigpe3JldHVybiBhLkJiKCl9KSl9fTtcbm0uQmI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9dGhpcy5wYTtiJiYoYj1iLmNvbnRlbnREb2N1bWVudD9iLmNvbnRlbnREb2N1bWVudDpiLmNvbnRlbnRXaW5kb3c/Yi5jb250ZW50V2luZG93LmRvY3VtZW50Om51bGwpJiYodGhpcy5lYT1cIjFcIixiLm9wZW4oKSxhaChiKSxiLmNsb3NlKCksRmgodGhpcy5TZixmdW5jdGlvbigpe3JldHVybiBhLldiKCl9LGIpKX07bS5XYj1mdW5jdGlvbigpe3ZhciBhPXRoaXMucGE7aWYoYSlpZihhPWEuY29udGVudFdpbmRvdyx0aGlzLmVhPVwiXCIsYS5ib3RndWFyZClpZihhPWEuYm90Z3VhcmQuYmcpdHJ5e3RoaXMubmQ9bmV3IGEodGhpcy5MZSl9Y2F0Y2goYil7dGhpcy5lYT1cIjVcIn1lbHNlIHRoaXMuZWE9XCIzXCI7ZWxzZSB0aGlzLmVhPVwiMlwifTtcbm0ub2M9ZnVuY3Rpb24oKXtpZih0aGlzLmVhKXJldHVybiB0aGlzLmVhO3ZhciBhPXRoaXMubmQ7aWYoIWEpcmV0dXJuXCI1XCI7aWYoIWEuaW52b2tlKXJldHVyblwiNFwiO3ZhciBiPVwiXCI7dHJ5e2EuaW52b2tlKGZ1bmN0aW9uKGMpe2I9Y30pfWNhdGNoKGMpe3JldHVyblwiNlwifXJldHVyblwic3RyaW5nXCIhPT10eXBlb2YgYnx8MD09Yi5sZW5ndGg/XCI2XCI6Mz5iLmxlbmd0aD9cIjdcIjoyNTUwPGIubGVuZ3RoP1wiOFwiOmJ9O20uZWI9QihHaC5wcm90b3R5cGUuZWIsXCJCR2NJXCIpO20uQmI9QihHaC5wcm90b3R5cGUuQmIsXCJCR3BJXCIpO20uV2I9QihHaC5wcm90b3R5cGUuV2IsXCJCR2NCVlwiKTttLm9jPUIoR2gucHJvdG90eXBlLm9jLFwiQkdnQlJcIik7ZnVuY3Rpb24gSGgoYSl7dmFyIGI9e307YT1uKGEpO2Zvcih2YXIgYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpe2M9Yy52YWx1ZTt2YXIgZD1jLmF0O2JbZF09YltkXXx8e307aWYoYy5jKXtiW2RdLmNvbnRhaW5lck1hcD1iW2RdLmNvbnRhaW5lck1hcHx8e307Zm9yKHZhciBlPW4oYy5jKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSliW2RdLmNvbnRhaW5lck1hcFtmLnZhbHVlXT1jfWVsc2UgYltkXVtcImRlZmF1bHRcIl09Y310aGlzLlVjPWJ9ZnVuY3Rpb24gSWgoYSxiLGMpe3ZhciBkPUpoW2JdO2lmKCFhLlVjW2RdKXJldHVybiBudWxsO2I9YS5VY1tkXVtcImRlZmF1bHRcIl07cmV0dXJuKGE9YS5VY1tkXS5jb250YWluZXJNYXApP2FbY118fGI6Yn12YXIgS2g9e30sSmg9KEtoWzBdPTEsS2hbM109MixLaFsyXT00LEtoKTt2YXIgTGg9RShmdW5jdGlvbihhKXtpZighYSlyZXR1cm57fTt2YXIgYj17fTthPW4oYSk7Zm9yKHZhciBjPWEubmV4dCgpOyFjLmRvbmU7Yz1hLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTtjPWQubjtkPWQudjtcInRcIj09PWQ/YltjXT0hMDpcImZcIiE9PWQmJihiW2NdPWQpfXJldHVybiBifSxcImNKQ1RNXCIpO3ZhciBNaD1qYShbXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9XCIsXCJcIl0pLE5oPWRvY3VtZW50O2Z1bmN0aW9uIE9oKGEpe3ZhciBiPSEhdygpLmRhdGEuYXJid2YsYz1hO2ImJihjPWEubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBkK1wiOjQwMCw3MDBcIn0pKTthPUxlKE1oLGMuam9pbihcInxcIikpOyhiPXcoKS5kYXRhLmZkfHxudWxsKSYmKGE9ZWIoYSx7ZGlzcGxheTpifSkpO3JldHVybiBhfWZ1bmN0aW9uIFBoKCl7dGhpcy5tYz1NYSgpLmRhdGEud2Z0bHx8W107dGhpcy5MZD0wPHRoaXMubWMubGVuZ3RoP09oKHRoaXMubWMpOm51bGw7dGhpcy5JYT1udWxsO3RoaXMucmQ9ITF9XG5mdW5jdGlvbiBRaChhLGIpe2lmKGEuTGQpdHJ5e3ZhciBjPWIuZG9jdW1lbnQsZD1jLmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpO2E6e3ZhciBlPWEuTGQ7aWYoZSBpbnN0YW5jZW9mIGRiKWQuaHJlZj1oYihlKS50b1N0cmluZygpO2Vsc2V7aWYoLTE9PT1aZy5pbmRleE9mKFwic3R5bGVzaGVldFwiKSl0aHJvdyBFcnJvcignVHJ1c3RlZFJlc291cmNlVXJsIGhyZWYgYXR0cmlidXRlIHJlcXVpcmVkIHdpdGggcmVsPVwic3R5bGVzaGVldFwiJyk7dmFyIGY9S2UoZSk7aWYodm9pZCAwPT09ZilicmVhayBhO2QuaHJlZj1mfWQucmVsPVwic3R5bGVzaGVldFwifWMuaGVhZC5hcHBlbmRDaGlsZChkKX1jYXRjaChnKXthLklhPWd9fVxuZnVuY3Rpb24gUmgoYSl7aWYoIWEucmQmJk5oLmZvbnRzJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBOaC5mb250cy5sb2FkKXthLnJkPSEwO2E9bihhLm1jKTtmb3IodmFyIGI9YS5uZXh0KCksYz17fTshYi5kb25lO2M9e3ZiOmMudmJ9LGI9YS5uZXh0KCkpe2I9Yi52YWx1ZTt2YXIgZD1cIlwiLGU9Yi5zcGxpdChcIjpcIik7Mj09PWUubGVuZ3RoJiYoYj1lWzBdLFwiNzAwXCI9PT1lWzFdJiYoZD1cImJvbGQgXCIpKTshKDA8PWIuaW5kZXhPZihcIiBcIikpfHxiLnN0YXJ0c1dpdGgoXCInXCIpJiZiLmVuZHNXaXRoKFwiJ1wiKXx8KGI9XCInXCIrYitcIidcIik7Yy52Yj1kK1wiMTJweCBcIitiO05oLmZvbnRzLmxvYWQoYy52YikuY2F0Y2goZnVuY3Rpb24oZil7cmV0dXJuIGZ1bmN0aW9uKGcpe0MubG9nKChnIGluc3RhbmNlb2YgRXJyb3I/Zy5tZXNzYWdlOlN0cmluZyhnKSkrXCIgLSBcIitmLnZiLFwibWZmbFwiKX19KGMpKX19fTt2YXIgU2g9bnVsbCxUaD17YWRzOjAscnNzOjIscGJzOjMsYWRfZGF0YTo4LHNiczo1fSxVaD17dGV4dF9hZHM6MCxwbGFfbnBhY2s6MyxyZWxhdGVkX3NlYXJjaDoyfSxWaD17c3RhdHVzQWR1bHQ6XCJzLmFEVUxUXCIsc3RhdHVzRmFpbGxpc3RlZDpcInMuZkxcIixzdGF0dXNUcmFkZW1hcms6XCJzLnRNXCIsc3RhdHVzTmVlZHNSZXZpZXc6XCJzLm5SXCJ9LFdoPXt9LFhoPSExO2Z1bmN0aW9uIFloKGEpeyFTaCYmYS5uYW1lJiYoU2g9KGE9YS5uYW1lLm1hdGNoKC9tYXN0ZXItKFxcZCspLykpJiZhWzFdP2FbMV06bnVsbCk7U2h8fChTaD0tMSk7cmV0dXJuIFNofVloPUIoWWgsXCJnTU5cIik7ZnVuY3Rpb24gWmgoYSl7dmFyIGI9XCJtYXN0ZXItXCIrWWgoYSk7cmV0dXJuIG1lKGIsYSl9Wmg9QihaaCxcImdNSVwiKTtcbmZ1bmN0aW9uICRoKGEsYixjKXt0cnl7aWYoYS5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImh0bWxcIikpe3ZhciBkPWEuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJodG1sXCIpWzBdO2QmJighZC5sYW5nJiZiJiYoZC5sYW5nPWIpLCFkLmRpciYmYyYmKGQuZGlyPWMpKX19Y2F0Y2goZSl7fX0kaD1CKCRoLFwic1NJTERcIik7ZnVuY3Rpb24gYWkoYSxiKXt0cnl7aWYodm9pZCAwIT09Yil7dmFyIGM9YS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibWV0YVwiKTtjLmh0dHBFcXVpdj1cIm9yaWdpbi10cmlhbFwiO2MuY29udGVudD1iO2EuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChjKX19Y2F0Y2goZCl7fX1haT1CKGFpLFwic09UT0ZcIik7XG5mdW5jdGlvbiBiaShhLGIpe3ZhciBjPXt9O2E9bihhKTtmb3IodmFyIGQ9YS5uZXh0KCk7IWQuZG9uZTtkPWEubmV4dCgpKWQ9ZC52YWx1ZSxjW2Qua109ZC52O2I9bihiKTtmb3IoZD1iLm5leHQoKTshZC5kb25lO2Q9Yi5uZXh0KCkpYT1kLnZhbHVlLGNbYS5rXT1hLnY7cmV0dXJuIGN9XG5mdW5jdGlvbiBjaShhLGIsYyxkLGUsZixnLGgsayxsLHApe2Z1bmN0aW9uIHIodSl7dmFyIEQ9YWUoYik7bGcoaCx1LEQpO2EucmVxdWVzdEFuaW1hdGlvbkZyYW1lJiZhLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3Uuc3R5bGUudHJhbnNmb3JtPVwicm90YXRlWigwZGVnKVwifSl9dmFyIHE9YmkoZy5yfHxbXSxrLnJ8fFtdKSx0PShmPTI9PT1kWzBdLnR5cGUpPyExOlwiX2JsYW5rXCI9PWgubGlua1RhcmdldCx4PW5nKCk7ZGcoeCxhLmRvY3VtZW50LmhlYWQpO2Q9bmV3IHdoKGQsayxxLHQsYSxwLGwpO1wiaWV2XCJpbiBrJiZmZChiK1wiLmVWXCIsay5pZXYpO2RpKGcsYik7Yz1kLkVkKGMpLnRoZW4oZnVuY3Rpb24odSl7cih1KTtyZXR1cm4gdX0pO2YmJmgucmVsYXRlZFNlYXJjaFVzZVJlc3VsdENhbGxiYWNrJiYoYz1jLnRoZW4oZnVuY3Rpb24odSl7ZWkodSxlKTtyZXR1cm4gdX0pKTtyZXR1cm4gY31jaT1CKGNpLFwiZlNBXCIpO1xuZnVuY3Rpb24gZmkoYSxiLGMsZCxlLGYsZyxoKXtNYSgpLlgoKSYmKGEuZG9jdW1lbnQuZGlyPVwicnRsXCIpO2E9ZFswXS50eXBlO2lmKDI9PT1hJiYhdygpLksoKSl7dmFyIGs9Zy5yc19hdHRyLnQ7aC5ob3Jpem9udGFsRmxvdyYmKGsrPVwiOlwiKTtrJiYoaz1IKCc8aDIgaWQ9XFwnYXR0ckhlYWRlclxcJz48c3BhbiBjbGFzcz1cImxoSGVhZGVyXCIgaWQ9XCJhdHRyaWJ1dGlvblwiPjxhIHRhcmdldD1cIl9ibGFua1wiPicrcGYoaykrXCI8L2E+PC9zcGFuPjwvaDI+XCIpLGRnKGssYykpfWNnKGMsaCxlKTt3KCkuSygpfHxkaShnLGIpO2dpKGQsYyxoLGYsYSk7Yj1hZShiKTtsZyhoLGMsYil9Zmk9QihmaSxcImZBXCIpO2Z1bmN0aW9uIGhpKGEsYixjLGQsZSxmKXskaChhLGUsZik7aWkoYSk7UWgoYyxhKTtSaChjKTthPWEuZG9jdW1lbnQuaGVhZDtudWxsIT09YiYmYS5hcHBlbmRDaGlsZChiLmNsb25lTm9kZSghMCkpO2EuYXBwZW5kQ2hpbGQoZCl9aGk9QihoaSxcInBTUlNcIik7XG5mdW5jdGlvbiBqaShhLGIsYyxkLGUsZixnLGgpe2lmKGIgaW4gV2gpe3ZhciBrPW51bGw7dHJ5e2s9YS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIiksaGVbYl09ITB9Y2F0Y2gocil7fWlmKG51bGwhPWspe2suc2V0QXR0cmlidXRlKFwiYXJpYS1sYWJlbFwiLGRvY3VtZW50LnRpdGxlKTtrLnNldEF0dHJpYnV0ZShcInJvbGVcIixcInJlZ2lvblwiKTtpZihjKXtmb3IodmFyIGw9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2MuZmlyc3RFbGVtZW50Q2hpbGQ7KWwuYXBwZW5kQ2hpbGQoYy5maXJzdEVsZW1lbnRDaGlsZCk7ay5hcHBlbmRDaGlsZChsKX12YXIgcD1rO1wicmVxdWVzdEFuaW1hdGlvbkZyYW1lXCJpbiBhP2EucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ZChhLHAsZil9KTpkKGEscCxmKTtjPWFlKGIpO2w9VWUoYixlKTtsZyhsLGssYyk7ZyYmbC5yZWxhdGVkU2VhcmNoVXNlUmVzdWx0Q2FsbGJhY2smJmVpKGssZSk7aC5iZyYmKGU9bmV3IEdoKGEsXG5oLmJnLmksaC5iZy5wKSxhLmNzYWJnPWUpO2RlbGV0ZSBXaFtiXX19fWppPUIoamksXCJwU1JBSFwiKTtmdW5jdGlvbiBraShhLGIpe2E9bWUoYSxiKTtpZihudWxsPT1hKXJldHVybiBudWxsO2I9bnVsbDt0cnl7Yj1hLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYWRCbG9ja1wiKX1jYXRjaChjKXt9cmV0dXJuIG51bGw9PWI/bnVsbDphfWtpPUIoa2ksXCJnRklBQlwiKTtcbmZ1bmN0aW9uIGxpKGEsYixjLGQsZSxmKXt2YXIgZz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNzcmFiXCIpLGg9WWgoYSksaz1QYSgpLGw9bmV3IFBoLHA9W10scj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNzci1ib2lsZXJwbGF0ZVwiKTtpZigwPG1pKCkubGVuZ3RoKXtudWxsIT09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzc3JmXCIpfHxRaChsLHdpbmRvdyk7UmgobCk7dmFyIHE9XCJtYXN0ZXItXCIraCx0PVVlKHEsYSk7amkod2luZG93LHEsbnVsbCxBaCxhLFwiX2JsYW5rXCI9PXQubGlua1RhcmdldCxcInJlbGF0ZWRzZWFyY2hcIj09PXQudHlwZSxjKX1mb3IocT0wO3E8Zy5jaGlsZEVsZW1lbnRDb3VudDspe3Q9Zy5jaGlsZHJlbltxXTt2YXIgeD10LmlkLnNwbGl0KFwiLVwiKTtxKz0xO2lmKCEoMj54Lmxlbmd0aCkpe3ZhciB1PXguc2hpZnQoKTtpZihcInNzcmFkXCI9PT11fHxcInNzcnNcIj09PXV8fFwic3Nyc2JcIj09dSl7eC5wdXNoKGgudG9TdHJpbmcoKSk7eD14LmpvaW4oXCItXCIpO3ZhciBEPVxuVWUoeCxhKSxLPVwiX2JsYW5rXCI9PUQubGlua1RhcmdldCxPPVwicmVsYXRlZHNlYXJjaFwiPT09RC50eXBlLFY9a2koeCxhKTtpZihudWxsPT1WKXAucHVzaCh4KTtlbHNlIGlmKGcucmVtb3ZlQ2hpbGQodCksLS1xLFwic3Nyc1wiPT09dSloaShWLHIsbCx0LGQsZSxmKTtlbHNlIGlmKFwic3NyYWRcIj09PXUpamkoVix4LHQsQWgsYSxLLE8sYyk7ZWxzZSBpZihcInNzcnNiXCI9PT11KXt0PW51bGw7dHJ5e3Q9Vi5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIil9Y2F0Y2goQWEpe31udWxsIT10JiYoZmkoVix4LHQsYy5zYnMsYSxiLGMsRCksaGVbeF09ITAsZGVsZXRlIFdoW3hdKX19fX1mb3IodmFyIHVhIGluIFdoKTA+cC5pbmRleE9mKHVhKSYmKGZkKHVhK1wiLmhBXCIsITEpLFFhKGspJiZlZCh1YStcIi5hQ1wiLDApLGRlbGV0ZSBXaFt1YV0pOzA9PXAubGVuZ3RoJiZkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGcpO2RkKCk7bC5JYSYmQy5sb2cobC5JYSxcImx3ZjJcIil9bGk9QihsaSxcInBTUkFcIik7XG5mdW5jdGlvbiBuaShhLGIsYyl7dmFyIGQ9WmgoYSk7aWYoZCl7dmFyIGU9ZC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZzt2YXIgZj1kLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kaXI7ZC5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiaGVhZFwiKSYmaWkoZCl9dmFyIGc9KGQ9Yy5hdCkmJjA8ZC5sZW5ndGg/bmV3IEhoKGQpOnZvaWQgMCxoPShkPWMuYWN0KT9uZXcgSGgoZCk6dm9pZCAwLGs9T2JqZWN0LmtleXMoV2gpLnNsaWNlKCksbD1uZXcgUGg7ZD1bXTtpZihnZSgpKWxpKGEsYixjLGUsZixcIkE0VFZEMG9Eb1JVbkJaZ1lEZE5WQVJZSVBTbUpneVNFc1lkUEFOUnJyZ1E3UWl0UHNPdHkwZVpJQnNqbEhGRkp3REZVLzhRbW5SRjJrTDV4YjRSUDlRNEFBQUNFZXlKdmNtbG5hVzRpT2lKb2RIUndjem92TDNkM2R5NW5iMjluYkdVdVkyOXRPalEwTXlJc0ltWmxZWFIxY21VaU9pSlFjbWwyWVdONVUyRnVaR0p2ZUVGa2MwRlFTWE1pTENKbGVIQnBjbmtpT2pFMk9UVXhOamM1T1Rrc0ltbHpVM1ZpWkc5dFlXbHVJanAwY25WbExDSnBjMVJvYVhKa1VHRnlkSGtpT25SeWRXVjlcIiksXG5kLnB1c2goUHJvbWlzZS5yZXNvbHZlKCkpO2Vsc2UgZm9yKHZhciBwIGluIFdoKXt2YXIgcj1XaFtwXSxxPXJbMF0udHlwZSx0PW1lKHAsYSk7aWYobnVsbCE9dCl7JGgodCxlLGYpO2FpKHQsdm9pZCAwKTt2YXIgeD1udWxsO3RyeXt4PXQuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJhZEJsb2NrXCIpfWNhdGNoKFYpe31pZihudWxsIT14KXt4LnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxcIixkb2N1bWVudC50aXRsZSk7eC5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsXCJyZWdpb25cIik7dygpLmRhdGEuaWNlbGFlJiZpaSh0KTtRaChsLHQpO1JoKGwpO3ZhciB1PTI9PXEsRD01PT1xLEs9VWUocCxhKSxPPW51bGw7ZyYmSWgoZyxxLEsuY29udGFpbmVyKT8oTz1JaChnLHEsSy5jb250YWluZXIpLHE9aD9JaChoLHEsSy5jb250YWluZXIpOm51bGwsdSYmbWcoSyxyKSx1PW9pKHAsayksTz1jaSh0LHAseCxyLGEsYixjLEssTyxxLHUpKTooRHx8Qy5sb2cocSxcInVueExSQlwiKSxPPVByb21pc2UucmVzb2x2ZSgpLFxuZmkodCxwLHgscixhLGIsYyxLKSk7Yy5iZyYmKHI9bmV3IEdoKHQsYy5iZy5pLGMuYmcucCksdC5jc2FiZz1yKTtkLnB1c2goTyk7aGVbcF09ITA7ZGVsZXRlIFdoW3BdfX19bC5JYSYmQy5sb2cobC5JYSxcImx3ZjJcIik7aWYodygpLmRhdGEuZXB0ZSlmb3IoYj1uKGspLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWM9bWUoYy52YWx1ZSxhKSxudWxsIT1jJiZwaShjKTtyZXR1cm4gc2UoZCkudGhlbihmdW5jdGlvbigpe3ZhciBWPXooXCJfb3B0aW1pemVGcmFtZU1lYXN1cmVtZW50XCIpO3FpKGEsISFnfHxWLFYpfSl9bmk9QihuaSxcIm1QQUFTSFwiKTt2YXIgcmk9XCJmdW5jdGlvblwiPT09dHlwZW9mIFJlc2l6ZU9ic2VydmVyLHNpPW51bGw7XG5mdW5jdGlvbiBxaShhLGIsYyl7ZnVuY3Rpb24gZCgpe3ZhciBlPWxlKGEpLmZyYW1lcztpZihyaSl7c2kmJnNpLmRpc2Nvbm5lY3QoKTt2YXIgZj1jO3NpPW5ldyBSZXNpemVPYnNlcnZlcihmdW5jdGlvbigpe2Y/Zj0hMTpHZShhKX0pO3ZhciBnPW4oZSk7Zm9yKGU9Zy5uZXh0KCk7IWUuZG9uZTtlPWcubmV4dCgpKXNpLm9ic2VydmUoZS52YWx1ZS5kb2N1bWVudC5ib2R5KX1lbHNlIGZvcihnPW4oZSksZT1nLm5leHQoKTshZS5kb25lO2U9Zy5uZXh0KCkpZS52YWx1ZS5vbnJlc2l6ZT1mdW5jdGlvbigpe0dlKGEpfX1jfHxkKCk7Yj9HZShhKTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7R2UoYSl9LDApO2MmJnNldFRpbWVvdXQoZCwwKX1cbmZ1bmN0aW9uIG9pKGEsYil7dmFyIGM9YS5zcGxpdChcIi1cIik7YT1hLnNwbGl0KFwiLVwiKTtjLnNwbGljZShjLmxlbmd0aC0xLDAsXCJhXCIpO2M9Yy5qb2luKFwiLVwiKTthLnNwbGljZShhLmxlbmd0aC0xLDAsXCJiXCIpO2E9YS5qb2luKFwiLVwiKTt2YXIgZD1bXTtiLmluY2x1ZGVzKGMpJiZkLnB1c2goMik7Yi5oYXNPd25Qcm9wZXJ0eShhKSYmZC5wdXNoKDMpO3JldHVybiBkfWZ1bmN0aW9uIHRpKGEsYixjKXt2YXIgZD1NYXRoLm1heC5hcHBseShNYXRoLGEpO2E9TWF0aC5taW4uYXBwbHkoTWF0aCxhKTtpZihkLWE+V2QpZm9yKGE9ZC1XZCxkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF07Y1tlXTxhJiYoY1tlXT1hKX1yZXR1cm4gY310aT1CKHRpLFwicEJERlwiKTtcbmZ1bmN0aW9uIHVpKGEsYil7Zm9yKHZhciBjPXt9LGQ9ITEsZT1bXSxmPVtdLGc9bihPYmplY3Qua2V5cyhhKSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpaWYoaD1oLnZhbHVlLGggaW4gYil7dmFyIGs9YltoXSxsPWFbaF07XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGwmJihsPVpkKGgsayxsKSxudWxsIT1sJiYoY1toXT1sLGsuZz09WGQmJihlLnB1c2gobCksZi5wdXNoKGgpKSxkPSEwKSl9MDxlLmxlbmd0aCYmKGM9dGkoZSxmLGMpKTtyZXR1cm4gZD9jOm51bGx9dWk9Qih1aSxcInZPXCIpO2Z1bmN0aW9uIHZpKGEsYil7cmV0dXJuKCRkKGEpfHwvXm1hc3Rlci1cXGQrJC8udGVzdChhKSkmJlwib2JqZWN0XCI9PXR5cGVvZiBifXZpPUIodmksXCJpUEFCT1wiKTtcbmZ1bmN0aW9uIHdpKGEpe3RyeXtpZighYSl0aHJvdyBFcnJvcihcIk51bGwsIHVuZGVmaW5lZCBvciBlbXB0eSB3aW5kb3cubmFtZS5cIik7dmFyIGI9SlNPTi5wYXJzZShhKX1jYXRjaChkKXt2YXIgYz1kLm1lc3NhZ2U7YSYmKGM9XCJJbnZhbGlkIHdpbmRvdy5uYW1lOiBcIithLnNwbGl0KFwiLFwiKVswXSk7Qy5sb2coYyxcInBOQU9cIil9cmV0dXJuIGJ8fHt9fXdpPUIod2ksXCJwTkFPXCIpO2Z1bmN0aW9uIHhpKGEsYil7dmFyIGM9e30sZDtmb3IoZCBpbiBhKXt2YXIgZT1hW2RdO1wibmFtZVwiPT1kP2NbZF09JGQoZSl8fC9ebWFzdGVyLVxcZCskLy50ZXN0KGUpP2U6bnVsbDp2aShkLGUpJiYoZT11aShlLGIpLGNbZF09ZSxXaFtkXT1bXSl9cmV0dXJuIGN9eGk9Qih4aSxcInZOQU9cIik7XG5mdW5jdGlvbiB5aShhLGIsYyxkKXt2YXIgZT1iLmhvcml6b250YWxGbG93Py0xOmIuY29sdW1ucztpZigyPD1lJiYhKDA+PWUpKXtmb3IodmFyIGY9W10sZz0wLGg9MDtoPGU7aCsrKWZvcih2YXIgaz1NYXRoLmNlaWwoKGEubGVuZ3RoLWcpLyhlLWgpKSxsPTA7bDxrO2wrKylmW2wqZStoXT1hW2crK107YT1mfWY9dm9pZCAwPT09ZD8hMTpkO2Q9IWIuaG9yaXpvbnRhbEZsb3c7Yj12b2lkIDA9PT1mPyExOmY7Zj1uKGEpO2ZvcihnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSlnPWcudmFsdWUsZy50PUgoZy50KTtpZihjLkRkJiYxPT1lKXtiPWEubGVuZ3RoO2Q9Yy5EZC5zcGxpdChcIixcIik7ZT1bXTtmb3IoZj0wO2Y8YjtmKyspZS5wdXNoKGRbZiVkLmxlbmd0aF0pO2I9Yy5yZjtoPSc8ZGl2IGNsYXNzPVwiJytMKFwiZF9cIikrJ1wiPic7Yz1hLmxlbmd0aDtmb3IoZD0wO2Q8YztkKyspe2Y9YVtkXTtnPXZvaWQgMDtrPSc8ZGl2IGNsYXNzPVwiJytMKFwiZV9cIikrJ1wiIHN0eWxlPVwiYm9yZGVyLScrXG4oYj9cInJpZ2h0XCI6XCJsZWZ0XCIpK1wiLWNvbG9yOiBcIitMKE4oZVtkXSkpKydcIj48YSBocmVmPVwiJytMKEtmKGYubCkpKydcIiBjbGFzcz1cIicrTChcImNfXCIpKycgcG9wc3RyaXBlUnNcIiBkYXRhLW5vdHJhY2s9XCJ0cnVlXCIgdGFyZ2V0PVwiX3RvcFwiPicrKGYuZnVybD8nPGRpdiBjbGFzcz1cIicrTChcImZfXCIpKydcIj48aW1nIHNyYz1cIicrTChQZihmLmZ1cmwpKSsnXCIgY2xhc3M9XCInK0woXCJnX1wiKSsnXCI+PC9kaXY+JzpcIlwiKTt2YXIgcD1mLnQ7bD1IO2lmKDA8KFwiXCIrd2YoXCJcIitwKSkubGVuZ3RoKXt2YXIgcj12b2lkIDA7dmFyIHE9cDt2YXIgdD1vZihxKTtpZihudWxsIT10KXE9dDtlbHNle3I9cnx8bnVsbCE9cSYmcS5PPT09YmY7dmFyIHg9dD0wLHU9ITE7cj1XZShxK1wiXCIscikuc3BsaXQoJGUpO2Zvcih2YXIgRD0wO0Q8ci5sZW5ndGg7RCsrKXt2YXIgSz1yW0RdO1llLnRlc3QoV2UoSykpPyh0KysseCsrKTpaZS50ZXN0KEspP3U9ITA6WGUudGVzdChXZShLKSk/eCsrOmFmLnRlc3QoSykmJih1PVxuITApfXQ9MD09eD91PzE6MDouNDx0L3g/LTE6MTtudWxsIT1xJiZ2b2lkIDAhPT1xLlMmJihxLlM9dCk7cT10fXA9JzxzcGFuIGRpcj1cIicrKDA+cT9cInJ0bFwiOlwibHRyXCIpKydcIj4nK3BmKHApK1wiPC9zcGFuPlwifWVsc2UgcD1cIlwiO2w9bChwKTtoKz1rK2wrJzxkaXYgY2xhc3M9XCInK0woXCJoX1wiKSsnXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJytMKFBmKG51bGwhPShnPWYuYWRJY29uVXJsKT9nOlwiLy93d3cuZ3N0YXRpYy5jb20vZG9tYWluYWRzL2ltYWdlcy9jaGV2cm9uLXdoaXRlLnBuZ1wiKSkrJylcIj48L2Rpdj48L2E+PC9kaXY+J31hPUgoaCtcIjwvZGl2PlwiKX1lbHNle2Y9Jzx0YWJsZSBjZWxsc3BhY2luZz1cIjBcIiBjZWxscGFkZGluZz1cIjBcIicrKDI8PWV8fGQ/JyB3aWR0aD1cIjEwMCVcIic6XCJcIikrXCI+PHRib2R5Pjx0cj5cIjtjPWEubGVuZ3RoO2ZvcihkPTA7ZDxjO2QrKylnPWFbZF0sZis9KDAhPWQmJjA8ZSYmMD09ZCVlP1wiPC90cj48dHI+XCI6XCJcIikrJzx0ZCBjbGFzcz1cImNvbCcrXG4oZD09YS5sZW5ndGgtMT9cIiBsXCI6XCJcIikrJ1wiJysoMjw9ZT8nIHdpZHRoPVwiJytMKDEwMC9lKSsnJVwiJzpcIlwiKStcIj5cIixoPTA+ZXx8Mjw9ZSYmZDxlLGg9JzxkaXYgY2xhc3M9XCJhZCcrKDA9PWQ/XCIgZlwiOlwiXCIpKyhoP1wiIGZyXCI6XCJcIikrKGQ9PWEubGVuZ3RoLTE/XCIgbFwiOlwiXCIpKyghaCYmMjw9ZSYmZD49YS5sZW5ndGgtKGEubGVuZ3RoJWU/YS5sZW5ndGglZTplKT9cIiBsclwiOlwiXCIpKydcIj48ZGl2IGNsYXNzPVwiJytMKFwiYV9cIikrXCIgXCIrTChcImJfXCIpKycgcmFkbGlua0NcIj4nLGs9ZyxrPUgoay5hZEljb25Vcmw/JzxpbWcgY2xhc3M9XCJhZEljb25cIiBzcmM9XCInK0woUGYoay5hZEljb25VcmwpKSsnXCIvPic6XCJcIiksaD1oK2srJzxkaXYgY2xhc3M9XCJhZERcIj4nLGI/KGs9QWYoXCJcIitLZihnLmwpKSxnPXlmKFwiXCIrcGYoZy50KSksZz1IKCc8ZGl2IGNsYXNzPVwiYWRTdGRcIj48YSBocmVmPVwiJytMKEtmKGspKSsnXCIgY2xhc3M9XCJyYWRsaW5rQnV0dG9uTGlua1wiIGRhdGEtbm90cmFjaz1cInRydWVcIiB0YXJnZXQ9XCJfdG9wXCI+JytcbkgoJzxzcGFuIHN0eWxlPVwiaGVpZ2h0OjIwcHg7bGluZS1oZWlnaHQ6MjBweDt3aWR0aDoyMHB4O21hcmdpbi1yaWdodDo1cHhcIj48c3ZnIGNsYXNzPVwicmFkbGlua1N2Z1wiIGZvY3VzYWJsZT1cImZhbHNlXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBkPVwiTTE1LjUgMTRoLS43OWwtLjI4LS4yN0E2LjQ3MSA2LjQ3MSAwIDAgMCAxNiA5LjUgNi41IDYuNSAwIDEgMCA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0elwiPjwvcGF0aD48L3N2Zz48L3NwYW4+JykrZytcIjwvYT48L2Rpdj5cIikpOihrPUFmKFwiXCIrS2YoZy5sKSksZz15ZihcIlwiK3BmKGcudCkpLGc9SCgnPGRpdiBjbGFzcz1cImFkU3RkXCI+PGEgaHJlZj1cIicrTChLZihrKSkrXG4nXCIgY2xhc3M9XCInK0woXCJjX1wiKSsnXCIgZGF0YS1ub3RyYWNrPVwidHJ1ZVwiIHRhcmdldD1cIl90b3BcIj4nK2crXCI8L2E+PC9kaXY+XCIpKSxmKz1oK2crXCI8L2Rpdj48L2Rpdj48L2Rpdj48L3RkPlwiO2E9SChmK1wiPC90cj48L3Rib2R5PjwvdGFibGU+XCIpfXJldHVybiBhfXlpPUIoeWksXCJjUlNOXCIpO1xuZnVuY3Rpb24gZ2koYSxiLGMsZCxlKXtpZighKDA+PWEubGVuZ3RoKSl7dmFyIGY9bnVsbDtpZihQYSgpLmRhdGEuY3VjYWkmJiF3KCkuSygpKXt2YXIgZz1cImh0dHBzOlwiPT09d2luZG93LmxvY2F0aW9uLnByb3RvY29sO251bGwhPWMuYWRJY29uVXJsJiYwPGMuYWRJY29uSGVpZ2h0JiYwPGMuYWRJY29uV2lkdGgmJmdnKGEsYy5hZEljb25VcmwsZyl9dygpLksoKXx8bWcoYyxhKTtkPXtyZjpNYSgpLlgoKSxEZDpkLnBvcHN0cmlwZVJzfTtpZigyPT09ZSYmIXcoKS5LKCkpZj15aShhLGMsZCk7ZWxzZSBpZig1PT09ZSl7ZD1jLnJlc3VsdHNQYWdlQmFzZVVybDtpZighZCl0aHJvdyBEYyhcInJlc3VsdHNQYWdlQmFzZVVybCBuZWVkcyB0byBiZSBzZXQgZm9yIHNlYXJjaGJveCBibG9ja3MuXCIpO2Y9YVswXS5hZmR0O2E9YVswXS5sYWJlbDtlPWRlKGQpO251bGwhPWMucGVyc29uYWxpemVkQWRzJiYoZS5wY3NhPVwiXCIrYy5wZXJzb25hbGl6ZWRBZHMpO2M9JzxkaXYgY2xhc3M9XCJhZFN0ZFwiPjxmb3JtIGFjdGlvbj1cIicrXG5MKEtmKGQpKSsnXCIgdGFyZ2V0PVwiX3RvcFwiIG1ldGhvZD1cImdldFwiIGFjY2VwdC1jaGFyc2V0PVwiVVRGLThcIj4nO2Q9dmYoZSk7Zz1kLmxlbmd0aDtmb3IodmFyIGg9MDtoPGc7aCsrKXt2YXIgaz1kW2hdO2MrPSc8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCInK0woaykrJ1wiIHZhbHVlPVwiJytMKGVba10pKydcIi8+J31jKz0nPHRhYmxlIGNsYXNzPVwic2ItdGFibGVcIiBjZWxsc3BhY2luZz1cIjBcIiBjZWxscGFkZGluZz1cIjBcIj48dGJvZHk+PHRyPjx0ZCBjbGFzcz1cInNiaS10ZFwiPjxpbnB1dCBjbGFzcz1cInNiaVwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInF1ZXJ5XCIgbWF4bGVuZ3RoPVwiNjNcIiB0aXRsZT1cIkVudGVyIGEgc2VhcmNoXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIvPjwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1cInNiYlwiIHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIicrKGE/TChhKTpcIlNlYXJjaFwiKSsnXCIvPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiYWZkVG9rZW5cIiB2YWx1ZT1cIicrXG5MKGYpKydcIi8+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic2VhcmNoXCIgdmFsdWU9XCIxXCIvPjwvZm9ybT48L2Rpdj4nO2Y9SChjKX1jPWM9e05hOk5hKE1hKCkpfTtjPUgoUmcoYy5OYSxcImdvb2dBRlNcIikpO2RnKGMsYik7ZiYmZGcoZixiKX19Z2k9QihnaSxcImNBTlwiKTtcbmZ1bmN0aW9uIHppKGEsYixjKXt2YXIgZD1BaShhKSxlPVloKGIpLGY9UGEoKSxnPU1hKCksaD13KCk7Zy5kYXRhLnFpJiZjZChcInFpXCIsZy5kYXRhLnFpfHxudWxsLFRjLmopO3ZhciBrPWcuZGF0YS5lYXdwfHxudWxsO2smJmNkKFwiZWF3cFwiLGssVGMuaik7KGg9ISFoLmRhdGEuc2JuKSYmZmQoXCJzYm5cIixoKTtoPSExO2lmKCFnZSgpKWZvcihrPTA7azxkLmxlbmd0aDtrKyspe3ZhciBsPWRba10uYWR0eXBlLHA9dm9pZCAwIT1sLHI9ZFtrXSxxPXIuZm47cS5zdGFydHNXaXRoKFwic2xhdmUtMFwiKSYmKFhoPSEwKTtxPXErXCItXCIrZTtXaFtxXXx8KEMubG9nKHEsXCJwQUoyXCIpLFdoW3FdPVtdKTtXaFtxXS5wdXNoKHIpO3AmJihyPXJbbF0saD0hMCl9aWYoZ2UoKSl7Yj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNzcmFiXCIpO2I9bihiLmNoaWxkcmVuKTtmb3IoZz1iLm5leHQoKTshZy5kb25lO2c9Yi5uZXh0KCkpe2c9Zy52YWx1ZTt2YXIgdD1nLmlkLnNwbGl0KFwiLVwiKTtpZighKDI+dC5sZW5ndGgpJiZcblwic3NyYWRcIj09PXQuc2hpZnQoKSl7dC5wdXNoKGUudG9TdHJpbmcoKSk7dD10LmpvaW4oXCItXCIpO3ZhciB4PXBhcnNlSW50KGcuZ2V0QXR0cmlidXRlKFwiZGF0YS1udW0tYWRzXCIpLDEwKXx8MDtmZCh0K1wiLmhBXCIsMDx4KTtRYShmKSYmZWQodCtcIi5hQ1wiLHgpO0JpKFtnXSx0KTtkaShhLHQpfX1iPW1pKCk7MDxiLmxlbmd0aCYmKGc9XCJtYXN0ZXItXCIrZSx0PWIucmVkdWNlKGZ1bmN0aW9uKEQsSyl7cmV0dXJuIEQrcGFyc2VJbnQoSy5nZXRBdHRyaWJ1dGUoXCJkYXRhLW51bS1hZHNcIiksMTApfSwwKSxmZChnK1wiLmhBXCIsMDx0KSxRYShmKSYmZWQoZytcIi5hQ1wiLHQpLEJpKGIsZyksZGkoYSxnKSl9ZWxzZSBmb3IodCBpbiBXaClpZihhPVdoW3RdLGQ9YS5sZW5ndGgsMDxkJiYhaCYmKGs9YVswXSwzPT1rLnR5cGUmJihkPWsucGxhcz9rLnBsYXMubGVuZ3RoOjApKSxYaCYmL15tYXN0ZXItXFxkKyQvLnRlc3QodCkpMDxkJiZDLmxvZyhhLmxlbmd0aCxcInBBSjNcIiksZGVsZXRlIFdoW3RdO2Vsc2UgaWYoZmQodCtcblwiLmhBXCIsMDxkKSxRYShmKSYmZWQodCtcIi5hQ1wiLGQpLDE+ZCl7aWYoYT1tZSh0LGIpKXRyeXsoeD1hLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYWRCbG9ja1wiKSkmJmRnKFFnKHtOYTpOYShnKX0pLHgpfWNhdGNoKEQpe31kZWxldGUgV2hbdF19Zm9yKHZhciB1IGluIFZoKWNbdV0mJmZkKFZoW3VdLCEwKTsodT1jLnN0YXR1c0Vycm9yQ29kZSkmJmVkKFwicy5lQ1wiLHBhcnNlSW50KHUsMTApKTtmZChcInMuYlwiLCEhYy5zdGF0dXNCbG9ja2VkKTtNYSgpLmRhdGEuaXNpJiZmZChcInMuaVNJXCIsITApO1FhKGYpJiZmZChcImFELlwiK2UsITApO2RkKCl9emk9Qih6aSxcInBBSlwiKTtmdW5jdGlvbiBBaShhKXt2YXIgYj1bXSxjO2ZvcihjIGluIFRoKXt2YXIgZD1hW2NdO2lmKGQpe2Zvcih2YXIgZT1UaFtjXSxmPTA7ZjxkLmxlbmd0aDtmKyspZFtmXS50eXBlPVwiYWRfZGF0YVwiPT1jP1VoW2RbZl0uYWR0eXBlXTplO2I9Yi5jb25jYXQoZCl9fXJldHVybiBifUFpPUIoQWksXCJjQUFcIik7XG5mdW5jdGlvbiBDaShhKXtyZXR1cm4gTGgoYSl9Q2k9QihDaSxcImNQQVRPXCIpO2Z1bmN0aW9uIERpKGEsYixjKXtyaSYmeihcIl9vcHRpbWl6ZUZyYW1lTWVhc3VyZW1lbnRcIil8fCh3aW5kb3cuc1BIPWZ1bmN0aW9uKCl7R2UoYSl9KTt3aW5kb3cubVBBQVNIPWZ1bmN0aW9uKCl7bmkoYSxiLGMpfTtyZXR1cm4gbmkoYSxiLGMpfURpPUIoRGksXCJzQ0ZDXCIpO2Z1bmN0aW9uIEVpKGEsYil7dmFyIGM9SWEoKSxkPUNpKGMuY2FwcyksZT14aShiLGEpO3ppKGMsZSxkKTthPURpKGUsZCxjKTtTYSgpLmRhdGEuaG0mJndpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLGZ1bmN0aW9uKGYpe2Y9Zi5kYXRhLnNwbGl0KFwiOlwiKTsyPT1mLmxlbmd0aCYmXCJvcmllbnRhdGlvblwiPT1mWzBdJiZHZShlKX0pO3JldHVybiBhfUVpPUIoRWksXCJyYWFcIik7ZnVuY3Rpb24gRmkoYSxiKXtHaSgpO3JldHVybiBFaShhLkJjLGIpfUZpPUIoRmksXCJpbml0XCIpO1xuZnVuY3Rpb24gbWkoKXt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIiksYj1hLnF1ZXJ5U2VsZWN0b3IoXCIjc3NyYWQtbWFzdGVyXCIpLGM9YS5xdWVyeVNlbGVjdG9yQWxsKCdbaWRePVwic3NyYWQtbWFzdGVyLVwiXScpO2E9W107YiYmYS5wdXNoKGIpO2I9bihjKTtmb3IoYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpKGM9Yy52YWx1ZSkmJmEucHVzaChjKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIGVpKGEsYil7YT1uKGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJhXCIpKTtmb3IodmFyIGM9YS5uZXh0KCksZD17fTshYy5kb25lO2Q9e0NiOmQuQ2IsRGI6ZC5EYn0sYz1hLm5leHQoKSljPWMudmFsdWUsZC5DYj1UZChjLmhyZWYsZW5jb2RlVVJJQ29tcG9uZW50KGJbYi5uYW1lXS5yZXN1bHRzUGFnZVF1ZXJ5UGFyYW0pKSxkLkRiPVRkKGMuaHJlZixlbmNvZGVVUklDb21wb25lbnQoXCJhZmRUb2tlblwiKSksZC5DYiYmZC5EYj8oYy5zZXRBdHRyaWJ1dGUoXCJ0YXJnZXRcIixcIl9zZWxmXCIpLGMuaHJlZj1cIiNcIixjLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGZ1bmN0aW9uKGUpe3JldHVybiBlLnByZXZlbnREZWZhdWx0KCl9KSxpZyhjLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe2NkKFwicnNyY1wiLHtxOmUuQ2IscnNUb2tlbjplLkRiLHVpZDpEYXRlLm5vdygpfSxVYy5qKTtkZCgpfX0oZCkpKTpDLmxvZyhcIkNvdWxkIG5vdCBwYXJzZSBxdWVyeSBvciByc1Rva2VuIGZyb20gdXJsOiBcIitcbmMuaHJlZixcInJSSFdDXCIpfWVpPUIoZWksXCJyUkhXQ1wiKTtmdW5jdGlvbiBHaSgpe2NkKFwiaXRcIixkb2N1bWVudC50aXRsZSxUYy5qKTtkZCgpfUdpPUIoR2ksXCJzZXRUaXRsZVwiKTtcbmZ1bmN0aW9uIHBpKGEpe2Z1bmN0aW9uIGIoZCxlKXtyZXR1cm57dHlwZTpkLHRvdWNoZXM6ZX19ZnVuY3Rpb24gYyhkKXt2YXIgZT17fSxmO2ZvcihmIGluIGQpXCJ0YXJnZXRcIiE9PWYmJihlW2ZdPWRbZl0pO3JldHVybiBlfWEuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixmdW5jdGlvbihkKXt2YXIgZT1bXS5jb25jYXQoa2EoZC50b3VjaGVzKSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybiBjKGYpfSk7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShiKGQudHlwZSxlKSxcIipcIil9KTthLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIixmdW5jdGlvbihkKXt2YXIgZT1bXS5jb25jYXQoa2EoZC50b3VjaGVzKSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybiBjKGYpfSk7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShiKGQudHlwZSxlKSxcIipcIil9KTthLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLGZ1bmN0aW9uKGQpe3ZhciBlPVxuW10uY29uY2F0KGthKGQudG91Y2hlcykpLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gYyhmKX0pO3dpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoYihkLnR5cGUsZSksXCIqXCIpfSk7YS5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hjYW5jZWxcIixmdW5jdGlvbihkKXt2YXIgZT1bXS5jb25jYXQoa2EoZC50b3VjaGVzKSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybiBjKGYpfSk7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShiKGQudHlwZSxlKSxcIipcIil9KX1waT1CKHBpLFwicFRFVFBQXCIpO1xuZnVuY3Rpb24gaWkoYSl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIm1ldGFcIik7Yi5odHRwRXF1aXY9XCJvcmlnaW4tdHJpYWxcIjtiLmNvbnRlbnQ9XCJBNFRWRDBvRG9SVW5CWmdZRGROVkFSWUlQU21KZ3lTRXNZZFBBTlJycmdRN1FpdFBzT3R5MGVaSUJzamxIRkZKd0RGVS84UW1uUkYya0w1eGI0UlA5UTRBQUFDRWV5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwzZDNkeTVuYjI5bmJHVXVZMjl0T2pRME15SXNJbVpsWVhSMWNtVWlPaUpRY21sMllXTjVVMkZ1WkdKdmVFRmtjMEZRU1hNaUxDSmxlSEJwY25raU9qRTJPVFV4TmpjNU9Ua3NJbWx6VTNWaVpHOXRZV2x1SWpwMGNuVmxMQ0pwYzFSb2FYSmtVR0Z5ZEhraU9uUnlkV1Y5XCI7YS5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGIpfWlpPUIoaWksXCJhTkNPVFwiKTtcbmZ1bmN0aW9uIEJpKGEsYil7dmFyIGM9bnVsbDthPW4oYSk7Zm9yKHZhciBkPWEubmV4dCgpOyFkLmRvbmU7ZD1hLm5leHQoKSlpZihkPWQudmFsdWUsZC5oYXNBdHRyaWJ1dGUoXCJkYXRhLWlzLWV2XCIpJiYoZD1wYXJzZUludChkLmdldEF0dHJpYnV0ZShcImRhdGEtaXMtZXZcIiksMTApLG51bGw9PT1jfHxkPmMpKWM9ZDtudWxsIT09YyYmZmQoYitcIi5lVlwiLDE9PT1jKX1CaT1CKEJpLFwic0lFVkZTXCIpO2Z1bmN0aW9uIGRpKGEsYil7XCJ0cFwiaW4gYSYmY2QoYitcIi5wdHBcIixhLnRwLFVjLmopfWRpPUIoZGksXCJzUFRQXCIpO2Z1bmN0aW9uIEhpKGEsYil7dGhpcy5kYT1hO3RoaXMudWI9Yn1IaS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuZGEuSCgpK1wiIChvbmUgYnkgaXRzZWxmLCBvciBtdWx0aXBsZSBpbiBhbiBBcnJheVwiO3RoaXMudWImJihhKz1cIiB3aXRoIGZld2VyIHRoYW4gXCIrKHRoaXMudWIrMSkrXCIgZWxlbWVudHNcIik7cmV0dXJuIGErXCIpXCJ9O0hpLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe2E9QXJyYXkuaXNBcnJheShhKT9hOlthXTtpZih0aGlzLnViJiZhLmxlbmd0aD50aGlzLnViKXJldHVybiBudWxsO2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPXRoaXMuZGEuRChhW2NdKTtpZihudWxsPT1kKXJldHVybiBudWxsO2IucHVzaChkKX1yZXR1cm4gMD09Yi5sZW5ndGg/bnVsbDpifTtIaS5wcm90b3R5cGUuRz1mdW5jdGlvbihhKXthPXRoaXMuRChhKTtyZXR1cm4gbnVsbD09YXx8MT5hLmxlbmd0aD9udWxsOnRoaXMuZGEuRyhhWzBdKX07ZnVuY3Rpb24gSWkoKXt9SWkucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm5cInRydWUsIGZhbHNlXCJ9O0lpLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe3JldHVybiAwPT09YXx8MT09PWE/MT09PWE6XCJ0cnVlXCI9PWF8fFwib25cIj09YXx8MT09YT8hMDpcImZhbHNlXCI9PWF8fFwib2ZmXCI9PWF8fCExPT09YT8hMTpudWxsfTtJaS5wcm90b3R5cGUuRz1mdW5jdGlvbihhKXthPXRoaXMuRChhKTtyZXR1cm4gbnVsbD09YT9udWxsOmE/MTowfTt2YXIgUD1uZXcgSWk7ZnVuY3Rpb24gUShhLGIpe3RoaXMuS2E9TWF0aC5jZWlsKGEpO3RoaXMuSmE9TWF0aC5mbG9vcihiKX1RLnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuS2ErXCIgLSBcIit0aGlzLkphfTtRLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe2E9cGFyc2VJbnQoYSwxMCk7cmV0dXJuIGE+PXRoaXMuS2EmJmE8PXRoaXMuSmE/YTpudWxsfTtRLnByb3RvdHlwZS5HPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLkQoYSl9O2Z1bmN0aW9uIEppKCl7fUppLnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuXCJBIGZ1bmN0aW9uXCJ9O0ppLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhPyEwOiExfTtKaS5wcm90b3R5cGUuRz1mdW5jdGlvbigpe3JldHVybiBudWxsfTt2YXIgS2k9bmV3IEppO3ZhciBMaT0vIyguKSguKSguKS87ZnVuY3Rpb24gTWkoYSl7aWYoIU5pLnRlc3QoYSkpdGhyb3cgRXJyb3IoXCInXCIrYStcIicgaXMgbm90IGEgdmFsaWQgaGV4IGNvbG9yXCIpOzQ9PWEubGVuZ3RoJiYoYT1hLnJlcGxhY2UoTGksXCIjJDEkMSQyJDIkMyQzXCIpKTtyZXR1cm4gYS50b0xvd2VyQ2FzZSgpfXZhciBOaT0vXiMoPzpbMC05YS1mXXszfSl7MSwyfSQvaSxPaT0vXig/OnJnYik/XFwoKDB8WzEtOV1cXGR7MCwyfSksXFxzPygwfFsxLTldXFxkezAsMn0pLFxccz8oMHxbMS05XVxcZHswLDJ9KVxcKSQvaTt2YXIgUGk9e2JsYWNrOlwiIzAwMDAwMFwiLGJsdWU6XCIjMDAwMGZmXCIsZGFya29yYW5nZTpcIiNmZjhjMDBcIixkYXJrcmVkOlwiIzhiMDAwMFwiLGZ1Y2hzaWE6XCIjZmYwMGZmXCIsZ3JheTpcIiM4MDgwODBcIixncmVlbjpcIiMwMDgwMDBcIixncmV5OlwiIzgwODA4MFwiLG9yYW5nZTpcIiNmZmE1MDBcIixyZWQ6XCIjZmYwMDAwXCIscm95YWxibHVlOlwiIzQxNjllMVwiLHNreWJsdWU6XCIjODdjZWViXCIsd2hpdGU6XCIjZmZmZmZmXCIsd2hpdGVzbW9rZTpcIiNmNWY1ZjVcIix5ZWxsb3c6XCIjZmZmZjAwXCJ9O2Z1bmN0aW9uIFFpKGEpe3RoaXMuZWQ9YX1RaS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3ZhciBhPVwiQSBoZXhhZGVjaW1hbCBjb2xvciBzdHJpbmdcIjt0aGlzLmVkJiYoYSs9XCIgb3IgJ3RyYW5zcGFyZW50J1wiKTtyZXR1cm4gYX07XG5RaS5wcm90b3R5cGUuRD1mdW5jdGlvbihhKXt2YXIgYj1sYihcIlwiK2EpLnRvTG93ZXJDYXNlKCk7aWYodGhpcy5lZCYmXCJ0cmFuc3BhcmVudFwiPT1iKXJldHVyblwidHJhbnNwYXJlbnRcIjtpZihQaVtiXSlyZXR1cm4gUGlbYl07YT1udWxsO3RyeXthPU1pKFwiI1wiPT1iLmNoYXJBdCgwKT9iOlwiI1wiK2IpfWNhdGNoKHApe31pZighYSl0cnl7YTp7dmFyIGM9Yi5tYXRjaChPaSk7aWYoYyl7dmFyIGQ9TnVtYmVyKGNbMV0pLGU9TnVtYmVyKGNbMl0pLGY9TnVtYmVyKGNbM10pO2lmKDA8PWQmJjI1NT49ZCYmMDw9ZSYmMjU1Pj1lJiYwPD1mJiYyNTU+PWYpe3ZhciBnPVtkLGUsZl07YnJlYWsgYX19Zz1bXX1pZighZy5sZW5ndGgpdGhyb3cgRXJyb3IoYitcIiBpcyBub3QgYSB2YWxpZCBSR0IgY29sb3JcIik7dmFyIGg9Z1swXSxrPWdbMV0sbD1nWzJdO2g9TnVtYmVyKGgpO2s9TnVtYmVyKGspO2w9TnVtYmVyKGwpO2lmKGghPShoJjI1NSl8fGshPShrJjI1NSl8fGwhPShsJjI1NSkpdGhyb3cgRXJyb3IoJ1wiKCcrXG5oK1wiLFwiK2srXCIsXCIrbCsnXCIpIGlzIG5vdCBhIHZhbGlkIFJHQiBjb2xvcicpO2s9aDw8MTZ8azw8OHxsO2E9MTY+aD9cIiNcIisoMTY3NzcyMTZ8aykudG9TdHJpbmcoMTYpLnNsaWNlKDEpOlwiI1wiK2sudG9TdHJpbmcoMTYpfWNhdGNoKHApe31yZXR1cm4gYX07UWkucHJvdG90eXBlLkc9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07dmFyIFJpPW5ldyBRaSghMSksU2k9bmV3IFFpKCEwKTtmdW5jdGlvbiBUaShhKXt0aGlzLmRhPWF9VGkucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYS5IKCkrXCIgKG9uZSBvciBtb3JlLCBjb21tYSBzZXBhcmF0ZWQpXCJ9O1RpLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe2E9VWkoYSk7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9dGhpcy5kYS5EKGFbY10pO251bGwhPWQmJmIucHVzaChkKX1yZXR1cm4gMD09Yi5sZW5ndGg/bnVsbDpiLmpvaW4oXCIsXCIpfTtUaS5wcm90b3R5cGUuRz1mdW5jdGlvbihhKXthPVVpKGEpO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKXt2YXIgYz10aGlzLmRhLkcoYVtiXSk7aWYobnVsbCE9YylyZXR1cm4gY31yZXR1cm4gbnVsbH07ZnVuY3Rpb24gVWkoYSl7aWYoXCJzdHJpbmdcIiE9PXR5cGVvZiBhKXJldHVybltdO2E9YS5zcGxpdChcIixcIik7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKyliLnB1c2gobGIoYVtjXSkpO3JldHVybiBifTtmdW5jdGlvbiBWaShhLGIpe2I9dm9pZCAwPT09Yj8wOmI7dGhpcy5YYz1hO3RoaXMuWWM9e307Zm9yKGE9MDthPHRoaXMuWGMubGVuZ3RoO2ErKyl7dmFyIGM9dGhpcy5YY1thXTt0aGlzLlljW2MudG9Mb3dlckNhc2UoKV09bmV3IFdpKGMsYithKX19VmkucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YYy5qb2luKFwiLCBcIikrXCIgKGNhc2UgaW5zZW5zaXRpdmUpXCJ9O2Z1bmN0aW9uIFhpKGEsYil7aWYoIWJ8fFwic3RyaW5nXCIhPT10eXBlb2YgYilyZXR1cm4gWWk7Yj1iLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGEuWWMuaGFzT3duUHJvcGVydHkoYik/YS5ZY1tiXTpZaX1WaS5wcm90b3R5cGUuRD1mdW5jdGlvbihhKXtyZXR1cm4gWGkodGhpcyxhKS56Zn07VmkucHJvdG90eXBlLkc9ZnVuY3Rpb24oYSl7cmV0dXJuIFhpKHRoaXMsYSkuaWR9O2Z1bmN0aW9uIFdpKGEsYil7dGhpcy56Zj1hO3RoaXMuaWQ9Yn12YXIgWWk9bmV3IFdpKG51bGwsbnVsbCk7dmFyIFppPS9eXFxkK3B4JC9pLCRpPS9eXFxkKyUkLyxhaj0vXlswLTldK1xcLlswLTldezEsfSQvO2Z1bmN0aW9uIGJqKCl7fWJqLnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuXCJXaWR0aCBpbiBweCAoZS5nLiAnNTAwcHgnKSBvciAnYXV0bydcIn07YmoucHJvdG90eXBlLkQ9ZnVuY3Rpb24oYSl7dmFyIGI9Y2ooYSk7cmV0dXJuIG51bGwhPWI/YitcInB4XCI6XCJzdHJpbmdcIiE9PXR5cGVvZiBhfHxcImF1dG9cIiE9YSYmISRpLnRlc3QoYSk/bnVsbDphfTtiai5wcm90b3R5cGUuRz1mdW5jdGlvbihhKXtyZXR1cm4gY2ooYSl9O2Z1bmN0aW9uIGNqKGEpe3ZhciBiOyhiPVwibnVtYmVyXCI9PT10eXBlb2YgYSl8fChiPVwic3RyaW5nXCI9PT10eXBlb2YgYSYmKCEvW14wLTldLy50ZXN0KGEpfHxhai50ZXN0KGEpfHxaaS50ZXN0KGEpKSk7cmV0dXJuIGI/KGE9cGFyc2VJbnQoYSwxMCksaXNOYU4oYSk/bnVsbDphKTpudWxsfXZhciBkaj1uZXcgYmo7ZnVuY3Rpb24gZWooKXt9ZWoucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm5cIkEgc3RyaW5nXCJ9O2VqLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe3JldHVyblwic3RyaW5nXCI9PT10eXBlb2YgYT9hOm51bGx9O2VqLnByb3RvdHlwZS5HPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O3ZhciBmaj1uZXcgZWo7dmFyIGdqPS9eWzAtOWEtekEtWl0qJC87ZnVuY3Rpb24gaGooKXt9aGoucHJvdG90eXBlLkc9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07aGoucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm5cIkEgc3R5bGUgaWRcIn07aGoucHJvdG90eXBlLkQ9ZnVuY3Rpb24oYSl7cmV0dXJuKFwic3RyaW5nXCI9PT10eXBlb2YgYXx8XCJudW1iZXJcIj09PXR5cGVvZiBhJiYhTnVtYmVyLmlzTmFOKGEpKSYmZ2oudGVzdChhKT9cIlwiK2E6bnVsbH07ZnVuY3Rpb24gaWooKXt9aWoucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm5cIkFuIGh0dHAocykgdXJsXCJ9O2lqLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe3JldHVyblwic3RyaW5nXCI9PT10eXBlb2YgYSYmamoudGVzdChhKT9hOm51bGx9O2lqLnByb3RvdHlwZS5HPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O3ZhciBqaj0vXigoaHR0cHM/KTopP1xcL1xcLyhbYS16QS1aMC05fiFAI1xcJCZcXCpcXChcXClfXFwrXFwtPTo7JyxcXC5cXD9cXC8lXSopJC8sa2o9bmV3IGlqO3ZhciBsaj1uZXcgUSgyLDQwMCksbWo9bmV3IFEoMCw0MDApLG5qPW5ldyBRKDgsNTApLG9qPW5ldyBUaShuZXcgVmkoXCJ2ZXJkYW5hO2FyaWFsO3RhaG9tYTt0aW1lcyBuZXcgcm9tYW47Z2VvcmdpYTt0cmVidWNoZXQgbXM7bWVpcnlvO21zIGdvdGhpYztyb2JvdG87aGVsdmV0aWNhIG5ldWVcIi5zcGxpdChcIjtcIiksMSkpLHBqPW5ldyBUaShuZXcgVmkoW1wicmlnaHRcIixcImxlZnRcIixcInRvcFwiLFwiYm90dG9tXCJdKSksUj17fSxxaj0oUi5hZHNhZmU9e2c6bmV3IFZpKFtcIm9mZlwiLFwibG93XCIsXCJtZWRcIixcImhpZ2hcIl0pLHljOiEwfSxSLmFkdGVzdD17ZzpQLHljOiEwfSxSLmFkVGVzdD17ZzpQLHljOiEwfSxSLmNsaWNrdHJhY2tVcmw9e2c6bmV3IEhpKGtqKX0sUi5jb250YWluZXI9e2c6Zmp9LFIuc3R5bGVJZD17ZzpuZXcgaGp9LFIucGVyc29uYWxpemVkQWRzPXtnOlB9LFIucGVyc29uYWxpc2VkQWRzPXtnOlB9LFIuYWRwYWdlPXt9LFIuYWRQYWdlPXt9LFIuYWRzUmVzcG9uc2VDYWxsYmFjaz1cbnt9LFIuYmdyZXNwb25zZT17fSxSLmNoYW5uZWw9e30sUi5jbXBTZGtJZD17fSxSLmNvbnRhaW5lcj17fSxSLmNyZWY9e30sUi5jeD17fSxSLmRlYj17fSxSLmRlYnVnPXt9LFIuZG9tYWluTmFtZT17fSxSLmU9e30sUi5leHBmbGFncz17fSxSLmZha2VhZHM9e30sUi5mY2FwPXt9LFIuZmV4cD17fSxSLmZvcmNlRXg9e30sUi5nY3NjPXt9LFIuZ2RwckFwcGxpZXM9e30sUi5pZnJhbWVIZWlnaHRDYWxsYmFjaz17fSxSLmpzU3JjPXt9LFIubWFzdGVyTnVtYmVyPXt9LFIubXM9e30sUi5ub0FkTG9hZGVkQ2FsbGJhY2s9e30sUi5udW1iZXI9e30sUi5wcm9wZXJ0eUNvZGU9e30sUi5wdWJJZD17fSxSLnF1ZXJ5PXt9LFIucm9sZT17fSxSLnJvd2tleVYyPXt9LFIuc2JzaWduYWxzPXt9LFIuc2V0dGluZ3NJZD17fSxSLnNsYXZlTnVtYmVyPXt9LFIuc291cmNlPXt9LFIuc291cmNlX2lwPXt9LFIudGNTdHJpbmc9e30sUi51aWRlYj17fSxSLnVzZXJBZ2VudD17fSxSLnVzUHJpdmFjeT17fSxcblIudXVsZD17fSxSLnNjdD17fSxSLnNjX3N0YXR1cz17fSxSLmFkTG9hZGVkQ2FsbGJhY2s9e2c6S2l9LFIuYWRSZXF1ZXN0VXJsUGFyYW1zPXtnOmZqfSxSLmhsPXtnOmZqfSxSLmNwcD17fSxSLmFkZmlsaWF0ZVdwPXtnOmZqfSxSLmhvdHN3YXBzPXt9LFIpLFM9e30scmo9KFMuY29sb3JUZXh0PXtnOlJpLEM6ITAsQTohMH0sUy5jb2xvclRpdGxlTGluaz17ZzpSaSxDOiEwLEE6ITB9LFMuY29sb3JCb3JkZXI9e2c6UmksQzohMCxBOiEwfSxTLmNvbG9yQXR0cmlidXRpb249e2c6UmksQTohMH0sUy5mb250RmFtaWx5PXtnOm9qLEM6ITAsQTohMH0sUy5mb250RmFtaWx5QXR0cmlidXRpb249e2c6b2osQTohMH0sUy50aXRsZUJvbGQ9e2c6UCxDOiEwLEE6ITB9LFMucm9sbG92ZXJMaW5rQm9sZD17ZzpQLEM6ITAsQTohMH0sUy5yb2xsb3ZlckxpbmtDb2xvcj17ZzpSaSxDOiEwLEE6ITB9LFMucm9sbG92ZXJMaW5rQmFja2dyb3VuZENvbG9yPXtnOlJpLEM6ITAsQTohMH0sUy5yb2xsb3ZlckxpbmtVbmRlcmxpbmU9XG57ZzpQLEM6ITAsQTohMH0sUy5ub1RpdGxlVW5kZXJsaW5lPXtnOlAsQTohMH0sUy5hZEJvcmRlclNlbGVjdGlvbnM9e2c6cGosQTohMH0sUy5ib3JkZXJTZWxlY3Rpb25zPXtnOnBqLEE6ITB9LFMucG9zaXRpb249e2c6bmV3IFZpKFtcInRvcFwiLFwicmlnaHRcIixcImJvdHRvbVwiXSl9LFMuY3NlR29vZ2xlSG9zdGluZz17ZzpuZXcgVmkoW1wiZnVsbFwiLFwiaWZyYW1lXCIsXCJwYXJ0bmVyXCJdKX0sUy5hZEljb25Vcmw9e2c6a2osQTohMH0sUy5hZEljb25XaWR0aD17ZzpsaixBOiEwfSxTLmFkSWNvbkhlaWdodD17ZzpsaixBOiEwfSxTLmFkSWNvblNwYWNpbmdBYm92ZT17ZzptaixDOiEwLEE6ITB9LFMuYWRJY29uU3BhY2luZ0JlZm9yZT17ZzptaixBOiEwfSxTLmFkSWNvblNwYWNpbmdBZnRlcj17ZzptaixBOiEwfSxTLmFkSWNvblNwYWNpbmdCZWxvdz17ZzptaixBOiEwfSxTLmxpbmVIZWlnaHRUaXRsZT17ZzpuaixBOiEwfSxTLndhaXRGb3JBZHM9e2c6UH0sUy5oZWlnaHRDb25zdHJhaW5lZD1cbntnOlAsYmE6XCJoY1wifSxTLndpZHRoPXtnOmRqLGJhOlwid2lcIixDOiEwfSxTLmF0dHJpYnV0aW9uU3BhY2luZ0JlbG93PXtnOm5ldyBRKDAsNDApLEE6ITB9LFMucmVzdWx0c1BhZ2VCYXNlVXJsPXtnOmtqfSxTLmNvbHVtbnM9e2c6bmV3IFEoMSwyMCksYWE6MX0sUy5jb2x1bW5TcGFjaW5nPXtnOm5ldyBRKDIsMTAwKX0sUy5ob3Jpem9udGFsRmxvdz17ZzpQfSxTLmhvcml6b250YWxBbGlnbm1lbnQ9e2c6bmV3IFZpKFtcImNlbnRlclwiLFwibGVmdFwiLFwicmlnaHRcIl0pLGFhOlwibGVmdFwifSxTLnJlc3VsdHNQYWdlUXVlcnlQYXJhbT17ZzpmaixhYTpcInF1ZXJ5XCJ9LFMucnVybE92ZXJyaWRlPXtnOmZqfSxTLnRlcm1zPXtnOmZqfSxTLmt3PXtnOmZqfSxTLnJlZmVycmVyQWRDcmVhdGl2ZT17Zzpman0sUy5yZWxhdGVkU2VhcmNoUmVzdWx0Q2xpY2tlZENhbGxiYWNrPXtnOktpfSxTLnJlbGF0ZWRTZWFyY2hVc2VSZXN1bHRDYWxsYmFjaz17ZzpQfSxTLmFkc3R5bGU9e30sUy5hZmRUb2tlbj17fSxcblMuYXR0bWFzPXt9LFMuZ2NzPXt9LFMuZ2NzZV9uYz17fSxTLmdsPXt9LFMuZ2xwPXt9LFMuZ209e30sUy5ncj17fSxTLmllPXt9LFMubWF4VGVybUxlbmd0aD17fSxTLm1heFRvcD17fSxTLm1pblRvcD17fSxTLm51bVJlcGVhdGVkPXt9LFMub2U9e30sUy5xdWVyeUNvbnRleHQ9e30sUy5xdWVyeUxpbms9e30sUy5yZWZlcnJlcj17fSxTLnJlbGF0ZWRTZWFyY2hlcz17fSxTLnZpc2libGVVcmxzQ2FsbGJhY2s9e30sUyk7ZnVuY3Rpb24gc2ooKXt9c2oucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm5cIkEgd2ViIGZvbnRcIn07c2oucHJvdG90eXBlLkQ9ZnVuY3Rpb24oYSl7cmV0dXJuXCJzdHJpbmdcIiE9PXR5cGVvZiBhfHwvW15hLXpBLVowLTkgXS8udGVzdChhKT9udWxsOmF9O3NqLnByb3RvdHlwZS5HPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O3ZhciB0aj1uZXcgc2o7dmFyIHVqPW5ldyBRKDEwLGpkKSx2aj17fSx3aj0odmoudHlwZT17ZzpuZXcgVmkoW1wiYWRzXCIsXCJ0ZXh0YWRzXCIsXCJyZWxhdGVkc2VhcmNoXCIsXCJzZWFyY2hib3hcIixcImR5bmFtaWNcIl0pfSx2ai5saW5rVGFyZ2V0PXtnOm5ldyBWaShbXCJfdG9wXCIsXCJfYmxhbmtcIl0pLGFhOlwiX2JsYW5rXCIsQzohMH0sdmoudmVydGljYWxTcGFjaW5nPXtnOm5ldyBRKDIsMjQpfSx2ai5mb250U2l6ZVRpdGxlPXtnOlhkLEM6ITAsYWE6MTh9LHZqLmZvbnRTaXplQXR0cmlidXRpb249e2c6WGQsQzohMCxhYToxM30sdmopLFQ9e30seGo9KFQuY29sb3JBZFNlcGFyYXRvcj17ZzpSaSxBOiEwfSxULnJvbGxvdmVyQWRCYWNrZ3JvdW5kQ29sb3I9e2c6U2ksQzohMH0sVC5jb2xvckJhY2tncm91bmQ9e2c6U2ksQzohMH0sVC5oaWRlU2VhcmNoSW5wdXRCb3JkZXI9e2c6UH0sVC5oaWRlU2VhcmNoQnV0dG9uQm9yZGVyPXtnOlB9LFQuY29sb3JTZWFyY2hCb3g9e2c6U2l9LFQuY29sb3JTZWFyY2hCdXR0b249e2c6U2l9LFxuVC5jb2xvclNlYXJjaEJ1dHRvblRleHQ9e2c6U2l9LFQud2lkdGhTZWFyY2hJbnB1dD17ZzpuZXcgUSgxLDFFMyksQzohMH0sVC53aWR0aFNlYXJjaEJ1dHRvbj17ZzpuZXcgUSgxMDAsMUUzKSxDOiEwfSxULmZvbnRTaXplU2VhcmNoSW5wdXQ9e2c6dWp9LFQuZm9udFNpemVTZWFyY2hCdXR0b249e2c6dWp9LFQuaGVpZ2h0U2VhcmNoSW5wdXQ9e2c6bmV3IFEoMSw1MCl9LFQuaGVpZ2h0U2VhcmNoQnV0dG9uPXtnOm5ldyBRKDEsNTApfSxULmNvbG9yU2VhcmNoQnV0dG9uQm9yZGVyPXtnOlNpfSxULndpZHRoU2VhcmNoQnV0dG9uQm9yZGVyPXtnOm5ldyBRKDAsNSl9LFQucmFkaXVzU2VhcmNoSW5wdXRCb3JkZXI9e2c6bmV3IFEoMCwyMCl9LFQuYXR0cmlidXRpb25Cb2xkPXtnOlB9LFQuYXR0cmlidXRpb25VcHBlcmNhc2U9e2c6UH0sVC50aXRsZVVwcGVyY2FzZT17ZzpQfSxULndlYkZvbnRGYW1pbHk9e2c6dGp9LFQud2ViRm9udEZhbWlseUF0dHJpYnV0aW9uPXtnOnRqfSxULnVpT3B0aW1pemU9XG57ZzpQfSxULnVpX29wdGltaXplPXtnOlB9LFQuYWRCb3JkZXJXaWR0aD17ZzpuZXcgUSgwLDIwKX0sVC5yZWxhdGVkU2VhcmNoVGFyZ2V0aW5nPXtnOm5ldyBWaShhYihZZHx8W10pKX0sVC5kb21haW5SZWdpc3RyYW50PXt9LFQuZG9tYWluU2Vzc2lvblRva2VuPXt9LFQubGFuZ3VhZ2VDb2RlPXt9LFQucGFnZUxvYWRlZENhbGxiYWNrPXt9LFQuc2l6ZT17fSxULmhvc3RDaGFubmVsPXt9LFQuaG9zdFB1YklkPXt9LFQpLEJqPXt9O2dkKEJqLHFqKTtnZChCaixyaik7Z2QoQmosd2opO2dkKEJqLHhqKTtoZChCaixbW1wiY29udGFpbmVyXCJdLFwicm9sZVwiXSk7dmFyIENqPXtCYzpCan07dmFyIERqPXt9LEVqPShEai5yb2xsb3ZlckFkQmFja2dyb3VuZENvbG9yPXtnOlJpLEM6ITAsQTohMH0sRGouY29sb3JCYWNrZ3JvdW5kPXtnOlJpLEM6ITAsQTohMH0sRGoudmVydGljYWxTcGFjaW5nPXtnOm5ldyBRKDIsMzQpfSxEai50eXBlPXtnOm5ldyBWaShbXCJhZHNcIixcInJlbGF0ZWRzZWFyY2hcIl0pfSxEai5mb250U2l6ZVRpdGxlPXtnOlhkLEM6ITAsQTohMH0sRGouZm9udFNpemVBdHRyaWJ1dGlvbj17ZzpYZCxDOiEwLEE6ITB9LERqLmxpbmtUYXJnZXQ9e2c6bmV3IFZpKFtcIl90b3BcIixcIl9ibGFua1wiXSksYWE6XCJfdG9wXCIsQzohMH0sRGopLEZqPXt9O2dkKEZqLHFqKTtnZChGaixyaik7Z2QoRmosRWopO2hkKEZqLFtcInF1ZXJ5XCIsW1wiY29udGFpbmVyXCJdLFwicm9sZVwiXSk7dmFyIEdqPXt9LEhqPShHai5kaXNhYmxlQ2Fyb3VzZWw9e2c6UCxiYTpcImRjXCJ9LEdqLmVuYWJsZUludGVyYWN0aXZlPXtnOlAsYmE6XCJlaVwifSxHai5oZWlnaHQ9e2c6bmV3IFEoMCwxRTQpLGJhOlwiaGVcIn0sR2oubWVyY2hhbnRGaWx0ZXI9e30sR2oucHJpY2VDdXJyZW5jeT17fSxHai5wcmljZU1heD17fSxHai5wcmljZU1pbj17fSxHai5wcm9tb3RlZD17fSxHai50ZXN0Z2w9e30sR2oudGV4dENvbG9yUGFsZXR0ZT17fSxHai50aGVtZT17fSxHaiksSWo9e30sSmo9KElqLndpZHRoPXtnOm5ldyBRKDAsMUU0KSxiYTpcIndpXCJ9LElqLmxpbmtUYXJnZXQ9e2c6bmV3IFZpKFtcIl90b3BcIixcIl9ibGFua1wiXSksYWE6XCJfdG9wXCIsQzohMH0sSWoudHlwZT17ZzpuZXcgVmkoW1wicGxhc1wiXSl9LElqKSxLaj17fTtnZChLaixKaik7Z2QoS2oscWopO2dkKEtqLEhqKTtoZChLaixbW1wiY29udGFpbmVyXCJdLFtcImhlaWdodFwiXSxbXCJ3aWR0aFwiXSxcInF1ZXJ5XCIsXCJyb2xlXCJdKTt2YXIgTGo9e0JjOktqLFlhOlwicGxhc1wifTtmdW5jdGlvbiBNaigpe3ZhciBhPXdpbmRvdy5BRlNfQURfUkVRVUVTVF9SRVRVUk5fVElNRV87YSYmY2QoXCJpcnRcIixhK1wifFwiK0RhdGUubm93KCksVGMuaik7YT13aSh3aW5kb3cubmFtZSk7c3dpdGNoKChhW2EubmFtZV18fHt9KS50eXBlKXtjYXNlIFwicGxhc1wiOkZpKExqLGEpO2JyZWFrO2RlZmF1bHQ6RmkoQ2osYSl9c2V0VGltZW91dChmdW5jdGlvbigpe3RyeXt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInJlc3BvbnNlX2RlYnVnX291dHB1dFwiKTtpZihiKXt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIik7YyYmKGIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKSwwPT1jLmNoaWxkTm9kZXMubGVuZ3RoP2MuYXBwZW5kQ2hpbGQoYik6Yy5pbnNlcnRCZWZvcmUoYixjLmNoaWxkTm9kZXNbMF0pKX19Y2F0Y2goZCl7fX0sMCl9d2luZG93LklTX0dPT0dMRV9BRlNfSUZSQU1FXyYmTWooKTtmdW5jdGlvbiBOaihhLGIpe2I9dm9pZCAwPT09Yj97fTpiO3RoaXMuQ2E9YTt0aGlzLm1hPW51bGw7dGhpcy5BZD17fTt0aGlzLnFlPTA7dGhpcy5PYj1udWxsO3ZhciBjO3RoaXMudGltZW91dE1zPW51bGwhPShjPWIudGltZW91dE1zKT9jOjUwMH1zYShOaixoZyk7ZnVuY3Rpb24gT2ooYSl7dmFyIGI7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mKG51bGw9PShiPWEuQ2EpP3ZvaWQgMDpiLl9fdXNwYXBpKXx8bnVsbCE9YS5BYSgpfWZ1bmN0aW9uIFBqKGEsYil7dmFyIGM9e307aWYoT2ooYSkpe3ZhciBkPVdhKGZ1bmN0aW9uKCl7YihjKX0pO1FqKGEsZnVuY3Rpb24oZSxmKXtmJiYoYz1lKTtkKCl9KTtzZXRUaW1lb3V0KGQsYS50aW1lb3V0TXMpfWVsc2UgYihjKX1cbmZ1bmN0aW9uIFFqKGEsYil7dmFyIGM7XCJmdW5jdGlvblwiPT09dHlwZW9mKG51bGw9PShjPWEuQ2EpP3ZvaWQgMDpjLl9fdXNwYXBpKT8oYT1hLkNhLl9fdXNwYXBpLGEoXCJnZXRVU1BEYXRhXCIsMSxiKSk6YS5BYSgpJiYoUmooYSksYz0rK2EucWUsYS5BZFtjXT1iLGEubWEmJihiPXt9LGEubWEucG9zdE1lc3NhZ2UoKGIuX191c3BhcGlDYWxsPXtjb21tYW5kOlwiZ2V0VVNQRGF0YVwiLHZlcnNpb246MSxjYWxsSWQ6Y30sYiksXCIqXCIpKSl9TmoucHJvdG90eXBlLkFhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWE/dGhpcy5tYTp0aGlzLm1hPURoKHRoaXMuQ2EsXCJfX3VzcGFwaUxvY2F0b3JcIil9O1xuZnVuY3Rpb24gUmooYSl7YS5PYnx8KGEuT2I9ZnVuY3Rpb24oYil7dHJ5e3ZhciBjPShcInN0cmluZ1wiPT09dHlwZW9mIGIuZGF0YT9KU09OLnBhcnNlKGIuZGF0YSk6Yi5kYXRhKS5fX3VzcGFwaVJldHVybjt2YXIgZDtudWxsPT0oZD1hLkFkKXx8ZFtjLmNhbGxJZF0oYy5yZXR1cm5WYWx1ZSxjLnN1Y2Nlc3MpfWNhdGNoKGUpe319LEJoKGEuQ2EsXCJtZXNzYWdlXCIsYS5PYikpfTt2YXIgVGo9RShmdW5jdGlvbigpe3ZhciBhPSRiKFwidWF0bVwiKSxiPW51bGwhPWE/YTo1O2E9bmV3IE5qKHdpbmRvdyk7cmV0dXJuIE9qKGEpPyhhPVNqKGEpLFByb21pc2UucmFjZShbYSxyZShiLDQpXSkudGhlbihmdW5jdGlvbihjKXtyZXR1cm4gMj09PWM/e0FiOiExLGNhOmN9OjQ9PT1jPyhjb25zb2xlLndhcm4oXCJSZWFjaGVkXCIrYitcIm1zIHRpbWVvdXQgYW5kIGJlZm9yZSBVU1AgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkLlwiKSx7QWI6ITEsY2E6Y30pOjY9PT1jP3tBYjohMSxjYTpjfTp7QWI6ITAsY2E6Y319KSk6bnVsbH0sXCJnQ0FEXCIpO1xuZnVuY3Rpb24gU2ooYSl7ZnVuY3Rpb24gYihkKXtkJiZcInN0cmluZ1wiPT09dHlwZW9mIGQudXNwU3RyaW5nP2MucmVzb2x2ZShVaihkLnVzcFN0cmluZykpOmMucmVzb2x2ZSgzKX12YXIgYz1wZSgpO3RyeXtQaihhLGIpfWNhdGNoKGQpe2MucmVzb2x2ZSg2KSxjb25zb2xlLndhcm4oXCJVU1AgcmV0dXJuZWQgZXJyb3Igc3RhdHVzOiBcIitkKX1yZXR1cm4gYy5wcm9taXNlfWZ1bmN0aW9uIFVqKGEpe2lmKC9eWzEtOV1bbnlOWVxcLV1bbnlOWV1bbnlOWVxcLV0kLy50ZXN0KGEpKXt2YXIgYj1hLmNoYXJBdCgyKTtpZigvXll8eS8udGVzdChiKSlyZXR1cm4gMjtpZigvXk58bi8udGVzdChiKSlyZXR1cm4gMX1pZihcIjEtLS1cIj09PWEpcmV0dXJuIDU7Yj1cIjM6XCIrYTtjb25zb2xlLndhcm4oXCJDQ1BBIFVTIFByaXZhY3kgc3RyaW5nIFwiK2ErXCIgaXMgbWFsZm9ybWVkIGFuZCBwZXJzb25hbGl6YXRpb24gaW50ZW50IHdhcyB1bmFibGUgdG8gYmUgZmV0Y2hlZC5cIik7cmV0dXJuIGJ9O2Z1bmN0aW9uIFZqKCl7fVZqLnByb3RvdHlwZS5EYT1mdW5jdGlvbigpe3JldHVybiBvYygpfTtWai5wcm90b3R5cGUudWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBxYyh0aGlzLkRhKGEpK1wiL2Fmcy9hZHNcIil9O1ZqLnByb3RvdHlwZS54Yz1mdW5jdGlvbigpe3JldHVybiExfTtmdW5jdGlvbiBXaihhLGIsYyxkKXt0aGlzLk5kPWE7dGhpcy5UYj1iO3RoaXMuV2E9Yzt0aGlzLnlkPWQ7dGhpcy5LYj0hMTt0aGlzLmtjPTB9ZnVuY3Rpb24gWGooYSxiLGMsZCl7ZD12b2lkIDA9PT1kP3t9OmQ7YS5OZC0tO2EuS2I9YS5LYnx8YjtjPmEua2MmJihhLmtjPWMpO2lmKDA9PWEuTmQpaWYoYS5LYil7aWYoYS5XYSl7Yj12b2lkIDA7c3dpdGNoKGEua2Mpe2Nhc2UgMjpiPSEwO2JyZWFrO2Nhc2UgMTpiPSExfXRyeXthLldhKGEuVGIsITAsYixkKX1jYXRjaChlKXt9fX1lbHNle2lmKGEueWQpdHJ5e2EueWQoYS5UYiwhMSx2b2lkIDAsZCl9Y2F0Y2goZSl7fWlmKGEuV2EpdHJ5e2EuV2EoYS5UYiwhMSx2b2lkIDAsZCl9Y2F0Y2goZSl7fX19O2Z1bmN0aW9uIFlqKCl7aWYoeihcIl9hZnNSc0Nvb2tpZWxlc3NcIil8fHooXCJfc3dpdGNoR3dzUmVxdWVzdFRvVXNlQ29va2llbGVzc0RvbWFpblwiKXx8eihcIl9zd2l0Y2hHd3NSZXF1ZXN0VG9Vc2VDb29raWVsZXNzRG9tYWluQ2hyb21lXCIpfHx6KFwiX2VuYWJsZU1jbUV4cGVyaW1lbnRcIikpcmV0dXJuIDA7aWYoXCJudW1iZXJcIj09PXR5cGVvZiB2LmV4cGVyaW1lbnRJZF8pcmV0dXJuIHYuZXhwZXJpbWVudElkXzt2YXIgYT1cIm9iamVjdFwiPT09dHlwZW9mIHRlc3RpbmdEYXRhXz90ZXN0aW5nRGF0YV8uZXhwZXJpbWVudE1vZDokYihcInJzbVwiKXx8MDt2LmV4cGVyaW1lbnRJZF89MDtpZigwPT09YSlyZXR1cm4gdi5leHBlcmltZW50SWRfO3ZhciBiPVwib2JqZWN0XCI9PT10eXBlb2YgdGVzdGluZ0RhdGFfP3Rlc3RpbmdEYXRhXy50aW1lSWQ6KG5ldyBEYXRlKS5nZXRUaW1lKCkudG9TdHJpbmcoKSxjPVwib2JqZWN0XCI9PT10eXBlb2YgdGVzdGluZ0RhdGFfP3Rlc3RpbmdEYXRhXy5sYXllcklkOlxuMTczMDEyNzMsZD0zNzM1OTI4NTU5XmM7Y149MTEwMzU0Nzk5MTtmb3IodmFyIGU9MCxmO2U8Yi5sZW5ndGg7ZSsrKWY9Yi5jaGFyQ29kZUF0KGUpLGQ9TWF0aC5pbXVsKGReZiwyNjU0NDM1NzYxKSxjPU1hdGguaW11bChjXmYsMTU5NzMzNDY3Nyk7ZD1NYXRoLmltdWwoZF5kPj4+MTYsMjI0NjgyMjUwNyk7ZF49TWF0aC5pbXVsKGNeYz4+PjEzLDMyNjY0ODk5MDkpO2M9TWF0aC5pbXVsKGNeYz4+PjE2LDIyNDY4MjI1MDcpO2NePU1hdGguaW11bChkXmQ+Pj4xMywzMjY2NDg5OTA5KTtiPSg0Mjk0OTY3Mjk2KigyMDk3MTUxJmMpKyhkPj4+MCkpJTFFMztiPGE/di5leHBlcmltZW50SWRfPVwib2JqZWN0XCI9PT10eXBlb2YgdGVzdGluZ0RhdGFfP3Rlc3RpbmdEYXRhXy5leHBlcmltZW50SWQ6MTczMDEzNjg6Yj49MUUzLWEmJih2LmV4cGVyaW1lbnRJZF89XCJvYmplY3RcIj09PXR5cGVvZiB0ZXN0aW5nRGF0YV8/dGVzdGluZ0RhdGFfLmNvbnRyb2xJZDoxNzMwMTM2Nyk7cmV0dXJuIHYuZXhwZXJpbWVudElkX31cbjt2YXIgWmo9d2luZG93O2Z1bmN0aW9uIGFrKGEsYil7YSYmbnVsbCE9PWImJmIhPWIudG9wJiYoYj1iLnRvcCk7dHJ5e3JldHVybiBHZChifHx3aW5kb3cpLnJvdW5kKCl9Y2F0Y2goYyl7cmV0dXJuIG5ldyBCZCgtMTIyNDU5MzMsLTEyMjQ1OTMzKX19O2Z1bmN0aW9uIFUoYSxiLGMsZCxlLGYsZyxoLGssbCl7bD12b2lkIDA9PT1sP1tdOmw7dGhpcy5JPWE7dGhpcy5MYT10aGlzLnpiPXRoaXMueWI9MDt0aGlzLm9wdGlvbnM9e307dGhpcy5jb250YWluZXI9bnVsbDt0aGlzLmZhPXZvaWQgMD09PWs/MTprO3RoaXMuUWE9Yzt0aGlzLlY9aHx8W107dGhpcy56ZD1lfHxudWxsO3RoaXMuSGE9dGhpcy5sZD10aGlzLmFiPSExO3RoaXMuVz1uZXcgdWMobnVsbCk7dGhpcy5UYz10aGlzLnVhPXRoaXMuQmE9dGhpcy5LZD1cIlwiO3RoaXMucWI9dGhpcy5MPSExO3RoaXMuc2Q9XCJcIjt0aGlzLlphPW5ldyBxYyhcIlwiKTt0aGlzLmphPWw7dGhpcy5OYz10aGlzLnRhPXRoaXMubGI9MDt0aGlzLkRmPWQ7dGhpcy55YT1udWxsO3RoaXMuY2Q9W107dGhpcy5SPXt9O3RoaXMuaWE9dGhpcy50Yj1udWxsO3RoaXMucmMoYixmLGcsaCl9bT1VLnByb3RvdHlwZTtcbm0uVmI9ZnVuY3Rpb24oYSl7aWYodGhpcy5MKXJldHVyblwibjBcIjt2YXIgYj10aGlzLnpiLGM9dGhpcy55YixkPXRoaXMuTGE7bnVsbCE9YSYmKGIrPVwibWluVG9wXCJpbiBhP2EubWluVG9wOjAsYys9XCJtYXhUb3BcImluIGE/YS5tYXhUb3A6MCxkKz1cInJoc1wiaW4gYT9hLnJoczowKTtpZihjJiZiPmMpdGhyb3cgRGMoXCJDYW5ub3QgcmVxdWVzdCBtb3JlIG1pblRvcCBhZHMgdGhhbiBtYXhUb3AuXCIpO3JldHVybigwPGQ/XCJuXCIrZDpcIlwiKSsoMDxjP1wicFwiK2M6XCJcIikrKDA8Yj9cImFcIitiOlwiXCIpfTttLlliPWZ1bmN0aW9uKGEsYil7YT10aGlzLlQoYSk7YiYmMDxiLmxlbmd0aCYmKGIuc3BsaWNlKDAsMCxhKSxhPWIuam9pbihcInxcIikpO3JldHVybiBhfTttLlQ9ZnVuY3Rpb24oYSl7dGhpcy5MYT1hLm51bWJlcjt2YXIgYjt0aGlzLnlifHx0aGlzLnpiP2I9XCJwXCI6dGhpcy5MYSYmKGI9XCJuXCIpO3JldHVyblwiXCIrYisodGhpcy55Ynx8dGhpcy56Ynx8dGhpcy5MYXx8MCl9O20uTWQ9ZnVuY3Rpb24oKXt9O1xuZnVuY3Rpb24gYmsoKXt2YXIgYTtyZXR1cm4hKG51bGw9PShhPWRvY3VtZW50LmZlYXR1cmVQb2xpY3kpfHwhYS5hbGxvd3NGZWF0dXJlKFwiYXR0cmlidXRpb24tcmVwb3J0aW5nXCIpKX1cbm0uWmM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXt9O2Euc2V0dGluZ3NJZCYmIWEuc3R5bGVJZCYmKGEuc3R5bGVJZD1hLnNldHRpbmdzSWQpO2RlbGV0ZSBhLnNldHRpbmdzSWQ7YS5oYXNPd25Qcm9wZXJ0eShcInBlcnNvbmFsaXNlZEFkc1wiKSYmKGEuaGFzT3duUHJvcGVydHkoXCJwZXJzb25hbGl6ZWRBZHNcIik/YS5wZXJzb25hbGl6ZWRBZHM9YS5wZXJzb25hbGlzZWRBZHMmJmEucGVyc29uYWxpemVkQWRzOmEucGVyc29uYWxpemVkQWRzPWEucGVyc29uYWxpc2VkQWRzKTthLmhhc093blByb3BlcnR5KFwicGVyc29uYWxpemVkQWRzXCIpJiZkZWxldGUgYS5wZXJzb25hbGlzZWRBZHM7YS5yZWZlcnJlckFkQ3JlYXRpdmUmJihhLmt3P2NvbnNvbGUud2FybihcIkNhbm5vdCBzZXQgYm90aCByZWZlcnJlckFkQ3JlYXRpdmUgYW5kIGt3LCBpZ25vcmluZyByZWZlcnJlckFkQ3JlYXRpdmVcIik6YS5rdz1hLnJlZmVycmVyQWRDcmVhdGl2ZSxkZWxldGUgYS5yZWZlcnJlckFkQ3JlYXRpdmUpO2EuY21wU2RrSWQmJlxuIWEudGNTdHJpbmcmJihhLnRjU3RyaW5nPVwidGN1bmF2YWlsYWJsZVwiKTsxPT1hLmdkcHJBcHBsaWVzP2EuZ2RwckFwcGxpZXM9ITA6MD09YS5nZHByQXBwbGllcyYmKGEuZ2RwckFwcGxpZXM9ITEpO2lmKGEudXNQcml2YWN5KXt2YXIgZT1VaihhLnVzUHJpdmFjeSk7YS5jcHA9ZTsyPT09ZSYmKGQucGVyc29uYWxpemVkQWRzPSExKX0hMD09PWEucGxhc0luQ2Fyb3VzZWw/ZC5wbGFzSW5DYXJvdXNlbD0xOiExPT09YS5wbGFzSW5DYXJvdXNlbCYmKGQucGxhc0luQ2Fyb3VzZWw9MCk7XCJwbGFzXCI9PWEudHlwZSYmYS5zdHlsZUlkJiYodGhpcy5JLndpZHRoLnZjPSExLHRoaXMuSS5oZWlnaHQudmM9ITEpO2U9bihPYmplY3Qua2V5cyh0aGlzLkkpKTtmb3IodmFyIGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXtmPWYudmFsdWU7aWYodGhpcy5JW2ZdLnZjJiYoXCJxdWVyeVwiPT1mJiYobnVsbD09YVtmXXx8XCJcIj09YVtmXSl8fFwicXVlcnlcIiE9ZiYmIWFbZl0pKXRocm93IERjKFwiTWlzc2luZyBvcHRpb24gJ1wiK1xuZitcIicuXCIpO1widW5kZWZpbmVkXCIhPXR5cGVvZiBhW2ZdJiZudWxsIT1hW2ZdJiYoZFtmXT1hW2ZdKX1hLnJ1cmxPdmVycmlkZSYmKGNvbnNvbGUud2FybihcImFkdGVzdCBpcyBlbmFibGVkIHdoZW4gYW4gcnVybE92ZXJyaWRlIHZhbHVlIGlzIHByb3ZpZGVkXCIpLGQuYWR0ZXN0PVwib25cIik7aWYoZT1jZSh2LmxvY2F0aW9uLmhyZWYsXCJnb29nbGVfYWZzZXhwXCIpKWQuYWZzZXhwPWUsZC5hZHRlc3Q9XCJvblwiLGNvbnNvbGUud2FybihcImFkdGVzdCBpcyBlbmFibGVkIHdoZW4gZ29vZ2xlX2Fmc2V4cCBpcyB1c2VkXCIpO3RoaXMuTD1cIm1cIiE9YS5yb2xlO3RoaXMueGEoZCk7dGhpcy5MfHxjayhkKTtkLmFkTG9hZGVkQ2FsbGJhY2s9YS5hZExvYWRlZENhbGxiYWNrfHxhLmNhbGxiYWNrfHxudWxsO2Qub2U9ZC5vZXx8XCJVVEYtOFwiO2QuaWU9ZC5pZXx8XCJVVEYtOFwiO2QubnVtYmVyPWRrKGQubnVtYmVyKTtkLm1pblRvcD1kayhkLm1pblRvcCk7ZC5tYXhUb3A9ZGsoZC5tYXhUb3ApO2QuZmV4cD1cbihkLmZleHA/ZC5mZXhwK1wiLFwiOlwiXCIpKyhkLmdjc2M/XCIyMDYwNlwiOlwiMjE0MDRcIik7KGU9WmIoXCJjZWlcIixhYygpKXx8XCJcIikmJihkLmZleHArPVwiLFwiK2UpO1piKFwiamJkMVwiLGFjKCkpJiYoZC5mZXhwKz1cIiwxNzMwMTIxN1wiKTstMSE9dGhpcy5RYS5EYShkLnB1YklkKS5pbmRleE9mKFwiYWZzLmdvb2dsZXN5bmRpY2F0aW9uXCIpJiYoZC5mZXhwKz1cIiwxNzMwMTI0OFwiKTsxNzMwMTM2Nz09PVlqKCkmJihkLmZleHArPVwiLDE3MzAxMzY3XCIpOzE3MzAxMzY4PT09WWooKSYmKGQuZmV4cCs9XCIsMTczMDEzNjhcIik7dm9pZCAwIT1kLmZvcmNlRXgmJihcIk1vc3RMYXVuY2hlc1wiPT09ZC5mb3JjZUV4PyhkLmU9XCJNb3N0TGF1bmNoZXNcIixkZWxldGUgZC5mb3JjZUV4KTpkLmV8fChkLmU9XCJPbmx5Rm9yY2VkRXhwZXJpbWVudHNcIikpO2QuZ2NzYyYmXCJ0b3BcIj09YS5wb3NpdGlvbiYmKGQubWF4VG9wPWEubnVtYmVyLGQubnVtYmVyPW51bGwpO2QuZm9ybWF0PXRoaXMuTD90aGlzLlQoZCk6dGhpcy5ZYihkLFxuYik7dGhpcy5zZD1kLmZvcm1hdDtkLmFkcz10aGlzLlZiKGMpO2Qubm9jYWNoZT1bTWF0aC5mbG9vcigxRTMqTWF0aC5yYW5kb20oKSksRGF0ZS5ub3coKV0uam9pbihcIlwiKTtkLm51bT1cIjBcIjtkLm91dHB1dD10aGlzLlFhLmliKCk7aWYodGhpcy5RYS54YygpKXRyeXtkLmRvbWFpbk5hbWV8fChkLmRvbWFpbk5hbWU9d2luZG93LmRvY3VtZW50LmRvbWFpbiksZC5kb21haW5OYW1lPWQuZG9tYWluTmFtZS5zdWJzdHJpbmcoMCw4MCl9Y2F0Y2goZyl7fWVsc2UgZGVsZXRlIGQuZG9tYWluTmFtZTtkLmdjc2MmJihkLnNvdXJjZT1cImdjc2NcIik7ZC52PVwiM1wiO1wic3RyaW5nXCIhPT10eXBlb2YgZC5wdWJJZCYmKGQucHViSWQ9XCJcIitkLnB1YklkKTswPT1kLnB1YklkLmluZGV4T2YoXCJwYXJ0bmVyLVwiKSYmKGQucHViSWQ9ZC5wdWJJZC5zdWJzdHJpbmcoOCkpO1widW5kZWZpbmVkXCIhPT10eXBlb2YgZC5ob3N0UHViSWQmJihkLmhvc3RQdWJJZD1TdHJpbmcoZC5ob3N0UHViSWQpLnJlcGxhY2UoL15wYXJ0bmVyLS8sXG5cIlwiKSk7ZD1layhkKTshZC50aXRsZUJvbGR8fCEwIT09ZC50aXRsZUJvbGQmJjEhPWQudGl0bGVCb2xkP2QudGl0bGVCb2xkJiZkZWxldGUgZC50aXRsZUJvbGQ6ZC50aXRsZUJvbGQ9MTt0aGlzLk1kKGQpO3JldHVybiBkfTttLkRjPWZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM7Zm9yKGMgaW4gYSlhLmhhc093blByb3BlcnR5KGMpJiZjIGluIHRoaXMuSSYmdGhpcy5JW2NdLmJhJiZiLnB1c2goZmsoYVtjXSx0aGlzLklbY10pKTtyZXR1cm4gYi5qb2luKFwiXCIpfTttLndhPWZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZDtmb3IoZCBpbiBhKSEoYS5oYXNPd25Qcm9wZXJ0eShkKSYmZCBpbiB0aGlzLkkmJnRoaXMuSVtkXS5iYSl8fGQgaW4gYiYmYltkXT09YVtkXXx8Yy5wdXNoKGZrKGFbZF0sdGhpcy5JW2RdKSk7cmV0dXJuIGMuam9pbihcIlwiKX07XG5tLmNjPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gMT09PWYuZmF9KTtpZigwPT1kLmxlbmd0aClyZXR1cm4gdGhpcy53YShhLHt9KStcIi1cIjtjLnB1YklkPWEucHViSWQ7Yz1layhjKTtiPXRoaXMuRGMoYyk7dmFyIGU9W107ZS5wdXNoKHRoaXMud2EoYSxjKSk7YT1uKGQpO2ZvcihkPWEubmV4dCgpOyFkLmRvbmU7ZD1hLm5leHQoKSlkPWQudmFsdWUsZC5vcHRpb25zLnNsYXZlTnVtYmVyJiYwIT1kLm9wdGlvbnMuc2xhdmVOdW1iZXImJmUucHVzaCh0aGlzLndhKGQub3B0aW9ucyxjKSk7cmV0dXJuW2IsZS5qb2luKFwiLVwiKV0uam9pbihcIi1cIil9O2Z1bmN0aW9uIGdrKGEpe3JldHVybiBhLm9wdGlvbnMmJmEub3B0aW9ucy50eXBlP1wic2VhcmNoYm94XCI9PT1hLm9wdGlvbnMudHlwZTohMX1cbmZ1bmN0aW9uIGhrKGEpe3ZhciBiO3JldHVybiBudWxsIT0oYj1hLm9wdGlvbnMpJiZiLnR5cGU/XCJyZWxhdGVkc2VhcmNoXCI9PT1hLm9wdGlvbnMudHlwZTohMX1tLlhiPWZ1bmN0aW9uKGEsYil7dmFyIGM9L15bQS1aYS16XStbXFx3XFwtOlxcLl0qJC8sZD1bXTt0aGlzLnFifHxnayh0aGlzKXx8KGE9YS5jb250YWluZXIsZC5wdXNoKGMudGVzdChhKT9hOlwiXCIpKTtiPW4oYik7Zm9yKGE9Yi5uZXh0KCk7IWEuZG9uZTthPWIubmV4dCgpKWE9YS52YWx1ZSxnayhhKXx8MSE9PWEuZmF8fChhPWEub3B0aW9ucy5jb250YWluZXIsZC5wdXNoKGMudGVzdChhKT9hOlwiXCIpKTtyZXR1cm4gZC5qb2luKFwifFwiKX07XG5tLmRjPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuUWEudWQoYS5wdWJJZCk7dGhpcy5MYihhLGIpOzM9PXdpbmRvdy5nb29nbGVBbHRMb2FkZXI/QShiLFwiYnNsXCIsOCk6ND09d2luZG93Lmdvb2dsZUFsdExvYWRlciYmQShiLFwiYnNsXCIsMTApO0EoYixcInBhY1wiLGlrKGEpKTtpZighdGhpcy5MKXt2YXIgYz12b2lkIDA9PT1jP3dpbmRvdzpjO3ZhciBkPXZvaWQgMD09PWQ/ZG9jdW1lbnQ6ZDt2YXIgZT12b2lkIDA9PT1lP25ldyBEYXRlOmU7dmFyIGY9YztmPXZvaWQgMD09PWY/Wmo6Zjt0cnl7dmFyIGc9Zi5oaXN0b3J5Lmxlbmd0aH1jYXRjaChsKXtnPTB9QShiLFwidV9oaXNcIixnKTtBKGIsXCJ1X3R6XCIsLWUuZ2V0VGltZXpvbmVPZmZzZXQoKSk7QShiLFwiZHRcIixlLmdldFRpbWUoKSk7QShiLFwidV93XCIsYy5zY3JlZW4ud2lkdGgpO0EoYixcInVfaFwiLGMuc2NyZWVuLmhlaWdodCk7ZT1hayghMCxjKTtBKGIsXCJiaXdcIixlLndpZHRoKTtBKGIsXCJiaWhcIixlLmhlaWdodCk7Yy50b3AhPWMmJihlPVxuYWsoITEsYyksQShiLFwiaXN3XCIsZS53aWR0aCksQShiLFwiaXNoXCIsZS5oZWlnaHQpKTtkLmJvZHk/KGU9IWMuc2Nyb2xsWSYmXCJDU1MxQ29tcGF0XCIhPWQuY29tcGF0TW9kZSxkPW5ldyBCZChlP2QuYm9keS5zY3JvbGxXaWR0aDpkLmJvZHkub2Zmc2V0V2lkdGgsZT9kLmJvZHkuc2Nyb2xsSGVpZ2h0OmQuYm9keS5vZmZzZXRIZWlnaHQpKTpkPW5ldyBCZCgtMSwtMSk7QShiLFwicHN3XCIsZC53aWR0aCk7QShiLFwicHNoXCIsZC5oZWlnaHQpO2lmKGMudG9wPT1jKXZhciBoPTA7ZWxzZXtjPWMudG9wO3RyeXt2YXIgaztpZihrPSEhYyYmbnVsbCE9Yy5sb2NhdGlvbi5ocmVmKWI6e3RyeXttZChjLmZvbyk7az0hMDticmVhayBifWNhdGNoKGwpe31rPSExfWg9a31jYXRjaChsKXtoPSExfWg9aD8xOjJ9QShiLFwiZnJtXCIsaCl9QShiLFwiY2xcIiw1Nzk5Njc4NjIpO0EoYixcInVpb1wiLHRoaXMuS2QpO0EoYixcImNvbnRcIix0aGlzLlhiKHRoaXMub3B0aW9ucyx0aGlzLlYpKTtBKGIsXCJqc3ZcIiwoNTc5OTY3ODYyKS50b1N0cmluZygpLFxuITApO2EucnVybE92ZXJyaWRlP0EoYixcInJ1cmxcIixhLnJ1cmxPdmVycmlkZSwhMCk6KGg9d2luZG93LmxvY2F0aW9uLmhyZWYsMD09aC5pbmRleE9mKFwiYWJvdXQ6XCIpJiZ3aW5kb3cubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zJiZ3aW5kb3cubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zLmxlbmd0aCYmMDx3aW5kb3cubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zLmxlbmd0aCYmKGg9d2luZG93LmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2luc1swXSksQShiLFwicnVybFwiLGgsITApKTtBKGIsamsucmVmZXJlcixkb2N1bWVudC5yZWZlcnJlciwhMCk7YS5yZWZlcnJlciYmQShiLFwib3B0cmVmXCIsYS5yZWZlcnJlciwhMCk7dm9pZCAwIT09T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkb2N1bWVudCxcInJlZmVycmVyXCIpJiYoYT10aGlzLlcsaD13YyhhKSxBKGgsXCJwYnRcIixcInJpXCIpLEEoaCxcImVtc2dcIixcInJtXCIpLGEuaGEocmMoaCkpKTtBKGIsXCJqc2lkXCIsXCJjYWZcIik7bGMoKSYmYmsoKSYmXG5BKGIsXCJuZnBcIixcIjFcIik7cmV0dXJuIGJ9O20uTGI9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMgaW4gYSlpZihhLmhhc093blByb3BlcnR5KGMpJiZqay5oYXNPd25Qcm9wZXJ0eShjKSl7dmFyIGQ9amtbY10sZT1hW2NdO1wiY2xrd2RcIj09ZCYmKGU9XCJ0XCIpO1widHlwZVwiPT1kJiYoZT1WZFthW2NdXSk7XCJkb21haW5TZXNzaW9uVG9rZW5cIj09YyYmXCJhZmRUb2tlblwiaW4gYSYmZD09amsuYWZkVG9rZW58fEEoYixkLGUpfX07bS5GPWZ1bmN0aW9uKCl7dmFyIGE9W107XCJtXCI9PXRoaXMub3B0aW9ucy5yb2xlfHx2b2lkIDA9PT10aGlzLm9wdGlvbnMuc2xhdmVOdW1iZXI/YS5wdXNoKFwibWFzdGVyXCIpOihhLnB1c2goXCJzbGF2ZVwiKSxhLnB1c2godGhpcy5vcHRpb25zLnNsYXZlTnVtYmVyKSk7Mj09dGhpcy5mYT9hLnB1c2goXCJhXCIpOjM9PXRoaXMuZmEmJmEucHVzaChcImJcIik7YS5wdXNoKHRoaXMub3B0aW9ucy5tYXN0ZXJOdW1iZXIpO3JldHVybiBhLmpvaW4oXCItXCIpfTtcbm0ucGM9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9e307ZS5uYW1lPWI7YT1jLmNvbmNhdChbYV0pO2I9ZC5jb25jYXQoW2JdKTtmb3IoZD0wO2Q8YS5sZW5ndGg7ZCsrKXtjPWJbZF07dmFyIGY9dm9pZCAwLGc9YVtkXSxoPXRoaXMuSSxrPXt9O2ZvcihmIGluIGgpaWYoaC5oYXNPd25Qcm9wZXJ0eShmKSYmIWhbZl0ueWMpe3ZhciBsPWdbZl0scD1oW2ZdLmFhO1widW5kZWZpbmVkXCI9PXR5cGVvZiBsfHxcImNvbnRhaW5lclwiPT1mJiZcIm9iamVjdFwiPT10eXBlb2YgbD9cInVuZGVmaW5lZFwiIT10eXBlb2YgcCYmKGtbZl09cCk6a1tmXT1sfWVbY109a31yZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9O1xubS5uYz1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLmxiPURhdGUubm93KCk7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSkmJkMubG9nKFwiaWZyYW1lOiBcIithK1wiLiBwdWJJZDogXCIrZCtcIi4gXCIsXCJkSVwiKTtkPUpkKGRvY3VtZW50LFwiSUZSQU1FXCIpO2QuZnJhbWVCb3JkZXI9XCIwXCI7ZC5tYXJnaW5XaWR0aD1cIjBcIjtkLm1hcmdpbkhlaWdodD1cIjBcIjtkLnZzcGFjZT0wO2QuaHNwYWNlPTA7ZC5zZXRBdHRyaWJ1dGUoXCJhbGxvd1RyYW5zcGFyZW5jeVwiLFwidHJ1ZVwiKTtkLnNjcm9sbGluZz1cIm5vXCI7ZC5zdHlsZS52aXNpYmlsaXR5PVwiaGlkZGVuXCI7ZC53aWR0aD1cIjEwMCVcIjtkLnN0eWxlLmhlaWdodD1cIjBweFwiO2Quc3R5bGUuZGlzcGxheT1cImJsb2NrXCI7ZC5uYW1lPWI7ZC5pZD1hO2Quc3JjPWM7ZWUoKT8oZC5kYXRhc2V0Lm9ic2VydmU9dGhpcy5vcHRpb25zLm1hc3Rlck51bWJlcix0aGlzLkx8fChkLnNldEF0dHJpYnV0ZShcImRhdGEtYWQtc3JjXCIsYyksZC5zcmM9XCJhYm91dDpibGFua1wiKSk6dGhpcy50YT1cbnRoaXMubGI7Mj09PXRoaXMuZmEmJjE8PXRoaXMuY29udGFpbmVyLmNoaWxkRWxlbWVudENvdW50P3RoaXMuY29udGFpbmVyLmluc2VydEJlZm9yZShkLHRoaXMuY29udGFpbmVyLmNoaWxkcmVuWzBdKToxPT09dGhpcy5mYSYmMj09PXRoaXMuY29udGFpbmVyLmNoaWxkRWxlbWVudENvdW50P3RoaXMuY29udGFpbmVyLmluc2VydEJlZm9yZShkLHRoaXMuY29udGFpbmVyLmNoaWxkcmVuWzFdKTp0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZChkKTt0cnl7ZC5jb250ZW50V2luZG93Lm5hbWU9Yn1jYXRjaChlKXt9dygpLmRhdGEuaWNlbGFlJiZiaygpJiZkLnNldEF0dHJpYnV0ZShcImFsbG93XCIsXCJhdHRyaWJ1dGlvbi1yZXBvcnRpbmdcIik7cmV0dXJuIGR9O1xubS5SYj1mdW5jdGlvbihhKXt2YXIgYj13aW5kb3cuaW5uZXJXaWR0aDx3aW5kb3cuaW5uZXJIZWlnaHQ7aWYodGhpcy5IYSYmIWJ8fCF0aGlzLkhhJiZiKXt0aGlzLkhhPWI7dHJ5e2EuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShcIm9yaWVudGF0aW9uOlwiKyh0aGlzLkhhP1wicG9ydHJhaXRcIjpcImxhbmRzY2FwZVwiKSxcIipcIil9Y2F0Y2goYyl7fX19O20ucWM9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpcyxmPXRoaXMubmMoYSxiLGMsZCk7dGhpcy5MfHwodGhpcy51YyhmKSx0aGlzLkhhPXdpbmRvdy5pbm5lcldpZHRoPHdpbmRvdy5pbm5lckhlaWdodCx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuUmIoZil9KSl9O1xubS5FYz1mdW5jdGlvbigpe3ZhciBhPXt9LGI7Zm9yKGIgaW4gdGhpcy5vcHRpb25zKXRoaXMub3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShiKSYmKGFbYl09dGhpcy5vcHRpb25zW2JdKTthLmFkcz1cIm4wXCI7YVtcIlwiXT1cIlwiO2Euc2xhdmVOdW1iZXI9XCIwXCI7YS5yb2xlPVwic1wiO2E9a2sodGhpcy5JLGEsRGF0ZS5ub3coKSx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsMSx0aGlzLmphKTtZW2EuRigpXT1hO3RoaXMuVi5zcGxpY2UoMCwwLGEpO2E9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO2Euc3R5bGUuaGVpZ2h0PVwiMHB4XCI7YS5zdHlsZS52aXNpYmlsaXR5PVwiaGlkZGVuXCI7dGhpcy5vcHRpb25zLmNvbnRhaW5lcj1hO3RoaXMucWI9dGhpcy5vcHRpb25zLnByZWxvYWQ9ITA7dGhpcy5qYT1bXX07XG5tLnJjPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMub3B0aW9ucz10aGlzLlpjKGEsYixjLGQpO3RoaXMuVy5jbGllbnQ9dGhpcy5vcHRpb25zLnB1YklkO3RoaXMuVy5HYj10aGlzLm9wdGlvbnMuc3R5bGVJZHx8XCJcIjsheihcIl9mb3JjZUpzUHJlbG9hZEZvckRlYnVnZ2luZ1wiKSYmdGhpcy5mYigpfHx0aGlzLkx8fCFkb2N1bWVudC5ib2R5fHx0aGlzLkVjKCk7dGhpcy5LZD1udWxsPT10aGlzLnpkP1wiXCI6dGhpcy5jYyh0aGlzLm9wdGlvbnMsdGhpcy5WLHRoaXMuemQpO3RoaXMudWE9dGhpcy5CYT10aGlzLkYoKTt0aGlzLlphLmZjPWVuY29kZVVSSSh0aGlzLkJhKTtpZigxPT09dGhpcy5mYSYmIXooXCJfZW5hYmxlVW5pZmllZE11ZHNraXBwZXJJZnJhbWVcIikpZm9yKHRoaXMueWE9bmV3IFdqKHRoaXMuamEubGVuZ3RoKzEsdGhpcy5vcHRpb25zLmNvbnRhaW5lcix0aGlzLm9wdGlvbnMuYWRMb2FkZWRDYWxsYmFjayx0aGlzLm9wdGlvbnMubm9BZExvYWRlZENhbGxiYWNrKSxhPW4odGhpcy5qYSksXG5iPWEubmV4dCgpOyFiLmRvbmU7Yj1hLm5leHQoKSliLnZhbHVlLnlhPXRoaXMueWE7aWYoIXRoaXMuTCl7dmMoKS5jbGllbnQ9dGhpcy5vcHRpb25zLnB1YklkO3ZjKCkuR2I9dGhpcy5vcHRpb25zLnN0eWxlSWR8fFwiXCI7YT1bXTtiPVtdO2ZvcihjPTA7Yzx0aGlzLlYubGVuZ3RoO2MrKylhLnB1c2godGhpcy5WW2NdLkYoKSksYi5wdXNoKHRoaXMuVltjXS5vcHRpb25zKTt0aGlzLnVhPXRoaXMucGModGhpcy5vcHRpb25zLHRoaXMuQmEsYixhKX19O1xubS5jYj1mdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1wZSgpLGM9RShmdW5jdGlvbigpe2lmKCFhLmZiKCkpcmV0dXJuITE7YS5GYihhLm9wdGlvbnMuY29udGFpbmVyKTtpZihhLm9wdGlvbnMud2lkdGgmJiFhLnFiKXtpZihcInBsYXNcIj09YS5vcHRpb25zLnR5cGUmJnZvaWQgMCE9YS5JLndpZHRoJiZudWxsPT1hLkkud2lkdGguZy5EKGEub3B0aW9ucy53aWR0aCkpdGhyb3cgRGMoXCJ3aWR0aCBcIithLm9wdGlvbnMud2lkdGgrXCIgaXMgaW52YWxpZC5cIik7XCJhdXRvXCI9PWEub3B0aW9ucy53aWR0aD9hLmNvbnRhaW5lci5zdHlsZS53aWR0aD1cIjEwMCVcIjpsayhhLm9wdGlvbnMud2lkdGgpJiYoYS5jb250YWluZXIuc3R5bGUud2lkdGg9YS5vcHRpb25zLndpZHRoKX1mb3IodmFyIGY9bihbXS5jb25jYXQoYS5qYSxhKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe2c9Zy52YWx1ZTtnLkZiKGEub3B0aW9ucy5jb250YWluZXIpO3ZhciBoPWcuUWEuRGEoYS5vcHRpb25zLnB1YklkKTtcbmg9bmV3IHFjKGgrXCIvYWZzL2Fkcy9pL2lmcmFtZS5odG1sXCIpO2cuWmE9KGcuTD9oOm51bGwpfHxnLmRjKGcub3B0aW9ucyk7Zy5UYz1yYyhnLlphKX1pZighYS5MJiZhLm9wdGlvbnMuaGFzT3duUHJvcGVydHkoXCJ0Y1N0cmluZ1wiKSYmMDxhLm9wdGlvbnMudGNTdHJpbmcubGVuZ3RoJiYhYS5UYy5pbmNsdWRlcyhqay50Y1N0cmluZytcIj1cIikpdGhyb3cgeWMoYS5XLFwidGxcIixcIlRDIHN0cmluZyBvZiBsZW5ndGggXCIrYS5vcHRpb25zLnRjU3RyaW5nLmxlbmd0aCtcIiBkb2VzIG5vdCBmaXQgaW4gVVJMXCIpLERjKFwiQSB0cmFuc3BhcmVuY3kgY29uc2VudCBzdHJpbmcgd2FzIGNvbGxlY3RlZCBidXQgaXMgdG9vIGxvbmcgdG8gZml0IGluIHRoZSBDU0EgYWQgcmVxdWVzdCBVUkwuIE5vIGFkcyBhcmUgYmVpbmcgcmVxdWVzdGVkLlwiKTthLmNvbnRhaW5lci50ZXh0Q29udGVudD1cIlwiO2lmKCF6KFwiX2VuYWJsZVVuaWZpZWRNdWRza2lwcGVySWZyYW1lXCIpKWZvcihmPW4oYS5qYSksZz1mLm5leHQoKTshZy5kb25lO2c9XG5mLm5leHQoKSlnLnZhbHVlLndiKCk7YS53YigpO2IucmVzb2x2ZShhKTtyZXR1cm4hMH0sXCJjSV9tQVwiKTtpZighYygpKXZhciBkPURhdGUubm93KCksZT13aW5kb3cuc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZihjKCkpY2xlYXJJbnRlcnZhbChlKTtlbHNlIGlmKDZFNDxEYXRlLm5vdygpLWQpdGhyb3cgY2xlYXJJbnRlcnZhbChlKSxEYygnY29udGFpbmVyIFwiJythLm9wdGlvbnMuY29udGFpbmVyKydcIiBkb2VzIG5vdCBleGlzdC4nKTt9LDUpO3JldHVybiBiLnByb21pc2V9O20ud2I9ZnVuY3Rpb24oKXt0aGlzLlphJiZ0aGlzLnFjKHRoaXMuQmEsdGhpcy51YSx0aGlzLlRjLHRoaXMub3B0aW9ucy5wdWJJZCl9O20uVmM9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcztpZih0aGlzLmxkKXt2YXIgYz10aGlzLkYoKSxkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGMpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gYi5FYihkLGMsYSwhMCl9LDE1MDApfX07XG5tLnVjPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1cIlwiK3RoaXMub3B0aW9ucy5tYXN0ZXJOdW1iZXIsZD1uZXcgTmMoYyxhKTtGKGQsXCJhRC5cIitjLEcuaixtayk7RihkLFwicWlcIixUYy5qLGZ1bmN0aW9uKGcsaCxrLGwpe2c9bihbXS5jb25jYXQoYi5WLGIpKTtmb3IoaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpaC52YWx1ZS5XLktjPWx8fFwiXCJ9KTtGKGQsXCJlYXdwXCIsVGMuaik7RihkLFwiaXRcIixUYy5qLGZ1bmN0aW9uKGcsaCxrLGwpe2EudGl0bGU9bH0pO0YoZCxcIi5hQ1NcIixTYy5qLGZ1bmN0aW9uKGcsaCxrLGwpe25rKGIsbCl9KTtGKGQsXCJzLmJcIixHLmosdGhpcy5BYy5iaW5kKHRoaXMpKTtGKGQsXCJzLmFEVUxUXCIsRy5qKTtGKGQsXCJzLmZMXCIsRy5qKTtGKGQsXCJzLnRNXCIsRy5qKTtGKGQsXCJzLm5SXCIsRy5qKTtGKGQsXCJzLmlTSVwiLEcuaik7RihkLFwicy5lQ1wiLFNjLmopO3ZhciBlPW51bGw7dGhpcy5xYnx8KGU9dGhpcy5GKCksRihkLGUrXCIuaEFcIixHLmosb2spLEYoZCxlK1wiLmZzXCIsXG5VYy5qLHBrKSxGKGQsZStcIi53XCIsU2MuaixmdW5jdGlvbihnLGgsayxsKXtxayhnLGgsayxsKX0pLEYoZCxlK1wiLmFDXCIsU2MuaikpO0YoZCxcInYuXCIrYyxUYy5qLHJrKTt2YXIgZj10aGlzLm9wdGlvbnMucmVsYXRlZFNlYXJjaFJlc3VsdENsaWNrZWRDYWxsYmFjazt0aGlzLm9wdGlvbnMucmVsYXRlZFNlYXJjaFVzZVJlc3VsdENhbGxiYWNrJiZmJiZGKGQsXCJyc3JjXCIsVWMuaixmdW5jdGlvbihnLGgsayxsKXt0cnl7ZihsLnEsbC5yc1Rva2VuKX1jYXRjaChwKXt9fSk7Yz1uKHRoaXMuVik7Zm9yKGU9Yy5uZXh0KCk7IWUuZG9uZTtlPWMubmV4dCgpKWU9ZS52YWx1ZS5GKCksRihkLGUrXCIuaEFcIixHLmosb2spLEYoZCxlK1wiLmZzXCIsVWMuaixwayksRihkLGUrXCIuYUNcIixTYy5qKX07XG5mdW5jdGlvbiBuayhhLGIpe2EudGI9YjtpZighYS5pYSl7dmFyIGM9W1wibW91c2Vtb3ZlXCIsXCJtb3VzZWRvd25cIixcInNjcm9sbFwiLFwia2V5ZG93blwiLFwidG91Y2hzdGFydFwiXTthLmlhPWZ1bmN0aW9uKCl7aWYoYS50Yil7dmFyIGU9RGF0ZS5ub3coKS1hLnRiO2lmKGU8PSgkYihcIm1kcFwiKXx8MCkpe3ZhciBmPWEuVyxnPXdjKGYpO0EoZyxcInBidFwiLFwiY2RcIik7QShnLFwiY3NhY2RcIixlKTtmLmhhKHJjKGcpKTthLnRiPW51bGx9fWlmKGEuaWEpe2U9bihjKTtmb3IoZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKGYudmFsdWUsYS5pYSk7YS5pYT1udWxsfX07Yj1uKGMpO2Zvcih2YXIgZD1iLm5leHQoKTshZC5kb25lO2Q9Yi5uZXh0KCkpZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKGQudmFsdWUsYS5pYSl9fVxubS5BYz1mdW5jdGlvbihhLGIpe2lmKChiPVlbXCJtYXN0ZXItXCIrYl0pJiZiLm9wdGlvbnMmJmIub3B0aW9ucy5wYWdlTG9hZGVkQ2FsbGJhY2spe3ZhciBjPVBjKGEsXCJzLmJcIiksZD17fTtpZihjKXt2YXIgZT1hLkJbXCJzLmVDXCJdLnZhbHVlO2UmJihkLmVycm9yX2NvZGU9ZSk7UGMoYSxcInMuZkxcIikmJihkLmZhaWxsaXN0ZWQ9ITAsUGMoYSxcInMudE1cIik/ZC5mYWlsbGlzdFJlYXNvbj1cInRyYWRlbWFya1wiOmQuZmFpbGxpc3RSZWFzb249XCJvdGhlclwiKX1lbHNle2U9ZGUoc2subG9jYXRpb24uaHJlZik7dmFyIGY9Yi5vcHRpb25zLnB1YklkfHxcIlwiLGc9Zi5pbmRleE9mKFwiZHAtXCIpO2Y9MD5nP1wiXCI6MD09Zz9cInBhcnRuZXItXCIrZjowPT1mLmluZGV4T2YoXCJwYXJ0bmVyLWRwLVwiKXx8MD09Zi5pbmRleE9mKFwiY2EtZHAtXCIpP1wicGFydG5lci1cIitmLnN1YnN0cihnKTpcIlwiO2QuY2xpZW50PWY7XCIxXCI9PWUuc2VhcmNoJiYoZC51c2VyX3NlYXJjaD0hMCk7ZS5xdWVyeSYmKGQucXVlcnk9ZS5xdWVyeSl9ZC5hZHVsdD1cbiEhUGMoYSxcInMuYURVTFRcIik7UGMoYSxcInMublJcIikmJihkLm5lZWRzcmV2aWV3PSEwKTtQYyhhLFwicy5pU0lcIikmJihkLmludmFsaWRfc3R5bGVfaWQ9ITApO3RoaXMuUi5jYWZSZXF1ZXN0QWNjZXB0ZWQ9IWMmJiFkLm5lZWRzcmV2aWV3O3RoaXMuUi5jYWZTdGF0dXM9ZDt0cnl7Yi5vcHRpb25zLnBhZ2VMb2FkZWRDYWxsYmFjayh0aGlzLlIuY2FmUmVxdWVzdEFjY2VwdGVkLGQpfWNhdGNoKGgpe319fTtcbm0uemM9ZnVuY3Rpb24oYSl7aWYoIXRoaXMuYWIpe3RoaXMuYWI9ITA7aWYoeihcIl9lbmFibGVVbmlmaWVkTXVkc2tpcHBlcklmcmFtZVwiKSl7dmFyIGI9dGhpcy5vcHRpb25zLmNvbnRhaW5lcixjPXRoaXMub3B0aW9ucy5ub0FkTG9hZGVkQ2FsbGJhY2ssZD10aGlzLm9wdGlvbnMuYWRMb2FkZWRDYWxsYmFjaztpZihjKXRyeXtjKGIsITEsdm9pZCAwLHRoaXMuUil9Y2F0Y2goZSl7fWlmKGQpdHJ5e2QoYiwhMSx2b2lkIDAsdGhpcy5SKX1jYXRjaChlKXt9fWVsc2UgWGoodGhpcy55YSwhMSwwLHRoaXMuUik7UGMoYSxcInNiblwiKSYmKGI9dGhpcy5GKCksYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChiKSx0aGlzLk5jPURhdGUubm93KCksdGhpcy5FYihjLGIsYSwhMSkpfX07XG5tLlJjPWZ1bmN0aW9uKGEsYil7dmFyIGM9Z2MoaWMpLGQ9Z2Moa2MpOy9Nb2JpbGUvaS50ZXN0KGVjKSYmKDA8Y3x8MDxkKT8oYS5zdHlsZS53aWR0aD1cIjFweFwiLGEuc3R5bGUubWluV2lkdGg9XCIxMDAlXCIsYS5yZW1vdmVBdHRyaWJ1dGUoXCJ3aWR0aFwiKSk6YS53aWR0aD1cIjEwMCVcIjthLnN0eWxlLnZpc2liaWxpdHk9MDxiP1widmlzaWJsZVwiOlwiaGlkZGVuXCI7YS5zdHlsZS5oZWlnaHQ9YitcInB4XCI7dGhpcy5jb250YWluZXIuc3R5bGUuaGVpZ2h0PVwiYXV0b1wifTttLlFjPWZ1bmN0aW9uKGEpe3RoaXMuY29udGFpbmVyLnN0eWxlLndpZHRoPWErXCJweFwiO3ZhciBiPWdjKGljKSxjPWdjKGtjKTtpZigwPGJ8fDA8YylpZihiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRigpKSliLnN0eWxlLndpZHRoPWErXCJweFwiLGIucmVtb3ZlQXR0cmlidXRlKFwid2lkdGhcIil9O1xuZnVuY3Rpb24gdGsoYSl7aWYoZWUoKSYmIWEuTCl7dmFyIGI9J1tkYXRhLW9ic2VydmU9XCInK2Eub3B0aW9ucy5tYXN0ZXJOdW1iZXIrJ1wiXScsYz1mdW5jdGlvbigpe3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEuRigpKSxwPWliKGwuZ2V0QXR0cmlidXRlKFwiZGF0YS1hZC1zcmNcIikpO2wuc3JjPWhiKHApLnRvU3RyaW5nKCk7YS50YT1EYXRlLm5vdygpO3A9bihhLlYpO2Zvcih2YXIgcj1wLm5leHQoKTshci5kb25lO3I9cC5uZXh0KCkpci52YWx1ZS50YT1hLnRhO2wucmVtb3ZlQXR0cmlidXRlKFwiZGF0YS1hZC1zcmNcIil9LGQ9JGIoXCJsbHJtXCIpfHwwLGU9aGsoYSk7ZT16KFwiX2VuYWJsZUxMSURNXCIpfHx6KFwiX2VuYWJsZUxMSURNUlNPbmx5XCIpJiZlO2Zvcih2YXIgZj1uKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJpZnJhbWVcIitiKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpaWYoZz1nLnZhbHVlLG51bGw9PWcub2Zmc2V0UGFyZW50fHxmZShnLGU/ZDpcbjApKXtjKCk7cmV0dXJufXZhciBoPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJpZnJhbWVcIitiKSxrPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbihsKXtpZihsLmZpbmQoZnVuY3Rpb24ocil7cmV0dXJuIDA8ci5pbnRlcnNlY3Rpb25SYXRpb30pKXtjKCk7bD1uKGgpO2Zvcih2YXIgcD1sLm5leHQoKTshcC5kb25lO3A9bC5uZXh0KCkpay51bm9ic2VydmUocC52YWx1ZSl9fSx7cm9vdE1hcmdpbjpcIjBweCAwcHggXCIrZCtcInB4IDBweFwiLHRocmVzaG9sZDowfSk7Yj1uKGgpO2ZvcihnPWIubmV4dCgpOyFnLmRvbmU7Zz1iLm5leHQoKSlkPWcudmFsdWUsay5vYnNlcnZlKGQpLGQuc2V0QXR0cmlidXRlKFwiZGF0YS1sbGVcIixcIjFcIil9fW0ub2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGZlKGEsMCwuMyl9O1xubS5FYj1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT10aGlzLGY9TmQoYSksZz17dG9wOmYueSxsZWZ0OmYueCxoZWlnaHQ6YS5vZmZzZXRIZWlnaHQsd2lkdGg6YS5vZmZzZXRXaWR0aCxWYTp0aGlzLmNkLmpvaW4oXCIsXCIpLGxlOmIsTWU6T2MoYyxcImVhd3BcIiksdmU6KDU3OTk2Nzg2MikudG9TdHJpbmcoKSxjZzphLmhhc0F0dHJpYnV0ZShcImRhdGEtbGxlXCIpLG1mOnRoaXMub2IoYSksWWU6bnVsbCE9dGhpcy5vcHRpb25zLmNsaWNrdHJhY2tVcmx9O2lmKGI9dWsodGhpcyxjKSlnLnRmPWI7aWYoZCl7eGModGhpcy5XLFwiYnNcIixnKTt2YXIgaD1udWxsO2g9c2V0SW50ZXJ2YWwoRShmdW5jdGlvbigpe2Uub2IoYSkmJih4YyhlLlcsXCJidlwiLGcpLGNsZWFySW50ZXJ2YWwoaCkpfSxcInNQSVZcIiksNTAwKX1lbHNlIHhjKHRoaXMuVyxcImJuXCIsZyl9O1xuZnVuY3Rpb24gdWsoYSxiKXtpZihiPU9jKGIsXCJpcnRcIikpe3ZhciBjPWIuc3BsaXQoXCJ8XCIpO2I9cGFyc2VJbnQoY1swXSwxMCk7Yz1wYXJzZUludChjWzFdLDEwKTt2YXIgZD1hLmxiLWEuRGYsZT1hLnRhLWEubGI7YS5MJiYoZT1NYXRoLm1heCgwLGUpKTtyZXR1cm5bZCxlLGItYS50YSxjLWIsYS5OYy1jXS5qb2luKFwifFwiKX1yZXR1cm4gbnVsbH1cbm0uT2M9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLkYoKSxkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGMpO2lmKGQpe3ZhciBlPWEuZnJhbWVIZWlnaHQ7dGhpcy5jZD1hLlZhO3RoaXMuUmMoZCxlKTtpZighdGhpcy5hYiYmMDxlKXt0aGlzLk5jPURhdGUubm93KCk7dGhpcy5sZD10aGlzLmFiPSEwO3RoaXMuVmMoYik7dmFyIGY7YT1udWxsIT0oZj1QYyhiLGMrXCIuZVZcIikpP2Y6dm9pZCAwO2MrPVwiLnB0cFwiO2lmKGI9Yi5CLmhhc093blByb3BlcnR5KGMpP2IuQltjXS52YWx1ZTpudWxsKXRoaXMuUi50ZXJtUG9zaXRpb25zPWI7aWYoeihcIl9lbmFibGVVbmlmaWVkTXVkc2tpcHBlcklmcmFtZVwiKSl7aWYoYj10aGlzLm9wdGlvbnMuYWRMb2FkZWRDYWxsYmFjayl7Yz10aGlzLm9wdGlvbnMuY29udGFpbmVyO3RyeXtiKGMsITAsYSx0aGlzLlIpfWNhdGNoKGcpe319fWVsc2UgYj0wLCEwPT09YT9iPTI6ITE9PT1hJiYoYj0xKSxYaih0aGlzLnlhLCEwLGIsdGhpcy5SKX19fTtcbm0uZmI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9wdGlvbnMuY29udGFpbmVyO3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBhPyhhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpLCEhYSk6XCJzdHJpbmdcIj09dHlwZW9mIGEuaW5uZXJIVE1MPyEwOiExfTttLkZiPWZ1bmN0aW9uKGEpe3RoaXMuY29udGFpbmVyPVwic3RyaW5nXCI9PXR5cGVvZiBhP2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpOmF9O20ueGE9ZnVuY3Rpb24oYSl7YS5udW1iZXI9YS5udW1iZXJ8fGEubWF4VG9wfHxhLm1pblRvcHx8MTA7ZGVsZXRlIGEubWluVG9wO2RlbGV0ZSBhLm1heFRvcDthLmhhc093blByb3BlcnR5KFwicmVzdWx0c1BhZ2VCYXNlVXJsXCIpJiYoYS5yZXN1bHRzUGFnZUJhc2VVcmw9dmsoYS5yZXN1bHRzUGFnZUJhc2VVcmwpKTt2YXIgYj1hLnJlbGF0ZWRTZWFyY2hUYXJnZXRpbmc7YiBpbiBZZCYmKGEucnNfdHQ9WWRbYl0pfTtcbmZ1bmN0aW9uIGNrKGEpe2lmKCFhLnF1ZXJ5JiYhYS5hZmRUb2tlbil7dmFyIGI9ZGUod2luZG93LmxvY2F0aW9uLmhyZWYpLGM9Yi5xdWVyeTtiPWIuYWZkVG9rZW47YyYmYiYmKGEucXVlcnk9YyxhLmFmZFRva2VuPWIpfWM9Y2Uod2luZG93LmxvY2F0aW9uLmhyZWYsXCJwY3NhXCIpO251bGwhPWMmJm51bGw9PWEucGVyc29uYWxpemVkQWRzJiYoYS5wZXJzb25hbGl6ZWRBZHM9Yyl9dmFyIGZrPUUoZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmJhO2E9Yi5nLkcoYSk7cmV0dXJuIG51bGwhPWEmJmxrKGEpP3drLmhhc093blByb3BlcnR5KGMpP2E/Yy5jaGFyQXQoMCkrYy5jaGFyQXQoMSkudG9VcHBlckNhc2UoKTpjOmMrYTpcIlwifSxcImdQRk9cIik7ZnVuY3Rpb24gZGsoYSl7dHJ5e3ZhciBiPXBhcnNlSW50KGEsMTApO3JldHVybiFpc05hTihiKSYmMDw9Yj9iOm51bGx9Y2F0Y2goYyl7cmV0dXJuIG51bGx9fVxuZnVuY3Rpb24gbGsoYSl7YT1wYXJzZUludChhLDEwKTtyZXR1cm4haXNOYU4oYSkmJjA8PWF9XG52YXIgZWs9RShmdW5jdGlvbihhKXtmb3IodmFyIGI9W1wiZm9udFNpemVUaXRsZVwiLFwiZm9udFNpemVBdHRyaWJ1dGlvblwiXSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY107aWYoYVtkXSl7dmFyIGU9XCJzdHJpbmdcIj09dHlwZW9mIGFbZF0/cGFyc2VJbnQoYVtkXS5yZXBsYWNlKFwicHhcIixcIlwiKSwxMCk6YVtkXTtlPWU+amQ/amQ6ZTtlPTEwPmU/MTA6ZTthW2RdPWUrXCJweFwifX1yZXR1cm4gYX0sXCJ2RlNcIikseGs9L15cXC97Myx9Lyx2az1FKGZ1bmN0aW9uKGEpe3JldHVybiBhJiZhLnN0YXJ0c1dpdGgoXCIvL1wiKT9kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCthLnJlcGxhY2UoeGssXCIvL1wiKTphfSxcInJSUFwiKSxpaz1FKGZ1bmN0aW9uKGEpe2E9YS5mZXhwfHxcIlwiO3JldHVybiBhLmluY2x1ZGVzKFwiMTczMDAwMDFcIik/MTphLmluY2x1ZGVzKFwiMTczMDAwMDJcIik/MjowfSxcImdQUFZcIiksWj17fSxqaz0oWi5hZFBhZ2U9XCJhZHBhZ2VcIixaLmFkcGFnZT1cImFkcGFnZVwiLFouYWRzPVwiYWRcIixcblouYWRzYWZlPVwiYWRzYWZlXCIsWi5hZHN0eWxlPVwiYWRzdHlsZVwiLFouYWR0ZXN0PVwiYWR0ZXN0XCIsWi5hZmRUb2tlbj1cImFmZHRcIixaLmFmc2V4cD1cImFmc2V4cFwiLFouYWxsd2NhbGxhZD1cImFsbHdjYWxsYWRcIixaLmJncmVzcG9uc2U9XCJiZ3Jlc3BvbnNlXCIsWi5jaGFubmVsPVwiY2hhbm5lbFwiLFouY29udD1cImNvbnRcIixaLmNyZWY9XCJjcmVmXCIsWi5jeD1cImN4XCIsWi5kZWI9XCJkZWJcIixaLmRlYnVnPVwiZGVidWdcIixaLmRvbWFpbk5hbWU9XCJkb21haW5fbmFtZVwiLFouZT1cImVcIixaLmV4cGZsYWdzPVwiZXhwZmxhZ3NcIixaLmZha2VhZHM9XCJmYWtlYWRzXCIsWi5mY2FwPVwiZmNhcFwiLFouZmV4cD1cImZleHBcIixaLmZvcmNlRXg9XCJleHBpZFwiLFouZm9ybWF0PVwiZm9ybWF0XCIsWi5nY3M9XCJnY3NcIixaLmdjc2VfbmM9XCJnY3NlX25jXCIsWi5nbD1cImdsXCIsWi5nbHA9XCJnbHBcIixaLmdtPVwiZ21cIixaLmdyPVwiZ3JcIixaLmhsPVwiaGxcIixaLmhvc3RDaGFubmVsPVwiaGNoYW5uZWxcIixaLmhvc3RQdWJJZD1cImhjbGllbnRcIixcblouaWU9XCJpZVwiLFouanNTcmM9XCJjc2FfanNfc3JjXCIsWi5sYW5ndWFnZUNvZGU9XCJobFwiLFoubWF4VGVybUxlbmd0aD1cIm1heF9yYWRsaW5rX2xlblwiLFoubXM9XCJtc1wiLFoubm9jYWNoZT1cIm5vY2FjaGVcIixaLm51bT1cIm51bVwiLFoubnVtUmVwZWF0ZWQ9XCJhZHJlcFwiLFoub2U9XCJvZVwiLFoub3V0cHV0PVwib3V0cHV0XCIsWi5wbGFzSW5DYXJvdXNlbD1cInBsYV9jYXJvdXNlbFwiLFoucHJlbG9hZD1cInByZWxvYWRcIixaLnByaWNlQ3VycmVuY3k9XCJwZmNybmN5XCIsWi5wcmljZU1heD1cInBmbWF4XCIsWi5wcmljZU1pbj1cInBmbWluXCIsWi5wdWJJZD1cImNsaWVudFwiLFoucXVlcnk9XCJxXCIsWi5xdWVyeUNvbnRleHQ9XCJxcnlfY3R4dFwiLFoucXVlcnlMaW5rPVwicXJ5X2xua1wiLFoucmVmZXJlcj1cInJlZmVyZXJcIixaLnJvbGU9XCJyXCIsWi5yb3drZXlWMj1cInJvd2tleVYyXCIsWi5yc190dD1cInJzX3R0XCIsWi5ydXJsPVwicnVybFwiLFouc2FmZT1cInNhZmVcIixaLnNic2lnbmFscz1cInNic2lnbmFsc1wiLFouc291cmNlPVwic291cmNlXCIsXG5aLnNvdXJjZV9pcD1cInNvdXJjZV9pcFwiLFouc3R5bGVJZD1cInBzaWRcIixaLnRleHRDb2xvclBhbGV0dGU9XCJ0Y3BhbFwiLFoudGhlbWU9XCJ0aGVtZVwiLFoudHlwZT1cInR5cGVcIixaLnVpZGViPVwidWlkZWJcIixaLnVzZXJBZ2VudD1cInVzZXJhZ2VudFwiLFoudXVsZD1cInV1bGRcIixaLnY9XCJ2XCIsWi5hZGZpbGlhdGVXcD1cImFkZndwXCIsWi5jcHA9XCJjcHBcIixaLmhvdHN3YXBzPVwiaG90c3dhcHNcIixaLnJlc3VsdHNQYWdlQmFzZVVybD1cInJwYnVcIixaLnJlc3VsdHNQYWdlUXVlcnlQYXJhbT1cInJwcXBcIixaLnBlcnNvbmFsaXplZEFkcz1cInBjc2FcIixaLmF0dG1hcz1cImF0dG1hc1wiLFouY21wU2RrSWQ9XCJpYWJfY21wU2RrSWRcIixaLmdkcHJBcHBsaWVzPVwiaWFiX2dkcHJBcHBsaWVzXCIsWi50Y1N0cmluZz1cImlhYl90Y1N0cmluZ1wiLFouc2Nfc3RhdHVzPVwic2Nfc3RhdHVzXCIsWi5zY3Q9XCJzY3RcIixaLnVpT3B0aW1pemU9XCJ1aW9wdFwiLFoudWlfb3B0aW1pemU9XCJ1aW9wdFwiLFouZG9tYWluUmVnaXN0cmFudD1cInN3cFwiLFxuWi5kb21haW5TZXNzaW9uVG9rZW49XCJhZmR0XCIsWi5rdz1cImt3XCIsWi50ZXJtcz1cInRlcm1zXCIsWiksd2s9e2hjOjF9O209VS5wcm90b3R5cGU7bS5WYj1CKFUucHJvdG90eXBlLlZiLFwiY0FBXCIpO20uWWI9QihVLnByb3RvdHlwZS5ZYixcImNGQU1cIik7bS5UPUIoVS5wcm90b3R5cGUuVCxcImNGQVwiKTttLlpjPUIoVS5wcm90b3R5cGUuWmMsXCJ2QVNET1wiKTttLkRjPUIoVS5wcm90b3R5cGUuRGMsXCJvVFBQXCIpO20ud2E9QihVLnByb3RvdHlwZS53YSxcIm9UQlBcIik7bS5YYj1CKFUucHJvdG90eXBlLlhiLFwiY0NQXCIpO20uY2M9QihVLnByb3RvdHlwZS5jYyxcImNVSVBcIik7bS5kYz1CKFUucHJvdG90eXBlLmRjLFwiY1VcIik7bS5MYj1CKFUucHJvdG90eXBlLkxiLFwiYU9UVVwiKTttLkY9QihVLnByb3RvdHlwZS5GLFwiZ0ZOXCIpO20ucGM9QihVLnByb3RvdHlwZS5wYyxcImdGTkFPQUpcIik7bS5uYz1CKFUucHJvdG90eXBlLm5jLFwiZ0FJXCIpO20uUmI9QihVLnByb3RvdHlwZS5SYixcImNPXCIpO1xubS5xYz1CKFUucHJvdG90eXBlLnFjLFwiaUFJXCIpO20uRWM9QihVLnByb3RvdHlwZS5FYyxcInBNXCIpO20ucmM9QihVLnByb3RvdHlwZS5yYyxcImlcIik7bS5jYj1CKFUucHJvdG90eXBlLmNiLFwiY0lcIik7bS53Yj1CKFUucHJvdG90eXBlLndiLFwibUFcIik7bS5WYz1CKFUucHJvdG90eXBlLlZjLFwidFNQXCIpO20udWM9QihVLnByb3RvdHlwZS51YyxcImlGU1wiKTttLnpjPUIoVS5wcm90b3R5cGUuemMsXCJuTkFcIik7bS5SYz1CKFUucHJvdG90eXBlLlJjLFwic0lIXCIpO20uUWM9QihVLnByb3RvdHlwZS5RYyxcInNDV1wiKTttLkViPUIoVS5wcm90b3R5cGUuRWIsXCJzUFwiKTttLk9jPUIoVS5wcm90b3R5cGUuT2MsXCJySVNcIik7bS5mYj1CKFUucHJvdG90eXBlLmZiLFwiZENFXCIpO20uRmI9QihVLnByb3RvdHlwZS5GYixcInNDXCIpO20ueGE9QihVLnByb3RvdHlwZS54YSxcImNWQVNET1wiKTttLm9iPUIoVS5wcm90b3R5cGUub2IsXCJpSVZcIik7bS5BYz1CKFUucHJvdG90eXBlLkFjLFwicExDXCIpO2NrPUIoY2ssXCJjVkFTRFBPXCIpO2Z1bmN0aW9uIHlrKCl7fXNhKHlrLFZqKTt5ay5wcm90b3R5cGUuaWI9ZnVuY3Rpb24oKXtyZXR1cm5cImFmZF9hZHNcIn07eWsucHJvdG90eXBlLnhjPWZ1bmN0aW9uKCl7cmV0dXJuITB9O2Z1bmN0aW9uIHprKCl7fXNhKHprLFZqKTt6ay5wcm90b3R5cGUuRGE9ZnVuY3Rpb24oYSl7dmFyIGI9MTczMDEzNjg9PT1ZaigpLGM9eihcIl9hZnNSc0Nvb2tpZWxlc3NcIik7cmV0dXJuKGJ8fGMpJiZudWxsIT1hJiYtMT09PWEuaW5kZXhPZihcImRwLVwiKT9cImh0dHBzOi8vc3luZGljYXRlZHNlYXJjaC5nb29nXCI6b2MoKX07emsucHJvdG90eXBlLmliPWZ1bmN0aW9uKCl7cmV0dXJuXCJhZmRfYWRzXCJ9O3prLnByb3RvdHlwZS54Yz1mdW5jdGlvbigpe3JldHVybiEwfTtmdW5jdGlvbiBBaygpe31zYShBayxWaik7QWsucHJvdG90eXBlLnVkPWZ1bmN0aW9uKGEpe2E9dGhpcy5EYShhKS5yZXBsYWNlKFwid3d3Lmdvb2dsZVwiLFwiY3NlLmdvb2dsZVwiKTtyZXR1cm4gbmV3IHFjKGErXCIvY3NlX3YyL2Fkc1wiKX07QWsucHJvdG90eXBlLmliPWZ1bmN0aW9uKCl7cmV0dXJuXCJ1ZHNfYWRzX29ubHlcIn07ZnVuY3Rpb24gQmsoKXt9c2EoQmssVmopO0JrLnByb3RvdHlwZS5pYj1mdW5jdGlvbigpe3JldHVyblwidWRzX2Fkc19vbmx5XCJ9O3ZhciBDaz17ZzpuZXcgSGkoUmksNSl9O2Z1bmN0aW9uIERrKGEsYixjLGQsZSxmLGcsaCxrLGwpe2w9dm9pZCAwPT09bD9bXTpsO1UuY2FsbCh0aGlzLGEsYixjLGQsZSxmLGcsaCx2b2lkIDA9PT1rPzE6ayxsKX1zYShEayxVKTtEay5wcm90b3R5cGUuTWQ9ZnVuY3Rpb24oYSl7aWYoYS50ZXh0Q29sb3JQYWxldHRlKXt2YXIgYj1hLnRleHRDb2xvclBhbGV0dGU7QXJyYXkuaXNBcnJheShiKXx8KGI9W2JdKTtiPVpkKFwidGV4dENvbG9yUGFsZXR0ZVwiLENrLGIpO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXRyeXt2YXIgZD1iW2NdO2JbY109TWkoXCIjXCI9PWQuY2hhckF0KDApP2Q6XCIjXCIrZCkuc3Vic3RyKDEpfWNhdGNoKGUpe31hLnRleHRDb2xvclBhbGV0dGU9Yi5qb2luKFwiLFwiKX1cIm9uXCI9PWEuYWR0ZXN0JiZhLnRlc3RnbCYmKGEuZ2w9YS50ZXN0Z2wsYS5nbHA9XCIxXCIpfTtEay5wcm90b3R5cGUuVD1mdW5jdGlvbihhKXtyZXR1cm4gYS5udW1iZXI/XCJuXCIrYS5udW1iZXI6XCJcIn07ZnVuY3Rpb24gRWsoYSxiLGMsZCxlLGYsZyxoLGssbCl7bD12b2lkIDA9PT1sP1tdOmw7VS5jYWxsKHRoaXMsYSxiLGMsZCxlLGYsZyxoLHZvaWQgMD09PWs/MTprLGwpfXNhKEVrLFUpO0VrLnByb3RvdHlwZS5UPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVsYXRlZFNlYXJjaGVzO2J8fDA9PT1ifHwoYj1hLm51bWJlcil8fDA9PT1ifHwoYj0xMCk7cmV0dXJuXCJyXCIrYn07RWsucHJvdG90eXBlLlQ9QihFay5wcm90b3R5cGUuVCxcImNGQV9SU1wiKTtmdW5jdGlvbiBGayhhLGIsYyxkLGUsZixnLGgsayxsKXtsPXZvaWQgMD09PWw/W106bDtVLmNhbGwodGhpcyxhLGIsYyxkLGUsZixnLGgsdm9pZCAwPT09az8xOmssbCl9c2EoRmssVSk7RmsucHJvdG90eXBlLlQ9ZnVuY3Rpb24oKXtyZXR1cm5cInNcIn07RmsucHJvdG90eXBlLnhhPWZ1bmN0aW9uKGEpe1UucHJvdG90eXBlLnhhLmNhbGwodGhpcyxhKTthLmNvbG9yQmFja2dyb3VuZHx8KGEuY29sb3JCYWNrZ3JvdW5kPVwidHJhbnNwYXJlbnRcIil9O3ZhciBraz1FKGZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCxrKXtmdW5jdGlvbiBsKCl7fWg9dm9pZCAwPT09aD8xOmg7az12b2lkIDA9PT1rP1tdOms7Yi5yZWxhdGVkU2VhcmNoZXM/Yi50eXBlPVwicmVsYXRlZHNlYXJjaFwiOmIudHlwZXx8KGIudHlwZT1cImFkc1wiKTt2YXIgcD1uZXcgeWsscj1udWxsO3N3aXRjaChiLnR5cGUpe2Nhc2UgXCJyZWxhdGVkc2VhcmNoXCI6bD1FaztyPW5ldyB6azticmVhaztjYXNlIFwiYWRzXCI6Y2FzZSBcInRleHRhZHNcIjpiLnR5cGU9XCJhZHNcIjtsPVU7cj1iLmdjc2M/bmV3IEFrOnA7YnJlYWs7Y2FzZSBcInBsYXNcIjpsPURrO3I9bmV3IEJrO2JyZWFrO2Nhc2UgXCJzZWFyY2hib3hcIjpsPUZrO3I9cDtwPTE3MzAxMzY4PT09WWooKTt2YXIgcT16KFwiX2Fmc1JzQ29va2llbGVzc1wiKTtpZihwfHxxKXI9bmV3IHprO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRGMoXCJpbnZhbGlkIGJsb2NrIHR5cGU6IFwiK2IudHlwZSk7fXJldHVybiBuZXcgbChhLGIscixjLGQsZSxmLGcsaCxrKX0sXG5cIm5BQlwiKTtmdW5jdGlvbiBHayhhLGIsYyxkKXtkPXZvaWQgMD09PWQ/ITE6ZDthLmdvb2dsZV9pbWFnZV9yZXF1ZXN0c3x8KGEuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzPVtdKTt2YXIgZT1FaChhLmRvY3VtZW50KTtpZihjKXt2YXIgZj1mdW5jdGlvbigpe2lmKGMpe3ZhciBnPWEuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzLGg9WGEoZyxlKTswPD1oJiZBcnJheS5wcm90b3R5cGUuc3BsaWNlLmNhbGwoZyxoLDEpfWUucmVtb3ZlRXZlbnRMaXN0ZW5lciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKFwibG9hZFwiLGYsITEpO2UucmVtb3ZlRXZlbnRMaXN0ZW5lciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKFwiZXJyb3JcIixmLCExKX07QmgoZSxcImxvYWRcIixmKTtCaChlLFwiZXJyb3JcIixmKX1kJiYoZS5hdHRyaWJ1dGlvblNyYz1cIlwiKTtlLnNyYz1iO2EuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzLnB1c2goZSl9XG5mdW5jdGlvbiBIayhhKXt2YXIgYj12b2lkIDA9PT1iPyExOmI7dmFyIGM9XCJodHRwczovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9nZW5fMjA0P2lkPXRjZmVcIjtDaChhLGZ1bmN0aW9uKGQsZSl7aWYoZHx8MD09PWQpYys9XCImXCIrZStcIj1cIitlbmNvZGVVUklDb21wb25lbnQoXCJcIitkKX0pO0lrKGMsYil9XG5mdW5jdGlvbiBJayhhLGIpe3ZhciBjPXdpbmRvdztiPXZvaWQgMD09PWI/ITE6Yjt2YXIgZD12b2lkIDA9PT1kPyExOmQ7Yy5mZXRjaD8oYj17a2VlcGFsaXZlOiEwLGNyZWRlbnRpYWxzOlwiaW5jbHVkZVwiLHJlZGlyZWN0OlwiZm9sbG93XCIsbWV0aG9kOlwiZ2V0XCIsbW9kZTpcIm5vLWNvcnNcIn0sZCYmKGIubW9kZT1cImNvcnNcIixcInNldEF0dHJpYnV0aW9uUmVwb3J0aW5nXCJpbiBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGU/Yi5hdHRyaWJ1dGlvblJlcG9ydGluZz17ZXZlbnRTb3VyY2VFbGlnaWJsZTpcInRydWVcIix0cmlnZ2VyRWxpZ2libGU6XCJmYWxzZVwifTpiLmhlYWRlcnM9e1wiQXR0cmlidXRpb24tUmVwb3J0aW5nLUVsaWdpYmxlXCI6XCJldmVudC1zb3VyY2VcIn0pLGMuZmV0Y2goYSxiKSk6R2soYyxhLHZvaWQgMD09PWI/ITE6Yix2b2lkIDA9PT1kPyExOmQpfTtmdW5jdGlvbiBKayhhKXt2b2lkIDAhPT1hLmFkZHRsQ29uc2VudCYmXCJzdHJpbmdcIiE9PXR5cGVvZiBhLmFkZHRsQ29uc2VudCYmKGEuYWRkdGxDb25zZW50PXZvaWQgMCk7dm9pZCAwIT09YS5nZHByQXBwbGllcyYmXCJib29sZWFuXCIhPT10eXBlb2YgYS5nZHByQXBwbGllcyYmKGEuZ2RwckFwcGxpZXM9dm9pZCAwKTtyZXR1cm4gdm9pZCAwIT09YS50Y1N0cmluZyYmXCJzdHJpbmdcIiE9PXR5cGVvZiBhLnRjU3RyaW5nfHx2b2lkIDAhPT1hLmxpc3RlbmVySWQmJlwibnVtYmVyXCIhPT10eXBlb2YgYS5saXN0ZW5lcklkPzI6YS5jbXBTdGF0dXMmJlwiZXJyb3JcIiE9PWEuY21wU3RhdHVzPzA6M31mdW5jdGlvbiBLayhhLGIpe2I9dm9pZCAwPT09Yj97fTpiO3RoaXMuVGE9YTt0aGlzLm5hPW51bGw7dGhpcy5CZD17fTt0aGlzLnJlPTA7dmFyIGM7dGhpcy5JZD1udWxsIT0oYz1iLnRpbWVvdXRNcyk/Yzo1MDA7dmFyIGQ7dGhpcy5tZD1udWxsIT0oZD1iLkNnKT9kOiExO3RoaXMuUGI9bnVsbH1cbnNhKEtrLGhnKTtcbktrLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZyxoKXtjbGVhclRpbWVvdXQoZik7Zz8oZD1nLGQuaW50ZXJuYWxFcnJvclN0YXRlPUprKGQpLGQuaW50ZXJuYWxCbG9ja09uRXJyb3JzPWMubWQsaCYmMD09PWQuaW50ZXJuYWxFcnJvclN0YXRlfHwoZC50Y1N0cmluZz1cInRjdW5hdmFpbGFibGVcIixofHwoZC5pbnRlcm5hbEVycm9yU3RhdGU9MykpKTooZC50Y1N0cmluZz1cInRjdW5hdmFpbGFibGVcIixkLmludGVybmFsRXJyb3JTdGF0ZT0zKTthKGQpfXZhciBjPXRoaXMsZD17aW50ZXJuYWxCbG9ja09uRXJyb3JzOnRoaXMubWR9LGU9V2EoZnVuY3Rpb24oKXtyZXR1cm4gYShkKX0pLGY9MDstMSE9PXRoaXMuSWQmJihmPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtkLnRjU3RyaW5nPVwidGN1bmF2YWlsYWJsZVwiO2QuaW50ZXJuYWxFcnJvclN0YXRlPTE7ZSgpfSx0aGlzLklkKSk7dHJ5e0xrKHRoaXMsXCJhZGRFdmVudExpc3RlbmVyXCIsYil9Y2F0Y2goZyl7ZC50Y1N0cmluZz1cblwidGN1bmF2YWlsYWJsZVwiLGQuaW50ZXJuYWxFcnJvclN0YXRlPTMsZiYmKGNsZWFyVGltZW91dChmKSxmPTApLGUoKX19O0trLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe2EmJmEubGlzdGVuZXJJZCYmTGsodGhpcyxcInJlbW92ZUV2ZW50TGlzdGVuZXJcIixudWxsLGEubGlzdGVuZXJJZCl9O2Z1bmN0aW9uIExrKGEsYixjLGQpe2N8fChjPWZ1bmN0aW9uKCl7fSk7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEuVGEuX190Y2ZhcGkpYT1hLlRhLl9fdGNmYXBpLGEoYiwyLGMsZCk7ZWxzZSBpZihhLkFhKCkpe01rKGEpO3ZhciBlPSsrYS5yZTthLkJkW2VdPWM7YS5uYSYmKGM9e30sYS5uYS5wb3N0TWVzc2FnZSgoYy5fX3RjZmFwaUNhbGw9e2NvbW1hbmQ6Yix2ZXJzaW9uOjIsY2FsbElkOmUscGFyYW1ldGVyOmR9LGMpLFwiKlwiKSl9ZWxzZSBjKHt9LCExKX1cbktrLnByb3RvdHlwZS5BYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5hP3RoaXMubmE6dGhpcy5uYT1EaCh0aGlzLlRhLFwiX190Y2ZhcGlMb2NhdG9yXCIpfTtmdW5jdGlvbiBNayhhKXthLlBifHwoYS5QYj1mdW5jdGlvbihiKXt0cnl7dmFyIGM9KFwic3RyaW5nXCI9PT10eXBlb2YgYi5kYXRhP0pTT04ucGFyc2UoYi5kYXRhKTpiLmRhdGEpLl9fdGNmYXBpUmV0dXJuO2EuQmRbYy5jYWxsSWRdKGMucmV0dXJuVmFsdWUsYy5zdWNjZXNzKX1jYXRjaChkKXt9fSxCaChhLlRhLFwibWVzc2FnZVwiLGEuUGIpKX1cbmZ1bmN0aW9uIE5rKGEpe2lmKCExPT09YS5nZHByQXBwbGllcylyZXR1cm4hMDt2b2lkIDA9PT1hLmludGVybmFsRXJyb3JTdGF0ZSYmKGEuaW50ZXJuYWxFcnJvclN0YXRlPUprKGEpKTtyZXR1cm5cImVycm9yXCI9PT1hLmNtcFN0YXR1c3x8MCE9PWEuaW50ZXJuYWxFcnJvclN0YXRlP2EuaW50ZXJuYWxCbG9ja09uRXJyb3JzPyhIayh7ZTpTdHJpbmcoYS5pbnRlcm5hbEVycm9yU3RhdGUpfSksITEpOiEwOlwibG9hZGVkXCIhPT1hLmNtcFN0YXR1c3x8XCJ0Y2xvYWRlZFwiIT09YS5ldmVudFN0YXR1cyYmXCJ1c2VyYWN0aW9uY29tcGxldGVcIiE9PWEuZXZlbnRTdGF0dXM/ITE6ITB9O2Z1bmN0aW9uIE9rKGEpe2lmKCFOayhhKSlyZXR1cm4hMTtpZighMT09PWEuZ2RwckFwcGxpZXN8fFwidGN1bmF2YWlsYWJsZVwiPT09YS50Y1N0cmluZylyZXR1cm4hMDt2YXIgYj12b2lkIDA9PT1iP1wiNzU1XCI6YjtiOntpZihhLnB1Ymxpc2hlciYmYS5wdWJsaXNoZXIucmVzdHJpY3Rpb25zKXt2YXIgYz1hLnB1Ymxpc2hlci5yZXN0cmljdGlvbnNbXCIxXCJdO2lmKHZvaWQgMCE9PWMpe2M9Y1t2b2lkIDA9PT1iP1wiNzU1XCI6Yl07YnJlYWsgYn19Yz12b2lkIDB9MD09PWM/Yj0hMTphLnB1cnBvc2UmJmEudmVuZG9yPyhjPWEudmVuZG9yLmNvbnNlbnRzLChiPSEoIWN8fCFjW3ZvaWQgMD09PWI/XCI3NTVcIjpiXSkpJiZhLnB1cnBvc2VPbmVUcmVhdG1lbnQmJlwiQ0hcIj09PWEucHVibGlzaGVyQ0M/Yj0hMDpiJiYoYj1hLnB1cnBvc2UuY29uc2VudHMsYj0hKCFifHwhYltcIjFcIl0pKSk6Yj0hMDtyZXR1cm4gYj8hMDooY29uc29sZS53YXJuKERjKFwiVEMgc3RyaW5nIGxhY2tzIHB1cnBvc2UgMSBjb25zZW50IGZvciBHb29nbGUgKEdWTCBJRDogNzU1KS4gQ1NBIGFkcyB3aWxsIG5vdCBiZSByZXF1ZXN0ZWQgdW50aWwgY29uc2VudCBpcyBnaXZlbi4gVEMgc3RyaW5nOiBcIitcbmEudGNTdHJpbmcpKSwhMSl9XG52YXIgUGs9RShmdW5jdGlvbihhKXt2YXIgYj1uZXcgS2sod2luZG93LHt0aW1lb3V0TXM6LTF9KTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5UYS5fX3RjZmFwaXx8bnVsbCE9Yi5BYSgpKXt2YXIgYz1wZSgpLGQ9MDtkPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtkPTA7Y29uc29sZS53YXJuKERjKFwiTm8gcmVzcG9uc2UgcmVjZWl2ZWQgZnJvbSBDTVAgYWZ0ZXIgMTAgc2Vjb25kcy4gQ1NBIGFkcyBoYXZlIG5vdCBiZWVuIHJlcXVlc3RlZC5cIikpfSwxRTQpO2IuYWRkRXZlbnRMaXN0ZW5lcihmdW5jdGlvbihlKXtkJiYoY2xlYXJUaW1lb3V0KGQpLGQ9MCk7aWYoT2soZSkpe2lmKDAhPT1lLmludGVybmFsRXJyb3JTdGF0ZSl7dmFyIGY9bmV3IHVjKGEpO3N3aXRjaChlLmludGVybmFsRXJyb3JTdGF0ZSl7Y2FzZSAxOnljKGYsXCJ0b1wiLEpTT04uc3RyaW5naWZ5KGUpKTtjb25zb2xlLndhcm4oRGMoXCJSZWFjaGVkIHRpbWVvdXQgYmVmb3JlIGEgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZyb20gQ01QLlwiKSk7YnJlYWs7XG5jYXNlIDI6eWMoZixcIml0XCIsSlNPTi5zdHJpbmdpZnkoZSkpO2NvbnNvbGUud2FybihEYyhcIkludmFsaWQgdHlwZXMgaW4gcmVjZWl2ZWQgdGNEYXRhLlwiKSk7YnJlYWs7Y2FzZSAzOnljKGYsXCJlclwiLEpTT04uc3RyaW5naWZ5KGUpKSxjb25zb2xlLndhcm4oRGMoXCJDTVAgcmV0dXJuZWQgZXJyb3Igc3RhdHVzLlwiKSl9fWIucmVtb3ZlRXZlbnRMaXN0ZW5lcihlKTtjLnJlc29sdmUoe3RjU3RyaW5nOmUudGNTdHJpbmcsZ2RwckFwcGxpZXM6ZS5nZHByQXBwbGllc30pfX0pO3JldHVybiBjLnByb21pc2V9cmV0dXJuIG51bGx9LFwiZ1RBRFwiKTt2YXIgUWs9amEoW1wiaHR0cHM6Ly9wYXJ0bmVyLmdvb2dsZWFkc2VydmljZXMuY29tL2dhbXBhZC9jb29raWUuanNcIl0pO2Z1bmN0aW9uIFJrKGEsYil7dmFyIGM9YS5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpOyRnKGMsYik7KGE9YS5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKVswXSkmJmEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjLGEpfWZ1bmN0aW9uIFNrKGEsYixjLGQsZSl7dGhpcy5uYW1lPWE7dGhpcy52YWx1ZT1iO3RoaXMubGM9Yzt0aGlzLnBhdGg9dm9pZCAwPT09ZD9udWxsOmQ7dGhpcy5kb21haW49dm9pZCAwPT09ZT9udWxsOmV9ZnVuY3Rpb24gVGsoYSl7dGhpcy5KPWE7dGhpcy5VYj0wO3RoaXMuRmQ9bnVsbH1cbmZ1bmN0aW9uIFVrKGEsYil7aWYoIWIubmFtZXx8IWIudmFsdWV8fCFiLmxjKXRocm93XCJTZXR0aW5nIGEgY29va2llIG11c3QgaW5jbHVkZSBjb29raWUgbmFtZSBhbmQgdmFsdWUgYW5kIGV4cGlyYXRpb24uXCI7dmFyIGM9Yi5uYW1lK1wiPVwiK2IudmFsdWUsZD1cIlwiLGU9XCJcIixmPVwiXCI7Yi5wYXRoJiYoZD1cIjtwYXRoPVwiK2IucGF0aCk7dmFyIGc9Yi5kb21haW47aWYoZyl7YTppZih6KFwiX3VzZVNlcnZlclByb3ZpZGVkRG9tYWluXCIpKXtpZihlPVpiKFwic3NkbFwiLGFjKCkpKWlmKGU9bmV3IFJlZ0V4cChcIihcIithdG9iKGUpLnJlcGxhY2UoLywvZyxcIil8KFwiKStcIilcIiksZy5tYXRjaChlKSl7ZT0hMTticmVhayBhfWU9ITB9ZWxzZSBlPSExO2U9XCI7ZG9tYWluPVwiKyhlP2c6YS5KLmxvY2F0aW9uLmhvc3RuYW1lKX1iLmxjJiYoZj1cIjtleHBpcmVzPVwiK2IubGMpO2EuSi5kb2N1bWVudC5jb29raWU9YytmK2QrZX1cbmZ1bmN0aW9uIFZrKGEsYil7aWYoIWIpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7Y29va2llOm51bGwsc3RhdHVzOjR9KTt2YXIgYz1iLl9jb29raWVzX1swXTtpZighYylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtjb29raWU6bnVsbCxzdGF0dXM6NH0pO2I9Yy5fdmFsdWVfO2M9bmV3IFNrKFwiX19nc2FzXCIsYiwobmV3IERhdGUoMUUzKmMuX2V4cGlyZXNfKSkudG9VVENTdHJpbmcoKSxjLl9wYXRoXyxjLl9kb21haW5fKTt0cnl7VWsoYSxjKX1jYXRjaChkKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtjb29raWU6bnVsbCxzdGF0dXM6N30pfXJldHVybiBQcm9taXNlLnJlc29sdmUoe2Nvb2tpZTpiLHN0YXR1czozfSl9XG5mdW5jdGlvbiBXayhhKXtpZigwPT09YS5VYil7YTp7dHJ5e3ZhciBiPW5ldyBEYXRlO2Iuc2V0VGltZShiLmdldFRpbWUoKSszNkU1KTtVayhhLG5ldyBTayhcIkdvb2dsZUFkU2VydmluZ1Rlc3RcIixcIkdvb2RcIixiLnRvVVRDU3RyaW5nKCkpKX1jYXRjaChkKXtiPSExO2JyZWFrIGF9aWYoYj1cIkdvb2RcIj09PVhrKGEsXCJHb29nbGVBZFNlcnZpbmdUZXN0XCIpKXt2YXIgYz1uZXcgU2soXCJHb29nbGVBZFNlcnZpbmdUZXN0XCIsXCJHb29kXCIsKG5ldyBEYXRlKDApKS50b1VUQ1N0cmluZygpKTt0cnl7VWsoYSxjKX1jYXRjaChkKXtiPSExfX19YS5VYj1iPzI6MX1yZXR1cm4gMj09PWEuVWJ9XG5mdW5jdGlvbiBYayhhLGIpe2lmKFwic3RyaW5nXCI9PT10eXBlb2YgYS5KLmRvY3VtZW50LmNvb2tpZSl7dmFyIGM9bmV3IFJlZ0V4cChcIl5cXFxccypcIitiK1wiPSguKilcIik7aWYoYT1hLkouZG9jdW1lbnQuY29va2llLnNwbGl0KFwiO1wiKS5maW5kKGZ1bmN0aW9uKGQpe3JldHVybiBudWxsIT1kLm1hdGNoKGMpfSkpcmV0dXJuIGEubWF0Y2goYylbMV19fVxuZnVuY3Rpb24gWWsoYSxiKXtiPXtkb21haW46YS5KLmxvY2F0aW9uLmhvc3RuYW1lLGNsaWVudDpifHxcInVuZGVmaW5lZFwiLHByb2R1Y3Q6XCJTQVNcIixjYWxsYmFjazpcIl9fc2FzQ29va2llXCJ9O2lmKGEuSiE9YS5KLnBhcmVudCYmIWIuZG9tYWluKXt2YXIgYz1hLkoucGFyZW50JiZhLkoucGFyZW50LmxvY2F0aW9uJiZhLkoucGFyZW50LmxvY2F0aW9uLmhvc3RuYW1lO2IuZG9tYWluPWEuSi5sb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnMmJmEuSi5sb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnNbMF18fGN9dmFyIGQ9ZWIoTGUoUWspLGIpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXthLkouX19zYXNDb29raWU9ZnVuY3Rpb24oZil7VmsoYSxhLkZkP2EuRmQ6ZikudGhlbihmdW5jdGlvbihnKXtlKGcpfSl9O1JrKGEuSi5kb2N1bWVudCxkKX0pfVxudmFyIFprPUUoZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/bnVsbDpXayhhKT8oYT1YayhhLFwiX19nc2FzXCIpKT97WTo2LGNvb2tpZTphfTpudWxsOntZOjAsY29va2llOm51bGx9fSxcInNhc0NrZUVyclwiKSwkaz1FKGZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBUayh3aW5kb3cpO3JldHVybiBXayhiKT9ZayhiLGEpLnRoZW4oZnVuY3Rpb24oYyl7cmV0dXJue1k6Yy5zdGF0dXMsY29va2llOmMuY29va2llfX0pOlByb21pc2UucmVzb2x2ZSh7WTowLGNvb2tpZTpudWxsfSl9LFwic2NFcnJcIik7dmFyIGFsPW51bGw7ZnVuY3Rpb24gYmwoYSxiLGMpe2E/KGIuY29va2llPWEuY29va2llLGIuWT1hLlkpOihhbD0kayhjKSxhbC50aGVuKGZ1bmN0aW9uKGQpe2IuY29va2llPWQuY29va2llO2IuWT1kLll9KSl9XG52YXIgY2w9RShmdW5jdGlvbihhLGIsYyl7Yz12b2lkIDA9PT1jP3dpbmRvdzpjO3ZhciBkPVtUaigpLFBrKGEpXSxlLGYsZz0tMSE9PShudWxsPT0oZT1jLmxvY2F0aW9uKT92b2lkIDA6bnVsbD09KGY9ZS5ob3N0KT92b2lkIDA6Zi5pbmRleE9mKFwic3RhcnRwYWdlXCIpKSxoPW51bGw7ZT16KFwiZW5hYmxlTm9uYmxvY2tpbmdTYXNDb29raWVcIik7dmFyIGs9bnVsbCE9ZFsxXSYmYjtnfHwhZXx8a3x8KGg9WmsobmV3IFRrKGMpKSk7dmFyIGw9e2NhOnZvaWQgMCxvZDp2b2lkIDAsdGNTdHJpbmc6dm9pZCAwLGdkcHJBcHBsaWVzOnZvaWQgMCxZOnZvaWQgMCxjb29raWU6dm9pZCAwfTtnfHwhZXx8a3x8YmwoaCxsLGEpO3JldHVybiBkLmV2ZXJ5KGZ1bmN0aW9uKHApe3JldHVybiBudWxsPT1wfSk/bDpzZShkKS50aGVuKGZ1bmN0aW9uKHApe2Zvcih2YXIgcj0wO3I8cC5sZW5ndGg7cisrKXt2YXIgcT1wW3JdO2lmKHEpc3dpdGNoKHIpe2Nhc2UgMDpsLmNhPXEuY2E7bC5vZD1xLkFiO2JyZWFrO1xuY2FzZSAxOmwudGNTdHJpbmc9cS50Y1N0cmluZyxsLmdkcHJBcHBsaWVzPXEuZ2RwckFwcGxpZXN9fSFrfHxudWxsPT1sLnRjU3RyaW5nJiZudWxsPT1sLmdkcHJBcHBsaWVzfHwoaD1aayhuZXcgVGsoYykpLGJsKGgsbCxhKSk7cmV0dXJuIGx9KS5jYXRjaChmdW5jdGlvbihwKXtDLmxvZyhwLFwidXNkUHJFcnJcIil9KX0sXCJ1c2RFcnJcIik7ZnVuY3Rpb24gZGwoYSl7Zm9yKHZhciBiPW5ldyBlbCxjPWFbMF0sZD0hMSxlPTE7ZTxhLmxlbmd0aDtlKyspe3ZhciBmPW5ldyBmbCxnPXZvaWQgMCxoPXZvaWQgMCxrPWFbZV07Zm9yKGggaW4gaylrLmhhc093blByb3BlcnR5KGgpJiYoZi5vcHRpb25zW2hdPWtbaF0pO2ZvcihnIGluIGMpYy5oYXNPd25Qcm9wZXJ0eShnKSYmKGYub3B0aW9uc1tnXXx8KGYub3B0aW9uc1tnXT1jW2ddKSk7ZHx8KGYub3B0aW9ucy50eXBlfHxmLm9wdGlvbnMucmVsYXRlZFNlYXJjaGVzKSYmXCJhZHNcIiE9PWYub3B0aW9ucy50eXBlJiZcInRleHRhZHNcIiE9PWYub3B0aW9ucy50eXBlfHwoZD1mLm9wdGlvbnMuZmlyc3RUZXh0QWRCbG9jaz0hMCk7Yi5KYi5wdXNoKGYpfWZvcih2YXIgbCBpbiBjKWMuaGFzT3duUHJvcGVydHkobCkmJihiLkNjW2xdPWNbbF0pO3JldHVybiBifWZ1bmN0aW9uIGZsKCl7dGhpcy5vcHRpb25zPXt9fWZ1bmN0aW9uIGVsKCl7dGhpcy5DYz17fTt0aGlzLkpiPVtdfTt2YXIgZ2w9XCJjbGlja3RyYWNrVXJsIGNvbnRhaW5lciBpZnJhbWVIZWlnaHRDYWxsYmFjayBsaW5rVGFyZ2V0IHB1YklkIHF1ZXJ5IHNldHRpbmdzSWQgc3R5bGVJZCB3YWl0Rm9yQWRzXCIuc3BsaXQoXCIgXCIpO2Z1bmN0aW9uIGhsKGEpe2lmKDI+YS5sZW5ndGgpdGhyb3cgRGMoXCJObyBvcHRpb25zIHNwZWNpZmllZC5cIik7cmV0dXJuIGFbMV1pbnN0YW5jZW9mIEFycmF5P1thWzBdXS5jb25jYXQoYVsxXSk6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYSwwKX1obD1CKGhsLFwicHBhdGFcIik7XG5mdW5jdGlvbiBpbChhKXt2YXIgYj0hZGUod2luZG93LmxvY2F0aW9uLmhyZWYpLnF1ZXJ5LGM9Yj9cInJlbGF0ZWRzZWFyY2hcIjpcImFkc1wiO2I9Yj8xNTo1O2Zvcih2YXIgZD0hMSxlPTE7ZTxhLmxlbmd0aDsrK2UpaWYoYVtlXS50eXBlPT1jKXtkPSEwO2JyZWFrfWU9W107YT1uKGEpO2Zvcih2YXIgZj1hLm5leHQoKTshZi5kb25lO2Y9YS5uZXh0KCkpZj1mLnZhbHVlLFwiZHluYW1pY1wiPT1mLnR5cGU/ZHx8KGYudHlwZT1jLGYubnVtYmVyfHwoZi5udW1iZXI9YiksZS5wdXNoKGYpKTplLnB1c2goZik7cmV0dXJuIGV9XG5mdW5jdGlvbiBqbChhKXtmdW5jdGlvbiBiKGYpe3N3aXRjaChmKXtjYXNlIFwicmVsYXRlZHNlYXJjaFwiOmNhc2UgXCJzZWFyY2hib3hcIjpyZXR1cm4gZT8xOjI7ZGVmYXVsdDpyZXR1cm4gZT8yOjF9fXZhciBjPTE3MzAxMzY4PT09WWooKSxkPXooXCJfYWZzUnNDb29raWVsZXNzXCIpO2lmKCFjJiYhZHx8Mz5hLmxlbmd0aClyZXR1cm4gYTt2YXIgZT0hZGUod2luZG93LmxvY2F0aW9uLmhyZWYpLnF1ZXJ5O3JldHVybiBhLnNsaWNlKDAsMSkuY29uY2F0KGEuc2xpY2UoMSkuc29ydChmdW5jdGlvbihmLGcpe3JldHVybiBiKGYudHlwZSktYihnLnR5cGUpfSkpfVxuZnVuY3Rpb24ga2woYSxiKXt2YXIgYz1iLmNhLGQ9Yi5vZCxlPWIudGNTdHJpbmcsZj1iLmdkcHJBcHBsaWVzLGc9Yi5ZO2I9Yi5jb29raWU7bnVsbCE9YyYmKGEuY3BwPWMpOyExPT09ZCYmKGEucGVyc29uYWxpemVkQWRzPSExKTtlJiYoYS50Y1N0cmluZz1lKTtudWxsIT1mJiYoYS5nZHByQXBwbGllcz1mKTtudWxsIT1nJiYoYS5zY19zdGF0dXM9Zyk7YiYmKGEuc2N0PWIpfWtsPUIoa2wsXCJhVURUQVwiKTtcbmZ1bmN0aW9uIGxsKGEsYixjLGQpe2M9dm9pZCAwPT09Yz9udWxsOmM7dmFyIGU9YS5CYztkPWR8fERhdGUubm93KCk7Yj1obChiKTtpZihiWzBdJiYhbWMoKSl7Yj1pbChiKTtiPWpsKGIpO2EuWWEmJihiWzBdLnR5cGU9YS5ZYSk7YyYma2woYlswXSxjKTthPWRsKGIpO3ZhciBmPXt9LGc9e307Yz1mdW5jdGlvbihrKXtrPW4oYWIoaykpO2Zvcih2YXIgbD1rLm5leHQoKTshbC5kb25lO2w9ay5uZXh0KCkpe2w9bC52YWx1ZTt2YXIgcD1lW2xdO3AmJnAuQSYmKGZbbF09ITApO3B8fFwiZmlyc3RUZXh0QWRCbG9ja1wiPT09bHx8KGdbbF09ITApfX07YyhhLkNjKTtiPW4oYS5KYik7Zm9yKHZhciBoPWIubmV4dCgpOyFoLmRvbmU7aD1iLm5leHQoKSljKGgudmFsdWUub3B0aW9ucyk7Yz1hYihmKTswPGMubGVuZ3RoJiZjb25zb2xlLndhcm4oXCJUaGUgZm9sbG93aW5nIENTQSBvcHRpb24ocykgd2VyZSBpZ25vcmVkIGR1ZSB0byBiZWluZyBvdmVycmlkZGVuIGJ5IG5hdGl2ZSBzdHlsZSBjb250cm9sczogXCIrXG5jKTtjPWFiKGcpOzA8Yy5sZW5ndGgmJmNvbnNvbGUud2FybihcIlRoZSBmb2xsb3dpbmcgQ1NBIG9wdGlvbihzKSBhcmUgdW5zdXBwb3J0ZWQ6IFwiK2MpOyhkPW1sKGUsYS5DYyxhLkpiLGQse30pKSYmZC50aGVuKGZ1bmN0aW9uKGspe3RrKGspfSl9fWxsPUIobGwsXCJhYXNpXCIpO1xuZnVuY3Rpb24gbWwoYSxiLGMsZCl7aWYoMD09Yy5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIGU9W10sZj1bXSxnPXttYXhUb3A6MCxtaW5Ub3A6MCxyaHM6MH07bmwrKztmb3IodmFyIGg9Yy5sZW5ndGgtMTswPD1oO2gtLSl7dmFyIGs9Y1toXS5vcHRpb25zO2suYWRUZXN0JiYhay5hZHRlc3QmJihrLmFkdGVzdD1rLmFkVGVzdCk7ZGVsZXRlIGsuYWRUZXN0O3ZhciBsPXNrLmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoXCJhbXBwcm9qZWN0Lm5ldFwiKSxwPVtdO2lmKGsuZmlyc3RUZXh0QWRCbG9jayYmIWwmJiF6KFwiX2VuYWJsZVVuaWZpZWRNdWRza2lwcGVySWZyYW1lXCIpKXtsPXt9O2Zvcih2YXIgcj1uKGdsKSxxPXIubmV4dCgpOyFxLmRvbmU7cT1yLm5leHQoKSlxPXEudmFsdWUsbFtxXT1rW3FdO2wucm9sZT1cInNcIjtsLm1hc3Rlck51bWJlcj1ubDswPGgmJihsLnNsYXZlTnVtYmVyPWgpO3I9a2soYSxsLGQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLDIpO2w9a2soYSxsLGQsdm9pZCAwLFxudm9pZCAwLHZvaWQgMCx2b2lkIDAsMyk7Zi51bnNoaWZ0KGwpO2YudW5zaGlmdChyKTtwLnB1c2gocik7cC5wdXNoKGwpO1lbci5GKCldPXI7WVtsLkYoKV09bH0wPT09aD8oay5yb2xlPVwibVwiLGsubWFzdGVyTnVtYmVyPW5sLGs9a2soYSxrLGQsYixlLGcsZiwxLHApLFlbay5GKCldPWspOihrLnJvbGU9XCJzXCIsay5zbGF2ZU51bWJlcj1oLGsubWFzdGVyTnVtYmVyPW5sLGs9a2soYSxrLGQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLDEscCksZS51bnNoaWZ0KGsuc2QpLGYudW5zaGlmdChrKSxnLm1heFRvcCs9ay55YixnLm1pblRvcCs9ay56YixnLnJocys9ay5MYSxZW2suRigpXT1rKX1hPVwibWFzdGVyLVwiK25sO2Zvcih2YXIgdCBpbiBZKSRkKHQpJiYoWVt0XS51YSs9XCJ8XCIrWVthXS51YSk7Zm9yKGM9Yy5sZW5ndGgtMTswPD1jO2MtLSl0PVtcInNsYXZlXCIsYyxubF0uam9pbihcIi1cIiksWS5oYXNPd25Qcm9wZXJ0eSh0KSYmWVt0XS5jYigpO2M9bnVsbDtZLmhhc093blByb3BlcnR5KGEpP1xuYz1ZW2FdLmNiKCk6Qy5sb2coXCJNaXNzaW5nIGFkIGJsb2NrIGZvciBcIithLFwiY0FGT01NXCIpO3JldHVybiBjfW1sPUIobWwsXCJjQUZPXCIpO2Z1bmN0aW9uIG9rKGEsYixjLGQpe2R8fFlbYy5zcGxpdChcIi5cIilbMF1dLnpjKGEpfW9rPUIob2ssXCJoQUNcIik7dmFyIG9sPXt9O2Z1bmN0aW9uIHBrKGEsYixjLGQpe2I9ZC5mdzt2YXIgZT1kLmZoO2Q9ZC5haDtkPVwibnVtYmVyXCI9PT10eXBlb2YgYiYmXCJudW1iZXJcIj09PXR5cGVvZiBlJiZkIGluc3RhbmNlb2YgQXJyYXk/bmV3IG5lKGIsZSxkKTpudWxsO2lmKG51bGwhPWQmJihjPWMuc3BsaXQoXCIuXCIpWzBdLGI9WVtjXSxiLk9jKGQsYSksYi5vcHRpb25zJiZiLm9wdGlvbnMuaWZyYW1lSGVpZ2h0Q2FsbGJhY2smJihhPWIuY29udGFpbmVyLm9mZnNldEhlaWdodCxvbFtjXSE9YSkpKXtvbFtjXT1hO3RyeXtiLm9wdGlvbnMuaWZyYW1lSGVpZ2h0Q2FsbGJhY2soYSl9Y2F0Y2goZil7fX19cGs9QihwayxcImhDXCIpO1xuZnVuY3Rpb24gcWsoYSxiLGMsZCl7YT1ZW2Muc3BsaXQoXCIuXCIpWzBdXTtzay5nZXRDb21wdXRlZFN0eWxlJiZhIGluc3RhbmNlb2YgRGsmJihiPXBhcnNlSW50KHNrLmdldENvbXB1dGVkU3R5bGUoYS5jb250YWluZXJ8fGRvY3VtZW50LmJvZHkpLndpZHRoLDEwKSxkPT1iJiYvTW9iaWxlL2kudGVzdChlYykmJmQtLSk7YS5RYyhkKX1xaz1CKHFrLFwid0NcIik7ZnVuY3Rpb24gcGwoYSxiKXt2YXIgYz17fSxkO2ZvcihkIGluIFkpaWYoWS5oYXNPd25Qcm9wZXJ0eShkKSl7dmFyIGU9WVtkXTtlLm9wdGlvbnMmJmUub3B0aW9ucy5tYXN0ZXJOdW1iZXI9PWImJlwic3RyaW5nXCI9PXR5cGVvZiBlLm9wdGlvbnMuY29udGFpbmVyJiYoZT1lLm9wdGlvbnMuY29udGFpbmVyLGNbZV09KGNbZV18fDApK2EuQltkK1wiLmFDXCJdLnZhbHVlKX1yZXR1cm4gY31wbD1CKHBsLFwiZ0FDXCIpO1xuZnVuY3Rpb24gbWsoYSxiKXt2YXIgYz1ZW1wibWFzdGVyLVwiK2JdO2lmKGMmJmMub3B0aW9ucyYmYy5vcHRpb25zLmFkc1Jlc3BvbnNlQ2FsbGJhY2spe2E9cGwoYSxiKTt0cnl7Yy5vcHRpb25zLmFkc1Jlc3BvbnNlQ2FsbGJhY2soYSl9Y2F0Y2goZCl7fX19bWs9QihtayxcImFDQ1wiKTtmdW5jdGlvbiByayhhLGIsYyxkKXtpZigoYT1ZW1wibWFzdGVyLVwiK2JdKSYmYS5vcHRpb25zJiZhLm9wdGlvbnMudmlzaWJsZVVybHNDYWxsYmFjayl7ZD1kP2Quc3BsaXQoXCJ8XCIpOltdO3RyeXthLm9wdGlvbnMudmlzaWJsZVVybHNDYWxsYmFjayhkKX1jYXRjaChlKXt9fX1yaz1CKHJrLFwidlVDXCIpO3ZhciBubD0wLFk9e30sc2s9d2luZG93O3ZhciBxbD1sbDtmdW5jdGlvbiBybChhKXtzbChhcmd1bWVudHMpfXZhciBzbD1FKGZ1bmN0aW9uKGEpe3ZhciBiPWEmJmFbMF18fHt9O2I9Y2woYi5wdWJJZHx8XCJcIiwhIWIuZ2NzY3x8ITEsd2luZG93KTtiIGluc3RhbmNlb2YgUHJvbWlzZT9iLnRoZW4oZnVuY3Rpb24oYyl7cWwoQ2osYSxjKX0pOnFsKENqLGEsYil9LFwiaUFBUFJcIik7XG5pZighKHdpbmRvdy5JU19HT09HTEVfQUZTX0lGUkFNRV98fHdpbmRvdy5nb29nbGUmJndpbmRvdy5nb29nbGUuYWRzJiZ3aW5kb3cuZ29vZ2xlLmFkcy5kb21haW5zJiZ3aW5kb3cuZ29vZ2xlLmFkcy5kb21haW5zLkNhZikpe3ZhciB0bD1bXCJnb29nbGVcIixcImFkc1wiLFwiZG9tYWluc1wiLFwiQ2FmXCJdLHVsPXY7dGxbMF1pbiB1bHx8XCJ1bmRlZmluZWRcIj09dHlwZW9mIHVsLmV4ZWNTY3JpcHR8fHVsLmV4ZWNTY3JpcHQoXCJ2YXIgXCIrdGxbMF0pO2Zvcih2YXIgdmw7dGwubGVuZ3RoJiYodmw9dGwuc2hpZnQoKSk7KXRsLmxlbmd0aHx8dm9pZCAwPT09cmw/dWw9dWxbdmxdJiZ1bFt2bF0hPT1PYmplY3QucHJvdG90eXBlW3ZsXT91bFt2bF06dWxbdmxdPXt9OnVsW3ZsXT1ybH07XG59KSgpOyJ9LCAiaGVhZGVyc1NpemUiOiAwLCAiYm9keVNpemUiOiA1NDQwNywgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogNTQ0MDd9LCAiY2FjaGUiOiB7fSwgInRpbWluZ3MiOiB7ImRucyI6IDAuNTMyLCAiY29ubmVjdCI6IDY4LjEwMywgInNzbCI6IDY4LjEwMywgInNlbmQiOiAwLCAid2FpdCI6IDg5LjM0NSwgInJlY2VpdmUiOiA0My44OTV9LCAicGFnZXJlZiI6ICJwYWdlQDBiMzE5MDRhMTIzMmNkZDBjYThlZWQyZjRkYmUxMDVkIiwgInNlcnZlcklQQWRkcmVzcyI6ICJbMmEwMDoxNDUwOjQwMTc6ODBmOjoyMDA0XSIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlFVSUMiLCAic3ViamVjdE5hbWUiOiAiKi5nb29nbGUuY29tIiwgImlzc3VlciI6ICJHVFMgQ0EgMUMzIiwgInZhbGlkRnJvbSI6IDE2OTgwNTk5MDQsICJ2YWxpZFRvIjogMTcwNTMxNzUwM319LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDIzLTExLTIwVDAyOjM5OjA4Ljg4NloiLCAidGltZSI6IDI0LjcwNywgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHBzOi8vY3Vyc2VkLWtuaWdodC5mci90cmFjay5waHA/ZG9tYWluPWN1cnNlZC1rbmlnaHQuZnImdG9nZ2xlPWJyb3dzZXJqcyZ1aWQ9TVRjd01EUTBOemswT0M0Mk5EbzBObUV5WVdNeE1ETm1NMlZsWXpRek5UaG1ZMkU1TmpjNFpXVXhZVFk1T0RkaVpEUmxNRGxoTVdNNU5qa3laalJtWXpCbVpXWTRNMkptTnpjM016Rm1PalkxTldGak5tTmpPV00wTVdFJTNEIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMS4xIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIkFjY2VwdCIsICJ2YWx1ZSI6ICIqLyoifSwgeyJuYW1lIjogIkFjY2VwdC1FbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwLCBkZWZsYXRlLCBiciJ9LCB7Im5hbWUiOiAiQWNjZXB0LUxhbmd1YWdlIiwgInZhbHVlIjogImVuLVVTLGVuO3E9MC45In0sIHsibmFtZSI6ICJDb25uZWN0aW9uIiwgInZhbHVlIjogImtlZXAtYWxpdmUifSwgeyJuYW1lIjogIkhvc3QiLCAidmFsdWUiOiAiY3Vyc2VkLWtuaWdodC5mciJ9LCB7Im5hbWUiOiAiUmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwczovL2N1cnNlZC1rbmlnaHQuZnIvIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtRGVzdCIsICJ2YWx1ZSI6ICJlbXB0eSJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLU1vZGUiLCAidmFsdWUiOiAiY29ycyJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLVNpdGUiLCAidmFsdWUiOiAic2FtZS1vcmlnaW4ifSwgeyJuYW1lIjogIlVzZXItQWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExOS4wLjYwNDUuOSBTYWZhcmkvNTM3LjM2In0sIHsibmFtZSI6ICJkZXZpY2UtbWVtb3J5IiwgInZhbHVlIjogIjgifSwgeyJuYW1lIjogImRvd25saW5rIiwgInZhbHVlIjogIjEuNzUifSwgeyJuYW1lIjogImRwciIsICJ2YWx1ZSI6ICIxIn0sIHsibmFtZSI6ICJlY3QiLCAidmFsdWUiOiAiNGcifSwgeyJuYW1lIjogInJ0dCIsICJ2YWx1ZSI6ICIwIn0sIHsibmFtZSI6ICJ2aWV3cG9ydC13aWR0aCIsICJ2YWx1ZSI6ICIxOTIwIn1dLCAicXVlcnlTdHJpbmciOiBbeyJuYW1lIjogImRvbWFpbiIsICJ2YWx1ZSI6ICJjdXJzZWQta25pZ2h0LmZyIn0sIHsibmFtZSI6ICJ0b2dnbGUiLCAidmFsdWUiOiAiYnJvd3NlcmpzIn0sIHsibmFtZSI6ICJ1aWQiLCAidmFsdWUiOiAiTVRjd01EUTBOemswT0M0Mk5EbzBObUV5WVdNeE1ETm1NMlZsWXpRek5UaG1ZMkU1TmpjNFpXVXhZVFk1T0RkaVpEUmxNRGxoTVdNNU5qa3laalJtWXpCbVpXWTRNMkptTnpjM016Rm1PalkxTldGak5tTmpPV00wTVdFPSJ9XSwgImhlYWRlcnNTaXplIjogNDc0LCAiYm9keVNpemUiOiAwfSwgInJlc3BvbnNlIjogeyJzdGF0dXMiOiAyMDAsICJzdGF0dXNUZXh0IjogIk9LIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMS4xIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJ2aWV3cG9ydC13aWR0aCJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogImRwciJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogImRldmljZS1tZW1vcnkifSwgeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJydHQifSwgeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJkb3dubGluayJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogImVjdCJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogInVhIn0sIHsibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAidWEtZnVsbC12ZXJzaW9uIn0sIHsibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAidWEtcGxhdGZvcm0ifSwgeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJ1YS1wbGF0Zm9ybS12ZXJzaW9uIn0sIHsibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAidWEtYXJjaCJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogInVhLW1vZGVsIn0sIHsibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAidWEtbW9iaWxlIn0sIHsibmFtZSI6ICJBY2NlcHQtQ2gtTGlmZXRpbWUiLCAidmFsdWUiOiAiMzAifSwgeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICJ2YWx1ZSI6ICIqIn0sIHsibmFtZSI6ICJDb250ZW50LUVuY29kaW5nIiwgInZhbHVlIjogImd6aXAifSwgeyJuYW1lIjogIkNvbnRlbnQtTGVuZ3RoIiwgInZhbHVlIjogIjIwIn0sIHsibmFtZSI6ICJDb250ZW50LVR5cGUiLCAidmFsdWUiOiAidGV4dC9odG1sOyBjaGFyc2V0PVVURi04In0sIHsibmFtZSI6ICJEYXRlIiwgInZhbHVlIjogIk1vbiwgMjAgTm92IDIwMjMgMDI6Mzk6MDggR01UIn0sIHsibmFtZSI6ICJTZXJ2ZXIiLCAidmFsdWUiOiAibmdpbngifSwgeyJuYW1lIjogIlZhcnkiLCAidmFsdWUiOiAiQWNjZXB0LUVuY29kaW5nIn0sIHsibmFtZSI6ICJYLUN1c3RvbS1UcmFjayIsICJ2YWx1ZSI6ICJicm93c2VyanMifV0sICJjb250ZW50IjogeyJzaXplIjogMCwgIm1pbWVUeXBlIjogInRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIsICJjb21wcmVzc2lvbiI6IDAsICJ0ZXh0IjogIiJ9LCAiaGVhZGVyc1NpemUiOiA1NDUsICJib2R5U2l6ZSI6IDIwLCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiA1NjV9LCAiY2FjaGUiOiB7fSwgInRpbWluZ3MiOiB7ImRucyI6IC0xLCAiY29ubmVjdCI6IC0xLCAic3NsIjogLTEsICJzZW5kIjogMCwgIndhaXQiOiAxNS4zMjgsICJyZWNlaXZlIjogOS4zNzl9LCAicGFnZXJlZiI6ICJwYWdlQDBiMzE5MDRhMTIzMmNkZDBjYThlZWQyZjRkYmUxMDVkIiwgInNlcnZlcklQQWRkcmVzcyI6ICIxODUuNTMuMTc4LjUyIiwgIl9zZXJ2ZXJQb3J0IjogNDQzLCAiX3NlY3VyaXR5RGV0YWlscyI6IHsicHJvdG9jb2wiOiAiVExTIDEuMyIsICJzdWJqZWN0TmFtZSI6ICIqLnBhcmtpbmdjcmV3Lm5ldCIsICJpc3N1ZXIiOiAiVGhhd3RlIFRMUyBSU0EgQ0EgRzEiLCAidmFsaWRGcm9tIjogMTU5NTIwMzIwMCwgInZhbGlkVG8iOiAxNjYzNTAyNDAwfX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjMtMTEtMjBUMDI6Mzk6MDguOTIyWiIsICJ0aW1lIjogODEuMzc4LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9kMzhwc3JuaTE3YnZ4dS5jbG91ZGZyb250Lm5ldC90aGVtZXMvY2xlYW5QZXBwZXJtaW50QmxhY2tfNjU3ZDkwMTMvaW1nL2Fycm93cy5wbmciLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiOmF1dGhvcml0eSIsICJ2YWx1ZSI6ICJkMzhwc3JuaTE3YnZ4dS5jbG91ZGZyb250Lm5ldCJ9LCB7Im5hbWUiOiAiOm1ldGhvZCIsICJ2YWx1ZSI6ICJHRVQifSwgeyJuYW1lIjogIjpwYXRoIiwgInZhbHVlIjogIi90aGVtZXMvY2xlYW5QZXBwZXJtaW50QmxhY2tfNjU3ZDkwMTMvaW1nL2Fycm93cy5wbmcifSwgeyJuYW1lIjogIjpzY2hlbWUiLCAidmFsdWUiOiAiaHR0cHMifSwgeyJuYW1lIjogImFjY2VwdCIsICJ2YWx1ZSI6ICJpbWFnZS9hdmlmLGltYWdlL3dlYnAsaW1hZ2UvYXBuZyxpbWFnZS9zdmcreG1sLGltYWdlLyosKi8qO3E9MC44In0sIHsibmFtZSI6ICJhY2NlcHQtZW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIifSwgeyJuYW1lIjogImFjY2VwdC1sYW5ndWFnZSIsICJ2YWx1ZSI6ICJlbi1VUyxlbjtxPTAuOSJ9LCB7Im5hbWUiOiAicmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwczovL2N1cnNlZC1rbmlnaHQuZnIvIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtZGVzdCIsICJ2YWx1ZSI6ICJpbWFnZSJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLW1vZGUiLCAidmFsdWUiOiAibm8tY29ycyJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLXNpdGUiLCAidmFsdWUiOiAiY3Jvc3Mtc2l0ZSJ9LCB7Im5hbWUiOiAidXNlci1hZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTE5LjAuNjA0NS45IFNhZmFyaS81MzcuMzYifV0sICJxdWVyeVN0cmluZyI6IFtdLCAiaGVhZGVyc1NpemUiOiA1ODQsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogImFjY2VwdC1yYW5nZXMiLCAidmFsdWUiOiAiYnl0ZXMifSwgeyJuYW1lIjogImFnZSIsICJ2YWx1ZSI6ICIzMzE4OSJ9LCB7Im5hbWUiOiAiY29udGVudC1sZW5ndGgiLCAidmFsdWUiOiAiMTEzNzUifSwgeyJuYW1lIjogImNvbnRlbnQtdHlwZSIsICJ2YWx1ZSI6ICJpbWFnZS9wbmcifSwgeyJuYW1lIjogImRhdGUiLCAidmFsdWUiOiAiU3VuLCAxOSBOb3YgMjAyMyAxNzoyNTo1OSBHTVQifSwgeyJuYW1lIjogImV0YWciLCAidmFsdWUiOiAiXCI2MmI0NDQxYi0yYzZmXCIifSwgeyJuYW1lIjogImxhc3QtbW9kaWZpZWQiLCAidmFsdWUiOiAiVGh1LCAyMyBKdW4gMjAyMiAxMDo0NDo0MyBHTVQifSwgeyJuYW1lIjogInNlcnZlciIsICJ2YWx1ZSI6ICJuZ2lueCJ9LCB7Im5hbWUiOiAidmlhIiwgInZhbHVlIjogIjEuMSA0NGMyYTMxZTBjY2IxMGRmOTAxZTNkZTBjOTllOWFkNi5jbG91ZGZyb250Lm5ldCAoQ2xvdWRGcm9udCkifSwgeyJuYW1lIjogIngtYW16LWNmLWlkIiwgInZhbHVlIjogIkRpVmNuWTNlcWdQMWlmUTVxTHR1ZjdoQUx3NjMybGRqczBOZ1EzU2FCdGxhWUlzUWsxUnUwdz09In0sIHsibmFtZSI6ICJ4LWFtei1jZi1wb3AiLCAidmFsdWUiOiAiQ0RHNTAtUDIifSwgeyJuYW1lIjogIngtY2FjaGUiLCAidmFsdWUiOiAiSGl0IGZyb20gY2xvdWRmcm9udCJ9XSwgImNvbnRlbnQiOiB7InNpemUiOiAxMTM3NSwgIm1pbWVUeXBlIjogImltYWdlL3BuZyIsICJjb21wcmVzc2lvbiI6IDAsICJ0ZXh0IjogImlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUJkd0FBQUpZQ0FNQUFBQlBiZFFXQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF3QlFURlJGQUFBQS8vLy9ZMlIwU1V0ZVNVdGRTVXRjTUROSlNFdGZZV056WTJWMVltUjBZMlYwRlJrd1BVQlRTRXRkU1V4ZFNFdGNUVkJpVGxGaVQxSmpFaGN1RkJrd0lpWTdLQ3hBS3k5Q01EUkpMakpHTHpOSExURkVNRFJJTGpKRk1EUkhNVFZJTWpaSk5UbE1PRHhRTmpwTk9UMVJOenRPT2o1U09qNVJPejlTUEVCVFNVeGNZbVYxWVdSMFltVjBZMlowWW1WekV4Z3RGUm93R3lBMUhDRTJIU0kzSGlNNEhTSTJIeVE1SUNVNklTWTdJaWM4SWljN0pDaytJeWc4SlNvL0pDazlKaXRBSlNvK0p5eEJKaXMvS0MxQ0tTNURLQzFCS1M1Q0tpOURLekJFTERGRk1EVkpNVFZIUEVCU1BVRlRTVTFmU0V4ZFMwOWdTRXhjVFZGaVlXVjFFUmN1RVJjdEVoZ3ZFaGd1RXhrd0V4a3ZFeGt1RkJvd0ZCb3ZGUnN4Rmh3eEZ4MHlHQjR6R1I4MEdpQTFHeUUySFNNNEhpUTVIeVU2SUNZN0lpYzZKQ2s4SmlzK0p5dy9LQzFBS1M1QktpOUNLekJETERGRUtpOUJMVEpGTGpOR0x6UkhNRFZJTVRaSkx6UkdNRFZITXpoTE5qdE9ORGxMTzBCVE8wQlNQRUZUUjB4ZVltWjFZV1YwWW1aMEVSZ3VFeG93R3lFMUhDSTJIU00zSGlRNEh5VTVJQ1k2SVNjN0lpZzhJU2M2SXlrOUl5azhKQ285Sml4QUppdy9LekZGS1M5Q01EWkpSMHhkUjB4Y1NFMWRZbVp6RVJndEVoa3VGQnN3RmgweEdTQTBHaUUxR3lJMkhDTTNIU1E0SUNjOElDYzdLakJDTGpSR01EWklNRFpIRVJrdEV4c3dHU0UxSUNnOElDZzdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJCWGVkQUFBQUxGMFVrNVQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy84QTEvUmNaQUFBS0VoSlJFRlVlTnJzM1F1YlZkVjV3UEgxOUpLTE5ZWVdsRnFEQ0NSUk1GS0p3NWlnQm1uUW1rWTdtZHJiaU9PVXFFMU1CSjFtQnZBU0U1c2dBak5xYk5KU2JTcFRUY1VXVFQ5aXp6a3pNSmV6enpsN3I3MHU3L3V1Ly84TDVQRmsxdS9aejJLdGQ3bi9JeUlpYzdsWCtBMklpS3kxeCszWkErOUVSTFpvMzlQRnZjUDc1L2d0aUlqczBMNkNleWQ0SnlJeVEvc3E3dkJPUkdTRzlyVzR3enNSa1JIYTErTU83MFJFSm1qZmlEdThFeEVab0wwZmQzZ25JbEpQZXhYdThFNUVwS3BYS2lDdndoM2VpWWhVMHo0SWQzZ25JbEpNKzJEYzRaMklTQzN0dzNDSGR5SWlwYlFQeHgzZWlZaFUwajRLZDNnbkloTFpDTHRINGc3dlJFVHFhSytETzd3VEVTbWp2Ujd1OEU1RXBJcjJ1cmpET3hHUkl0cnI0dzd2UkVScWFHK0NleWQrV0NJaURiUTN4QjNlaVlnMDBONFlkM2duSXBKUHV3ZnU4RTVFSkoxMkw5emhuWWhJTnUyZXVNTTdFWkZrMnIxeGgzY2lJcm0wdDhCOXp5djg2RVJFTW1sdmd6dThFeEVKcGIwZDd2Qk9SQ1NTOXJhNHd6c1JrVURhMitNTzcwUkU0bWdQZ1R1OEV4RUpvejBNN3ZCT1JDU0s5bEM0d3pzUlVaQitza2NXN3ZCT1JDU0c5cEM0d3pzUmtSRGF3K0lPNzBSRUltZ1BqVHU4RXhFSm9EMDg3dkJPUkpTZDloaTR3enNSVWFNaU9Cd0ZkM2duSXNwS2V5emM0WjJJS0NQdDhYQ0hkeUtpYkxUSHhCM2VpWWd5MFI0WGQzZ25Jc3BDZTJ6YzRaMklLQVB0OFhHSGR5S2k1TFNud0IzZWlZZ1MwNTRHZDNnbklrcEtleXJjNFoySUtDSHQ2WENIZHlLaVpMU254TDNEKytmNGY1YUlvTjBjN3AzZ25ZaWczU0R1OEU1RTBHNFNkM2duSW1nM2lUdThFeEcwbThRZDNva0kyazNpRHU5RUJPMG1jWWQzSWpMZksvbUV6WWc3dkJNUnRKdkVIZDZKQ05wTjRnN3ZSQVR0Sm5HSGR5S0NkcE80d3pzUlFidEozT0dkaU13a0ExVXB1TU03RVVHN1NkemhuWWlnM1NUdThFNUUwRzRTZDNnbkltZzNpVHU4RXhHMG04UWQzb2tJMmszaTNvay9GU0tDZG9PNHd6c1JRYnRKM09HZGlLRGRKTzd3VGtUUTdvLzdyWHZnbllqSUZ1MTdkcnVUTytHZGlNZ1c3VHRQdVBuNUV5L0JPeEdSSmRybjV6dTRkeExOK3l2OEdSRVJ0RGVpL1FydThFNUVaSWoyVmR6aG5ZaklETzFyY1lkM0lpTE50Ti8yNHhPcm9LL0ZIZDZKaU5UUy90STZ6dGZqRHU5RVJBWm83OGNkM29tSXF2cUpKdHFyY0lkM0lpSk50Tzk2cVFMeUt0emhuWWhJRGUybktobXZ4aDNlaVlnVTB6NFlkM2duSWxKTCt6RGNPN3gvQ2Q2SkNOb1YwajRjOS9uNVU3dmduWWpLYlk5VzJrZmhEdTlFQk8wS2FSK05PN3dURWJTcm83ME83dkJPUk5DdWpQWjZ1TS9Qbi93eXZCTVJ0S3VodlM3dThFNUUwSzZJOXZxNHd6c1JRYnNhMnB2Z0R1OUVCTzFLYUcrR083d1RFYlRuNnVWVGpiaHVocnQwM3YvcW1wSmlJVkw4aWxwU2Z5aWE5bTBOc1c2S3UyemVOKzh0cWE4Z0Q4WHVLMFV0cWMyR2FQZkJYVEx2WmVHK2R5LzJVT1R2OXIzZ3JwUjJQOXpsOGw0YTd1aE9VU3R0UGNuRWZmY1h0M2t4N1llN1ZONkx3eDNkQ2R0dDQ3NTc1d2xQcEgxeGw4bDdlYmlqTzJHN1lkejlhVytEdTBUZUM4Ujk3ODlCaUdMMDg3M2dycG4yZHJoM2VkOE43cm03RTRlSVl6SUdjVzlIZTF2Y083enZ2QlhjTS9jM1NFU2grK3hlY05kTmUzdmNaZkZlSnU0Y2VDZSsyNDNoM3A3MkVMaEw0cjFRM05HZHNOMFM3aUZvRDRPN0hONUx4UjNkQ2R2TjRCNkc5bEM0ejgrZmVPbFdjT2RJSkZub21yM2dycC8yY0xoM0VzQjd3YmlqT3dXcTRFVzAyUkR0UVhFWHdIdkp1S003WWJ0eTNFUFNIaGozN0x3WGpUdTZFN1pyeGowczdjRnh6OHg3MmJoeldaWDRwMVMxdU4vMjR4T0JMUTZPZTFiZUM4ZDk3eitqRTdYcEQvYUNleWJhWHdvdmNRVGNNL0plT3U1Y1ZxVTJmWFl2dUp1aFBSTHUyWGd2SG5jT3ZCTjdNdHB3ajBON05Od3o4UTd1NkU3WXJncjNYUy9GTWpnYTdsbDRCM2NPelpCbjE3QjBNdUMrNjFROGdTUGlub0YzY0VkM3duWTF1TWVrUFRMdXlYa0hkM1FucjFnMTZYR1BTM3QwM0R1OGZ3bmMwWjJ3SGR6VDBwNEE5L241VTd2QUhkMUpjRDlueGFUR1BUN3RTWEJQeUR1NFgrbE94Q0tPeVVqRlBRWHRpWEJQeGp1NFg0M3JURlN6ejdKYTB1S2VodlprdUNmaUhkeFg0OEE3OGQwdUVQZFV0Q2ZFZlg3KzVKZkJIZDBKMjB2R1BSM3RTWEZQd0R1NG96dGh1MWpjVTlLZUdQZm92SU03aDJhb1NWeGRTb2g3V3RxVDR4NlpkM0JIZDJvUUt5UWQ3cWxwejRCN1ZON0JIZDBKMndYaS92S3A5Tkptd0QwaTcrQ083b1R0NG5CL2VWc09aN1BnSG8xM2NPK1B0L2VvTXE2bHBzSTlEKzNaY0kvRU83aFh4TnQ3eERHWmZMam5vajBqN2xGNEIvZXF1S3hLZlhFdE5RbnV1Nys0TFord0dYR1B3RHU0VjhhQmQrSzdQUVB1dTNlZXlPbHJWdHlEOHc3dWxiMExaclMrZDFrVjBYSFBUSHQyM0FQekR1NVYvU21XMGNaK3hycUlpM3QyMmdYZzN1VjlON2hIN0hlUWpOQTlMZTRDYUJlQmU0ZjNuYmVDZTZ6dXdER3E2ZzdXUml6Y1JkQXVCUGRndklON1h4eHpwd0V4VnlZTzdrSm9GNE43SU43Qkhkc0ozWFBpTG9aMlFiZ0g0UjNjc1ozUVBSL3VnbWdYaGZ2OC9JbVhiZ1gza01FWERZODFFaEozVWJRTHc3MVRPOTdCZlcxM1loZU42azdXU1NqY2hkRXVEL2QydklNN3RsT3p1TTRVQm5keHRFdkV2UTN2NEw0YTExSUozVlBoTHBCMm1iajc4dzd1MkU3b25ocjMyMzU4UWlLak1uSDM1UjNjcjhUSUFhb2RsMVZiNFg3YlMwSVJsWXE3SCsvZ3ZoSWpCd2pkaytBdWxuYkp1UHZ3RHU3TE1YS0FHc1VvQWsvY0JkUGV3ZjNCT1VPOGczc3ZYdWVnaG5HZHlRZjNYWkpwbjN2UUhUejBnQjNld2IwYjExSUozZVBqdnV1VWFOb1BIWFFITzVuaEhkeXhuZEE5QmU3aWFUKzRqTHNaM3NHZGtRUGtHMnVuUHU0S2FMK0t1M1RldndUdTlib1RvOGczUmhGc05rVDdHdHlGODM1cUY3aGpPOFh0WFhCWFQvc0RoNjZLdmdaM0E3eVhqanZYVWduZDQrSXVuUGExbnEvRFhUM3ZtN0dkQ04yajRhNkk5ajdjbGZOZU51Nk1IQ0IwajRtN0t0b3JjQmZPKzhrdmd6dTJVN3grQnU0YWFmK0xQKytYdkFKM3hieVhqRHNqQnloSWQ0QzdQdHEvV2VWNEplNXFlUzhZZDBZT1VLQStBKzRXYUIrSXUxTGV5OFdkYTZrVXJHdkEzUUR0UTNBL2VQQ2J2MUxIKzJac0owTDNvTGkvckpQMm9iZ3I1TDFVM09HSXdnYnVWMm5mcHBUMkViaXI0NzFNM08vRUlncmRuZUN1blBhUnVDdmpmVE8yRTZGN0lOeFYwMTREOXc3djMxTERlNG00Y3kyVm92UnU0Ymp2L3FKdTJtdmhmdkRnSVMyOGI4WjJJblJ2ai92dW5TZVUwMTRUZHpXOGI4WjJJblJ2aTdzRjJtdmpyb1QzNG5CbjVBQkY3R2RsNG02RDlnYTRpK2Q5ZDRHNE0zS0FvblpIZ2JqTHBuMzJYK3FMM1FCMzZienZ2TFUwM0JrNVFKSDdUR200QzZmOVVCT3ZHK0V1bnZlL0x1b3ZrV3VwRkwyeUxxditrU0hhRytNdW12ZEwyMzg2cVQ4OElaMFpXSHcvM1g3SkRPMGV1SXZsL2RMMlV6c21EUHg5VFY0SEU2U3ZUMXRZZXhNN1RwMFV5ZnZxcTlkeGNSZkplNWYySFRad24veGRwQ0ErMi9QZzNra2U3MTYwZStJdWp2ZGwycTNnUHZrT1ZwQ3UzakdFdXpUZVBXbjN4bDBVNzVkTzdsakpDTzdvVHRpZUVYZEp2SHZUM2dMM0R1OFB6c21pM1E3dTZFNmF1akJwRFhjcHZMZWd2Ulh1SW5oLzRaWWRPd3ppUHZsNXhDQnN6NGk3Qk41YjBkNFM5K3k4cjZmZEV1NGNpU1QrTFRVdjdybDViMGw3YTl5ejhyNlJkbHU0b3p0aGUxN2NkK3k0NVFXMXRBZkFQZHRiMnYyMEc4Tjk4dmVBZzZUM25VblR1T2ZpUFFEdFlYRFB3WHNWN2Rad243eUFIU1M3ejA5YXh6MEg3MEZvRDRWN2F0NnJhVGVITzllWlNIYTNUeGFBKzQ0ZHA3WXJwRDBjN2lsNUgwUzdQZHc1RWttU2UyZXlETnhUOGg2TTlwQzRwK0o5KzBEYURlS083b1R0QW5CUHhmdmNBd0ZCRG9sN0N0NVg1Z3dVZ3pzSDNrbHFGeVpMd2owRjcwRnBENDE3Wk40dkRhZmRKTzRjaVNTWldWeHJFOE45aWN0N1lOckQ0eDZSOTVHMEc4VWQzUW5iUmVBZWsvZHZQeENjNHZDNFIrSzlCdTFXY1VkM3duWVp1TWZpdmY2cjE1bHhqOEI3TGRyTjRzNzdIU1NyVDA4V2kzdVg5MHNhYUkrRmUyRGVhOUp1RjNjT3ZKT2ticDhzR2ZmUXZFZWlQUjd1SGQ1L2xacDJ3N2h6SkpMazlNNWs0Ymp2Q1BnYVh6VGFZK0orOE9BM2Y1V1dkc3U0b3p0aHV4emNRNDJNakVoN1hOd0Q4TjZJZHRPNG96dko2TUlrdUFmaVBTcnRzWEZ2eWZ2YVI1YUt4NTNyVElUdG9uQnZ5WHRrMnVQajNvTDN4clFieDUwamtaUS8yeXRzb2pFNTNyeEhwejBGN3A1dmFiOXd5NDRkNEk3dWhPMlNjZmZrUFFIdGFYRDM0TjJMZHZ1NDgzNEg1ZXc3aytBZWd2Y2t0S2ZDdlNIdm5yUVhnRHZ2ZDFDK1BqOEo3Z040ZjBFZTdlbHdiOEM3TiswbDRNNTFKc3JWN1pQZ1ByRGF6elVsb3owbDdqVjViMEY3RWJoekpKTHk5TTRrdUxmbWZmWlFRbkJUNGw2RDkxYTBsNEU3dWhPMkM4Uzl3L3QyU2JTbnhuMEU3eTFwTHdSM0RyeFQraTVNZ252TGtaR0phVStQK3hEZXQ3ZWx2UlRjT1JKSnFTdGtZVTIwSm1nUTczUGZPcFNjMnZTNEQrQzkyWnlCd25GSGQ4SjJrYmhYOHg3dzFXdmh1UGZ6ZmlrSTdRWGhqdTZFN1RKeDcrYzlEKzI1Y0YvUGV5amFTOEtkOXpzb1ZaK2VCUGNXdk9laVBSL3VYZDduQXROZUZPNGNlS2MwM1Q0Sjd2Njg1Nk05Sis0ZDNoK2NDMHA3V2JoekpKSlM5TTRrdUh2eWZpa3I3WGx4Ny9BKys4aU9IZURPeGd5SjdUcHc5ejczUG5zb0s2OVpjVDk4N05qeEx6d0M3bDc5UHU1UWlsNEZkei9hdjNEODJMSERoZUxlb2IzWEh6OEM3czE3RkhXSXN6SmljZS9SM3Uxd2diaGZvVDBvNytYZ3ZnbHpLRldid04yWDlxeTh1L3kwQitSOWd1OTJvdUE5Q3U3Tjl0cVByK2Z0Y0VHNGI2UTlHTzhUMkU2RTdqbHh2MlcyZ3JmRGhlRCt5MlBWQmVCOUF0dUowRDBmN2pmTkR1RHRjQUc0RDZJOUNPOWw0QTQxeEQrcmlzVDlwaDhONGUyd2NkeUgwZDdqZlR1NGo0aUg5aWhMRjhDOURlMFplSGVTYU8vMm81dkFIZHRKWU5lQmV5dmF1LzNTS081MWFHL0p1MzNjdVpaSzZDNFE5MXEwSitiZFNhTzl4L3ZONEk3dGhPNWFjSzlOZTQvM3c3WndiMEo3dCtNM2czdEZqQnlnckwwSzdtMXBUN2o1bmdMM3cwMXA5K2JkT080Y2dTUjBsNFo3YzlwVDhSNGY5OFBIUFBQZzNUYnVtN0NGY3JjSjNOZDE4M0ZmMytMejd0NFNTcnNYNzZaeC8zZGtvZnc5Q3U0aGFFL0ErMzN1NGorK0paUjJEOTR0NDg2ZURLRzdKTnpYVFFjVHgvdDkzMXR5Rnk5RzQ3MDE3WTE1bjhCMkluUlBnSHNBMmlQeWZzOEhIZGk3dUhkNHYwY283Y3U4UHdMdWtFSnlBdmRBdEVmaS9aNzNlNnd2NDM3eDR2c0hoTkxlNDczdWMwMVdjZWRhS29ucVF0bTRCNlE5QXU4cnRLL2lmdkhpMGdHaHREZmdmUUxiaVJKMFhjRzRCNlk5TU8vUHZIK1Y5Rlhjdy9FZW5QYmFJeU50NHM2MVZFSjNLYmhIb0QwYzcvZDlmMmtONkd0eDcvRCt6RnRDYWEvSCt3UzJFNkY3Tk53ajBSNkc5L1cwYjhTOXczdkxvelB4YUsvRHUwWGNHVGxBNkM0RDk3NzM4eVR4dnBIMmZ0emJuWXlNUy90bzNpZXduU2hScnhhRyt5MnowWG56NS8yKzd5MzFTVjZCdXpmdnZ6eVdvbUc4MjhOOUU0YVExRGFWaFB0TnMwbDRPOXp1Z014bzNDOWVmUDhlb2JRUDU5MGM3b3djSU1IZFhnenVmdFBCRXZGZVRmdEEzQnNmZkU5SCt6RGVyZUhPdFZRUzNhTmw0SjZROXVhOEQ2SjlDTzZOVGthbXBYM3djMDBUMkU2RTdrRnhUMHg3cytlYW5ubC9zT0JEY0svTmUzcmFCL0Z1QzNmb0lQbFp4ejBEN2JWNTd6OGdVeC8zRHUvZmYwc203VDNlLzhReTdseExKUlZkc0l4N0p0cHJ2Y1kzZ3ZhUnVJODgrSjZQOXFxUmtSUFlUb1R1Z1hEUFNQdkl6ZmVSdE5mQWZkakp5TU41YWUvbjNRN3VYRXNsTlYxbkUvZmN0QS9qL2I0UGxrYkRYUWYzQWJ3ZlBpYWl0YnhQWURzUnVnZkEvZWJqTW53NzNPaUFqQWZ1RlFmZmhkQytudmNKYkNkQzk5YTRTNkc5aXZlYXROZkgvZUxGL3pvZ2svYTF2QnZCblpFRHBLeFhMZUVlY1RwWWU5NXIwOTRFOXpVbkk0WFJ2c3E3RGR3M1lRVnBhNU1aM01YUnZwYjNaNVlhZ04wRTl4WGVCZEsrelBzak5uQm41QUFwN0hZYnVJdWtmWVgzR2dka1d1RGU1ZjNaWTFJNy9vWGRYRXNseXBPRnk2cC9LWlgyVHM4ZVdHcUlkVVBjWC8vZzNQazNwUEsrOWJtNWsxSmo3Uk90OUxEWVpUcjMzRmFwdEw5eC90d0hyMGZFdlVON041bThiMzN1dzFtNXVNTTcwWEtDRituYzdJY2llZS9TM3V2MVNMaXYwTjVyOFZtQnRNK0t4djFoVmpXUjVPLzJMdTZ6QW5tL1NudEQzcDBQN2VKNFg2WmROdTU4dXhPSi9tNWZ4cjJUS043WDBkNklkK2RIdXlqZXI5QXVIWGQwSjJ6WGdMc2czdnRvYjhCN0xkeGZQMWVkQ041WGFSZVBPN29UdHF2QVhRanZsYlRYNXQzNTB5NkM5N1cweThlZGZYY3F1dTE2Y0JmQSswRGFhL0krQ3ZlbHMrZUdsNVgzOWJUTHg1MXZkK0s3WFF2dW1YbC9kbkVFdmErM3czMGs3Vmw1My9yYzdJYms0NDd1aE8xYWNNL0krMGphYS9EdTJ0S2VqZmQrMmxYZ2p1NkU3V3B3ejhSN0xkcEg4dTdhMDU2Rjl5cmFkZURPeGp1VjJNTW5kZUtlZ2ZmYXRIYzd1OVFZOTBhMEorZTltbllsdUovOEgxWTZsZGFOSjlYaW5wajN0eGNiMGp1UWR4ZUc5cVM4SDM5K2RsWXo3bnk3RTkvdG1uQlB5UHZiQ3g3MER1RGRoYUk5R2UrRGFWZURPeHZ2eEhhN0t0d1Q4ZTVGZTQvM003Vnc5Nlk5Q2UvRGFGZUVPN29UdHF2Q1BRSHYzclIzKytETVNOeGIwUjZkOStHMGE4SWQzYW1ZdHR2QVBUTHZyV2l2NUgwOTdtZmEwdDdqL2UxTXRLdkNuWDEzd25abHVIZDRQeTZWOWdyZTErSis1b056WVZwNE93dnRxbkRuMjUzWWsxR0grK3pzODhlbDB0N0h1d3RQZXhUZTY5Q3VESGQwSjJ4WGgzc0Uzb1BSdm9GM04yU21yeHplNjlHdURYZDBKMnpYaDN0ZzNvUFN2bzUzRjRmMm9MelhwVjBkN3ZCTzBLNFE5NEM4QjZkOURlOHVGdTA5M24rUmxIYUZ1UFBQcW9UdENuRVB4SHNVMnEveTd1TFIzbnRMK3hjSmFWZUlPOS91WkxlSExlTStPL3ZoY2FtMHIvRHVZdExlbXZkbXRLdkVIZDJKNzNhVnVMZmtQU3J0UGQ3ZHVlaDU4OTZVZHAyNG96dGh1MDdjVy9BZW5mWk9DWEQzNUwwNTdVcHhaOStkRExhOUNOdzllVTlCZXlMY1BYajNvVjBwN255N0U5L3RhbkgzNFAySEMyblVUWVI3UTk2UGZ6ZzdXeER1NkU3WXJoYjNocnovOEh3cWM1UGgzb0IzWDlyMTRvN3VoTzE2Y1cvQWV6cmFrK0plazNkLzJoWGpqdTVrcDRkUEZvZDdUZDVUMHA0WTl4cTh0NkZkTSs3d1RueTJhOGE5QnU5cGFVK08rM0RldHo3WGluYmR1SE5vaHZodTE0ejdjTjZmZmVOOGFtdVQ0ejZZOTlhMDY4YWRiM2ZpdTEwMzdvTjV6MEI3RnR5cmVROUF1M2JjMFoyd1hUZnUxYnhub1QwVDd2MjhCNkZkUGU3b1R0aXVIUGQrM2pQUm5nMzM5YndIb2wwLzd1eTdrK3EyZy90RzNyUFJuaEgzRHU5dlBCdVdkdjI0OCsxT2ZMZnJ4NzNEKzhwYjJobHB6NHI3TXU4QmFiZUFPN29UdHV2SGZabjNyTFJueHIzRCt6Y2VtcDBGOXpWOWhCR2tzMjNndnE1Ly9jYlg4dXFhRmZmeHMvdjNmKzMraDhDZEQzZmkwOTBXN3MvZlA3NS8vOW54UW5IdjB0NHRJTy9hY1g4UkgwaHpMNEw3R3RwN2pSZUkreFhhZTkzN0VMaGpPNkc3RGR4WGFjL0t1eE5BZXpqZWRlUE9kanVwN3lOd1gwOTdSdDZ6NEw3eHZ6MFk3M1BZVG9UdUdYSHZwejBiNzA0STdXRjRuOE4ySW5UUGhuczE3Wmw0ZDJKb0Q4RzdZdHovRFJXSWZYZmR1QSttUFF2dmlYRS91MzlFN1hoWGpEc21rSlZ1TEJQMzUrNFpwZHU0WWR4SDB0NldkMTVpSXNyZnB3ckVmVFR0eVhsM3dtaHZ4N3RXM05sdkoxTnRLdzMzZXJRbjV0MkpvNzBONzNQWVRvVHVpWEd2VDN1M3M4WndiMFM3UCs4NmNZY0NzbGM1dUcrOXA2bHVpWGgzS2Y2SEd0UHV5N3RHM0xtV1N1aXVGL2V0WC9mUkxZbTY3cTY3eHM0S3BOMlA5emxzSnhMU2l3WGc3a2Q3QXQ3UDdqOXpWd2YzdUx4NzArN0R1ejdjMlc0bnMzMWtIWGQvMmlQejNxWDlybVhjNC9IZWl2Ym12TTloT3hHNko4RzlIZTBSZVQ4N3RxejZDdTV4ZUc5TmU3Y0RXKzNpanUyRTdqcHhiMDk3Sk42djBMNEc5L0M4QjZHOTI5ZTNHc1dka1FQRXZydEszTVBRSG9IM1Zkclg0UjZXOTJDME4rRmRGKzQzc3ZiSmVqZGF4RDBjN1lGNVgwdjdCdHlEOFQ0ZWxQYjZ2T3ZDblpWUDl2dVVPZHpEMGg2UTkvVzA5K0VlaFBmd3ROZmxYUlB1N0xkVEVXMnpoWHQ0MmdQeHZwSDJDdHc3dk84WFNIdnZzZFZuRGVHTzdZVHU2bkNQUTNzQTN2dHByOFQ5cnJ2TzdCZElleDNlNTlpU0lVTDNTTGpIbzcwbDcxVzBEOERkbS9lNHRJL21mUTdiaWVSbEF2ZTR0UGQ0OXhzWnVYK3NXdkVCdUh2eEhwLzJVYndyd1oyUkExUllMNnJIUFQ3dG5yejNMcU0ydzcweDcybG9IODY3RHR6WmJxZmkra2czN21sb2I4NzcyY0cwRDhXOUVlL3BhQi9HK3h5MkU2RjdZTnovN0Z4SzNlcS81ekdVOWhHNGQzay9LNC8yd2J6UFlUc1J1Z2ZGUFRIdHRYa2ZRZnRJM0d2eG5wNzJRYndyd0oyUkE4Uyt1eUxjTTlCZWkvZVJ0TmZBZlNUdjQvdHoxYys3Zk55M3NjYXAxRzdVaDNzbTJrZnlYb1AyV3JnUHZiYWFqL1lxM3VYanpncW5jbE9HKy9NWmFSL0tleTNhNitJK2lQZTh0UGZ6TGgxMzl0dXA2TFlwd3YzNSsvUHpOdDZDOXZxNFYvRitkcitFMXZJK2grMUU2TjRlZHdtMFYvSitkcXcyMmZWeDM4aTdETnJYOHo2SDdVVG8zaFozS2JUMzhkNkE5bWE0citWZER1MXJlUmVOT3d1YlNQYkcrNXc0MnRmeDNvajJwcmhmNFYwVzdjdThQeVFiZDBZT0VQVjZVVGJ1MG1pL09sT3NJZTNOY2UveUxvLzJIdS8zUHlRWWQ3WmtpRmI2U0REdUVtbnY4ZDZZZGgvY24xbzZNN1pmS08vL2hPMUU2TzdidDRYU3ZuL3N6TkpUMFhGL2FxbmJtYnRGL2dMakM0dXBZNkVTeGVyTjFNdDVZVndxN2QzaTRyNU11MURleDgrZlQ0ODd1aE5ac1gxeDRmejVjYW0wTitlOUVlNUxheFBHZTRmMkxMaWpPMUdVTWl6bWhhNGk0MUpwYjhxNzg2UmRHTzg5MnZQZ2p1NUVObXhmeGwwUzd4dG9iOGE3ODZaZEVPOHJ0R2ZDSGQySlROaCtCWGNwdk45OXBwTGR3TGd2RFVvQTcxZHB6NFU3dWhOWnNIMFZkd204RDZDOVB1K3VGZTBDZUY5RGV6YmMwWjNJZ08xcmNjL04reERhNi9MdVd0S2VtZmQxdE9mRGZmRmVsaU5ScU81ZGxJQjdUdDd2SGh2SmJnRGNsK3FVaWZjTnRHZkVmZkVHVmlSUm1HNVlGSUo3THQ1cjBGNkhkeGVBOWt5ODk5R2VFL2ZGQTZ4Sm9oQWRXSlNEZXc3ZWE5TGU2YWtXdUM4MWFlenUzTFJueFoyTmQ2SVF2YmtvQ3ZmVXZOZW5mU1R2cnM1MVZIbThWOUtlR1hkMEoxSnRlelh1S1hsdlJ2c0kzbDB3MmhQeVBvRDIzTGlqTzVGbTJ3Zmhub3IzNXJRUDVkMEZwTDNIZTBiYXMrT083a1N0eXJ5QUZ3YmJNaTZVOWlHOHU2QzBKK0I5Q08zNWNVZDNJcjIyRDhNOU51Lyt0QS9rM1FXbVBUTHZRMmtYZ0R1NkU2bTFmVGp1TVhsdlIvc0EzbDF3MmlQeVBvSjJDYmlqTzVGVzIwZmhIb3YzOXJSWDh1NGkwQjZKOTVHMGk4QWQzWW1VMmo0YTl5aThqNFZTOTZraHVBZWpQUUx2TldpWGdUdWpDSWlhZDhPaUR0eUQ4ejRXVXQxQnVBZWxQVER2dFdnWGd2dmlEMWlwUk0zNndhSWEzSVB5UGhaYTNVcmNseUkwbHBSMktiZ3ppb0NvV1FjV05lRWVqUGV4R09yMjRiNFVxYkdFdEl2Qm5ZMTNvaWE5dWFnTTl5QzhqNTJKcE80NjNKY2lOcGFNZGtHNG96dVJPdHViNE42YTkyaTBYK1hkUmFhOUplK05hSmVFTzdvVGFiTzlHZTZ0ZUk5Syt3cnZManJ0M1huQVkwbG9GNFU3dWhQVlN0Q2lYV2dxenJoUTJudTh1NlVrK2ZEZW1IWlp1S003a1M3Ym0rUHV4WHNTMmpzbHdyMDU3eDYwQzhNZDNZbFUyZTZEZTJQZVU5R2VFUGRtanpWNTBTNE5kM1FuMG1TN0grNk5lRTlIZTFMYzYvUHVTYnM0M05HZGFGajNMcHJBdlRidktXbFBqSHM5M3IxcGw0Yzc3MllURGU2R1JTdTQxK0k5TGUzSmNSL05ld3ZhQmVMT1pWV2lRUjFZTklUN1NON3ZQcFBhMnVTNEQrZTlGZTBTY1dkcmhraUw3ZTF3SDhwN2V0cXo0RDZZOTVhMHk4UWQzWWtxZW5QUkhPNERlYzlCZXliY3EzbHZUYnRRM05HZFNJWHQ3WEd2NUQwUDdkbHc3K2M5QU8xU2NVZDNvZzNKWEtrTElSUWFqL0hNa2lyYzEvTWVoSGF4dUtNN2tRTGJ3K0MranZkOHRHZkZmWlgzUUxUTHhSM2RpZVRiSGdyM3E3em5wRDB6N2t0TFkzY0hwRjB3N3VoT0pONzJjTGozZU05TGUzYmNsNWFlT25lK0JOdy9ZVVVUTGZkSkNiaWZQL2QwYmx2ejR2N3hrMGVQSGczSU85c3lSSHk2QzhEOTNOUGZQWHIweVkrTHhiMUgrOUdRdlBNUHFrVG9uaDMzSHUzZHN2THU4dE1la0hlT1FoS2hlMmJjcjlLZW1YY25nZlpndkhPSmlVaEhWaTh4cmFlOTIzYy9MZ3IzUHRvRDhjNzRBU0owejRoN0grMFplWGRTYUEvQ080UERpTkE5Rys2VnRHZmozY21oUFFEdmpQd2xRdmRNdUEra1BSUHZUaEx0clhsZndIWWlOUjJ3aFB0UTJyUHc3bVRSM3BKM2Fiai9sdlZMTkxnZm1NRjlKTzBaZUhmU2FHL0Yrd0syRXlucU56WndyMFY3Y3Q2ZFBOcGI4QzRMZDBZT0VJM29Fd080MTZZOU1lOU9JdTNldkM5Z094RzZwOFM5RWUxSmVVK0QrOGNOLy9OOWVWL0FkaUowVDRkN1k5b1Q4dTZrMHU3RnV5RGNXYlJFOWRLTHV4ZnR5WGgzY21uMzRIMEIyNG5RUFEzdTNyUW40dDFKcHIweDd3dllUb1R1S1hCdlJYc1MzcDFzMmh2eXZvRHRSQXA3VXh2dXJXbFB3THVUVG5zajNoZXduUWpkWStNZWhQYm92RHY1dERmZ2ZRSGJpZEE5THU3QmFJL01leXpjTDRha3ZUYnZFbkJubkF5UlJ3ZVU0QjZVOXFpOE94MjAxK1JkQU83L3pTb2w4a2tGN3NGcGo4aTcwMEo3TGQ3ejQ4NDRHU0xQZmlzZTl5aTBSK1BkNmFHOUJ1L1pjZjhOSzVUSXQwOWs0eDZOOWtpOE8wMjBqK1E5Tis2TUhDQlNyUHRDTHRxajhPNTAwVDZDOXdWc0owTDM4TGhIcHowQzcwNGI3ZDJmNE9sekluRm5hUksxVFNUdVNXZ1B6cnRUUi9zdzNoZXduUWpkdytLZWpQYkF2RHVGdEEvbWZRSGJpZEE5Sk81SmFlL1pkbEVVN3FscEg4VDdBcllUYWU5TlFiZ25wejBnNzA0cDdkVzhMMkE3RWJxSHdqMEw3Y0Y0ZDJwcHIrSjlBZHVKMEQwTTd0bG9EOFM3VTB4N1ArK1pjR2VjREpFRjNSZWswQjZFZDZlYTlvMjhMMkE3a1lVT1pNWTlPKzBCZUhmS2FWL1BleGJjR1NkREZMemY1c1JkQk8ydGVYZnFhVi9MK3dLMkU5bm9OOWx3RjBON1M5NmRBZHBYZWMrQU95TUhpS0wwU1I3Y1JkSGVpbmRuZ3ZZcnZDOWdPeEc2KytNdWp2WmVUeWJEWFNMdHk3eWZ4M1lpZFBmdC9OTkNiZlBpM1ptaC9lalI5NmFmbUE3U2F5d3JJazI5Rm1ibFB6SDlubFRkUEhoM2htaC9mT3JJTkxvVFlidG5SNlllZjhJTzc4NFE3VlBCY0VkM292SnM3K0RleVF6dnpoRHRBWEdmbm1iRkVPbm84blJRM00zdzdpelEvc1RVU2dGeFIzY2lGUVZjOUVldVNHS0NkMmVJOXJDNG96dFJXYmF2NG02QzkzcTRQeW4ydjNObXpmOGRnWEZIZDZLaWJKOWVwNGw2M3AwaDJrUGpqdTVFSmRrK3ZjRVQ1Ync3UTdRSHg1MURNMFNTKytwMFZOdzd2TThvNXQwWm9qMDg3dFBYczM2SXBIYjlkR3pjTzZibzVkMFpvajBDN216TkVKV3hKVE1BZDhXOE8wTzBSOEdkblJraWtiMldDSGUxdkR0RHRFZkJIZDJKQ3JGOWVxQXNqMnZrZlFEdUgydWtQUTd1NkU1VWh1M1RRMnhSeUx2VFJ2dmpVMU9KY1dmZm5VaGFsNmNUNDY2UWQyZUk5bWk0b3p1UnFDSXQ5Q1BEZlZIR3U5TkQrNVhwWUJsd1IzY2krN2FQd2wwWjc4NFE3UkZ4UjNjaTg3YVB4bDBWNzg0UTdURnhSM2NpR2YzbmRFN2NGZkh1RE5FZUZYY096UkJKNkt2VG1YSHY4QzczTmI0bnEzQTNRSHRjM1BsNEp6SzhKZE1BZHlXOE8wTzB4OGFkYjNjaXk3Ylh4MzFLOG1PclQ2N0YzUWp0c1hGSGQ2Szh2U1lHZDlFVGdaLzhlQVYzTTdSSHh4M2RpUXpiM2hCMzZidzd3YlEvTWRXMDJMaXo3MDZVcjh2VHduQ1h6YnN6UkhzSzNOR2R5S3J0SHJoTDVsMG83ak0rdENmQkhkMkpzcFJnY1IveFlrY3E3eUp4bi9IN2pkUGdqdTVFTm0yZjlvVkhKdS9PRU8ySmNFZDNJcE8yVC92VEk1RjNaNGoyVkxqenNpcFIycjQ2TFJ4M2ljODFPVU8wSjhNZDNZbFM5dHEwZk56bDhlNE0wWjRPZDdabWlJeHR5YlRIWFJydnpoRHRLWEhuT2hPUnNlLzI5cmpMR2hucEROR2VFbmQwSjdKbSszUUloT1R3N2d6Um5oUjNkQ2N5WnZ0MEdJYWs4QzRDOTVuSHA2YlU0YzYrTzFIOExrK3J3MTBLNy9seGZ5OFk3YWx4UjNlaXlLVmQwVWVDVVNTQjk5eTROeDc4S0FsM2RDY3laSHRBM0NYdzdnelJuaDUzZENleVkzdFEzUFB6N2d6UkR1NUU0QzRHOTl5djhUbER0TFBuVGdUdmduRFB5N3N6Ukh0aTNEa0xTUlM5eTdweHo4bTdNMFE3NTl5SjBGMFk3dmxHUmpwRHRDZkYvVEZXSFZHS0hsT1BleWJlMCtQKzNoT3hhRStKTzdZVG1kTTlHdTVaZUhmSmFaK0syQkZzSjBKM2diaG40RDB0N2pOUmFVK0lPK3VOS0YwbWNFL09lMHJjWnlML2RMekVSSVR1Y25GUHpMc3pSSHNxM0s5bHJSR2w3Vm9idUNmbDNSbWlQUkh1MkU1azg5czlqVkl6cG5CUFEzc2kzRmxuUkRaMVQrWFVqQm5jVTlHZUJuZFdHWkZSM2ROSk5XTUM5M1MwcDhDZEpVWmtsdmVFVmlVWUdla00wWjRBZDlZWGtWM2RrMm9WblhkbmlQYm91RE5PaGlocmx3M2hIcDMzbUxqUFBENDFaUWwzcnFVU1plNHhTN2hINWowYTd1K2xwejB5N3RoT1pGdjNJK25OaXNoN0pOempEWDdNaGp1MkV4blgvVWdPdGFMeDdnelJIaGQzVmhXUmNkMlA1SEVyRXUvT0VPMVJjV2RORWNuSUhPNlJubXR5aG1pUGlEc2pCNGpFZEswNTNLUHc3Z3pSSGc5M2JDY1MxR1Y3dUVmZzNSbWlQUjd1ckNhaUFuWm1qdVQxSy9ESVNHZUk5bWk0czVhSVN0QTlOKzVoZVErR2U4eW5VVFBqemtvaUtrTDMvTGlINU4yRm9uMUtRa2VnblFqZU5lTWVqdmNndVArREROcGo0TTQ0R1NLaFhUYUtleWplQStBK0krVVhpWUE3dGhPVm83c2N5a0x3N2d6UkhoNTNSZzRRQ2U0eHM3aUg0TjBab2owNDd0aE9WSkx1c2poN1lpWWo3c0pvRDQwN3RoTVZwYnM0MEdZeTRTNk85dEM0czNLSXBHY2E5M2E4TzBPMGg4WDlldFlOa2Z5dU40MTdtNUdSemhEdFFYRm5uQXlSaXE2MWpicy83ODRRN1NGeHgzYWk0blptcE1MbXg3c0g3ak9QVDAyWng1MFZRMVNjN2tmRTB1YkR1ek5FZTBEY1dTOUU1ZWwrUkRCdXpYbHZocnVBd1kvRDJ2SnJhQ2VDZDkrbVRrOFo0dDBab24yS1AzRWlhcFVoM2gyMEV4RnA0ZjI5NExnTHAvMDBmNUpFVkFMdnRWL2pjeFpvL3cvK0hJa0kzaHZqRHUxRUJPOXllSzgxTXRKQk94RlJYL3NrdTFkbklyQ0RkaUtpaXFaMDgrNDBQSTBLN1VRRTc4MTRkM3BwLzN2KzlJZ0kzaHZqUGlQNUt1N1VsaTM4MlJFUnZEZkdYVGp0M0ZnaUluZ2Z4cnVEZGlLaTRieUxQaGs1NExGVkIrMUVSS3A1cjN5TnowRTdFZEhvdFBIdVZOSE9DQmtpZ3ZkYXZEdEZ0UCthUHk0aWd2ZEJVd2xtQnVJdW0zWnVMQkVSdk5mbTNlbDRQdy9haVVoRys1VHc3cUNkaU1nZTc0N3BZRVJFelpwU3dMc1RUenNqWklnSTNodno3cUNkaU1nYzcrODV5YlJ6WTRtSTROMlBkd2Z0UkVTZXZBcytHZW1nbllqSUh1OE8yb21JV25RYTNLR2RpT0M5WE55WkRrWkU4RzRPZDI0c0VSRzhtOE1kMm9sSWFYOEw3dEJPUkJiYkIrN1FUa1FXQTNkb0p5SjRMd0IzUnNnUUVieGJ3MzNMRnY0Y2lBamVqZUhPalNVaWduZHp1RU03RVpuay9YVFJ1RU03RVpudGRMRzRRenNSd2JzNTNCa2hRMFR3Ymc1M2pyVVRFYnlid3gzYWlRamV6ZUVPN1VSVVZQdUt3QjNhaVFqZXplRU83VVJVWkxaeFo0UU1FY0c3TmR5M1FEc1J3YnMxM0xteFJFUmtEbmRvSnlMcThYN2FFTzdRVGtTVWxuY0g3VVJFaVR0dEFQZlQwRTVFbEp6M3lMZ3pIWXlJS0FmdlVYSG54aElSVVI3ZUhiUVRFV1ZxbjBMY29aMklLQi92RHRxSmlES21DWGRvSnlMS3kzc0UzQmtoUTBTVW0vZlF1SE5qaVloSUFPOE8yb21JSlBDK1JTenUwRTVFMUlMMzB5SnhoM1lpb3BhZEZvYzd0Qk1SQ2VJOURPNk1rQ0VpRXNWN0NOdzUxazVFSkl4M0IrMUVSUFo0ZDlCT1JDU3ZmVmx4aDNZaW9rajliemJjb1oySUtHSjVjR2VFREJHUldONDljZCt5aFIrZGlFZ3U3MTY0YzJPSmlFZzI3dzdhaVloazkrdlRDWENIZGlLaTVGL3ZweVBqRHUxRVJGazZIUkYzUnNnUUVlbmczVUU3RVpFOTNoMDNsb2lJN1BIdW9KMklTRkg3QXVJTzdVUkV1bmgzMEU1RXBLd1F1UDhkUHlNUmtUcmVIZFBCaUlqczhlNjRzVVJFWkk5M0IrMUVSRnA1UDkwWWQyZ25JbExNdTROMklpTE5uYTZOTzdRVEVTbm4zVEZDaG9qSUh1K09HMHRFUlBaNGQ5Qk9SR1NQZHdmdFJFUTIybGVKTzdRVEVTbXZIM2RvSnlJeXhMdGpoQXdSa1QzZU83aHYyY0tQUVVSa2kzZkhqU1VpSW51OE8zNEVJaUo3Z1RzUkViZ1RFUkc0RXhFUnVCTVJFYmdURVJHNEV4R0JPeEVSZ1RzUkVZRTdFUkdCT3hFUmdUc1JFYmp6RXhBUjJldi9CUmdBZjdZZCtnZzA4NDBBQUFBQVNVVk9SSzVDWUlJPSIsICJlbmNvZGluZyI6ICJiYXNlNjQifSwgImhlYWRlcnNTaXplIjogMCwgImJvZHlTaXplIjogMTE2OTUsICJyZWRpcmVjdFVSTCI6ICIiLCAiX3RyYW5zZmVyU2l6ZSI6IDExNjk1fSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAwLjAxMiwgImNvbm5lY3QiOiAzOC40MzcsICJzc2wiOiAyMC45NTksICJzZW5kIjogMCwgIndhaXQiOiAyMC4wMjMsICJyZWNlaXZlIjogMS45NDd9LCAicGFnZXJlZiI6ICJwYWdlQDBiMzE5MDRhMTIzMmNkZDBjYThlZWQyZjRkYmUxMDVkIiwgInNlcnZlcklQQWRkcmVzcyI6ICJbMjYwMDo5MDAwOjIxOGQ6ZTQwMDoxZDo0NjE4OjVjODA6MjFdIiwgIl9zZXJ2ZXJQb3J0IjogNDQzLCAiX3NlY3VyaXR5RGV0YWlscyI6IHsicHJvdG9jb2wiOiAiVExTIDEuMyIsICJzdWJqZWN0TmFtZSI6ICIqLmNsb3VkZnJvbnQubmV0IiwgImlzc3VlciI6ICJBbWF6b24gUlNBIDIwNDggTTAxIiwgInZhbGlkRnJvbSI6IDE2OTY4OTYwMDAsICJ2YWxpZFRvIjogMTcyNjc5MDM5OX19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDIzLTExLTIwVDAyOjM5OjA4LjkzM1oiLCAidGltZSI6IDIxLjg4OTk5OTk5OTk5OTk5NywgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHBzOi8vY3Vyc2VkLWtuaWdodC5mci9scy5waHA/dD02NTVhYzZjYyZ0b2tlbj1jNjRmMzk1YmExMWIxNjZlMGQxY2ExOWQ0MzlkOTc3ZDRhNzJiZWUzIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMS4xIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIkFjY2VwdCIsICJ2YWx1ZSI6ICIqLyoifSwgeyJuYW1lIjogIkFjY2VwdC1FbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwLCBkZWZsYXRlLCBiciJ9LCB7Im5hbWUiOiAiQWNjZXB0LUxhbmd1YWdlIiwgInZhbHVlIjogImVuLVVTLGVuO3E9MC45In0sIHsibmFtZSI6ICJDb25uZWN0aW9uIiwgInZhbHVlIjogImtlZXAtYWxpdmUifSwgeyJuYW1lIjogIkhvc3QiLCAidmFsdWUiOiAiY3Vyc2VkLWtuaWdodC5mciJ9LCB7Im5hbWUiOiAiUmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwczovL2N1cnNlZC1rbmlnaHQuZnIvIn0sIHsibmFtZSI6ICJTZWMtRmV0Y2gtRGVzdCIsICJ2YWx1ZSI6ICJlbXB0eSJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLU1vZGUiLCAidmFsdWUiOiAiY29ycyJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLVNpdGUiLCAidmFsdWUiOiAic2FtZS1vcmlnaW4ifSwgeyJuYW1lIjogIlVzZXItQWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExOS4wLjYwNDUuOSBTYWZhcmkvNTM3LjM2In0sIHsibmFtZSI6ICJkZXZpY2UtbWVtb3J5IiwgInZhbHVlIjogIjgifSwgeyJuYW1lIjogImRvd25saW5rIiwgInZhbHVlIjogIjEuNzUifSwgeyJuYW1lIjogImRwciIsICJ2YWx1ZSI6ICIxIn0sIHsibmFtZSI6ICJlY3QiLCAidmFsdWUiOiAiNGcifSwgeyJuYW1lIjogInJ0dCIsICJ2YWx1ZSI6ICIwIn0sIHsibmFtZSI6ICJ2aWV3cG9ydC13aWR0aCIsICJ2YWx1ZSI6ICIxOTIwIn1dLCAicXVlcnlTdHJpbmciOiBbeyJuYW1lIjogInQiLCAidmFsdWUiOiAiNjU1YWM2Y2MifSwgeyJuYW1lIjogInRva2VuIiwgInZhbHVlIjogImM2NGYzOTViYTExYjE2NmUwZDFjYTE5ZDQzOWQ5NzdkNGE3MmJlZTMifV0sICJoZWFkZXJzU2l6ZSI6IDQ3MSwgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjAxLCAic3RhdHVzVGV4dCI6ICJDcmVhdGVkIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMS4xIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJ2aWV3cG9ydC13aWR0aCJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogImRwciJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogImRldmljZS1tZW1vcnkifSwgeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJydHQifSwgeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJkb3dubGluayJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogImVjdCJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogInVhIn0sIHsibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAidWEtZnVsbC12ZXJzaW9uIn0sIHsibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAidWEtcGxhdGZvcm0ifSwgeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJ1YS1wbGF0Zm9ybS12ZXJzaW9uIn0sIHsibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAidWEtYXJjaCJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogInVhLW1vZGVsIn0sIHsibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAidWEtbW9iaWxlIn0sIHsibmFtZSI6ICJBY2NlcHQtQ2gtTGlmZXRpbWUiLCAidmFsdWUiOiAiMzAifSwgeyJuYW1lIjogIkFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMiLCAidmFsdWUiOiAiUE9TVCwgT1BUSU9OUyJ9LCB7Im5hbWUiOiAiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgInZhbHVlIjogIiJ9LCB7Im5hbWUiOiAiQWNjZXNzLUNvbnRyb2wtTWF4LUFnZSIsICJ2YWx1ZSI6ICI4NjQwMCJ9LCB7Im5hbWUiOiAiQ2hhcnNldCIsICJ2YWx1ZSI6ICJ1dGYtOCJ9LCB7Im5hbWUiOiAiQ29udGVudC1MZW5ndGgiLCAidmFsdWUiOiAiMTYifSwgeyJuYW1lIjogIkNvbnRlbnQtVHlwZSIsICJ2YWx1ZSI6ICJ0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD1VVEYtOCJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICJNb24sIDIwIE5vdiAyMDIzIDAyOjM5OjA4IEdNVCJ9LCB7Im5hbWUiOiAiU2VydmVyIiwgInZhbHVlIjogIm5naW54In0sIHsibmFtZSI6ICJYLUFkYmxvY2stS2V5IiwgInZhbHVlIjogIk1Gd3dEUVlKS29aSWh2Y05BUUVCQlFBRFN3QXdTQUpCQUxxdURGRVRYUm4wSHIwNWZVUDdFSlQ3N3hZblBtUmJwTXk0dms4S1lpSG5rTnBlZG5qT0FOSmNhWERYY0tRSk4wblhLWkpMN1RjaUpEOEFvSFhLMTU4Q0F3RUFBUT09X0hKZkRSUHB3emF1Wm5rZjVDOVA1UmpFcjdtZWh6cDR2bzBKMWRuNkFKSXczN0pwb0x6bzJVd0w0N2JqczYzMEhWUE5HaXFOTHhkQ3pvSWNBVDVVMHZnPT0ifSwgeyJuYW1lIjogIlgtTG9nLVN1Y2Nlc3MiLCAidmFsdWUiOiAiNjU1YWM2Y2NiZWFlMGQ0MmVlMzE0MTk1In1dLCAiY29udGVudCI6IHsic2l6ZSI6IDE2LCAibWltZVR5cGUiOiAidGV4dC9qYXZhc2NyaXB0O2NoYXJzZXQ9VVRGLTgiLCAiY29tcHJlc3Npb24iOiAwLCAidGV4dCI6ICJ7XCJzdWNjZXNzXCI6dHJ1ZX0ifSwgImhlYWRlcnNTaXplIjogODQ3LCAiYm9keVNpemUiOiAxNiwgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogODYzfSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAtMSwgImNvbm5lY3QiOiAtMSwgInNzbCI6IC0xLCAic2VuZCI6IDAsICJ3YWl0IjogMjAuMjQsICJyZWNlaXZlIjogMS42NX0sICJwYWdlcmVmIjogInBhZ2VAMGIzMTkwNGExMjMyY2RkMGNhOGVlZDJmNGRiZTEwNWQiLCAic2VydmVySVBBZGRyZXNzIjogIjE4NS41My4xNzguNTIiLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4zIiwgInN1YmplY3ROYW1lIjogIioucGFya2luZ2NyZXcubmV0IiwgImlzc3VlciI6ICJUaGF3dGUgVExTIFJTQSBDQSBHMSIsICJ2YWxpZEZyb20iOiAxNTk1MjAzMjAwLCAidmFsaWRUbyI6IDE2NjM1MDI0MDB9fSwgeyJzdGFydGVkRGF0ZVRpbWUiOiAiMjAyMy0xMS0yMFQwMjozOTowOC45MzRaIiwgInRpbWUiOiAzNzQuNDE5LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9wYXJ0bmVyLmdvb2dsZWFkc2VydmljZXMuY29tL2dhbXBhZC9jb29raWUuanM/ZG9tYWluPWN1cnNlZC1rbmlnaHQuZnImY2xpZW50PWRwLXRlYW1pbnRlcm5ldDA5XzNwaCZwcm9kdWN0PVNBUyZjYWxsYmFjaz1fX3Nhc0Nvb2tpZSIsICJodHRwVmVyc2lvbiI6ICJoMyIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICI6YXV0aG9yaXR5IiwgInZhbHVlIjogInBhcnRuZXIuZ29vZ2xlYWRzZXJ2aWNlcy5jb20ifSwgeyJuYW1lIjogIjptZXRob2QiLCAidmFsdWUiOiAiR0VUIn0sIHsibmFtZSI6ICI6cGF0aCIsICJ2YWx1ZSI6ICIvZ2FtcGFkL2Nvb2tpZS5qcz9kb21haW49Y3Vyc2VkLWtuaWdodC5mciZjbGllbnQ9ZHAtdGVhbWludGVybmV0MDlfM3BoJnByb2R1Y3Q9U0FTJmNhbGxiYWNrPV9fc2FzQ29va2llIn0sIHsibmFtZSI6ICI6c2NoZW1lIiwgInZhbHVlIjogImh0dHBzIn0sIHsibmFtZSI6ICJhY2NlcHQiLCAidmFsdWUiOiAiKi8qIn0sIHsibmFtZSI6ICJhY2NlcHQtZW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIifSwgeyJuYW1lIjogImFjY2VwdC1sYW5ndWFnZSIsICJ2YWx1ZSI6ICJlbi1VUyxlbjtxPTAuOSJ9LCB7Im5hbWUiOiAicmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwczovL2N1cnNlZC1rbmlnaHQuZnIvIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtZGVzdCIsICJ2YWx1ZSI6ICJzY3JpcHQifSwgeyJuYW1lIjogInNlYy1mZXRjaC1tb2RlIiwgInZhbHVlIjogIm5vLWNvcnMifSwgeyJuYW1lIjogInNlYy1mZXRjaC1zaXRlIiwgInZhbHVlIjogImNyb3NzLXNpdGUifSwgeyJuYW1lIjogInVzZXItYWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExOS4wLjYwNDUuOSBTYWZhcmkvNTM3LjM2In1dLCAicXVlcnlTdHJpbmciOiBbeyJuYW1lIjogImRvbWFpbiIsICJ2YWx1ZSI6ICJjdXJzZWQta25pZ2h0LmZyIn0sIHsibmFtZSI6ICJjbGllbnQiLCAidmFsdWUiOiAiZHAtdGVhbWludGVybmV0MDlfM3BoIn0sIHsibmFtZSI6ICJwcm9kdWN0IiwgInZhbHVlIjogIlNBUyJ9LCB7Im5hbWUiOiAiY2FsbGJhY2siLCAidmFsdWUiOiAiX19zYXNDb29raWUifV0sICJoZWFkZXJzU2l6ZSI6IDUzOSwgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjAwLCAic3RhdHVzVGV4dCI6ICIiLCAiaHR0cFZlcnNpb24iOiAiaDMiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiYWx0LXN2YyIsICJ2YWx1ZSI6ICJoMz1cIjo0NDNcIjsgbWE9MjU5MjAwMCxoMy0yOT1cIjo0NDNcIjsgbWE9MjU5MjAwMCJ9LCB7Im5hbWUiOiAiY2FjaGUtY29udHJvbCIsICJ2YWx1ZSI6ICJwcml2YXRlIn0sIHsibmFtZSI6ICJjb250ZW50LWRpc3Bvc2l0aW9uIiwgInZhbHVlIjogImF0dGFjaG1lbnQ7IGZpbGVuYW1lPVwiZi50eHRcIiJ9LCB7Im5hbWUiOiAiY29udGVudC1lbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwIn0sIHsibmFtZSI6ICJjb250ZW50LWxlbmd0aCIsICJ2YWx1ZSI6ICIyNDUifSwgeyJuYW1lIjogImNvbnRlbnQtdHlwZSIsICJ2YWx1ZSI6ICJ0ZXh0L2phdmFzY3JpcHQ7IGNoYXJzZXQ9VVRGLTgifSwgeyJuYW1lIjogImNyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3kiLCAidmFsdWUiOiAiY3Jvc3Mtb3JpZ2luIn0sIHsibmFtZSI6ICJkYXRlIiwgInZhbHVlIjogIk1vbiwgMjAgTm92IDIwMjMgMDI6Mzk6MDkgR01UIn0sIHsibmFtZSI6ICJwM3AiLCAidmFsdWUiOiAicG9saWN5cmVmPVwiaHR0cHM6Ly93d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20vcGFnZWFkL3AzcC54bWxcIiwgQ1A9XCJOT0kgREVWIFBTQSBQU0QgSVZBIElWRCBPVFAgT1VSIE9UUiBJTkQgT1RDXCIifSwgeyJuYW1lIjogInNlcnZlciIsICJ2YWx1ZSI6ICJjYWZlIn0sIHsibmFtZSI6ICJ0aW1pbmctYWxsb3ctb3JpZ2luIiwgInZhbHVlIjogIioifSwgeyJuYW1lIjogIngtY29udGVudC10eXBlLW9wdGlvbnMiLCAidmFsdWUiOiAibm9zbmlmZiJ9LCB7Im5hbWUiOiAieC14c3MtcHJvdGVjdGlvbiIsICJ2YWx1ZSI6ICIwIn1dLCAiY29udGVudCI6IHsic2l6ZSI6IDM4NiwgIm1pbWVUeXBlIjogInRleHQvamF2YXNjcmlwdDsgY2hhcnNldD1VVEYtOCIsICJjb21wcmVzc2lvbiI6IDExOSwgInRleHQiOiAiX19zYXNDb29raWUoe1wiX2Nvb2tpZXNfXCI6W3tcIl92YWx1ZV9cIjpcIklEPTY4NzFiOWFiNGZmNTI2Mjg6VD0xNzAwNDQ3OTQ5OlJUPTE3MDA0NDc5NDk6Uz1BTE5JX01hYXNPX011eTg4QUE5eTllRjR2NnlENnFMOGhRXCIsXCJfZXhwaXJlc19cIjoxNzM0MTQzOTQ5LFwiX3BhdGhfXCI6XCIvXCIsXCJfZG9tYWluX1wiOlwiY3Vyc2VkLWtuaWdodC5mclwiLFwiX3ZlcnNpb25fXCI6MX0se1wiX3ZhbHVlX1wiOlwiVUlEPTAwMDAwY2NlOTY4ZWI1ZmY6VD0xNzAwNDQ3OTQ5OlJUPTE3MDA0NDc5NDk6Uz1BTE5JX01ZLWtzM0pNTUNxZ0RMNzQxRlNibGJFVzgtUS1BXCIsXCJfZXhwaXJlc19cIjoxNzM0MTQzOTQ5LFwiX3BhdGhfXCI6XCIvXCIsXCJfZG9tYWluX1wiOlwiY3Vyc2VkLWtuaWdodC5mclwiLFwiX3ZlcnNpb25fXCI6Mn1dfSk7In0sICJoZWFkZXJzU2l6ZSI6IDAsICJib2R5U2l6ZSI6IDI2NywgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogMjY3fSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAxLjA5MiwgImNvbm5lY3QiOiA2OC44NjcsICJzc2wiOiA2OC44NjcsICJzZW5kIjogMCwgIndhaXQiOiAyMzMuMjA4LCAicmVjZWl2ZSI6IDIuMzg1fSwgInBhZ2VyZWYiOiAicGFnZUAwYjMxOTA0YTEyMzJjZGQwY2E4ZWVkMmY0ZGJlMTA1ZCIsICJzZXJ2ZXJJUEFkZHJlc3MiOiAiWzJhMDA6MTQ1MDo0MDE3OjgwNDo6MjAwMl0iLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJRVUlDIiwgInN1YmplY3ROYW1lIjogIiouZ29vZ2xlYWRzZXJ2aWNlcy5jb20iLCAiaXNzdWVyIjogIkdUUyBDQSAxQzMiLCAidmFsaWRGcm9tIjogMTY5ODA2MDE0NCwgInZhbGlkVG8iOiAxNzA1MzE3NzQzfX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjMtMTEtMjBUMDI6Mzk6MDguOTU5WiIsICJ0aW1lIjogMjczLjM5OCwgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vYWZzL2Fkcz9hZHRlc3Q9b2ZmJnBzaWQ9MTE2NzI2ODExMiZwY3NhPWZhbHNlJmNoYW5uZWw9MDAwMDAxJTJDYnVja2V0MDExJTJDYnVja2V0MDc3JmNsaWVudD1kcC10ZWFtaW50ZXJuZXQwOV8zcGgmcj1tJmhsPWRlJnJwYnU9aHR0cHMlM0ElMkYlMkZjdXJzZWQta25pZ2h0LmZyJTJGJTNGdHMlM0RmRU5zWldGdVVHVndjR1Z5YldsdWRFSnNZV05yZkh3MVkyVTROSHhpZFdOclpYUXdNVEVzWW5WamEyVjBNRGMzZkh4OGZIeDhOalUxWVdNMlkyTTVZek5sWm54OGZERTNNREEwTkRjNU5EZ3VOalE0T0h3d016RTNZamRoT0dJd1lqaG1OelExWXpNM05ETTRaVFJtWVRGbFpHRXhOVGM1T1dGaU9HUTFmSHg4Zkh3eGZId3dmREI4Zkh4OE1YeDhmSHg4TUh3d2ZIeDhmSHg4Zkh4OGZEQjhNSHg4TUh4OGZEQjhNSHhYTVRBOWZId3hmRmN4TUQxOFl6WTBaak01TldKaE1URmlNVFkyWlRCa01XTmhNVGxrTkRNNVpEazNOMlEwWVRjeVltVmxNM3d3ZkdSd0xYUmxZVzFwYm5SbGNtNWxkREE1WHpOd2FId3dmREI4Jm1heF9yYWRsaW5rX2xlbj00MCZ0eXBlPTMmdWlvcHQ9dHJ1ZSZzd3A9YXMtZHJpZC0yNTU4MzM0NTQwNzMwNzY4Jm9lPVVURi04JmllPVVURi04JmZleHA9MjE0MDQlMkMxNzMwMTE1NyZmb3JtYXQ9cjMlN0NzJm5vY2FjaGU9MzA5MTcwMDQ0Nzk0ODkzOCZudW09MCZvdXRwdXQ9YWZkX2FkcyZkb21haW5fbmFtZT1jdXJzZWQta25pZ2h0LmZyJnY9MyZic2w9OCZwYWM9MCZ1X2hpcz0yJnVfdHo9MCZkdD0xNzAwNDQ3OTQ4OTQxJnVfdz0xOTIwJnVfaD0xMDgwJmJpdz0xOTIwJmJpaD0xMDgwJnBzdz0xOTIwJnBzaD03OTEmZnJtPTAmY2w9NTc5OTY3ODYyJnVpbz0tLSZjb250PXRjJmpzaWQ9Y2FmJmpzdj01Nzk5Njc4NjImcnVybD1odHRwcyUzQSUyRiUyRmN1cnNlZC1rbmlnaHQuZnIlMkYiLCAiaHR0cFZlcnNpb24iOiAiaDMiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiOmF1dGhvcml0eSIsICJ2YWx1ZSI6ICJ3d3cuZ29vZ2xlLmNvbSJ9LCB7Im5hbWUiOiAiOm1ldGhvZCIsICJ2YWx1ZSI6ICJHRVQifSwgeyJuYW1lIjogIjpwYXRoIiwgInZhbHVlIjogIi9hZnMvYWRzP2FkdGVzdD1vZmYmcHNpZD0xMTY3MjY4MTEyJnBjc2E9ZmFsc2UmY2hhbm5lbD0wMDAwMDElMkNidWNrZXQwMTElMkNidWNrZXQwNzcmY2xpZW50PWRwLXRlYW1pbnRlcm5ldDA5XzNwaCZyPW0maGw9ZGUmcnBidT1odHRwcyUzQSUyRiUyRmN1cnNlZC1rbmlnaHQuZnIlMkYlM0Z0cyUzRGZFTnNaV0Z1VUdWd2NHVnliV2x1ZEVKc1lXTnJmSHcxWTJVNE5IeGlkV05yWlhRd01URXNZblZqYTJWME1EYzNmSHg4Zkh4OE5qVTFZV00yWTJNNVl6Tmxabng4ZkRFM01EQTBORGM1TkRndU5qUTRPSHd3TXpFM1lqZGhPR0l3WWpobU56UTFZek0zTkRNNFpUUm1ZVEZsWkdFeE5UYzVPV0ZpT0dRMWZIeDhmSHd4Zkh3d2ZEQjhmSHg4TVh4OGZIeDhNSHd3Zkh4OGZIeDhmSHg4ZkRCOE1IeDhNSHg4ZkRCOE1IeFhNVEE5Zkh3eGZGY3hNRDE4WXpZMFpqTTVOV0poTVRGaU1UWTJaVEJrTVdOaE1UbGtORE01WkRrM04yUTBZVGN5WW1WbE0zd3dmR1J3TFhSbFlXMXBiblJsY201bGREQTVYek53YUh3d2ZEQjgmbWF4X3JhZGxpbmtfbGVuPTQwJnR5cGU9MyZ1aW9wdD10cnVlJnN3cD1hcy1kcmlkLTI1NTgzMzQ1NDA3MzA3Njgmb2U9VVRGLTgmaWU9VVRGLTgmZmV4cD0yMTQwNCUyQzE3MzAxMTU3JmZvcm1hdD1yMyU3Q3Mmbm9jYWNoZT0zMDkxNzAwNDQ3OTQ4OTM4Jm51bT0wJm91dHB1dD1hZmRfYWRzJmRvbWFpbl9uYW1lPWN1cnNlZC1rbmlnaHQuZnImdj0zJmJzbD04JnBhYz0wJnVfaGlzPTImdV90ej0wJmR0PTE3MDA0NDc5NDg5NDEmdV93PTE5MjAmdV9oPTEwODAmYml3PTE5MjAmYmloPTEwODAmcHN3PTE5MjAmcHNoPTc5MSZmcm09MCZjbD01Nzk5Njc4NjImdWlvPS0tJmNvbnQ9dGMmanNpZD1jYWYmanN2PTU3OTk2Nzg2MiZydXJsPWh0dHBzJTNBJTJGJTJGY3Vyc2VkLWtuaWdodC5mciUyRiJ9LCB7Im5hbWUiOiAiOnNjaGVtZSIsICJ2YWx1ZSI6ICJodHRwcyJ9LCB7Im5hbWUiOiAiYWNjZXB0IiwgInZhbHVlIjogInRleHQvaHRtbCxhcHBsaWNhdGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LGltYWdlL2F2aWYsaW1hZ2Uvd2VicCxpbWFnZS9hcG5nLCovKjtxPTAuOCxhcHBsaWNhdGlvbi9zaWduZWQtZXhjaGFuZ2U7dj1iMztxPTAuNyJ9LCB7Im5hbWUiOiAiYWNjZXB0LWVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyIn0sIHsibmFtZSI6ICJhY2NlcHQtbGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMsZW47cT0wLjkifSwgeyJuYW1lIjogInJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cHM6Ly9jdXJzZWQta25pZ2h0LmZyLyJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLWRlc3QiLCAidmFsdWUiOiAiaWZyYW1lIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtbW9kZSIsICJ2YWx1ZSI6ICJuYXZpZ2F0ZSJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLXNpdGUiLCAidmFsdWUiOiAiY3Jvc3Mtc2l0ZSJ9LCB7Im5hbWUiOiAidXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cyIsICJ2YWx1ZSI6ICIxIn0sIHsibmFtZSI6ICJ1c2VyLWFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMTkuMC42MDQ1LjkgU2FmYXJpLzUzNy4zNiJ9XSwgInF1ZXJ5U3RyaW5nIjogW3sibmFtZSI6ICJhZHRlc3QiLCAidmFsdWUiOiAib2ZmIn0sIHsibmFtZSI6ICJwc2lkIiwgInZhbHVlIjogIjExNjcyNjgxMTIifSwgeyJuYW1lIjogInBjc2EiLCAidmFsdWUiOiAiZmFsc2UifSwgeyJuYW1lIjogImNoYW5uZWwiLCAidmFsdWUiOiAiMDAwMDAxLGJ1Y2tldDAxMSxidWNrZXQwNzcifSwgeyJuYW1lIjogImNsaWVudCIsICJ2YWx1ZSI6ICJkcC10ZWFtaW50ZXJuZXQwOV8zcGgifSwgeyJuYW1lIjogInIiLCAidmFsdWUiOiAibSJ9LCB7Im5hbWUiOiAiaGwiLCAidmFsdWUiOiAiZGUifSwgeyJuYW1lIjogInJwYnUiLCAidmFsdWUiOiAiaHR0cHM6Ly9jdXJzZWQta25pZ2h0LmZyLz90cz1mRU5zWldGdVVHVndjR1Z5YldsdWRFSnNZV05yZkh3MVkyVTROSHhpZFdOclpYUXdNVEVzWW5WamEyVjBNRGMzZkh4OGZIeDhOalUxWVdNMlkyTTVZek5sWm54OGZERTNNREEwTkRjNU5EZ3VOalE0T0h3d016RTNZamRoT0dJd1lqaG1OelExWXpNM05ETTRaVFJtWVRGbFpHRXhOVGM1T1dGaU9HUTFmSHg4Zkh3eGZId3dmREI4Zkh4OE1YeDhmSHg4TUh3d2ZIeDhmSHg4Zkh4OGZEQjhNSHg4TUh4OGZEQjhNSHhYTVRBOWZId3hmRmN4TUQxOFl6WTBaak01TldKaE1URmlNVFkyWlRCa01XTmhNVGxrTkRNNVpEazNOMlEwWVRjeVltVmxNM3d3ZkdSd0xYUmxZVzFwYm5SbGNtNWxkREE1WHpOd2FId3dmREI4In0sIHsibmFtZSI6ICJtYXhfcmFkbGlua19sZW4iLCAidmFsdWUiOiAiNDAifSwgeyJuYW1lIjogInR5cGUiLCAidmFsdWUiOiAiMyJ9LCB7Im5hbWUiOiAidWlvcHQiLCAidmFsdWUiOiAidHJ1ZSJ9LCB7Im5hbWUiOiAic3dwIiwgInZhbHVlIjogImFzLWRyaWQtMjU1ODMzNDU0MDczMDc2OCJ9LCB7Im5hbWUiOiAib2UiLCAidmFsdWUiOiAiVVRGLTgifSwgeyJuYW1lIjogImllIiwgInZhbHVlIjogIlVURi04In0sIHsibmFtZSI6ICJmZXhwIiwgInZhbHVlIjogIjIxNDA0LDE3MzAxMTU3In0sIHsibmFtZSI6ICJmb3JtYXQiLCAidmFsdWUiOiAicjN8cyJ9LCB7Im5hbWUiOiAibm9jYWNoZSIsICJ2YWx1ZSI6ICIzMDkxNzAwNDQ3OTQ4OTM4In0sIHsibmFtZSI6ICJudW0iLCAidmFsdWUiOiAiMCJ9LCB7Im5hbWUiOiAib3V0cHV0IiwgInZhbHVlIjogImFmZF9hZHMifSwgeyJuYW1lIjogImRvbWFpbl9uYW1lIiwgInZhbHVlIjogImN1cnNlZC1rbmlnaHQuZnIifSwgeyJuYW1lIjogInYiLCAidmFsdWUiOiAiMyJ9LCB7Im5hbWUiOiAiYnNsIiwgInZhbHVlIjogIjgifSwgeyJuYW1lIjogInBhYyIsICJ2YWx1ZSI6ICIwIn0sIHsibmFtZSI6ICJ1X2hpcyIsICJ2YWx1ZSI6ICIyIn0sIHsibmFtZSI6ICJ1X3R6IiwgInZhbHVlIjogIjAifSwgeyJuYW1lIjogImR0IiwgInZhbHVlIjogIjE3MDA0NDc5NDg5NDEifSwgeyJuYW1lIjogInVfdyIsICJ2YWx1ZSI6ICIxOTIwIn0sIHsibmFtZSI6ICJ1X2giLCAidmFsdWUiOiAiMTA4MCJ9LCB7Im5hbWUiOiAiYml3IiwgInZhbHVlIjogIjE5MjAifSwgeyJuYW1lIjogImJpaCIsICJ2YWx1ZSI6ICIxMDgwIn0sIHsibmFtZSI6ICJwc3ciLCAidmFsdWUiOiAiMTkyMCJ9LCB7Im5hbWUiOiAicHNoIiwgInZhbHVlIjogIjc5MSJ9LCB7Im5hbWUiOiAiZnJtIiwgInZhbHVlIjogIjAifSwgeyJuYW1lIjogImNsIiwgInZhbHVlIjogIjU3OTk2Nzg2MiJ9LCB7Im5hbWUiOiAidWlvIiwgInZhbHVlIjogIi0tIn0sIHsibmFtZSI6ICJjb250IiwgInZhbHVlIjogInRjIn0sIHsibmFtZSI6ICJqc2lkIiwgInZhbHVlIjogImNhZiJ9LCB7Im5hbWUiOiAianN2IiwgInZhbHVlIjogIjU3OTk2Nzg2MiJ9LCB7Im5hbWUiOiAicnVybCIsICJ2YWx1ZSI6ICJodHRwczovL2N1cnNlZC1rbmlnaHQuZnIvIn1dLCAiaGVhZGVyc1NpemUiOiAxNDc5LCAiYm9keVNpemUiOiAwfSwgInJlc3BvbnNlIjogeyJzdGF0dXMiOiAyMDAsICJzdGF0dXNUZXh0IjogIiIsICJodHRwVmVyc2lvbiI6ICJoMyIsICJjb29raWVzIjogW3sibmFtZSI6ICJOSUQiLCAidmFsdWUiOiAiNTExPUt5Qlc5eXVvSUlpNV9jc3JyWFItTUlvc1E2YzdjZlBhZjhDb1ltRW1zUDl1dTg5MkVkSjNjbXVaNWh3VzJoR3pjTE5XZG14dHlOSjFyRXc2SlhBMjYtdFFvb1dIWlZ2SVV0SHp1UTBGSVJFcDRLSUN6aDlScmhNNjdsYnMxUlZrNEs3SVNrc1RLUE51UHg2VTNjSzNIVlQtUVNBb3Y5bnYxRnZzYXZ4S2tYNCIsICJzZWN1cmUiOiB0cnVlLCAiaHR0cE9ubHkiOiB0cnVlLCAic2FtZVNpdGUiOiAibm9uZSJ9LCB7Im5hbWUiOiAiQ09OU0VOVCIsICJ2YWx1ZSI6ICJQRU5ESU5HKzM5OSIsICJzZWN1cmUiOiB0cnVlfV0sICJoZWFkZXJzIjogW3sibmFtZSI6ICJhbHQtc3ZjIiwgInZhbHVlIjogImgzPVwiOjQ0M1wiOyBtYT0yNTkyMDAwLGgzLTI5PVwiOjQ0M1wiOyBtYT0yNTkyMDAwIn0sIHsibmFtZSI6ICJjYWNoZS1jb250cm9sIiwgInZhbHVlIjogInByaXZhdGUsIG1heC1hZ2U9MzYwMCJ9LCB7Im5hbWUiOiAiY29udGVudC1kaXNwb3NpdGlvbiIsICJ2YWx1ZSI6ICJpbmxpbmUifSwgeyJuYW1lIjogImNvbnRlbnQtZW5jb2RpbmciLCAidmFsdWUiOiAiYnIifSwgeyJuYW1lIjogImNvbnRlbnQtbGVuZ3RoIiwgInZhbHVlIjogIjI5NDEifSwgeyJuYW1lIjogImNvbnRlbnQtc2VjdXJpdHktcG9saWN5IiwgInZhbHVlIjogIm9iamVjdC1zcmMgJ25vbmUnO2Jhc2UtdXJpICdzZWxmJztzY3JpcHQtc3JjICdub25jZS1nUEJaSVRZMmxDSTIzOXVYYmxpRmhRJyAnc3RyaWN0LWR5bmFtaWMnICdyZXBvcnQtc2FtcGxlJyAndW5zYWZlLWV2YWwnICd1bnNhZmUtaW5saW5lJyBodHRwczogaHR0cDo7cmVwb3J0LXVyaSBodHRwczovL2NzcC53aXRoZ29vZ2xlLmNvbS9jc3AvZ3dzL290aGVyIn0sIHsibmFtZSI6ICJjb250ZW50LXR5cGUiLCAidmFsdWUiOiAidGV4dC9odG1sOyBjaGFyc2V0PVVURi04In0sIHsibmFtZSI6ICJjcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeSIsICJ2YWx1ZSI6ICJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cHM7IHJlcG9ydC10bz1cImd3c1wiIn0sIHsibmFtZSI6ICJkYXRlIiwgInZhbHVlIjogIk1vbiwgMjAgTm92IDIwMjMgMDI6Mzk6MDkgR01UIn0sIHsibmFtZSI6ICJleHBpcmVzIiwgInZhbHVlIjogIk1vbiwgMjAgTm92IDIwMjMgMDI6Mzk6MDkgR01UIn0sIHsibmFtZSI6ICJwM3AiLCAidmFsdWUiOiAiQ1A9XCJUaGlzIGlzIG5vdCBhIFAzUCBwb2xpY3khIFNlZSBnLmNvL3AzcGhlbHAgZm9yIG1vcmUgaW5mby5cIiJ9LCB7Im5hbWUiOiAicmVwb3J0LXRvIiwgInZhbHVlIjogIntcImdyb3VwXCI6XCJnd3NcIixcIm1heF9hZ2VcIjoyNTkyMDAwLFwiZW5kcG9pbnRzXCI6W3tcInVybFwiOlwiaHR0cHM6Ly9jc3Aud2l0aGdvb2dsZS5jb20vY3NwL3JlcG9ydC10by9nd3Mvb3RoZXJcIn1dfSJ9LCB7Im5hbWUiOiAic2VydmVyIiwgInZhbHVlIjogImd3cyJ9LCB7Im5hbWUiOiAic2V0LWNvb2tpZSIsICJ2YWx1ZSI6ICJOSUQ9NTExPUt5Qlc5eXVvSUlpNV9jc3JyWFItTUlvc1E2YzdjZlBhZjhDb1ltRW1zUDl1dTg5MkVkSjNjbXVaNWh3VzJoR3pjTE5XZG14dHlOSjFyRXc2SlhBMjYtdFFvb1dIWlZ2SVV0SHp1UTBGSVJFcDRLSUN6aDlScmhNNjdsYnMxUlZrNEs3SVNrc1RLUE51UHg2VTNjSzNIVlQtUVNBb3Y5bnYxRnZzYXZ4S2tYNDsgZXhwaXJlcz1UdWUsIDIxLU1heS0yMDI0IDAyOjM5OjA5IEdNVDsgcGF0aD0vOyBkb21haW49Lmdvb2dsZS5jb207IFNlY3VyZTsgSHR0cE9ubHk7IFNhbWVTaXRlPW5vbmUifSwgeyJuYW1lIjogInNldC1jb29raWUiLCAidmFsdWUiOiAiQ09OU0VOVD1QRU5ESU5HKzM5OTsgZXhwaXJlcz1XZWQsIDE5LU5vdi0yMDI1IDAyOjM5OjA5IEdNVDsgcGF0aD0vOyBkb21haW49Lmdvb2dsZS5jb207IFNlY3VyZSJ9LCB7Im5hbWUiOiAieC14c3MtcHJvdGVjdGlvbiIsICJ2YWx1ZSI6ICIwIn1dLCAiY29udGVudCI6IHsic2l6ZSI6IDE0ODM3LCAibWltZVR5cGUiOiAidGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiwgImNvbXByZXNzaW9uIjogMTE4NzIsICJ0ZXh0IjogIjwhZG9jdHlwZSBodG1sPjxodG1sIGxhbmc9XCJkZS1MVVwiPiA8aGVhZD4gPHN0eWxlIGlkPVwic3NyLWJvaWxlcnBsYXRlXCI+Ym9keXstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTsgZm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjsgbWFyZ2luOjA7fS5kaXZ7LXdlYmtpdC1ib3gtZmxleDowIDA7IC13ZWJraXQtZmxleC1zaHJpbms6MDsgZmxleC1zaHJpbms6MDttYXgtd2lkdGg6MTAwJTt9LnNwYW46bGFzdC1jaGlsZCwgLmRpdjpsYXN0LWNoaWxkey13ZWJraXQtYm94LWZsZXg6MSAwOyAtd2Via2l0LWZsZXgtc2hyaW5rOjE7IGZsZXgtc2hyaW5rOjE7fS5he3RleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBjb2xvcjppbmhlcml0OyBkaXNwbGF5OmlubGluZS1ibG9jazt9LnNwYW57LXdlYmtpdC1ib3gtZmxleDowIDA7IC13ZWJraXQtZmxleC1zaHJpbms6MDsgZmxleC1zaHJpbms6MDtkaXNwbGF5OmlubGluZS1ibG9jazsgb3ZlcmZsb3c6aGlkZGVuOyB0ZXh0LXRyYW5zZm9ybTpub25lO30uaW1ne2JvcmRlcjpub25lOyBtYXgtd2lkdGg6MTAwJTsgbWF4LWhlaWdodDoxMDAlO30uaV97ZGlzcGxheTotbXMtZmxleGJveDsgZGlzcGxheTotd2Via2l0LWJveDsgZGlzcGxheTotd2Via2l0LWZsZXg7IGRpc3BsYXk6ZmxleDstbXMtZmxleC1hbGlnbjpzdGFydDsgLXdlYmtpdC1ib3gtYWxpZ246c3RhcnQ7IC13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDtib3gtc2l6aW5nOmJvcmRlci1ib3g7IG92ZXJmbG93OmhpZGRlbjt9LnZfey13ZWJraXQtYm94LWZsZXg6MSAwOyAtd2Via2l0LWZsZXgtc2hyaW5rOjE7IGZsZXgtc2hyaW5rOjE7fS5qXz5zcGFuOmxhc3QtY2hpbGQsIC5qXz5kaXY6bGFzdC1jaGlsZCwgLndfLCAud186bGFzdC1jaGlsZHstd2Via2l0LWJveC1mbGV4OjAgMDsgLXdlYmtpdC1mbGV4LXNocmluazowOyBmbGV4LXNocmluazowO30ubF97LW1zLW92ZXJmbG93LXN0eWxlOm5vbmU7IHNjcm9sbGJhci13aWR0aDpub25lO30ubF86Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZTt9LnNfe3Bvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmlubGluZS1ibG9jazt9LnVfe3Bvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyBoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTphdXRvIDEwMCU7fS50X3tkaXNwbGF5OmJsb2NrO30ucl97ZGlzcGxheTotbXMtZmxleGJveDsgZGlzcGxheTotd2Via2l0LWJveDsgZGlzcGxheTotd2Via2l0LWZsZXg7IGRpc3BsYXk6ZmxleDstbXMtZmxleC1hbGlnbjpjZW50ZXI7IC13ZWJraXQtYm94LWFsaWduOmNlbnRlcjsgLXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjsgLXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7IC13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjt9LnFfe2JveC1zaXppbmc6Ym9yZGVyLWJveDsgbWF4LXdpZHRoOjEwMCU7IG1heC1oZWlnaHQ6MTAwJTsgb3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6LW1zLWZsZXhib3g7IGRpc3BsYXk6LXdlYmtpdC1ib3g7IGRpc3BsYXk6LXdlYmtpdC1mbGV4OyBkaXNwbGF5OmZsZXg7LW1zLWZsZXgtYWxpZ246Y2VudGVyOyAtd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7IC13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7IC13ZWJraXQtYm94LXBhY2s6Y2VudGVyOyAtd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7fS5uX3t0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOyB3aGl0ZS1zcGFjZTpub3dyYXA7fS5wX3stbXMtZmxleC1uZWdhdGl2ZToxOyBtYXgtd2lkdGg6IDEwMCU7fS5tX3tvdmVyZmxvdzpoaWRkZW47fS5vX3t3aGl0ZS1zcGFjZTpub3dyYXA7fS54X3tjdXJzb3I6cG9pbnRlcjt9Lnlfe2Rpc3BsYXk6bm9uZTsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTt9LmtfPmRpdjpub3QoLnlfKSB7ZGlzcGxheTotd2Via2l0LWlubGluZS1ib3g7IGRpc3BsYXk6LW1vei1pbmxpbmUtYm94OyBkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleGJveDsgZGlzcGxheTotd2Via2l0LWlubGluZS1mbGV4OyBkaXNwbGF5OmlubGluZS1mbGV4OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7fS5rXy50b3BBbGlnbj5kaXZ7dmVydGljYWwtYWxpZ246dG9wO30ua18uY2VudGVyQWxpZ24+ZGl2e3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt9LmtfLmJvdHRvbUFsaWduPmRpdnt2ZXJ0aWNhbC1hbGlnbjpib3R0b207fS5rXz5zcGFuLCAua18+YSwgLmtfPmltZywgLmtfe2Rpc3BsYXk6aW5saW5lOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7fS5zaTEwMTpudGgtb2YtdHlwZSg1bisxKSA+IC5zaTE0MXtib3JkZXItbGVmdDogIzFmOGE3MCA3cHggc29saWQ7fS5yc3NBdHRyQ29udGFpbmVyIH4gLnNpMTAxOm50aC1vZi10eXBlKDVuKzIpID4gLnNpMTQxe2JvcmRlci1sZWZ0OiAjMWY4YTcwIDdweCBzb2xpZDt9LnNpMTAxOm50aC1vZi10eXBlKDVuKzMpID4gLnNpMTQxe2JvcmRlci1sZWZ0OiAjYmVkYjM5IDdweCBzb2xpZDt9LnJzc0F0dHJDb250YWluZXIgfiAuc2kxMDE6bnRoLW9mLXR5cGUoNW4rNCkgPiAuc2kxNDF7Ym9yZGVyLWxlZnQ6ICNiZWRiMzkgN3B4IHNvbGlkO30uc2kxMDE6bnRoLW9mLXR5cGUoNW4rNSkgPiAuc2kxNDF7Ym9yZGVyLWxlZnQ6ICNmZmUxMWEgN3B4IHNvbGlkO30ucnNzQXR0ckNvbnRhaW5lciB+IC5zaTEwMTpudGgtb2YtdHlwZSg1bis2KSA+IC5zaTE0MXtib3JkZXItbGVmdDogI2ZmZTExYSA3cHggc29saWR9LnNpMTAxOm50aC1vZi10eXBlKDVuKzIpID4gLnNpMTQxe2JvcmRlci1sZWZ0OiAjZmQ3NDAwIDdweCBzb2xpZDt9LnJzc0F0dHJDb250YWluZXIgfiAuc2kxMDE6bnRoLW9mLXR5cGUoNW4rMykgPiAuc2kxNDF7Ym9yZGVyLWxlZnQ6ICNmZDc0MDAgN3B4IHNvbGlkO30uc2kxMDE6bnRoLW9mLXR5cGUoNW4rNCkgPiAuc2kxNDF7Ym9yZGVyLWxlZnQ6ICMwMDQzNTggN3B4IHNvbGlkO30ucnNzQXR0ckNvbnRhaW5lciB+IC5zaTEwMTpudGgtb2YtdHlwZSg1bis1KSA+IC5zaTE0MXtib3JkZXItbGVmdDogIzAwNDM1OCA3cHggc29saWQ7fS56X3tjdXJzb3I6cG9pbnRlcjt9LnNpMTMwe2Rpc3BsYXk6aW5saW5lOyB0ZXh0LXRyYW5zZm9ybTppbmhlcml0O30uZmxleEFsaWduU3RhcnR7LW1zLWZsZXgtYWxpZ246c3RhcnQ7IC13ZWJraXQtYm94LWFsaWduOnN0YXJ0OyAtd2Via2l0LWFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7fS5mbGV4QWxpZ25Cb3R0b217LW1zLWZsZXgtYWxpZ246ZW5kOyAtd2Via2l0LWJveC1hbGlnbjplbmQ7IC13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1lbmQ7IGFsaWduLWl0ZW1zOmZsZXgtZW5kO30uZmxleEFsaWduQ2VudGVyey1tcy1mbGV4LWFsaWduOmNlbnRlcjsgLXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOyAtd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyO30uZmxleEFsaWduU3RyZXRjaHstbXMtZmxleC1hbGlnbjpzdHJldGNoOyAtd2Via2l0LWJveC1hbGlnbjpzdHJldGNoOyAtd2Via2l0LWFsaWduLWl0ZW1zOnN0cmV0Y2g7IGFsaWduLWl0ZW1zOnN0cmV0Y2g7fS5mbGV4SnVzdGlmeVN0YXJ0ey1tcy1mbGV4LXBhY2s6c3RhcnQ7IC13ZWJraXQtYm94LXBhY2s6c3RhcnQ7IC13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7IGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O30uZmxleEp1c3RpZnlDZW50ZXJ7LW1zLWZsZXgtcGFjazpjZW50ZXI7IC13ZWJraXQtYm94LXBhY2s6Y2VudGVyOyAtd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7fS5mbGV4SnVzdGlmeUVuZHstbXMtZmxleC1wYWNrOmVuZDsgLXdlYmtpdC1ib3gtcGFjazplbmQ7IC13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtZW5kOyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7fS5hYl97cG9zaXRpb246IHJlbGF0aXZlO308L3N0eWxlPiAgPHN0eWxlPi5zaTEwMXt3aWR0aDoxMDAlOyAtbXMtZmxleC1uZWdhdGl2ZToxOy13ZWJraXQtYm94LWZsZXg6MSAwOyAtd2Via2l0LWZsZXgtc2hyaW5rOjE7IGZsZXgtc2hyaW5rOjE7fS5zaTE0NHtmb250LXdlaWdodDo3MDA7YmFja2dyb3VuZC1jb2xvcjojMTEyNjRkO2JvcmRlci1yYWRpdXM6MjVweDtib3JkZXI6NXB4IHNvbGlkICNmZmZmZmY7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MjZweDttYXJnaW4tYm90dG9tOjIwcHg7cGFkZGluZy1ib3R0b206NTBweDtwYWRkaW5nLWxlZnQ6MTNweDtwYWRkaW5nLXJpZ2h0OjEzcHg7cGFkZGluZy10b3A6NTBweDtjb2xvcjojZmZmZmZmO3dpZHRoOjEwMCU7IC1tcy1mbGV4LW5lZ2F0aXZlOjE7LXdlYmtpdC1ib3gtZmxleDoxIDA7IC13ZWJraXQtZmxleC1zaHJpbms6MTsgZmxleC1zaHJpbms6MTt9LnNpMTQ0OmhvdmVye2JhY2tncm91bmQtY29sb3I6IzI0MmI0Mjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30uc2kzM3ttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjEwMCU7IC1tcy1mbGV4LW5lZ2F0aXZlOjE7LXdlYmtpdC1ib3gtZmxleDoxIDA7IC13ZWJraXQtZmxleC1zaHJpbms6MTsgZmxleC1zaHJpbms6MTt9LnNpMTAye2JvcmRlci1yYWRpdXM6MTVweDtoZWlnaHQ6MzBweDt3aWR0aDoxcHg7fS5zaTEyOHtoZWlnaHQ6MXB4O3dpZHRoOjEwMCU7IC1tcy1mbGV4LW5lZ2F0aXZlOjE7LXdlYmtpdC1ib3gtZmxleDoxIDA7IC13ZWJraXQtZmxleC1zaHJpbms6MTsgZmxleC1zaHJpbms6MTt9ZGl2PmRpdi5zaTEyODpsYXN0LWNoaWxke2Rpc3BsYXk6bm9uZTt9LnNpMTMze2JhY2tncm91bmQtY29sb3I6IzEwMWMzNjtib3JkZXItcmFkaXVzOjJweDtmb250LXNpemU6MTBweDtsaW5lLWhlaWdodDoxMXB4O21hcmdpbi1ib3R0b206NXB4O2NvbG9yOiNjZGNkY2Q7fS5zaTEzNXtiYWNrZ3JvdW5kLWNvbG9yOiMxMDFjMzY7aGVpZ2h0OjEwMCU7fS5zaTE0M3tib3JkZXItcmFkaXVzOjEycHg7d2lkdGg6MjRweDt9LnNpMTMwe2ZvbnQtd2VpZ2h0OjcwMDt9LnJzc0F0dHJDb250YWluZXJ7d2lkdGg6MTAwJTsgLW1zLWZsZXgtbmVnYXRpdmU6MTstd2Via2l0LWJveC1mbGV4OjEgMDsgLXdlYmtpdC1mbGV4LXNocmluazoxOyBmbGV4LXNocmluazoxO30uc2kxMzN7YmFja2dyb3VuZC1jb2xvcjojMTAxYzM2O2JvcmRlci1yYWRpdXM6MnB4O2ZvbnQtc2l6ZToxMHB4O2xpbmUtaGVpZ2h0OjExcHg7bWFyZ2luLWJvdHRvbTo1cHg7Y29sb3I6I2NkY2RjZDt9LnNpMTM1e2JhY2tncm91bmQtY29sb3I6IzEwMWMzNjtwYWRkaW5nLWJvdHRvbTowcHg7cGFkZGluZy1yaWdodDowcHg7fTwvc3R5bGU+IDxtZXRhIGNvbnRlbnQ9XCJOT0lOREVYLCBOT0ZPTExPV1wiIG5hbWU9XCJST0JPVFNcIj4gPG1ldGEgY29udGVudD1cInRlbGVwaG9uZT1ub1wiIG5hbWU9XCJmb3JtYXQtZGV0ZWN0aW9uXCI+IDxtZXRhIGNvbnRlbnQ9XCJvcmlnaW5cIiBuYW1lPVwicmVmZXJyZXJcIj4gICAgPC9oZWFkPiA8Ym9keT4gIDxkaXYgaWQ9XCJhZEJsb2NrXCI+ICAgPGRpdiBpZD1cInNzcmFkLW1hc3RlclwiIGRhdGEtY3NhLW5lZWRzLXByb2Nlc3Npbmc9XCIxXCIgZGF0YS1udW0tYWRzPVwiM1wiIGNsYXNzPVwicGFyZW50X2NvbnRhaW5lclwiPjxkaXYgY2xhc3M9XCJpXyBkaXYgc2kxMzVcIiBzdHlsZT1cIi1tcy1mbGV4LWRpcmVjdGlvbjpyb3c7IC13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOyAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzsgZmxleC1kaXJlY3Rpb246cm93Oy1tcy1mbGV4LXBhY2s6c3RhcnQ7IC13ZWJraXQtYm94LXBhY2s6c3RhcnQ7IC13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7IGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0Oy1tcy1mbGV4LWFsaWduOnN0YXJ0OyAtd2Via2l0LWJveC1hbGlnbjpzdGFydDsgLXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0Oy1tcy1mbGV4LXdyYXA6d3JhcDsgLXdlYmtpdC1mbGV4LXdyYXA6d3JhcDsgZmxleC13cmFwOndyYXA7XCIgZGF0YS1hZC1jb250YWluZXI9XCIxXCI+PGRpdiBjbGFzcz1cImlfIGRpdiByc3NBdHRyQ29udGFpbmVyXCIgc3R5bGU9XCItbXMtZmxleC1kaXJlY3Rpb246cm93OyAtd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDsgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7IGZsZXgtZGlyZWN0aW9uOnJvdztcIj48c3BhbiBjbGFzcz1cInBfIHNpMTMzIHNwYW5cIj5cdTAwYzRobmxpY2hlIFN1Y2hhbmZyYWdlbjwvc3Bhbj48L2Rpdj48ZGl2IGlkPVwiZTFcIiBjbGFzcz1cImlfIGRpdiBjbGlja3RyYWNrZWRBZF9qcyBzaTEwMVwiIHN0eWxlPVwiLW1zLWZsZXgtZGlyZWN0aW9uOnJvdzsgLXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7IC13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93OyBmbGV4LWRpcmVjdGlvbjpyb3c7XCI+PGEgaHJlZj1cImh0dHBzOi8vY3Vyc2VkLWtuaWdodC5mci8/dHM9ZkVOc1pXRnVVR1Z3Y0dWeWJXbHVkRUpzWVdOcmZIdzFZMlU0Tkh4aWRXTnJaWFF3TVRFc1luVmphMlYwTURjM2ZIeDhmSHg4TmpVMVlXTTJZMk01WXpObFpueDhmREUzTURBME5EYzVORGd1TmpRNE9Id3dNekUzWWpkaE9HSXdZamhtTnpRMVl6TTNORE00WlRSbVlURmxaR0V4TlRjNU9XRmlPR1ExZkh4OGZId3hmSHd3ZkRCOGZIeDhNWHg4Zkh4OE1Id3dmSHg4Zkh4OGZIeDhmREI4TUh4OE1IeDhmREI4TUh4WE1UQTlmSHd4ZkZjeE1EMThZelkwWmpNNU5XSmhNVEZpTVRZMlpUQmtNV05oTVRsa05ETTVaRGszTjJRMFlUY3lZbVZsTTN3d2ZHUndMWFJsWVcxcGJuUmxjbTVsZERBNVh6TndhSHd3ZkRCOCZhbXA7cXVlcnk9T25saW5lK1Nsb3RzK0F1cyZhbXA7YWZkVG9rZW49Q2hNSXA5X1puOGJSZ2dNVlM4VUNCeDNtMHdzR0VtY0JsTHFwai0wMG4xdVlNZTlPb3NUaUppdVJwQnZTYndxcldYQ2RNQVJRbTdVYnpqVmdaQkhaRTcwYVgzYUtiT1h0dTRXc0x5NTRHb0xEYTJRYWtMaHBrMGVnMXliaDl6elhrNE8xMkNFX0xTWGRXY1k4QmIxMzRNVnQwbnplNkd2QllhUHNwV3dhJmFtcDtwY3NhPWZhbHNlXCIgZGF0YS1uYj1cIjBcIiB0YXJnZXQ9XCJfdG9wXCIgY2xhc3M9XCJpXyBhIHNpMTQ0XCIgc3R5bGU9XCItbXMtZmxleC1kaXJlY3Rpb246cm93OyAtd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDsgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7IGZsZXgtZGlyZWN0aW9uOnJvdzstbXMtZmxleC1wYWNrOnN0YXJ0OyAtd2Via2l0LWJveC1wYWNrOnN0YXJ0OyAtd2Via2l0LWp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0OyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDstbXMtZmxleC1hbGlnbjpjZW50ZXI7IC13ZWJraXQtYm94LWFsaWduOmNlbnRlcjsgLXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjtcIj48ZGl2IGNsYXNzPVwiaV8gZGl2IHNpNjlcIiBzdHlsZT1cIi1tcy1mbGV4LWRpcmVjdGlvbjpyb3c7IC13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOyAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzsgZmxleC1kaXJlY3Rpb246cm93Oy1tcy1mbGV4LXBhY2s6Y2VudGVyOyAtd2Via2l0LWJveC1wYWNrOmNlbnRlcjsgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjsgLXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOyAtd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyO1wiPjxkaXYgY2xhc3M9XCJpXyBkaXZcIiBzdHlsZT1cIi1tcy1mbGV4LWRpcmVjdGlvbjpyb3c7IC13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOyAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzsgZmxleC1kaXJlY3Rpb246cm93O1wiPjxkaXYgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGFiaW5kZXg9XCItMVwiIGNsYXNzPVwiZGl2IHFfIHNpMTAyXCI+PGltZyBzcmM9XCJodHRwczovL2Fmcy5nb29nbGV1c2VyY29udGVudC5jb20vYWRfaWNvbnMvc3RhbmRhcmQvcHVibGlzaGVyX2ljb25faW1hZ2Uvc2VhcmNoLnN2Zz9jPSUyM2ZmZmZmZlwiIGxvYWRpbmc9XCJsYXp5XCIgY2xhc3M9XCJpbWdcIj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPVwiaV8gZGl2IHNpMzNcIiBzdHlsZT1cIi1tcy1mbGV4LWRpcmVjdGlvbjpyb3c7IC13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOyAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzsgZmxleC1kaXJlY3Rpb246cm93Oy1tcy1mbGV4LXBhY2s6c3RhcnQ7IC13ZWJraXQtYm94LXBhY2s6c3RhcnQ7IC13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7IGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0Oy1tcy1mbGV4LWFsaWduOmNlbnRlcjsgLXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOyAtd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyO1wiPjxzcGFuIGNsYXNzPVwicF8gc2kzNCBzcGFuXCI+T25saW5lIFNsb3RzIEF1czwvc3Bhbj48L2Rpdj48ZGl2IGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRhYmluZGV4PVwiLTFcIiBjbGFzcz1cImRpdiBxXyBzaTE0MyB3X1wiPjxpbWcgc3JjPVwiaHR0cHM6Ly9hZnMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2FkX2ljb25zL3N0YW5kYXJkL3B1Ymxpc2hlcl9pY29uX2ltYWdlL2NoZXZyb24uc3ZnP2M9JTIzZmZmZmZmXCIgbG9hZGluZz1cImxhenlcIiBjbGFzcz1cImltZ1wiPjwvZGl2PjwvYT48L2Rpdj48ZGl2IGlkPVwiZTNcIiBjbGFzcz1cImlfIGRpdiBjbGlja3RyYWNrZWRBZF9qcyBzaTEwMVwiIHN0eWxlPVwiLW1zLWZsZXgtZGlyZWN0aW9uOnJvdzsgLXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7IC13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93OyBmbGV4LWRpcmVjdGlvbjpyb3c7XCI+PGEgaHJlZj1cImh0dHBzOi8vY3Vyc2VkLWtuaWdodC5mci8/dHM9ZkVOc1pXRnVVR1Z3Y0dWeWJXbHVkRUpzWVdOcmZIdzFZMlU0Tkh4aWRXTnJaWFF3TVRFc1luVmphMlYwTURjM2ZIeDhmSHg4TmpVMVlXTTJZMk01WXpObFpueDhmREUzTURBME5EYzVORGd1TmpRNE9Id3dNekUzWWpkaE9HSXdZamhtTnpRMVl6TTNORE00WlRSbVlURmxaR0V4TlRjNU9XRmlPR1ExZkh4OGZId3hmSHd3ZkRCOGZIeDhNWHg4Zkh4OE1Id3dmSHg4Zkh4OGZIeDhmREI4TUh4OE1IeDhmREI4TUh4WE1UQTlmSHd4ZkZjeE1EMThZelkwWmpNNU5XSmhNVEZpTVRZMlpUQmtNV05oTVRsa05ETTVaRGszTjJRMFlUY3lZbVZsTTN3d2ZHUndMWFJsWVcxcGJuUmxjbTVsZERBNVh6TndhSHd3ZkRCOCZhbXA7cXVlcnk9T25saW5lK1Nsb3RzK0VjaHRnZWxkJmFtcDthZmRUb2tlbj1DaE1JcDlfWm44YlJnZ01WUzhVQ0J4M20wd3NHRW1jQmxMcXBqMEYwWmdCR0hYTGpYNmtiX3B6R3hSanRaR1dxTTlVZXk1OTZ1OEpJQTRNc0EyQzRGcHRiN3JNUHlsY2NmTFRtaXFkY2cxZzhjc2Q0M1FDazlCUFhxQkd6dUFkdUpnX0pWUWV0NFFuNWw3bE5vLVJiMXh4cUhLYVY4MlZZQjF6YXdweXMmYW1wO3Bjc2E9ZmFsc2VcIiBkYXRhLW5iPVwiMFwiIHRhcmdldD1cIl90b3BcIiBjbGFzcz1cImlfIGEgc2kxNDRcIiBzdHlsZT1cIi1tcy1mbGV4LWRpcmVjdGlvbjpyb3c7IC13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOyAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzsgZmxleC1kaXJlY3Rpb246cm93Oy1tcy1mbGV4LXBhY2s6c3RhcnQ7IC13ZWJraXQtYm94LXBhY2s6c3RhcnQ7IC13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7IGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0Oy1tcy1mbGV4LWFsaWduOmNlbnRlcjsgLXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOyAtd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyO1wiPjxkaXYgY2xhc3M9XCJpXyBkaXYgc2k2OVwiIHN0eWxlPVwiLW1zLWZsZXgtZGlyZWN0aW9uOnJvdzsgLXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7IC13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93OyBmbGV4LWRpcmVjdGlvbjpyb3c7LW1zLWZsZXgtcGFjazpjZW50ZXI7IC13ZWJraXQtYm94LXBhY2s6Y2VudGVyOyAtd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyOyAtd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7IC13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7XCI+PGRpdiBjbGFzcz1cImlfIGRpdlwiIHN0eWxlPVwiLW1zLWZsZXgtZGlyZWN0aW9uOnJvdzsgLXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7IC13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93OyBmbGV4LWRpcmVjdGlvbjpyb3c7XCI+PGRpdiBhcmlhLWhpZGRlbj1cInRydWVcIiB0YWJpbmRleD1cIi0xXCIgY2xhc3M9XCJkaXYgcV8gc2kxMDJcIj48aW1nIHNyYz1cImh0dHBzOi8vYWZzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9hZF9pY29ucy9zdGFuZGFyZC9wdWJsaXNoZXJfaWNvbl9pbWFnZS9zZWFyY2guc3ZnP2M9JTIzZmZmZmZmXCIgbG9hZGluZz1cImxhenlcIiBjbGFzcz1cImltZ1wiPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9XCJpXyBkaXYgc2kzM1wiIHN0eWxlPVwiLW1zLWZsZXgtZGlyZWN0aW9uOnJvdzsgLXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7IC13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93OyBmbGV4LWRpcmVjdGlvbjpyb3c7LW1zLWZsZXgtcGFjazpzdGFydDsgLXdlYmtpdC1ib3gtcGFjazpzdGFydDsgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDsganVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7LW1zLWZsZXgtYWxpZ246Y2VudGVyOyAtd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7IC13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7XCI+PHNwYW4gY2xhc3M9XCJwXyBzaTM0IHNwYW5cIj5PbmxpbmUgU2xvdHMgRWNodGdlbGQ8L3NwYW4+PC9kaXY+PGRpdiBhcmlhLWhpZGRlbj1cInRydWVcIiB0YWJpbmRleD1cIi0xXCIgY2xhc3M9XCJkaXYgcV8gc2kxNDMgd19cIj48aW1nIHNyYz1cImh0dHBzOi8vYWZzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9hZF9pY29ucy9zdGFuZGFyZC9wdWJsaXNoZXJfaWNvbl9pbWFnZS9jaGV2cm9uLnN2Zz9jPSUyM2ZmZmZmZlwiIGxvYWRpbmc9XCJsYXp5XCIgY2xhc3M9XCJpbWdcIj48L2Rpdj48L2E+PC9kaXY+PGRpdiBpZD1cImUyXCIgY2xhc3M9XCJpXyBkaXYgY2xpY2t0cmFja2VkQWRfanMgc2kxMDFcIiBzdHlsZT1cIi1tcy1mbGV4LWRpcmVjdGlvbjpyb3c7IC13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOyAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzsgZmxleC1kaXJlY3Rpb246cm93O1wiPjxhIGhyZWY9XCJodHRwczovL2N1cnNlZC1rbmlnaHQuZnIvP3RzPWZFTnNaV0Z1VUdWd2NHVnliV2x1ZEVKc1lXTnJmSHcxWTJVNE5IeGlkV05yWlhRd01URXNZblZqYTJWME1EYzNmSHg4Zkh4OE5qVTFZV00yWTJNNVl6Tmxabng4ZkRFM01EQTBORGM1TkRndU5qUTRPSHd3TXpFM1lqZGhPR0l3WWpobU56UTFZek0zTkRNNFpUUm1ZVEZsWkdFeE5UYzVPV0ZpT0dRMWZIeDhmSHd4Zkh3d2ZEQjhmSHg4TVh4OGZIeDhNSHd3Zkh4OGZIeDhmSHg4ZkRCOE1IeDhNSHg4ZkRCOE1IeFhNVEE5Zkh3eGZGY3hNRDE4WXpZMFpqTTVOV0poTVRGaU1UWTJaVEJrTVdOaE1UbGtORE01WkRrM04yUTBZVGN5WW1WbE0zd3dmR1J3TFhSbFlXMXBiblJsY201bGREQTVYek53YUh3d2ZEQjgmYW1wO3F1ZXJ5PU9ubGluZStDYXNpbm8rU2VpdGVuJmFtcDthZmRUb2tlbj1DaE1JcDlfWm44YlJnZ01WUzhVQ0J4M20wd3NHRW1ZQmxMcXBqek9majBSU1RlYlJSWkxmZWpjWi1HaDlLblBIR0g2SlBZNWtQLVpIN1p2SVE1MDV5SU5sVWJoYkF4TTVKN2hhV1U0VXhKbjM2X0JLQjhRV0FMOWtvZlMyYmZXalQzRFRrYjVGaF9nQUZSZmltcWI4dWhtdXhzVnFIelVYRU5hYkJ3RSZhbXA7cGNzYT1mYWxzZVwiIGRhdGEtbmI9XCIwXCIgdGFyZ2V0PVwiX3RvcFwiIGNsYXNzPVwiaV8gYSBzaTE0NFwiIHN0eWxlPVwiLW1zLWZsZXgtZGlyZWN0aW9uOnJvdzsgLXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7IC13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93OyBmbGV4LWRpcmVjdGlvbjpyb3c7LW1zLWZsZXgtcGFjazpzdGFydDsgLXdlYmtpdC1ib3gtcGFjazpzdGFydDsgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDsganVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7LW1zLWZsZXgtYWxpZ246Y2VudGVyOyAtd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7IC13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7XCI+PGRpdiBjbGFzcz1cImlfIGRpdiBzaTY5XCIgc3R5bGU9XCItbXMtZmxleC1kaXJlY3Rpb246cm93OyAtd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDsgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7IGZsZXgtZGlyZWN0aW9uOnJvdzstbXMtZmxleC1wYWNrOmNlbnRlcjsgLXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7IC13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7IC13ZWJraXQtYm94LWFsaWduOmNlbnRlcjsgLXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjtcIj48ZGl2IGNsYXNzPVwiaV8gZGl2XCIgc3R5bGU9XCItbXMtZmxleC1kaXJlY3Rpb246cm93OyAtd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDsgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7IGZsZXgtZGlyZWN0aW9uOnJvdztcIj48ZGl2IGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRhYmluZGV4PVwiLTFcIiBjbGFzcz1cImRpdiBxXyBzaTEwMlwiPjxpbWcgc3JjPVwiaHR0cHM6Ly9hZnMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2FkX2ljb25zL3N0YW5kYXJkL3B1Ymxpc2hlcl9pY29uX2ltYWdlL3NlYXJjaC5zdmc/Yz0lMjNmZmZmZmZcIiBsb2FkaW5nPVwibGF6eVwiIGNsYXNzPVwiaW1nXCI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz1cImlfIGRpdiBzaTMzXCIgc3R5bGU9XCItbXMtZmxleC1kaXJlY3Rpb246cm93OyAtd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDsgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7IGZsZXgtZGlyZWN0aW9uOnJvdzstbXMtZmxleC1wYWNrOnN0YXJ0OyAtd2Via2l0LWJveC1wYWNrOnN0YXJ0OyAtd2Via2l0LWp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0OyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDstbXMtZmxleC1hbGlnbjpjZW50ZXI7IC13ZWJraXQtYm94LWFsaWduOmNlbnRlcjsgLXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjtcIj48c3BhbiBjbGFzcz1cInBfIHNpMzQgc3BhblwiPk9ubGluZSBDYXNpbm8gU2VpdGVuPC9zcGFuPjwvZGl2PjxkaXYgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGFiaW5kZXg9XCItMVwiIGNsYXNzPVwiZGl2IHFfIHNpMTQzIHdfXCI+PGltZyBzcmM9XCJodHRwczovL2Fmcy5nb29nbGV1c2VyY29udGVudC5jb20vYWRfaWNvbnMvc3RhbmRhcmQvcHVibGlzaGVyX2ljb25faW1hZ2UvY2hldnJvbi5zdmc/Yz0lMjNmZmZmZmZcIiBsb2FkaW5nPVwibGF6eVwiIGNsYXNzPVwiaW1nXCI+PC9kaXY+PC9hPjwvZGl2PjwvZGl2PjwvZGl2PiA8L2Rpdj4gPGRpdiBpZD1cInNzcmFiXCIgc3R5bGU9XCJkaXNwbGF5Om5vbmU7XCI+PCEtLWxlYWRlci1jb250ZW50LS0+PGRpdiBpZD1cInNzcnNiLXNsYXZlLTFcIj48L2Rpdj48L2Rpdj4gPHNjcmlwdCBub25jZT1cImdQQlpJVFkybENJMjM5dVhibGlGaFFcIj53aW5kb3cuQUZTX0FEX1JFUVVFU1RfUkVUVVJOX1RJTUVfID0gRGF0ZS5ub3coKTt3aW5kb3cuSVNfR09PR0xFX0FGU19JRlJBTUVfID0gdHJ1ZTtmdW5jdGlvbiBwb3B1bGF0ZShlbCkgeyB2YXIgYWRCbG9jayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYWRCbG9ja1wiKTsgYWRCbG9jay5pbm5lckhUTUwgKz0gZWw7fVxudmFyIElTX0dPT0dMRV9BRlNfSUZSQU1FXyA9IHRydWU7XG52YXIgYWRfanNvbiA9IHtcImNhcHNcIjpbe1wiblwiOlwicXVlcnlJZFwiLFwidlwiOlwiemNaYVpaR3hCWm1yanV3UHhLT3RxQUlcIn0se1wiblwiOlwicG9wc3RyaXBlUnNcIixcInZcIjpcIiMxRjhBNzAsI0JFREIzOSwjRkZFMTFBLCNGRDc0MDAsIzAwNDM1OFwifV0sXCJzYnNcIjpbe1wiZm5cIjpcInNsYXZlLTFcIixcImFmZHRcIjpcIkNoTUlwOV9abjhiUmdnTVZTOFVDQngzbTB3c0dFbDRCbExxcGo1ZVBSd3FEMTR6WkZkdXczRGUtYVNpYkVhbXFiLWROZTNRTTh3TTM1ZExqTm05Z0xSS0FuM3FXa3dZRmlXXzFKR0N0SS1DbFhPRFFid0ZiNXdBSlp2Qk5CNWxfUXZwWjE3Wkl2WWhIeGQ3LWpobjByWTcwM3JIVVwiLFwibGFiZWxcIjpcIkFuemVpZ2VuIHN1Y2hlblwifV0sXCJyc19hdHRyXCI6e1widFwiOlwiTGlua3MgenUgdmVyd2FuZHRlbiBTZWl0ZW5cIixcInVcIjpcIlwifSxcImdkXCI6e1wiZmZcIjp7XCJmZFwiOlwic3dhcFwiLFwiaWNlbGFlXCI6dHJ1ZSxcImN0Y2x0XCI6XCJcIixcImRscmNwXCI6dHJ1ZSxcImVpZWxsXCI6dHJ1ZSxcInBjc2JzXCI6XCI1MFwiLFwicGNzYnBcIjpcIjUwXCJ9LFwiY2RcIjp7XCJwaWRcIjpcImRwLXRlYW1pbnRlcm5ldDA5XzNwaFwiLFwiZWF3cFwiOlwicGFydG5lci1kcC10ZWFtaW50ZXJuZXQwOV8zcGhcIixcInFpXCI6XCJ6Y1phWlpHeEJabXJqdXdQeEtPdHFBSVwifSxcInBjXCI6e1wiY3VjYWlcIjp0cnVlLFwiY2dhYlwiOnRydWUsXCJjdFwiOnRydWV9LFwiZGNcIjp7XCJkXCI6dHJ1ZX19fTs8L3NjcmlwdD4gPHNjcmlwdCBzcmM9XCIvYWRzZW5zZS9kb21haW5zL2NhZi5qcz9wYWM9MFwiIHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIiBub25jZT1cImdQQlpJVFkybENJMjM5dVhibGlGaFFcIj48L3NjcmlwdD4gIDwvYm9keT4gPC9odG1sPiJ9LCAiaGVhZGVyc1NpemUiOiAwLCAiYm9keVNpemUiOiAyOTY1LCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiAyOTY1fSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAwLCAiY29ubmVjdCI6IDYzLjc1OSwgInNzbCI6IDYzLjc1OSwgInNlbmQiOiAwLCAid2FpdCI6IDE0My4yOTgsICJyZWNlaXZlIjogMi41ODJ9LCAicGFnZXJlZiI6ICJwYWdlQDBiMzE5MDRhMTIzMmNkZDBjYThlZWQyZjRkYmUxMDVkIiwgInNlcnZlcklQQWRkcmVzcyI6ICJbMmEwMDoxNDUwOjQwMTc6ODBmOjoyMDA0XSIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlFVSUMiLCAic3ViamVjdE5hbWUiOiAiKi5nb29nbGUuY29tIiwgImlzc3VlciI6ICJHVFMgQ0EgMUMzIiwgInZhbGlkRnJvbSI6IDE2OTgwNTk5MDQsICJ2YWxpZFRvIjogMTcwNTMxNzUwM319LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDIzLTExLTIwVDAyOjM5OjA5LjIxNVoiLCAidGltZSI6IDEyMy4wODUsICJyZXF1ZXN0IjogeyJtZXRob2QiOiAiR0VUIiwgInVybCI6ICJodHRwczovL3d3dy5nb29nbGUuY29tL2Fkc2Vuc2UvZG9tYWlucy9jYWYuanM/cGFjPTAiLCAiaHR0cFZlcnNpb24iOiAiaDMiLCAiY29va2llcyI6IFt7Im5hbWUiOiAiTklEIiwgInZhbHVlIjogIjUxMT1LeUJXOXl1b0lJaTVfY3NyclhSLU1Jb3NRNmM3Y2ZQYWY4Q29ZbUVtc1A5dXU4OTJFZEozY211WjVod1cyaEd6Y0xOV2RteHR5TkoxckV3NkpYQTI2LXRRb29XSFpWdklVdEh6dVEwRklSRXA0S0lDemg5UnJoTTY3bGJzMVJWazRLN0lTa3NUS1BOdVB4NlUzY0szSFZULVFTQW92OW52MUZ2c2F2eEtrWDQifV0sICJoZWFkZXJzIjogW3sibmFtZSI6ICI6YXV0aG9yaXR5IiwgInZhbHVlIjogInd3dy5nb29nbGUuY29tIn0sIHsibmFtZSI6ICI6bWV0aG9kIiwgInZhbHVlIjogIkdFVCJ9LCB7Im5hbWUiOiAiOnBhdGgiLCAidmFsdWUiOiAiL2Fkc2Vuc2UvZG9tYWlucy9jYWYuanM/cGFjPTAifSwgeyJuYW1lIjogIjpzY2hlbWUiLCAidmFsdWUiOiAiaHR0cHMifSwgeyJuYW1lIjogImFjY2VwdCIsICJ2YWx1ZSI6ICIqLyoifSwgeyJuYW1lIjogImFjY2VwdC1lbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwLCBkZWZsYXRlLCBiciJ9LCB7Im5hbWUiOiAiYWNjZXB0LWxhbmd1YWdlIiwgInZhbHVlIjogImVuLVVTLGVuO3E9MC45In0sIHsibmFtZSI6ICJjb29raWUiLCAidmFsdWUiOiAiTklEPTUxMT1LeUJXOXl1b0lJaTVfY3NyclhSLU1Jb3NRNmM3Y2ZQYWY4Q29ZbUVtc1A5dXU4OTJFZEozY211WjVod1cyaEd6Y0xOV2RteHR5TkoxckV3NkpYQTI2LXRRb29XSFpWdklVdEh6dVEwRklSRXA0S0lDemg5UnJoTTY3bGJzMVJWazRLN0lTa3NUS1BOdVB4NlUzY0szSFZULVFTQW92OW52MUZ2c2F2eEtrWDQifSwgeyJuYW1lIjogInJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS8ifSwgeyJuYW1lIjogInNlYy1mZXRjaC1kZXN0IiwgInZhbHVlIjogInNjcmlwdCJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLW1vZGUiLCAidmFsdWUiOiAibm8tY29ycyJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLXNpdGUiLCAidmFsdWUiOiAic2FtZS1vcmlnaW4ifSwgeyJuYW1lIjogInVzZXItYWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExOS4wLjYwNDUuOSBTYWZhcmkvNTM3LjM2In1dLCAicXVlcnlTdHJpbmciOiBbeyJuYW1lIjogInBhYyIsICJ2YWx1ZSI6ICIwIn1dLCAiaGVhZGVyc1NpemUiOiA2NDUsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiIiwgImh0dHBWZXJzaW9uIjogImgzIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogImFjY2VwdC1yYW5nZXMiLCAidmFsdWUiOiAiYnl0ZXMifSwgeyJuYW1lIjogImFsdC1zdmMiLCAidmFsdWUiOiAiaDM9XCI6NDQzXCI7IG1hPTI1OTIwMDAsaDMtMjk9XCI6NDQzXCI7IG1hPTI1OTIwMDAifSwgeyJuYW1lIjogImNhY2hlLWNvbnRyb2wiLCAidmFsdWUiOiAicHJpdmF0ZSwgbWF4LWFnZT0zNjAwIn0sIHsibmFtZSI6ICJjb250ZW50LWVuY29kaW5nIiwgInZhbHVlIjogImd6aXAifSwgeyJuYW1lIjogImNvbnRlbnQtc2VjdXJpdHktcG9saWN5LXJlcG9ydC1vbmx5IiwgInZhbHVlIjogInJlcXVpcmUtdHJ1c3RlZC10eXBlcy1mb3IgJ3NjcmlwdCc7IHJlcG9ydC11cmkgaHR0cHM6Ly9jc3Aud2l0aGdvb2dsZS5jb20vY3NwL2Fkcy1hZnMtdWkifSwgeyJuYW1lIjogImNvbnRlbnQtdHlwZSIsICJ2YWx1ZSI6ICJ0ZXh0L2phdmFzY3JpcHQ7IGNoYXJzZXQ9VVRGLTgifSwgeyJuYW1lIjogImNyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5IiwgInZhbHVlIjogInNhbWUtb3JpZ2luOyByZXBvcnQtdG89XCJhZHMtYWZzLXVpXCIifSwgeyJuYW1lIjogImNyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3kiLCAidmFsdWUiOiAiY3Jvc3Mtb3JpZ2luIn0sIHsibmFtZSI6ICJkYXRlIiwgInZhbHVlIjogIk1vbiwgMjAgTm92IDIwMjMgMDI6Mzk6MDkgR01UIn0sIHsibmFtZSI6ICJldGFnIiwgInZhbHVlIjogIlwiMTI1NTU5ODI1NjA3OTMzNjI2MzJcIiJ9LCB7Im5hbWUiOiAiZXhwaXJlcyIsICJ2YWx1ZSI6ICJNb24sIDIwIE5vdiAyMDIzIDAyOjM5OjA5IEdNVCJ9LCB7Im5hbWUiOiAibGluayIsICJ2YWx1ZSI6ICI8aHR0cHM6Ly93d3cuYWRzZW5zZWN1c3RvbXNlYXJjaGFkcy5jb20+OyByZWw9XCJwcmVjb25uZWN0XCIifSwgeyJuYW1lIjogInJlcG9ydC10byIsICJ2YWx1ZSI6ICJ7XCJncm91cFwiOlwiYWRzLWFmcy11aVwiLFwibWF4X2FnZVwiOjI1OTIwMDAsXCJlbmRwb2ludHNcIjpbe1widXJsXCI6XCJodHRwczovL2NzcC53aXRoZ29vZ2xlLmNvbS9jc3AvcmVwb3J0LXRvL2Fkcy1hZnMtdWlcIn1dfSJ9LCB7Im5hbWUiOiAic2VydmVyIiwgInZhbHVlIjogInNmZmUifSwgeyJuYW1lIjogInZhcnkiLCAidmFsdWUiOiAiQWNjZXB0LUVuY29kaW5nIn0sIHsibmFtZSI6ICJ4LWNvbnRlbnQtdHlwZS1vcHRpb25zIiwgInZhbHVlIjogIm5vc25pZmYifSwgeyJuYW1lIjogIngteHNzLXByb3RlY3Rpb24iLCAidmFsdWUiOiAiMCJ9XSwgImNvbnRlbnQiOiB7InNpemUiOiAxNDk1NTYsICJtaW1lVHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQ7IGNoYXJzZXQ9VVRGLTgiLCAiY29tcHJlc3Npb24iOiA5NTE3MCwgInRleHQiOiAiaWYoIXdpbmRvd1snZ29vZ2xlTkRUXyddKXt3aW5kb3dbJ2dvb2dsZU5EVF8nXT0obmV3IERhdGUoKSkuZ2V0VGltZSgpO30oZnVuY3Rpb24oKSB7d2luZG93Lmdvb2dsZUFsdExvYWRlcj0zO3ZhciBzZmZlRGF0YV89e3NlcnZpY2VfaG9zdDpcInd3dy5nb29nbGUuY29tXCIsaGFzaDpcIjg2MTc0ODM0NzE5NjkwNTUyMzBcIixwYWNrYWdlczpcImRvbWFpbnNcIixtb2R1bGU6XCJhZHNcIix2ZXJzaW9uOlwiMVwiLG06e2NlaTpcIjE3MzAxMzgzXCIsYWg6dHJ1ZSx1YXRtOjUwMCxlY2ZjMjp0cnVlLGxscm06MTAwMCxsbGRsOlwiYlM1elpXRnljeTVqYjIwPVwiLGFiZjp7XCJfZml4Q3RjTGlua3NPbklvc1wiOnRydWUsXCJfZ29vZ0VuYWJsZVF1cFwiOnRydWUsXCJfdXNlU2VydmVyUHJvdmlkZWREb21haW5cIjp0cnVlLFwiX3dhaXRPbkNvbnNlbnRGb3JGaXJzdFBhcnR5Q29va2llXCI6dHJ1ZSxcImVuYWJsZUVuaGFuY2VkVGFyZ2V0aW5nUnNvbmNcIjp0cnVlfSxtZHA6MTgwMDAwMCxzc2RsOlwiWVhCd2MzQnZkQzVqYjIwc1lteHZaM053YjNRdVkyOXRMR0p5TG1OdmJTeGpieTVqYjIwc1kyeHZkV1JtY205dWRDNXVaWFFzWlhVdVkyOXRMR2h2Y0hSdkxtOXlaeXhwYmk1dVpYUXNkSEpoYm5Oc1lYUmxMbWR2YjJjc2RXc3VZMjl0TEhWekxtTnZiU3gzWldJdVlYQndcIixyc206MCxjZGg6XCJcIn19O3ZhciBtO2Z1bmN0aW9uIGNhKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fXZhciBkYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9O1xuZnVuY3Rpb24gZWEoYSl7YT1bXCJvYmplY3RcIj09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSxcIm9iamVjdFwiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csXCJvYmplY3RcIj09dHlwZW9mIHNlbGYmJnNlbGYsXCJvYmplY3RcIj09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoXCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0XCIpO312YXIgZmE9ZWEodGhpcyk7ZnVuY3Rpb24gaGEoYSxiKXtpZihiKWE6e3ZhciBjPWZhO2E9YS5zcGxpdChcIi5cIik7Zm9yKHZhciBkPTA7ZDxhLmxlbmd0aC0xO2QrKyl7dmFyIGU9YVtkXTtpZighKGUgaW4gYykpYnJlYWsgYTtjPWNbZV19YT1hW2EubGVuZ3RoLTFdO2Q9Y1thXTtiPWIoZCk7YiE9ZCYmbnVsbCE9YiYmZGEoYyxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfX1cbmhhKFwiU3ltYm9sXCIsZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihmKXtpZih0aGlzIGluc3RhbmNlb2YgYil0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yXCIpO3JldHVybiBuZXcgYyhkKyhmfHxcIlwiKStcIl9cIitlKyssZil9ZnVuY3Rpb24gYyhmLGcpe3RoaXMuUGQ9ZjtkYSh0aGlzLFwiZGVzY3JpcHRpb25cIix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KX1pZihhKXJldHVybiBhO2MucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGR9O3ZhciBkPVwianNjb21wX3N5bWJvbF9cIisoMUU5Kk1hdGgucmFuZG9tKCk+Pj4wKStcIl9cIixlPTA7cmV0dXJuIGJ9KTtcbmhhKFwiU3ltYm9sLml0ZXJhdG9yXCIsZnVuY3Rpb24oYSl7aWYoYSlyZXR1cm4gYTthPVN5bWJvbChcIlN5bWJvbC5pdGVyYXRvclwiKTtmb3IodmFyIGI9XCJBcnJheSBJbnQ4QXJyYXkgVWludDhBcnJheSBVaW50OENsYW1wZWRBcnJheSBJbnQxNkFycmF5IFVpbnQxNkFycmF5IEludDMyQXJyYXkgVWludDMyQXJyYXkgRmxvYXQzMkFycmF5IEZsb2F0NjRBcnJheVwiLnNwbGl0KFwiIFwiKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWZhW2JbY11dO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBkJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBkLnByb3RvdHlwZVthXSYmZGEoZC5wcm90b3R5cGUsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGlhKGNhKHRoaXMpKX19KX1yZXR1cm4gYX0pO2Z1bmN0aW9uIGlhKGEpe2E9e25leHQ6YX07YVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O3JldHVybiBhfVxuZnVuY3Rpb24gamEoYSl7cmV0dXJuIGEucmF3PWF9ZnVuY3Rpb24gbihhKXt2YXIgYj1cInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtpZihiKXJldHVybiBiLmNhbGwoYSk7aWYoXCJudW1iZXJcIj09dHlwZW9mIGEubGVuZ3RoKXJldHVybntuZXh0OmNhKGEpfTt0aHJvdyBFcnJvcihTdHJpbmcoYSkrXCIgaXMgbm90IGFuIGl0ZXJhYmxlIG9yIEFycmF5TGlrZVwiKTt9ZnVuY3Rpb24ga2EoYSl7aWYoIShhIGluc3RhbmNlb2YgQXJyYXkpKXthPW4oYSk7Zm9yKHZhciBiLGM9W107IShiPWEubmV4dCgpKS5kb25lOyljLnB1c2goYi52YWx1ZSk7YT1jfXJldHVybiBhfXZhciBtYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP09iamVjdC5jcmVhdGU6ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe31iLnByb3RvdHlwZT1hO3JldHVybiBuZXcgYn0sbmE7XG5pZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2YpbmE9T2JqZWN0LnNldFByb3RvdHlwZU9mO2Vsc2V7dmFyIG9hO2E6e3ZhciBwYT17YTohMH0scWE9e307dHJ5e3FhLl9fcHJvdG9fXz1wYTtvYT1xYS5hO2JyZWFrIGF9Y2F0Y2goYSl7fW9hPSExfW5hPW9hP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhK1wiIGlzIG5vdCBleHRlbnNpYmxlXCIpO3JldHVybiBhfTpudWxsfXZhciByYT1uYTtcbmZ1bmN0aW9uIHNhKGEsYil7YS5wcm90b3R5cGU9bWEoYi5wcm90b3R5cGUpO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7aWYocmEpcmEoYSxiKTtlbHNlIGZvcih2YXIgYyBpbiBiKWlmKFwicHJvdG90eXBlXCIhPWMpaWYoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMpe3ZhciBkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYixjKTtkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxjLGQpfWVsc2UgYVtjXT1iW2NdO2EuVWY9Yi5wcm90b3R5cGV9ZnVuY3Rpb24gdGEoKXtmb3IodmFyIGE9TnVtYmVyKHRoaXMpLGI9W10sYz1hO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspYltjLWFdPWFyZ3VtZW50c1tjXTtyZXR1cm4gYn1cbmhhKFwiUHJvbWlzZVwiLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZyl7dGhpcy5CPTA7dGhpcy5PYT12b2lkIDA7dGhpcy52YT1bXTt0aGlzLnZkPSExO3ZhciBoPXRoaXMuWmIoKTt0cnl7ZyhoLnJlc29sdmUsaC5yZWplY3QpfWNhdGNoKGspe2gucmVqZWN0KGspfX1mdW5jdGlvbiBjKCl7dGhpcy5aPW51bGx9ZnVuY3Rpb24gZChnKXtyZXR1cm4gZyBpbnN0YW5jZW9mIGI/ZzpuZXcgYihmdW5jdGlvbihoKXtoKGcpfSl9aWYoYSlyZXR1cm4gYTtjLnByb3RvdHlwZS5oZD1mdW5jdGlvbihnKXtpZihudWxsPT10aGlzLlope3RoaXMuWj1bXTt2YXIgaD10aGlzO3RoaXMuamQoZnVuY3Rpb24oKXtoLlBlKCl9KX10aGlzLloucHVzaChnKX07dmFyIGU9ZmEuc2V0VGltZW91dDtjLnByb3RvdHlwZS5qZD1mdW5jdGlvbihnKXtlKGcsMCl9O2MucHJvdG90eXBlLlBlPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLlomJnRoaXMuWi5sZW5ndGg7KXt2YXIgZz10aGlzLlo7dGhpcy5aPVtdO2Zvcih2YXIgaD1cbjA7aDxnLmxlbmd0aDsrK2gpe3ZhciBrPWdbaF07Z1toXT1udWxsO3RyeXtrKCl9Y2F0Y2gobCl7dGhpcy5hZShsKX19fXRoaXMuWj1udWxsfTtjLnByb3RvdHlwZS5hZT1mdW5jdGlvbihnKXt0aGlzLmpkKGZ1bmN0aW9uKCl7dGhyb3cgZzt9KX07Yi5wcm90b3R5cGUuWmI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBnKGwpe3JldHVybiBmdW5jdGlvbihwKXtrfHwoaz0hMCxsLmNhbGwoaCxwKSl9fXZhciBoPXRoaXMsaz0hMTtyZXR1cm57cmVzb2x2ZTpnKHRoaXMuRmYpLHJlamVjdDpnKHRoaXMuTGMpfX07Yi5wcm90b3R5cGUuRmY9ZnVuY3Rpb24oZyl7aWYoZz09PXRoaXMpdGhpcy5MYyhuZXcgVHlwZUVycm9yKFwiQSBQcm9taXNlIGNhbm5vdCByZXNvbHZlIHRvIGl0c2VsZlwiKSk7ZWxzZSBpZihnIGluc3RhbmNlb2YgYil0aGlzLk9mKGcpO2Vsc2V7YTpzd2l0Y2godHlwZW9mIGcpe2Nhc2UgXCJvYmplY3RcIjp2YXIgaD1udWxsIT1nO2JyZWFrIGE7Y2FzZSBcImZ1bmN0aW9uXCI6aD0hMDticmVhayBhO1xuZGVmYXVsdDpoPSExfWg/dGhpcy5FZihnKTp0aGlzLnRkKGcpfX07Yi5wcm90b3R5cGUuRWY9ZnVuY3Rpb24oZyl7dmFyIGg9dm9pZCAwO3RyeXtoPWcudGhlbn1jYXRjaChrKXt0aGlzLkxjKGspO3JldHVybn1cImZ1bmN0aW9uXCI9PXR5cGVvZiBoP3RoaXMuUGYoaCxnKTp0aGlzLnRkKGcpfTtiLnByb3RvdHlwZS5MYz1mdW5jdGlvbihnKXt0aGlzLkhkKDIsZyl9O2IucHJvdG90eXBlLnRkPWZ1bmN0aW9uKGcpe3RoaXMuSGQoMSxnKX07Yi5wcm90b3R5cGUuSGQ9ZnVuY3Rpb24oZyxoKXtpZigwIT10aGlzLkIpdGhyb3cgRXJyb3IoXCJDYW5ub3Qgc2V0dGxlKFwiK2crXCIsIFwiK2grXCIpOiBQcm9taXNlIGFscmVhZHkgc2V0dGxlZCBpbiBzdGF0ZVwiK3RoaXMuQik7dGhpcy5CPWc7dGhpcy5PYT1oOzI9PT10aGlzLkImJnRoaXMuTmYoKTt0aGlzLlFlKCl9O2IucHJvdG90eXBlLk5mPWZ1bmN0aW9uKCl7dmFyIGc9dGhpcztlKGZ1bmN0aW9uKCl7aWYoZy53ZigpKXt2YXIgaD1mYS5jb25zb2xlO1xuXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBoJiZoLmVycm9yKGcuT2EpfX0sMSl9O2IucHJvdG90eXBlLndmPWZ1bmN0aW9uKCl7aWYodGhpcy52ZClyZXR1cm4hMTt2YXIgZz1mYS5DdXN0b21FdmVudCxoPWZhLkV2ZW50LGs9ZmEuZGlzcGF0Y2hFdmVudDtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIGspcmV0dXJuITA7XCJmdW5jdGlvblwiPT09dHlwZW9mIGc/Zz1uZXcgZyhcInVuaGFuZGxlZHJlamVjdGlvblwiLHtjYW5jZWxhYmxlOiEwfSk6XCJmdW5jdGlvblwiPT09dHlwZW9mIGg/Zz1uZXcgaChcInVuaGFuZGxlZHJlamVjdGlvblwiLHtjYW5jZWxhYmxlOiEwfSk6KGc9ZmEuZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJDdXN0b21FdmVudFwiKSxnLmluaXRDdXN0b21FdmVudChcInVuaGFuZGxlZHJlamVjdGlvblwiLCExLCEwLGcpKTtnLnByb21pc2U9dGhpcztnLnJlYXNvbj10aGlzLk9hO3JldHVybiBrKGcpfTtiLnByb3RvdHlwZS5RZT1mdW5jdGlvbigpe2lmKG51bGwhPXRoaXMudmEpe2Zvcih2YXIgZz1cbjA7Zzx0aGlzLnZhLmxlbmd0aDsrK2cpZi5oZCh0aGlzLnZhW2ddKTt0aGlzLnZhPW51bGx9fTt2YXIgZj1uZXcgYztiLnByb3RvdHlwZS5PZj1mdW5jdGlvbihnKXt2YXIgaD10aGlzLlpiKCk7Zy5iYihoLnJlc29sdmUsaC5yZWplY3QpfTtiLnByb3RvdHlwZS5QZj1mdW5jdGlvbihnLGgpe3ZhciBrPXRoaXMuWmIoKTt0cnl7Zy5jYWxsKGgsay5yZXNvbHZlLGsucmVqZWN0KX1jYXRjaChsKXtrLnJlamVjdChsKX19O2IucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oZyxoKXtmdW5jdGlvbiBrKHEsdCl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgcT9mdW5jdGlvbih4KXt0cnl7bChxKHgpKX1jYXRjaCh1KXtwKHUpfX06dH12YXIgbCxwLHI9bmV3IGIoZnVuY3Rpb24ocSx0KXtsPXE7cD10fSk7dGhpcy5iYihrKGcsbCksayhoLHApKTtyZXR1cm4gcn07Yi5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsZyl9O2IucHJvdG90eXBlLmJiPWZ1bmN0aW9uKGcsXG5oKXtmdW5jdGlvbiBrKCl7c3dpdGNoKGwuQil7Y2FzZSAxOmcobC5PYSk7YnJlYWs7Y2FzZSAyOmgobC5PYSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihcIlVuZXhwZWN0ZWQgc3RhdGU6IFwiK2wuQik7fX12YXIgbD10aGlzO251bGw9PXRoaXMudmE/Zi5oZChrKTp0aGlzLnZhLnB1c2goayk7dGhpcy52ZD0hMH07Yi5yZXNvbHZlPWQ7Yi5yZWplY3Q9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBiKGZ1bmN0aW9uKGgsayl7ayhnKX0pfTtiLnJhY2U9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBiKGZ1bmN0aW9uKGgsayl7Zm9yKHZhciBsPW4oZykscD1sLm5leHQoKTshcC5kb25lO3A9bC5uZXh0KCkpZChwLnZhbHVlKS5iYihoLGspfSl9O2IuYWxsPWZ1bmN0aW9uKGcpe3ZhciBoPW4oZyksaz1oLm5leHQoKTtyZXR1cm4gay5kb25lP2QoW10pOm5ldyBiKGZ1bmN0aW9uKGwscCl7ZnVuY3Rpb24gcih4KXtyZXR1cm4gZnVuY3Rpb24odSl7cVt4XT11O3QtLTswPT10JiZsKHEpfX12YXIgcT1cbltdLHQ9MDtkbyBxLnB1c2godm9pZCAwKSx0KyssZChrLnZhbHVlKS5iYihyKHEubGVuZ3RoLTEpLHApLGs9aC5uZXh0KCk7d2hpbGUoIWsuZG9uZSl9KX07cmV0dXJuIGJ9KTt2YXIgdmE9XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyl7dmFyIGQ9YXJndW1lbnRzW2NdO2lmKGQpZm9yKHZhciBlIGluIGQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZSkmJihhW2VdPWRbZV0pfXJldHVybiBhfTtoYShcIk9iamVjdC5hc3NpZ25cIixmdW5jdGlvbihhKXtyZXR1cm4gYXx8dmF9KTtcbmZ1bmN0aW9uIHdhKGEsYixjKXtpZihudWxsPT1hKXRocm93IG5ldyBUeXBlRXJyb3IoXCJUaGUgJ3RoaXMnIHZhbHVlIGZvciBTdHJpbmcucHJvdG90eXBlLlwiK2MrXCIgbXVzdCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWRcIik7aWYoYiBpbnN0YW5jZW9mIFJlZ0V4cCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRmlyc3QgYXJndW1lbnQgdG8gU3RyaW5nLnByb3RvdHlwZS5cIitjK1wiIG11c3Qgbm90IGJlIGEgcmVndWxhciBleHByZXNzaW9uXCIpO3JldHVybiBhK1wiXCJ9aGEoXCJTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRoXCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3ZhciBkPXdhKHRoaXMsYixcImVuZHNXaXRoXCIpO2IrPVwiXCI7dm9pZCAwPT09YyYmKGM9ZC5sZW5ndGgpO2M9TWF0aC5tYXgoMCxNYXRoLm1pbihjfDAsZC5sZW5ndGgpKTtmb3IodmFyIGU9Yi5sZW5ndGg7MDxlJiYwPGM7KWlmKGRbLS1jXSE9YlstLWVdKXJldHVybiExO3JldHVybiAwPj1lfX0pO1xuaGEoXCJBcnJheS5wcm90b3R5cGUuZmluZFwiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXthOnt2YXIgZD10aGlzO2QgaW5zdGFuY2VvZiBTdHJpbmcmJihkPVN0cmluZyhkKSk7Zm9yKHZhciBlPWQubGVuZ3RoLGY9MDtmPGU7ZisrKXt2YXIgZz1kW2ZdO2lmKGIuY2FsbChjLGcsZixkKSl7Yj1nO2JyZWFrIGF9fWI9dm9pZCAwfXJldHVybiBifX0pO2hhKFwiU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRoXCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3ZhciBkPXdhKHRoaXMsYixcInN0YXJ0c1dpdGhcIik7Yis9XCJcIjt2YXIgZT1kLmxlbmd0aCxmPWIubGVuZ3RoO2M9TWF0aC5tYXgoMCxNYXRoLm1pbihjfDAsZC5sZW5ndGgpKTtmb3IodmFyIGc9MDtnPGYmJmM8ZTspaWYoZFtjKytdIT1iW2crK10pcmV0dXJuITE7cmV0dXJuIGc+PWZ9fSk7XG5mdW5jdGlvbiB4YShhLGIpe2EgaW5zdGFuY2VvZiBTdHJpbmcmJihhKz1cIlwiKTt2YXIgYz0wLGQ9ITEsZT17bmV4dDpmdW5jdGlvbigpe2lmKCFkJiZjPGEubGVuZ3RoKXt2YXIgZj1jKys7cmV0dXJue3ZhbHVlOmIoZixhW2ZdKSxkb25lOiExfX1kPSEwO3JldHVybntkb25lOiEwLHZhbHVlOnZvaWQgMH19fTtlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gZX07cmV0dXJuIGV9aGEoXCJBcnJheS5wcm90b3R5cGUua2V5c1wiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oKXtyZXR1cm4geGEodGhpcyxmdW5jdGlvbihiKXtyZXR1cm4gYn0pfX0pO2hhKFwiT2JqZWN0LnZhbHVlc1wiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7dmFyIGM9W10sZDtmb3IoZCBpbiBiKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLGQpJiZjLnB1c2goYltkXSk7cmV0dXJuIGN9fSk7XG5oYShcIk9iamVjdC5pc1wiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXtyZXR1cm4gYj09PWM/MCE9PWJ8fDEvYj09PTEvYzpiIT09YiYmYyE9PWN9fSk7aGEoXCJBcnJheS5wcm90b3R5cGUuaW5jbHVkZXNcIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9dGhpcztkIGluc3RhbmNlb2YgU3RyaW5nJiYoZD1TdHJpbmcoZCkpO3ZhciBlPWQubGVuZ3RoO2M9Y3x8MDtmb3IoMD5jJiYoYz1NYXRoLm1heChjK2UsMCkpO2M8ZTtjKyspe3ZhciBmPWRbY107aWYoZj09PWJ8fE9iamVjdC5pcyhmLGIpKXJldHVybiEwfXJldHVybiExfX0pO2hhKFwiU3RyaW5nLnByb3RvdHlwZS5pbmNsdWRlc1wiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXtyZXR1cm4tMSE9PXdhKHRoaXMsYixcImluY2x1ZGVzXCIpLmluZGV4T2YoYixjfHwwKX19KTtcbmhhKFwiQXJyYXkucHJvdG90eXBlLnZhbHVlc1wiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oKXtyZXR1cm4geGEodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBjfSl9fSk7aGEoXCJOdW1iZXIuaXNOYU5cIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVyblwibnVtYmVyXCI9PT10eXBlb2YgYiYmaXNOYU4oYil9fSk7aGEoXCJNYXRoLmltdWxcIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyl7Yj1OdW1iZXIoYik7Yz1OdW1iZXIoYyk7dmFyIGQ9YiY2NTUzNSxlPWMmNjU1MzU7cmV0dXJuIGQqZSsoKGI+Pj4xNiY2NTUzNSkqZStkKihjPj4+MTYmNjU1MzUpPDwxNj4+PjApfDB9fSk7LypcblxuIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuXG4gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiovXG52YXIgdj10aGlzfHxzZWxmO2Z1bmN0aW9uIHlhKGEpe3ZhciBiPXR5cGVvZiBhO2I9XCJvYmplY3RcIiE9Yj9iOmE/QXJyYXkuaXNBcnJheShhKT9cImFycmF5XCI6YjpcIm51bGxcIjtyZXR1cm5cImFycmF5XCI9PWJ8fFwib2JqZWN0XCI9PWImJlwibnVtYmVyXCI9PXR5cGVvZiBhLmxlbmd0aH1mdW5jdGlvbiB6YShhKXt2YXIgYj10eXBlb2YgYTtyZXR1cm5cIm9iamVjdFwiPT1iJiZudWxsIT1hfHxcImZ1bmN0aW9uXCI9PWJ9ZnVuY3Rpb24gQmEoYSxiKXtmdW5jdGlvbiBjKCl7fWMucHJvdG90eXBlPWIucHJvdG90eXBlO2EuVWY9Yi5wcm90b3R5cGU7YS5wcm90b3R5cGU9bmV3IGM7YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YTthLkJnPWZ1bmN0aW9uKGQsZSxmKXtmb3IodmFyIGc9QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0yKSxoPTI7aDxhcmd1bWVudHMubGVuZ3RoO2grKylnW2gtMl09YXJndW1lbnRzW2hdO3JldHVybiBiLnByb3RvdHlwZVtlXS5hcHBseShkLGcpfX1cbmZ1bmN0aW9uIENhKGEpe3JldHVybiBhfTt2YXIgRGE9bnVsbCxFYT1udWxsLEZhPW51bGwsR2E9bnVsbCxIYT1udWxsO2Z1bmN0aW9uIElhKCl7dmFyIGE9e307cmV0dXJuIHdpbmRvdy5hZF9qc29uP3dpbmRvdy5hZF9qc29uOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBhZF9qc29uJiZhZF9qc29uP2FkX2pzb246YX1mdW5jdGlvbiBKYShhKXtEYXx8KERhPUlhKCkuZ2R8fG51bGwpO3JldHVybiBEYSYmRGFbYV18fHt9fWZ1bmN0aW9uIEthKCl7dGhpcy5kYXRhPUphKFwiZmZcIil9ZnVuY3Rpb24gdygpe3ZhciBhPUVhO2F8fChhPW5ldyBLYSxJYSgpLmdkJiYoRWE9YSkpO3JldHVybiBhfUthLnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmRhdGEuZGxyY3B9O2Z1bmN0aW9uIExhKCl7dGhpcy5kYXRhPUphKFwiY2RcIil9ZnVuY3Rpb24gTWEoKXt2YXIgYT1GYTthfHwoYT1uZXcgTGEsSWEoKS5nZCYmKEZhPWEpKTtyZXR1cm4gYX1mdW5jdGlvbiBOYShhKXtyZXR1cm4gYS5kYXRhLnBpZHx8XCJcIn1cbkxhLnByb3RvdHlwZS5YPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmRhdGEucn07ZnVuY3Rpb24gT2EoKXt0aGlzLmRhdGE9SmEoXCJwY1wiKX1mdW5jdGlvbiBQYSgpe3ZhciBhPUdhO2F8fChhPW5ldyBPYSxJYSgpLmdkJiYoR2E9YSkpO3JldHVybiBhfWZ1bmN0aW9uIFFhKGEpe3JldHVybiEhYS5kYXRhLmNnbmF9ZnVuY3Rpb24gUmEoKXt0aGlzLmRhdGE9SmEoXCJkY1wiKX1mdW5jdGlvbiBTYSgpe3ZhciBhPUhhO2F8fChhPW5ldyBSYSxJYSgpLmdkJiYoSGE9YSkpO3JldHVybiBhfTt2YXIgVmE7ZnVuY3Rpb24gV2EoYSl7dmFyIGI9YTtyZXR1cm4gZnVuY3Rpb24oKXtpZihiKXt2YXIgYz1iO2I9bnVsbDtjKCl9fX07dmFyIFhhPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP2Z1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYSxiLHZvaWQgMCl9OmZ1bmN0aW9uKGEsYil7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBhKXJldHVyblwic3RyaW5nXCIhPT10eXBlb2YgYnx8MSE9Yi5sZW5ndGg/LTE6YS5pbmRleE9mKGIsMCk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYyBpbiBhJiZhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX0sWWE9QXJyYXkucHJvdG90eXBlLmZvckVhY2g/ZnVuY3Rpb24oYSxiKXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGEsYix2b2lkIDApfTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLmxlbmd0aCxkPVwic3RyaW5nXCI9PT10eXBlb2YgYT9hLnNwbGl0KFwiXCIpOmEsZT0wO2U8YztlKyspZSBpbiBkJiZiLmNhbGwodm9pZCAwLGRbZV0sZSxhKX0sWmE9QXJyYXkucHJvdG90eXBlLmZpbHRlcj9mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoYSxcbmIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5sZW5ndGgsZD1bXSxlPTAsZj1cInN0cmluZ1wiPT09dHlwZW9mIGE/YS5zcGxpdChcIlwiKTphLGc9MDtnPGM7ZysrKWlmKGcgaW4gZil7dmFyIGg9ZltnXTtiLmNhbGwodm9pZCAwLGgsZyxhKSYmKGRbZSsrXT1oKX1yZXR1cm4gZH07ZnVuY3Rpb24gJGEoYSl7dmFyIGI9YS5sZW5ndGg7aWYoMDxiKXtmb3IodmFyIGM9QXJyYXkoYiksZD0wO2Q8YjtkKyspY1tkXT1hW2RdO3JldHVybiBjfXJldHVybltdfTtmdW5jdGlvbiBhYihhKXt2YXIgYj1bXSxjPTAsZDtmb3IoZCBpbiBhKWJbYysrXT1kO3JldHVybiBifTt2YXIgYmI7ZnVuY3Rpb24gY2IoKXtpZih2b2lkIDA9PT1iYil7dmFyIGE9bnVsbCxiPXYudHJ1c3RlZFR5cGVzO2lmKGImJmIuY3JlYXRlUG9saWN5KXRyeXthPWIuY3JlYXRlUG9saWN5KFwiZ29vZyNodG1sXCIse2NyZWF0ZUhUTUw6Q2EsY3JlYXRlU2NyaXB0OkNhLGNyZWF0ZVNjcmlwdFVSTDpDYX0pfWNhdGNoKGMpe3YuY29uc29sZSYmdi5jb25zb2xlLmVycm9yKGMubWVzc2FnZSl9YmI9YX1yZXR1cm4gYmJ9O2Z1bmN0aW9uIGRiKGEpe3RoaXMuSmM9YX1kYi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5KYytcIlwifTtkYi5wcm90b3R5cGUuR2E9ITA7ZGIucHJvdG90eXBlLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSmMudG9TdHJpbmcoKX07ZnVuY3Rpb24gZWIoYSxiKXthPWZiLmV4ZWMoaGIoYSkudG9TdHJpbmcoKSk7dmFyIGM9YVszXXx8XCJcIjtyZXR1cm4gaWIoYVsxXStqYihcIj9cIixhWzJdfHxcIlwiLGIpK2piKFwiI1wiLGMpKX1mdW5jdGlvbiBoYihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIGRiJiZhLmNvbnN0cnVjdG9yPT09ZGI/YS5KYzpcInR5cGVfZXJyb3I6VHJ1c3RlZFJlc291cmNlVXJsXCJ9dmFyIGZiPS9eKFtePyNdKikoXFw/W14jXSopPygjW1xcc1xcU10qKT8vLGtiPXt9O2Z1bmN0aW9uIGliKGEpe3ZhciBiPWNiKCk7YT1iP2IuY3JlYXRlU2NyaXB0VVJMKGEpOmE7cmV0dXJuIG5ldyBkYihhLGtiKX1cbmZ1bmN0aW9uIGpiKGEsYixjKXtpZihudWxsPT1jKXJldHVybiBiO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgYylyZXR1cm4gYz9hK2VuY29kZVVSSUNvbXBvbmVudChjKTpcIlwiO2Zvcih2YXIgZCBpbiBjKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjLGQpKXt2YXIgZT1jW2RdO2U9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIGc9ZVtmXTtudWxsIT1nJiYoYnx8KGI9YSksYis9KGIubGVuZ3RoPmEubGVuZ3RoP1wiJlwiOlwiXCIpK2VuY29kZVVSSUNvbXBvbmVudChkKStcIj1cIitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGcpKSl9fXJldHVybiBifTt2YXIgbGI9U3RyaW5nLnByb3RvdHlwZS50cmltP2Z1bmN0aW9uKGEpe3JldHVybiBhLnRyaW0oKX06ZnVuY3Rpb24oYSl7cmV0dXJuL15bXFxzXFx4YTBdKihbXFxzXFxTXSo/KVtcXHNcXHhhMF0qJC8uZXhlYyhhKVsxXX0sbWI9LyYvZyxuYj0vPC9nLG9iPS8+L2cscGI9L1wiL2cscWI9LycvZyxyYj0vXFx4MDAvZyxzYj0vW1xceDAwJjw+XCInXS87ZnVuY3Rpb24gdGIoYSl7dGhpcy5JYz1hfXRiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkljLnRvU3RyaW5nKCl9O3RiLnByb3RvdHlwZS5HYT0hMDt0Yi5wcm90b3R5cGUuRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5JYy50b1N0cmluZygpfTtmdW5jdGlvbiB1YihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIHRiJiZhLmNvbnN0cnVjdG9yPT09dGI/YS5JYzpcInR5cGVfZXJyb3I6U2FmZVVybFwifXZhciB2Yj17fTtmdW5jdGlvbiB3YihhKXt0aGlzLkhjPWE7dGhpcy5HYT0hMH13Yi5wcm90b3R5cGUuRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IY307d2IucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGMudG9TdHJpbmcoKX07ZnVuY3Rpb24gemIoYSl7dGhpcy5HYz1hO3RoaXMuR2E9ITB9emIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuR2MudG9TdHJpbmcoKX07emIucHJvdG90eXBlLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuR2N9O3ZhciBBYixCYjthOntmb3IodmFyIENiPVtcIkNMT1NVUkVfRkxBR1NcIl0sRGI9dixFYj0wO0ViPENiLmxlbmd0aDtFYisrKWlmKERiPURiW0NiW0ViXV0sbnVsbD09RGIpe0JiPW51bGw7YnJlYWsgYX1CYj1EYn12YXIgRmI9QmImJkJiWzYxMDQwMTMwMV07QWI9bnVsbCE9RmI/RmI6ITE7ZnVuY3Rpb24gR2IoKXt2YXIgYT12Lm5hdmlnYXRvcjtyZXR1cm4gYSYmKGE9YS51c2VyQWdlbnQpP2E6XCJcIn12YXIgSGIsSWI9di5uYXZpZ2F0b3I7SGI9SWI/SWIudXNlckFnZW50RGF0YXx8bnVsbDpudWxsO2Z1bmN0aW9uIEpiKGEpe3JldHVybiBBYj9IYj9IYi5icmFuZHMuc29tZShmdW5jdGlvbihiKXtyZXR1cm4oYj1iLmJyYW5kKSYmLTEhPWIuaW5kZXhPZihhKX0pOiExOiExfWZ1bmN0aW9uIHkoYSl7cmV0dXJuLTEhPUdiKCkuaW5kZXhPZihhKX07ZnVuY3Rpb24gS2IoKXtyZXR1cm4gQWI/ISFIYiYmMDxIYi5icmFuZHMubGVuZ3RoOiExfWZ1bmN0aW9uIExiKCl7cmV0dXJuIEtiKCk/SmIoXCJDaHJvbWl1bVwiKTooeShcIkNocm9tZVwiKXx8eShcIkNyaU9TXCIpKSYmIShLYigpPzA6eShcIkVkZ2VcIikpfHx5KFwiU2lsa1wiKX07dmFyIE1iPXt9O2Z1bmN0aW9uIE5iKGEpe3RoaXMuRmM9YTt0aGlzLkdhPSEwfU5iLnByb3RvdHlwZS5GYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkZjLnRvU3RyaW5nKCl9O05iLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkZjLnRvU3RyaW5nKCl9O2Z1bmN0aW9uIE9iKGEpe3JldHVybiBhIGluc3RhbmNlb2YgTmImJmEuY29uc3RydWN0b3I9PT1OYj9hLkZjOlwidHlwZV9lcnJvcjpTYWZlSHRtbFwifVxuZnVuY3Rpb24gUGIoYSl7YSBpbnN0YW5jZW9mIE5ifHwoYT1cIm9iamVjdFwiPT10eXBlb2YgYSYmYS5HYT9hLkZhKCk6U3RyaW5nKGEpLHNiLnRlc3QoYSkmJigtMSE9YS5pbmRleE9mKFwiJlwiKSYmKGE9YS5yZXBsYWNlKG1iLFwiJmFtcDtcIikpLC0xIT1hLmluZGV4T2YoXCI8XCIpJiYoYT1hLnJlcGxhY2UobmIsXCImbHQ7XCIpKSwtMSE9YS5pbmRleE9mKFwiPlwiKSYmKGE9YS5yZXBsYWNlKG9iLFwiJmd0O1wiKSksLTEhPWEuaW5kZXhPZignXCInKSYmKGE9YS5yZXBsYWNlKHBiLFwiJnF1b3Q7XCIpKSwtMSE9YS5pbmRleE9mKFwiJ1wiKSYmKGE9YS5yZXBsYWNlKHFiLFwiJiMzOTtcIikpLC0xIT1hLmluZGV4T2YoXCJcXHgwMFwiKSYmKGE9YS5yZXBsYWNlKHJiLFwiJiMwO1wiKSkpLGE9UWIoYSkpO3JldHVybiBhfWZ1bmN0aW9uIFFiKGEpe3ZhciBiPWNiKCk7YT1iP2IuY3JlYXRlSFRNTChhKTphO3JldHVybiBuZXcgTmIoYSxNYil9XG52YXIgUmI9bmV3IE5iKHYudHJ1c3RlZFR5cGVzJiZ2LnRydXN0ZWRUeXBlcy5lbXB0eUhUTUx8fFwiXCIsTWIpO3ZhciBTYj1mdW5jdGlvbihhKXt2YXIgYj0hMSxjO3JldHVybiBmdW5jdGlvbigpe2J8fChjPWEoKSxiPSEwKTtyZXR1cm4gY319KGZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSxiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7Yi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKTthLmFwcGVuZENoaWxkKGIpO2I9YS5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7YS5pbm5lckhUTUw9T2IoUmIpO3JldHVybiFiLnBhcmVudEVsZW1lbnR9KTtmdW5jdGlvbiBUYihhKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGEucmVwbGFjZSgvXFwrL2csXCIgXCIpKX07ZnVuY3Rpb24gVWIoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7YS5vbmxvYWQ9YS5vbmVycm9yPW51bGx9fWZ1bmN0aW9uIFZiKGEpe3ZhciBiPW5ldyBJbWFnZTtiLm9ubG9hZD1iLm9uZXJyb3I9VWIoYik7Yi5zcmM9YX1mdW5jdGlvbiBXYigpe3JldHVybiBNYXRoLmZsb29yKDIxNDc0ODM2NDgqTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMzYpK01hdGguYWJzKE1hdGguZmxvb3IoMjE0NzQ4MzY0OCpNYXRoLnJhbmRvbSgpKV5EYXRlLm5vdygpKS50b1N0cmluZygzNil9O2Z1bmN0aW9uIFhiKGEpe2lmKG51bGwhPWEpcmV0dXJuIGF9ZnVuY3Rpb24gWWIoKXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIHNmZmVEYXRhXz9zZmZlRGF0YV86e319ZnVuY3Rpb24gWmIoYSxiKXtiPWJ8fFliKCk7cmV0dXJuIFhiKGJbYV0pfWZ1bmN0aW9uICRiKGEpe3ZhciBiPWFjKCk7Yj1ifHxZYigpO2E9YlthXTtyZXR1cm4gbnVsbCE9YT9hOnZvaWQgMH1mdW5jdGlvbiBkYyhhLGIpe2I9Ynx8WWIoKTtyZXR1cm4hIWJbYV19ZnVuY3Rpb24gYWMoKXtyZXR1cm4gWWIoKS5tfHx7fX1mdW5jdGlvbiB6KGEpe3JldHVybiBkYyhhLGFjKCkuYWJmKX07dmFyIGVjPXdpbmRvdy5uYXZpZ2F0b3I/d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ6XCJcIjtmdW5jdGlvbiBmYygpe3ZhciBhPWdjKGhjKTtyZXR1cm4tMSE9PWE/Njc8YTohMH12YXIgaGM9L0ZpcmVmb3hcXC8oXFxkKylcXC4vLGljPS9WZXJzaW9uXFwvKFxcZCspXFwuLipTYWZhcmkvLGpjPS9DaHJvbWVcXC8oXFxkKylcXC4vLGtjPS8oPzppUGhvbmV8aVBvZHxpUGFkKS4qQXBwbGVXZWJLaXRcXC8oXFxkKykoPyEuKlZlcnNpb24pLztmdW5jdGlvbiBnYyhhKXthPShhPWEuZXhlYyhlYykpP2FbMV06XCJcIjtyZXR1cm4gMDxhLmxlbmd0aCYmKGE9cGFyc2VJbnQoYSwxMCkpP2E6LTF9ZnVuY3Rpb24gbGMoKXtyZXR1cm4vQ2hyb21lfENyaU9TL2kudGVzdChlYyl9ZnVuY3Rpb24gbWMoKXt2YXIgYT1lYy50b0xvd2VyQ2FzZSgpO3JldHVybi0xIT1hLmluZGV4T2YoXCJzZXJpZXM2MFwiKXx8LTEhPWEuaW5kZXhPZihcInNlcmllcyA2MFwiKX07dmFyIG5jPW51bGw7ZnVuY3Rpb24gb2MoKXtuY3x8KG5jPXBjKCkpO3JldHVybiBuY31cbmZ1bmN0aW9uIHBjKCl7ZnVuY3Rpb24gYShjLGQsZSxmLGcpe2Y9ZGMoXCJhaFwiLGFjKCkpP2Y6ZztpZihcIlwiIT09KFpiKFwiY2RoXCIsYWMoKSl8fFwiXCIpKXJldHVybiBmKyhaYihcImNkaFwiLGFjKCkpfHxcIlwiKTtpZih6KFwiX3N3aXRjaEd3c1JlcXVlc3RUb1VzZUFkc2Vuc2VEb21haW5cIikpcmV0dXJuIGYrZTtlPXooXCJfc3dpdGNoR3dzUmVxdWVzdFRvVXNlQ29va2llbGVzc0RvbWFpblwiKTtnPWxjKCkmJnooXCJfc3dpdGNoR3dzUmVxdWVzdFRvVXNlQ29va2llbGVzc0RvbWFpbkNocm9tZVwiKTtyZXR1cm4geihcIl9lbmFibGVNY21FeHBlcmltZW50XCIpfHxlfHxnP2YrZDpmK2N9dmFyIGI9WGIodi5nd3NCYXNlXyk7cmV0dXJuIGJ8fChiPVpiKFwiZ3dzX2hvc3RcIikpP2I6KGI9WmIoXCJzZXJ2aWNlX2hvc3RcIikpP2EoYixcImFmcy5nb29nbGVzeW5kaWNhdGlvbi5jb21cIixcInd3dy5hZHNlbnNlY3VzdG9tc2VhcmNoYWRzLmNvbVwiLFwiaHR0cHM6Ly9cIixcIi8vXCIpOmEoXCIvL3d3dy5nb29nbGUuY29tXCIsXCIvL2Fmcy5nb29nbGVzeW5kaWNhdGlvbi5jb21cIixcblwid3d3LmFkc2Vuc2VjdXN0b21zZWFyY2hhZHMuY29tXCIsXCJodHRwczpcIixcIlwiKX07ZnVuY3Rpb24gcWMoYSl7dGhpcy5OPVtdO3RoaXMuaWM9W107YT1hLnNwbGl0KFwiI1wiKTt0aGlzLnFkPWFbMF07dGhpcy5mYz1hWzFdfHxcIlwiO3RoaXMueGI9Nzk1MH1mdW5jdGlvbiBBKGEsYixjLGQpeyhjfHwwPT09Y3x8ITE9PT1jKSYmKGQ/YS5OOmEuaWMpLnB1c2goW2VuY29kZVVSSUNvbXBvbmVudChiKSxlbmNvZGVVUklDb21wb25lbnQoXCJcIitjKV0pfVxuZnVuY3Rpb24gcmMoYSl7Zm9yKHZhciBiPWEucWQsYz0tMSE9PWEucWQuaW5kZXhPZihcIj9cIiksZD0wO2Q8YS5pYy5sZW5ndGg7ZCsrKXt2YXIgZT0oYz9cIiZcIjpcIj9cIikrYS5pY1tkXS5qb2luKFwiPVwiKTtlLmxlbmd0aCtiLmxlbmd0aDw9YS54YiYmKGIrPWUsYz0hMCl9Zm9yKGU9ZD0wO2U8YS5OLmxlbmd0aDtlKyspZCs9YS5OW2VdWzBdLmxlbmd0aDtkPWEueGItYi5sZW5ndGgtZC0yKmEuTi5sZW5ndGg7dmFyIGY9TWF0aC5mbG9vcihkL2EuTi5sZW5ndGgpO2lmKDE8PWYpZm9yKGU9MDtlPGEuTi5sZW5ndGg7ZSsrKXt2YXIgZz1hLk5bZV1bMV07Zj1nLmxlbmd0aD5mP2cuc3Vic3RyaW5nKDAsZik6ZztiKz0oYz9cIiZcIjpcIj9cIikrYS5OW2VdWzBdK1wiPVwiK2Y7ZC09Zi5sZW5ndGg7Zj1NYXRoLmZsb29yKGQvKGEuTi5sZW5ndGgtZS0xKSk7Yz0hMH1lbHNlIGZvcihkPTA7ZDxhLk4ubGVuZ3RoO2QrKylhLk5bZF1bMF0ubGVuZ3RoKzMrYi5sZW5ndGg8PWEueGImJihiKz0oYz9cIiZcIjpcIj9cIikrXG5hLk5bZF0uam9pbihcIj1cIiksYz0hMCk7Yj1iLnN1YnN0cmluZygwLGEueGIpO2I9Yi5yZXBsYWNlKC8lXFx3PyQvLFwiXCIpOzA8YS5mYy5sZW5ndGgmJihiKz1cIiNcIithLmZjKTtyZXR1cm4gYn07dmFyIHNjPS4wMT5NYXRoLnJhbmRvbSgpLHRjPW51bGw7ZnVuY3Rpb24gdWMoYSl7dGhpcy5YZT1XYjt0aGlzLmhhPVZiO3RoaXMuS2M9TWEoKS5kYXRhLnFpfHxcIlwiO3RoaXMuR2I9XCJcIjt0aGlzLmNsaWVudD1hfHxcInVua25vd25cIn1mdW5jdGlvbiB2Yygpe3RjfHwodGM9bmV3IHVjKG51bGwpKTtyZXR1cm4gdGN9ZnVuY3Rpb24gd2MoYSl7dmFyIGI9eihcInVzZUNvb2tpZWxlc3NIb3N0Rm9yUGluZ2JhY2tcIik7Yj0oKHZvaWQgMD09PWI/MDpiKT9cImh0dHBzOi8vYWZzLmdvb2dsZXN5bmRpY2F0aW9uLmNvbVwiOm9jKCkpK1wiL2Fmcy9nZW5fMjA0XCI7Yj1uZXcgcWMoYik7dmFyIGM9YS5jbGllbnQ7XCJ1bmtub3duXCI9PT1jJiZOYShNYSgpKSYmKGM9TmEoTWEoKSkpO0EoYixcImNsaWVudFwiLGMpO0EoYixcIm91dHB1dFwiLFwidWRzX2Fkc19vbmx5XCIpO0EoYixcInp4XCIsYS5YZSgpKTthLktjJiZBKGIsXCJhcWlkXCIsYS5LYyk7YS5HYiYmQShiLFwicHNpZFwiLGEuR2IpO3JldHVybiBifVxuZnVuY3Rpb24geGMoYSxiLGMpe3ZhciBkPXdjKGEpO0EoZCxcInBidFwiLGIpO0EoZCxcImFkYnhcIixjLmxlZnQpO0EoZCxcImFkYnlcIixjLnRvcCk7QShkLFwiYWRiaFwiLGMuaGVpZ2h0KTtBKGQsXCJhZGJ3XCIsYy53aWR0aCk7QShkLFwiYWRiYWhcIixjLlZhKTtBKGQsXCJhZGJuXCIsYy5sZSk7QShkLFwiZWF3cFwiLGMuTWUpO0EoZCxcImVycnZcIixjLnZlKTtBKGQsXCJjc2FsYVwiLGMudGYpO0EoZCxcImxsZVwiLGMuY2c/MTowKTtBKGQsXCJpZnZcIixjLm1mPzE6MCk7QShkLFwiaHB0XCIsYy5ZZT8xOjApO2EuaGEocmMoZCkpfWZ1bmN0aW9uIHljKGEsYixjKXt2YXIgZD13YyhhKTtBKGQsXCJwYnRcIixcInRwXCIpO0EoZCxcImVycm1cIixiKTtBKGQsXCJlbXNnXCIsYywhMCk7YS5oYShyYyhkKSl9ZnVuY3Rpb24gemMoYSxiKXt2YXIgYz13YyhhKTtBKGMsXCJwYnRcIixiKTthLmhhKHJjKGMpKX07dmFyIEFjPXt9O2Z1bmN0aW9uIEJjKCl7dmFyIGE9KDU3OTk2Nzg2MikudG9TdHJpbmcoKTt0aGlzLnNmPVwiYWRzLlwiK0NjO3RoaXMud2U9YTt0aGlzLnhkPVwiZ29vZ2xlLmFkcy5kb21haW5zLkNhZjogXCI7dGhpcy5XZT12YygpfUJjLnByb3RvdHlwZS5sb2c9ZnVuY3Rpb24oYSxiKXtpZighMD09PXdpbmRvdy5JU19HT09HTEVfQUZTX0lGUkFNRV8mJndpbmRvdy5wYXJlbnQ9PXdpbmRvdylyZXR1cm4hMTthPXphKGEpP2EubWVzc2FnZTphO3ZhciBjPWErYjtpZighQWNbY10pe0FjW2NdPSEwO2M9dGhpcy5XZTt2YXIgZD10aGlzLnNmLGU9dGhpcy53ZSxmPXdjKGMpO0EoZixcInBidFwiLFwiZXJcIik7QShmLFwiZXJydFwiLGQpO0EoZixcImVycnZcIixlKTtBKGYsXCJlcnJtXCIsYik7QShmLFwiZW1zZ1wiLGEsITApO2MuaGEocmMoZikpO3JldHVybiEwfXJldHVybiExfTtcbmZ1bmN0aW9uIEIoYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCl8fFtdO3RyeXtyZXR1cm4gYS5hcHBseSh0aGlzLGMpfWNhdGNoKGUpe1wic3RyaW5nXCI9PT10eXBlb2YgZSYmKGU9e21lc3NhZ2U6ZX0pO2M9ZS5tZXNzYWdlO3ZhciBkPS0xPT1jLmluZGV4T2YoQy54ZCk7ZCYmQy5sb2coZSxiKTt0aHJvdyBkP0MueGQrYzpjO319fWZ1bmN0aW9uIERjKGEpe3JldHVyblwiZ29vZ2xlLmFkcy5kb21haW5zLkNhZjogXCIrYX1mdW5jdGlvbiBFKGEsYil7cmV0dXJuIEIoYSxiKX12YXIgRWM9WmIoXCJwYWNrYWdlc1wiKSxDYz1cInVua25vd25cIjtudWxsIT1FYyYmKENjPUVjKTt2YXIgQz1uZXcgQmM7dmFyIEZjO2E6e3ZhciBHYz13aW5kb3cucGFyZW50O3RyeXtGYz1HYy5wb3N0TWVzc2FnZT9HYzpHYy5kb2N1bWVudC5wb3N0TWVzc2FnZT9HYy5kb2N1bWVudDpudWxsO2JyZWFrIGF9Y2F0Y2goYSl7fUZjPW51bGx9dmFyIEhjPUZjLEljPXt9LEpjPUUoZnVuY3Rpb24oKXtmb3IodmFyIGE9bihhYihJYykpLGI9YS5uZXh0KCk7IWIuZG9uZTtiPWEubmV4dCgpKWI9Yi52YWx1ZSxJYy5oYXNPd25Qcm9wZXJ0eShiKSYmKEljW2JdLmpiKCl8fGRlbGV0ZSBJY1tiXSl9LFwiZnNDRElcIiksS2M9ITEsTWM9RShmdW5jdGlvbigpe0tjfHwoS2M9ITAsd2luZG93LnNldEludGVydmFsKEpjLDUwMCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsTGMpKX0sXCJmc0lMXCIpO2Z1bmN0aW9uIE5jKGEsYil7dGhpcy5QYz1hO3RoaXMuQj17fTt0aGlzLlVhPWI7SWNbdGhpcy5QY109dGhpcztNYygpfVxuZnVuY3Rpb24gT2MoYSxiKXtyZXR1cm4gYS5CLmhhc093blByb3BlcnR5KGIpP2EuQltiXS52YWx1ZTpudWxsfWZ1bmN0aW9uIFBjKGEsYil7cmV0dXJuIGEuQi5oYXNPd25Qcm9wZXJ0eShiKT9hLkJbYl0udmFsdWU6bnVsbH1mdW5jdGlvbiBGKGEsYixjLGQpe2EuQi5oYXNPd25Qcm9wZXJ0eShiKXx8KGEuQltiXT1jKCkpO2M9YS5CW2JdO2MuUWI9ZHx8ZnVuY3Rpb24oKXt9O251bGwhPWMudmFsdWUmJmMuUWIoYSxhLlBjLGIsYy52YWx1ZSl9TmMucHJvdG90eXBlLmpiPWZ1bmN0aW9uKCl7cmV0dXJuISEodGhpcy5VYSYmdGhpcy5VYS5wYXJlbnROb2RlJiZ0aGlzLlVhLmNvbnRlbnRXaW5kb3cpfTt2YXIgUWM9e307ZnVuY3Rpb24gUmMoKXt0aGlzLnZhbHVlPW51bGw7dGhpcy5RYj1mdW5jdGlvbigpe307dGhpcy5vYT0hMX1tPVJjLnByb3RvdHlwZTttLnFhPWZ1bmN0aW9uKCl7fTttLlJhPWZ1bmN0aW9uKCl7fTttLk1hPWZ1bmN0aW9uKCl7fTttLkVhPWZ1bmN0aW9uKCl7fTtcbm0uamM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWU9PWF9O2Z1bmN0aW9uIEcoKXtSYy5jYWxsKHRoaXMpfXNhKEcsUmMpO0cucHJvdG90eXBlLnFhPWZ1bmN0aW9uKGEsYil7cmV0dXJuISFifTtHLnByb3RvdHlwZS5SYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlP1widFwiOlwiZlwifTtHLnByb3RvdHlwZS5NYT1mdW5jdGlvbihhKXtyZXR1cm5cInRcIj09YX07Ry5wcm90b3R5cGUuRWE9ZnVuY3Rpb24oKXtyZXR1cm4gMH07Ry5qPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBHfTtmdW5jdGlvbiBTYygpe1JjLmNhbGwodGhpcyl9c2EoU2MsUmMpO1xuU2MucHJvdG90eXBlLnFhPWZ1bmN0aW9uKGEsYil7dmFyIGM9cGFyc2VJbnQoYiwxMCk7YT1hK1wiID0gXCIrYjtpZihpc05hTihjKSlyZXR1cm4gQy5sb2coYSxcInNJR1ZWbm5cIiksbnVsbDs5MDA3MTk5MjU0NzQwOTkxPGMmJihDLmxvZyhhLFwic0lHVlZ0bFwiKSxjPTkwMDcxOTkyNTQ3NDA5OTEpOzA+YyYmKEMubG9nKGEsXCJzSUdWVnRzXCIpLGM9MCk7cmV0dXJuIGN9O1NjLnByb3RvdHlwZS5SYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlK1wiXCJ9O1NjLnByb3RvdHlwZS5NYT1mdW5jdGlvbihhKXtyZXR1cm4gcGFyc2VJbnQoYSwxMCl9O1NjLnByb3RvdHlwZS5FYT1mdW5jdGlvbigpe3JldHVybiAxfTtTYy5qPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBTY307ZnVuY3Rpb24gVGMoKXtSYy5jYWxsKHRoaXMpfXNhKFRjLFJjKTtUYy5wcm90b3R5cGUucWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9iLnRvU3RyaW5nKCk6XCJcIn07XG5UYy5wcm90b3R5cGUuUmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZT9lbmNvZGVVUklDb21wb25lbnQodGhpcy52YWx1ZSk6XCJcIn07VGMucHJvdG90eXBlLk1hPWZ1bmN0aW9uKGEpe3JldHVybiBUYihhKX07VGMucHJvdG90eXBlLkVhPWZ1bmN0aW9uKCl7cmV0dXJuIDJ9O1RjLmo9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFRjfTtmdW5jdGlvbiBVYygpe1JjLmNhbGwodGhpcyl9c2EoVWMsUmMpO209VWMucHJvdG90eXBlO20ucWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9iOm51bGx9O20uUmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZT9lbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSkpOlwiXCJ9O20uTWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/SlNPTi5wYXJzZShUYihhKSk6bnVsbH07bS5FYT1mdW5jdGlvbigpe3JldHVybiAzfTtcbm0uamM9ZnVuY3Rpb24oYSl7dmFyIGI9SlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSk7YT1KU09OLnN0cmluZ2lmeShhKTtyZXR1cm4gYj09PWF9O1VjLmo9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFVjfTt2YXIgVmM9e30sYmQ9KFZjWzBdPUcuaixWY1sxXT1TYy5qLFZjWzJdPVRjLmosVmNbM109VWMuaixWYyk7ZnVuY3Rpb24gY2QoYSxiLGMpe1FjLmhhc093blByb3BlcnR5KGEpfHwoUWNbYV09YygpKTtjPVFjW2FdO2E9Yy5xYShhLGIpO251bGw9PWF8fGMuamMoYSl8fChjLnZhbHVlPWEsYy5vYT0hMCl9XG5mdW5jdGlvbiBMYyhhKXtpZihhPWF8fHdpbmRvdy5ldmVudClmb3IodmFyIGI9bihhYihJYykpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWlmKGM9SWNbYy52YWx1ZV0sYy5qYigpJiZhLnNvdXJjZT09Yy5VYS5jb250ZW50V2luZG93KXtpZigoYT1hLmRhdGEpJiZhLnNwbGl0JiYoYT1hLnNwbGl0KFwiLFwiKSxcIkZTWERDXCI9PWFbMF0pKXtmb3IoYj0xO2I8YS5sZW5ndGg7YisrKXt2YXIgZD1hW2JdLnNwbGl0KFwiOlwiKSxlPVRiKGRbMF0pLGY9YmRbcGFyc2VJbnQoZFsxXSwxMCldO2MuQi5oYXNPd25Qcm9wZXJ0eShlKXx8KGMuQltlXT1mKCkpO2Q9Yy5CW2VdLk1hKGRbMl0pO2MuQi5oYXNPd25Qcm9wZXJ0eShlKXx8KGMuQltlXT1mKCkpO2Y9Yy5CW2VdO2Q9Zi5xYShlLGQpO251bGwhPWQmJmYudmFsdWUhPWQmJihmLnZhbHVlPWQsZi5vYT0hMCl9YT1uKGFiKGMuQikpO2ZvcihiPWEubmV4dCgpOyFiLmRvbmU7Yj1hLm5leHQoKSliPWIudmFsdWUsZj1jLkJbYl0sZi5vYSYmXG4oZi5vYT0hMSxmLlFiKGMsYy5QYyxiLGYudmFsdWUpKX1icmVha319TmMucHJvdG90eXBlLmpiPUIoTmMucHJvdG90eXBlLmpiLFwiZnNpSFZJXCIpO3ZhciBkZD1FKGZ1bmN0aW9uKCl7aWYoSGMpe2Zvcih2YXIgYT1bXSxiPW4oYWIoUWMpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7Yz1jLnZhbHVlO3ZhciBkPVFjW2NdO2lmKGQub2Epe3ZhciBlPWQuUmEoKTthLnB1c2goW2VuY29kZVVSSUNvbXBvbmVudChjKSxkLkVhKCksZV0uam9pbihcIjpcIikpO2Qub2E9ITF9fTAhPWEubGVuZ3RoJiZIYy5wb3N0TWVzc2FnZShbXCJGU1hEQ1wiXS5jb25jYXQoYSkuam9pbihcIixcIiksXCIqXCIpfX0sXCJmc1NDXCIpO2Z1bmN0aW9uIGVkKGEsYil7Y2QoYSxiLFNjLmopfWZ1bmN0aW9uIGZkKGEsYil7Y2QoYSxiLEcuail9O2Z1bmN0aW9uIGdkKGEsYil7Zm9yKHZhciBjPW4oT2JqZWN0LmtleXMoYikpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWQ9ZC52YWx1ZSxhW2RdPXt9LE9iamVjdC5hc3NpZ24oYVtkXSxiW2RdKX1mdW5jdGlvbiBoZChhLGIpe2I9bihiKTtmb3IodmFyIGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWM9Yy52YWx1ZSxhLmhhc093blByb3BlcnR5KGMpLGFbY10udmM9ITB9O2Z1bmN0aW9uIGlkKCl7dmFyIGE9amQ7dGhpcy5LYT0xMDt0aGlzLkphPU1hdGguZmxvb3IoYSl9aWQucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LYStcInB4IC0gXCIrdGhpcy5KYStcInB4XCJ9O2lkLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe2E9cGFyc2VJbnQoYSwxMCk7cmV0dXJuIGlzTmFOKGEpP251bGw6TWF0aC5tYXgodGhpcy5LYSxNYXRoLm1pbih0aGlzLkphLGEpKX07aWQucHJvdG90eXBlLkc9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuRChhKX07ZnVuY3Rpb24ga2QoYSxiKXt0aGlzLng9dm9pZCAwIT09YT9hOjA7dGhpcy55PXZvaWQgMCE9PWI/YjowfW09a2QucHJvdG90eXBlO20uY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGtkKHRoaXMueCx0aGlzLnkpfTttLmpjPWZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2Yga2QmJih0aGlzPT1hPyEwOnRoaXMmJmE/dGhpcy54PT1hLngmJnRoaXMueT09YS55OiExKX07bS5jZWlsPWZ1bmN0aW9uKCl7dGhpcy54PU1hdGguY2VpbCh0aGlzLngpO3RoaXMueT1NYXRoLmNlaWwodGhpcy55KTtyZXR1cm4gdGhpc307bS5mbG9vcj1mdW5jdGlvbigpe3RoaXMueD1NYXRoLmZsb29yKHRoaXMueCk7dGhpcy55PU1hdGguZmxvb3IodGhpcy55KTtyZXR1cm4gdGhpc307bS5yb3VuZD1mdW5jdGlvbigpe3RoaXMueD1NYXRoLnJvdW5kKHRoaXMueCk7dGhpcy55PU1hdGgucm91bmQodGhpcy55KTtyZXR1cm4gdGhpc307XG5tLnRyYW5zbGF0ZT1mdW5jdGlvbihhLGIpe2EgaW5zdGFuY2VvZiBrZD8odGhpcy54Kz1hLngsdGhpcy55Kz1hLnkpOih0aGlzLngrPU51bWJlcihhKSxcIm51bWJlclwiPT09dHlwZW9mIGImJih0aGlzLnkrPWIpKTtyZXR1cm4gdGhpc307bS5zY2FsZT1mdW5jdGlvbihhLGIpe3RoaXMueCo9YTt0aGlzLnkqPVwibnVtYmVyXCI9PT10eXBlb2YgYj9iOmE7cmV0dXJuIHRoaXN9O2Z1bmN0aW9uIGxkKGEsYixjLGQpe3RoaXMudG9wPWE7dGhpcy5yaWdodD1iO3RoaXMuYm90dG9tPWM7dGhpcy5sZWZ0PWR9bT1sZC5wcm90b3R5cGU7bS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgbGQodGhpcy50b3AsdGhpcy5yaWdodCx0aGlzLmJvdHRvbSx0aGlzLmxlZnQpfTttLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzJiZhP2EgaW5zdGFuY2VvZiBsZD9hLmxlZnQ+PXRoaXMubGVmdCYmYS5yaWdodDw9dGhpcy5yaWdodCYmYS50b3A+PXRoaXMudG9wJiZhLmJvdHRvbTw9dGhpcy5ib3R0b206YS54Pj10aGlzLmxlZnQmJmEueDw9dGhpcy5yaWdodCYmYS55Pj10aGlzLnRvcCYmYS55PD10aGlzLmJvdHRvbTohMX07XG5tLmV4cGFuZD1mdW5jdGlvbihhLGIsYyxkKXt6YShhKT8odGhpcy50b3AtPWEudG9wLHRoaXMucmlnaHQrPWEucmlnaHQsdGhpcy5ib3R0b20rPWEuYm90dG9tLHRoaXMubGVmdC09YS5sZWZ0KToodGhpcy50b3AtPWEsdGhpcy5yaWdodCs9TnVtYmVyKGIpLHRoaXMuYm90dG9tKz1OdW1iZXIoYyksdGhpcy5sZWZ0LT1OdW1iZXIoZCkpO3JldHVybiB0aGlzfTttLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLnRvcD1NYXRoLmNlaWwodGhpcy50b3ApO3RoaXMucmlnaHQ9TWF0aC5jZWlsKHRoaXMucmlnaHQpO3RoaXMuYm90dG9tPU1hdGguY2VpbCh0aGlzLmJvdHRvbSk7dGhpcy5sZWZ0PU1hdGguY2VpbCh0aGlzLmxlZnQpO3JldHVybiB0aGlzfTtcbm0uZmxvb3I9ZnVuY3Rpb24oKXt0aGlzLnRvcD1NYXRoLmZsb29yKHRoaXMudG9wKTt0aGlzLnJpZ2h0PU1hdGguZmxvb3IodGhpcy5yaWdodCk7dGhpcy5ib3R0b209TWF0aC5mbG9vcih0aGlzLmJvdHRvbSk7dGhpcy5sZWZ0PU1hdGguZmxvb3IodGhpcy5sZWZ0KTtyZXR1cm4gdGhpc307bS5yb3VuZD1mdW5jdGlvbigpe3RoaXMudG9wPU1hdGgucm91bmQodGhpcy50b3ApO3RoaXMucmlnaHQ9TWF0aC5yb3VuZCh0aGlzLnJpZ2h0KTt0aGlzLmJvdHRvbT1NYXRoLnJvdW5kKHRoaXMuYm90dG9tKTt0aGlzLmxlZnQ9TWF0aC5yb3VuZCh0aGlzLmxlZnQpO3JldHVybiB0aGlzfTtcbm0udHJhbnNsYXRlPWZ1bmN0aW9uKGEsYil7YSBpbnN0YW5jZW9mIGtkPyh0aGlzLmxlZnQrPWEueCx0aGlzLnJpZ2h0Kz1hLngsdGhpcy50b3ArPWEueSx0aGlzLmJvdHRvbSs9YS55KToodGhpcy5sZWZ0Kz1hLHRoaXMucmlnaHQrPWEsXCJudW1iZXJcIj09PXR5cGVvZiBiJiYodGhpcy50b3ArPWIsdGhpcy5ib3R0b20rPWIpKTtyZXR1cm4gdGhpc307bS5zY2FsZT1mdW5jdGlvbihhLGIpe2I9XCJudW1iZXJcIj09PXR5cGVvZiBiP2I6YTt0aGlzLmxlZnQqPWE7dGhpcy5yaWdodCo9YTt0aGlzLnRvcCo9Yjt0aGlzLmJvdHRvbSo9YjtyZXR1cm4gdGhpc307ZnVuY3Rpb24gbWQoYSl7bWRbXCIgXCJdKGEpO3JldHVybiBhfW1kW1wiIFwiXT1mdW5jdGlvbigpe307dmFyIG5kPUtiKCk/ITE6eShcIk9wZXJhXCIpLG9kPUtiKCk/ITE6eShcIlRyaWRlbnRcIil8fHkoXCJNU0lFXCIpLHBkPXkoXCJFZGdlXCIpLHFkPXkoXCJHZWNrb1wiKSYmISgtMSE9R2IoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoXCJ3ZWJraXRcIikmJiF5KFwiRWRnZVwiKSkmJiEoeShcIlRyaWRlbnRcIil8fHkoXCJNU0lFXCIpKSYmIXkoXCJFZGdlXCIpLHJkPS0xIT1HYigpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihcIndlYmtpdFwiKSYmIXkoXCJFZGdlXCIpO2Z1bmN0aW9uIHNkKCl7dmFyIGE9di5kb2N1bWVudDtyZXR1cm4gYT9hLmRvY3VtZW50TW9kZTp2b2lkIDB9dmFyIHRkO1xuYTp7dmFyIHVkPVwiXCIsdmQ9ZnVuY3Rpb24oKXt2YXIgYT1HYigpO2lmKHFkKXJldHVybi9ydjooW15cXCk7XSspKFxcKXw7KS8uZXhlYyhhKTtpZihwZClyZXR1cm4vRWRnZVxcLyhbXFxkXFwuXSspLy5leGVjKGEpO2lmKG9kKXJldHVybi9cXGIoPzpNU0lFfHJ2KVs6IF0oW15cXCk7XSspKFxcKXw7KS8uZXhlYyhhKTtpZihyZClyZXR1cm4vV2ViS2l0XFwvKFxcUyspLy5leGVjKGEpO2lmKG5kKXJldHVybi8oPzpWZXJzaW9uKVsgXFwvXT8oXFxTKykvLmV4ZWMoYSl9KCk7dmQmJih1ZD12ZD92ZFsxXTpcIlwiKTtpZihvZCl7dmFyIHdkPXNkKCk7aWYobnVsbCE9d2QmJndkPnBhcnNlRmxvYXQodWQpKXt0ZD1TdHJpbmcod2QpO2JyZWFrIGF9fXRkPXVkfXZhciB4ZD10ZCx5ZDtpZih2LmRvY3VtZW50JiZvZCl7dmFyIHpkPXNkKCk7eWQ9emQ/emQ6cGFyc2VJbnQoeGQsMTApfHx2b2lkIDB9ZWxzZSB5ZD12b2lkIDA7dmFyIEFkPXlkO2Z1bmN0aW9uIEJkKGEsYil7dGhpcy53aWR0aD1hO3RoaXMuaGVpZ2h0PWJ9bT1CZC5wcm90b3R5cGU7bS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgQmQodGhpcy53aWR0aCx0aGlzLmhlaWdodCl9O20uYXNwZWN0UmF0aW89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWR0aC90aGlzLmhlaWdodH07bS5jZWlsPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1NYXRoLmNlaWwodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5jZWlsKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307bS5mbG9vcj1mdW5jdGlvbigpe3RoaXMud2lkdGg9TWF0aC5mbG9vcih0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmZsb29yKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307bS5yb3VuZD1mdW5jdGlvbigpe3RoaXMud2lkdGg9TWF0aC5yb3VuZCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLnJvdW5kKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307XG5tLnNjYWxlPWZ1bmN0aW9uKGEsYil7dGhpcy53aWR0aCo9YTt0aGlzLmhlaWdodCo9XCJudW1iZXJcIj09PXR5cGVvZiBiP2I6YTtyZXR1cm4gdGhpc307ZnVuY3Rpb24gQ2QoYSl7cmV0dXJuIGE/bmV3IERkKEVkKGEpKTpWYXx8KFZhPW5ldyBEZCl9XG5mdW5jdGlvbiBGZChhLGIsYyl7dmFyIGQ9ZG9jdW1lbnQ7Yz1jfHxkO3ZhciBlPWEmJlwiKlwiIT1hP1N0cmluZyhhKS50b1VwcGVyQ2FzZSgpOlwiXCI7aWYoYy5xdWVyeVNlbGVjdG9yQWxsJiZjLnF1ZXJ5U2VsZWN0b3ImJihlfHxiKSlyZXR1cm4gYy5xdWVyeVNlbGVjdG9yQWxsKGUrKGI/XCIuXCIrYjpcIlwiKSk7aWYoYiYmYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXthPWMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShiKTtpZihlKXtjPXt9O2Zvcih2YXIgZj1kPTAsZztnPWFbZl07ZisrKWU9PWcubm9kZU5hbWUmJihjW2QrK109Zyk7Yy5sZW5ndGg9ZDtyZXR1cm4gY31yZXR1cm4gYX1hPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZXx8XCIqXCIpO2lmKGIpe2M9e307Zm9yKGY9ZD0wO2c9YVtmXTtmKyspe2U9Zy5jbGFzc05hbWU7dmFyIGg7aWYoaD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnNwbGl0KWg9MDw9WGEoZS5zcGxpdCgvXFxzKy8pLGIpO2gmJihjW2QrK109Zyl9Yy5sZW5ndGg9ZDtyZXR1cm4gY31yZXR1cm4gYX1cbmZ1bmN0aW9uIEdkKGEpe2E9YS5kb2N1bWVudDthPVwiQ1NTMUNvbXBhdFwiPT1hLmNvbXBhdE1vZGU/YS5kb2N1bWVudEVsZW1lbnQ6YS5ib2R5O3JldHVybiBuZXcgQmQoYS5jbGllbnRXaWR0aCxhLmNsaWVudEhlaWdodCl9ZnVuY3Rpb24gSGQoYSl7cmV0dXJuIGEuc2Nyb2xsaW5nRWxlbWVudD9hLnNjcm9sbGluZ0VsZW1lbnQ6cmR8fFwiQ1NTMUNvbXBhdFwiIT1hLmNvbXBhdE1vZGU/YS5ib2R5fHxhLmRvY3VtZW50RWxlbWVudDphLmRvY3VtZW50RWxlbWVudH1cbmZ1bmN0aW9uIElkKGEsYixjKXtmdW5jdGlvbiBkKGgpe2gmJmIuYXBwZW5kQ2hpbGQoXCJzdHJpbmdcIj09PXR5cGVvZiBoP2EuY3JlYXRlVGV4dE5vZGUoaCk6aCl9Zm9yKHZhciBlPTE7ZTxjLmxlbmd0aDtlKyspe3ZhciBmPWNbZV07aWYoIXlhKGYpfHx6YShmKSYmMDxmLm5vZGVUeXBlKWQoZik7ZWxzZXthOntpZihmJiZcIm51bWJlclwiPT10eXBlb2YgZi5sZW5ndGgpe2lmKHphKGYpKXt2YXIgZz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBmLml0ZW18fFwic3RyaW5nXCI9PXR5cGVvZiBmLml0ZW07YnJlYWsgYX1pZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZil7Zz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBmLml0ZW07YnJlYWsgYX19Zz0hMX1ZYShnPyRhKGYpOmYsZCl9fX1mdW5jdGlvbiBKZChhLGIpe2I9U3RyaW5nKGIpO1wiYXBwbGljYXRpb24veGh0bWwreG1sXCI9PT1hLmNvbnRlbnRUeXBlJiYoYj1iLnRvTG93ZXJDYXNlKCkpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoYil9XG5mdW5jdGlvbiBFZChhKXtyZXR1cm4gOT09YS5ub2RlVHlwZT9hOmEub3duZXJEb2N1bWVudHx8YS5kb2N1bWVudH1mdW5jdGlvbiBEZChhKXt0aGlzLlU9YXx8di5kb2N1bWVudHx8ZG9jdW1lbnR9bT1EZC5wcm90b3R5cGU7bS5nZXRFbGVtZW50c0J5VGFnTmFtZT1mdW5jdGlvbihhLGIpe3JldHVybihifHx0aGlzLlUpLmdldEVsZW1lbnRzQnlUYWdOYW1lKFN0cmluZyhhKSl9O20uY3JlYXRlRWxlbWVudD1mdW5jdGlvbihhKXtyZXR1cm4gSmQodGhpcy5VLGEpfTttLmNyZWF0ZVRleHROb2RlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLlUuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKGEpKX07bS5hcHBlbmRDaGlsZD1mdW5jdGlvbihhLGIpe2EuYXBwZW5kQ2hpbGQoYil9O20uYXBwZW5kPWZ1bmN0aW9uKGEsYil7SWQoRWQoYSksYSxhcmd1bWVudHMpfTttLmNhbkhhdmVDaGlsZHJlbj1mdW5jdGlvbihhKXtpZigxIT1hLm5vZGVUeXBlKXJldHVybiExO3N3aXRjaChhLnRhZ05hbWUpe2Nhc2UgXCJBUFBMRVRcIjpjYXNlIFwiQVJFQVwiOmNhc2UgXCJCQVNFXCI6Y2FzZSBcIkJSXCI6Y2FzZSBcIkNPTFwiOmNhc2UgXCJDT01NQU5EXCI6Y2FzZSBcIkVNQkVEXCI6Y2FzZSBcIkZSQU1FXCI6Y2FzZSBcIkhSXCI6Y2FzZSBcIklNR1wiOmNhc2UgXCJJTlBVVFwiOmNhc2UgXCJJRlJBTUVcIjpjYXNlIFwiSVNJTkRFWFwiOmNhc2UgXCJLRVlHRU5cIjpjYXNlIFwiTElOS1wiOmNhc2UgXCJOT0ZSQU1FU1wiOmNhc2UgXCJOT1NDUklQVFwiOmNhc2UgXCJNRVRBXCI6Y2FzZSBcIk9CSkVDVFwiOmNhc2UgXCJQQVJBTVwiOmNhc2UgXCJTQ1JJUFRcIjpjYXNlIFwiU09VUkNFXCI6Y2FzZSBcIlNUWUxFXCI6Y2FzZSBcIlRSQUNLXCI6Y2FzZSBcIldCUlwiOnJldHVybiExfXJldHVybiEwfTtcbm0ucmVtb3ZlTm9kZT1mdW5jdGlvbihhKXtyZXR1cm4gYSYmYS5wYXJlbnROb2RlP2EucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKTpudWxsfTttLmNvbnRhaW5zPWZ1bmN0aW9uKGEsYil7aWYoIWF8fCFiKXJldHVybiExO2lmKGEuY29udGFpbnMmJjE9PWIubm9kZVR5cGUpcmV0dXJuIGE9PWJ8fGEuY29udGFpbnMoYik7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24pcmV0dXJuIGE9PWJ8fCEhKGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikmMTYpO2Zvcig7YiYmYSE9YjspYj1iLnBhcmVudE5vZGU7cmV0dXJuIGI9PWF9O2Z1bmN0aW9uIEtkKGEsYil7YTp7dmFyIGM9RWQoYSk7aWYoYy5kZWZhdWx0VmlldyYmYy5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlJiYoYz1jLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoYSxudWxsKSkpe2M9Y1tiXXx8Yy5nZXRQcm9wZXJ0eVZhbHVlKGIpfHxcIlwiO2JyZWFrIGF9Yz1cIlwifXJldHVybiBjfHwoYS5jdXJyZW50U3R5bGU/YS5jdXJyZW50U3R5bGVbYl06bnVsbCl8fGEuc3R5bGUmJmEuc3R5bGVbYl19ZnVuY3Rpb24gTGQoYSl7dHJ5e3JldHVybiBhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWNhdGNoKGIpe3JldHVybntsZWZ0OjAsdG9wOjAscmlnaHQ6MCxib3R0b206MH19fVxuZnVuY3Rpb24gTWQoYSl7aWYob2QmJiEoODw9TnVtYmVyKEFkKSkpcmV0dXJuIGEub2Zmc2V0UGFyZW50O3ZhciBiPUVkKGEpLGM9S2QoYSxcInBvc2l0aW9uXCIpLGQ9XCJmaXhlZFwiPT1jfHxcImFic29sdXRlXCI9PWM7Zm9yKGE9YS5wYXJlbnROb2RlO2EmJmEhPWI7YT1hLnBhcmVudE5vZGUpaWYoMTE9PWEubm9kZVR5cGUmJmEuaG9zdCYmKGE9YS5ob3N0KSxjPUtkKGEsXCJwb3NpdGlvblwiKSxkPWQmJlwic3RhdGljXCI9PWMmJmEhPWIuZG9jdW1lbnRFbGVtZW50JiZhIT1iLmJvZHksIWQmJihhLnNjcm9sbFdpZHRoPmEuY2xpZW50V2lkdGh8fGEuc2Nyb2xsSGVpZ2h0PmEuY2xpZW50SGVpZ2h0fHxcImZpeGVkXCI9PWN8fFwiYWJzb2x1dGVcIj09Y3x8XCJyZWxhdGl2ZVwiPT1jKSlyZXR1cm4gYTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIE5kKGEpe3ZhciBiPUVkKGEpLGM9bmV3IGtkKDAsMCk7dmFyIGQ9Yj9FZChiKTpkb2N1bWVudDtkPSFvZHx8OTw9TnVtYmVyKEFkKXx8XCJDU1MxQ29tcGF0XCI9PUNkKGQpLlUuY29tcGF0TW9kZT9kLmRvY3VtZW50RWxlbWVudDpkLmJvZHk7aWYoYT09ZClyZXR1cm4gYzthPUxkKGEpO2Q9Q2QoYikuVTtiPUhkKGQpO2Q9ZC5wYXJlbnRXaW5kb3d8fGQuZGVmYXVsdFZpZXc7Yj1vZCYmZC5wYWdlWU9mZnNldCE9Yi5zY3JvbGxUb3A/bmV3IGtkKGIuc2Nyb2xsTGVmdCxiLnNjcm9sbFRvcCk6bmV3IGtkKGQucGFnZVhPZmZzZXR8fGIuc2Nyb2xsTGVmdCxkLnBhZ2VZT2Zmc2V0fHxiLnNjcm9sbFRvcCk7Yy54PWEubGVmdCtiLng7Yy55PWEudG9wK2IueTtyZXR1cm4gY31cbmZ1bmN0aW9uIE9kKGEpe2lmKDE9PWEubm9kZVR5cGUpcmV0dXJuIGE9TGQoYSksbmV3IGtkKGEubGVmdCxhLnRvcCk7YT1hLmNoYW5nZWRUb3VjaGVzP2EuY2hhbmdlZFRvdWNoZXNbMF06YTtyZXR1cm4gbmV3IGtkKGEuY2xpZW50WCxhLmNsaWVudFkpfWZ1bmN0aW9uIFBkKGEpe3ZhciBiPVFkO2lmKFwibm9uZVwiIT1LZChhLFwiZGlzcGxheVwiKSlyZXR1cm4gYihhKTt2YXIgYz1hLnN0eWxlLGQ9Yy5kaXNwbGF5LGU9Yy52aXNpYmlsaXR5LGY9Yy5wb3NpdGlvbjtjLnZpc2liaWxpdHk9XCJoaWRkZW5cIjtjLnBvc2l0aW9uPVwiYWJzb2x1dGVcIjtjLmRpc3BsYXk9XCJpbmxpbmVcIjthPWIoYSk7Yy5kaXNwbGF5PWQ7Yy5wb3NpdGlvbj1mO2MudmlzaWJpbGl0eT1lO3JldHVybiBhfVxuZnVuY3Rpb24gUWQoYSl7dmFyIGI9YS5vZmZzZXRXaWR0aCxjPWEub2Zmc2V0SGVpZ2h0LGQ9cmQmJiFiJiYhYztyZXR1cm4odm9pZCAwPT09Ynx8ZCkmJmEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0PyhhPUxkKGEpLG5ldyBCZChhLnJpZ2h0LWEubGVmdCxhLmJvdHRvbS1hLnRvcCkpOm5ldyBCZChiLGMpfTtmdW5jdGlvbiBSZChhKXt2YXIgYj1hLmluZGV4T2YoXCIjXCIpO3JldHVybiAwPmI/YTphLnNsaWNlKDAsYil9dmFyIFNkPS8jfCQvO2Z1bmN0aW9uIFRkKGEsYil7dmFyIGM9YS5zZWFyY2goU2QpO2E6e3ZhciBkPTA7Zm9yKHZhciBlPWIubGVuZ3RoOzA8PShkPWEuaW5kZXhPZihiLGQpKSYmZDxjOyl7dmFyIGY9YS5jaGFyQ29kZUF0KGQtMSk7aWYoMzg9PWZ8fDYzPT1mKWlmKGY9YS5jaGFyQ29kZUF0KGQrZSksIWZ8fDYxPT1mfHwzOD09Znx8MzU9PWYpYnJlYWsgYTtkKz1lKzF9ZD0tMX1pZigwPmQpcmV0dXJuIG51bGw7ZT1hLmluZGV4T2YoXCImXCIsZCk7aWYoMD5lfHxlPmMpZT1jO2QrPWIubGVuZ3RoKzE7cmV0dXJuIFRiKGEuc2xpY2UoZCwtMSE9PWU/ZTowKSl9O3ZhciBVZD17fSxWZD0oVWQuYWRzPTAsVWQucGxhcz0xLFVkLnJlbGF0ZWRzZWFyY2g9MyxVZCksV2Q9KCF3aW5kb3cuSVNfR09PR0xFX0FGU19JRlJBTUVffHxQYSgpLDgpLGpkPSghd2luZG93LklTX0dPT0dMRV9BRlNfSUZSQU1FX3x8UGEoKSwyNCksWGQ9bmV3IGlkLFlkPXtjb250ZW50OlwiY1wiLHF1ZXJ5OlwicVwiLGRvbWFpbjpcImRcIn07ZnVuY3Rpb24gWmQoYSxiLGMpe2lmKCFiLmcpcmV0dXJuIGM7Yz1iLmcuRChjKTtpZihudWxsPT1jJiYhYi5DKXRocm93IERjKGErXCIgaGFzIGFuIGludmFsaWQgdmFsdWUuIFZhbGlkIGlucHV0IHZhbHVlczogW1wiK2IuZy5IKCkrXCJdLlwiKTtyZXR1cm4gY31mdW5jdGlvbiAkZChhKXtyZXR1cm4vXig/Oig/OnNsYXZlLVxcZCsoPzotKD86YXxiKSk/KXwoPzptYXN0ZXItKD86YXxiKSkpLVxcZCskLy50ZXN0KGEpfWZ1bmN0aW9uIGFlKGEpe3JldHVybihhPWEubWF0Y2goL3NsYXZlLShcXGQrKS0vKSk/cGFyc2VJbnQoYVsxXSwxMCkrMToxfVxuZnVuY3Rpb24gYmUoYSxiLGMpe2Zvcih2YXIgZD1bXSxlLGY9MDtlPWNbZl07ZisrKWU9bmV3IHFjKGUpLEEoZSxhLGIpLGQucHVzaChyYyhlKSk7cmV0dXJuIGR9ZnVuY3Rpb24gY2UoYSxiKXthPVJkKGEpO2lmKChhPWEubWF0Y2gobmV3IFJlZ0V4cChcIls/Jl1cIitiK1wiPShbXiZdKilcIikpKSYmYVsxXSl0cnl7cmV0dXJuIFRiKGFbMV0pfWNhdGNoKGMpe31yZXR1cm4gbnVsbH1mdW5jdGlvbiBkZShhKXthPVJkKGEpO3ZhciBiPXt9O2EucmVwbGFjZSgvWz8mXSsoW149Jl0rKT0/KFteJl0qKS9naSxmdW5jdGlvbihjLGQsZSl7dHJ5e2JbVGIoZCldPVRiKGUpfWNhdGNoKGYpe319KTtyZXR1cm4gYn1cbmZ1bmN0aW9uIGVlKCl7dmFyIGE9dm9pZCAwPT09YT93aW5kb3cubG9jYXRpb24uaHJlZjphO3ZhciBiPXooXCJfZW5hYmxlTGF6eUxvYWRpbmdcIiksYz1aYihcImxsZGxcIixhYygpKTtyZXR1cm4gYiYmYyYmKGM9bmV3IFJlZ0V4cChcIihcIithdG9iKGMpLnJlcGxhY2UoLywvZyxcIil8KFwiKStcIilcIiksYS5tYXRjaChjKSk/ITE6ISEoXCJJbnRlcnNlY3Rpb25PYnNlcnZlclwiaW4gd2luZG93JiZiKX1cbmZ1bmN0aW9uIGZlKGEsYixjKXtiPXZvaWQgMD09PWI/MDpiO2M9dm9pZCAwPT09Yz9udWxsOmM7dmFyIGQ9bmV3IGxkKDAsSW5maW5pdHksSW5maW5pdHksMCk7Zm9yKHZhciBlPUNkKGEpLGY9ZS5VLmJvZHksZz1lLlUuZG9jdW1lbnRFbGVtZW50LGg9SGQoZS5VKSxrPWE7az1NZChrKTspaWYoIShvZCYmMD09ay5jbGllbnRXaWR0aHx8cmQmJjA9PWsuY2xpZW50SGVpZ2h0JiZrPT1mKSYmayE9ZiYmayE9ZyYmXCJ2aXNpYmxlXCIhPUtkKGssXCJvdmVyZmxvd1wiKSl7dmFyIGw9TmQoaykscD1uZXcga2Qoay5jbGllbnRMZWZ0LGsuY2xpZW50VG9wKTtsLngrPXAueDtsLnkrPXAueTtkLnRvcD1NYXRoLm1heChkLnRvcCxsLnkpO2QucmlnaHQ9TWF0aC5taW4oZC5yaWdodCxsLngray5jbGllbnRXaWR0aCk7ZC5ib3R0b209TWF0aC5taW4oZC5ib3R0b20sbC55K2suY2xpZW50SGVpZ2h0KTtkLmxlZnQ9TWF0aC5tYXgoZC5sZWZ0LGwueCl9Zj1oLnNjcm9sbExlZnQ7aD1oLnNjcm9sbFRvcDtcbmQubGVmdD1NYXRoLm1heChkLmxlZnQsZik7ZC50b3A9TWF0aC5tYXgoZC50b3AsaCk7ZT1lLlU7ZT1HZChlLnBhcmVudFdpbmRvd3x8ZS5kZWZhdWx0Vmlld3x8d2luZG93KTtkLnJpZ2h0PU1hdGgubWluKGQucmlnaHQsZitlLndpZHRoKTtkLmJvdHRvbT1NYXRoLm1pbihkLmJvdHRvbSxoK2UuaGVpZ2h0KTtkPTA8PWQudG9wJiYwPD1kLmxlZnQmJmQuYm90dG9tPmQudG9wJiZkLnJpZ2h0PmQubGVmdD9kOm51bGw7ZT1uZXcga2QoYS5vZmZzZXRMZWZ0LGEub2Zmc2V0VG9wKTthPVBkKGEpO2U9bmV3IGxkKGUueSxlLngrYS53aWR0aCxlLnkrYS5oZWlnaHQsZS54KTtudWxsIT1jJiYoYj0tTWF0aC5hYnMoYS5oZWlnaHQqYykpO3JldHVybiEhKGQmJmQubGVmdDw9ZS5yaWdodCtiJiZlLmxlZnQ8PWQucmlnaHQrYiYmZC50b3A8PWUuYm90dG9tK2ImJmUudG9wPD1kLmJvdHRvbStiKX1cbmZ1bmN0aW9uIGdlKCl7cmV0dXJuIG51bGwhPT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNzcmFiXCIpfTt2YXIgaGU9e307ZnVuY3Rpb24gaWUoYSl7dmFyIGI9e25hbWVzOltdLGZyYW1lczpbXX0sYztmb3IoYyBpbiBoZSl7dmFyIGQ9amUoYyxhKTtudWxsPT1kP2RlbGV0ZSBoZVtjXTooYi5uYW1lcy5wdXNoKGMpLGIuZnJhbWVzLnB1c2goZCkpfXJldHVybiBifWllPUIoaWUsXCJjRnJcIik7ZnVuY3Rpb24gamUoYSxiKXtpZihrZSlyZXR1cm4ga2UoYSxiKTtpZihhPT1iLm5hbWUpcmV0dXJuIHdpbmRvdzt0cnl7dmFyIGM9d2luZG93LnBhcmVudC5mcmFtZXNbYStcInxcIit3aW5kb3cubmFtZV07aWYoYylyZXR1cm4gY31jYXRjaChkKXt9dHJ5e3JldHVybiB3aW5kb3cucGFyZW50LmZyYW1lc1thXXx8bnVsbH1jYXRjaChkKXt9cmV0dXJuIG51bGx9amU9QihqZSxcImdGQk5cIik7dmFyIGtlPW51bGwsbGU9aWUsbWU9amU7ZnVuY3Rpb24gbmUoYSxiLGMpe2M9dm9pZCAwPT09Yz9bXTpjO3RoaXMuZnJhbWVXaWR0aD1hO3RoaXMuZnJhbWVIZWlnaHQ9Yjt0aGlzLlZhPWN9O2Z1bmN0aW9uIG9lKGEsYixjKXt2YXIgZD0hMTthLmFkZEV2ZW50TGlzdGVuZXIoYixjKTthLmFkZEV2ZW50TGlzdGVuZXIoYixmdW5jdGlvbigpe2R8fChhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjKSxkPSEwKX0pfTtmdW5jdGlvbiBwZSgpe3ZhciBhLGI7cmV0dXJue3Byb21pc2U6bmV3IFByb21pc2UoZnVuY3Rpb24oYyxkKXthPWM7Yj1kfSkscmVzb2x2ZTphLHJlamVjdDpifX1mdW5jdGlvbiBxZShhLGIpe3ZhciBjPXBlKCk7YS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5yZXNvbHZlKGIpfSwwKTtyZXR1cm4gYy5wcm9taXNlfWZ1bmN0aW9uIHJlKGEsYil7dmFyIGM9cGUoKTt3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2MucmVzb2x2ZShiKX0sYSk7cmV0dXJuIGMucHJvbWlzZX1cbmZ1bmN0aW9uIHNlKGEpe3ZhciBiPVtdLGM9MCxkPWEubGVuZ3RoO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLGYpe2lmKGQpZm9yKHZhciBnPXtzYTowfTtnLnNhPGQ7Zz17c2E6Zy5zYX0sZy5zYSsrKVByb21pc2UucmVzb2x2ZShhW2cuc2FdKS50aGVuKGZ1bmN0aW9uKGgpe3JldHVybiBmdW5jdGlvbihrKXtiW2guc2FdPWs7Yys9MTtjPT09ZCYmZShiKX19KGcpKS5jYXRjaChmdW5jdGlvbihoKXtmKGgpfSk7ZWxzZSBlKGIpfSl9O3ZhciB0ZT1udWxsO2Z1bmN0aW9uIHVlKCl7aWYobnVsbCE9dGUpcmV0dXJuIHRlO3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7YS5zdHlsZS53aWR0aD1cIjFweFwiO2Euc3R5bGUuaGVpZ2h0PVwiMXB4XCI7YS5zdHlsZS5ib3JkZXI9XCIxcHggc29saWQgYmxhY2tcIjthLnN0eWxlLnBhZGRpbmc9XCIxcHhcIjthLnN0eWxlLnZpc2liaWxpdHk9XCJoaWRkZW5cIjtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO3ZhciBiPWEub2Zmc2V0V2lkdGg7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKTtyZXR1cm4gdGU9NT09Yn1mdW5jdGlvbiB2ZShhKXtyZXR1cm4gcGFyc2VGbG9hdChhLnJlcGxhY2UoXCJweFwiLFwiXCIpKXx8MH1cbmZ1bmN0aW9uIHdlKGEsYil7dmFyIGM9Yj9hLm9mZnNldEhlaWdodDphLm9mZnNldFdpZHRoO2I9Yj9bXCJUb3BcIixcIkJvdHRvbVwiXTpbXCJSaWdodFwiLFwiTGVmdFwiXTt2YXIgZD0hMTt2YXIgZT11ZSgpP1tcIm1hcmdpblwiXTpbXCJib3JkZXJcIixcIm1hcmdpblwiLFwicGFkZGluZ1wiXTt2YXIgZj1lLmxlbmd0aCxnPWIubGVuZ3RoLGg9ZG9jdW1lbnQuZGVmYXVsdFZpZXc7aWYoaCYmaC5nZXRDb21wdXRlZFN0eWxlJiYoaD1oLmdldENvbXB1dGVkU3R5bGUoYSkpKXtkPSEwO2Zvcih2YXIgaz0wO2s8ZjtrKyspZm9yKHZhciBsPTA7bDxnO2wrKyljKz12ZShoLmdldFByb3BlcnR5VmFsdWUoW2Vba10sYltsXS50b0xvd2VyQ2FzZSgpXS5qb2luKFwiLVwiKSkpfWlmKCFkJiYoYT1hLmN1cnJlbnRTdHlsZSkpe2lmKCF1ZSgpKWZvcihkPTA7ZDxnO2QrKyljKz12ZShhW1tcImJvcmRlclwiLGJbZF0sXCJXaWR0aFwiXS5qb2luKFwiXCIpXSk7Zm9yKGQ9MDtkPGY7ZCsrKWlmKFwiYm9yZGVyXCIhPWVbZF0pZm9yKGg9MDtoPFxuZztoKyspYys9dmUoYVtbZVtkXSxiW2hdXS5qb2luKFwiXCIpXSl9cmV0dXJuIGN9O2Z1bmN0aW9uIHhlKGEpe2lmKHllKXJldHVybiB5ZShhKTt2YXIgYj1sZShhKTtpZih3KCkuZGF0YS5laWVsbCl6ZShiKTtlbHNlIHJldHVybiBBZShiLmZyYW1lcykudGhlbihmdW5jdGlvbigpe3plKGIpfSl9eGU9Qih4ZSxcInNQSFwiKTt2YXIgeWU9bnVsbDtmdW5jdGlvbiBCZShhKXt0cnl7cmV0dXJuIHdlKGEuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCEwKX1jYXRjaChiKXtyZXR1cm4gbnVsbH19QmU9QihCZSxcImdCSFwiKTtmdW5jdGlvbiBDZShhKXt0cnl7dmFyIGI9YS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIik7cmV0dXJuIHdlKGIsITEpfWNhdGNoKGMpe3JldHVybiBudWxsfX1DZT1CKENlLFwiZ0JXXCIpO1xuZnVuY3Rpb24gRGUoYSl7dmFyIGI9W107YT1uKGEuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJpbWdcIikpO2Zvcih2YXIgYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpe3ZhciBkPWIsZT1kLnB1c2g7Yz1jLnZhbHVlO3ZhciBmPXBlKCk7Yy5jb21wbGV0ZT9mLnJlc29sdmUoKToob2UoYyxcImxvYWRcIixmLnJlc29sdmUpLG9lKGMsXCJlcnJvclwiLGYucmVzb2x2ZSkpO2UuY2FsbChkLGYucHJvbWlzZSl9cmV0dXJuIHNlKGIpfURlPUIoRGUsXCJnRkhfd2ZpcFwiKTtcbmZ1bmN0aW9uIHplKGEpe2Zvcih2YXIgYj0wO2I8YS5mcmFtZXMubGVuZ3RoO2IrKyl7dmFyIGM9YS5mcmFtZXNbYl07aWYoeihcIl9vcHRpbWl6ZUZyYW1lTWVhc3VyZW1lbnRcIikpe3ZhciBkPWMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2Q9bmV3IEJkKGQub2Zmc2V0V2lkdGgsZC5vZmZzZXRIZWlnaHQpO2M9RWUoYyk7Yz1uZXcgbmUoZC53aWR0aCxkLmhlaWdodCxjKX1lbHNle2Q9QmUoYyk7dmFyIGU9Q2UoYyk7RmUoYyxkLGUpP2M9bmV3IG5lKDEsMSk6KGM9RWUoYyksYz1uZXcgbmUoZSxkLGMpKX1kPXt9O2M9KGQuZnc9Yy5mcmFtZVdpZHRoLGQuZmg9Yy5mcmFtZUhlaWdodCxkLmFoPWMuVmEsZCk7Y2QoYS5uYW1lc1tiXStcIi5mc1wiLGMsVWMuail9ZGQoKX1cbmZ1bmN0aW9uIEFlKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspYi5wdXNoKERlKGFbY10pKTtyZXR1cm4gUHJvbWlzZS5yYWNlKFtQcm9taXNlLmFsbChiKSxyZSg1MDAsXCJ0aW1lZE91dFdhaXRpbmdGb3JJbWFnZXNcIildKX1BZT1CKEFlLFwiZ0ZIXCIpO3ZhciBFZT1FKGZ1bmN0aW9uKGEpe3ZhciBiPVtdO2E9bih6KFwiX2VuYWJsZVVuaWZpZWRNdWRza2lwcGVySWZyYW1lXCIpP2EuZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5jbGlja3RyYWNrZWRBZF9qc1wiKTphLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuc2kxMDFcIikpO2Zvcih2YXIgYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpYz1jLnZhbHVlLGM9eihcIl9vcHRpbWl6ZUZyYW1lTWVhc3VyZW1lbnRcIik/KG5ldyBCZChjLm9mZnNldFdpZHRoLGMub2Zmc2V0SGVpZ2h0KSkuaGVpZ2h0OndlKGMsITApLGIucHVzaChjKTtyZXR1cm4gYn0sXCJnQUhJRlwiKTtcbmZ1bmN0aW9uIEZlKGEsYixjKXtyZXR1cm4oXCJudW1iZXJcIj09dHlwZW9mIGImJjE2PmJ8fFwibnVtYmVyXCI9PXR5cGVvZiBjJiYxNj5jKSYmKGE9YS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIikpJiZcIlwiIT1hLmlubmVySFRNTD8hMDohMX1GZT1CKEZlLFwiaUNTSVwiKTt2YXIgR2U9eGU7LypcblxuIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4qL1xudmFyIEhlPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBVUkw7ZnVuY3Rpb24gS2UoYSl7aWYoYSBpbnN0YW5jZW9mIHRiKWE9dWIoYSk7ZWxzZXtiOmlmKEhlKXt0cnl7dmFyIGI9bmV3IFVSTChhKX1jYXRjaChjKXtiPVwiaHR0cHM6XCI7YnJlYWsgYn1iPWIucHJvdG9jb2x9ZWxzZSBjOntiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO3RyeXtiLmhyZWY9YX1jYXRjaChjKXtiPXZvaWQgMDticmVhayBjfWI9Yi5wcm90b2NvbDtiPVwiOlwiPT09Ynx8XCJcIj09PWI/XCJodHRwczpcIjpifWE9XCJqYXZhc2NyaXB0OlwiIT09Yj9hOnZvaWQgMH1yZXR1cm4gYX07ZnVuY3Rpb24gTGUoYSl7dmFyIGI9dGEuYXBwbHkoMSxhcmd1bWVudHMpO2lmKDA9PT1iLmxlbmd0aClyZXR1cm4gaWIoYVswXSk7Zm9yKHZhciBjPWFbMF0sZD0wO2Q8Yi5sZW5ndGg7ZCsrKWMrPWVuY29kZVVSSUNvbXBvbmVudChiW2RdKSthW2QrMV07cmV0dXJuIGliKGMpfTt2YXIgTWU9amEoW1wiLy9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVwiLFwiXCJdKTtmdW5jdGlvbiBOZShhLGIpe2I9YlthXTtifHwoQy5sb2coXCJmcmFtZU9wdGlvbnMgaXMgdW5kZWZpbmVkIGZvciBcIithLFwiZkFVXCIpLGI9e30pO3JldHVybiBifU5lPUIoTmUsXCJnRk9cIik7ZnVuY3Rpb24gT2UoYSl7cmV0dXJuIGZ1bmN0aW9uKGIsYyl7cmV0dXJuXCJ1bmRlZmluZWRcIj09dHlwZW9mIGFbYl0/Y3x8bnVsbDphW2JdfX1mdW5jdGlvbiBQZShhKXtyZXR1cm4gZnVuY3Rpb24oYixjKXtpZihhLmhhc093blByb3BlcnR5KGIpKXtiPWFbYl0uc3BsaXQoXCIsXCIpO2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKWlmKGJbZF09PWMpcmV0dXJuITA7cmV0dXJuITF9cmV0dXJuITB9fWZ1bmN0aW9uIFFlKGEpe3JldHVybihhPWEud2lkdGgpJiZcImF1dG9cIiE9YT9hOlwiMTAwJVwifVxuZnVuY3Rpb24gUmUoYSl7dmFyIGI9e3JhOiExLGJkOm51bGwsa2Q6bnVsbH07YS52ZXJ0aWNhbFNwYWNpbmcmJihhPWEudmVydGljYWxTcGFjaW5nLzIsYi5yYT0hMCxiLmJkPU1hdGguZmxvb3IoYSksYi5rZD1NYXRoLmNlaWwoYSkpO3JldHVybiBifWZ1bmN0aW9uIFNlKGEpe2lmKGEuZm9udFNpemVUaXRsZSlyZXR1cm4gYS5mb250U2l6ZVRpdGxlO2E9U2EoKTtyZXR1cm4gYS5kYXRhLmhtfHxhLmRhdGEudD8xODpudWxsfWZ1bmN0aW9uIFRlKGEpe3ZhciBiPVtdO2lmKGEud2ViRm9udEZhbWlseSl7dmFyIGM9YS53ZWJGb250RmFtaWx5O2EudGl0bGVCb2xkJiYoYys9XCI6NDAwLDcwMFwiKTtiLnB1c2goYyl9YS53ZWJGb250RmFtaWx5QXR0cmlidXRpb24mJihjPWEud2ViRm9udEZhbWlseUF0dHJpYnV0aW9uLGEuYXR0cmlidXRpb25Cb2xkJiYoYys9XCI6NDAwLDcwMFwiKSxiLnB1c2goYykpO3JldHVybiAwPT1iLmxlbmd0aD9udWxsOkxlKE1lLGIuam9pbihcInxcIikpfXZhciBVZT1OZTsheShcIkFuZHJvaWRcIil8fExiKCk7TGIoKTt5KFwiU2FmYXJpXCIpJiYoTGIoKXx8KEtiKCk/MDp5KFwiQ29hc3RcIikpfHwoS2IoKT8wOnkoXCJPcGVyYVwiKSl8fChLYigpPzA6eShcIkVkZ2VcIikpfHwoS2IoKT9KYihcIk1pY3Jvc29mdCBFZGdlXCIpOnkoXCJFZGcvXCIpKXx8S2IoKSYmSmIoXCJPcGVyYVwiKSk7TWF0aC5tYXguYXBwbHkoTWF0aCxrYShPYmplY3QudmFsdWVzKHtzZzoxLHFnOjIscGc6NCx2Zzo4LHVnOjE2LHRnOjMyLGtnOjY0LHhnOjEyOCxvZzoyNTYsbmc6NTEyLHJnOjEwMjQsbGc6MjA0OCx3Zzo0MDk2LG1nOjgxOTJ9KSkpO09iamVjdC5mcmVlemUoe30pO3ZhciBWZT0vPFtePl0qPnwmW147XSs7L2c7ZnVuY3Rpb24gV2UoYSxiKXtyZXR1cm4gYj9hLnJlcGxhY2UoVmUsXCJcIik6YX1cbnZhciBYZT1SZWdFeHAoXCJbQS1aYS16XFx1MDBjMC1cXHUwMGQ2XFx1MDBkOC1cXHUwMGY2XFx1MDBmOC1cXHUwMmI4XFx1MDMwMC1cXHUwNTkwXFx1MDkwMC1cXHUxZmZmXFx1MjAwZVxcdTJjMDAtXFx1ZDgwMVxcdWQ4MDQtXFx1ZDgzOVxcdWQ4M2MtXFx1ZGJmZlxcdWY5MDAtXFx1ZmIxY1xcdWZlMDAtXFx1ZmU2ZlxcdWZlZmQtXFx1ZmZmZl1cIiksWWU9UmVnRXhwKFwiXlteQS1aYS16XFx1MDBjMC1cXHUwMGQ2XFx1MDBkOC1cXHUwMGY2XFx1MDBmOC1cXHUwMmI4XFx1MDMwMC1cXHUwNTkwXFx1MDkwMC1cXHUxZmZmXFx1MjAwZVxcdTJjMDAtXFx1ZDgwMVxcdWQ4MDQtXFx1ZDgzOVxcdWQ4M2MtXFx1ZGJmZlxcdWY5MDAtXFx1ZmIxY1xcdWZlMDAtXFx1ZmU2ZlxcdWZlZmQtXFx1ZmZmZl0qW1xcdTA1OTEtXFx1MDZlZlxcdTA2ZmEtXFx1MDhmZlxcdTIwMGZcXHVkODAyLVxcdWQ4MDNcXHVkODNhLVxcdWQ4M2JcXHVmYjFkLVxcdWZkZmZcXHVmZTcwLVxcdWZlZmNdXCIpLFplPS9eaHR0cDpcXC9cXC8uKi8sJGU9L1xccysvLGFmPS9bXFxkXFx1MDZmMC1cXHUwNmY5XS87dmFyIGJmPXt9LGNmPXt9LGRmPXt9LGVmPXt9LGZmPXt9O2Z1bmN0aW9uIGdmKCl7dGhyb3cgRXJyb3IoXCJEbyBub3QgaW5zdGFudGlhdGUgZGlyZWN0bHlcIik7fWdmLnByb3RvdHlwZS5TPW51bGw7Z2YucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVudH07Z2YucHJvdG90eXBlLkpkPWZ1bmN0aW9uKCl7aWYodGhpcy5PIT09YmYpdGhyb3cgRXJyb3IoXCJTYW5pdGl6ZWQgY29udGVudCB3YXMgbm90IG9mIGtpbmQgSFRNTC5cIik7cmV0dXJuIFFiKHRoaXMudG9TdHJpbmcoKSl9O2Z1bmN0aW9uIGhmKCl7Z2YuY2FsbCh0aGlzKX1CYShoZixnZik7aGYucHJvdG90eXBlLk89YmY7ZnVuY3Rpb24gamYoKXtnZi5jYWxsKHRoaXMpfUJhKGpmLGdmKTtqZi5wcm90b3R5cGUuTz1jZjtqZi5wcm90b3R5cGUuUz0xO2Z1bmN0aW9uIGtmKCl7Z2YuY2FsbCh0aGlzKX1CYShrZixnZik7a2YucHJvdG90eXBlLk89ZGY7a2YucHJvdG90eXBlLlM9MTtcbmZ1bmN0aW9uIGxmKCl7Z2YuY2FsbCh0aGlzKX1CYShsZixnZik7bGYucHJvdG90eXBlLk89ZWY7bGYucHJvdG90eXBlLlM9MTtmdW5jdGlvbiBtZigpe2dmLmNhbGwodGhpcyl9QmEobWYsZ2YpO21mLnByb3RvdHlwZS5PPWZmO21mLnByb3RvdHlwZS5TPTE7ZnVuY3Rpb24gbmYoYSxiKXtyZXR1cm4gbnVsbCE9YSYmYS5PPT09Yn07ZnVuY3Rpb24gb2YoYSl7aWYobnVsbCE9YSlzd2l0Y2goYS5TKXtjYXNlIDE6cmV0dXJuIDE7Y2FzZSAtMTpyZXR1cm4tMTtjYXNlIDA6cmV0dXJuIDB9cmV0dXJuIG51bGx9ZnVuY3Rpb24gcGYoYSl7cmV0dXJuIG5mKGEsYmYpP2E6YSBpbnN0YW5jZW9mIE5iP0goT2IoYSkudG9TdHJpbmcoKSk6SChTdHJpbmcoU3RyaW5nKGEpKS5yZXBsYWNlKHFmLHJmKSxvZihhKSl9ZnVuY3Rpb24gc2YoYSl7ZnVuY3Rpb24gYihjKXt0aGlzLmNvbnRlbnQ9Y31iLnByb3RvdHlwZT1hLnByb3RvdHlwZTtyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuIG5ldyBiKFN0cmluZyhjKSl9fXZhciBIPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyl7dGhpcy5jb250ZW50PWN9Yi5wcm90b3R5cGU9YS5wcm90b3R5cGU7cmV0dXJuIGZ1bmN0aW9uKGMsZCl7Yz1uZXcgYihTdHJpbmcoYykpO3ZvaWQgMCE9PWQmJihjLlM9ZCk7cmV0dXJuIGN9fShoZiksdGY9c2YobGYpLHVmPXNmKG1mKTtcbmZ1bmN0aW9uIHZmKGEpe3ZhciBiPVtdLGM7Zm9yKGMgaW4gYSliLnB1c2goYyk7cmV0dXJuIGJ9ZnVuY3Rpb24gd2YoYSl7aWYobnVsbD09YSl0aHJvdyBFcnJvcihcInVuZXhwZWN0ZWQgbnVsbCB2YWx1ZVwiKTtyZXR1cm4gYX1mdW5jdGlvbiBJKGEsYil7cmV0dXJuIGEmJmImJmEubmYmJmIubmY/YS5PIT09Yi5PPyExOmEudG9TdHJpbmcoKT09PWIudG9TdHJpbmcoKTphIGluc3RhbmNlb2YgZ2YmJmIgaW5zdGFuY2VvZiBnZj9hLk8hPWIuTz8hMTphLnRvU3RyaW5nKCk9PWIudG9TdHJpbmcoKTphPT1ifWZ1bmN0aW9uIEooYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBnZj8hIWEuY29udGVudDohIWF9ZnVuY3Rpb24geGYoYSl7ZnVuY3Rpb24gYihjKXt0aGlzLmNvbnRlbnQ9Y31iLnByb3RvdHlwZT1hLnByb3RvdHlwZTtyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuKGM9U3RyaW5nKGMpKT9uZXcgYihjKTpcIlwifX1cbnZhciB5Zj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGMpe3RoaXMuY29udGVudD1jfWIucHJvdG90eXBlPWEucHJvdG90eXBlO3JldHVybiBmdW5jdGlvbihjLGQpe2M9U3RyaW5nKGMpO2lmKCFjKXJldHVyblwiXCI7Yz1uZXcgYihjKTt2b2lkIDAhPT1kJiYoYy5TPWQpO3JldHVybiBjfX0oaGYpLHpmPXhmKGtmKSxBZj14ZihqZiksQmY9eGYobGYpLENmPXhmKG1mKTtmdW5jdGlvbiBEZihhKXtyZXR1cm4gYS5yZXBsYWNlKC88XFwvL2csXCI8XFxcXC9cIikucmVwbGFjZSgvXFxdXFxdPi9nLFwiXV1cXFxcPlwiKX1mdW5jdGlvbiBMKGEpe2lmKG5mKGEsYmYpKXt2YXIgYj1TdHJpbmc7YT1TdHJpbmcoYS5jb250ZW50KS5yZXBsYWNlKEVmLFwiXCIpLnJlcGxhY2UoRmYsXCImbHQ7XCIpO2I9YihhKS5yZXBsYWNlKEdmLHJmKX1lbHNlIGI9U3RyaW5nKGEpLnJlcGxhY2UocWYscmYpO3JldHVybiBifVxuZnVuY3Rpb24gSGYoYSl7bmYoYSxlZik/YT1hLmNvbnRlbnQ6KGE9U3RyaW5nKGEpLGE9SWYudGVzdChhKT9hOlwielNveXpcIik7cmV0dXJuIGF9ZnVuY3Rpb24gSmYoYSl7bmYoYSxlZikmJihhPWEuY29udGVudCk7cmV0dXJuKGEmJiFhLnN0YXJ0c1dpdGgoXCIgXCIpP1wiIFwiOlwiXCIpK2F9ZnVuY3Rpb24gS2YoYSl7bmYoYSxjZil8fG5mKGEsZGYpP2E9TGYoYSk6YSBpbnN0YW5jZW9mIHRiP2E9TGYodWIoYSkpOmEgaW5zdGFuY2VvZiBkYj9hPUxmKGhiKGEpLnRvU3RyaW5nKCkpOihhPVN0cmluZyhhKSxhPU1mLnRlc3QoYSk/YS5yZXBsYWNlKE5mLE9mKTpcImFib3V0OmludmFsaWQjelNveXpcIik7cmV0dXJuIGF9XG5mdW5jdGlvbiBQZihhKXtuZihhLGNmKXx8bmYoYSxkZik/YT1MZihhKTphIGluc3RhbmNlb2YgdGI/YT1MZih1YihhKSk6YSBpbnN0YW5jZW9mIGRiP2E9TGYoaGIoYSkudG9TdHJpbmcoKSk6KGE9U3RyaW5nKGEpLGE9UWYudGVzdChhKT9hLnJlcGxhY2UoTmYsT2YpOlwiYWJvdXQ6aW52YWxpZCN6U295elwiKTtyZXR1cm4gYX1mdW5jdGlvbiBOKGEpe25mKGEsZmYpP2E9RGYoYS5jb250ZW50KTpudWxsPT1hP2E9XCJcIjphIGluc3RhbmNlb2Ygd2I/YT1EZihhIGluc3RhbmNlb2Ygd2ImJmEuY29uc3RydWN0b3I9PT13Yj9hLkhjOlwidHlwZV9lcnJvcjpTYWZlU3R5bGVcIik6YSBpbnN0YW5jZW9mIHpiP2E9RGYoYSBpbnN0YW5jZW9mIHpiJiZhLmNvbnN0cnVjdG9yPT09emI/YS5HYzpcInR5cGVfZXJyb3I6U2FmZVN0eWxlU2hlZXRcIik6KGE9U3RyaW5nKGEpLGE9UmYudGVzdChhKT9hOlwielNveXpcIik7cmV0dXJuIGF9XG52YXIgU2Y9e1wiXFx4MDBcIjpcIiYjMDtcIixcIlxcdFwiOlwiJiM5O1wiLFwiXFxuXCI6XCImIzEwO1wiLFwiXFx2XCI6XCImIzExO1wiLFwiXFxmXCI6XCImIzEyO1wiLFwiXFxyXCI6XCImIzEzO1wiLFwiIFwiOlwiJiMzMjtcIiwnXCInOlwiJnF1b3Q7XCIsXCImXCI6XCImYW1wO1wiLFwiJ1wiOlwiJiMzOTtcIixcIi1cIjpcIiYjNDU7XCIsXCIvXCI6XCImIzQ3O1wiLFwiPFwiOlwiJmx0O1wiLFwiPVwiOlwiJiM2MTtcIixcIj5cIjpcIiZndDtcIixcImBcIjpcIiYjOTY7XCIsXCJcXHUwMDg1XCI6XCImIzEzMztcIixcIlxcdTAwYTBcIjpcIiYjMTYwO1wiLFwiXFx1MjAyOFwiOlwiJiM4MjMyO1wiLFwiXFx1MjAyOVwiOlwiJiM4MjMzO1wifTtmdW5jdGlvbiByZihhKXtyZXR1cm4gU2ZbYV19XG52YXIgVGY9e1wiXFx4MDBcIjpcIlxcXFwwIFwiLFwiXFxiXCI6XCJcXFxcOCBcIixcIlxcdFwiOlwiXFxcXDkgXCIsXCJcXG5cIjpcIlxcXFxhIFwiLFwiXFx2XCI6XCJcXFxcYiBcIixcIlxcZlwiOlwiXFxcXGMgXCIsXCJcXHJcIjpcIlxcXFxkIFwiLCdcIic6XCJcXFxcMjIgXCIsXCImXCI6XCJcXFxcMjYgXCIsXCInXCI6XCJcXFxcMjcgXCIsXCIoXCI6XCJcXFxcMjggXCIsXCIpXCI6XCJcXFxcMjkgXCIsXCIqXCI6XCJcXFxcMmEgXCIsXCIvXCI6XCJcXFxcMmYgXCIsXCI6XCI6XCJcXFxcM2EgXCIsXCI7XCI6XCJcXFxcM2IgXCIsXCI8XCI6XCJcXFxcM2MgXCIsXCI9XCI6XCJcXFxcM2QgXCIsXCI+XCI6XCJcXFxcM2UgXCIsXCJAXCI6XCJcXFxcNDAgXCIsXCJcXFxcXCI6XCJcXFxcNWMgXCIsXCJ7XCI6XCJcXFxcN2IgXCIsXCJ9XCI6XCJcXFxcN2QgXCIsXCJcXHUwMDg1XCI6XCJcXFxcODUgXCIsXCJcXHUwMGEwXCI6XCJcXFxcYTAgXCIsXCJcXHUyMDI4XCI6XCJcXFxcMjAyOCBcIixcIlxcdTIwMjlcIjpcIlxcXFwyMDI5IFwifTtmdW5jdGlvbiBVZihhKXtyZXR1cm4gVGZbYV19XG52YXIgVmY9e1wiXFx4MDBcIjpcIiUwMFwiLFwiXFx1MDAwMVwiOlwiJTAxXCIsXCJcXHUwMDAyXCI6XCIlMDJcIixcIlxcdTAwMDNcIjpcIiUwM1wiLFwiXFx1MDAwNFwiOlwiJTA0XCIsXCJcXHUwMDA1XCI6XCIlMDVcIixcIlxcdTAwMDZcIjpcIiUwNlwiLFwiXFx1MDAwN1wiOlwiJTA3XCIsXCJcXGJcIjpcIiUwOFwiLFwiXFx0XCI6XCIlMDlcIixcIlxcblwiOlwiJTBBXCIsXCJcXHZcIjpcIiUwQlwiLFwiXFxmXCI6XCIlMENcIixcIlxcclwiOlwiJTBEXCIsXCJcXHUwMDBlXCI6XCIlMEVcIixcIlxcdTAwMGZcIjpcIiUwRlwiLFwiXFx1MDAxMFwiOlwiJTEwXCIsXCJcXHUwMDExXCI6XCIlMTFcIixcIlxcdTAwMTJcIjpcIiUxMlwiLFwiXFx1MDAxM1wiOlwiJTEzXCIsXCJcXHUwMDE0XCI6XCIlMTRcIixcIlxcdTAwMTVcIjpcIiUxNVwiLFwiXFx1MDAxNlwiOlwiJTE2XCIsXCJcXHUwMDE3XCI6XCIlMTdcIixcIlxcdTAwMThcIjpcIiUxOFwiLFwiXFx1MDAxOVwiOlwiJTE5XCIsXCJcXHUwMDFhXCI6XCIlMUFcIixcIlxcdTAwMWJcIjpcIiUxQlwiLFwiXFx1MDAxY1wiOlwiJTFDXCIsXCJcXHUwMDFkXCI6XCIlMURcIixcIlxcdTAwMWVcIjpcIiUxRVwiLFwiXFx1MDAxZlwiOlwiJTFGXCIsXCIgXCI6XCIlMjBcIiwnXCInOlwiJTIyXCIsXCInXCI6XCIlMjdcIixcIihcIjpcIiUyOFwiLFxuXCIpXCI6XCIlMjlcIixcIjxcIjpcIiUzQ1wiLFwiPlwiOlwiJTNFXCIsXCJcXFxcXCI6XCIlNUNcIixcIntcIjpcIiU3QlwiLFwifVwiOlwiJTdEXCIsXCJcXHUwMDdmXCI6XCIlN0ZcIixcIlxcdTAwODVcIjpcIiVDMiU4NVwiLFwiXFx1MDBhMFwiOlwiJUMyJUEwXCIsXCJcXHUyMDI4XCI6XCIlRTIlODAlQThcIixcIlxcdTIwMjlcIjpcIiVFMiU4MCVBOVwiLFwiXFx1ZmYwMVwiOlwiJUVGJUJDJTgxXCIsXCJcXHVmZjAzXCI6XCIlRUYlQkMlODNcIixcIlxcdWZmMDRcIjpcIiVFRiVCQyU4NFwiLFwiXFx1ZmYwNlwiOlwiJUVGJUJDJTg2XCIsXCJcXHVmZjA3XCI6XCIlRUYlQkMlODdcIixcIlxcdWZmMDhcIjpcIiVFRiVCQyU4OFwiLFwiXFx1ZmYwOVwiOlwiJUVGJUJDJTg5XCIsXCJcXHVmZjBhXCI6XCIlRUYlQkMlOEFcIixcIlxcdWZmMGJcIjpcIiVFRiVCQyU4QlwiLFwiXFx1ZmYwY1wiOlwiJUVGJUJDJThDXCIsXCJcXHVmZjBmXCI6XCIlRUYlQkMlOEZcIixcIlxcdWZmMWFcIjpcIiVFRiVCQyU5QVwiLFwiXFx1ZmYxYlwiOlwiJUVGJUJDJTlCXCIsXCJcXHVmZjFkXCI6XCIlRUYlQkMlOURcIixcIlxcdWZmMWZcIjpcIiVFRiVCQyU5RlwiLFwiXFx1ZmYyMFwiOlwiJUVGJUJDJUEwXCIsXCJcXHVmZjNiXCI6XCIlRUYlQkMlQkJcIixcblwiXFx1ZmYzZFwiOlwiJUVGJUJDJUJEXCJ9O2Z1bmN0aW9uIE9mKGEpe3JldHVybiBWZlthXX1cbnZhciBxZj0vW1xceDAwXFx4MjJcXHgyNlxceDI3XFx4M2NcXHgzZV0vZyxHZj0vW1xceDAwXFx4MjJcXHgyN1xceDNjXFx4M2VdL2csV2Y9L1tcXHgwMFxceDA4LVxceDBkXFx4MjJcXHgyNi1cXHgyYVxcL1xceDNhLVxceDNlQFxcXFxcXHg3YlxceDdkXFx4ODVcXHhhMFxcdTIwMjhcXHUyMDI5XS9nLE5mPS9bXFx4MDAtIFxceDIyXFx4MjctXFx4MjlcXHgzY1xceDNlXFxcXFxceDdiXFx4N2RcXHg3ZlxceDg1XFx4YTBcXHUyMDI4XFx1MjAyOVxcdWZmMDFcXHVmZjAzXFx1ZmYwNFxcdWZmMDYtXFx1ZmYwY1xcdWZmMGZcXHVmZjFhXFx1ZmYxYlxcdWZmMWRcXHVmZjFmXFx1ZmYyMFxcdWZmM2JcXHVmZjNkXS9nLFJmPS9eKD8hLSooPzpleHByZXNzaW9ufCg/Om1vei0pP2JpbmRpbmcpKSg/Oig/OlsuI10/LT8oPzpbX2EtejAtOS1dKykoPzotW19hLXowLTktXSspKi0/fCg/OmNhbGN8Y3ViaWMtYmV6aWVyfGRyb3Atc2hhZG93fGhzbHxoc2xhfGh1ZS1yb3RhdGV8aW52ZXJ0fGxpbmVhci1ncmFkaWVudHxtYXh8bWlufHJnYnxyZ2JhfHJvdGF0ZXxyb3RhdGVafHRyYW5zbGF0ZXx0cmFuc2xhdGUzZHx0cmFuc2xhdGVYfHRyYW5zbGF0ZVl8dmFyKVxcKCg/OlstXFx1MDAyMFxcdCwrLiEjJV8wLTlhLXpBLVpdfCg/OmNhbGN8Y3ViaWMtYmV6aWVyfGRyb3Atc2hhZG93fGhzbHxoc2xhfGh1ZS1yb3RhdGV8aW52ZXJ0fGxpbmVhci1ncmFkaWVudHxtYXh8bWlufHJnYnxyZ2JhfHJvdGF0ZXxyb3RhdGVafHRyYW5zbGF0ZXx0cmFuc2xhdGUzZHx0cmFuc2xhdGVYfHRyYW5zbGF0ZVl8dmFyKVxcKFstXFx1MDAyMFxcdCwrLiEjJV8wLTlhLXpBLVpdK1xcKSkrXFwpfFstK10/KD86WzAtOV0rKD86XFwuWzAtOV0qKT98XFwuWzAtOV0rKSg/OmUtP1swLTldKyk/KD86W2Etel17MSw0fXwlKT98IWltcG9ydGFudCkoPzpcXHMqWyxcXHUwMDIwXVxccyp8JCkpKiQvaSxNZj1cbi9eKD8hamF2YXNjcmlwdDopKD86W2EtejAtOSsuLV0rOnxbXiY6XFwvPyNdKig/OltcXC8/I118JCkpL2ksUWY9L15bXiY6XFwvPyNdKig/OltcXC8/I118JCl8Xmh0dHBzPzp8XmZ0cDp8XmRhdGE6aW1hZ2VcXC9bYS16MC05Ky1dKztiYXNlNjQsW2EtejAtOStcXC9dKz0qJHxeYmxvYjovaSxJZj0vXig/IW9ufHNyY3woPzphY3Rpb258YXJjaGl2ZXxiYWNrZ3JvdW5kfGNpdGV8Y2xhc3NpZHxjb2RlYmFzZXxjb250ZW50fGRhdGF8ZHN5bmN8aHJlZnxodHRwLWVxdWl2fGxvbmdkZXNjfHN0eWxlfHVzZW1hcClcXHMqJCkoPzpbYS16MC05XyQ6LV0qKSQvaTtmdW5jdGlvbiBMZihhKXtyZXR1cm4gU3RyaW5nKGEpLnJlcGxhY2UoTmYsT2YpfXZhciBFZj0vPCg/OiF8XFwvPyhbYS16QS1aXVthLXpBLVowLTk6XFwtXSopKSg/OltePidcIl18XCJbXlwiXSpcInwnW14nXSonKSo+L2csRmY9LzwvZzsvKlxuIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuXG4gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiovXG5mdW5jdGlvbiBYZihhLGIpe2I9Ynx8Q2QoKTtpZihhJiZhLk1jKWI9YS5NYygpO2Vsc2V7Yj1iLmNyZWF0ZUVsZW1lbnQoXCJESVZcIik7YTppZih6YShhKSl7aWYoYS5KZCYmKGE9YS5KZCgpLGEgaW5zdGFuY2VvZiBOYikpe3ZhciBjPWE7YnJlYWsgYX1jPVBiKFwielNveXpcIil9ZWxzZSBjPVBiKFN0cmluZyhhKSk7YT1iO2lmKFNiKCkpZm9yKDthLmxhc3RDaGlsZDspYS5yZW1vdmVDaGlsZChhLmxhc3RDaGlsZCk7YS5pbm5lckhUTUw9T2IoYyl9cmV0dXJuIDE9PWIuY2hpbGROb2Rlcy5sZW5ndGgmJihhPWIuZmlyc3RDaGlsZCwxPT1hLm5vZGVUeXBlKT9hOmJ9dmFyIFlmPXt9O2Z1bmN0aW9uIFpmKGEpe3ZhciBiPWEuWCxjPWEubGYsZD1hLnFmLGU9YS5tZSxmPWEuYWcsZz1hLllkLGg9YS5FZSxrPWEuRmUsbD1hLnllLHA9YS56ZSxyPWEueGUscT1hLmZvbnRGYW1pbHksdD1hLlJlLHg9YS5WZSx1PWEuU2UsRD1hLlZmLEs9YS5XZixPPWEuSmYsVj1hLktmLHVhPWEuSWYsQWE9YS5MZixUYT1hLkhmLGFhPWEudmYsYmE9YS5RZCxXYz1hLmhlLGJjPWEuamUsY2M9YS5rZSxYYz1hLmdlLE09YS5YZCx4Yj1hLlNkLFc9YS5UZCxYPWEuVmQsbGE9YS5VZCxZYz1hLldkLFpjPWEudWYsJGM9YS5kZyxJZT1hLmVnLFRnPWEuZGUseWI9YS50eXBlLFVhPWEuR2UsYWQ9YS5nZixnYj1hLmVmLEplPWEua2YsVWc9YS51ZSx5aj1hLnRlO2E9YS5LO3ZhciB6aj1mLnJhP1wicGFkZGluZy10b3A6XCIrTihmLmJkKStcInB4OyBwYWRkaW5nLWJvdHRvbTpcIitOKGYua2QpK1wicHg7XCI6Y3x8ZD9cInBhZGRpbmc6N3B4IDA7XCI6XCJcIjt2YXIgQWo9dT9OKHUpOmQ/XCIxNVwiOlwiMTNcIjtlPVwiPHN0eWxlPiNyZXNwb25zZV9kZWJ1Z19vdXRwdXR7bWF4LWhlaWdodDo1MDBweDsgb3ZlcmZsb3c6YXV0bzt9Ym9keXtcIitcbihjP1wiLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCU7XCI6XCJcIikrXCJjb2xvcjpcIisoaD9OKGgpOlwiIzAwMFwiKStcIjsgZm9udC1mYW1pbHk6XCIrKCRjP1wiJ1wiK1N0cmluZygkYykucmVwbGFjZShXZixVZikrXCInLFwiOlwiXCIpKyhxP04ocSk6XCJhcmlhbFwiKStcIiwgc2Fucy1zZXJpZjsgZm9udC1zaXplOlwiKyhjfHxkP1wiMTRcIjpcIjEyXCIpK1wicHg7IHdpZHRoOlwiK04oZSkrXCI7IHBhZGRpbmc6MHB4OyBtYXJnaW46MHB4O1wiKyhKKHApJiYoSihiYyl8fEooYmEpKT9cInBhZGRpbmctcmlnaHQ6MnB4O1wiOlwiXCIpKyhKZSYmYj9cImRpcmVjdGlvbjpydGw7XCI6XCJcIikrXCJ9Ym9keXstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTsgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O31hey13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjppbml0aWFsO30uYWR7cGFkZGluZzoycHggMDsgbWFyZ2luOjBweDsgd29yZC13cmFwOmJyZWFrLXdvcmQ7XCIremorKGc/XCJib3JkZXItYm90dG9tOjFweCBzb2xpZCBcIitcbk4oZykrXCI7XCI6XCJcIikrXCJ9XCIrKEooVGEpJiYoIUplfHxKKHliKSYmXCJyZWxhdGVkc2VhcmNoXCI9PXliKT9cIi5cIitOKFwiYV9cIikrXCI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpcIitOKFRhKStcIjt9XCI6XCJcIikrXCIuYWQuZntcIisoZi5yYT9cInBhZGRpbmctdG9wOjJweDtcIjpcIlwiKStcIn0uYWQuZnJ7XCIrKGYucmE/XCJwYWRkaW5nLXRvcDoycHg7XCI6XCJcIikrXCJ9LmFkLmx7XCIrKGYucmE/XCJwYWRkaW5nLWJvdHRvbToycHg7XCI6XCJcIikrKGc/XCJib3JkZXItYm90dG9tOjBweDtcIjpcIlwiKStcIn0uYWQubHJ7XCIrKGYucmE/XCJwYWRkaW5nLWJvdHRvbToycHg7XCI6XCJcIikrXCJ9I2FkQmxvY2sgYntcIisoeWp8fEplP1wiXCI6XCJmb250LXdlaWdodDpub3JtYWw7XCIpK1wifS5hZCBzcGFue193aWR0aDo5OSU7fSNhZEJsb2Nre2JhY2tncm91bmQ6I0ZGRiBub25lIHJlcGVhdCBzY3JvbGwgMCAwOyBtYXJnaW46MDsgcGFkZGluZzowO1wiKyhsP1wiYmFja2dyb3VuZC1jb2xvcjpcIitOKGwpK1wiO1wiOlwiXCIpKyhKKHApJiZKKFdjKT9cImJvcmRlci1sZWZ0OjFweCBzb2xpZCBcIitcbk4ocCkrXCI7XCI6XCJcIikrKEoocCkmJkooYmMpP1wiYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCBcIitOKHApK1wiO1wiOlwiXCIpKyhKKHApJiZKKGNjKT9cImJvcmRlci10b3A6MXB4IHNvbGlkIFwiK04ocCkrXCI7XCI6XCJcIikrKEoocCkmJkooWGMpP1wiYm9yZGVyLWJvdHRvbToxcHggc29saWQgXCIrTihwKStcIjtcIjpcIlwiKStcIn0jYWRCbG9jayBoMntmb250LXNpemU6XCIrQWorXCJweDsgZm9udC13ZWlnaHQ6bm9ybWFsO1wiKyhUZz9cInBhZGRpbmctYm90dG9tOlwiK04oVGcpK1wicHg7XCI6XCJwYWRkaW5nOjA7XCIpK1wibWFyZ2luOjA7XCIrKEoodCl8fEooSWUpP1wiZm9udC1mYW1pbHk6XCIrKEllP1wiJ1wiK1N0cmluZyhJZSkucmVwbGFjZShXZixVZikrXCInLFwiOlwiXCIpKyh0P04odCkrXCIsXCI6XCJcIikrXCIgc2Fucy1zZXJpZjtcIjpcIlwiKStcIn0jYWRCbG9jayBzcGFuLmxoSGVhZGVye21hcmdpbjozcHggNHB4IDA7fSNhZEJsb2NrIGgyIGEsICNhZEJsb2NrIGgye2NvbG9yOlwiKyhyP04ocik6XCIjNjc2NzY3XCIpK1wiOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9LlwiK1xuTihcImNfXCIpK1wie2NvbG9yOlwiK04oaykrXCI7fS5cIitOKFwiY19cIikrXCJ7XCIrKHg/XCJmb250LXNpemU6XCIrTih4KStcInB4O1wiOlwiXCIpK1wiZm9udC13ZWlnaHQ6XCIrKEQ/XCJib2xkXCI6XCJub3JtYWxcIikrXCI7fS5cIitOKFwiY19cIikrXCJ7XCIrKEs/XCJkaXNwbGF5OmlubGluZS1ibG9jaztcIjpcIlwiKStcImxpbmUtaGVpZ2h0OlwiKyhaYz9OKFpjKStcInB4XCI6XCIxLjRlbVwiKStcIjtcIisoYWE/XCJ0ZXh0LWRlY29yYXRpb246bm9uZTtcIjpcIlwiKStcIm1hcmdpbjowOyBwYWRkaW5nOjA7fVwiKyhBYT9cIi5cIitOKFwiY19cIikrXCI6aG92ZXIge3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fWF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fVwiOlwiXCIpK1wiaDIgYTpob3Zlcntjb2xvcjpcIisocj9OKHIpOlwiIzY3Njc2N1wiKStcIjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDt9YTpob3ZlcntcIisoTz9cImZvbnQtd2VpZ2h0OmJvbGQ7XCI6XCJcIikrKFY/XCJjb2xvcjpcIitOKFYpK1xuXCI7XCI6XCJcIikrKHVhP1wiYmFja2dyb3VuZC1jb2xvcjpcIitOKHVhKStcIjtcIjpcIlwiKStcIn1cIjtmPWI/XCJyaWdodFwiOlwibGVmdFwiO2I9Yj9cImxlZnRcIjpcInJpZ2h0XCI7Sih5YikmJlwicmVsYXRlZHNlYXJjaFwiPT15YiYmIWE/KHliPWdiP1widGV4dC1hbGlnbjpcIisoXCJyaWdodFwiPT1mJiZcImxlZnRcIj09Z2I/XCJyaWdodFwiOlwicmlnaHRcIj09ZiYmXCJyaWdodFwiPT1nYj9cImxlZnRcIjpOKGdiKSkrXCI7XCI6XCJcIixVYT1VYT9KKGFkKSYmSihnYik/XCJjZW50ZXJcIj09Z2I/XCJwYWRkaW5nLXJpZ2h0OlwiK04oTWF0aC5mbG9vcihVYS8yKSkrXCJweDsgcGFkZGluZy1sZWZ0OlwiK04oTWF0aC5mbG9vcihVYS8yKSkrXCJweDtcIjpcInJpZ2h0XCI9PWdiP1wicGFkZGluZy1cIitOKGYpK1wiOlwiK04oVWEpK1wicHg7XCI6XCJwYWRkaW5nLVwiK04oYikrXCI6XCIrTihVYSkrXCJweDtcIjpcInBhZGRpbmctcmlnaHQ6XCIrTihVYSkrXCJweDtcIjpcIlwiLGc9XCIucmFkbGlua0N7XCIrKEooYWQpJiZ4PHU/XCJwYWRkaW5nOlwiK04oMSsodS14KSkrXCJweCA0cHg7XCI6XCJwYWRkaW5nOjFweCA0cHg7XCIpK1xuXCJ3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7fS5jb2x7XCIreWIrKGFkP1wiYm9yZGVyLVwiK04oYikrXCI6MXB4IHNvbGlkIFwiK04oZykrXCI7XCI6XCJcIikrXCJ2ZXJ0aWNhbC1hbGlnbjp0b3A7XCIrVWErXCJ9XCIrKGFkP1wiI2FkQmxvY2sgaDJ7ZmxvYXQ6XCIrTihmKStcIjsgbGluZS1oZWlnaHQ6MS40ZW07IHZlcnRpY2FsLWFsaWduOnRvcDtcIisoeD49dT9cInBhZGRpbmc6XCIrTigzKyh4LXUpKStcInB4IDRweDtcIjpcInBhZGRpbmc6M3B4IDRweDtcIikrXCJ9LmFke2JvcmRlci1ib3R0b206bm9uZTt9LmNvbC5se2JvcmRlci1cIitOKGIpK1wiOm5vbmU7fVwiOlwiI2FkQmxvY2sgaDJ7dGV4dC1hbGlnbjpcIitOKGYpK1wiO31cIikpOmc9XCJcIjtYPShKKE0pJiZKKHhiKSYmVWc/XCIuYWRJY29ue3Zpc2liaWxpdHk6dmlzaWJsZTsgd2lkdGg6XCIrTihNKStcInB4OyBoZWlnaHQ6XCIrTih4YikrXCJweDsgYm9yZGVyOm5vbmU7IGZsb2F0OlwiK04oZikrXCI7IG1hcmdpbi1cIitOKGYpK1wiOlwiK04obnVsbCE9WD9YOjApK1wicHg7IG1hcmdpbi1cIitcbk4oYikrXCI6XCIrTihudWxsIT1sYT9sYTo0KStcInB4OyBtYXJnaW4tdG9wOlwiK04obnVsbCE9Vz9XOjQpK1wicHg7IG1hcmdpbi1ib3R0b206XCIrTihudWxsIT1ZYz9ZYzowKStcInB4O30uYWRELCAuXCIrTihcImFfXCIpK1wie2Rpc3BsYXk6YmxvY2s7IG92ZXJmbG93OmhpZGRlbjt9XCI6XCJcIikrKGM/XCIuYWREe2NsZWFyOlwiK04oYikrXCI7fVwiOlwiXCIpK2c7Yz1jfHxkP3VmKFwiYm9keXtmb250LWZhbWlseTpcIisoJGM/XCInXCIrU3RyaW5nKCRjKS5yZXBsYWNlKFdmLFVmKStcIicsXCI6XCJcIikrKHE/TihxKStcIixcIjpcIlwiKSsnXCJSb2JvdG9cIixcIkhlbHZldGljYSBOZXVlXCIsYXJpYWwsc2Fucy1zZXJpZjt9LmFke21hcmdpbjowOyBwYWRkaW5nOjA7fS4nK04oXCJjX1wiKStcIntsaW5lLWhlaWdodDpcIisoWmM/TihaYyk6XCIyMFwiKStcInB4OyBtYXJnaW46MDt9dGR7cGFkZGluZzowcHg7fS5hZFN0ZHtjbGVhcjpub25lO31cIisoSihNKSYmSih4YikmJkooVWcpP1wiLmFkSWNvbnttYXJnaW4tdG9wOlwiK04obnVsbCE9Vz9XOjApK1xuXCJweDsgbWFyZ2luLWJvdHRvbTpcIitOKG51bGwhPVljP1ljOjApK1wicHg7IG1hcmdpbi1cIitOKGYpK1wiOjBweDt9XCI6XCJcIikrXCIuYWRTdGR7Y2xlYXI6bm9uZTt9XCIpOlwiXCI7cmV0dXJuIEgoZSsoWCtjK1wiPC9zdHlsZT5cIikpfTtmdW5jdGlvbiAkZihhKXt2YXIgYj1hLlgsYz1hLnR5cGUsZD1hLmRmLGU9YS5iZixmPWEuQWUsZz1hLkJlLGg9YS5EZSxrPWEuamcsbD1hLmdnLHA9YS5VZSxyPWEuVGUscT1hLmFmLHQ9YS5aZSx4PWEuQ2UsdT1hLmhnLEQ9YS5BZixLPWEuY2UsTz1hLmZnLFY9YS5lZSx1YT1hLlhmLEFhPWEuUmQ7YT1hLks7Yj1cInNlYXJjaGJveFwiPT1jP1wiLnNiaXtcIisoaz9cIndpZHRoOlwiK04oaykrXCJweDtcIjpcIndpZHRoOjEwMCU7XCIpKyhwP1wiZm9udC1zaXplOlwiK04ocCkrXCJweDtcIjpcImZvbnQtc2l6ZToxNnB4O1wiKSsoZD9cImJvcmRlcjowIG5vbmU7XCI6XCJcIikrKGY/XCJiYWNrZ3JvdW5kLWNvbG9yOlwiK04oZikrXCI7XCI6XCJcIikrKHE/XCJoZWlnaHQ6XCIrTihxKStcInB4O1wiOlwiXCIpKyhEP1wiYm9yZGVyLXJhZGl1czpcIitOKEQpK1wicHg7XCI6XCJcIikrXCJ9XCIrKGs/XCJcIjpcIi5zYmktdGR7d2lkdGg6MTAwJTt9XCIpK1wiLnNiYntjdXJzb3I6cG9pbnRlcjtcIisocj9cImZvbnQtc2l6ZTpcIitOKHIpK1wicHg7XCI6XCJmb250LXNpemU6MTZweDtcIikrXG5cIm1hcmdpbi1cIisoYj9cInJpZ2h0XCI6XCJsZWZ0XCIpK1wiOjE1cHg7XCIrKGU/XCJib3JkZXI6MCBub25lO1wiOih4P1wiYm9yZGVyLWNvbG9yOlwiK04oeCkrXCI7XCI6XCJcIikrKHU/XCJib3JkZXItd2lkdGg6XCIrTih1KStcInB4O1wiOlwiXCIpKyhEP1wiYm9yZGVyLXJhZGl1czpcIitOKEQpK1wicHg7XCI6XCJcIikpKyhnP1wiYmFja2dyb3VuZDpcIitOKGcpK1wiO1wiOlwiXCIpKyhoP1wiY29sb3I6XCIrTihoKStcIjtcIisoXCJ0cmFuc3BhcmVudFwiPT1oP1wiZmlsdGVyOmFscGhhKG9wYWNpdHk9MCk7XCI6XCJcIik6XCJcIikrKGw/XCJ3aWR0aDpcIitOKGwpK1wicHg7XCI6XCJcIikrKHQ/XCJoZWlnaHQ6XCIrTih0KStcInB4O1wiOlwiXCIpK1wifVwiOlwiaW1hZ2VhZFwiIT1jfHxhP1wiZHluYW1pY1wiIT1jfHxhP1wiXCI6XCIucmFkbGlua0MuaHlicmlke21hcmdpbi1yaWdodDowOyBtYXJnaW4tbGVmdDowO31cIjpcIiNhZEJsb2Nre2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7fVwiO3JldHVybiBIKFwiPHN0eWxlPlwiKyhPP1wiQGltcG9ydCB1cmwoXCIrKG5mKE8sZGYpP08uY29udGVudDpcbk8gaW5zdGFuY2VvZiBkYj9oYihPKS50b1N0cmluZygpOlwiYWJvdXQ6aW52YWxpZCN6U295elwiKStcIik7XCI6XCJcIikrKEs/XCIjYWRCbG9jayBoMiwgaDIgYTpob3Zlcntmb250LXdlaWdodDpib2xkO31cIjpcIlwiKSsoVj9cIiNhZEJsb2NrIGgye3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt9XCI6XCJcIikrKHVhP1wiLlwiK04oXCJjX1wiKStcInt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7fVwiOlwiXCIpKyhBYT9cIi5cIitOKFwiYV9cIikrXCJ7Ym9yZGVyLXdpZHRoOlwiK04oQWEpK1wicHg7fVwiOlwiXCIpK2IrXCI8L3N0eWxlPlwiKX07dmFyIGFnPS0xO2Z1bmN0aW9uIGJnKGEpe3JldHVybiBhP2E6U2EoKS5kYXRhLmhtfHxTYSgpLmRhdGEudD9cIiNiZGJkYmRcIjpudWxsfVxuZnVuY3Rpb24gY2coYSxiLGMpe2Z1bmN0aW9uIGQocil7cmV0dXJuKHI9ZShyKSk/dWYocik6dm9pZCAwfXZhciBlPU9lKGIpLGY9UGUoYiksZz1lKFwidHlwZVwiKXx8XCJhZHNcIixoPVBhKCksaz1TYSgpLGw9XCIjMDAwMENDXCI7aWYoay5kYXRhLmhtfHxrLmRhdGEudClsPVwiIzFhMGRhYlwiO2w9ZShcImNvbG9yVGl0bGVMaW5rXCIsbCk7Zj17WDpNYSgpLlgoKSxtZTpRZShiKSxhZzpSZShiKSxZZDpiZyhlKFwiY29sb3JBZFNlcGFyYXRvclwiKSksRGc6MjAsRWU6ZShcImNvbG9yVGV4dFwiKSxGZTpsLHllOmUoXCJjb2xvckJhY2tncm91bmRcIiksemU6ZShcImNvbG9yQm9yZGVyXCIpLHhlOmUoXCJjb2xvckF0dHJpYnV0aW9uXCIpLGZvbnRGYW1pbHk6ZChcImZvbnRGYW1pbHlcIiksUmU6ZChcImZvbnRGYW1pbHlBdHRyaWJ1dGlvblwiKSxWZTpTZShiKXx8ZShcImZvbnRTaXplVGl0bGVcIiksU2U6ZShcImZvbnRTaXplQXR0cmlidXRpb25cIiksVmY6ZShcInRpdGxlQm9sZFwiKSxXZjohay5kYXRhLmhtLEpmOmUoXCJyb2xsb3ZlckxpbmtCb2xkXCIpLFxuS2Y6ZShcInJvbGxvdmVyTGlua0NvbG9yXCIpLElmOmUoXCJyb2xsb3ZlckxpbmtCYWNrZ3JvdW5kQ29sb3JcIiksTGY6ZShcInJvbGxvdmVyTGlua1VuZGVybGluZVwiKSxIZjplKFwicm9sbG92ZXJBZEJhY2tncm91bmRDb2xvclwiKSx2ZjplKFwibm9UaXRsZVVuZGVybGluZVwiKSx6ZzpmKFwiYWRCb3JkZXJTZWxlY3Rpb25zXCIsXCJsZWZ0XCIpLFFkOmYoXCJhZEJvcmRlclNlbGVjdGlvbnNcIixcInJpZ2h0XCIpLEFnOmYoXCJhZEJvcmRlclNlbGVjdGlvbnNcIixcInRvcFwiKSx5ZzpmKFwiYWRCb3JkZXJTZWxlY3Rpb25zXCIsXCJib3R0b21cIiksaGU6ZihcImJvcmRlclNlbGVjdGlvbnNcIixcImxlZnRcIiksamU6ZihcImJvcmRlclNlbGVjdGlvbnNcIixcInJpZ2h0XCIpLGtlOmYoXCJib3JkZXJTZWxlY3Rpb25zXCIsXCJ0b3BcIiksZ2U6ZihcImJvcmRlclNlbGVjdGlvbnNcIixcImJvdHRvbVwiKSx1ZjplKFwibGluZUhlaWdodFRpdGxlXCIpLGRlOmUoXCJhdHRyaWJ1dGlvblNwYWNpbmdCZWxvd1wiKSxrZjohMCxsZjohIWsuZGF0YS5obSxxZjohIWsuZGF0YS50LFxudWU6ISFoLmRhdGEuY3VjYWksdGU6ISFoLmRhdGEuY2dhYixLOncoKS5LKCl9O2UoXCJhZEljb25VcmxcIikmJiF3KCkuSygpJiYoZi5YZD1lKFwiYWRJY29uV2lkdGhcIiksZi5TZD1lKFwiYWRJY29uSGVpZ2h0XCIpLGYuVGQ9ZShcImFkSWNvblNwYWNpbmdBYm92ZVwiKSxmLlZkPWUoXCJhZEljb25TcGFjaW5nQmVmb3JlXCIpLGYuVWQ9ZShcImFkSWNvblNwYWNpbmdBZnRlclwiKSxmLldkPWUoXCJhZEljb25TcGFjaW5nQmVsb3dcIikpO1wicmVsYXRlZHNlYXJjaFwiIT09Z3x8dygpLksoKXx8KGYudHlwZT1cInJlbGF0ZWRzZWFyY2hcIixmLkdlPWUoXCJjb2x1bW5TcGFjaW5nXCIpLGYuZ2Y9ZShcImhvcml6b250YWxGbG93XCIpLGYuZWY9ZShcImhvcml6b250YWxBbGlnbm1lbnRcIikpO2YuZGc9ZShcIndlYkZvbnRGYW1pbHlcIik7Zi5lZz1lKFwid2ViRm9udEZhbWlseUF0dHJpYnV0aW9uXCIpO2Y9WmYoZik7ZGcoZixhKTtiPVRlKGIpO2c9e1g6TWEoKS5YKCksdHlwZTpnLGRmOmUoXCJoaWRlU2VhcmNoSW5wdXRCb3JkZXJcIiksXG5iZjplKFwiaGlkZVNlYXJjaEJ1dHRvbkJvcmRlclwiKSxBZTplKFwiY29sb3JTZWFyY2hCb3hcIiksQmU6ZShcImNvbG9yU2VhcmNoQnV0dG9uXCIpLERlOmUoXCJjb2xvclNlYXJjaEJ1dHRvblRleHRcIiksamc6ZShcIndpZHRoU2VhcmNoSW5wdXRcIiksZ2c6ZShcIndpZHRoU2VhcmNoQnV0dG9uXCIpLFVlOmUoXCJmb250U2l6ZVNlYXJjaElucHV0XCIpLFRlOmUoXCJmb250U2l6ZVNlYXJjaEJ1dHRvblwiKSxhZjplKFwiaGVpZ2h0U2VhcmNoSW5wdXRcIiksWmU6ZShcImhlaWdodFNlYXJjaEJ1dHRvblwiKSxDZTplKFwiY29sb3JTZWFyY2hCdXR0b25Cb3JkZXJcIiksaGc6ZShcIndpZHRoU2VhcmNoQnV0dG9uQm9yZGVyXCIpLEFmOmUoXCJyYWRpdXNTZWFyY2hJbnB1dEJvcmRlclwiKSxjZTplKFwiYXR0cmlidXRpb25Cb2xkXCIpLGVlOmUoXCJhdHRyaWJ1dGlvblVwcGVyY2FzZVwiKSxYZjplKFwidGl0bGVVcHBlcmNhc2VcIiksZmc6YixSZDplKFwiYWRCb3JkZXJXaWR0aFwiKSxLOncoKS5LKCl9O2lmKGImJi0xPT1hZyl7YWc9NTt2YXIgcD1cbmZ1bmN0aW9uKCl7MDxhZyYmKEdlKGMpLGFnLS0sc2V0VGltZW91dChwLDFFMykpfTtwKCl9Zz0kZihnKTtkZyhnLGEpfWZ1bmN0aW9uIGRnKGEsYil7Yi5hcHBlbmRDaGlsZChYZihhKSl9O3ZhciBlZz0vXigoaHR0cHM/KTopP1xcL1xcL2Fmcy5nb29nbGV1c2VyY29udGVudC5jb21cXC8vO2Z1bmN0aW9uIGZnKGEsYixjKXtpZihlZy50ZXN0KGIpKWZvcihiLnN0YXJ0c1dpdGgoXCJodHRwOlwiKSYmYz9iPVwiaHR0cHM6XCIrYi5zdWJzdHJpbmcoNSk6Yi5zdGFydHNXaXRoKFwiLy9cIikmJihiPShjP1wiaHR0cHM6XCI6XCJcIikrYiksYz0wO2M8YS5sZW5ndGg7YysrKWFbY10uYWRJY29uVXJsPWJ9dmFyIGdnPWZnPUIoZmcsXCJhaUlJRFwiKTtmdW5jdGlvbiBoZygpe307ZnVuY3Rpb24gaWcoYSxiKXthLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGZ1bmN0aW9uKGMpezIhPT1jLmJ1dHRvbiYmYihjKX0pfTtmdW5jdGlvbiBqZyhhKXt2YXIgYj1cImh0dHBzXCI9PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbDthPWEuY2xpY2t0cmFja1VybDtyZXR1cm4gUGEoKS5kYXRhLmN0JiZ5YShhKT9aYShhLGZ1bmN0aW9uKGMpe3JldHVybiEoMD09Yy5pbmRleE9mKFwiaHR0cDpcIikmJmIpfSk6W119XG5mdW5jdGlvbiBrZyhhLGIpe2E9YS5nZXRFbGVtZW50c0J5VGFnTmFtZShcImFcIik7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY107KGQuaGFzQXR0cmlidXRlP2QuaGFzQXR0cmlidXRlKFwiZGF0YS1ub3RyYWNrXCIpOmQuZ2V0QXR0cmlidXRlKFwiZGF0YS1ub3RyYWNrXCIpKXx8aWcoZCxmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSxmPW4oYiksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpZz1uZXcgcWMoZy52YWx1ZSksQShnLFwibmNcIixbTWF0aC5yb3VuZCg5RTYqTWF0aC5yYW5kb20oKSksKG5ldyBEYXRlKS5nZXRUaW1lKCldLmpvaW4oXCJcIikpLGUucHVzaChyYyhnKSk7aWYod2luZG93Lm5hdmlnYXRvci5zZW5kQmVhY29uKWZvcihlPW4oZSksZz1lLm5leHQoKTshZy5kb25lO2c9ZS5uZXh0KCkpd2luZG93Lm5hdmlnYXRvci5zZW5kQmVhY29uKGcudmFsdWUpO2Vsc2UgZm9yKGU9bihlKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSlWYihmLnZhbHVlKX0pfX1cbmZ1bmN0aW9uIGxnKGEsYixjKXtpZihQYSgpLmRhdGEuY3QmJihhPWpnKGEpLDA8YS5sZW5ndGgpKWlmKFBhKCkuZGF0YS5hbGN0KXtjPWJlKFwiYmxvY2tcIixcIlwiK2MsYSk7dmFyIGQ9Z2UoKT9cImNsaWNrdHJhY2tlZEFkX2pzXCI6XCJiX1wiO2E9JGEoRmQoXCJkaXZcIixkLGIpKTthPWEuY29uY2F0KCRhKEZkKFwidHJcIixkLGIpKSk7YT1hLmNvbmNhdCgkYShGZChcImxpXCIsZCxiKSkpO3ZhciBlO2ZvcihiPTA7ZT1hW2JdO2IrKylkPWMsZD1iZShcImFkXCIsXCJcIisoYisxKSxkKSxrZyhlLGQpfWVsc2Uga2coYixhKX07dmFyIG1nPUUoZnVuY3Rpb24oYSxiKXt2YXIgYz1hLnJlc3VsdHNQYWdlQmFzZVVybCxkPWEucmVzdWx0c1BhZ2VRdWVyeVBhcmFtLGU9YlswXSYmYlswXS5hZHR5cGU7Yj1uKGIpO2Zvcih2YXIgZj1iLm5leHQoKTshZi5kb25lO2Y9Yi5uZXh0KCkpe2Y9Zi52YWx1ZTtlJiYoZj1mW2VdKTt2YXIgZz1mLnN0LGg9Zi5hZmR0O2lmKG51bGwhPWcmJm51bGwhPWgpe2lmKCFjKXRocm93IERjKFwicmVzdWx0c1BhZ2VCYXNlVXJsIG5lZWRzIHRvIGJlIHNldC5cIik7dmFyIGs9bmV3IHFjKGMpO0EoayxkLGcpO0EoayxcImFmZFRva2VuXCIsaCk7bnVsbCE9YS5wZXJzb25hbGl6ZWRBZHMmJkEoayxcInBjc2FcIixcIlwiK2EucGVyc29uYWxpemVkQWRzKTtmLmw9cmMoayk7Zi51PXJjKGspfX19LFwiZlJTQ0xcIik7ZnVuY3Rpb24gbmcoKXt2YXIgYT17WmY6ISF3KCkuZGF0YS5lc3JzfTthPWF8fHt9O3ZhciBiPWEuWmY7cmV0dXJuIEgoXCI8c3R5bGVcIisoYS5GZz8nIGRhdGEtcGVybWFuZW50PVwidHJ1ZVwiJzpcIlwiKStcIj5ib2R5ey13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlOyBmb250LWZhbWlseTphcmlhbCxzYW5zLXNlcmlmOyBtYXJnaW46MDt9ZGl2e1wiK29nKDApK1wibWF4LXdpZHRoOjEwMCU7fXNwYW46bGFzdC1jaGlsZCwgZGl2Omxhc3QtY2hpbGR7XCIrb2coMSkrXCJ9LlwiK04oXCJ4X1wiKStcIntcIitvZygxKStcIn0uXCIrTihcImpfXCIpK1wiPnNwYW46bGFzdC1jaGlsZCwgLlwiK04oXCJqX1wiKStcIj5kaXY6bGFzdC1jaGlsZCwgLlwiK04oXCJ5X1wiKStcIiwgLlwiK04oXCJ5X1wiKStcIjpsYXN0LWNoaWxke1wiK29nKDApK1wifS5cIitOKFwibF9cIikrXCJ7LW1zLW92ZXJmbG93LXN0eWxlOm5vbmU7IHNjcm9sbGJhci13aWR0aDpub25lO30uXCIrTihcImxfXCIpK1wiOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmU7fWF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGNvbG9yOmluaGVyaXQ7IGRpc3BsYXk6aW5saW5lLWJsb2NrO31zcGFue1wiK1xub2coMCkrXCJkaXNwbGF5OmlubGluZS1ibG9jazsgb3ZlcmZsb3c6aGlkZGVuOyB0ZXh0LXRyYW5zZm9ybTpub25lO31pbWd7Ym9yZGVyOm5vbmU7IG1heC13aWR0aDoxMDAlOyBtYXgtaGVpZ2h0OjEwMCU7fS5cIitOKFwiaV9cIikrXCJ7ZGlzcGxheTotbXMtZmxleGJveDsgZGlzcGxheTotd2Via2l0LWJveDsgZGlzcGxheTotd2Via2l0LWZsZXg7IGRpc3BsYXk6ZmxleDtcIitwZyhcImZsZXgtc3RhcnRcIikrXCJib3gtc2l6aW5nOmJvcmRlci1ib3g7IG92ZXJmbG93OmhpZGRlbjt9LlwiK04oXCJ1X1wiKStcIntwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7XCIrKGI/XCJ3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTtcIjpcIlwiKStcIn0uXCIrTihcIndfXCIpK1wie3Bvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyBoZWlnaHQ6MTAwJTtcIisoYj9cImJhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O1wiOlwiYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6YXV0byAxMDAlO1wiKStcblwifS5cIitOKFwidl9cIikrXCJ7ZGlzcGxheTpibG9jaztcIisoYj9cImhlaWdodDoxMDAlOyBiYWNrZ3JvdW5kLXNpemU6MjAlIDEwMCU7IGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O1wiOlwiXCIpK1wifS5cIitOKFwidF9cIikrXCJ7XCIrcWcoKStcIn0uXCIrTihcInFfXCIpK1wie2JveC1zaXppbmc6Ym9yZGVyLWJveDsgbWF4LXdpZHRoOjEwMCU7IG1heC1oZWlnaHQ6MTAwJTsgb3ZlcmZsb3c6aGlkZGVuO1wiK3FnKCkrXCJ9LlwiK04oXCJuX1wiKStcInstbXMtZmxleC1uZWdhdGl2ZToxOyB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOyB3aGl0ZS1zcGFjZTpub3dyYXA7fS5cIitOKFwicF9cIikrXCJ7LW1zLWZsZXgtbmVnYXRpdmU6MTsgbWF4LXdpZHRoOiAxMDAlO30uXCIrTihcIm1fXCIpK1wie292ZXJmbG93OmhpZGRlbjt9LlwiK04oXCJvX1wiKStcInt3aGl0ZS1zcGFjZTpub3dyYXA7fS5cIitOKFwiel9cIikrXCJ7Y3Vyc29yOnBvaW50ZXI7fS5cIitOKFwiYWFfXCIpK1wie2Rpc3BsYXk6bm9uZTsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTt9LlwiK1xuTihcImtfXCIpK1wiPmRpdjpub3QoLlwiK04oXCJhYV9cIikrXCIpIHtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWJveDsgZGlzcGxheTotbW96LWlubGluZS1ib3g7IGRpc3BsYXk6LW1zLWlubGluZS1mbGV4Ym94OyBkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWZsZXg7IGRpc3BsYXk6aW5saW5lLWZsZXg7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTt9LlwiK04oXCJrX1wiKStcIi50b3BBbGlnbj5kaXZ7dmVydGljYWwtYWxpZ246dG9wO30uXCIrTihcImtfXCIpK1wiLmNlbnRlckFsaWduPmRpdnt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7fS5cIitOKFwia19cIikrXCIuYm90dG9tQWxpZ24+ZGl2e3ZlcnRpY2FsLWFsaWduOmJvdHRvbTt9LlwiK04oXCJrX1wiKStcIj5zcGFuLCAuXCIrTihcImtfXCIpK1wiPmEsIC5cIitOKFwia19cIikrXCI+aW1nLCAuXCIrTihcImtfXCIpK1wie2Rpc3BsYXk6aW5saW5lOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7fS5zaTEwMTpudGgtb2YtdHlwZSg1bisxKSA+IC5zaTE0MXtib3JkZXItbGVmdDogIzFmOGE3MCA3cHggc29saWQ7fS5yc3NBdHRyQ29udGFpbmVyIH4gLnNpMTAxOm50aC1vZi10eXBlKDVuKzIpID4gLnNpMTQxe2JvcmRlci1sZWZ0OiAjMWY4YTcwIDdweCBzb2xpZDt9LnNpMTAxOm50aC1vZi10eXBlKDVuKzMpID4gLnNpMTQxe2JvcmRlci1sZWZ0OiAjYmVkYjM5IDdweCBzb2xpZDt9LnJzc0F0dHJDb250YWluZXIgfiAuc2kxMDE6bnRoLW9mLXR5cGUoNW4rNCkgPiAuc2kxNDF7Ym9yZGVyLWxlZnQ6ICNiZWRiMzkgN3B4IHNvbGlkO30uc2kxMDE6bnRoLW9mLXR5cGUoNW4rNSkgPiAuc2kxNDF7Ym9yZGVyLWxlZnQ6ICNmZmUxMWEgN3B4IHNvbGlkO30ucnNzQXR0ckNvbnRhaW5lciB+IC5zaTEwMTpudGgtb2YtdHlwZSg1bis2KSA+IC5zaTE0MXtib3JkZXItbGVmdDogI2ZmZTExYSA3cHggc29saWR9LnNpMTAxOm50aC1vZi10eXBlKDVuKzIpID4gLnNpMTQxe2JvcmRlci1sZWZ0OiAjZmQ3NDAwIDdweCBzb2xpZDt9LnJzc0F0dHJDb250YWluZXIgfiAuc2kxMDE6bnRoLW9mLXR5cGUoNW4rMykgPiAuc2kxNDF7Ym9yZGVyLWxlZnQ6ICNmZDc0MDAgN3B4IHNvbGlkO30uc2kxMDE6bnRoLW9mLXR5cGUoNW4rNCkgPiAuc2kxNDF7Ym9yZGVyLWxlZnQ6ICMwMDQzNTggN3B4IHNvbGlkO30ucnNzQXR0ckNvbnRhaW5lciB+IC5zaTEwMTpudGgtb2YtdHlwZSg1bis1KSA+IC5zaTE0MXtib3JkZXItbGVmdDogIzAwNDM1OCA3cHggc29saWQ7fS5cIitcbk4oXCJiYV9cIikrXCJ7Y3Vyc29yOnBvaW50ZXI7fS5zaTEzMHtkaXNwbGF5OmlubGluZTsgdGV4dC10cmFuc2Zvcm06aW5oZXJpdDt9LlwiK04oXCJyX1wiKStcIntwb3NpdGlvbjogcmVsYXRpdmU7fTwvc3R5bGU+XCIpfWZ1bmN0aW9uIHFnKCl7cmV0dXJuIHVmKFwiZGlzcGxheTotbXMtZmxleGJveDsgZGlzcGxheTotd2Via2l0LWJveDsgZGlzcGxheTotd2Via2l0LWZsZXg7IGRpc3BsYXk6ZmxleDtcIitwZyhcImNlbnRlclwiKStyZyhcImNlbnRlclwiKSl9XG5mdW5jdGlvbiBzZyhhLGIpe3ZhciBjPVwiXCIsZD1iP1wicmlnaHRcIjpcImxlZnRcIjtiPWI/XCJsZWZ0XCI6XCJyaWdodFwiO2Zvcih2YXIgZT12ZihhKSxmPWUubGVuZ3RoLGc9MDtnPGY7ZysrKXt2YXIgaD1lW2ddO3N3aXRjaCh6YShoKT9oLnRvU3RyaW5nKCk6aCl7Y2FzZSBcImZ3XCI6Yys9XCJmb250LXdlaWdodDpcIjtoPWEuZnc7c3dpdGNoKHphKGgpP2gudG9TdHJpbmcoKTpoKXtjYXNlIDE6Yys9XCIxMDBcIjticmVhaztjYXNlIDI6Yys9XCI0MDBcIjticmVhaztjYXNlIDQ6Yys9XCI1MDBcIjticmVhaztjYXNlIDM6Yys9XCI3MDBcIjticmVhaztjYXNlIDA6Yys9XCI0MDBcIn1icmVhaztjYXNlIFwiYmFjXCI6Yys9XCJiYWNrZ3JvdW5kLWNvbG9yOlwiK04oYS5iYWMpO2JyZWFrO2Nhc2UgXCJiclwiOmMrPVwiYm9yZGVyLXJhZGl1czpcIitOKGEuYnIpK1wicHhcIjticmVhaztjYXNlIFwiYndcIjpjKz1cImJvcmRlcjpcIitOKGEuYncpK1wicHggc29saWQgXCIrTihhLmJvYyk7YnJlYWs7Y2FzZSBcImZmXCI6Yys9XCJmb250LWZhbWlseTpcIitcbk4oYS5mZikrXCIsYXJpYWwsc2Fucy1zZXJpZjtcIjticmVhaztjYXNlIFwiZnNcIjpjKz1cImZvbnQtc2l6ZTpcIitOKGEuZnMpK1wicHhcIjticmVhaztjYXNlIFwiaFwiOmMrPVwiaGVpZ2h0OlwiK04oYS5oKSsoLTEhPShcIlwiK3dmKGEuaCkpLmluZGV4T2YoXCIlXCIpP1wiXCI6XCJweFwiKTticmVhaztjYXNlIFwiaVwiOmMrPVwiZm9udC1zdHlsZTpcIitOKEkoYS5pLCEwKT9cIml0YWxpY1wiOlwibm9ybWFsXCIpO2JyZWFrO2Nhc2UgXCJsaFwiOmMrPVwibGluZS1oZWlnaHQ6XCIrTihhLmxoKStcInB4XCI7YnJlYWs7Y2FzZSBcIm1heGhcIjpjKz1cIm1heC1oZWlnaHQ6XCIrTihhLm1heGgpK1wicHhcIjticmVhaztjYXNlIFwibWF4d1wiOmMrPVwibWF4LXdpZHRoOlwiK04oYS5tYXh3KStcInB4XCI7YnJlYWs7Y2FzZSBcIm1iXCI6Yys9XCJtYXJnaW4tYm90dG9tOlwiK04oYS5tYikrXCJweFwiO2JyZWFrO2Nhc2UgXCJtaW5oXCI6Yys9XCJtaW4taGVpZ2h0OlwiK04oYS5taW5oKStcInB4XCI7YnJlYWs7Y2FzZSBcIm1pbndcIjpjKz1cIm1pbi13aWR0aDpcIitOKGEubWludykrXG5cInB4XCI7YnJlYWs7Y2FzZSBcIm1sXCI6Yys9XCJtYXJnaW4tXCIrTihkKStcIjpcIitOKGEubWwpK1wicHhcIjticmVhaztjYXNlIFwibXJcIjpjKz1cIm1hcmdpbi1cIitOKGIpK1wiOlwiK04oYS5tcikrXCJweFwiO2JyZWFrO2Nhc2UgXCJtdFwiOmMrPVwibWFyZ2luLXRvcDpcIitOKGEubXQpK1wicHhcIjticmVhaztjYXNlIFwib3BcIjpjKz1cIm9wYWNpdHk6XCIrTihhLm9wKTticmVhaztjYXNlIFwicGJcIjpjKz1cInBhZGRpbmctYm90dG9tOlwiK04oYS5wYikrXCJweFwiO2JyZWFrO2Nhc2UgXCJwbFwiOmMrPVwicGFkZGluZy1cIitOKGQpK1wiOiBcIitOKGEucGwpK1wicHhcIjticmVhaztjYXNlIFwicHJcIjpjKz1cInBhZGRpbmctXCIrTihiKStcIjogXCIrTihhLnByKStcInB4XCI7YnJlYWs7Y2FzZSBcInB0XCI6Yys9XCJwYWRkaW5nLXRvcDpcIitOKGEucHQpK1wicHhcIjticmVhaztjYXNlIFwidGNcIjpjKz1cImNvbG9yOlwiK04oYS50Yyk7YnJlYWs7Y2FzZSBcInVcIjpjKz1cInRleHQtZGVjb3JhdGlvbjpcIitOKGEudT9cInVuZGVybGluZVwiOlwibm9uZVwiKTticmVhaztjYXNlIFwic3RcIjpjKz1cblwidGV4dC1kZWNvcmF0aW9uOlwiK04oYS5zdD9cImxpbmUtdGhyb3VnaFwiOlwibm9uZVwiKTticmVhaztjYXNlIFwicG9cIjpoPWEucG87dmFyIGs9ZCxsPWI7aD11ZigoaC50P04oKStcInRvcDpcIitOKGgudCkrXCJweDtcIjpcIlwiKSsoaC5yP04oKStOKGwpK1wiOlwiK04oaC5yKStcInB4O1wiOlwiXCIpKyhoLmI/TigpK1wiYm90dG9tOlwiK04oaC5iKStcInB4O1wiOlwiXCIpKyhoLmw/TigpK04oaykrXCI6XCIrTihoLmwpK1wicHg7XCI6XCJcIikpO2MrPWgrXCJwb3NpdGlvbjphYnNvbHV0ZVwiO2JyZWFrO2Nhc2UgXCJib3NcIjpoPWEuYm9zO2s9XCJcIjtsPWg7Zm9yKHZhciBwPWwubGVuZ3RoLHI9MDtyPHA7cisrKXt2YXIgcT1sW3JdO2srPU4ocS54bykrXCJweCBcIitOKHEueW8pK1wicHggXCIrKHEuYnI/TihxLmJyKStcInB4IFwiKyhxLnNyP04ocS5zcikrXCJweCBcIjpcIlwiKTpcIlwiKStOKHEuc2MpKyhyIT1oLmxlbmd0aC0xP1wiLFwiOlwiXCIpfWg9dWYoayk7aD1DZihcIlwiK2gpO2g9dWYoXCItd2Via2l0LWJveC1zaGFkb3c6XCIrTihoKStcIjsgLW1vei1ib3gtc2hhZG93OlwiK1xuTihoKStcIjsgLW1zLWJveC1zaGFkb3c6XCIrTihoKStcIjsgYm94LXNoYWRvdzpcIitOKGgpK1wiO1wiKTtjKz1oO2JyZWFrO2Nhc2UgXCJ3XCI6Yys9XCJ3aWR0aDpcIitOKGEudykrKC0xIT0oXCJcIit3ZihcIlwiK2EudykpLmluZGV4T2YoXCIlXCIpP1wiOyAtbXMtZmxleC1uZWdhdGl2ZToxO1wiK29nKDEpOlwicHhcIik7YnJlYWs7Y2FzZSBcInR0XCI6c3dpdGNoKGMrPVwidGV4dC10cmFuc2Zvcm06XCIsaD1hLnR0LHphKGgpP2gudG9TdHJpbmcoKTpoKXtjYXNlIDE6Yys9XCJ1cHBlcmNhc2VcIjticmVhaztkZWZhdWx0OmMrPVwiaW5pdGlhbFwifX1jKz1cIjtcIn1yZXR1cm4gdWYoYyl9ZnVuY3Rpb24gb2coYSl7cmV0dXJuIHVmKFwiLXdlYmtpdC1ib3gtZmxleDpcIitOKGEpK1wiIDA7IC13ZWJraXQtZmxleC1zaHJpbms6XCIrTihhKStcIjsgZmxleC1zaHJpbms6XCIrTihhKStcIjtcIil9XG5mdW5jdGlvbiBwZyhhKXt2YXIgYj1cIi1tcy1mbGV4LWFsaWduOlwiLGM9XCJcIisoMD09KFwiXCIrd2YoYSkpLmluZGV4T2YoXCJmbGV4LVwiKT9OKChcIlwiK3dmKGEpKS5zdWJzdHJpbmcoNSkpOk4oYSkpO2M9Q2YoYyk7Yis9TihjKStcIjsgLXdlYmtpdC1ib3gtYWxpZ246XCIrTihjKStcIjsgLXdlYmtpdC1hbGlnbi1pdGVtczpcIitOKGEpK1wiOyBhbGlnbi1pdGVtczpcIitOKGEpK1wiO1wiO3JldHVybiB1ZihiKX1mdW5jdGlvbiByZyhhKXt2YXIgYj1cIi1tcy1mbGV4LXBhY2s6XCIsYz1cIlwiKygwPT0oXCJcIit3ZihhKSkuaW5kZXhPZihcImZsZXgtXCIpP04oKFwiXCIrd2YoYSkpLnN1YnN0cmluZyg1KSk6TihhKSk7Yz1DZihjKTtiKz1OKGMpK1wiOyAtd2Via2l0LWJveC1wYWNrOlwiK04oYykrXCI7IC13ZWJraXQtanVzdGlmeS1jb250ZW50OlwiK04oYSkrXCI7IGp1c3RpZnktY29udGVudDpcIitOKGEpK1wiO1wiO3JldHVybiB1ZihiKX07ZnVuY3Rpb24gdGcoYSl7dmFyIGI9W107YT1uKGEuc3x8W10pO2Zvcih2YXIgYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpe2M9Yy52YWx1ZTt2YXIgZD1jLnI7ZCYmZC5oYXNPd25Qcm9wZXJ0eShcImZmXCIpJiYoZC5mZj11ZihkLmZmKSk7KGQ9Yy5ocikmJmQuaGFzT3duUHJvcGVydHkoXCJmZlwiKSYmKGQuZmY9dWYoZC5mZikpO2IucHVzaCh7Y2xhc3NOYW1lOmMuc2sscnVsZXM6Yy5yfHx7fSxrYjpjLmhyfHx7fX0pfWE9TWEoKS5YKCk7dmFyIGU9XCI8c3R5bGU+XCI7Yz1iLmxlbmd0aDtmb3IoZD0wO2Q8YztkKyspe3ZhciBmPWJbZF07aWYoSihmLnJ1bGVzKSYmMDx2ZihmLnJ1bGVzKS5sZW5ndGgpe3ZhciBnPVwiLlwiK04oZi5jbGFzc05hbWUpK1wie1wiK3NnKGYucnVsZXMsYSkrXCJ9XCI7dmFyIGg9Zi5ydWxlcztoPXVmKEooaC5pc3MpJiZKKGguaXNzLmJjKSYmSihoLmlzcy5vKT9cIi5cIitOKGYuY2xhc3NOYW1lKStcIiA+IC5cIitOKFwic19cIikrXCJ7YmFja2dyb3VuZC1jb2xvcjpcIitOKGguaXNzLmJjKStcblwiOyBvcGFjaXR5OlwiK04oaC5pc3MubykrXCI7IGJvdHRvbTowOyB0b3A6MDsgcmlnaHQ6MDsgbGVmdDowOyBwb3NpdGlvbjphYnNvbHV0ZTt9XCI6XCJcIik7Zys9aH1lbHNlIGc9XCJcIjtlKz1nKyhKKGYua2IpJiYwPHZmKGYua2IpLmxlbmd0aD9cIi5cIitOKGYuY2xhc3NOYW1lKStcIjpob3ZlcntcIitzZyhmLmtiLGEpK1wifVwiOlwiXCIpfXJldHVybiBIKGUrXCI8L3N0eWxlPlwiKX07ZnVuY3Rpb24gdWcoYSxiKXtpZighYSlyZXR1cm4hMTtpZigzPT1hLm5vZGVUeXBlJiZhLm5vZGVWYWx1ZSYmKGImJihhLm5vZGVWYWx1ZSs9XCIgLi4uXCIpLDQ8YS5ub2RlVmFsdWUubGVuZ3RoKSl7Yj1hLm5vZGVWYWx1ZTt2YXIgYz1hLm5vZGVWYWx1ZS5sZW5ndGgtMTtiLmxlbmd0aD5jJiYoYj1iLnN1YnN0cmluZygwLGMtMykrXCIuLi5cIik7YS5ub2RlVmFsdWU9YjtyZXR1cm4hMX1jPWEudGV4dENvbnRlbnR8fGEuaW5uZXJUZXh0O2lmKCFjfHxjLmxlbmd0aDw9KGI/MDo0KSlyZXR1cm4gYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpLCEwO2ZvcihiPXVnKGEubGFzdENoaWxkLGIpO2I7KWI9dWcoYS5sYXN0Q2hpbGQsYik7cmV0dXJuITF9XG5mdW5jdGlvbiB2ZyhhLGIpe2lmKCEoMD49Yikpe2Zvcih2YXIgYz1hLmlubmVySFRNTC5sZW5ndGg7MDxjJiZhLm9mZnNldEhlaWdodD5iO2MtLSlmb3IodmFyIGQ9YSxlPXVnKGQubGFzdENoaWxkLCExKTtlOyllPXVnKGQubGFzdENoaWxkLGUpO2Eub2Zmc2V0SGVpZ2h0PmImJihhLnRleHRDb250ZW50PVwiXCIpfX07dmFyIHdnPTE7ZnVuY3Rpb24geGcoYSxiLGMpe2lmKCFjKXJldHVybiBudWxsO2lmKFwiLlwiPT1jWzBdKXJldHVybiBiW2Muc3Vic3RyaW5nKDEpXTtjPW4oYy5zcGxpdChcIi5cIikpO2ZvcihiPWMubmV4dCgpOyFiLmRvbmU7Yj1jLm5leHQoKSl7Yj1iLnZhbHVlO2lmKG51bGw9PWEpcmV0dXJuIG51bGw7aWYoQXJyYXkuaXNBcnJheShhKSl7Yj1wYXJzZUludChiLDEwKTtpZihpc05hTihiKSlyZXR1cm4gbnVsbDthPWFbYl19ZWxzZSBpZih6YShhKSYmYS5oYXNPd25Qcm9wZXJ0eShiKSlhPWFbYl07ZWxzZSByZXR1cm4gbnVsbH1yZXR1cm4gYX07dmFyIHlnPW51bGw7ZnVuY3Rpb24gemcoYSxiLGMpe3ZhciBkPVwiQVwiPT09Yy50YWdOYW1lP2M6Yy5xdWVyeVNlbGVjdG9yKFwiYVwiKTtiLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGZ1bmN0aW9uKGUpe0FnKGEsYixjKTtCZyhlKX0pO2IuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixmdW5jdGlvbihlKXtpZigzMj09ZS5rZXlDb2RlfHwxMz09ZS5rZXlDb2RlKUFnKGEsYixjKSxCZyhlKSxkJiZkLmZvY3VzKCl9KTthLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLENnKTthLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixDZyk7Yi5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsXCJidXR0b25cIik7Yi5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLDApO2QmJmIuc2V0QXR0cmlidXRlKFwiYXJpYS1sYWJlbFwiLGMudGV4dENvbnRlbnQpfWZ1bmN0aW9uIEJnKGEpe2Euc3RvcFByb3BhZ2F0aW9uP2Euc3RvcFByb3BhZ2F0aW9uKCk6KGEuY2FuY2VsQnViYmxlPSEwLGEucmV0dXJuVmFsdWU9ITEpfVxuZnVuY3Rpb24gQWcoYSxiLGMpe3lnJiZ5ZyE9YyYmKHlnLnN0eWxlLmRpc3BsYXk9XCJub25lXCIseWc9bnVsbCk7aWYoYy5zdHlsZS5kaXNwbGF5JiZcIm5vbmVcIiE9Yy5zdHlsZS5kaXNwbGF5KWMuc3R5bGUuZGlzcGxheT1cIm5vbmVcIix5Zz1udWxsO2Vsc2V7YS5hcHBlbmRDaGlsZChjKTt2YXIgZD1PZChiKSxlPVBkKGIpLGY9UGQoYyksZz1QZChhKSxoPU9kKGEpLGs9ZC54K2Euc2Nyb2xsTGVmdC1oLng7ZD1kLnkrYS5zY3JvbGxUb3AtaC55O3N3aXRjaChiLmdldEF0dHJpYnV0ZShcImRhdGEtcG9zaXRpb25cIikpe2Nhc2UgXCJvdmVyXCI6Yj1lLndpZHRoLzItZi53aWR0aC8yO2U9ZS5oZWlnaHQvMi1mLmhlaWdodC8yO2JyZWFrO2RlZmF1bHQ6Yj1lLndpZHRoLzItZi53aWR0aC8yLGU9ZS5oZWlnaHR9aD1hLnNjcm9sbFRvcDt2YXIgbD1hLnNjcm9sbFRvcCtnLmhlaWdodC1mLmhlaWdodC0xMDtjLnN0eWxlLmxlZnQ9TWF0aC5taW4oTWF0aC5tYXgoTWF0aC5yb3VuZChrK2IpLGEuc2Nyb2xsTGVmdCksXG5hLnNjcm9sbExlZnQrZy53aWR0aC1mLndpZHRoLTEwKStcInB4XCI7Yy5zdHlsZS50b3A9TWF0aC5taW4oTWF0aC5tYXgoTWF0aC5yb3VuZChkK2UpLGgpLGwpK1wicHhcIjtjLnN0eWxlLmRpc3BsYXk9XCJibG9ja1wiO3lnPWN9fWZ1bmN0aW9uIENnKCl7eWcmJih5Zy5zdHlsZS5kaXNwbGF5PVwibm9uZVwiLHlnPW51bGwpfTtmdW5jdGlvbiBEZyhhKXt2YXIgYj1hLm9yaWVudGF0aW9uLGM9YS5pZCxkPWEuUCxlPWEuWmQsZj1hLm92ZXJmbG93LGc9YS5IZSxoPWEuc2Usaz1hLnBmLGw9YS5ocmVmLHA9XCJcIixyPUkoZSwwKXx8SShlLDEpfHxJKGUsMikscT1JKGUsNil8fEkoZSw3KXx8SShlLDgpLHQ9SShlLDMpfHxJKGUsNCl8fEkoZSw1KTtjPShjPydpZD1cIicrTChjKSsnXCInOlwiXCIpKycgY2xhc3M9XCInK0woXCJpX1wiKSsoZD9cIiBcIitMKGQpOlwiXCIpKyhJKGYsMyk/XCIgXCIrTChcImpfXCIpOlwiXCIpO0koZyw0KSYmKGMrPVwiIFwiK0woXCJrX1wiKStcIiBcIixjKz1MKHI/XCJ0b3BBbGlnblwiOnE/XCJjZW50ZXJBbGlnblwiOnQ/XCJib3R0b21BbGlnblwiOlwiXCIpKTtjKz0oSShmLDQpP1wiIFwiK0woXCJqX1wiKStcIiBcIitMKFwibF9cIik6XCJcIikrJ1wiJysoaD8nIGRhdGEtZHJvcD1cInRydWVcIic6XCJcIik7Zz1cIi1tcy1mbGV4LWRpcmVjdGlvbjpcIjtoPVwiXCIrTigwPT1iP1wicm93XCI6XCJjb2x1bW5cIik7aD1DZihoKTtnKz1OKGgpK1wiOyAtd2Via2l0LWJveC1vcmllbnQ6XCIrXG5OKDA9PWI/XCJob3Jpem9udGFsXCI6XCJ2ZXJ0aWNhbFwiKStcIjsgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpcIitOKGgpK1wiOyBmbGV4LWRpcmVjdGlvbjpcIitOKGgpK1wiO1wiO2c9Q2YoZyk7aD1udWxsIT1lP3JnKEkoZSwwKXx8SShlLDMpfHxJKGUsOSl8fEkoZSw2KT9cImZsZXgtc3RhcnRcIjpJKGUsMSl8fEkoZSw0KXx8SShlLDEwKXx8SShlLDcpP1wiY2VudGVyXCI6SShlLDIpfHxJKGUsNSl8fEkoZSwxMSl8fEkoZSw4KT9cImZsZXgtZW5kXCI6XCJcIik6XCJcIjtoPUNmKFwiXCIraCk7ZT1udWxsIT1lP3BnKHI/XCJmbGV4LXN0YXJ0XCI6dD9cImZsZXgtZW5kXCI6cT9cImNlbnRlclwiOkkoZSw5KXx8SShlLDEwKXx8SShlLDExKT9cInN0cmV0Y2hcIjpcIlwiKTpcIlwiO2U9Q2YoXCJcIitlKTtyPVwiXCI7c3dpdGNoKGYpe2Nhc2UgMjpyKz1cIi1tcy1mbGV4LXdyYXA6d3JhcDsgLXdlYmtpdC1mbGV4LXdyYXA6d3JhcDsgZmxleC13cmFwOndyYXA7XCI7YnJlYWs7Y2FzZSAzOmNhc2UgNDpyKz1cIm92ZXJmbG93LVwiK04oMD09Yj9cInhcIjpcInlcIikrXG5cIjphdXRvOyAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1wifWI9Q2Yocik7Yys9JyBzdHlsZT1cIicrTChOKGcpKStMKE4oaCkpK0woTihlKSkrTChOKGIpKSsoaz9cInBvc2l0aW9uOnJlbGF0aXZlO1wiOlwiXCIpKydcIic7az1CZihjKTtwKz1sP1wiPGFcIitKZihFZyhhKSkrSmYoSGYoaykpK1wiPjwvYT5cIjpcIjxkaXZcIitKZihIZihrKSkrXCI+PC9kaXY+XCI7cmV0dXJuIEgocCl9XG5mdW5jdGlvbiBGZyhhKXthPWF8fHt9O3ZhciBiPWEuaWQsYz1hLnRleHQsZD1hLlAsZT1hLnhmLGY9YS5ZZixnPWEuaHJlZixoPWEuQ2Qsaz1cIlwiLGw9bnVsbCE9ZT8nZGF0YS1saW5lcz1cIicrTChlKSsnXCInKyhudWxsIT1mPycgZGF0YS10cnVuY2F0ZT1cIicrTChmKSsnXCInOicgZGF0YS10cnVuY2F0ZT1cIjBcIicpOlwiXCI7bD1CZihsKTtmPUkoZSwxKT9cIm1fIFwiKyhJKGYsMCk/XCJuX1wiOlwib19cIik6XCJwX1wiO2M9KEooZSkmJjE8ZT9cIjxzcGFuXCIrSmYoSGYobCkpKycgc3R5bGU9XCJkaXNwbGF5OiAtd2Via2l0LWJveDsgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsgb3ZlcmZsb3c6IGhpZGRlbjsgLXdlYmtpdC1saW5lLWNsYW1wOiAnK0woTihlKSkrJzsgXCI+JzpcIlwiKStwZihudWxsIT1jP2M6XCJcIikrKEooZSkmJjE8ZT9cIjwvc3Bhbj5cIjpcIlwiKTtjPXlmKGMpO2srPWc/XCI8YVwiKyhiPycgaWQ9XCInK0woYikrJ1wiJzpcIlwiKSsnIGNsYXNzPVwiJytMKGYpK1wiIFwiK0wobnVsbCE9ZD9kOlwiXCIpKydcIicrXG4oSihlKSYmMTxlP1wiXCI6SmYoSGYobCkpKSsoaD8nIGRhdGEtcGluZ2JhY2stdHlwZT1cIicrTChoKSsnXCInOlwiXCIpK0pmKEVnKGEpKStcIj5cIitjK1wiPC9hPlwiOlwiPHNwYW5cIisoYj8nIGlkPVwiJytMKGIpKydcIic6XCJcIikrKEooZSkmJjE8ZT9cIlwiOkpmKEhmKGwpKSkrKGg/JyBkYXRhLXBpbmdiYWNrLXR5cGU9XCInK0woaCkrJ1wiJzpcIlwiKSsnIGNsYXNzPVwiJytMKGYpK1wiIFwiK0wobnVsbCE9ZD9kOlwiXCIpKydcIj4nK2MrXCI8L3NwYW4+XCI7cmV0dXJuIEgoayl9XG5mdW5jdGlvbiBHZyhhKXt2YXIgYj1hLnNyYyxjPWEuaWQsZD1hLmpmLGU9YS5hcmlhSGlkZGVuLGY9YS5QLGc9YS5ocmVmLGg9YS5DZCxrPWEuTmUsbD1cIlwiO2M9KGM/J2lkPVwiJytMKGMpKydcIic6XCJcIikrKGU/JyBhcmlhLWhpZGRlbj1cInRydWVcIiB0YWJpbmRleD1cIi0xXCInOlwiXCIpKycgY2xhc3M9XCInK0woXCJxX1wiKSsoZj9cIiBcIitMKGYpOlwiXCIpKyhrP1wiIFwiK0woXCJyX1wiKTpcIlwiKSsnXCInO2M9QmYoYyk7Yj0nPGltZyBzcmM9XCInK0woUGYoYikpKydcIicrKGg/JyBkYXRhLXBpbmdiYWNrLXR5cGU9XCInK0woaCkrJ1wiJzpcIlwiKSsoZD8nIGFyaWEtbGFiZWw9XCInK0woZCkrJ1wiJzpcIlwiKStcIj5cIjtiPXlmKGIpO2Q9JzxkaXYgY2xhc3M9XCInK0woXCJzX1wiKSsnXCI+PC9kaXY+JztkPXlmKGQpO2wrPWc/XCI8YVwiK0pmKEVnKGEpKStKZihIZihjKSkrXCI+XCIrKGs/ZDpcIlwiKStiK1wiPC9hPlwiOlwiPGRpdlwiK0pmKEhmKGMpKStcIj5cIisoaz9kOlwiXCIpK2IrXCI8L2Rpdj5cIjtyZXR1cm4gSChsKX1cbmZ1bmN0aW9uIEhnKGEpe3ZhciBiPWEuQmYsYz1hLkNmLGQ9YS5pZCxlPWEuUWYsZj1hLlJmLGc9YS5HZyxoPWEuSGcsaz1hLklnLGw9YS5QLHA9YS5ocmVmLHI9YS5nYSxxPWEuU2MsdD1hLmVjLHg9YS53aWR0aCx1PWEuaGVpZ2h0LEQ9bnVsbCE9az9rOlwiXCI7az1NYXRoLm1heChNYXRoLm1pbihiLDUpLDApO2E9SihhLk9lKSYmIWUmJiFmO2Q9XCI8ZGl2XCIrKGQ/JyBpZD1cIicrTChkKSsnXCInOlwiXCIpKycgY2xhc3M9XCInK0woXCJ0X1wiKSsobD9cIiBcIitMKGwpOlwiXCIpKydcIicrKGE/JyBzdHlsZT1cIndpZHRoOicrTChOKG51bGwhPXg/eDpcIlwiKSkrXCI7aGVpZ2h0OlwiK0woTihudWxsIT11P3U6XCJcIikpKyc7XCInOlwiXCIpKyc+PGRpdiBjbGFzcz1cIicrTChcInVfXCIpKydcIj4nO2U9XCJcIitLZigoZz9cIlwiOkQpKyhudWxsIT1lP2U6XCIvaW1hZ2VzL2Fmcy9zci1zdGFyLW9mZi5wbmdcIikpO2U9QWYoZSk7Zz16ZihcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDIxIDE5Jz48cG9seWdvbiBmaWxsPSclMjNkYWRjZTAnIHBvaW50cz0nMTAsMTUuMjcgMTYuMTgsMTkgMTQuNTQsMTEuOTcgMjAsNy4yNCAxMi44MSw2LjYzIDEwLDAgNy4xOSw2LjYzIDAsNy4yNCA1LjQ2LDExLjk3IDMuODIsMTknLz48L3N2Zz5cIik7XG5kKz1hPyc8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZC1pbWFnZTogdXJsKCcrTChQZihnKSkrJylcIiBjbGFzcz1cIicrTChcInZfXCIpKydcIiByb2xlPVwibm9uZVwiPjwvZGl2Pic6JzxpbWcgc3JjPVwiJytMKFBmKGUpKSsnXCIgY2xhc3M9XCInK0woXCJ2X1wiKSsnXCIgcm9sZT1cIm5vbmVcIi8+JztmPVwiXCIrS2YoKGg/XCJcIjpEKSsobnVsbCE9Zj9mOlwiL2ltYWdlcy9hZnMvc3Itc3Rhci1vbi5wbmdcIikpO2Y9QWYoZik7aD16ZihcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDIxIDE5Jz48cG9seWdvbiBmaWxsPSclMjNmYmJjMDQnIHBvaW50cz0nMTAsMTUuMjcgMTYuMTgsMTkgMTQuNTQsMTEuOTcgMjAsNy4yNCAxMi44MSw2LjYzIDEwLDAgNy4xOSw2LjYzIDAsNy4yNCA1LjQ2LDExLjk3IDMuODIsMTknLz48L3N2Zz5cIik7ZCs9JzxkaXYgY2xhc3M9XCInK0woXCJ3X1wiKSsnXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJytcbkwoUGYoYT9oOmYpKStcIik7XCI7YT8oYj0yMC8xMDUqayoxMDArMS8xMDUqTWF0aC5tYXgoTWF0aC5mbG9vcihrKSwwKSoxMDAsZD1kK1wiYmFja2dyb3VuZC1zaXplOiBcIisoTChOKDJFMy9iKSkrXCIlIDEwMCU7IHdpZHRoOiBcIitMKE4oYikpK1wiJVwiKSk6ZCs9XCJ3aWR0aDogXCIrTChOKDIwKk1hdGgubWF4KE1hdGgubWluKGIsNSksMCkpKStcIiVcIjtkKz0nXCIgcm9sZT1cImltZ1wiJysoYz8nIGFyaWEtbGFiZWw9XCInK0woYykrJ1wiJzonIGFyaWEtaGlkZGVuPVwidHJ1ZVwiJykrXCI+PC9kaXY+PC9kaXY+PC9kaXY+XCI7Yz1jPXtocmVmOnAsZ2E6cixTYzpxLGVjOnQsSWU6eWYoZCl9O3A9Yy5JZTtjPUgoYy5ocmVmP1wiPGFcIitKZihFZyhjKSkrXCI+XCIrcGYocCkrXCI8L2E+XCI6cGYocCkpO3JldHVybiBIKFwiXCIrYyl9XG5mdW5jdGlvbiBFZyhhKXthPWF8fHt9O3ZhciBiPWEuZ2EsYz1hLlNjLGQ9YS5lYyxlPWEuSmU7YT0naHJlZj1cIicrTChLZihhLmhyZWYpKSsnXCInKyhkPycgZGF0YS1ub3RyYWNrPVwidHJ1ZVwiJzpcIlwiKSsobnVsbCE9Yz8nIGRhdGEtbmI9XCInK0woYykrJ1wiJzpcIlwiKSsoYj8nIHRhcmdldD1cIicrTChiKSsnXCInOlwiXCIpO251bGwhPWU/KGU9dGYoSShudWxsPT1lP251bGw6ZS5hcyxcInRydWVcIik/J2F0dHJpYnV0aW9uc3JjPVwiXCInOidhdHRyaWJ1dGlvbnNyYz1cIicrTChudWxsPT1lP251bGw6ZS5hcykrJ1wiJyksZT1KZihlKSk6ZT1cIlwiO3JldHVybiB0ZihhK2UpfTtmdW5jdGlvbiBJZygpe3RoaXMuS2U9Q2QoKTt0aGlzLkhiPW51bGx9SWcucHJvdG90eXBlLk1jPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5IYj90aGlzLkhiLmdldERhdGEoKTp7fSxkPXRoaXMuS2U7cmV0dXJuIFhmKGEoYnx8WWYsYyksZCl9O0lnLnByb3RvdHlwZS5FZD1mdW5jdGlvbihhKXthPWEoe30sdGhpcy5IYj90aGlzLkhiLmdldERhdGEoKTp7fSk7cmV0dXJuIFN0cmluZyhhKX07ZnVuY3Rpb24gSmcoYSl7aWYoIWEpcmV0dXJue307dmFyIGI9e307YT1uKGEpO2Zvcih2YXIgYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpYz1jLnZhbHVlLGJbYy5za109e3J1bGVzOmMucixrYjpjLmhyfTtyZXR1cm4gYn12YXIgS2c9bmV3IElnLExnPXt9LE1nPShMZ1syXT1cInhfXCIsTGdbM109XCJ5X1wiLExnKTtcbmZ1bmN0aW9uIE5nKGEsYixjLGQsZSxmKXtmdW5jdGlvbiBnKHgsdSxEKXt2YXIgSz1cImFkQmxvY2tcIj09eC5kYmssTz1kP1wiX2JsYW5rXCI6XCJfdG9wXCI7dT17aWQ6Sz9cImFkQmxvY2tcIjp1LFA6KHguc2t8fFwiXCIpK1wiIFwiKyh2b2lkIDA9PT1EP1wiXCI6RCksZ2E6T307eC5wYiYmKHUuQ2Q9eC5wYi5wYnQpO0Q9XCJjdGNcIj09PXguZGJrO3ZhciBWPVwiY3RjLmJ0XCI9PT14LmRiaztpZihwfHxEfHxWKVwiXCI9PT0odygpLmRhdGEuY3RjbHR8fFwiXCIpPyh1LmdhPVwiX3NlbGZcIiwhL2koUGhvbmV8UGFkKTsvaS50ZXN0KGVjKXx8bGMoKSYmOTg8Z2MoamMpfHwodS5nYT1PKSk6dS5nYT13KCkuZGF0YS5jdGNsdHx8XCJcIjtyJiYodS5nYT1cIl90b3BcIik7RD14LmRiaz94ZyhjLGIseC5kYmspOnZvaWQgMDtWPXguYWNjJiZ4LmFjYy5hbHQ/eGcoYyxiLHguYWNjLmFsdCk6dm9pZCAwO3ZhciB1YT14LmFjYyYmeC5hY2MuYWgsQWE9eGcoYyxiLFwiYmNhbGFcIik7aWYoeC5kYmsmJiFEJiYhS3x8eC5obmsmJm51bGwhPVxueGcoYyxiLHguaG5rKSlyZXR1cm4gbnVsbDtPPW51bGw7dmFyIFRhPTA7aWYoeC5hYyl7dmFyIGFhPXguYWNbMF0sYmE9YWEuYWN0LFdjPWFhLmRiaz94ZyhjLGIsYWEuZGJrKTp2b2lkIDAsYmM9YWEuZW4sY2M9dm9pZCAwLFhjPXZvaWQgMDtzd2l0Y2goYmEpe2Nhc2UgMDp1LmhyZWY9V2M7dS5lYz0hIWFhLm5tO3UuU2M9YWEubmI7dS5KZT1BYTticmVhaztjYXNlIDM6dS5QKz1cIiB6X1wiO1hjPVwiYWFfXCI7Y2M9XCJlXCIrd2crKzt1LmlkfHwodS5pZD1cImVcIit3ZysrKTtsLnB1c2goe2hmOnUuaWQsbmU6Y2N9KTticmVhaztjYXNlIDU6aWYoVGE9cGFyc2VJbnQoV2MsMTApKXUuUCs9XCIgYmFfXCJ9YmMmJihPPWcoYmMsY2MsWGMpKX1iYT1udWxsO0FhPXgubnQ7YWE9eC5scnx8e307YmE9KGhbeC5za118fHt9KS5ydWxlc3x8e307c3dpdGNoKEFhKXtjYXNlIDA6RD1hYS5vO251bGw9PUQmJihEPTApO3Uub3JpZW50YXRpb249RDt1LlpkPWFhLmE7dS5zZT0xPT1hYS50O3Uub3ZlcmZsb3c9YWEub3Y7XG51LkhlPWFhLmNmO3UucGY9YWEuYXAmJiFiYS5wbztiYT1EZzticmVhaztjYXNlIDE6dS50ZXh0PUgoRCk7dS54Zj1hYS5ubDt1LllmPWFhLnQ7YmE9Rmc7YnJlYWs7Y2FzZSAyOnUuc3JjPWJhLnNmYyYmXCJzdmdcIj09RC5zdWJzdHIoLTMpP0QrXCI/Yz1cIitlbmNvZGVVUklDb21wb25lbnQoYmEuc2ZjKTpEO3UuTmU9XCJpc3NcImluIGJhJiZcImJjXCJpbiBiYS5pc3MmJlwib1wiaW4gYmEuaXNzO3UuamY9Vjt1LmFyaWFIaWRkZW49dWE7YmE9R2c7YnJlYWs7Y2FzZSA0Olwic3RyaW5nXCI9PXR5cGVvZiBEJiYoRD1wYXJzZUZsb2F0KEQpKTtpZihcIm51bWJlclwiIT10eXBlb2YgRHx8aXNOYU4oRCkpcmV0dXJuIG51bGw7dS5RZj1iYS5idTt1LlJmPWJhLmZ1O3UuQmY9RDt1LkNmPVY7dS5PZT0hIXcoKS5kYXRhLmVzcnM7TWEoKS5kYXRhLmluc3ImJjI9PWs/KHUud2lkdGg9XCIxNzdweFwiLHUuaGVpZ2h0PVwiMzJweFwiKToodS53aWR0aD1cIjYxcHhcIix1LmhlaWdodD1cIjExcHhcIik7YmE9SGc7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gbnVsbH1pZihEPVxuTWdbYWEuc2JdKXUuUCs9XCIgXCIrRDt2YXIgTT1LZy5NYyhiYSx1KTt4Lmhhc093blByb3BlcnR5KFwiaG5lXCIpJiZ0W3guaG5lXS5wdXNoKE0pO2lmKEspe3ZhciB4Yj1FKGZ1bmN0aW9uKCl7Zm9yKHZhciBXPW4odFsxXSksWD1XLm5leHQoKTshWC5kb25lO1g9Vy5uZXh0KCkpe1g9WC52YWx1ZTt2YXIgbGE9ITE7XCJhdXRvXCI9PT1NLnN0eWxlLm92ZXJmbG93WD9sYT0wIT09TS5zY3JvbGxMZWZ0OlwiYXV0b1wiPT09TS5zdHlsZS5vdmVyZmxvd1kmJihsYT0wIT09TS5zY3JvbGxUb3ApO1guc3R5bGUudmlzaWJpbGl0eT1sYT9cInZpc2libGVcIjpcImhpZGRlblwifVc9bih0WzJdKTtmb3IoWD1XLm5leHQoKTshWC5kb25lO1g9Vy5uZXh0KCkpWD1YLnZhbHVlLGxhPSEwLFwiYXV0b1wiPT09TS5zdHlsZS5vdmVyZmxvd1g/bGE9TWF0aC5hYnMoTS5zY3JvbGxMZWZ0KSE9PU0uc2Nyb2xsV2lkdGgtTS5jbGllbnRXaWR0aDpcImF1dG9cIj09PU0uc3R5bGUub3ZlcmZsb3dZJiYobGE9TS5zY3JvbGxUb3AhPT1cbk0uc2Nyb2xsSGVpZ2h0LU0uY2xpZW50SGVpZ2h0KSxYLnN0eWxlLnZpc2liaWxpdHk9bGE/XCJ2aXNpYmxlXCI6XCJoaWRkZW5cIn0sXCJobmVTY1wiKTtFKGZ1bmN0aW9uKCl7ZSYmKE0uYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHhiKSxlLmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix4YikpfSxcImhuZUFzY1wiKSgpfVRhJiZNLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGZ1bmN0aW9uKCl7dmFyIFc9TS5vd25lckRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYWRCbG9ja1wiKTtcImF1dG9cIj09PVcuc3R5bGUub3ZlcmZsb3dYP1cuc2Nyb2xsTGVmdCs9VGE6XCJhdXRvXCI9PT1XLnN0eWxlLm92ZXJmbG93WSYmKFcuc2Nyb2xsVG9wKz1UYSk7Vz0wPlRhP1wiY2JsY1wiOlwiY2JyY1wiO3ZhciBYPXZjKCk7aWYoc2Mpe3ZhciBsYT13YyhYKTtBKGxhLFwicGJ0XCIsXCJ1aVwiKTtBKGxhLFwiZW1zZ1wiLFcpO1guaGEocmMobGEpKX19KTt4PXguY2g7aWYoMD09QWEmJngmJjA8eC5sZW5ndGgpe0s9ITE7Zm9yKHU9MDt1PFxueC5sZW5ndGg7dSsrKUQ9Zyh4W3VdKSxudWxsIT1EJiYoSz0hMCxNLmFwcGVuZENoaWxkKEQpKTtpZighSylyZXR1cm4gbnVsbH1yZXR1cm4gTz8oeD1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkseC5hcHBlbmRDaGlsZChNKSx4LmFwcGVuZENoaWxkKE8pLHgpOk19ZD12b2lkIDA9PT1kPyExOmQ7ZT12b2lkIDA9PT1lP251bGw6ZTtmPXZvaWQgMD09PWY/W106Zjt2YXIgaD1KZyhhLnMpLGs9YS5hdCxsPVtdLHA9ISF4ZyhjLGIsXCJjdGMuY290dFwiKSxyPSEheGcoYyxiLFwiY3RkXCIpLHE9e30sdD0ocVsxXT1bXSxxWzJdPVtdLHEpO3E9XCJlXCIrd2crKzthPWcoYS5sfHx7fSxxLGYuam9pbihcIiBcIikpO2F8fChhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpLGEuaWQ9cSk7cmV0dXJue3Jvb3RFbGVtZW50OmEsT2Q6bCxNZjpxfX1cbmZ1bmN0aW9uIE9nKGEsYil7ZnVuY3Rpb24gYyhyKXt2YXIgcT1yLnN0eWxlLndvcmRXcmFwLHQ9ci5zdHlsZS53aGl0ZVNwYWNlO3Iuc3R5bGUud2hpdGVTcGFjZT1cIm5vd3JhcFwiO3Iuc3R5bGUud29yZFdyYXA9XCJub3JtYWxcIjt2YXIgeD1yLm9mZnNldEhlaWdodDtyLnN0eWxlLndoaXRlU3BhY2U9dDtyLnN0eWxlLndvcmRXcmFwPXE7cmV0dXJuIHh9ZnVuY3Rpb24gZChyLHEpe3ZhciB0PTA9PXIuY2hpbGRFbGVtZW50Q291bnQ7cT1xJiZcInRydWVcIj09ci5nZXRBdHRyaWJ1dGUoXCJkYXRhLWRyb3BcIik7aWYodHx8cSl0PXIucGFyZW50Tm9kZSx0LnJlbW92ZUNoaWxkKHIpLHIuaWQhPWImJmQodCxxKX1hPWEucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLWxpbmVzXVwiKTtmb3IodmFyIGU9YS5sZW5ndGgtMTswPD1lO2UtLSl7dmFyIGY9YVtlXSxnPWYucGFyZW50Tm9kZSxoPXBhcnNlSW50KGYuZ2V0QXR0cmlidXRlKFwiZGF0YS1saW5lc1wiKSwxMCksaz1wYXJzZUludChmLmdldEF0dHJpYnV0ZShcImRhdGEtdHJ1bmNhdGVcIiksXG4xMCk7aWYoMSE9aHx8MCE9ayl7dmFyIGw9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxwPWcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bD1wLmxlZnQ+bC5sZWZ0fHxwLnJpZ2h0PGwucmlnaHQ7MCE9PWt8fGZjKCk/MT09PWsmJihrPTE8aD9jKGYpOnZvaWQgMCwoMT09aD9mLm9mZnNldFdpZHRoPGYuc2Nyb2xsV2lkdGg6MTxoJiZmLm9mZnNldEhlaWdodC9rPmgpfHxsKSYmKGcucmVtb3ZlQ2hpbGQoZiksZChnLCEwKSk6KGc9YyhmKSwoMTxoJiZmLm9mZnNldEhlaWdodC9nPmh8fGwpJiZ2ZyhmLChnKzEpKmgpKX19fWZ1bmN0aW9uIFBnKGEsYil7Yj1uKGIpO2Zvcih2YXIgYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWU7Yz1hLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGQubmUpO2Q9YS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChkLmhmKTtjJiZkJiZ6ZyhhLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYWRCbG9ja1wiKSxkLGMpfX07ZnVuY3Rpb24gUWcoYSl7YT1hfHx7fTtyZXR1cm4gSChSZyhhLk5hLFwiZ29vZ05vQWRzXCIpKX1mdW5jdGlvbiBSZyhhLGIpe3JldHVybiBIKCc8ZGl2IHN0eWxlPVwiZGlzcGxheTpub25lO1wiJysoYj8nIGlkPVwiXycrTChiKStcIl9cIitMKG51bGwhPWE/YTpcInVua25vd25fcHViSWRcIikrJ1wiJzpcIlwiKStcIj48L2Rpdj5cIil9O2Z1bmN0aW9uIFNnKGEpe3ZhciBiPWEudXJsO2E9YS5XYzt0aGlzLkliPWI7dGhpcy5TYT1hO2E9L1s/Jl1kc2g9MSgmfCQpLy50ZXN0KGIpO3RoaXMucmI9IWEmJi9bPyZdYWU9MSgmfCQpLy50ZXN0KGIpO3RoaXMud2Q9IWEmJi9bPyZdYWU9MigmfCQpLy50ZXN0KGIpO2lmKCh0aGlzLmxhPS9bPyZdYWR1cmw9KFteJl0qKS8uZXhlYyhiKSkmJnRoaXMubGFbMV0pe3RyeXt2YXIgYz1kZWNvZGVVUklDb21wb25lbnQodGhpcy5sYVsxXSl9Y2F0Y2goZCl7Yz1udWxsfXRoaXMuTWI9Y319ZnVuY3Rpb24gVmcoYSxiKXtyZXR1cm4gYS5yYiYmYS5NYnx8YS53ZD8xPT1iP2EucmI/YS5NYjpXZyhhLFwiJmRjdD0xXCIpOjI9PWI/V2coYSxcIiZyaT0yXCIpOldnKGEsXCImcmk9MTZcIik6YS5JYn1mdW5jdGlvbiBXZyhhLGIpe3JldHVybiBhLmxhP2EuSWIuc2xpY2UoMCxhLmxhLmluZGV4KStiK2EuSWIuc2xpY2UoYS5sYS5pbmRleCk6YS5JYitifVxuZnVuY3Rpb24gWGcoYSl7YT1hLlNhO3ZhciBiPWVuY29kZVVSSUNvbXBvbmVudCxjPVwiXCI7YS5wbGF0Zm9ybSYmKGMrPVwiJnVhcD1cIitiKGEucGxhdGZvcm0pKTthLnBsYXRmb3JtVmVyc2lvbiYmKGMrPVwiJnVhcHY9XCIrYihhLnBsYXRmb3JtVmVyc2lvbikpO2EudWFGdWxsVmVyc2lvbiYmKGMrPVwiJnVhZnY9XCIrYihhLnVhRnVsbFZlcnNpb24pKTthLmFyY2hpdGVjdHVyZSYmKGMrPVwiJnVhYT1cIitiKGEuYXJjaGl0ZWN0dXJlKSk7YS5tb2RlbCYmKGMrPVwiJnVhbT1cIitiKGEubW9kZWwpKTthLmJpdG5lc3MmJihjKz1cIiZ1YWI9XCIrYihhLmJpdG5lc3MpKTthLmZ1bGxWZXJzaW9uTGlzdCYmKGMrPVwiJnVhZnZsPVwiK2IoYS5mdWxsVmVyc2lvbkxpc3QubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBiKGQuYnJhbmQpK1wiO1wiK2IoZC52ZXJzaW9uKX0pLmpvaW4oXCJ8XCIpKSk7XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBhLndvdzY0JiYoYys9XCImdWF3PVwiK051bWJlcihhLndvdzY0KSk7cmV0dXJuIGN9O3ZhciBZZz0vXigobWFya2V0fGl0bXN8aW50ZW50fGl0bXMtYXBwc3MpOlxcL1xcLykvaTt2YXIgWmc9XCJhbHRlcm5hdGUgYXV0aG9yIGJvb2ttYXJrIGNhbm9uaWNhbCBjaXRlIGhlbHAgaWNvbiBsaWNlbnNlIG5leHQgcHJlZmV0Y2ggZG5zLXByZWZldGNoIHByZXJlbmRlciBwcmVjb25uZWN0IHByZWxvYWQgcHJldiBzZWFyY2ggc3VicmVzb3VyY2VcIi5zcGxpdChcIiBcIik7ZnVuY3Rpb24gJGcoYSxiKXthLnNyYz1oYihiKTt2YXIgYyxkOyhjPShiPW51bGw9PShkPShjPShhLm93bmVyRG9jdW1lbnQmJmEub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5kb2N1bWVudCkucXVlcnlTZWxlY3Rvcik/dm9pZCAwOmQuY2FsbChjLFwic2NyaXB0W25vbmNlXVwiKSk/Yi5ub25jZXx8Yi5nZXRBdHRyaWJ1dGUoXCJub25jZVwiKXx8XCJcIjpcIlwiKSYmYS5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLGMpfTtmdW5jdGlvbiBhaChhKXt2YXIgYj1RYihcIjwhZG9jdHlwZSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT48L2JvZHk+PC9odG1sPlwiKTthLndyaXRlKE9iKGIpKX07ZnVuY3Rpb24gYmgoKXt2YXIgYT10aGlzLGI9e30uRWc7dGhpcy5TYT1udWxsO2ImJm5hdmlnYXRvci51c2VyQWdlbnREYXRhJiZuYXZpZ2F0b3IudXNlckFnZW50RGF0YS5nZXRIaWdoRW50cm9weVZhbHVlcyYmKGI9bmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuZ2V0SGlnaEVudHJvcHlWYWx1ZXMoXCJwbGF0Zm9ybSBwbGF0Zm9ybVZlcnNpb24gdWFGdWxsVmVyc2lvbiBhcmNoaXRlY3R1cmUgbW9kZWwgYml0bmVzcyBmdWxsVmVyc2lvbkxpc3Qgd293NjRcIi5zcGxpdChcIiBcIikpKSYmYi50aGVuKGZ1bmN0aW9uKGMpe2EuU2E9Y30pfVxuYmgucHJvdG90eXBlLmhhbmRsZT1mdW5jdGlvbihhKXtpZihhLmhhc0F0dHJpYnV0ZShcImRhdGEtb2hyZWZcIikpdmFyIGI9YS5nZXRBdHRyaWJ1dGUoXCJkYXRhLW9ocmVmXCIpO2Vsc2UgYj1hLmhyZWYsYS5zZXRBdHRyaWJ1dGUoXCJkYXRhLW9ocmVmXCIsYik7dmFyIGM9Yjt2YXIgZD17V2M6dGhpcy5TYX07ZD1uZXcgU2coe3VybDpjLFdjOih2b2lkIDA9PT1kP3t9OmQpLldjfSk7aWYoZC5yYiYmZC5NYnx8ZC53ZClpZihuYXZpZ2F0b3Iuc2VuZEJlYWNvbil7Yz1uYXZpZ2F0b3I7dmFyIGU9Yy5zZW5kQmVhY29uLGY9XCImYWN0PTEmcmk9MVwiO2QucmImJmQuU2EmJihmKz1YZyhkKSk7ZD1lLmNhbGwoYyxXZyhkLGYpLFwiXCIpP1ZnKGQsMSk6VmcoZCwyKX1lbHNlIGQ9VmcoZCwwKTtlbHNlIGQ9YztkPWQgaW5zdGFuY2VvZiB0Ynx8IVlnLnRlc3QoZCk/ZDpuZXcgdGIoZCx2Yik7YiE9ZCYmKGI9S2UoZCksdm9pZCAwIT09YiYmKGEuaHJlZj1iKSl9O3ZhciBjaD1FKGZ1bmN0aW9uKGEpeyhuZXcgYmgpLmhhbmRsZShhKX0sXCJtRFNcIik7dmFyIGRoPS8oWz98Jl17MX1ubT0pKFtcXGRdezEsfSkvLGVoPS8oXFw/fCYpY2xrdD0tP1tcXGRdKi9nLGZoPS8oXFw/fCYpYmc9W14mXSovZyxnaD0vKFxcP3wmKW54PS0/W1xcZF0rL2csaGg9LyhcXD98JilueT0tP1tcXGRdKy9nO2Z1bmN0aW9uIGloKGEpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKXt2YXIgYz1hW2JdO2lmKGMuemEpe3ZhciBkPWMuZWxlbWVudC5ocmVmLGU9ZC5tYXRjaChkaCk7ZT8zPT1lLmxlbmd0aCYmKGQ9ZC5yZXBsYWNlKGRoLGVbMV0rKHBhcnNlSW50KGVbMl0sMTApKzEpKSk6ZCs9KC0xPT1kLmluZGV4T2YoXCI/XCIpP1wiP1wiOlwiJlwiKStcIm5tPTFcIjtqaChjLGQpfX19fWZ1bmN0aW9uIGtoKGEpe3JldHVybiBmdW5jdGlvbigpe2lmKGEud2Mpe3ZhciBiPVwiJmNsa3Q9XCIrKChuZXcgRGF0ZSkuZ2V0VGltZSgpLWEud2MpLGM9YS5lbGVtZW50LmhyZWY7Yz1jLnJlcGxhY2UoZWgsXCJcIik7amgoYSxjK2IpfX19XG5mdW5jdGlvbiBsaChhKXtyZXR1cm4gZnVuY3Rpb24oYil7YS53Yz0obmV3IERhdGUpLmdldFRpbWUoKTt2YXIgYz1OZChhLmVsZW1lbnQpLGQ9TWF0aC5yb3VuZChiLmNsaWVudFgtYy54KTtiPU1hdGgucm91bmQoYi5jbGllbnRZLWMueSk7Yz1hLmVsZW1lbnQuaHJlZjtjPWMucmVwbGFjZShnaCxcIlwiKTtjPWMucmVwbGFjZShoaCxcIlwiKTtqaChhLGMrKFwiJm54PVwiK2QpKyhcIiZueT1cIitiKSl9fWZ1bmN0aW9uIG1oKGEpe3JldHVybiBmdW5jdGlvbigpe3ZhciBiPWEuZWxlbWVudC5vd25lckRvY3VtZW50O2lmKGI9KGIuZGVmYXVsdFZpZXd8fGIucGFyZW50V2luZG93KS5jc2FiZyl7Yj1cIiZiZz1cIitiLm9jKCk7dmFyIGM9YS5lbGVtZW50LmhyZWY7Yz1jLnJlcGxhY2UoZmgsXCJcIik7amgoYSxjK2IpfX19XG5mdW5jdGlvbiBuaChhKXthLnphJiYoYS5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW92ZXJcIixpaChbYV0pKSxhLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLGxoKGEpKSk7dmFyIGI9a2goYSksYz1taChhKTtpZyhhLmVsZW1lbnQsZnVuY3Rpb24oZCl7ZWQoXCIuYUNTXCIsRGF0ZS5ub3coKSk7ZGQoKTthLnphJiYoYihkKSxjKGQpKTt0cnl7Y2goYS5lbGVtZW50KX1jYXRjaChlKXt9fSl9ZnVuY3Rpb24gb2goYSxiLGMpe3JldHVybi0xPT1hLmluZGV4T2YoYikmJjE2MzM0PmEubGVuZ3RoK2IubGVuZ3RoJiYoYSs9YitlbmNvZGVVUklDb21wb25lbnQoYyksMTYzMzQ8YS5sZW5ndGgpP2Euc3Vic3RyaW5nKDAsMTYzMzQpOmF9XG5mdW5jdGlvbiBwaChhLGIpe29lKGEuZWxlbWVudCxcIm1vdXNlZG93blwiLGZ1bmN0aW9uKCl7dHJ5e3ZhciBjPXdlKGIsITApO3ZhciBkPXdlKGIsITEpfWNhdGNoKGYpe31pZihjJiZkKXt2YXIgZT1hLmVsZW1lbnQuaHJlZjtlPW9oKGUsXCImaXM9XCIsW2QsY10uam9pbihcInhcIikpO2poKGEsZSl9fSl9XG5mdW5jdGlvbiBxaChhLGIsYyl7Zm9yKHZhciBkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWFbZF07bmgoZSk7aWYoZS56YSYmdm9pZCAwIT09ZS5wZCl7dmFyIGY9XCImbmI9XCIrKGUucGR8fFwiXCIpLGc9ZS5lbGVtZW50LmhyZWY7Zz1nLnJlcGxhY2UocmgsXCJcIik7Zz0tMT09Zy5pbmRleE9mKFwiP1wiKT9nK2YucmVwbGFjZSgvXiYvLFwiP1wiKTpnK2Y7amgoZSxnKX1lLnphJiYocGgoZSxjKSxmPU1hKCkuZGF0YS5ydXx8bnVsbCkmJihnPWUuZWxlbWVudC5ocmVmLGc9b2goZyxcIiZydXJsPVwiLGYpLGpoKGUsZykpfTA8YS5sZW5ndGgmJmIuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlb3ZlclwiLGloKGEpKX07ZnVuY3Rpb24gc2goYSxiKXt0aGlzLnBkPWI7dGhpcy56YT0hMDt0aGlzLmVsZW1lbnQ9YTt0aGlzLndjPW51bGx9ZnVuY3Rpb24gamgoYSxiKXsxNjM4NDxiLmxlbmd0aHx8KGE9YS5lbGVtZW50LGI9S2UoYiksdm9pZCAwIT09YiYmKGEuaHJlZj1iKSl9dmFyIHJoPS9bJlxcP11uYj1cXGQvO3ZhciB0aD17bnQ6MCxzazpcInNpMTI4XCJ9LHVoPXtudDowLHNrOlwic2kxNzdcIn07ZnVuY3Rpb24gdmgoYSl7dmFyIGI9W107YT1uKGEuc3x8W10pO2Zvcih2YXIgYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpYz1jLnZhbHVlLFwic2kxMjhcIiE9Yy5zayYmXCJzaTE3N1wiIT1jLnNrfHwhYy5yfHwoYy5yLmJhYyYmYi5wdXNoKGMpLGMuci5oJiYhYy5yLmguaW5jbHVkZXMoXCIlXCIpJiYxPHBhcnNlSW50KGMuci5oLDEwKSYmYi5wdXNoKGMpKTtyZXR1cm4gMT09PWIubGVuZ3RoP2JbMF06Yi5maW5kKGZ1bmN0aW9uKGQpe3JldHVyblwic2kxMjhcIj09PWQuc2t9KXx8bnVsbH1cbmZ1bmN0aW9uIHdoKGEsYixjLGQsZSxmLGcpe2Y9dm9pZCAwPT09Zj9bXTpmO2c9dm9pZCAwPT09Zz9udWxsOmc7dGhpcy5iZT1xaDt0aGlzLmthPVtdO3RoaXMuTmI9W107dGhpcy5YYT1udWxsO3RoaXMuTT1lO3RoaXMuVGY9WGYodGcoYikpO3ZhciBoPXZoKGIpO251bGwhPWgmJih0aGlzLlhhPU5nKHtzOltoXSxsOlwic2kxMjhcIj09PWguc2s/dGg6dWh9LHt9LHt9KS5yb290RWxlbWVudCx0aGlzLlhhLnJlbW92ZUF0dHJpYnV0ZShcImlkXCIpKTthPW4oYSk7Zm9yKHZhciBrPWEubmV4dCgpOyFrLmRvbmU7az1hLm5leHQoKSlrPWsudmFsdWUsdGhpcy5rYS5wdXNoKE5nKGIsYyxrW2suYWR0eXBlXSxkLGUsW1wiYl9cIl0pKTt0aGlzLmRkPWIuYXQ7dGhpcy5HZj1jO3RoaXMueWY9ZDt0aGlzLlNiPWc7YTppZihkPWYsdGhpcy5YYSlpZihoPSgoaHx8e30pLnJ8fHt9KS5yc2kpYj1oO2Vsc2V7Yz1oPSExO2lmKDQ9PXRoaXMuZGQpZm9yKGI9bihiLnN8fFtdKSxkPWIubmV4dCgpOyFkLmRvbmU7ZD1cbmIubmV4dCgpKWlmKGQ9ZC52YWx1ZSxcInNpMTAxXCI9PT1kLnNrKXtpZihcIjEwMCVcIiE9PWQuci53KXtiPVtdO2JyZWFrIGF9fWVsc2V7aWYoXCJzaTE0NFwiPT09ZC5zayl7Yz1oPSEwO2JyZWFrfX1lbHNlIGg9ZC5pbmNsdWRlcygyKSxjPWQuaW5jbHVkZXMoMyk7Yj1bXTtmb3IoZD0wO2Q8dGhpcy5rYS5sZW5ndGgtMTtkKyspYi5wdXNoKGQpO2gmJmIudW5zaGlmdCgtMSk7YyYmYi5wdXNoKHRoaXMua2EubGVuZ3RoLTEpfWVsc2UgYj1bXTt0aGlzLkdkPWJ9XG5mdW5jdGlvbiB4aChhLGIpe3ZhciBjPWEuTS5kb2N1bWVudC5oZWFkLGQ9Yi5wYXJlbnROb2RlO2MuYXBwZW5kQ2hpbGQoYS5UZik7dmFyIGU9YjthLlNiJiYoYy5hcHBlbmRDaGlsZChYZih0ZyhhLlNiKSkpLGU9TmcoYS5TYixhLkdmLHt9LGEueWYsYS5NKSxjPWUucm9vdEVsZW1lbnQsYS5OYj1lLk9kLGQucmVwbGFjZUNoaWxkKGMsYiksZT1kLnF1ZXJ5U2VsZWN0b3IoXCIjYWRCbG9ja1wiKSxlLnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxcIixkb2N1bWVudC50aXRsZSksZS5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsXCJyZWdpb25cIikpO2I9MDtmb3IoZD0tMTtkPGEua2EubGVuZ3RoO2QrKykwPD1kJiZlLmFwcGVuZENoaWxkKGEua2FbZF0ucm9vdEVsZW1lbnQpLGI8YS5HZC5sZW5ndGgmJmEuR2RbYl09PT1kJiYoZS5hcHBlbmRDaGlsZChhLlhhLmNsb25lTm9kZSghMCkpLGIrKyk7YT1hPXtOYTpOYShNYSgpKSxZYTphLmRkfTtiPWEuTmE7ZD1cIlwiO3N3aXRjaChhLllhKXtjYXNlIDE6ZCs9XG5SZyhiLFwiZ29vZ0FGU1wiKTticmVhaztjYXNlIDI6ZCs9UmcoYixcImdvb2dBRlNoUExBc1wiKTticmVhaztkZWZhdWx0OmQrPVJnKCl9YT1IKGQpO2E9WGYoYSk7ZS5hcHBlbmRDaGlsZChhKTthLnNldEF0dHJpYnV0ZShcImRhdGEtcmVuZGVyLWNvbXBsZXRlXCIsITApO3JldHVybiBlfVxud2gucHJvdG90eXBlLkVkPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1udWxsLGQ9cGUoKTtpZihcIk11dGF0aW9uT2JzZXJ2ZXJcImluIHdpbmRvdylyZXR1cm4obmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZSxmKXtlPW4oZSk7Zm9yKHZhciBnPWUubmV4dCgpOyFnLmRvbmU7Zz1lLm5leHQoKSlcImRhdGEtcmVuZGVyLWNvbXBsZXRlXCI9PWcudmFsdWUuYXR0cmlidXRlTmFtZSYmKGQucmVzb2x2ZShjKSxmLmRpc2Nvbm5lY3QoKSl9KSkub2JzZXJ2ZShhLnBhcmVudEVsZW1lbnQse3N1YnRyZWU6ITAsYXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6W1wiZGF0YS1yZW5kZXItY29tcGxldGVcIl19KSxjPXhoKHRoaXMsYSksZC5wcm9taXNlLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHFlKGIuTSxlKX0pLnRoZW4oZnVuY3Rpb24oZSl7eWgoYixlLGIuTSk7cmV0dXJuIGV9KTtjPXhoKHRoaXMsYSk7dGhpcy5NLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt5aChiLGMsYi5NKTtNYSgpLmRhdGEuaWN2MiYmXG5cInJlcXVlc3RBbmltYXRpb25GcmFtZVwiaW4gYi5NP2IuTS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtkLnJlc29sdmUoYyl9KTpkLnJlc29sdmUoYyl9LDApO3JldHVybiBkLnByb21pc2V9O1xuZnVuY3Rpb24geWgoYSxiLGMpe2Zvcih2YXIgZD1bXSxlPW4oYi5xdWVyeVNlbGVjdG9yQWxsKFwiYVtocmVmXVwiKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpaWYoZj1mLnZhbHVlLFwidHJ1ZVwiIT1mLmdldEF0dHJpYnV0ZShcImRhdGEtbm90cmFja1wiKSl7dmFyIGc9Zi5nZXRBdHRyaWJ1dGUoXCJkYXRhLW5iXCIpfHx2b2lkIDA7ZC5wdXNoKG5ldyBzaChmLGcpKX1lPW4oYi5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtcGluZ2JhY2stdHlwZV1cIikpO2Y9ZS5uZXh0KCk7Zm9yKGc9e307IWYuZG9uZTtnPXtnYjpnLmdifSxmPWUubmV4dCgpKWcuZ2I9Zi52YWx1ZSxnLmdiLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGZ1bmN0aW9uKGgpe3JldHVybiBmdW5jdGlvbigpe3pjKHZjKCksaC5nYi5nZXRBdHRyaWJ1dGUoXCJkYXRhLXBpbmdiYWNrLXR5cGVcIikpfX0oZykpO2U9bihiLnF1ZXJ5U2VsZWN0b3JBbGwoXCIuYl9cIikpO2ZvcihmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSlmLnZhbHVlLnNldEF0dHJpYnV0ZShcImRhdGEtYmdcIixcblwidHJ1ZVwiKTthLmJlKGQsYixjLmRvY3VtZW50LmJvZHkpO2Q9bihhLmthKTtmb3IoZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpZT1lLnZhbHVlLFBnKGMsZS5PZHx8W10pLE9nKGIsZS5NZik7MDxhLk5iLmxlbmd0aCYmUGcoYyxhLk5iKX07dmFyIEFoPUUoZnVuY3Rpb24oYSxiLGMsZCxlLGYpe2M9dm9pZCAwPT09Yz8hMTpjO2Q9dm9pZCAwPT09ZD9xaDpkO2U9dm9pZCAwPT09ZT96ZzplO2Y9dm9pZCAwPT09Zj9PZzpmO2Zvcih2YXIgZz1uKGIucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLXd0YS1idWJibGVdXCIpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7aD1oLnZhbHVlO3ZhciBrPWguZ2V0QXR0cmlidXRlKFwiZGF0YS13dGEtYnViYmxlXCIpO2lmKGspe3ZhciBsPWEuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoayk7aWYoIWwpdGhyb3cgRXJyb3IoXCJDb3VsZCBub3QgZmluZCBlbGVtZW50IHdpdGggaWQ6IFwiK2spO2UoYixoLGwpfX1lPW4oYi5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtcGluZ2JhY2stdHlwZV1cIikpO2c9ZS5uZXh0KCk7Zm9yKGg9e307IWcuZG9uZTtoPXtoYjpoLmhifSxnPWUubmV4dCgpKWguaGI9Zy52YWx1ZSxoLmhiLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGZ1bmN0aW9uKHApe3JldHVybiBmdW5jdGlvbigpe3pjKHZjKCksXG5wLmhiLmdldEF0dHJpYnV0ZShcImRhdGEtcGluZ2JhY2stdHlwZVwiKSl9fShoKSk7ZT1uKGIucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLXNldC10YXJnZXRdXCIpKTtmb3IoZz1lLm5leHQoKTshZy5kb25lO2c9ZS5uZXh0KCkpZz1nLnZhbHVlLGMmJihnLnRhcmdldD1cIl9ibGFua1wiKSxnLnJlbW92ZUF0dHJpYnV0ZShcImRhdGEtc2V0LXRhcmdldFwiKTtjPW4oYi5xdWVyeVNlbGVjdG9yQWxsKFwiLmNsaWNrdHJhY2tlZEFkX2pzXCIpKTtmb3IoZT1jLm5leHQoKTshZS5kb25lO2U9Yy5uZXh0KCkpZT1lLnZhbHVlLGUuc2V0QXR0cmlidXRlKFwiZGF0YS1iZ1wiLFwidHJ1ZVwiKSxmKGIsZS5pZCk7Zj1bXTtjPW4oYi5xdWVyeVNlbGVjdG9yQWxsKFwiYVtocmVmXVwiKSk7Zm9yKGU9Yy5uZXh0KCk7IWUuZG9uZTtlPWMubmV4dCgpKWU9ZS52YWx1ZSxcInRydWVcIiE9PWUuZ2V0QXR0cmlidXRlKFwiZGF0YS1ub3RyYWNrXCIpJiYoZz1lLmdldEF0dHJpYnV0ZShcImRhdGEtbmJcIil8fHZvaWQgMCxmLnB1c2gobmV3IHNoKGUsXG5nKSkpO2QoZixiLGIpO3poKGEsYil9LFwiYVBSU1wiKSx6aD1FKGZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtYWQtY29udGFpbmVyXVwiKTtpZighKDE+Yy5sZW5ndGgpKXt2YXIgZD1jWzBdLGU9Yi5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1oaWRlLW5vZGUtZXZlbnQ9XCJTQ1JPTExfQkVHSU5cIl0nKSxmPWIucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtaGlkZS1ub2RlLWV2ZW50PVwiU0NST0xMX0VORFwiXScpO2M9MDxlLmxlbmd0aHx8MDxmLmxlbmd0aDt2YXIgZz1mdW5jdGlvbigpe2Zvcih2YXIgbD1NYXRoLmFicyhNYXRoLnJvdW5kKGQuc2Nyb2xsTGVmdCkpLHA9TWF0aC5yb3VuZChkLnNjcm9sbFRvcCkscj1uKGUpLHE9ci5uZXh0KCk7IXEuZG9uZTtxPXIubmV4dCgpKXtxPXEudmFsdWU7dmFyIHQ9ITE7XCJhdXRvXCI9PT1kLnN0eWxlLm92ZXJmbG93WD90PTAhPT1sOlwiYXV0b1wiPT09ZC5zdHlsZS5vdmVyZmxvd1kmJih0PTAhPT1wKTtxLnN0eWxlLnZpc2liaWxpdHk9XG50P1widmlzaWJsZVwiOlwiaGlkZGVuXCJ9cj1uKGYpO2ZvcihxPXIubmV4dCgpOyFxLmRvbmU7cT1yLm5leHQoKSlxPXEudmFsdWUsdD0hMCxcImF1dG9cIj09PWQuc3R5bGUub3ZlcmZsb3dYP3Q9bCE9PWQuc2Nyb2xsV2lkdGgtZC5jbGllbnRXaWR0aDpcImF1dG9cIj09PWQuc3R5bGUub3ZlcmZsb3dZJiYodD1wIT09ZC5zY3JvbGxIZWlnaHQtZC5jbGllbnRIZWlnaHQpLHEuc3R5bGUudmlzaWJpbGl0eT10P1widmlzaWJsZVwiOlwiaGlkZGVuXCJ9O2MmJihkLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixnKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgUmVzaXplT2JzZXJ2ZXI/KG5ldyBSZXNpemVPYnNlcnZlcihnKSkub2JzZXJ2ZShkKTphLmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIixnKSk7YT1uKGIucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLXNjcm9sbC1kaXNwbGFjZW1lbnRdXCIpKTt2YXIgaD1hLm5leHQoKTtmb3IoYj17fTshaC5kb25lO2I9e1BhOmIuUGF9LGg9YS5uZXh0KCkpe2g9aC52YWx1ZTtcbnZhciBrPWguZ2V0QXR0cmlidXRlKFwiZGF0YS1zY3JvbGwtZGlzcGxhY2VtZW50XCIpO2lmKGspe2IuUGE9TnVtYmVyKGspO2lmKGlzTmFOKGIuUGEpKXRocm93IEVycm9yKFwiU2Nyb2xsIERpc3BsYWNlbWVudCBpcyBub3QgYSBudW1iZXI6IFwiK2spO2guYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKCl7XCJhdXRvXCI9PT1kLnN0eWxlLm92ZXJmbG93WD9kLnNjcm9sbExlZnQrPWwuUGE6XCJhdXRvXCI9PT1kLnN0eWxlLm92ZXJmbG93WSYmKGQuc2Nyb2xsVG9wKz1sLlBhKX19KGIpKX19YyYmZygpfX0sXCJhU0hcIik7ZnVuY3Rpb24gQmgoYSxiLGMpe2EuYWRkRXZlbnRMaXN0ZW5lciYmYS5hZGRFdmVudExpc3RlbmVyKGIsYywhMSl9O2Z1bmN0aW9uIENoKGEsYil7aWYoYSlmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmYihhW2NdLGMsYSl9ZnVuY3Rpb24gRGgoYSxiKXtmb3IodmFyIGM9MDs1MD5jOysrYyl7dHJ5e3ZhciBkPSEoIWEuZnJhbWVzfHwhYS5mcmFtZXNbYl0pfWNhdGNoKGcpe2Q9ITF9aWYoZClyZXR1cm4gYTthOnt0cnl7dmFyIGU9YS5wYXJlbnQ7aWYoZSYmZSE9YSl7dmFyIGY9ZTticmVhayBhfX1jYXRjaChnKXt9Zj1udWxsfWlmKCEoYT1mKSlicmVha31yZXR1cm4gbnVsbH1mdW5jdGlvbiBFaChhKXthPXZvaWQgMD09PWE/ZG9jdW1lbnQ6YTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KFwiaW1nXCIpfTtmdW5jdGlvbiBGaChhLGIsYyl7Yz12b2lkIDA9PT1jP2RvY3VtZW50OmM7dmFyIGQ9Q2QoYykuY3JlYXRlRWxlbWVudChcIlNDUklQVFwiKTtkLnR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIjtiJiYodm9pZCAwIT09ZC5vbnJlYWR5c3RhdGVjaGFuZ2U/ZC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZihcImNvbXBsZXRlXCI9PWQucmVhZHlTdGF0ZXx8XCJsb2FkZWRcIj09ZC5yZWFkeVN0YXRlKXRyeXtiJiZiKCl9Y2F0Y2goZil7fX06ZC5vbmxvYWQ9Yik7JGcoZCxpYihudWxsPT09YT9cIm51bGxcIjp2b2lkIDA9PT1hP1widW5kZWZpbmVkXCI6YSkpO3ZhciBlPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdO2lmKGUpdHJ5e3Yuc2V0VGltZW91dChmdW5jdGlvbigpe2UuYXBwZW5kQ2hpbGQoZCl9LDApfWNhdGNoKGYpe319O2Z1bmN0aW9uIEdoKGEsYixjKXt2YXIgZD10aGlzO3RoaXMuU2Y9Yjt0aGlzLkxlPWM7dGhpcy5lYT1cIjBcIjt0aGlzLm5kPW51bGw7dGhpcy5NPWE7dGhpcy5wYT1udWxsO2EmJmEuZG9jdW1lbnQmJlwiY29tcGxldGVcIj09PWEuZG9jdW1lbnQucmVhZHlTdGF0ZT90aGlzLmViKCk6b2UoYSxcImxvYWRcIixmdW5jdGlvbigpe3JldHVybiBkLmViKCl9KX1tPUdoLnByb3RvdHlwZTtcbm0uZWI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2lmKCF0aGlzLnBhKXt2YXIgYj0obmV3IERkKHRoaXMuTS5kb2N1bWVudCkpLmNyZWF0ZUVsZW1lbnQoXCJJRlJBTUVcIik7Yi5mcmFtZUJvcmRlcj1cIjBcIjtiLnN0eWxlLmhlaWdodD0wO2Iuc3R5bGUud2lkdGg9MDtiLnN0eWxlLnBvc2l0aW9uPVwiYWJzb2x1dGVcIjt0aGlzLnBhPWI7dGhpcy5NLmRvY3VtZW50LmJvZHkmJih0aGlzLk0uZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChiKSx0aGlzLnBhLmNvbnRlbnREb2N1bWVudD90aGlzLkJiKCk6b2UodGhpcy5wYSxcImxvYWRcIixmdW5jdGlvbigpe3JldHVybiBhLkJiKCl9KSl9fTtcbm0uQmI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9dGhpcy5wYTtiJiYoYj1iLmNvbnRlbnREb2N1bWVudD9iLmNvbnRlbnREb2N1bWVudDpiLmNvbnRlbnRXaW5kb3c/Yi5jb250ZW50V2luZG93LmRvY3VtZW50Om51bGwpJiYodGhpcy5lYT1cIjFcIixiLm9wZW4oKSxhaChiKSxiLmNsb3NlKCksRmgodGhpcy5TZixmdW5jdGlvbigpe3JldHVybiBhLldiKCl9LGIpKX07bS5XYj1mdW5jdGlvbigpe3ZhciBhPXRoaXMucGE7aWYoYSlpZihhPWEuY29udGVudFdpbmRvdyx0aGlzLmVhPVwiXCIsYS5ib3RndWFyZClpZihhPWEuYm90Z3VhcmQuYmcpdHJ5e3RoaXMubmQ9bmV3IGEodGhpcy5MZSl9Y2F0Y2goYil7dGhpcy5lYT1cIjVcIn1lbHNlIHRoaXMuZWE9XCIzXCI7ZWxzZSB0aGlzLmVhPVwiMlwifTtcbm0ub2M9ZnVuY3Rpb24oKXtpZih0aGlzLmVhKXJldHVybiB0aGlzLmVhO3ZhciBhPXRoaXMubmQ7aWYoIWEpcmV0dXJuXCI1XCI7aWYoIWEuaW52b2tlKXJldHVyblwiNFwiO3ZhciBiPVwiXCI7dHJ5e2EuaW52b2tlKGZ1bmN0aW9uKGMpe2I9Y30pfWNhdGNoKGMpe3JldHVyblwiNlwifXJldHVyblwic3RyaW5nXCIhPT10eXBlb2YgYnx8MD09Yi5sZW5ndGg/XCI2XCI6Mz5iLmxlbmd0aD9cIjdcIjoyNTUwPGIubGVuZ3RoP1wiOFwiOmJ9O20uZWI9QihHaC5wcm90b3R5cGUuZWIsXCJCR2NJXCIpO20uQmI9QihHaC5wcm90b3R5cGUuQmIsXCJCR3BJXCIpO20uV2I9QihHaC5wcm90b3R5cGUuV2IsXCJCR2NCVlwiKTttLm9jPUIoR2gucHJvdG90eXBlLm9jLFwiQkdnQlJcIik7ZnVuY3Rpb24gSGgoYSl7dmFyIGI9e307YT1uKGEpO2Zvcih2YXIgYz1hLm5leHQoKTshYy5kb25lO2M9YS5uZXh0KCkpe2M9Yy52YWx1ZTt2YXIgZD1jLmF0O2JbZF09YltkXXx8e307aWYoYy5jKXtiW2RdLmNvbnRhaW5lck1hcD1iW2RdLmNvbnRhaW5lck1hcHx8e307Zm9yKHZhciBlPW4oYy5jKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSliW2RdLmNvbnRhaW5lck1hcFtmLnZhbHVlXT1jfWVsc2UgYltkXVtcImRlZmF1bHRcIl09Y310aGlzLlVjPWJ9ZnVuY3Rpb24gSWgoYSxiLGMpe3ZhciBkPUpoW2JdO2lmKCFhLlVjW2RdKXJldHVybiBudWxsO2I9YS5VY1tkXVtcImRlZmF1bHRcIl07cmV0dXJuKGE9YS5VY1tkXS5jb250YWluZXJNYXApP2FbY118fGI6Yn12YXIgS2g9e30sSmg9KEtoWzBdPTEsS2hbM109MixLaFsyXT00LEtoKTt2YXIgTGg9RShmdW5jdGlvbihhKXtpZighYSlyZXR1cm57fTt2YXIgYj17fTthPW4oYSk7Zm9yKHZhciBjPWEubmV4dCgpOyFjLmRvbmU7Yz1hLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTtjPWQubjtkPWQudjtcInRcIj09PWQ/YltjXT0hMDpcImZcIiE9PWQmJihiW2NdPWQpfXJldHVybiBifSxcImNKQ1RNXCIpO3ZhciBNaD1qYShbXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9XCIsXCJcIl0pLE5oPWRvY3VtZW50O2Z1bmN0aW9uIE9oKGEpe3ZhciBiPSEhdygpLmRhdGEuYXJid2YsYz1hO2ImJihjPWEubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBkK1wiOjQwMCw3MDBcIn0pKTthPUxlKE1oLGMuam9pbihcInxcIikpOyhiPXcoKS5kYXRhLmZkfHxudWxsKSYmKGE9ZWIoYSx7ZGlzcGxheTpifSkpO3JldHVybiBhfWZ1bmN0aW9uIFBoKCl7dGhpcy5tYz1NYSgpLmRhdGEud2Z0bHx8W107dGhpcy5MZD0wPHRoaXMubWMubGVuZ3RoP09oKHRoaXMubWMpOm51bGw7dGhpcy5JYT1udWxsO3RoaXMucmQ9ITF9XG5mdW5jdGlvbiBRaChhLGIpe2lmKGEuTGQpdHJ5e3ZhciBjPWIuZG9jdW1lbnQsZD1jLmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpO2E6e3ZhciBlPWEuTGQ7aWYoZSBpbnN0YW5jZW9mIGRiKWQuaHJlZj1oYihlKS50b1N0cmluZygpO2Vsc2V7aWYoLTE9PT1aZy5pbmRleE9mKFwic3R5bGVzaGVldFwiKSl0aHJvdyBFcnJvcignVHJ1c3RlZFJlc291cmNlVXJsIGhyZWYgYXR0cmlidXRlIHJlcXVpcmVkIHdpdGggcmVsPVwic3R5bGVzaGVldFwiJyk7dmFyIGY9S2UoZSk7aWYodm9pZCAwPT09ZilicmVhayBhO2QuaHJlZj1mfWQucmVsPVwic3R5bGVzaGVldFwifWMuaGVhZC5hcHBlbmRDaGlsZChkKX1jYXRjaChnKXthLklhPWd9fVxuZnVuY3Rpb24gUmgoYSl7aWYoIWEucmQmJk5oLmZvbnRzJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBOaC5mb250cy5sb2FkKXthLnJkPSEwO2E9bihhLm1jKTtmb3IodmFyIGI9YS5uZXh0KCksYz17fTshYi5kb25lO2M9e3ZiOmMudmJ9LGI9YS5uZXh0KCkpe2I9Yi52YWx1ZTt2YXIgZD1cIlwiLGU9Yi5zcGxpdChcIjpcIik7Mj09PWUubGVuZ3RoJiYoYj1lWzBdLFwiNzAwXCI9PT1lWzFdJiYoZD1cImJvbGQgXCIpKTshKDA8PWIuaW5kZXhPZihcIiBcIikpfHxiLnN0YXJ0c1dpdGgoXCInXCIpJiZiLmVuZHNXaXRoKFwiJ1wiKXx8KGI9XCInXCIrYitcIidcIik7Yy52Yj1kK1wiMTJweCBcIitiO05oLmZvbnRzLmxvYWQoYy52YikuY2F0Y2goZnVuY3Rpb24oZil7cmV0dXJuIGZ1bmN0aW9uKGcpe0MubG9nKChnIGluc3RhbmNlb2YgRXJyb3I/Zy5tZXNzYWdlOlN0cmluZyhnKSkrXCIgLSBcIitmLnZiLFwibWZmbFwiKX19KGMpKX19fTt2YXIgU2g9bnVsbCxUaD17YWRzOjAscnNzOjIscGJzOjMsYWRfZGF0YTo4LHNiczo1fSxVaD17dGV4dF9hZHM6MCxwbGFfbnBhY2s6MyxyZWxhdGVkX3NlYXJjaDoyfSxWaD17c3RhdHVzQWR1bHQ6XCJzLmFEVUxUXCIsc3RhdHVzRmFpbGxpc3RlZDpcInMuZkxcIixzdGF0dXNUcmFkZW1hcms6XCJzLnRNXCIsc3RhdHVzTmVlZHNSZXZpZXc6XCJzLm5SXCJ9LFdoPXt9LFhoPSExO2Z1bmN0aW9uIFloKGEpeyFTaCYmYS5uYW1lJiYoU2g9KGE9YS5uYW1lLm1hdGNoKC9tYXN0ZXItKFxcZCspLykpJiZhWzFdP2FbMV06bnVsbCk7U2h8fChTaD0tMSk7cmV0dXJuIFNofVloPUIoWWgsXCJnTU5cIik7ZnVuY3Rpb24gWmgoYSl7dmFyIGI9XCJtYXN0ZXItXCIrWWgoYSk7cmV0dXJuIG1lKGIsYSl9Wmg9QihaaCxcImdNSVwiKTtcbmZ1bmN0aW9uICRoKGEsYixjKXt0cnl7aWYoYS5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImh0bWxcIikpe3ZhciBkPWEuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJodG1sXCIpWzBdO2QmJighZC5sYW5nJiZiJiYoZC5sYW5nPWIpLCFkLmRpciYmYyYmKGQuZGlyPWMpKX19Y2F0Y2goZSl7fX0kaD1CKCRoLFwic1NJTERcIik7ZnVuY3Rpb24gYWkoYSxiKXt0cnl7aWYodm9pZCAwIT09Yil7dmFyIGM9YS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibWV0YVwiKTtjLmh0dHBFcXVpdj1cIm9yaWdpbi10cmlhbFwiO2MuY29udGVudD1iO2EuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChjKX19Y2F0Y2goZCl7fX1haT1CKGFpLFwic09UT0ZcIik7XG5mdW5jdGlvbiBiaShhLGIpe3ZhciBjPXt9O2E9bihhKTtmb3IodmFyIGQ9YS5uZXh0KCk7IWQuZG9uZTtkPWEubmV4dCgpKWQ9ZC52YWx1ZSxjW2Qua109ZC52O2I9bihiKTtmb3IoZD1iLm5leHQoKTshZC5kb25lO2Q9Yi5uZXh0KCkpYT1kLnZhbHVlLGNbYS5rXT1hLnY7cmV0dXJuIGN9XG5mdW5jdGlvbiBjaShhLGIsYyxkLGUsZixnLGgsayxsLHApe2Z1bmN0aW9uIHIodSl7dmFyIEQ9YWUoYik7bGcoaCx1LEQpO2EucmVxdWVzdEFuaW1hdGlvbkZyYW1lJiZhLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3Uuc3R5bGUudHJhbnNmb3JtPVwicm90YXRlWigwZGVnKVwifSl9dmFyIHE9YmkoZy5yfHxbXSxrLnJ8fFtdKSx0PShmPTI9PT1kWzBdLnR5cGUpPyExOlwiX2JsYW5rXCI9PWgubGlua1RhcmdldCx4PW5nKCk7ZGcoeCxhLmRvY3VtZW50LmhlYWQpO2Q9bmV3IHdoKGQsayxxLHQsYSxwLGwpO1wiaWV2XCJpbiBrJiZmZChiK1wiLmVWXCIsay5pZXYpO2RpKGcsYik7Yz1kLkVkKGMpLnRoZW4oZnVuY3Rpb24odSl7cih1KTtyZXR1cm4gdX0pO2YmJmgucmVsYXRlZFNlYXJjaFVzZVJlc3VsdENhbGxiYWNrJiYoYz1jLnRoZW4oZnVuY3Rpb24odSl7ZWkodSxlKTtyZXR1cm4gdX0pKTtyZXR1cm4gY31jaT1CKGNpLFwiZlNBXCIpO1xuZnVuY3Rpb24gZmkoYSxiLGMsZCxlLGYsZyxoKXtNYSgpLlgoKSYmKGEuZG9jdW1lbnQuZGlyPVwicnRsXCIpO2E9ZFswXS50eXBlO2lmKDI9PT1hJiYhdygpLksoKSl7dmFyIGs9Zy5yc19hdHRyLnQ7aC5ob3Jpem9udGFsRmxvdyYmKGsrPVwiOlwiKTtrJiYoaz1IKCc8aDIgaWQ9XFwnYXR0ckhlYWRlclxcJz48c3BhbiBjbGFzcz1cImxoSGVhZGVyXCIgaWQ9XCJhdHRyaWJ1dGlvblwiPjxhIHRhcmdldD1cIl9ibGFua1wiPicrcGYoaykrXCI8L2E+PC9zcGFuPjwvaDI+XCIpLGRnKGssYykpfWNnKGMsaCxlKTt3KCkuSygpfHxkaShnLGIpO2dpKGQsYyxoLGYsYSk7Yj1hZShiKTtsZyhoLGMsYil9Zmk9QihmaSxcImZBXCIpO2Z1bmN0aW9uIGhpKGEsYixjLGQsZSxmKXskaChhLGUsZik7aWkoYSk7UWgoYyxhKTtSaChjKTthPWEuZG9jdW1lbnQuaGVhZDtudWxsIT09YiYmYS5hcHBlbmRDaGlsZChiLmNsb25lTm9kZSghMCkpO2EuYXBwZW5kQ2hpbGQoZCl9aGk9QihoaSxcInBTUlNcIik7XG5mdW5jdGlvbiBqaShhLGIsYyxkLGUsZixnLGgpe2lmKGIgaW4gV2gpe3ZhciBrPW51bGw7dHJ5e2s9YS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIiksaGVbYl09ITB9Y2F0Y2gocil7fWlmKG51bGwhPWspe2suc2V0QXR0cmlidXRlKFwiYXJpYS1sYWJlbFwiLGRvY3VtZW50LnRpdGxlKTtrLnNldEF0dHJpYnV0ZShcInJvbGVcIixcInJlZ2lvblwiKTtpZihjKXtmb3IodmFyIGw9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2MuZmlyc3RFbGVtZW50Q2hpbGQ7KWwuYXBwZW5kQ2hpbGQoYy5maXJzdEVsZW1lbnRDaGlsZCk7ay5hcHBlbmRDaGlsZChsKX12YXIgcD1rO1wicmVxdWVzdEFuaW1hdGlvbkZyYW1lXCJpbiBhP2EucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ZChhLHAsZil9KTpkKGEscCxmKTtjPWFlKGIpO2w9VWUoYixlKTtsZyhsLGssYyk7ZyYmbC5yZWxhdGVkU2VhcmNoVXNlUmVzdWx0Q2FsbGJhY2smJmVpKGssZSk7aC5iZyYmKGU9bmV3IEdoKGEsXG5oLmJnLmksaC5iZy5wKSxhLmNzYWJnPWUpO2RlbGV0ZSBXaFtiXX19fWppPUIoamksXCJwU1JBSFwiKTtmdW5jdGlvbiBraShhLGIpe2E9bWUoYSxiKTtpZihudWxsPT1hKXJldHVybiBudWxsO2I9bnVsbDt0cnl7Yj1hLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYWRCbG9ja1wiKX1jYXRjaChjKXt9cmV0dXJuIG51bGw9PWI/bnVsbDphfWtpPUIoa2ksXCJnRklBQlwiKTtcbmZ1bmN0aW9uIGxpKGEsYixjLGQsZSxmKXt2YXIgZz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNzcmFiXCIpLGg9WWgoYSksaz1QYSgpLGw9bmV3IFBoLHA9W10scj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNzci1ib2lsZXJwbGF0ZVwiKTtpZigwPG1pKCkubGVuZ3RoKXtudWxsIT09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzc3JmXCIpfHxRaChsLHdpbmRvdyk7UmgobCk7dmFyIHE9XCJtYXN0ZXItXCIraCx0PVVlKHEsYSk7amkod2luZG93LHEsbnVsbCxBaCxhLFwiX2JsYW5rXCI9PXQubGlua1RhcmdldCxcInJlbGF0ZWRzZWFyY2hcIj09PXQudHlwZSxjKX1mb3IocT0wO3E8Zy5jaGlsZEVsZW1lbnRDb3VudDspe3Q9Zy5jaGlsZHJlbltxXTt2YXIgeD10LmlkLnNwbGl0KFwiLVwiKTtxKz0xO2lmKCEoMj54Lmxlbmd0aCkpe3ZhciB1PXguc2hpZnQoKTtpZihcInNzcmFkXCI9PT11fHxcInNzcnNcIj09PXV8fFwic3Nyc2JcIj09dSl7eC5wdXNoKGgudG9TdHJpbmcoKSk7eD14LmpvaW4oXCItXCIpO3ZhciBEPVxuVWUoeCxhKSxLPVwiX2JsYW5rXCI9PUQubGlua1RhcmdldCxPPVwicmVsYXRlZHNlYXJjaFwiPT09RC50eXBlLFY9a2koeCxhKTtpZihudWxsPT1WKXAucHVzaCh4KTtlbHNlIGlmKGcucmVtb3ZlQ2hpbGQodCksLS1xLFwic3Nyc1wiPT09dSloaShWLHIsbCx0LGQsZSxmKTtlbHNlIGlmKFwic3NyYWRcIj09PXUpamkoVix4LHQsQWgsYSxLLE8sYyk7ZWxzZSBpZihcInNzcnNiXCI9PT11KXt0PW51bGw7dHJ5e3Q9Vi5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIil9Y2F0Y2goQWEpe31udWxsIT10JiYoZmkoVix4LHQsYy5zYnMsYSxiLGMsRCksaGVbeF09ITAsZGVsZXRlIFdoW3hdKX19fX1mb3IodmFyIHVhIGluIFdoKTA+cC5pbmRleE9mKHVhKSYmKGZkKHVhK1wiLmhBXCIsITEpLFFhKGspJiZlZCh1YStcIi5hQ1wiLDApLGRlbGV0ZSBXaFt1YV0pOzA9PXAubGVuZ3RoJiZkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGcpO2RkKCk7bC5JYSYmQy5sb2cobC5JYSxcImx3ZjJcIil9bGk9QihsaSxcInBTUkFcIik7XG5mdW5jdGlvbiBuaShhLGIsYyl7dmFyIGQ9WmgoYSk7aWYoZCl7dmFyIGU9ZC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZzt2YXIgZj1kLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kaXI7ZC5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiaGVhZFwiKSYmaWkoZCl9dmFyIGc9KGQ9Yy5hdCkmJjA8ZC5sZW5ndGg/bmV3IEhoKGQpOnZvaWQgMCxoPShkPWMuYWN0KT9uZXcgSGgoZCk6dm9pZCAwLGs9T2JqZWN0LmtleXMoV2gpLnNsaWNlKCksbD1uZXcgUGg7ZD1bXTtpZihnZSgpKWxpKGEsYixjLGUsZixcIkE0VFZEMG9Eb1JVbkJaZ1lEZE5WQVJZSVBTbUpneVNFc1lkUEFOUnJyZ1E3UWl0UHNPdHkwZVpJQnNqbEhGRkp3REZVLzhRbW5SRjJrTDV4YjRSUDlRNEFBQUNFZXlKdmNtbG5hVzRpT2lKb2RIUndjem92TDNkM2R5NW5iMjluYkdVdVkyOXRPalEwTXlJc0ltWmxZWFIxY21VaU9pSlFjbWwyWVdONVUyRnVaR0p2ZUVGa2MwRlFTWE1pTENKbGVIQnBjbmtpT2pFMk9UVXhOamM1T1Rrc0ltbHpVM1ZpWkc5dFlXbHVJanAwY25WbExDSnBjMVJvYVhKa1VHRnlkSGtpT25SeWRXVjlcIiksXG5kLnB1c2goUHJvbWlzZS5yZXNvbHZlKCkpO2Vsc2UgZm9yKHZhciBwIGluIFdoKXt2YXIgcj1XaFtwXSxxPXJbMF0udHlwZSx0PW1lKHAsYSk7aWYobnVsbCE9dCl7JGgodCxlLGYpO2FpKHQsdm9pZCAwKTt2YXIgeD1udWxsO3RyeXt4PXQuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJhZEJsb2NrXCIpfWNhdGNoKFYpe31pZihudWxsIT14KXt4LnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxcIixkb2N1bWVudC50aXRsZSk7eC5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsXCJyZWdpb25cIik7dygpLmRhdGEuaWNlbGFlJiZpaSh0KTtRaChsLHQpO1JoKGwpO3ZhciB1PTI9PXEsRD01PT1xLEs9VWUocCxhKSxPPW51bGw7ZyYmSWgoZyxxLEsuY29udGFpbmVyKT8oTz1JaChnLHEsSy5jb250YWluZXIpLHE9aD9JaChoLHEsSy5jb250YWluZXIpOm51bGwsdSYmbWcoSyxyKSx1PW9pKHAsayksTz1jaSh0LHAseCxyLGEsYixjLEssTyxxLHUpKTooRHx8Qy5sb2cocSxcInVueExSQlwiKSxPPVByb21pc2UucmVzb2x2ZSgpLFxuZmkodCxwLHgscixhLGIsYyxLKSk7Yy5iZyYmKHI9bmV3IEdoKHQsYy5iZy5pLGMuYmcucCksdC5jc2FiZz1yKTtkLnB1c2goTyk7aGVbcF09ITA7ZGVsZXRlIFdoW3BdfX19bC5JYSYmQy5sb2cobC5JYSxcImx3ZjJcIik7aWYodygpLmRhdGEuZXB0ZSlmb3IoYj1uKGspLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWM9bWUoYy52YWx1ZSxhKSxudWxsIT1jJiZwaShjKTtyZXR1cm4gc2UoZCkudGhlbihmdW5jdGlvbigpe3ZhciBWPXooXCJfb3B0aW1pemVGcmFtZU1lYXN1cmVtZW50XCIpO3FpKGEsISFnfHxWLFYpfSl9bmk9QihuaSxcIm1QQUFTSFwiKTt2YXIgcmk9XCJmdW5jdGlvblwiPT09dHlwZW9mIFJlc2l6ZU9ic2VydmVyLHNpPW51bGw7XG5mdW5jdGlvbiBxaShhLGIsYyl7ZnVuY3Rpb24gZCgpe3ZhciBlPWxlKGEpLmZyYW1lcztpZihyaSl7c2kmJnNpLmRpc2Nvbm5lY3QoKTt2YXIgZj1jO3NpPW5ldyBSZXNpemVPYnNlcnZlcihmdW5jdGlvbigpe2Y/Zj0hMTpHZShhKX0pO3ZhciBnPW4oZSk7Zm9yKGU9Zy5uZXh0KCk7IWUuZG9uZTtlPWcubmV4dCgpKXNpLm9ic2VydmUoZS52YWx1ZS5kb2N1bWVudC5ib2R5KX1lbHNlIGZvcihnPW4oZSksZT1nLm5leHQoKTshZS5kb25lO2U9Zy5uZXh0KCkpZS52YWx1ZS5vbnJlc2l6ZT1mdW5jdGlvbigpe0dlKGEpfX1jfHxkKCk7Yj9HZShhKTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7R2UoYSl9LDApO2MmJnNldFRpbWVvdXQoZCwwKX1cbmZ1bmN0aW9uIG9pKGEsYil7dmFyIGM9YS5zcGxpdChcIi1cIik7YT1hLnNwbGl0KFwiLVwiKTtjLnNwbGljZShjLmxlbmd0aC0xLDAsXCJhXCIpO2M9Yy5qb2luKFwiLVwiKTthLnNwbGljZShhLmxlbmd0aC0xLDAsXCJiXCIpO2E9YS5qb2luKFwiLVwiKTt2YXIgZD1bXTtiLmluY2x1ZGVzKGMpJiZkLnB1c2goMik7Yi5oYXNPd25Qcm9wZXJ0eShhKSYmZC5wdXNoKDMpO3JldHVybiBkfWZ1bmN0aW9uIHRpKGEsYixjKXt2YXIgZD1NYXRoLm1heC5hcHBseShNYXRoLGEpO2E9TWF0aC5taW4uYXBwbHkoTWF0aCxhKTtpZihkLWE+V2QpZm9yKGE9ZC1XZCxkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF07Y1tlXTxhJiYoY1tlXT1hKX1yZXR1cm4gY310aT1CKHRpLFwicEJERlwiKTtcbmZ1bmN0aW9uIHVpKGEsYil7Zm9yKHZhciBjPXt9LGQ9ITEsZT1bXSxmPVtdLGc9bihPYmplY3Qua2V5cyhhKSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpaWYoaD1oLnZhbHVlLGggaW4gYil7dmFyIGs9YltoXSxsPWFbaF07XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGwmJihsPVpkKGgsayxsKSxudWxsIT1sJiYoY1toXT1sLGsuZz09WGQmJihlLnB1c2gobCksZi5wdXNoKGgpKSxkPSEwKSl9MDxlLmxlbmd0aCYmKGM9dGkoZSxmLGMpKTtyZXR1cm4gZD9jOm51bGx9dWk9Qih1aSxcInZPXCIpO2Z1bmN0aW9uIHZpKGEsYil7cmV0dXJuKCRkKGEpfHwvXm1hc3Rlci1cXGQrJC8udGVzdChhKSkmJlwib2JqZWN0XCI9PXR5cGVvZiBifXZpPUIodmksXCJpUEFCT1wiKTtcbmZ1bmN0aW9uIHdpKGEpe3RyeXtpZighYSl0aHJvdyBFcnJvcihcIk51bGwsIHVuZGVmaW5lZCBvciBlbXB0eSB3aW5kb3cubmFtZS5cIik7dmFyIGI9SlNPTi5wYXJzZShhKX1jYXRjaChkKXt2YXIgYz1kLm1lc3NhZ2U7YSYmKGM9XCJJbnZhbGlkIHdpbmRvdy5uYW1lOiBcIithLnNwbGl0KFwiLFwiKVswXSk7Qy5sb2coYyxcInBOQU9cIil9cmV0dXJuIGJ8fHt9fXdpPUIod2ksXCJwTkFPXCIpO2Z1bmN0aW9uIHhpKGEsYil7dmFyIGM9e30sZDtmb3IoZCBpbiBhKXt2YXIgZT1hW2RdO1wibmFtZVwiPT1kP2NbZF09JGQoZSl8fC9ebWFzdGVyLVxcZCskLy50ZXN0KGUpP2U6bnVsbDp2aShkLGUpJiYoZT11aShlLGIpLGNbZF09ZSxXaFtkXT1bXSl9cmV0dXJuIGN9eGk9Qih4aSxcInZOQU9cIik7XG5mdW5jdGlvbiB5aShhLGIsYyxkKXt2YXIgZT1iLmhvcml6b250YWxGbG93Py0xOmIuY29sdW1ucztpZigyPD1lJiYhKDA+PWUpKXtmb3IodmFyIGY9W10sZz0wLGg9MDtoPGU7aCsrKWZvcih2YXIgaz1NYXRoLmNlaWwoKGEubGVuZ3RoLWcpLyhlLWgpKSxsPTA7bDxrO2wrKylmW2wqZStoXT1hW2crK107YT1mfWY9dm9pZCAwPT09ZD8hMTpkO2Q9IWIuaG9yaXpvbnRhbEZsb3c7Yj12b2lkIDA9PT1mPyExOmY7Zj1uKGEpO2ZvcihnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSlnPWcudmFsdWUsZy50PUgoZy50KTtpZihjLkRkJiYxPT1lKXtiPWEubGVuZ3RoO2Q9Yy5EZC5zcGxpdChcIixcIik7ZT1bXTtmb3IoZj0wO2Y8YjtmKyspZS5wdXNoKGRbZiVkLmxlbmd0aF0pO2I9Yy5yZjtoPSc8ZGl2IGNsYXNzPVwiJytMKFwiZF9cIikrJ1wiPic7Yz1hLmxlbmd0aDtmb3IoZD0wO2Q8YztkKyspe2Y9YVtkXTtnPXZvaWQgMDtrPSc8ZGl2IGNsYXNzPVwiJytMKFwiZV9cIikrJ1wiIHN0eWxlPVwiYm9yZGVyLScrXG4oYj9cInJpZ2h0XCI6XCJsZWZ0XCIpK1wiLWNvbG9yOiBcIitMKE4oZVtkXSkpKydcIj48YSBocmVmPVwiJytMKEtmKGYubCkpKydcIiBjbGFzcz1cIicrTChcImNfXCIpKycgcG9wc3RyaXBlUnNcIiBkYXRhLW5vdHJhY2s9XCJ0cnVlXCIgdGFyZ2V0PVwiX3RvcFwiPicrKGYuZnVybD8nPGRpdiBjbGFzcz1cIicrTChcImZfXCIpKydcIj48aW1nIHNyYz1cIicrTChQZihmLmZ1cmwpKSsnXCIgY2xhc3M9XCInK0woXCJnX1wiKSsnXCI+PC9kaXY+JzpcIlwiKTt2YXIgcD1mLnQ7bD1IO2lmKDA8KFwiXCIrd2YoXCJcIitwKSkubGVuZ3RoKXt2YXIgcj12b2lkIDA7dmFyIHE9cDt2YXIgdD1vZihxKTtpZihudWxsIT10KXE9dDtlbHNle3I9cnx8bnVsbCE9cSYmcS5PPT09YmY7dmFyIHg9dD0wLHU9ITE7cj1XZShxK1wiXCIscikuc3BsaXQoJGUpO2Zvcih2YXIgRD0wO0Q8ci5sZW5ndGg7RCsrKXt2YXIgSz1yW0RdO1llLnRlc3QoV2UoSykpPyh0KysseCsrKTpaZS50ZXN0KEspP3U9ITA6WGUudGVzdChXZShLKSk/eCsrOmFmLnRlc3QoSykmJih1PVxuITApfXQ9MD09eD91PzE6MDouNDx0L3g/LTE6MTtudWxsIT1xJiZ2b2lkIDAhPT1xLlMmJihxLlM9dCk7cT10fXA9JzxzcGFuIGRpcj1cIicrKDA+cT9cInJ0bFwiOlwibHRyXCIpKydcIj4nK3BmKHApK1wiPC9zcGFuPlwifWVsc2UgcD1cIlwiO2w9bChwKTtoKz1rK2wrJzxkaXYgY2xhc3M9XCInK0woXCJoX1wiKSsnXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJytMKFBmKG51bGwhPShnPWYuYWRJY29uVXJsKT9nOlwiLy93d3cuZ3N0YXRpYy5jb20vZG9tYWluYWRzL2ltYWdlcy9jaGV2cm9uLXdoaXRlLnBuZ1wiKSkrJylcIj48L2Rpdj48L2E+PC9kaXY+J31hPUgoaCtcIjwvZGl2PlwiKX1lbHNle2Y9Jzx0YWJsZSBjZWxsc3BhY2luZz1cIjBcIiBjZWxscGFkZGluZz1cIjBcIicrKDI8PWV8fGQ/JyB3aWR0aD1cIjEwMCVcIic6XCJcIikrXCI+PHRib2R5Pjx0cj5cIjtjPWEubGVuZ3RoO2ZvcihkPTA7ZDxjO2QrKylnPWFbZF0sZis9KDAhPWQmJjA8ZSYmMD09ZCVlP1wiPC90cj48dHI+XCI6XCJcIikrJzx0ZCBjbGFzcz1cImNvbCcrXG4oZD09YS5sZW5ndGgtMT9cIiBsXCI6XCJcIikrJ1wiJysoMjw9ZT8nIHdpZHRoPVwiJytMKDEwMC9lKSsnJVwiJzpcIlwiKStcIj5cIixoPTA+ZXx8Mjw9ZSYmZDxlLGg9JzxkaXYgY2xhc3M9XCJhZCcrKDA9PWQ/XCIgZlwiOlwiXCIpKyhoP1wiIGZyXCI6XCJcIikrKGQ9PWEubGVuZ3RoLTE/XCIgbFwiOlwiXCIpKyghaCYmMjw9ZSYmZD49YS5sZW5ndGgtKGEubGVuZ3RoJWU/YS5sZW5ndGglZTplKT9cIiBsclwiOlwiXCIpKydcIj48ZGl2IGNsYXNzPVwiJytMKFwiYV9cIikrXCIgXCIrTChcImJfXCIpKycgcmFkbGlua0NcIj4nLGs9ZyxrPUgoay5hZEljb25Vcmw/JzxpbWcgY2xhc3M9XCJhZEljb25cIiBzcmM9XCInK0woUGYoay5hZEljb25VcmwpKSsnXCIvPic6XCJcIiksaD1oK2srJzxkaXYgY2xhc3M9XCJhZERcIj4nLGI/KGs9QWYoXCJcIitLZihnLmwpKSxnPXlmKFwiXCIrcGYoZy50KSksZz1IKCc8ZGl2IGNsYXNzPVwiYWRTdGRcIj48YSBocmVmPVwiJytMKEtmKGspKSsnXCIgY2xhc3M9XCJyYWRsaW5rQnV0dG9uTGlua1wiIGRhdGEtbm90cmFjaz1cInRydWVcIiB0YXJnZXQ9XCJfdG9wXCI+JytcbkgoJzxzcGFuIHN0eWxlPVwiaGVpZ2h0OjIwcHg7bGluZS1oZWlnaHQ6MjBweDt3aWR0aDoyMHB4O21hcmdpbi1yaWdodDo1cHhcIj48c3ZnIGNsYXNzPVwicmFkbGlua1N2Z1wiIGZvY3VzYWJsZT1cImZhbHNlXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj48cGF0aCBkPVwiTTE1LjUgMTRoLS43OWwtLjI4LS4yN0E2LjQ3MSA2LjQ3MSAwIDAgMCAxNiA5LjUgNi41IDYuNSAwIDEgMCA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0elwiPjwvcGF0aD48L3N2Zz48L3NwYW4+JykrZytcIjwvYT48L2Rpdj5cIikpOihrPUFmKFwiXCIrS2YoZy5sKSksZz15ZihcIlwiK3BmKGcudCkpLGc9SCgnPGRpdiBjbGFzcz1cImFkU3RkXCI+PGEgaHJlZj1cIicrTChLZihrKSkrXG4nXCIgY2xhc3M9XCInK0woXCJjX1wiKSsnXCIgZGF0YS1ub3RyYWNrPVwidHJ1ZVwiIHRhcmdldD1cIl90b3BcIj4nK2crXCI8L2E+PC9kaXY+XCIpKSxmKz1oK2crXCI8L2Rpdj48L2Rpdj48L2Rpdj48L3RkPlwiO2E9SChmK1wiPC90cj48L3Rib2R5PjwvdGFibGU+XCIpfXJldHVybiBhfXlpPUIoeWksXCJjUlNOXCIpO1xuZnVuY3Rpb24gZ2koYSxiLGMsZCxlKXtpZighKDA+PWEubGVuZ3RoKSl7dmFyIGY9bnVsbDtpZihQYSgpLmRhdGEuY3VjYWkmJiF3KCkuSygpKXt2YXIgZz1cImh0dHBzOlwiPT09d2luZG93LmxvY2F0aW9uLnByb3RvY29sO251bGwhPWMuYWRJY29uVXJsJiYwPGMuYWRJY29uSGVpZ2h0JiYwPGMuYWRJY29uV2lkdGgmJmdnKGEsYy5hZEljb25VcmwsZyl9dygpLksoKXx8bWcoYyxhKTtkPXtyZjpNYSgpLlgoKSxEZDpkLnBvcHN0cmlwZVJzfTtpZigyPT09ZSYmIXcoKS5LKCkpZj15aShhLGMsZCk7ZWxzZSBpZig1PT09ZSl7ZD1jLnJlc3VsdHNQYWdlQmFzZVVybDtpZighZCl0aHJvdyBEYyhcInJlc3VsdHNQYWdlQmFzZVVybCBuZWVkcyB0byBiZSBzZXQgZm9yIHNlYXJjaGJveCBibG9ja3MuXCIpO2Y9YVswXS5hZmR0O2E9YVswXS5sYWJlbDtlPWRlKGQpO251bGwhPWMucGVyc29uYWxpemVkQWRzJiYoZS5wY3NhPVwiXCIrYy5wZXJzb25hbGl6ZWRBZHMpO2M9JzxkaXYgY2xhc3M9XCJhZFN0ZFwiPjxmb3JtIGFjdGlvbj1cIicrXG5MKEtmKGQpKSsnXCIgdGFyZ2V0PVwiX3RvcFwiIG1ldGhvZD1cImdldFwiIGFjY2VwdC1jaGFyc2V0PVwiVVRGLThcIj4nO2Q9dmYoZSk7Zz1kLmxlbmd0aDtmb3IodmFyIGg9MDtoPGc7aCsrKXt2YXIgaz1kW2hdO2MrPSc8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCInK0woaykrJ1wiIHZhbHVlPVwiJytMKGVba10pKydcIi8+J31jKz0nPHRhYmxlIGNsYXNzPVwic2ItdGFibGVcIiBjZWxsc3BhY2luZz1cIjBcIiBjZWxscGFkZGluZz1cIjBcIj48dGJvZHk+PHRyPjx0ZCBjbGFzcz1cInNiaS10ZFwiPjxpbnB1dCBjbGFzcz1cInNiaVwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInF1ZXJ5XCIgbWF4bGVuZ3RoPVwiNjNcIiB0aXRsZT1cIkVudGVyIGEgc2VhcmNoXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIvPjwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1cInNiYlwiIHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIicrKGE/TChhKTpcIlNlYXJjaFwiKSsnXCIvPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiYWZkVG9rZW5cIiB2YWx1ZT1cIicrXG5MKGYpKydcIi8+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic2VhcmNoXCIgdmFsdWU9XCIxXCIvPjwvZm9ybT48L2Rpdj4nO2Y9SChjKX1jPWM9e05hOk5hKE1hKCkpfTtjPUgoUmcoYy5OYSxcImdvb2dBRlNcIikpO2RnKGMsYik7ZiYmZGcoZixiKX19Z2k9QihnaSxcImNBTlwiKTtcbmZ1bmN0aW9uIHppKGEsYixjKXt2YXIgZD1BaShhKSxlPVloKGIpLGY9UGEoKSxnPU1hKCksaD13KCk7Zy5kYXRhLnFpJiZjZChcInFpXCIsZy5kYXRhLnFpfHxudWxsLFRjLmopO3ZhciBrPWcuZGF0YS5lYXdwfHxudWxsO2smJmNkKFwiZWF3cFwiLGssVGMuaik7KGg9ISFoLmRhdGEuc2JuKSYmZmQoXCJzYm5cIixoKTtoPSExO2lmKCFnZSgpKWZvcihrPTA7azxkLmxlbmd0aDtrKyspe3ZhciBsPWRba10uYWR0eXBlLHA9dm9pZCAwIT1sLHI9ZFtrXSxxPXIuZm47cS5zdGFydHNXaXRoKFwic2xhdmUtMFwiKSYmKFhoPSEwKTtxPXErXCItXCIrZTtXaFtxXXx8KEMubG9nKHEsXCJwQUoyXCIpLFdoW3FdPVtdKTtXaFtxXS5wdXNoKHIpO3AmJihyPXJbbF0saD0hMCl9aWYoZ2UoKSl7Yj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNzcmFiXCIpO2I9bihiLmNoaWxkcmVuKTtmb3IoZz1iLm5leHQoKTshZy5kb25lO2c9Yi5uZXh0KCkpe2c9Zy52YWx1ZTt2YXIgdD1nLmlkLnNwbGl0KFwiLVwiKTtpZighKDI+dC5sZW5ndGgpJiZcblwic3NyYWRcIj09PXQuc2hpZnQoKSl7dC5wdXNoKGUudG9TdHJpbmcoKSk7dD10LmpvaW4oXCItXCIpO3ZhciB4PXBhcnNlSW50KGcuZ2V0QXR0cmlidXRlKFwiZGF0YS1udW0tYWRzXCIpLDEwKXx8MDtmZCh0K1wiLmhBXCIsMDx4KTtRYShmKSYmZWQodCtcIi5hQ1wiLHgpO0JpKFtnXSx0KTtkaShhLHQpfX1iPW1pKCk7MDxiLmxlbmd0aCYmKGc9XCJtYXN0ZXItXCIrZSx0PWIucmVkdWNlKGZ1bmN0aW9uKEQsSyl7cmV0dXJuIEQrcGFyc2VJbnQoSy5nZXRBdHRyaWJ1dGUoXCJkYXRhLW51bS1hZHNcIiksMTApfSwwKSxmZChnK1wiLmhBXCIsMDx0KSxRYShmKSYmZWQoZytcIi5hQ1wiLHQpLEJpKGIsZyksZGkoYSxnKSl9ZWxzZSBmb3IodCBpbiBXaClpZihhPVdoW3RdLGQ9YS5sZW5ndGgsMDxkJiYhaCYmKGs9YVswXSwzPT1rLnR5cGUmJihkPWsucGxhcz9rLnBsYXMubGVuZ3RoOjApKSxYaCYmL15tYXN0ZXItXFxkKyQvLnRlc3QodCkpMDxkJiZDLmxvZyhhLmxlbmd0aCxcInBBSjNcIiksZGVsZXRlIFdoW3RdO2Vsc2UgaWYoZmQodCtcblwiLmhBXCIsMDxkKSxRYShmKSYmZWQodCtcIi5hQ1wiLGQpLDE+ZCl7aWYoYT1tZSh0LGIpKXRyeXsoeD1hLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYWRCbG9ja1wiKSkmJmRnKFFnKHtOYTpOYShnKX0pLHgpfWNhdGNoKEQpe31kZWxldGUgV2hbdF19Zm9yKHZhciB1IGluIFZoKWNbdV0mJmZkKFZoW3VdLCEwKTsodT1jLnN0YXR1c0Vycm9yQ29kZSkmJmVkKFwicy5lQ1wiLHBhcnNlSW50KHUsMTApKTtmZChcInMuYlwiLCEhYy5zdGF0dXNCbG9ja2VkKTtNYSgpLmRhdGEuaXNpJiZmZChcInMuaVNJXCIsITApO1FhKGYpJiZmZChcImFELlwiK2UsITApO2RkKCl9emk9Qih6aSxcInBBSlwiKTtmdW5jdGlvbiBBaShhKXt2YXIgYj1bXSxjO2ZvcihjIGluIFRoKXt2YXIgZD1hW2NdO2lmKGQpe2Zvcih2YXIgZT1UaFtjXSxmPTA7ZjxkLmxlbmd0aDtmKyspZFtmXS50eXBlPVwiYWRfZGF0YVwiPT1jP1VoW2RbZl0uYWR0eXBlXTplO2I9Yi5jb25jYXQoZCl9fXJldHVybiBifUFpPUIoQWksXCJjQUFcIik7XG5mdW5jdGlvbiBDaShhKXtyZXR1cm4gTGgoYSl9Q2k9QihDaSxcImNQQVRPXCIpO2Z1bmN0aW9uIERpKGEsYixjKXtyaSYmeihcIl9vcHRpbWl6ZUZyYW1lTWVhc3VyZW1lbnRcIil8fCh3aW5kb3cuc1BIPWZ1bmN0aW9uKCl7R2UoYSl9KTt3aW5kb3cubVBBQVNIPWZ1bmN0aW9uKCl7bmkoYSxiLGMpfTtyZXR1cm4gbmkoYSxiLGMpfURpPUIoRGksXCJzQ0ZDXCIpO2Z1bmN0aW9uIEVpKGEsYil7dmFyIGM9SWEoKSxkPUNpKGMuY2FwcyksZT14aShiLGEpO3ppKGMsZSxkKTthPURpKGUsZCxjKTtTYSgpLmRhdGEuaG0mJndpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLGZ1bmN0aW9uKGYpe2Y9Zi5kYXRhLnNwbGl0KFwiOlwiKTsyPT1mLmxlbmd0aCYmXCJvcmllbnRhdGlvblwiPT1mWzBdJiZHZShlKX0pO3JldHVybiBhfUVpPUIoRWksXCJyYWFcIik7ZnVuY3Rpb24gRmkoYSxiKXtHaSgpO3JldHVybiBFaShhLkJjLGIpfUZpPUIoRmksXCJpbml0XCIpO1xuZnVuY3Rpb24gbWkoKXt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIiksYj1hLnF1ZXJ5U2VsZWN0b3IoXCIjc3NyYWQtbWFzdGVyXCIpLGM9YS5xdWVyeVNlbGVjdG9yQWxsKCdbaWRePVwic3NyYWQtbWFzdGVyLVwiXScpO2E9W107YiYmYS5wdXNoKGIpO2I9bihjKTtmb3IoYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpKGM9Yy52YWx1ZSkmJmEucHVzaChjKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIGVpKGEsYil7YT1uKGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJhXCIpKTtmb3IodmFyIGM9YS5uZXh0KCksZD17fTshYy5kb25lO2Q9e0NiOmQuQ2IsRGI6ZC5EYn0sYz1hLm5leHQoKSljPWMudmFsdWUsZC5DYj1UZChjLmhyZWYsZW5jb2RlVVJJQ29tcG9uZW50KGJbYi5uYW1lXS5yZXN1bHRzUGFnZVF1ZXJ5UGFyYW0pKSxkLkRiPVRkKGMuaHJlZixlbmNvZGVVUklDb21wb25lbnQoXCJhZmRUb2tlblwiKSksZC5DYiYmZC5EYj8oYy5zZXRBdHRyaWJ1dGUoXCJ0YXJnZXRcIixcIl9zZWxmXCIpLGMuaHJlZj1cIiNcIixjLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGZ1bmN0aW9uKGUpe3JldHVybiBlLnByZXZlbnREZWZhdWx0KCl9KSxpZyhjLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe2NkKFwicnNyY1wiLHtxOmUuQ2IscnNUb2tlbjplLkRiLHVpZDpEYXRlLm5vdygpfSxVYy5qKTtkZCgpfX0oZCkpKTpDLmxvZyhcIkNvdWxkIG5vdCBwYXJzZSBxdWVyeSBvciByc1Rva2VuIGZyb20gdXJsOiBcIitcbmMuaHJlZixcInJSSFdDXCIpfWVpPUIoZWksXCJyUkhXQ1wiKTtmdW5jdGlvbiBHaSgpe2NkKFwiaXRcIixkb2N1bWVudC50aXRsZSxUYy5qKTtkZCgpfUdpPUIoR2ksXCJzZXRUaXRsZVwiKTtcbmZ1bmN0aW9uIHBpKGEpe2Z1bmN0aW9uIGIoZCxlKXtyZXR1cm57dHlwZTpkLHRvdWNoZXM6ZX19ZnVuY3Rpb24gYyhkKXt2YXIgZT17fSxmO2ZvcihmIGluIGQpXCJ0YXJnZXRcIiE9PWYmJihlW2ZdPWRbZl0pO3JldHVybiBlfWEuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixmdW5jdGlvbihkKXt2YXIgZT1bXS5jb25jYXQoa2EoZC50b3VjaGVzKSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybiBjKGYpfSk7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShiKGQudHlwZSxlKSxcIipcIil9KTthLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIixmdW5jdGlvbihkKXt2YXIgZT1bXS5jb25jYXQoa2EoZC50b3VjaGVzKSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybiBjKGYpfSk7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShiKGQudHlwZSxlKSxcIipcIil9KTthLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLGZ1bmN0aW9uKGQpe3ZhciBlPVxuW10uY29uY2F0KGthKGQudG91Y2hlcykpLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gYyhmKX0pO3dpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoYihkLnR5cGUsZSksXCIqXCIpfSk7YS5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hjYW5jZWxcIixmdW5jdGlvbihkKXt2YXIgZT1bXS5jb25jYXQoa2EoZC50b3VjaGVzKSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybiBjKGYpfSk7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShiKGQudHlwZSxlKSxcIipcIil9KX1waT1CKHBpLFwicFRFVFBQXCIpO1xuZnVuY3Rpb24gaWkoYSl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIm1ldGFcIik7Yi5odHRwRXF1aXY9XCJvcmlnaW4tdHJpYWxcIjtiLmNvbnRlbnQ9XCJBNFRWRDBvRG9SVW5CWmdZRGROVkFSWUlQU21KZ3lTRXNZZFBBTlJycmdRN1FpdFBzT3R5MGVaSUJzamxIRkZKd0RGVS84UW1uUkYya0w1eGI0UlA5UTRBQUFDRWV5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwzZDNkeTVuYjI5bmJHVXVZMjl0T2pRME15SXNJbVpsWVhSMWNtVWlPaUpRY21sMllXTjVVMkZ1WkdKdmVFRmtjMEZRU1hNaUxDSmxlSEJwY25raU9qRTJPVFV4TmpjNU9Ua3NJbWx6VTNWaVpHOXRZV2x1SWpwMGNuVmxMQ0pwYzFSb2FYSmtVR0Z5ZEhraU9uUnlkV1Y5XCI7YS5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGIpfWlpPUIoaWksXCJhTkNPVFwiKTtcbmZ1bmN0aW9uIEJpKGEsYil7dmFyIGM9bnVsbDthPW4oYSk7Zm9yKHZhciBkPWEubmV4dCgpOyFkLmRvbmU7ZD1hLm5leHQoKSlpZihkPWQudmFsdWUsZC5oYXNBdHRyaWJ1dGUoXCJkYXRhLWlzLWV2XCIpJiYoZD1wYXJzZUludChkLmdldEF0dHJpYnV0ZShcImRhdGEtaXMtZXZcIiksMTApLG51bGw9PT1jfHxkPmMpKWM9ZDtudWxsIT09YyYmZmQoYitcIi5lVlwiLDE9PT1jKX1CaT1CKEJpLFwic0lFVkZTXCIpO2Z1bmN0aW9uIGRpKGEsYil7XCJ0cFwiaW4gYSYmY2QoYitcIi5wdHBcIixhLnRwLFVjLmopfWRpPUIoZGksXCJzUFRQXCIpO2Z1bmN0aW9uIEhpKGEsYil7dGhpcy5kYT1hO3RoaXMudWI9Yn1IaS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuZGEuSCgpK1wiIChvbmUgYnkgaXRzZWxmLCBvciBtdWx0aXBsZSBpbiBhbiBBcnJheVwiO3RoaXMudWImJihhKz1cIiB3aXRoIGZld2VyIHRoYW4gXCIrKHRoaXMudWIrMSkrXCIgZWxlbWVudHNcIik7cmV0dXJuIGErXCIpXCJ9O0hpLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe2E9QXJyYXkuaXNBcnJheShhKT9hOlthXTtpZih0aGlzLnViJiZhLmxlbmd0aD50aGlzLnViKXJldHVybiBudWxsO2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPXRoaXMuZGEuRChhW2NdKTtpZihudWxsPT1kKXJldHVybiBudWxsO2IucHVzaChkKX1yZXR1cm4gMD09Yi5sZW5ndGg/bnVsbDpifTtIaS5wcm90b3R5cGUuRz1mdW5jdGlvbihhKXthPXRoaXMuRChhKTtyZXR1cm4gbnVsbD09YXx8MT5hLmxlbmd0aD9udWxsOnRoaXMuZGEuRyhhWzBdKX07ZnVuY3Rpb24gSWkoKXt9SWkucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm5cInRydWUsIGZhbHNlXCJ9O0lpLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe3JldHVybiAwPT09YXx8MT09PWE/MT09PWE6XCJ0cnVlXCI9PWF8fFwib25cIj09YXx8MT09YT8hMDpcImZhbHNlXCI9PWF8fFwib2ZmXCI9PWF8fCExPT09YT8hMTpudWxsfTtJaS5wcm90b3R5cGUuRz1mdW5jdGlvbihhKXthPXRoaXMuRChhKTtyZXR1cm4gbnVsbD09YT9udWxsOmE/MTowfTt2YXIgUD1uZXcgSWk7ZnVuY3Rpb24gUShhLGIpe3RoaXMuS2E9TWF0aC5jZWlsKGEpO3RoaXMuSmE9TWF0aC5mbG9vcihiKX1RLnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuS2ErXCIgLSBcIit0aGlzLkphfTtRLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe2E9cGFyc2VJbnQoYSwxMCk7cmV0dXJuIGE+PXRoaXMuS2EmJmE8PXRoaXMuSmE/YTpudWxsfTtRLnByb3RvdHlwZS5HPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLkQoYSl9O2Z1bmN0aW9uIEppKCl7fUppLnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuXCJBIGZ1bmN0aW9uXCJ9O0ppLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhPyEwOiExfTtKaS5wcm90b3R5cGUuRz1mdW5jdGlvbigpe3JldHVybiBudWxsfTt2YXIgS2k9bmV3IEppO3ZhciBMaT0vIyguKSguKSguKS87ZnVuY3Rpb24gTWkoYSl7aWYoIU5pLnRlc3QoYSkpdGhyb3cgRXJyb3IoXCInXCIrYStcIicgaXMgbm90IGEgdmFsaWQgaGV4IGNvbG9yXCIpOzQ9PWEubGVuZ3RoJiYoYT1hLnJlcGxhY2UoTGksXCIjJDEkMSQyJDIkMyQzXCIpKTtyZXR1cm4gYS50b0xvd2VyQ2FzZSgpfXZhciBOaT0vXiMoPzpbMC05YS1mXXszfSl7MSwyfSQvaSxPaT0vXig/OnJnYik/XFwoKDB8WzEtOV1cXGR7MCwyfSksXFxzPygwfFsxLTldXFxkezAsMn0pLFxccz8oMHxbMS05XVxcZHswLDJ9KVxcKSQvaTt2YXIgUGk9e2JsYWNrOlwiIzAwMDAwMFwiLGJsdWU6XCIjMDAwMGZmXCIsZGFya29yYW5nZTpcIiNmZjhjMDBcIixkYXJrcmVkOlwiIzhiMDAwMFwiLGZ1Y2hzaWE6XCIjZmYwMGZmXCIsZ3JheTpcIiM4MDgwODBcIixncmVlbjpcIiMwMDgwMDBcIixncmV5OlwiIzgwODA4MFwiLG9yYW5nZTpcIiNmZmE1MDBcIixyZWQ6XCIjZmYwMDAwXCIscm95YWxibHVlOlwiIzQxNjllMVwiLHNreWJsdWU6XCIjODdjZWViXCIsd2hpdGU6XCIjZmZmZmZmXCIsd2hpdGVzbW9rZTpcIiNmNWY1ZjVcIix5ZWxsb3c6XCIjZmZmZjAwXCJ9O2Z1bmN0aW9uIFFpKGEpe3RoaXMuZWQ9YX1RaS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3ZhciBhPVwiQSBoZXhhZGVjaW1hbCBjb2xvciBzdHJpbmdcIjt0aGlzLmVkJiYoYSs9XCIgb3IgJ3RyYW5zcGFyZW50J1wiKTtyZXR1cm4gYX07XG5RaS5wcm90b3R5cGUuRD1mdW5jdGlvbihhKXt2YXIgYj1sYihcIlwiK2EpLnRvTG93ZXJDYXNlKCk7aWYodGhpcy5lZCYmXCJ0cmFuc3BhcmVudFwiPT1iKXJldHVyblwidHJhbnNwYXJlbnRcIjtpZihQaVtiXSlyZXR1cm4gUGlbYl07YT1udWxsO3RyeXthPU1pKFwiI1wiPT1iLmNoYXJBdCgwKT9iOlwiI1wiK2IpfWNhdGNoKHApe31pZighYSl0cnl7YTp7dmFyIGM9Yi5tYXRjaChPaSk7aWYoYyl7dmFyIGQ9TnVtYmVyKGNbMV0pLGU9TnVtYmVyKGNbMl0pLGY9TnVtYmVyKGNbM10pO2lmKDA8PWQmJjI1NT49ZCYmMDw9ZSYmMjU1Pj1lJiYwPD1mJiYyNTU+PWYpe3ZhciBnPVtkLGUsZl07YnJlYWsgYX19Zz1bXX1pZighZy5sZW5ndGgpdGhyb3cgRXJyb3IoYitcIiBpcyBub3QgYSB2YWxpZCBSR0IgY29sb3JcIik7dmFyIGg9Z1swXSxrPWdbMV0sbD1nWzJdO2g9TnVtYmVyKGgpO2s9TnVtYmVyKGspO2w9TnVtYmVyKGwpO2lmKGghPShoJjI1NSl8fGshPShrJjI1NSl8fGwhPShsJjI1NSkpdGhyb3cgRXJyb3IoJ1wiKCcrXG5oK1wiLFwiK2srXCIsXCIrbCsnXCIpIGlzIG5vdCBhIHZhbGlkIFJHQiBjb2xvcicpO2s9aDw8MTZ8azw8OHxsO2E9MTY+aD9cIiNcIisoMTY3NzcyMTZ8aykudG9TdHJpbmcoMTYpLnNsaWNlKDEpOlwiI1wiK2sudG9TdHJpbmcoMTYpfWNhdGNoKHApe31yZXR1cm4gYX07UWkucHJvdG90eXBlLkc9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07dmFyIFJpPW5ldyBRaSghMSksU2k9bmV3IFFpKCEwKTtmdW5jdGlvbiBUaShhKXt0aGlzLmRhPWF9VGkucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYS5IKCkrXCIgKG9uZSBvciBtb3JlLCBjb21tYSBzZXBhcmF0ZWQpXCJ9O1RpLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe2E9VWkoYSk7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9dGhpcy5kYS5EKGFbY10pO251bGwhPWQmJmIucHVzaChkKX1yZXR1cm4gMD09Yi5sZW5ndGg/bnVsbDpiLmpvaW4oXCIsXCIpfTtUaS5wcm90b3R5cGUuRz1mdW5jdGlvbihhKXthPVVpKGEpO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKXt2YXIgYz10aGlzLmRhLkcoYVtiXSk7aWYobnVsbCE9YylyZXR1cm4gY31yZXR1cm4gbnVsbH07ZnVuY3Rpb24gVWkoYSl7aWYoXCJzdHJpbmdcIiE9PXR5cGVvZiBhKXJldHVybltdO2E9YS5zcGxpdChcIixcIik7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKyliLnB1c2gobGIoYVtjXSkpO3JldHVybiBifTtmdW5jdGlvbiBWaShhLGIpe2I9dm9pZCAwPT09Yj8wOmI7dGhpcy5YYz1hO3RoaXMuWWM9e307Zm9yKGE9MDthPHRoaXMuWGMubGVuZ3RoO2ErKyl7dmFyIGM9dGhpcy5YY1thXTt0aGlzLlljW2MudG9Mb3dlckNhc2UoKV09bmV3IFdpKGMsYithKX19VmkucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YYy5qb2luKFwiLCBcIikrXCIgKGNhc2UgaW5zZW5zaXRpdmUpXCJ9O2Z1bmN0aW9uIFhpKGEsYil7aWYoIWJ8fFwic3RyaW5nXCIhPT10eXBlb2YgYilyZXR1cm4gWWk7Yj1iLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGEuWWMuaGFzT3duUHJvcGVydHkoYik/YS5ZY1tiXTpZaX1WaS5wcm90b3R5cGUuRD1mdW5jdGlvbihhKXtyZXR1cm4gWGkodGhpcyxhKS56Zn07VmkucHJvdG90eXBlLkc9ZnVuY3Rpb24oYSl7cmV0dXJuIFhpKHRoaXMsYSkuaWR9O2Z1bmN0aW9uIFdpKGEsYil7dGhpcy56Zj1hO3RoaXMuaWQ9Yn12YXIgWWk9bmV3IFdpKG51bGwsbnVsbCk7dmFyIFppPS9eXFxkK3B4JC9pLCRpPS9eXFxkKyUkLyxhaj0vXlswLTldK1xcLlswLTldezEsfSQvO2Z1bmN0aW9uIGJqKCl7fWJqLnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuXCJXaWR0aCBpbiBweCAoZS5nLiAnNTAwcHgnKSBvciAnYXV0bydcIn07YmoucHJvdG90eXBlLkQ9ZnVuY3Rpb24oYSl7dmFyIGI9Y2ooYSk7cmV0dXJuIG51bGwhPWI/YitcInB4XCI6XCJzdHJpbmdcIiE9PXR5cGVvZiBhfHxcImF1dG9cIiE9YSYmISRpLnRlc3QoYSk/bnVsbDphfTtiai5wcm90b3R5cGUuRz1mdW5jdGlvbihhKXtyZXR1cm4gY2ooYSl9O2Z1bmN0aW9uIGNqKGEpe3ZhciBiOyhiPVwibnVtYmVyXCI9PT10eXBlb2YgYSl8fChiPVwic3RyaW5nXCI9PT10eXBlb2YgYSYmKCEvW14wLTldLy50ZXN0KGEpfHxhai50ZXN0KGEpfHxaaS50ZXN0KGEpKSk7cmV0dXJuIGI/KGE9cGFyc2VJbnQoYSwxMCksaXNOYU4oYSk/bnVsbDphKTpudWxsfXZhciBkaj1uZXcgYmo7ZnVuY3Rpb24gZWooKXt9ZWoucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm5cIkEgc3RyaW5nXCJ9O2VqLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe3JldHVyblwic3RyaW5nXCI9PT10eXBlb2YgYT9hOm51bGx9O2VqLnByb3RvdHlwZS5HPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O3ZhciBmaj1uZXcgZWo7dmFyIGdqPS9eWzAtOWEtekEtWl0qJC87ZnVuY3Rpb24gaGooKXt9aGoucHJvdG90eXBlLkc9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07aGoucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm5cIkEgc3R5bGUgaWRcIn07aGoucHJvdG90eXBlLkQ9ZnVuY3Rpb24oYSl7cmV0dXJuKFwic3RyaW5nXCI9PT10eXBlb2YgYXx8XCJudW1iZXJcIj09PXR5cGVvZiBhJiYhTnVtYmVyLmlzTmFOKGEpKSYmZ2oudGVzdChhKT9cIlwiK2E6bnVsbH07ZnVuY3Rpb24gaWooKXt9aWoucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm5cIkFuIGh0dHAocykgdXJsXCJ9O2lqLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe3JldHVyblwic3RyaW5nXCI9PT10eXBlb2YgYSYmamoudGVzdChhKT9hOm51bGx9O2lqLnByb3RvdHlwZS5HPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O3ZhciBqaj0vXigoaHR0cHM/KTopP1xcL1xcLyhbYS16QS1aMC05fiFAI1xcJCZcXCpcXChcXClfXFwrXFwtPTo7JyxcXC5cXD9cXC8lXSopJC8sa2o9bmV3IGlqO3ZhciBsaj1uZXcgUSgyLDQwMCksbWo9bmV3IFEoMCw0MDApLG5qPW5ldyBRKDgsNTApLG9qPW5ldyBUaShuZXcgVmkoXCJ2ZXJkYW5hO2FyaWFsO3RhaG9tYTt0aW1lcyBuZXcgcm9tYW47Z2VvcmdpYTt0cmVidWNoZXQgbXM7bWVpcnlvO21zIGdvdGhpYztyb2JvdG87aGVsdmV0aWNhIG5ldWVcIi5zcGxpdChcIjtcIiksMSkpLHBqPW5ldyBUaShuZXcgVmkoW1wicmlnaHRcIixcImxlZnRcIixcInRvcFwiLFwiYm90dG9tXCJdKSksUj17fSxxaj0oUi5hZHNhZmU9e2c6bmV3IFZpKFtcIm9mZlwiLFwibG93XCIsXCJtZWRcIixcImhpZ2hcIl0pLHljOiEwfSxSLmFkdGVzdD17ZzpQLHljOiEwfSxSLmFkVGVzdD17ZzpQLHljOiEwfSxSLmNsaWNrdHJhY2tVcmw9e2c6bmV3IEhpKGtqKX0sUi5jb250YWluZXI9e2c6Zmp9LFIuc3R5bGVJZD17ZzpuZXcgaGp9LFIucGVyc29uYWxpemVkQWRzPXtnOlB9LFIucGVyc29uYWxpc2VkQWRzPXtnOlB9LFIuYWRwYWdlPXt9LFIuYWRQYWdlPXt9LFIuYWRzUmVzcG9uc2VDYWxsYmFjaz1cbnt9LFIuYmdyZXNwb25zZT17fSxSLmNoYW5uZWw9e30sUi5jbXBTZGtJZD17fSxSLmNvbnRhaW5lcj17fSxSLmNyZWY9e30sUi5jeD17fSxSLmRlYj17fSxSLmRlYnVnPXt9LFIuZG9tYWluTmFtZT17fSxSLmU9e30sUi5leHBmbGFncz17fSxSLmZha2VhZHM9e30sUi5mY2FwPXt9LFIuZmV4cD17fSxSLmZvcmNlRXg9e30sUi5nY3NjPXt9LFIuZ2RwckFwcGxpZXM9e30sUi5pZnJhbWVIZWlnaHRDYWxsYmFjaz17fSxSLmpzU3JjPXt9LFIubWFzdGVyTnVtYmVyPXt9LFIubXM9e30sUi5ub0FkTG9hZGVkQ2FsbGJhY2s9e30sUi5udW1iZXI9e30sUi5wcm9wZXJ0eUNvZGU9e30sUi5wdWJJZD17fSxSLnF1ZXJ5PXt9LFIucm9sZT17fSxSLnJvd2tleVYyPXt9LFIuc2JzaWduYWxzPXt9LFIuc2V0dGluZ3NJZD17fSxSLnNsYXZlTnVtYmVyPXt9LFIuc291cmNlPXt9LFIuc291cmNlX2lwPXt9LFIudGNTdHJpbmc9e30sUi51aWRlYj17fSxSLnVzZXJBZ2VudD17fSxSLnVzUHJpdmFjeT17fSxcblIudXVsZD17fSxSLnNjdD17fSxSLnNjX3N0YXR1cz17fSxSLmFkTG9hZGVkQ2FsbGJhY2s9e2c6S2l9LFIuYWRSZXF1ZXN0VXJsUGFyYW1zPXtnOmZqfSxSLmhsPXtnOmZqfSxSLmNwcD17fSxSLmFkZmlsaWF0ZVdwPXtnOmZqfSxSLmhvdHN3YXBzPXt9LFIpLFM9e30scmo9KFMuY29sb3JUZXh0PXtnOlJpLEM6ITAsQTohMH0sUy5jb2xvclRpdGxlTGluaz17ZzpSaSxDOiEwLEE6ITB9LFMuY29sb3JCb3JkZXI9e2c6UmksQzohMCxBOiEwfSxTLmNvbG9yQXR0cmlidXRpb249e2c6UmksQTohMH0sUy5mb250RmFtaWx5PXtnOm9qLEM6ITAsQTohMH0sUy5mb250RmFtaWx5QXR0cmlidXRpb249e2c6b2osQTohMH0sUy50aXRsZUJvbGQ9e2c6UCxDOiEwLEE6ITB9LFMucm9sbG92ZXJMaW5rQm9sZD17ZzpQLEM6ITAsQTohMH0sUy5yb2xsb3ZlckxpbmtDb2xvcj17ZzpSaSxDOiEwLEE6ITB9LFMucm9sbG92ZXJMaW5rQmFja2dyb3VuZENvbG9yPXtnOlJpLEM6ITAsQTohMH0sUy5yb2xsb3ZlckxpbmtVbmRlcmxpbmU9XG57ZzpQLEM6ITAsQTohMH0sUy5ub1RpdGxlVW5kZXJsaW5lPXtnOlAsQTohMH0sUy5hZEJvcmRlclNlbGVjdGlvbnM9e2c6cGosQTohMH0sUy5ib3JkZXJTZWxlY3Rpb25zPXtnOnBqLEE6ITB9LFMucG9zaXRpb249e2c6bmV3IFZpKFtcInRvcFwiLFwicmlnaHRcIixcImJvdHRvbVwiXSl9LFMuY3NlR29vZ2xlSG9zdGluZz17ZzpuZXcgVmkoW1wiZnVsbFwiLFwiaWZyYW1lXCIsXCJwYXJ0bmVyXCJdKX0sUy5hZEljb25Vcmw9e2c6a2osQTohMH0sUy5hZEljb25XaWR0aD17ZzpsaixBOiEwfSxTLmFkSWNvbkhlaWdodD17ZzpsaixBOiEwfSxTLmFkSWNvblNwYWNpbmdBYm92ZT17ZzptaixDOiEwLEE6ITB9LFMuYWRJY29uU3BhY2luZ0JlZm9yZT17ZzptaixBOiEwfSxTLmFkSWNvblNwYWNpbmdBZnRlcj17ZzptaixBOiEwfSxTLmFkSWNvblNwYWNpbmdCZWxvdz17ZzptaixBOiEwfSxTLmxpbmVIZWlnaHRUaXRsZT17ZzpuaixBOiEwfSxTLndhaXRGb3JBZHM9e2c6UH0sUy5oZWlnaHRDb25zdHJhaW5lZD1cbntnOlAsYmE6XCJoY1wifSxTLndpZHRoPXtnOmRqLGJhOlwid2lcIixDOiEwfSxTLmF0dHJpYnV0aW9uU3BhY2luZ0JlbG93PXtnOm5ldyBRKDAsNDApLEE6ITB9LFMucmVzdWx0c1BhZ2VCYXNlVXJsPXtnOmtqfSxTLmNvbHVtbnM9e2c6bmV3IFEoMSwyMCksYWE6MX0sUy5jb2x1bW5TcGFjaW5nPXtnOm5ldyBRKDIsMTAwKX0sUy5ob3Jpem9udGFsRmxvdz17ZzpQfSxTLmhvcml6b250YWxBbGlnbm1lbnQ9e2c6bmV3IFZpKFtcImNlbnRlclwiLFwibGVmdFwiLFwicmlnaHRcIl0pLGFhOlwibGVmdFwifSxTLnJlc3VsdHNQYWdlUXVlcnlQYXJhbT17ZzpmaixhYTpcInF1ZXJ5XCJ9LFMucnVybE92ZXJyaWRlPXtnOmZqfSxTLnRlcm1zPXtnOmZqfSxTLmt3PXtnOmZqfSxTLnJlZmVycmVyQWRDcmVhdGl2ZT17Zzpman0sUy5yZWxhdGVkU2VhcmNoUmVzdWx0Q2xpY2tlZENhbGxiYWNrPXtnOktpfSxTLnJlbGF0ZWRTZWFyY2hVc2VSZXN1bHRDYWxsYmFjaz17ZzpQfSxTLmFkc3R5bGU9e30sUy5hZmRUb2tlbj17fSxcblMuYXR0bWFzPXt9LFMuZ2NzPXt9LFMuZ2NzZV9uYz17fSxTLmdsPXt9LFMuZ2xwPXt9LFMuZ209e30sUy5ncj17fSxTLmllPXt9LFMubWF4VGVybUxlbmd0aD17fSxTLm1heFRvcD17fSxTLm1pblRvcD17fSxTLm51bVJlcGVhdGVkPXt9LFMub2U9e30sUy5xdWVyeUNvbnRleHQ9e30sUy5xdWVyeUxpbms9e30sUy5yZWZlcnJlcj17fSxTLnJlbGF0ZWRTZWFyY2hlcz17fSxTLnZpc2libGVVcmxzQ2FsbGJhY2s9e30sUyk7ZnVuY3Rpb24gc2ooKXt9c2oucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm5cIkEgd2ViIGZvbnRcIn07c2oucHJvdG90eXBlLkQ9ZnVuY3Rpb24oYSl7cmV0dXJuXCJzdHJpbmdcIiE9PXR5cGVvZiBhfHwvW15hLXpBLVowLTkgXS8udGVzdChhKT9udWxsOmF9O3NqLnByb3RvdHlwZS5HPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O3ZhciB0aj1uZXcgc2o7dmFyIHVqPW5ldyBRKDEwLGpkKSx2aj17fSx3aj0odmoudHlwZT17ZzpuZXcgVmkoW1wiYWRzXCIsXCJ0ZXh0YWRzXCIsXCJyZWxhdGVkc2VhcmNoXCIsXCJzZWFyY2hib3hcIixcImR5bmFtaWNcIl0pfSx2ai5saW5rVGFyZ2V0PXtnOm5ldyBWaShbXCJfdG9wXCIsXCJfYmxhbmtcIl0pLGFhOlwiX2JsYW5rXCIsQzohMH0sdmoudmVydGljYWxTcGFjaW5nPXtnOm5ldyBRKDIsMjQpfSx2ai5mb250U2l6ZVRpdGxlPXtnOlhkLEM6ITAsYWE6MTh9LHZqLmZvbnRTaXplQXR0cmlidXRpb249e2c6WGQsQzohMCxhYToxM30sdmopLFQ9e30seGo9KFQuY29sb3JBZFNlcGFyYXRvcj17ZzpSaSxBOiEwfSxULnJvbGxvdmVyQWRCYWNrZ3JvdW5kQ29sb3I9e2c6U2ksQzohMH0sVC5jb2xvckJhY2tncm91bmQ9e2c6U2ksQzohMH0sVC5oaWRlU2VhcmNoSW5wdXRCb3JkZXI9e2c6UH0sVC5oaWRlU2VhcmNoQnV0dG9uQm9yZGVyPXtnOlB9LFQuY29sb3JTZWFyY2hCb3g9e2c6U2l9LFQuY29sb3JTZWFyY2hCdXR0b249e2c6U2l9LFxuVC5jb2xvclNlYXJjaEJ1dHRvblRleHQ9e2c6U2l9LFQud2lkdGhTZWFyY2hJbnB1dD17ZzpuZXcgUSgxLDFFMyksQzohMH0sVC53aWR0aFNlYXJjaEJ1dHRvbj17ZzpuZXcgUSgxMDAsMUUzKSxDOiEwfSxULmZvbnRTaXplU2VhcmNoSW5wdXQ9e2c6dWp9LFQuZm9udFNpemVTZWFyY2hCdXR0b249e2c6dWp9LFQuaGVpZ2h0U2VhcmNoSW5wdXQ9e2c6bmV3IFEoMSw1MCl9LFQuaGVpZ2h0U2VhcmNoQnV0dG9uPXtnOm5ldyBRKDEsNTApfSxULmNvbG9yU2VhcmNoQnV0dG9uQm9yZGVyPXtnOlNpfSxULndpZHRoU2VhcmNoQnV0dG9uQm9yZGVyPXtnOm5ldyBRKDAsNSl9LFQucmFkaXVzU2VhcmNoSW5wdXRCb3JkZXI9e2c6bmV3IFEoMCwyMCl9LFQuYXR0cmlidXRpb25Cb2xkPXtnOlB9LFQuYXR0cmlidXRpb25VcHBlcmNhc2U9e2c6UH0sVC50aXRsZVVwcGVyY2FzZT17ZzpQfSxULndlYkZvbnRGYW1pbHk9e2c6dGp9LFQud2ViRm9udEZhbWlseUF0dHJpYnV0aW9uPXtnOnRqfSxULnVpT3B0aW1pemU9XG57ZzpQfSxULnVpX29wdGltaXplPXtnOlB9LFQuYWRCb3JkZXJXaWR0aD17ZzpuZXcgUSgwLDIwKX0sVC5yZWxhdGVkU2VhcmNoVGFyZ2V0aW5nPXtnOm5ldyBWaShhYihZZHx8W10pKX0sVC5kb21haW5SZWdpc3RyYW50PXt9LFQuZG9tYWluU2Vzc2lvblRva2VuPXt9LFQubGFuZ3VhZ2VDb2RlPXt9LFQucGFnZUxvYWRlZENhbGxiYWNrPXt9LFQuc2l6ZT17fSxULmhvc3RDaGFubmVsPXt9LFQuaG9zdFB1YklkPXt9LFQpLEJqPXt9O2dkKEJqLHFqKTtnZChCaixyaik7Z2QoQmosd2opO2dkKEJqLHhqKTtoZChCaixbW1wiY29udGFpbmVyXCJdLFwicm9sZVwiXSk7dmFyIENqPXtCYzpCan07dmFyIERqPXt9LEVqPShEai5yb2xsb3ZlckFkQmFja2dyb3VuZENvbG9yPXtnOlJpLEM6ITAsQTohMH0sRGouY29sb3JCYWNrZ3JvdW5kPXtnOlJpLEM6ITAsQTohMH0sRGoudmVydGljYWxTcGFjaW5nPXtnOm5ldyBRKDIsMzQpfSxEai50eXBlPXtnOm5ldyBWaShbXCJhZHNcIixcInJlbGF0ZWRzZWFyY2hcIl0pfSxEai5mb250U2l6ZVRpdGxlPXtnOlhkLEM6ITAsQTohMH0sRGouZm9udFNpemVBdHRyaWJ1dGlvbj17ZzpYZCxDOiEwLEE6ITB9LERqLmxpbmtUYXJnZXQ9e2c6bmV3IFZpKFtcIl90b3BcIixcIl9ibGFua1wiXSksYWE6XCJfdG9wXCIsQzohMH0sRGopLEZqPXt9O2dkKEZqLHFqKTtnZChGaixyaik7Z2QoRmosRWopO2hkKEZqLFtcInF1ZXJ5XCIsW1wiY29udGFpbmVyXCJdLFwicm9sZVwiXSk7dmFyIEdqPXt9LEhqPShHai5kaXNhYmxlQ2Fyb3VzZWw9e2c6UCxiYTpcImRjXCJ9LEdqLmVuYWJsZUludGVyYWN0aXZlPXtnOlAsYmE6XCJlaVwifSxHai5oZWlnaHQ9e2c6bmV3IFEoMCwxRTQpLGJhOlwiaGVcIn0sR2oubWVyY2hhbnRGaWx0ZXI9e30sR2oucHJpY2VDdXJyZW5jeT17fSxHai5wcmljZU1heD17fSxHai5wcmljZU1pbj17fSxHai5wcm9tb3RlZD17fSxHai50ZXN0Z2w9e30sR2oudGV4dENvbG9yUGFsZXR0ZT17fSxHai50aGVtZT17fSxHaiksSWo9e30sSmo9KElqLndpZHRoPXtnOm5ldyBRKDAsMUU0KSxiYTpcIndpXCJ9LElqLmxpbmtUYXJnZXQ9e2c6bmV3IFZpKFtcIl90b3BcIixcIl9ibGFua1wiXSksYWE6XCJfdG9wXCIsQzohMH0sSWoudHlwZT17ZzpuZXcgVmkoW1wicGxhc1wiXSl9LElqKSxLaj17fTtnZChLaixKaik7Z2QoS2oscWopO2dkKEtqLEhqKTtoZChLaixbW1wiY29udGFpbmVyXCJdLFtcImhlaWdodFwiXSxbXCJ3aWR0aFwiXSxcInF1ZXJ5XCIsXCJyb2xlXCJdKTt2YXIgTGo9e0JjOktqLFlhOlwicGxhc1wifTtmdW5jdGlvbiBNaigpe3ZhciBhPXdpbmRvdy5BRlNfQURfUkVRVUVTVF9SRVRVUk5fVElNRV87YSYmY2QoXCJpcnRcIixhK1wifFwiK0RhdGUubm93KCksVGMuaik7YT13aSh3aW5kb3cubmFtZSk7c3dpdGNoKChhW2EubmFtZV18fHt9KS50eXBlKXtjYXNlIFwicGxhc1wiOkZpKExqLGEpO2JyZWFrO2RlZmF1bHQ6RmkoQ2osYSl9c2V0VGltZW91dChmdW5jdGlvbigpe3RyeXt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInJlc3BvbnNlX2RlYnVnX291dHB1dFwiKTtpZihiKXt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFkQmxvY2tcIik7YyYmKGIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKSwwPT1jLmNoaWxkTm9kZXMubGVuZ3RoP2MuYXBwZW5kQ2hpbGQoYik6Yy5pbnNlcnRCZWZvcmUoYixjLmNoaWxkTm9kZXNbMF0pKX19Y2F0Y2goZCl7fX0sMCl9d2luZG93LklTX0dPT0dMRV9BRlNfSUZSQU1FXyYmTWooKTtmdW5jdGlvbiBOaihhLGIpe2I9dm9pZCAwPT09Yj97fTpiO3RoaXMuQ2E9YTt0aGlzLm1hPW51bGw7dGhpcy5BZD17fTt0aGlzLnFlPTA7dGhpcy5PYj1udWxsO3ZhciBjO3RoaXMudGltZW91dE1zPW51bGwhPShjPWIudGltZW91dE1zKT9jOjUwMH1zYShOaixoZyk7ZnVuY3Rpb24gT2ooYSl7dmFyIGI7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mKG51bGw9PShiPWEuQ2EpP3ZvaWQgMDpiLl9fdXNwYXBpKXx8bnVsbCE9YS5BYSgpfWZ1bmN0aW9uIFBqKGEsYil7dmFyIGM9e307aWYoT2ooYSkpe3ZhciBkPVdhKGZ1bmN0aW9uKCl7YihjKX0pO1FqKGEsZnVuY3Rpb24oZSxmKXtmJiYoYz1lKTtkKCl9KTtzZXRUaW1lb3V0KGQsYS50aW1lb3V0TXMpfWVsc2UgYihjKX1cbmZ1bmN0aW9uIFFqKGEsYil7dmFyIGM7XCJmdW5jdGlvblwiPT09dHlwZW9mKG51bGw9PShjPWEuQ2EpP3ZvaWQgMDpjLl9fdXNwYXBpKT8oYT1hLkNhLl9fdXNwYXBpLGEoXCJnZXRVU1BEYXRhXCIsMSxiKSk6YS5BYSgpJiYoUmooYSksYz0rK2EucWUsYS5BZFtjXT1iLGEubWEmJihiPXt9LGEubWEucG9zdE1lc3NhZ2UoKGIuX191c3BhcGlDYWxsPXtjb21tYW5kOlwiZ2V0VVNQRGF0YVwiLHZlcnNpb246MSxjYWxsSWQ6Y30sYiksXCIqXCIpKSl9TmoucHJvdG90eXBlLkFhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWE/dGhpcy5tYTp0aGlzLm1hPURoKHRoaXMuQ2EsXCJfX3VzcGFwaUxvY2F0b3JcIil9O1xuZnVuY3Rpb24gUmooYSl7YS5PYnx8KGEuT2I9ZnVuY3Rpb24oYil7dHJ5e3ZhciBjPShcInN0cmluZ1wiPT09dHlwZW9mIGIuZGF0YT9KU09OLnBhcnNlKGIuZGF0YSk6Yi5kYXRhKS5fX3VzcGFwaVJldHVybjt2YXIgZDtudWxsPT0oZD1hLkFkKXx8ZFtjLmNhbGxJZF0oYy5yZXR1cm5WYWx1ZSxjLnN1Y2Nlc3MpfWNhdGNoKGUpe319LEJoKGEuQ2EsXCJtZXNzYWdlXCIsYS5PYikpfTt2YXIgVGo9RShmdW5jdGlvbigpe3ZhciBhPSRiKFwidWF0bVwiKSxiPW51bGwhPWE/YTo1O2E9bmV3IE5qKHdpbmRvdyk7cmV0dXJuIE9qKGEpPyhhPVNqKGEpLFByb21pc2UucmFjZShbYSxyZShiLDQpXSkudGhlbihmdW5jdGlvbihjKXtyZXR1cm4gMj09PWM/e0FiOiExLGNhOmN9OjQ9PT1jPyhjb25zb2xlLndhcm4oXCJSZWFjaGVkXCIrYitcIm1zIHRpbWVvdXQgYW5kIGJlZm9yZSBVU1AgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkLlwiKSx7QWI6ITEsY2E6Y30pOjY9PT1jP3tBYjohMSxjYTpjfTp7QWI6ITAsY2E6Y319KSk6bnVsbH0sXCJnQ0FEXCIpO1xuZnVuY3Rpb24gU2ooYSl7ZnVuY3Rpb24gYihkKXtkJiZcInN0cmluZ1wiPT09dHlwZW9mIGQudXNwU3RyaW5nP2MucmVzb2x2ZShVaihkLnVzcFN0cmluZykpOmMucmVzb2x2ZSgzKX12YXIgYz1wZSgpO3RyeXtQaihhLGIpfWNhdGNoKGQpe2MucmVzb2x2ZSg2KSxjb25zb2xlLndhcm4oXCJVU1AgcmV0dXJuZWQgZXJyb3Igc3RhdHVzOiBcIitkKX1yZXR1cm4gYy5wcm9taXNlfWZ1bmN0aW9uIFVqKGEpe2lmKC9eWzEtOV1bbnlOWVxcLV1bbnlOWV1bbnlOWVxcLV0kLy50ZXN0KGEpKXt2YXIgYj1hLmNoYXJBdCgyKTtpZigvXll8eS8udGVzdChiKSlyZXR1cm4gMjtpZigvXk58bi8udGVzdChiKSlyZXR1cm4gMX1pZihcIjEtLS1cIj09PWEpcmV0dXJuIDU7Yj1cIjM6XCIrYTtjb25zb2xlLndhcm4oXCJDQ1BBIFVTIFByaXZhY3kgc3RyaW5nIFwiK2ErXCIgaXMgbWFsZm9ybWVkIGFuZCBwZXJzb25hbGl6YXRpb24gaW50ZW50IHdhcyB1bmFibGUgdG8gYmUgZmV0Y2hlZC5cIik7cmV0dXJuIGJ9O2Z1bmN0aW9uIFZqKCl7fVZqLnByb3RvdHlwZS5EYT1mdW5jdGlvbigpe3JldHVybiBvYygpfTtWai5wcm90b3R5cGUudWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBxYyh0aGlzLkRhKGEpK1wiL2Fmcy9hZHNcIil9O1ZqLnByb3RvdHlwZS54Yz1mdW5jdGlvbigpe3JldHVybiExfTtmdW5jdGlvbiBXaihhLGIsYyxkKXt0aGlzLk5kPWE7dGhpcy5UYj1iO3RoaXMuV2E9Yzt0aGlzLnlkPWQ7dGhpcy5LYj0hMTt0aGlzLmtjPTB9ZnVuY3Rpb24gWGooYSxiLGMsZCl7ZD12b2lkIDA9PT1kP3t9OmQ7YS5OZC0tO2EuS2I9YS5LYnx8YjtjPmEua2MmJihhLmtjPWMpO2lmKDA9PWEuTmQpaWYoYS5LYil7aWYoYS5XYSl7Yj12b2lkIDA7c3dpdGNoKGEua2Mpe2Nhc2UgMjpiPSEwO2JyZWFrO2Nhc2UgMTpiPSExfXRyeXthLldhKGEuVGIsITAsYixkKX1jYXRjaChlKXt9fX1lbHNle2lmKGEueWQpdHJ5e2EueWQoYS5UYiwhMSx2b2lkIDAsZCl9Y2F0Y2goZSl7fWlmKGEuV2EpdHJ5e2EuV2EoYS5UYiwhMSx2b2lkIDAsZCl9Y2F0Y2goZSl7fX19O2Z1bmN0aW9uIFlqKCl7aWYoeihcIl9hZnNSc0Nvb2tpZWxlc3NcIil8fHooXCJfc3dpdGNoR3dzUmVxdWVzdFRvVXNlQ29va2llbGVzc0RvbWFpblwiKXx8eihcIl9zd2l0Y2hHd3NSZXF1ZXN0VG9Vc2VDb29raWVsZXNzRG9tYWluQ2hyb21lXCIpfHx6KFwiX2VuYWJsZU1jbUV4cGVyaW1lbnRcIikpcmV0dXJuIDA7aWYoXCJudW1iZXJcIj09PXR5cGVvZiB2LmV4cGVyaW1lbnRJZF8pcmV0dXJuIHYuZXhwZXJpbWVudElkXzt2YXIgYT1cIm9iamVjdFwiPT09dHlwZW9mIHRlc3RpbmdEYXRhXz90ZXN0aW5nRGF0YV8uZXhwZXJpbWVudE1vZDokYihcInJzbVwiKXx8MDt2LmV4cGVyaW1lbnRJZF89MDtpZigwPT09YSlyZXR1cm4gdi5leHBlcmltZW50SWRfO3ZhciBiPVwib2JqZWN0XCI9PT10eXBlb2YgdGVzdGluZ0RhdGFfP3Rlc3RpbmdEYXRhXy50aW1lSWQ6KG5ldyBEYXRlKS5nZXRUaW1lKCkudG9TdHJpbmcoKSxjPVwib2JqZWN0XCI9PT10eXBlb2YgdGVzdGluZ0RhdGFfP3Rlc3RpbmdEYXRhXy5sYXllcklkOlxuMTczMDEyNzMsZD0zNzM1OTI4NTU5XmM7Y149MTEwMzU0Nzk5MTtmb3IodmFyIGU9MCxmO2U8Yi5sZW5ndGg7ZSsrKWY9Yi5jaGFyQ29kZUF0KGUpLGQ9TWF0aC5pbXVsKGReZiwyNjU0NDM1NzYxKSxjPU1hdGguaW11bChjXmYsMTU5NzMzNDY3Nyk7ZD1NYXRoLmltdWwoZF5kPj4+MTYsMjI0NjgyMjUwNyk7ZF49TWF0aC5pbXVsKGNeYz4+PjEzLDMyNjY0ODk5MDkpO2M9TWF0aC5pbXVsKGNeYz4+PjE2LDIyNDY4MjI1MDcpO2NePU1hdGguaW11bChkXmQ+Pj4xMywzMjY2NDg5OTA5KTtiPSg0Mjk0OTY3Mjk2KigyMDk3MTUxJmMpKyhkPj4+MCkpJTFFMztiPGE/di5leHBlcmltZW50SWRfPVwib2JqZWN0XCI9PT10eXBlb2YgdGVzdGluZ0RhdGFfP3Rlc3RpbmdEYXRhXy5leHBlcmltZW50SWQ6MTczMDEzNjg6Yj49MUUzLWEmJih2LmV4cGVyaW1lbnRJZF89XCJvYmplY3RcIj09PXR5cGVvZiB0ZXN0aW5nRGF0YV8/dGVzdGluZ0RhdGFfLmNvbnRyb2xJZDoxNzMwMTM2Nyk7cmV0dXJuIHYuZXhwZXJpbWVudElkX31cbjt2YXIgWmo9d2luZG93O2Z1bmN0aW9uIGFrKGEsYil7YSYmbnVsbCE9PWImJmIhPWIudG9wJiYoYj1iLnRvcCk7dHJ5e3JldHVybiBHZChifHx3aW5kb3cpLnJvdW5kKCl9Y2F0Y2goYyl7cmV0dXJuIG5ldyBCZCgtMTIyNDU5MzMsLTEyMjQ1OTMzKX19O2Z1bmN0aW9uIFUoYSxiLGMsZCxlLGYsZyxoLGssbCl7bD12b2lkIDA9PT1sP1tdOmw7dGhpcy5JPWE7dGhpcy5MYT10aGlzLnpiPXRoaXMueWI9MDt0aGlzLm9wdGlvbnM9e307dGhpcy5jb250YWluZXI9bnVsbDt0aGlzLmZhPXZvaWQgMD09PWs/MTprO3RoaXMuUWE9Yzt0aGlzLlY9aHx8W107dGhpcy56ZD1lfHxudWxsO3RoaXMuSGE9dGhpcy5sZD10aGlzLmFiPSExO3RoaXMuVz1uZXcgdWMobnVsbCk7dGhpcy5UYz10aGlzLnVhPXRoaXMuQmE9dGhpcy5LZD1cIlwiO3RoaXMucWI9dGhpcy5MPSExO3RoaXMuc2Q9XCJcIjt0aGlzLlphPW5ldyBxYyhcIlwiKTt0aGlzLmphPWw7dGhpcy5OYz10aGlzLnRhPXRoaXMubGI9MDt0aGlzLkRmPWQ7dGhpcy55YT1udWxsO3RoaXMuY2Q9W107dGhpcy5SPXt9O3RoaXMuaWE9dGhpcy50Yj1udWxsO3RoaXMucmMoYixmLGcsaCl9bT1VLnByb3RvdHlwZTtcbm0uVmI9ZnVuY3Rpb24oYSl7aWYodGhpcy5MKXJldHVyblwibjBcIjt2YXIgYj10aGlzLnpiLGM9dGhpcy55YixkPXRoaXMuTGE7bnVsbCE9YSYmKGIrPVwibWluVG9wXCJpbiBhP2EubWluVG9wOjAsYys9XCJtYXhUb3BcImluIGE/YS5tYXhUb3A6MCxkKz1cInJoc1wiaW4gYT9hLnJoczowKTtpZihjJiZiPmMpdGhyb3cgRGMoXCJDYW5ub3QgcmVxdWVzdCBtb3JlIG1pblRvcCBhZHMgdGhhbiBtYXhUb3AuXCIpO3JldHVybigwPGQ/XCJuXCIrZDpcIlwiKSsoMDxjP1wicFwiK2M6XCJcIikrKDA8Yj9cImFcIitiOlwiXCIpfTttLlliPWZ1bmN0aW9uKGEsYil7YT10aGlzLlQoYSk7YiYmMDxiLmxlbmd0aCYmKGIuc3BsaWNlKDAsMCxhKSxhPWIuam9pbihcInxcIikpO3JldHVybiBhfTttLlQ9ZnVuY3Rpb24oYSl7dGhpcy5MYT1hLm51bWJlcjt2YXIgYjt0aGlzLnlifHx0aGlzLnpiP2I9XCJwXCI6dGhpcy5MYSYmKGI9XCJuXCIpO3JldHVyblwiXCIrYisodGhpcy55Ynx8dGhpcy56Ynx8dGhpcy5MYXx8MCl9O20uTWQ9ZnVuY3Rpb24oKXt9O1xuZnVuY3Rpb24gYmsoKXt2YXIgYTtyZXR1cm4hKG51bGw9PShhPWRvY3VtZW50LmZlYXR1cmVQb2xpY3kpfHwhYS5hbGxvd3NGZWF0dXJlKFwiYXR0cmlidXRpb24tcmVwb3J0aW5nXCIpKX1cbm0uWmM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXt9O2Euc2V0dGluZ3NJZCYmIWEuc3R5bGVJZCYmKGEuc3R5bGVJZD1hLnNldHRpbmdzSWQpO2RlbGV0ZSBhLnNldHRpbmdzSWQ7YS5oYXNPd25Qcm9wZXJ0eShcInBlcnNvbmFsaXNlZEFkc1wiKSYmKGEuaGFzT3duUHJvcGVydHkoXCJwZXJzb25hbGl6ZWRBZHNcIik/YS5wZXJzb25hbGl6ZWRBZHM9YS5wZXJzb25hbGlzZWRBZHMmJmEucGVyc29uYWxpemVkQWRzOmEucGVyc29uYWxpemVkQWRzPWEucGVyc29uYWxpc2VkQWRzKTthLmhhc093blByb3BlcnR5KFwicGVyc29uYWxpemVkQWRzXCIpJiZkZWxldGUgYS5wZXJzb25hbGlzZWRBZHM7YS5yZWZlcnJlckFkQ3JlYXRpdmUmJihhLmt3P2NvbnNvbGUud2FybihcIkNhbm5vdCBzZXQgYm90aCByZWZlcnJlckFkQ3JlYXRpdmUgYW5kIGt3LCBpZ25vcmluZyByZWZlcnJlckFkQ3JlYXRpdmVcIik6YS5rdz1hLnJlZmVycmVyQWRDcmVhdGl2ZSxkZWxldGUgYS5yZWZlcnJlckFkQ3JlYXRpdmUpO2EuY21wU2RrSWQmJlxuIWEudGNTdHJpbmcmJihhLnRjU3RyaW5nPVwidGN1bmF2YWlsYWJsZVwiKTsxPT1hLmdkcHJBcHBsaWVzP2EuZ2RwckFwcGxpZXM9ITA6MD09YS5nZHByQXBwbGllcyYmKGEuZ2RwckFwcGxpZXM9ITEpO2lmKGEudXNQcml2YWN5KXt2YXIgZT1VaihhLnVzUHJpdmFjeSk7YS5jcHA9ZTsyPT09ZSYmKGQucGVyc29uYWxpemVkQWRzPSExKX0hMD09PWEucGxhc0luQ2Fyb3VzZWw/ZC5wbGFzSW5DYXJvdXNlbD0xOiExPT09YS5wbGFzSW5DYXJvdXNlbCYmKGQucGxhc0luQ2Fyb3VzZWw9MCk7XCJwbGFzXCI9PWEudHlwZSYmYS5zdHlsZUlkJiYodGhpcy5JLndpZHRoLnZjPSExLHRoaXMuSS5oZWlnaHQudmM9ITEpO2U9bihPYmplY3Qua2V5cyh0aGlzLkkpKTtmb3IodmFyIGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXtmPWYudmFsdWU7aWYodGhpcy5JW2ZdLnZjJiYoXCJxdWVyeVwiPT1mJiYobnVsbD09YVtmXXx8XCJcIj09YVtmXSl8fFwicXVlcnlcIiE9ZiYmIWFbZl0pKXRocm93IERjKFwiTWlzc2luZyBvcHRpb24gJ1wiK1xuZitcIicuXCIpO1widW5kZWZpbmVkXCIhPXR5cGVvZiBhW2ZdJiZudWxsIT1hW2ZdJiYoZFtmXT1hW2ZdKX1hLnJ1cmxPdmVycmlkZSYmKGNvbnNvbGUud2FybihcImFkdGVzdCBpcyBlbmFibGVkIHdoZW4gYW4gcnVybE92ZXJyaWRlIHZhbHVlIGlzIHByb3ZpZGVkXCIpLGQuYWR0ZXN0PVwib25cIik7aWYoZT1jZSh2LmxvY2F0aW9uLmhyZWYsXCJnb29nbGVfYWZzZXhwXCIpKWQuYWZzZXhwPWUsZC5hZHRlc3Q9XCJvblwiLGNvbnNvbGUud2FybihcImFkdGVzdCBpcyBlbmFibGVkIHdoZW4gZ29vZ2xlX2Fmc2V4cCBpcyB1c2VkXCIpO3RoaXMuTD1cIm1cIiE9YS5yb2xlO3RoaXMueGEoZCk7dGhpcy5MfHxjayhkKTtkLmFkTG9hZGVkQ2FsbGJhY2s9YS5hZExvYWRlZENhbGxiYWNrfHxhLmNhbGxiYWNrfHxudWxsO2Qub2U9ZC5vZXx8XCJVVEYtOFwiO2QuaWU9ZC5pZXx8XCJVVEYtOFwiO2QubnVtYmVyPWRrKGQubnVtYmVyKTtkLm1pblRvcD1kayhkLm1pblRvcCk7ZC5tYXhUb3A9ZGsoZC5tYXhUb3ApO2QuZmV4cD1cbihkLmZleHA/ZC5mZXhwK1wiLFwiOlwiXCIpKyhkLmdjc2M/XCIyMDYwNlwiOlwiMjE0MDRcIik7KGU9WmIoXCJjZWlcIixhYygpKXx8XCJcIikmJihkLmZleHArPVwiLFwiK2UpO1piKFwiamJkMVwiLGFjKCkpJiYoZC5mZXhwKz1cIiwxNzMwMTIxN1wiKTstMSE9dGhpcy5RYS5EYShkLnB1YklkKS5pbmRleE9mKFwiYWZzLmdvb2dsZXN5bmRpY2F0aW9uXCIpJiYoZC5mZXhwKz1cIiwxNzMwMTI0OFwiKTsxNzMwMTM2Nz09PVlqKCkmJihkLmZleHArPVwiLDE3MzAxMzY3XCIpOzE3MzAxMzY4PT09WWooKSYmKGQuZmV4cCs9XCIsMTczMDEzNjhcIik7dm9pZCAwIT1kLmZvcmNlRXgmJihcIk1vc3RMYXVuY2hlc1wiPT09ZC5mb3JjZUV4PyhkLmU9XCJNb3N0TGF1bmNoZXNcIixkZWxldGUgZC5mb3JjZUV4KTpkLmV8fChkLmU9XCJPbmx5Rm9yY2VkRXhwZXJpbWVudHNcIikpO2QuZ2NzYyYmXCJ0b3BcIj09YS5wb3NpdGlvbiYmKGQubWF4VG9wPWEubnVtYmVyLGQubnVtYmVyPW51bGwpO2QuZm9ybWF0PXRoaXMuTD90aGlzLlQoZCk6dGhpcy5ZYihkLFxuYik7dGhpcy5zZD1kLmZvcm1hdDtkLmFkcz10aGlzLlZiKGMpO2Qubm9jYWNoZT1bTWF0aC5mbG9vcigxRTMqTWF0aC5yYW5kb20oKSksRGF0ZS5ub3coKV0uam9pbihcIlwiKTtkLm51bT1cIjBcIjtkLm91dHB1dD10aGlzLlFhLmliKCk7aWYodGhpcy5RYS54YygpKXRyeXtkLmRvbWFpbk5hbWV8fChkLmRvbWFpbk5hbWU9d2luZG93LmRvY3VtZW50LmRvbWFpbiksZC5kb21haW5OYW1lPWQuZG9tYWluTmFtZS5zdWJzdHJpbmcoMCw4MCl9Y2F0Y2goZyl7fWVsc2UgZGVsZXRlIGQuZG9tYWluTmFtZTtkLmdjc2MmJihkLnNvdXJjZT1cImdjc2NcIik7ZC52PVwiM1wiO1wic3RyaW5nXCIhPT10eXBlb2YgZC5wdWJJZCYmKGQucHViSWQ9XCJcIitkLnB1YklkKTswPT1kLnB1YklkLmluZGV4T2YoXCJwYXJ0bmVyLVwiKSYmKGQucHViSWQ9ZC5wdWJJZC5zdWJzdHJpbmcoOCkpO1widW5kZWZpbmVkXCIhPT10eXBlb2YgZC5ob3N0UHViSWQmJihkLmhvc3RQdWJJZD1TdHJpbmcoZC5ob3N0UHViSWQpLnJlcGxhY2UoL15wYXJ0bmVyLS8sXG5cIlwiKSk7ZD1layhkKTshZC50aXRsZUJvbGR8fCEwIT09ZC50aXRsZUJvbGQmJjEhPWQudGl0bGVCb2xkP2QudGl0bGVCb2xkJiZkZWxldGUgZC50aXRsZUJvbGQ6ZC50aXRsZUJvbGQ9MTt0aGlzLk1kKGQpO3JldHVybiBkfTttLkRjPWZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM7Zm9yKGMgaW4gYSlhLmhhc093blByb3BlcnR5KGMpJiZjIGluIHRoaXMuSSYmdGhpcy5JW2NdLmJhJiZiLnB1c2goZmsoYVtjXSx0aGlzLklbY10pKTtyZXR1cm4gYi5qb2luKFwiXCIpfTttLndhPWZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZDtmb3IoZCBpbiBhKSEoYS5oYXNPd25Qcm9wZXJ0eShkKSYmZCBpbiB0aGlzLkkmJnRoaXMuSVtkXS5iYSl8fGQgaW4gYiYmYltkXT09YVtkXXx8Yy5wdXNoKGZrKGFbZF0sdGhpcy5JW2RdKSk7cmV0dXJuIGMuam9pbihcIlwiKX07XG5tLmNjPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gMT09PWYuZmF9KTtpZigwPT1kLmxlbmd0aClyZXR1cm4gdGhpcy53YShhLHt9KStcIi1cIjtjLnB1YklkPWEucHViSWQ7Yz1layhjKTtiPXRoaXMuRGMoYyk7dmFyIGU9W107ZS5wdXNoKHRoaXMud2EoYSxjKSk7YT1uKGQpO2ZvcihkPWEubmV4dCgpOyFkLmRvbmU7ZD1hLm5leHQoKSlkPWQudmFsdWUsZC5vcHRpb25zLnNsYXZlTnVtYmVyJiYwIT1kLm9wdGlvbnMuc2xhdmVOdW1iZXImJmUucHVzaCh0aGlzLndhKGQub3B0aW9ucyxjKSk7cmV0dXJuW2IsZS5qb2luKFwiLVwiKV0uam9pbihcIi1cIil9O2Z1bmN0aW9uIGdrKGEpe3JldHVybiBhLm9wdGlvbnMmJmEub3B0aW9ucy50eXBlP1wic2VhcmNoYm94XCI9PT1hLm9wdGlvbnMudHlwZTohMX1cbmZ1bmN0aW9uIGhrKGEpe3ZhciBiO3JldHVybiBudWxsIT0oYj1hLm9wdGlvbnMpJiZiLnR5cGU/XCJyZWxhdGVkc2VhcmNoXCI9PT1hLm9wdGlvbnMudHlwZTohMX1tLlhiPWZ1bmN0aW9uKGEsYil7dmFyIGM9L15bQS1aYS16XStbXFx3XFwtOlxcLl0qJC8sZD1bXTt0aGlzLnFifHxnayh0aGlzKXx8KGE9YS5jb250YWluZXIsZC5wdXNoKGMudGVzdChhKT9hOlwiXCIpKTtiPW4oYik7Zm9yKGE9Yi5uZXh0KCk7IWEuZG9uZTthPWIubmV4dCgpKWE9YS52YWx1ZSxnayhhKXx8MSE9PWEuZmF8fChhPWEub3B0aW9ucy5jb250YWluZXIsZC5wdXNoKGMudGVzdChhKT9hOlwiXCIpKTtyZXR1cm4gZC5qb2luKFwifFwiKX07XG5tLmRjPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuUWEudWQoYS5wdWJJZCk7dGhpcy5MYihhLGIpOzM9PXdpbmRvdy5nb29nbGVBbHRMb2FkZXI/QShiLFwiYnNsXCIsOCk6ND09d2luZG93Lmdvb2dsZUFsdExvYWRlciYmQShiLFwiYnNsXCIsMTApO0EoYixcInBhY1wiLGlrKGEpKTtpZighdGhpcy5MKXt2YXIgYz12b2lkIDA9PT1jP3dpbmRvdzpjO3ZhciBkPXZvaWQgMD09PWQ/ZG9jdW1lbnQ6ZDt2YXIgZT12b2lkIDA9PT1lP25ldyBEYXRlOmU7dmFyIGY9YztmPXZvaWQgMD09PWY/Wmo6Zjt0cnl7dmFyIGc9Zi5oaXN0b3J5Lmxlbmd0aH1jYXRjaChsKXtnPTB9QShiLFwidV9oaXNcIixnKTtBKGIsXCJ1X3R6XCIsLWUuZ2V0VGltZXpvbmVPZmZzZXQoKSk7QShiLFwiZHRcIixlLmdldFRpbWUoKSk7QShiLFwidV93XCIsYy5zY3JlZW4ud2lkdGgpO0EoYixcInVfaFwiLGMuc2NyZWVuLmhlaWdodCk7ZT1hayghMCxjKTtBKGIsXCJiaXdcIixlLndpZHRoKTtBKGIsXCJiaWhcIixlLmhlaWdodCk7Yy50b3AhPWMmJihlPVxuYWsoITEsYyksQShiLFwiaXN3XCIsZS53aWR0aCksQShiLFwiaXNoXCIsZS5oZWlnaHQpKTtkLmJvZHk/KGU9IWMuc2Nyb2xsWSYmXCJDU1MxQ29tcGF0XCIhPWQuY29tcGF0TW9kZSxkPW5ldyBCZChlP2QuYm9keS5zY3JvbGxXaWR0aDpkLmJvZHkub2Zmc2V0V2lkdGgsZT9kLmJvZHkuc2Nyb2xsSGVpZ2h0OmQuYm9keS5vZmZzZXRIZWlnaHQpKTpkPW5ldyBCZCgtMSwtMSk7QShiLFwicHN3XCIsZC53aWR0aCk7QShiLFwicHNoXCIsZC5oZWlnaHQpO2lmKGMudG9wPT1jKXZhciBoPTA7ZWxzZXtjPWMudG9wO3RyeXt2YXIgaztpZihrPSEhYyYmbnVsbCE9Yy5sb2NhdGlvbi5ocmVmKWI6e3RyeXttZChjLmZvbyk7az0hMDticmVhayBifWNhdGNoKGwpe31rPSExfWg9a31jYXRjaChsKXtoPSExfWg9aD8xOjJ9QShiLFwiZnJtXCIsaCl9QShiLFwiY2xcIiw1Nzk5Njc4NjIpO0EoYixcInVpb1wiLHRoaXMuS2QpO0EoYixcImNvbnRcIix0aGlzLlhiKHRoaXMub3B0aW9ucyx0aGlzLlYpKTtBKGIsXCJqc3ZcIiwoNTc5OTY3ODYyKS50b1N0cmluZygpLFxuITApO2EucnVybE92ZXJyaWRlP0EoYixcInJ1cmxcIixhLnJ1cmxPdmVycmlkZSwhMCk6KGg9d2luZG93LmxvY2F0aW9uLmhyZWYsMD09aC5pbmRleE9mKFwiYWJvdXQ6XCIpJiZ3aW5kb3cubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zJiZ3aW5kb3cubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zLmxlbmd0aCYmMDx3aW5kb3cubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zLmxlbmd0aCYmKGg9d2luZG93LmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2luc1swXSksQShiLFwicnVybFwiLGgsITApKTtBKGIsamsucmVmZXJlcixkb2N1bWVudC5yZWZlcnJlciwhMCk7YS5yZWZlcnJlciYmQShiLFwib3B0cmVmXCIsYS5yZWZlcnJlciwhMCk7dm9pZCAwIT09T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkb2N1bWVudCxcInJlZmVycmVyXCIpJiYoYT10aGlzLlcsaD13YyhhKSxBKGgsXCJwYnRcIixcInJpXCIpLEEoaCxcImVtc2dcIixcInJtXCIpLGEuaGEocmMoaCkpKTtBKGIsXCJqc2lkXCIsXCJjYWZcIik7bGMoKSYmYmsoKSYmXG5BKGIsXCJuZnBcIixcIjFcIik7cmV0dXJuIGJ9O20uTGI9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMgaW4gYSlpZihhLmhhc093blByb3BlcnR5KGMpJiZqay5oYXNPd25Qcm9wZXJ0eShjKSl7dmFyIGQ9amtbY10sZT1hW2NdO1wiY2xrd2RcIj09ZCYmKGU9XCJ0XCIpO1widHlwZVwiPT1kJiYoZT1WZFthW2NdXSk7XCJkb21haW5TZXNzaW9uVG9rZW5cIj09YyYmXCJhZmRUb2tlblwiaW4gYSYmZD09amsuYWZkVG9rZW58fEEoYixkLGUpfX07bS5GPWZ1bmN0aW9uKCl7dmFyIGE9W107XCJtXCI9PXRoaXMub3B0aW9ucy5yb2xlfHx2b2lkIDA9PT10aGlzLm9wdGlvbnMuc2xhdmVOdW1iZXI/YS5wdXNoKFwibWFzdGVyXCIpOihhLnB1c2goXCJzbGF2ZVwiKSxhLnB1c2godGhpcy5vcHRpb25zLnNsYXZlTnVtYmVyKSk7Mj09dGhpcy5mYT9hLnB1c2goXCJhXCIpOjM9PXRoaXMuZmEmJmEucHVzaChcImJcIik7YS5wdXNoKHRoaXMub3B0aW9ucy5tYXN0ZXJOdW1iZXIpO3JldHVybiBhLmpvaW4oXCItXCIpfTtcbm0ucGM9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9e307ZS5uYW1lPWI7YT1jLmNvbmNhdChbYV0pO2I9ZC5jb25jYXQoW2JdKTtmb3IoZD0wO2Q8YS5sZW5ndGg7ZCsrKXtjPWJbZF07dmFyIGY9dm9pZCAwLGc9YVtkXSxoPXRoaXMuSSxrPXt9O2ZvcihmIGluIGgpaWYoaC5oYXNPd25Qcm9wZXJ0eShmKSYmIWhbZl0ueWMpe3ZhciBsPWdbZl0scD1oW2ZdLmFhO1widW5kZWZpbmVkXCI9PXR5cGVvZiBsfHxcImNvbnRhaW5lclwiPT1mJiZcIm9iamVjdFwiPT10eXBlb2YgbD9cInVuZGVmaW5lZFwiIT10eXBlb2YgcCYmKGtbZl09cCk6a1tmXT1sfWVbY109a31yZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9O1xubS5uYz1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLmxiPURhdGUubm93KCk7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSkmJkMubG9nKFwiaWZyYW1lOiBcIithK1wiLiBwdWJJZDogXCIrZCtcIi4gXCIsXCJkSVwiKTtkPUpkKGRvY3VtZW50LFwiSUZSQU1FXCIpO2QuZnJhbWVCb3JkZXI9XCIwXCI7ZC5tYXJnaW5XaWR0aD1cIjBcIjtkLm1hcmdpbkhlaWdodD1cIjBcIjtkLnZzcGFjZT0wO2QuaHNwYWNlPTA7ZC5zZXRBdHRyaWJ1dGUoXCJhbGxvd1RyYW5zcGFyZW5jeVwiLFwidHJ1ZVwiKTtkLnNjcm9sbGluZz1cIm5vXCI7ZC5zdHlsZS52aXNpYmlsaXR5PVwiaGlkZGVuXCI7ZC53aWR0aD1cIjEwMCVcIjtkLnN0eWxlLmhlaWdodD1cIjBweFwiO2Quc3R5bGUuZGlzcGxheT1cImJsb2NrXCI7ZC5uYW1lPWI7ZC5pZD1hO2Quc3JjPWM7ZWUoKT8oZC5kYXRhc2V0Lm9ic2VydmU9dGhpcy5vcHRpb25zLm1hc3Rlck51bWJlcix0aGlzLkx8fChkLnNldEF0dHJpYnV0ZShcImRhdGEtYWQtc3JjXCIsYyksZC5zcmM9XCJhYm91dDpibGFua1wiKSk6dGhpcy50YT1cbnRoaXMubGI7Mj09PXRoaXMuZmEmJjE8PXRoaXMuY29udGFpbmVyLmNoaWxkRWxlbWVudENvdW50P3RoaXMuY29udGFpbmVyLmluc2VydEJlZm9yZShkLHRoaXMuY29udGFpbmVyLmNoaWxkcmVuWzBdKToxPT09dGhpcy5mYSYmMj09PXRoaXMuY29udGFpbmVyLmNoaWxkRWxlbWVudENvdW50P3RoaXMuY29udGFpbmVyLmluc2VydEJlZm9yZShkLHRoaXMuY29udGFpbmVyLmNoaWxkcmVuWzFdKTp0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZChkKTt0cnl7ZC5jb250ZW50V2luZG93Lm5hbWU9Yn1jYXRjaChlKXt9dygpLmRhdGEuaWNlbGFlJiZiaygpJiZkLnNldEF0dHJpYnV0ZShcImFsbG93XCIsXCJhdHRyaWJ1dGlvbi1yZXBvcnRpbmdcIik7cmV0dXJuIGR9O1xubS5SYj1mdW5jdGlvbihhKXt2YXIgYj13aW5kb3cuaW5uZXJXaWR0aDx3aW5kb3cuaW5uZXJIZWlnaHQ7aWYodGhpcy5IYSYmIWJ8fCF0aGlzLkhhJiZiKXt0aGlzLkhhPWI7dHJ5e2EuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShcIm9yaWVudGF0aW9uOlwiKyh0aGlzLkhhP1wicG9ydHJhaXRcIjpcImxhbmRzY2FwZVwiKSxcIipcIil9Y2F0Y2goYyl7fX19O20ucWM9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpcyxmPXRoaXMubmMoYSxiLGMsZCk7dGhpcy5MfHwodGhpcy51YyhmKSx0aGlzLkhhPXdpbmRvdy5pbm5lcldpZHRoPHdpbmRvdy5pbm5lckhlaWdodCx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuUmIoZil9KSl9O1xubS5FYz1mdW5jdGlvbigpe3ZhciBhPXt9LGI7Zm9yKGIgaW4gdGhpcy5vcHRpb25zKXRoaXMub3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShiKSYmKGFbYl09dGhpcy5vcHRpb25zW2JdKTthLmFkcz1cIm4wXCI7YVtcIlwiXT1cIlwiO2Euc2xhdmVOdW1iZXI9XCIwXCI7YS5yb2xlPVwic1wiO2E9a2sodGhpcy5JLGEsRGF0ZS5ub3coKSx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsMSx0aGlzLmphKTtZW2EuRigpXT1hO3RoaXMuVi5zcGxpY2UoMCwwLGEpO2E9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO2Euc3R5bGUuaGVpZ2h0PVwiMHB4XCI7YS5zdHlsZS52aXNpYmlsaXR5PVwiaGlkZGVuXCI7dGhpcy5vcHRpb25zLmNvbnRhaW5lcj1hO3RoaXMucWI9dGhpcy5vcHRpb25zLnByZWxvYWQ9ITA7dGhpcy5qYT1bXX07XG5tLnJjPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMub3B0aW9ucz10aGlzLlpjKGEsYixjLGQpO3RoaXMuVy5jbGllbnQ9dGhpcy5vcHRpb25zLnB1YklkO3RoaXMuVy5HYj10aGlzLm9wdGlvbnMuc3R5bGVJZHx8XCJcIjsheihcIl9mb3JjZUpzUHJlbG9hZEZvckRlYnVnZ2luZ1wiKSYmdGhpcy5mYigpfHx0aGlzLkx8fCFkb2N1bWVudC5ib2R5fHx0aGlzLkVjKCk7dGhpcy5LZD1udWxsPT10aGlzLnpkP1wiXCI6dGhpcy5jYyh0aGlzLm9wdGlvbnMsdGhpcy5WLHRoaXMuemQpO3RoaXMudWE9dGhpcy5CYT10aGlzLkYoKTt0aGlzLlphLmZjPWVuY29kZVVSSSh0aGlzLkJhKTtpZigxPT09dGhpcy5mYSYmIXooXCJfZW5hYmxlVW5pZmllZE11ZHNraXBwZXJJZnJhbWVcIikpZm9yKHRoaXMueWE9bmV3IFdqKHRoaXMuamEubGVuZ3RoKzEsdGhpcy5vcHRpb25zLmNvbnRhaW5lcix0aGlzLm9wdGlvbnMuYWRMb2FkZWRDYWxsYmFjayx0aGlzLm9wdGlvbnMubm9BZExvYWRlZENhbGxiYWNrKSxhPW4odGhpcy5qYSksXG5iPWEubmV4dCgpOyFiLmRvbmU7Yj1hLm5leHQoKSliLnZhbHVlLnlhPXRoaXMueWE7aWYoIXRoaXMuTCl7dmMoKS5jbGllbnQ9dGhpcy5vcHRpb25zLnB1YklkO3ZjKCkuR2I9dGhpcy5vcHRpb25zLnN0eWxlSWR8fFwiXCI7YT1bXTtiPVtdO2ZvcihjPTA7Yzx0aGlzLlYubGVuZ3RoO2MrKylhLnB1c2godGhpcy5WW2NdLkYoKSksYi5wdXNoKHRoaXMuVltjXS5vcHRpb25zKTt0aGlzLnVhPXRoaXMucGModGhpcy5vcHRpb25zLHRoaXMuQmEsYixhKX19O1xubS5jYj1mdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1wZSgpLGM9RShmdW5jdGlvbigpe2lmKCFhLmZiKCkpcmV0dXJuITE7YS5GYihhLm9wdGlvbnMuY29udGFpbmVyKTtpZihhLm9wdGlvbnMud2lkdGgmJiFhLnFiKXtpZihcInBsYXNcIj09YS5vcHRpb25zLnR5cGUmJnZvaWQgMCE9YS5JLndpZHRoJiZudWxsPT1hLkkud2lkdGguZy5EKGEub3B0aW9ucy53aWR0aCkpdGhyb3cgRGMoXCJ3aWR0aCBcIithLm9wdGlvbnMud2lkdGgrXCIgaXMgaW52YWxpZC5cIik7XCJhdXRvXCI9PWEub3B0aW9ucy53aWR0aD9hLmNvbnRhaW5lci5zdHlsZS53aWR0aD1cIjEwMCVcIjpsayhhLm9wdGlvbnMud2lkdGgpJiYoYS5jb250YWluZXIuc3R5bGUud2lkdGg9YS5vcHRpb25zLndpZHRoKX1mb3IodmFyIGY9bihbXS5jb25jYXQoYS5qYSxhKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe2c9Zy52YWx1ZTtnLkZiKGEub3B0aW9ucy5jb250YWluZXIpO3ZhciBoPWcuUWEuRGEoYS5vcHRpb25zLnB1YklkKTtcbmg9bmV3IHFjKGgrXCIvYWZzL2Fkcy9pL2lmcmFtZS5odG1sXCIpO2cuWmE9KGcuTD9oOm51bGwpfHxnLmRjKGcub3B0aW9ucyk7Zy5UYz1yYyhnLlphKX1pZighYS5MJiZhLm9wdGlvbnMuaGFzT3duUHJvcGVydHkoXCJ0Y1N0cmluZ1wiKSYmMDxhLm9wdGlvbnMudGNTdHJpbmcubGVuZ3RoJiYhYS5UYy5pbmNsdWRlcyhqay50Y1N0cmluZytcIj1cIikpdGhyb3cgeWMoYS5XLFwidGxcIixcIlRDIHN0cmluZyBvZiBsZW5ndGggXCIrYS5vcHRpb25zLnRjU3RyaW5nLmxlbmd0aCtcIiBkb2VzIG5vdCBmaXQgaW4gVVJMXCIpLERjKFwiQSB0cmFuc3BhcmVuY3kgY29uc2VudCBzdHJpbmcgd2FzIGNvbGxlY3RlZCBidXQgaXMgdG9vIGxvbmcgdG8gZml0IGluIHRoZSBDU0EgYWQgcmVxdWVzdCBVUkwuIE5vIGFkcyBhcmUgYmVpbmcgcmVxdWVzdGVkLlwiKTthLmNvbnRhaW5lci50ZXh0Q29udGVudD1cIlwiO2lmKCF6KFwiX2VuYWJsZVVuaWZpZWRNdWRza2lwcGVySWZyYW1lXCIpKWZvcihmPW4oYS5qYSksZz1mLm5leHQoKTshZy5kb25lO2c9XG5mLm5leHQoKSlnLnZhbHVlLndiKCk7YS53YigpO2IucmVzb2x2ZShhKTtyZXR1cm4hMH0sXCJjSV9tQVwiKTtpZighYygpKXZhciBkPURhdGUubm93KCksZT13aW5kb3cuc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZihjKCkpY2xlYXJJbnRlcnZhbChlKTtlbHNlIGlmKDZFNDxEYXRlLm5vdygpLWQpdGhyb3cgY2xlYXJJbnRlcnZhbChlKSxEYygnY29udGFpbmVyIFwiJythLm9wdGlvbnMuY29udGFpbmVyKydcIiBkb2VzIG5vdCBleGlzdC4nKTt9LDUpO3JldHVybiBiLnByb21pc2V9O20ud2I9ZnVuY3Rpb24oKXt0aGlzLlphJiZ0aGlzLnFjKHRoaXMuQmEsdGhpcy51YSx0aGlzLlRjLHRoaXMub3B0aW9ucy5wdWJJZCl9O20uVmM9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcztpZih0aGlzLmxkKXt2YXIgYz10aGlzLkYoKSxkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGMpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gYi5FYihkLGMsYSwhMCl9LDE1MDApfX07XG5tLnVjPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1cIlwiK3RoaXMub3B0aW9ucy5tYXN0ZXJOdW1iZXIsZD1uZXcgTmMoYyxhKTtGKGQsXCJhRC5cIitjLEcuaixtayk7RihkLFwicWlcIixUYy5qLGZ1bmN0aW9uKGcsaCxrLGwpe2c9bihbXS5jb25jYXQoYi5WLGIpKTtmb3IoaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpaC52YWx1ZS5XLktjPWx8fFwiXCJ9KTtGKGQsXCJlYXdwXCIsVGMuaik7RihkLFwiaXRcIixUYy5qLGZ1bmN0aW9uKGcsaCxrLGwpe2EudGl0bGU9bH0pO0YoZCxcIi5hQ1NcIixTYy5qLGZ1bmN0aW9uKGcsaCxrLGwpe25rKGIsbCl9KTtGKGQsXCJzLmJcIixHLmosdGhpcy5BYy5iaW5kKHRoaXMpKTtGKGQsXCJzLmFEVUxUXCIsRy5qKTtGKGQsXCJzLmZMXCIsRy5qKTtGKGQsXCJzLnRNXCIsRy5qKTtGKGQsXCJzLm5SXCIsRy5qKTtGKGQsXCJzLmlTSVwiLEcuaik7RihkLFwicy5lQ1wiLFNjLmopO3ZhciBlPW51bGw7dGhpcy5xYnx8KGU9dGhpcy5GKCksRihkLGUrXCIuaEFcIixHLmosb2spLEYoZCxlK1wiLmZzXCIsXG5VYy5qLHBrKSxGKGQsZStcIi53XCIsU2MuaixmdW5jdGlvbihnLGgsayxsKXtxayhnLGgsayxsKX0pLEYoZCxlK1wiLmFDXCIsU2MuaikpO0YoZCxcInYuXCIrYyxUYy5qLHJrKTt2YXIgZj10aGlzLm9wdGlvbnMucmVsYXRlZFNlYXJjaFJlc3VsdENsaWNrZWRDYWxsYmFjazt0aGlzLm9wdGlvbnMucmVsYXRlZFNlYXJjaFVzZVJlc3VsdENhbGxiYWNrJiZmJiZGKGQsXCJyc3JjXCIsVWMuaixmdW5jdGlvbihnLGgsayxsKXt0cnl7ZihsLnEsbC5yc1Rva2VuKX1jYXRjaChwKXt9fSk7Yz1uKHRoaXMuVik7Zm9yKGU9Yy5uZXh0KCk7IWUuZG9uZTtlPWMubmV4dCgpKWU9ZS52YWx1ZS5GKCksRihkLGUrXCIuaEFcIixHLmosb2spLEYoZCxlK1wiLmZzXCIsVWMuaixwayksRihkLGUrXCIuYUNcIixTYy5qKX07XG5mdW5jdGlvbiBuayhhLGIpe2EudGI9YjtpZighYS5pYSl7dmFyIGM9W1wibW91c2Vtb3ZlXCIsXCJtb3VzZWRvd25cIixcInNjcm9sbFwiLFwia2V5ZG93blwiLFwidG91Y2hzdGFydFwiXTthLmlhPWZ1bmN0aW9uKCl7aWYoYS50Yil7dmFyIGU9RGF0ZS5ub3coKS1hLnRiO2lmKGU8PSgkYihcIm1kcFwiKXx8MCkpe3ZhciBmPWEuVyxnPXdjKGYpO0EoZyxcInBidFwiLFwiY2RcIik7QShnLFwiY3NhY2RcIixlKTtmLmhhKHJjKGcpKTthLnRiPW51bGx9fWlmKGEuaWEpe2U9bihjKTtmb3IoZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKGYudmFsdWUsYS5pYSk7YS5pYT1udWxsfX07Yj1uKGMpO2Zvcih2YXIgZD1iLm5leHQoKTshZC5kb25lO2Q9Yi5uZXh0KCkpZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKGQudmFsdWUsYS5pYSl9fVxubS5BYz1mdW5jdGlvbihhLGIpe2lmKChiPVlbXCJtYXN0ZXItXCIrYl0pJiZiLm9wdGlvbnMmJmIub3B0aW9ucy5wYWdlTG9hZGVkQ2FsbGJhY2spe3ZhciBjPVBjKGEsXCJzLmJcIiksZD17fTtpZihjKXt2YXIgZT1hLkJbXCJzLmVDXCJdLnZhbHVlO2UmJihkLmVycm9yX2NvZGU9ZSk7UGMoYSxcInMuZkxcIikmJihkLmZhaWxsaXN0ZWQ9ITAsUGMoYSxcInMudE1cIik/ZC5mYWlsbGlzdFJlYXNvbj1cInRyYWRlbWFya1wiOmQuZmFpbGxpc3RSZWFzb249XCJvdGhlclwiKX1lbHNle2U9ZGUoc2subG9jYXRpb24uaHJlZik7dmFyIGY9Yi5vcHRpb25zLnB1YklkfHxcIlwiLGc9Zi5pbmRleE9mKFwiZHAtXCIpO2Y9MD5nP1wiXCI6MD09Zz9cInBhcnRuZXItXCIrZjowPT1mLmluZGV4T2YoXCJwYXJ0bmVyLWRwLVwiKXx8MD09Zi5pbmRleE9mKFwiY2EtZHAtXCIpP1wicGFydG5lci1cIitmLnN1YnN0cihnKTpcIlwiO2QuY2xpZW50PWY7XCIxXCI9PWUuc2VhcmNoJiYoZC51c2VyX3NlYXJjaD0hMCk7ZS5xdWVyeSYmKGQucXVlcnk9ZS5xdWVyeSl9ZC5hZHVsdD1cbiEhUGMoYSxcInMuYURVTFRcIik7UGMoYSxcInMublJcIikmJihkLm5lZWRzcmV2aWV3PSEwKTtQYyhhLFwicy5pU0lcIikmJihkLmludmFsaWRfc3R5bGVfaWQ9ITApO3RoaXMuUi5jYWZSZXF1ZXN0QWNjZXB0ZWQ9IWMmJiFkLm5lZWRzcmV2aWV3O3RoaXMuUi5jYWZTdGF0dXM9ZDt0cnl7Yi5vcHRpb25zLnBhZ2VMb2FkZWRDYWxsYmFjayh0aGlzLlIuY2FmUmVxdWVzdEFjY2VwdGVkLGQpfWNhdGNoKGgpe319fTtcbm0uemM9ZnVuY3Rpb24oYSl7aWYoIXRoaXMuYWIpe3RoaXMuYWI9ITA7aWYoeihcIl9lbmFibGVVbmlmaWVkTXVkc2tpcHBlcklmcmFtZVwiKSl7dmFyIGI9dGhpcy5vcHRpb25zLmNvbnRhaW5lcixjPXRoaXMub3B0aW9ucy5ub0FkTG9hZGVkQ2FsbGJhY2ssZD10aGlzLm9wdGlvbnMuYWRMb2FkZWRDYWxsYmFjaztpZihjKXRyeXtjKGIsITEsdm9pZCAwLHRoaXMuUil9Y2F0Y2goZSl7fWlmKGQpdHJ5e2QoYiwhMSx2b2lkIDAsdGhpcy5SKX1jYXRjaChlKXt9fWVsc2UgWGoodGhpcy55YSwhMSwwLHRoaXMuUik7UGMoYSxcInNiblwiKSYmKGI9dGhpcy5GKCksYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChiKSx0aGlzLk5jPURhdGUubm93KCksdGhpcy5FYihjLGIsYSwhMSkpfX07XG5tLlJjPWZ1bmN0aW9uKGEsYil7dmFyIGM9Z2MoaWMpLGQ9Z2Moa2MpOy9Nb2JpbGUvaS50ZXN0KGVjKSYmKDA8Y3x8MDxkKT8oYS5zdHlsZS53aWR0aD1cIjFweFwiLGEuc3R5bGUubWluV2lkdGg9XCIxMDAlXCIsYS5yZW1vdmVBdHRyaWJ1dGUoXCJ3aWR0aFwiKSk6YS53aWR0aD1cIjEwMCVcIjthLnN0eWxlLnZpc2liaWxpdHk9MDxiP1widmlzaWJsZVwiOlwiaGlkZGVuXCI7YS5zdHlsZS5oZWlnaHQ9YitcInB4XCI7dGhpcy5jb250YWluZXIuc3R5bGUuaGVpZ2h0PVwiYXV0b1wifTttLlFjPWZ1bmN0aW9uKGEpe3RoaXMuY29udGFpbmVyLnN0eWxlLndpZHRoPWErXCJweFwiO3ZhciBiPWdjKGljKSxjPWdjKGtjKTtpZigwPGJ8fDA8YylpZihiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRigpKSliLnN0eWxlLndpZHRoPWErXCJweFwiLGIucmVtb3ZlQXR0cmlidXRlKFwid2lkdGhcIil9O1xuZnVuY3Rpb24gdGsoYSl7aWYoZWUoKSYmIWEuTCl7dmFyIGI9J1tkYXRhLW9ic2VydmU9XCInK2Eub3B0aW9ucy5tYXN0ZXJOdW1iZXIrJ1wiXScsYz1mdW5jdGlvbigpe3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEuRigpKSxwPWliKGwuZ2V0QXR0cmlidXRlKFwiZGF0YS1hZC1zcmNcIikpO2wuc3JjPWhiKHApLnRvU3RyaW5nKCk7YS50YT1EYXRlLm5vdygpO3A9bihhLlYpO2Zvcih2YXIgcj1wLm5leHQoKTshci5kb25lO3I9cC5uZXh0KCkpci52YWx1ZS50YT1hLnRhO2wucmVtb3ZlQXR0cmlidXRlKFwiZGF0YS1hZC1zcmNcIil9LGQ9JGIoXCJsbHJtXCIpfHwwLGU9aGsoYSk7ZT16KFwiX2VuYWJsZUxMSURNXCIpfHx6KFwiX2VuYWJsZUxMSURNUlNPbmx5XCIpJiZlO2Zvcih2YXIgZj1uKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJpZnJhbWVcIitiKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpaWYoZz1nLnZhbHVlLG51bGw9PWcub2Zmc2V0UGFyZW50fHxmZShnLGU/ZDpcbjApKXtjKCk7cmV0dXJufXZhciBoPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJpZnJhbWVcIitiKSxrPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbihsKXtpZihsLmZpbmQoZnVuY3Rpb24ocil7cmV0dXJuIDA8ci5pbnRlcnNlY3Rpb25SYXRpb30pKXtjKCk7bD1uKGgpO2Zvcih2YXIgcD1sLm5leHQoKTshcC5kb25lO3A9bC5uZXh0KCkpay51bm9ic2VydmUocC52YWx1ZSl9fSx7cm9vdE1hcmdpbjpcIjBweCAwcHggXCIrZCtcInB4IDBweFwiLHRocmVzaG9sZDowfSk7Yj1uKGgpO2ZvcihnPWIubmV4dCgpOyFnLmRvbmU7Zz1iLm5leHQoKSlkPWcudmFsdWUsay5vYnNlcnZlKGQpLGQuc2V0QXR0cmlidXRlKFwiZGF0YS1sbGVcIixcIjFcIil9fW0ub2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGZlKGEsMCwuMyl9O1xubS5FYj1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT10aGlzLGY9TmQoYSksZz17dG9wOmYueSxsZWZ0OmYueCxoZWlnaHQ6YS5vZmZzZXRIZWlnaHQsd2lkdGg6YS5vZmZzZXRXaWR0aCxWYTp0aGlzLmNkLmpvaW4oXCIsXCIpLGxlOmIsTWU6T2MoYyxcImVhd3BcIiksdmU6KDU3OTk2Nzg2MikudG9TdHJpbmcoKSxjZzphLmhhc0F0dHJpYnV0ZShcImRhdGEtbGxlXCIpLG1mOnRoaXMub2IoYSksWWU6bnVsbCE9dGhpcy5vcHRpb25zLmNsaWNrdHJhY2tVcmx9O2lmKGI9dWsodGhpcyxjKSlnLnRmPWI7aWYoZCl7eGModGhpcy5XLFwiYnNcIixnKTt2YXIgaD1udWxsO2g9c2V0SW50ZXJ2YWwoRShmdW5jdGlvbigpe2Uub2IoYSkmJih4YyhlLlcsXCJidlwiLGcpLGNsZWFySW50ZXJ2YWwoaCkpfSxcInNQSVZcIiksNTAwKX1lbHNlIHhjKHRoaXMuVyxcImJuXCIsZyl9O1xuZnVuY3Rpb24gdWsoYSxiKXtpZihiPU9jKGIsXCJpcnRcIikpe3ZhciBjPWIuc3BsaXQoXCJ8XCIpO2I9cGFyc2VJbnQoY1swXSwxMCk7Yz1wYXJzZUludChjWzFdLDEwKTt2YXIgZD1hLmxiLWEuRGYsZT1hLnRhLWEubGI7YS5MJiYoZT1NYXRoLm1heCgwLGUpKTtyZXR1cm5bZCxlLGItYS50YSxjLWIsYS5OYy1jXS5qb2luKFwifFwiKX1yZXR1cm4gbnVsbH1cbm0uT2M9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLkYoKSxkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGMpO2lmKGQpe3ZhciBlPWEuZnJhbWVIZWlnaHQ7dGhpcy5jZD1hLlZhO3RoaXMuUmMoZCxlKTtpZighdGhpcy5hYiYmMDxlKXt0aGlzLk5jPURhdGUubm93KCk7dGhpcy5sZD10aGlzLmFiPSEwO3RoaXMuVmMoYik7dmFyIGY7YT1udWxsIT0oZj1QYyhiLGMrXCIuZVZcIikpP2Y6dm9pZCAwO2MrPVwiLnB0cFwiO2lmKGI9Yi5CLmhhc093blByb3BlcnR5KGMpP2IuQltjXS52YWx1ZTpudWxsKXRoaXMuUi50ZXJtUG9zaXRpb25zPWI7aWYoeihcIl9lbmFibGVVbmlmaWVkTXVkc2tpcHBlcklmcmFtZVwiKSl7aWYoYj10aGlzLm9wdGlvbnMuYWRMb2FkZWRDYWxsYmFjayl7Yz10aGlzLm9wdGlvbnMuY29udGFpbmVyO3RyeXtiKGMsITAsYSx0aGlzLlIpfWNhdGNoKGcpe319fWVsc2UgYj0wLCEwPT09YT9iPTI6ITE9PT1hJiYoYj0xKSxYaih0aGlzLnlhLCEwLGIsdGhpcy5SKX19fTtcbm0uZmI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9wdGlvbnMuY29udGFpbmVyO3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBhPyhhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpLCEhYSk6XCJzdHJpbmdcIj09dHlwZW9mIGEuaW5uZXJIVE1MPyEwOiExfTttLkZiPWZ1bmN0aW9uKGEpe3RoaXMuY29udGFpbmVyPVwic3RyaW5nXCI9PXR5cGVvZiBhP2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpOmF9O20ueGE9ZnVuY3Rpb24oYSl7YS5udW1iZXI9YS5udW1iZXJ8fGEubWF4VG9wfHxhLm1pblRvcHx8MTA7ZGVsZXRlIGEubWluVG9wO2RlbGV0ZSBhLm1heFRvcDthLmhhc093blByb3BlcnR5KFwicmVzdWx0c1BhZ2VCYXNlVXJsXCIpJiYoYS5yZXN1bHRzUGFnZUJhc2VVcmw9dmsoYS5yZXN1bHRzUGFnZUJhc2VVcmwpKTt2YXIgYj1hLnJlbGF0ZWRTZWFyY2hUYXJnZXRpbmc7YiBpbiBZZCYmKGEucnNfdHQ9WWRbYl0pfTtcbmZ1bmN0aW9uIGNrKGEpe2lmKCFhLnF1ZXJ5JiYhYS5hZmRUb2tlbil7dmFyIGI9ZGUod2luZG93LmxvY2F0aW9uLmhyZWYpLGM9Yi5xdWVyeTtiPWIuYWZkVG9rZW47YyYmYiYmKGEucXVlcnk9YyxhLmFmZFRva2VuPWIpfWM9Y2Uod2luZG93LmxvY2F0aW9uLmhyZWYsXCJwY3NhXCIpO251bGwhPWMmJm51bGw9PWEucGVyc29uYWxpemVkQWRzJiYoYS5wZXJzb25hbGl6ZWRBZHM9Yyl9dmFyIGZrPUUoZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmJhO2E9Yi5nLkcoYSk7cmV0dXJuIG51bGwhPWEmJmxrKGEpP3drLmhhc093blByb3BlcnR5KGMpP2E/Yy5jaGFyQXQoMCkrYy5jaGFyQXQoMSkudG9VcHBlckNhc2UoKTpjOmMrYTpcIlwifSxcImdQRk9cIik7ZnVuY3Rpb24gZGsoYSl7dHJ5e3ZhciBiPXBhcnNlSW50KGEsMTApO3JldHVybiFpc05hTihiKSYmMDw9Yj9iOm51bGx9Y2F0Y2goYyl7cmV0dXJuIG51bGx9fVxuZnVuY3Rpb24gbGsoYSl7YT1wYXJzZUludChhLDEwKTtyZXR1cm4haXNOYU4oYSkmJjA8PWF9XG52YXIgZWs9RShmdW5jdGlvbihhKXtmb3IodmFyIGI9W1wiZm9udFNpemVUaXRsZVwiLFwiZm9udFNpemVBdHRyaWJ1dGlvblwiXSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY107aWYoYVtkXSl7dmFyIGU9XCJzdHJpbmdcIj09dHlwZW9mIGFbZF0/cGFyc2VJbnQoYVtkXS5yZXBsYWNlKFwicHhcIixcIlwiKSwxMCk6YVtkXTtlPWU+amQ/amQ6ZTtlPTEwPmU/MTA6ZTthW2RdPWUrXCJweFwifX1yZXR1cm4gYX0sXCJ2RlNcIikseGs9L15cXC97Myx9Lyx2az1FKGZ1bmN0aW9uKGEpe3JldHVybiBhJiZhLnN0YXJ0c1dpdGgoXCIvL1wiKT9kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCthLnJlcGxhY2UoeGssXCIvL1wiKTphfSxcInJSUFwiKSxpaz1FKGZ1bmN0aW9uKGEpe2E9YS5mZXhwfHxcIlwiO3JldHVybiBhLmluY2x1ZGVzKFwiMTczMDAwMDFcIik/MTphLmluY2x1ZGVzKFwiMTczMDAwMDJcIik/MjowfSxcImdQUFZcIiksWj17fSxqaz0oWi5hZFBhZ2U9XCJhZHBhZ2VcIixaLmFkcGFnZT1cImFkcGFnZVwiLFouYWRzPVwiYWRcIixcblouYWRzYWZlPVwiYWRzYWZlXCIsWi5hZHN0eWxlPVwiYWRzdHlsZVwiLFouYWR0ZXN0PVwiYWR0ZXN0XCIsWi5hZmRUb2tlbj1cImFmZHRcIixaLmFmc2V4cD1cImFmc2V4cFwiLFouYWxsd2NhbGxhZD1cImFsbHdjYWxsYWRcIixaLmJncmVzcG9uc2U9XCJiZ3Jlc3BvbnNlXCIsWi5jaGFubmVsPVwiY2hhbm5lbFwiLFouY29udD1cImNvbnRcIixaLmNyZWY9XCJjcmVmXCIsWi5jeD1cImN4XCIsWi5kZWI9XCJkZWJcIixaLmRlYnVnPVwiZGVidWdcIixaLmRvbWFpbk5hbWU9XCJkb21haW5fbmFtZVwiLFouZT1cImVcIixaLmV4cGZsYWdzPVwiZXhwZmxhZ3NcIixaLmZha2VhZHM9XCJmYWtlYWRzXCIsWi5mY2FwPVwiZmNhcFwiLFouZmV4cD1cImZleHBcIixaLmZvcmNlRXg9XCJleHBpZFwiLFouZm9ybWF0PVwiZm9ybWF0XCIsWi5nY3M9XCJnY3NcIixaLmdjc2VfbmM9XCJnY3NlX25jXCIsWi5nbD1cImdsXCIsWi5nbHA9XCJnbHBcIixaLmdtPVwiZ21cIixaLmdyPVwiZ3JcIixaLmhsPVwiaGxcIixaLmhvc3RDaGFubmVsPVwiaGNoYW5uZWxcIixaLmhvc3RQdWJJZD1cImhjbGllbnRcIixcblouaWU9XCJpZVwiLFouanNTcmM9XCJjc2FfanNfc3JjXCIsWi5sYW5ndWFnZUNvZGU9XCJobFwiLFoubWF4VGVybUxlbmd0aD1cIm1heF9yYWRsaW5rX2xlblwiLFoubXM9XCJtc1wiLFoubm9jYWNoZT1cIm5vY2FjaGVcIixaLm51bT1cIm51bVwiLFoubnVtUmVwZWF0ZWQ9XCJhZHJlcFwiLFoub2U9XCJvZVwiLFoub3V0cHV0PVwib3V0cHV0XCIsWi5wbGFzSW5DYXJvdXNlbD1cInBsYV9jYXJvdXNlbFwiLFoucHJlbG9hZD1cInByZWxvYWRcIixaLnByaWNlQ3VycmVuY3k9XCJwZmNybmN5XCIsWi5wcmljZU1heD1cInBmbWF4XCIsWi5wcmljZU1pbj1cInBmbWluXCIsWi5wdWJJZD1cImNsaWVudFwiLFoucXVlcnk9XCJxXCIsWi5xdWVyeUNvbnRleHQ9XCJxcnlfY3R4dFwiLFoucXVlcnlMaW5rPVwicXJ5X2xua1wiLFoucmVmZXJlcj1cInJlZmVyZXJcIixaLnJvbGU9XCJyXCIsWi5yb3drZXlWMj1cInJvd2tleVYyXCIsWi5yc190dD1cInJzX3R0XCIsWi5ydXJsPVwicnVybFwiLFouc2FmZT1cInNhZmVcIixaLnNic2lnbmFscz1cInNic2lnbmFsc1wiLFouc291cmNlPVwic291cmNlXCIsXG5aLnNvdXJjZV9pcD1cInNvdXJjZV9pcFwiLFouc3R5bGVJZD1cInBzaWRcIixaLnRleHRDb2xvclBhbGV0dGU9XCJ0Y3BhbFwiLFoudGhlbWU9XCJ0aGVtZVwiLFoudHlwZT1cInR5cGVcIixaLnVpZGViPVwidWlkZWJcIixaLnVzZXJBZ2VudD1cInVzZXJhZ2VudFwiLFoudXVsZD1cInV1bGRcIixaLnY9XCJ2XCIsWi5hZGZpbGlhdGVXcD1cImFkZndwXCIsWi5jcHA9XCJjcHBcIixaLmhvdHN3YXBzPVwiaG90c3dhcHNcIixaLnJlc3VsdHNQYWdlQmFzZVVybD1cInJwYnVcIixaLnJlc3VsdHNQYWdlUXVlcnlQYXJhbT1cInJwcXBcIixaLnBlcnNvbmFsaXplZEFkcz1cInBjc2FcIixaLmF0dG1hcz1cImF0dG1hc1wiLFouY21wU2RrSWQ9XCJpYWJfY21wU2RrSWRcIixaLmdkcHJBcHBsaWVzPVwiaWFiX2dkcHJBcHBsaWVzXCIsWi50Y1N0cmluZz1cImlhYl90Y1N0cmluZ1wiLFouc2Nfc3RhdHVzPVwic2Nfc3RhdHVzXCIsWi5zY3Q9XCJzY3RcIixaLnVpT3B0aW1pemU9XCJ1aW9wdFwiLFoudWlfb3B0aW1pemU9XCJ1aW9wdFwiLFouZG9tYWluUmVnaXN0cmFudD1cInN3cFwiLFxuWi5kb21haW5TZXNzaW9uVG9rZW49XCJhZmR0XCIsWi5rdz1cImt3XCIsWi50ZXJtcz1cInRlcm1zXCIsWiksd2s9e2hjOjF9O209VS5wcm90b3R5cGU7bS5WYj1CKFUucHJvdG90eXBlLlZiLFwiY0FBXCIpO20uWWI9QihVLnByb3RvdHlwZS5ZYixcImNGQU1cIik7bS5UPUIoVS5wcm90b3R5cGUuVCxcImNGQVwiKTttLlpjPUIoVS5wcm90b3R5cGUuWmMsXCJ2QVNET1wiKTttLkRjPUIoVS5wcm90b3R5cGUuRGMsXCJvVFBQXCIpO20ud2E9QihVLnByb3RvdHlwZS53YSxcIm9UQlBcIik7bS5YYj1CKFUucHJvdG90eXBlLlhiLFwiY0NQXCIpO20uY2M9QihVLnByb3RvdHlwZS5jYyxcImNVSVBcIik7bS5kYz1CKFUucHJvdG90eXBlLmRjLFwiY1VcIik7bS5MYj1CKFUucHJvdG90eXBlLkxiLFwiYU9UVVwiKTttLkY9QihVLnByb3RvdHlwZS5GLFwiZ0ZOXCIpO20ucGM9QihVLnByb3RvdHlwZS5wYyxcImdGTkFPQUpcIik7bS5uYz1CKFUucHJvdG90eXBlLm5jLFwiZ0FJXCIpO20uUmI9QihVLnByb3RvdHlwZS5SYixcImNPXCIpO1xubS5xYz1CKFUucHJvdG90eXBlLnFjLFwiaUFJXCIpO20uRWM9QihVLnByb3RvdHlwZS5FYyxcInBNXCIpO20ucmM9QihVLnByb3RvdHlwZS5yYyxcImlcIik7bS5jYj1CKFUucHJvdG90eXBlLmNiLFwiY0lcIik7bS53Yj1CKFUucHJvdG90eXBlLndiLFwibUFcIik7bS5WYz1CKFUucHJvdG90eXBlLlZjLFwidFNQXCIpO20udWM9QihVLnByb3RvdHlwZS51YyxcImlGU1wiKTttLnpjPUIoVS5wcm90b3R5cGUuemMsXCJuTkFcIik7bS5SYz1CKFUucHJvdG90eXBlLlJjLFwic0lIXCIpO20uUWM9QihVLnByb3RvdHlwZS5RYyxcInNDV1wiKTttLkViPUIoVS5wcm90b3R5cGUuRWIsXCJzUFwiKTttLk9jPUIoVS5wcm90b3R5cGUuT2MsXCJySVNcIik7bS5mYj1CKFUucHJvdG90eXBlLmZiLFwiZENFXCIpO20uRmI9QihVLnByb3RvdHlwZS5GYixcInNDXCIpO20ueGE9QihVLnByb3RvdHlwZS54YSxcImNWQVNET1wiKTttLm9iPUIoVS5wcm90b3R5cGUub2IsXCJpSVZcIik7bS5BYz1CKFUucHJvdG90eXBlLkFjLFwicExDXCIpO2NrPUIoY2ssXCJjVkFTRFBPXCIpO2Z1bmN0aW9uIHlrKCl7fXNhKHlrLFZqKTt5ay5wcm90b3R5cGUuaWI9ZnVuY3Rpb24oKXtyZXR1cm5cImFmZF9hZHNcIn07eWsucHJvdG90eXBlLnhjPWZ1bmN0aW9uKCl7cmV0dXJuITB9O2Z1bmN0aW9uIHprKCl7fXNhKHprLFZqKTt6ay5wcm90b3R5cGUuRGE9ZnVuY3Rpb24oYSl7dmFyIGI9MTczMDEzNjg9PT1ZaigpLGM9eihcIl9hZnNSc0Nvb2tpZWxlc3NcIik7cmV0dXJuKGJ8fGMpJiZudWxsIT1hJiYtMT09PWEuaW5kZXhPZihcImRwLVwiKT9cImh0dHBzOi8vc3luZGljYXRlZHNlYXJjaC5nb29nXCI6b2MoKX07emsucHJvdG90eXBlLmliPWZ1bmN0aW9uKCl7cmV0dXJuXCJhZmRfYWRzXCJ9O3prLnByb3RvdHlwZS54Yz1mdW5jdGlvbigpe3JldHVybiEwfTtmdW5jdGlvbiBBaygpe31zYShBayxWaik7QWsucHJvdG90eXBlLnVkPWZ1bmN0aW9uKGEpe2E9dGhpcy5EYShhKS5yZXBsYWNlKFwid3d3Lmdvb2dsZVwiLFwiY3NlLmdvb2dsZVwiKTtyZXR1cm4gbmV3IHFjKGErXCIvY3NlX3YyL2Fkc1wiKX07QWsucHJvdG90eXBlLmliPWZ1bmN0aW9uKCl7cmV0dXJuXCJ1ZHNfYWRzX29ubHlcIn07ZnVuY3Rpb24gQmsoKXt9c2EoQmssVmopO0JrLnByb3RvdHlwZS5pYj1mdW5jdGlvbigpe3JldHVyblwidWRzX2Fkc19vbmx5XCJ9O3ZhciBDaz17ZzpuZXcgSGkoUmksNSl9O2Z1bmN0aW9uIERrKGEsYixjLGQsZSxmLGcsaCxrLGwpe2w9dm9pZCAwPT09bD9bXTpsO1UuY2FsbCh0aGlzLGEsYixjLGQsZSxmLGcsaCx2b2lkIDA9PT1rPzE6ayxsKX1zYShEayxVKTtEay5wcm90b3R5cGUuTWQ9ZnVuY3Rpb24oYSl7aWYoYS50ZXh0Q29sb3JQYWxldHRlKXt2YXIgYj1hLnRleHRDb2xvclBhbGV0dGU7QXJyYXkuaXNBcnJheShiKXx8KGI9W2JdKTtiPVpkKFwidGV4dENvbG9yUGFsZXR0ZVwiLENrLGIpO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXRyeXt2YXIgZD1iW2NdO2JbY109TWkoXCIjXCI9PWQuY2hhckF0KDApP2Q6XCIjXCIrZCkuc3Vic3RyKDEpfWNhdGNoKGUpe31hLnRleHRDb2xvclBhbGV0dGU9Yi5qb2luKFwiLFwiKX1cIm9uXCI9PWEuYWR0ZXN0JiZhLnRlc3RnbCYmKGEuZ2w9YS50ZXN0Z2wsYS5nbHA9XCIxXCIpfTtEay5wcm90b3R5cGUuVD1mdW5jdGlvbihhKXtyZXR1cm4gYS5udW1iZXI/XCJuXCIrYS5udW1iZXI6XCJcIn07ZnVuY3Rpb24gRWsoYSxiLGMsZCxlLGYsZyxoLGssbCl7bD12b2lkIDA9PT1sP1tdOmw7VS5jYWxsKHRoaXMsYSxiLGMsZCxlLGYsZyxoLHZvaWQgMD09PWs/MTprLGwpfXNhKEVrLFUpO0VrLnByb3RvdHlwZS5UPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVsYXRlZFNlYXJjaGVzO2J8fDA9PT1ifHwoYj1hLm51bWJlcil8fDA9PT1ifHwoYj0xMCk7cmV0dXJuXCJyXCIrYn07RWsucHJvdG90eXBlLlQ9QihFay5wcm90b3R5cGUuVCxcImNGQV9SU1wiKTtmdW5jdGlvbiBGayhhLGIsYyxkLGUsZixnLGgsayxsKXtsPXZvaWQgMD09PWw/W106bDtVLmNhbGwodGhpcyxhLGIsYyxkLGUsZixnLGgsdm9pZCAwPT09az8xOmssbCl9c2EoRmssVSk7RmsucHJvdG90eXBlLlQ9ZnVuY3Rpb24oKXtyZXR1cm5cInNcIn07RmsucHJvdG90eXBlLnhhPWZ1bmN0aW9uKGEpe1UucHJvdG90eXBlLnhhLmNhbGwodGhpcyxhKTthLmNvbG9yQmFja2dyb3VuZHx8KGEuY29sb3JCYWNrZ3JvdW5kPVwidHJhbnNwYXJlbnRcIil9O3ZhciBraz1FKGZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCxrKXtmdW5jdGlvbiBsKCl7fWg9dm9pZCAwPT09aD8xOmg7az12b2lkIDA9PT1rP1tdOms7Yi5yZWxhdGVkU2VhcmNoZXM/Yi50eXBlPVwicmVsYXRlZHNlYXJjaFwiOmIudHlwZXx8KGIudHlwZT1cImFkc1wiKTt2YXIgcD1uZXcgeWsscj1udWxsO3N3aXRjaChiLnR5cGUpe2Nhc2UgXCJyZWxhdGVkc2VhcmNoXCI6bD1FaztyPW5ldyB6azticmVhaztjYXNlIFwiYWRzXCI6Y2FzZSBcInRleHRhZHNcIjpiLnR5cGU9XCJhZHNcIjtsPVU7cj1iLmdjc2M/bmV3IEFrOnA7YnJlYWs7Y2FzZSBcInBsYXNcIjpsPURrO3I9bmV3IEJrO2JyZWFrO2Nhc2UgXCJzZWFyY2hib3hcIjpsPUZrO3I9cDtwPTE3MzAxMzY4PT09WWooKTt2YXIgcT16KFwiX2Fmc1JzQ29va2llbGVzc1wiKTtpZihwfHxxKXI9bmV3IHprO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRGMoXCJpbnZhbGlkIGJsb2NrIHR5cGU6IFwiK2IudHlwZSk7fXJldHVybiBuZXcgbChhLGIscixjLGQsZSxmLGcsaCxrKX0sXG5cIm5BQlwiKTtmdW5jdGlvbiBHayhhLGIsYyxkKXtkPXZvaWQgMD09PWQ/ITE6ZDthLmdvb2dsZV9pbWFnZV9yZXF1ZXN0c3x8KGEuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzPVtdKTt2YXIgZT1FaChhLmRvY3VtZW50KTtpZihjKXt2YXIgZj1mdW5jdGlvbigpe2lmKGMpe3ZhciBnPWEuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzLGg9WGEoZyxlKTswPD1oJiZBcnJheS5wcm90b3R5cGUuc3BsaWNlLmNhbGwoZyxoLDEpfWUucmVtb3ZlRXZlbnRMaXN0ZW5lciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKFwibG9hZFwiLGYsITEpO2UucmVtb3ZlRXZlbnRMaXN0ZW5lciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKFwiZXJyb3JcIixmLCExKX07QmgoZSxcImxvYWRcIixmKTtCaChlLFwiZXJyb3JcIixmKX1kJiYoZS5hdHRyaWJ1dGlvblNyYz1cIlwiKTtlLnNyYz1iO2EuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzLnB1c2goZSl9XG5mdW5jdGlvbiBIayhhKXt2YXIgYj12b2lkIDA9PT1iPyExOmI7dmFyIGM9XCJodHRwczovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9nZW5fMjA0P2lkPXRjZmVcIjtDaChhLGZ1bmN0aW9uKGQsZSl7aWYoZHx8MD09PWQpYys9XCImXCIrZStcIj1cIitlbmNvZGVVUklDb21wb25lbnQoXCJcIitkKX0pO0lrKGMsYil9XG5mdW5jdGlvbiBJayhhLGIpe3ZhciBjPXdpbmRvdztiPXZvaWQgMD09PWI/ITE6Yjt2YXIgZD12b2lkIDA9PT1kPyExOmQ7Yy5mZXRjaD8oYj17a2VlcGFsaXZlOiEwLGNyZWRlbnRpYWxzOlwiaW5jbHVkZVwiLHJlZGlyZWN0OlwiZm9sbG93XCIsbWV0aG9kOlwiZ2V0XCIsbW9kZTpcIm5vLWNvcnNcIn0sZCYmKGIubW9kZT1cImNvcnNcIixcInNldEF0dHJpYnV0aW9uUmVwb3J0aW5nXCJpbiBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGU/Yi5hdHRyaWJ1dGlvblJlcG9ydGluZz17ZXZlbnRTb3VyY2VFbGlnaWJsZTpcInRydWVcIix0cmlnZ2VyRWxpZ2libGU6XCJmYWxzZVwifTpiLmhlYWRlcnM9e1wiQXR0cmlidXRpb24tUmVwb3J0aW5nLUVsaWdpYmxlXCI6XCJldmVudC1zb3VyY2VcIn0pLGMuZmV0Y2goYSxiKSk6R2soYyxhLHZvaWQgMD09PWI/ITE6Yix2b2lkIDA9PT1kPyExOmQpfTtmdW5jdGlvbiBKayhhKXt2b2lkIDAhPT1hLmFkZHRsQ29uc2VudCYmXCJzdHJpbmdcIiE9PXR5cGVvZiBhLmFkZHRsQ29uc2VudCYmKGEuYWRkdGxDb25zZW50PXZvaWQgMCk7dm9pZCAwIT09YS5nZHByQXBwbGllcyYmXCJib29sZWFuXCIhPT10eXBlb2YgYS5nZHByQXBwbGllcyYmKGEuZ2RwckFwcGxpZXM9dm9pZCAwKTtyZXR1cm4gdm9pZCAwIT09YS50Y1N0cmluZyYmXCJzdHJpbmdcIiE9PXR5cGVvZiBhLnRjU3RyaW5nfHx2b2lkIDAhPT1hLmxpc3RlbmVySWQmJlwibnVtYmVyXCIhPT10eXBlb2YgYS5saXN0ZW5lcklkPzI6YS5jbXBTdGF0dXMmJlwiZXJyb3JcIiE9PWEuY21wU3RhdHVzPzA6M31mdW5jdGlvbiBLayhhLGIpe2I9dm9pZCAwPT09Yj97fTpiO3RoaXMuVGE9YTt0aGlzLm5hPW51bGw7dGhpcy5CZD17fTt0aGlzLnJlPTA7dmFyIGM7dGhpcy5JZD1udWxsIT0oYz1iLnRpbWVvdXRNcyk/Yzo1MDA7dmFyIGQ7dGhpcy5tZD1udWxsIT0oZD1iLkNnKT9kOiExO3RoaXMuUGI9bnVsbH1cbnNhKEtrLGhnKTtcbktrLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZyxoKXtjbGVhclRpbWVvdXQoZik7Zz8oZD1nLGQuaW50ZXJuYWxFcnJvclN0YXRlPUprKGQpLGQuaW50ZXJuYWxCbG9ja09uRXJyb3JzPWMubWQsaCYmMD09PWQuaW50ZXJuYWxFcnJvclN0YXRlfHwoZC50Y1N0cmluZz1cInRjdW5hdmFpbGFibGVcIixofHwoZC5pbnRlcm5hbEVycm9yU3RhdGU9MykpKTooZC50Y1N0cmluZz1cInRjdW5hdmFpbGFibGVcIixkLmludGVybmFsRXJyb3JTdGF0ZT0zKTthKGQpfXZhciBjPXRoaXMsZD17aW50ZXJuYWxCbG9ja09uRXJyb3JzOnRoaXMubWR9LGU9V2EoZnVuY3Rpb24oKXtyZXR1cm4gYShkKX0pLGY9MDstMSE9PXRoaXMuSWQmJihmPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtkLnRjU3RyaW5nPVwidGN1bmF2YWlsYWJsZVwiO2QuaW50ZXJuYWxFcnJvclN0YXRlPTE7ZSgpfSx0aGlzLklkKSk7dHJ5e0xrKHRoaXMsXCJhZGRFdmVudExpc3RlbmVyXCIsYil9Y2F0Y2goZyl7ZC50Y1N0cmluZz1cblwidGN1bmF2YWlsYWJsZVwiLGQuaW50ZXJuYWxFcnJvclN0YXRlPTMsZiYmKGNsZWFyVGltZW91dChmKSxmPTApLGUoKX19O0trLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe2EmJmEubGlzdGVuZXJJZCYmTGsodGhpcyxcInJlbW92ZUV2ZW50TGlzdGVuZXJcIixudWxsLGEubGlzdGVuZXJJZCl9O2Z1bmN0aW9uIExrKGEsYixjLGQpe2N8fChjPWZ1bmN0aW9uKCl7fSk7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEuVGEuX190Y2ZhcGkpYT1hLlRhLl9fdGNmYXBpLGEoYiwyLGMsZCk7ZWxzZSBpZihhLkFhKCkpe01rKGEpO3ZhciBlPSsrYS5yZTthLkJkW2VdPWM7YS5uYSYmKGM9e30sYS5uYS5wb3N0TWVzc2FnZSgoYy5fX3RjZmFwaUNhbGw9e2NvbW1hbmQ6Yix2ZXJzaW9uOjIsY2FsbElkOmUscGFyYW1ldGVyOmR9LGMpLFwiKlwiKSl9ZWxzZSBjKHt9LCExKX1cbktrLnByb3RvdHlwZS5BYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5hP3RoaXMubmE6dGhpcy5uYT1EaCh0aGlzLlRhLFwiX190Y2ZhcGlMb2NhdG9yXCIpfTtmdW5jdGlvbiBNayhhKXthLlBifHwoYS5QYj1mdW5jdGlvbihiKXt0cnl7dmFyIGM9KFwic3RyaW5nXCI9PT10eXBlb2YgYi5kYXRhP0pTT04ucGFyc2UoYi5kYXRhKTpiLmRhdGEpLl9fdGNmYXBpUmV0dXJuO2EuQmRbYy5jYWxsSWRdKGMucmV0dXJuVmFsdWUsYy5zdWNjZXNzKX1jYXRjaChkKXt9fSxCaChhLlRhLFwibWVzc2FnZVwiLGEuUGIpKX1cbmZ1bmN0aW9uIE5rKGEpe2lmKCExPT09YS5nZHByQXBwbGllcylyZXR1cm4hMDt2b2lkIDA9PT1hLmludGVybmFsRXJyb3JTdGF0ZSYmKGEuaW50ZXJuYWxFcnJvclN0YXRlPUprKGEpKTtyZXR1cm5cImVycm9yXCI9PT1hLmNtcFN0YXR1c3x8MCE9PWEuaW50ZXJuYWxFcnJvclN0YXRlP2EuaW50ZXJuYWxCbG9ja09uRXJyb3JzPyhIayh7ZTpTdHJpbmcoYS5pbnRlcm5hbEVycm9yU3RhdGUpfSksITEpOiEwOlwibG9hZGVkXCIhPT1hLmNtcFN0YXR1c3x8XCJ0Y2xvYWRlZFwiIT09YS5ldmVudFN0YXR1cyYmXCJ1c2VyYWN0aW9uY29tcGxldGVcIiE9PWEuZXZlbnRTdGF0dXM/ITE6ITB9O2Z1bmN0aW9uIE9rKGEpe2lmKCFOayhhKSlyZXR1cm4hMTtpZighMT09PWEuZ2RwckFwcGxpZXN8fFwidGN1bmF2YWlsYWJsZVwiPT09YS50Y1N0cmluZylyZXR1cm4hMDt2YXIgYj12b2lkIDA9PT1iP1wiNzU1XCI6YjtiOntpZihhLnB1Ymxpc2hlciYmYS5wdWJsaXNoZXIucmVzdHJpY3Rpb25zKXt2YXIgYz1hLnB1Ymxpc2hlci5yZXN0cmljdGlvbnNbXCIxXCJdO2lmKHZvaWQgMCE9PWMpe2M9Y1t2b2lkIDA9PT1iP1wiNzU1XCI6Yl07YnJlYWsgYn19Yz12b2lkIDB9MD09PWM/Yj0hMTphLnB1cnBvc2UmJmEudmVuZG9yPyhjPWEudmVuZG9yLmNvbnNlbnRzLChiPSEoIWN8fCFjW3ZvaWQgMD09PWI/XCI3NTVcIjpiXSkpJiZhLnB1cnBvc2VPbmVUcmVhdG1lbnQmJlwiQ0hcIj09PWEucHVibGlzaGVyQ0M/Yj0hMDpiJiYoYj1hLnB1cnBvc2UuY29uc2VudHMsYj0hKCFifHwhYltcIjFcIl0pKSk6Yj0hMDtyZXR1cm4gYj8hMDooY29uc29sZS53YXJuKERjKFwiVEMgc3RyaW5nIGxhY2tzIHB1cnBvc2UgMSBjb25zZW50IGZvciBHb29nbGUgKEdWTCBJRDogNzU1KS4gQ1NBIGFkcyB3aWxsIG5vdCBiZSByZXF1ZXN0ZWQgdW50aWwgY29uc2VudCBpcyBnaXZlbi4gVEMgc3RyaW5nOiBcIitcbmEudGNTdHJpbmcpKSwhMSl9XG52YXIgUGs9RShmdW5jdGlvbihhKXt2YXIgYj1uZXcgS2sod2luZG93LHt0aW1lb3V0TXM6LTF9KTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5UYS5fX3RjZmFwaXx8bnVsbCE9Yi5BYSgpKXt2YXIgYz1wZSgpLGQ9MDtkPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtkPTA7Y29uc29sZS53YXJuKERjKFwiTm8gcmVzcG9uc2UgcmVjZWl2ZWQgZnJvbSBDTVAgYWZ0ZXIgMTAgc2Vjb25kcy4gQ1NBIGFkcyBoYXZlIG5vdCBiZWVuIHJlcXVlc3RlZC5cIikpfSwxRTQpO2IuYWRkRXZlbnRMaXN0ZW5lcihmdW5jdGlvbihlKXtkJiYoY2xlYXJUaW1lb3V0KGQpLGQ9MCk7aWYoT2soZSkpe2lmKDAhPT1lLmludGVybmFsRXJyb3JTdGF0ZSl7dmFyIGY9bmV3IHVjKGEpO3N3aXRjaChlLmludGVybmFsRXJyb3JTdGF0ZSl7Y2FzZSAxOnljKGYsXCJ0b1wiLEpTT04uc3RyaW5naWZ5KGUpKTtjb25zb2xlLndhcm4oRGMoXCJSZWFjaGVkIHRpbWVvdXQgYmVmb3JlIGEgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZyb20gQ01QLlwiKSk7YnJlYWs7XG5jYXNlIDI6eWMoZixcIml0XCIsSlNPTi5zdHJpbmdpZnkoZSkpO2NvbnNvbGUud2FybihEYyhcIkludmFsaWQgdHlwZXMgaW4gcmVjZWl2ZWQgdGNEYXRhLlwiKSk7YnJlYWs7Y2FzZSAzOnljKGYsXCJlclwiLEpTT04uc3RyaW5naWZ5KGUpKSxjb25zb2xlLndhcm4oRGMoXCJDTVAgcmV0dXJuZWQgZXJyb3Igc3RhdHVzLlwiKSl9fWIucmVtb3ZlRXZlbnRMaXN0ZW5lcihlKTtjLnJlc29sdmUoe3RjU3RyaW5nOmUudGNTdHJpbmcsZ2RwckFwcGxpZXM6ZS5nZHByQXBwbGllc30pfX0pO3JldHVybiBjLnByb21pc2V9cmV0dXJuIG51bGx9LFwiZ1RBRFwiKTt2YXIgUWs9amEoW1wiaHR0cHM6Ly9wYXJ0bmVyLmdvb2dsZWFkc2VydmljZXMuY29tL2dhbXBhZC9jb29raWUuanNcIl0pO2Z1bmN0aW9uIFJrKGEsYil7dmFyIGM9YS5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpOyRnKGMsYik7KGE9YS5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKVswXSkmJmEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjLGEpfWZ1bmN0aW9uIFNrKGEsYixjLGQsZSl7dGhpcy5uYW1lPWE7dGhpcy52YWx1ZT1iO3RoaXMubGM9Yzt0aGlzLnBhdGg9dm9pZCAwPT09ZD9udWxsOmQ7dGhpcy5kb21haW49dm9pZCAwPT09ZT9udWxsOmV9ZnVuY3Rpb24gVGsoYSl7dGhpcy5KPWE7dGhpcy5VYj0wO3RoaXMuRmQ9bnVsbH1cbmZ1bmN0aW9uIFVrKGEsYil7aWYoIWIubmFtZXx8IWIudmFsdWV8fCFiLmxjKXRocm93XCJTZXR0aW5nIGEgY29va2llIG11c3QgaW5jbHVkZSBjb29raWUgbmFtZSBhbmQgdmFsdWUgYW5kIGV4cGlyYXRpb24uXCI7dmFyIGM9Yi5uYW1lK1wiPVwiK2IudmFsdWUsZD1cIlwiLGU9XCJcIixmPVwiXCI7Yi5wYXRoJiYoZD1cIjtwYXRoPVwiK2IucGF0aCk7dmFyIGc9Yi5kb21haW47aWYoZyl7YTppZih6KFwiX3VzZVNlcnZlclByb3ZpZGVkRG9tYWluXCIpKXtpZihlPVpiKFwic3NkbFwiLGFjKCkpKWlmKGU9bmV3IFJlZ0V4cChcIihcIithdG9iKGUpLnJlcGxhY2UoLywvZyxcIil8KFwiKStcIilcIiksZy5tYXRjaChlKSl7ZT0hMTticmVhayBhfWU9ITB9ZWxzZSBlPSExO2U9XCI7ZG9tYWluPVwiKyhlP2c6YS5KLmxvY2F0aW9uLmhvc3RuYW1lKX1iLmxjJiYoZj1cIjtleHBpcmVzPVwiK2IubGMpO2EuSi5kb2N1bWVudC5jb29raWU9YytmK2QrZX1cbmZ1bmN0aW9uIFZrKGEsYil7aWYoIWIpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7Y29va2llOm51bGwsc3RhdHVzOjR9KTt2YXIgYz1iLl9jb29raWVzX1swXTtpZighYylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtjb29raWU6bnVsbCxzdGF0dXM6NH0pO2I9Yy5fdmFsdWVfO2M9bmV3IFNrKFwiX19nc2FzXCIsYiwobmV3IERhdGUoMUUzKmMuX2V4cGlyZXNfKSkudG9VVENTdHJpbmcoKSxjLl9wYXRoXyxjLl9kb21haW5fKTt0cnl7VWsoYSxjKX1jYXRjaChkKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtjb29raWU6bnVsbCxzdGF0dXM6N30pfXJldHVybiBQcm9taXNlLnJlc29sdmUoe2Nvb2tpZTpiLHN0YXR1czozfSl9XG5mdW5jdGlvbiBXayhhKXtpZigwPT09YS5VYil7YTp7dHJ5e3ZhciBiPW5ldyBEYXRlO2Iuc2V0VGltZShiLmdldFRpbWUoKSszNkU1KTtVayhhLG5ldyBTayhcIkdvb2dsZUFkU2VydmluZ1Rlc3RcIixcIkdvb2RcIixiLnRvVVRDU3RyaW5nKCkpKX1jYXRjaChkKXtiPSExO2JyZWFrIGF9aWYoYj1cIkdvb2RcIj09PVhrKGEsXCJHb29nbGVBZFNlcnZpbmdUZXN0XCIpKXt2YXIgYz1uZXcgU2soXCJHb29nbGVBZFNlcnZpbmdUZXN0XCIsXCJHb29kXCIsKG5ldyBEYXRlKDApKS50b1VUQ1N0cmluZygpKTt0cnl7VWsoYSxjKX1jYXRjaChkKXtiPSExfX19YS5VYj1iPzI6MX1yZXR1cm4gMj09PWEuVWJ9XG5mdW5jdGlvbiBYayhhLGIpe2lmKFwic3RyaW5nXCI9PT10eXBlb2YgYS5KLmRvY3VtZW50LmNvb2tpZSl7dmFyIGM9bmV3IFJlZ0V4cChcIl5cXFxccypcIitiK1wiPSguKilcIik7aWYoYT1hLkouZG9jdW1lbnQuY29va2llLnNwbGl0KFwiO1wiKS5maW5kKGZ1bmN0aW9uKGQpe3JldHVybiBudWxsIT1kLm1hdGNoKGMpfSkpcmV0dXJuIGEubWF0Y2goYylbMV19fVxuZnVuY3Rpb24gWWsoYSxiKXtiPXtkb21haW46YS5KLmxvY2F0aW9uLmhvc3RuYW1lLGNsaWVudDpifHxcInVuZGVmaW5lZFwiLHByb2R1Y3Q6XCJTQVNcIixjYWxsYmFjazpcIl9fc2FzQ29va2llXCJ9O2lmKGEuSiE9YS5KLnBhcmVudCYmIWIuZG9tYWluKXt2YXIgYz1hLkoucGFyZW50JiZhLkoucGFyZW50LmxvY2F0aW9uJiZhLkoucGFyZW50LmxvY2F0aW9uLmhvc3RuYW1lO2IuZG9tYWluPWEuSi5sb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnMmJmEuSi5sb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnNbMF18fGN9dmFyIGQ9ZWIoTGUoUWspLGIpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXthLkouX19zYXNDb29raWU9ZnVuY3Rpb24oZil7VmsoYSxhLkZkP2EuRmQ6ZikudGhlbihmdW5jdGlvbihnKXtlKGcpfSl9O1JrKGEuSi5kb2N1bWVudCxkKX0pfVxudmFyIFprPUUoZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/bnVsbDpXayhhKT8oYT1YayhhLFwiX19nc2FzXCIpKT97WTo2LGNvb2tpZTphfTpudWxsOntZOjAsY29va2llOm51bGx9fSxcInNhc0NrZUVyclwiKSwkaz1FKGZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBUayh3aW5kb3cpO3JldHVybiBXayhiKT9ZayhiLGEpLnRoZW4oZnVuY3Rpb24oYyl7cmV0dXJue1k6Yy5zdGF0dXMsY29va2llOmMuY29va2llfX0pOlByb21pc2UucmVzb2x2ZSh7WTowLGNvb2tpZTpudWxsfSl9LFwic2NFcnJcIik7dmFyIGFsPW51bGw7ZnVuY3Rpb24gYmwoYSxiLGMpe2E/KGIuY29va2llPWEuY29va2llLGIuWT1hLlkpOihhbD0kayhjKSxhbC50aGVuKGZ1bmN0aW9uKGQpe2IuY29va2llPWQuY29va2llO2IuWT1kLll9KSl9XG52YXIgY2w9RShmdW5jdGlvbihhLGIsYyl7Yz12b2lkIDA9PT1jP3dpbmRvdzpjO3ZhciBkPVtUaigpLFBrKGEpXSxlLGYsZz0tMSE9PShudWxsPT0oZT1jLmxvY2F0aW9uKT92b2lkIDA6bnVsbD09KGY9ZS5ob3N0KT92b2lkIDA6Zi5pbmRleE9mKFwic3RhcnRwYWdlXCIpKSxoPW51bGw7ZT16KFwiZW5hYmxlTm9uYmxvY2tpbmdTYXNDb29raWVcIik7dmFyIGs9bnVsbCE9ZFsxXSYmYjtnfHwhZXx8a3x8KGg9WmsobmV3IFRrKGMpKSk7dmFyIGw9e2NhOnZvaWQgMCxvZDp2b2lkIDAsdGNTdHJpbmc6dm9pZCAwLGdkcHJBcHBsaWVzOnZvaWQgMCxZOnZvaWQgMCxjb29raWU6dm9pZCAwfTtnfHwhZXx8a3x8YmwoaCxsLGEpO3JldHVybiBkLmV2ZXJ5KGZ1bmN0aW9uKHApe3JldHVybiBudWxsPT1wfSk/bDpzZShkKS50aGVuKGZ1bmN0aW9uKHApe2Zvcih2YXIgcj0wO3I8cC5sZW5ndGg7cisrKXt2YXIgcT1wW3JdO2lmKHEpc3dpdGNoKHIpe2Nhc2UgMDpsLmNhPXEuY2E7bC5vZD1xLkFiO2JyZWFrO1xuY2FzZSAxOmwudGNTdHJpbmc9cS50Y1N0cmluZyxsLmdkcHJBcHBsaWVzPXEuZ2RwckFwcGxpZXN9fSFrfHxudWxsPT1sLnRjU3RyaW5nJiZudWxsPT1sLmdkcHJBcHBsaWVzfHwoaD1aayhuZXcgVGsoYykpLGJsKGgsbCxhKSk7cmV0dXJuIGx9KS5jYXRjaChmdW5jdGlvbihwKXtDLmxvZyhwLFwidXNkUHJFcnJcIil9KX0sXCJ1c2RFcnJcIik7ZnVuY3Rpb24gZGwoYSl7Zm9yKHZhciBiPW5ldyBlbCxjPWFbMF0sZD0hMSxlPTE7ZTxhLmxlbmd0aDtlKyspe3ZhciBmPW5ldyBmbCxnPXZvaWQgMCxoPXZvaWQgMCxrPWFbZV07Zm9yKGggaW4gaylrLmhhc093blByb3BlcnR5KGgpJiYoZi5vcHRpb25zW2hdPWtbaF0pO2ZvcihnIGluIGMpYy5oYXNPd25Qcm9wZXJ0eShnKSYmKGYub3B0aW9uc1tnXXx8KGYub3B0aW9uc1tnXT1jW2ddKSk7ZHx8KGYub3B0aW9ucy50eXBlfHxmLm9wdGlvbnMucmVsYXRlZFNlYXJjaGVzKSYmXCJhZHNcIiE9PWYub3B0aW9ucy50eXBlJiZcInRleHRhZHNcIiE9PWYub3B0aW9ucy50eXBlfHwoZD1mLm9wdGlvbnMuZmlyc3RUZXh0QWRCbG9jaz0hMCk7Yi5KYi5wdXNoKGYpfWZvcih2YXIgbCBpbiBjKWMuaGFzT3duUHJvcGVydHkobCkmJihiLkNjW2xdPWNbbF0pO3JldHVybiBifWZ1bmN0aW9uIGZsKCl7dGhpcy5vcHRpb25zPXt9fWZ1bmN0aW9uIGVsKCl7dGhpcy5DYz17fTt0aGlzLkpiPVtdfTt2YXIgZ2w9XCJjbGlja3RyYWNrVXJsIGNvbnRhaW5lciBpZnJhbWVIZWlnaHRDYWxsYmFjayBsaW5rVGFyZ2V0IHB1YklkIHF1ZXJ5IHNldHRpbmdzSWQgc3R5bGVJZCB3YWl0Rm9yQWRzXCIuc3BsaXQoXCIgXCIpO2Z1bmN0aW9uIGhsKGEpe2lmKDI+YS5sZW5ndGgpdGhyb3cgRGMoXCJObyBvcHRpb25zIHNwZWNpZmllZC5cIik7cmV0dXJuIGFbMV1pbnN0YW5jZW9mIEFycmF5P1thWzBdXS5jb25jYXQoYVsxXSk6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYSwwKX1obD1CKGhsLFwicHBhdGFcIik7XG5mdW5jdGlvbiBpbChhKXt2YXIgYj0hZGUod2luZG93LmxvY2F0aW9uLmhyZWYpLnF1ZXJ5LGM9Yj9cInJlbGF0ZWRzZWFyY2hcIjpcImFkc1wiO2I9Yj8xNTo1O2Zvcih2YXIgZD0hMSxlPTE7ZTxhLmxlbmd0aDsrK2UpaWYoYVtlXS50eXBlPT1jKXtkPSEwO2JyZWFrfWU9W107YT1uKGEpO2Zvcih2YXIgZj1hLm5leHQoKTshZi5kb25lO2Y9YS5uZXh0KCkpZj1mLnZhbHVlLFwiZHluYW1pY1wiPT1mLnR5cGU/ZHx8KGYudHlwZT1jLGYubnVtYmVyfHwoZi5udW1iZXI9YiksZS5wdXNoKGYpKTplLnB1c2goZik7cmV0dXJuIGV9XG5mdW5jdGlvbiBqbChhKXtmdW5jdGlvbiBiKGYpe3N3aXRjaChmKXtjYXNlIFwicmVsYXRlZHNlYXJjaFwiOmNhc2UgXCJzZWFyY2hib3hcIjpyZXR1cm4gZT8xOjI7ZGVmYXVsdDpyZXR1cm4gZT8yOjF9fXZhciBjPTE3MzAxMzY4PT09WWooKSxkPXooXCJfYWZzUnNDb29raWVsZXNzXCIpO2lmKCFjJiYhZHx8Mz5hLmxlbmd0aClyZXR1cm4gYTt2YXIgZT0hZGUod2luZG93LmxvY2F0aW9uLmhyZWYpLnF1ZXJ5O3JldHVybiBhLnNsaWNlKDAsMSkuY29uY2F0KGEuc2xpY2UoMSkuc29ydChmdW5jdGlvbihmLGcpe3JldHVybiBiKGYudHlwZSktYihnLnR5cGUpfSkpfVxuZnVuY3Rpb24ga2woYSxiKXt2YXIgYz1iLmNhLGQ9Yi5vZCxlPWIudGNTdHJpbmcsZj1iLmdkcHJBcHBsaWVzLGc9Yi5ZO2I9Yi5jb29raWU7bnVsbCE9YyYmKGEuY3BwPWMpOyExPT09ZCYmKGEucGVyc29uYWxpemVkQWRzPSExKTtlJiYoYS50Y1N0cmluZz1lKTtudWxsIT1mJiYoYS5nZHByQXBwbGllcz1mKTtudWxsIT1nJiYoYS5zY19zdGF0dXM9Zyk7YiYmKGEuc2N0PWIpfWtsPUIoa2wsXCJhVURUQVwiKTtcbmZ1bmN0aW9uIGxsKGEsYixjLGQpe2M9dm9pZCAwPT09Yz9udWxsOmM7dmFyIGU9YS5CYztkPWR8fERhdGUubm93KCk7Yj1obChiKTtpZihiWzBdJiYhbWMoKSl7Yj1pbChiKTtiPWpsKGIpO2EuWWEmJihiWzBdLnR5cGU9YS5ZYSk7YyYma2woYlswXSxjKTthPWRsKGIpO3ZhciBmPXt9LGc9e307Yz1mdW5jdGlvbihrKXtrPW4oYWIoaykpO2Zvcih2YXIgbD1rLm5leHQoKTshbC5kb25lO2w9ay5uZXh0KCkpe2w9bC52YWx1ZTt2YXIgcD1lW2xdO3AmJnAuQSYmKGZbbF09ITApO3B8fFwiZmlyc3RUZXh0QWRCbG9ja1wiPT09bHx8KGdbbF09ITApfX07YyhhLkNjKTtiPW4oYS5KYik7Zm9yKHZhciBoPWIubmV4dCgpOyFoLmRvbmU7aD1iLm5leHQoKSljKGgudmFsdWUub3B0aW9ucyk7Yz1hYihmKTswPGMubGVuZ3RoJiZjb25zb2xlLndhcm4oXCJUaGUgZm9sbG93aW5nIENTQSBvcHRpb24ocykgd2VyZSBpZ25vcmVkIGR1ZSB0byBiZWluZyBvdmVycmlkZGVuIGJ5IG5hdGl2ZSBzdHlsZSBjb250cm9sczogXCIrXG5jKTtjPWFiKGcpOzA8Yy5sZW5ndGgmJmNvbnNvbGUud2FybihcIlRoZSBmb2xsb3dpbmcgQ1NBIG9wdGlvbihzKSBhcmUgdW5zdXBwb3J0ZWQ6IFwiK2MpOyhkPW1sKGUsYS5DYyxhLkpiLGQse30pKSYmZC50aGVuKGZ1bmN0aW9uKGspe3RrKGspfSl9fWxsPUIobGwsXCJhYXNpXCIpO1xuZnVuY3Rpb24gbWwoYSxiLGMsZCl7aWYoMD09Yy5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIGU9W10sZj1bXSxnPXttYXhUb3A6MCxtaW5Ub3A6MCxyaHM6MH07bmwrKztmb3IodmFyIGg9Yy5sZW5ndGgtMTswPD1oO2gtLSl7dmFyIGs9Y1toXS5vcHRpb25zO2suYWRUZXN0JiYhay5hZHRlc3QmJihrLmFkdGVzdD1rLmFkVGVzdCk7ZGVsZXRlIGsuYWRUZXN0O3ZhciBsPXNrLmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoXCJhbXBwcm9qZWN0Lm5ldFwiKSxwPVtdO2lmKGsuZmlyc3RUZXh0QWRCbG9jayYmIWwmJiF6KFwiX2VuYWJsZVVuaWZpZWRNdWRza2lwcGVySWZyYW1lXCIpKXtsPXt9O2Zvcih2YXIgcj1uKGdsKSxxPXIubmV4dCgpOyFxLmRvbmU7cT1yLm5leHQoKSlxPXEudmFsdWUsbFtxXT1rW3FdO2wucm9sZT1cInNcIjtsLm1hc3Rlck51bWJlcj1ubDswPGgmJihsLnNsYXZlTnVtYmVyPWgpO3I9a2soYSxsLGQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLDIpO2w9a2soYSxsLGQsdm9pZCAwLFxudm9pZCAwLHZvaWQgMCx2b2lkIDAsMyk7Zi51bnNoaWZ0KGwpO2YudW5zaGlmdChyKTtwLnB1c2gocik7cC5wdXNoKGwpO1lbci5GKCldPXI7WVtsLkYoKV09bH0wPT09aD8oay5yb2xlPVwibVwiLGsubWFzdGVyTnVtYmVyPW5sLGs9a2soYSxrLGQsYixlLGcsZiwxLHApLFlbay5GKCldPWspOihrLnJvbGU9XCJzXCIsay5zbGF2ZU51bWJlcj1oLGsubWFzdGVyTnVtYmVyPW5sLGs9a2soYSxrLGQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLDEscCksZS51bnNoaWZ0KGsuc2QpLGYudW5zaGlmdChrKSxnLm1heFRvcCs9ay55YixnLm1pblRvcCs9ay56YixnLnJocys9ay5MYSxZW2suRigpXT1rKX1hPVwibWFzdGVyLVwiK25sO2Zvcih2YXIgdCBpbiBZKSRkKHQpJiYoWVt0XS51YSs9XCJ8XCIrWVthXS51YSk7Zm9yKGM9Yy5sZW5ndGgtMTswPD1jO2MtLSl0PVtcInNsYXZlXCIsYyxubF0uam9pbihcIi1cIiksWS5oYXNPd25Qcm9wZXJ0eSh0KSYmWVt0XS5jYigpO2M9bnVsbDtZLmhhc093blByb3BlcnR5KGEpP1xuYz1ZW2FdLmNiKCk6Qy5sb2coXCJNaXNzaW5nIGFkIGJsb2NrIGZvciBcIithLFwiY0FGT01NXCIpO3JldHVybiBjfW1sPUIobWwsXCJjQUZPXCIpO2Z1bmN0aW9uIG9rKGEsYixjLGQpe2R8fFlbYy5zcGxpdChcIi5cIilbMF1dLnpjKGEpfW9rPUIob2ssXCJoQUNcIik7dmFyIG9sPXt9O2Z1bmN0aW9uIHBrKGEsYixjLGQpe2I9ZC5mdzt2YXIgZT1kLmZoO2Q9ZC5haDtkPVwibnVtYmVyXCI9PT10eXBlb2YgYiYmXCJudW1iZXJcIj09PXR5cGVvZiBlJiZkIGluc3RhbmNlb2YgQXJyYXk/bmV3IG5lKGIsZSxkKTpudWxsO2lmKG51bGwhPWQmJihjPWMuc3BsaXQoXCIuXCIpWzBdLGI9WVtjXSxiLk9jKGQsYSksYi5vcHRpb25zJiZiLm9wdGlvbnMuaWZyYW1lSGVpZ2h0Q2FsbGJhY2smJihhPWIuY29udGFpbmVyLm9mZnNldEhlaWdodCxvbFtjXSE9YSkpKXtvbFtjXT1hO3RyeXtiLm9wdGlvbnMuaWZyYW1lSGVpZ2h0Q2FsbGJhY2soYSl9Y2F0Y2goZil7fX19cGs9QihwayxcImhDXCIpO1xuZnVuY3Rpb24gcWsoYSxiLGMsZCl7YT1ZW2Muc3BsaXQoXCIuXCIpWzBdXTtzay5nZXRDb21wdXRlZFN0eWxlJiZhIGluc3RhbmNlb2YgRGsmJihiPXBhcnNlSW50KHNrLmdldENvbXB1dGVkU3R5bGUoYS5jb250YWluZXJ8fGRvY3VtZW50LmJvZHkpLndpZHRoLDEwKSxkPT1iJiYvTW9iaWxlL2kudGVzdChlYykmJmQtLSk7YS5RYyhkKX1xaz1CKHFrLFwid0NcIik7ZnVuY3Rpb24gcGwoYSxiKXt2YXIgYz17fSxkO2ZvcihkIGluIFkpaWYoWS5oYXNPd25Qcm9wZXJ0eShkKSl7dmFyIGU9WVtkXTtlLm9wdGlvbnMmJmUub3B0aW9ucy5tYXN0ZXJOdW1iZXI9PWImJlwic3RyaW5nXCI9PXR5cGVvZiBlLm9wdGlvbnMuY29udGFpbmVyJiYoZT1lLm9wdGlvbnMuY29udGFpbmVyLGNbZV09KGNbZV18fDApK2EuQltkK1wiLmFDXCJdLnZhbHVlKX1yZXR1cm4gY31wbD1CKHBsLFwiZ0FDXCIpO1xuZnVuY3Rpb24gbWsoYSxiKXt2YXIgYz1ZW1wibWFzdGVyLVwiK2JdO2lmKGMmJmMub3B0aW9ucyYmYy5vcHRpb25zLmFkc1Jlc3BvbnNlQ2FsbGJhY2spe2E9cGwoYSxiKTt0cnl7Yy5vcHRpb25zLmFkc1Jlc3BvbnNlQ2FsbGJhY2soYSl9Y2F0Y2goZCl7fX19bWs9QihtayxcImFDQ1wiKTtmdW5jdGlvbiByayhhLGIsYyxkKXtpZigoYT1ZW1wibWFzdGVyLVwiK2JdKSYmYS5vcHRpb25zJiZhLm9wdGlvbnMudmlzaWJsZVVybHNDYWxsYmFjayl7ZD1kP2Quc3BsaXQoXCJ8XCIpOltdO3RyeXthLm9wdGlvbnMudmlzaWJsZVVybHNDYWxsYmFjayhkKX1jYXRjaChlKXt9fX1yaz1CKHJrLFwidlVDXCIpO3ZhciBubD0wLFk9e30sc2s9d2luZG93O3ZhciBxbD1sbDtmdW5jdGlvbiBybChhKXtzbChhcmd1bWVudHMpfXZhciBzbD1FKGZ1bmN0aW9uKGEpe3ZhciBiPWEmJmFbMF18fHt9O2I9Y2woYi5wdWJJZHx8XCJcIiwhIWIuZ2NzY3x8ITEsd2luZG93KTtiIGluc3RhbmNlb2YgUHJvbWlzZT9iLnRoZW4oZnVuY3Rpb24oYyl7cWwoQ2osYSxjKX0pOnFsKENqLGEsYil9LFwiaUFBUFJcIik7XG5pZighKHdpbmRvdy5JU19HT09HTEVfQUZTX0lGUkFNRV98fHdpbmRvdy5nb29nbGUmJndpbmRvdy5nb29nbGUuYWRzJiZ3aW5kb3cuZ29vZ2xlLmFkcy5kb21haW5zJiZ3aW5kb3cuZ29vZ2xlLmFkcy5kb21haW5zLkNhZikpe3ZhciB0bD1bXCJnb29nbGVcIixcImFkc1wiLFwiZG9tYWluc1wiLFwiQ2FmXCJdLHVsPXY7dGxbMF1pbiB1bHx8XCJ1bmRlZmluZWRcIj09dHlwZW9mIHVsLmV4ZWNTY3JpcHR8fHVsLmV4ZWNTY3JpcHQoXCJ2YXIgXCIrdGxbMF0pO2Zvcih2YXIgdmw7dGwubGVuZ3RoJiYodmw9dGwuc2hpZnQoKSk7KXRsLmxlbmd0aHx8dm9pZCAwPT09cmw/dWw9dWxbdmxdJiZ1bFt2bF0hPT1PYmplY3QucHJvdG90eXBlW3ZsXT91bFt2bF06dWxbdmxdPXt9OnVsW3ZsXT1ybH07XG59KSgpOyJ9LCAiaGVhZGVyc1NpemUiOiAwLCAiYm9keVNpemUiOiA1NDM4NiwgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogNTQzODZ9LCAiY2FjaGUiOiB7fSwgInRpbWluZ3MiOiB7ImRucyI6IC0xLCAiY29ubmVjdCI6IC0xLCAic3NsIjogLTEsICJzZW5kIjogMCwgIndhaXQiOiA4Ni42OTUsICJyZWNlaXZlIjogMzYuMzl9LCAicGFnZXJlZiI6ICJwYWdlQDBiMzE5MDRhMTIzMmNkZDBjYThlZWQyZjRkYmUxMDVkIiwgInNlcnZlcklQQWRkcmVzcyI6ICJbMmEwMDoxNDUwOjQwMTc6ODBmOjoyMDA0XSIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlFVSUMiLCAic3ViamVjdE5hbWUiOiAiKi5nb29nbGUuY29tIiwgImlzc3VlciI6ICJHVFMgQ0EgMUMzIiwgInZhbGlkRnJvbSI6IDE2OTgwNTk5MDQsICJ2YWxpZFRvIjogMTcwNTMxNzUwM319LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDIzLTExLTIwVDAyOjM5OjA5LjM1NVoiLCAidGltZSI6IDIyLjA0MSwgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHBzOi8vY3Vyc2VkLWtuaWdodC5mci90cmFjay5waHA/ZG9tYWluPWN1cnNlZC1rbmlnaHQuZnImY2FmPTEmdG9nZ2xlPWFuc3dlcmNoZWNrJmFuc3dlcj15ZXMmdWlkPU1UY3dNRFEwTnprME9DNDJORG8wTm1FeVlXTXhNRE5tTTJWbFl6UXpOVGhtWTJFNU5qYzRaV1V4WVRZNU9EZGlaRFJsTURsaE1XTTVOamt5WmpSbVl6Qm1aV1k0TTJKbU56YzNNekZtT2pZMU5XRmpObU5qT1dNME1XRSUzRCIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzEuMSIsICJjb29raWVzIjogW3sibmFtZSI6ICJfX2dzYXMiLCAidmFsdWUiOiAiSUQ9Njg3MWI5YWI0ZmY1MjYyODpUPTE3MDA0NDc5NDk6UlQ9MTcwMDQ0Nzk0OTpTPUFMTklfTWFhc09fTXV5ODhBQTl5OWVGNHY2eUQ2cUw4aFEifV0sICJoZWFkZXJzIjogW3sibmFtZSI6ICJBY2NlcHQiLCAidmFsdWUiOiAiKi8qIn0sIHsibmFtZSI6ICJBY2NlcHQtRW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIifSwgeyJuYW1lIjogIkFjY2VwdC1MYW5ndWFnZSIsICJ2YWx1ZSI6ICJlbi1VUyxlbjtxPTAuOSJ9LCB7Im5hbWUiOiAiQ29ubmVjdGlvbiIsICJ2YWx1ZSI6ICJrZWVwLWFsaXZlIn0sIHsibmFtZSI6ICJDb29raWUiLCAidmFsdWUiOiAiX19nc2FzPUlEPTY4NzFiOWFiNGZmNTI2Mjg6VD0xNzAwNDQ3OTQ5OlJUPTE3MDA0NDc5NDk6Uz1BTE5JX01hYXNPX011eTg4QUE5eTllRjR2NnlENnFMOGhRIn0sIHsibmFtZSI6ICJIb3N0IiwgInZhbHVlIjogImN1cnNlZC1rbmlnaHQuZnIifSwgeyJuYW1lIjogIlJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cHM6Ly9jdXJzZWQta25pZ2h0LmZyLyJ9LCB7Im5hbWUiOiAiU2VjLUZldGNoLURlc3QiLCAidmFsdWUiOiAiZW1wdHkifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1Nb2RlIiwgInZhbHVlIjogImNvcnMifSwgeyJuYW1lIjogIlNlYy1GZXRjaC1TaXRlIiwgInZhbHVlIjogInNhbWUtb3JpZ2luIn0sIHsibmFtZSI6ICJVc2VyLUFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMTkuMC42MDQ1LjkgU2FmYXJpLzUzNy4zNiJ9LCB7Im5hbWUiOiAiZGV2aWNlLW1lbW9yeSIsICJ2YWx1ZSI6ICI4In0sIHsibmFtZSI6ICJkb3dubGluayIsICJ2YWx1ZSI6ICIxLjc1In0sIHsibmFtZSI6ICJkcHIiLCAidmFsdWUiOiAiMSJ9LCB7Im5hbWUiOiAiZWN0IiwgInZhbHVlIjogIjRnIn0sIHsibmFtZSI6ICJydHQiLCAidmFsdWUiOiAiMCJ9LCB7Im5hbWUiOiAidmlld3BvcnQtd2lkdGgiLCAidmFsdWUiOiAiMTkyMCJ9XSwgInF1ZXJ5U3RyaW5nIjogW3sibmFtZSI6ICJkb21haW4iLCAidmFsdWUiOiAiY3Vyc2VkLWtuaWdodC5mciJ9LCB7Im5hbWUiOiAiY2FmIiwgInZhbHVlIjogIjEifSwgeyJuYW1lIjogInRvZ2dsZSIsICJ2YWx1ZSI6ICJhbnN3ZXJjaGVjayJ9LCB7Im5hbWUiOiAiYW5zd2VyIiwgInZhbHVlIjogInllcyJ9LCB7Im5hbWUiOiAidWlkIiwgInZhbHVlIjogIk1UY3dNRFEwTnprME9DNDJORG8wTm1FeVlXTXhNRE5tTTJWbFl6UXpOVGhtWTJFNU5qYzRaV1V4WVRZNU9EZGlaRFJsTURsaE1XTTVOamt5WmpSbVl6Qm1aV1k0TTJKbU56YzNNekZtT2pZMU5XRmpObU5qT1dNME1XRT0ifV0sICJoZWFkZXJzU2l6ZSI6IDU3NCwgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjAwLCAic3RhdHVzVGV4dCI6ICJPSyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzEuMSIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAidmlld3BvcnQtd2lkdGgifSwgeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJkcHIifSwgeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJkZXZpY2UtbWVtb3J5In0sIHsibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAicnR0In0sIHsibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAiZG93bmxpbmsifSwgeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJlY3QifSwgeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJ1YSJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogInVhLWZ1bGwtdmVyc2lvbiJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogInVhLXBsYXRmb3JtIn0sIHsibmFtZSI6ICJBY2NlcHQtQ2giLCAidmFsdWUiOiAidWEtcGxhdGZvcm0tdmVyc2lvbiJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogInVhLWFyY2gifSwgeyJuYW1lIjogIkFjY2VwdC1DaCIsICJ2YWx1ZSI6ICJ1YS1tb2RlbCJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoIiwgInZhbHVlIjogInVhLW1vYmlsZSJ9LCB7Im5hbWUiOiAiQWNjZXB0LUNoLUxpZmV0aW1lIiwgInZhbHVlIjogIjMwIn0sIHsibmFtZSI6ICJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCAidmFsdWUiOiAiKiJ9LCB7Im5hbWUiOiAiQ29udGVudC1FbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwIn0sIHsibmFtZSI6ICJDb250ZW50LUxlbmd0aCIsICJ2YWx1ZSI6ICIyMCJ9LCB7Im5hbWUiOiAiQ29udGVudC1UeXBlIiwgInZhbHVlIjogInRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCJ9LCB7Im5hbWUiOiAiRGF0ZSIsICJ2YWx1ZSI6ICJNb24sIDIwIE5vdiAyMDIzIDAyOjM5OjA5IEdNVCJ9LCB7Im5hbWUiOiAiU2VydmVyIiwgInZhbHVlIjogIm5naW54In0sIHsibmFtZSI6ICJWYXJ5IiwgInZhbHVlIjogIkFjY2VwdC1FbmNvZGluZyJ9LCB7Im5hbWUiOiAiWC1DdXN0b20tVHJhY2siLCAidmFsdWUiOiAiYW5zd2VyY2hlY2sifV0sICJjb250ZW50IjogeyJzaXplIjogMCwgIm1pbWVUeXBlIjogInRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIsICJjb21wcmVzc2lvbiI6IDAsICJ0ZXh0IjogIiJ9LCAiaGVhZGVyc1NpemUiOiA1NDcsICJib2R5U2l6ZSI6IDIwLCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiA1Njd9LCAiY2FjaGUiOiB7fSwgInRpbWluZ3MiOiB7ImRucyI6IC0xLCAiY29ubmVjdCI6IC0xLCAic3NsIjogLTEsICJzZW5kIjogMCwgIndhaXQiOiAyMC4xMzQsICJyZWNlaXZlIjogMS45MDd9LCAicGFnZXJlZiI6ICJwYWdlQDBiMzE5MDRhMTIzMmNkZDBjYThlZWQyZjRkYmUxMDVkIiwgInNlcnZlcklQQWRkcmVzcyI6ICIxODUuNTMuMTc4LjUyIiwgIl9zZXJ2ZXJQb3J0IjogNDQzLCAiX3NlY3VyaXR5RGV0YWlscyI6IHsicHJvdG9jb2wiOiAiVExTIDEuMyIsICJzdWJqZWN0TmFtZSI6ICIqLnBhcmtpbmdjcmV3Lm5ldCIsICJpc3N1ZXIiOiAiVGhhd3RlIFRMUyBSU0EgQ0EgRzEiLCAidmFsaWRGcm9tIjogMTU5NTIwMzIwMCwgInZhbGlkVG8iOiAxNjYzNTAyNDAwfX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjMtMTEtMjBUMDI6Mzk6MDkuNDU4WiIsICJ0aW1lIjogMjAzLjE4NTk5OTk5OTk5OTk4LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9hZnMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2FkX2ljb25zL3N0YW5kYXJkL3B1Ymxpc2hlcl9pY29uX2ltYWdlL3NlYXJjaC5zdmc/Yz0lMjNmZmZmZmYiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiOmF1dGhvcml0eSIsICJ2YWx1ZSI6ICJhZnMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIn0sIHsibmFtZSI6ICI6bWV0aG9kIiwgInZhbHVlIjogIkdFVCJ9LCB7Im5hbWUiOiAiOnBhdGgiLCAidmFsdWUiOiAiL2FkX2ljb25zL3N0YW5kYXJkL3B1Ymxpc2hlcl9pY29uX2ltYWdlL3NlYXJjaC5zdmc/Yz0lMjNmZmZmZmYifSwgeyJuYW1lIjogIjpzY2hlbWUiLCAidmFsdWUiOiAiaHR0cHMifSwgeyJuYW1lIjogImFjY2VwdCIsICJ2YWx1ZSI6ICJpbWFnZS9hdmlmLGltYWdlL3dlYnAsaW1hZ2UvYXBuZyxpbWFnZS9zdmcreG1sLGltYWdlLyosKi8qO3E9MC44In0sIHsibmFtZSI6ICJhY2NlcHQtZW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIifSwgeyJuYW1lIjogImFjY2VwdC1sYW5ndWFnZSIsICJ2YWx1ZSI6ICJlbi1VUyxlbjtxPTAuOSJ9LCB7Im5hbWUiOiAicmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwczovL3d3dy5nb29nbGUuY29tLyJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLWRlc3QiLCAidmFsdWUiOiAiaW1hZ2UifSwgeyJuYW1lIjogInNlYy1mZXRjaC1tb2RlIiwgInZhbHVlIjogIm5vLWNvcnMifSwgeyJuYW1lIjogInNlYy1mZXRjaC1zaXRlIiwgInZhbHVlIjogImNyb3NzLXNpdGUifSwgeyJuYW1lIjogInVzZXItYWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExOS4wLjYwNDUuOSBTYWZhcmkvNTM3LjM2In1dLCAicXVlcnlTdHJpbmciOiBbeyJuYW1lIjogImMiLCAidmFsdWUiOiAiI2ZmZmZmZiJ9XSwgImhlYWRlcnNTaXplIjogNTg2LCAiYm9keVNpemUiOiAwfSwgInJlc3BvbnNlIjogeyJzdGF0dXMiOiAyMDAsICJzdGF0dXNUZXh0IjogIiIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJhY2NlcHQtcmFuZ2VzIiwgInZhbHVlIjogImJ5dGVzIn0sIHsibmFtZSI6ICJhZ2UiLCAidmFsdWUiOiAiMzY4MzIifSwgeyJuYW1lIjogImFsdC1zdmMiLCAidmFsdWUiOiAiaDM9XCI6NDQzXCI7IG1hPTI1OTIwMDAsaDMtMjk9XCI6NDQzXCI7IG1hPTI1OTIwMDAifSwgeyJuYW1lIjogImNhY2hlLWNvbnRyb2wiLCAidmFsdWUiOiAicHVibGljLCBtYXgtYWdlPTgyODAwIn0sIHsibmFtZSI6ICJjb250ZW50LWVuY29kaW5nIiwgInZhbHVlIjogImd6aXAifSwgeyJuYW1lIjogImNvbnRlbnQtbGVuZ3RoIiwgInZhbHVlIjogIjI3MCJ9LCB7Im5hbWUiOiAiY29udGVudC1zZWN1cml0eS1wb2xpY3kiLCAidmFsdWUiOiAicmVxdWlyZS10cnVzdGVkLXR5cGVzLWZvciAnc2NyaXB0JzsgcmVwb3J0LXVyaSBodHRwczovL2NzcC53aXRoZ29vZ2xlLmNvbS9jc3AvYWZzLW5hdGl2ZS1hc3NldC1tYW5hZ2VycyJ9LCB7Im5hbWUiOiAiY29udGVudC10eXBlIiwgInZhbHVlIjogImltYWdlL3N2Zyt4bWwifSwgeyJuYW1lIjogImNyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5IiwgInZhbHVlIjogInNhbWUtb3JpZ2luOyByZXBvcnQtdG89XCJhZnMtbmF0aXZlLWFzc2V0LW1hbmFnZXJzXCIifSwgeyJuYW1lIjogImRhdGUiLCAidmFsdWUiOiAiU3VuLCAxOSBOb3YgMjAyMyAxNjoyNToxNyBHTVQifSwgeyJuYW1lIjogImV4cGlyZXMiLCAidmFsdWUiOiAiTW9uLCAyMCBOb3YgMjAyMyAxNToyNToxNyBHTVQifSwgeyJuYW1lIjogImxhc3QtbW9kaWZpZWQiLCAidmFsdWUiOiAiVGh1LCAyMCBKdWwgMjAyMyAyMjo0ODowMCBHTVQifSwgeyJuYW1lIjogInJlcG9ydC10byIsICJ2YWx1ZSI6ICJ7XCJncm91cFwiOlwiYWZzLW5hdGl2ZS1hc3NldC1tYW5hZ2Vyc1wiLFwibWF4X2FnZVwiOjI1OTIwMDAsXCJlbmRwb2ludHNcIjpbe1widXJsXCI6XCJodHRwczovL2NzcC53aXRoZ29vZ2xlLmNvbS9jc3AvcmVwb3J0LXRvL2Fmcy1uYXRpdmUtYXNzZXQtbWFuYWdlcnNcIn1dfSJ9LCB7Im5hbWUiOiAic2VydmVyIiwgInZhbHVlIjogInNmZmUifSwgeyJuYW1lIjogInZhcnkiLCAidmFsdWUiOiAiQWNjZXB0LUVuY29kaW5nIn0sIHsibmFtZSI6ICJ4LWNvbnRlbnQtdHlwZS1vcHRpb25zIiwgInZhbHVlIjogIm5vc25pZmYifSwgeyJuYW1lIjogIngteHNzLXByb3RlY3Rpb24iLCAidmFsdWUiOiAiMCJ9XSwgImNvbnRlbnQiOiB7InNpemUiOiAzOTEsICJtaW1lVHlwZSI6ICJpbWFnZS9zdmcreG1sIiwgImNvbXByZXNzaW9uIjogNywgInRleHQiOiAiPHN2ZyBmaWxsPScjZmZmZmZmJyAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjAwXCIgaGVpZ2h0PVwiMjAwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxwYXRoIGQ9XCJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpcIi8+PHBhdGggZD1cIk0wIDBoMjR2MjRIMHpcIiBmaWxsPVwibm9uZVwiLz48L3N2Zz5cbiJ9LCAiaGVhZGVyc1NpemUiOiAwLCAiYm9keVNpemUiOiAzODQsICJyZWRpcmVjdFVSTCI6ICIiLCAiX3RyYW5zZmVyU2l6ZSI6IDM4NH0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogMC4wMTMsICJjb25uZWN0IjogOTcuOTQ1LCAic3NsIjogNjcuMjc2LCAic2VuZCI6IDAsICJ3YWl0IjogMzQuMTMsICJyZWNlaXZlIjogMy44MjJ9LCAicGFnZXJlZiI6ICJwYWdlQDBiMzE5MDRhMTIzMmNkZDBjYThlZWQyZjRkYmUxMDVkIiwgInNlcnZlcklQQWRkcmVzcyI6ICJbMmEwMDoxNDUwOjQwMTc6ODEwOjoyMDAxXSIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlRMUyAxLjMiLCAic3ViamVjdE5hbWUiOiAiKi5nb29nbGV1c2VyY29udGVudC5jb20iLCAiaXNzdWVyIjogIkdUUyBDQSAxQzMiLCAidmFsaWRGcm9tIjogMTY5ODA2MDIzMCwgInZhbGlkVG8iOiAxNzA1MzE3ODI5fX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjMtMTEtMjBUMDI6Mzk6MDkuNDU4WiIsICJ0aW1lIjogMzYuNjg0LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9hZnMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2FkX2ljb25zL3N0YW5kYXJkL3B1Ymxpc2hlcl9pY29uX2ltYWdlL2NoZXZyb24uc3ZnP2M9JTIzZmZmZmZmIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIjphdXRob3JpdHkiLCAidmFsdWUiOiAiYWZzLmdvb2dsZXVzZXJjb250ZW50LmNvbSJ9LCB7Im5hbWUiOiAiOm1ldGhvZCIsICJ2YWx1ZSI6ICJHRVQifSwgeyJuYW1lIjogIjpwYXRoIiwgInZhbHVlIjogIi9hZF9pY29ucy9zdGFuZGFyZC9wdWJsaXNoZXJfaWNvbl9pbWFnZS9jaGV2cm9uLnN2Zz9jPSUyM2ZmZmZmZiJ9LCB7Im5hbWUiOiAiOnNjaGVtZSIsICJ2YWx1ZSI6ICJodHRwcyJ9LCB7Im5hbWUiOiAiYWNjZXB0IiwgInZhbHVlIjogImltYWdlL2F2aWYsaW1hZ2Uvd2VicCxpbWFnZS9hcG5nLGltYWdlL3N2Zyt4bWwsaW1hZ2UvKiwqLyo7cT0wLjgifSwgeyJuYW1lIjogImFjY2VwdC1lbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwLCBkZWZsYXRlLCBiciJ9LCB7Im5hbWUiOiAiYWNjZXB0LWxhbmd1YWdlIiwgInZhbHVlIjogImVuLVVTLGVuO3E9MC45In0sIHsibmFtZSI6ICJyZWZlcmVyIiwgInZhbHVlIjogImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtZGVzdCIsICJ2YWx1ZSI6ICJpbWFnZSJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLW1vZGUiLCAidmFsdWUiOiAibm8tY29ycyJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLXNpdGUiLCAidmFsdWUiOiAiY3Jvc3Mtc2l0ZSJ9LCB7Im5hbWUiOiAidXNlci1hZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTE5LjAuNjA0NS45IFNhZmFyaS81MzcuMzYifV0sICJxdWVyeVN0cmluZyI6IFt7Im5hbWUiOiAiYyIsICJ2YWx1ZSI6ICIjZmZmZmZmIn1dLCAiaGVhZGVyc1NpemUiOiA1ODgsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogImFjY2VwdC1yYW5nZXMiLCAidmFsdWUiOiAiYnl0ZXMifSwgeyJuYW1lIjogImFnZSIsICJ2YWx1ZSI6ICIyMjIwMSJ9LCB7Im5hbWUiOiAiYWx0LXN2YyIsICJ2YWx1ZSI6ICJoMz1cIjo0NDNcIjsgbWE9MjU5MjAwMCxoMy0yOT1cIjo0NDNcIjsgbWE9MjU5MjAwMCJ9LCB7Im5hbWUiOiAiY2FjaGUtY29udHJvbCIsICJ2YWx1ZSI6ICJwdWJsaWMsIG1heC1hZ2U9ODI4MDAifSwgeyJuYW1lIjogImNvbnRlbnQtZW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCJ9LCB7Im5hbWUiOiAiY29udGVudC1sZW5ndGgiLCAidmFsdWUiOiAiMTc0In0sIHsibmFtZSI6ICJjb250ZW50LXNlY3VyaXR5LXBvbGljeSIsICJ2YWx1ZSI6ICJyZXF1aXJlLXRydXN0ZWQtdHlwZXMtZm9yICdzY3JpcHQnOyByZXBvcnQtdXJpIGh0dHBzOi8vY3NwLndpdGhnb29nbGUuY29tL2NzcC9hZnMtbmF0aXZlLWFzc2V0LW1hbmFnZXJzIn0sIHsibmFtZSI6ICJjb250ZW50LXR5cGUiLCAidmFsdWUiOiAiaW1hZ2Uvc3ZnK3htbCJ9LCB7Im5hbWUiOiAiY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kiLCAidmFsdWUiOiAic2FtZS1vcmlnaW47IHJlcG9ydC10bz1cImFmcy1uYXRpdmUtYXNzZXQtbWFuYWdlcnNcIiJ9LCB7Im5hbWUiOiAiZGF0ZSIsICJ2YWx1ZSI6ICJTdW4sIDE5IE5vdiAyMDIzIDIwOjI5OjA4IEdNVCJ9LCB7Im5hbWUiOiAiZXhwaXJlcyIsICJ2YWx1ZSI6ICJNb24sIDIwIE5vdiAyMDIzIDE5OjI5OjA4IEdNVCJ9LCB7Im5hbWUiOiAibGFzdC1tb2RpZmllZCIsICJ2YWx1ZSI6ICJUaHUsIDAyIE5vdiAyMDIzIDIyOjQ4OjAwIEdNVCJ9LCB7Im5hbWUiOiAicmVwb3J0LXRvIiwgInZhbHVlIjogIntcImdyb3VwXCI6XCJhZnMtbmF0aXZlLWFzc2V0LW1hbmFnZXJzXCIsXCJtYXhfYWdlXCI6MjU5MjAwMCxcImVuZHBvaW50c1wiOlt7XCJ1cmxcIjpcImh0dHBzOi8vY3NwLndpdGhnb29nbGUuY29tL2NzcC9yZXBvcnQtdG8vYWZzLW5hdGl2ZS1hc3NldC1tYW5hZ2Vyc1wifV19In0sIHsibmFtZSI6ICJzZXJ2ZXIiLCAidmFsdWUiOiAic2ZmZSJ9LCB7Im5hbWUiOiAidmFyeSIsICJ2YWx1ZSI6ICJBY2NlcHQtRW5jb2RpbmcifSwgeyJuYW1lIjogIngtY29udGVudC10eXBlLW9wdGlvbnMiLCAidmFsdWUiOiAibm9zbmlmZiJ9LCB7Im5hbWUiOiAieC14c3MtcHJvdGVjdGlvbiIsICJ2YWx1ZSI6ICIwIn1dLCAiY29udGVudCI6IHsic2l6ZSI6IDIwMCwgIm1pbWVUeXBlIjogImltYWdlL3N2Zyt4bWwiLCAiY29tcHJlc3Npb24iOiAwLCAidGV4dCI6ICI8c3ZnIGZpbGw9JyNmZmZmZmYnICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiPjxwYXRoIGQ9XCJNMCAwaDI0djI0SDB6XCIgZmlsbD1cIm5vbmVcIi8+PHBhdGggZD1cIk01Ljg4IDQuMTJMMTMuNzYgMTJsLTcuODggNy44OEw4IDIybDEwLTEwTDggMnpcIi8+PC9zdmc+In0sICJoZWFkZXJzU2l6ZSI6IDAsICJib2R5U2l6ZSI6IDcwMCwgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogNzAwfSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAtMSwgImNvbm5lY3QiOiAtMSwgInNzbCI6IC0xLCAic2VuZCI6IDAsICJ3YWl0IjogMzIuNDkyLCAicmVjZWl2ZSI6IDQuMTkyfSwgInBhZ2VyZWYiOiAicGFnZUAwYjMxOTA0YTEyMzJjZGQwY2E4ZWVkMmY0ZGJlMTA1ZCIsICJzZXJ2ZXJJUEFkZHJlc3MiOiAiWzJhMDA6MTQ1MDo0MDE3OjgxMDo6MjAwMV0iLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4zIiwgInN1YmplY3ROYW1lIjogIiouZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwgImlzc3VlciI6ICJHVFMgQ0EgMUMzIiwgInZhbGlkRnJvbSI6IDE2OTgwNjAyMzAsICJ2YWxpZFRvIjogMTcwNTMxNzgyOX19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDIzLTExLTIwVDAyOjM5OjEwLjg4M1oiLCAidGltZSI6IDg1LjE3MSwgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vYWZzL2dlbl8yMDQ/Y2xpZW50PWRwLXRlYW1pbnRlcm5ldDA5XzNwaCZvdXRwdXQ9dWRzX2Fkc19vbmx5Jnp4PXhmcDhhYXZ5czE0ZCZhcWlkPXpjWmFaWkd4Qlptcmp1d1B4S090cUFJJnBzaWQ9MTE2NzI2ODExMiZwYnQ9YnMmYWRieD02OTUmYWRieT0xMzAmYWRiaD00OTYmYWRidz01MzAmYWRiYWg9MTYwJTJDMTYwJTJDMTYwJmFkYm49bWFzdGVyLTEmZWF3cD1wYXJ0bmVyLWRwLXRlYW1pbnRlcm5ldDA5XzNwaCZlcnJ2PTU3OTk2Nzg2MiZjc2FsYT0xNyU3QzAlN0MyNzElN0MxMjMlN0MzNSZsbGU9MCZpZnY9MSZocHQ9MSIsICJodHRwVmVyc2lvbiI6ICJoMyIsICJjb29raWVzIjogW3sibmFtZSI6ICJOSUQiLCAidmFsdWUiOiAiNTExPUt5Qlc5eXVvSUlpNV9jc3JyWFItTUlvc1E2YzdjZlBhZjhDb1ltRW1zUDl1dTg5MkVkSjNjbXVaNWh3VzJoR3pjTE5XZG14dHlOSjFyRXc2SlhBMjYtdFFvb1dIWlZ2SVV0SHp1UTBGSVJFcDRLSUN6aDlScmhNNjdsYnMxUlZrNEs3SVNrc1RLUE51UHg2VTNjSzNIVlQtUVNBb3Y5bnYxRnZzYXZ4S2tYNCJ9XSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIjphdXRob3JpdHkiLCAidmFsdWUiOiAid3d3Lmdvb2dsZS5jb20ifSwgeyJuYW1lIjogIjptZXRob2QiLCAidmFsdWUiOiAiR0VUIn0sIHsibmFtZSI6ICI6cGF0aCIsICJ2YWx1ZSI6ICIvYWZzL2dlbl8yMDQ/Y2xpZW50PWRwLXRlYW1pbnRlcm5ldDA5XzNwaCZvdXRwdXQ9dWRzX2Fkc19vbmx5Jnp4PXhmcDhhYXZ5czE0ZCZhcWlkPXpjWmFaWkd4Qlptcmp1d1B4S090cUFJJnBzaWQ9MTE2NzI2ODExMiZwYnQ9YnMmYWRieD02OTUmYWRieT0xMzAmYWRiaD00OTYmYWRidz01MzAmYWRiYWg9MTYwJTJDMTYwJTJDMTYwJmFkYm49bWFzdGVyLTEmZWF3cD1wYXJ0bmVyLWRwLXRlYW1pbnRlcm5ldDA5XzNwaCZlcnJ2PTU3OTk2Nzg2MiZjc2FsYT0xNyU3QzAlN0MyNzElN0MxMjMlN0MzNSZsbGU9MCZpZnY9MSZocHQ9MSJ9LCB7Im5hbWUiOiAiOnNjaGVtZSIsICJ2YWx1ZSI6ICJodHRwcyJ9LCB7Im5hbWUiOiAiYWNjZXB0IiwgInZhbHVlIjogImltYWdlL2F2aWYsaW1hZ2Uvd2VicCxpbWFnZS9hcG5nLGltYWdlL3N2Zyt4bWwsaW1hZ2UvKiwqLyo7cT0wLjgifSwgeyJuYW1lIjogImFjY2VwdC1lbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwLCBkZWZsYXRlLCBiciJ9LCB7Im5hbWUiOiAiYWNjZXB0LWxhbmd1YWdlIiwgInZhbHVlIjogImVuLVVTLGVuO3E9MC45In0sIHsibmFtZSI6ICJjb29raWUiLCAidmFsdWUiOiAiTklEPTUxMT1LeUJXOXl1b0lJaTVfY3NyclhSLU1Jb3NRNmM3Y2ZQYWY4Q29ZbUVtc1A5dXU4OTJFZEozY211WjVod1cyaEd6Y0xOV2RteHR5TkoxckV3NkpYQTI2LXRRb29XSFpWdklVdEh6dVEwRklSRXA0S0lDemg5UnJoTTY3bGJzMVJWazRLN0lTa3NUS1BOdVB4NlUzY0szSFZULVFTQW92OW52MUZ2c2F2eEtrWDQifSwgeyJuYW1lIjogInJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cHM6Ly9jdXJzZWQta25pZ2h0LmZyLyJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLWRlc3QiLCAidmFsdWUiOiAiaW1hZ2UifSwgeyJuYW1lIjogInNlYy1mZXRjaC1tb2RlIiwgInZhbHVlIjogIm5vLWNvcnMifSwgeyJuYW1lIjogInNlYy1mZXRjaC1zaXRlIiwgInZhbHVlIjogImNyb3NzLXNpdGUifSwgeyJuYW1lIjogInVzZXItYWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExOS4wLjYwNDUuOSBTYWZhcmkvNTM3LjM2In1dLCAicXVlcnlTdHJpbmciOiBbeyJuYW1lIjogImNsaWVudCIsICJ2YWx1ZSI6ICJkcC10ZWFtaW50ZXJuZXQwOV8zcGgifSwgeyJuYW1lIjogIm91dHB1dCIsICJ2YWx1ZSI6ICJ1ZHNfYWRzX29ubHkifSwgeyJuYW1lIjogInp4IiwgInZhbHVlIjogInhmcDhhYXZ5czE0ZCJ9LCB7Im5hbWUiOiAiYXFpZCIsICJ2YWx1ZSI6ICJ6Y1phWlpHeEJabXJqdXdQeEtPdHFBSSJ9LCB7Im5hbWUiOiAicHNpZCIsICJ2YWx1ZSI6ICIxMTY3MjY4MTEyIn0sIHsibmFtZSI6ICJwYnQiLCAidmFsdWUiOiAiYnMifSwgeyJuYW1lIjogImFkYngiLCAidmFsdWUiOiAiNjk1In0sIHsibmFtZSI6ICJhZGJ5IiwgInZhbHVlIjogIjEzMCJ9LCB7Im5hbWUiOiAiYWRiaCIsICJ2YWx1ZSI6ICI0OTYifSwgeyJuYW1lIjogImFkYnciLCAidmFsdWUiOiAiNTMwIn0sIHsibmFtZSI6ICJhZGJhaCIsICJ2YWx1ZSI6ICIxNjAsMTYwLDE2MCJ9LCB7Im5hbWUiOiAiYWRibiIsICJ2YWx1ZSI6ICJtYXN0ZXItMSJ9LCB7Im5hbWUiOiAiZWF3cCIsICJ2YWx1ZSI6ICJwYXJ0bmVyLWRwLXRlYW1pbnRlcm5ldDA5XzNwaCJ9LCB7Im5hbWUiOiAiZXJydiIsICJ2YWx1ZSI6ICI1Nzk5Njc4NjIifSwgeyJuYW1lIjogImNzYWxhIiwgInZhbHVlIjogIjE3fDB8MjcxfDEyM3wzNSJ9LCB7Im5hbWUiOiAibGxlIiwgInZhbHVlIjogIjAifSwgeyJuYW1lIjogImlmdiIsICJ2YWx1ZSI6ICIxIn0sIHsibmFtZSI6ICJocHQiLCAidmFsdWUiOiAiMSJ9XSwgImhlYWRlcnNTaXplIjogOTY1LCAiYm9keVNpemUiOiAwfSwgInJlc3BvbnNlIjogeyJzdGF0dXMiOiAyMDQsICJzdGF0dXNUZXh0IjogIiIsICJodHRwVmVyc2lvbiI6ICJoMyIsICJjb29raWVzIjogW3sibmFtZSI6ICJDT05TRU5UIiwgInZhbHVlIjogIlBFTkRJTkcrNzI0IiwgInNlY3VyZSI6IHRydWV9XSwgImhlYWRlcnMiOiBbeyJuYW1lIjogImFsdC1zdmMiLCAidmFsdWUiOiAiaDM9XCI6NDQzXCI7IG1hPTI1OTIwMDAsaDMtMjk9XCI6NDQzXCI7IG1hPTI1OTIwMDAifSwgeyJuYW1lIjogImNvbnRlbnQtbGVuZ3RoIiwgInZhbHVlIjogIjAifSwgeyJuYW1lIjogImNvbnRlbnQtc2VjdXJpdHktcG9saWN5IiwgInZhbHVlIjogIm9iamVjdC1zcmMgJ25vbmUnO2Jhc2UtdXJpICdzZWxmJztzY3JpcHQtc3JjICdub25jZS05NXh6RnprV0RfeGRfVzlKRl95Q2hRJyAnc3RyaWN0LWR5bmFtaWMnICdyZXBvcnQtc2FtcGxlJyAndW5zYWZlLWV2YWwnICd1bnNhZmUtaW5saW5lJyBodHRwczogaHR0cDo7cmVwb3J0LXVyaSBodHRwczovL2NzcC53aXRoZ29vZ2xlLmNvbS9jc3AvZ3dzL290aGVyIn0sIHsibmFtZSI6ICJjb250ZW50LXR5cGUiLCAidmFsdWUiOiAidGV4dC9odG1sOyBjaGFyc2V0PVVURi04In0sIHsibmFtZSI6ICJjcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeSIsICJ2YWx1ZSI6ICJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cHM7IHJlcG9ydC10bz1cImd3c1wiIn0sIHsibmFtZSI6ICJkYXRlIiwgInZhbHVlIjogIk1vbiwgMjAgTm92IDIwMjMgMDI6Mzk6MTAgR01UIn0sIHsibmFtZSI6ICJvcmlnaW4tdHJpYWwiLCAidmFsdWUiOiAiQXArcU5sbkx6SkRLU21FSGp6TTVpbGFhOTA4R3VlaGxMcUdiNmV6TUU1bGtoZWxqMjBxVnpmdjA2elBtUTNMb2RvZXVqWnVwaEFvbHJuaG5QQTh3NEFJQUFBQmZleUp2Y21sbmFXNGlPaUpvZEhSd2N6b3ZMM2QzZHk1bmIyOW5iR1V1WTI5dE9qUTBNeUlzSW1abFlYUjFjbVVpT2lKUVpYSnRhWE56YVc5dWMxQnZiR2xqZVZWdWJHOWhaQ0lzSW1WNGNHbHllU0k2TVRZNE5UWTJNems1T1gwPSJ9LCB7Im5hbWUiOiAib3JpZ2luLXRyaWFsIiwgInZhbHVlIjogIkF2dWRyak1acUw3MzM1cDFLTFYybEhvMWt4ZE1lSU4wZFVJMTVkMENQejlkb3ZWTENjWGs4T0FxamhvMURYNHM2TmJIYkEvQUdvYnVHdmNadjBkckdnUUFBQUI5ZXlKdmNtbG5hVzRpT2lKb2RIUndjem92TDNkM2R5NW5iMjluYkdVdVkyOXRPalEwTXlJc0ltWmxZWFIxY21VaU9pSkNZV05yUm05eWQyRnlaRU5oWTJobFRtOTBVbVZ6ZEc5eVpXUlNaV0Z6YjI1eklpd2laWGh3YVhKNUlqb3hOamt4TlRNNU1UazVMQ0pwYzFOMVltUnZiV0ZwYmlJNmRISjFaWDA9In0sIHsibmFtZSI6ICJwM3AiLCAidmFsdWUiOiAiQ1A9XCJUaGlzIGlzIG5vdCBhIFAzUCBwb2xpY3khIFNlZSBnLmNvL3AzcGhlbHAgZm9yIG1vcmUgaW5mby5cIiJ9LCB7Im5hbWUiOiAicGVybWlzc2lvbnMtcG9saWN5IiwgInZhbHVlIjogInVubG9hZD0oKSJ9LCB7Im5hbWUiOiAicmVwb3J0LXRvIiwgInZhbHVlIjogIntcImdyb3VwXCI6XCJnd3NcIixcIm1heF9hZ2VcIjoyNTkyMDAwLFwiZW5kcG9pbnRzXCI6W3tcInVybFwiOlwiaHR0cHM6Ly9jc3Aud2l0aGdvb2dsZS5jb20vY3NwL3JlcG9ydC10by9nd3Mvb3RoZXJcIn1dfSJ9LCB7Im5hbWUiOiAic2VydmVyIiwgInZhbHVlIjogImd3cyJ9LCB7Im5hbWUiOiAic2V0LWNvb2tpZSIsICJ2YWx1ZSI6ICJDT05TRU5UPVBFTkRJTkcrNzI0OyBleHBpcmVzPVdlZCwgMTktTm92LTIwMjUgMDI6Mzk6MTAgR01UOyBwYXRoPS87IGRvbWFpbj0uZ29vZ2xlLmNvbTsgU2VjdXJlIn0sIHsibmFtZSI6ICJ4LWZyYW1lLW9wdGlvbnMiLCAidmFsdWUiOiAiU0FNRU9SSUdJTiJ9LCB7Im5hbWUiOiAieC14c3MtcHJvdGVjdGlvbiIsICJ2YWx1ZSI6ICIwIn1dLCAiY29udGVudCI6IHsic2l6ZSI6IDAsICJtaW1lVHlwZSI6ICJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLCAiY29tcHJlc3Npb24iOiAwLCAidGV4dCI6ICIifSwgImhlYWRlcnNTaXplIjogMCwgImJvZHlTaXplIjogMjEsICJyZWRpcmVjdFVSTCI6ICIiLCAiX3RyYW5zZmVyU2l6ZSI6IDIxfSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAtMSwgImNvbm5lY3QiOiAtMSwgInNzbCI6IC0xLCAic2VuZCI6IDAsICJ3YWl0IjogODQuMDIxLCAicmVjZWl2ZSI6IDEuMTV9LCAicGFnZXJlZiI6ICJwYWdlQDBiMzE5MDRhMTIzMmNkZDBjYThlZWQyZjRkYmUxMDVkIiwgInNlcnZlcklQQWRkcmVzcyI6ICJbMmEwMDoxNDUwOjQwMTc6ODBmOjoyMDA0XSIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlFVSUMiLCAic3ViamVjdE5hbWUiOiAiKi5nb29nbGUuY29tIiwgImlzc3VlciI6ICJHVFMgQ0EgMUMzIiwgInZhbGlkRnJvbSI6IDE2OTgwNTk5MDQsICJ2YWxpZFRvIjogMTcwNTMxNzUwM319LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDIzLTExLTIwVDAyOjM5OjExLjM4N1oiLCAidGltZSI6IDg1LjQ3MDk5OTk5OTk5OTk5LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9hZnMvZ2VuXzIwND9jbGllbnQ9ZHAtdGVhbWludGVybmV0MDlfM3BoJm91dHB1dD11ZHNfYWRzX29ubHkmeng9dmY2bDBmNmZnaWMwJmFxaWQ9emNaYVpaR3hCWm1yanV3UHhLT3RxQUkmcHNpZD0xMTY3MjY4MTEyJnBidD1idiZhZGJ4PTY5NSZhZGJ5PTEzMCZhZGJoPTQ5NiZhZGJ3PTUzMCZhZGJhaD0xNjAlMkMxNjAlMkMxNjAmYWRibj1tYXN0ZXItMSZlYXdwPXBhcnRuZXItZHAtdGVhbWludGVybmV0MDlfM3BoJmVycnY9NTc5OTY3ODYyJmNzYWxhPTE3JTdDMCU3QzI3MSU3QzEyMyU3QzM1JmxsZT0wJmlmdj0xJmhwdD0xIiwgImh0dHBWZXJzaW9uIjogImgzIiwgImNvb2tpZXMiOiBbeyJuYW1lIjogIk5JRCIsICJ2YWx1ZSI6ICI1MTE9S3lCVzl5dW9JSWk1X2NzcnJYUi1NSW9zUTZjN2NmUGFmOENvWW1FbXNQOXV1ODkyRWRKM2NtdVo1aHdXMmhHemNMTldkbXh0eU5KMXJFdzZKWEEyNi10UW9vV0haVnZJVXRIenVRMEZJUkVwNEtJQ3poOVJyaE02N2xiczFSVms0SzdJU2tzVEtQTnVQeDZVM2NLM0hWVC1RU0FvdjludjFGdnNhdnhLa1g0In1dLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiOmF1dGhvcml0eSIsICJ2YWx1ZSI6ICJ3d3cuZ29vZ2xlLmNvbSJ9LCB7Im5hbWUiOiAiOm1ldGhvZCIsICJ2YWx1ZSI6ICJHRVQifSwgeyJuYW1lIjogIjpwYXRoIiwgInZhbHVlIjogIi9hZnMvZ2VuXzIwND9jbGllbnQ9ZHAtdGVhbWludGVybmV0MDlfM3BoJm91dHB1dD11ZHNfYWRzX29ubHkmeng9dmY2bDBmNmZnaWMwJmFxaWQ9emNaYVpaR3hCWm1yanV3UHhLT3RxQUkmcHNpZD0xMTY3MjY4MTEyJnBidD1idiZhZGJ4PTY5NSZhZGJ5PTEzMCZhZGJoPTQ5NiZhZGJ3PTUzMCZhZGJhaD0xNjAlMkMxNjAlMkMxNjAmYWRibj1tYXN0ZXItMSZlYXdwPXBhcnRuZXItZHAtdGVhbWludGVybmV0MDlfM3BoJmVycnY9NTc5OTY3ODYyJmNzYWxhPTE3JTdDMCU3QzI3MSU3QzEyMyU3QzM1JmxsZT0wJmlmdj0xJmhwdD0xIn0sIHsibmFtZSI6ICI6c2NoZW1lIiwgInZhbHVlIjogImh0dHBzIn0sIHsibmFtZSI6ICJhY2NlcHQiLCAidmFsdWUiOiAiaW1hZ2UvYXZpZixpbWFnZS93ZWJwLGltYWdlL2FwbmcsaW1hZ2Uvc3ZnK3htbCxpbWFnZS8qLCovKjtxPTAuOCJ9LCB7Im5hbWUiOiAiYWNjZXB0LWVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyIn0sIHsibmFtZSI6ICJhY2NlcHQtbGFuZ3VhZ2UiLCAidmFsdWUiOiAiZW4tVVMsZW47cT0wLjkifSwgeyJuYW1lIjogImNvb2tpZSIsICJ2YWx1ZSI6ICJOSUQ9NTExPUt5Qlc5eXVvSUlpNV9jc3JyWFItTUlvc1E2YzdjZlBhZjhDb1ltRW1zUDl1dTg5MkVkSjNjbXVaNWh3VzJoR3pjTE5XZG14dHlOSjFyRXc2SlhBMjYtdFFvb1dIWlZ2SVV0SHp1UTBGSVJFcDRLSUN6aDlScmhNNjdsYnMxUlZrNEs3SVNrc1RLUE51UHg2VTNjSzNIVlQtUVNBb3Y5bnYxRnZzYXZ4S2tYNCJ9LCB7Im5hbWUiOiAicmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwczovL2N1cnNlZC1rbmlnaHQuZnIvIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtZGVzdCIsICJ2YWx1ZSI6ICJpbWFnZSJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLW1vZGUiLCAidmFsdWUiOiAibm8tY29ycyJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLXNpdGUiLCAidmFsdWUiOiAiY3Jvc3Mtc2l0ZSJ9LCB7Im5hbWUiOiAidXNlci1hZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTE5LjAuNjA0NS45IFNhZmFyaS81MzcuMzYifV0sICJxdWVyeVN0cmluZyI6IFt7Im5hbWUiOiAiY2xpZW50IiwgInZhbHVlIjogImRwLXRlYW1pbnRlcm5ldDA5XzNwaCJ9LCB7Im5hbWUiOiAib3V0cHV0IiwgInZhbHVlIjogInVkc19hZHNfb25seSJ9LCB7Im5hbWUiOiAiengiLCAidmFsdWUiOiAidmY2bDBmNmZnaWMwIn0sIHsibmFtZSI6ICJhcWlkIiwgInZhbHVlIjogInpjWmFaWkd4Qlptcmp1d1B4S090cUFJIn0sIHsibmFtZSI6ICJwc2lkIiwgInZhbHVlIjogIjExNjcyNjgxMTIifSwgeyJuYW1lIjogInBidCIsICJ2YWx1ZSI6ICJidiJ9LCB7Im5hbWUiOiAiYWRieCIsICJ2YWx1ZSI6ICI2OTUifSwgeyJuYW1lIjogImFkYnkiLCAidmFsdWUiOiAiMTMwIn0sIHsibmFtZSI6ICJhZGJoIiwgInZhbHVlIjogIjQ5NiJ9LCB7Im5hbWUiOiAiYWRidyIsICJ2YWx1ZSI6ICI1MzAifSwgeyJuYW1lIjogImFkYmFoIiwgInZhbHVlIjogIjE2MCwxNjAsMTYwIn0sIHsibmFtZSI6ICJhZGJuIiwgInZhbHVlIjogIm1hc3Rlci0xIn0sIHsibmFtZSI6ICJlYXdwIiwgInZhbHVlIjogInBhcnRuZXItZHAtdGVhbWludGVybmV0MDlfM3BoIn0sIHsibmFtZSI6ICJlcnJ2IiwgInZhbHVlIjogIjU3OTk2Nzg2MiJ9LCB7Im5hbWUiOiAiY3NhbGEiLCAidmFsdWUiOiAiMTd8MHwyNzF8MTIzfDM1In0sIHsibmFtZSI6ICJsbGUiLCAidmFsdWUiOiAiMCJ9LCB7Im5hbWUiOiAiaWZ2IiwgInZhbHVlIjogIjEifSwgeyJuYW1lIjogImhwdCIsICJ2YWx1ZSI6ICIxIn1dLCAiaGVhZGVyc1NpemUiOiA5NjUsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwNCwgInN0YXR1c1RleHQiOiAiIiwgImh0dHBWZXJzaW9uIjogImgzIiwgImNvb2tpZXMiOiBbeyJuYW1lIjogIkNPTlNFTlQiLCAidmFsdWUiOiAiUEVORElORys2NTYiLCAic2VjdXJlIjogdHJ1ZX1dLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiYWx0LXN2YyIsICJ2YWx1ZSI6ICJoMz1cIjo0NDNcIjsgbWE9MjU5MjAwMCxoMy0yOT1cIjo0NDNcIjsgbWE9MjU5MjAwMCJ9LCB7Im5hbWUiOiAiY29udGVudC1sZW5ndGgiLCAidmFsdWUiOiAiMCJ9LCB7Im5hbWUiOiAiY29udGVudC1zZWN1cml0eS1wb2xpY3kiLCAidmFsdWUiOiAib2JqZWN0LXNyYyAnbm9uZSc7YmFzZS11cmkgJ3NlbGYnO3NjcmlwdC1zcmMgJ25vbmNlLTR3S3JobDd6b3ZIMzZvQ3Rua0tmWEEnICdzdHJpY3QtZHluYW1pYycgJ3JlcG9ydC1zYW1wbGUnICd1bnNhZmUtZXZhbCcgJ3Vuc2FmZS1pbmxpbmUnIGh0dHBzOiBodHRwOjtyZXBvcnQtdXJpIGh0dHBzOi8vY3NwLndpdGhnb29nbGUuY29tL2NzcC9nd3Mvb3RoZXIifSwgeyJuYW1lIjogImNvbnRlbnQtdHlwZSIsICJ2YWx1ZSI6ICJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgifSwgeyJuYW1lIjogImNyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5IiwgInZhbHVlIjogInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwczsgcmVwb3J0LXRvPVwiZ3dzXCIifSwgeyJuYW1lIjogImRhdGUiLCAidmFsdWUiOiAiTW9uLCAyMCBOb3YgMjAyMyAwMjozOToxMSBHTVQifSwgeyJuYW1lIjogIm9yaWdpbi10cmlhbCIsICJ2YWx1ZSI6ICJBcCtxTmxuTHpKREtTbUVIanpNNWlsYWE5MDhHdWVobExxR2I2ZXpNRTVsa2hlbGoyMHFWemZ2MDZ6UG1RM0xvZG9ldWpadXBoQW9scm5oblBBOHc0QUlBQUFCZmV5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwzZDNkeTVuYjI5bmJHVXVZMjl0T2pRME15SXNJbVpsWVhSMWNtVWlPaUpRWlhKdGFYTnphVzl1YzFCdmJHbGplVlZ1Ykc5aFpDSXNJbVY0Y0dseWVTSTZNVFk0TlRZMk16azVPWDA9In0sIHsibmFtZSI6ICJvcmlnaW4tdHJpYWwiLCAidmFsdWUiOiAiQXZ1ZHJqTVpxTDczMzVwMUtMVjJsSG8xa3hkTWVJTjBkVUkxNWQwQ1B6OWRvdlZMQ2NYazhPQXFqaG8xRFg0czZOYkhiQS9BR29idUd2Y1p2MGRyR2dRQUFBQjlleUp2Y21sbmFXNGlPaUpvZEhSd2N6b3ZMM2QzZHk1bmIyOW5iR1V1WTI5dE9qUTBNeUlzSW1abFlYUjFjbVVpT2lKQ1lXTnJSbTl5ZDJGeVpFTmhZMmhsVG05MFVtVnpkRzl5WldSU1pXRnpiMjV6SWl3aVpYaHdhWEo1SWpveE5qa3hOVE01TVRrNUxDSnBjMU4xWW1SdmJXRnBiaUk2ZEhKMVpYMD0ifSwgeyJuYW1lIjogInAzcCIsICJ2YWx1ZSI6ICJDUD1cIlRoaXMgaXMgbm90IGEgUDNQIHBvbGljeSEgU2VlIGcuY28vcDNwaGVscCBmb3IgbW9yZSBpbmZvLlwiIn0sIHsibmFtZSI6ICJwZXJtaXNzaW9ucy1wb2xpY3kiLCAidmFsdWUiOiAidW5sb2FkPSgpIn0sIHsibmFtZSI6ICJyZXBvcnQtdG8iLCAidmFsdWUiOiAie1wiZ3JvdXBcIjpcImd3c1wiLFwibWF4X2FnZVwiOjI1OTIwMDAsXCJlbmRwb2ludHNcIjpbe1widXJsXCI6XCJodHRwczovL2NzcC53aXRoZ29vZ2xlLmNvbS9jc3AvcmVwb3J0LXRvL2d3cy9vdGhlclwifV19In0sIHsibmFtZSI6ICJzZXJ2ZXIiLCAidmFsdWUiOiAiZ3dzIn0sIHsibmFtZSI6ICJzZXQtY29va2llIiwgInZhbHVlIjogIkNPTlNFTlQ9UEVORElORys2NTY7IGV4cGlyZXM9V2VkLCAxOS1Ob3YtMjAyNSAwMjozOToxMSBHTVQ7IHBhdGg9LzsgZG9tYWluPS5nb29nbGUuY29tOyBTZWN1cmUifSwgeyJuYW1lIjogIngtZnJhbWUtb3B0aW9ucyIsICJ2YWx1ZSI6ICJTQU1FT1JJR0lOIn0sIHsibmFtZSI6ICJ4LXhzcy1wcm90ZWN0aW9uIiwgInZhbHVlIjogIjAifV0sICJjb250ZW50IjogeyJzaXplIjogMCwgIm1pbWVUeXBlIjogInRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIsICJjb21wcmVzc2lvbiI6IDAsICJ0ZXh0IjogIiJ9LCAiaGVhZGVyc1NpemUiOiAwLCAiYm9keVNpemUiOiAyMSwgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogMjF9LCAiY2FjaGUiOiB7fSwgInRpbWluZ3MiOiB7ImRucyI6IC0xLCAiY29ubmVjdCI6IC0xLCAic3NsIjogLTEsICJzZW5kIjogMCwgIndhaXQiOiA4NC4wOTQsICJyZWNlaXZlIjogMS4zNzd9LCAicGFnZXJlZiI6ICJwYWdlQDBiMzE5MDRhMTIzMmNkZDBjYThlZWQyZjRkYmUxMDVkIiwgInNlcnZlcklQQWRkcmVzcyI6ICJbMmEwMDoxNDUwOjQwMTc6ODBmOjoyMDA0XSIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlFVSUMiLCAic3ViamVjdE5hbWUiOiAiKi5nb29nbGUuY29tIiwgImlzc3VlciI6ICJHVFMgQ0EgMUMzIiwgInZhbGlkRnJvbSI6IDE2OTgwNTk5MDQsICJ2YWxpZFRvIjogMTcwNTMxNzUwM319XX19","disable_correlation":true,"to_ids":false,"type":"attachment","uuid":"178ee8a3-2670-493a-ba37-ca36bd90b795","value":"har.json"},{"category":"External analysis","comment":"The rendered page at the end of the capture","data":"PCFET0NUWVBFIGh0bWw+PGh0bWwgZGF0YS1hZGJsb2Nra2V5PSJNRnd3RFFZSktvWklodmNOQVFFQkJRQURTd0F3U0FKQkFMcXVERkVUWFJuMEhyMDVmVVA3RUpUNzd4WW5QbVJicE15NHZrOEtZaUhua05wZWRuak9BTkpjYVhEWGNLUUpOMG5YS1pKTDdUY2lKRDhBb0hYSzE1OENBd0VBQVE9PV9ObVJDaTlKdjFDZ1FNa2hzdlU3VXFxOU1vZWJmbGNoM0hJK3UwUUZFQlBibWNjcy9ER3NuV3ZUSnRSZDl4aUR2UEpFWkhGOWROV21oRURKd1k5T3BNdz09IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+PGhlYWQ+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iPgogICAgPHRpdGxlPmN1cnNlZC1rbmlnaHQuZnI8L3RpdGxlPgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vcGFydG5lci5nb29nbGVhZHNlcnZpY2VzLmNvbS9nYW1wYWQvY29va2llLmpzP2RvbWFpbj1jdXJzZWQta25pZ2h0LmZyJmFtcDtjbGllbnQ9ZHAtdGVhbWludGVybmV0MDlfM3BoJmFtcDtwcm9kdWN0PVNBUyZhbXA7Y2FsbGJhY2s9X19zYXNDb29raWUiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvL3d3dy5nb29nbGUuY29tL2Fkc2Vuc2UvZG9tYWlucy9jYWYuanM/YWJwPTEiPjwvc2NyaXB0PiAgICA8c3R5bGUgbWVkaWE9InNjcmVlbiI+Ci5hc3NldF9zdGFyMCB7CgliYWNrZ3JvdW5kOiB1cmwoJy8vZDM4cHNybmkxN2J2eHUuY2xvdWRmcm9udC5uZXQvdGhlbWVzL2Fzc2V0cy9zdGFyMC5naWYnKSBuby1yZXBlYXQgY2VudGVyOwoJd2lkdGg6IDEzcHg7CgloZWlnaHQ6IDEycHg7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cn0KCi5hc3NldF9zdGFyMSB7CgliYWNrZ3JvdW5kOiB1cmwoJy8vZDM4cHNybmkxN2J2eHUuY2xvdWRmcm9udC5uZXQvdGhlbWVzL2Fzc2V0cy9zdGFyMS5naWYnKSBuby1yZXBlYXQgY2VudGVyOwoJd2lkdGg6IDEzcHg7CgloZWlnaHQ6IDEycHg7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cn0KCi5hc3NldF9zdGFySCB7CgliYWNrZ3JvdW5kOiB1cmwoJy8vZDM4cHNybmkxN2J2eHUuY2xvdWRmcm9udC5uZXQvdGhlbWVzL2Fzc2V0cy9zdGFySC5naWYnKSBuby1yZXBlYXQgY2VudGVyOwoJd2lkdGg6IDEzcHg7CgloZWlnaHQ6IDEycHg7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cn0KCi5zaXRlbGluayB7CglwYWRkaW5nLXJpZ2h0OiAxNnB4Owp9Cgouc2VsbGVyUmF0aW5ncyBhOmxpbmssCi5zZWxsZXJSYXRpbmdzIGE6dmlzaXRlZCwKLnNlbGxlclJhdGluZ3MgYTpob3ZlciwKLnNlbGxlclJhdGluZ3MgYTphY3RpdmUgewoJdGV4dC1kZWNvcmF0aW9uOiBub25lOwoJY3Vyc29yOiB0ZXh0Owp9Cgouc2VsbGVyUmF0aW5ncyB7CgltYXJnaW46MCAwIDNweCAyMHB4Owp9Cgouc2l0ZWxpbmtIb2xkZXIgewoJbWFyZ2luOi0xNXB4IDAgMTVweCAzNXB4Owp9CgojYWpheGxvYWRlckhvbGRlciB7CglkaXNwbGF5OiBibG9jazsKCXdpZHRoOiAyNHB4OwoJaGVpZ2h0OiAyNHB4OwoJYmFja2dyb3VuZDogI2ZmZjsKCXBhZGRpbmc6IDhweCAwIDAgOHB4OwoJbWFyZ2luOjEwcHggYXV0bzsKCS13ZWJraXQtYm9yZGVyLXJhZGl1czogNHB4OwoJLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7Cglib3JkZXItcmFkaXVzOiA0cHg7Cn08L3N0eWxlPiAgICA8c3R5bGUgbWVkaWE9InNjcmVlbiI+CiogewogICAgbWFyZ2luOjA7cGFkZGluZzowCn0KCmJvZHkgewogICAgYmFja2dyb3VuZDojMTAxYzM2OwogICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBmb250LXNpemU6MXJlbTsKfQoKLmhlYWRlciB7CiAgICBwYWRkaW5nOjFyZW0gMXJlbSAwOwogICAgb3ZlcmZsb3c6aGlkZGVuOwp9CgpoMSB7CiAgICBjb2xvcjojODQ4NDg0OwogICAgZm9udC1zaXplOjEuNXJlbTsKfQoKLmhlYWRlci10ZXh0LWNvbG9yOnZpc2l0ZWQsCi5oZWFkZXItdGV4dC1jb2xvcjpsaW5rLAouaGVhZGVyLXRleHQtY29sb3IgewogICAgY29sb3I6Izg0ODQ4NDsKfQoKLmNvbXAtaXMtcGFya2VkIHsKICBtYXJnaW46IDRweCAwIDJweDsKfQoKLmNvbXAtc3BvbnNvcmVkIHsKICB0ZXh0LWFsaWduOiBsZWZ0OwogIG1hcmdpbjogMCAwIC0xLjhyZW0gNHB4Owp9Cgoud3JhcHBlcjEgewogICAgbWFyZ2luOjFyZW07Cn0KCi53cmFwcGVyMiB7CiAgICBiYWNrZ3JvdW5kOnVybCgnLy9kMzhwc3JuaTE3YnZ4dS5jbG91ZGZyb250Lm5ldC90aGVtZXMvY2xlYW5QZXBwZXJtaW50QmxhY2tfNjU3ZDkwMTMvaW1nL2JvdHRvbS5wbmcnKSBuby1yZXBlYXQgY2VudGVyIGJvdHRvbTsKICAgIHBhZGRpbmctYm90dG9tOjE0MHB4Owp9Cgoud3JhcHBlcjMgewogICAgYmFja2dyb3VuZDojZmZmOwogICAgbWF4LXdpZHRoOjMwMHB4OwogICAgbWFyZ2luOjAgYXV0byAxcmVtOwogICAgcGFkZGluZy10b3A6MXB4OwogICAgcGFkZGluZy1ib3R0b206MXB4Owp9Cgoub25EZXNrdG9wIHsKICAgIGRpc3BsYXk6bm9uZTsKfQoKLnRjSG9sZGVyIHsKICAgIHBhZGRpbmctdG9wOiAycmVtOwp9CgouYWRzSG9sZGVyIHsKICAgIG1hcmdpbjogMXJlbSAwOwogICAgcGFkZGluZy10b3A6IDJyZW07CiAgICBvdmVyZmxvdzpoaWRkZW47Cn0KCi5mb290ZXIgewogICAgY29sb3I6IzYyNjU3NDsKICAgIHBhZGRpbmc6MnJlbSAxcmVtOwogICAgZm9udC1zaXplOi44cmVtOwogICAgbWFyZ2luOjAgYXV0bzsKICAgIG1heC13aWR0aDo0NDBweDsKfQoKLmZvb3RlciBhOmxpbmssCi5mb290ZXIgYTp2aXNpdGVkIHsKICAgIGNvbG9yOiM2MjY1NzQ7Cn0KCi5zYWxlX2xpbmtfYm9sZCBhLAouc2FsZV9saW5rLAouc2FsZV9saW5rIGEgewogICAgY29sb3I6IzYyNjU3NCAhaW1wb3J0YW50Owp9Cgouc2VhcmNoSG9sZGVyIHsKICAgIHBhZGRpbmc6MXB4IDAgMXB4IDFweDsKICAgIG1hcmdpbjoxcmVtIGF1dG87CiAgICB3aWR0aDogOTUlOwogICAgbWF4LXdpZHRoOiA1MDBweDsKfQoKQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2MDBweCkgewoKICAgIC5jb21wLWlzLXBhcmtlZCwKICAgIC5jb21wLXNwb25zb3JlZCB7CiAgICAgIGNvbG9yOiAjODQ4NDg0OwogICAgfQoKICAgIC5jb21wLXNwb25zb3JlZCB7CiAgICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgfQoKICAgIC53cmFwcGVyMSB7CiAgICAgICAgbWF4LXdpZHRoOjE1MDBweDsKICAgICAgICBtYXJnaW4tbGVmdDphdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDphdXRvOwogICAgfQoKICAgIC53cmFwcGVyMiB7CiAgICAgICAgYmFja2dyb3VuZDp1cmwoJy8vZDM4cHNybmkxN2J2eHUuY2xvdWRmcm9udC5uZXQvdGhlbWVzL2NsZWFuUGVwcGVybWludEJsYWNrXzY1N2Q5MDEzL2ltZy9hcnJvd3MucG5nJykgbm8tcmVwZWF0IGNlbnRlciB0b3A7CiAgICAgICAgcGFkZGluZy1ib3R0b206MDsKICAgICAgICBtaW4taGVpZ2h0OjYwMHB4OwogICAgfQoKICAgIC53cmFwcGVyMyB7CiAgICAgICAgbWF4LXdpZHRoOjUzMHB4OwogICAgICAgIGJhY2tncm91bmQ6bm9uZTsKICAgIH0KfQo8L3N0eWxlPiAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iRGllc2UgRG9tYWluIHN0ZWh0IHp1bSBWZXJrYXVmISI+CiAgICA8L2hlYWQ+Cgo8Ym9keSBpZD0iYWZkIiBzdHlsZT0idmlzaWJpbGl0eTogdmlzaWJsZTsiPgoKPGRpdiBjbGFzcz0id3JhcHBlcjEiPgogICAgCjxzdHlsZT4KCS5zYWxlX2Jhbm5lcl9vcmFuZ2UgewoJCWJhY2tncm91bmQ6I2YyNWIwMDsKCQliYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNmNDkzMDAgMCUsICNmMjViMDAgMTAwJSk7CgkJYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZjQ5MzAwIDAlLCNmMjViMDAgMTAwJSk7CgkJYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2Y0OTMwMCAwJSwjZjI1YjAwIDEwMCUpOwoJCWZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjZjQ5MzAwJywgZW5kQ29sb3JzdHI9JyNmMjViMDAnLEdyYWRpZW50VHlwZT0wICk7CgkJYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7CgkJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7CgkJY29sb3I6ICNjOGM4Yzg7CgkJdGV4dC1hbGlnbjogY2VudGVyOwoJCWZvbnQ6IGJvbGQgMTZweC8zNnB4IHNhbnMtc2VyaWY7CgkJaGVpZ2h0OiAzNnB4OwoJfQoKCS5zYWxlX2Jhbm5lcl9vcmFuZ2UgYSB7CgkJZGlzcGxheTogYmxvY2s7CgkJY29sb3I6I2ZmZjsKCQl0ZXh0LWRlY29yYXRpb246IG5vbmU7Cgl9Cjwvc3R5bGU+CgoKCjxkaXYgY2xhc3M9InNhbGVfYmFubmVyX29yYW5nZSIgc3R5bGU9ImJvcmRlci10b3A6bm9uZSI+CgkJCTxhIGhyZWY9Imh0dHBzOi8vd3d3Lm15ZG9tYWluY29udGFjdC5jb20vaW5kZXgucGhwP2RvbWFpbl9uYW1lPWN1cnNlZC1rbmlnaHQuZnIiIHRhcmdldD0iX2JsYW5rIj4KCQkJRGllc2UgRG9tYWluIGthdWZlbi4KCTwvYT4KPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyMiI+CiAgICAgICAgPGRpdiBjbGFzcz0id3JhcHBlcjMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiIGlkPSJkb21haW5uYW1lIj4KICAgICAgICA8aDE+Y3Vyc2VkLWtuaWdodC5mcjwvaDE+CiAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGNIb2xkZXIiPgogICAgICAgICAgICAgICAgPGRpdiBpZD0idGMiIHN0eWxlPSJoZWlnaHQ6IGF1dG87Ij48aWZyYW1lIGZyYW1lYm9yZGVyPSIwIiBtYXJnaW53aWR0aD0iMCIgbWFyZ2luaGVpZ2h0PSIwIiBhbGxvd3RyYW5zcGFyZW5jeT0idHJ1ZSIgc2Nyb2xsaW5nPSJubyIgd2lkdGg9IjEwMCUiIG5hbWU9InsmcXVvdDtuYW1lJnF1b3Q7OiZxdW90O21hc3Rlci0xJnF1b3Q7LCZxdW90O3NsYXZlLTEtMSZxdW90Ozp7JnF1b3Q7Y2xpY2t0cmFja1VybCZxdW90OzomcXVvdDtodHRwczovL3Rya3BjLm5ldC90cmFjay5waHA/Y2xpY2s9Y2FmJmFtcDtkb21haW49Y3Vyc2VkLWtuaWdodC5mciZhbXA7dWlkPU1UY3dNRFEwTnprME9DNDJORG8wTm1FeVlXTXhNRE5tTTJWbFl6UXpOVGhtWTJFNU5qYzRaV1V4WVRZNU9EZGlaRFJsTURsaE1XTTVOamt5WmpSbVl6Qm1aV1k0TTJKbU56YzNNekZtT2pZMU5XRmpObU5qT1dNME1XRSUzRCZhbXA7dHM9ZkVOc1pXRnVVR1Z3Y0dWeWJXbHVkRUpzWVdOcmZIdzFZMlU0Tkh4aWRXTnJaWFF3TVRFc1luVmphMlYwTURjM2ZIeDhmSHg4TmpVMVlXTTJZMk01WXpObFpueDhmREUzTURBME5EYzVORGd1TmpRNE4zd3pNamxoTVdRNFlUSmtORGt4WVRWaE16UTFPVGN5WlRrME5XVTRabVpqWXpoallXVTJaV1EzZkh4OGZId3hmSHd3ZkRCOGZIeDhNWHg4Zkh4OE1Id3dmSHg4Zkh4OGZIeDhmREI4TUh4OE1IeDhmREI4TUh4WE1UQTlmSHd4ZkZjeE1EMThZelkwWmpNNU5XSmhNVEZpTVRZMlpUQmtNV05oTVRsa05ETTVaRGszTjJRMFlUY3lZbVZsTTN3d2ZHUndMWFJsWVcxcGJuUmxjbTVsZERBNVh6TndhSHd3ZkRCOCZhbXA7YWR0ZXN0PW9mZiZxdW90OywmcXVvdDtjb250YWluZXImcXVvdDs6JnF1b3Q7c2VhcmNoJnF1b3Q7LCZxdW90O3N0eWxlSWQmcXVvdDs6MTE2NzI2ODExMiwmcXVvdDtwZXJzb25hbGl6ZWRBZHMmcXVvdDs6ZmFsc2UsJnF1b3Q7Y2hhbm5lbCZxdW90OzomcXVvdDswMDAwMDEsYnVja2V0MDExLGJ1Y2tldDA3NyZxdW90OywmcXVvdDtkb21haW5OYW1lJnF1b3Q7OiZxdW90O2N1cnNlZC1rbmlnaHQuZnImcXVvdDssJnF1b3Q7ZmV4cCZxdW90OzomcXVvdDsyMTQwNCwxNzMwMTE1NyZxdW90OywmcXVvdDttYXN0ZXJOdW1iZXImcXVvdDs6MSwmcXVvdDtudW1iZXImcXVvdDs6MTAsJnF1b3Q7cHViSWQmcXVvdDs6JnF1b3Q7ZHAtdGVhbWludGVybmV0MDlfM3BoJnF1b3Q7LCZxdW90O3JvbGUmcXVvdDs6JnF1b3Q7cyZxdW90OywmcXVvdDtzbGF2ZU51bWJlciZxdW90OzoxLCZxdW90O2hsJnF1b3Q7OiZxdW90O2RlJnF1b3Q7LCZxdW90O2NvbG9yQXR0cmlidXRpb24mcXVvdDs6JnF1b3Q7I2I3YjdiNyZxdW90OywmcXVvdDtmb250RmFtaWx5JnF1b3Q7OiZxdW90O2FyaWFsJnF1b3Q7LCZxdW90O2ZvbnRGYW1pbHlBdHRyaWJ1dGlvbiZxdW90OzomcXVvdDthcmlhbCZxdW90OywmcXVvdDtyb2xsb3ZlckxpbmtCb2xkJnF1b3Q7OmZhbHNlLCZxdW90O3Jlc3VsdHNQYWdlQmFzZVVybCZxdW90OzomcXVvdDtodHRwczovL2N1cnNlZC1rbmlnaHQuZnIvP3RzPWZFTnNaV0Z1VUdWd2NHVnliV2x1ZEVKc1lXTnJmSHcxWTJVNE5IeGlkV05yWlhRd01URXNZblZqYTJWME1EYzNmSHg4Zkh4OE5qVTFZV00yWTJNNVl6Tmxabng4ZkRFM01EQTBORGM1TkRndU5qUTRPSHd3TXpFM1lqZGhPR0l3WWpobU56UTFZek0zTkRNNFpUUm1ZVEZsWkdFeE5UYzVPV0ZpT0dRMWZIeDhmSHd4Zkh3d2ZEQjhmSHg4TVh4OGZIeDhNSHd3Zkh4OGZIeDhmSHg4ZkRCOE1IeDhNSHg4ZkRCOE1IeFhNVEE5Zkh3eGZGY3hNRDE4WXpZMFpqTTVOV0poTVRGaU1UWTJaVEJrTVdOaE1UbGtORE01WkRrM04yUTBZVGN5WW1WbE0zd3dmR1J3TFhSbFlXMXBiblJsY201bGREQTVYek53YUh3d2ZEQjgmcXVvdDssJnF1b3Q7Y29sdW1ucyZxdW90OzoxLCZxdW90O2hvcml6b250YWxBbGlnbm1lbnQmcXVvdDs6JnF1b3Q7bGVmdCZxdW90OywmcXVvdDtyZXN1bHRzUGFnZVF1ZXJ5UGFyYW0mcXVvdDs6JnF1b3Q7cXVlcnkmcXVvdDssJnF1b3Q7dGVybXMmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2t3JnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtpZSZxdW90OzomcXVvdDtVVEYtOCZxdW90OywmcXVvdDttYXhUZXJtTGVuZ3RoJnF1b3Q7OjQwLCZxdW90O21heFRvcCZxdW90OzpudWxsLCZxdW90O21pblRvcCZxdW90OzpudWxsLCZxdW90O29lJnF1b3Q7OiZxdW90O1VURi04JnF1b3Q7LCZxdW90O3R5cGUmcXVvdDs6JnF1b3Q7c2VhcmNoYm94JnF1b3Q7LCZxdW90O2xpbmtUYXJnZXQmcXVvdDs6JnF1b3Q7X2JsYW5rJnF1b3Q7LCZxdW90O2ZvbnRTaXplVGl0bGUmcXVvdDs6MTgsJnF1b3Q7Zm9udFNpemVBdHRyaWJ1dGlvbiZxdW90OzomcXVvdDsxNnB4JnF1b3Q7LCZxdW90O2NvbG9yQmFja2dyb3VuZCZxdW90OzomcXVvdDt0cmFuc3BhcmVudCZxdW90OywmcXVvdDtoaWRlU2VhcmNoSW5wdXRCb3JkZXImcXVvdDs6ZmFsc2UsJnF1b3Q7aGlkZVNlYXJjaEJ1dHRvbkJvcmRlciZxdW90Ozp0cnVlLCZxdW90O2NvbG9yU2VhcmNoQnV0dG9uJnF1b3Q7OiZxdW90OyMwYjMyNzkmcXVvdDssJnF1b3Q7Y29sb3JTZWFyY2hCdXR0b25UZXh0JnF1b3Q7OiZxdW90OyNmZmYmcXVvdDssJnF1b3Q7Zm9udFNpemVTZWFyY2hJbnB1dCZxdW90OzoxMiwmcXVvdDtmb250U2l6ZVNlYXJjaEJ1dHRvbiZxdW90OzoxMywmcXVvdDthdHRyaWJ1dGlvbkJvbGQmcXVvdDs6ZmFsc2UsJnF1b3Q7dWlPcHRpbWl6ZSZxdW90Ozp0cnVlLCZxdW90O2RvbWFpblJlZ2lzdHJhbnQmcXVvdDs6JnF1b3Q7YXMtZHJpZC0yNTU4MzM0NTQwNzMwNzY4JnF1b3Q7fSwmcXVvdDttYXN0ZXItMSZxdW90Ozp7JnF1b3Q7Y2xpY2t0cmFja1VybCZxdW90OzomcXVvdDtodHRwczovL3Rya3BjLm5ldC90cmFjay5waHA/Y2xpY2s9Y2FmJmFtcDtkb21haW49Y3Vyc2VkLWtuaWdodC5mciZhbXA7dWlkPU1UY3dNRFEwTnprME9DNDJORG8wTm1FeVlXTXhNRE5tTTJWbFl6UXpOVGhtWTJFNU5qYzRaV1V4WVRZNU9EZGlaRFJsTURsaE1XTTVOamt5WmpSbVl6Qm1aV1k0TTJKbU56YzNNekZtT2pZMU5XRmpObU5qT1dNME1XRSUzRCZhbXA7dHM9ZkVOc1pXRnVVR1Z3Y0dWeWJXbHVkRUpzWVdOcmZIdzFZMlU0Tkh4aWRXTnJaWFF3TVRFc1luVmphMlYwTURjM2ZIeDhmSHg4TmpVMVlXTTJZMk01WXpObFpueDhmREUzTURBME5EYzVORGd1TmpRNE4zd3pNamxoTVdRNFlUSmtORGt4WVRWaE16UTFPVGN5WlRrME5XVTRabVpqWXpoallXVTJaV1EzZkh4OGZId3hmSHd3ZkRCOGZIeDhNWHg4Zkh4OE1Id3dmSHg4Zkh4OGZIeDhmREI4TUh4OE1IeDhmREI4TUh4WE1UQTlmSHd4ZkZjeE1EMThZelkwWmpNNU5XSmhNVEZpTVRZMlpUQmtNV05oTVRsa05ETTVaRGszTjJRMFlUY3lZbVZsTTN3d2ZHUndMWFJsWVcxcGJuUmxjbTVsZERBNVh6TndhSHd3ZkRCOCZhbXA7YWR0ZXN0PW9mZiZxdW90OywmcXVvdDtjb250YWluZXImcXVvdDs6JnF1b3Q7dGMmcXVvdDssJnF1b3Q7c3R5bGVJZCZxdW90OzoxMTY3MjY4MTEyLCZxdW90O3BlcnNvbmFsaXplZEFkcyZxdW90OzpmYWxzZSwmcXVvdDtjaGFubmVsJnF1b3Q7OiZxdW90OzAwMDAwMSxidWNrZXQwMTEsYnVja2V0MDc3JnF1b3Q7LCZxdW90O2RvbWFpbk5hbWUmcXVvdDs6JnF1b3Q7Y3Vyc2VkLWtuaWdodC5mciZxdW90OywmcXVvdDtmZXhwJnF1b3Q7OiZxdW90OzIxNDA0LDE3MzAxMTU3JnF1b3Q7LCZxdW90O21hc3Rlck51bWJlciZxdW90OzoxLCZxdW90O251bWJlciZxdW90OzozLCZxdW90O3B1YklkJnF1b3Q7OiZxdW90O2RwLXRlYW1pbnRlcm5ldDA5XzNwaCZxdW90OywmcXVvdDtyb2xlJnF1b3Q7OiZxdW90O20mcXVvdDssJnF1b3Q7aGwmcXVvdDs6JnF1b3Q7ZGUmcXVvdDssJnF1b3Q7Y29sb3JUaXRsZUxpbmsmcXVvdDs6JnF1b3Q7IzAyNzdiZCZxdW90OywmcXVvdDtjb2xvckF0dHJpYnV0aW9uJnF1b3Q7OiZxdW90OyNhYWEmcXVvdDssJnF1b3Q7Zm9udEZhbWlseSZxdW90OzomcXVvdDthcmlhbCZxdW90OywmcXVvdDtmb250RmFtaWx5QXR0cmlidXRpb24mcXVvdDs6JnF1b3Q7YXJpYWwmcXVvdDssJnF1b3Q7cm9sbG92ZXJMaW5rQm9sZCZxdW90OzpmYWxzZSwmcXVvdDtyb2xsb3ZlckxpbmtDb2xvciZxdW90OzomcXVvdDsjMDE1NzliJnF1b3Q7LCZxdW90O25vVGl0bGVVbmRlcmxpbmUmcXVvdDs6ZmFsc2UsJnF1b3Q7bGluZUhlaWdodFRpdGxlJnF1b3Q7OjM0LCZxdW90O3Jlc3VsdHNQYWdlQmFzZVVybCZxdW90OzomcXVvdDtodHRwczovL2N1cnNlZC1rbmlnaHQuZnIvP3RzPWZFTnNaV0Z1VUdWd2NHVnliV2x1ZEVKc1lXTnJmSHcxWTJVNE5IeGlkV05yWlhRd01URXNZblZqYTJWME1EYzNmSHg4Zkh4OE5qVTFZV00yWTJNNVl6Tmxabng4ZkRFM01EQTBORGM1TkRndU5qUTRPSHd3TXpFM1lqZGhPR0l3WWpobU56UTFZek0zTkRNNFpUUm1ZVEZsWkdFeE5UYzVPV0ZpT0dRMWZIeDhmSHd4Zkh3d2ZEQjhmSHg4TVh4OGZIeDhNSHd3Zkh4OGZIeDhmSHg4ZkRCOE1IeDhNSHg4ZkRCOE1IeFhNVEE5Zkh3eGZGY3hNRDE4WXpZMFpqTTVOV0poTVRGaU1UWTJaVEJrTVdOaE1UbGtORE01WkRrM04yUTBZVGN5WW1WbE0zd3dmR1J3TFhSbFlXMXBiblJsY201bGREQTVYek53YUh3d2ZEQjgmcXVvdDssJnF1b3Q7Y29sdW1ucyZxdW90OzoxLCZxdW90O2hvcml6b250YWxBbGlnbm1lbnQmcXVvdDs6JnF1b3Q7Y2VudGVyJnF1b3Q7LCZxdW90O3Jlc3VsdHNQYWdlUXVlcnlQYXJhbSZxdW90OzomcXVvdDtxdWVyeSZxdW90OywmcXVvdDt0ZXJtcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7a3cmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2llJnF1b3Q7OiZxdW90O1VURi04JnF1b3Q7LCZxdW90O21heFRlcm1MZW5ndGgmcXVvdDs6NDAsJnF1b3Q7bWF4VG9wJnF1b3Q7Om51bGwsJnF1b3Q7bWluVG9wJnF1b3Q7Om51bGwsJnF1b3Q7b2UmcXVvdDs6JnF1b3Q7VVRGLTgmcXVvdDssJnF1b3Q7dHlwZSZxdW90OzomcXVvdDtyZWxhdGVkc2VhcmNoJnF1b3Q7LCZxdW90O2xpbmtUYXJnZXQmcXVvdDs6JnF1b3Q7X2JsYW5rJnF1b3Q7LCZxdW90O3ZlcnRpY2FsU3BhY2luZyZxdW90OzoxMCwmcXVvdDtmb250U2l6ZVRpdGxlJnF1b3Q7OiZxdW90OzI0cHgmcXVvdDssJnF1b3Q7Zm9udFNpemVBdHRyaWJ1dGlvbiZxdW90OzomcXVvdDsxNHB4JnF1b3Q7LCZxdW90O2NvbG9yQmFja2dyb3VuZCZxdW90OzomcXVvdDt0cmFuc3BhcmVudCZxdW90OywmcXVvdDthdHRyaWJ1dGlvbkJvbGQmcXVvdDs6ZmFsc2UsJnF1b3Q7dWlPcHRpbWl6ZSZxdW90Ozp0cnVlLCZxdW90O2RvbWFpblJlZ2lzdHJhbnQmcXVvdDs6JnF1b3Q7YXMtZHJpZC0yNTU4MzM0NTQwNzMwNzY4JnF1b3Q7fX0iIGlkPSJtYXN0ZXItMSIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2Fmcy9hZHM/YWR0ZXN0PW9mZiZhbXA7cHNpZD0xMTY3MjY4MTEyJmFtcDtwY3NhPWZhbHNlJmFtcDtjaGFubmVsPTAwMDAwMSUyQ2J1Y2tldDAxMSUyQ2J1Y2tldDA3NyZhbXA7Y2xpZW50PWRwLXRlYW1pbnRlcm5ldDA5XzNwaCZhbXA7cj1tJmFtcDtobD1kZSZhbXA7cnBidT1odHRwcyUzQSUyRiUyRmN1cnNlZC1rbmlnaHQuZnIlMkYlM0Z0cyUzRGZFTnNaV0Z1VUdWd2NHVnliV2x1ZEVKc1lXTnJmSHcxWTJVNE5IeGlkV05yWlhRd01URXNZblZqYTJWME1EYzNmSHg4Zkh4OE5qVTFZV00yWTJNNVl6Tmxabng4ZkRFM01EQTBORGM1TkRndU5qUTRPSHd3TXpFM1lqZGhPR0l3WWpobU56UTFZek0zTkRNNFpUUm1ZVEZsWkdFeE5UYzVPV0ZpT0dRMWZIeDhmSHd4Zkh3d2ZEQjhmSHg4TVh4OGZIeDhNSHd3Zkh4OGZIeDhmSHg4ZkRCOE1IeDhNSHg4ZkRCOE1IeFhNVEE5Zkh3eGZGY3hNRDE4WXpZMFpqTTVOV0poTVRGaU1UWTJaVEJrTVdOaE1UbGtORE01WkRrM04yUTBZVGN5WW1WbE0zd3dmR1J3TFhSbFlXMXBiblJsY201bGREQTVYek53YUh3d2ZEQjgmYW1wO21heF9yYWRsaW5rX2xlbj00MCZhbXA7dHlwZT0zJmFtcDt1aW9wdD10cnVlJmFtcDtzd3A9YXMtZHJpZC0yNTU4MzM0NTQwNzMwNzY4JmFtcDtvZT1VVEYtOCZhbXA7aWU9VVRGLTgmYW1wO2ZleHA9MjE0MDQlMkMxNzMwMTE1NyZhbXA7Zm9ybWF0PXIzJTdDcyZhbXA7bm9jYWNoZT0zMDkxNzAwNDQ3OTQ4OTM4JmFtcDtudW09MCZhbXA7b3V0cHV0PWFmZF9hZHMmYW1wO2RvbWFpbl9uYW1lPWN1cnNlZC1rbmlnaHQuZnImYW1wO3Y9MyZhbXA7YnNsPTgmYW1wO3BhYz0wJmFtcDt1X2hpcz0yJmFtcDt1X3R6PTAmYW1wO2R0PTE3MDA0NDc5NDg5NDEmYW1wO3Vfdz0xOTIwJmFtcDt1X2g9MTA4MCZhbXA7Yml3PTE5MjAmYW1wO2JpaD0xMDgwJmFtcDtwc3c9MTkyMCZhbXA7cHNoPTc5MSZhbXA7ZnJtPTAmYW1wO2NsPTU3OTk2Nzg2MiZhbXA7dWlvPS0tJmFtcDtjb250PXRjJmFtcDtqc2lkPWNhZiZhbXA7anN2PTU3OTk2Nzg2MiZhbXA7cnVybD1odHRwcyUzQSUyRiUyRmN1cnNlZC1rbmlnaHQuZnIlMkYiIHN0eWxlPSJ2aXNpYmlsaXR5OiB2aXNpYmxlOyBoZWlnaHQ6IDQ5NnB4OyBkaXNwbGF5OiBibG9jazsiIHRpdGxlPSIiPjwvaWZyYW1lPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXIiPgogICAgICAgICAgICAyMDIzIENvcHlyaWdodC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCjxicj48YnI+CjxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9IndpbmRvdy5vcGVuKCcvcHJpdmFjeS5odG1sJywgJ3ByaXZhY3ktcG9saWN5JywgJ3dpZHRoPTg5MCxoZWlnaHQ9MzMwLGxlZnQ9MjAwLHRvcD0yMDAsbWVudWJhcj1ubyxzdGF0dXM9eWVzLHRvb2xiYXI9bm8nKS5mb2N1cygpIiBjbGFzcz0icHJpdmFjeS1wb2xpY3kiPgogICAgUHJpdmFjeSBQb2xpY3kKPC9hPgo8YnI+PGJyPgo8YnI+PGJyPgogICAgPC9kaXY+CjwvZGl2PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij4KICAgIHZhciB0Y2Jsb2NrID0gewogICAgICAgIC8vIFJlcXVpcmVkIGFuZCBzdGVhZHkKICAgICAgICAnY29udGFpbmVyJzogJ3RjJywKICAgICAgICAndHlwZSc6ICdyZWxhdGVkc2VhcmNoJywKICAgICAgICAnY29sb3JCYWNrZ3JvdW5kJzogJ3RyYW5zcGFyZW50JywKICAgICAgICAKICAgICAgICAnbnVtYmVyJzogMywKICAgICAgICAKICAgICAgICAvLyBGb250LVNpemVzIGFuZCBMaW5lLUhlaWdodHMKICAgICAgICAnZm9udFNpemVBdHRyaWJ1dGlvbic6IDE0LAogICAgICAgICdmb250U2l6ZVRpdGxlJzogMjQsCiAgICAgICAgJ2xpbmVIZWlnaHRUaXRsZSc6IDM0LAogICAgICAgIC8vIENvbG9ycwogICAgICAgICdjb2xvckF0dHJpYnV0aW9uJzogJyNhYWEnLAogICAgICAgICdjb2xvclRpdGxlTGluayc6ICcjMDI3N2JkJywKICAgICAgICAvLyBBbHBoYWJldGljYWxseQogICAgICAgICdob3Jpem9udGFsQWxpZ25tZW50JzogJ2NlbnRlcicsCiAgICAgICAgJ25vVGl0bGVVbmRlcmxpbmUnOiBmYWxzZSwKICAgICAgICAncm9sbG92ZXJMaW5rQ29sb3InOiAnIzAxNTc5YicsCiAgICAgICAgJ3ZlcnRpY2FsU3BhY2luZyc6IDEwCiAgICB9OwogICAgdmFyIHNlYXJjaGJveEJsb2NrID0gewogICAgICAgICdjb250YWluZXInOiAnc2VhcmNoJywKICAgICAgICAndHlwZSc6ICdzZWFyY2hib3gnLAogICAgICAgICdmb250U2l6ZVNlYXJjaElucHV0JzogMTIsCiAgICAgICAgJ2hpZGVTZWFyY2hJbnB1dEJvcmRlcic6IGZhbHNlLAogICAgICAgICdoaWRlU2VhcmNoQnV0dG9uQm9yZGVyJzogdHJ1ZSwKICAgICAgICAnZm9udFNpemVTZWFyY2hCdXR0b24nOiAxMywKICAgICAgICAnY29sb3JCYWNrZ3JvdW5kJzogJ3RyYW5zcGFyZW50JywKICAgICAgICAnY29sb3JTZWFyY2hCdXR0b24nOiAnIzBiMzI3OScsCiAgICAgICAgJ2NvbG9yU2VhcmNoQnV0dG9uVGV4dCc6ICcjZmZmJwogICAgfTsKICAgIDwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIGlzQWR1bHQ9ZmFsc2U7ICAgICB2YXIgY29udGFpbmVyTmFtZXM9W107ICAgICB2YXIgdW5pcXVlVHJhY2tpbmdJRD0nTVRjd01EUTBOemswT0M0Mk5EbzBObUV5WVdNeE1ETm1NMlZsWXpRek5UaG1ZMkU1TmpjNFpXVXhZVFk1T0RkaVpEUmxNRGxoTVdNNU5qa3laalJtWXpCbVpXWTRNMkptTnpjM016Rm1PalkxTldGak5tTmpPV00wTVdFPSc7ICAgICB2YXIgc2VhcmNoPScnOyAgICAgdmFyIHRoZW1lZGF0YT0nZkVOc1pXRnVVR1Z3Y0dWeWJXbHVkRUpzWVdOcmZIdzFZMlU0Tkh4aWRXTnJaWFF3TVRFc1luVmphMlYwTURjM2ZIeDhmSHg4TmpVMVlXTTJZMk01WXpObFpueDhmREUzTURBME5EYzVORGd1TmpRNE4zd3pNamxoTVdRNFlUSmtORGt4WVRWaE16UTFPVGN5WlRrME5XVTRabVpqWXpoallXVTJaV1EzZkh4OGZId3hmSHd3ZkRCOGZIeDhNWHg4Zkh4OE1Id3dmSHg4Zkh4OGZIeDhmREI4TUh4OE1IeDhmREI4TUh4WE1UQTlmSHd4ZkZjeE1EMThZelkwWmpNNU5XSmhNVEZpTVRZMlpUQmtNV05oTVRsa05ETTVaRGszTjJRMFlUY3lZbVZsTTN3d2ZHUndMWFJsWVcxcGJuUmxjbTVsZERBNVh6TndhSHd3ZkRCOCc7ICAgICB2YXIgZG9tYWluPSdjdXJzZWQta25pZ2h0LmZyJzsgICAgIHZhciBzY3JpcHRQYXRoPScnOyAgICAgdmFyIGFkdGVzdD0nb2ZmJzsgPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPmlmKHRvcC5sb2NhdGlvbiE9PWxvY2F0aW9uKSB7IHRvcC5sb2NhdGlvbi5ocmVmPWxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIGxvY2F0aW9uLmhvc3QgKyBsb2NhdGlvbi5wYXRobmFtZSArIChsb2NhdGlvbi5zZWFyY2ggPyBsb2NhdGlvbi5zZWFyY2ggKyAnJicgOiAnPycpICsgJ194YWZ2cj1NemRrTXpabE1EZ3laak5rTkRObVpUWTBaVFE1WVRRelpUZzNNbVZpWm1JM09UazBaamczTlN3Mk5UVmhZelpqWXpsbE5qQmsnOyB9IDwvc2NyaXB0PjxzY3JpcHQ+CnZhciBwYWdlTG9hZGVkQ2FsbGJhY2tUcmlnZ2VyZWQgPSBmYWxzZTsKdmFyIGZhbGxiYWNrVHJpZ2dlcmVkID0gZmFsc2U7CnZhciBmb3JtZXJDYWxsZWRBcmd1bWVudHMgPSBmYWxzZTsKCnZhciBwYWdlT3B0aW9ucyA9IHsKICAgICdwdWJJZCc6ICdkcC10ZWFtaW50ZXJuZXQwMScsCiAgICAncmVzdWx0c1BhZ2VCYXNlVXJsJzogJy8vJyArIGxvY2F0aW9uLmhvc3QgKyAnLz90cz0nLAogICAgJ2ZvbnRGYW1pbHknOiAnYXJpYWwnLAogICAgJ29wdGltaXplVGVybXMnOiB0cnVlLAogICAgJ21heFRlcm1MZW5ndGgnOiA0MCwKICAgICdhZHRlc3QnOiB0cnVlLAogICAgJ2NsaWNrdHJhY2tVcmwnOiAnLy8nICsgbG9jYXRpb24uaG9zdCArICcvdHJhY2sucGhwPycsCiAgICAnYXR0cmlidXRpb25UZXh0JzogJ0FkcycsCiAgICAnY29sb3JBdHRyaWJ1dGlvbic6ICcjYjdiN2I3JywKICAgICdmb250U2l6ZUF0dHJpYnV0aW9uJzogMTYsCiAgICAnYXR0cmlidXRpb25Cb2xkJzogZmFsc2UsCiAgICAncm9sbG92ZXJMaW5rQm9sZCc6IGZhbHNlLAogICAgJ2ZvbnRGYW1pbHlBdHRyaWJ1dGlvbic6ICdhcmlhbCcsCiAgICAnYWRMb2FkZWRDYWxsYmFjayc6IGZ1bmN0aW9uKGNvbnRhaW5lck5hbWUsIGFkc0xvYWRlZCwgaXNFeHBlcmltZW50VmFyaWFudCwgY2FsbGJhY2tPcHRpb25zKSB7CiAgICAgICAgaWYgKCFhZHNMb2FkZWQpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHZhciBlbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjb250YWluZXIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZnJhbWUnKVswXTsKICAgICAgICAgICAgICAgIHZhciB2YXJzID0gSlNPTi5wYXJzZShlbGUubmFtZS5zdWJzdHIoZWxlLmlkLmxlbmd0aCArIDEpKTsKICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFyc1tlbGUuaWRdLnR5cGUgPT0gInN0cmluZyIgJiYgdmFyc1tlbGUuaWRdLnR5cGUgPT0gInJlbGF0ZWRzZWFyY2giKSB7CiAgICAgICAgICAgICAgICAgICAgcmVsYXRlZEZhbGxiYWNrKChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0ZWRDYWxsYmFjayh2YXJzW2VsZS5pZF0pOwogICAgICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgICBpZiAoIShlcnIgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKGNvbnRhaW5lck5hbWUgaW4gY29udGFpbmVyTmFtZXMpIHsKCiAgICAgICAgICAgIHZhciBkYXRhID0gewogICAgICAgICAgICAgICAgY29udGFpbmVyTmFtZTogY29udGFpbmVyTmFtZSwKICAgICAgICAgICAgICAgIGFkc0xvYWRlZDogYWRzTG9hZGVkLAogICAgICAgICAgICAgICAgaXNFeHBlcmltZW50VmFyaWFudDogaXNFeHBlcmltZW50VmFyaWFudCwKICAgICAgICAgICAgICAgIGNhbGxiYWNrT3B0aW9uczogY2FsbGJhY2tPcHRpb25zLAogICAgICAgICAgICAgICAgdGVybXM6IHBhZ2VPcHRpb25zLnRlcm1zCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGFqYXhRdWVyeSgKICAgICAgICAgICAgICAgIHNjcmlwdFBhdGggKyAiL3RyYWNrLnBocCIKICAgICAgICAgICAgICAgICsgIj90b2dnbGU9YWRsb2FkZWQiCiAgICAgICAgICAgICAgICArICImdWlkPSIgKyBlbmNvZGVVUklDb21wb25lbnQodW5pcXVlVHJhY2tpbmdJRCkKICAgICAgICAgICAgICAgICsgIiZkb21haW49IiArIGVuY29kZVVSSUNvbXBvbmVudChkb21haW4pCiAgICAgICAgICAgICAgICArICImZGF0YT0iICsgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGRhdGEpKQogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0sCiAgICAncGFnZUxvYWRlZENhbGxiYWNrJzogZnVuY3Rpb24gKHJlcXVlc3RBY2NlcHRlZCwgc3RhdHVzKSB7CgogICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJzsKICAgICAgICBwYWdlTG9hZGVkQ2FsbGJhY2tUcmlnZ2VyZWQgPSB0cnVlOwoKICAgICAgICBpZiAoKHN0YXR1cy5mYWlsbGlzdGVkID09PSB0cnVlIHx8IHN0YXR1cy5mYWlsbGlzdGVkID09ICJ0cnVlIiB8fCBzdGF0dXMuYmxvY2tlZCA9PT0gdHJ1ZSB8fCBzdGF0dXMuYmxvY2tlZCA9PSAidHJ1ZSIgKSAmJiBzdGF0dXMuZXJyb3JfY29kZSAhPSAyNSkgewogICAgICAgICAgICBhamF4UXVlcnkoc2NyaXB0UGF0aCArICIvdHJhY2sucGhwP2RvbWFpbj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvbWFpbikgKyAiJmNhZj0xJnRvZ2dsZT1ibG9jayZyZWFzb249b3RoZXImdWlkPSIgKyBlbmNvZGVVUklDb21wb25lbnQodW5pcXVlVHJhY2tpbmdJRCkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKHN0YXR1cy5lcnJvcmNvZGUgJiYgIXN0YXR1cy5lcnJvcl9jb2RlKSB7CiAgICAgICAgICAgIHN0YXR1cy5lcnJvcl9jb2RlID0gc3RhdHVzLmVycm9yY29kZTsKICAgICAgICB9CgogICAgICAgIGlmIChzdGF0dXMuZXJyb3JfY29kZSkgewogICAgICAgICAgICBhamF4UXVlcnkoc2NyaXB0UGF0aCArICIvdHJhY2sucGhwP2RvbWFpbj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvbWFpbikgKyAiJmNhZj0xJnRvZ2dsZT1lcnJvcmNvZGUmY29kZT0iICsgZW5jb2RlVVJJQ29tcG9uZW50KHN0YXR1cy5lcnJvcl9jb2RlKSArICImdWlkPSIgKyBlbmNvZGVVUklDb21wb25lbnQodW5pcXVlVHJhY2tpbmdJRCkpOwoKICAgICAgICAgICAgaWYgKFsxOCwgMTldLmluZGV4T2YocGFyc2VJbnQoc3RhdHVzLmVycm9yX2NvZGUpKSAhPSAtMSAmJiBmYWxsYmFja1RyaWdnZXJlZCA9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgZmFsbGJhY2tUcmlnZ2VyZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBsb2FkRmVlZCA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy8vJyArIGxvY2F0aW9uLmhvc3Q7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChzdGF0dXMuZXJyb3JfY29kZSA9PSAyMCkgewogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlcGxhY2UoIi8vZHAuZy5kb3VibGVjbGljay5uZXQvYXBwcy9kb21haW5wYXJrL2RvbWFpbnBhcmsuY2dpP2NsaWVudD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KChwYWdlT3B0aW9ucy5wdWJpZC5tYXRjaCgvXmNhLS9pKSA/ICIiIDogImNhLSIpICsgcGFnZU9wdGlvbnMucHViaWQpICsgIiZkb21haW5fbmFtZT0iICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvbWFpbikgKyAiJm91dHB1dD1odG1sJmRyaWQ9IiArIGVuY29kZVVSSUNvbXBvbmVudChwYWdlT3B0aW9ucy5kb21haW5SZWdpc3RyYW50KSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChzdGF0dXMubmVlZHNyZXZpZXcgPT09IHRydWUgfHwgc3RhdHVzLm5lZWRzcmV2aWV3ID09ICJ0cnVlIikgewogICAgICAgICAgICBhamF4UXVlcnkoc2NyaXB0UGF0aCArICIvdHJhY2sucGhwP2RvbWFpbj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvbWFpbikgKyAiJmNhZj0xJnRvZ2dsZT1uZWVkc3JldmlldyZ1aWQ9IiArIGVuY29kZVVSSUNvbXBvbmVudCh1bmlxdWVUcmFja2luZ0lEKSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoKHN0YXR1cy5hZHVsdCA9PT0gdHJ1ZSB8fCBzdGF0dXMuYWR1bHQgPT0gInRydWUiKSAmJiAhaXNBZHVsdCkgewogICAgICAgICAgICBhamF4UXVlcnkoc2NyaXB0UGF0aCArICIvdHJhY2sucGhwP2RvbWFpbj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvbWFpbikgKyAiJmNhZj0xJnRvZ2dsZT1hZHVsdCZ1aWQ9IiArIGVuY29kZVVSSUNvbXBvbmVudCh1bmlxdWVUcmFja2luZ0lEKSk7CiAgICAgICAgfSBlbHNlIGlmICgoc3RhdHVzLmFkdWx0ID09PSBmYWxzZSB8fCBzdGF0dXMuYWR1bHQgPT0gImZhbHNlIikgJiYgaXNBZHVsdCkgewogICAgICAgICAgICBhamF4UXVlcnkoc2NyaXB0UGF0aCArICIvdHJhY2sucGhwP2RvbWFpbj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvbWFpbikgKyAiJmNhZj0xJnRvZ2dsZT1ub25hZHVsdCZ1aWQ9IiArIGVuY29kZVVSSUNvbXBvbmVudCh1bmlxdWVUcmFja2luZ0lEKSk7CiAgICAgICAgfQoKICAgICAgICAvLyAtLSBnb29nbGUgcGFya2luZwogICAgICAgIGlmIChyZXF1ZXN0QWNjZXB0ZWQpIHsKICAgICAgICAgICAgaWYgKHN0YXR1cy5mZWVkKSB7CiAgICAgICAgICAgICAgICBhamF4UXVlcnkoc2NyaXB0UGF0aCArICIvdHJhY2sucGhwP2RvbWFpbj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvbWFpbikgKyAiJmNhZj0xJnRvZ2dsZT1mZWVkJmZlZWQ9IiArIGVuY29kZVVSSUNvbXBvbmVudChzdGF0dXMuZmVlZCkgKyAiJnVpZD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KHVuaXF1ZVRyYWNraW5nSUQpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc3RhdHVzLmVycm9yX2NvZGUpIHsKICAgICAgICAgICAgICAgIGFqYXhRdWVyeShzY3JpcHRQYXRoICsgIi90cmFjay5waHA/ZG9tYWluPSIgKyBlbmNvZGVVUklDb21wb25lbnQoZG9tYWluKSArICImY2FmPTEmdG9nZ2xlPWFuc3dlcmNoZWNrJmFuc3dlcj1lcnJvcl8iICsgZW5jb2RlVVJJQ29tcG9uZW50KHN0YXR1cy5lcnJvcl9jb2RlKSArICImdWlkPSIgKyBlbmNvZGVVUklDb21wb25lbnQodW5pcXVlVHJhY2tpbmdJRCkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgYWpheFF1ZXJ5KHNjcmlwdFBhdGggKyAiL3RyYWNrLnBocD9kb21haW49IiArIGVuY29kZVVSSUNvbXBvbmVudChkb21haW4pICsgIiZjYWY9MSZ0b2dnbGU9YW5zd2VyY2hlY2smYW5zd2VyPXllcyZ1aWQ9IiArIGVuY29kZVVSSUNvbXBvbmVudCh1bmlxdWVUcmFja2luZ0lEKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBhamF4UXVlcnkoc2NyaXB0UGF0aCArICIvdHJhY2sucGhwP2RvbWFpbj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvbWFpbikgKyAiJmNhZj0xJnRvZ2dsZT1hbnN3ZXJjaGVjayZhbnN3ZXI9cmVqZWN0ZWQmdWlkPSIgKyBlbmNvZGVVUklDb21wb25lbnQodW5pcXVlVHJhY2tpbmdJRCkpOwogICAgICAgIH0KICAgIH0KfQoKdmFyIHggPSBmdW5jdGlvbiAob2JqMSwgb2JqMikgewogICAgaWYgKHR5cGVvZiBvYmoxICE9ICJvYmplY3QiKQogICAgICAgIG9iajEgPSB7fTsKCiAgICBmb3IgKHZhciBrZXkgaW4gb2JqMikKICAgICAgICBvYmoxW2tleV0gPSBvYmoyW2tleV07CgogICAgcmV0dXJuIG9iajE7Cn07CgpmdW5jdGlvbiBnZXRYTUxodHRwKCkgewogICAgdmFyIHhtbEh0dHAgPSBudWxsOwogICAgdHJ5IHsKICAgICAgICB4bWxIdHRwID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CiAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgeG1sSHR0cCA9IG5ldyBBY3RpdmVYT2JqZWN0KCJNc3htbDIuWE1MSFRUUCIpOwogICAgICAgIH0gY2F0Y2ggKGV4KSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICB4bWxIdHRwID0gbmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIik7CiAgICAgICAgICAgIH0gY2F0Y2ggKGV4YykgewogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHhtbEh0dHA7Cn0KCmZ1bmN0aW9uIGFqYXhRdWVyeSh1cmwpIHsKICAgIGlmIChhZHRlc3QgPT0gJ29uJykgcmV0dXJuIGZhbHNlOwogICAgeG1sSHR0cCA9IGdldFhNTGh0dHAoKTsKICAgIGlmICgheG1sSHR0cCkgcmV0dXJuIGFqYXhCYWNrZmlsbCh1cmwpOwogICAgeG1sSHR0cC5vcGVuKCJHRVQiLCB1cmwsIGZhbHNlKTsKICAgIHJldHVybiB4bWxIdHRwLnNlbmQobnVsbCk7Cn0KCmZ1bmN0aW9uIGFqYXhCYWNrZmlsbCh1cmwpIHsKICAgIGlmIChhZHRlc3QgPT0gJ29uJykgcmV0dXJuIGZhbHNlOwogICAgaWYgKHVybC5pbmRleE9mKCImdG9nZ2xlPWJyb3dzZXJqcyIpID4gLTEpIHJldHVybiBmYWxzZTsKICAgIHRyeSB7CiAgICAgICAgdmFyIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwogICAgICAgIGltZy5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7CiAgICAgICAgaW1nLnN0eWxlLndpZHRoID0gJzFweCc7CiAgICAgICAgaW1nLnN0eWxlLmhlaWdodCA9ICcxcHgnOwogICAgICAgIGltZy5zcmMgPSB1cmwgKyAiJl90PSIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZyk7CiAgICB9IGNhdGNoIChlKSB7CiAgICB9Cn0KCnZhciB3YWl0VGltZSA9IDA7CnZhciB0aW1lb3V0ID0gMjAwMDsKdmFyIHdhaXRTdGVwID0gMTAwMDsKZnVuY3Rpb24gbGlzdGVuRm9yMVRpZXJSZXNwb25zZSgpIHsKCiAgICBpZiAodHlwZW9mIHBhZ2VMb2FkZWRDYWxsYmFja1RyaWdnZXJlZCA9PSAndW5kZWZpbmVkJykgewogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAod2FpdFRpbWUgPCB0aW1lb3V0ICYmIHBhZ2VMb2FkZWRDYWxsYmFja1RyaWdnZXJlZCA9PSBmYWxzZSkgewogICAgICAgIHdhaXRUaW1lID0gd2FpdFRpbWUgKyB3YWl0U3RlcDsKICAgICAgICBzZXRUaW1lb3V0KGxpc3RlbkZvcjFUaWVyUmVzcG9uc2UsIHdhaXRTdGVwKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKHBhZ2VMb2FkZWRDYWxsYmFja1RyaWdnZXJlZCA9PSBmYWxzZSkgewogICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJzsKICAgIH0KfQpsaXN0ZW5Gb3IxVGllclJlc3BvbnNlKCk7CgoKYWpheFF1ZXJ5KHNjcmlwdFBhdGggKyAiL3RyYWNrLnBocD9kb21haW49IiArIGVuY29kZVVSSUNvbXBvbmVudChkb21haW4pICsgIiZ0b2dnbGU9YnJvd3NlcmpzJnVpZD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KHVuaXF1ZVRyYWNraW5nSUQpKTsKPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPngocGFnZU9wdGlvbnMsIHtyZXN1bHRzUGFnZUJhc2VVcmw6ICcvL2N1cnNlZC1rbmlnaHQuZnIvP3RzPWZFTnNaV0Z1VUdWd2NHVnliV2x1ZEVKc1lXTnJmSHcxWTJVNE5IeGlkV05yWlhRd01URXNZblZqYTJWME1EYzNmSHg4Zkh4OE5qVTFZV00yWTJNNVl6Tmxabng4ZkRFM01EQTBORGM1TkRndU5qUTRPSHd3TXpFM1lqZGhPR0l3WWpobU56UTFZek0zTkRNNFpUUm1ZVEZsWkdFeE5UYzVPV0ZpT0dRMWZIeDhmSHd4Zkh3d2ZEQjhmSHg4TVh4OGZIeDhNSHd3Zkh4OGZIeDhmSHg4ZkRCOE1IeDhNSHg4ZkRCOE1IeFhNVEE5Zkh3eGZGY3hNRDE4WXpZMFpqTTVOV0poTVRGaU1UWTJaVEJrTVdOaE1UbGtORE01WkRrM04yUTBZVGN5WW1WbE0zd3dmR1J3TFhSbFlXMXBiblJsY201bGREQTVYek53YUh3d2ZEQjgnLGhsOiAnZGUnLGt3OiAnJyx0ZXJtczogJycsdWlPcHRpbWl6ZTogdHJ1ZSwgY2hhbm5lbDogJzAwMDAwMSxidWNrZXQwMTEsYnVja2V0MDc3JywgcHViSWQ6ICdkcC10ZWFtaW50ZXJuZXQwOV8zcGgnLGFkdGVzdDogJ29mZicscGVyc29uYWxpemVkQWRzOiBmYWxzZSxjbGlja3RyYWNrVXJsOiAnaHR0cHM6Ly90cmtwYy5uZXQvdHJhY2suJyArICdwaHA/Y2xpY2s9Y2FmJyArICcmZG9tYWluPWN1cnNlZC1rbmlnaHQuZnImdWlkPU1UY3dNRFEwTnprME9DNDJORG8wTm1FeVlXTXhNRE5tTTJWbFl6UXpOVGhtWTJFNU5qYzRaV1V4WVRZNU9EZGlaRFJsTURsaE1XTTVOamt5WmpSbVl6Qm1aV1k0TTJKbU56YzNNekZtT2pZMU5XRmpObU5qT1dNME1XRSUzRCZ0cz1mRU5zWldGdVVHVndjR1Z5YldsdWRFSnNZV05yZkh3MVkyVTROSHhpZFdOclpYUXdNVEVzWW5WamEyVjBNRGMzZkh4OGZIeDhOalUxWVdNMlkyTTVZek5sWm54OGZERTNNREEwTkRjNU5EZ3VOalE0TjN3ek1qbGhNV1E0WVRKa05Ea3hZVFZoTXpRMU9UY3laVGswTldVNFptWmpZemhqWVdVMlpXUTNmSHg4Zkh3eGZId3dmREI4Zkh4OE1YeDhmSHg4TUh3d2ZIeDhmSHg4Zkh4OGZEQjhNSHg4TUh4OGZEQjhNSHhYTVRBOWZId3hmRmN4TUQxOFl6WTBaak01TldKaE1URmlNVFkyWlRCa01XTmhNVGxrTkRNNVpEazNOMlEwWVRjeVltVmxNM3d3ZkdSd0xYUmxZVzFwYm5SbGNtNWxkREE1WHpOd2FId3dmREI4JmFkdGVzdD1vZmYnIH0pOzwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij54KHBhZ2VPcHRpb25zLCBbXSApOzwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij54KHBhZ2VPcHRpb25zLCB7IGRvbWFpblJlZ2lzdHJhbnQ6J2FzLWRyaWQtMjU1ODMzNDU0MDczMDc2OCcgfSApOzwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGxvYWRGZWVkKCkgeyB2YXIgYyA9IGdvb2dsZS5hZHMuZG9tYWlucy5DYWY7dmFyIGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtzd2l0Y2goYS5sZW5ndGgpIHsgY2FzZSAxOnJldHVybiBuZXcgYyhhWzBdKTtjYXNlIDI6cmV0dXJuIG5ldyBjKGFbMF0sYVsxXSk7Y2FzZSAzOnJldHVybiBuZXcgYyhhWzBdLGFbMV0sYVsyXSk7Y2FzZSA0OnJldHVybiBuZXcgYyhhWzBdLGFbMV0sYVsyXSxhWzNdKTtjYXNlIDU6cmV0dXJuIG5ldyBjKGFbMF0sYVsxXSxhWzJdLGFbM10sYVs0XSk7IH0gcmV0dXJuIGMuYXBwbHkobnVsbCxhKTsgfQogICAgICAgICAgICAgICAgZnVuY3Rpb24gcmVsYXRlZENhbGxiYWNrKG9wdGlvbnMpIHsgcmV0dXJuIGZhbHNlOyB9IGZ1bmN0aW9uIHJlbGF0ZWRGYWxsYmFjayhjYWxsYmFjaykgeyByZXR1cm4gY2FsbGJhY2soKTsgfQogICAgPC9zY3JpcHQ+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIGxzID0gZnVuY3Rpb24oeGhyLCBwYXRoLCB0b2tlbikgewogICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAoeGhyLnJlYWR5U3RhdGUgPT09IFhNTEh0dHBSZXF1ZXN0LkRPTkUpIHsKICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPD0gNDAwKSB7CiAgICAgICAgICAgICAgICBpZiAoeGhyLnJlc3BvbnNlVGV4dC50cmltKCkgPT09ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnBhcnNlKHhoci5yZXNwb25zZVRleHQpKQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1RoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCB0aGUgcmVxdWVzdC4nKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIAogICAgeGhyLm9wZW4oJ0dFVCcsIHBhdGggKyAnL2xzLnAnICsgJ2hwP3Q9NjU1YWM2Y2MmdG9rZW49JyArIGVuY29kZVVSSSh0b2tlbiksIHRydWUpOwogICAgeGhyLnNlbmQoKTsKfTsKbHMobmV3IFhNTEh0dHBSZXF1ZXN0KCksIHNjcmlwdFBhdGgsICdjNjRmMzk1YmExMWIxNjZlMGQxY2ExOWQ0MzlkOTc3ZDRhNzJiZWUzJyk7PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iSmF2YVNjcmlwdCI+eChwYWdlT3B0aW9ucywgeyAic3R5bGVJZCI6MTE2NzI2ODExMn0pOzwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiPngocGFnZU9wdGlvbnMpOwogICAgbmV3IGxvYWRGZWVkKHBhZ2VPcHRpb25zLCB0Y2Jsb2NrLCBzZWFyY2hib3hCbG9jayk7PC9zY3JpcHQ+CgoKPC9ib2R5PjwvaHRtbD4=","disable_correlation":true,"to_ids":false,"type":"attachment","uuid":"abfb501c-5fa4-4a7f-9cfd-9ce5391f13fd","value":"rendered_page.html"},{"category":"Network activity","comment":"The address in the browser address bar at the end of the capture.","disable_correlation":false,"to_ids":true,"type":"url","uuid":"166f548d-203c-4319-aa3d-927401221df3","value":"https://cursed-knight.fr/"}],"Object":[{"Attribute":[{"category":"Network activity","disable_correlation":false,"object_relation":"url","to_ids":true,"type":"url","uuid":"8133a2d3-011a-432e-8202-e23b61a270f2","value":"https://cursed-knight.fr"},{"category":"Network activity","disable_correlation":false,"object_relation":"host","to_ids":true,"type":"hostname","uuid":"57f54101-25b9-45ea-8fc0-109cefbcfe3a","value":"cursed-knight.fr"},{"category":"Network activity","disable_correlation":false,"object_relation":"domain","to_ids":true,"type":"domain","uuid":"4c51f13b-f351-4d3d-8e55-b7a4b55d169a","value":"cursed-knight.fr"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"43c80741-60b9-4115-a359-18bc948d1590","value":"188.114.96.3"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"61187945-b0c8-4e40-b012-1871ebed75cc","value":"188.114.97.3"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"e2282590-9305-4b49-a61b-85364afdbc3d","value":"185.53.178.52"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"894e7cb0-0c5e-47ab-af67-cb4cfbf43ab7","value":"2a06:98c1:3120::3"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"110af94c-b2fb-415d-a704-2a246ff60fee","value":"2a06:98c1:3121::3"}],"ObjectReference":[{"comment":"Capture on lookyloo","object_uuid":"3a96db49-b115-46af-8522-eaa96260928b","referenced_uuid":"ec397860-4375-4d71-b8c9-f92007668a39","relationship_type":"captured-by","uuid":"7ca15743-b9be-4cb1-aa35-732e596c10a1"},{"object_uuid":"3a96db49-b115-46af-8522-eaa96260928b","referenced_uuid":"aa95ef92-c190-417f-ac71-54270e872a1a","relationship_type":"redirects-to","uuid":"c466607f-81ea-43c1-a3b6-51988e065c18"}],"comment":"Submitted URL","description":"url object describes an url along with its normalized field (like extracted using faup parsing library) and its metadata.","distribution":"5","first_seen":"2023-11-20T02:39:08.437000+00:00","meta-category":"network","name":"url","parsed_url":null,"sharing_group_id":"0","template_uuid":"60efb77b-40b5-4c46-871b-ed1ed999fce5","template_version":"10","uuid":"3a96db49-b115-46af-8522-eaa96260928b"},{"Attribute":[{"category":"Network activity","disable_correlation":false,"object_relation":"url","to_ids":true,"type":"url","uuid":"a6be46ca-3d54-4174-9213-d261c3bd5794","value":"https://cursed-knight.fr/"},{"category":"Network activity","disable_correlation":false,"object_relation":"host","to_ids":true,"type":"hostname","uuid":"dcb3ca97-12e9-4aa7-9f85-fe84040daaba","value":"cursed-knight.fr"},{"category":"Network activity","disable_correlation":false,"object_relation":"domain","to_ids":true,"type":"domain","uuid":"806c6377-7168-4e81-91d6-3cb43dfe35ca","value":"cursed-knight.fr"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"0d43bf1f-1654-4599-9565-9a2868904e3f","value":"188.114.96.3"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"efdc577a-7969-466a-a24e-06ec0c033246","value":"188.114.97.3"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"29937efc-28ac-4df6-9a4b-1c4364582bc1","value":"185.53.178.52"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"e76a6d32-87d6-406b-9462-266b84656864","value":"2a06:98c1:3120::3"},{"category":"Network activity","disable_correlation":false,"object_relation":"ip","to_ids":true,"type":"ip-dst","uuid":"f51b1310-cbdf-4f45-946c-62849e632210","value":"2a06:98c1:3121::3"},{"category":"Network activity","disable_correlation":false,"object_relation":"dom-hash","to_ids":true,"type":"dom-hash","uuid":"fd8d03ac-1bb0-433f-a284-94a649697741","value":"d52d9e89a0904e2405460ba2e2c06260"}],"comment":"Last redirect (0)","description":"url object describes an url along with its normalized field (like extracted using faup parsing library) and its metadata.","distribution":"5","first_seen":"2023-11-20T02:39:08.437000+00:00","meta-category":"network","name":"url","parsed_url":null,"sharing_group_id":"0","template_uuid":"60efb77b-40b5-4c46-871b-ed1ed999fce5","template_version":"10","uuid":"aa95ef92-c190-417f-ac71-54270e872a1a"},{"Attribute":[{"category":"Payload delivery","disable_correlation":true,"object_relation":"filename","to_ids":true,"type":"filename","uuid":"1b8194fe-b1f3-4f4c-a85e-d461996174aa","value":"file.bin"},{"category":"Other","disable_correlation":true,"object_relation":"size-in-bytes","to_ids":false,"type":"size-in-bytes","uuid":"442c600d-426c-4617-9485-46dffdf2f8e2","value":"16968"},{"category":"Other","disable_correlation":true,"object_relation":"entropy","to_ids":false,"type":"float","uuid":"76181067-74d2-4236-a860-d66ab0180aae","value":5.358483394038204},{"category":"Payload delivery","disable_correlation":false,"object_relation":"md5","to_ids":true,"type":"md5","uuid":"80a7315b-4aa6-4423-80a0-50890bca9a98","value":"b7540535709507d51db7af2d2f1e0cdb"},{"category":"Payload delivery","disable_correlation":false,"object_relation":"sha1","to_ids":true,"type":"sha1","uuid":"8d2b6057-a03d-452a-8395-124a69e452a4","value":"4b7cf3b47339b20c1c743d8b0a5b7e173cabd9b8"},{"category":"Payload delivery","disable_correlation":false,"object_relation":"sha256","to_ids":true,"type":"sha256","uuid":"68ad68a8-5977-4704-902f-6a86304421b8","value":"7fb247268102feb589eeb33f491f7f094c1df22f95955046e7975eac5cac1741"},{"category":"Payload delivery","disable_correlation":false,"object_relation":"sha512","to_ids":true,"type":"sha512","uuid":"d0d84ae7-c172-4bae-8b84-55cdc7a2b656","value":"cc40b96a970d00f4910f4b2ed88b5dbab26a477a912c9d6941355800a9f08b82ae18097e9ad41b9ccbb5c6f26498566b11b6aa9f4e1fac29904d9fd11141d703"},{"category":"Payload delivery","data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGRhdGEtYWRibG9ja2tleT0iTUZ3d0RRWUpLb1pJaHZjTkFRRUJCUUFEU3dBd1NBSkJBTHF1REZFVFhSbjBIcjA1ZlVQN0VKVDc3eFluUG1SYnBNeTR2azhLWWlIbmtOcGVkbmpPQU5KY2FYRFhjS1FKTjBuWEtaSkw3VGNpSkQ4QW9IWEsxNThDQXdFQUFRPT1fTm1SQ2k5SnYxQ2dRTWtoc3ZVN1VxcTlNb2ViZmxjaDNISSt1MFFGRUJQYm1jY3MvREdzbld2VEp0UmQ5eGlEdlBKRVpIRjlkTldtaEVESndZOU9wTXc9PSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgo8aGVhZD4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iLz4KICAgIDx0aXRsZT5jdXJzZWQta25pZ2h0LmZyPC90aXRsZT4KICAgIDxzY3JpcHQgc3JjPSIvL3d3dy5nb29nbGUuY29tL2Fkc2Vuc2UvZG9tYWlucy9jYWYuanM/YWJwPTEiPjwvc2NyaXB0PiAgICA8c3R5bGUgbWVkaWE9InNjcmVlbiI+Ci5hc3NldF9zdGFyMCB7CgliYWNrZ3JvdW5kOiB1cmwoJy8vZDM4cHNybmkxN2J2eHUuY2xvdWRmcm9udC5uZXQvdGhlbWVzL2Fzc2V0cy9zdGFyMC5naWYnKSBuby1yZXBlYXQgY2VudGVyOwoJd2lkdGg6IDEzcHg7CgloZWlnaHQ6IDEycHg7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cn0KCi5hc3NldF9zdGFyMSB7CgliYWNrZ3JvdW5kOiB1cmwoJy8vZDM4cHNybmkxN2J2eHUuY2xvdWRmcm9udC5uZXQvdGhlbWVzL2Fzc2V0cy9zdGFyMS5naWYnKSBuby1yZXBlYXQgY2VudGVyOwoJd2lkdGg6IDEzcHg7CgloZWlnaHQ6IDEycHg7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cn0KCi5hc3NldF9zdGFySCB7CgliYWNrZ3JvdW5kOiB1cmwoJy8vZDM4cHNybmkxN2J2eHUuY2xvdWRmcm9udC5uZXQvdGhlbWVzL2Fzc2V0cy9zdGFySC5naWYnKSBuby1yZXBlYXQgY2VudGVyOwoJd2lkdGg6IDEzcHg7CgloZWlnaHQ6IDEycHg7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cn0KCi5zaXRlbGluayB7CglwYWRkaW5nLXJpZ2h0OiAxNnB4Owp9Cgouc2VsbGVyUmF0aW5ncyBhOmxpbmssCi5zZWxsZXJSYXRpbmdzIGE6dmlzaXRlZCwKLnNlbGxlclJhdGluZ3MgYTpob3ZlciwKLnNlbGxlclJhdGluZ3MgYTphY3RpdmUgewoJdGV4dC1kZWNvcmF0aW9uOiBub25lOwoJY3Vyc29yOiB0ZXh0Owp9Cgouc2VsbGVyUmF0aW5ncyB7CgltYXJnaW46MCAwIDNweCAyMHB4Owp9Cgouc2l0ZWxpbmtIb2xkZXIgewoJbWFyZ2luOi0xNXB4IDAgMTVweCAzNXB4Owp9CgojYWpheGxvYWRlckhvbGRlciB7CglkaXNwbGF5OiBibG9jazsKCXdpZHRoOiAyNHB4OwoJaGVpZ2h0OiAyNHB4OwoJYmFja2dyb3VuZDogI2ZmZjsKCXBhZGRpbmc6IDhweCAwIDAgOHB4OwoJbWFyZ2luOjEwcHggYXV0bzsKCS13ZWJraXQtYm9yZGVyLXJhZGl1czogNHB4OwoJLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7Cglib3JkZXItcmFkaXVzOiA0cHg7Cn08L3N0eWxlPiAgICA8c3R5bGUgbWVkaWE9InNjcmVlbiI+CiogewogICAgbWFyZ2luOjA7cGFkZGluZzowCn0KCmJvZHkgewogICAgYmFja2dyb3VuZDojMTAxYzM2OwogICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBmb250LXNpemU6MXJlbTsKfQoKLmhlYWRlciB7CiAgICBwYWRkaW5nOjFyZW0gMXJlbSAwOwogICAgb3ZlcmZsb3c6aGlkZGVuOwp9CgpoMSB7CiAgICBjb2xvcjojODQ4NDg0OwogICAgZm9udC1zaXplOjEuNXJlbTsKfQoKLmhlYWRlci10ZXh0LWNvbG9yOnZpc2l0ZWQsCi5oZWFkZXItdGV4dC1jb2xvcjpsaW5rLAouaGVhZGVyLXRleHQtY29sb3IgewogICAgY29sb3I6Izg0ODQ4NDsKfQoKLmNvbXAtaXMtcGFya2VkIHsKICBtYXJnaW46IDRweCAwIDJweDsKfQoKLmNvbXAtc3BvbnNvcmVkIHsKICB0ZXh0LWFsaWduOiBsZWZ0OwogIG1hcmdpbjogMCAwIC0xLjhyZW0gNHB4Owp9Cgoud3JhcHBlcjEgewogICAgbWFyZ2luOjFyZW07Cn0KCi53cmFwcGVyMiB7CiAgICBiYWNrZ3JvdW5kOnVybCgnLy9kMzhwc3JuaTE3YnZ4dS5jbG91ZGZyb250Lm5ldC90aGVtZXMvY2xlYW5QZXBwZXJtaW50QmxhY2tfNjU3ZDkwMTMvaW1nL2JvdHRvbS5wbmcnKSBuby1yZXBlYXQgY2VudGVyIGJvdHRvbTsKICAgIHBhZGRpbmctYm90dG9tOjE0MHB4Owp9Cgoud3JhcHBlcjMgewogICAgYmFja2dyb3VuZDojZmZmOwogICAgbWF4LXdpZHRoOjMwMHB4OwogICAgbWFyZ2luOjAgYXV0byAxcmVtOwogICAgcGFkZGluZy10b3A6MXB4OwogICAgcGFkZGluZy1ib3R0b206MXB4Owp9Cgoub25EZXNrdG9wIHsKICAgIGRpc3BsYXk6bm9uZTsKfQoKLnRjSG9sZGVyIHsKICAgIHBhZGRpbmctdG9wOiAycmVtOwp9CgouYWRzSG9sZGVyIHsKICAgIG1hcmdpbjogMXJlbSAwOwogICAgcGFkZGluZy10b3A6IDJyZW07CiAgICBvdmVyZmxvdzpoaWRkZW47Cn0KCi5mb290ZXIgewogICAgY29sb3I6IzYyNjU3NDsKICAgIHBhZGRpbmc6MnJlbSAxcmVtOwogICAgZm9udC1zaXplOi44cmVtOwogICAgbWFyZ2luOjAgYXV0bzsKICAgIG1heC13aWR0aDo0NDBweDsKfQoKLmZvb3RlciBhOmxpbmssCi5mb290ZXIgYTp2aXNpdGVkIHsKICAgIGNvbG9yOiM2MjY1NzQ7Cn0KCi5zYWxlX2xpbmtfYm9sZCBhLAouc2FsZV9saW5rLAouc2FsZV9saW5rIGEgewogICAgY29sb3I6IzYyNjU3NCAhaW1wb3J0YW50Owp9Cgouc2VhcmNoSG9sZGVyIHsKICAgIHBhZGRpbmc6MXB4IDAgMXB4IDFweDsKICAgIG1hcmdpbjoxcmVtIGF1dG87CiAgICB3aWR0aDogOTUlOwogICAgbWF4LXdpZHRoOiA1MDBweDsKfQoKQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2MDBweCkgewoKICAgIC5jb21wLWlzLXBhcmtlZCwKICAgIC5jb21wLXNwb25zb3JlZCB7CiAgICAgIGNvbG9yOiAjODQ4NDg0OwogICAgfQoKICAgIC5jb21wLXNwb25zb3JlZCB7CiAgICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgfQoKICAgIC53cmFwcGVyMSB7CiAgICAgICAgbWF4LXdpZHRoOjE1MDBweDsKICAgICAgICBtYXJnaW4tbGVmdDphdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDphdXRvOwogICAgfQoKICAgIC53cmFwcGVyMiB7CiAgICAgICAgYmFja2dyb3VuZDp1cmwoJy8vZDM4cHNybmkxN2J2eHUuY2xvdWRmcm9udC5uZXQvdGhlbWVzL2NsZWFuUGVwcGVybWludEJsYWNrXzY1N2Q5MDEzL2ltZy9hcnJvd3MucG5nJykgbm8tcmVwZWF0IGNlbnRlciB0b3A7CiAgICAgICAgcGFkZGluZy1ib3R0b206MDsKICAgICAgICBtaW4taGVpZ2h0OjYwMHB4OwogICAgfQoKICAgIC53cmFwcGVyMyB7CiAgICAgICAgbWF4LXdpZHRoOjUzMHB4OwogICAgICAgIGJhY2tncm91bmQ6bm9uZTsKICAgIH0KfQo8L3N0eWxlPiAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iRGllc2UgRG9tYWluIHN0ZWh0IHp1bSBWZXJrYXVmISIgLz4KICAgIDwvaGVhZD4KCjxib2R5IGlkPSJhZmQiIHN0eWxlPSJ2aXNpYmlsaXR5OmhpZGRlbiI+Cgo8ZGl2IGNsYXNzPSJ3cmFwcGVyMSI+CiAgICAKPHN0eWxlPgoJLnNhbGVfYmFubmVyX29yYW5nZSB7CgkJYmFja2dyb3VuZDojZjI1YjAwOwoJCWJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2Y0OTMwMCAwJSwgI2YyNWIwMCAxMDAlKTsKCQliYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmNDkzMDAgMCUsI2YyNWIwMCAxMDAlKTsKCQliYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZjQ5MzAwIDAlLCNmMjViMDAgMTAwJSk7CgkJZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNmNDkzMDAnLCBlbmRDb2xvcnN0cj0nI2YyNWIwMCcsR3JhZGllbnRUeXBlPTAgKTsKCQlib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTsKCQlib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTsKCQljb2xvcjogI2M4YzhjODsKCQl0ZXh0LWFsaWduOiBjZW50ZXI7CgkJZm9udDogYm9sZCAxNnB4LzM2cHggc2Fucy1zZXJpZjsKCQloZWlnaHQ6IDM2cHg7Cgl9CgoJLnNhbGVfYmFubmVyX29yYW5nZSBhIHsKCQlkaXNwbGF5OiBibG9jazsKCQljb2xvcjojZmZmOwoJCXRleHQtZGVjb3JhdGlvbjogbm9uZTsKCX0KPC9zdHlsZT4KCgoKPGRpdiBjbGFzcz0ic2FsZV9iYW5uZXJfb3JhbmdlIiBzdHlsZT0iYm9yZGVyLXRvcDpub25lIj4KCQkJPGEgaHJlZj0iaHR0cHM6Ly93d3cubXlkb21haW5jb250YWN0LmNvbS9pbmRleC5waHA/ZG9tYWluX25hbWU9Y3Vyc2VkLWtuaWdodC5mciIgdGFyZ2V0PSJfYmxhbmsiPgoJCQlEaWVzZSBEb21haW4ga2F1ZmVuLgoJPC9hPgo8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IndyYXBwZXIyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyMyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciIgaWQ9ImRvbWFpbm5hbWUiPgogICAgICAgIDxoMT5jdXJzZWQta25pZ2h0LmZyPC9oMT4KICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0Y0hvbGRlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJ0YyI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlciI+CiAgICAgICAgICAgIDIwMjMgQ29weXJpZ2h0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KPGJyLz48YnIvPgo8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbkNsaWNrPSJ3aW5kb3cub3BlbignL3ByaXZhY3kuaHRtbCcsICdwcml2YWN5LXBvbGljeScsICd3aWR0aD04OTAsaGVpZ2h0PTMzMCxsZWZ0PTIwMCx0b3A9MjAwLG1lbnViYXI9bm8sc3RhdHVzPXllcyx0b29sYmFyPW5vJykuZm9jdXMoKSIgY2xhc3M9InByaXZhY3ktcG9saWN5Ij4KICAgIFByaXZhY3kgUG9saWN5CjwvYT4KPGJyLz48YnIvPgo8YnIvPjxici8+CiAgICA8L2Rpdj4KPC9kaXY+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiPgogICAgdmFyIHRjYmxvY2sgPSB7CiAgICAgICAgLy8gUmVxdWlyZWQgYW5kIHN0ZWFkeQogICAgICAgICdjb250YWluZXInOiAndGMnLAogICAgICAgICd0eXBlJzogJ3JlbGF0ZWRzZWFyY2gnLAogICAgICAgICdjb2xvckJhY2tncm91bmQnOiAndHJhbnNwYXJlbnQnLAogICAgICAgIAogICAgICAgICdudW1iZXInOiAzLAogICAgICAgIAogICAgICAgIC8vIEZvbnQtU2l6ZXMgYW5kIExpbmUtSGVpZ2h0cwogICAgICAgICdmb250U2l6ZUF0dHJpYnV0aW9uJzogMTQsCiAgICAgICAgJ2ZvbnRTaXplVGl0bGUnOiAyNCwKICAgICAgICAnbGluZUhlaWdodFRpdGxlJzogMzQsCiAgICAgICAgLy8gQ29sb3JzCiAgICAgICAgJ2NvbG9yQXR0cmlidXRpb24nOiAnI2FhYScsCiAgICAgICAgJ2NvbG9yVGl0bGVMaW5rJzogJyMwMjc3YmQnLAogICAgICAgIC8vIEFscGhhYmV0aWNhbGx5CiAgICAgICAgJ2hvcml6b250YWxBbGlnbm1lbnQnOiAnY2VudGVyJywKICAgICAgICAnbm9UaXRsZVVuZGVybGluZSc6IGZhbHNlLAogICAgICAgICdyb2xsb3ZlckxpbmtDb2xvcic6ICcjMDE1NzliJywKICAgICAgICAndmVydGljYWxTcGFjaW5nJzogMTAKICAgIH07CiAgICB2YXIgc2VhcmNoYm94QmxvY2sgPSB7CiAgICAgICAgJ2NvbnRhaW5lcic6ICdzZWFyY2gnLAogICAgICAgICd0eXBlJzogJ3NlYXJjaGJveCcsCiAgICAgICAgJ2ZvbnRTaXplU2VhcmNoSW5wdXQnOiAxMiwKICAgICAgICAnaGlkZVNlYXJjaElucHV0Qm9yZGVyJzogZmFsc2UsCiAgICAgICAgJ2hpZGVTZWFyY2hCdXR0b25Cb3JkZXInOiB0cnVlLAogICAgICAgICdmb250U2l6ZVNlYXJjaEJ1dHRvbic6IDEzLAogICAgICAgICdjb2xvckJhY2tncm91bmQnOiAndHJhbnNwYXJlbnQnLAogICAgICAgICdjb2xvclNlYXJjaEJ1dHRvbic6ICcjMGIzMjc5JywKICAgICAgICAnY29sb3JTZWFyY2hCdXR0b25UZXh0JzogJyNmZmYnCiAgICB9OwogICAgPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij52YXIgaXNBZHVsdD1mYWxzZTsgICAgIHZhciBjb250YWluZXJOYW1lcz1bXTsgICAgIHZhciB1bmlxdWVUcmFja2luZ0lEPSdNVGN3TURRME56azBPQzQyTkRvME5tRXlZV014TURObU0yVmxZelF6TlRobVkyRTVOamM0WldVeFlUWTVPRGRpWkRSbE1EbGhNV001TmpreVpqUm1ZekJtWldZNE0ySm1OemMzTXpGbU9qWTFOV0ZqTm1Oak9XTTBNV0U9JzsgICAgIHZhciBzZWFyY2g9Jyc7ICAgICB2YXIgdGhlbWVkYXRhPSdmRU5zWldGdVVHVndjR1Z5YldsdWRFSnNZV05yZkh3MVkyVTROSHhpZFdOclpYUXdNVEVzWW5WamEyVjBNRGMzZkh4OGZIeDhOalUxWVdNMlkyTTVZek5sWm54OGZERTNNREEwTkRjNU5EZ3VOalE0TjN3ek1qbGhNV1E0WVRKa05Ea3hZVFZoTXpRMU9UY3laVGswTldVNFptWmpZemhqWVdVMlpXUTNmSHg4Zkh3eGZId3dmREI4Zkh4OE1YeDhmSHg4TUh3d2ZIeDhmSHg4Zkh4OGZEQjhNSHg4TUh4OGZEQjhNSHhYTVRBOWZId3hmRmN4TUQxOFl6WTBaak01TldKaE1URmlNVFkyWlRCa01XTmhNVGxrTkRNNVpEazNOMlEwWVRjeVltVmxNM3d3ZkdSd0xYUmxZVzFwYm5SbGNtNWxkREE1WHpOd2FId3dmREI4JzsgICAgIHZhciBkb21haW49J2N1cnNlZC1rbmlnaHQuZnInOyAgICAgdmFyIHNjcmlwdFBhdGg9Jyc7ICAgICB2YXIgYWR0ZXN0PSdvZmYnOyA8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+aWYodG9wLmxvY2F0aW9uIT09bG9jYXRpb24pIHsgdG9wLmxvY2F0aW9uLmhyZWY9bG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgbG9jYXRpb24uaG9zdCArIGxvY2F0aW9uLnBhdGhuYW1lICsgKGxvY2F0aW9uLnNlYXJjaCA/IGxvY2F0aW9uLnNlYXJjaCArICcmJyA6ICc/JykgKyAnX3hhZnZyPU16ZGtNelpsTURneVpqTmtORE5tWlRZMFpUUTVZVFF6WlRnM01tVmlabUkzT1RrMFpqZzNOU3cyTlRWaFl6WmpZemxsTmpCayc7IH0gPC9zY3JpcHQ+PHNjcmlwdD4KdmFyIHBhZ2VMb2FkZWRDYWxsYmFja1RyaWdnZXJlZCA9IGZhbHNlOwp2YXIgZmFsbGJhY2tUcmlnZ2VyZWQgPSBmYWxzZTsKdmFyIGZvcm1lckNhbGxlZEFyZ3VtZW50cyA9IGZhbHNlOwoKdmFyIHBhZ2VPcHRpb25zID0gewogICAgJ3B1YklkJzogJ2RwLXRlYW1pbnRlcm5ldDAxJywKICAgICdyZXN1bHRzUGFnZUJhc2VVcmwnOiAnLy8nICsgbG9jYXRpb24uaG9zdCArICcvP3RzPScsCiAgICAnZm9udEZhbWlseSc6ICdhcmlhbCcsCiAgICAnb3B0aW1pemVUZXJtcyc6IHRydWUsCiAgICAnbWF4VGVybUxlbmd0aCc6IDQwLAogICAgJ2FkdGVzdCc6IHRydWUsCiAgICAnY2xpY2t0cmFja1VybCc6ICcvLycgKyBsb2NhdGlvbi5ob3N0ICsgJy90cmFjay5waHA/JywKICAgICdhdHRyaWJ1dGlvblRleHQnOiAnQWRzJywKICAgICdjb2xvckF0dHJpYnV0aW9uJzogJyNiN2I3YjcnLAogICAgJ2ZvbnRTaXplQXR0cmlidXRpb24nOiAxNiwKICAgICdhdHRyaWJ1dGlvbkJvbGQnOiBmYWxzZSwKICAgICdyb2xsb3ZlckxpbmtCb2xkJzogZmFsc2UsCiAgICAnZm9udEZhbWlseUF0dHJpYnV0aW9uJzogJ2FyaWFsJywKICAgICdhZExvYWRlZENhbGxiYWNrJzogZnVuY3Rpb24oY29udGFpbmVyTmFtZSwgYWRzTG9hZGVkLCBpc0V4cGVyaW1lbnRWYXJpYW50LCBjYWxsYmFja09wdGlvbnMpIHsKICAgICAgICBpZiAoIWFkc0xvYWRlZCkgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgdmFyIGVsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNvbnRhaW5lcikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lmcmFtZScpWzBdOwogICAgICAgICAgICAgICAgdmFyIHZhcnMgPSBKU09OLnBhcnNlKGVsZS5uYW1lLnN1YnN0cihlbGUuaWQubGVuZ3RoICsgMSkpOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YXJzW2VsZS5pZF0udHlwZSA9PSAic3RyaW5nIiAmJiB2YXJzW2VsZS5pZF0udHlwZSA9PSAicmVsYXRlZHNlYXJjaCIpIHsKICAgICAgICAgICAgICAgICAgICByZWxhdGVkRmFsbGJhY2soKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRlZENhbGxiYWNrKHZhcnNbZWxlLmlkXSk7CiAgICAgICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICAgIGlmICghKGVyciBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IGVycjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAoY29udGFpbmVyTmFtZSBpbiBjb250YWluZXJOYW1lcykgewoKICAgICAgICAgICAgdmFyIGRhdGEgPSB7CiAgICAgICAgICAgICAgICBjb250YWluZXJOYW1lOiBjb250YWluZXJOYW1lLAogICAgICAgICAgICAgICAgYWRzTG9hZGVkOiBhZHNMb2FkZWQsCiAgICAgICAgICAgICAgICBpc0V4cGVyaW1lbnRWYXJpYW50OiBpc0V4cGVyaW1lbnRWYXJpYW50LAogICAgICAgICAgICAgICAgY2FsbGJhY2tPcHRpb25zOiBjYWxsYmFja09wdGlvbnMsCiAgICAgICAgICAgICAgICB0ZXJtczogcGFnZU9wdGlvbnMudGVybXMKICAgICAgICAgICAgfQoKICAgICAgICAgICAgYWpheFF1ZXJ5KAogICAgICAgICAgICAgICAgc2NyaXB0UGF0aCArICIvdHJhY2sucGhwIgogICAgICAgICAgICAgICAgKyAiP3RvZ2dsZT1hZGxvYWRlZCIKICAgICAgICAgICAgICAgICsgIiZ1aWQ9IiArIGVuY29kZVVSSUNvbXBvbmVudCh1bmlxdWVUcmFja2luZ0lEKQogICAgICAgICAgICAgICAgKyAiJmRvbWFpbj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvbWFpbikKICAgICAgICAgICAgICAgICsgIiZkYXRhPSIgKyBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfSwKICAgICdwYWdlTG9hZGVkQ2FsbGJhY2snOiBmdW5jdGlvbiAocmVxdWVzdEFjY2VwdGVkLCBzdGF0dXMpIHsKCiAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnOwogICAgICAgIHBhZ2VMb2FkZWRDYWxsYmFja1RyaWdnZXJlZCA9IHRydWU7CgogICAgICAgIGlmICgoc3RhdHVzLmZhaWxsaXN0ZWQgPT09IHRydWUgfHwgc3RhdHVzLmZhaWxsaXN0ZWQgPT0gInRydWUiIHx8IHN0YXR1cy5ibG9ja2VkID09PSB0cnVlIHx8IHN0YXR1cy5ibG9ja2VkID09ICJ0cnVlIiApICYmIHN0YXR1cy5lcnJvcl9jb2RlICE9IDI1KSB7CiAgICAgICAgICAgIGFqYXhRdWVyeShzY3JpcHRQYXRoICsgIi90cmFjay5waHA/ZG9tYWluPSIgKyBlbmNvZGVVUklDb21wb25lbnQoZG9tYWluKSArICImY2FmPTEmdG9nZ2xlPWJsb2NrJnJlYXNvbj1vdGhlciZ1aWQ9IiArIGVuY29kZVVSSUNvbXBvbmVudCh1bmlxdWVUcmFja2luZ0lEKSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoc3RhdHVzLmVycm9yY29kZSAmJiAhc3RhdHVzLmVycm9yX2NvZGUpIHsKICAgICAgICAgICAgc3RhdHVzLmVycm9yX2NvZGUgPSBzdGF0dXMuZXJyb3Jjb2RlOwogICAgICAgIH0KCiAgICAgICAgaWYgKHN0YXR1cy5lcnJvcl9jb2RlKSB7CiAgICAgICAgICAgIGFqYXhRdWVyeShzY3JpcHRQYXRoICsgIi90cmFjay5waHA/ZG9tYWluPSIgKyBlbmNvZGVVUklDb21wb25lbnQoZG9tYWluKSArICImY2FmPTEmdG9nZ2xlPWVycm9yY29kZSZjb2RlPSIgKyBlbmNvZGVVUklDb21wb25lbnQoc3RhdHVzLmVycm9yX2NvZGUpICsgIiZ1aWQ9IiArIGVuY29kZVVSSUNvbXBvbmVudCh1bmlxdWVUcmFja2luZ0lEKSk7CgogICAgICAgICAgICBpZiAoWzE4LCAxOV0uaW5kZXhPZihwYXJzZUludChzdGF0dXMuZXJyb3JfY29kZSkpICE9IC0xICYmIGZhbGxiYWNrVHJpZ2dlcmVkID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICBmYWxsYmFja1RyaWdnZXJlZCA9IHRydWU7CiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGxvYWRGZWVkID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnLy8nICsgbG9jYXRpb24uaG9zdDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHN0YXR1cy5lcnJvcl9jb2RlID09IDIwKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZSgiLy9kcC5nLmRvdWJsZWNsaWNrLm5ldC9hcHBzL2RvbWFpbnBhcmsvZG9tYWlucGFyay5jZ2k/Y2xpZW50PSIgKyBlbmNvZGVVUklDb21wb25lbnQoKHBhZ2VPcHRpb25zLnB1YmlkLm1hdGNoKC9eY2EtL2kpID8gIiIgOiAiY2EtIikgKyBwYWdlT3B0aW9ucy5wdWJpZCkgKyAiJmRvbWFpbl9uYW1lPSIgKyBlbmNvZGVVUklDb21wb25lbnQoZG9tYWluKSArICImb3V0cHV0PWh0bWwmZHJpZD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KHBhZ2VPcHRpb25zLmRvbWFpblJlZ2lzdHJhbnQpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKHN0YXR1cy5uZWVkc3JldmlldyA9PT0gdHJ1ZSB8fCBzdGF0dXMubmVlZHNyZXZpZXcgPT0gInRydWUiKSB7CiAgICAgICAgICAgIGFqYXhRdWVyeShzY3JpcHRQYXRoICsgIi90cmFjay5waHA/ZG9tYWluPSIgKyBlbmNvZGVVUklDb21wb25lbnQoZG9tYWluKSArICImY2FmPTEmdG9nZ2xlPW5lZWRzcmV2aWV3JnVpZD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KHVuaXF1ZVRyYWNraW5nSUQpKTsKICAgICAgICB9CgogICAgICAgIGlmICgoc3RhdHVzLmFkdWx0ID09PSB0cnVlIHx8IHN0YXR1cy5hZHVsdCA9PSAidHJ1ZSIpICYmICFpc0FkdWx0KSB7CiAgICAgICAgICAgIGFqYXhRdWVyeShzY3JpcHRQYXRoICsgIi90cmFjay5waHA/ZG9tYWluPSIgKyBlbmNvZGVVUklDb21wb25lbnQoZG9tYWluKSArICImY2FmPTEmdG9nZ2xlPWFkdWx0JnVpZD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KHVuaXF1ZVRyYWNraW5nSUQpKTsKICAgICAgICB9IGVsc2UgaWYgKChzdGF0dXMuYWR1bHQgPT09IGZhbHNlIHx8IHN0YXR1cy5hZHVsdCA9PSAiZmFsc2UiKSAmJiBpc0FkdWx0KSB7CiAgICAgICAgICAgIGFqYXhRdWVyeShzY3JpcHRQYXRoICsgIi90cmFjay5waHA/ZG9tYWluPSIgKyBlbmNvZGVVUklDb21wb25lbnQoZG9tYWluKSArICImY2FmPTEmdG9nZ2xlPW5vbmFkdWx0JnVpZD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KHVuaXF1ZVRyYWNraW5nSUQpKTsKICAgICAgICB9CgogICAgICAgIC8vIC0tIGdvb2dsZSBwYXJraW5nCiAgICAgICAgaWYgKHJlcXVlc3RBY2NlcHRlZCkgewogICAgICAgICAgICBpZiAoc3RhdHVzLmZlZWQpIHsKICAgICAgICAgICAgICAgIGFqYXhRdWVyeShzY3JpcHRQYXRoICsgIi90cmFjay5waHA/ZG9tYWluPSIgKyBlbmNvZGVVUklDb21wb25lbnQoZG9tYWluKSArICImY2FmPTEmdG9nZ2xlPWZlZWQmZmVlZD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KHN0YXR1cy5mZWVkKSArICImdWlkPSIgKyBlbmNvZGVVUklDb21wb25lbnQodW5pcXVlVHJhY2tpbmdJRCkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChzdGF0dXMuZXJyb3JfY29kZSkgewogICAgICAgICAgICAgICAgYWpheFF1ZXJ5KHNjcmlwdFBhdGggKyAiL3RyYWNrLnBocD9kb21haW49IiArIGVuY29kZVVSSUNvbXBvbmVudChkb21haW4pICsgIiZjYWY9MSZ0b2dnbGU9YW5zd2VyY2hlY2smYW5zd2VyPWVycm9yXyIgKyBlbmNvZGVVUklDb21wb25lbnQoc3RhdHVzLmVycm9yX2NvZGUpICsgIiZ1aWQ9IiArIGVuY29kZVVSSUNvbXBvbmVudCh1bmlxdWVUcmFja2luZ0lEKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBhamF4UXVlcnkoc2NyaXB0UGF0aCArICIvdHJhY2sucGhwP2RvbWFpbj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvbWFpbikgKyAiJmNhZj0xJnRvZ2dsZT1hbnN3ZXJjaGVjayZhbnN3ZXI9eWVzJnVpZD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KHVuaXF1ZVRyYWNraW5nSUQpKTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGFqYXhRdWVyeShzY3JpcHRQYXRoICsgIi90cmFjay5waHA/ZG9tYWluPSIgKyBlbmNvZGVVUklDb21wb25lbnQoZG9tYWluKSArICImY2FmPTEmdG9nZ2xlPWFuc3dlcmNoZWNrJmFuc3dlcj1yZWplY3RlZCZ1aWQ9IiArIGVuY29kZVVSSUNvbXBvbmVudCh1bmlxdWVUcmFja2luZ0lEKSk7CiAgICAgICAgfQogICAgfQp9Cgp2YXIgeCA9IGZ1bmN0aW9uIChvYmoxLCBvYmoyKSB7CiAgICBpZiAodHlwZW9mIG9iajEgIT0gIm9iamVjdCIpCiAgICAgICAgb2JqMSA9IHt9OwoKICAgIGZvciAodmFyIGtleSBpbiBvYmoyKQogICAgICAgIG9iajFba2V5XSA9IG9iajJba2V5XTsKCiAgICByZXR1cm4gb2JqMTsKfTsKCmZ1bmN0aW9uIGdldFhNTGh0dHAoKSB7CiAgICB2YXIgeG1sSHR0cCA9IG51bGw7CiAgICB0cnkgewogICAgICAgIHhtbEh0dHAgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICB4bWxIdHRwID0gbmV3IEFjdGl2ZVhPYmplY3QoIk1zeG1sMi5YTUxIVFRQIik7CiAgICAgICAgfSBjYXRjaCAoZXgpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHhtbEh0dHAgPSBuZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKTsKICAgICAgICAgICAgfSBjYXRjaCAoZXhjKSB7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4geG1sSHR0cDsKfQoKZnVuY3Rpb24gYWpheFF1ZXJ5KHVybCkgewogICAgaWYgKGFkdGVzdCA9PSAnb24nKSByZXR1cm4gZmFsc2U7CiAgICB4bWxIdHRwID0gZ2V0WE1MaHR0cCgpOwogICAgaWYgKCF4bWxIdHRwKSByZXR1cm4gYWpheEJhY2tmaWxsKHVybCk7CiAgICB4bWxIdHRwLm9wZW4oIkdFVCIsIHVybCwgZmFsc2UpOwogICAgcmV0dXJuIHhtbEh0dHAuc2VuZChudWxsKTsKfQoKZnVuY3Rpb24gYWpheEJhY2tmaWxsKHVybCkgewogICAgaWYgKGFkdGVzdCA9PSAnb24nKSByZXR1cm4gZmFsc2U7CiAgICBpZiAodXJsLmluZGV4T2YoIiZ0b2dnbGU9YnJvd3NlcmpzIikgPiAtMSkgcmV0dXJuIGZhbHNlOwogICAgdHJ5IHsKICAgICAgICB2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7CiAgICAgICAgaW1nLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJzsKICAgICAgICBpbWcuc3R5bGUud2lkdGggPSAnMXB4JzsKICAgICAgICBpbWcuc3R5bGUuaGVpZ2h0ID0gJzFweCc7CiAgICAgICAgaW1nLnNyYyA9IHVybCArICImX3Q9IiArIG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1nKTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgIH0KfQoKdmFyIHdhaXRUaW1lID0gMDsKdmFyIHRpbWVvdXQgPSAyMDAwOwp2YXIgd2FpdFN0ZXAgPSAxMDAwOwpmdW5jdGlvbiBsaXN0ZW5Gb3IxVGllclJlc3BvbnNlKCkgewoKICAgIGlmICh0eXBlb2YgcGFnZUxvYWRlZENhbGxiYWNrVHJpZ2dlcmVkID09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGlmICh3YWl0VGltZSA8IHRpbWVvdXQgJiYgcGFnZUxvYWRlZENhbGxiYWNrVHJpZ2dlcmVkID09IGZhbHNlKSB7CiAgICAgICAgd2FpdFRpbWUgPSB3YWl0VGltZSArIHdhaXRTdGVwOwogICAgICAgIHNldFRpbWVvdXQobGlzdGVuRm9yMVRpZXJSZXNwb25zZSwgd2FpdFN0ZXApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAocGFnZUxvYWRlZENhbGxiYWNrVHJpZ2dlcmVkID09IGZhbHNlKSB7CiAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnOwogICAgfQp9Cmxpc3RlbkZvcjFUaWVyUmVzcG9uc2UoKTsKCgphamF4UXVlcnkoc2NyaXB0UGF0aCArICIvdHJhY2sucGhwP2RvbWFpbj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvbWFpbikgKyAiJnRvZ2dsZT1icm93c2VyanMmdWlkPSIgKyBlbmNvZGVVUklDb21wb25lbnQodW5pcXVlVHJhY2tpbmdJRCkpOwo8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+eChwYWdlT3B0aW9ucywge3Jlc3VsdHNQYWdlQmFzZVVybDogJy8vY3Vyc2VkLWtuaWdodC5mci8/dHM9ZkVOc1pXRnVVR1Z3Y0dWeWJXbHVkRUpzWVdOcmZIdzFZMlU0Tkh4aWRXTnJaWFF3TVRFc1luVmphMlYwTURjM2ZIeDhmSHg4TmpVMVlXTTJZMk01WXpObFpueDhmREUzTURBME5EYzVORGd1TmpRNE9Id3dNekUzWWpkaE9HSXdZamhtTnpRMVl6TTNORE00WlRSbVlURmxaR0V4TlRjNU9XRmlPR1ExZkh4OGZId3hmSHd3ZkRCOGZIeDhNWHg4Zkh4OE1Id3dmSHg4Zkh4OGZIeDhmREI4TUh4OE1IeDhmREI4TUh4WE1UQTlmSHd4ZkZjeE1EMThZelkwWmpNNU5XSmhNVEZpTVRZMlpUQmtNV05oTVRsa05ETTVaRGszTjJRMFlUY3lZbVZsTTN3d2ZHUndMWFJsWVcxcGJuUmxjbTVsZERBNVh6TndhSHd3ZkRCOCcsaGw6ICdkZScsa3c6ICcnLHRlcm1zOiAnJyx1aU9wdGltaXplOiB0cnVlLCBjaGFubmVsOiAnMDAwMDAxLGJ1Y2tldDAxMSxidWNrZXQwNzcnLCBwdWJJZDogJ2RwLXRlYW1pbnRlcm5ldDA5XzNwaCcsYWR0ZXN0OiAnb2ZmJyxwZXJzb25hbGl6ZWRBZHM6IGZhbHNlLGNsaWNrdHJhY2tVcmw6ICdodHRwczovL3Rya3BjLm5ldC90cmFjay4nICsgJ3BocD9jbGljaz1jYWYnICsgJyZkb21haW49Y3Vyc2VkLWtuaWdodC5mciZ1aWQ9TVRjd01EUTBOemswT0M0Mk5EbzBObUV5WVdNeE1ETm1NMlZsWXpRek5UaG1ZMkU1TmpjNFpXVXhZVFk1T0RkaVpEUmxNRGxoTVdNNU5qa3laalJtWXpCbVpXWTRNMkptTnpjM016Rm1PalkxTldGak5tTmpPV00wTVdFJTNEJnRzPWZFTnNaV0Z1VUdWd2NHVnliV2x1ZEVKc1lXTnJmSHcxWTJVNE5IeGlkV05yWlhRd01URXNZblZqYTJWME1EYzNmSHg4Zkh4OE5qVTFZV00yWTJNNVl6Tmxabng4ZkRFM01EQTBORGM1TkRndU5qUTROM3d6TWpsaE1XUTRZVEprTkRreFlUVmhNelExT1RjeVpUazBOV1U0Wm1aall6aGpZV1UyWldRM2ZIeDhmSHd4Zkh3d2ZEQjhmSHg4TVh4OGZIeDhNSHd3Zkh4OGZIeDhmSHg4ZkRCOE1IeDhNSHg4ZkRCOE1IeFhNVEE5Zkh3eGZGY3hNRDE4WXpZMFpqTTVOV0poTVRGaU1UWTJaVEJrTVdOaE1UbGtORE01WkRrM04yUTBZVGN5WW1WbE0zd3dmR1J3TFhSbFlXMXBiblJsY201bGREQTVYek53YUh3d2ZEQjgmYWR0ZXN0PW9mZicgfSk7PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPngocGFnZU9wdGlvbnMsIFtdICk7PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPngocGFnZU9wdGlvbnMsIHsgZG9tYWluUmVnaXN0cmFudDonYXMtZHJpZC0yNTU4MzM0NTQwNzMwNzY4JyB9ICk7PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgICAgICAgICAgZnVuY3Rpb24gbG9hZEZlZWQoKSB7IHZhciBjID0gZ29vZ2xlLmFkcy5kb21haW5zLkNhZjt2YXIgYT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3N3aXRjaChhLmxlbmd0aCkgeyBjYXNlIDE6cmV0dXJuIG5ldyBjKGFbMF0pO2Nhc2UgMjpyZXR1cm4gbmV3IGMoYVswXSxhWzFdKTtjYXNlIDM6cmV0dXJuIG5ldyBjKGFbMF0sYVsxXSxhWzJdKTtjYXNlIDQ6cmV0dXJuIG5ldyBjKGFbMF0sYVsxXSxhWzJdLGFbM10pO2Nhc2UgNTpyZXR1cm4gbmV3IGMoYVswXSxhWzFdLGFbMl0sYVszXSxhWzRdKTsgfSByZXR1cm4gYy5hcHBseShudWxsLGEpOyB9CiAgICAgICAgICAgICAgICBmdW5jdGlvbiByZWxhdGVkQ2FsbGJhY2sob3B0aW9ucykgeyByZXR1cm4gZmFsc2U7IH0gZnVuY3Rpb24gcmVsYXRlZEZhbGxiYWNrKGNhbGxiYWNrKSB7IHJldHVybiBjYWxsYmFjaygpOyB9CiAgICA8L3NjcmlwdD4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij52YXIgbHMgPSBmdW5jdGlvbih4aHIsIHBhdGgsIHRva2VuKSB7CiAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkgewogICAgICAgIGlmICh4aHIucmVhZHlTdGF0ZSA9PT0gWE1MSHR0cFJlcXVlc3QuRE9ORSkgewogICAgICAgICAgICBpZiAoeGhyLnN0YXR1cyA+PSAyMDAgJiYgeGhyLnN0YXR1cyA8PSA0MDApIHsKICAgICAgICAgICAgICAgIGlmICh4aHIucmVzcG9uc2VUZXh0LnRyaW0oKSA9PT0gJycpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04ucGFyc2UoeGhyLnJlc3BvbnNlVGV4dCkpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSByZXF1ZXN0LicpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgCiAgICB4aHIub3BlbignR0VUJywgcGF0aCArICcvbHMucCcgKyAnaHA/dD02NTVhYzZjYyZ0b2tlbj0nICsgZW5jb2RlVVJJKHRva2VuKSwgdHJ1ZSk7CiAgICB4aHIuc2VuZCgpOwp9OwpscyhuZXcgWE1MSHR0cFJlcXVlc3QoKSwgc2NyaXB0UGF0aCwgJ2M2NGYzOTViYTExYjE2NmUwZDFjYTE5ZDQzOWQ5NzdkNGE3MmJlZTMnKTs8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnCiAgICAgICAgbGFuZ3VhZ2U9J0phdmFTY3JpcHQnPngocGFnZU9wdGlvbnMsIHsgInN0eWxlSWQiOjExNjcyNjgxMTJ9KTs8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij54KHBhZ2VPcHRpb25zKTsKICAgIG5ldyBsb2FkRmVlZChwYWdlT3B0aW9ucywgdGNibG9jaywgc2VhcmNoYm94QmxvY2spOzwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K","disable_correlation":true,"encrypt":true,"malware_filename":"file.bin","object_relation":"malware-sample","to_ids":true,"type":"malware-sample","uuid":"9b7ce8e7-62f4-4528-afe5-29844fea6b99","value":"file.bin"},{"category":"Artifacts dropped","disable_correlation":true,"object_relation":"mimetype","to_ids":false,"type":"mime-type","uuid":"bea8683c-3540-4f4e-afce-6a9d5d9a3148","value":"text/html"},{"category":"Payload delivery","disable_correlation":false,"object_relation":"ssdeep","to_ids":true,"type":"ssdeep","uuid":"8bb27e12-d956-4413-858a-da785a298b63","value":"384:Ti9YoHMfOTHM39m8WpxCS/jBKEBC2aQhKDy3SJs59ONdGyV:TibMfzmflrgQhuy3SJs59ONdGyV"},{"category":"Network activity","disable_correlation":false,"object_relation":"dom-hash","to_ids":true,"type":"dom-hash","uuid":"3533e4e1-3bd7-4781-9874-eb7549b61d21","value":"d52d9e89a0904e2405460ba2e2c06260"}],"ObjectReference":[{"comment":"URL loading that content","object_uuid":"682e4f4b-7d22-4ba2-a19e-b829b6cf33aa","referenced_uuid":"aa95ef92-c190-417f-ac71-54270e872a1a","relationship_type":"loaded-by","uuid":"ad5a4cf3-aa47-4823-a4fe-bcc4381ac672"},{"comment":"Screenshot of the page","object_uuid":"682e4f4b-7d22-4ba2-a19e-b829b6cf33aa","referenced_uuid":"2917ef01-40cd-48ac-84a2-8c1dbb1a35fc","relationship_type":"rendered-as","uuid":"96ab4e9f-85c8-4f9a-985d-05ed36857029"},{"comment":"Rendered HTML at the end of the capture","object_uuid":"682e4f4b-7d22-4ba2-a19e-b829b6cf33aa","referenced_uuid":"abfb501c-5fa4-4a7f-9cfd-9ce5391f13fd","relationship_type":"rendered-as","uuid":"629ce628-e76a-4a59-9312-f13da8cd3f8b"}],"comment":"Content received for the final redirect (before rendering)","description":"File object describing a file with meta-information","distribution":"5","first_seen":"2023-11-20T02:39:08.437000+00:00","magic_db":null,"meta-category":"file","name":"file","sharing_group_id":"0","template_uuid":"688c46fb-5edb-40a3-8273-1af7923e2215","template_version":"25","uuid":"682e4f4b-7d22-4ba2-a19e-b829b6cf33aa"}],"info":"Lookyloo Capture (https://cursed-knight.fr)","uuid":"b6c6f3fb-5548-418e-ba64-515da6e71509"}]
