QXV0aG9ycyBvZiBHTlUgTVAgKGluIGNocm9ub2xvZ2ljYWwgb3JkZXIgb2YgaW5pdGlhbCBjb250cmlidXRpb24pCgpUb3JiavZybiBHcmFubHVuZAlNYWluIGF1dGhvcgpKb2huIEFtYW5hdGlkZXMJCU9yaWdpbmFsIHZlcnNpb24gb2YgbXB6L3BwcmltZV9wLmMKUGF1bCBaaW1tZXJtYW5uCQltcG4vZ2VuZXJpYy9tdWxfZmZ0LmMsIGRjX2RpdnJlbV9uLmMsIHJvb3RyZW0uYywKCQkJb2xkIG1wei9wb3dtLmMsIG9sZCB0b29tMyBjb2RlLgpLZW4gV2ViZXIJCW1wbi9nZW5lcmljL2JkaXZtb2QuYywgb2xkIG1wbi9nZW5lcmljL2djZC5jCkJlbm5ldCBZZWUJCW1wei9qYWNvYmkuYyBtcHovbGVnZW5kcmUuYwpBbmRyZWFzIFNjaHdhYgkJbXBuL202OGsvbHNoaWZ0LlMsIG1wbi9tNjhrL3JzaGlmdC5TClJvYmVydCBIYXJsZXkJCU9sZCBtcG4vZ2VuZXJpYy9tdWxfbi5jLCBmaWxlcyBpbiBtcG4vYXJtCkxpbnVzIE5vcmRiZXJnCQlSYW5kb20gbnVtYmVyIGZyYW1ld29yaywgb3JpZ2luYWwgYXV0b2NvbmZlcnkKS2VudCBCb29ydHoJCU1hY09TIDkgcG9ydApLZXZpbiBSeWRlCQlNb3N0IHg4NiBhc3NlbWJseSwgbmV3IGF1dG9jb25mZXJ5LCBhbmQgY291bnRsZXNzIG90aGVyCgkJCXRoaW5ncyAocGxlYXNlIHNlZSB0aGUgR01QIG1hbnVhbCBmb3IgY29tcGxldGUgbGlzdCkKR2VyYXJkbyBCYWxsYWJpbwlnbXB4eC5oIGFuZCBDKysgaXN0cmVhbSBpbnB1dApQZWRybyBHaW1lbm8JCU1lcnNlbm5lIFR3aXN0ZXIgcmFuZG9tIGdlbmVyYXRvciwgb3RoZXIgcmFuZG9tIG51bWJlcgoJCQlyZXZpc2lvbnMKSmFzb24gTW94aGFtCQlOZXcgbXB6L2ZhY191aS5jIGFuZCBnZW4tZmFjX3VpLmMKTmllbHMgTfZsbGVyCQltcG4vZ2VuZXJpYy9oZ2NkMi5jLCBnY2QuYywgZ2NkZXh0LmMsIG1hdHJpeDIyX211bC5jLAoJCQloZ2NkLmMsIGdjZGV4dF8xLmMsIGdjZF9zdWJkaXZfc3RlcC5jLCBnY2RfbGVobWVyLmMsCgkJCWdjZGV4dF9zdWJkaXZfc3RlcC5jLCBnY2RleHRfbGVobWVyLmMsCgkJCXRvb21faW50ZXJwb2xhdGVfN3B0cywgbXB6L25leHRwcmltZS5jLgpNYXJjbyBCb2RyYXRvCQltcG4vZ2VuZXJpYy90b29tNDRfbXVsLmMsIHRvb200X3Nxci5jLCB0b29tNTNfbXVsLmMsCgkJCXRvb202Ml9tdWwuYwpEYXZpZCBIYXJ2ZXkJCW1wbi94ODZfNjQvbXVsX2Jhc2VjYXNlLmFzbS4K