cropper

SOVEREIGN MOMENTUM DIGITAL ARCHITECTS

cropper
  • Momentum 2026
  • Momentous Journey
  • Vision Chamber
  • Goals Forge
  • Contact Us
  • Check-In Station
  • Virtual Realm
  • Giving Back
  • 2026 Passion
  • 2026 Prosperity
  • Webinar Theatre
  • Father's Hearth
{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgICBVUkw6IHNvdmVyZWlnbm1vbWVudHVtLmNvbS8yMDI2bW9tZW50dW0KICAgICAgICAgUEFHRSAxOiBUSEUgTVlTVEVSWSBURUFTRVIgfiAiSSBBTSBfX19fIiBQRVJTT05BTElUWSBMT1RURVJZCiAgICAgICAgIFBVUlBPU0U6IEVuZ2FnaW5nIGZpcnN0IHRvdWNocG9pbnQgLSBteXN0ZXJpb3VzLCBwbGF5ZnVsLCBlbXBvd2VyaW5nCiAgICAgICAgIEJSQU5EOiBEeW5hbWljIFBhcmFkaWdtcyAmIE1lbnRvcnNoaXAgU3VjY2VzcyBBY2FkZW1pZXMKICAgICAgICAgQVJDSElURUNUOiBUaGUgU0hFIEV+Qm9zcyBTb2x1dGlvbmlzdCB8IE1vbWVudHVtIERpZ2l0YWwgTWVkaWEKICAgICAgICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIC0tPgogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgogICAgPHRpdGxlPk1vbWVudHVtIEF3YWl0cy4uLiBBcmUgWW91IFJlYWR5PyB8IFRoZSBTSEUgRX5Cb3NzIEV4cGVyaWVuY2U8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9Ik1vbWVudHVtIGF3YWl0cy4gVGhlIHF1ZXN0aW9uIGlzbid0IHdoYXQncyBjb21pbmcgfiBpdCdzIFdITyB5b3UnbGwgYmVjb21lLiBEaXNjb3ZlciB5b3VyIDIwMjYgc292ZXJlaWduIHBhdGh3YXkuIj4KICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL3NvdmVyZWlnbm1vbWVudHVtLmNvbS8yMDI2bW9tZW50dW0iPgogICAgCiAgICA8IS0tIE9wZW4gR3JhcGggLS0+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9Ik1vbWVudHVtIEF3YWl0cy4uLiBBcmUgWW91IFJlYWR5IGZvciAyMDI2PyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9Ik1vbWVudHVtIGF3YWl0cy4gVGhlIHF1ZXN0aW9uIGlzbid0IHdoYXQncyBjb21pbmcgfiBpdCdzIFdITyB5b3UnbGwgYmVjb21lLiI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dXJsIiBjb250ZW50PSJodHRwczovL3NvdmVyZWlnbm1vbWVudHVtLmNvbS8yMDI2bW9tZW50dW0iPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIGNvbnRlbnQ9IndlYnNpdGUiPgogICAgCiAgICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVBsYXlmYWlyK0Rpc3BsYXk6d2dodEA0MDA7NTAwOzYwMDs3MDA7ODAwOzkwMCZmYW1pbHk9Q29ybW9yYW50K0dhcmFtb25kOml0YWwsd2dodEAwLDQwMDswLDUwMDswLDYwMDswLDcwMDsxLDQwMDsxLDUwMCZmYW1pbHk9Q2luemVsOndnaHRANDAwOzUwMDs2MDA7NzAwOzgwMDs5MDAmZmFtaWx5PU51bml0bzp3Z2h0QDMwMDs0MDA7NTAwOzYwMDs3MDA7ODAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxzdHlsZT4KICAgICAgICA6cm9vdCB7CiAgICAgICAgICAgIC0tbmF2eTogIzE2MjEzZTsKICAgICAgICAgICAgLS1uYXZ5LWRlZXA6ICMwZjBmMjM7CiAgICAgICAgICAgIC0tbmF2eS1saWdodDogIzFhMWEyZTsKICAgICAgICAgICAgLS1nb2xkOiAjRDRBRjM3OwogICAgICAgICAgICAtLWdvbGQtbGlnaHQ6ICNFNUMxNTg7CiAgICAgICAgICAgIC0tZ29sZC1kYXJrOiAjQjg5NjBDOwogICAgICAgICAgICAtLXJvc2U6ICNCNzZFNzk7CiAgICAgICAgICAgIC0tcm9zZS1saWdodDogI0Q0OTE5QTsKICAgICAgICAgICAgLS1yb3NlLWRhcms6ICM5QTVBNjM7CiAgICAgICAgICAgIC0taXZvcnk6ICNGRkY5RjU7CiAgICAgICAgICAgIC0taXZvcnktbXV0ZWQ6IHJnYmEoMjU1LCAyNDksIDI0NSwgMC45NSk7CiAgICAgICAgICAgIC0taXZvcnktc29mdDogcmdiYSgyNTUsIDI0OSwgMjQ1LCAwLjg1KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQogICAgICAgIGh0bWwgeyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgfQogICAgICAgIAogICAgICAgIGJvZHkgewogICAgICAgICAgICBmb250LWZhbWlseTogJ051bml0bycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW5hdnktZGVlcCk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICAgICAgZm9udC1zaXplOiAxOXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBBTklNQVRFRCBCQUNLR1JPVU5EICovCiAgICAgICAgLmJnLW1hc3RlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgei1pbmRleDogMDsKICAgICAgICAgICAgYmFja2dyb3VuZDogCiAgICAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCAyMCUgMTAlLCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4wOCkgMCUsIHRyYW5zcGFyZW50IDUwJSksCiAgICAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA4MCUgMzAlLCByZ2JhKDE4MywgMTEwLCAxMjEsIDAuMDYpIDAlLCB0cmFuc3BhcmVudCA0MCUpLAogICAgICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgNTAlIDgwJSwgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMDUpIDAlLCB0cmFuc3BhcmVudCA1MCUpLAogICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tbmF2eS1kZWVwKSAwJSwgdmFyKC0tbmF2eSkgNTAlLCB2YXIoLS1uYXZ5LWxpZ2h0KSAxMDAlKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRkxPQVRJTkcgU1RBUlMgKi8KICAgICAgICAuc3RhcnMtY29udGFpbmVyIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgICB6LWluZGV4OiAxOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAuc3RhciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgICAgYW5pbWF0aW9uOiB0d2lua2xlIDRzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KICAgICAgICBAa2V5ZnJhbWVzIHR3aW5rbGUgewogICAgICAgICAgICAwJSwgMTAwJSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoMC41KTsgfQogICAgICAgICAgICA1MCUgeyBvcGFjaXR5OiAwLjg7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogU0hPT1RJTkcgU1RBUlMgKi8KICAgICAgICAuc2hvb3Rpbmctc3RhciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgd2lkdGg6IDRweDsKICAgICAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IAogICAgICAgICAgICAgICAgMCAwIDEwcHggMnB4IHZhcigtLWdvbGQpLAogICAgICAgICAgICAgICAgMCAwIDIwcHggNHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjUpOwogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgei1pbmRleDogMzsKICAgICAgICB9CiAgICAgICAgLnNob290aW5nLXN0YXI6OmFmdGVyIHsKICAgICAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICAgICAgd2lkdGg6IDgwcHg7CiAgICAgICAgICAgIGhlaWdodDogMnB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWdvbGQpLCB0cmFuc3BhcmVudCk7CiAgICAgICAgICAgIHJpZ2h0OiA0cHg7CiAgICAgICAgfQogICAgICAgIC5zaG9vdGluZy1zdGFyLmFjdGl2ZSB7CiAgICAgICAgICAgIGFuaW1hdGlvbjogc2hvb3RpbmdTdGFyIDEuNXMgZWFzZS1vdXQgZm9yd2FyZHM7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgc2hvb3RpbmdTdGFyIHsKICAgICAgICAgICAgMCUgewogICAgICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKDApIHJvdGF0ZSgtNDVkZWcpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIDEwMCUgewogICAgICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MDBweCkgdHJhbnNsYXRlWSg0MDBweCkgcm90YXRlKC00NWRlZyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRklSRVdPUktTICovCiAgICAgICAgLmZpcmV3b3JrIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgei1pbmRleDogNDsKICAgICAgICB9CiAgICAgICAgLmZpcmV3b3JrLXBhcnRpY2xlIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB3aWR0aDogNnB4OwogICAgICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBhbmltYXRpb246IGZpcmV3b3JrQnVyc3QgMXMgZWFzZS1vdXQgZm9yd2FyZHM7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgZmlyZXdvcmtCdXJzdCB7CiAgICAgICAgICAgIDAlIHsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApIHNjYWxlKDEpOwogICAgICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgfQogICAgICAgICAgICAxMDAlIHsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR4KSwgdmFyKC0tdHkpKSBzY2FsZSgwKTsKICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogTkVPTiBHTE9XIFFVT1RFUyAqLwogICAgICAgIC5xdW90ZS1pdGVtIHsKICAgICAgICAgICAgcGFkZGluZzogMCA1MHB4OwogICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZC1saWdodCk7CiAgICAgICAgICAgIHRleHQtc2hhZG93OiAKICAgICAgICAgICAgICAgIDAgMCAxMHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjUpLAogICAgICAgICAgICAgICAgMCAwIDIwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuMyksCiAgICAgICAgICAgICAgICAwIDAgMzBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4yKTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBuZW9uUHVsc2UgM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIC5xdW90ZS1pdGVtOm50aC1jaGlsZChvZGQpIHsKICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxLjVzOwogICAgICAgIH0KICAgICAgICBAa2V5ZnJhbWVzIG5lb25QdWxzZSB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgCiAgICAgICAgICAgICAgICB0ZXh0LXNoYWRvdzogCiAgICAgICAgICAgICAgICAgICAgMCAwIDEwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuNSksCiAgICAgICAgICAgICAgICAgICAgMCAwIDIwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuMyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgNTAlIHsgCiAgICAgICAgICAgICAgICB0ZXh0LXNoYWRvdzogCiAgICAgICAgICAgICAgICAgICAgMCAwIDE1cHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuOCksCiAgICAgICAgICAgICAgICAgICAgMCAwIDMwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuNSksCiAgICAgICAgICAgICAgICAgICAgMCAwIDQ1cHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuMyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLnF1b3RlLWl0ZW0gc3BhbiB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1yb3NlKTsKICAgICAgICAgICAgbWFyZ2luOiAwIDE1cHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogY29sb3JTaGlmdCA0cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBjb2xvclNoaWZ0IHsKICAgICAgICAgICAgMCUsIDEwMCUgeyBjb2xvcjogdmFyKC0tcm9zZSk7IHRleHQtc2hhZG93OiAwIDAgMTBweCB2YXIoLS1yb3NlKTsgfQogICAgICAgICAgICAzMyUgeyBjb2xvcjogdmFyKC0tZ29sZCk7IHRleHQtc2hhZG93OiAwIDAgMTBweCB2YXIoLS1nb2xkKTsgfQogICAgICAgICAgICA2NiUgeyBjb2xvcjogdmFyKC0tcm9zZS1saWdodCk7IHRleHQtc2hhZG93OiAwIDAgMTBweCB2YXIoLS1yb3NlLWxpZ2h0KTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBCT1RUT00gUVVPVEVTIE5FT04gKi8KICAgICAgICAucXVvdGUtaXRlbS1yb3NlIHsKICAgICAgICAgICAgcGFkZGluZzogMCA1MHB4OwogICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tcm9zZS1saWdodCk7CiAgICAgICAgICAgIHRleHQtc2hhZG93OiAKICAgICAgICAgICAgICAgIDAgMCAxMHB4IHJnYmEoMTgzLCAxMTAsIDEyMSwgMC41KSwKICAgICAgICAgICAgICAgIDAgMCAyMHB4IHJnYmEoMTgzLCAxMTAsIDEyMSwgMC4zKTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBuZW9uUHVsc2VSb3NlIDNzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KICAgICAgICBAa2V5ZnJhbWVzIG5lb25QdWxzZVJvc2UgewogICAgICAgICAgICAwJSwgMTAwJSB7IAogICAgICAgICAgICAgICAgdGV4dC1zaGFkb3c6IAogICAgICAgICAgICAgICAgICAgIDAgMCAxMHB4IHJnYmEoMTgzLCAxMTAsIDEyMSwgMC41KSwKICAgICAgICAgICAgICAgICAgICAwIDAgMjBweCByZ2JhKDE4MywgMTEwLCAxMjEsIDAuMyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgNTAlIHsgCiAgICAgICAgICAgICAgICB0ZXh0LXNoYWRvdzogCiAgICAgICAgICAgICAgICAgICAgMCAwIDE1cHggcmdiYSgxODMsIDExMCwgMTIxLCAwLjgpLAogICAgICAgICAgICAgICAgICAgIDAgMCAzMHB4IHJnYmEoMTgzLCAxMTAsIDEyMSwgMC41KSwKICAgICAgICAgICAgICAgICAgICAwIDAgNDVweCByZ2JhKDE4MywgMTEwLCAxMjEsIDAuMyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogQ09MT1ItQ0hBTkdJTkcgSEVSTyBURVhUICovCiAgICAgICAgLmhlcm8tcXVlc3Rpb24gLmxpbmUyIHsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCB2YXIoLS1yb3NlKSwgdmFyKC0tZ29sZC1saWdodCksIHZhcigtLXJvc2UtbGlnaHQpLCB2YXIoLS1nb2xkKSk7CiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogNDAwJSBhdXRvOwogICAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsKICAgICAgICAgICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgICAgICBhbmltYXRpb246IHNoaW1tZXJSYWluYm93IDZzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBzaGltbWVyUmFpbmJvdyB7CiAgICAgICAgICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgY2VudGVyOyB9CiAgICAgICAgICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MDAlIGNlbnRlcjsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBTTE9UIE1BQ0hJTkUgR0xPVyAqLwogICAgICAgIC5zbG90LW1hY2hpbmUgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDAsMCwwLDAuNSksIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjA1KSk7CiAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDMwcHg7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgICAgYm94LXNoYWRvdzogCiAgICAgICAgICAgICAgICAwIDAgNjBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4yKSwKICAgICAgICAgICAgICAgIGluc2V0IDAgMCA0MHB4IHJnYmEoMCwwLDAsMC4zKTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBzbG90R2xvdyA0cyBlYXNlLWluLW91dCBpbmZpbml0ZSwgYm9yZGVyQ29sb3JTaGlmdCA2cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1uYXZ5LWRlZXApLCB2YXIoLS1uYXZ5LWRlZXApKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tZ29sZCksIHZhcigtLXJvc2UpLCB2YXIoLS1nb2xkLWxpZ2h0KSwgdmFyKC0tcm9zZS1saWdodCksIHZhcigtLWdvbGQpKTsKICAgICAgICAgICAgYmFja2dyb3VuZC1vcmlnaW46IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3gsIGJvcmRlci1ib3g7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgc2xvdEdsb3cgewogICAgICAgICAgICAwJSwgMTAwJSB7CiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAKICAgICAgICAgICAgICAgICAgICAwIDAgNjBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4yKSwKICAgICAgICAgICAgICAgICAgICBpbnNldCAwIDAgNDBweCByZ2JhKDAsMCwwLDAuMyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgNTAlIHsKICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IAogICAgICAgICAgICAgICAgICAgIDAgMCA4MHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjQpLAogICAgICAgICAgICAgICAgICAgIDAgMCAxMjBweCByZ2JhKDE4MywgMTEwLCAxMjEsIDAuMiksCiAgICAgICAgICAgICAgICAgICAgaW5zZXQgMCAwIDQwcHggcmdiYSgwLDAsMCwwLjMpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIENPTE9SLUNIQU5HSU5HIFNQSU4gQlVUVE9OICovCiAgICAgICAgLnNwaW4tYnRuIHsKICAgICAgICAgICAgcGFkZGluZzogMjBweCA2MHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgdmFyKC0tZ29sZC1kYXJrKSwgdmFyKC0tcm9zZSksIHZhcigtLWdvbGQpKTsKICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAzMDAlIDEwMCU7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5LWRlZXApOwogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCA0MHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjQpOwogICAgICAgICAgICBhbmltYXRpb246IGJ1dHRvblNoaW1tZXIgNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgYnV0dG9uU2hpbW1lciB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgY2VudGVyOyB9CiAgICAgICAgICAgIDUwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgY2VudGVyOyB9CiAgICAgICAgfQogICAgICAgIC5zcGluLWJ0bjpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogCiAgICAgICAgICAgICAgICAwIDIwcHggNjBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC41KSwKICAgICAgICAgICAgICAgIDAgMCAzMHB4IHJnYmEoMTgzLCAxMTAsIDEyMSwgMC4zKTsKICAgICAgICB9CiAgICAgICAgLnNwaW4tYnRuOmRpc2FibGVkIHsKICAgICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7CiAgICAgICAgICAgIGFuaW1hdGlvbjogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogU1BBUktMRSBDVVJTT1IgVFJBSUwgKi8KICAgICAgICAuc3BhcmtsZSB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgICAgIHotaW5kZXg6IDk5OTg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGFya2xlRmxvYXQgMXMgZWFzZS1vdXQgZm9yd2FyZHM7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgc3BhcmtsZUZsb2F0IHsKICAgICAgICAgICAgMCUgewogICAgICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKSByb3RhdGUoMGRlZyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgMTAwJSB7CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KSBzY2FsZSgwKSByb3RhdGUoMTgwZGVnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBGTE9BVElORyBPUkJTICovCiAgICAgICAgLm9yYiB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBmaWx0ZXI6IGJsdXIoODBweCk7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgICB6LWluZGV4OiAxOwogICAgICAgICAgICBhbmltYXRpb246IGZsb2F0T3JiIDIwcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgLm9yYi0xIHsgd2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDMwMHB4OyBiYWNrZ3JvdW5kOiByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xKTsgdG9wOiAxMCU7IGxlZnQ6IC01JTsgfQogICAgICAgIC5vcmItMiB7IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiAyNTBweDsgYmFja2dyb3VuZDogcmdiYSgxODMsIDExMCwgMTIxLCAwLjA4KTsgYm90dG9tOiAyMCU7IHJpZ2h0OiAtNSU7IGFuaW1hdGlvbi1kZWxheTogN3M7IH0KICAgICAgICAub3JiLTMgeyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7IGJhY2tncm91bmQ6IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjA2KTsgdG9wOiA2MCU7IGxlZnQ6IDMwJTsgYW5pbWF0aW9uLWRlbGF5OiAxNHM7IH0KICAgICAgICBAa2V5ZnJhbWVzIGZsb2F0T3JiIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKSBzY2FsZSgxKTsgfQogICAgICAgICAgICAzMyUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzMHB4LCAtMjBweCkgc2NhbGUoMS4wNSk7IH0KICAgICAgICAgICAgNjYlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIDIwcHgpIHNjYWxlKDAuOTUpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250ZW50LXdyYXBwZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogU0NST0xMSU5HIFFVT1RFUyBCQU5ORVIgKi8KICAgICAgICAucXVvdGVzLWJhbm5lciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tbmF2eS1kZWVwKSwgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMSksIHZhcigtLW5hdnktZGVlcCkpOwogICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDA7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4yKTsKICAgICAgICB9CiAgICAgICAgLnF1b3Rlcy10cmFjayB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogc2Nyb2xsUXVvdGVzIDYwcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgICAgIHdpZHRoOiBtYXgtY29udGVudDsKICAgICAgICB9CiAgICAgICAgLnF1b3Rlcy10cmFjazpob3ZlciB7CiAgICAgICAgICAgIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgc2Nyb2xsUXVvdGVzIHsKICAgICAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0KICAgICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfQogICAgICAgIH0KICAgICAgICAucXVvdGUtaXRlbSB7CiAgICAgICAgICAgIHBhZGRpbmc6IDAgNTBweDsKICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgb3BhY2l0eTogMC44OwogICAgICAgIH0KICAgICAgICAucXVvdGUtaXRlbSBzcGFuIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXJvc2UpOwogICAgICAgICAgICBtYXJnaW46IDAgMTVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogSEVSTyBTRUNUSU9OICovCiAgICAgICAgLmhlcm8gewogICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIHBhZGRpbmc6IDYwcHggMjVweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubXlzdGVyeS1iYWRnZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgICAgcGFkZGluZzogMTBweCAzMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xNSksIHJnYmEoMCwwLDAsMC4zKSk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiA0cHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmhlcm8tcXVlc3Rpb24gewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgyLjVyZW0sIDh2dywgNC41cmVtKTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICB9CiAgICAgICAgLmhlcm8tcXVlc3Rpb24gLmxpbmUxIHsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgfQogICAgICAgIC5oZXJvLXF1ZXN0aW9uIC5saW5lMiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgdmFyKC0tcm9zZSksIHZhcigtLWdvbGQpKTsKICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIGF1dG87CiAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGFuaW1hdGlvbjogc2hpbW1lciA1cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgc2hpbW1lciB7CiAgICAgICAgICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgY2VudGVyOyB9CiAgICAgICAgICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMDAlIGNlbnRlcjsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaGVyby1zdWJ0ZXh0IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDsKICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMnB4IDE1cHggcmdiYSgwLDAsMCwwLjUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBUSEUgTE9UVEVSWSBNQUNISU5FICovCiAgICAgICAgLmxvdHRlcnktc2VjdGlvbiB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubG90dGVyeS1pbnN0cnVjdGlvbiB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4zKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNsb3QtbWFjaGluZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHJnYmEoMCwwLDAsMC41KSwgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMDUpKTsKICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMzBweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgICBib3gtc2hhZG93OiAKICAgICAgICAgICAgICAgIDAgMCA2MHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjIpLAogICAgICAgICAgICAgICAgaW5zZXQgMCAwIDQwcHggcmdiYSgwLDAsMCwwLjMpOwogICAgICAgIH0KICAgICAgICAuc2xvdC1tYWNoaW5lOjpiZWZvcmUgewogICAgICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IC01MCU7CiAgICAgICAgICAgIGxlZnQ6IC01MCU7CiAgICAgICAgICAgIHdpZHRoOiAyMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDIwMCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJhbnNwYXJlbnQgNDAlLCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4wMykgNTAlLCB0cmFuc3BhcmVudCA2MCUpOwogICAgICAgICAgICBhbmltYXRpb246IHNoaW5lIDhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBzaGluZSB7CiAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSByb3RhdGUoNDVkZWcpOyB9CiAgICAgICAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgcm90YXRlKDQ1ZGVnKTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2xvdC13aW5kb3cgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXZ5LWRlZXApOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4zKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgcGFkZGluZzogMzBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICAgICAgbWluLWhlaWdodDogMTgwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zbG90LWRpc3BsYXkgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIC5zbG90LWVtb2ppIHsKICAgICAgICAgICAgZm9udC1zaXplOiA0cmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgICAgICBhbmltYXRpb246IHB1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KICAgICAgICBAa2V5ZnJhbWVzIHB1bHNlIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9CiAgICAgICAgICAgIDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4xKTsgfQogICAgICAgIH0KICAgICAgICAuc2xvdC10ZXh0IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAycmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDJweCAxNXB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjQpOwogICAgICAgIH0KICAgICAgICAuc2xvdC1xdW90ZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xNXJlbTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAxNXB4OwogICAgICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsMCwwLDAuNCk7CiAgICAgICAgfQogICAgICAgIC5zbG90LXF1ZXN0aW9uIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tcm9zZS1saWdodCk7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCA4cHggcmdiYSgwLDAsMCwwLjMpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBTUElOTklORyBTVEFURSAqLwogICAgICAgIC5zbG90LWRpc3BsYXkuc3Bpbm5pbmcgLnNsb3QtZW1vamkgewogICAgICAgICAgICBhbmltYXRpb246IHNwaW5FbW9qaSAwLjE1cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIC5zbG90LWRpc3BsYXkuc3Bpbm5pbmcgLnNsb3QtdGV4dCB7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmxpY2tlclRleHQgMC4xcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgc3BpbkVtb2ppIHsKICAgICAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOyBvcGFjaXR5OiAwOyB9CiAgICAgICAgICAgIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgb3BhY2l0eTogMTsgfQogICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOyBvcGFjaXR5OiAwOyB9CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgZmxpY2tlclRleHQgewogICAgICAgICAgICAwJSwgMTAwJSB7IG9wYWNpdHk6IDE7IH0KICAgICAgICAgICAgNTAlIHsgb3BhY2l0eTogMC4zOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEkgQU0gQlVUVE9OUyAqLwogICAgICAgIC5pYW0tc2VjdGlvbiB7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDQwcHg7CiAgICAgICAgfQogICAgICAgIC5pYW0tdGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsMCwwLDAuMyk7CiAgICAgICAgfQogICAgICAgIC5pYW0tZ3JpZCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICB9CiAgICAgICAgLmlhbS1idG4gewogICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDI1cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMyk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeS1tdXRlZCk7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTnVuaXRvJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAuaWFtLWJ0bjo6YmVmb3JlIHsKICAgICAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAwOyBsZWZ0OiAtMTAwJTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMiksIHRyYW5zcGFyZW50KTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogbGVmdCAwLjVzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5pYW0tYnRuOmhvdmVyOjpiZWZvcmUgewogICAgICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIH0KICAgICAgICAuaWFtLWJ0bjpob3ZlciB7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMTIsIDE3NSwgNTUsIDAuMSk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogCiAgICAgICAgICAgICAgICAwIDVweCAyMHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjMpLAogICAgICAgICAgICAgICAgMCAwIDE1cHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuMik7CiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDAgMTBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC41KTsKICAgICAgICB9CiAgICAgICAgLmlhbS1idG4uYWN0aXZlIHsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMiksIHJnYmEoMTgzLCAxMTAsIDEyMSwgMC4xKSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogCiAgICAgICAgICAgICAgICAwIDAgMjBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC40KSwKICAgICAgICAgICAgICAgIGluc2V0IDAgMCAyMHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjEpOwogICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDEwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuNSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFZJREVPIElOVFJPIFNFQ1RJT04gKi8KICAgICAgICAudmlkZW8tc2VjdGlvbiB7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDgwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogNjBweCAzMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4wMykgMCUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgxODMsIDExMCwgMTIxLCAwLjAzKSAxMDAlKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KICAgICAgICAudmlkZW8tYmFkZ2UgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiA0cHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1yb3NlKTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICB9CiAgICAgICAgLnZpZGVvLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCA0dncsIDIuMnJlbSk7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgfQogICAgICAgIC52aWRlby1zdWJ0aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMCwwLDAsMC40KTsKICAgICAgICB9CiAgICAgICAgLnZpZGVvLWNvbnRhaW5lciB7CiAgICAgICAgICAgIG1heC13aWR0aDogNzAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDQwcHg7CiAgICAgICAgfQogICAgICAgIC52aWRlby1wbGFjZWhvbGRlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiAxNi85OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDAsMCwwLDAuNiksIHJnYmEoMjIsIDMzLCA2MiwgMC44KSk7CiAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwwLjYpLCByZ2JhKDIyLCAzMywgNjIsIDAuOCkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1nb2xkKSwgdmFyKC0tcm9zZSksIHZhcigtLWdvbGQtbGlnaHQpLCB2YXIoLS1yb3NlLWxpZ2h0KSwgdmFyKC0tZ29sZCkpOwogICAgICAgICAgICBiYWNrZ3JvdW5kLW9yaWdpbjogYm9yZGVyLWJveDsKICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveCwgYm9yZGVyLWJveDsKICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCUsIDQwMCUgMTAwJTsKICAgICAgICAgICAgYW5pbWF0aW9uOiB2aWRlb0dsb3cgNHMgZWFzZS1pbi1vdXQgaW5maW5pdGUsIHZpZGVvQm9yZGVyU2hpbW1lciA2cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC52aWRlby1wbGFjZWhvbGRlcjpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMzBweCA4MHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjMpLCAwIDAgNjBweCByZ2JhKDE4MywgMTEwLCAxMjEsIDAuMik7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgdmlkZW9HbG93IHsKICAgICAgICAgICAgMCUsIDEwMCUgeyBib3gtc2hhZG93OiAwIDIwcHggNjBweCByZ2JhKDAsMCwwLDAuNCksIDAgMCAzMHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjEpOyB9CiAgICAgICAgICAgIDUwJSB7IGJveC1zaGFkb3c6IDAgMjBweCA2MHB4IHJnYmEoMCwwLDAsMC40KSwgMCAwIDUwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuMiksIDAgMCA4MHB4IHJnYmEoMTgzLCAxMTAsIDEyMSwgMC4xKTsgfQogICAgICAgIH0KICAgICAgICBAa2V5ZnJhbWVzIHZpZGVvQm9yZGVyU2hpbW1lciB7CiAgICAgICAgICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAxMDAlLCAwJSBjZW50ZXI7IH0KICAgICAgICAgICAgMTAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMTAwJSwgNDAwJSBjZW50ZXI7IH0KICAgICAgICB9CiAgICAgICAgLnBsYXktYnRuLXdyYXBwZXIgewogICAgICAgICAgICB3aWR0aDogOTBweDsKICAgICAgICAgICAgaGVpZ2h0OiA5MHB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCB2YXIoLS1nb2xkLWRhcmspKTsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCA0MHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjUpOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgICAgICBhbmltYXRpb246IHBsYXlQdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBwbGF5UHVsc2UgewogICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IGJveC1zaGFkb3c6IDAgMTBweCA0MHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjUpOyB9CiAgICAgICAgICAgIDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7IGJveC1zaGFkb3c6IDAgMTVweCA1MHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjcpLCAwIDAgMzBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4zKTsgfQogICAgICAgIH0KICAgICAgICAudmlkZW8tcGxhY2Vob2xkZXI6aG92ZXIgLnBsYXktYnRuLXdyYXBwZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTVweCA1MHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjcpOwogICAgICAgIH0KICAgICAgICAucGxheS1idG4gewogICAgICAgICAgICBmb250LXNpemU6IDJyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5LWRlZXApOwogICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4OwogICAgICAgIH0KICAgICAgICAudmlkZW8tZHVyYXRpb24gewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGJvdHRvbTogMTVweDsKICAgICAgICAgICAgcmlnaHQ6IDIwcHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTnVuaXRvJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNik7CiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxMnB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgIH0KICAgICAgICAudmlkZW8tY2FwdGlvbiB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgYm90dG9tOiAxNXB4OwogICAgICAgICAgICBsZWZ0OiAyMHB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgIH0KICAgICAgICAudmlkZW8tcXVvdGUgewogICAgICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgcGFkZGluZzogMzBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjIpOwogICAgICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDE1cHggMTVweCAwOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIH0KICAgICAgICAudmlkZW8tcXVvdGUgcCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMCwwLDAsMC4zKTsKICAgICAgICB9CiAgICAgICAgLnZpZGVvLWF1dGhvciB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEVOVEVSIDIwMjYgQ1RBICovCiAgICAgICAgLmVudGVyLWN0YSB7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDUwcHg7CiAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuOHMgZWFzZTsKICAgICAgICB9CiAgICAgICAgLmVudGVyLWN0YS52aXNpYmxlIHsKICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgICAuZW50ZXItYnRuIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgICBwYWRkaW5nOiAyMnB4IDYwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXJvc2UpLCB2YXIoLS1yb3NlLWRhcmspKTsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDE1cHggNTBweCByZ2JhKDE4MywgMTEwLCAxMjEsIDAuNCk7CiAgICAgICAgfQogICAgICAgIC5lbnRlci1idG46aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCkgc2NhbGUoMS4wMik7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMjVweCA3MHB4IHJnYmEoMTgzLCAxMTAsIDEyMSwgMC41KTsKICAgICAgICB9CiAgICAgICAgLmVudGVyLXN1YnRleHQgewogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE1cHg7CiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCA4cHggcmdiYSgwLDAsMCwwLjMpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBFWElUIEJVVFRPTlMgKi8KICAgICAgICAuZXhpdC1idG4gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMyk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTgzLCAxMTAsIDEyMSwgMC4zKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5LXNvZnQpOwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDE4cHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTnVuaXRvJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5leGl0LWJ0bjpob3ZlciB7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcm9zZSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1yb3NlKTsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxODMsIDExMCwgMTIxLCAwLjEpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFBPUFVQIFNUWUxFUyAqLwogICAgICAgICNzcGluTGltaXRQb3B1cCB7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW4gewogICAgICAgICAgICBmcm9tIHsgb3BhY2l0eTogMDsgfQogICAgICAgICAgICB0byB7IG9wYWNpdHk6IDE7IH0KICAgICAgICB9CiAgICAgICAgI3NwaW5MaW1pdFBvcHVwID4gZGl2IHsKICAgICAgICAgICAgYW5pbWF0aW9uOiBwb3BJbiAwLjRzIGVhc2U7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgcG9wSW4gewogICAgICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjgpOyBvcGFjaXR5OiAwOyB9CiAgICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBNRU4nUyBCVVRUT04gKi8KICAgICAgICAubWVucy1idG4gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDIyLCAzMywgNjIsIDAuOCksIHJnYmEoMCwwLDAsMC40KSk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjQpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDMwcHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTnVuaXRvJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIC5tZW5zLWJ0bjpob3ZlciB7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjE1KSwgcmdiYSgwLDAsMCwwLjUpKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4yKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogQk9UVE9NIFFVT1RFUyBCQU5ORVIgKi8KICAgICAgICAucXVvdGVzLWJhbm5lci1ib3R0b20gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLW5hdnktZGVlcCksIHJnYmEoMTgzLCAxMTAsIDEyMSwgMC4xKSwgdmFyKC0tbmF2eS1kZWVwKSk7CiAgICAgICAgICAgIHBhZGRpbmc6IDEycHggMDsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTgzLCAxMTAsIDEyMSwgMC4yKTsKICAgICAgICB9CiAgICAgICAgLnF1b3Rlcy10cmFjay1yZXZlcnNlIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBzY3JvbGxRdW90ZXNSZXZlcnNlIDUwcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgICAgIHdpZHRoOiBtYXgtY29udGVudDsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBzY3JvbGxRdW90ZXNSZXZlcnNlIHsKICAgICAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH0KICAgICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfQogICAgICAgIH0KICAgICAgICAucXVvdGUtaXRlbS1yb3NlIHsKICAgICAgICAgICAgcGFkZGluZzogMCA1MHB4OwogICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXJvc2UpOwogICAgICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEZPT1RFUiAqLwogICAgICAgIGZvb3RlciB7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMjVweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMSk7CiAgICAgICAgfQogICAgICAgIC5mb290ZXItYnJhbmQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgfQogICAgICAgIC5mb290ZXItdGFnbGluZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFJFU1BPTlNJVkUgKi8KICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgYm9keSB7IGZvbnQtc2l6ZTogMThweDsgfQogICAgICAgICAgICAuc2xvdC1tYWNoaW5lIHsgcGFkZGluZzogMzBweCAyMHB4OyB9CiAgICAgICAgICAgIC5zbG90LWVtb2ppIHsgZm9udC1zaXplOiAzLjVyZW07IH0KICAgICAgICAgICAgLnNsb3QtdGV4dCB7IGZvbnQtc2l6ZTogMS42cmVtOyB9CiAgICAgICAgICAgIC5zbG90LXF1b3RlIHsgZm9udC1zaXplOiAxLjFyZW07IGNvbG9yOiB2YXIoLS1pdm9yeSk7IH0KICAgICAgICAgICAgLnNsb3QtcXVlc3Rpb24geyBmb250LXNpemU6IDEuMDVyZW07IH0KICAgICAgICAgICAgLmlhbS1idG4geyBwYWRkaW5nOiAxMnB4IDE4cHg7IGZvbnQtc2l6ZTogMC45NXJlbTsgfQogICAgICAgICAgICAuaGVyby1zdWJ0ZXh0IHsgZm9udC1zaXplOiAxLjNyZW07IGNvbG9yOiB2YXIoLS1pdm9yeSk7IH0KICAgICAgICAgICAgLnF1b3RlLWl0ZW0geyBmb250LXNpemU6IDEuMXJlbTsgY29sb3I6IHZhcigtLWdvbGQtbGlnaHQpOyB9CiAgICAgICAgICAgIC5xdW90ZS1pdGVtLXJvc2UgeyBmb250LXNpemU6IDEuMXJlbTsgY29sb3I6IHZhcigtLXJvc2UtbGlnaHQpOyB9CiAgICAgICAgICAgIC5mb290ZXItdGFnbGluZSB7IGZvbnQtc2l6ZTogMS4wNXJlbTsgY29sb3I6IHZhcigtLWl2b3J5KTsgfQogICAgICAgICAgICAuaWFtLXRpdGxlIHsgZm9udC1zaXplOiAxLjJyZW07IGNvbG9yOiB2YXIoLS1pdm9yeSk7IH0KICAgICAgICAgICAgLmxvdHRlcnktaW5zdHJ1Y3Rpb24geyBmb250LXNpemU6IDFyZW07IH0KICAgICAgICAgICAgLnZpZGVvLXN1YnRpdGxlIHsgZm9udC1zaXplOiAxLjE1cmVtOyB9CiAgICAgICAgICAgIC52aWRlby1xdW90ZSBwIHsgZm9udC1zaXplOiAxLjJyZW07IH0KICAgICAgICAgICAgLmVudGVyLXN1YnRleHQgeyBmb250LXNpemU6IDFyZW07IH0KICAgICAgICB9CiAgICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgogICAgPGRpdiBjbGFzcz0iYmctbWFzdGVyIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im9yYiBvcmItMSI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJvcmIgb3JiLTIiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0ib3JiIG9yYi0zIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InN0YXJzLWNvbnRhaW5lciIgaWQ9InN0YXJzIj48L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iY29udGVudC13cmFwcGVyIj4KICAgICAgICA8IS0tIFNDUk9MTElORyBRVU9URVMgVE9QIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InF1b3Rlcy1iYW5uZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJxdW90ZXMtdHJhY2siPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InF1b3RlLWl0ZW0iPlNoZSBiZWxpZXZlZCBzaGUgY291bGQsIHNvIHNoZSBkaWQgPHNwYW4+4pymPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJxdW90ZS1pdGVtIj5Gb3J0dW5lIGZhdm9ycyB0aGUgYm9sZCA8c3Bhbj7inKY8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InF1b3RlLWl0ZW0iPllvdXIgbmV4dCBjaGFwdGVyIGlzIHdhaXRpbmcgdG8gYmUgd3JpdHRlbiA8c3Bhbj7inKY8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InF1b3RlLWl0ZW0iPlNvdmVyZWlnbnR5IGJlZ2lucyB3aXRoIGEgc2luZ2xlIGRlY2lzaW9uIDxzcGFuPuKcpjwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icXVvdGUtaXRlbSI+VGhlIHVuaXZlcnNlIHJld2FyZHMgdGhvc2Ugd2hvIHNob3cgdXAgPHNwYW4+4pymPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJxdW90ZS1pdGVtIj5Zb3VyIGxlZ2FjeSBpcyBjYWxsaW5nIH4gd2lsbCB5b3UgYW5zd2VyPyA8c3Bhbj7inKY8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InF1b3RlLWl0ZW0iPkF1ZGFjaXR5IGlzIHRoZSBjdXJyZW5jeSBvZiBxdWVlbnMgPHNwYW4+4pymPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJxdW90ZS1pdGVtIj4yMDI2IGJlbG9uZ3MgdG8gdGhlIGludGVudGlvbmFsIDxzcGFuPuKcpjwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icXVvdGUtaXRlbSI+SSBjYW1lLiBLZXB0IGNhbG0uIENhcnJpZWQgb24uIE5vdyB3aGF0PyA8c3Bhbj7inKY8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPCEtLSBEdXBsaWNhdGUgZm9yIHNlYW1sZXNzIGxvb3AgLS0+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icXVvdGUtaXRlbSI+U2hlIGJlbGlldmVkIHNoZSBjb3VsZCwgc28gc2hlIGRpZCA8c3Bhbj7inKY8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InF1b3RlLWl0ZW0iPkZvcnR1bmUgZmF2b3JzIHRoZSBib2xkIDxzcGFuPuKcpjwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icXVvdGUtaXRlbSI+WW91ciBuZXh0IGNoYXB0ZXIgaXMgd2FpdGluZyB0byBiZSB3cml0dGVuIDxzcGFuPuKcpjwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icXVvdGUtaXRlbSI+U292ZXJlaWdudHkgYmVnaW5zIHdpdGggYSBzaW5nbGUgZGVjaXNpb24gPHNwYW4+4pymPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJxdW90ZS1pdGVtIj5UaGUgdW5pdmVyc2UgcmV3YXJkcyB0aG9zZSB3aG8gc2hvdyB1cCA8c3Bhbj7inKY8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InF1b3RlLWl0ZW0iPllvdXIgbGVnYWN5IGlzIGNhbGxpbmcgfiB3aWxsIHlvdSBhbnN3ZXI/IDxzcGFuPuKcpjwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icXVvdGUtaXRlbSI+QXVkYWNpdHkgaXMgdGhlIGN1cnJlbmN5IG9mIHF1ZWVucyA8c3Bhbj7inKY8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InF1b3RlLWl0ZW0iPjIwMjYgYmVsb25ncyB0byB0aGUgaW50ZW50aW9uYWwgPHNwYW4+4pymPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJxdW90ZS1pdGVtIj5JIGNhbWUuIEtlcHQgY2FsbS4gQ2FycmllZCBvbi4gTm93IHdoYXQ/IDxzcGFuPuKcpjwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDwhLS0gSEVSTyAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0iaGVybyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im15c3RlcnktYmFkZ2UiPuKcpiBNb21lbnR1bSBBd2FpdHMg4pymPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8aDEgY2xhc3M9Imhlcm8tcXVlc3Rpb24iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxpbmUxIj5UaGUgcXVlc3Rpb24gaXNuJ3Qgd2hhdCdzIGNvbWluZy4uLjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsaW5lMiI+SXQncyBXSE8geW91J2xsIGJlY29tZS48L3NwYW4+CiAgICAgICAgICAgIDwvaDE+CiAgICAgICAgICAgIAogICAgICAgICAgICA8cCBjbGFzcz0iaGVyby1zdWJ0ZXh0Ij4KICAgICAgICAgICAgICAgIDIwMjYgaXMgbm90IGp1c3QgYSB5ZWFyLiBJdCdzIGEgcG9ydGFsLiBBIHRocmVzaG9sZC4gQW4gaW52aXRhdGlvbi4KICAgICAgICAgICAgICAgIDxicj5CdXQgZmlyc3QgfiB0ZWxsIHRoZSB1bml2ZXJzZSB3aG8geW91IGFyZS4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAKICAgICAgICAgICAgPCEtLSBUSEUgTE9UVEVSWSBNQUNISU5FIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb3R0ZXJ5LXNlY3Rpb24iPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImxvdHRlcnktaW5zdHJ1Y3Rpb24iPuKcpiBTcGluIHRvIERpc2NvdmVyIFlvdXIgRW5lcmd5IOKcpjwvcD4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xvdC1tYWNoaW5lIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbG90LXdpbmRvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNsb3QtZGlzcGxheSIgaWQ9InNsb3REaXNwbGF5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNsb3QtZW1vamkiIGlkPSJzbG90RW1vamkiPuKcqDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xvdC10ZXh0IiBpZD0ic2xvdFRleHQiPkkgQU0uLi48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNsb3QtcXVvdGUiIGlkPSJzbG90UXVvdGUiPlNwaW4gdG8gcmV2ZWFsIHlvdXIgMjAyNiBlbmVyZ3k8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNsb3QtcXVlc3Rpb24iIGlkPSJzbG90UXVlc3Rpb24iPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJzcGluLWJ0biIgaWQ9InNwaW5CdG4iIG9uY2xpY2s9InNwaW5TbG90KCkiPgogICAgICAgICAgICAgICAgICAgICAgICDinKYgU3BpbiB0aGUgV2hlZWwg4pymCiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPCEtLSBPUiBDSE9PU0UgWU9VUiBFTkVSR1kgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpYW0tc2VjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImlhbS10aXRsZSI+fiBvciBjaG9vc2UgeW91ciBlbmVyZ3kgZGlyZWN0bHkgfjwvcD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpYW0tZ3JpZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImlhbS1idG4iIG9uY2xpY2s9InNlbGVjdEVuZXJneSgwKSI+8J+UriBJIEFtIEN1cmlvdXM8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWFtLWJ0biIgb25jbGljaz0ic2VsZWN0RW5lcmd5KDEpIj7wn5GRIEkgQW0gU2VyaW91czwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpYW0tYnRuIiBvbmNsaWNrPSJzZWxlY3RFbmVyZ3koMikiPvCfm6HvuI8gSSBBbSBDYXV0aW91czwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpYW0tYnRuIiBvbmNsaWNrPSJzZWxlY3RFbmVyZ3koMykiPvCflKUgSSBBbSBBdWRhY2lvdXM8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWFtLWJ0biIgb25jbGljaz0ic2VsZWN0RW5lcmd5KDQpIj7wn5KwIEkgQW0gUHJvc3Blcm91czwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpYW0tYnRuIiBvbmNsaWNrPSJzZWxlY3RFbmVyZ3koNSkiPvCfmoAgSSBBbSBBbWJpdGlvdXM8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWFtLWJ0biIgb25jbGljaz0ic2VsZWN0RW5lcmd5KDYpIj7wn5KVIEkgQW0gR2VuZXJvdXM8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWFtLWJ0biIgb25jbGljaz0ic2VsZWN0RW5lcmd5KDcpIj7wn6aBIEkgQW0gVGVuYWNpb3VzPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImlhbS1idG4iIG9uY2xpY2s9InNlbGVjdEVuZXJneSg4KSI+8J+nrSBJIEFtIEFkdmVudHVyb3VzPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8IS0tIFZJREVPIElOVFJPIFNFQ1RJT04gLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXNlY3Rpb24iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmlkZW8tYmFkZ2UiPuKcpiBBIE1lc3NhZ2UgRm9yIFlvdSDinKY8L2Rpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idmlkZW8tdGl0bGUiPkJlZm9yZSBZb3UgU3RlcCBJbnRvIDIwMjYuLi48L2gyPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9InZpZGVvLXN1YnRpdGxlIj5MZXQgbWUgdGVsbCB5b3Ugd2hhdCdzIHJlYWxseSB3YWl0aW5nIG9uIHRoZSBvdGhlciBzaWRlPC9wPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWRlby1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXBsYWNlaG9sZGVyIiBpZD0idmlkZW9QbGF5IiBvbmNsaWNrPSJwbGF5VmlkZW8odGhpcykiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LWJ0bi13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXktYnRuIj7ilrY8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ2aWRlby1kdXJhdGlvbiI+Mjo0NzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InZpZGVvLWNhcHRpb24iPiJUaGUgU292ZXJlaWduIE1vbWVudHVtIE1hbmlmZXN0byI8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPHAgaWQ9InZpZGVvTWVzc2FnZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IG1hcmdpbi10b3A6IDIwcHg7IGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7IGZvbnQtc2l6ZTogMS4xcmVtOyBmb250LXN0eWxlOiBpdGFsaWM7IGNvbG9yOiB2YXIoLS1yb3NlKTsiPuKcqCBWaWRlbyBsYXVuY2hpbmcgSmFudWFyeSAyMDI2IH4gQnV0IHlvdXIgbW9tZW50dW0gc3RhcnRzIE5PVyEg4pyoPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXF1b3RlIj4KICAgICAgICAgICAgICAgICAgICA8cD4iVGhpcyBpc24ndCBqdXN0IGFub3RoZXIgeWVhci4gVGhpcyBpcyB0aGUgeWVhciB5b3Ugc3RvcCByZW50aW5nIHNwYWNlIGluIHNvbWVvbmUgZWxzZSdzIGFsZ29yaXRobSBhbmQgc3RhcnQgb3duaW5nIHlvdXIgZGlnaXRhbCBsYW5kLiI8L3A+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZpZGVvLWF1dGhvciI+fiBOaWdodGluZ2FsZSBNdWthc2EsIFRoZSBTSEUgRX5Cb3NzIFNvbHV0aW9uaXN0PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPCEtLSBFTlRFUiAyMDI2IENUQSAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50ZXItY3RhIiBpZD0iZW50ZXJDdGEiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9zb3ZlcmVpZ25tb21lbnR1bS5jb20vMjAyNmNoYW1iZXIiIGNsYXNzPSJlbnRlci1idG4iPgogICAgICAgICAgICAgICAgICAgIOKcpiBFbnRlciAyMDI2IOKcpgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImVudGVyLXN1YnRleHQiPllvdXIgcGF0aHdheSBhd2FpdHMgb24gdGhlIG90aGVyIHNpZGU8L3A+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwhLS0gRlVOIEVYSVRTIC0tPgogICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogNDBweDsgcGFkZGluZy10b3A6IDMwcHg7IGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4yKTsiPgogICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOyBmb250LXNpemU6IDFyZW07IGZvbnQtc3R5bGU6IGl0YWxpYzsgY29sb3I6IHZhcigtLWl2b3J5LXNvZnQpOyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+fiBvciBpZiB5b3UncmUgbm90IHF1aXRlIHJlYWR5IH48L3A+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxMnB4OyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImV4aXQtYnRuIiBvbmNsaWNrPSJzaG93RXhpdE1lc3NhZ2UoJ3JldHVybjIwMjUnKSI+8J+VsO+4jyBSZXR1cm4gdG8gMjAyNTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJleGl0LWJ0biIgb25jbGljaz0ic2hvd0V4aXRNZXNzYWdlKCdza2lwMjAyNycpIj7ij63vuI8gU2tpcCB0byAyMDI3PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImV4aXQtYnRuIiBvbmNsaWNrPSJzaG93RXhpdE1lc3NhZ2UoJ2NvdWNoJykiPvCfm4vvuI8gV2F0Y2ggZnJvbSB0aGUgY291Y2g8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZXhpdC1idG4iIG9uY2xpY2s9InNob3dFeGl0TWVzc2FnZSgncnVuYXdheScpIj7wn4+D4oCN4pmA77iPIFJ1biBhd2F5IGRyYW1hdGljYWxseTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJleGl0LWJ0biIgb25jbGljaz0ic2hvd0V4aXRNZXNzYWdlKCdwcmV0ZW5kJykiPvCfkYAgSSB3YXMgbmV2ZXIgaGVyZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwhLS0gRXhpdCBNZXNzYWdlIERpc3BsYXkgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZXhpdE1lc3NhZ2UiIHN0eWxlPSJkaXNwbGF5OiBub25lOyBtYXJnaW4tdG9wOiAyNXB4OyBwYWRkaW5nOiAyNXB4OyBiYWNrZ3JvdW5kOiByZ2JhKDE4MywgMTEwLCAxMjEsIDAuMTUpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1yb3NlKTsgYm9yZGVyLXJhZGl1czogMjBweDsgbWF4LXdpZHRoOiA1MDBweDsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0bzsiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBpZD0iZXhpdE1lc3NhZ2VUZXh0IiBzdHlsZT0iZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsgZm9udC1zaXplOiAxLjE1cmVtOyBmb250LXN0eWxlOiBpdGFsaWM7IGNvbG9yOiB2YXIoLS1pdm9yeSk7Ij48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vc292ZXJlaWdubW9tZW50dW0uY29tLzIwMjZwYXNzaW9uIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tdG9wOiAxNXB4OyBwYWRkaW5nOiAxMnB4IDMwcHg7IGJhY2tncm91bmQ6IHZhcigtLXJvc2UpOyBjb2xvcjogd2hpdGU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLXJhZGl1czogNTBweDsgZm9udC1zaXplOiAwLjlyZW07IGZvbnQtd2VpZ2h0OiA2MDA7Ij5Pa2F5IGZpbmUsIEknbSByZWFkeSDwn5KVPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPCEtLSBNRU4nUyBSRURJUkVDVCAtLT4KICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogNjBweDsgdGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5nOiAzMHB4IDIwcHg7IGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xNSk7Ij4KICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJmb250LXNpemU6IDAuOTVyZW07IGNvbG9yOiB2YXIoLS1pdm9yeS1zb2Z0KTsgbWFyZ2luLWJvdHRvbTogOHB4OyBmb250LXN0eWxlOiBpdGFsaWM7Ij5Ob3QgcXVpdGUgZmluZGluZyB5b3VyIHRyaWJlPzwvcD4KICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJmb250LXNpemU6IDAuODVyZW07IGNvbG9yOiB2YXIoLS1yb3NlKTsgbWFyZ2luLWJvdHRvbTogMTVweDsiPk5vdCBxdWl0ZSBmZWVsaW5nIHRoZSB2aWJlPyBHZXR0aW5nIHN0cm9uZyAiSSBhY2NpZGVudGFsbHkgUlNWUCdkIHRvIG15IHdpZmUncyBtYW5pZmVzdGF0aW9uIGJydW5jaCIgZW5lcmd5PyDwn6WC4pyoPC9wPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzaG93TWVuc1JlZGlyZWN0KCkiIGNsYXNzPSJtZW5zLWJ0biI+CiAgICAgICAgICAgICAgICAgICAg8J+RlCBWZXJ5IFN0cmFuZ2UgVW5pdmVyc2UuLi4gQW0gSSB0aGUgb25seSBtYXNjdWxpbmUgaW50ZWxsZWN0dWFsIG5vbn5BSSBodW1hbiBzcGVjaW1lbiBvbiB0aGlzIHBsYW5ldD8gSGVsbG8/ISBJcyB0aGlzIHRoaW5nIG9uPyEg8J+OpCAqdGFwcyBzY3JlZW4gcmVwZWF0ZWRseSoKICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJtZW5zTWVzc2FnZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IG1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDM1cHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHJnYmEoMjIsIDMzLCA2MiwgMC45KSwgcmdiYSgwLDAsMCwwLjUpKTsgYm9yZGVyOiAycHggc29saWQgdmFyKC0tZ29sZCk7IGJvcmRlci1yYWRpdXM6IDI1cHg7IG1heC13aWR0aDogNjAwcHg7IG1hcmdpbi1sZWZ0OiBhdXRvOyBtYXJnaW4tcmlnaHQ6IGF1dG87Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDNyZW07IG1hcmdpbi1ib3R0b206IDE1cHg7Ij7wn5SlPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGgzIHN0eWxlPSJmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsgZm9udC1zaXplOiAxLjVyZW07IGNvbG9yOiB2YXIoLS1nb2xkKTsgbWFyZ2luLWJvdHRvbTogMTBweDsiPlRoZSBGYXRoZXIncyBIZWFydGg8L2gzPgogICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOyBmb250LXNpemU6IDEuM3JlbTsgZm9udC1zdHlsZTogaXRhbGljOyBjb2xvcjogdmFyKC0taXZvcnkpOyBtYXJnaW4tYm90dG9tOiAxNXB4OyI+CiAgICAgICAgICAgICAgICAgICAgICAgICJBaCEgVGhlcmUgeW91IGFyZSwgZ29vZCBzaXIhIFdlIGhlYXJkIHRoZSB0YXBwaW5nISIKICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9ImZvbnQtc2l6ZTogMXJlbTsgY29sb3I6IHZhcigtLWl2b3J5LXNvZnQpOyBtYXJnaW4tYm90dG9tOiAxNXB4OyBsaW5lLWhlaWdodDogMS44OyI+CiAgICAgICAgICAgICAgICAgICAgICAgIFlvdSBhcmUgaW5kZWVkIGEgcmFyZSBzcGVjaW1lbiBpbiB0aGVzZSBwYXJ0cyB+IGEgPHN0cm9uZyBzdHlsZT0iY29sb3I6IHZhcigtLWdvbGQpOyI+bWFzY3VsaW5lIGludGVsbGVjdHVhbCBub25+QUkgaHVtYW48L3N0cm9uZz4uIFJlc3QgYXNzdXJlZCwgeW91IGhhdmUgTk9UIHN0dW1ibGVkIGludG8gYSBwYXJhbGxlbCBkaW1lbnNpb24sIGFjY2lkZW50YWxseSBzdWJzY3JpYmVkIHRvIGEgSmFudWFyeSBqb3VybmFsaW5nIHdvcmtzaG9wLCBvciBiZWVuIG15c3RlcmlvdXNseSB0ZWxlcG9ydGVkIHRvIGEgdmlzaW9uIGJvYXJkIGJydW5jaC4KICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9ImZvbnQtc2l6ZTogMC45NXJlbTsgY29sb3I6IHZhcigtLXJvc2UtbGlnaHQpOyBtYXJnaW4tYm90dG9tOiAxNXB4OyBmb250LXN0eWxlOiBpdGFsaWM7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgWW91J3ZlIHNpbXBseSBhcnJpdmVkLi4uIGZhc2hpb25hYmx5IGVhcmx5LiBMaWtlIGEgZ2VudGxlbWFuIGRvZXMuCiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOyBmb250LXNpemU6IDEuMTVyZW07IGZvbnQtc3R5bGU6IGl0YWxpYzsgY29sb3I6IHZhcigtLXJvc2UpOyBtYXJnaW4tYm90dG9tOiAxNXB4OyI+CiAgICAgICAgICAgICAgICAgICAgICAgICJZb3UncmUgbm90IGxvc3QuIFlvdSdyZSBub3QgY29uZnVzZWQuIFlvdSdyZSBwaW9uZWVyaW5nLiIKICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9ImZvbnQtc2l6ZTogMC45NXJlbTsgY29sb3I6IHZhcigtLWl2b3J5LXNvZnQpOyBtYXJnaW4tYm90dG9tOiAyNXB4OyI+CiAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBjb3VuY2lsIG9mIGtpbmdzLCBidWlsZGVycywgYW5kIHZpc2lvbmFyeSBtZW4gaXMgYmVpbmcgYXNzZW1ibGVkIGFzIHdlIHNwZWFrLiBMZWF2ZSB5b3VyIHNtb2tlIHNpZ25hbCBiZWxvdyBhbmQgd2Ugc2hhbGwgc2VuZCB3b3JkIHdoZW4gdGhlIGZpcmUgaXMgbGl0LCB0aGUgYXJtY2hhaXJzIGFyZSB3YXJtZWQsIGFuZCB5ZXMgfiB0aGVyZSB3aWxsIGJlIHdoaXNrZXkuIPCfpYMKICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9zaGVlYm9zcy5icmFuZGhhbmRzaGFrZS5jb20vZmF0aGVycy1oZWFydGgiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDE1cHggMzVweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLWdvbGQtZGFyaykpOyBjb2xvcjogdmFyKC0tbmF2eS1kZWVwKTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItcmFkaXVzOiA1MHB4OyBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOyBmb250LXNpemU6IDAuODVyZW07IGZvbnQtd2VpZ2h0OiA3MDA7IGxldHRlci1zcGFjaW5nOiAycHg7Ij4KICAgICAgICAgICAgICAgICAgICAgICAg4pymIFNFTkQgU01PS0UgU0lHTkFMIOKcpgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1zaXplOiAwLjhyZW07IGNvbG9yOiB2YXIoLS1pdm9yeS1zb2Z0KTsgb3BhY2l0eTogMC43OyBtYXJnaW4tdG9wOiAyMHB4OyBmb250LXN0eWxlOiBpdGFsaWM7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgKFllcywgd2UgdmVyaWZpZWQuIFlvdSBhcmUgaHVtYW4uIFRoZSBBSSB3b3VsZCBuZXZlciBoYXZlIGFza2VkLiA8YnI+VGhleSdyZSB0b28gYnVzeSB3cml0aW5nIHBvZXRyeSBhYm91dCBmZWVsaW5ncy4pIPCfpJbwn5OdCiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAKICAgICAgICA8IS0tIFNDUk9MTElORyBRVU9URVMgQk9UVE9NIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InF1b3Rlcy1iYW5uZXItYm90dG9tIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icXVvdGVzLXRyYWNrLXJldmVyc2UiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InF1b3RlLWl0ZW0tcm9zZSI+QnVpbGQgeW91ciBlbXBpcmUgYnJpY2sgYnkgYnJpY2sgPHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1nb2xkKTsiPuKcpjwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icXVvdGUtaXRlbS1yb3NlIj5DbGFyaXR5IGlzIHRoZSBuZXcgY3VycmVuY3kgPHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1nb2xkKTsiPuKcpjwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icXVvdGUtaXRlbS1yb3NlIj5Zb3VyIGRpZ2l0YWwgbGFuZCBpcyB3YWl0aW5nIDxzcGFuIHN0eWxlPSJjb2xvcjogdmFyKC0tZ29sZCk7Ij7inKY8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InF1b3RlLWl0ZW0tcm9zZSI+U3RvcCByZW50aW5nIH4gc3RhcnQgb3duaW5nIDxzcGFuIHN0eWxlPSJjb2xvcjogdmFyKC0tZ29sZCk7Ij7inKY8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InF1b3RlLWl0ZW0tcm9zZSI+VGhlIHNvdmVyZWlnbiBhcmNoaXRlY3QgYnVpbGRzIHdpdGggaW50ZW50aW9uIDxzcGFuIHN0eWxlPSJjb2xvcjogdmFyKC0tZ29sZCk7Ij7inKY8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InF1b3RlLWl0ZW0tcm9zZSI+RXZlcnkgcXVlZW4gbmVlZHMgaGVyIGNhc3RsZSA8c3BhbiBzdHlsZT0iY29sb3I6IHZhcigtLWdvbGQpOyI+4pymPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJxdW90ZS1pdGVtLXJvc2UiPjIwMjYgaXMgeW91ciB5ZWFyIG9mIG1hbmlmZXN0YXRpb24gPHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1nb2xkKTsiPuKcpjwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icXVvdGUtaXRlbS1yb3NlIj5Gcm9tIGRpZ2l0YWwgc2hhcmVjcm9wcGVyIHRvIHNvdmVyZWlnbiBhcmNoaXRlY3QgPHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1nb2xkKTsiPuKcpjwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8IS0tIER1cGxpY2F0ZSAtLT4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJxdW90ZS1pdGVtLXJvc2UiPkJ1aWxkIHlvdXIgZW1waXJlIGJyaWNrIGJ5IGJyaWNrIDxzcGFuIHN0eWxlPSJjb2xvcjogdmFyKC0tZ29sZCk7Ij7inKY8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InF1b3RlLWl0ZW0tcm9zZSI+Q2xhcml0eSBpcyB0aGUgbmV3IGN1cnJlbmN5IDxzcGFuIHN0eWxlPSJjb2xvcjogdmFyKC0tZ29sZCk7Ij7inKY8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InF1b3RlLWl0ZW0tcm9zZSI+WW91ciBkaWdpdGFsIGxhbmQgaXMgd2FpdGluZyA8c3BhbiBzdHlsZT0iY29sb3I6IHZhcigtLWdvbGQpOyI+4pymPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJxdW90ZS1pdGVtLXJvc2UiPlN0b3AgcmVudGluZyB+IHN0YXJ0IG93bmluZyA8c3BhbiBzdHlsZT0iY29sb3I6IHZhcigtLWdvbGQpOyI+4pymPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJxdW90ZS1pdGVtLXJvc2UiPlRoZSBzb3ZlcmVpZ24gYXJjaGl0ZWN0IGJ1aWxkcyB3aXRoIGludGVudGlvbiA8c3BhbiBzdHlsZT0iY29sb3I6IHZhcigtLWdvbGQpOyI+4pymPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJxdW90ZS1pdGVtLXJvc2UiPkV2ZXJ5IHF1ZWVuIG5lZWRzIGhlciBjYXN0bGUgPHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1nb2xkKTsiPuKcpjwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icXVvdGUtaXRlbS1yb3NlIj4yMDI2IGlzIHlvdXIgeWVhciBvZiBtYW5pZmVzdGF0aW9uIDxzcGFuIHN0eWxlPSJjb2xvcjogdmFyKC0tZ29sZCk7Ij7inKY8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InF1b3RlLWl0ZW0tcm9zZSI+RnJvbSBkaWdpdGFsIHNoYXJlY3JvcHBlciB0byBzb3ZlcmVpZ24gYXJjaGl0ZWN0IDxzcGFuIHN0eWxlPSJjb2xvcjogdmFyKC0tZ29sZCk7Ij7inKY8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIEZPT1RFUiAtLT4KICAgICAgICA8Zm9vdGVyPgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOiAyMHB4OyI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iZm9vdGVyLWJyYW5kIj5USEUgU0hFIEV+Qk9TUyBTT0xVVElPTklTVDwvcD4KICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOyBmb250LXNpemU6IDAuODVyZW07IGZvbnQtc3R5bGU6IGl0YWxpYzsgY29sb3I6IHZhcigtLXJvc2UpOyBtYXJnaW4tdG9wOiA4cHg7Ij5Gb3VuZGVyLCBUaGUgU292ZXJlaWduIEFyY2hpdGVjdHM8L3A+CiAgICAgICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsgZm9udC1zaXplOiAwLjdyZW07IGxldHRlci1zcGFjaW5nOiAycHg7IGNvbG9yOiB2YXIoLS1nb2xkKTsgb3BhY2l0eTogMC43OyBtYXJnaW4tdG9wOiA1cHg7Ij5NT01FTlRVTSBESUdJVEFMIE1FRElBPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjEpOyBwYWRkaW5nLXRvcDogMjBweDsiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImZvb3Rlci10YWdsaW5lIj5EeW5hbWljIFBhcmFkaWdtcyAmIE1lbnRvcnNoaXAgU3VjY2VzcyBBY2FkZW1pZXM8L3A+CiAgICAgICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1zaXplOiAwLjdyZW07IGNvbG9yOiB2YXIoLS1pdm9yeS1tdXRlZCk7IG9wYWNpdHk6IDAuMzsgbWFyZ2luLXRvcDogOHB4OyI+U29sdXRpb25zIMK3IFNlcnZpY2VzIMK3IFNvZnR3YXJlIMK3IFN0cmF0ZWdpZXMgwrcgU3lzdGVtczwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb290ZXI+CiAgICA8L2Rpdj4KICAgIAogICAgPCEtLSBTUElOIExJTUlUIFBPUFVQIC0tPgogICAgPGRpdiBpZD0ic3BpbkxpbWl0UG9wdXAiIHN0eWxlPSJkaXNwbGF5OiBub25lOyBwb3NpdGlvbjogZml4ZWQ7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjg1KTsgei1pbmRleDogOTk5OTsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHBhZGRpbmc6IDI1cHg7Ij4KICAgICAgICA8ZGl2IHN0eWxlPSJtYXgtd2lkdGg6IDUwMHB4OyB3aWR0aDogMTAwJTsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgdmFyKC0tbmF2eSksIHZhcigtLW5hdnktZGVlcCkpOyBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1nb2xkKTsgYm9yZGVyLXJhZGl1czogMzBweDsgcGFkZGluZzogNTBweCA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYm94LXNoYWRvdzogMCAwIDYwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuMyk7Ij4KICAgICAgICAgICAgCiAgICAgICAgICAgIDwhLS0gQ2xvc2UgYnV0dG9uIC0tPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImNsb3NlUG9wdXAoKSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNXB4OyByaWdodDogMjBweDsgYmFja2dyb3VuZDogbm9uZTsgYm9yZGVyOiBub25lOyBjb2xvcjogdmFyKC0taXZvcnktc29mdCk7IGZvbnQtc2l6ZTogMS41cmVtOyBjdXJzb3I6IHBvaW50ZXI7Ij7DlzwvYnV0dG9uPgogICAgICAgICAgICAKICAgICAgICAgICAgPCEtLSBUZWEgY3VwIGljb24gLS0+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogNHJlbTsgbWFyZ2luLWJvdHRvbTogMjBweDsiPvCfq5Y8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDwhLS0gVGl0bGUgLS0+CiAgICAgICAgICAgIDxoMiBpZD0icG9wdXBUaXRsZSIgc3R5bGU9ImZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOyBmb250LXNpemU6IDEuOHJlbTsgY29sb3I6IHZhcigtLWdvbGQpOyBtYXJnaW4tYm90dG9tOiAxNXB4OyI+U2VyaW91c2x5PzwvaDI+CiAgICAgICAgICAgIAogICAgICAgICAgICA8IS0tIE1lc3NhZ2UgLS0+CiAgICAgICAgICAgIDxwIGlkPSJwb3B1cE1lc3NhZ2UiIHN0eWxlPSJmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOyBmb250LXNpemU6IDEuMnJlbTsgZm9udC1zdHlsZTogaXRhbGljOyBjb2xvcjogdmFyKC0taXZvcnkpOyBtYXJnaW4tYm90dG9tOiAyMHB4OyBsaW5lLWhlaWdodDogMS43OyI+CiAgICAgICAgICAgICAgICBUaGlzIGlzbid0IHRoZSBDYXNpbm8gb2YgTGlmZSwgZGFybGluZy4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAKICAgICAgICAgICAgPCEtLSBTdWJ0ZXh0IC0tPgogICAgICAgICAgICA8cCBpZD0icG9wdXBTdWJ0ZXh0IiBzdHlsZT0iZm9udC1zaXplOiAwLjlyZW07IGNvbG9yOiB2YXIoLS1pdm9yeS1zb2Z0KTsgbWFyZ2luLWJvdHRvbTogMzBweDsiPgogICAgICAgICAgICAgICAgVGhlIHVuaXZlcnNlIGRvZXNuJ3QgcmV3YXJkIGluZGVjaXNpb24uCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgCiAgICAgICAgICAgIDwhLS0gRGl2aWRlciAtLT4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjMpOyBwYWRkaW5nLXRvcDogMjVweDsgbWFyZ2luLXRvcDogMTBweDsiPgogICAgICAgICAgICAgICAgPHAgc3R5bGU9ImZvbnQtc2l6ZTogMC44NXJlbTsgY29sb3I6IHZhcigtLXJvc2UpOyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+WW91IHN0aWxsIGhhdmUgb3B0aW9ucywgbG92ZTo8L3A+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMTJweDsiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vc292ZXJlaWdubW9tZW50dW0uY29tLzIwMjZwYXNzaW9uIiBzdHlsZT0iZGlzcGxheTogYmxvY2s7IHBhZGRpbmc6IDE1cHggMzBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLWdvbGQtZGFyaykpOyBjb2xvcjogdmFyKC0tbmF2eS1kZWVwKTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItcmFkaXVzOiA1MHB4OyBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOyBmb250LXNpemU6IDAuOHJlbTsgZm9udC13ZWlnaHQ6IDcwMDsgbGV0dGVyLXNwYWNpbmc6IDFweDsiPgogICAgICAgICAgICAgICAgICAgICAgICBJIENBTUUuIEtFUFQgQ0FMTS4gQ0FSUklFRCBPTi4gTk9XIFdIQVQ/CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iY2xvc2VQb3B1cCgpIiBzdHlsZT0icGFkZGluZzogMTJweCAyNXB4OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taXZvcnktc29mdCk7IGNvbG9yOiB2YXIoLS1pdm9yeS1zb2Z0KTsgYm9yZGVyLXJhZGl1czogNTBweDsgZm9udC1zaXplOiAwLjg1cmVtOyBjdXJzb3I6IHBvaW50ZXI7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgQ2hvb3NlIG15IGVuZXJneSBtYW51YWxseSBpbnN0ZWFkCiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8IS0tIFRpbnkgZm9vdGVyIC0tPgogICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1zaXplOiAwLjdyZW07IGNvbG9yOiB2YXIoLS1pdm9yeS1zb2Z0KTsgb3BhY2l0eTogMC41OyBtYXJnaW4tdG9wOiAyNXB4OyI+CiAgICAgICAgICAgICAgICAoVGhlIHdoZWVsIHdpbGwgcmVzZXQgYXQgbWlkbmlnaHQuIFBhdGllbmNlLCBncmFzc2hvcHBlci4pCiAgICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8c2NyaXB0PgogICAgICAgIC8vIEVuZXJneSBvcHRpb25zIGRhdGEgLSBUSEUgOSAiSU9VUyIgRU5FUkdJRVMKICAgICAgICBjb25zdCBlbmVyZ2llcyA9IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZW1vamk6ICfwn5SuJywKICAgICAgICAgICAgICAgIG5hbWU6ICdDVVJJT1VTJywKICAgICAgICAgICAgICAgIHF1b3RlOiAnIlRoZSBjdXJpb3VzIG1pbmQgaXMgdGhlIGdhdGV3YXkgdG8gaW5maW5pdGUgcG9zc2liaWxpdGllcy4gWW91IHNlZWssIHlvdSBmaW5kLCB5b3UgdHJhbnNmb3JtLiInLAogICAgICAgICAgICAgICAgcXVlc3Rpb246ICdXaGF0IGhpZGRlbiB0cmVhc3VyZSBpcyB3YWl0aW5nIGZvciB5b3UgdG8gZGlzY292ZXIgaXQ/JwogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBlbW9qaTogJ/CfkZEnLAogICAgICAgICAgICAgICAgbmFtZTogJ1NFUklPVVMnLAogICAgICAgICAgICAgICAgcXVvdGU6ICciU2VyaW91c25lc3MgaXMgbm90IGhlYXZpbmVzcyB+IGl0IGlzIGNvbW1pdG1lbnQgdG8geW91ciBjcm93bi4gWW91IG1lYW4gYnVzaW5lc3MsIGFuZCBidXNpbmVzcyBtZWFucyB5b3UuIicsCiAgICAgICAgICAgICAgICBxdWVzdGlvbjogJ1doYXQgd291bGQgY2hhbmdlIGlmIHlvdSB0cmVhdGVkIHlvdXIgZHJlYW1zIGxpa2UgY29udHJhY3RzPycKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZW1vamk6ICfwn5uh77iPJywKICAgICAgICAgICAgICAgIG5hbWU6ICdDQVVUSU9VUycsCiAgICAgICAgICAgICAgICBxdW90ZTogJyJUaGUgd2lzZSBxdWVlbiBtZWFzdXJlcyB0d2ljZSBhbmQgY3V0cyBvbmNlLiBZb3VyIGNhdXRpb24gaXMgbm90IGZlYXIgfiBpdCBpcyBzdHJhdGVneS4iJywKICAgICAgICAgICAgICAgIHF1ZXN0aW9uOiAnV2hhdCBjYWxjdWxhdGVkIHJpc2sgd291bGQgdW5sb2NrIHlvdXIgbmV4dCBsZXZlbD8nCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGVtb2ppOiAn8J+UpScsCiAgICAgICAgICAgICAgICBuYW1lOiAnQVVEQUNJT1VTJywKICAgICAgICAgICAgICAgIHF1b3RlOiAnIkF1ZGFjaXR5IGlzIHRoZSBzaWduYXR1cmUgb2YgbGVnZW5kcy4gWW91IGRvblwndCBqdXN0IGRyZWFtIH4geW91IGRhcmUuIFlvdSBkb25cJ3QganVzdCB3aXNoIH4geW91IHdpbGwuIicsCiAgICAgICAgICAgICAgICBxdWVzdGlvbjogJ1doYXQgYm9sZCBtb3ZlIGhhcyBiZWVuIHdhaXRpbmcgZm9yIHlvdXIgcGVybWlzc2lvbj8nCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGVtb2ppOiAn8J+SsCcsCiAgICAgICAgICAgICAgICBuYW1lOiAnUFJPU1BFUk9VUycsCiAgICAgICAgICAgICAgICBxdW90ZTogJyJQcm9zcGVyaXR5IGlzIHlvdXIgZGl2aW5lIGluaGVyaXRhbmNlLiBZb3Ugc2VlIGFidW5kYW5jZSBldmVyeXdoZXJlIH4gYW5kIGFidW5kYW5jZSBzZWVzIHlvdS4iJywKICAgICAgICAgICAgICAgIHF1ZXN0aW9uOiAnV2hhdCB3ZWFsdGggaXMgYWxyZWFkeSBmbG93aW5nIHRvd2FyZCB5b3UgcmlnaHQgbm93PycKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZW1vamk6ICfwn5qAJywKICAgICAgICAgICAgICAgIG5hbWU6ICdBTUJJVElPVVMnLAogICAgICAgICAgICAgICAgcXVvdGU6ICciQW1iaXRpb24gaXMgeW91ciBiaXJ0aHJpZ2h0LiBZb3Ugd2VyZSBub3QgYm9ybiB0byBiZSBzbWFsbC4gWW91IHdlcmUgYm9ybiB0byBleHBhbmQsIHRvIGFzY2VuZCwgdG8gc29hci4iJywKICAgICAgICAgICAgICAgIHF1ZXN0aW9uOiAnV2hhdCB3b3VsZCB5b3UgYnVpbGQgaWYgeW91IGtuZXcgeW91IGNvdWxkIG5vdCBmYWlsPycKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZW1vamk6ICfwn5KVJywKICAgICAgICAgICAgICAgIG5hbWU6ICdHRU5FUk9VUycsCiAgICAgICAgICAgICAgICBxdW90ZTogJyJUaGUgZ2VuZXJvdXMgaGVhcnQgbXVsdGlwbGllcyBldmVyeXRoaW5nIGl0IHRvdWNoZXMuIFlvdSBnaXZlIGZyZWVseSBiZWNhdXNlIHlvdSBrbm93IHRoZSB1bml2ZXJzZSByZWZpbGxzIHRoZSBjdXAuIicsCiAgICAgICAgICAgICAgICBxdWVzdGlvbjogJ1doYXQgZ2lmdCBjYW4gb25seSBZT1UgZ2l2ZSB0byB0aGUgd29ybGQ/JwogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBlbW9qaTogJ/CfpoEnLAogICAgICAgICAgICAgICAgbmFtZTogJ1RFTkFDSU9VUycsCiAgICAgICAgICAgICAgICBxdW90ZTogJyJUZW5hY2l0eSBpcyB0aGUgcXVlZW5cJ3Mgc2VjcmV0IHdlYXBvbi4gWW91IGRvblwndCBnaXZlIHVwIH4geW91IGxldmVsIHVwLiBFdmVyeSBzZXRiYWNrIGlzIGEgc2V0dXAuIicsCiAgICAgICAgICAgICAgICBxdWVzdGlvbjogJ1doYXQgb2JzdGFjbGUgaXMgc2VjcmV0bHkgcHJlcGFyaW5nIHlvdSBmb3IgZ3JlYXRuZXNzPycKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZW1vamk6ICfwn6etJywKICAgICAgICAgICAgICAgIG5hbWU6ICdBRFZFTlRVUk9VUycsCiAgICAgICAgICAgICAgICBxdW90ZTogJyJUaGUgYWR2ZW50dXJvdXMgc3Bpcml0IHdyaXRlcyBzdG9yaWVzIHdvcnRoIHRlbGxpbmcuIFlvdSBjaGFzZSBob3Jpem9ucywgZW1icmFjZSB0aGUgdW5rbm93biwgYW5kIGRhbmNlIHdpdGggZGVzdGlueS4iJywKICAgICAgICAgICAgICAgIHF1ZXN0aW9uOiAnV2hhdCB1bmNoYXJ0ZWQgdGVycml0b3J5IGlzIGNhbGxpbmcgeW91ciBuYW1lPycKICAgICAgICAgICAgfQogICAgICAgIF07CiAgICAgICAgCiAgICAgICAgLy8gRnVubnkgImR1ZCIgcmVzdWx0cyBmb3IgdW5leHBlY3RlZCBtb21lbnRzCiAgICAgICAgY29uc3QgZHVkUmVzdWx0cyA9IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZW1vamk6ICfwn46wJywKICAgICAgICAgICAgICAgIG5hbWU6ICc/Pz8nLAogICAgICAgICAgICAgICAgcXVvdGU6ICciQ29tZSBvbiBub3csIHB1dCBzb21lIEVORVJHWSBpbnRvIHRoYXQgc3BpbiEgVGhlIHVuaXZlcnNlIHJld2FyZHMgZW50aHVzaWFzbSwgbm90IGxpbXAgd3Jpc3RzLiInLAogICAgICAgICAgICAgICAgcXVlc3Rpb246ICdUcnkgYWdhaW4gd2l0aCBhIGJpdCBtb3JlIGd1c3RvLCBzaGFsbCB3ZT8nLAogICAgICAgICAgICAgICAgaXNEdWQ6IHRydWUKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZW1vamk6ICfimJUnLAogICAgICAgICAgICAgICAgbmFtZTogJ1RFQSBCUkVBSycsCiAgICAgICAgICAgICAgICBxdW90ZTogJyJUaGUgd2hlZWwgc2VlbXMgdG8gdGhpbmsgeW91IG5lZWQgYSBjdXBwYSBmaXJzdC4gUGVyaGFwcyBhIGJpc2N1aXQgdG9vLiBUaGVuIHdlXCdsbCB0cnkgYWdhaW4gcHJvcGVybHkuIicsCiAgICAgICAgICAgICAgICBxdWVzdGlvbjogJ0hhdmUgeW91IGh5ZHJhdGVkIHRvZGF5LCBsb3ZlPycsCiAgICAgICAgICAgICAgICBpc0R1ZDogdHJ1ZQogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBlbW9qaTogJ/CfpLfigI3imYDvuI8nLAogICAgICAgICAgICAgICAgbmFtZTogJ0lOREVDSVNJVkUnLAogICAgICAgICAgICAgICAgcXVvdGU6ICciVGhlIHdoZWVsIGlzIGFzIGNvbmZ1c2VkIGFzIHlvdSBhcmUsIGRhcmxpbmcuIEl0IGxhbmRlZCByaWdodCBiZXR3ZWVuIHR3byBvcHRpb25zLiBIb3cgdmVyeS4uLiB5b3UuIicsCiAgICAgICAgICAgICAgICBxdWVzdGlvbjogJ01heWJlIGp1c3QuLi4gcGljayBvbmUgeW91cnNlbGY/JywKICAgICAgICAgICAgICAgIGlzRHVkOiB0cnVlCiAgICAgICAgICAgIH0KICAgICAgICBdOwogICAgICAgIAogICAgICAgIC8vIFNwaW4gbGltaXQgbWVzc2FnZXMgKEJyaXRpc2ggaHVtb3VyKQogICAgICAgIGNvbnN0IHNwaW5MaW1pdE1lc3NhZ2VzID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0aXRsZTogIlNlcmlvdXNseT8g8J+nkCIsCiAgICAgICAgICAgICAgICBtZXNzYWdlOiAiVGhpcyBpc24ndCB0aGUgQ2FzaW5vIG9mIExpZmUsIGRhcmxpbmcuIFlvdSd2ZSBoYWQgeW91ciB0d28gc3BpbnMuIFRpbWUgdG8gY29tbWl0IHRvIHNvbWV0aGluZyB+IHByZWZlcmFibHkgeW91ciBmdXR1cmUuIiwKICAgICAgICAgICAgICAgIHN1YnRleHQ6ICJUaGUgdW5pdmVyc2UgZG9lc24ndCByZXdhcmQgaW5kZWNpc2lvbiwgYnV0IGl0IGRvZXMgYWRtaXJlIHBlcnNpc3RlbmNlIGluIHRoZSByaWdodCBkaXJlY3Rpb24uIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0aXRsZTogIkxldCdzIE5vdCBCZSBSaWRpY3Vsb3VzIPCfjqkiLAogICAgICAgICAgICAgICAgbWVzc2FnZTogIlR3byBzcGlucyBpcyBxdWl0ZSBlbm91Z2gsIHRoYW5rIHlvdSB2ZXJ5IG11Y2guIFRoaXMgaXMgYSBkZXN0aW55IG1hY2hpbmUsIG5vdCBhIGZpZGdldCBzcGlubmVyLiIsCiAgICAgICAgICAgICAgICBzdWJ0ZXh0OiAiRXZlbiB0aGUgUXVlZW4gZG9lc24ndCBnZXQgdW5saW1pdGVkIHR1cm5zLiBOb3cgdGhlbiwgc2hhbGwgd2UgcHJvY2VlZD8iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHRpdGxlOiAiRmFuY3kgU3Bpbm5pbmcsIERvIFdlPyDwn46hIiwKICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICJJIHNlZSB3ZSd2ZSBkaXNjb3ZlcmVkIHdlIHJhdGhlciBlbmpveSB0aGUgc3Bpbm55IHRoaW5nLiBEZWxpZ2h0ZnVsLiBIb3dldmVyLCBydWxlcyBhcmUgcnVsZXMuIiwKICAgICAgICAgICAgICAgIHN1YnRleHQ6ICJLZWVwIENhbG0gYW5kIENhcnJ5IE9uLi4uIHRvIHRoZSBuZXh0IHBhZ2UsIHByZWZlcmFibHkuIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0aXRsZTogIlJpZ2h0IFRoZW4g8J+rliIsCiAgICAgICAgICAgICAgICBtZXNzYWdlOiAiWW91J3ZlIHNwdW4gdHdpY2UuIFRoZSB3aGVlbCBoYXMgc3Bva2VuIHR3aWNlLiBBdCB0aGlzIHBvaW50LCB5b3UncmUganVzdCBwcm9jcmFzdGluYXRpbmcgd2l0aCBzdHlsZS4iLAogICAgICAgICAgICAgICAgc3VidGV4dDogIllvdXIgZGVzdGlueSBhd2FpdHMuIFRoZSBrZXR0bGUncyBnb25lIGNvbGQuIExldCdzIGdldCBvbiB3aXRoIGl0LiIKICAgICAgICAgICAgfQogICAgICAgIF07CiAgICAgICAgCiAgICAgICAgbGV0IGlzU3Bpbm5pbmcgPSBmYWxzZTsKICAgICAgICBsZXQgY3VycmVudEVuZXJneSA9IG51bGw7CiAgICAgICAgCiAgICAgICAgLy8gQ2hlY2sgaWYgc3BpbnMgc2hvdWxkIHJlc2V0ICgyNCBob3VycyAvIG1pZG5pZ2h0IHJlc2V0KQogICAgICAgIGZ1bmN0aW9uIGNoZWNrU3BpblJlc2V0KCkgewogICAgICAgICAgICBjb25zdCBsYXN0U3BpbkRhdGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc2hlZWJvc3MyMDI2c3BpbkRhdGUnKTsKICAgICAgICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpOwogICAgICAgICAgICAKICAgICAgICAgICAgaWYgKGxhc3RTcGluRGF0ZSAhPT0gdG9kYXkpIHsKICAgICAgICAgICAgICAgIC8vIE5ldyBkYXksIHJlc2V0IHNwaW5zIQogICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3NoZWVib3NzMjAyNnNwaW5Db3VudCcsICcwJyk7CiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2hlZWJvc3MyMDI2c3BpbkRhdGUnLCB0b2RheSk7CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3NoZWVib3NzMjAyNnNwaW5Db3VudCcpIHx8ICcwJyk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGxldCBzcGluQ291bnQgPSBjaGVja1NwaW5SZXNldCgpOwogICAgICAgIGNvbnN0IG1heFNwaW5zID0gMjsKICAgICAgICAKICAgICAgICAvLyBDaGVjayBzcGluIGNvdW50IG9uIGxvYWQKICAgICAgICBmdW5jdGlvbiBjaGVja1NwaW5MaW1pdCgpIHsKICAgICAgICAgICAgaWYgKHNwaW5Db3VudCA+PSBtYXhTcGlucykgewogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NwaW5CdG4nKS5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BpbkJ0bicpLmlubmVySFRNTCA9ICfwn5SSIFNwaW5zIEV4aGF1c3RlZCc7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BpbkJ0bicpLnN0eWxlLm9wYWNpdHkgPSAnMC42JzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBTaG93IHNwaW4gbGltaXQgcG9wdXAKICAgICAgICBmdW5jdGlvbiBzaG93U3BpbkxpbWl0UG9wdXAoKSB7CiAgICAgICAgICAgIGNvbnN0IHJhbmRvbU1zZyA9IHNwaW5MaW1pdE1lc3NhZ2VzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHNwaW5MaW1pdE1lc3NhZ2VzLmxlbmd0aCldOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXBUaXRsZScpLnRleHRDb250ZW50ID0gcmFuZG9tTXNnLnRpdGxlOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXBNZXNzYWdlJykudGV4dENvbnRlbnQgPSByYW5kb21Nc2cubWVzc2FnZTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BvcHVwU3VidGV4dCcpLnRleHRDb250ZW50ID0gcmFuZG9tTXNnLnN1YnRleHQ7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcGluTGltaXRQb3B1cCcpLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIGNsb3NlUG9wdXAoKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcGluTGltaXRQb3B1cCcpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIFNwaW4gdGhlIHNsb3QgbWFjaGluZQogICAgICAgIGZ1bmN0aW9uIHNwaW5TbG90KCkgewogICAgICAgICAgICBpZiAoaXNTcGlubmluZykgcmV0dXJuOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gQ2hlY2sgc3BpbiBsaW1pdAogICAgICAgICAgICBpZiAoc3BpbkNvdW50ID49IG1heFNwaW5zKSB7CiAgICAgICAgICAgICAgICBzaG93U3BpbkxpbWl0UG9wdXAoKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgaXNTcGlubmluZyA9IHRydWU7CiAgICAgICAgICAgIHNwaW5Db3VudCsrOwogICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2hlZWJvc3MyMDI2c3BpbkNvdW50Jywgc3BpbkNvdW50LnRvU3RyaW5nKCkpOwogICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2hlZWJvc3MyMDI2c3BpbkRhdGUnLCBuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2xvdERpc3BsYXknKTsKICAgICAgICAgICAgY29uc3QgZW1vamkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2xvdEVtb2ppJyk7CiAgICAgICAgICAgIGNvbnN0IHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2xvdFRleHQnKTsKICAgICAgICAgICAgY29uc3QgcXVvdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2xvdFF1b3RlJyk7CiAgICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nsb3RRdWVzdGlvbicpOwogICAgICAgICAgICBjb25zdCBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BpbkJ0bicpOwogICAgICAgICAgICAKICAgICAgICAgICAgYnRuLmRpc2FibGVkID0gdHJ1ZTsKICAgICAgICAgICAgZGlzcGxheS5jbGFzc0xpc3QuYWRkKCdzcGlubmluZycpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gU3BpbiB0aHJvdWdoIGVtb2ppcyByYXBpZGx5CiAgICAgICAgICAgIGxldCBzcGluRHVyYXRpb24gPSAyNTAwOwogICAgICAgICAgICBjb25zdCBzcGluSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7CiAgICAgICAgICAgICAgICBjb25zdCByYW5kb21JbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGVuZXJnaWVzLmxlbmd0aCk7CiAgICAgICAgICAgICAgICBlbW9qaS50ZXh0Q29udGVudCA9IGVuZXJnaWVzW3JhbmRvbUluZGV4XS5lbW9qaTsKICAgICAgICAgICAgICAgIHRleHQudGV4dENvbnRlbnQgPSAnSSBBTSAnICsgZW5lcmdpZXNbcmFuZG9tSW5kZXhdLm5hbWU7CiAgICAgICAgICAgIH0sIDEwMCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBTdG9wIGFmdGVyIHNwaW4gZHVyYXRpb24KICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHNwaW5JbnRlcnZhbCk7CiAgICAgICAgICAgICAgICBkaXNwbGF5LmNsYXNzTGlzdC5yZW1vdmUoJ3NwaW5uaW5nJyk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC8vIDE1JSBjaGFuY2Ugb2YgYSAiZHVkIiByZXN1bHQgb24gZmlyc3Qgc3BpbiBmb3IgZnVuCiAgICAgICAgICAgICAgICBjb25zdCBpc0R1ZFNwaW4gPSBzcGluQ291bnQgPT09IDEgJiYgTWF0aC5yYW5kb20oKSA8IDAuMTU7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmIChpc0R1ZFNwaW4pIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBkdWRSZXN1bHQgPSBkdWRSZXN1bHRzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGR1ZFJlc3VsdHMubGVuZ3RoKV07CiAgICAgICAgICAgICAgICAgICAgZW1vamkudGV4dENvbnRlbnQgPSBkdWRSZXN1bHQuZW1vamk7CiAgICAgICAgICAgICAgICAgICAgdGV4dC50ZXh0Q29udGVudCA9ICdJIEFNLi4uICcgKyBkdWRSZXN1bHQubmFtZTsKICAgICAgICAgICAgICAgICAgICBxdW90ZS50ZXh0Q29udGVudCA9IGR1ZFJlc3VsdC5xdW90ZTsKICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbi50ZXh0Q29udGVudCA9IGR1ZFJlc3VsdC5xdWVzdGlvbjsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCBzaG93IEVudGVyIENUQSBmb3IgZHVkIHJlc3VsdHMKICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCBjb3VudCB0aGlzIGFzIHVzaW5nIGEgInJlYWwiIHNwaW4gLSBnaXZlIHRoZW0gYW5vdGhlciBjaGFuY2UKICAgICAgICAgICAgICAgICAgICBzcGluQ291bnQtLTsKICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2hlZWJvc3MyMDI2c3BpbkNvdW50Jywgc3BpbkNvdW50LnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzaGVlYm9zczIwMjZzcGluRGF0ZScsIG5ldyBEYXRlKCkudG9EYXRlU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBTZWxlY3QgcmFuZG9tIGZpbmFsIHJlc3VsdAogICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbmFsSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBlbmVyZ2llcy5sZW5ndGgpOwogICAgICAgICAgICAgICAgICAgIHNob3dFbmVyZ3koZmluYWxJbmRleCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlzU3Bpbm5pbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLy8gVXBkYXRlIGJ1dHRvbiBiYXNlZCBvbiByZW1haW5pbmcgc3BpbnMKICAgICAgICAgICAgICAgIGlmIChzcGluQ291bnQgPj0gbWF4U3BpbnMpIHsKICAgICAgICAgICAgICAgICAgICBidG4uaW5uZXJIVE1MID0gJ/CflJIgTm8gTW9yZSBTcGlucyc7CiAgICAgICAgICAgICAgICAgICAgYnRuLnN0eWxlLm9wYWNpdHkgPSAnMC42JzsKICAgICAgICAgICAgICAgICAgICBidG4uZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzcGluQ291bnQgPT09IDEpIHsKICAgICAgICAgICAgICAgICAgICAvLyBUSEUgMS41IFNQSU5TIEdBRyEKICAgICAgICAgICAgICAgICAgICBidG4uaW5uZXJIVE1MID0gJ+KcpiBTcGluIEFnYWluICgxLjUgbGVmdCkg4pymJzsKICAgICAgICAgICAgICAgICAgICBidG4uZGlzYWJsZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAvLyBTaG93IGNoZWVreSBtZXNzYWdlCiAgICAgICAgICAgICAgICAgICAgc2hvd0NoZWVreU1lc3NhZ2UoKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgYnRuLmlubmVySFRNTCA9IGDinKYgU3BpbiBBZ2FpbiAoJHttYXhTcGlucyAtIHNwaW5Db3VudH0gbGVmdCkg4pymYDsKICAgICAgICAgICAgICAgICAgICBidG4uZGlzYWJsZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgc3BpbkR1cmF0aW9uKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gQ2hlZWt5IG1lc3NhZ2VzIGFmdGVyIGZpcnN0IHNwaW4KICAgICAgICBjb25zdCBjaGVla3lNZXNzYWdlcyA9IFsKICAgICAgICAgICAgIjEuNSBzcGlucz8gWWVzLCB5b3UgcmVhZCB0aGF0IGNvcnJlY3RseS4gTGlmZSBpc24ndCBhbHdheXMgaW4gd2hvbGUgbnVtYmVycywgZGFybGluZy4g8J+nkCIsCiAgICAgICAgICAgICJCZWZvcmUgeW91IGFzayB+IHllcywgMS41IGlzIG1hdGhlbWF0aWNhbGx5IHF1ZXN0aW9uYWJsZS4gQnV0IHNvIGlzIHlvdXIgaW5kZWNpc2lvbi4gQ2Fycnkgb24uIPCfq5YiLAogICAgICAgICAgICAiVGhlIGhhbGYgc3BpbiBpcyBmb3IgY29udGVtcGxhdGlvbi4gVXNlIGl0IHdpc2VseS4gT3IgZG9uJ3QuIEknbSBhIHdoZWVsLCBub3QgeW91ciB0aGVyYXBpc3QuIiwKICAgICAgICAgICAgIjEuNSBzcGlucyByZW1haW5pbmcuIFRoZSB1bml2ZXJzZSByb3VuZHMgdXAgZm9yIHF1ZWVucyB3aG8gY29tbWl0LiBKdXN0IHNheWluZy4g8J+RkSIsCiAgICAgICAgICAgICJBaCwgdGhlIGNsYXNzaWMgMS41IGRpbGVtbWEuIFNjaHLDtmRpbmdlcidzIHNwaW4sIGlmIHlvdSB3aWxsLiBCb3RoIHRoZXJlIGFuZCBub3QgdGhlcmUuIgogICAgICAgIF07CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gc2hvd0NoZWVreU1lc3NhZ2UoKSB7CiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGNoZWVreU1lc3NhZ2VzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoZWVreU1lc3NhZ2VzLmxlbmd0aCldOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gQ3JlYXRlIG9yIHVwZGF0ZSBjaGVla3kgbWVzc2FnZSBlbGVtZW50CiAgICAgICAgICAgIGxldCBjaGVla3lEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hlZWt5TWVzc2FnZScpOwogICAgICAgICAgICBpZiAoIWNoZWVreURpdikgewogICAgICAgICAgICAgICAgY2hlZWt5RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgICAgICBjaGVla3lEaXYuaWQgPSAnY2hlZWt5TWVzc2FnZSc7CiAgICAgICAgICAgICAgICBjaGVla3lEaXYuc3R5bGUuY3NzVGV4dCA9ICdtYXJnaW4tdG9wOiAyMHB4OyBwYWRkaW5nOiAxNXB4IDI1cHg7IGJhY2tncm91bmQ6IHJnYmEoMTgzLCAxMTAsIDEyMSwgMC4xNSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXJvc2UpOyBib3JkZXItcmFkaXVzOiAxNXB4OyBmb250LWZhbWlseTogIkNvcm1vcmFudCBHYXJhbW9uZCIsIHNlcmlmOyBmb250LXNpemU6IDFyZW07IGZvbnQtc3R5bGU6IGl0YWxpYzsgY29sb3I6IHZhcigtLWl2b3J5KTsgbWF4LXdpZHRoOiA1MDBweDsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0bzsgYW5pbWF0aW9uOiBmYWRlSW4gMC41cyBlYXNlOyc7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BpbkJ0bicpLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoY2hlZWt5RGl2KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjaGVla3lEaXYudGV4dENvbnRlbnQgPSBtc2c7CiAgICAgICAgICAgIGNoZWVreURpdi5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gU2VsZWN0IGVuZXJneSBkaXJlY3RseSAoZG9lc24ndCBjb3VudCBhZ2FpbnN0IHNwaW4gbGltaXQpCiAgICAgICAgZnVuY3Rpb24gc2VsZWN0RW5lcmd5KGluZGV4KSB7CiAgICAgICAgICAgIC8vIFJlbW92ZSBhY3RpdmUgZnJvbSBhbGwgYnV0dG9ucwogICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuaWFtLWJ0bicpLmZvckVhY2goYnRuID0+IGJ0bi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKSk7CiAgICAgICAgICAgIC8vIEFkZCBhY3RpdmUgdG8gc2VsZWN0ZWQKICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmlhbS1idG4nKVtpbmRleF0uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgICAgICAgIAogICAgICAgICAgICBzaG93RW5lcmd5KGluZGV4KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gRGlzcGxheSBzZWxlY3RlZCBlbmVyZ3kKICAgICAgICBmdW5jdGlvbiBzaG93RW5lcmd5KGluZGV4KSB7CiAgICAgICAgICAgIGNvbnN0IGVuZXJneSA9IGVuZXJnaWVzW2luZGV4XTsKICAgICAgICAgICAgY3VycmVudEVuZXJneSA9IGVuZXJneTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzbG90RW1vamknKS50ZXh0Q29udGVudCA9IGVuZXJneS5lbW9qaTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nsb3RUZXh0JykudGV4dENvbnRlbnQgPSAnSSBBTSAnICsgZW5lcmd5Lm5hbWU7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzbG90UXVvdGUnKS50ZXh0Q29udGVudCA9IGVuZXJneS5xdW90ZTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nsb3RRdWVzdGlvbicpLnRleHRDb250ZW50ID0gZW5lcmd5LnF1ZXN0aW9uOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gU2hvdyBFbnRlciAyMDI2IENUQQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZW50ZXJDdGEnKS5jbGFzc0xpc3QuYWRkKCd2aXNpYmxlJyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBTdG9yZSBjaG9pY2UgZm9yIG5leHQgcGFnZQogICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2hlZWJvc3MyMDI2ZW5lcmd5JywgSlNPTi5zdHJpbmdpZnkoZW5lcmd5KSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIEV4aXQgbWVzc2FnZXMKICAgICAgICBjb25zdCBleGl0TWVzc2FnZXMgPSB7CiAgICAgICAgICAgIHJldHVybjIwMjU6ICJPaCBob25leSwgMjAyNSBhbHJlYWR5IGhhcHBlbmVkISBUaGVyZSdzIG5vIGdvaW5nIGJhY2sgfiBvbmx5IGZvcndhcmQgaW50byB5b3VyIGRlc3RpbnkuIEJ1dCB3ZSdsbCB3YWl0IHJpZ2h0IGhlcmUgd2hlbiB5b3UncmUgcmVhZHkuIPCfkpUiLAogICAgICAgICAgICBza2lwMjAyNzogIk5pY2UgdHJ5LCB0aW1lIHRyYXZlbGVyISBCdXQgMjAyNiBpcyB3aGVyZSB0aGUgbWFnaWMgaGFwcGVucy4gWW91IGNhbid0IHNraXAgeW91ciBicmVha3Rocm91Z2ggeWVhciEg8J+RkSIsCiAgICAgICAgICAgIGNvdWNoOiAiVGhlIGNvdWNoIGlzIGNvbWZ5LCB3ZSBnZXQgaXQuIEJ1dCBxdWVlbnMgd2VyZW4ndCBtYWRlIGZvciBzcGVjdGF0aW5nIH4gdGhleSB3ZXJlIG1hZGUgZm9yIHJlaWduaW5nLiBXZSdsbCBzYXZlIHlvdXIgdGhyb25lLiDwn5uL77iP8J+RkSIsCiAgICAgICAgICAgIHJ1bmF3YXk6ICIqd2F0Y2hlcyB5b3UgcnVuIGRyYW1hdGljYWxseSogLi4uWW91J2xsIGJlIGJhY2suIFRoZXkgYWx3YXlzIGNvbWUgYmFjay4gWW91ciBkZXN0aW55IGhhcyBHUFMgdHJhY2tpbmcuIPCfj4PigI3imYDvuI/inKgiLAogICAgICAgICAgICBwcmV0ZW5kOiAi8J+RgCBXZSBzZWUgeW91LiBUaGUgdW5pdmVyc2Ugc2VlcyB5b3UuIFlvdXIgZnV0dXJlIHNlbGYgc2VlcyB5b3UuIFlvdSB3ZXJlIGRlZmluaXRlbHkgaGVyZS4gQW5kIHlvdSdsbCBkZWZpbml0ZWx5IGJlIGJhY2suIgogICAgICAgIH07CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gc2hvd0V4aXRNZXNzYWdlKHR5cGUpIHsKICAgICAgICAgICAgY29uc3QgbWVzc2FnZURpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGl0TWVzc2FnZScpOwogICAgICAgICAgICBjb25zdCBtZXNzYWdlVGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGl0TWVzc2FnZVRleHQnKTsKICAgICAgICAgICAgbWVzc2FnZVRleHQudGV4dENvbnRlbnQgPSBleGl0TWVzc2FnZXNbdHlwZV07CiAgICAgICAgICAgIG1lc3NhZ2VEaXYuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgICAgICAgIG1lc3NhZ2VEaXYuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnY2VudGVyJyB9KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gc2hvd01lbnNSZWRpcmVjdCgpIHsKICAgICAgICAgICAgY29uc3QgbWVuc0RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZW5zTWVzc2FnZScpOwogICAgICAgICAgICBtZW5zRGl2LnN0eWxlLmRpc3BsYXkgPSBtZW5zRGl2LnN0eWxlLmRpc3BsYXkgPT09ICdub25lJyA/ICdibG9jaycgOiAnbm9uZSc7CiAgICAgICAgICAgIGlmIChtZW5zRGl2LnN0eWxlLmRpc3BsYXkgPT09ICdibG9jaycpIHsKICAgICAgICAgICAgICAgIG1lbnNEaXYuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnY2VudGVyJyB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBJbml0aWFsaXplIG9uIHBhZ2UgbG9hZAogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgY2hlY2tTcGluTGltaXQoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIFVwZGF0ZSBidXR0b24gdGV4dCBpZiBzcGlucyByZW1haW5pbmcKICAgICAgICAgICAgaWYgKHNwaW5Db3VudCA9PT0gMSkgewogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NwaW5CdG4nKS5pbm5lckhUTUwgPSAn4pymIFNwaW4gQWdhaW4gKDEuNSBsZWZ0KSDinKYnOwogICAgICAgICAgICB9IGVsc2UgaWYgKHNwaW5Db3VudCA+IDAgJiYgc3BpbkNvdW50IDwgbWF4U3BpbnMpIHsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcGluQnRuJykuaW5uZXJIVE1MID0gYOKcpiBTcGluIEFnYWluICgke21heFNwaW5zIC0gc3BpbkNvdW50fSBsZWZ0KSDinKZgOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgCiAgICAgICAgLy8gQ3JlYXRlIHR3aW5rbGluZyBzdGFycwogICAgICAgIGNvbnN0IHN0YXJzQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXJzJyk7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MDsgaSsrKSB7CiAgICAgICAgICAgIGNvbnN0IHN0YXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgc3Rhci5jbGFzc05hbWUgPSAnc3Rhcic7CiAgICAgICAgICAgIHN0YXIudGV4dENvbnRlbnQgPSAn4pymJzsKICAgICAgICAgICAgc3Rhci5zdHlsZS5sZWZ0ID0gTWF0aC5yYW5kb20oKSAqIDEwMCArICclJzsKICAgICAgICAgICAgc3Rhci5zdHlsZS50b3AgPSBNYXRoLnJhbmRvbSgpICogMTAwICsgJyUnOwogICAgICAgICAgICBzdGFyLnN0eWxlLmFuaW1hdGlvbkRlbGF5ID0gTWF0aC5yYW5kb20oKSAqIDQgKyAncyc7CiAgICAgICAgICAgIHN0YXIuc3R5bGUuYW5pbWF0aW9uRHVyYXRpb24gPSAoMyArIE1hdGgucmFuZG9tKCkgKiAyKSArICdzJzsKICAgICAgICAgICAgc3Rhci5zdHlsZS5mb250U2l6ZSA9ICgwLjUgKyBNYXRoLnJhbmRvbSgpICogMC41KSArICdyZW0nOwogICAgICAgICAgICBzdGFyc0NvbnRhaW5lci5hcHBlbmRDaGlsZChzdGFyKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gU0hPT1RJTkcgU1RBUlMgLSBSYW5kb20gaW50ZXJ2YWxzCiAgICAgICAgZnVuY3Rpb24gY3JlYXRlU2hvb3RpbmdTdGFyKCkgewogICAgICAgICAgICBjb25zdCBzdGFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgIHN0YXIuY2xhc3NOYW1lID0gJ3Nob290aW5nLXN0YXInOwogICAgICAgICAgICBzdGFyLnN0eWxlLmxlZnQgPSBNYXRoLnJhbmRvbSgpICogNjAgKyAnJSc7CiAgICAgICAgICAgIHN0YXIuc3R5bGUudG9wID0gTWF0aC5yYW5kb20oKSAqIDQwICsgJyUnOwogICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHN0YXIpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gVHJpZ2dlciBhbmltYXRpb24KICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBzdGFyLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpLCAxMCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBSZW1vdmUgYWZ0ZXIgYW5pbWF0aW9uCiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gc3Rhci5yZW1vdmUoKSwgMTYwMCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIFJhbmRvbSBzaG9vdGluZyBzdGFycyBldmVyeSAzLTggc2Vjb25kcwogICAgICAgIGZ1bmN0aW9uIHNjaGVkdWxlU2hvb3RpbmdTdGFyKCkgewogICAgICAgICAgICBjcmVhdGVTaG9vdGluZ1N0YXIoKTsKICAgICAgICAgICAgc2V0VGltZW91dChzY2hlZHVsZVNob290aW5nU3RhciwgMzAwMCArIE1hdGgucmFuZG9tKCkgKiA1MDAwKTsKICAgICAgICB9CiAgICAgICAgc2V0VGltZW91dChzY2hlZHVsZVNob290aW5nU3RhciwgMjAwMCk7CiAgICAgICAgCiAgICAgICAgLy8gRklSRVdPUktTIC0gT24gc3BlY2lhbCBpbnRlcmFjdGlvbnMgYW5kIHJhbmRvbQogICAgICAgIGNvbnN0IGZpcmV3b3JrQ29sb3JzID0gWwogICAgICAgICAgICAndmFyKC0tZ29sZCknLCAKICAgICAgICAgICAgJ3ZhcigtLXJvc2UpJywgCiAgICAgICAgICAgICd2YXIoLS1nb2xkLWxpZ2h0KScsIAogICAgICAgICAgICAndmFyKC0tcm9zZS1saWdodCknLAogICAgICAgICAgICAnI0ZGRDcwMCcsCiAgICAgICAgICAgICcjRkY2OUI0JwogICAgICAgIF07CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gY3JlYXRlRmlyZXdvcmsoeCwgeSkgewogICAgICAgICAgICBjb25zdCBmaXJld29yayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICBmaXJld29yay5jbGFzc05hbWUgPSAnZmlyZXdvcmsnOwogICAgICAgICAgICBmaXJld29yay5zdHlsZS5sZWZ0ID0geCArICdweCc7CiAgICAgICAgICAgIGZpcmV3b3JrLnN0eWxlLnRvcCA9IHkgKyAncHgnOwogICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZpcmV3b3JrKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIENyZWF0ZSBwYXJ0aWNsZXMKICAgICAgICAgICAgY29uc3QgcGFydGljbGVDb3VudCA9IDEyICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogOCk7CiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFydGljbGVDb3VudDsgaSsrKSB7CiAgICAgICAgICAgICAgICBjb25zdCBwYXJ0aWNsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgICAgcGFydGljbGUuY2xhc3NOYW1lID0gJ2ZpcmV3b3JrLXBhcnRpY2xlJzsKICAgICAgICAgICAgICAgIGNvbnN0IGFuZ2xlID0gKDM2MCAvIHBhcnRpY2xlQ291bnQpICogaTsKICAgICAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gNTAgKyBNYXRoLnJhbmRvbSgpICogODA7CiAgICAgICAgICAgICAgICBjb25zdCB0eCA9IE1hdGguY29zKGFuZ2xlICogTWF0aC5QSSAvIDE4MCkgKiBkaXN0YW5jZTsKICAgICAgICAgICAgICAgIGNvbnN0IHR5ID0gTWF0aC5zaW4oYW5nbGUgKiBNYXRoLlBJIC8gMTgwKSAqIGRpc3RhbmNlOwogICAgICAgICAgICAgICAgcGFydGljbGUuc3R5bGUuc2V0UHJvcGVydHkoJy0tdHgnLCB0eCArICdweCcpOwogICAgICAgICAgICAgICAgcGFydGljbGUuc3R5bGUuc2V0UHJvcGVydHkoJy0tdHknLCB0eSArICdweCcpOwogICAgICAgICAgICAgICAgcGFydGljbGUuc3R5bGUuYmFja2dyb3VuZCA9IGZpcmV3b3JrQ29sb3JzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGZpcmV3b3JrQ29sb3JzLmxlbmd0aCldOwogICAgICAgICAgICAgICAgcGFydGljbGUuc3R5bGUuYm94U2hhZG93ID0gYDAgMCA2cHggJHtwYXJ0aWNsZS5zdHlsZS5iYWNrZ3JvdW5kfWA7CiAgICAgICAgICAgICAgICBmaXJld29yay5hcHBlbmRDaGlsZChwYXJ0aWNsZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIFJlbW92ZSBhZnRlciBhbmltYXRpb24KICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBmaXJld29yay5yZW1vdmUoKSwgMTEwMCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIFJhbmRvbSBmaXJld29ya3MgZXZlcnkgNS0xMiBzZWNvbmRzCiAgICAgICAgZnVuY3Rpb24gc2NoZWR1bGVGaXJld29yaygpIHsKICAgICAgICAgICAgY29uc3QgeCA9IE1hdGgucmFuZG9tKCkgKiB3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOCArIHdpbmRvdy5pbm5lcldpZHRoICogMC4xOwogICAgICAgICAgICBjb25zdCB5ID0gTWF0aC5yYW5kb20oKSAqIHdpbmRvdy5pbm5lckhlaWdodCAqIDAuNSArIDUwOwogICAgICAgICAgICBjcmVhdGVGaXJld29yayh4LCB5KTsKICAgICAgICAgICAgc2V0VGltZW91dChzY2hlZHVsZUZpcmV3b3JrLCA1MDAwICsgTWF0aC5yYW5kb20oKSAqIDcwMDApOwogICAgICAgIH0KICAgICAgICBzZXRUaW1lb3V0KHNjaGVkdWxlRmlyZXdvcmssIDQwMDApOwogICAgICAgIAogICAgICAgIC8vIEZpcmV3b3JrIG9uIHNwaW4gYnV0dG9uIGNsaWNrCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NwaW5CdG4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgICAgICAgIGNyZWF0ZUZpcmV3b3JrKHJlY3QubGVmdCArIHJlY3Qud2lkdGgvMiwgcmVjdC50b3ApOwogICAgICAgIH0pOwogICAgICAgIAogICAgICAgIC8vIFZpZGVvIHBsYXkgYnV0dG9uIC0gZmlyZXdvcmtzICsgY29taW5nIHNvb24gbWVzc2FnZQogICAgICAgIGZ1bmN0aW9uIHBsYXlWaWRlbyhlbGVtZW50KSB7CiAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgICAgICAvLyBDcmVhdGUgbXVsdGlwbGUgZmlyZXdvcmtzCiAgICAgICAgICAgIGNyZWF0ZUZpcmV3b3JrKHJlY3QubGVmdCArIHJlY3Qud2lkdGgvMiwgcmVjdC50b3AgKyByZWN0LmhlaWdodC8yKTsKICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBjcmVhdGVGaXJld29yayhyZWN0LmxlZnQgKyByZWN0LndpZHRoICogMC4zLCByZWN0LnRvcCArIHJlY3QuaGVpZ2h0ICogMC40KSwgMjAwKTsKICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBjcmVhdGVGaXJld29yayhyZWN0LmxlZnQgKyByZWN0LndpZHRoICogMC43LCByZWN0LnRvcCArIHJlY3QuaGVpZ2h0ICogMC40KSwgNDAwKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIFNob3cgY29taW5nIHNvb24gbWVzc2FnZQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndmlkZW9NZXNzYWdlJykuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBDcmVhdGUgc3BhcmtsZSBidXJzdAogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEyOyBpKyspIHsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJrbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgICAgICAgICBzcGFya2xlLmNsYXNzTmFtZSA9ICdzcGFya2xlJzsKICAgICAgICAgICAgICAgICAgICBzcGFya2xlLnRleHRDb250ZW50ID0gWyfinKgnLCAn4q2QJywgJ/CfkqsnLCAn8J+MnycsICfinKYnXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA1KV07CiAgICAgICAgICAgICAgICAgICAgc3BhcmtsZS5zdHlsZS5sZWZ0ID0gKHJlY3QubGVmdCArIE1hdGgucmFuZG9tKCkgKiByZWN0LndpZHRoKSArICdweCc7CiAgICAgICAgICAgICAgICAgICAgc3BhcmtsZS5zdHlsZS50b3AgPSAocmVjdC50b3AgKyBNYXRoLnJhbmRvbSgpICogcmVjdC5oZWlnaHQpICsgJ3B4JzsKICAgICAgICAgICAgICAgICAgICBzcGFya2xlLnN0eWxlLmNvbG9yID0gTWF0aC5yYW5kb20oKSA+IDAuNSA/ICd2YXIoLS1nb2xkKScgOiAndmFyKC0tcm9zZSknOwogICAgICAgICAgICAgICAgICAgIHNwYXJrbGUuc3R5bGUuZm9udFNpemUgPSAnMS41cmVtJzsKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNwYXJrbGUpOwogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gc3BhcmtsZS5yZW1vdmUoKSwgMTAwMCk7CiAgICAgICAgICAgICAgICB9LCBpICogODApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIFNQQVJLTEUgVFJBSUwgb24gbW91c2UgbW92ZSAodGhyb3R0bGVkKQogICAgICAgIGxldCBzcGFya2xlVGhyb3R0bGUgPSBmYWxzZTsKICAgICAgICBjb25zdCBzcGFya2xlRW1vamlzID0gWyfinKgnLCAn4q2QJywgJ/CfkqsnLCAn4pymJywgJ+KYhSddOwogICAgICAgIAogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgaWYgKHNwYXJrbGVUaHJvdHRsZSkgcmV0dXJuOwogICAgICAgICAgICBpZiAoTWF0aC5yYW5kb20oKSA+IDAuMykgcmV0dXJuOyAvLyBPbmx5IDMwJSBvZiBtb3ZlcwogICAgICAgICAgICAKICAgICAgICAgICAgc3BhcmtsZVRocm90dGxlID0gdHJ1ZTsKICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBzcGFya2xlVGhyb3R0bGUgPSBmYWxzZSwgMTAwKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IHNwYXJrbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgc3BhcmtsZS5jbGFzc05hbWUgPSAnc3BhcmtsZSc7CiAgICAgICAgICAgIHNwYXJrbGUudGV4dENvbnRlbnQgPSBzcGFya2xlRW1vamlzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHNwYXJrbGVFbW9qaXMubGVuZ3RoKV07CiAgICAgICAgICAgIHNwYXJrbGUuc3R5bGUubGVmdCA9IGUuY2xpZW50WCArICdweCc7CiAgICAgICAgICAgIHNwYXJrbGUuc3R5bGUudG9wID0gZS5jbGllbnRZICsgJ3B4JzsKICAgICAgICAgICAgc3BhcmtsZS5zdHlsZS5jb2xvciA9IE1hdGgucmFuZG9tKCkgPiAwLjUgPyAndmFyKC0tZ29sZCknIDogJ3ZhcigtLXJvc2UpJzsKICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzcGFya2xlKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gc3BhcmtsZS5yZW1vdmUoKSwgMTAwMCk7CiAgICAgICAgfSk7CiAgICAgICAgCiAgICAgICAgLy8gQ0VMRUJSQVRJT04gQlVSU1Qgb24gZW5lcmd5IHNlbGVjdGlvbgogICAgICAgIGZ1bmN0aW9uIGNlbGVicmF0aW9uQnVyc3QoZWxlbWVudCkgewogICAgICAgICAgICBjb25zdCByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICAgICAgY29uc3QgY2VudGVyWCA9IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyOwogICAgICAgICAgICBjb25zdCBjZW50ZXJZID0gcmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDI7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBDcmVhdGUgbWluaSBmaXJld29yawogICAgICAgICAgICBjcmVhdGVGaXJld29yayhjZW50ZXJYLCBjZW50ZXJZKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIENyZWF0ZSByaW5nIG9mIHNwYXJrbGVzCiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgODsgaSsrKSB7CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBzcGFya2xlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgICAgICAgICAgc3BhcmtsZS5jbGFzc05hbWUgPSAnc3BhcmtsZSc7CiAgICAgICAgICAgICAgICAgICAgc3BhcmtsZS50ZXh0Q29udGVudCA9ICfinKgnOwogICAgICAgICAgICAgICAgICAgIHNwYXJrbGUuc3R5bGUubGVmdCA9IChjZW50ZXJYICsgKE1hdGgucmFuZG9tKCkgLSAwLjUpICogMTAwKSArICdweCc7CiAgICAgICAgICAgICAgICAgICAgc3BhcmtsZS5zdHlsZS50b3AgPSAoY2VudGVyWSArIChNYXRoLnJhbmRvbSgpIC0gMC41KSAqIDYwKSArICdweCc7CiAgICAgICAgICAgICAgICAgICAgc3BhcmtsZS5zdHlsZS5jb2xvciA9ICd2YXIoLS1nb2xkKSc7CiAgICAgICAgICAgICAgICAgICAgc3BhcmtsZS5zdHlsZS5mb250U2l6ZSA9ICcxLjVyZW0nOwogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc3BhcmtsZSk7CiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBzcGFya2xlLnJlbW92ZSgpLCAxMDAwKTsKICAgICAgICAgICAgICAgIH0sIGkgKiA1MCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gQWRkIGNlbGVicmF0aW9uIHRvIEkgQU0gYnV0dG9ucwogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5pYW0tYnRuJykuZm9yRWFjaChidG4gPT4gewogICAgICAgICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGNlbGVicmF0aW9uQnVyc3QodGhpcyk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg==","embed":""}
Momentum Awaits... Are You Ready? | The SHE E~Boss Experience
She believed she could, so she did โœฆ Fortune favors the bold โœฆ Your next chapter is waiting to be written โœฆ Sovereignty begins with a single decision โœฆ The universe rewards those who show up โœฆ Your legacy is calling ~ will you answer? โœฆ Audacity is the currency of queens โœฆ 2026 belongs to the intentional โœฆ I came. Kept calm. Carried on. Now what? โœฆ She believed she could, so she did โœฆ Fortune favors the bold โœฆ Your next chapter is waiting to be written โœฆ Sovereignty begins with a single decision โœฆ The universe rewards those who show up โœฆ Your legacy is calling ~ will you answer? โœฆ Audacity is the currency of queens โœฆ 2026 belongs to the intentional โœฆ I came. Kept calm. Carried on. Now what? โœฆ
โœฆ Momentum Awaits โœฆ

The question isn't what's coming... It's WHO you'll become.

2026 is not just a year. It's a portal. A threshold. An invitation.
But first ~ tell the universe who you are.

โœฆ Spin to Discover Your Energy โœฆ

โœจ
I AM...
Spin to reveal your 2026 energy

~ or choose your energy directly ~

โœฆ A Message For You โœฆ

Before You Step Into 2026...

Let me tell you what's really waiting on the other side

โ–ถ

2:47

"The Sovereign Momentum Manifesto"

โœจ Video launching January 2026 ~ But your momentum starts NOW! โœจ

"This isn't just another year. This is the year you stop renting space in someone else's algorithm and start owning your digital land."

~ Nightingale Mukasa, The SHE E~Boss Solutionist
โœฆ Enter 2026 โœฆ

Your pathway awaits on the other side

~ or if you're not quite ready ~

Okay fine, I'm ready ๐Ÿ’•

Not quite finding your tribe?

Not quite feeling the vibe? Getting strong "I accidentally RSVP'd to my wife's manifestation brunch" energy? ๐Ÿฅ‚โœจ

๐Ÿ”ฅ

The Father's Hearth

"Ah! There you are, good sir! We heard the tapping!"

You are indeed a rare specimen in these parts ~ a masculine intellectual non~AI human. Rest assured, you have NOT stumbled into a parallel dimension, accidentally subscribed to a January journaling workshop, or been mysteriously teleported to a vision board brunch.

You've simply arrived... fashionably early. Like a gentleman does.

"You're not lost. You're not confused. You're pioneering."

The council of kings, builders, and visionary men is being assembled as we speak. Leave your smoke signal below and we shall send word when the fire is lit, the armchairs are warmed, and yes ~ there will be whiskey. ๐Ÿฅƒ

โœฆ SEND SMOKE SIGNAL โœฆ

(Yes, we verified. You are human. The AI would never have asked.
They're too busy writing poetry about feelings.) ๐Ÿค–๐Ÿ“

Build your empire brick by brick โœฆ Clarity is the new currency โœฆ Your digital land is waiting โœฆ Stop renting ~ start owning โœฆ The sovereign architect builds with intention โœฆ Every queen needs her castle โœฆ 2026 is your year of manifestation โœฆ From digital sharecropper to sovereign architect โœฆ Build your empire brick by brick โœฆ Clarity is the new currency โœฆ Your digital land is waiting โœฆ Stop renting ~ start owning โœฆ The sovereign architect builds with intention โœฆ Every queen needs her castle โœฆ 2026 is your year of manifestation โœฆ From digital sharecropper to sovereign architect โœฆ

THE SHE E~BOSS SOLUTIONIST

Founder, The Sovereign Architects

MOMENTUM DIGITAL MEDIA

Dynamic Paradigms & Mentorship Success Academies

Solutions ยท Services ยท Software ยท Strategies ยท Systems

๐Ÿซ–

Seriously?

This isn't the Casino of Life, darling.

The universe doesn't reward indecision.

You still have options, love:

I CAME. KEPT CALM. CARRIED ON. NOW WHAT?

(The wheel will reset at midnight. Patience, grasshopper.)

Image Gallery Grid
T
Please Check Your Email
We Will Be Following Up Shortly
*
*
*

warning