{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICAKICAgIDwhLS0gUHJpbWFyeSBNZXRhIFRhZ3MgLS0+CiAgICA8dGl0bGU+RHIuIEphbWVzIFNlbm9nYSB8IFNwZWNpYWxpc3QgQ29vcmRpbmF0b3IgfCBDYXNlIEhvc3BpdGFsIFVnYW5kYTwvdGl0bGU+CiAgICA8bWV0YSBuYW1lPSJ0aXRsZSIgY29udGVudD0iRHIuIEphbWVzIFNlbm9nYSB8IFNwZWNpYWxpc3QgQ29vcmRpbmF0b3IgfCBDYXNlIEhvc3BpdGFsIFVnYW5kYSI+CiAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iQ29ubmVjdCB3aXRoIERyLiBKYW1lcyBTZW5vZ2Eg4oCTIFNwZWNpYWxpc3QgQ29vcmRpbmF0b3IgJiBJbnRlcm5hbCBNZWRpY2luZSBFeHBlcnQgYXQgQ2FzZSBIb3NwaXRhbCBVZ2FuZGEuIEV4cGVydCBpbiBjYXJkaW9sb2d5LCBuZXVyb2xvZ3ksIGFuZCBjaHJvbmljIGRpc2Vhc2UgbWFuYWdlbWVudC4iPgogICAgPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9IkRyIEphbWVzIFNlbm9nYSwgU3BlY2lhbGlzdCBDb29yZGluYXRvciwgSW50ZXJuYWwgTWVkaWNpbmUsIENhcmRpb2xvZ3ksIE5ldXJvbG9neSwgQ2FzZSBIb3NwaXRhbCwgVWdhbmRhLCBLYW1wYWxhIj4KICAgIDxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0iaW5kZXgsIGZvbGxvdyI+CiAgICAKICAgIDwhLS0gT3BlbiBHcmFwaCAtLT4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJwcm9maWxlIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vY2FzZWNsaW5pYy5vcmcvc3BlY2lhbGlzdC1jb29yZGluYXRvciI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IkRyLiBKYW1lcyBTZW5vZ2EgfCBTcGVjaWFsaXN0IENvb3JkaW5hdG9yIHwgQ2FzZSBIb3NwaXRhbCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlNwZWNpYWxpc3QgQ29vcmRpbmF0b3IgJiBJbnRlcm5hbCBNZWRpY2luZSBFeHBlcnQgYXQgQ2FzZSBIb3NwaXRhbCBVZ2FuZGEuIENvbm5lY3Qgbm93LiI+CiAgICAKICAgIDwhLS0gVGhlbWUgQ29sb3IgLS0+CiAgICA8bWV0YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iIzBBNzU0MSI+CiAgICAKICAgIDxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CiAgICA8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20iIGNyb3Nzb3JpZ2luPgogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1QbGF5ZmFpcitEaXNwbGF5OndnaHRANDAwOzUwMDs2MDA7NzAwOzgwMCZmYW1pbHk9SW50ZXI6d2dodEAzMDA7NDAwOzUwMDs2MDA7NzAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIAogICAgPHN0eWxlPgogICAgICAgIDpyb290IHsKICAgICAgICAgICAgLS1jYXNlLWdyZWVuOiAjMEE3NTQxOwogICAgICAgICAgICAtLWNhc2UtZ3JlZW4tZGFyazogIzA1M0QyODsKICAgICAgICAgICAgLS1jYXNlLWdyZWVuLWxpZ2h0OiAjMEQ5NjU0OwogICAgICAgICAgICAtLWNhc2UtcHVycGxlOiAjNEIxRDdEOwogICAgICAgICAgICAtLWNhc2UtcHVycGxlLWxpZ2h0OiAjOEI0RkNGOwogICAgICAgICAgICAtLWNhc2Utb3JhbmdlOiAjRkY2QjAwOwogICAgICAgICAgICAtLWNhc2Utb3JhbmdlLWxpZ2h0OiAjRkY4QzMzOwogICAgICAgICAgICAKICAgICAgICAgICAgLS1kZWVwLWJnOiAjMDQxQTBEOwogICAgICAgICAgICAtLWNhcmQtYmc6ICMwQTI0MTU7CiAgICAgICAgICAgIC0tY2FyZC1iZy1saWdodDogIzBEMkUxQTsKICAgICAgICAgICAgLS13YXJtLXdoaXRlOiAjRkZGRUY4OwogICAgICAgICAgICAtLXRleHQtbGlnaHQ6ICNFOEY1RTk7CiAgICAgICAgICAgIC0tdGV4dC1tdXRlZDogI0E4QzlCMDsKICAgICAgICB9CgogICAgICAgICogeyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH0KCiAgICAgICAgYm9keSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCB2YXIoLS1kZWVwLWJnKSAwJSwgIzBEMjgxOCA1MCUsIHZhcigtLWNhc2UtZ3JlZW4tZGFyaykgMTAwJSk7CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1saWdodCk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgfQoKICAgICAgICAuZmxvYXRpbmctY3Jvc3NlcyB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOyBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgei1pbmRleDogMTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CgogICAgICAgIC5tZWRpY2FsLWNyb3NzIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBvcGFjaXR5OiAwLjA2OwogICAgICAgICAgICBhbmltYXRpb246IGZsb2F0Q3Jvc3MgMjBzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgLm1lZGljYWwtY3Jvc3M6OmJlZm9yZSwKICAgICAgICAubWVkaWNhbC1jcm9zczo6YWZ0ZXIgewogICAgICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXNlLWdyZWVuKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIH0KCiAgICAgICAgLm1lZGljYWwtY3Jvc3M6OmJlZm9yZSB7CiAgICAgICAgICAgIHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDM1cHg7CiAgICAgICAgICAgIHRvcDogNTAlOyBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIH0KCiAgICAgICAgLm1lZGljYWwtY3Jvc3M6OmFmdGVyIHsKICAgICAgICAgICAgd2lkdGg6IDM1cHg7IGhlaWdodDogMTBweDsKICAgICAgICAgICAgdG9wOiA1MCU7IGxlZnQ6IDUwJTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgfQoKICAgICAgICAuY3Jvc3MtMSB7IHRvcDogMTAlOyBsZWZ0OiA1JTsgYW5pbWF0aW9uLWRlbGF5OiAwczsgfQogICAgICAgIC5jcm9zcy0yIHsgdG9wOiAyNSU7IHJpZ2h0OiA4JTsgYW5pbWF0aW9uLWRlbGF5OiAtNXM7IH0KICAgICAgICAuY3Jvc3MtMyB7IHRvcDogNTAlOyBsZWZ0OiAzJTsgYW5pbWF0aW9uLWRlbGF5OiAtMTBzOyB9CiAgICAgICAgLmNyb3NzLTQgeyB0b3A6IDcwJTsgcmlnaHQ6IDUlOyBhbmltYXRpb24tZGVsYXk6IC0xNXM7IH0KICAgICAgICAuY3Jvc3MtNSB7IHRvcDogODUlOyBsZWZ0OiAxMCU7IGFuaW1hdGlvbi1kZWxheTogLTNzOyB9CiAgICAgICAgLmNyb3NzLTYgeyB0b3A6IDQwJTsgcmlnaHQ6IDMlOyBhbmltYXRpb24tZGVsYXk6IC04czsgfQoKICAgICAgICAuY3Jvc3MtcHVycGxlOjpiZWZvcmUsIC5jcm9zcy1wdXJwbGU6OmFmdGVyIHsgYmFja2dyb3VuZDogdmFyKC0tY2FzZS1wdXJwbGUpOyB9CiAgICAgICAgLmNyb3NzLW9yYW5nZTo6YmVmb3JlLCAuY3Jvc3Mtb3JhbmdlOjphZnRlciB7IGJhY2tncm91bmQ6IHZhcigtLWNhc2Utb3JhbmdlKTsgfQoKICAgICAgICBAa2V5ZnJhbWVzIGZsb2F0Q3Jvc3MgewogICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSByb3RhdGUoMGRlZyk7IG9wYWNpdHk6IDAuMDQ7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KSByb3RhdGUoMTBkZWcpOyBvcGFjaXR5OiAwLjA4OyB9CiAgICAgICAgfQoKICAgICAgICAuY29udGFpbmVyIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgICAgIHBhZGRpbmc6IDI1cHggMjBweDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAuY29udGFpbmVyIHsgbWF4LXdpZHRoOiA2MDBweDsgcGFkZGluZzogMzVweCAzMHB4OyB9CiAgICAgICAgfQoKICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTAwcHgpIHsKICAgICAgICAgICAgLmNvbnRhaW5lciB7IG1heC13aWR0aDogNzAwcHg7IHBhZGRpbmc6IDQwcHg7IH0KICAgICAgICB9CgogICAgICAgIC5wcm9maWxlLWNhcmQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCB2YXIoLS1jYXJkLWJnKSwgdmFyKC0tY2FyZC1iZy1saWdodCkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgICAgICBwYWRkaW5nOiAzNXB4IDI1cHg7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMjVweCA4MHB4IHJnYmEoMCwgMCwgMCwgMC41KSwgMCAwIDAgMXB4IHJnYmEoMTAsIDExNywgNjUsIDAuMik7CiAgICAgICAgICAgIGFuaW1hdGlvbjogY2FyZEZhZGVJbiAwLjZzIGVhc2Utb3V0OwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5wcm9maWxlLWNhcmQgeyBwYWRkaW5nOiA0NXB4IDM1cHg7IH0KICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgY2FyZEZhZGVJbiB7CiAgICAgICAgICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7IH0KICAgICAgICAgICAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KICAgICAgICB9CgogICAgICAgIC5wcm9maWxlLWhlYWRlciB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICB9CgogICAgICAgIC5wcm9maWxlLWltYWdlLWNvbnRhaW5lciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgd2lkdGg6IDE0MHB4OyBoZWlnaHQ6IDE0MHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0byAyNXB4OwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5wcm9maWxlLWltYWdlLWNvbnRhaW5lciB7IHdpZHRoOiAxNjBweDsgaGVpZ2h0OiAxNjBweDsgfQogICAgICAgIH0KCiAgICAgICAgLnByb2ZpbGUtcmluZyB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAtNXB4OyBsZWZ0OiAtNXB4OyByaWdodDogLTVweDsgYm90dG9tOiAtNXB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGNvbmljLWdyYWRpZW50KHZhcigtLWNhc2UtZ3JlZW4pLCB2YXIoLS1jYXNlLXB1cnBsZSksIHZhcigtLWNhc2Utb3JhbmdlKSwgdmFyKC0tY2FzZS1ncmVlbikpOwogICAgICAgICAgICBhbmltYXRpb246IHJpbmdSb3RhdGUgOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyByaW5nUm90YXRlIHsKICAgICAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KCiAgICAgICAgLnByb2ZpbGUtaW1hZ2UgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1iZyk7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB2YXIoLS1jYXJkLWJnKTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CgogICAgICAgIC5jYXNlLWNyb3NzIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB3aWR0aDogNjBweDsgaGVpZ2h0OiA2MHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhc2UtY3Jvc3M6OmJlZm9yZSB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogNTAlOyBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgICB3aWR0aDogMThweDsgaGVpZ2h0OiA2MHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXNlLWdyZWVuKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhc2UtY3Jvc3M6OmFmdGVyIHsKICAgICAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiA1MCU7IGxlZnQ6IDUwJTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgICAgIHdpZHRoOiA2MHB4OyBoZWlnaHQ6IDE4cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNhc2UtZ3JlZW4pOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgfQoKICAgICAgICAuY2FzZS1jcm9zcyAuY2VudGVyIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDUwJTsgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICAgICAgd2lkdGg6IDEycHg7IGhlaWdodDogMTJweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2FzZS1wdXJwbGUpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgfQoKICAgICAgICAucHJvZmlsZS1uYW1lIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXdhcm0td2hpdGUpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDJweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAucHJvZmlsZS1uYW1lIHsgZm9udC1zaXplOiAyLjRyZW07IH0KICAgICAgICB9CgogICAgICAgIC5wcm9maWxlLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jYXNlLXB1cnBsZS1saWdodCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAucHJvZmlsZS10aXRsZSB7IGZvbnQtc2l6ZTogMS4yNXJlbTsgfQogICAgICAgIH0KCiAgICAgICAgLnByb2ZpbGUtY29tcGFueSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgICAgIH0KCiAgICAgICAgLnByb2ZpbGUtc3BlY2lhbHR5IHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgICAgICBwYWRkaW5nOiA4cHggMjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxMCwgMTE3LCA2NSwgMC4zKSwgcmdiYSg3NSwgMjksIDEyNSwgMC4yKSk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNhc2UtZ3JlZW4pOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jYXNlLWdyZWVuLWxpZ2h0KTsKICAgICAgICB9CgogICAgICAgIC5jcmVkZW50aWFscyB7CiAgICAgICAgICAgIG1hcmdpbjogMjVweCAwOwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwLCAxMTcsIDY1LCAwLjEpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWNhc2UtZ3JlZW4pOwogICAgICAgIH0KCiAgICAgICAgLmNyZWRlbnRpYWxzLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jYXNlLWdyZWVuLWxpZ2h0KTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICB9CgogICAgICAgIC5jcmVkZW50aWFscy1saXN0IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgfQoKICAgICAgICAuY3JlZGVudGlhbC1iYWRnZSB7CiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxNHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDc1LCAyOSwgMTI1LCAwLjIpOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jYXNlLXB1cnBsZSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtbGlnaHQpOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRhY3Qtc2VjdGlvbiB7IG1hcmdpbjogMjVweCAwOyB9CgogICAgICAgIC5jb250YWN0LWl0ZW0gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDE1cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMyk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTAsIDExNywgNjUsIDAuMik7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAuY29udGFjdC1pdGVtOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMCwgMTE3LCA2NSwgMC4xNSk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRhY3QtaWNvbiB7CiAgICAgICAgICAgIHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNhc2UtZ3JlZW4pLCB2YXIoLS1jYXNlLWdyZWVuLWRhcmspKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtOwogICAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5jb250YWN0LWRldGFpbHMgeyBmbGV4OiAxOyB9CgogICAgICAgIC5jb250YWN0LWxhYmVsIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICB9CgogICAgICAgIC5jb250YWN0LXZhbHVlIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLXdoaXRlKTsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAuY29udGFjdC12YWx1ZSB7IGZvbnQtc2l6ZTogMS4ycmVtOyB9CiAgICAgICAgfQoKICAgICAgICAuY29udGFjdC12YWx1ZSBhIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXdhcm0td2hpdGUpOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuYWN0aW9uLWJ1dHRvbnMgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAgbWFyZ2luOiAyNXB4IDA7CiAgICAgICAgfQoKICAgICAgICAuYWN0aW9uLWJ0biB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIH0KCiAgICAgICAgLmJ0bi1jYWxsIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY2FzZS1ncmVlbiksIHZhcigtLWNhc2UtZ3JlZW4tZGFyaykpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS13aGl0ZSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDI1cHggcmdiYSgxMCwgMTE3LCA2NSwgMC40KTsKICAgICAgICB9CgogICAgICAgIC5idG4tY2FsbDpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMnB4IDM1cHggcmdiYSgxMCwgMTE3LCA2NSwgMC41KTsKICAgICAgICB9CgogICAgICAgIC5idG4td2hhdHNhcHAgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMjVEMzY2LCAjMTI4QzdFKTsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDhweCAyNXB4IHJnYmEoMzcsIDIxMSwgMTAyLCAwLjMpOwogICAgICAgIH0KCiAgICAgICAgLmJ0bi13aGF0c2FwcDpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMnB4IDM1cHggcmdiYSgzNywgMjExLCAxMDIsIDAuNCk7CiAgICAgICAgfQoKICAgICAgICAuc2F2ZS1zaGFyZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBnYXA6IDE1cHg7CiAgICAgICAgICAgIG1hcmdpbjogMjVweCAwOwogICAgICAgICAgICBwYWRkaW5nLXRvcDogMjBweDsKICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTAsIDExNywgNjUsIDAuMik7CiAgICAgICAgfQoKICAgICAgICAuc2F2ZS1zaGFyZS1idG4gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDZweDsKICAgICAgICAgICAgcGFkZGluZzogMTJweCAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEwLCAxMTcsIDY1LCAwLjMpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1saWdodCk7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuc2F2ZS1zaGFyZS1idG46aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwLCAxMTcsIDY1LCAwLjIpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7CiAgICAgICAgfQoKICAgICAgICAuc2F2ZS1zaGFyZS1idG4gLmljb24geyBmb250LXNpemU6IDEuNXJlbTsgfQoKICAgICAgICAubmV3cy1iYWRnZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMjBweCAwOwogICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxMDcsIDAsIDAuMSk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNhc2Utb3JhbmdlKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLm5ld3MtYmFkZ2U6aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMTA3LCAwLCAwLjIpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgICAgfQoKICAgICAgICAubmV3cy1iYWRnZSBzcGFuIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWNhc2Utb3JhbmdlLWxpZ2h0KTsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIH0KCiAgICAgICAgLmZvb3RlciB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMjVweDsKICAgICAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7CiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDEwLCAxMTcsIDY1LCAwLjIpOwogICAgICAgIH0KCiAgICAgICAgLmZvb3Rlci1wb3dlcmVkIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICAgICAgfQoKICAgICAgICAuZm9vdGVyLXBvd2VyZWQgYSB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jYXNlLWdyZWVuLWxpZ2h0KTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIH0KCiAgICAgICAgLmZvb3Rlci1jb3B5cmlnaHQgewogICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgICAgICAgICAgIC5tZWRpY2FsLWNyb3NzLCAucHJvZmlsZS1yaW5nLCAucHJvZmlsZS1jYXJkIHsgYW5pbWF0aW9uOiBub25lOyB9CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCiAgICA8ZGl2IGNsYXNzPSJmbG9hdGluZy1jcm9zc2VzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpY2FsLWNyb3NzIGNyb3NzLTEiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lZGljYWwtY3Jvc3MgY3Jvc3MtMiBjcm9zcy1wdXJwbGUiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lZGljYWwtY3Jvc3MgY3Jvc3MtMyI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWNhbC1jcm9zcyBjcm9zcy00IGNyb3NzLW9yYW5nZSI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWNhbC1jcm9zcyBjcm9zcy01IGNyb3NzLXB1cnBsZSI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWNhbC1jcm9zcyBjcm9zcy02Ij48L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZmlsZS1jYXJkIj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxoZWFkZXIgY2xhc3M9InByb2ZpbGUtaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2ZpbGUtaW1hZ2UtY29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9maWxlLXJpbmciPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2ZpbGUtaW1hZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXNlLWNyb3NzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjZW50ZXIiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGgxIGNsYXNzPSJwcm9maWxlLW5hbWUiPkRyLiBKYW1lcyBTZW5vZ2E8L2gxPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9InByb2ZpbGUtdGl0bGUiPlNwZWNpYWxpc3QgQ29vcmRpbmF0b3I8L3A+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icHJvZmlsZS1jb21wYW55Ij5DYXNlIEhvc3BpdGFsPC9wPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByb2ZpbGUtc3BlY2lhbHR5Ij7wn6uAIEludGVybmFsIE1lZGljaW5lPC9zcGFuPgogICAgICAgICAgICA8L2hlYWRlcj4KCiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJjcmVkZW50aWFscyI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImNyZWRlbnRpYWxzLXRpdGxlIj7wn6m6IEV4cGVydGlzZTwvaDM+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkZW50aWFscy1saXN0Ij4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY3JlZGVudGlhbC1iYWRnZSI+SW50ZXJuYWwgTWVkaWNpbmU8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNyZWRlbnRpYWwtYmFkZ2UiPkNhcmRpb2xvZ3k8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNyZWRlbnRpYWwtYmFkZ2UiPk5ldXJvbG9naWNhbCBDYXJlPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjcmVkZW50aWFsLWJhZGdlIj5DaHJvbmljIERpc2Vhc2UgTWFuYWdlbWVudDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0iY29udGFjdC1zZWN0aW9uIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1pY29uIj7wn5OePC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1kZXRhaWxzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRhY3QtbGFiZWwiPlRvbGwgRnJlZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRhY3QtdmFsdWUiPjxhIGhyZWY9InRlbDowODAwMjExMDA1Ij4wODAwIDIxMSAwMDU8L2E+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1pY29uIj7wn5KsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1kZXRhaWxzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRhY3QtbGFiZWwiPldoYXRzQXBwPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29udGFjdC12YWx1ZSI+PGEgaHJlZj0iaHR0cHM6Ly93YS5tZS8yNTY3NjQyMDk4ODkiPisyNTYgNzY0IDIwOSA4ODk8L2E+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1pY29uIj7inInvuI88L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LWRldGFpbHMiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29udGFjdC1sYWJlbCI+RW1haWw8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb250YWN0LXZhbHVlIj48YSBocmVmPSJtYWlsdG86aW5mb0BjYXNlbWVkc2VydmljZXMub3JnIj5pbmZvQGNhc2VtZWRzZXJ2aWNlcy5vcmc8L2E+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1pY29uIj7wn4yQPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1kZXRhaWxzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRhY3QtbGFiZWwiPldlYnNpdGU8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb250YWN0LXZhbHVlIj48YSBocmVmPSJodHRwczovL2Nhc2VtZWRzZXJ2aWNlcy5vcmciIHRhcmdldD0iX2JsYW5rIj5jYXNlbWVkc2VydmljZXMub3JnPC9hPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb24tYnV0dG9ucyI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJ0ZWw6MDgwMDIxMTAwNSIgY2xhc3M9ImFjdGlvbi1idG4gYnRuLWNhbGwiPvCfk54gQ2FsbCBOb3c8L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3dhLm1lLzI1Njc2NDIwOTg4OSIgY2xhc3M9ImFjdGlvbi1idG4gYnRuLXdoYXRzYXBwIj7wn5KsIFdoYXRzQXBwPC9hPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNhdmUtc2hhcmUiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InNhdmUtc2hhcmUtYnRuIiBvbmNsaWNrPSJkb3dubG9hZFZDYXJkKCkiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIj7wn5OlPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPlNhdmUgQ29udGFjdDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJzYXZlLXNoYXJlLWJ0biIgb25jbGljaz0ic2hhcmVDYXJkKCkiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIj7wn5OkPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPlNoYXJlPC9zcGFuPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9xLTAuY28vZHItamFtZXMtc2Vub2dhIiBjbGFzcz0ic2F2ZS1zaGFyZS1idG4iIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiI+8J+TsTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj5RUiBDb2RlPC9zcGFuPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vY2FzZWNsaW5pYy5uZXdzL2hvdy1jYXNlLW1lZGluc3VyYW5jZS1jYW4tYnJpbmcteW91LXBlYWNlLW9mLW1pbmQtaW4taGVhbHRoY2FyZSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJuZXdzLWJhZGdlIj4KICAgICAgICAgICAgICAgIDxzcGFuPvCfk7A8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj5GZWF0dXJlZCBvbiBjYXNlY2xpbmljLm5ld3M8L3NwYW4+CiAgICAgICAgICAgIDwvYT4KCiAgICAgICAgICAgIDxmb290ZXIgY2xhc3M9ImZvb3RlciI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iZm9vdGVyLXBvd2VyZWQiPgogICAgICAgICAgICAgICAgICAgIFBvd2VyZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9oYW5kc2hha2UuYWZyaWNhIiB0YXJnZXQ9Il9ibGFuayI+QnJhbmQgSGFuZHNoYWtlIEFmcmljYTwvYT4KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJmb290ZXItY29weXJpZ2h0Ij7CqSAyMDI2IENhc2UgTWVkaWNhbCBTZXJ2aWNlcyDigKIgVWdhbmRhPC9wPgogICAgICAgICAgICA8L2Zvb3Rlcj4KCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8c2NyaXB0PgogICAgICAgIGZ1bmN0aW9uIGRvd25sb2FkVkNhcmQoKSB7CiAgICAgICAgICAgIGNvbnN0IHZjYXJkID0gYEJFR0lOOlZDQVJEClZFUlNJT046My4wCkZOOkRyLiBKYW1lcyBTZW5vZ2EKT1JHOkNhc2UgSG9zcGl0YWwKVElUTEU6U3BlY2lhbGlzdCBDb29yZGluYXRvciAtIEludGVybmFsIE1lZGljaW5lClRFTDtUWVBFPVdPUks6MDgwMDIxMTAwNQpURUw7VFlQRT1DRUxMOisyNTY3NjQyMDk4ODkKRU1BSUw6aW5mb0BjYXNlbWVkc2VydmljZXMub3JnClVSTDpodHRwczovL2Nhc2VtZWRzZXJ2aWNlcy5vcmcKTk9URTpTcGVjaWFsaXN0IENvb3JkaW5hdG9yICYgSW50ZXJuYWwgTWVkaWNpbmUgRXhwZXJ0IGF0IENhc2UgSG9zcGl0YWwgVWdhbmRhLiBFeHBlcnQgaW4gY2FyZGlvbG9neSwgbmV1cm9sb2d5LCBhbmQgY2hyb25pYyBkaXNlYXNlIG1hbmFnZW1lbnQuCkVORDpWQ0FSRGA7CiAgICAgICAgICAgIAogICAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3ZjYXJkXSwgeyB0eXBlOiAndGV4dC92Y2FyZCcgfSk7CiAgICAgICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7CiAgICAgICAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiAgICAgICAgICAgIGEuaHJlZiA9IHVybDsKICAgICAgICAgICAgYS5kb3dubG9hZCA9ICdEcl9KYW1lc19TZW5vZ2EudmNmJzsKICAgICAgICAgICAgYS5jbGljaygpOwogICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIHNoYXJlQ2FyZCgpIHsKICAgICAgICAgICAgaWYgKG5hdmlnYXRvci5zaGFyZSkgewogICAgICAgICAgICAgICAgbmF2aWdhdG9yLnNoYXJlKHsKICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0RyLiBKYW1lcyBTZW5vZ2EgLSBTcGVjaWFsaXN0IENvb3JkaW5hdG9yJywKICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnQ29ubmVjdCB3aXRoIERyLiBKYW1lcyBTZW5vZ2EsIFNwZWNpYWxpc3QgQ29vcmRpbmF0b3IgJiBJbnRlcm5hbCBNZWRpY2luZSBFeHBlcnQgYXQgQ2FzZSBIb3NwaXRhbCBVZ2FuZGEnLAogICAgICAgICAgICAgICAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhyZWYKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQod2luZG93LmxvY2F0aW9uLmhyZWYpOwogICAgICAgICAgICAgICAgYWxlcnQoJ0xpbmsgY29waWVkIHRvIGNsaXBib2FyZCEnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIDwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+","embed":""}
Dr. James Senoga
Specialist Coordinator
Case Hospital
🫀 Internal Medicine🩺 Expertise
Internal Medicine
Cardiology
Neurological Care
Chronic Disease Management
📞
Toll Free
0800 211 005
💬
WhatsApp
+256 764 209 889
✉️
Email
info@casemedservices.org
🌐
Website
casemedservices.org