VGh1IEphbiAyOCAxODoxNzowOCAxOTk5ICBKdWtrYSBJaXZvbmVuICA8aWl2b25lbkBpa2kuZmk+CgoJKiBbRmkucmNdIFttYWluLmNdIFtNYWtlZmlsZS5pbl0KCUFkZGVkIEZpbm5pc2ggbGFuZ3VhZ2Ugc3VwcG9ydC4KClN1biBPY3QgMTggMTQ6MTE6NDIgMTk5OCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KCgkqIERhLnJjLCBEZS5yYywgRW4ucmMsIEZyLnJjLCBTdy5yYywgVE9ETywgZGlhbG9nLmMsIGRpYWxvZy5oLCBsYW5ndWFnZS5jLCBsYW5ndWFnZS5oLCBsaWNlbnNlLmMsIGxpY2Vuc2UuaCwgbWFpbi5jLCBtYWluLmgsIG5vdGVwYWQucmM6CglNYXJjZWwgQmF1ciA8bWJhdXJAZzI2LmV0aHouY2g+CglGaXhlZCBHZXRPcGVuRmlsZU5hbWUgYW5kIEdldFNhdmVGaWxlTmFtZSBkaWFsb2dzLgoJRml4ZWQgUHJpbnQgZGlhbG9nIGFuZCBpbnRyb2R1Y2VkIFByaW50ZXJTZXR1cCBkaWFsb2cuCglGaXhlZCBQYWdlU2V0dXAgZGlhbG9nOiB2YWx1ZXMgYXJlIG5vdyBjb3JyZWN0bHkgaW5pdGlhbGl6ZWQgKGhhZCB0bwoJY2hhbmdlIGFsbCAqLnJjIGZpbGVzKQoJUHJlbGltaW5hcnkgZmlsZSBkcmFnIGFuZCBkcm9wIHN1cHBvcnQuCgpGcmkgSnVuIDEyIDIzOjI5OjQ0IDE5OTggIE1hcmNlbCBCYXVyICA8bWJhdXJAZzI2LmV0aHouY2g+CiAgICAgICAgKiBGaXhlZCBHZXREYXRlRm9ybWF0KCktPkdldFRpbWVGb3JtYXQoKSBmb3IgbG9jYWxlIHRpbWUuCgpNb24gTWF5IDI1IDE0OjMwOjAwIDE5OTggIEhlbnJpayBPbHNlbiA8aGVucmlrQGlhZXN0ZS5kaz4KICAgICAgICAqIFtEYS5yY10KICAgICAgICBBZGRlZCBEYW5pc2ggbGFuZ3VhZ2Ugc3VwcG9ydC4KCkZyaSBNYXkgMTUgMjM6NTk6MjIgMTk5OCAgTWFyY2VsIEJhdXIgPG1iYXVyQGcyNi5ldGh6LmNoPgogICAgICAgICogRGF0ZS9UaW1lIG5vdyB1c2VzIGxvY2FsZS1zcGVjaWZpYyBmb3JtYXRzCiAgICAgICAgKiBMYW5ndWFnZS1zcGVjaWZpYyB3aW5kb3cgY2FwdGlvbiwgZGlzcGxheXMgZmlsZSBiZWluZyBlZGl0ZWQuCiAgICAgICAgKiBTdGFydGVkIHdpdGggcGFyc2luZyBvZiBjb21tYW5kIGxpbmUgc2V0dGluZ3MKICAgICAgICAqIFN0YXJ0ZWQgd2l0aCBEb09wZW5GaWxlLCBEb0Nsb3NlRmlsZSwgRG9TYXZlRmlsZSBsb2dpY3MKICAgICAgICAqIFByb21wdCB1c2VyIHRvIHNhdmUgc2V0dGluZ3Mgd2hlbiBjbG9zaW5nIGEgZmlsZQogICAgICAgICAgLT4gSW50cm9kdWNlZCBhIG5ldyBtZXNzYWdlIGJveCAobm90IHlldCBmaW5pc2hlZCkKICAgICAgICAqIEZpeGVkIG1pbm9yIGZlYXR1cmVzIChtaXNzaW5nIElEUyBpbiBtYWluLmgsIC4uLikKClN1biBNYXIgMjkgMjA6Mjk6NDEgMTk5OCAgTGF1cmVudCBCdWZmbGVyIDxsYXVyZW50QGJsdWV3aW4uY2g+CiAgICAgICAgKiBbRnIucmNdCiAgICAgICAgQWRkZWQgRnJlbmNoIGxhbmd1YWdlIHN1cHBvcnQuCgpGcmkgRmViIDI3IDIxOjAzOjM3IDE5OTggIEthcmwgQmFja3N0cvZtIDxrYXJsX2JAZ2VvY2l0aWVzLmNvbT4KICAgICAgICAqIEZpeGVkIHNvbWUgbWlub3IgZmVhdHVyZXMuCgpTYXQgRmViIDE0IDE3OjQyOjI5IDE5OTggIEthcmwgQmFja3N0cvZtIDxrYXJsX2JAZ2VvY2l0aWVzLmNvbT4KICAgICAgICAqIE5FVyBbbGFuZ3VhZ2UuY10gW2xhbmd1YWdlLmhdCiAgICAgICAgVGFrZXMgY2FyZSBvZiBhbGwgbGFuZ3VhZ2UgcmVsYXRlZCBzdHVmZi4KICAgICAgICBBIG5ldyBbcHJvZ3JhbXNdIGluIC53aW5lcmMgaXMgaW4gdXNlLgoKVHVlIEZlYiAxMCAyMzozNDowOCAxOTk4ICBNYXJjZWwgQmF1ciA8bWJhdXJAZzI2LmV0aHouY2g+CiAgICAgICAgKiBGaXhlZCBicm9rZW4gbGFuZ3VhZ2UgbWVudXMKCkZyaSBGZWIgMDYgMjMuNTQuMzUgMTk5OCAgS2FybCBCYWNrc3Ry9m0gPGthcmxfYkBnZW9jaXRpZXMuY29tPgogICAgICAgICogW21haW4uY10gW21haW4uaF0gW25vdGVwYWQucmNdCiAgICAgICAgRml4ZWQgbGFuZ3VhZ2Ugc3VwcG9ydCBmb3IgbWVudXMuICAgICAKICAgICAgICAqIE5FVyBbZGlhbG9nLmNdIFtkaWFsb2cuaF0KICAgICAgICBNb3ZlZCBhbGwgbWVudSBhbmQgZGlhbG9nIHJlbGF0ZWQgc3R1ZmYgaGVyZS4KClN1biBKYW4gMTggMjM6MDU6MDQgMTk5OCAgS2FybCBCYWNrc3Ry9m0gPGthcmxfYkBnZW9jaXRpZXMuY29tPgogICAgICAgICogW1N3LnJjXQogICAgICAgIEFkZGVkL3VwZGF0ZWQgU3dlZGlzaCBsYW5ndWFnZSBzdXBwb3J0LgoKVHVlIERlYyAyMyAyMzozNTowNCAxOTk3ICBNYXJjZWwgQmF1ciA8bWJhdXJAZzI2LmV0aHouY2g+CiAgICAgICAgKiBGaXhlZCBsb3RzIG9mIGJ1Z3Mgdy8gcmVzb3VyY2VzIGluICoucmMKICAgICAgICAqIG1vdmVkIFtub3RlcGFkLmNdIGludG8gW21haW4uY10KICAgICAgICAqIG1vdmVkIFtub3RlcGFkLmhdIGludG8gW21haW4uaF0KICAgICAgIApGcmkgRGVjIDA1IDIwOjUxOjU1IDE5OTcgIE1hcmNlbCBCYXVyIDxtYmF1ckBnMjYuZXRoei5jaD4KICAgICAgICAqIFtub3RlcGFkLmNdIFtub3RlcGFkLmhdIFtub3RlcGFkLnJjXSBbRW4ucmNdIFtEZS5yY10KICAgICAgICAgIFtsaWNlbnNlLmNdIFtsaWNlbnNlLmhdIFtMaWNlbnNlX0VuLmNdCiAgICAgICAgICBbUkVBRE1FXSBbVE9ET10gW0NoYW5nZUxvZ10KICAgICAgICAgIE9yaWdpbmFscyBieSBNYXJjZWwgQmF1cgo=