{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8IS0tIFNVQkRPTUFJTjogYWlieXRlcy5icmFuZGhhbmRzaGFrZS5jb20gLS0+CiAgICA8IS0tIFBJT05FRVI6IERhdmlzIEx1YmVnYSAtLT4KICAgIDwhLS0gQ09NUEFOWTogTmV4dHdhdmUgRGlnaXRhbCAtLT4KICAgIDwhLS0gVElUTEU6IFNvZnR3YXJlIERldmVsb3BlciwgQ29tcHV0ZXIgU2NpZW5jZSBTdHVkZW50IC0tPgogICAgPCEtLSBQQVlNRU5UUyBHTyBUTzogRGF2aXMncyBNb2JpbGUgTW9uZXkgRElSRUNUTFkgLS0+CiAgICA8IS0tIEZPUk0gU1VCTUlTU0lPTlMgVE86IHNob3Bsb2NhbGJ1c2luZXNzYWdlbmN5QGdtYWlsLmNvbSAtLT4KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICAgIDx0aXRsZT5BSSBCeXRlcyBEaWdpdGFsIHwgRGF2aXMgTHViZWdhIHwgQnJhbmRIYW5kc2hha2U8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkdldCB5b3VyIHByZW1pdW0gZGlnaXRhbCBidXNpbmVzcyBjYXJkIGZyb20gRGF2aXMgTHViZWdhIC0gU29mdHdhcmUgRGV2ZWxvcGVyICYgQ29tcHV0ZXIgU2NpZW5jZSBTdHVkZW50LCBGb3VuZGVyIG9mIE5leHR3YXZlIERpZ2l0YWwuIENhcmRzIGZyb20gJDEwLiI+CiAgICA8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9ImluZGV4LCBmb2xsb3ciPgogICAgPGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vYWlieXRlcy5icmFuZGhhbmRzaGFrZS5jb20iPgogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1QbGF5ZmFpcitEaXNwbGF5OndnaHRANDAwOzUwMDs2MDA7NzAwOzgwMCZmYW1pbHk9Q29ybW9yYW50K0dhcmFtb25kOml0YWwsd2dodEAwLDQwMDswLDUwMDswLDYwMDsxLDQwMCZmYW1pbHk9TnVuaXRvOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CiAgICA8c3R5bGU+CiAgICAgICAgOnJvb3QgewogICAgICAgICAgICAtLW5hdnk6ICMwRDFCMkE7CiAgICAgICAgICAgIC0taW5kaWdvOiAjMUMxRjRBOwogICAgICAgICAgICAtLWdvbGQ6ICNENEFGMzc7CiAgICAgICAgICAgIC0taXZvcnk6ICNGOEY0RUM7CiAgICAgICAgICAgIC0tZGVlcGdvbGQ6ICNCODk3MkU7CiAgICAgICAgICAgIC0tY2hhcmNvYWw6ICMwYTBhMTI7CiAgICAgICAgICAgIC0tYmx1ZTogIzI1NjNlYjsKICAgICAgICAgICAgLS1ibHVlLWxpZ2h0OiAjM2I4MmY2OwogICAgICAgICAgICAtLWN5YW46ICMwNmI2ZDQ7CiAgICAgICAgICAgIC0tZWxlY3RyaWM6ICM4MThjZjg7CiAgICAgICAgICAgIC0tZ3JlZW46ICMxMGI5ODE7CiAgICAgICAgICAgIC0tcHVycGxlOiAjOGI1Y2Y2OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAqIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9CiAgICAgICAgaHRtbCB7IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOyB9CiAgICAgICAgCiAgICAgICAgYm9keSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTnVuaXRvJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2hhcmNvYWwpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS43OwogICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBBTklNQVRFRCBCQUNLR1JPVU5EICovCiAgICAgICAgLmJnLW1hc3RlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgei1pbmRleDogMDsKICAgICAgICAgICAgYmFja2dyb3VuZDogCiAgICAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCAyMCUgMTAlLCByZ2JhKDEzOSwgOTIsIDI0NiwgMC4zKSAwJSwgdHJhbnNwYXJlbnQgNTAlKSwKICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDgwJSA5MCUsIHJnYmEoNiwgMTgyLCAyMTIsIDAuMjUpIDAlLCB0cmFuc3BhcmVudCA0MCUpLAogICAgICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgNTAlIDUwJSwgcmdiYSgzNywgOTksIDIzNSwgMC4yKSAwJSwgdHJhbnNwYXJlbnQgNjAlKSwKICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLWNoYXJjb2FsKSAwJSwgdmFyKC0tbmF2eSkgNTAlLCB2YXIoLS1pbmRpZ28pIDEwMCUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBGTE9BVElORyBPUkJTICovCiAgICAgICAgLm9yYiB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBmaWx0ZXI6IGJsdXIoNjBweCk7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgICB6LWluZGV4OiAxOwogICAgICAgICAgICBhbmltYXRpb246IGZsb2F0T3JiIDE1cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgLm9yYi0xIHsgd2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDMwMHB4OyBiYWNrZ3JvdW5kOiByZ2JhKDEzOSwgOTIsIDI0NiwgMC4zKTsgdG9wOiAxMCU7IGxlZnQ6IC01JTsgYW5pbWF0aW9uLWRlbGF5OiAwczsgfQogICAgICAgIC5vcmItMiB7IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiAyNTBweDsgYmFja2dyb3VuZDogcmdiYSg2LCAxODIsIDIxMiwgMC4yNSk7IHRvcDogNjAlOyByaWdodDogLTUlOyBhbmltYXRpb24tZGVsYXk6IDVzOyB9CiAgICAgICAgLm9yYi0zIHsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kOiByZ2JhKDIxMiwgMTc1LCA1NSwgMC4yKTsgYm90dG9tOiAxMCU7IGxlZnQ6IDMwJTsgYW5pbWF0aW9uLWRlbGF5OiAxMHM7IH0KICAgICAgICBAa2V5ZnJhbWVzIGZsb2F0T3JiIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKSBzY2FsZSgxKTsgfQogICAgICAgICAgICAyNSUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzMHB4LCAtMzBweCkgc2NhbGUoMS4xKTsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgMjBweCkgc2NhbGUoMC45KTsgfQogICAgICAgICAgICA3NSUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAzMHB4KSBzY2FsZSgxLjA1KTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBTUEFSS0xFIFBBUlRJQ0xFUyAqLwogICAgICAgIC5zcGFya2xlcyB7IHBvc2l0aW9uOiBmaXhlZDsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBwb2ludGVyLWV2ZW50czogbm9uZTsgei1pbmRleDogMjsgfQogICAgICAgIC5zcGFya2xlIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB3aWR0aDogNnB4OyBoZWlnaHQ6IDZweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGFya2xlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KICAgICAgICBAa2V5ZnJhbWVzIHNwYXJrbGUgewogICAgICAgICAgICAwJSwgMTAwJSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoMCkgdHJhbnNsYXRlWSgwKTsgfQogICAgICAgICAgICA1MCUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoLTIwcHgpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYWdlLWNvbnRhaW5lciB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTA7IH0KICAgICAgICAKICAgICAgICAvKiBOQVZJR0FUSU9OICovCiAgICAgICAgLnRvcG5hdiB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsKICAgICAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMywgMjcsIDQyLCAwLjkpOwogICAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7CiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggNDBweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQ7CiAgICAgICAgICAgIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1wdXJwbGUpLCB2YXIoLS1nb2xkKSwgdmFyKC0tY3lhbikpIDE7CiAgICAgICAgfQogICAgICAgIC5uYXYtYnJhbmQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQogICAgICAgIC5uYXYtYnJhbmQgLmxvZ28gewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXB1cnBsZSksIHZhcigtLWN5YW4pLCB2YXIoLS1nb2xkKSk7CiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSBhdXRvOwogICAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsKICAgICAgICAgICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgICAgICBhbmltYXRpb246IHNoaW1tZXJUZXh0IDNzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBzaGltbWVyVGV4dCB7CiAgICAgICAgICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgY2VudGVyOyB9CiAgICAgICAgICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMDAlIGNlbnRlcjsgfQogICAgICAgIH0KICAgICAgICAubmF2LWxpbmtzIHsgZGlzcGxheTogZmxleDsgZ2FwOiAxNXB4OyB9CiAgICAgICAgLm5hdi1saW5rcyBhIHsgCiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNyk7IAogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IAogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5uYXYtbGlua3MgYTpob3ZlciB7IGNvbG9yOiB2YXIoLS1nb2xkKTsgfQogICAgICAgIAogICAgICAgIC8qIENPTE9SIFNDUk9MTCBCQU5ORVIgKi8KICAgICAgICAuY29sb3Itc2Nyb2xsLWNvbnRhaW5lciB7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tbmF2eSksIHZhcigtLWluZGlnbyksIHZhcigtLW5hdnkpKTsKICAgICAgICAgICAgcGFkZGluZzogMTJweCAwOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA3MHB4OwogICAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1jeWFuKTsKICAgICAgICB9CiAgICAgICAgLmNvbG9yLXNjcm9sbCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogc2Nyb2xsTGVmdCAyMHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KICAgICAgICAuY29sb3Itc2Nyb2xsOmhvdmVyIHsgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDsgfQogICAgICAgIEBrZXlmcmFtZXMgc2Nyb2xsTGVmdCB7CiAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9CiAgICAgICAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH0KICAgICAgICB9CiAgICAgICAgLnNjcm9sbC1pdGVtIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgICAgICBwYWRkaW5nOiAwIDQwcHg7CiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC45KTsKICAgICAgICB9CiAgICAgICAgLnNjcm9sbC1pdGVtIC5zdGFyIHsgY29sb3I6IHZhcigtLWdvbGQpOyBhbmltYXRpb246IHB1bHNlIDFzIGVhc2UtaW4tb3V0IGluZmluaXRlOyB9CiAgICAgICAgQGtleWZyYW1lcyBwdWxzZSB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMyk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogQU1CQVNTQURPUiBIRVJPICovCiAgICAgICAgLmFtYmFzc2Fkb3ItaGVybyB7CiAgICAgICAgICAgIHBhZGRpbmc6IDYwcHggMjBweCA2MHB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFRSSVBMRSBCT1JERVIgQ0FSRCAqLwogICAgICAgIC5hbWJhc3NhZG9yLWNhcmQgewogICAgICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXB1cnBsZSksIHZhcigtLWN5YW4pLCB2YXIoLS1nb2xkKSwgdmFyKC0tcHVycGxlKSk7CiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMzAwJSAzMDAlOwogICAgICAgICAgICBhbmltYXRpb246IGJvcmRlckdsb3cgNXMgZWFzZSBpbmZpbml0ZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzVweDsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBib3JkZXJHbG93IHsKICAgICAgICAgICAgMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA1MCU7IH0KICAgICAgICAgICAgNTAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7IH0KICAgICAgICAgICAgMTAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTsgfQogICAgICAgIH0KICAgICAgICAuYW1iYXNzYWRvci1jYXJkLWlubmVyLTEgewogICAgICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW5hdnkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgIH0KICAgICAgICAuYW1iYXNzYWRvci1jYXJkLWlubmVyLTIgewogICAgICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCB2YXIoLS1jeWFuKSwgdmFyKC0tZ29sZCkpOwogICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMjAwJTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBib3JkZXJHbG93IDNzIGVhc2UgaW5maW5pdGUgcmV2ZXJzZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjdweDsKICAgICAgICB9CiAgICAgICAgLmFtYmFzc2Fkb3ItY2FyZC1pbm5lci0zIHsKICAgICAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbmRpZ28pOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4OwogICAgICAgIH0KICAgICAgICAuYW1iYXNzYWRvci1jYXJkLWNvbnRlbnQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDEzOSwgOTIsIDI0NiwgMC4xNSksIHJnYmEoMTMsIDI3LCA0MiwgMC45OCkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBwYWRkaW5nOiA2MHB4IDM1cHggNTBweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBBTklNQVRFRCBHTE9XIEJFSElORCBBVkFUQVIgKi8KICAgICAgICAuYXZhdGFyLWdsb3cgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogNzBweDsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgIHdpZHRoOiAxNTBweDsKICAgICAgICAgICAgaGVpZ2h0OiAxNTBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSgxMzksIDkyLCAyNDYsIDAuNSksIHRyYW5zcGFyZW50IDcwJSk7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZ2xvd1B1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgZ2xvd1B1bHNlIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMSk7IG9wYWNpdHk6IDAuNTsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMS4yKTsgb3BhY2l0eTogMC44OyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5hbWJhc3NhZG9yLWJhZGdlIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IC0xOHB4OwogICAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLWRlZXBnb2xkKSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgcGFkZGluZzogMTJweCAzNXB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuN3JlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuNCk7CiAgICAgICAgICAgIGFuaW1hdGlvbjogYmFkZ2VQdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgYmFkZ2VQdWxzZSB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuNCk7IH0KICAgICAgICAgICAgNTAlIHsgYm94LXNoYWRvdzogMCAxNXB4IDQwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuNiksIDAgMCAyMHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjMpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb2xvci1jb2RlLWJhZGdlIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMzksIDkyLCAyNDYsIDAuMyk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXB1cnBsZSk7CiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMjVweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZWxlY3RyaWMpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgICAgICAgICBhbmltYXRpb246IGJvcmRlclB1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KICAgICAgICBAa2V5ZnJhbWVzIGJvcmRlclB1bHNlIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyBib3JkZXItY29sb3I6IHZhcigtLXB1cnBsZSk7IH0KICAgICAgICAgICAgNTAlIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jeWFuKTsgfQogICAgICAgIH0KICAgICAgICAuY29sb3ItZG90IHsKICAgICAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tcHVycGxlKSwgdmFyKC0tY3lhbikpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZG90UHVsc2UgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBkb3RQdWxzZSB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMyk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogQ09ERSBBVkFUQVIgKi8KICAgICAgICAuYW1iYXNzYWRvci1hdmF0YXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgICAgIHdpZHRoOiAxMzBweDsKICAgICAgICAgICAgaGVpZ2h0OiAxMzBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tcHVycGxlKSwgdmFyKC0tY3lhbiksIHZhcigtLWVsZWN0cmljKSk7CiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSAyMDAlOwogICAgICAgICAgICBhbmltYXRpb246IGF2YXRhckdyYWRpZW50IDRzIGVhc2UgaW5maW5pdGU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDIwcHg7CiAgICAgICAgICAgIGJvcmRlcjogNnB4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDIwcHggNTBweCByZ2JhKDEzOSwgOTIsIDI0NiwgMC40KTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBhdmF0YXJHcmFkaWVudCB7CiAgICAgICAgICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTAlOyB9CiAgICAgICAgICAgIDUwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlOyB9CiAgICAgICAgICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA1MCU7IH0KICAgICAgICB9CiAgICAgICAgLmF2YXRhci1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiAzLjJyZW07CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB9CiAgICAgICAgLmNvZGUtYnJhY2tldHMgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICB9CiAgICAgICAgLmNvZGUtbGVmdCB7IHRvcDogNTAlOyBsZWZ0OiA4cHg7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfQogICAgICAgIC5jb2RlLXJpZ2h0IHsgdG9wOiA1MCU7IHJpZ2h0OiA4cHg7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfQogICAgICAgIAogICAgICAgIC5hbWJhc3NhZG9yLW5hbWUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAyLjNyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAzMHB4IHJnYmEoMTM5LCA5MiwgMjQ2LCAwLjUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuYW1iYXNzYWRvci1jb21wYW55IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTBweDsKICAgICAgICB9CiAgICAgICAgLmFtYmFzc2Fkb3ItY29tcGFueSAuaWNvbiB7IGFuaW1hdGlvbjogYm91bmNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOyB9CiAgICAgICAgQGtleWZyYW1lcyBib3VuY2UgewogICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmFtYmFzc2Fkb3ItdGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWN5YW4pOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5hbWJhc3NhZG9yLXJvbGUgewogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNyk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFNPQ0lBTCBJQ09OUyAqLwogICAgICAgIC5zb2NpYWwtaWNvbnMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxNXB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIH0KICAgICAgICAuc29jaWFsLWljb24gewogICAgICAgICAgICB3aWR0aDogNDJweDsKICAgICAgICAgICAgaGVpZ2h0OiA0MnB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICB9CiAgICAgICAgLnNvY2lhbC1pY29uOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpIHNjYWxlKDEuMSk7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjIpOwogICAgICAgIH0KICAgICAgICAuc29jaWFsLWljb24ubGlua2VkaW4geyBjb2xvcjogIzBBNjZDMjsgfQogICAgICAgIC5zb2NpYWwtaWNvbi5saW5rZWRpbjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMTAsIDEwMiwgMTk0LCAwLjIpOyBib3JkZXItY29sb3I6ICMwQTY2QzI7IH0KICAgICAgICAuc29jaWFsLWljb24ud2hhdHNhcHAgeyBjb2xvcjogIzI1RDM2NjsgfQogICAgICAgIC5zb2NpYWwtaWNvbi53aGF0c2FwcDpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMzcsIDIxMSwgMTAyLCAwLjIpOyBib3JkZXItY29sb3I6ICMyNUQzNjY7IH0KICAgICAgICAuc29jaWFsLWljb24uZW1haWwgeyBjb2xvcjogdmFyKC0tY3lhbik7IH0KICAgICAgICAuc29jaWFsLWljb24uZW1haWw6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDYsIDE4MiwgMjEyLCAwLjIpOyBib3JkZXItY29sb3I6IHZhcigtLWN5YW4pOyB9CiAgICAgICAgCiAgICAgICAgLmFtYmFzc2Fkb3ItY29udGFjdCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTBweDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgICAgLmNvbnRhY3QtYnRuIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxNHB4IDI0cHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDM1cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgLmNvbnRhY3QtYnRuOjpiZWZvcmUgewogICAgICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDA7IGxlZnQ6IC0xMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDI1NSwyNTUsMjU1LDAuMyksIHRyYW5zcGFyZW50KTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogbGVmdCAwLjVzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5jb250YWN0LWJ0bjpob3Zlcjo6YmVmb3JlIHsgbGVmdDogMTAwJTsgfQogICAgICAgIC5jb250YWN0LWJ0bi53aGF0c2FwcCB7IAogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMjVEMzY2LCAjMTI4QzdFKTsgCiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgzNywgMjExLCAxMDIsIDAuMyk7CiAgICAgICAgfQogICAgICAgIC5jb250YWN0LWJ0bi5jYWxsIHsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXB1cnBsZSksIHZhcigtLWN5YW4pKTsgCiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgxMzksIDkyLCAyNDYsIDAuMyk7CiAgICAgICAgfQogICAgICAgIC5jb250YWN0LWJ0bjpob3ZlciB7IAogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCkgc2NhbGUoMS4wMyk7IAogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBWQUxVRSBTRUNUSU9OICovCiAgICAgICAgLnZhbHVlLXNlY3Rpb24gewogICAgICAgICAgICBwYWRkaW5nOiA1MHB4IDIwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgLnZhbHVlLXNlY3Rpb24gaDIgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjhyZW0sIDR2dywgMi41cmVtKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICB9CiAgICAgICAgLnZhbHVlLXNlY3Rpb24gaDIgLmhpZ2hsaWdodCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXB1cnBsZSksIHZhcigtLWN5YW4pLCB2YXIoLS1nb2xkKSwgdmFyKC0tcHVycGxlKSk7CiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMzAwJSBhdXRvOwogICAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsKICAgICAgICAgICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgICAgICBhbmltYXRpb246IHNoaW1tZXJUZXh0IDRzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgLnZhbHVlLXNlY3Rpb24gcCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC44KTsKICAgICAgICAgICAgbWF4LXdpZHRoOiA1NTBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gMjVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByaWNlLWhpZ2hsaWdodCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBwYWRkaW5nOiAxOHB4IDUwcHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDJyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXB1cnBsZSksIHZhcigtLWN5YW4pKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxNXB4IDQwcHggcmdiYSgxMzksIDkyLCAyNDYsIDAuNCk7CiAgICAgICAgICAgIGFuaW1hdGlvbjogcHJpY2VHbG93IDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KICAgICAgICBAa2V5ZnJhbWVzIHByaWNlR2xvdyB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgYm94LXNoYWRvdzogMCAxNXB4IDQwcHggcmdiYSgxMzksIDkyLCAyNDYsIDAuNCk7IH0KICAgICAgICAgICAgNTAlIHsgYm94LXNoYWRvdzogMCAyMHB4IDUwcHggcmdiYSgxMzksIDkyLCAyNDYsIDAuNiksIDAgMCAzMHB4IHJnYmEoNiwgMTgyLCAyMTIsIDAuMyk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogUFJJQ0lORyBTRUNUSU9OICovCiAgICAgICAgLnByaWNpbmctc2VjdGlvbiB7IHBhZGRpbmc6IDUwcHggMjBweDsgfQogICAgICAgIC5wcmljaW5nLWNvbnRhaW5lciB7IG1heC13aWR0aDogOTUwcHg7IG1hcmdpbjogMCBhdXRvOyB9CiAgICAgICAgLnByaWNpbmctaGVhZGVyIHsgdGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tYm90dG9tOiAzNXB4OyB9CiAgICAgICAgLnByaWNpbmctaGVhZGVyIGgzIHsgCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOyAKICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCB2YXIoLS1jeWFuKSk7CiAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIENVUlJFTkNZIFRPR0dMRSAqLwogICAgICAgIC5jdXJyZW5jeS10b2dnbGUgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMzksIDkyLCAyNDYsIDAuMik7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXB1cnBsZSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAuY3VycmVuY3ktdG9nZ2xlOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMzksIDkyLCAyNDYsIDAuNCk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgxMzksIDkyLCAyNDYsIDAuMyk7CiAgICAgICAgfQogICAgICAgIC5jdXJyZW5jeS10b2dnbGUuYWN0aXZlIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLWRlZXBnb2xkKSk7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgICB9CiAgICAgICAgLmN1cnJlbmN5LWljb24geyBmb250LXNpemU6IDEuMXJlbTsgfQogICAgICAgIAogICAgICAgIC5wcmljaW5nLWdyaWQgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpOyBnYXA6IDIwcHg7IH0KICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogODAwcHgpIHsgLnByaWNpbmctZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyBtYXgtd2lkdGg6IDM1MHB4OyBtYXJnaW46IDAgYXV0bzsgfSB9CiAgICAgICAgCiAgICAgICAgLnByaWNpbmctY2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHJnYmEoMjgsIDMxLCA3NCwgMC43KSwgcmdiYSgxMywgMjcsIDQyLCAwLjk1KSk7CiAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgICAgICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXB1cnBsZSksIHZhcigtLWN5YW4pKSAxOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4OwogICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDIwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAucHJpY2luZy1jYXJkOjpiZWZvcmUgewogICAgICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IC01MCU7IGxlZnQ6IC01MCU7CiAgICAgICAgICAgIHdpZHRoOiAyMDAlOyBoZWlnaHQ6IDIwMCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMTM5LCA5MiwgMjQ2LCAwLjEpLCB0cmFuc3BhcmVudCk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgICAgLnByaWNpbmctY2FyZDpob3Zlcjo6YmVmb3JlIHsgb3BhY2l0eTogMTsgYW5pbWF0aW9uOiBzaGluZSAxLjVzIGVhc2U7IH0KICAgICAgICBAa2V5ZnJhbWVzIHNoaW5lIHsKICAgICAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlWSgxMDAlKTsgfQogICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZVkoLTEwMCUpOyB9CiAgICAgICAgfQogICAgICAgIC5wcmljaW5nLWNhcmQ6aG92ZXIgeyAKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KSBzY2FsZSgxLjAyKTsgCiAgICAgICAgICAgIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY3lhbiksIHZhcigtLWdvbGQpLCB2YXIoLS1wdXJwbGUpKSAxOwogICAgICAgIH0KICAgICAgICAucHJpY2luZy1jYXJkLmZlYXR1cmVkIHsKICAgICAgICAgICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgdmFyKC0tY3lhbiksIHZhcigtLWdvbGQpKSAxOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDYsIDE4MiwgMjEyLCAwLjIpLCByZ2JhKDEzLCAyNywgNDIsIDAuOTgpKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsKICAgICAgICB9CiAgICAgICAgLnByaWNpbmctY2FyZC5mZWF0dXJlZDpob3ZlciB7IHRyYW5zZm9ybTogc2NhbGUoMS4wOCkgdHJhbnNsYXRlWSgtMTBweCk7IH0KICAgICAgICAKICAgICAgICAucHJpY2luZy1pY29uIHsgCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi44cmVtOyAKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBpY29uRmxvYXQgM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgaWNvbkZsb2F0IHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsgfQogICAgICAgIH0KICAgICAgICAucHJpY2luZy1uYW1lIHsgCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOyAKICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07IAogICAgICAgICAgICBjb2xvcjogdmFyKC0tY3lhbik7IAogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7IAogICAgICAgIH0KICAgICAgICAucHJpY2luZy1mb3IgeyBmb250LXNpemU6IDAuNzVyZW07IGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNSk7IG1hcmdpbi1ib3R0b206IDEycHg7IH0KICAgICAgICAucHJpY2luZy1wcmljZSB7IAogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsgCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi44cmVtOyAKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgCiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWl2b3J5KSwgdmFyKC0tZ29sZCkpOwogICAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsKICAgICAgICAgICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAucHJpY2luZy1wcmljZSAuY3VycmVuY3ktc3ltYm9sIHsgZm9udC1zaXplOiAxLjNyZW07IHZlcnRpY2FsLWFsaWduOiBzdXBlcjsgfQogICAgICAgIC5wcmljaW5nLXByaWNlLnVneCB7IGZvbnQtc2l6ZTogMS44cmVtOyB9CiAgICAgICAgLnByaWNpbmctcHJpY2UudWd4IC5jdXJyZW5jeS1zeW1ib2wgeyBmb250LXNpemU6IDAuOXJlbTsgfQogICAgICAgIC5wcmljaW5nLWZlYXR1cmVzIHsgbGlzdC1zdHlsZTogbm9uZTsgdGV4dC1hbGlnbjogbGVmdDsgbWFyZ2luLWJvdHRvbTogMjBweDsgZm9udC1zaXplOiAwLjg1cmVtOyB9CiAgICAgICAgLnByaWNpbmctZmVhdHVyZXMgbGkgeyAKICAgICAgICAgICAgcGFkZGluZzogNnB4IDA7IAogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyAKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgCiAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgxMzksIDkyLCAyNDYsIDAuMSk7CiAgICAgICAgfQogICAgICAgIC5wcmljaW5nLWZlYXR1cmVzIGxpOmxhc3QtY2hpbGQgeyBib3JkZXItYm90dG9tOiBub25lOyB9CiAgICAgICAgLnByaWNpbmctZmVhdHVyZXMgLmNoZWNrIHsgY29sb3I6IHZhcigtLWdyZWVuKTsgZm9udC1zaXplOiAxcmVtOyB9CiAgICAgICAgCiAgICAgICAgLnByaWNpbmctYnRuIHsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IAogICAgICAgICAgICB3aWR0aDogMTAwJTsgCiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHggMjBweDsgCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTsgCiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7IAogICAgICAgICAgICBib3JkZXI6IG5vbmU7IAogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXB1cnBsZSksIHZhcigtLWN5YW4pKTsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMjVweCByZ2JhKDEzOSwgOTIsIDI0NiwgMC4zKTsKICAgICAgICB9CiAgICAgICAgLnByaWNpbmctYnRuOmhvdmVyIHsgCiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsgCiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTVweCAzNXB4IHJnYmEoMTM5LCA5MiwgMjQ2LCAwLjUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBQQVlNRU5UIFNFQ1RJT04gKi8KICAgICAgICAucGF5bWVudC1zZWN0aW9uIHsgCiAgICAgICAgICAgIHBhZGRpbmc6IDUwcHggMjBweDsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDEzOSwgOTIsIDI0NiwgMC4xKSwgdHJhbnNwYXJlbnQpOyAKICAgICAgICB9CiAgICAgICAgLnBheW1lbnQtYm94IHsKICAgICAgICAgICAgbWF4LXdpZHRoOiA1MDBweDsgCiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHBhZGRpbmc6IDZweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tcHVycGxlKSwgdmFyKC0tZ29sZCksIHZhcigtLWN5YW4pKTsKICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDIwMCU7CiAgICAgICAgICAgIGFuaW1hdGlvbjogYm9yZGVyR2xvdyA0cyBlYXNlIGluZmluaXRlOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgIH0KICAgICAgICAucGF5bWVudC1ib3gtaW5uZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDEzOSwgOTIsIDI0NiwgMC4xNSksIHJnYmEoMTMsIDI3LCA0MiwgMC45OCkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4OwogICAgICAgICAgICBwYWRkaW5nOiA0NXB4IDM1cHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgLnBheW1lbnQtYm94IGgzIHsgCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOyAKICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07IAogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyAKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOyAKICAgICAgICB9CiAgICAgICAgLnBheW1lbnQtbnVtYmVyIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi41cmVtOyAKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsgCiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgICAgICAgICAgcGFkZGluZzogMjBweCAzMHB4OyAKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMThweDsgCiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQ7CiAgICAgICAgICAgIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tcHVycGxlKSwgdmFyKC0tY3lhbikpIDE7CiAgICAgICAgICAgIGFuaW1hdGlvbjogbnVtYmVyR2xvdyAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBudW1iZXJHbG93IHsKICAgICAgICAgICAgMCUsIDEwMCUgeyBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDEzOSwgOTIsIDI0NiwgMC4zKTsgfQogICAgICAgICAgICA1MCUgeyBib3gtc2hhZG93OiAwIDAgNDBweCByZ2JhKDEzOSwgOTIsIDI0NiwgMC41KSwgMCAwIDYwcHggcmdiYSg2LCAxODIsIDIxMiwgMC4zKTsgfQogICAgICAgIH0KICAgICAgICAucGF5bWVudC1uYW1lIHsgCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOyAKICAgICAgICAgICAgY29sb3I6IHZhcigtLWN5YW4pOyAKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICB9CiAgICAgICAgLnBheW1lbnQtc3RlcHMgeyAKICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zKTsgCiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7IAogICAgICAgICAgICBwYWRkaW5nOiAyNXB4OyAKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgxMzksIDkyLCAyNDYsIDAuMik7CiAgICAgICAgfQogICAgICAgIC5wYXltZW50LXN0ZXBzIGg0IHsgCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTsgCiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IAogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTBweDsKICAgICAgICB9CiAgICAgICAgLnBheW1lbnQtc3RlcHMgb2wgeyBtYXJnaW4tbGVmdDogMjBweDsgZm9udC1zaXplOiAwLjlyZW07IGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuOSk7IH0KICAgICAgICAucGF5bWVudC1zdGVwcyBsaSB7IG1hcmdpbi1ib3R0b206IDEycHg7IH0KICAgICAgICAucGF5bWVudC1zdGVwcyBzdHJvbmcgeyBjb2xvcjogdmFyKC0tY3lhbik7IH0KICAgICAgICAKICAgICAgICAvKiBPUkRFUiBTRUNUSU9OICovCiAgICAgICAgLm9yZGVyLXNlY3Rpb24geyBwYWRkaW5nOiA1MHB4IDIwcHg7IH0KICAgICAgICAub3JkZXItYm94IHsKICAgICAgICAgICAgbWF4LXdpZHRoOiA1MDBweDsgCiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgICAgICBwYWRkaW5nOiA1cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXB1cnBsZSksIHZhcigtLWN5YW4pLCB2YXIoLS1wdXJwbGUpKTsKICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDIwMCU7CiAgICAgICAgICAgIGFuaW1hdGlvbjogYm9yZGVyR2xvdyA1cyBlYXNlIGluZmluaXRlOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgIH0KICAgICAgICAub3JkZXItYm94LWlubmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSgyOCwgMzEsIDc0LCAwLjgpLCByZ2JhKDEzLCAyNywgNDIsIDAuOTgpKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjZweDsKICAgICAgICAgICAgcGFkZGluZzogNDBweCAzMHB4OwogICAgICAgIH0KICAgICAgICAub3JkZXItYm94IGgzIHsgCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOyAKICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07IAogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IAogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgdmFyKC0tY3lhbikpOwogICAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsKICAgICAgICAgICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIH0KICAgICAgICAuZm9ybS1ncm91cCB7IG1hcmdpbi1ib3R0b206IDE4cHg7IH0KICAgICAgICAuZm9ybS1ncm91cCBsYWJlbCB7IAogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgCiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxLjVweDsgCiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IAogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjYpOyAKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OyAKICAgICAgICB9CiAgICAgICAgLmZvcm0tZ3JvdXAgaW5wdXQsIC5mb3JtLWdyb3VwIHNlbGVjdCB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAKICAgICAgICAgICAgcGFkZGluZzogMTRweCAxOHB4OwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDEzOSwgOTIsIDI0NiwgMC4zKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOyAKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAuZm9ybS1ncm91cCBpbnB1dDpmb2N1cywgLmZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzIHsgCiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7IAogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWN5YW4pOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDYsIDE4MiwgMjEyLCAwLjIpOwogICAgICAgIH0KICAgICAgICAuZm9ybS1ncm91cCBzZWxlY3QgeyAKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOyAKICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTsgCiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMicgaGVpZ2h0PScxMicgdmlld0JveD0nMCAwIDEyIDEyJyUzRSUzQ3BhdGggZmlsbD0nJTIzMDZiNmQ0JyBkPSdNNiA4TDEgM2gxMHonLyUzRSUzQy9zdmclM0UiKTsgCiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IAogICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxNXB4IGNlbnRlcjsgCiAgICAgICAgfQogICAgICAgIC5mb3JtLXJvdyB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsgZ2FwOiAxNXB4OyB9CiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7IC5mb3JtLXJvdyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9IH0KICAgICAgICAKICAgICAgICAuc3VibWl0LWJ0biB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAKICAgICAgICAgICAgcGFkZGluZzogMThweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07IAogICAgICAgICAgICBmb250LXdlaWdodDogODAwOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzNXB4OyAKICAgICAgICAgICAgYm9yZGVyOiBub25lOyAKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgdmFyKC0tZGVlcGdvbGQpKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDE1cHggNDBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4zKTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgICB9CiAgICAgICAgLnN1Ym1pdC1idG46aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCkgc2NhbGUoMS4wMik7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA1MHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBGT09URVIgKi8KICAgICAgICAuZm9vdGVyIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDIwcHg7CiAgICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCByZ2JhKDEzOSwgOTIsIDI0NiwgMC4yKTsKICAgICAgICB9CiAgICAgICAgLmZvb3Rlci1icmFuZCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLWN5YW4pKTsKICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7CiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgLmZvb3RlciBwIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNSk7CiAgICAgICAgfQogICAgICAgIC5mb290ZXItbGlua3MgewogICAgICAgICAgICBtYXJnaW4tdG9wOiAxNXB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgIH0KICAgICAgICAuZm9vdGVyLWxpbmtzIGEgewogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjYpOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzOwogICAgICAgIH0KICAgICAgICAuZm9vdGVyLWxpbmtzIGE6aG92ZXIgeyBjb2xvcjogdmFyKC0tZ29sZCk7IH0KICAgICAgICAKICAgICAgICAvKiBSRVNQT05TSVZFICovCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7IAogICAgICAgICAgICAudG9wbmF2IHsgcGFkZGluZzogMTBweCAxNXB4OyB9CiAgICAgICAgICAgIC5uYXYtYnJhbmQgLmxvZ28geyBmb250LXNpemU6IDEuMXJlbTsgfQogICAgICAgICAgICAuYW1iYXNzYWRvci1oZXJvIHsgcGFkZGluZy10b3A6IDUwcHg7IH0KICAgICAgICAgICAgLmFtYmFzc2Fkb3ItYmFkZ2UgeyB0b3A6IC0xMHB4OyBwYWRkaW5nOiAxMHB4IDI1cHg7IGZvbnQtc2l6ZTogMC42cmVtOyB9CiAgICAgICAgICAgIC5hbWJhc3NhZG9yLW5hbWUgeyBmb250LXNpemU6IDEuOHJlbTsgfQogICAgICAgICAgICAuY29udGFjdC1idG4geyBwYWRkaW5nOiAxMnB4IDE4cHg7IGZvbnQtc2l6ZTogMC44cmVtOyB9CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICAgIDxkaXYgY2xhc3M9ImJnLW1hc3RlciI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJvcmIgb3JiLTEiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0ib3JiIG9yYi0yIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im9yYiBvcmItMyI+PC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNwYXJrbGVzIiBpZD0ic3BhcmtsZXMiPjwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJwYWdlLWNvbnRhaW5lciI+CiAgICAgICAgPCEtLSBOQVZJR0FUSU9OIC0tPgogICAgICAgIDxuYXYgY2xhc3M9InRvcG5hdiI+CiAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJuYXYtYnJhbmQiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxvZ28iPvCfpJ0gQnJhbmRIYW5kc2hha2U8L3NwYW4+CiAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWxpbmtzIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNwcmljaW5nIj5QcmljaW5nPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI29yZGVyIj5PcmRlcjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9uYXY+CiAgICAgICAgCiAgICAgICAgPCEtLSBTQ1JPTExJTkcgQkFOTkVSIC0tPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLXNjcm9sbC1jb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1zY3JvbGwiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWl0ZW0iPjxzcGFuIGNsYXNzPSJzdGFyIj7irZA8L3NwYW4+IERpZ2l0YWwgQnVzaW5lc3MgQ2FyZHMgPHNwYW4gY2xhc3M9InN0YXIiPuKtkDwvc3Bhbj4gUHJvZmVzc2lvbmFsIE5ldHdvcmtpbmcgPHNwYW4gY2xhc3M9InN0YXIiPuKtkDwvc3Bhbj4gTmV4dHdhdmUgRGlnaXRhbCA8c3BhbiBjbGFzcz0ic3RhciI+4q2QPC9zcGFuPiBTb2Z0d2FyZSBEZXZlbG9wbWVudDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWl0ZW0iPjxzcGFuIGNsYXNzPSJzdGFyIj7irZA8L3NwYW4+IERpZ2l0YWwgQnVzaW5lc3MgQ2FyZHMgPHNwYW4gY2xhc3M9InN0YXIiPuKtkDwvc3Bhbj4gUHJvZmVzc2lvbmFsIE5ldHdvcmtpbmcgPHNwYW4gY2xhc3M9InN0YXIiPuKtkDwvc3Bhbj4gTmV4dHdhdmUgRGlnaXRhbCA8c3BhbiBjbGFzcz0ic3RhciI+4q2QPC9zcGFuPiBTb2Z0d2FyZSBEZXZlbG9wbWVudDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWl0ZW0iPjxzcGFuIGNsYXNzPSJzdGFyIj7irZA8L3NwYW4+IERpZ2l0YWwgQnVzaW5lc3MgQ2FyZHMgPHNwYW4gY2xhc3M9InN0YXIiPuKtkDwvc3Bhbj4gUHJvZmVzc2lvbmFsIE5ldHdvcmtpbmcgPHNwYW4gY2xhc3M9InN0YXIiPuKtkDwvc3Bhbj4gTmV4dHdhdmUgRGlnaXRhbCA8c3BhbiBjbGFzcz0ic3RhciI+4q2QPC9zcGFuPiBTb2Z0d2FyZSBEZXZlbG9wbWVudDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWl0ZW0iPjxzcGFuIGNsYXNzPSJzdGFyIj7irZA8L3NwYW4+IERpZ2l0YWwgQnVzaW5lc3MgQ2FyZHMgPHNwYW4gY2xhc3M9InN0YXIiPuKtkDwvc3Bhbj4gUHJvZmVzc2lvbmFsIE5ldHdvcmtpbmcgPHNwYW4gY2xhc3M9InN0YXIiPuKtkDwvc3Bhbj4gTmV4dHdhdmUgRGlnaXRhbCA8c3BhbiBjbGFzcz0ic3RhciI+4q2QPC9zcGFuPiBTb2Z0d2FyZSBEZXZlbG9wbWVudDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIEFNQkFTU0FET1IgSEVSTyAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0iYW1iYXNzYWRvci1oZXJvIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYW1iYXNzYWRvci1jYXJkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFtYmFzc2Fkb3ItY2FyZC1pbm5lci0xIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbWJhc3NhZG9yLWNhcmQtaW5uZXItMiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFtYmFzc2Fkb3ItY2FyZC1pbm5lci0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFtYmFzc2Fkb3ItY2FyZC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdmF0YXItZ2xvdyI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYW1iYXNzYWRvci1iYWRnZSI+4pyoIFBpb25lZXIgQW1iYXNzYWRvcjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWNvZGUtYmFkZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29sb3ItZG90Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFJIEJ5dGVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYW1iYXNzYWRvci1hdmF0YXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29kZS1icmFja2V0cyBjb2RlLWxlZnQiPiZsdDsvJmd0Ozwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImF2YXRhci1pY29uIj7wn5K7PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29kZS1icmFja2V0cyBjb2RlLXJpZ2h0Ij57fTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDEgY2xhc3M9ImFtYmFzc2Fkb3ItbmFtZSI+RGF2aXMgTHViZWdhPC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbWJhc3NhZG9yLWNvbXBhbnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiI+8J+agDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV4dHdhdmUgRGlnaXRhbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJhbWJhc3NhZG9yLXRpdGxlIj5Tb2Z0d2FyZSBEZXZlbG9wZXIgJiBDb21wdXRlciBTY2llbmNlIFN0dWRlbnQ8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImFtYmFzc2Fkb3Itcm9sZSI+QW5kcm9pZCAmIFdlYiBEZXZlbG9wbWVudCBQaW9uZWVyPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNvY2lhbC1pY29ucyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9sdWJlZ2EtZGF2aXMvIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InNvY2lhbC1pY29uIGxpbmtlZGluIiB0aXRsZT0iTGlua2VkSW4iPvCfkrw8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd2EubWUvMjU2NzA1OTU1NjA4IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InNvY2lhbC1pY29uIHdoYXRzYXBwIiB0aXRsZT0iV2hhdHNBcHAiPvCfkqw8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Im1haWx0bzpkYXZpc0BuZXd3YXZlZGlnaXRhbC5hZnJpY2EiIGNsYXNzPSJzb2NpYWwtaWNvbiBlbWFpbCIgdGl0bGU9IkVtYWlsIj7wn5OnPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFtYmFzc2Fkb3ItY29udGFjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd2EubWUvMjU2NzA1OTU1NjA4IiBjbGFzcz0iY29udGFjdC1idG4gd2hhdHNhcHAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+8J+SrDwvc3Bhbj4gV2hhdHNBcHAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJ0ZWw6KzI1NjcwNTk1NTYwOCIgY2xhc3M9ImNvbnRhY3QtYnRuIGNhbGwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+8J+Tnjwvc3Bhbj4gQ2FsbCBOb3cKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAKICAgICAgICA8IS0tIFZBTFVFIFNFQ1RJT04gLS0+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InZhbHVlLXNlY3Rpb24iPgogICAgICAgICAgICA8aDI+WW91ciBEaWdpdGFsIENhcmQgPHNwYW4gY2xhc3M9ImhpZ2hsaWdodCI+U3RhcnRpbmcgRnJvbTwvc3Bhbj48L2gyPgogICAgICAgICAgICA8cD5TdGFuZCBvdXQgZnJvbSB0aGUgY3Jvd2Qgd2l0aCBhIHByb2Zlc3Npb25hbCBkaWdpdGFsIGJ1c2luZXNzIGNhcmQgdGhhdCBtYWtlcyBuZXR3b3JraW5nIGVmZm9ydGxlc3MgYW5kIG1lbW9yYWJsZS48L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNlLWhpZ2hsaWdodCI+JDEwPC9kaXY+CiAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIAogICAgICAgIDwhLS0gUFJJQ0lORyBTRUNUSU9OIC0tPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJwcmljaW5nLXNlY3Rpb24iIGlkPSJwcmljaW5nIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1oZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMz5DaG9vc2UgWW91ciBDYXJkIFBhY2thZ2U8L2gzPgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogMTBweDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGZsZXgtd3JhcDogd3JhcDsiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdXJyZW5jeS10b2dnbGUgYWN0aXZlIiBpZD0idXNkVG9nZ2xlIiBvbmNsaWNrPSJzaG93VVNEKCkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImN1cnJlbmN5LWljb24iPvCfh7rwn4e4PC9zcGFuPiBVU0QKICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN1cnJlbmN5LXRvZ2dsZSIgaWQ9InVneFRvZ2dsZSIgb25jbGljaz0ic2hvd1VHWCgpIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjdXJyZW5jeS1pY29uIj7wn4e68J+HrDwvc3Bhbj4gVUdYCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctZ3JpZCI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBTVEFSVEVSIC0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctY2FyZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctaWNvbiI+8J+OrzwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLW5hbWUiPlN0YXJ0ZXI8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1mb3IiPlBlcmZlY3QgZm9yIFN0dWRlbnRzPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctcHJpY2UgdXNkIiBkYXRhLXVzZD0iMTAiIGRhdGEtdWd4PSIzNywwMDAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImN1cnJlbmN5LXN5bWJvbCI+JDwvc3Bhbj4xMAogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJwcmljaW5nLWZlYXR1cmVzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2hlY2siPuKckzwvc3Bhbj4gUHJvZmVzc2lvbmFsIERpZ2l0YWwgQ2FyZDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9ImNoZWNrIj7inJM8L3NwYW4+IENvbnRhY3QgSW5mbyAmIFBob3RvPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2hlY2siPuKckzwvc3Bhbj4gMyBTb2NpYWwgTWVkaWEgTGlua3M8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJjaGVjayI+4pyTPC9zcGFuPiBRUiBDb2RlPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2hlY2siPuKckzwvc3Bhbj4gNDhociBEZWxpdmVyeTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InByaWNpbmctYnRuIiBvbmNsaWNrPSJzZWxlY3RQbGFuKCdTdGFydGVyJywgMTApIj5HZXQgU3RhcnRlZDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwhLS0gUFJPRkVTU0lPTkFMIC0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctY2FyZCBmZWF0dXJlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctaWNvbiI+4q2QPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctbmFtZSI+UHJvZmVzc2lvbmFsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctZm9yIj5Nb3N0IFBvcHVsYXI8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1wcmljZSB1c2QiIGRhdGEtdXNkPSIyNSIgZGF0YS11Z3g9IjkyLDUwMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY3VycmVuY3ktc3ltYm9sIj4kPC9zcGFuPjI1CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InByaWNpbmctZmVhdHVyZXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJjaGVjayI+4pyTPC9zcGFuPiBFdmVyeXRoaW5nIGluIFN0YXJ0ZXI8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJjaGVjayI+4pyTPC9zcGFuPiBDdXN0b20gQ29sb3JzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2hlY2siPuKckzwvc3Bhbj4gNiBTb2NpYWwgTWVkaWEgTGlua3M8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJjaGVjayI+4pyTPC9zcGFuPiBTZXJ2aWNlcyBTZWN0aW9uPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2hlY2siPuKckzwvc3Bhbj4gQm9va2luZyBDYWxlbmRhcjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9ImNoZWNrIj7inJM8L3NwYW4+IFByaW9yaXR5IFN1cHBvcnQ8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJwcmljaW5nLWJ0biIgb25jbGljaz0ic2VsZWN0UGxhbignUHJvZmVzc2lvbmFsJywgMjUpIj5HZXQgUHJvZmVzc2lvbmFsPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPCEtLSBFWEVDVVRJVkUgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1jYXJkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1pY29uIj7wn5GRPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctbmFtZSI+RXhlY3V0aXZlPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctZm9yIj5Gb3IgTGVhZGVyczwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLXByaWNlIHVzZCIgZGF0YS11c2Q9IjUwIiBkYXRhLXVneD0iMTg1LDAwMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY3VycmVuY3ktc3ltYm9sIj4kPC9zcGFuPjUwCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InByaWNpbmctZmVhdHVyZXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJjaGVjayI+4pyTPC9zcGFuPiBFdmVyeXRoaW5nIGluIFByb2Zlc3Npb25hbDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9ImNoZWNrIj7inJM8L3NwYW4+IFZpZGVvIEVtYmVkPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2hlY2siPuKckzwvc3Bhbj4gTGVhZCBDYXB0dXJlIEZvcm08L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJjaGVjayI+4pyTPC9zcGFuPiBBbmFseXRpY3MgRGFzaGJvYXJkPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2hlY2siPuKckzwvc3Bhbj4gQ3VzdG9tIERvbWFpbiBPcHRpb248L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJjaGVjayI+4pyTPC9zcGFuPiBWSVAgU3VwcG9ydDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InByaWNpbmctYnRuIiBvbmNsaWNrPSJzZWxlY3RQbGFuKCdFeGVjdXRpdmUnLCA1MCkiPkdvIEV4ZWN1dGl2ZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAKICAgICAgICA8IS0tIFBBWU1FTlQgU0VDVElPTiAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0icGF5bWVudC1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGF5bWVudC1ib3giPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGF5bWVudC1ib3gtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMz7wn5OxIFBheSB2aWEgTW9iaWxlIE1vbmV5PC9oMz4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXltZW50LW51bWJlciI+MDcwNSA5NTUgNjA4PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InBheW1lbnQtbmFtZSI+RGF2aXMgTHViZWdhPC9wPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtc3RlcHMiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDQ+8J+TiyBIb3cgVG8gUGF5OjwvaDQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5PcGVuIHlvdXIgPHN0cm9uZz5NVE4gTW9Nbzwvc3Ryb25nPiBvciA8c3Ryb25nPkFpcnRlbCBNb25leTwvc3Ryb25nPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U2VsZWN0IDxzdHJvbmc+IlNlbmQgTW9uZXkiPC9zdHJvbmc+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5FbnRlciBudW1iZXI6IDxzdHJvbmc+MDcwNSA5NTUgNjA4PC9zdHJvbmc+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5FbnRlciB0aGUgYW1vdW50IGZvciB5b3VyIGNob3NlbiBwYWNrYWdlPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5GaWxsIG91dCB0aGUgb3JkZXIgZm9ybSBiZWxvdzwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+V2UnbGwgY29udGFjdCB5b3Ugd2l0aGluIDxzdHJvbmc+MjQgaG91cnM8L3N0cm9uZz48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L29sPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAKICAgICAgICA8IS0tIE9SREVSIEZPUk0gLS0+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9Im9yZGVyLXNlY3Rpb24iIGlkPSJvcmRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9yZGVyLWJveCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvcmRlci1ib3gtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMz7wn5OdIE9yZGVyIFlvdXIgQ2FyZDwvaDM+CiAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJodHRwczovL2Zvcm1zdWJtaXQuY28vc2hvcGxvY2FsYnVzaW5lc3NhZ2VuY3lAZ21haWwuY29tIiBtZXRob2Q9IlBPU1QiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJfc3ViamVjdCIgdmFsdWU9IvCfpJ0gTmV3IENhcmQgT3JkZXIgZnJvbSBBSSBCeXRlcyAtIERhdmlzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX3RlbXBsYXRlIiB2YWx1ZT0idGFibGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJfY2FwdGNoYSIgdmFsdWU9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQW1iYXNzYWRvciIgdmFsdWU9IkRhdmlzIEx1YmVnYSAtIEFJIEJ5dGVzIj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkZ1bGwgTmFtZTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iRnVsbCBOYW1lIiByZXF1aXJlZCBwbGFjZWhvbGRlcj0iWW91ciBmdWxsIG5hbWUiPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5FbWFpbDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImVtYWlsIiBuYW1lPSJFbWFpbCIgcmVxdWlyZWQgcGxhY2Vob2xkZXI9InlvdXJAZW1haWwuY29tIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlBob25lL1doYXRzQXBwPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGVsIiBuYW1lPSJQaG9uZSIgcmVxdWlyZWQgcGxhY2Vob2xkZXI9IisyNTYuLi4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+UGFja2FnZSBTZWxlY3RlZDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9IlBhY2thZ2UiIGlkPSJwYWNrYWdlU2VsZWN0IiByZXF1aXJlZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPlNlbGVjdCB5b3VyIHBhY2thZ2U8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTdGFydGVyIC0gJDEwIj5TdGFydGVyIC0gJDEwIC8gVUdYIDM3LDAwMDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlByb2Zlc3Npb25hbCAtICQyNSI+UHJvZmVzc2lvbmFsIC0gJDI1IC8gVUdYIDkyLDUwMDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkV4ZWN1dGl2ZSAtICQ1MCI+RXhlY3V0aXZlIC0gJDUwIC8gVUdYIDE4NSwwMDA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPllvdXIgUHJvZmVzc2lvbi9UaXRsZTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iUHJvZmVzc2lvbiIgcGxhY2Vob2xkZXI9ImUuZy4sIFNvZnR3YXJlIERldmVsb3BlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+VHJhbnNhY3Rpb24gUmVmZXJlbmNlIChBZnRlciBQYXltZW50KTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iVHJhbnNhY3Rpb24gUmVmIiBwbGFjZWhvbGRlcj0iTW9NbyBjb25maXJtYXRpb24gY29kZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJzdWJtaXQtYnRuIj5TdWJtaXQgT3JkZXIg8J+agDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBGT09URVIgLS0+CiAgICAgICAgPGZvb3RlciBjbGFzcz0iZm9vdGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWJyYW5kIj7wn6SdIEJyYW5kSGFuZHNoYWtlPC9kaXY+CiAgICAgICAgICAgIDxwPkRpZ2l0YWwgQnVzaW5lc3MgQ2FyZHMgZm9yIHRoZSBNb2Rlcm4gUHJvZmVzc2lvbmFsPC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItbGlua3MiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9icmFuZGhhbmRzaGFrZS5jb20iPk1haW4gU2l0ZTwvYT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd2EubWUvMjU2NzA1OTU1NjA4Ij5Db250YWN0IERhdmlzPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDE1cHg7Ij7CqSAyMDI2IE5leHR3YXZlIERpZ2l0YWwuIEFtYmFzc2Fkb3Igb2YgQnJhbmRIYW5kc2hha2UuPC9wPgogICAgICAgIDwvZm9vdGVyPgogICAgPC9kaXY+CiAgICAKICAgIDxzY3JpcHQ+CiAgICAgICAgLy8gR2VuZXJhdGUgc3BhcmtsZXMKICAgICAgICBjb25zdCBzcGFya2xlc0NvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcGFya2xlcycpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMjA7IGkrKykgewogICAgICAgICAgICBjb25zdCBzcGFya2xlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgIHNwYXJrbGUuY2xhc3NOYW1lID0gJ3NwYXJrbGUnOwogICAgICAgICAgICBzcGFya2xlLnN0eWxlLmxlZnQgPSBgJHtNYXRoLnJhbmRvbSgpICogMTAwfSVgOwogICAgICAgICAgICBzcGFya2xlLnN0eWxlLnRvcCA9IGAke01hdGgucmFuZG9tKCkgKiAxMDB9JWA7CiAgICAgICAgICAgIHNwYXJrbGUuc3R5bGUuYW5pbWF0aW9uRGVsYXkgPSBgJHtNYXRoLnJhbmRvbSgpICogMn1zYDsKICAgICAgICAgICAgc3BhcmtsZXNDb250YWluZXIuYXBwZW5kQ2hpbGQoc3BhcmtsZSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIEN1cnJlbmN5IHRvZ2dsZQogICAgICAgIGxldCBjdXJyZW50Q3VycmVuY3kgPSAnVVNEJzsKICAgICAgICBjb25zdCBleGNoYW5nZVJhdGUgPSAzNzAwOwogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIHNob3dVU0QoKSB7CiAgICAgICAgICAgIGN1cnJlbnRDdXJyZW5jeSA9ICdVU0QnOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXNkVG9nZ2xlJykuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1Z3hUb2dnbGUnKS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wcmljaW5nLXByaWNlJykuZm9yRWFjaChlbCA9PiB7CiAgICAgICAgICAgICAgICBjb25zdCB1c2QgPSBlbC5kYXRhc2V0LnVzZDsKICAgICAgICAgICAgICAgIGVsLmlubmVySFRNTCA9IGA8c3BhbiBjbGFzcz0iY3VycmVuY3ktc3ltYm9sIj4kPC9zcGFuPiR7dXNkfWA7CiAgICAgICAgICAgICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKCd1Z3gnKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIHNob3dVR1goKSB7CiAgICAgICAgICAgIGN1cnJlbnRDdXJyZW5jeSA9ICdVR1gnOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndWd4VG9nZ2xlJykuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1c2RUb2dnbGUnKS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wcmljaW5nLXByaWNlJykuZm9yRWFjaChlbCA9PiB7CiAgICAgICAgICAgICAgICBjb25zdCB1Z3ggPSBlbC5kYXRhc2V0LnVneDsKICAgICAgICAgICAgICAgIGVsLmlubmVySFRNTCA9IGA8c3BhbiBjbGFzcz0iY3VycmVuY3ktc3ltYm9sIj5VR1g8L3NwYW4+ICR7dWd4fWA7CiAgICAgICAgICAgICAgICBlbC5jbGFzc0xpc3QuYWRkKCd1Z3gnKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIHNlbGVjdFBsYW4ocGxhbiwgcHJpY2UpIHsKICAgICAgICAgICAgY29uc3Qgc2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhY2thZ2VTZWxlY3QnKTsKICAgICAgICAgICAgY29uc3QgdWd4ID0gcHJpY2UgKiBleGNoYW5nZVJhdGU7CiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IGAke3BsYW59IC0gJCR7cHJpY2V9YDsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29yZGVyJykuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7CiAgICAgICAgfQogICAgPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg==","embed":""}
β Digital Business Cards β Professional Networking β Nextwave Digital β Software Development
β Digital Business Cards β Professional Networking β Nextwave Digital β Software Development
β Digital Business Cards β Professional Networking β Nextwave Digital β Software Development
β Digital Business Cards β Professional Networking β Nextwave Digital β Software Development
β¨ Pioneer Ambassador
AI Bytes
</>
π»
{}
Davis Lubega
π
Nextwave Digital
Software Developer & Computer Science Student
Android & Web Development Pioneer
Your Digital Card Starting From
Stand out from the crowd with a professional digital business card that makes networking effortless and memorable.
$10
Choose Your Card Package
π―
Starter
Perfect for Students
$10
- β Professional Digital Card
- β Contact Info & Photo
- β 3 Social Media Links
- β QR Code
- β 48hr Delivery
β
Professional
Most Popular
$25
- β Everything in Starter
- β Custom Colors
- β 6 Social Media Links
- β Services Section
- β Booking Calendar
- β Priority Support
π
Executive
For Leaders
$50
- β Everything in Professional
- β Video Embed
- β Lead Capture Form
- β Analytics Dashboard
- β Custom Domain Option
- β VIP Support
π± Pay via Mobile Money
0705 955 608
Davis Lubega
π How To Pay:
- Open your MTN MoMo or Airtel Money
- Select "Send Money"
- Enter number: 0705 955 608
- Enter the amount for your chosen package
- Fill out the order form below
- We'll contact you within 24 hours