{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICAKICAgIDwhLS0gUHJpbWFyeSBNZXRhIFRhZ3MgLS0+CiAgICA8dGl0bGU+WmlwcG9yYWggS3V0ZWVzYSB8IEF1dGhvciwgUGFzdG9yICYgR2hvc3R3cml0ZXIgfCBIYXBwaWx5IFNpbmdsZTwvdGl0bGU+CiAgICA8bWV0YSBuYW1lPSJ0aXRsZSIgY29udGVudD0iWmlwcG9yYWggS3V0ZWVzYSB8IEF1dGhvciwgUGFzdG9yICYgR2hvc3R3cml0ZXIgfCBIYXBwaWx5IFNpbmdsZSI+CiAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iUGFzdG9yLCBTdG9yeXRlbGxlciwgYW5kIEdob3N0d3JpdGVyLiBBdXRob3Igb2YgJ0hhcHBpbHkgU2luZ2xlOiAxMyBLZXlzIHRvIFRocml2aW5nIGluIFlvdXIgU2luZ2xlbmVzcyBhbmQgSW5kaXZpZHVhbGl0eS4nIFR1cm5pbmcgb3JkaW5hcnkgd29yZHMgaW50byBleHRyYW9yZGluYXJ5IGNoYW5nZS4gQ29ubmVjdCB3aXRoIFppcHBvcmFoIEt1dGVlc2EuIj4KICAgIDxtZXRhIG5hbWU9ImtleXdvcmRzIiBjb250ZW50PSJaaXBwb3JhaCBLdXRlZXNhLCBIYXBwaWx5IFNpbmdsZSwgQXV0aG9yLCBQYXN0b3IsIEdob3N0d3JpdGVyLCBVZ2FuZGEsIFN0b3J5dGVsbGVyLCBTZWxmLUxvdmUsIEVtcG93ZXJtZW50LCBBZnJpY2FuIEF1dGhvciwgQm9vayBMYXVuY2gsIEVudGViYmUsIENocmlzdGlhbiBBdXRob3IsIFdvbWVuIEVtcG93ZXJtZW50Ij4KICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgY29udGVudD0iWmlwcG9yYWggS3V0ZWVzYSI+CiAgICA8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9ImluZGV4LCBmb2xsb3ciPgogICAgCiAgICA8IS0tIE9wZW4gR3JhcGggLyBGYWNlYm9vayAtLT4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJwcm9maWxlIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9hdXRob3ItcHJvZmlsZSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IlppcHBvcmFoIEt1dGVlc2EgfCBBdXRob3Igb2YgSGFwcGlseSBTaW5nbGUiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSLwn5OWIFBhc3RvciwgU3Rvcnl0ZWxsZXIsIGFuZCBHaG9zdHdyaXRlci4gVHVybmluZyBvcmRpbmFyeSB3b3JkcyBpbnRvIGV4dHJhb3JkaW5hcnkgY2hhbmdlLiBBdXRob3Igb2YgJ0hhcHBpbHkgU2luZ2xlOiAxMyBLZXlzIHRvIFRocml2aW5nIGluIFlvdXIgU2luZ2xlbmVzcyBhbmQgSW5kaXZpZHVhbGl0eS4nIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzpzaXRlX25hbWUiIGNvbnRlbnQ9IkhhbmRzaGFrZSBBZnJpY2EiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmxvY2FsZSIgY29udGVudD0iZW5fVVMiPgogICAgCiAgICA8IS0tIFR3aXR0ZXIgLS0+CiAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnlfbGFyZ2VfaW1hZ2UiPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9hdXRob3ItcHJvZmlsZSI+CiAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOnRpdGxlIiBjb250ZW50PSJaaXBwb3JhaCBLdXRlZXNhIHwgQXV0aG9yIG9mIEhhcHBpbHkgU2luZ2xlIj4KICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IvCfk5YgUGFzdG9yLCBTdG9yeXRlbGxlciwgYW5kIEdob3N0d3JpdGVyLiBUdXJuaW5nIG9yZGluYXJ5IHdvcmRzIGludG8gZXh0cmFvcmRpbmFyeSBjaGFuZ2UuIj4KICAgIAogICAgPCEtLSBUaGVtZSBDb2xvciAtLT4KICAgIDxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjMkQ1QTRBIj4KICAgIDxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tVGlsZUNvbG9yIiBjb250ZW50PSIjMkQ1QTRBIj4KICAgIAogICAgPCEtLSBDYW5vbmljYWwgVVJMIC0tPgogICAgPGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9hdXRob3ItcHJvZmlsZSI+CiAgICAKICAgIDxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CiAgICA8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20iIGNyb3Nzb3JpZ2luPgogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1QbGF5ZmFpcitEaXNwbGF5Oml0YWwsd2dodEAwLDQwMDswLDUwMDswLDYwMDswLDcwMDswLDgwMDsxLDQwMDsxLDUwMCZmYW1pbHk9TG9yYTppdGFsLHdnaHRAMCw0MDA7MCw1MDA7MCw2MDA7MCw3MDA7MSw0MDA7MSw1MDAmZmFtaWx5PU1vbnRzZXJyYXQ6d2dodEAzMDA7NDAwOzUwMDs2MDA7NzAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIAogICAgPHN0eWxlPgogICAgICAgIDpyb290IHsKICAgICAgICAgICAgLS1zYWdlLWdyZWVuOiAjMkQ1QTRBOwogICAgICAgICAgICAtLWxlYWYtZ3JlZW46ICMzRDdBNUE7CiAgICAgICAgICAgIC0tbWludC1mcmVzaDogIzZCQTY4QTsKICAgICAgICAgICAgLS13YXJtLWdvbGQ6ICNENEE4NTM7CiAgICAgICAgICAgIC0tc29mdC1nb2xkOiAjRjVFNkM4OwogICAgICAgICAgICAtLWNyZWFtLXdoaXRlOiAjRkRGOEYwOwogICAgICAgICAgICAtLXdhcm0tYnJvd246ICM4QjZCNEE7CiAgICAgICAgICAgIC0tZGVlcC1jaGFyY29hbDogIzJBMkEyQTsKICAgICAgICAgICAgLS1zb2Z0LXBpbms6ICNFOEQ0RDA7CiAgICAgICAgICAgIC0tZ29sZGVuLWdsb3c6IHJnYmEoMjEyLCAxNjgsIDgzLCAwLjMpOwogICAgICAgICAgICAtLWdyZWVuLWdsb3c6IHJnYmEoNDUsIDkwLCA3NCwgMC4zKTsKICAgICAgICB9CgogICAgICAgICogewogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICBib2R5IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdMb3JhJywgc2VyaWY7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNyZWFtLXdoaXRlKTsKICAgICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICB9CgogICAgICAgIC8qIEJhY2tncm91bmQgKi8KICAgICAgICAuZWxlZ2FudC1iZyB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB6LWluZGV4OiAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAKICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDMwJSAyMCUsIHZhcigtLWdvbGRlbi1nbG93KSAwJSwgdHJhbnNwYXJlbnQgNTAlKSwKICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDcwJSA4MCUsIHZhcigtLWdyZWVuLWdsb3cpIDAlLCB0cmFuc3BhcmVudCA1MCUpLAogICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tY3JlYW0td2hpdGUpIDAlLCB2YXIoLS1zb2Z0LWdvbGQpIDUwJSwgdmFyKC0tY3JlYW0td2hpdGUpIDEwMCUpOwogICAgICAgIH0KCiAgICAgICAgLmxlYWYtcGF0dGVybiB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB6LWluZGV4OiAxOwogICAgICAgICAgICBvcGFjaXR5OiAwLjAzOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPSc2MCcgaGVpZ2h0PSc2MCcgdmlld0JveD0nMCAwIDYwIDYwJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMzAgNSBDMjUgMTUsIDE1IDIwLCAxMCAzMCBDMTUgMzUsIDI1IDQwLCAzMCA1NSBDMzUgNDAsIDQ1IDM1LCA1MCAzMCBDNDUgMjAsIDM1IDE1LCAzMCA1JyBmaWxsPSclMjMyRDVBNEEnIC8lM0UlM0Mvc3ZnJTNFIik7CiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogODBweCA4MHB4OwogICAgICAgIH0KCiAgICAgICAgLmZsb2F0aW5nLWVsZW1lbnRzIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLmZsb2F0aW5nLWxlYWYgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtOwogICAgICAgICAgICBvcGFjaXR5OiAwLjE7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmxvYXRMZWFmIDE1cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIC5mbG9hdGluZy1sZWFmOm50aC1jaGlsZCgxKSB7IGxlZnQ6IDEwJTsgdG9wOiAyMCU7IGFuaW1hdGlvbi1kZWxheTogMHM7IH0KICAgICAgICAuZmxvYXRpbmctbGVhZjpudGgtY2hpbGQoMikgeyBsZWZ0OiA4MCU7IHRvcDogNDAlOyBhbmltYXRpb24tZGVsYXk6IDNzOyB9CiAgICAgICAgLmZsb2F0aW5nLWxlYWY6bnRoLWNoaWxkKDMpIHsgbGVmdDogMjAlOyB0b3A6IDcwJTsgYW5pbWF0aW9uLWRlbGF5OiA2czsgfQogICAgICAgIC5mbG9hdGluZy1sZWFmOm50aC1jaGlsZCg0KSB7IGxlZnQ6IDcwJTsgdG9wOiAxNSU7IGFuaW1hdGlvbi1kZWxheTogOXM7IH0KICAgICAgICAuZmxvYXRpbmctbGVhZjpudGgtY2hpbGQoNSkgeyBsZWZ0OiA5MCU7IHRvcDogODAlOyBhbmltYXRpb24tZGVsYXk6IDEyczsgfQoKICAgICAgICBAa2V5ZnJhbWVzIGZsb2F0TGVhZiB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHJvdGF0ZSgwZGVnKTsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpIHJvdGF0ZSgxMGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5jb250YWluZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgICAgICBtYXgtd2lkdGg6IDQ4MHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgfQoKICAgICAgICAvKiBUb3AgTmF2aWdhdGlvbiAqLwogICAgICAgIC50b3AtbmF2IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDA7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CgogICAgICAgIC5uYXYtbGluayB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC45KSwgcmdiYSgyNTMsMjQ4LDI0MCwwLjkpKTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tc29mdC1nb2xkKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgcGFkZGluZzogMTBweCAxOHB4OwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1icm93bik7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAubmF2LWxpbms6aG92ZXIgewogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXdhcm0tZ29sZCk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA1cHggMTVweCB2YXIoLS1nb2xkZW4tZ2xvdyk7CiAgICAgICAgfQoKICAgICAgICAubmF2LWxpbmsuYWN0aXZlIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc2FnZS1ncmVlbiksIHZhcigtLWxlYWYtZ3JlZW4pKTsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zYWdlLWdyZWVuKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvZnQtZ29sZCk7CiAgICAgICAgfQoKICAgICAgICAvKiBIZWFkZXIgU2VjdGlvbiAqLwogICAgICAgIC5oZWFkZXIgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5Eb3duIDFzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIGZhZGVJbkRvd24gewogICAgICAgICAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTsgfQogICAgICAgICAgICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQogICAgICAgIH0KCiAgICAgICAgLmF1dGhvci1iYWRnZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc2FnZS1ncmVlbiksIHZhcigtLWxlYWYtZ3JlZW4pKTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0td2FybS1nb2xkKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgcGFkZGluZzogMTBweCAyNXB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDVweCAyMHB4IHZhcigtLWdyZWVuLWdsb3cpOwogICAgICAgIH0KCiAgICAgICAgLmF1dGhvci1iYWRnZSAuYmFkZ2UtaWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICAgIH0KCiAgICAgICAgLmF1dGhvci1iYWRnZSBzcGFuIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc29mdC1nb2xkKTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICB9CgogICAgICAgIC8qIFByb2ZpbGUgUGhvdG8gKi8KICAgICAgICAucHJvZmlsZS1jb250YWluZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIG1hcmdpbjogMjBweCBhdXRvOwogICAgICAgICAgICB3aWR0aDogMjAwcHg7CiAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMXMgZWFzZSAwLjNzIGJvdGg7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIGZhZGVJblVwIHsKICAgICAgICAgICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTsgfQogICAgICAgICAgICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQogICAgICAgIH0KCiAgICAgICAgLnByb2ZpbGUtcmluZyB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAtMTBweDsKICAgICAgICAgICAgbGVmdDogLTEwcHg7CiAgICAgICAgICAgIHJpZ2h0OiAtMTBweDsKICAgICAgICAgICAgYm90dG9tOiAtMTBweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBjb25pYy1ncmFkaWVudChmcm9tIDBkZWcsIHZhcigtLXdhcm0tZ29sZCksIHZhcigtLXNhZ2UtZ3JlZW4pLCB2YXIoLS1taW50LWZyZXNoKSwgdmFyKC0td2FybS1nb2xkKSk7CiAgICAgICAgICAgIGFuaW1hdGlvbjogcm90YXRlUmluZyAxMHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyByb3RhdGVSaW5nIHsKICAgICAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KCiAgICAgICAgLnByb2ZpbGUtcGhvdG8gewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgICAgYm9yZGVyOiA1cHggc29saWQgdmFyKC0tY3JlYW0td2hpdGUpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggNDBweCB2YXIoLS1ncmVlbi1nbG93KTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc29mdC1waW5rKSwgdmFyKC0tc29mdC1nb2xkKSk7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLnByb2ZpbGUtcGhvdG8gLmluaXRpYWxzIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMy41cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc2FnZS1ncmVlbik7CiAgICAgICAgICAgIHRleHQtc2hhZG93OiAycHggMnB4IDRweCByZ2JhKDAsMCwwLDAuMSk7CiAgICAgICAgfQoKICAgICAgICAvKiBOYW1lIFNlY3Rpb24gKi8KICAgICAgICAubmFtZS1zZWN0aW9uIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW46IDI1cHggMDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5VcCAxcyBlYXNlIDAuNXMgYm90aDsKICAgICAgICB9CgogICAgICAgIC5uYW1lIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4ycmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc2FnZS1ncmVlbik7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICB9CgogICAgICAgIC50aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1icm93bik7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgfQoKICAgICAgICAuc3VidGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0xvcmEnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLWdvbGQpOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIH0KCiAgICAgICAgLyogTWlzc2lvbiBTdGF0ZW1lbnQgKi8KICAgICAgICAubWlzc2lvbi1jYXJkIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjkpLCByZ2JhKDI1MywyNDgsMjQwLDAuOSkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBwYWRkaW5nOiAyNXB4OwogICAgICAgICAgICBtYXJnaW46IDI1cHggMDsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSg0NSwgOTAsIDc0LCAwLjEpOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zb2Z0LWdvbGQpOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2UgMC43cyBib3RoOwogICAgICAgIH0KCiAgICAgICAgLm1pc3Npb24taWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KCiAgICAgICAgLm1pc3Npb24tdGV4dCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMTVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zYWdlLWdyZWVuKTsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS43OwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgfQoKICAgICAgICAubWlzc2lvbi1oaWdobGlnaHQgewogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1nb2xkKTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB9CgogICAgICAgIC8qIEJvb2sgUHJldmlldyBDYXJkICovCiAgICAgICAgLmJvb2stcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXNhZ2UtZ3JlZW4pLCB2YXIoLS1sZWFmLWdyZWVuKSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDI1cHg7CiAgICAgICAgICAgIG1hcmdpbjogMjVweCAwOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDIwcHg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTVweCA0MHB4IHZhcigtLWdyZWVuLWdsb3cpOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2UgMC45cyBib3RoOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5ib29rLXByZXZpZXc6aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7CiAgICAgICAgfQoKICAgICAgICAuYm9vay1jb3ZlciB7CiAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgICAgICAgbWluLXdpZHRoOiAxMDBweDsKICAgICAgICAgICAgaGVpZ2h0OiAxNDBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzhGRDlCNiAwJSwgIzVBQUI3QSAxMDAlKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICAgICAgYm94LXNoYWRvdzogNXB4IDVweCAyMHB4IHJnYmEoMCwwLDAsMC4zKTsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLmJvb2stY292ZXI6OmJlZm9yZSB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgYm90dG9tOiAwOwogICAgICAgICAgICB3aWR0aDogOHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsMCwwLDAuMSksIHJnYmEoMCwwLDAsMC4zKSk7CiAgICAgICAgfQoKICAgICAgICAuYm9vay10aXRsZS1zbWFsbCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgICAgICB9CgogICAgICAgIC5ib29rLWluZm8gewogICAgICAgICAgICBmbGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLmJvb2stbGFiZWwgewogICAgICAgICAgICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuN3JlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXdhcm0tZ29sZCk7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgICB9CgogICAgICAgIC5ib29rLW5hbWUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcmVhbS13aGl0ZSk7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgICB9CgogICAgICAgIC5ib29rLXN1YnRpdGxlLXRleHQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0xvcmEnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc29mdC1nb2xkKTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgIH0KCiAgICAgICAgLmJvb2stY3RhIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNXB4OwogICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLWdvbGQpOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgICAgIH0KCiAgICAgICAgLyogRmVhdHVyZWQgQmFkZ2UgKi8KICAgICAgICAuZmVhdHVyZWQtYmFkZ2UgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC45NSksIHJnYmEoMjUzLDI0OCwyNDAsMC45NSkpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS13YXJtLWdvbGQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMTVweCBhdXRvOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLDAsMCwwLjEpOwogICAgICAgIH0KCiAgICAgICAgLmZlYXR1cmVkLWJhZGdlOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDhweCAyNXB4IHZhcigtLWdvbGRlbi1nbG93KTsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zYWdlLWdyZWVuKTsKICAgICAgICB9CgogICAgICAgIC5mZWF0dXJlZC1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgfQoKICAgICAgICAuZmVhdHVyZWQtdGV4dCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1icm93bik7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICB9CgogICAgICAgIC5mZWF0dXJlZC10ZXh0IHN0cm9uZyB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zYWdlLWdyZWVuKTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICB9CgogICAgICAgIC5mZWF0dXJlZC1hcnJvdyB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLWdvbGQpOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLmZlYXR1cmVkLWJhZGdlOmhvdmVyIC5mZWF0dXJlZC1hcnJvdyB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzcHgpOwogICAgICAgIH0KCiAgICAgICAgLyogU2VjdGlvbiBIZWFkZXJzICovCiAgICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxNXB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIH0KCiAgICAgICAgLnNlY3Rpb24taGVhZGVyIGgzIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc2FnZS1ncmVlbik7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgfQoKICAgICAgICAuc2VjdGlvbi1oZWFkZXIgLmxpbmUgewogICAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgICBoZWlnaHQ6IDJweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS13YXJtLWdvbGQpLCB0cmFuc3BhcmVudCk7CiAgICAgICAgfQoKICAgICAgICAvKiBTZXJ2aWNlcyBTZWN0aW9uICovCiAgICAgICAgLnNlcnZpY2VzLXNlY3Rpb24gewogICAgICAgICAgICBtYXJnaW46IDMwcHggMDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5VcCAxcyBlYXNlIDEuMXMgYm90aDsKICAgICAgICB9CgogICAgICAgIC5zZXJ2aWNlLWdyaWQgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpOwogICAgICAgICAgICBnYXA6IDE1cHg7CiAgICAgICAgfQoKICAgICAgICAuc2VydmljZS1pdGVtIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjkpLCByZ2JhKDI1MywyNDgsMjQwLDAuOSkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4OwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDE1cHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc29mdC1nb2xkKTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5zZXJ2aWNlLWl0ZW06aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNXB4IHZhcigtLWdyZWVuLWdsb3cpOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXdhcm0tZ29sZCk7CiAgICAgICAgfQoKICAgICAgICAuc2VydmljZS1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgfQoKICAgICAgICAuc2VydmljZS1uYW1lIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zYWdlLWdyZWVuKTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICB9CgogICAgICAgIC8qIENvbnRhY3QgU2VjdGlvbiAqLwogICAgICAgIC5jb250YWN0LXNlY3Rpb24gewogICAgICAgICAgICBtYXJnaW46IDMwcHggMDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5VcCAxcyBlYXNlIDEuM3MgYm90aDsKICAgICAgICB9CgogICAgICAgIC5jb250YWN0LWl0ZW0gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDE1cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC45KSwgcmdiYSgyNTMsMjQ4LDI0MCwwLjkpKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDsKICAgICAgICAgICAgcGFkZGluZzogMTVweCAyMHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNvZnQtZ29sZCk7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAuY29udGFjdC1pdGVtOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0td2FybS1nb2xkKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA1cHggMjBweCB2YXIoLS1nb2xkZW4tZ2xvdyk7CiAgICAgICAgfQoKICAgICAgICAuY29udGFjdC1pY29uIHsKICAgICAgICAgICAgd2lkdGg6IDQ1cHg7CiAgICAgICAgICAgIGhlaWdodDogNDVweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc2FnZS1ncmVlbiksIHZhcigtLWxlYWYtZ3JlZW4pKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRhY3QtZGV0YWlscyB7CiAgICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAuY29udGFjdC1sYWJlbCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1icm93bik7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICB9CgogICAgICAgIC5jb250YWN0LXZhbHVlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdMb3JhJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNhZ2UtZ3JlZW4pOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRhY3QtYXJyb3cgewogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1nb2xkKTsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07CiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAuY29udGFjdC1pdGVtOmhvdmVyIC5jb250YWN0LWFycm93IHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7CiAgICAgICAgfQoKICAgICAgICAvKiBRdW90ZSBTZWN0aW9uICovCiAgICAgICAgLnF1b3RlLXNlY3Rpb24gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1zYWdlLWdyZWVuKSwgdmFyKC0tbGVhZi1ncmVlbikpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDI1cHg7CiAgICAgICAgICAgIG1hcmdpbjogMzBweCAwOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHZhcigtLWdyZWVuLWdsb3cpOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2UgMS41cyBib3RoOwogICAgICAgIH0KCiAgICAgICAgLnF1b3RlLW1hcmtzIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXdhcm0tZ29sZCk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwLjU7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgfQoKICAgICAgICAucXVvdGUtdGV4dCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWNyZWFtLXdoaXRlKTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KCiAgICAgICAgLnF1b3RlLWF1dGhvciB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1nb2xkKTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICB9CgogICAgICAgIC8qIFNvY2lhbCBMaW5rcyAqLwogICAgICAgIC5zb2NpYWwtc2VjdGlvbiB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luOiAzMHB4IDA7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMXMgZWFzZSAxLjdzIGJvdGg7CiAgICAgICAgfQoKICAgICAgICAuc29jaWFsLWxpbmtzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTVweDsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMTVweDsKICAgICAgICB9CgogICAgICAgIC5zb2NpYWwtbGluayB7CiAgICAgICAgICAgIHdpZHRoOiA1MHB4OwogICAgICAgICAgICBoZWlnaHQ6IDUwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXNhZ2UtZ3JlZW4pLCB2YXIoLS1sZWFmLWdyZWVuKSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIH0KCiAgICAgICAgLnNvY2lhbC1saW5rOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpIHNjYWxlKDEuMSk7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0td2FybS1nb2xkKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDI1cHggdmFyKC0tZ3JlZW4tZ2xvdyk7CiAgICAgICAgfQoKICAgICAgICAvKiBNZWRpYSBLaXQgQmFkZ2UgKi8KICAgICAgICAubWVkaWEta2l0LWJhZGdlIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc2FnZS1ncmVlbiksIHZhcigtLWxlYWYtZ3JlZW4pKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgcGFkZGluZzogMTVweCAyNXB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgICAgICBtYXJnaW46IDMwcHggYXV0bzsKICAgICAgICAgICAgbWF4LXdpZHRoOiAzMjBweDsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDVweCAyMHB4IHZhcigtLWdyZWVuLWdsb3cpOwogICAgICAgIH0KCiAgICAgICAgLm1lZGlhLWtpdC1iYWRnZTpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgICAgfQoKICAgICAgICAubWVkaWEta2l0LWJhZGdlIHNwYW4gewogICAgICAgICAgICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb2Z0LWdvbGQpOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgICAgIH0KCiAgICAgICAgLyogUG93ZXJlZCBCeSBTZWN0aW9uICovCiAgICAgICAgLnBvd2VyZWQtYnkgewogICAgICAgICAgICBtYXJnaW46IDE1cHggMDsKICAgICAgICAgICAgcGFkZGluZzogMTVweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg0NSwgOTAsIDc0LCAwLjA1KSwgcmdiYSgyMTIsIDE2OCwgODMsIDAuMDUpKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc29mdC1nb2xkKTsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLnBvd2VyZWQtbGFiZWwgewogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjZyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLWJyb3duKTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAucG93ZXJlZC1saW5rIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc2FnZS1ncmVlbik7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLnBvd2VyZWQtbGluazpob3ZlciB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLWdvbGQpOwogICAgICAgIH0KCiAgICAgICAgLyogRm9vdGVyICovCiAgICAgICAgLmZvb3RlciB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogMzBweCAwIDUwcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMXMgZWFzZSAxLjlzIGJvdGg7CiAgICAgICAgfQoKICAgICAgICAuZm9vdGVyLWJyYW5kIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNhZ2UtZ3JlZW4pOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgICAgfQoKICAgICAgICAuZm9vdGVyLXRhZ2xpbmUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0xvcmEnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS1icm93bik7CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CgogICAgICAgIC5mb290ZXItY29weXJpZ2h0IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLWJyb3duKTsKICAgICAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIH0KCiAgICAgICAgLyogTW9iaWxlIFJlc3BvbnNpdmVuZXNzICovCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSB7CiAgICAgICAgICAgIC5jb250YWluZXIgewogICAgICAgICAgICAgICAgcGFkZGluZzogMTVweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLm5hbWUgewogICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC5zZXJ2aWNlLWdyaWQgewogICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLmJvb2stcHJldmlldyB7CiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAuYm9vay1jb3ZlciB7CiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLm5hdi1saW5rIHsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjY1cmVtOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICAgIDwhLS0gRmxvYXRpbmcgRWxlbWVudHMgLS0+CiAgICA8ZGl2IGNsYXNzPSJmbG9hdGluZy1lbGVtZW50cyI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmxvYXRpbmctbGVhZiI+8J+NgzwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZsb2F0aW5nLWxlYWYiPuKcqDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZsb2F0aW5nLWxlYWYiPvCfjL88L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmbG9hdGluZy1sZWFmIj7wn5KrPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmxvYXRpbmctbGVhZiI+8J+NgzwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZWxlZ2FudC1iZyI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJsZWFmLXBhdHRlcm4iPjwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDwhLS0gVG9wIE5hdmlnYXRpb24gLS0+CiAgICAgICAgPG5hdiBjbGFzcz0idG9wLW5hdiI+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9hdXRob3ItcHJvZmlsZSIgY2xhc3M9Im5hdi1saW5rIGFjdGl2ZSI+8J+RpCBBVVRIT1I8L2E+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYS9oYXBwaWx5LXNpbmdsZSIgY2xhc3M9Im5hdi1saW5rIj7wn5OWIExBVU5DSDwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9oYW5kc2hha2UuYWZyaWNhL3JlYWRlci12b2ljZXMiIGNsYXNzPSJuYXYtbGluayI+8J+TiyBNRURJQSBLSVQ8L2E+CiAgICAgICAgPC9uYXY+CgogICAgICAgIDwhLS0gSGVhZGVyIC0tPgogICAgICAgIDxoZWFkZXIgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF1dGhvci1iYWRnZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UtaWNvbiI+4pyN77iPPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+QXV0aG9yIOKAoiBQYXN0b3Ig4oCiIFN0b3J5dGVsbGVyPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2hlYWRlcj4KCiAgICAgICAgPCEtLSBQcm9maWxlIFBob3RvIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InByb2ZpbGUtY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZmlsZS1yaW5nIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZmlsZS1waG90byI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5pdGlhbHMiPlpLPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBOYW1lIFNlY3Rpb24gLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ibmFtZS1zZWN0aW9uIj4KICAgICAgICAgICAgPGgxIGNsYXNzPSJuYW1lIj5aaXBwb3JhaCBLdXRlZXNhPC9oMT4KICAgICAgICAgICAgPHAgY2xhc3M9InRpdGxlIj5QYXN0b3Ig4oCiIEdob3N0d3JpdGVyIOKAoiBTdG9yeXRlbGxlcjwvcD4KICAgICAgICAgICAgPHAgY2xhc3M9InN1YnRpdGxlIj7inKggVHVybmluZyBPcmRpbmFyeSBXb3JkcyBJbnRvIEV4dHJhb3JkaW5hcnkgQ2hhbmdlPC9wPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIE1pc3Npb24gU3RhdGVtZW50IC0tPgogICAgICAgIDxkaXYgY2xhc3M9Im1pc3Npb24tY2FyZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1pc3Npb24taWNvbiI+8J+TljwvZGl2PgogICAgICAgICAgICA8cCBjbGFzcz0ibWlzc2lvbi10ZXh0Ij4KICAgICAgICAgICAgICAgIEkgaGVscCBwZW9wbGUgPHNwYW4gY2xhc3M9Im1pc3Npb24taGlnaGxpZ2h0Ij5lbWJyYWNlIHRoZWlyIHdvcnRoPC9zcGFuPiwgc2V0IGJvbGQgYm91bmRhcmllcywgYW5kIGxpdmUgaGFwcGlseeKAlHdoZXRoZXIgc2luZ2xlIG9yIG1hcnJpZWQuIFRocm91Z2ggYm9va3MsIGJpYmxpY2FsIHRlYWNoaW5nLCBhbmQgc3Rvcnl0ZWxsaW5nLCBJIGJyaW5nIDxzcGFuIGNsYXNzPSJtaXNzaW9uLWhpZ2hsaWdodCI+ZnJlZWRvbSwgaGVhbGluZywgYW5kIGNsYXJpdHk8L3NwYW4+IHRvIHRob3NlIHdobyBmZWVsIHVuc2Vlbi4KICAgICAgICAgICAgPC9wPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIEJvb2sgUHJldmlldyAtLT4KICAgICAgICA8YSBocmVmPSJodHRwczovL2hhbmRzaGFrZS5hZnJpY2EvaGFwcGlseS1zaW5nbGUiIGNsYXNzPSJib29rLXByZXZpZXciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJib29rLWNvdmVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvb2stdGl0bGUtc21hbGwiPkhBUFBJTFk8YnI+U0lOR0xFPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJib29rLWluZm8iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJvb2stbGFiZWwiPvCfk5ogRGVidXQgQm9vazwvc3Bhbj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iYm9vay1uYW1lIj5IYXBwaWx5IFNpbmdsZTwvaDM+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iYm9vay1zdWJ0aXRsZS10ZXh0Ij4xMyBLZXlzIHRvIFRocml2aW5nIGluIFlvdXIgU2luZ2xlbmVzcyBhbmQgSW5kaXZpZHVhbGl0eTwvcD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJib29rLWN0YSI+VmlldyBCb29rIExhdW5jaCDihpIg8J+Tljwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9hPgogICAgICAgIAogICAgICAgIDwhLS0gRmVhdHVyZWQgTGluayAtLT4KICAgICAgICA8YSBocmVmPSJodHRwczovL2FmcmljYWZyb250bGluZW5leHVzLm5ld3MvYm9vay1sYXVuY2gtZXZlbnQtb3ZlcnZpZXctYWxsLXlvdS1uZWVkLWZvci10aGUtb2ZmaWNpYWwtbGF1bmNoLW9mLWhhcHBpbHktc2luZ2xlLWluLWthbXBhbGEiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iZmVhdHVyZWQtYmFkZ2UiIHN0eWxlPSJtYXJnaW46IDE1cHggYXV0bzsgZGlzcGxheTogZmxleDsgbWF4LXdpZHRoOiAzMjBweDsiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZWQtaWNvbiI+8J+TsDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmVkLXRleHQiPlJlYWQgRnVsbCBGZWF0dXJlIG9uIDxzdHJvbmc+QWZyaWNhIEZyb250bGluZSBOZXh1czwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmVkLWFycm93Ij7ihpI8L3NwYW4+CiAgICAgICAgPC9hPgoKICAgICAgICA8IS0tIFNlcnZpY2VzIFNlY3Rpb24gLS0+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNlcnZpY2VzLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDM+4pyoIFdoYXQgSSBEbzwvaDM+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtZ3JpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiI+8J+TmjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtbmFtZSI+QXV0aG9yPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1pY29uIj7inJ3vuI88L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLW5hbWUiPlBhc3RvcjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiI+8J+RuzwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtbmFtZSI+R2hvc3R3cml0ZXI8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLWljb24iPvCfjqQ8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLW5hbWUiPlN0b3J5dGVsbGVyPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1pY29uIj7wn5KhPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1uYW1lIj5UZWFjaGVyPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1pY29uIj7wn4yxPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1uYW1lIj5NZW50b3I8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDwhLS0gQ29udGFjdCBTZWN0aW9uIC0tPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJjb250YWN0LXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDM+8J+TsSBDb25uZWN0IFdpdGggTWU8L2gzPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGluZSI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGEgaHJlZj0ibWFpbHRvOnppcHBvcmFoa3V0ZWVzYTAzQGdtYWlsLmNvbSIgY2xhc3M9ImNvbnRhY3QtaXRlbSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LWljb24iPuKcie+4jzwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1kZXRhaWxzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LWxhYmVsIj5FbWFpbDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtdmFsdWUiPnppcHBvcmFoa3V0ZWVzYTAzQGdtYWlsLmNvbTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29udGFjdC1hcnJvdyI+4oaSPC9zcGFuPgogICAgICAgICAgICA8L2E+CgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3dhLm1lLzI1Njc1OTUxMTg2OCIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJjb250YWN0LWl0ZW0iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1pY29uIj7wn5KsPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LWRldGFpbHMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtbGFiZWwiPldoYXRzQXBwPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC12YWx1ZSI+KzI1NiA3NTkgNTExIDg2ODwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29udGFjdC1hcnJvdyI+4oaSPC9zcGFuPgogICAgICAgICAgICA8L2E+CgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vemlwcG9yYWgta3V0ZWVzYS03NjE0YTMzM2IiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iY29udGFjdC1pdGVtIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtaWNvbiI+8J+SvDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1kZXRhaWxzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LWxhYmVsIj5MaW5rZWRJbjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtdmFsdWUiPlppcHBvcmFoIEt1dGVlc2E8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRhY3QtYXJyb3ciPuKGkjwvc3Bhbj4KICAgICAgICAgICAgPC9hPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1pdGVtIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtaWNvbiI+8J+TjTwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1kZXRhaWxzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LWxhYmVsIj5Mb2NhdGlvbjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtdmFsdWUiPkVudGViYmUsIFVnYW5kYSDwn4e68J+HrDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29udGFjdC1hcnJvdyI+4oaSPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDwhLS0gUXVvdGUgU2VjdGlvbiAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0icXVvdGUtc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InF1b3RlLW1hcmtzIj4iPC9kaXY+CiAgICAgICAgICAgIDxwIGNsYXNzPSJxdW90ZS10ZXh0Ij5TaW5nbGVuZXNzIGRvZXMgbm90IG1lYW4gbG9uZWxpbmVzcy4gSXQgc2ltcGx5IG1lYW5zICJ3aXRob3V0IGEgcm9tYW50aWMgcGFydG5lci4iIEZ1bGwgc3RvcC4gSW5kaXZpZHVhbGl0eSBpcyBhYm91dCBzdGFuZGluZyBvdXQgYXV0aGVudGljYWxseS48L3A+CiAgICAgICAgICAgIDxwIGNsYXNzPSJxdW90ZS1hdXRob3IiPuKAlCBGUk9NIEhBUFBJTFkgU0lOR0xFPC9wPgogICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgPCEtLSBCdXkgQm9vayBTZWN0aW9uIC0tPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmFtYXpvbi5jb20vSGFwcGlseS1TaW5nbGUtS2V5cy1UaHJpdmluZy1TaW5nbGVuZXNzL2RwL0IwRFRQN0cyM1MiIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTJweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0td2FybS1nb2xkKSwgI2M5OTYzZCk7IGJvcmRlci1yYWRpdXM6IDUwcHg7IHBhZGRpbmc6IDE2cHggMjVweDsgbWFyZ2luOiAyNXB4IGF1dG87IG1heC13aWR0aDogMzAwcHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggdmFyKC0tZ29sZGVuLWdsb3cpOyB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOyI+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEuM3JlbTsiPvCfk5o8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDAuODVyZW07IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB2YXIoLS1zYWdlLWdyZWVuKTsgbGV0dGVyLXNwYWNpbmc6IDFweDsiPkJVWSBIQVBQSUxZIFNJTkdMRSBPTiBBTUFaT048L3NwYW4+CiAgICAgICAgPC9hPgoKICAgICAgICA8IS0tIFNvY2lhbCBMaW5rcyAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic29jaWFsLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciIgc3R5bGU9Imp1c3RpZnktY29udGVudDogY2VudGVyOyI+CiAgICAgICAgICAgICAgICA8aDM+8J+MkCBGb2xsb3cgTXkgSm91cm5leTwvaDM+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzb2NpYWwtbGlua3MiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL3ppcHBvcmFoLWt1dGVlc2EtNzYxNGEzMzNiIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InNvY2lhbC1saW5rIiB0aXRsZT0iTGlua2VkSW4iPvCfkrw8L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL3ppcHBvcmFoYm9va2VkaXRzLyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJzb2NpYWwtbGluayIgdGl0bGU9Ikluc3RhZ3JhbSI+8J+TuDwvYT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Im1haWx0bzp6aXBwb3JhaGt1dGVlc2EwM0BnbWFpbC5jb20iIGNsYXNzPSJzb2NpYWwtbGluayIgdGl0bGU9IkVtYWlsIj7inInvuI88L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3dhLm1lLzI1Njc1OTUxMTg2OCIgY2xhc3M9InNvY2lhbC1saW5rIiB0aXRsZT0iV2hhdHNBcHAiPvCfkqw8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgPCEtLSBNZWRpYSBLaXQgQmFkZ2UgLS0+CiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9oYW5kc2hha2UuYWZyaWNhL3JlYWRlci12b2ljZXMiIGNsYXNzPSJtZWRpYS1raXQtYmFkZ2UiPgogICAgICAgICAgICA8c3Bhbj7wn5OLPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5WSUVXIE1FRElBIEtJVCAmIENBTVBBSUdOPC9zcGFuPgogICAgICAgIDwvYT4KCiAgICAgICAgPCEtLSBGb290ZXIgLS0+CiAgICAgICAgPGZvb3RlciBjbGFzcz0iZm9vdGVyIj4KICAgICAgICAgICAgPHAgY2xhc3M9ImZvb3Rlci1icmFuZCI+WklQUE9SQUggS1VURUVTQTwvcD4KICAgICAgICAgICAgPHAgY2xhc3M9ImZvb3Rlci10YWdsaW5lIj5UdXJuaW5nIE9yZGluYXJ5IFdvcmRzIEludG8gRXh0cmFvcmRpbmFyeSBDaGFuZ2U8L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBvd2VyZWQtYnkiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBvd2VyZWQtbGFiZWwiPkRpZ2l0YWwgQ2FyZCBQb3dlcmVkIEJ5PC9zcGFuPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9icmFuZGhhbmRzaGFrZS5jb20iIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0icG93ZXJlZC1saW5rIj7wn6SdIEhhbmRzaGFrZSBBZnJpY2E8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cCBjbGFzcz0iZm9vdGVyLWNvcHlyaWdodCI+wqkgMjAyNiBaaXBwb3JhaCBLdXRlZXNhIHwgQWxsIFJpZ2h0cyBSZXNlcnZlZDwvcD4KICAgICAgICA8L2Zvb3Rlcj4KICAgIDwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4=","embed":""}
🍃
✨
🌿
💫
🍃
✍️
Author • Pastor • Storyteller
ZK
Zipporah Kuteesa
Pastor • Ghostwriter • Storyteller
✨ Turning Ordinary Words Into Extraordinary Change
📖
I help people embrace their worth, set bold boundaries, and live happily—whether single or married. Through books, biblical teaching, and storytelling, I bring freedom, healing, and clarity to those who feel unseen.
HAPPILY
SINGLE
SINGLE
📚 Debut Book
📰
Read Full Feature on Africa Frontline Nexus
→
Happily Single
13 Keys to Thriving in Your Singleness and Individuality
View Book Launch → 📖✨ What I Do
📚
Author
✝️
Pastor
👻
Ghostwriter
🎤
Storyteller
💡
Teacher
🌱
Mentor
📱 Connect With Me
✉️
Email
zipporahkuteesa03@gmail.com
💬
WhatsApp
+256 759 511 868
💼
LinkedIn
Zipporah Kuteesa
📍
Location
Entebbe, Uganda 🇺🇬
"
Singleness does not mean loneliness. It simply means "without a romantic partner." Full stop. Individuality is about standing out authentically.
— FROM HAPPILY SINGLE