T24gMDEvMDIvMjAxOSBhdCAwOTo0NywgQ2hyaXN0b3BoIEhlbGx3aWcgd3JvdGU6DQo+IFRoZSBE
TUEgQVBJIGdlbmVyYWxseSByZWxpZXMgb24gYSBzdHJ1Y3QgZGV2aWNlIHRvIHdvcmsgcHJvcGVy
bHksIGFuZA0KPiBvbmx5IGJhcmVseSB3b3JrcyB3aXRob3V0IG9uZSBmb3IgbGVnYWN5IHJlYXNv
bnMuICBQYXNzIHRoZSBlYXNpbHkNCj4gYXZhaWxhYmxlIHN0cnVjdCBkZXZpY2UgZnJvbSB0aGUg
cGxhdGZvcm1fZGV2aWNlIHRvIHJlbWVkeSB0aGlzLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogQ2hy
aXN0b3BoIEhlbGx3aWcgPGhjaEBsc3QuZGU+DQoNCkFja2VkLWJ5OiBOaWNvbGFzIEZlcnJlIDxu
aWNvbGFzLmZlcnJlQG1pY3JvY2hpcC5jb20+DQoNCj4gLS0tDQo+ICAgZHJpdmVycy9uZXQvZXRo
ZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYyB8IDggKysrKy0tLS0NCj4gICAxIGZpbGUgY2hhbmdl
ZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2Ry
aXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhl
cm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jDQo+IGluZGV4IDJiMjg4MjYxNWU4Yi4uNjFhMjc5NjNm
MWQxIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFp
bi5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMNCj4g
QEAgLTM2NzMsOSArMzY3Myw5IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBhdDkxZXRoZXJfc3RhcnRf
eG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLA0KPiAgIAkJLyogU3RvcmUgcGFja2V0IGluZm9ybWF0
aW9uICh0byBmcmVlIHdoZW4gVHggY29tcGxldGVkKSAqLw0KPiAgIAkJbHAtPnNrYiA9IHNrYjsN
Cj4gICAJCWxwLT5za2JfbGVuZ3RoID0gc2tiLT5sZW47DQo+IC0JCWxwLT5za2JfcGh5c2FkZHIg
PSBkbWFfbWFwX3NpbmdsZShOVUxMLCBza2ItPmRhdGEsIHNrYi0+bGVuLA0KPiAtCQkJCQkJCURN
QV9UT19ERVZJQ0UpOw0KPiAtCQlpZiAoZG1hX21hcHBpbmdfZXJyb3IoTlVMTCwgbHAtPnNrYl9w
aHlzYWRkcikpIHsNCj4gKwkJbHAtPnNrYl9waHlzYWRkciA9IGRtYV9tYXBfc2luZ2xlKCZscC0+
cGRldi0+ZGV2LCBza2ItPmRhdGEsDQo+ICsJCQkJCQkgIHNrYi0+bGVuLCBETUFfVE9fREVWSUNF
KTsNCj4gKwkJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKCZscC0+cGRldi0+ZGV2LCBscC0+c2tiX3Bo
eXNhZGRyKSkgew0KPiAgIAkJCWRldl9rZnJlZV9za2JfYW55KHNrYik7DQo+ICAgCQkJZGV2LT5z
dGF0cy50eF9kcm9wcGVkKys7DQo+ICAgCQkJbmV0ZGV2X2VycihkZXYsICIlczogRE1BIG1hcHBp
bmcgZXJyb3JcbiIsIF9fZnVuY19fKTsNCj4gQEAgLTM3NjUsNyArMzc2NSw3IEBAIHN0YXRpYyBp
cnFyZXR1cm5fdCBhdDkxZXRoZXJfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkNCj4g
ICAJCWlmIChscC0+c2tiKSB7DQo+ICAgCQkJZGV2X2tmcmVlX3NrYl9pcnEobHAtPnNrYik7DQo+
ICAgCQkJbHAtPnNrYiA9IE5VTEw7DQo+IC0JCQlkbWFfdW5tYXBfc2luZ2xlKE5VTEwsIGxwLT5z
a2JfcGh5c2FkZHIsDQo+ICsJCQlkbWFfdW5tYXBfc2luZ2xlKCZscC0+cGRldi0+ZGV2LCBscC0+
c2tiX3BoeXNhZGRyLA0KPiAgIAkJCQkJIGxwLT5za2JfbGVuZ3RoLCBETUFfVE9fREVWSUNFKTsN
Cj4gICAJCQlkZXYtPnN0YXRzLnR4X3BhY2tldHMrKzsNCj4gICAJCQlkZXYtPnN0YXRzLnR4X2J5
dGVzICs9IGxwLT5za2JfbGVuZ3RoOw0KPiANCg0KDQotLSANCk5pY29sYXMgRmVycmUNCg=