{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICAKICAgIDwhLS0gUFJJTUFSWSBNRVRBIC0tPgogICAgPHRpdGxlPlRoZSBBcmNoaXRlY3RzIENvbnNvcnRpdW0gfCBTb3ZlcmVpZ24gTW9tZW50dW08L3RpdGxlPgogICAgPG1ldGEgbmFtZT0idGl0bGUiIGNvbnRlbnQ9IllvdSBIYXZlIEJlZW4gU2VsZWN0ZWQgfCBUaGUgQXJjaGl0ZWN0cyBDb25zb3J0aXVtIj4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJBIHByaXZhdGUgaW52aXRhdGlvbiBmb3IgQWZyaWNhJ3MgbW9zdCBkaXN0aW5ndWlzaGVkIFZpc2lvbmFyeSBBcmNoaXRlY3RzLiBZb3VyIGNvbnRyaWJ1dGlvbnMgaGF2ZSBub3QgZ29uZSB1bm5vdGljZWQuIj4KICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgY29udGVudD0iU292ZXJlaWduIEFyY2hpdGVjdHMgTW9tZW50dW0gTWVkaWEiPgogICAgCiAgICA8IS0tIEhJREUgRlJPTSBTRUFSQ0ggLS0+CiAgICA8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Im5vaW5kZXgsIG5vZm9sbG93Ij4KICAgIDxtZXRhIG5hbWU9Imdvb2dsZWJvdCIgY29udGVudD0ibm9pbmRleCwgbm9mb2xsb3ciPgogICAgCiAgICA8IS0tIE5PIENBQ0hFIC0tPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iQ2FjaGUtQ29udHJvbCIgY29udGVudD0ibm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGUiPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iUHJhZ21hIiBjb250ZW50PSJuby1jYWNoZSI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJFeHBpcmVzIiBjb250ZW50PSIwIj4KICAgIAogICAgPCEtLSBGQVZJQ09OIC0tPgogICAgPGxpbmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS94LWljb24iIGhyZWY9Ii9mYXZpY29uLmljbyI+CiAgICAKICAgIDxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CiAgICA8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20iIGNyb3Nzb3JpZ2luPgogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1DaW56ZWw6d2dodEA0MDA7NTAwOzYwMDs3MDAmZmFtaWx5PUNvcm1vcmFudCtHYXJhbW9uZDppdGFsLHdnaHRAMCw0MDA7MCw1MDA7MCw2MDA7MCw3MDA7MSw0MDA7MSw1MDAmZmFtaWx5PVJhbGV3YXk6d2dodEAzMDA7NDAwOzUwMDs2MDAmZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiPgogICAgCiAgICA8c3R5bGU+CiAgICAgICAgOnJvb3QgewogICAgICAgICAgICAtLXNvdmVyZWlnbi1nb2xkOiAjZjNiNzAwOwogICAgICAgICAgICAtLW1pZG5pZ2h0LWJsdWU6ICMwYTE2Mjg7CiAgICAgICAgICAgIC0tZGVlcC1taWRuaWdodDogIzA2MTAxZjsKICAgICAgICAgICAgLS1zb2Z0LWl2b3J5OiAjZmFmOWY2OwogICAgICAgICAgICAtLXdhcm0tZ3JheTogIzljYTNhZjsKICAgICAgICAgICAgLS1zb2Z0LWdyYXk6ICNkMWQ1ZGI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgICogewogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGJvZHkgewogICAgICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdSYWxld2F5Jywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbWlkbmlnaHQtYmx1ZSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb2Z0LWl2b3J5KTsKICAgICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaW1nLCB2aWRlbyB7CiAgICAgICAgICAgIC13ZWJraXQtdXNlci1kcmFnOiBub25lOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIHByaW50IHsKICAgICAgICAgICAgYm9keSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBCQUNLR1JPVU5EICovCiAgICAgICAgLmJhY2tncm91bmQtb3ZlcmxheSB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAKICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IHRvcCwgcmdiYSgyNDMsIDE4MywgMCwgMC4wNCkgMCUsIHRyYW5zcGFyZW50IDUwJSksCiAgICAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBib3R0b20sIHJnYmEoNiwgMTYsIDMxLCAwLjgpIDAlLCB0cmFuc3BhcmVudCA1MCUpLAogICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tbWlkbmlnaHQtYmx1ZSkgMCUsIHZhcigtLWRlZXAtbWlkbmlnaHQpIDEwMCUpOwogICAgICAgICAgICB6LWluZGV4OiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudG9wLWFjY2VudCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHZhcigtLXNvdmVyZWlnbi1nb2xkKSwgdHJhbnNwYXJlbnQpOwogICAgICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFNIT09USU5HIFNUQVJTICovCiAgICAgICAgLnNob290aW5nLXN0YXJzIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgICB6LWluZGV4OiAyOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2hvb3Rpbmctc3RhciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgd2lkdGg6IDRweDsKICAgICAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBib3gtc2hhZG93OiAKICAgICAgICAgICAgICAgIDAgMCA2cHggMnB4IHJnYmEoMjQzLCAxODMsIDAsIDAuNiksCiAgICAgICAgICAgICAgICAwIDAgMTJweCA0cHggcmdiYSgyNDMsIDE4MywgMCwgMC4zKTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBzaG9vdCBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zaG9vdGluZy1zdGFyOjpiZWZvcmUgewogICAgICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB3aWR0aDogODBweDsKICAgICAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyNDMsIDE4MywgMCwgMC44KSwgdHJhbnNwYXJlbnQpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOwogICAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgICAgbWFyZ2luLXRvcDogLTFweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBzaG9vdCB7CiAgICAgICAgICAgIDAlIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApIHRyYW5zbGF0ZVkoMCk7IH0KICAgICAgICAgICAgNSUgeyBvcGFjaXR5OiAxOyB9CiAgICAgICAgICAgIDgwJSB7IG9wYWNpdHk6IDE7IH0KICAgICAgICAgICAgMTAwJSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MDBweCkgdHJhbnNsYXRlWSgzMDBweCk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNob290aW5nLXN0YXI6bnRoLWNoaWxkKDEpIHsgdG9wOiAxMCU7IGxlZnQ6IDUlOyBhbmltYXRpb24tZHVyYXRpb246IDJzOyBhbmltYXRpb24tZGVsYXk6IDBzOyB9CiAgICAgICAgLnNob290aW5nLXN0YXI6bnRoLWNoaWxkKDIpIHsgdG9wOiAyNSU7IGxlZnQ6IDYwJTsgYW5pbWF0aW9uLWR1cmF0aW9uOiAyLjVzOyBhbmltYXRpb24tZGVsYXk6IDNzOyB9CiAgICAgICAgLnNob290aW5nLXN0YXI6bnRoLWNoaWxkKDMpIHsgdG9wOiA1JTsgbGVmdDogNDAlOyBhbmltYXRpb24tZHVyYXRpb246IDIuMnM7IGFuaW1hdGlvbi1kZWxheTogNnM7IH0KICAgICAgICAuc2hvb3Rpbmctc3RhcjpudGgtY2hpbGQoNCkgeyB0b3A6IDM1JTsgbGVmdDogMjAlOyBhbmltYXRpb24tZHVyYXRpb246IDIuOHM7IGFuaW1hdGlvbi1kZWxheTogOXM7IH0KICAgICAgICAuc2hvb3Rpbmctc3RhcjpudGgtY2hpbGQoNSkgeyB0b3A6IDE1JTsgbGVmdDogODAlOyBhbmltYXRpb24tZHVyYXRpb246IDIuM3M7IGFuaW1hdGlvbi1kZWxheTogMTJzOyB9CiAgICAgICAgCiAgICAgICAgLyogRkxPQVRJTkcgU1RBUlMgLSBVUCBBTkQgRE9XTiAqLwogICAgICAgIC5mbG9hdGluZy1zdGFycyB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgei1pbmRleDogMTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZsb2F0LXN0YXIgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICAgICAgICBhbmltYXRpb246IGZsb2F0VXBEb3duIDZzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGZsb2F0VXBEb3duIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgcm90YXRlKDBkZWcpOyBvcGFjaXR5OiAwLjI7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KSByb3RhdGUoMTgwZGVnKTsgb3BhY2l0eTogMC41OyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mbG9hdC1zdGFyOm50aC1jaGlsZCgxKSB7IHRvcDogMTUlOyBsZWZ0OiA4JTsgYW5pbWF0aW9uLWRlbGF5OiAwczsgZm9udC1zaXplOiAxMHB4OyB9CiAgICAgICAgLmZsb2F0LXN0YXI6bnRoLWNoaWxkKDIpIHsgdG9wOiAyNSU7IGxlZnQ6IDkyJTsgYW5pbWF0aW9uLWRlbGF5OiAxczsgZm9udC1zaXplOiAxNHB4OyB9CiAgICAgICAgLmZsb2F0LXN0YXI6bnRoLWNoaWxkKDMpIHsgdG9wOiA0NSU7IGxlZnQ6IDUlOyBhbmltYXRpb24tZGVsYXk6IDJzOyBmb250LXNpemU6IDhweDsgfQogICAgICAgIC5mbG9hdC1zdGFyOm50aC1jaGlsZCg0KSB7IHRvcDogNjAlOyBsZWZ0OiA5NSU7IGFuaW1hdGlvbi1kZWxheTogMC41czsgZm9udC1zaXplOiAxMnB4OyB9CiAgICAgICAgLmZsb2F0LXN0YXI6bnRoLWNoaWxkKDUpIHsgdG9wOiA3NSU7IGxlZnQ6IDEwJTsgYW5pbWF0aW9uLWRlbGF5OiAxLjVzOyBmb250LXNpemU6IDEwcHg7IH0KICAgICAgICAuZmxvYXQtc3RhcjpudGgtY2hpbGQoNikgeyB0b3A6IDg1JTsgbGVmdDogODglOyBhbmltYXRpb24tZGVsYXk6IDIuNXM7IGZvbnQtc2l6ZTogMTRweDsgfQogICAgICAgIC5mbG9hdC1zdGFyOm50aC1jaGlsZCg3KSB7IHRvcDogMzUlOyBsZWZ0OiAzJTsgYW5pbWF0aW9uLWRlbGF5OiAzczsgZm9udC1zaXplOiA5cHg7IH0KICAgICAgICAuZmxvYXQtc3RhcjpudGgtY2hpbGQoOCkgeyB0b3A6IDU1JTsgbGVmdDogOTclOyBhbmltYXRpb24tZGVsYXk6IDAuOHM7IGZvbnQtc2l6ZTogMTFweDsgfQogICAgICAgIAogICAgICAgIC8qIEZMT0FUSU5HIDIwMjYgKi8KICAgICAgICAuZmxvYXRpbmcteWVhcnMgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mbG9hdC15ZWFyIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIG9wYWNpdHk6IDAuMDg7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmxvYXRZZWFyIDhzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGZsb2F0WWVhciB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOyBvcGFjaXR5OiAwLjA1OyB9CiAgICAgICAgICAgIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCkgc2NhbGUoMS4xKTsgb3BhY2l0eTogMC4xMjsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZmxvYXQteWVhcjpudGgtY2hpbGQoMSkgeyB0b3A6IDIwJTsgbGVmdDogMTIlOyBhbmltYXRpb24tZGVsYXk6IDBzOyBmb250LXNpemU6IDE2cHg7IH0KICAgICAgICAuZmxvYXQteWVhcjpudGgtY2hpbGQoMikgeyB0b3A6IDQwJTsgbGVmdDogODUlOyBhbmltYXRpb24tZGVsYXk6IDJzOyBmb250LXNpemU6IDEycHg7IH0KICAgICAgICAuZmxvYXQteWVhcjpudGgtY2hpbGQoMykgeyB0b3A6IDcwJTsgbGVmdDogOCU7IGFuaW1hdGlvbi1kZWxheTogNHM7IGZvbnQtc2l6ZTogMThweDsgfQogICAgICAgIC5mbG9hdC15ZWFyOm50aC1jaGlsZCg0KSB7IHRvcDogODAlOyBsZWZ0OiA5MCU7IGFuaW1hdGlvbi1kZWxheTogMXM7IGZvbnQtc2l6ZTogMTRweDsgfQogICAgICAgIC5mbG9hdC15ZWFyOm50aC1jaGlsZCg1KSB7IHRvcDogMzAlOyBsZWZ0OiA5MCU7IGFuaW1hdGlvbi1kZWxheTogM3M7IGZvbnQtc2l6ZTogMTBweDsgfQogICAgICAgIC5mbG9hdC15ZWFyOm50aC1jaGlsZCg2KSB7IHRvcDogOTAlOyBsZWZ0OiAxNSU7IGFuaW1hdGlvbi1kZWxheTogNXM7IGZvbnQtc2l6ZTogMTJweDsgfQogICAgICAgIAogICAgICAgIC8qIE1BSU4gQ09OVEFJTkVSICovCiAgICAgICAgLmNvbnNvcnRpdW0tY29udGFpbmVyIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiA2MHB4IDQwcHggMTAwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5jb25zb3J0aXVtLWNvbnRhaW5lciB7IHBhZGRpbmc6IDQwcHggMjVweCA4MHB4OyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFNFQUwgKi8KICAgICAgICAuc2VhbC1jb250YWluZXIgewogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzNXB4OwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJbiAxcyBlYXNlLW91dDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW4gewogICAgICAgICAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTsgfQogICAgICAgICAgICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VhbCB7CiAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDI0MywgMTgzLCAwLCAwLjEpLCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4wNSkpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgYm94LXNoYWRvdzogCiAgICAgICAgICAgICAgICAwIDAgNDBweCByZ2JhKDI0MywgMTgzLCAwLCAwLjE1KSwKICAgICAgICAgICAgICAgIGluc2V0IDAgMCAzMHB4IHJnYmEoMjQzLCAxODMsIDAsIDAuMDUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VhbC10ZXh0IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAycmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBIRUFERVIgKi8KICAgICAgICAuY29uc29ydGl1bS1oZWFkZXIgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICAgICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJbiAxcyBlYXNlLW91dCAwLjNzIGJvdGg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb25zb3J0aXVtLWJhZGdlIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDMwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUmFsZXdheScsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDRweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGl0bGUtY29udGFpbmVyIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggNDBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRpdGxlLXN0YXIgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgYW5pbWF0aW9uOiB0d2lua2xlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDEwcHggcmdiYSgyNDMsIDE4MywgMCwgMC44KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyB0d2lua2xlIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyBvcGFjaXR5OiAwLjM7IHRyYW5zZm9ybTogc2NhbGUoMC44KTsgfQogICAgICAgICAgICA1MCUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEuMik7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRpdGxlLXN0YXI6bnRoLWNoaWxkKDEpIHsgdG9wOiAwOyBsZWZ0OiAxMCU7IGFuaW1hdGlvbi1kZWxheTogMHM7IH0KICAgICAgICAudGl0bGUtc3RhcjpudGgtY2hpbGQoMikgeyB0b3A6IDEwJTsgcmlnaHQ6IDUlOyBhbmltYXRpb24tZGVsYXk6IDAuNXM7IH0KICAgICAgICAudGl0bGUtc3RhcjpudGgtY2hpbGQoMykgeyBib3R0b206IDE1JTsgbGVmdDogMDsgYW5pbWF0aW9uLWRlbGF5OiAxczsgfQogICAgICAgIC50aXRsZS1zdGFyOm50aC1jaGlsZCg0KSB7IGJvdHRvbTogNSU7IHJpZ2h0OiAxNSU7IGFuaW1hdGlvbi1kZWxheTogMS41czsgfQogICAgICAgIC50aXRsZS1zdGFyOm50aC1jaGlsZCg1KSB7IHRvcDogMzAlOyBsZWZ0OiAtNSU7IGFuaW1hdGlvbi1kZWxheTogMC4zczsgfQogICAgICAgIC50aXRsZS1zdGFyOm50aC1jaGlsZCg2KSB7IHRvcDogNSU7IHJpZ2h0OiAyMCU7IGFuaW1hdGlvbi1kZWxheTogMC44czsgfQogICAgICAgIAogICAgICAgIC5jb25zb3J0aXVtLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgycmVtLCA1dncsIDNyZW0pOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc29mdC1pdm9yeSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb25zb3J0aXVtLXRpdGxlIC5nb2xkIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoYW5naW5nLXdvcmQgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgbWluLXdpZHRoOiAyMjBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoYW5naW5nLXdvcmQgLndvcmQgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgIGFuaW1hdGlvbjogd29yZEZhZGUgMTZzIGluZmluaXRlOwogICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hhbmdpbmctd29yZCAud29yZDpudGgtY2hpbGQoMSkgeyBhbmltYXRpb24tZGVsYXk6IDBzOyB9CiAgICAgICAgLmNoYW5naW5nLXdvcmQgLndvcmQ6bnRoLWNoaWxkKDIpIHsgYW5pbWF0aW9uLWRlbGF5OiA0czsgfQogICAgICAgIC5jaGFuZ2luZy13b3JkIC53b3JkOm50aC1jaGlsZCgzKSB7IGFuaW1hdGlvbi1kZWxheTogOHM7IH0KICAgICAgICAuY2hhbmdpbmctd29yZCAud29yZDpudGgtY2hpbGQoNCkgeyBhbmltYXRpb24tZGVsYXk6IDEyczsgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgd29yZEZhZGUgewogICAgICAgICAgICAwJSwgMjAlIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMTBweCk7IH0KICAgICAgICAgICAgNSUsIDE1JSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApOyB9CiAgICAgICAgICAgIDI1JSwgMTAwJSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0xMHB4KTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29uc29ydGl1bS1zdWJ0aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS4ycmVtLCAyLjV2dywgMS41cmVtKTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc29mdC1ncmF5KTsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRkxPQVRJTkcgUE9XRVIgV09SRFMgKi8KICAgICAgICAuZmxvYXRpbmctd29yZHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDM1cHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDFzIGVhc2Utb3V0IDAuNXMgYm90aDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBvd2VyLXdvcmQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQzLCAxODMsIDAsIDAuNSk7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmxvYXQgNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgZmxvYXQgewogICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBvd2VyLXdvcmQ6bnRoLWNoaWxkKDEpIHsgYW5pbWF0aW9uLWRlbGF5OiAwczsgfQogICAgICAgIC5wb3dlci13b3JkOm50aC1jaGlsZCgyKSB7IGFuaW1hdGlvbi1kZWxheTogMC4zczsgfQogICAgICAgIC5wb3dlci13b3JkOm50aC1jaGlsZCgzKSB7IGFuaW1hdGlvbi1kZWxheTogMC42czsgfQogICAgICAgIC5wb3dlci13b3JkOm50aC1jaGlsZCg0KSB7IGFuaW1hdGlvbi1kZWxheTogMC45czsgfQogICAgICAgIC5wb3dlci13b3JkOm50aC1jaGlsZCg1KSB7IGFuaW1hdGlvbi1kZWxheTogMS4yczsgfQogICAgICAgIC5wb3dlci13b3JkOm50aC1jaGlsZCg2KSB7IGFuaW1hdGlvbi1kZWxheTogMS41czsgfQogICAgICAgIC5wb3dlci13b3JkOm50aC1jaGlsZCg3KSB7IGFuaW1hdGlvbi1kZWxheTogMS44czsgfQogICAgICAgIC5wb3dlci13b3JkOm50aC1jaGlsZCg4KSB7IGFuaW1hdGlvbi1kZWxheTogMi4xczsgfQogICAgICAgIC5wb3dlci13b3JkOm50aC1jaGlsZCg5KSB7IGFuaW1hdGlvbi1kZWxheTogMi40czsgfQogICAgICAgIC5wb3dlci13b3JkOm50aC1jaGlsZCgxMCkgeyBhbmltYXRpb24tZGVsYXk6IDIuN3M7IH0KICAgICAgICAucG93ZXItd29yZDpudGgtY2hpbGQoMTEpIHsgYW5pbWF0aW9uLWRlbGF5OiAzczsgfQogICAgICAgIC5wb3dlci13b3JkOm50aC1jaGlsZCgxMikgeyBhbmltYXRpb24tZGVsYXk6IDMuM3M7IH0KICAgICAgICAucG93ZXItd29yZDpudGgtY2hpbGQoMTMpIHsgYW5pbWF0aW9uLWRlbGF5OiAzLjZzOyB9CiAgICAgICAgLnBvd2VyLXdvcmQ6bnRoLWNoaWxkKDE0KSB7IGFuaW1hdGlvbi1kZWxheTogMy45czsgfQogICAgICAgIC5wb3dlci13b3JkOm50aC1jaGlsZCgxNSkgeyBhbmltYXRpb24tZGVsYXk6IDQuMnM7IH0KICAgICAgICAKICAgICAgICAucG93ZXItd29yZCAuZG90IHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luOiAwIDEwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFZJREVPIFNFQ1RJT04gKi8KICAgICAgICAudmlkZW8tc2VjdGlvbiB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBtYXgtd2lkdGg6IDc1MHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4OwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJbiAxcyBlYXNlLW91dCAwLjZzIGJvdGg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC52aWRlby1jb250YWluZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDYsIDE2LCAzMSwgMC44KSwgcmdiYSgxMCwgMjIsIDQwLCAwLjkpKTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNDMsIDE4MywgMCwgMC4zKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDIwcHggNjBweCByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC52aWRlby1jb250YWluZXIgaWZyYW1lLAogICAgICAgIC52aWRlby1jb250YWluZXIgdmlkZW8gewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC52aWRlby1wbGFjZWhvbGRlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZGVlcC1taWRuaWdodCksIHZhcigtLW1pZG5pZ2h0LWJsdWUpKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBsYXktaWNvbiB7CiAgICAgICAgICAgIHdpZHRoOiA5MHB4OwogICAgICAgICAgICBoZWlnaHQ6IDkwcHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNDMsIDE4MywgMCwgMC4xKTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGxheS1pY29uOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNDMsIDE4MywgMCwgMC4yKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDQwcHggcmdiYSgyNDMsIDE4MywgMCwgMC4zKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBsYXktaWNvbiBzdmcgewogICAgICAgICAgICB3aWR0aDogMzVweDsKICAgICAgICAgICAgaGVpZ2h0OiAzNXB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudmlkZW8tcGxhY2Vob2xkZXItdGV4dCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb2Z0LWdyYXkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBNRVNTQUdFICovCiAgICAgICAgLmNvbnNvcnRpdW0tbWVzc2FnZSB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWF4LXdpZHRoOiA2NTBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMXMgZWFzZS1vdXQgMC45cyBib3RoOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubWVzc2FnZS10ZXh0IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjM1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc29mdC1ncmF5KTsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5tZXNzYWdlLXRleHQgLmhpZ2hsaWdodCB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5tZXNzYWdlLWRpdmlkZXIgewogICAgICAgICAgICB3aWR0aDogMTAwcHg7CiAgICAgICAgICAgIGhlaWdodDogMXB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCB2YXIoLS1zb3ZlcmVpZ24tZ29sZCksIHRyYW5zcGFyZW50KTsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIENUQSAqLwogICAgICAgIC5jdGEtc2VjdGlvbiB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMXMgZWFzZS1vdXQgMS4ycyBib3RoOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY3RhLXByZXRleHQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc29mdC1ncmF5KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmN0YS1wcmV0ZXh0IC5lbGVnYW50IHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmN0YS1idG4gewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxNXB4OwogICAgICAgICAgICBwYWRkaW5nOiAyNHB4IDYwcHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogM3B4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tbWlkbmlnaHQtYmx1ZSk7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXNvdmVyZWlnbi1nb2xkKSwgI2Q0YTAwMCk7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMzBweCByZ2JhKDI0MywgMTgzLCAwLCAwLjMpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY3RhLWJ0bjpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggNTBweCByZ2JhKDI0MywgMTgzLCAwLCAwLjUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY3RhLWJ0biBzdmcgewogICAgICAgICAgICB3aWR0aDogMjJweDsKICAgICAgICAgICAgaGVpZ2h0OiAyMnB4OwogICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY3RhLWJ0bjpob3ZlciBzdmcgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmN0YS1ub3RlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLWdyYXkpOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBGT1VOREVSIFFVT1RFIC0gVU5JUVVFIFRPIFRISVMgUEFHRSAqLwogICAgICAgIC5mb3VuZGVyLXF1b3RlIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXgtd2lkdGg6IDcwMHB4OwogICAgICAgICAgICBtYXJnaW4tdG9wOiA3MHB4OwogICAgICAgICAgICBwYWRkaW5nLXRvcDogNTBweDsKICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjQzLCAxODMsIDAsIDAuMTUpOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJbiAxcyBlYXNlLW91dCAxLjVzIGJvdGg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5xdW90ZS1tYXJrIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiA0cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDMsIDE4MywgMCwgMC4yNSk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtMTVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnF1b3RlLXRleHQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvZnQtZ3JheSk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5xdW90ZS1hdXRob3IgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1JhbGV3YXknLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5xdW90ZS10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUmFsZXdheScsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXdhcm0tZ3JheSk7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDVweDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRk9PVEVSICovCiAgICAgICAgLnBhZ2UtZm9vdGVyIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA2MHB4OwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJbiAxcyBlYXNlLW91dCAxLjhzIGJvdGg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb290ZXItYnJhbmQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXdhcm0tZ3JheSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb290ZXItY29udGFjdCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUmFsZXdheScsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvZnQtZ3JheSk7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb290ZXItY29udGFjdCBhIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9vdGVyLWNvbnRhY3QgYTpob3ZlciB7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBSRVNQT05TSVZFICovCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5zZWFsIHsgd2lkdGg6IDg1cHg7IGhlaWdodDogODVweDsgfQogICAgICAgICAgICAuc2VhbC10ZXh0IHsgZm9udC1zaXplOiAxLjdyZW07IH0KICAgICAgICAgICAgLmN0YS1idG4geyBwYWRkaW5nOiAyMHB4IDQ1cHg7IGZvbnQtc2l6ZTogMXJlbTsgfQogICAgICAgICAgICAuZmxvYXRpbmctd29yZHMgeyBnYXA6IDE1cHg7IH0KICAgICAgICAgICAgLnBvd2VyLXdvcmQgeyBmb250LXNpemU6IDAuN3JlbTsgbGV0dGVyLXNwYWNpbmc6IDJweDsgfQogICAgICAgICAgICAudGl0bGUtc3RhciB7IGZvbnQtc2l6ZTogMTJweDsgfQogICAgICAgICAgICAuY2hhbmdpbmctd29yZCB7IG1pbi13aWR0aDogMTgwcHg7IH0KICAgICAgICAgICAgLmZsb2F0LXllYXIgeyBkaXNwbGF5OiBub25lOyB9CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICAgIDxkaXYgY2xhc3M9ImJhY2tncm91bmQtb3ZlcmxheSI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJ0b3AtYWNjZW50Ij48L2Rpdj4KICAgIAogICAgPCEtLSBGbG9hdGluZyBTdGFycyBVcC9Eb3duIC0tPgogICAgPGRpdiBjbGFzcz0iZmxvYXRpbmctc3RhcnMiPgogICAgICAgIDxzcGFuIGNsYXNzPSJmbG9hdC1zdGFyIj7inKY8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZsb2F0LXN0YXIiPuKYhTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iZmxvYXQtc3RhciI+4pymPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJmbG9hdC1zdGFyIj7imIU8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZsb2F0LXN0YXIiPuKcpjwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iZmxvYXQtc3RhciI+4piFPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJmbG9hdC1zdGFyIj7inKY8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZsb2F0LXN0YXIiPuKYhTwvc3Bhbj4KICAgIDwvZGl2PgogICAgCiAgICA8IS0tIEZsb2F0aW5nIDIwMjYgLS0+CiAgICA8ZGl2IGNsYXNzPSJmbG9hdGluZy15ZWFycyI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZsb2F0LXllYXIiPjIwMjY8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZsb2F0LXllYXIiPjIwMjY8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZsb2F0LXllYXIiPjIwMjY8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZsb2F0LXllYXIiPjIwMjY8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZsb2F0LXllYXIiPjIwMjY8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZsb2F0LXllYXIiPjIwMjY8L3NwYW4+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2hvb3Rpbmctc3RhcnMiPgogICAgICAgIDxkaXYgY2xhc3M9InNob290aW5nLXN0YXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNob290aW5nLXN0YXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNob290aW5nLXN0YXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNob290aW5nLXN0YXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNob290aW5nLXN0YXIiPjwvZGl2PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImNvbnNvcnRpdW0tY29udGFpbmVyIj4KICAgICAgICA8IS0tIFNlYWwgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VhbC1jb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFsIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzZWFsLXRleHQiPkFDPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIEhlYWRlciAtIEFMTCBDRU5URVJFRCAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJjb25zb3J0aXVtLWhlYWRlciI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb25zb3J0aXVtLWJhZGdlIj5Qcml2YXRlIEludml0YXRpb248L3NwYW4+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZS1jb250YWluZXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlLXN0YXIiPuKcpjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS1zdGFyIj7inKY8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUtc3RhciI+4piFPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlLXN0YXIiPuKcpjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS1zdGFyIj7imIU8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUtc3RhciI+4pymPC9zcGFuPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8aDEgY2xhc3M9ImNvbnNvcnRpdW0tdGl0bGUiPgogICAgICAgICAgICAgICAgICAgIFRoZSA8c3BhbiBjbGFzcz0iZ29sZCI+QXJjaGl0ZWN0czwvc3Bhbj48YnI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoYW5naW5nLXdvcmQiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id29yZCI+Q29uc29ydGl1bTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndvcmQiPlJvdW5kdGFibGU8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3b3JkIj5MZWdhY3k8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3b3JkIj5DaXJjbGU8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9oMT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8cCBjbGFzcz0iY29uc29ydGl1bS1zdWJ0aXRsZSI+QSBjdXJhdGVkIGFzc2VtYmx5IG9mIEFmcmljYSdzIG1vc3QgZGlzdGluZ3Vpc2hlZCBWaXNpb25hcnkgQXJjaGl0ZWN0cy48YnI+QW4gaW52aXRhdGlvbiBwdXJwb3NlZnVsbHkgY3JhZnRlZCBmb3IgeW91LjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIEZsb2F0aW5nIFBvd2VyIFdvcmRzIC0tPgogICAgICAgIDxkaXYgY2xhc3M9ImZsb2F0aW5nLXdvcmRzIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBvd2VyLXdvcmQiPlNvdmVyZWlnbnR5PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icG93ZXItd29yZCI+PHNwYW4gY2xhc3M9ImRvdCI+4peGPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBvd2VyLXdvcmQiPkV4Y2VsbGVuY2U8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwb3dlci13b3JkIj48c3BhbiBjbGFzcz0iZG90Ij7il4Y8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icG93ZXItd29yZCI+TGVnYWN5PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icG93ZXItd29yZCI+PHNwYW4gY2xhc3M9ImRvdCI+4peGPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBvd2VyLXdvcmQiPkludGVudGlvbjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBvd2VyLXdvcmQiPjxzcGFuIGNsYXNzPSJkb3QiPuKXhjwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwb3dlci13b3JkIj5WaXNpb248L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwb3dlci13b3JkIj48c3BhbiBjbGFzcz0iZG90Ij7il4Y8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icG93ZXItd29yZCI+UGFzc2lvbjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBvd2VyLXdvcmQiPjxzcGFuIGNsYXNzPSJkb3QiPuKXhjwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwb3dlci13b3JkIj5BY3Rpb248L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwb3dlci13b3JkIj48c3BhbiBjbGFzcz0iZG90Ij7il4Y8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icG93ZXItd29yZCI+TWlzc2lvbjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIFZpZGVvIFNlY3Rpb24gLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZpZGVvLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWRlby1wbGFjZWhvbGRlciIgaWQ9InZpZGVvUGxhY2Vob2xkZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXktaWNvbiIgb25jbGljaz0icGxheVZpZGVvKCkiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0iY3VycmVudENvbG9yIiB2aWV3Qm94PSIwIDAgMjQgMjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTggNXYxNGwxMS03eiIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idmlkZW8tcGxhY2Vob2xkZXItdGV4dCI+QSBtZXNzYWdlIGF3YWl0cyB5b3U8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPCEtLSBFTUJFRCBWSURFTyBIRVJFIFdIRU4gUkVBRFkgLS0+CiAgICAgICAgICAgICAgICA8IS0tCiAgICAgICAgICAgICAgICA8aWZyYW1lIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvWU9VUl9WSURFT19JRCIgZnJhbWVib3JkZXI9IjAiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4KICAgICAgICAgICAgICAgIC0tPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIE1lc3NhZ2UgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0iY29uc29ydGl1bS1tZXNzYWdlIj4KICAgICAgICAgICAgPHAgY2xhc3M9Im1lc3NhZ2UtdGV4dCI+CiAgICAgICAgICAgICAgICBXaGF0IHlvdSBhcmUgYWJvdXQgdG8gZXhwZXJpZW5jZSBpcyBleGNsdXNpdmUuPGJyPgogICAgICAgICAgICAgICAgQSA8c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Ij5oZWFydCBleHRlbmRlZCBIYW5kc2hha2UgQWZyaWNhIEludml0YXRpb248L3NwYW4+PGJyPgogICAgICAgICAgICAgICAgdG8gTW90aGVybGFuZCBQZWVycyB3aG9zZSBjb250cmlidXRpb25zIGRlc2VydmUgdG8gYmUgZG9jdW1lbnRlZC4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlLWRpdmlkZXIiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDwhLS0gQ1RBIC0gRUxFR0FOVCAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJjdGEtc2VjdGlvbiI+CiAgICAgICAgICAgIDxwIGNsYXNzPSJjdGEtcHJldGV4dCI+V2hlbiB0aGUgPHNwYW4gY2xhc3M9ImVsZWdhbnQiPm1vbWVudDwvc3Bhbj4gc3BlYWtzIHRvIHlvdS4uLjwvcD4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9zb3ZlcmVpZ25tb21lbnR1bS5jb20vMjAyNmNvbnNvcnRpdW0tZGVjbGFyYXRpb24iIGNsYXNzPSJjdGEtYnRuIj4KICAgICAgICAgICAgICAgIFJlYWQgWW91ciBEZWNsYXJhdGlvbgogICAgICAgICAgICAgICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIiBkPSJNMTcgOGw0IDRtMCAwbC00IDRtNC00SDMiIC8+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8cCBjbGFzcz0iY3RhLW5vdGUiPkFuIGludml0YXRpb24gZGVzaWduZWQgZXhjbHVzaXZlbHkgZm9yIHlvdTwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIEZvdW5kZXIgUXVvdGUgLSBVTklRVUUgVE8gVEhJUyBQQUdFIC0tPgogICAgICAgIDxkaXYgY2xhc3M9ImZvdW5kZXItcXVvdGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJxdW90ZS1tYXJrIj4iPC9kaXY+CiAgICAgICAgICAgIDxwIGNsYXNzPSJxdW90ZS10ZXh0Ij5UaGUgcml2ZXIgZG9lcyBub3QgZHJpbmsgaXRzIG93biB3YXRlci4gVGhlIHRyZWUgZG9lcyBub3QgZWF0IGl0cyBvd24gZnJ1aXQuIFRoZSBzdW4gZG9lcyBub3Qgc2hpbmUgZm9yIGl0c2VsZi4gTGl2aW5nIGZvciBvdGhlcnMgaXMgdGhlIHJ1bGUgb2YgbmF0dXJlIH4gYW5kIHRoZSBtYXJrIG9mIGEgdHJ1ZSBBcmNoaXRlY3QuPC9wPgogICAgICAgICAgICA8cCBjbGFzcz0icXVvdGUtYXV0aG9yIj5+IFRhd3FhIE4uIE11a2FzYTwvcD4KICAgICAgICAgICAgPHAgY2xhc3M9InF1b3RlLXRpdGxlIj5Gb3VuZGVyLCBNdWthc2EgVmVudHVyZSBQYXJ0bmVycyBMTEM8L3A+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPCEtLSBGb290ZXIgLS0+CiAgICA8Zm9vdGVyIGNsYXNzPSJwYWdlLWZvb3RlciI+CiAgICAgICAgPHAgY2xhc3M9ImZvb3Rlci1icmFuZCI+U09WRVJFSUdOIEFSQ0hJVEVDVFMgTU9NRU5UVU0gTUVESUE8L3A+CiAgICAgICAgPHAgY2xhc3M9ImZvb3Rlci1jb250YWN0Ij5RdWVzdGlvbnM/IDxhIGhyZWY9Im1haWx0bzpsZWdhY3lAdGhlc292ZXJlaWduYXJjaGl0ZWN0cy5jb20iPmxlZ2FjeUB0aGVzb3ZlcmVpZ25hcmNoaXRlY3RzLmNvbTwvYT48L3A+CiAgICA8L2Zvb3Rlcj4KICAgIAogICAgPHNjcmlwdD4KICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIGUgPT4geyBlLnByZXZlbnREZWZhdWx0KCk7IHJldHVybiBmYWxzZTsgfSk7CiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnUHJpbnRTY3JlZW4nIHx8IChlLmN0cmxLZXkgJiYgZS5rZXkgPT09ICdwJykgfHwgKGUuY3RybEtleSAmJiBlLmtleSA9PT0gJ3MnKSB8fCBlLmtleSA9PT0gJ0YxMicpIHsKICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ3N0YXJ0JywgZSA9PiB7IGUucHJldmVudERlZmF1bHQoKTsgcmV0dXJuIGZhbHNlOyB9KTsKICAgICAgICAKICAgICAgICBmdW5jdGlvbiBwbGF5VmlkZW8oKSB7CiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJ2h0dHBzOi8vc292ZXJlaWdubW9tZW50dW0uY29tLzIwMjYtZGVjbGFyYXRpb24nOwogICAgICAgIH0KICAgIDwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4=","embed":""}
✦
★
✦
★
✦
★
✦
★
2026
2026
2026
2026
2026
2026
AC
Private Invitation
✦
✦
★
✦
★
✦
The Architects
The Architects
Consortium
Roundtable
Legacy
Circle
A curated assembly of Africa's most distinguished Visionary Architects.
An invitation purposefully crafted for you.
Sovereignty
◆
Excellence
◆
Legacy
◆
Intention
◆
Vision
◆
Passion
◆
Action
◆
Mission
A message awaits you
What you are about to experience is exclusive.
A heart extended Handshake Africa Invitation
to Motherland Peers whose contributions deserve to be documented.
"
The river does not drink its own water. The tree does not eat its own fruit. The sun does not shine for itself. Living for others is the rule of nature ~ and the mark of a true Architect.
~ Tawqa N. Mukasa
Founder, Mukasa Venture Partners LLC
T
Please Check Your Email
We Will Be Following Up Shortly
We Will Be Following Up Shortly