IyBQZW9wbGUgd2hvIGhhdmUgYWdyZWVkIHRvIG9uZSBvZiB0aGUgQ0xBcyBhbmQgY2FuIGNvbnRyaWJ1dGUgcGF0Y2hlcy4NCiMgVGhlIEFVVEhPUlMgZmlsZSBsaXN0cyB0aGUgY29weXJpZ2h0IGhvbGRlcnM7IHRoaXMgZmlsZQ0KIyBsaXN0cyBwZW9wbGUuICBGb3IgZXhhbXBsZSwgR29vZ2xlIGVtcGxveWVlcyBhcmUgbGlzdGVkIGhlcmUNCiMgYnV0IG5vdCBpbiBBVVRIT1JTLCBiZWNhdXNlIEdvb2dsZSBob2xkcyB0aGUgY29weXJpZ2h0Lg0KIw0KIyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9jbGEvaW5kaXZpZHVhbA0KIyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9jbGEvY29ycG9yYXRlDQojDQojIE5hbWVzIHNob3VsZCBiZSBhZGRlZCB0byB0aGlzIGZpbGUgYXM6DQojICAgICBOYW1lIDxlbWFpbCBhZGRyZXNzPg0KDQpHb29nbGUgSW5jLg0KIE5pY29sYXMgQ2FwZW5zIDxjYXBuQGdvb2dsZS5jb20+DQogQWxleGlzIEjpdHUgPHN1Z29pQGdvb2dsZS5jb20+DQogU2hhbm5vbiBXb29kcyA8c2hhbm5vbndvb2RzQGdvb2dsZS5jb20+DQogQ29yZW50aW4gV2FsbGV6IDxjd2FsbGV6QGdvb2dsZS5jb20+DQogR3JlZyBIYXJ0bWFuIDxnaGFydG1hbkBnb29nbGUuY29tPg0KIFBpbmctSGFvIFd1IDxwaW5naGFvQGdvb2dsZS5jb20+DQogTWF4aW1lIEdy6WdvaXJlIDxtZ3JlZ29pcmVAZ29vZ2xlLmNvbT4NCiBWZXJhbmlrYSBMaWF1a2V2aWNoIDx2ZXJhbmlrYUBnb29nbGUuY29tPg0KIEpvaG4gQmF1bWFuIDxqYmF1bWFuQGdvb2dsZS5jb20+DQogS2V1biBTb28gWWltIDx5aW1AZ29vZ2xlLmNvbT4NCiBKb2huIFNoZXUgPHNoZXVAZ29vZ2xlLmNvbT4NCiBQaGlsaXBwZSBIYW1lbCA8aGFtZWxwaGlAZ29vZ2xlLmNvbT4NCiBEYW5pZWwgVG95YW1hIDxrZW5qaXRveWFtYUBnb29nbGUuY29tPg0KIE1lbmctTGluIFd1IDxtYXJsZXltb29AZ29vZ2xlLmNvbT4NCg0KVHJhbnNHYW1pbmcgSW5jLg0KIE5pY29sYXMgQ2FwZW5zDQogR2F2cmllbCBTdGF0ZQ0KIEppbSBNYWNBcnRodXINCiBEYW5pZWwgS29jaA0KIEx1dGhlciBKb2huc29uDQogUm9iIFN0ZXBpbnNraQ==