{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgoKPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgICBNRVRBIERBVEEgU0VUIDIg4oCUIFZJUlRVQUwgQ0FSRCAvIENPTlRBQ1QgUEFHRQogICAgIFVSTDogY2FzZWNsaW5pYy5vcmcvbWFya2V0aW5nZGlyZWN0b3IgKGNhcmQgcGFnZSkK4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgo8dGl0bGU+Q29udGFjdCBFdmVseW4gTWF0c2lrbyBCaXJ1bmdpIHwgTWFya2V0aW5nIERpcmVjdG9yIHwgQ2FzZSBIb3NwaXRhbCBLYW1wYWxhPC90aXRsZT4KPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkdldCBpbiB0b3VjaCB3aXRoIEV2ZWx5biBNYXRzaWtvIEJpcnVuZ2ksIE1hcmtldGluZyBEaXJlY3RvciAmIFBSIENvbW11bmljYXRpb25zIE9mZmljZXIgYXQgQ2FzZSBIb3NwaXRhbCBVZ2FuZGEuIENhbGwsIFdoYXRzQXBwLCBlbWFpbCwgb3Igc2VuZCBhIG1lc3NhZ2UgZGlyZWN0bHkuIj4KPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9IkV2ZWx5biBNYXRzaWtvIEJpcnVuZ2kgY29udGFjdCwgQ2FzZSBIb3NwaXRhbCBtYXJrZXRpbmcsIFBSIGNvbW11bmljYXRpb25zIEthbXBhbGEgVWdhbmRhLCBDYXNlIE1lZGljYWwgU2VydmljZXMgY29udGFjdCI+CjxtZXRhIG5hbWU9ImF1dGhvciIgY29udGVudD0iQ2FzZSBIb3NwaXRhbCBVZ2FuZGEiPgo8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9ImluZGV4LCBmb2xsb3ciPgo8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly9jYXNlY2xpbmljLm9yZy9tYXJrZXRpbmdkaXJlY3RvciI+CjxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJwcm9maWxlIj4KPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlIiBjb250ZW50PSJDb250YWN0IEV2ZWx5biBNYXRzaWtvIEJpcnVuZ2kgfCBDYXNlIEhvc3BpdGFsIFVnYW5kYSI+CjxtZXRhIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0iTWFya2V0aW5nIERpcmVjdG9yICYgUFIgQ29tbXVuaWNhdGlvbnMgT2ZmaWNlciBhdCBDYXNlIEhvc3BpdGFsIEthbXBhbGEuIFNhdmUgY29udGFjdCwgV2hhdHNBcHAsIGVtYWlsLCBvciBzZW5kIGEgbWVzc2FnZSBkaXJlY3RseS4iPgo8bWV0YSBwcm9wZXJ0eT0ib2c6dXJsIiBjb250ZW50PSJodHRwczovL2Nhc2VjbGluaWMub3JnL21hcmtldGluZ2RpcmVjdG9yIj4KPG1ldGEgcHJvcGVydHk9Im9nOnNpdGVfbmFtZSIgY29udGVudD0iQ2FzZSBIb3NwaXRhbCBVZ2FuZGEiPgo8bWV0YSBwcm9wZXJ0eT0ib2c6bG9jYWxlIiBjb250ZW50PSJlbl9VRyI+CjxtZXRhIG5hbWU9InR3aXR0ZXI6Y2FyZCIgY29udGVudD0ic3VtbWFyeV9sYXJnZV9pbWFnZSI+CjxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjNEExNTcwIj4KCjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9UGxheWZhaXIrRGlzcGxheTppdGFsLHdnaHRAMCw0MDA7MCw2MDA7MCw3MDA7MSw0MDAmZmFtaWx5PURNK1NhbnM6d2dodEAzMDA7NDAwOzUwMDs2MDAmZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiPgoKPHN0eWxlPgovKiDilIDilIDilIAgUkVTRVQg4pSA4pSA4pSAICovCiosICo6OmJlZm9yZSwgKjo6YWZ0ZXIgeyBtYXJnaW46MDsgcGFkZGluZzowOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KaHRtbCB7IHNjcm9sbC1iZWhhdmlvcjpzbW9vdGg7IH0KCjpyb290IHsKICAtLWdyZWVuOiAgICAjMDA2MTJGOwogIC0tZ3JlZW4yOiAgICMwMEE2NTE7CiAgLS1wdXJwbGU6ICAgIzRBMTU3MDsKICAtLXB1cnBsZTI6ICAjN0IyRDhCOwogIC0tcm9zZTogICAgICNCMDZCQTg7CiAgLS1vcmFuZ2U6ICAgI0ZGN0YwMDsKICAtLW9yYW5nZTI6ICAjRkZBMDQwOwogIC0tY3JlYW06ICAgICNGQkY4RjQ7CiAgLS1kYXJrOiAgICAgIzBFMEExQzsKICAtLXdoaXRlOiAgICAjRkZGRkZGOwp9Cgpib2R5IHsKICBmb250LWZhbWlseTogJ0RNIFNhbnMnLCBzYW5zLXNlcmlmOwogIGJhY2tncm91bmQ6IHZhcigtLWRhcmspOwogIG1pbi1oZWlnaHQ6IDEwMHZoOwogIG92ZXJmbG93LXg6IGhpZGRlbjsKfQoKLyog4pSA4pSA4pSAIFBBR0UgQkcg4pSA4pSA4pSAICovCi5wYWdlLWJnIHsKICBwb3NpdGlvbjogZml4ZWQ7IGluc2V0OiAwOyB6LWluZGV4OiAwOwogIGJhY2tncm91bmQ6CiAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCAxNSUgMTAlLCByZ2JhKDc0LDIxLDExMiwwLjU1KSAwJSwgdHJhbnNwYXJlbnQgNTAlKSwKICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDg1JSA5MCUsIHJnYmEoMCw5Nyw0NywwLjUpICAgIDAlLCB0cmFuc3BhcmVudCA1MCUpLAogICAgIzA1MDMwODsKfQoKLyog4pSA4pSA4pSAIEZMT0FUSU5HIENST1NTRVMg4pSA4pSA4pSAICovCi5mbG9hdGllcyB7CiAgcG9zaXRpb246IGZpeGVkOyBpbnNldDogMDsKICBwb2ludGVyLWV2ZW50czogbm9uZTsgei1pbmRleDogMTsgb3ZlcmZsb3c6IGhpZGRlbjsKfQouZmxvYXRpZSB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGFuaW1hdGlvbjogZmxvYXRVcCBsaW5lYXIgaW5maW5pdGU7CiAgb3BhY2l0eTogMDsKfQouZmxvYXRpZSBzcGFuIHsKICBkaXNwbGF5OiBibG9jazsgcG9zaXRpb246IHJlbGF0aXZlOwogIHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7Cn0KLmZsb2F0aWUgc3Bhbjo6YmVmb3JlLAouZmxvYXRpZSBzcGFuOjphZnRlciB7CiAgY29udGVudDogJyc7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm9yZGVyLXJhZGl1czogMnB4Owp9Ci5mbG9hdGllIHNwYW46OmJlZm9yZSB7IHdpZHRoOjMwJTsgaGVpZ2h0OjEwMCU7IGxlZnQ6MzUlOyB0b3A6MDsgfQouZmxvYXRpZSBzcGFuOjphZnRlciAgeyB3aWR0aDoxMDAlOyBoZWlnaHQ6MzAlOyB0b3A6MzUlOyBsZWZ0OjA7IH0KLmZjLWdyZWVuIHNwYW46OmJlZm9yZSwgIC5mYy1ncmVlbiBzcGFuOjphZnRlciAgeyBiYWNrZ3JvdW5kOiByZ2JhKDAsMTY2LDgxLDAuNyk7IH0KLmZjLXdoaXRlIHNwYW46OmJlZm9yZSwgIC5mYy13aGl0ZSBzcGFuOjphZnRlciAgIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjQ1KTsgfQouZmMtb3JhbmdlIHNwYW46OmJlZm9yZSwgLmZjLW9yYW5nZSBzcGFuOjphZnRlciAgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwxMjcsMCwwLjcpOyB9Ci5mYy1wdXJwbGUgc3Bhbjo6YmVmb3JlLCAuZmMtcHVycGxlIHNwYW46OmFmdGVyICB7IGJhY2tncm91bmQ6IHJnYmEoMTc2LDEwNywxNjgsMC43KTsgfQpAa2V5ZnJhbWVzIGZsb2F0VXAgewogIDAlICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgICAgICByb3RhdGUoMGRlZyk7ICAgb3BhY2l0eTogMDsgfQogIDUlICAgeyBvcGFjaXR5OiAxOyB9CiAgOTUlICB7IG9wYWNpdHk6IDAuNzU7IH0KICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMTB2aCkgcm90YXRlKDIwMGRlZyk7IG9wYWNpdHk6IDA7IH0KfQoKLyog4pSA4pSA4pSAIFdSQVBQRVIg4pSA4pSA4pSAICovCi53cmFwcGVyIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDEwOwogIG1heC13aWR0aDogNDYwcHg7CiAgbWFyZ2luOiAwIGF1dG87CiAgcGFkZGluZzogMTZweCAxNnB4IDYwcHg7Cn0KCi8qIOKUgOKUgOKUgCBUT1AgTkFWIOKUgOKUgOKUgCAqLwoudG9wLW5hdiB7CiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgcGFkZGluZzogNHB4IDAgMTZweDsKfQoubmF2LWxvZ28geyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9Ci5uYXYtY3Jvc3MgeyB3aWR0aDogMjRweDsgaGVpZ2h0OiAyNHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KLm5hdi1jcm9zczo6YmVmb3JlLCAubmF2LWNyb3NzOjphZnRlciB7CiAgY29udGVudDogJyc7IHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbjIpOyBib3JkZXItcmFkaXVzOiAycHg7Cn0KLm5hdi1jcm9zczo6YmVmb3JlIHsgd2lkdGg6OHB4OyBoZWlnaHQ6MjRweDsgbGVmdDo4cHg7IH0KLm5hdi1jcm9zczo6YWZ0ZXIgIHsgd2lkdGg6MjRweDsgaGVpZ2h0OjhweDsgdG9wOjhweDsgfQoubmF2LWJyYW5kIHsKICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB3aGl0ZTsgbGV0dGVyLXNwYWNpbmc6IDFweDsKfQouYmFjay1idG4gewogIGZvbnQtc2l6ZTogOXB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGNvbG9yOiByZ2JhKDI1NSwxMjcsMCwwLjgpOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMTI3LDAsMC4zKTsgYm9yZGVyLXJhZGl1czogMjBweDsKICBwYWRkaW5nOiA1cHggMTJweDsgdHJhbnNpdGlvbjogYWxsIDAuMnM7Cn0KLmJhY2stYnRuOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsMTI3LDAsMC4xKTsgfQoKLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgIENBUkQg4oCUIEZ1bm5lbFBhZ2VzLXNhZmUgZmxhdCBzdHJ1Y3R1cmUKICAgTm8gb3ZlcmZsb3c6aGlkZGVuIG9uIGhlcm8sIG5vIHdhdmUgU1ZHLAogICBubyB0cmFuc2xhdGVZIHBob3RvIHRyaWNrCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwouY2FyZCB7CiAgYm9yZGVyLXJhZGl1czogMjRweDsKICBib3gtc2hhZG93OiAwIDI0cHggNzBweCByZ2JhKDAsMCwwLDAuNTUpOwogIG92ZXJmbG93OiB2aXNpYmxlOyAvKiBOT1QgaGlkZGVuIOKAlCBwcmV2ZW50cyBwaG90byBjbGlwcGluZyAqLwogIGJhY2tncm91bmQ6IHZhcigtLWNyZWFtKTsKfQoKLyog4pSA4pSA4pSAIEhFUk8gQkFORCDilIDilIDilIAgKi8KLmhlcm8tYmFuZCB7CiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE2MGRlZywgdmFyKC0tZ3JlZW4pIDAlLCAjMDA0MDIwIDUwJSwgIzFBMEIyRSAxMDAlKTsKICBib3JkZXItcmFkaXVzOiAyNHB4IDI0cHggMCAwOwogIHBhZGRpbmc6IDI4cHggMjRweCAyNHB4OwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAvKiBObyBvdmVyZmxvdzpoaWRkZW4g4oCUIEZ1bm5lbFBhZ2VzIHNhZmUgKi8KfQoKLyogRGVjb3JhdGl2ZSBibG9icyDigJQgcHVyZWx5IHZpc3VhbCwgd29uJ3QgY2F1c2UgbGF5b3V0IGlzc3VlcyAqLwouaGVyby1ibG9iIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7IGJvcmRlci1yYWRpdXM6IDUwJTsgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KLmhlcm8tYmxvYi0xIHsKICB0b3A6IC00MHB4OyByaWdodDogLTQwcHg7CiAgd2lkdGg6IDE4MHB4OyBoZWlnaHQ6IDE4MHB4OwogIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMTIzLDQ1LDEzOSwwLjQ1KSAwJSwgdHJhbnNwYXJlbnQgNzAlKTsKfQouaGVyby1ibG9iLTIgewogIGJvdHRvbTogLTMwcHg7IGxlZnQ6IC0yMHB4OwogIHdpZHRoOiAxNDBweDsgaGVpZ2h0OiAxNDBweDsKICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDAsMTY2LDgxLDAuMjUpIDAlLCB0cmFuc3BhcmVudCA3MCUpOwp9CgovKiAzMCB5ZWFycyBiYWRnZSAqLwouYmFkZ2UtMzAgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNnB4OyByaWdodDogMThweDsKICB3aWR0aDogNDhweDsgaGVpZ2h0OiA0OHB4OwogIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLW9yYW5nZSkgMCUsICNDQzU1MDAgMTAwJSk7CiAgYm9yZGVyLXJhZGl1czogNTAlOwogIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsMCwwLDAuMzUpOwogIHotaW5kZXg6IDI7Cn0KLmJhZGdlLTMwIC5uIHsgZm9udC1mYW1pbHk6J1BsYXlmYWlyIERpc3BsYXknLHNlcmlmOyBmb250LXNpemU6MThweDsgZm9udC13ZWlnaHQ6NzAwOyBjb2xvcjp3aGl0ZTsgbGluZS1oZWlnaHQ6MTsgfQouYmFkZ2UtMzAgLnkgeyBmb250LXNpemU6N3B4OyBsZXR0ZXItc3BhY2luZzoxcHg7IGNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC44NSk7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgfQoKLyog4pSA4pSA4pSAIFBST0ZJTEUgQkxPQ0sg4pSA4pSA4pSAICovCi5wcm9maWxlLXJvdyB7CiAgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAyOwp9CgoubmFtZS1ibG9jayB7IHdpZHRoOiAxMDAlOyB9Ci5uYW1lLWhvc3AgewogIGZvbnQtc2l6ZTogOHB4OyBsZXR0ZXItc3BhY2luZzogNHB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGNvbG9yOiB2YXIoLS1vcmFuZ2UyKTsgZm9udC13ZWlnaHQ6IDYwMDsgbWFyZ2luLWJvdHRvbTogOHB4Owp9Ci5uYW1lLWZ1bGwgewogIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogIGZvbnQtc2l6ZTogMjhweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHdoaXRlOyBsaW5lLWhlaWdodDogMS4xOwogIG1hcmdpbi1ib3R0b206IDhweDsKfQoubmFtZS10aXRsZSB7CiAgZm9udC1zaXplOiA5cHg7IGxldHRlci1zcGFjaW5nOiAycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgY29sb3I6IHJnYmEoMTc2LDEwNywxNjgsMC45KTsgZm9udC13ZWlnaHQ6IDUwMDsKICBtYXJnaW4tYm90dG9tOiAxNHB4Owp9Ci5oZXJvLXF1b3RlIHsKICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC1zaXplOiAxM3B4OwogIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjUpOwogIGxpbmUtaGVpZ2h0OiAxLjY7CiAgcGFkZGluZzogMTBweCAxNHB4OwogIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tb3JhbmdlKTsKICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwxMjcsMCwwLjA3KTsKICBib3JkZXItcmFkaXVzOiAwIDhweCA4cHggMDsKICBsZXR0ZXItc3BhY2luZzogMC4zcHg7Cn0KCi8qIOKUgOKUgOKUgCBQVVJQTEUgRElWSURFUiBCQU5EIOKUgOKUgOKUgCAqLwouZGl2aWRlci1iYW5kIHsKICBoZWlnaHQ6IDZweDsKICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLXB1cnBsZSkgMCUsIHZhcigtLXB1cnBsZTIpIDUwJSwgdmFyKC0tb3JhbmdlKSAxMDAlKTsKfQoKLyog4pSA4pSA4pSAIENBUkQgQk9EWSDilIDilIDilIAgKi8KLmNhcmQtYm9keSB7CiAgYmFja2dyb3VuZDogdmFyKC0tY3JlYW0pOwogIGJvcmRlci1yYWRpdXM6IDAgMCAyNHB4IDI0cHg7CiAgcGFkZGluZzogMjJweCAyMnB4IDI4cHg7Cn0KCi8qIE9ybmFtZW50ICovCi5vcm5hbWVudCB7CiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7IG1hcmdpbjogMTRweCAwOwp9Ci5vcm4tbGluZSB7CiAgZmxleDogMTsgaGVpZ2h0OiAxcHg7CiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgyNTUsMTI3LDAsMC4yNSksIHRyYW5zcGFyZW50KTsKfQoub3JuLWNlbnRlciB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNXB4OyBhbGlnbi1pdGVtczogY2VudGVyOyB9Ci5vcm4tZGlhbW9uZCB7IHdpZHRoOiA3cHg7IGhlaWdodDogN3B4OyBiYWNrZ3JvdW5kOiB2YXIoLS1vcmFuZ2UpOyB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH0KLm9ybi1zbSB7IHdpZHRoOiA0cHg7IGhlaWdodDogNHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1yb3NlKTsgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyBvcGFjaXR5OiAwLjY7IH0KCi8qIEV4cGVydGlzZSB0YWdzICovCi50YWdzIHsKICBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogNnB4OwogIGp1c3RpZnktY29udGVudDogY2VudGVyOyBtYXJnaW4tYm90dG9tOiAxNnB4Owp9Ci50YWcgewogIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoNzQsMjEsMTEyLDAuMDgpIDAlLCByZ2JhKDAsOTcsNDcsMC4wOCkgMTAwJSk7CiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg3NCwyMSwxMTIsMC4xOCk7IGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgcGFkZGluZzogNHB4IDExcHg7IGZvbnQtc2l6ZTogOXB4OyBsZXR0ZXItc3BhY2luZzogMXB4OwogIGNvbG9yOiB2YXIoLS1wdXJwbGUpOyBmb250LXdlaWdodDogNjAwOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9CgovKiDilIDilIDilIAgQ09OVEFDVCBST1dTIOKUgOKUgOKUgCAqLwouY29udGFjdC1saXN0IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA4cHg7IG1hcmdpbi1ib3R0b206IDE4cHg7IH0KCi5jLXJvdyB7CiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OwogIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgYmFja2dyb3VuZDogd2hpdGU7CiAgYm9yZGVyLXJhZGl1czogMTJweDsgcGFkZGluZzogOXB4IDEycHg7CiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg3NCwyMSwxMTIsMC4wNyk7CiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgYm94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMCwwLDAsMC4wNCk7Cn0KLmMtcm93OmhvdmVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7IGJvcmRlci1jb2xvcjogcmdiYSg3NCwyMSwxMTIsMC4yKTsgfQoKLmMtaWNvbiB7CiAgd2lkdGg6IDMycHg7IGhlaWdodDogMzJweDsgYm9yZGVyLXJhZGl1czogOXB4OwogIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOwogIGZvbnQtc2l6ZTogMTRweDsgZmxleC1zaHJpbms6IDA7Cn0KLmNpLXBoICB7IGJhY2tncm91bmQ6IHJnYmEoMCw5Nyw0NywwLjEpOyB9Ci5jaS13YSAgeyBiYWNrZ3JvdW5kOiByZ2JhKDM3LDIxMSwxMDIsMC4xMik7IH0KLmNpLWVtICB7IGJhY2tncm91bmQ6IHJnYmEoNzQsMjEsMTEyLDAuMSk7IH0KLmNpLXdlYiB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDEyNywwLDAuMSk7IH0KLmNpLWxvYyB7IGJhY2tncm91bmQ6IHJnYmEoMTc2LDEwNywxNjgsMC4xMik7IH0KCi5jLXRleHQgeyBmbGV4OiAxOyB9Ci5jLWxibCAgeyBmb250LXNpemU6IDhweDsgbGV0dGVyLXNwYWNpbmc6IDJweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6ICNhYWE7IGZvbnQtd2VpZ2h0OiA1MDA7IGRpc3BsYXk6IGJsb2NrOyB9Ci5jLXZhbCAgeyBmb250LXNpemU6IDEycHg7IGNvbG9yOiAjMUExQTJFOyBmb250LXdlaWdodDogNTAwOyBkaXNwbGF5OiBibG9jazsgbGluZS1oZWlnaHQ6IDEuMzsgfQouYy12YWwucHVycGxlIHsgY29sb3I6IHZhcigtLXB1cnBsZTIpOyB9Ci5jLXZhbC5ncmVlbiAgeyBjb2xvcjogdmFyKC0tZ3JlZW4pOyB9Ci5jLWFyciB7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6ICNjY2M7IGZsZXgtc2hyaW5rOiAwOyB9CgovKiDilIDilIDilIAgQlVUVE9OUyDilIDilIDilIAgKi8KLmJ0bi1ncmlkIHsKICBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgZ2FwOiA4cHg7IG1hcmdpbi1ib3R0b206IDE4cHg7Cn0KLmJ0biB7CiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogNnB4OwogIHBhZGRpbmc6IDEycHggNnB4OyBib3JkZXItcmFkaXVzOiAxMnB4OwogIGZvbnQtZmFtaWx5OiAnRE0gU2FucycsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTBweDsKICBsZXR0ZXItc3BhY2luZzogMS41cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0OiA2MDA7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBjdXJzb3I6IHBvaW50ZXI7IGJvcmRlcjogbm9uZTsKICB0cmFuc2l0aW9uOiBhbGwgMC4yNXM7Cn0KLmJ0bjpob3ZlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsgfQoKLmJ0bi1zYXZlIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbik7IGNvbG9yOiB3aGl0ZTsKICBncmlkLWNvbHVtbjogMSAvIC0xOyBmb250LXNpemU6IDExcHg7IHBhZGRpbmc6IDE0cHg7CiAgYm94LXNoYWRvdzogMCA2cHggMThweCByZ2JhKDAsOTcsNDcsMC4zNSk7Cn0KLmJ0bi1zYXZlOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4yKTsgfQoKLmJ0bi1jYWxsIHsKICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1ncmVlbikgMCUsICMwMDU1MjggMTAwJSk7CiAgY29sb3I6IHdoaXRlOyBib3gtc2hhZG93OiAwIDVweCAxNnB4IHJnYmEoMCw5Nyw0NywwLjI1KTsKfQouYnRuLXdhIHsKICBiYWNrZ3JvdW5kOiAjMjVEMzY2OyBjb2xvcjogd2hpdGU7CiAgYm94LXNoYWRvdzogMCA1cHggMTZweCByZ2JhKDM3LDIxMSwxMDIsMC4zKTsKfQouYnRuLXdhOmhvdmVyIHsgYmFja2dyb3VuZDogIzFDQjk1NTsgfQoKLmJ0bi1lbWFpbCB7CiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tcHVycGxlKSAwJSwgdmFyKC0tcHVycGxlMikgMTAwJSk7CiAgY29sb3I6IHdoaXRlOyBib3gtc2hhZG93OiAwIDVweCAxNnB4IHJnYmEoNzQsMjEsMTEyLDAuMyk7Cn0KLmJ0bi1tc2cgewogIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLW9yYW5nZSkgMCUsICNDQzU1MDAgMTAwJSk7CiAgY29sb3I6IHdoaXRlOyBncmlkLWNvbHVtbjogMSAvIC0xOwogIGJveC1zaGFkb3c6IDAgNXB4IDE2cHggcmdiYSgyNTUsMTI3LDAsMC4zKTsKfQouYnRuLW1zZzpob3ZlciB7IGJveC1zaGFkb3c6IDAgMTBweCAyOHB4IHJnYmEoMjU1LDEyNywwLDAuNSk7IH0KCi8qIOKUgOKUgOKUgCBMRUFEIEZPUk0g4pSA4pSA4pSAICovCi5sZWFkLXdyYXAgewogIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoNzQsMjEsMTEyLDAuMDYpIDAlLCByZ2JhKDAsOTcsNDcsMC4wNikgMTAwJSk7CiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg3NCwyMSwxMTIsMC4xMik7CiAgYm9yZGVyLXJhZGl1czogMThweDsgcGFkZGluZzogMjBweDsKfQoubGVhZC10aXRsZSB7CiAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tZ3JlZW4pOyBtYXJnaW4tYm90dG9tOiA0cHg7Cn0KLmxlYWQtc3ViIHsgZm9udC1zaXplOiAxMHB4OyBjb2xvcjogIzk5OTsgbWFyZ2luLWJvdHRvbTogMTRweDsgfQoKLmZpZWxkIHsgbWFyZ2luLWJvdHRvbTogMTBweDsgfQouZmllbGQgbGFiZWwgewogIGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDhweDsgbGV0dGVyLXNwYWNpbmc6IDJweDsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tcHVycGxlMik7IGZvbnQtd2VpZ2h0OiA2MDA7IG1hcmdpbi1ib3R0b206IDVweDsKfQouZmllbGQgaW5wdXQsIC5maWVsZCB0ZXh0YXJlYSwgLmZpZWxkIHNlbGVjdCB7CiAgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDEwcHggMTJweDsKICBib3JkZXI6IDEuNXB4IHNvbGlkIHJnYmEoNzQsMjEsMTEyLDAuMTUpOyBib3JkZXItcmFkaXVzOiA5cHg7CiAgZm9udC1mYW1pbHk6ICdETSBTYW5zJywgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxM3B4OwogIGNvbG9yOiAjMUExQTJFOyBiYWNrZ3JvdW5kOiB3aGl0ZTsgb3V0bGluZTogbm9uZTsKICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yczsgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyBhcHBlYXJhbmNlOiBub25lOwp9Ci5maWVsZCBpbnB1dDpmb2N1cywgLmZpZWxkIHRleHRhcmVhOmZvY3VzLCAuZmllbGQgc2VsZWN0OmZvY3VzIHsKICBib3JkZXItY29sb3I6IHZhcigtLXB1cnBsZTIpOwogIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDc0LDIxLDExMiwwLjA4KTsKfQouZmllbGQgdGV4dGFyZWEgeyBoZWlnaHQ6IDc1cHg7IHJlc2l6ZTogbm9uZTsgfQoKLmJ0bi1zdWJtaXQgewogIHdpZHRoOiAxMDAlOyBwYWRkaW5nOiAxM3B4OwogIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXB1cnBsZSkgMCUsIHZhcigtLXB1cnBsZTIpIDEwMCUpOwogIGNvbG9yOiB3aGl0ZTsgYm9yZGVyOiBub25lOyBib3JkZXItcmFkaXVzOiAxMXB4OwogIGZvbnQtZmFtaWx5OiAnRE0gU2FucycsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IDYwMDsKICBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjdXJzb3I6IHBvaW50ZXI7CiAgYm94LXNoYWRvdzogMCA2cHggMThweCByZ2JhKDc0LDIxLDExMiwwLjM1KTsgdHJhbnNpdGlvbjogYWxsIDAuMjVzOwp9Ci5idG4tc3VibWl0OmhvdmVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOyBib3gtc2hhZG93OiAwIDEwcHggMjhweCByZ2JhKDc0LDIxLDExMiwwLjUpOyB9CgovKiDilIDilIDilIAgVEhBTksgWU9VIOKUgOKUgOKUgCAqLwoudHkgeyBkaXNwbGF5Om5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjI0cHggOHB4OyBhbmltYXRpb246IHBvcEluIDAuNXMgY3ViaWMtYmV6aWVyKDAuMzQsMS41NiwwLjY0LDEpIGJvdGg7IH0KQGtleWZyYW1lcyBwb3BJbiB7IGZyb20geyB0cmFuc2Zvcm06c2NhbGUoMC44NSk7IG9wYWNpdHk6MDsgfSB0byB7IHRyYW5zZm9ybTpzY2FsZSgxKTsgb3BhY2l0eToxOyB9IH0KLnR5LWljb24gIHsgZm9udC1zaXplOjQ2cHg7IG1hcmdpbi1ib3R0b206MTBweDsgZGlzcGxheTpibG9jazsgfQoudHktdGl0bGUgeyBmb250LWZhbWlseTonUGxheWZhaXIgRGlzcGxheScsc2VyaWY7IGZvbnQtc2l6ZToyMHB4OyBmb250LXdlaWdodDo3MDA7IGNvbG9yOnZhcigtLWdyZWVuKTsgbWFyZ2luLWJvdHRvbTo3cHg7IH0KLnR5LW1zZyAgIHsgZm9udC1zaXplOjEycHg7IGNvbG9yOiM2NjY7IGxpbmUtaGVpZ2h0OjEuNjsgbWFyZ2luLWJvdHRvbToxNnB4OyB9Ci50eS1saW5rICB7CiAgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6OXB4IDIwcHg7CiAgYmFja2dyb3VuZDp2YXIoLS1ncmVlbik7IGNvbG9yOndoaXRlOyBib3JkZXItcmFkaXVzOjlweDsKICBmb250LXNpemU6MTBweDsgbGV0dGVyLXNwYWNpbmc6MnB4OyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7CiAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtZmFtaWx5OidETSBTYW5zJyxzYW5zLXNlcmlmOwp9Ci50eS1saW5rOmhvdmVyIHsgYmFja2dyb3VuZDp2YXIoLS1ncmVlbjIpOyB9CgovKiDilIDilIDilIAgQ0FSRCBGT09URVIg4pSA4pSA4pSAICovCi5jYXJkLWZvb3RlciB7CiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ3JlZW4pIDAlLCAjMDAzMDIwIDYwJSwgIzFBMEIyRSAxMDAlKTsKICBib3JkZXItcmFkaXVzOiAwIDAgMjRweCAyNHB4OwogIHBhZGRpbmc6IDE0cHggMjJweDsKICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47Cn0KLmZ0LXNsb2dhbiB7IGZvbnQtc2l6ZTo4cHg7IGxldHRlci1zcGFjaW5nOjJweDsgY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjQpOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0KLmZ0LXVybCAgICB7IGZvbnQtZmFtaWx5OidQbGF5ZmFpciBEaXNwbGF5JyxzZXJpZjsgZm9udC1zaXplOjExcHg7IGNvbG9yOnZhcigtLW9yYW5nZSk7IH0KCi8qIOKUgOKUgOKUgCBBTklNQVRJT05TIOKUgOKUgOKUgCAqLwpAa2V5ZnJhbWVzIHJpc2VVcCB7CiAgZnJvbSB7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKDI0cHgpOyBvcGFjaXR5OjA7IH0KICB0byAgIHsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7ICAgIG9wYWNpdHk6MTsgfQp9Ci5jYXJkIHsgYW5pbWF0aW9uOiByaXNlVXAgMC43cyAwLjFzIGN1YmljLWJlemllcigwLjE2LDEsMC4zLDEpIGJvdGg7IH0KPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCjxkaXYgY2xhc3M9InBhZ2UtYmciPjwvZGl2Pgo8ZGl2IGNsYXNzPSJmbG9hdGllcyIgaWQ9ImZsb2F0aWVzIj48L2Rpdj4KCjxkaXYgY2xhc3M9IndyYXBwZXIiPgoKICA8IS0tIE5hdiAtLT4KICA8bmF2IGNsYXNzPSJ0b3AtbmF2Ij4KICAgIDxhIGNsYXNzPSJuYXYtbG9nbyIgaHJlZj0iaHR0cHM6Ly9jYXNlY2xpbmljLm9yZyI+CiAgICAgIDxkaXYgY2xhc3M9Im5hdi1jcm9zcyI+PC9kaXY+CiAgICAgIDxzcGFuIGNsYXNzPSJuYXYtYnJhbmQiPkNhc2UgSG9zcGl0YWw8L3NwYW4+CiAgICA8L2E+CiAgICA8YSBjbGFzcz0iYmFjay1idG4iIGhyZWY9Imh0dHBzOi8vY2FzZWNsaW5pYy5vcmcvbWFya2V0aW5nZGlyZWN0b3IiPuKGkCBCYWNrPC9hPgogIDwvbmF2PgoKICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCBDQVJEIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KICA8ZGl2IGNsYXNzPSJjYXJkIj4KCiAgICA8IS0tIEhFUk8gQkFORCDigJQgZmxhdCwgbm8gb3ZlcmZsb3c6aGlkZGVuLCBubyB3YXZlIC0tPgogICAgPGRpdiBjbGFzcz0iaGVyby1iYW5kIj4KICAgICAgPGRpdiBjbGFzcz0iaGVyby1ibG9iIGhlcm8tYmxvYi0xIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaGVyby1ibG9iIGhlcm8tYmxvYi0yIj48L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImJhZGdlLTMwIj4KICAgICAgICA8c3BhbiBjbGFzcz0ibiI+MzA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InkiPllyczwvc3Bhbj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIFBST0ZJTEUgUk9XOiBwaG90byBiZXNpZGUgbmFtZSDigJQgbm8gZmxvYXRpbmcsIG5vIG92ZXJsYXAgLS0+CiAgICAgIDxkaXYgY2xhc3M9InByb2ZpbGUtcm93Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJuYW1lLWJsb2NrIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5hbWUtaG9zcCI+Q2FzZSBIb3NwaXRhbCBVZ2FuZGE8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5hbWUtZnVsbCI+RXZlbHluPGJyPk1hdHNpa28gQmlydW5naTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibmFtZS10aXRsZSI+TWFya2V0aW5nIERpcmVjdG9yICZuYnNwO8K3Jm5ic3A7IFBSICZhbXA7IENvbW11bmljYXRpb25zPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZXJvLXF1b3RlIj4iRmx1ZW50IGluIEhlYWx0aCBDYXJlIOKAlCBUZWxsaW5nIHRoZSBTdG9yeSBvZiAzMCBZZWFycyBvZiBIZWFsaW5nIjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDwhLS0gQ29sb3VyIGRpdmlkZXIgYmFuZCAocmVwbGFjZXMgd2F2ZSBTVkcpIC0tPgogICAgPGRpdiBjbGFzcz0iZGl2aWRlci1iYW5kIj48L2Rpdj4KCiAgICA8IS0tIEJPRFkgLS0+CiAgICA8ZGl2IGNsYXNzPSJjYXJkLWJvZHkiPgoKICAgICAgPCEtLSBPcm5hbWVudCAtLT4KICAgICAgPGRpdiBjbGFzcz0ib3JuYW1lbnQiPgogICAgICAgIDxkaXYgY2xhc3M9Im9ybi1saW5lIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJvcm4tY2VudGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im9ybi1zbSI+PC9kaXY+PGRpdiBjbGFzcz0ib3JuLWRpYW1vbmQiPjwvZGl2PjxkaXYgY2xhc3M9Im9ybi1zbSI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ib3JuLWxpbmUiPjwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gVGFncyAtLT4KICAgICAgPGRpdiBjbGFzcz0idGFncyI+CiAgICAgICAgPHNwYW4gY2xhc3M9InRhZyI+UHVibGljIFJlbGF0aW9uczwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idGFnIj5CcmFuZCBTdHJhdGVneTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0idGFnIj5IZWFsdGggTWFya2V0aW5nPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWciPk1lZGlhICZhbXA7IENvbW1zPC9zcGFuPgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gQ29udGFjdCBsaXN0IC0tPgogICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LWxpc3QiPgoKICAgICAgICA8YSBjbGFzcz0iYy1yb3ciIGhyZWY9InRlbDorMjU2MzEyMjUwNzAwIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImMtaWNvbiBjaS1waCI+8J+TnjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYy10ZXh0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImMtbGJsIj5EaXJlY3QgTGluZTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImMtdmFsIj4wMzEyIDI1MCA3MDAgJm5ic3A7fCZuYnNwOyAwNzAxIDI1MCAzNjI8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjLWFyciI+4oC6PC9zcGFuPgogICAgICAgIDwvYT4KCiAgICAgICAgPGEgY2xhc3M9ImMtcm93IiBocmVmPSJodHRwczovL3dhLm1lLzI1Njc4NzMyMTAzND90ZXh0PUhlbGxvJTIwRXZlbHluJTJDJTIwSSUyMGZvdW5kJTIweW91ciUyMHByb2ZpbGUlMjBhdCUyMENhc2UlMjBIb3NwaXRhbCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjLWljb24gY2ktd2EiPvCfkqw8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImMtdGV4dCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjLWxibCI+V2hhdHNBcHA8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjLXZhbCBwdXJwbGUiPjA3ODcgMzIxIDAzNDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9ImMtYXJyIj7igLo8L3NwYW4+CiAgICAgICAgPC9hPgoKICAgICAgICA8YSBjbGFzcz0iYy1yb3ciIGhyZWY9Im1haWx0bzplYmlydW5naUBjYXNlbWVkc2VydmljZXMub3JnP3N1YmplY3Q9SGVsbG8lMjBmcm9tJTIweW91ciUyMERpZ2l0YWwlMjBDYXJkJmJvZHk9SGVsbG8lMjBFdmVseW4lMkMlMEElMEFJJTIwZm91bmQlMjB5b3VyJTIwcHJvZmlsZSUyMG9uJTIwQ2FzZSUyMEhvc3BpdGFsJTIwYW5kJTIwd291bGQlMjBsaWtlJTIwdG8lMjBjb25uZWN0LiUwQSUwQUtpbmQlMjByZWdhcmRzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImMtaWNvbiBjaS1lbSI+4pyJ77iPPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjLXRleHQiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYy1sYmwiPkVtYWlsPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYy12YWwgcHVycGxlIj5lYmlydW5naUBjYXNlbWVkc2VydmljZXMub3JnPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYy1hcnIiPuKAujwvc3Bhbj4KICAgICAgICA8L2E+CgogICAgICAgIDxhIGNsYXNzPSJjLXJvdyIgaHJlZj0iaHR0cHM6Ly93d3cuY2FzZW1lZHNlcnZpY2VzLm9yZyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iYy1pY29uIGNpLXdlYiI+8J+MkDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYy10ZXh0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImMtbGJsIj5XZWJzaXRlPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYy12YWwgZ3JlZW4iPnd3dy5jYXNlbWVkc2VydmljZXMub3JnPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYy1hcnIiPuKAujwvc3Bhbj4KICAgICAgICA8L2E+CgogICAgICAgIDxkaXYgY2xhc3M9ImMtcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImMtaWNvbiBjaS1sb2MiPvCfk408L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImMtdGV4dCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjLWxibCI+TG9jYXRpb248L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjLXZhbCI+UGxvdCA2OS83MSBCdWdhbmRhIFJvYWQsIEthbXBhbGE8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgIDwvZGl2PjwhLS0gL2NvbnRhY3QtbGlzdCAtLT4KCiAgICAgIDwhLS0gQWN0aW9uIGJ1dHRvbnMgLS0+CiAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncmlkIj4KCiAgICAgICAgPGEgY2xhc3M9ImJ0biBidG4tc2F2ZSIKICAgICAgICAgICBocmVmPSJkYXRhOnRleHQvdmNhcmQ7Y2hhcnNldD11dGYtOCxCRUdJTjpWQ0FSRCUwQVZFUlNJT046My4wJTBBRk46RXZlbHluJTIwTWF0c2lrbyUyMEJpcnVuZ2klMEFOOkJpcnVuZ2k7RXZlbHluJTIwTWF0c2lrbzs7OyUwQU9SRzpDYXNlJTIwSG9zcGl0YWwlMEFUSVRMRTpNYXJrZXRpbmclMjBEaXJlY3RvciUwQVRFTDtUWVBFPVdPUks6KzI1NjMxMjI1MDcwMCUwQVRFTDtUWVBFPUNFTEw6KzI1NjcwMTI1MDM2MiUwQVRFTDtUWVBFPUNFTEw6KzI1Njc4NzMyMTAzNCUwQUVNQUlMOmViaXJ1bmdpJTQwY2FzZW1lZHNlcnZpY2VzLm9yZyUwQVVSTDpodHRwczovL3d3dy5jYXNlbWVkc2VydmljZXMub3JnJTBBQURSO1RZUEU9V09SSzo7O1Bsb3QlMjA2OS83MSUyMEJ1Z2FuZGElMjBSb2FkO0thbXBhbGE7O1VnYW5kYSUwQUVORDpWQ0FSRCIKICAgICAgICAgICBkb3dubG9hZD0iRXZlbHluLU1hdHNpa28tQmlydW5naS52Y2YiPgogICAgICAgICAg4qyHIFNhdmUgQ29udGFjdAogICAgICAgIDwvYT4KCiAgICAgICAgPGEgY2xhc3M9ImJ0biBidG4tY2FsbCIgaHJlZj0idGVsOisyNTYzMTIyNTA3MDAiPgogICAgICAgICAg8J+TniBDYWxsCiAgICAgICAgPC9hPgoKICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi13YSIgaHJlZj0iaHR0cHM6Ly93YS5tZS8yNTY3ODczMjEwMzQ/dGV4dD1IZWxsbyUyMEV2ZWx5biUyQyUyMEklMjBmb3VuZCUyMHlvdXIlMjBwcm9maWxlJTIwYXQlMjBDYXNlJTIwSG9zcGl0YWwiPgogICAgICAgICAg8J+SrCBXaGF0c0FwcAogICAgICAgIDwvYT4KCiAgICAgICAgPGEgY2xhc3M9ImJ0biBidG4tZW1haWwiIGhyZWY9Im1haWx0bzplYmlydW5naUBjYXNlbWVkc2VydmljZXMub3JnP3N1YmplY3Q9SGVsbG8lMjBmcm9tJTIweW91ciUyMERpZ2l0YWwlMjBDYXJkJmJvZHk9SGVsbG8lMjBFdmVseW4lMkMlMEElMEFJJTIwZm91bmQlMjB5b3VyJTIwcHJvZmlsZSUyMG9uJTIwQ2FzZSUyMEhvc3BpdGFsJTIwYW5kJTIwd291bGQlMjBsaWtlJTIwdG8lMjBjb25uZWN0LiUwQSUwQUtpbmQlMjByZWdhcmRzIj4KICAgICAgICAgIOKciSBFbWFpbAogICAgICAgIDwvYT4KCiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1tc2ciIG9uY2xpY2s9InNjcm9sbFRvRm9ybSgpIj4KICAgICAgICAgIOKcpiBTZW5kIGEgTWVzc2FnZQogICAgICAgIDwvYnV0dG9uPgoKICAgICAgPC9kaXY+PCEtLSAvYnRuLWdyaWQgLS0+CgogICAgICA8IS0tIE9ybmFtZW50IC0tPgogICAgICA8ZGl2IGNsYXNzPSJvcm5hbWVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0ib3JuLWxpbmUiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im9ybi1jZW50ZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ib3JuLXNtIj48L2Rpdj48ZGl2IGNsYXNzPSJvcm4tZGlhbW9uZCI+PC9kaXY+PGRpdiBjbGFzcz0ib3JuLXNtIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJvcm4tbGluZSI+PC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBMZWFkIEZvcm0gLS0+CiAgICAgIDxkaXYgY2xhc3M9ImxlYWQtd3JhcCIgaWQ9ImNvbnRhY3QtZm9ybSI+CgogICAgICAgIDxkaXYgaWQ9ImZvcm0tdmlldyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWFkLXRpdGxlIj5HZXQgaW4gVG91Y2g8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtc3ViIj5FdmVseW4gd2lsbCByZXNwb25kIHdpdGhpbiAyNCBob3Vycy48L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+CiAgICAgICAgICAgIDxsYWJlbD5Zb3VyIE5hbWU8L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImYtbmFtZSIgcGxhY2Vob2xkZXI9IkZ1bGwgbmFtZSI+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIj4KICAgICAgICAgICAgPGxhYmVsPlBob25lIC8gV2hhdHNBcHA8L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGVsIiBpZD0iZi1waG9uZSIgcGxhY2Vob2xkZXI9IisyNTYgN3h4IHh4eCB4eHgiPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+CiAgICAgICAgICAgIDxsYWJlbD5FbWFpbCBBZGRyZXNzPC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImVtYWlsIiBpZD0iZi1lbWFpbCIgcGxhY2Vob2xkZXI9InlvdXJAZW1haWwuY29tIj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPgogICAgICAgICAgICA8bGFiZWw+VG9waWM8L2xhYmVsPgogICAgICAgICAgICA8c2VsZWN0IGlkPSJmLXRvcGljIj4KICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPlNlbGVjdC4uLjwvb3B0aW9uPgogICAgICAgICAgICAgIDxvcHRpb24+TWVkaWEgJmFtcDsgUHJlc3MgRW5xdWlyeTwvb3B0aW9uPgogICAgICAgICAgICAgIDxvcHRpb24+UGFydG5lcnNoaXAgLyBDb2xsYWJvcmF0aW9uPC9vcHRpb24+CiAgICAgICAgICAgICAgPG9wdGlvbj5NYXJrZXRpbmcgU2VydmljZXM8L29wdGlvbj4KICAgICAgICAgICAgICA8b3B0aW9uPkNvcnBvcmF0ZSBIZWFsdGggUHJvZ3JhbTwvb3B0aW9uPgogICAgICAgICAgICAgIDxvcHRpb24+UGF0aWVudCBSZWZlcnJhbDwvb3B0aW9uPgogICAgICAgICAgICAgIDxvcHRpb24+R2VuZXJhbCBFbnF1aXJ5PC9vcHRpb24+CiAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+CiAgICAgICAgICAgIDxsYWJlbD5NZXNzYWdlPC9sYWJlbD4KICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJmLW1zZyIgcGxhY2Vob2xkZXI9IkhlbGxvIEV2ZWx5biwgSSB3b3VsZCBsaWtlIHRvLi4uIj48L3RleHRhcmVhPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4tc3VibWl0IiBvbmNsaWNrPSJzdWJtaXRGb3JtKCkiPuKcpiAmbmJzcDtTZW5kIE1lc3NhZ2UmbmJzcDsg4pymPC9idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgaWQ9InR5LXZpZXciIGNsYXNzPSJ0eSI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idHktaWNvbiI+8J+Smjwvc3Bhbj4KICAgICAgICAgIDxkaXYgY2xhc3M9InR5LXRpdGxlIj5UaGFuayBZb3UhPC9kaXY+CiAgICAgICAgICA8cCBjbGFzcz0idHktbXNnIj4KICAgICAgICAgICAgWW91ciBtZXNzYWdlIGhhcyBiZWVuIHJlY2VpdmVkLjxicj4KICAgICAgICAgICAgRXZlbHluIHdpbGwgYmUgaW4gdG91Y2ggdmVyeSBzb29uLjxicj48YnI+CiAgICAgICAgICAgIDxlbSBzdHlsZT0iZm9udC1zaXplOjEwcHg7Y29sb3I6I2FhYTsiPkNhc2UgSG9zcGl0YWwgwrcgUmVzaWxpZW50IGluIEhlYWx0aCBDYXJlPC9lbT4KICAgICAgICAgIDwvcD4KICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vY2FzZWhvc3BpdGFsLm9yZyIgY2xhc3M9InR5LWxpbmsiPlZpc2l0IE91ciBIb3NwaXRhbCDihpI8L2E+CiAgICAgICAgPC9kaXY+CgogICAgICA8L2Rpdj48IS0tIC9sZWFkLXdyYXAgLS0+CgogICAgPC9kaXY+PCEtLSAvY2FyZC1ib2R5IC0tPgoKICAgIDwhLS0gRm9vdGVyIC0tPgogICAgPGRpdiBjbGFzcz0iY2FyZC1mb290ZXIiPgogICAgICA8c3BhbiBjbGFzcz0iZnQtc2xvZ2FuIj5SZXNpbGllbnQgaW4gSGVhbHRoIENhcmUgwrcgRXN0LiAxOTk1PC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0iZnQtdXJsIj5jYXNlY2xpbmljLm9yZzwvc3Bhbj4KICAgIDwvZGl2PgoKICA8L2Rpdj48IS0tIC9jYXJkIC0tPgo8L2Rpdj48IS0tIC93cmFwcGVyIC0tPgoKPHNjcmlwdD4KLyog4pSA4pSAIEZsb2F0aW5nIGNyb3NzZXMg4pSA4pSAICovCmNvbnN0IGNmZyA9IFsKICB7IGM6J2ZjLWdyZWVuJywgIHM6WzE0LDIwLDI2LDE4XSwgbjo4IH0sCiAgeyBjOidmYy13aGl0ZScsICBzOlsxMCwxNiwyMCwxMl0sIG46NyB9LAogIHsgYzonZmMtb3JhbmdlJywgczpbMTQsMTgsMjQsMTZdLCBuOjcgfSwKICB7IGM6J2ZjLXB1cnBsZScsIHM6WzEyLDE4LDIyLDE2XSwgbjo3IH0sCl07CmNvbnN0IGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmbG9hdGllcycpOwpjZmcuZm9yRWFjaCgoeyBjLCBzLCBuIH0pID0+IHsKICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykgewogICAgY29uc3Qgc3ogPSBzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHMubGVuZ3RoKV07CiAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgZWwuY2xhc3NOYW1lID0gJ2Zsb2F0aWUgJyArIGM7CiAgICBlbC5pbm5lckhUTUwgPSAnPHNwYW4+PC9zcGFuPic7CiAgICBlbC5zdHlsZS5sZWZ0ICAgICAgICAgICAgID0gKE1hdGgucmFuZG9tKCkgKiAxMDApICsgJyUnOwogICAgZWwuc3R5bGUuYm90dG9tICAgICAgICAgICA9IC0oc3ogKyAyMCkgKyAncHgnOwogICAgZWwuc3R5bGUud2lkdGggICAgICAgICAgICA9IHN6ICsgJ3B4JzsKICAgIGVsLnN0eWxlLmhlaWdodCAgICAgICAgICAgPSBzeiArICdweCc7CiAgICBlbC5zdHlsZS5hbmltYXRpb25EdXJhdGlvbiA9ICg5ICsgTWF0aC5yYW5kb20oKSAqIDEzKSArICdzJzsKICAgIGVsLnN0eWxlLmFuaW1hdGlvbkRlbGF5ICAgPSAoTWF0aC5yYW5kb20oKSAqIDYpICsgJ3MnOwogICAgYm94LmFwcGVuZENoaWxkKGVsKTsKICB9Cn0pOwoKLyog4pSA4pSAIFNjcm9sbCB0byBmb3JtIOKUgOKUgCAqLwpmdW5jdGlvbiBzY3JvbGxUb0Zvcm0oKSB7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhY3QtZm9ybScpLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6J3Ntb290aCcsIGJsb2NrOidjZW50ZXInIH0pOwogIHNldFRpbWVvdXQoKCkgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2YtbmFtZScpLmZvY3VzKCksIDYwMCk7Cn0KCi8qIOKUgOKUgCBTdWJtaXQgZm9ybSDilIDilIAgKi8KZnVuY3Rpb24gc3VibWl0Rm9ybSgpIHsKICBjb25zdCBuYW1lICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmLW5hbWUnKS52YWx1ZS50cmltKCk7CiAgY29uc3QgcGhvbmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZi1waG9uZScpLnZhbHVlLnRyaW0oKTsKICBjb25zdCBlbWFpbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmLWVtYWlsJykudmFsdWUudHJpbSgpOwogIGNvbnN0IHRvcGljID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2YtdG9waWMnKS52YWx1ZTsKICBjb25zdCBtc2cgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmLW1zZycpLnZhbHVlLnRyaW0oKTsKCiAgaWYgKCFuYW1lKSAgeyBhbGVydCgnUGxlYXNlIGVudGVyIHlvdXIgbmFtZS4nKTsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2YtbmFtZScpLmZvY3VzKCk7IHJldHVybjsgfQogIGlmICghcGhvbmUgJiYgIWVtYWlsKSB7IGFsZXJ0KCdQbGVhc2UgZW50ZXIgYSBwaG9uZSBvciBlbWFpbC4nKTsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2YtcGhvbmUnKS5mb2N1cygpOyByZXR1cm47IH0KCiAgY29uc3QgYm9keSA9IGVuY29kZVVSSUNvbXBvbmVudCgKICAgIGBOYW1lOiAke25hbWV9XG5QaG9uZTogJHtwaG9uZX1cbkVtYWlsOiAke2VtYWlsfVxuVG9waWM6ICR7dG9waWN9XG5cbk1lc3NhZ2U6XG4ke21zZ31cblxuLS0tXG5TZW50IGZyb20gY2FzZWNsaW5pYy5vcmcvbWFya2V0aW5nZGlyZWN0b3JgCiAgKTsKICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGBtYWlsdG86ZWJpcnVuZ2lAY2FzZW1lZHNlcnZpY2VzLm9yZz9zdWJqZWN0PUNhcmQgRW5xdWlyeTogJHtlbmNvZGVVUklDb21wb25lbnQodG9waWN8fCdHZW5lcmFsJyl9JmJvZHk9JHtib2R5fWA7CgogIHNldFRpbWVvdXQoKCkgPT4gewogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zvcm0tdmlldycpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHktdmlldycpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogIH0sIDUwMCk7Cn0KCi8qIOKUgOKUgCBTdGFnZ2VyIGNvbnRhY3Qgcm93cyBvbiBzY3JvbGwg4pSA4pSAICovCmNvbnN0IG9icyA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihlbnRyaWVzID0+IHsKICBlbnRyaWVzLmZvckVhY2goZSA9PiB7CiAgICBpZiAoZS5pc0ludGVyc2VjdGluZykgeyBlLnRhcmdldC5zdHlsZS5vcGFjaXR5PScxJzsgZS50YXJnZXQuc3R5bGUudHJhbnNmb3JtPSd0cmFuc2xhdGVYKDApJzsgfQogIH0pOwp9LCB7IHRocmVzaG9sZDowLjEgfSk7CmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jLXJvdywgLmJ0bicpLmZvckVhY2goKGVsLCBpKSA9PiB7CiAgZWwuc3R5bGUub3BhY2l0eSA9ICcwJzsKICBlbC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlWCgtMTBweCknOwogIGVsLnN0eWxlLnRyYW5zaXRpb24gPSBgb3BhY2l0eSAwLjM1cyAke2kqMC4wNX1zIGVhc2UsIHRyYW5zZm9ybSAwLjM1cyAke2kqMC4wNX1zIGVhc2VgOwogIG9icy5vYnNlcnZlKGVsKTsKfSk7Cjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4=","embed":""}
30
Yrs
Case Hospital Uganda
Evelyn
Matsiko Birungi
Matsiko Birungi
Marketing Director · PR & Communications
"Fluent in Health Care — Telling the Story of 30 Years of Healing"
Public Relations
Brand Strategy
Health Marketing
Media & Comms
📞
Direct Line
0312 250 700 | 0701 250 362
›
💬
WhatsApp
0787 321 034
›
✉️
Email
ebirungi@casemedservices.org
›
🌐
Website
www.casemedservices.org
›
📍
Location
Plot 69/71 Buganda Road, Kampala
Get in Touch
Evelyn will respond within 24 hours.
💚
Thank You!
Your message has been received.
Evelyn will be in touch very soon.
Case Hospital · Resilient in Health Care
Resilient in Health Care · Est. 1995
caseclinic.org