{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICA8dGl0bGU+R2FsbGVyeSAtIFNlZSBIYW5kc2hha2UgQ2FyZHMgaW4gQWN0aW9uIHwgSGFuZHNoYWtlLmFmcmljYTwvdGl0bGU+CiAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkJyb3dzZSByZWFsIGRpZ2l0YWwgYnVzaW5lc3MgY2FyZHMgZnJvbSBBZnJpY2FuIGVudHJlcHJlbmV1cnMuIEdldCBpbnNwaXJlZCBieSBwcm9mZXNzaW9uYWxzIHdobyBzdGFuZCBvdXQgd2l0aCBoYW5kc2hha2UuYWZyaWNhIGNhcmRzLiI+CiAgPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJub2luZGV4LCBub2ZvbGxvdyI+CiAgCiAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1JbnRlcjp3Z2h0QDMwMDs0MDA7NjAwOzcwMDs4MDAmZmFtaWx5PVBsYXlmYWlyK0Rpc3BsYXk6d2dodEA3MDA7OTAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KICAKICA8c3R5bGU+CiAgICAvKiBJTkhFUklUIEJBU0UgU1RZTEVTIEZST00gSE9NRVBBR0UgKi8KICAgIDpyb290IHsKICAgICAgLS1uYXZ5OiAjMDAxRjNGOwogICAgICAtLXJveWFsLWJsdWU6ICMwMDQ3QUI7CiAgICAgIC0tZ29sZDogI0ZGRDcwMDsKICAgICAgLS1nb2xkLXdhcm06ICNGRkMxMDc7CiAgICAgIC0td2hpdGU6ICNGRkZGRkY7CiAgICAgIC0tbGlnaHQtYmc6ICNGN0Y5RkM7CiAgICAgIC0tZ3JheTogIzZCNzI4MDsKICAgICAgLS10ZWFsOiAjMDBDOUE3OwogICAgICAtLW9yYW5nZTogI0ZGNkIzNTsKICAgICAgLS1wdXJwbGU6ICM3QjY4RUU7CiAgICB9CiAgICAKICAgICogewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB9CiAgICAKICAgIGJvZHkgewogICAgICBmb250LWZhbWlseTogJ0ludGVyJywgc2Fucy1zZXJpZjsKICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0LWJnKTsKICAgIH0KICAgIAogICAgaDEsIGgyLCBoMyB7CiAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICBmb250LXdlaWdodDogOTAwOwogICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgfQogICAgCiAgICAvKiBOQVZJR0FUSU9OIC0gU0FNRSBBUyBIT01FUEFHRSAqLwogICAgLm5hdiB7CiAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgdG9wOiAwOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAzMSwgNjMsIDAuOTUpOwogICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7CiAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIHBhZGRpbmc6IDFyZW0gMnJlbTsKICAgICAgYm94LXNoYWRvdzogMCAycHggMjBweCByZ2JhKDAsMCwwLDAuMSk7CiAgICB9CiAgICAKICAgIC5uYXYtY29udGFpbmVyIHsKICAgICAgbWF4LXdpZHRoOiAxNDAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB9CiAgICAKICAgIC5sb2dvIHsKICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgIH0KICAgIAogICAgLm5hdi1saW5rcyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMnJlbTsKICAgICAgbGlzdC1zdHlsZTogbm9uZTsKICAgIH0KICAgIAogICAgLm5hdi1saW5rcyBhIHsKICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7CiAgICB9CiAgICAKICAgIC5uYXYtbGlua3MgYTpob3ZlciwKICAgIC5uYXYtbGlua3MgYS5hY3RpdmUgewogICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICB9CiAgICAKICAgIC5tb2JpbGUtbWVudSB7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KICAgIAogICAgLyogSEVSTyAtIEdBTExFUlkgVkVSU0lPTiAqLwogICAgLmhlcm8gewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1uYXZ5KSAwJSwgdmFyKC0tcm95YWwtYmx1ZSkgMTAwJSk7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgIHBhZGRpbmc6IDE0MHB4IDJyZW0gNjBweDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQogICAgCiAgICAuaGVybzo6YmVmb3JlIHsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAtNTAlOwogICAgICBsZWZ0OiAtNTAlOwogICAgICB3aWR0aDogMjAwJTsKICAgICAgaGVpZ2h0OiAyMDAlOwogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHRyYW5zcGFyZW50IDMwJSwgcmdiYSgyNTUsIDIxNSwgMCwgMC4wNSkgNTAlLCB0cmFuc3BhcmVudCA3MCUpOwogICAgICBhbmltYXRpb246IHJvdGF0ZSAyMHMgbGluZWFyIGluZmluaXRlOwogICAgfQogICAgCiAgICBAa2V5ZnJhbWVzIHJvdGF0ZSB7CiAgICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgIH0KICAgIAogICAgLmhlcm8tY29udGFpbmVyIHsKICAgICAgbWF4LXdpZHRoOiAxNDAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHotaW5kZXg6IDI7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KICAgIAogICAgLmhlcm8gaDEgewogICAgICBmb250LXNpemU6IGNsYW1wKDIuNXJlbSwgNnZ3LCA0cmVtKTsKICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgIH0KICAgIAogICAgLmhlcm8tc3VidGl0bGUgewogICAgICBmb250LXNpemU6IGNsYW1wKDEuMXJlbSwgMi41dncsIDEuNHJlbSk7CiAgICAgIG9wYWNpdHk6IDAuOTU7CiAgICAgIG1heC13aWR0aDogNzAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQogICAgCiAgICAvKiBOQVZJR0FUSU9OIEFSUk9XUyAqLwogICAgLnBhZ2UtbmF2IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBtYXgtd2lkdGg6IDE0MDBweDsKICAgICAgbWFyZ2luOiAycmVtIGF1dG87CiAgICAgIHBhZGRpbmc6IDAgMnJlbTsKICAgIH0KICAgIAogICAgLm5hdi1hcnJvdyB7CiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDAuNXJlbTsKICAgICAgcGFkZGluZzogMC43NXJlbSAxLjVyZW07CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyMTUsIDAsIDAuMSk7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7CiAgICB9CiAgICAKICAgIC5uYXYtYXJyb3c6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkKTsKICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICB9CiAgICAKICAgIC8qIEZJTFRFUiBTRUNUSU9OICovCiAgICAuZmlsdGVyLXNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS13aGl0ZSk7CiAgICAgIHBhZGRpbmc6IDJyZW07CiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgIGJveC1zaGFkb3c6IDAgMTBweCA0MHB4IHJnYmEoMCwwLDAsMC4wOCk7CiAgICAgIG1hcmdpbjogM3JlbSBhdXRvOwogICAgICBtYXgtd2lkdGg6IDE0MDBweDsKICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07CiAgICAgIG1hcmdpbi1yaWdodDogMnJlbTsKICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgdG9wOiA4MHB4OwogICAgICB6LWluZGV4OiAxMDA7CiAgICB9CiAgICAKICAgIC5maWx0ZXItbGFiZWwgewogICAgICBmb250LXdlaWdodDogNzAwOwogICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07CiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgfQogICAgCiAgICAuZmlsdGVyLXRhYnMgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDFyZW07CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KICAgIAogICAgLmZpbHRlci1idG4gewogICAgICBwYWRkaW5nOiAwLjc1cmVtIDEuNXJlbTsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tbGlnaHQtYmcpOwogICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOwogICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICB9CiAgICAKICAgIC5maWx0ZXItYnRuOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpOwogICAgICBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOwogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICB9CiAgICAKICAgIC5maWx0ZXItYnRuLmFjdGl2ZSB7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpIDAlLCB2YXIoLS1nb2xkLXdhcm0pIDEwMCUpOwogICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ29sZCk7CiAgICB9CiAgICAKICAgIC8qIEdBTExFUlkgR1JJRCAqLwogICAgLmdhbGxlcnktY29udGFpbmVyIHsKICAgICAgbWF4LXdpZHRoOiAxNDAwcHg7CiAgICAgIG1hcmdpbjogNHJlbSBhdXRvOwogICAgICBwYWRkaW5nOiAwIDJyZW07CiAgICB9CiAgICAKICAgIC5nYWxsZXJ5LWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzNTBweCwgMWZyKSk7CiAgICAgIGdhcDogMi41cmVtOwogICAgfQogICAgCiAgICAuY2FyZC1zaG93Y2FzZSB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTsKICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDQwcHggcmdiYSgwLDAsMCwwLjA4KTsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB9CiAgICAKICAgIC5jYXJkLXNob3djYXNlOmhvdmVyIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KSByb3RhdGUoMmRlZyk7CiAgICAgIGJveC1zaGFkb3c6IDAgMjVweCA2MHB4IHJnYmEoMCwwLDAsMC4xNSk7CiAgICB9CiAgICAKICAgIC8qIENhcmQgSW1hZ2UgQ29udGFpbmVyIC0gUGhvbmUgTW9ja3VwICovCiAgICAuY2FyZC1pbWFnZSB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tbGlnaHQtYmcpIDAlLCAjRTVFN0VCIDEwMCUpOwogICAgICBwYWRkaW5nOiAycmVtOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgbWluLWhlaWdodDogNDAwcHg7CiAgICB9CiAgICAKICAgIC5waG9uZS1tb2NrdXAgewogICAgICB3aWR0aDogMjgwcHg7CiAgICAgIGhlaWdodDogNTYwcHg7CiAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7CiAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA2MHB4IHJnYmEoMCwwLDAsMC4zKTsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQogICAgCiAgICAucGhvbmUtbW9ja3VwOjpiZWZvcmUgewogICAgICBjb250ZW50OiAnJzsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDEycHg7CiAgICAgIGxlZnQ6IDUwJTsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICB3aWR0aDogMTIwcHg7CiAgICAgIGhlaWdodDogMjVweDsKICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDIwcHggMjBweDsKICAgICAgei1pbmRleDogMTA7CiAgICB9CiAgICAKICAgIC5waG9uZS1zY3JlZW4gewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS13aGl0ZSk7CiAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KICAgIAogICAgLnBob25lLXNjcmVlbiBpZnJhbWUsCiAgICAucGhvbmUtc2NyZWVuIGltZyB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICBib3JkZXI6IG5vbmU7CiAgICB9CiAgICAKICAgIC8qIFRpZXIgQmFkZ2UgKi8KICAgIC50aWVyLWJhZGdlIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDEuNXJlbTsKICAgICAgcmlnaHQ6IDEuNXJlbTsKICAgICAgcGFkZGluZzogMC41cmVtIDEuMjVyZW07CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgei1pbmRleDogMjA7CiAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDE1cHggcmdiYSgwLDAsMCwwLjIpOwogICAgfQogICAgCiAgICAudGllci1lc3NlbnRpYWwgewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNEE5MEUyIDAlLCAjMzU3QUJEIDEwMCUpOwogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgfQogICAgCiAgICAudGllci1wcm9mZXNzaW9uYWwgewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS10ZWFsKSAwJSwgIzAwQjg5NCAxMDAlKTsKICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgIH0KICAgIAogICAgLnRpZXItcHJlbWl1bSB7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXB1cnBsZSkgMCUsICM2QzVDRTcgMTAwJSk7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICB9CiAgICAKICAgIC50aWVyLWZvdW5kZXIgewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSAwJSwgdmFyKC0tZ29sZC13YXJtKSAxMDAlKTsKICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgfQogICAgCiAgICAvKiBDYXJkIERldGFpbHMgKi8KICAgIC5jYXJkLWRldGFpbHMgewogICAgICBwYWRkaW5nOiAycmVtOwogICAgfQogICAgCiAgICAuY2FyZC1kZXRhaWxzIGgzIHsKICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsKICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgfQogICAgCiAgICAuY2FyZC1zdWJ0aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgY29sb3I6IHZhcigtLWdyYXkpOwogICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOwogICAgfQogICAgCiAgICAuaW5kdXN0cnktdGFnIHsKICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICBwYWRkaW5nOiAwLjRyZW0gMXJlbTsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tbGlnaHQtYmcpOwogICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOwogICAgfQogICAgCiAgICAuZmVhdHVyZXMtbGlzdCB7CiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsKICAgIH0KICAgIAogICAgLmZlYXR1cmVzLWxpc3QgbGkgewogICAgICBwYWRkaW5nOiAwLjVyZW0gMDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiAwLjc1cmVtOwogICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgIGNvbG9yOiB2YXIoLS1ncmF5KTsKICAgIH0KICAgIAogICAgLmZlYXR1cmVzLWxpc3QgbGk6OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICfinKgnOwogICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgIH0KICAgIAogICAgLyogQ2FyZCBBY3Rpb25zICovCiAgICAuY2FyZC1hY3Rpb25zIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxcmVtOwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CiAgICAKICAgIC5idG4gewogICAgICBmbGV4OiAxOwogICAgICBtaW4td2lkdGg6IDEyMHB4OwogICAgICBwYWRkaW5nOiAwLjlyZW0gMS41cmVtOwogICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICBmb250LXdlaWdodDogNzAwOwogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zczsKICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KICAgIAogICAgLmJ0bi12aWV3IHsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tbmF2eSkgMCUsIHZhcigtLXJveWFsLWJsdWUpIDEwMCUpOwogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgfQogICAgCiAgICAuYnRuLXZpZXc6aG92ZXIgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDIwcHggcmdiYSgwLDMxLDYzLDAuMyk7CiAgICB9CiAgICAKICAgIC5idG4tZ2V0IHsKICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICB9CiAgICAKICAgIC5idG4tZ2V0OmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsKICAgIH0KICAgIAogICAgLyogRkVBVFVSRUQgU0VDVElPTiAqLwogICAgLmZlYXR1cmVkLXNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSAwJSwgdmFyKC0tZ29sZC13YXJtKSAxMDAlKTsKICAgICAgcGFkZGluZzogODBweCAycmVtOwogICAgICBtYXJnaW46IDZyZW0gMDsKICAgIH0KICAgIAogICAgLmZlYXR1cmVkLWNvbnRhaW5lciB7CiAgICAgIG1heC13aWR0aDogMTQwMHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KICAgIAogICAgLmZlYXR1cmVkLXNlY3Rpb24gaDIgewogICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgbWFyZ2luLWJvdHRvbTogM3JlbTsKICAgICAgZm9udC1zaXplOiBjbGFtcCgycmVtLCA1dncsIDNyZW0pOwogICAgfQogICAgCiAgICAuZmVhdHVyZWQtZ3JpZCB7CiAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzAwcHgsIDFmcikpOwogICAgICBnYXA6IDNyZW07CiAgICB9CiAgICAKICAgIC8qIENUQSBTRUNUSU9OICovCiAgICAuY3RhLXNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXZ5KTsKICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgICAgcGFkZGluZzogODBweCAycmVtOwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgICAKICAgIC5jdGEtY29udGFpbmVyIHsKICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgICAKICAgIC5jdGEtc2VjdGlvbiBoMiB7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsKICAgIH0KICAgIAogICAgLmN0YS1zZWN0aW9uIHAgewogICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgb3BhY2l0eTogMC45OwogICAgICBtYXJnaW4tYm90dG9tOiAycmVtOwogICAgfQogICAgCiAgICAuYnRuLWN0YSB7CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgcGFkZGluZzogMS4ycmVtIDNyZW07CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOwogICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOwogICAgfQogICAgCiAgICAuYnRuLWN0YTpob3ZlciB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgYm94LXNoYWRvdzogMCAxNXB4IDQwcHggcmdiYSgyNTUsMjE1LDAsMC40KTsKICAgIH0KICAgIAogICAgLyogRk9PVEVSIC0gU0FNRSBBUyBIT01FUEFHRSAqLwogICAgLmZvb3RlciB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLW5hdnkpOwogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgICBwYWRkaW5nOiA2MHB4IDJyZW0gMjBweDsKICAgIH0KICAgIAogICAgLmZvb3Rlci1jb250YWluZXIgewogICAgICBtYXgtd2lkdGg6IDE0MDBweDsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgICAKICAgIC5mb290ZXItZ3JpZCB7CiAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICBnYXA6IDNyZW07CiAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07CiAgICB9CiAgICAKICAgIC5mb290ZXItY29sdW1uIGg0IHsKICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOwogICAgfQogICAgCiAgICAuZm9vdGVyLWNvbHVtbiB1bCB7CiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICB9CiAgICAKICAgIC5mb290ZXItY29sdW1uIHVsIGxpIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTsKICAgIH0KICAgIAogICAgLmZvb3Rlci1jb2x1bW4gYSB7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgb3BhY2l0eTogMC45OwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zczsKICAgIH0KICAgIAogICAgLmZvb3Rlci1jb2x1bW4gYTpob3ZlciB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgIH0KICAgIAogICAgLmZvb3Rlci1ib3R0b20gewogICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsMjE1LDAsMC4zKTsKICAgICAgcGFkZGluZy10b3A6IDJyZW07CiAgICAgIG1hcmdpbi10b3A6IDJyZW07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBnYXA6IDFyZW07CiAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICBvcGFjaXR5OiAwLjg7CiAgICB9CiAgICAKICAgIC5mb290ZXItYm90dG9tIGEgewogICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIH0KICAgIAogICAgLyogUkVTUE9OU0lWRSAqLwogICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgIC5uYXYtbGlua3MgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXZ5KTsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHBhZGRpbmc6IDJyZW07CiAgICAgICAgZ2FwOiAxcmVtOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zczsKICAgICAgfQogICAgICAKICAgICAgLm5hdi1saW5rcy5hY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgIH0KICAgICAgCiAgICAgIC5tb2JpbGUtbWVudSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgICAgCiAgICAgIC5nYWxsZXJ5LWdyaWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICB9CiAgICAgIAogICAgICAuZmlsdGVyLXRhYnMgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KICAgICAgCiAgICAgIC5maWx0ZXItYnRuIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KICAgICAgCiAgICAgIC5wYWdlLW5hdiB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDFyZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5uYXYtYXJyb3cgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CiAgICB9CiAgICAKICAgIC8qIEFOSU1BVElPTlMgKi8KICAgIC5mYWRlLWluIHsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpOwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC42cyBlYXNlLW91dDsKICAgIH0KICAgIAogICAgLmZhZGUtaW4udmlzaWJsZSB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgIH0KICAgIAogICAgQGtleWZyYW1lcyBmbG9hdCB7CiAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9CiAgICAgIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7IH0KICAgIH0KICAgIAogICAgLmNhcmQtc2hvd2Nhc2U6aG92ZXIgLnBob25lLW1vY2t1cCB7CiAgICAgIGFuaW1hdGlvbjogZmxvYXQgM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICB9CiAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCiAgPCEtLSBOQVZJR0FUSU9OIC0tPgogIDxuYXYgY2xhc3M9Im5hdiI+CiAgICA8ZGl2IGNsYXNzPSJuYXYtY29udGFpbmVyIj4KICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9ImxvZ28iPkhhbmRzaGFrZS5hZnJpY2E8L2E+CiAgICAgIDxidXR0b24gY2xhc3M9Im1vYmlsZS1tZW51IiBvbmNsaWNrPSJ0b2dnbGVNZW51KCkiPuKYsDwvYnV0dG9uPgogICAgICA8dWwgY2xhc3M9Im5hdi1saW5rcyIgaWQ9Im5hdkxpbmtzIj4KICAgICAgICA8bGk+PGEgaHJlZj0iL2dhbGxlcnkiIGNsYXNzPSJhY3RpdmUiPkdhbGxlcnk8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iL3ByaWNpbmciPlByaWNpbmc8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iL2Fib3V0Ij5BYm91dDwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIvY29udGFjdCI+Q29udGFjdDwvYT48L2xpPgogICAgICA8L3VsPgogICAgPC9kaXY+CiAgPC9uYXY+CgogIDwhLS0gSEVSTyAtLT4KICA8c2VjdGlvbiBjbGFzcz0iaGVybyI+CiAgICA8ZGl2IGNsYXNzPSJoZXJvLWNvbnRhaW5lciI+CiAgICAgIDxoMT5PdXIgRm91bmRpbmcgTWVtYmVycyBHYWxsZXJ5PC9oMT4KICAgICAgPHAgY2xhc3M9Imhlcm8tc3VidGl0bGUiPgogICAgICAgIE1lZXQgdGhlIHBpb25lZXJpbmcgZW50cmVwcmVuZXVycyBidWlsZGluZyBBZnJpY2EncyBkaWdpdGFsIGZ1dHVyZS4gUmVhbCBwcm9mZXNzaW9uYWxzLiBSZWFsIGltcGFjdC4KICAgICAgPC9wPgogICAgPC9kaXY+CiAgPC9zZWN0aW9uPgoKICA8IS0tIFBBR0UgTkFWSUdBVElPTiBBUlJPV1MgLS0+CiAgPGRpdiBjbGFzcz0icGFnZS1uYXYiPgogICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdi1hcnJvdyI+4oaQIEJhY2sgdG8gSG9tZTwvYT4KICAgIDxhIGhyZWY9Ii9wcmljaW5nIiBjbGFzcz0ibmF2LWFycm93Ij5HZXQgWW91ciBDYXJkIOKGkjwvYT4KICA8L2Rpdj4KCiAgPCEtLSBGSUxURVIgU0VDVElPTiAtLT4KICA8ZGl2IGNsYXNzPSJmaWx0ZXItc2VjdGlvbiI+CiAgICA8ZGl2IGNsYXNzPSJmaWx0ZXItbGFiZWwiPkZpbHRlciBieSBJbmR1c3RyeTo8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZpbHRlci10YWJzIj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iZmlsdGVyLWJ0biBhY3RpdmUiIG9uY2xpY2s9ImZpbHRlckNhcmRzKCdhbGwnKSI+QWxsIE1lbWJlcnM8L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iZmlsdGVyLWJ0biIgb25jbGljaz0iZmlsdGVyQ2FyZHMoJ21lZGlhJykiPk1lZGlhICYgUHVibGlzaGluZzwvYnV0dG9uPgogICAgICA8YnV0dG9uIGNsYXNzPSJmaWx0ZXItYnRuIiBvbmNsaWNrPSJmaWx0ZXJDYXJkcygnYnVzaW5lc3MnKSI+QnVzaW5lc3MgU2VydmljZXM8L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iZmlsdGVyLWJ0biIgb25jbGljaz0iZmlsdGVyQ2FyZHMoJ3RlY2gnKSI+VGVjaCAmIElubm92YXRpb248L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iZmlsdGVyLWJ0biIgb25jbGljaz0iZmlsdGVyQ2FyZHMoJ2hlYWx0aCcpIj5IZWFsdGhjYXJlPC9idXR0b24+CiAgICAgIDxidXR0b24gY2xhc3M9ImZpbHRlci1idG4iIG9uY2xpY2s9ImZpbHRlckNhcmRzKCdjcmVhdGl2ZScpIj5DcmVhdGl2ZSBJbmR1c3RyaWVzPC9idXR0b24+CiAgICAgIDxidXR0b24gY2xhc3M9ImZpbHRlci1idG4iIG9uY2xpY2s9ImZpbHRlckNhcmRzKCdhZ3JpY3VsdHVyZScpIj5BZ3JpY3VsdHVyZTwvYnV0dG9uPgogICAgICA8YnV0dG9uIGNsYXNzPSJmaWx0ZXItYnRuIiBvbmNsaWNrPSJmaWx0ZXJDYXJkcygnZWR1Y2F0aW9uJykiPkVkdWNhdGlvbjwvYnV0dG9uPgogICAgICA8YnV0dG9uIGNsYXNzPSJmaWx0ZXItYnRuIiBvbmNsaWNrPSJmaWx0ZXJDYXJkcygnZmluYW5jZScpIj5GaW5hbmNlICYgRmludGVjaDwvYnV0dG9uPgogICAgPC9kaXY+CiAgPC9kaXY+CgogIDwhLS0gR0FMTEVSWSBHUklEIC0tPgogIDxkaXYgY2xhc3M9ImdhbGxlcnktY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktZ3JpZCI+CiAgICAgIAogICAgICA8IS0tIENBUkQgMSAtIE5JR0hUSU5HQUxFIE1VS0FTQSAoRk9VTkRFUikgLS0+CiAgICAgIDxkaXYgY2xhc3M9ImNhcmQtc2hvd2Nhc2UgZmFkZS1pbiIgZGF0YS1jYXRlZ29yeT0ibWVkaWEgYnVzaW5lc3MiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1hZ2UiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRpZXItYmFkZ2UgdGllci1mb3VuZGVyIj7wn4yfIEZvdW5kZXI8L3NwYW4+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwaG9uZS1tb2NrdXAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaG9uZS1zY3JlZW4iPgogICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMjU2eDUxMi8wZjc2NmUvRkZGRkZGP3RleHQ9TmlnaHRpbmdhbGUrTXVrYXNhK0ZvdW5kZXIrQ2FyZCIgYWx0PSJOaWdodGluZ2FsZSBNdWthc2EgLSBGb3VuZGVyIj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWRldGFpbHMiPgogICAgICAgICAgPGgzPk5pZ2h0aW5nYWxlIE11a2FzYTwvaDM+CiAgICAgICAgICA8cCBjbGFzcz0iY2FyZC1zdWJ0aXRsZSI+Rm91bmRlciAmIFZpc2lvbmFyeSB8IENNTyAmIEJyYW5kIFN0cmF0ZWdpc3Q8L3A+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5kdXN0cnktdGFnIj7wn5OwIE1lZGlhICYgRGlnaXRhbCBMZWFkZXJzaGlwPC9zcGFuPgogICAgICAgICAgPHVsIGNsYXNzPSJmZWF0dXJlcy1saXN0Ij4KICAgICAgICAgICAgPGxpPkFtcGxpZnlpbmcgQWZyaWNhbiB3b21lbidzIHZvaWNlcyB0aHJvdWdoIGRpZ2l0YWwgc292ZXJlaWdudHk8L2xpPgogICAgICAgICAgICA8bGk+RnVsbC1zcGVjdHJ1bSBicmFuZCAmIG1lZGlhIHN0cmF0ZWd5PC9saT4KICAgICAgICAgICAgPGxpPkJ1aWxkaW5nIHRoZSBmdXR1cmUgb2YgQWZyaWNhbiBlbnRyZXByZW5ldXJzaGlwPC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWFjdGlvbnMiPgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2FmcmljYWZyb250bGluZW5leHVzLm5ld3MvZm91bmRlciIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJidG4gYnRuLXZpZXciPlZpZXcgQ2FyZDwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9tZW50b3JzaGlwc3VjY2Vzcy5jb20vZm91bmRlci12aXJ0dWFsLWNhcmQiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iYnRuIGJ0bi1nZXQiPkFsdCBDYXJkPC9hPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBDQVJEIDIgLSBCQVJCQVJBIE5BTlRPTkdPIC0tPgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLXNob3djYXNlIGZhZGUtaW4iIGRhdGEtY2F0ZWdvcnk9ImJ1c2luZXNzIHRlY2giPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1hZ2UiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRpZXItYmFkZ2UgdGllci1wcm9mZXNzaW9uYWwiPlByb2Zlc3Npb25hbDwvc3Bhbj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBob25lLW1vY2t1cCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBob25lLXNjcmVlbiI+CiAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vdmlhLnBsYWNlaG9sZGVyLmNvbS8yNTZ4NTEyLzBmNzY2ZS9GRkZGRkY/dGV4dD1CYXJiYXJhK05hbnRvbmdvIiBhbHQ9IkJhcmJhcmEgTmFudG9uZ28iPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtZGV0YWlscyI+CiAgICAgICAgICA8aDM+QmFyYmFyYSBOYW50b25nbzwvaDM+CiAgICAgICAgICA8cCBjbGFzcz0iY2FyZC1zdWJ0aXRsZSI+Rm91bmRlciB8IFNtYXJ0IEtpdGNoZW4gU29sdXRpb25zPC9wPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImluZHVzdHJ5LXRhZyI+8J+NsyBLaXRjaGVuIElubm92YXRpb24gJiBCdXNpbmVzczwvc3Bhbj4KICAgICAgICAgIDx1bCBjbGFzcz0iZmVhdHVyZXMtbGlzdCI+CiAgICAgICAgICAgIDxsaT5Db2hvcnQgUGlvbmVlciAtIE1lbnRyeDwvbGk+CiAgICAgICAgICAgIDxsaT5UcmFuc2Zvcm1pbmcga2l0Y2hlbnMgYWNyb3NzIEVhc3QgQWZyaWNhPC9saT4KICAgICAgICAgICAgPGxpPlNtYXJ0IHNvbHV0aW9ucyBmb3IgbW9kZXJuIGxpdmluZzwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1hY3Rpb25zIj4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL25hbnRvbmdvLWJhcmJyYS1qYW5lLTc2NTUzODE5Ni8iIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iYnRuIGJ0bi12aWV3Ij5Db25uZWN0PC9hPgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3NtYXJ0a2l0Y2hlbnNvbHV0aW9ucy5jb20iIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iYnRuIGJ0bi1nZXQiPlZpc2l0IEJ1c2luZXNzPC9hPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBDQVJEIDMgLSBURUREWSBCQU5LUyBOQUtJVFRPIC0tPgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLXNob3djYXNlIGZhZGUtaW4iIGRhdGEtY2F0ZWdvcnk9ImJ1c2luZXNzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWltYWdlIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aWVyLWJhZGdlIHRpZXItcHJvZmVzc2lvbmFsIj5Qcm9mZXNzaW9uYWw8L3NwYW4+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwaG9uZS1tb2NrdXAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaG9uZS1zY3JlZW4iPgogICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMjU2eDUxMi8wZjc2NmUvRkZGRkZGP3RleHQ9VGVkZHkrTmFraXR0byIgYWx0PSJUZWRkeSBCYW5rcyBOYWtpdHRvIj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWRldGFpbHMiPgogICAgICAgICAgPGgzPlRlZGR5IEJhbmtzIE5ha2l0dG88L2gzPgogICAgICAgICAgPHAgY2xhc3M9ImNhcmQtc3VidGl0bGUiPkVudHJlcHJlbmV1ciAmIEJ1c2luZXNzIExlYWRlcjwvcD4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmR1c3RyeS10YWciPvCfkrwgQnVzaW5lc3MgU2VydmljZXMgJiBDb25zdWx0aW5nPC9zcGFuPgogICAgICAgICAgPHVsIGNsYXNzPSJmZWF0dXJlcy1saXN0Ij4KICAgICAgICAgICAgPGxpPkNvaG9ydCBMZWFkZXIgLSBUQVNOPC9saT4KICAgICAgICAgICAgPGxpPkVtcG93ZXJpbmcgQWZyaWNhbiBlbnRyZXByZW5ldXJzPC9saT4KICAgICAgICAgICAgPGxpPlN0cmF0ZWdpYyBidXNpbmVzcyBkZXZlbG9wbWVudDwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1hY3Rpb25zIj4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL3RlZGR5LW5ha2l0dG8vIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImJ0biBidG4tdmlldyI+Q29ubmVjdCBvbiBMaW5rZWRJbjwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iL3ByaWNpbmc/dGllcj1wcm9mZXNzaW9uYWwiIGNsYXNzPSJidG4gYnRuLWdldCI+R2V0IFRoaXMgU3R5bGU8L2E+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIENBUkQgNCAtIERSLiBCQVJCQVJBIFNUUk9VRCAtLT4KICAgICAgPGRpdiBjbGFzcz0iY2FyZC1zaG93Y2FzZSBmYWRlLWluIiBkYXRhLWNhdGVnb3J5PSJoZWFsdGgiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1hZ2UiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRpZXItYmFkZ2UgdGllci1wcmVtaXVtIj5QcmVtaXVtPC9zcGFuPgogICAgICAgICAgPGRpdiBjbGFzcz0icGhvbmUtbW9ja3VwIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGhvbmUtc2NyZWVuIj4KICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly92aWEucGxhY2Vob2xkZXIuY29tLzI1Nng1MTIvN0I2OEVFL0ZGRkZGRj90ZXh0PURyLitCYXJiYXJhK1N0cm91ZCIgYWx0PSJEci4gQmFyYmFyYSBTdHJvdWQiPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtZGV0YWlscyI+CiAgICAgICAgICA8aDM+RHIuIEJhcmJhcmEgU3Ryb3VkPC9oMz4KICAgICAgICAgIDxwIGNsYXNzPSJjYXJkLXN1YnRpdGxlIj5NZWRpY2FsIFByb2Zlc3Npb25hbCAmIEhlYWx0aGNhcmUgTGVhZGVyPC9wPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImluZHVzdHJ5LXRhZyI+8J+PpSBIZWFsdGhjYXJlICYgTWVkaWNpbmU8L3NwYW4+CiAgICAgICAgICA8dWwgY2xhc3M9ImZlYXR1cmVzLWxpc3QiPgogICAgICAgICAgICA8bGk+TWVkaWNhbCBleHBlcnRpc2UgYW5kIGF1dGhvcml0eTwvbGk+CiAgICAgICAgICAgIDxsaT5QYXRpZW50LWNlbnRlcmVkIGNhcmUgcGhpbG9zb3BoeTwvbGk+CiAgICAgICAgICAgIDxsaT5IZWFsdGhjYXJlIGlubm92YXRpb24gYWR2b2NhdGU8L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtYWN0aW9ucyI+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9kci1iYXJiYXJhLXN0cm91ZC0wNjIxNjIyMjAvIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImJ0biBidG4tdmlldyI+VmlldyBQcm9maWxlPC9hPgogICAgICAgICAgICA8YSBocmVmPSIvcHJpY2luZz90aWVyPXByZW1pdW0iIGNsYXNzPSJidG4gYnRuLWdldCI+R2V0IFRoaXMgU3R5bGU8L2E+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIENBUkQgNSAtIExZTk4gTkFLQUJVR08gLS0+CiAgICAgIDxkaXYgY2xhc3M9ImNhcmQtc2hvd2Nhc2UgZmFkZS1pbiIgZGF0YS1jYXRlZ29yeT0iYnVzaW5lc3MiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1hZ2UiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRpZXItYmFkZ2UgdGllci1wcm9mZXNzaW9uYWwiPlByb2Zlc3Npb25hbDwvc3Bhbj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBob25lLW1vY2t1cCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBob25lLXNjcmVlbiI+CiAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vdmlhLnBsYWNlaG9sZGVyLmNvbS8yNTZ4NTEyLzBmNzY2ZS9GRkZGRkY/dGV4dD1MeW5uK05ha2FidWdvIiBhbHQ9Ikx5bm4gTmFrYWJ1Z28iPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtZGV0YWlscyI+CiAgICAgICAgICA8aDM+THlubiBOYWthYnVnbzwvaDM+CiAgICAgICAgICA8cCBjbGFzcz0iY2FyZC1zdWJ0aXRsZSI+RW50cmVwcmVuZXVyICYgQ29tbXVuaXR5IExlYWRlcjwvcD4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmR1c3RyeS10YWciPvCfmoAgRW50cmVwcmVuZXVyc2hpcCAmIElubm92YXRpb248L3NwYW4+CiAgICAgICAgICA8dWwgY2xhc3M9ImZlYXR1cmVzLWxpc3QiPgogICAgICAgICAgICA8bGk+Q29ob3J0IFBpb25lZXIgLSBNZW50cng8L2xpPgogICAgICAgICAgICA8bGk+QnVpbGRpbmcgc3VzdGFpbmFibGUgYnVzaW5lc3NlczwvbGk+CiAgICAgICAgICAgIDxsaT5Db21tdW5pdHkgZW1wb3dlcm1lbnQgYWR2b2NhdGU8L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtYWN0aW9ucyI+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9seW5uLW5ha2FidWdvLyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJidG4gYnRuLXZpZXciPkNvbm5lY3Q8L2E+CiAgICAgICAgICAgIDxhIGhyZWY9Ii9wcmljaW5nP3RpZXI9cHJvZmVzc2lvbmFsIiBjbGFzcz0iYnRuIGJ0bi1nZXQiPkdldCBUaGlzIFN0eWxlPC9hPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBDQVJEIDYgLSBOQUtJR0FOREEgUklUQUggLS0+CiAgICAgIDxkaXYgY2xhc3M9ImNhcmQtc2hvd2Nhc2UgZmFkZS1pbiIgZGF0YS1jYXRlZ29yeT0iYnVzaW5lc3MiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1hZ2UiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRpZXItYmFkZ2UgdGllci1wcm9mZXNzaW9uYWwiPlByb2Zlc3Npb25hbDwvc3Bhbj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBob25lLW1vY2t1cCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBob25lLXNjcmVlbiI+CiAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vdmlhLnBsYWNlaG9sZGVyLmNvbS8yNTZ4NTEyLzBmNzY2ZS9GRkZGRkY/dGV4dD1OYWtpZ2FuZGErUml0YWgiIGFsdD0iTmFraWdhbmRhIFJpdGFoIj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWRldGFpbHMiPgogICAgICAgICAgPGgzPk5ha2lnYW5kYSBSaXRhaDwvaDM+CiAgICAgICAgICA8cCBjbGFzcz0iY2FyZC1zdWJ0aXRsZSI+VmlzaW9uYXJ5IEVudHJlcHJlbmV1cjwvcD4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmR1c3RyeS10YWciPvCfkqEgQnVzaW5lc3MgU3RyYXRlZ3kgJiBEZXZlbG9wbWVudDwvc3Bhbj4KICAgICAgICAgIDx1bCBjbGFzcz0iZmVhdHVyZXMtbGlzdCI+CiAgICAgICAgICAgIDxsaT5Db2hvcnQgVmlzaW9uYXJ5IC0gTWVudHJ4PC9saT4KICAgICAgICAgICAgPGxpPlN0cmF0ZWdpYyBidXNpbmVzcyBwb3NpdGlvbmluZzwvbGk+CiAgICAgICAgICAgIDxsaT5Jbm5vdmF0aXZlIG1hcmtldCBzb2x1dGlvbnM8L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtYWN0aW9ucyI+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9uYWtpZ2FuZGEtcml0YWgvIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImJ0biBidG4tdmlldyI+VmlldyBMaW5rZWRJbjwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iL3ByaWNpbmc/dGllcj1wcm9mZXNzaW9uYWwiIGNsYXNzPSJidG4gYnRuLWdldCI+R2V0IFRoaXMgU3R5bGU8L2E+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIENBUkQgNyAtIFRFTkRPIFRBTElRIChJTlRFUk4pIC0tPgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLXNob3djYXNlIGZhZGUtaW4iIGRhdGEtY2F0ZWdvcnk9ImJ1c2luZXNzIHRlY2giPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1hZ2UiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRpZXItYmFkZ2UgdGllci1lc3NlbnRpYWwiPllvdXRoIEZ1dHVyZXByZW5ldXI8L3NwYW4+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwaG9uZS1tb2NrdXAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaG9uZS1zY3JlZW4iPgogICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMjU2eDUxMi80QTkwRTIvRkZGRkZGP3RleHQ9VGVuZG8rVGFsaXEiIGFsdD0iVGVuZG8gVGFsaXEiPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtZGV0YWlscyI+CiAgICAgICAgICA8aDM+VGVuZG8gVGFsaXE8L2gzPgogICAgICAgICAgPHAgY2xhc3M9ImNhcmQtc3VidGl0bGUiPkRpZ2l0YWwgTWFya2V0aW5nIEludGVybiB8IE5leHQtR2VuIExlYWRlcjwvcD4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmR1c3RyeS10YWciPvCfjLEgWW91dGggRW50cmVwcmVuZXVyc2hpcCAmIERldmVsb3BtZW50PC9zcGFuPgogICAgICAgICAgPHVsIGNsYXNzPSJmZWF0dXJlcy1saXN0Ij4KICAgICAgICAgICAgPGxpPjIwMjUtMjAzNiBUYWxlbnQgUGlwZWxpbmUgbWVtYmVyPC9saT4KICAgICAgICAgICAgPGxpPkhhbmRzLW9uIGRpZ2l0YWwgbWFya2V0aW5nIHRyYWluaW5nPC9saT4KICAgICAgICAgICAgPGxpPkJ1aWxkaW5nIEFmcmljYSdzIGRpZ2l0YWwgZnV0dXJlPC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWFjdGlvbnMiPgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vdGVuZG8tdGFsaXEtNWE2NmIwMmJiLyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJidG4gYnRuLXZpZXciPkNvbm5lY3Q8L2E+CiAgICAgICAgICAgIDxhIGhyZWY9Ii9wcmljaW5nP3RpZXI9ZXNzZW50aWFsIiBjbGFzcz0iYnRuIGJ0bi1nZXQiPkdldCBUaGlzIFN0eWxlPC9hPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBDQVJEIDggLSBLQU5UVUNISSBNQUxFR0UgLS0+CiAgICAgIDxkaXYgY2xhc3M9ImNhcmQtc2hvd2Nhc2UgZmFkZS1pbiIgZGF0YS1jYXRlZ29yeT0iYWdyaWN1bHR1cmUgdGVjaCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbWFnZSI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGllci1iYWRnZSB0aWVyLXByb2Zlc3Npb25hbCI+UHJvZmVzc2lvbmFsPC9zcGFuPgogICAgICAgICAgPGRpdiBjbGFzcz0icGhvbmUtbW9ja3VwIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGhvbmUtc2NyZWVuIj4KICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly92aWEucGxhY2Vob2xkZXIuY29tLzI1Nng1MTIvMDBDOUE3L0ZGRkZGRj90ZXh0PUthbnR1Y2hpK01hbGVnZSIgYWx0PSJLYW50dWNoaSBNYWxlZ2UiPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtZGV0YWlscyI+CiAgICAgICAgICA8aDM+S2FudHVjaGkgTWFsZWdlPC9oMz4KICAgICAgICAgIDxwIGNsYXNzPSJjYXJkLXN1YnRpdGxlIj5TdXN0YWluYWJsZSBBZ3JpY3VsdHVyZSBJbm5vdmF0b3I8L3A+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5kdXN0cnktdGFnIj7wn4y+IEFncmlUZWNoICYgU3VzdGFpbmFiaWxpdHk8L3NwYW4+CiAgICAgICAgICA8dWwgY2xhc3M9ImZlYXR1cmVzLWxpc3QiPgogICAgICAgICAgICA8bGk+QWdyaVRlY2ggU29sdXRpb25zIEVhc3QgQWZyaWNhPC9saT4KICAgICAgICAgICAgPGxpPkZlZWRpbmcgdGhlIGZ1dHVyZSB0aHJvdWdoIHNtYXJ0IGZhcm1pbmc8L2xpPgogICAgICAgICAgICA8bGk+U3VzdGFpbmFibGUgYWdyaWN1bHR1cmUgcHJhY3RpY2VzPC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWFjdGlvbnMiPgogICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iYnRuIGJ0bi12aWV3Ij5Db21pbmcgU29vbjwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iL3ByaWNpbmc/dGllcj1wcm9mZXNzaW9uYWwiIGNsYXNzPSJidG4gYnRuLWdldCI+R2V0IFRoaXMgU3R5bGU8L2E+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIENBUkQgOSAtIFNPUEhJQSBOQU1BWUFOSkEgLS0+CiAgICAgIDxkaXYgY2xhc3M9ImNhcmQtc2hvd2Nhc2UgZmFkZS1pbiIgZGF0YS1jYXRlZ29yeT0iZWR1Y2F0aW9uIHRlY2giPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtaW1hZ2UiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRpZXItYmFkZ2UgdGllci1wcm9mZXNzaW9uYWwiPlByb2Zlc3Npb25hbDwvc3Bhbj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBob25lLW1vY2t1cCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBob25lLXNjcmVlbiI+CiAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vdmlhLnBsYWNlaG9sZGVyLmNvbS8yNTZ4NTEyLzdCNjhFRS9GRkZGRkY/dGV4dD1Tb3BoaWErTmFtYXlhbmphIiBhbHQ9IlNvcGhpYSBOYW1heWFuamEiPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtZGV0YWlscyI+CiAgICAgICAgICA8aDM+U29waGlhIE5hbWF5YW5qYTwvaDM+CiAgICAgICAgICA8cCBjbGFzcz0iY2FyZC1zdWJ0aXRsZSI+RWR1Y2F0aW9uIFRlY2hub2xvZ3kgUGlvbmVlcjwvcD4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmR1c3RyeS10YWciPvCfk5ogRWRUZWNoICYgTGVhcm5pbmcgSW5ub3ZhdGlvbjwvc3Bhbj4KICAgICAgICAgIDx1bCBjbGFzcz0iZmVhdHVyZXMtbGlzdCI+CiAgICAgICAgICAgIDxsaT5MZWFybiBBZnJpY2EgRWRUZWNoPC9saT4KICAgICAgICAgICAgPGxpPlRyYW5zZm9ybWluZyBlZHVjYXRpb24sIG9uZSBjbGFzc3Jvb20gYXQgYSB0aW1lPC9saT4KICAgICAgICAgICAgPGxpPkRpZ2l0YWwgbGVhcm5pbmcgc29sdXRpb25zIGZvciBBZnJpY2E8L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtYWN0aW9ucyI+CiAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJidG4gYnRuLXZpZXciPkNvbWluZyBTb29uPC9hPgogICAgICAgICAgICA8YSBocmVmPSIvcHJpY2luZz90aWVyPXByb2Zlc3Npb25hbCIgY2xhc3M9ImJ0biBidG4tZ2V0Ij5HZXQgVGhpcyBTdHlsZTwvYT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gQ0FSRCAxMCAtIEFCRFVMIE1BTElLIERFTUJFIC0tPgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLXNob3djYXNlIGZhZGUtaW4iIGRhdGEtY2F0ZWdvcnk9ImZpbmFuY2UgdGVjaCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbWFnZSI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGllci1iYWRnZSB0aWVyLXByZW1pdW0iPlByZW1pdW08L3NwYW4+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwaG9uZS1tb2NrdXAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaG9uZS1zY3JlZW4iPgogICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMjU2eDUxMi9GRjZCMzUvRkZGRkZGP3RleHQ9QWJkdWwrTWFsaWsrRGVtYmUiIGFsdD0iQWJkdWwgTWFsaWsgRGVtYmUiPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtZGV0YWlscyI+CiAgICAgICAgICA8aDM+QWJkdWwgTWFsaWsgRGVtYmU8L2gzPgogICAgICAgICAgPHAgY2xhc3M9ImNhcmQtc3VidGl0bGUiPkZpbnRlY2ggSW5ub3ZhdG9yICYgRmluYW5jaWFsIEluY2x1c2lvbiBBZHZvY2F0ZTwvcD4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbmR1c3RyeS10YWciPvCfkrMgRmludGVjaCAmIEZpbmFuY2lhbCBTZXJ2aWNlczwvc3Bhbj4KICAgICAgICAgIDx1bCBjbGFzcz0iZmVhdHVyZXMtbGlzdCI+CiAgICAgICAgICAgIDxsaT5Nb2JpbGUgTW9uZXkgU29sdXRpb25zPC9saT4KICAgICAgICAgICAgPGxpPkJhbmtpbmcgdGhlIHVuYmFua2VkIGFjcm9zcyBFYXN0IEFmcmljYTwvbGk+CiAgICAgICAgICAgIDxsaT5GaW5hbmNpYWwgaW5jbHVzaW9uIHRocm91Z2ggdGVjaG5vbG9neTwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1hY3Rpb25zIj4KICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImJ0biBidG4tdmlldyI+Q29taW5nIFNvb248L2E+CiAgICAgICAgICAgIDxhIGhyZWY9Ii9wcmljaW5nP3RpZXI9cHJlbWl1bSIgY2xhc3M9ImJ0biBidG4tZ2V0Ij5HZXQgVGhpcyBTdHlsZTwvYT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gQ0FSRCAxMSAtIE1BTEFJS0EgTUlSRU1CRSAtLT4KICAgICAgPGRpdiBjbGFzcz0iY2FyZC1zaG93Y2FzZSBmYWRlLWluIiBkYXRhLWNhdGVnb3J5PSJjcmVhdGl2ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1pbWFnZSI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGllci1iYWRnZSB0aWVyLXByb2Zlc3Npb25hbCI+UHJvZmVzc2lvbmFsPC9zcGFuPgogICAgICAgICAgPGRpdiBjbGFzcz0icGhvbmUtbW9ja3VwIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGhvbmUtc2NyZWVuIj4KICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly92aWEucGxhY2Vob2xkZXIuY29tLzI1Nng1MTIvRkY2QjM1L0ZGRkZGRj90ZXh0PU1hbGFpa2ErTWlyZW1iZSIgYWx0PSJNYWxhaWthIE1pcmVtYmUiPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtZGV0YWlscyI+CiAgICAgICAgICA8aDM+TWFsYWlrYSBNaXJlbWJlPC9oMz4KICAgICAgICAgIDxwIGNsYXNzPSJjYXJkLXN1YnRpdGxlIj5DcmVhdGl2ZSBEaXJlY3RvciAmIEJyYW5kIFN0cmF0ZWdpc3Q8L3A+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iaW5kdXN0cnktdGFnIj7wn46oIENyZWF0aXZlIEluZHVzdHJpZXMgJiBEZXNpZ248L3NwYW4+CiAgICAgICAgICA8dWwgY2xhc3M9ImZlYXR1cmVzLWxpc3QiPgogICAgICAgICAgICA8bGk+TWlyZW1iZSBDcmVhdGl2ZSBTdHVkaW88L2xpPgogICAgICAgICAgICA8bGk+RGVzaWduaW5nIEFmcmljYSdzIHZpc3VhbCBmdXR1cmU8L2xpPgogICAgICAgICAgICA8bGk+QnJhbmQgaWRlbnRpdHkgYW5kIGNyZWF0aXZlIHN0cmF0ZWd5PC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWFjdGlvbnMiPgogICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iYnRuIGJ0bi12aWV3Ij5Db21pbmcgU29vbjwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iL3ByaWNpbmc/dGllcj1wcm9mZXNzaW9uYWwiIGNsYXNzPSJidG4gYnRuLWdldCI+R2V0IFRoaXMgU3R5bGU8L2E+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8IS0tIENBUkQgMTIgLSBQTEFDRUhPTERFUiAoWU9VUiBDQVJEIEhFUkUpIC0tPgogICAgICA8ZGl2IGNsYXNzPSJjYXJkLXNob3djYXNlIGZhZGUtaW4iIGRhdGEtY2F0ZWdvcnk9ImJ1c2luZXNzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWltYWdlIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aWVyLWJhZGdlIHRpZXItZXNzZW50aWFsIj5Kb2luIFVzITwvc3Bhbj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBob25lLW1vY2t1cCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBob25lLXNjcmVlbiI+CiAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vdmlhLnBsYWNlaG9sZGVyLmNvbS8yNTZ4NTEyL0ZGRDcwMC8wMDFGM0Y/dGV4dD1Zb3VyK0NhcmQrSGVyZSIgYWx0PSJKb2luIHRoZSBHYWxsZXJ5Ij4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWRldGFpbHMiPgogICAgICAgICAgPGgzPllvdXIgTmFtZSBIZXJlPC9oMz4KICAgICAgICAgIDxwIGNsYXNzPSJjYXJkLXN1YnRpdGxlIj5Kb2luIE91ciBGb3VuZGluZyBNZW1iZXJzPC9wPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImluZHVzdHJ5LXRhZyI+8J+MnyBCZXRhIFByb2dyYW0gT3Blbjwvc3Bhbj4KICAgICAgICAgIDx1bCBjbGFzcz0iZmVhdHVyZXMtbGlzdCI+CiAgICAgICAgICAgIDxsaT5CZSBwYXJ0IG9mIG91ciBmb3VuZGluZyBnYWxsZXJ5PC9saT4KICAgICAgICAgICAgPGxpPkdldCBmZWF0dXJlZCB3aXRoIEFmcmljYSdzIGJlc3Q8L2xpPgogICAgICAgICAgICA8bGk+U3RhbmQgb3V0IHdpdGggeW91ciBvd24gZGlnaXRhbCBjYXJkPC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWFjdGlvbnMiPgogICAgICAgICAgICA8YSBocmVmPSIvcHJpY2luZyIgY2xhc3M9ImJ0biBidG4tdmlldyI+Sm9pbiB0aGUgR2FsbGVyeTwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iL2NvbnRhY3QiIGNsYXNzPSJidG4gYnRuLWdldCI+QXBwbHkgTm93PC9hPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgIDwvZGl2PgogIDwvZGl2PgoKICA8IS0tIEZFQVRVUkVEIFNFQ1RJT04gLS0+CiAgPHNlY3Rpb24gY2xhc3M9ImZlYXR1cmVkLXNlY3Rpb24iPgogICAgPGRpdiBjbGFzcz0iZmVhdHVyZWQtY29udGFpbmVyIj4KICAgICAgPGgyPldoeSBUaGVzZSBDYXJkcyBHZXQgUmVzdWx0czwvaDI+CiAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmVkLWdyaWQiPgogICAgICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogMnJlbTsgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjMpOyBib3JkZXItcmFkaXVzOiAyMHB4OyI+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDNyZW07IG1hcmdpbi1ib3R0b206IDFyZW07Ij7wn5OxPC9kaXY+CiAgICAgICAgICA8aDMgc3R5bGU9ImNvbG9yOiB2YXIoLS1uYXZ5KTsgbWFyZ2luLWJvdHRvbTogMXJlbTsiPk1vYmlsZS1GaXJzdDwvaDM+CiAgICAgICAgICA8cCBzdHlsZT0iY29sb3I6IHZhcigtLW5hdnkpOyBvcGFjaXR5OiAwLjk7Ij5EZXNpZ25lZCBmb3IgaG93IEFmcmljYSB1c2VzIHBob25lcy4gT25lIHRhcCBvcGVucyBldmVyeXRoaW5nLjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6IDJyZW07IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zKTsgYm9yZGVyLXJhZGl1czogMjBweDsiPgogICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAzcmVtOyBtYXJnaW4tYm90dG9tOiAxcmVtOyI+8J+OqDwvZGl2PgogICAgICAgICAgPGgzIHN0eWxlPSJjb2xvcjogdmFyKC0tbmF2eSk7IG1hcmdpbi1ib3R0b206IDFyZW07Ij5Zb3VyIFBlcnNvbmFsaXR5PC9oMz4KICAgICAgICAgIDxwIHN0eWxlPSJjb2xvcjogdmFyKC0tbmF2eSk7IG9wYWNpdHk6IDAuOTsiPkNvbG9ycywgc3R5bGUsIGFuZCBjb250ZW50IHRoYXQgbWFrZSBZT1Ugc3RhbmQgb3V0LjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6IDJyZW07IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zKTsgYm9yZGVyLXJhZGl1czogMjBweDsiPgogICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAzcmVtOyBtYXJnaW4tYm90dG9tOiAxcmVtOyI+8J+TijwvZGl2PgogICAgICAgICAgPGgzIHN0eWxlPSJjb2xvcjogdmFyKC0tbmF2eSk7IG1hcmdpbi1ib3R0b206IDFyZW07Ij5UcmFjayBSZXN1bHRzPC9oMz4KICAgICAgICAgIDxwIHN0eWxlPSJjb2xvcjogdmFyKC0tbmF2eSk7IG9wYWNpdHk6IDAuOTsiPlNlZSB3aG8gdmlld3MgeW91ciBjYXJkIGFuZCB3aGF0IHRoZXkgY2xpY2sgb24uPC9wPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvc2VjdGlvbj4KCiAgPCEtLSBDVEEgU0VDVElPTiAtLT4KICA8c2VjdGlvbiBjbGFzcz0iY3RhLXNlY3Rpb24iPgogICAgPGRpdiBjbGFzcz0iY3RhLWNvbnRhaW5lciI+CiAgICAgIDxoMj5SZWFkeSB0byBKb2luIE91ciBHYWxsZXJ5PzwvaDI+CiAgICAgIDxwPkJlIHBhcnQgb2YgQWZyaWNhJ3MgcGlvbmVlcmluZyBkaWdpdGFsIGVudHJlcHJlbmV1cnMgd2l0aCBhIGNhcmQgdGhhdCBhY3R1YWxseSBnZXRzIHNoYXJlZC48L3A+CiAgICAgIDxhIGhyZWY9Ii9wcmljaW5nIiBjbGFzcz0iYnRuLWN0YSI+Q2hvb3NlIFlvdXIgQ2FyZCBUaWVyIOKGkjwvYT4KICAgIDwvZGl2PgogIDwvc2VjdGlvbj4KCiAgPCEtLSBGT09URVIgLS0+CiAgPGZvb3RlciBjbGFzcz0iZm9vdGVyIj4KICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJmb290ZXItZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWNvbHVtbiI+CiAgICAgICAgICA8aDQ+SGFuZHNoYWtlLmFmcmljYTwvaDQ+CiAgICAgICAgICA8cCBzdHlsZT0ib3BhY2l0eTogMC45OyI+UHJvZmVzc2lvbmFsIGRpZ2l0YWwgY2FyZHMgZm9yIEFmcmljYW4gZW50cmVwcmVuZXVycy48L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWNvbHVtbiI+CiAgICAgICAgICA8aDQ+UXVpY2sgTGlua3M8L2g0PgogICAgICAgICAgPHVsPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+SG9tZTwvYT48L2xpPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2dhbGxlcnkiPkdhbGxlcnk8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9wcmljaW5nIj5QcmljaW5nPC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSIvYWJvdXQiPkFib3V0PC9hPjwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1jb2x1bW4iPgogICAgICAgICAgPGg0PkdldCBJbiBUb3VjaDwvaDQ+CiAgICAgICAgICA8cCBzdHlsZT0ib3BhY2l0eTogMC45OyI+8J+TpyBoZWxsb0BoYW5kc2hha2UuYWZyaWNhPC9wPgogICAgICAgICAgPHAgc3R5bGU9Im9wYWNpdHk6IDAuOTsiPvCfk7EgV2hhdHNBcHA8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmb290ZXItYm90dG9tIj4KICAgICAgICA8cD7CqSAyMDI1IEhhbmRzaGFrZS5hZnJpY2Eg4oCiIEFsbCBSaWdodHMgUmVzZXJ2ZWQ8L3A+CiAgICAgICAgPHA+UG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL2R5bmFtaWNwYXJhZGlnbXMuaW8iPkR5bmFtaWMgUGFyYWRpZ21zPC9hPjwvcD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Zvb3Rlcj4KCiAgPCEtLSBTQ1JJUFRTIC0tPgogIDxzY3JpcHQ+CiAgICAvLyBBTlRJLVNDUkVFTlNIT1QgJiBDT1BZIFBST1RFQ1RJT04KICAgIC8vIERpc2FibGUgcmlnaHQtY2xpY2sgY29udGV4dCBtZW51CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIGUgPT4gZS5wcmV2ZW50RGVmYXVsdCgpKTsKICAgIAogICAgLy8gRGlzYWJsZSBjb21tb24gc2NyZWVuc2hvdCBzaG9ydGN1dHMKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgIC8vIEYxMiAoRGV2VG9vbHMpCiAgICAgIGlmIChlLmtleUNvZGUgPT09IDEyMykgewogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgLy8gQ3RybCtTaGlmdCtJIChEZXZUb29scykKICAgICAgaWYgKGUuY3RybEtleSAmJiBlLnNoaWZ0S2V5ICYmIGUua2V5Q29kZSA9PT0gNzMpIHsKICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIC8vIEN0cmwrU2hpZnQrQyAoRWxlbWVudCBpbnNwZWN0b3IpCiAgICAgIGlmIChlLmN0cmxLZXkgJiYgZS5zaGlmdEtleSAmJiBlLmtleUNvZGUgPT09IDY3KSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICAvLyBDdHJsK1NoaWZ0K0ogKENvbnNvbGUpCiAgICAgIGlmIChlLmN0cmxLZXkgJiYgZS5zaGlmdEtleSAmJiBlLmtleUNvZGUgPT09IDc0KSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICAvLyBDbWQrT3B0aW9uK0kgKERldlRvb2xzIG9uIE1hYykKICAgICAgaWYgKGUubWV0YUtleSAmJiBlLmFsdEtleSAmJiBlLmtleUNvZGUgPT09IDczKSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICAvLyBQcmludCBTY3JlZW4KICAgICAgaWYgKGUua2V5Q29kZSA9PT0gNDQpIHsKICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICB9KTsKICAgIAogICAgLy8gRGlzYWJsZSB0ZXh0IHNlbGVjdGlvbgogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0c3RhcnQnLCBlID0+IGUucHJldmVudERlZmF1bHQoKSk7CiAgICAKICAgIC8vIERpc2FibGUgZHJhZwogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ3N0YXJ0JywgZSA9PiBlLnByZXZlbnREZWZhdWx0KCkpOwogICAgCiAgICAvLyBXYXRlcm1hcmsgb3ZlcmxheSAob3B0aW9uYWwgLSB1bmNvbW1lbnQgdG8gZW5hYmxlKQogICAgLyoKICAgIGZ1bmN0aW9uIGFkZFdhdGVybWFyaygpIHsKICAgICAgY29uc3Qgd2F0ZXJtYXJrID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgIHdhdGVybWFyay5zdHlsZS5jc3NUZXh0ID0gYAogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC00NWRlZyk7CiAgICAgICAgZm9udC1zaXplOiA3MnB4OwogICAgICAgIG9wYWNpdHk6IDAuMDU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgei1pbmRleDogOTk5OTsKICAgICAgICBjb2xvcjogIzAwMUYzRjsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBgOwogICAgICB3YXRlcm1hcmsudGV4dENvbnRlbnQgPSAnSEFORFNIQUtFLkFGUklDQSc7CiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQod2F0ZXJtYXJrKTsKICAgIH0KICAgIGFkZFdhdGVybWFyaygpOwogICAgKi8KICAgIAogICAgLy8gTW9iaWxlIG1lbnUKICAgIGZ1bmN0aW9uIHRvZ2dsZU1lbnUoKSB7CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXZMaW5rcycpLmNsYXNzTGlzdC50b2dnbGUoJ2FjdGl2ZScpOwogICAgfQogICAgCiAgICAvLyBGaWx0ZXIgZnVuY3Rpb25hbGl0eQogICAgZnVuY3Rpb24gZmlsdGVyQ2FyZHMoY2F0ZWdvcnkpIHsKICAgICAgY29uc3QgY2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY2FyZC1zaG93Y2FzZScpOwogICAgICBjb25zdCBidXR0b25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmZpbHRlci1idG4nKTsKICAgICAgCiAgICAgIC8vIFVwZGF0ZSBhY3RpdmUgYnV0dG9uCiAgICAgIGJ1dHRvbnMuZm9yRWFjaChidG4gPT4gYnRuLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpKTsKICAgICAgZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICAKICAgICAgLy8gRmlsdGVyIGNhcmRzCiAgICAgIGNhcmRzLmZvckVhY2goY2FyZCA9PiB7CiAgICAgICAgaWYgKGNhdGVnb3J5ID09PSAnYWxsJyB8fCBjYXJkLmRhdGFzZXQuY2F0ZWdvcnkuaW5jbHVkZXMoY2F0ZWdvcnkpKSB7CiAgICAgICAgICBjYXJkLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBjYXJkLmNsYXNzTGlzdC5hZGQoJ3Zpc2libGUnKSwgMTAwKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgY2FyZC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgICAKICAgIC8vIFNjcm9sbCBhbmltYXRpb25zCiAgICBjb25zdCBvYnNlcnZlck9wdGlvbnMgPSB7CiAgICAgIHRocmVzaG9sZDogMC4xLAogICAgICByb290TWFyZ2luOiAnMHB4IDBweCAtMTAwcHggMHB4JwogICAgfTsKICAgIAogICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZW50cmllcykgewogICAgICBlbnRyaWVzLmZvckVhY2goZW50cnkgPT4gewogICAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykgewogICAgICAgICAgZW50cnkudGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ3Zpc2libGUnKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwgb2JzZXJ2ZXJPcHRpb25zKTsKICAgIAogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmZhZGUtaW4nKS5mb3JFYWNoKGVsID0+IG9ic2VydmVyLm9ic2VydmUoZWwpKTsKICA8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPg==","embed":""}
Our Founding Members Gallery
Meet the pioneering entrepreneurs building Africa's digital future. Real professionals. Real impact.
Filter by Industry:
🌟 Founder
Professional
Barbara Nantongo
Founder | Smart Kitchen Solutions
🍳 Kitchen Innovation & Business- Cohort Pioneer - Mentrx
- Transforming kitchens across East Africa
- Smart solutions for modern living
Professional
Teddy Banks Nakitto
Entrepreneur & Business Leader
💼 Business Services & Consulting- Cohort Leader - TASN
- Empowering African entrepreneurs
- Strategic business development
Premium
Dr. Barbara Stroud
Medical Professional & Healthcare Leader
🏥 Healthcare & Medicine- Medical expertise and authority
- Patient-centered care philosophy
- Healthcare innovation advocate
Professional
Lynn Nakabugo
Entrepreneur & Community Leader
🚀 Entrepreneurship & Innovation- Cohort Pioneer - Mentrx
- Building sustainable businesses
- Community empowerment advocate
Professional
Nakiganda Ritah
Visionary Entrepreneur
💡 Business Strategy & Development- Cohort Visionary - Mentrx
- Strategic business positioning
- Innovative market solutions
Youth Futurepreneur
Tendo Taliq
Digital Marketing Intern | Next-Gen Leader
🌱 Youth Entrepreneurship & Development- 2025-2036 Talent Pipeline member
- Hands-on digital marketing training
- Building Africa's digital future
Professional
Kantuchi Malege
Sustainable Agriculture Innovator
🌾 AgriTech & Sustainability- AgriTech Solutions East Africa
- Feeding the future through smart farming
- Sustainable agriculture practices
Professional
Sophia Namayanja
Education Technology Pioneer
📚 EdTech & Learning Innovation- Learn Africa EdTech
- Transforming education, one classroom at a time
- Digital learning solutions for Africa
Premium
Abdul Malik Dembe
Fintech Innovator & Financial Inclusion Advocate
💳 Fintech & Financial Services- Mobile Money Solutions
- Banking the unbanked across East Africa
- Financial inclusion through technology
Professional
Malaika Mirembe
Creative Director & Brand Strategist
🎨 Creative Industries & Design- Mirembe Creative Studio
- Designing Africa's visual future
- Brand identity and creative strategy
Join Us!
Your Name Here
Join Our Founding Members
🌟 Beta Program Open- Be part of our founding gallery
- Get featured with Africa's best
- Stand out with your own digital card
Why These Cards Get Results
📱
Mobile-First
Designed for how Africa uses phones. One tap opens everything.
🎨
Your Personality
Colors, style, and content that make YOU stand out.
📊
Track Results
See who views your card and what they click on.
Ready to Join Our Gallery?
Be part of Africa's pioneering digital entrepreneurs with a card that actually gets shared.
Choose Your Card Tier →