From mboxrd@z Thu Jan 1 00:00:00 1970 From: Petre Ovidiu PIRCALABU Subject: Re: [PATCH v3] x86/altp2m: Added xc_altp2m_set_mem_access_multi() Date: Mon, 9 Oct 2017 10:10:14 +0000 Message-ID: <1507543814.1981.30.camel@bitdefender.com> References: <1507218137-29833-1-git-send-email-ppircalabu@bitdefender.com> <59D7BE9102000078001833B3@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <59D7BE9102000078001833B3@prv-mh.provo.novell.com> Content-Language: en-US Content-ID: <2C24CB01928A2F4C8D261C25347FC049@bitdefender.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: "JBeulich@suse.com" Cc: "tim@xen.org" , "sstabellini@kernel.org" , "wei.liu2@citrix.com" , "rcojocaru@bitdefender.com" , "konrad.wilk@oracle.com" , "George.Dunlap@eu.citrix.com" , "andrew.cooper3@citrix.com" , "ian.jackson@eu.citrix.com" , "xen-devel@lists.xen.org" List-Id: xen-devel@lists.xenproject.org T24gVmksIDIwMTctMTAtMDYgYXQgMDk6MzQgLTA2MDAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiA+ IA0KPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiBPbiAwNS4xMC4xNyBhdCAxNzo0MiwgPHBwaXJj YWxhYnVAYml0ZGVmZW5kZXIuY29tPiB3cm90ZToNCj4gPiBAQCAtNDQ1MSw2ICs0NDUzLDcgQEAg c3RhdGljIGludCBkb19hbHRwMm1fb3AoDQo+ID4gwqDCoMKgwqDCoGNhc2UgSFZNT1BfYWx0cDJt X2Rlc3Ryb3lfcDJtOg0KPiA+IMKgwqDCoMKgwqBjYXNlIEhWTU9QX2FsdHAybV9zd2l0Y2hfcDJt Og0KPiA+IMKgwqDCoMKgwqBjYXNlIEhWTU9QX2FsdHAybV9zZXRfbWVtX2FjY2VzczoNCj4gPiAr wqDCoMKgwqBjYXNlIEhWTU9QX2FsdHAybV9zZXRfbWVtX2FjY2Vzc19tdWx0aToNCj4gV2FzIGl0 IGFncmVlZCB0aGF0IHRoaXMsIGp1c3QgbGlrZSBvdGhlcnMgKG1hbnkgd3JvbmdseSwgSSB0aGlu aykgaXMNCj4gc3VwcG9zZWQgdG8gYmUgaW52b2thYmxlIGJ5IHRoZSBhZmZlY3RlZCBkb21haW4g aXRzZWxmPyBJdHMgbm9uLQ0KPiBhbHRwMm0gY291bnRlcnBhcnQgaXMgYSBETV9QUklWIG9wZXJh dGlvbi4gSWYgdGhlIG9uZSBoZXJlIGlzDQo+IG1lYW50IHRvIGJlIGRpZmZlcmVudCwgSSB0aGlu ayB0aGUgY29tbWl0IG1lc3NhZ2Ugc2hvdWxkIHNheSB3aHkuDQpXaWxsIGJlIGNvcnJlY3RlZCBp biB0aGUgbmV3IHBhdGNoIGl0ZXJhdGlvbi4NCj4gDQo+ID4gDQo+ID4gQEAgLTQ1NjgsNiArNDU3 MSwzMCBAQCBzdGF0aWMgaW50IGRvX2FsdHAybV9vcCgNCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGEu dS5zZXRfbWVtX2FjY2Vzcy52aWV3KTsNCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqBicmVhazsNCj4g PiDCoA0KPiA+ICvCoMKgwqDCoGNhc2UgSFZNT1BfYWx0cDJtX3NldF9tZW1fYWNjZXNzX211bHRp Og0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgaWYgKCBhLnUuc2V0X21lbV9hY2Nlc3NfbXVsdGkucGFk IHx8DQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYS51LnNldF9tZW1fYWNjZXNzX211 bHRpLm9wYXF1ZSA+PQ0KPiA+IGEudS5zZXRfbWVtX2FjY2Vzc19tdWx0aS5uciApDQo+ID4gK8Kg wqDCoMKgwqDCoMKgwqB7DQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJjID0gLUVJTlZB TDsNCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnJlYWs7DQo+ID4gK8KgwqDCoMKgwqDC oMKgwqB9DQo+ID4gK8KgwqDCoMKgwqDCoMKgwqByYyA9IHAybV9zZXRfbWVtX2FjY2Vzc19tdWx0 aShkLA0KPiA+IGEudS5zZXRfbWVtX2FjY2Vzc19tdWx0aS5wZm5fbGlzdCwNCj4gPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGEudS5zZXRfbWVtX2FjY2Vzc19tdWx0aS5hY2MNCj4gPiBlc3NfbGlzdCwN Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGEudS5zZXRfbWVtX2FjY2Vzc19tdWx0aS5uciwNCj4g PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGEudS5zZXRfbWVtX2FjY2Vzc19tdWx0aS5vcGENCj4gPiBx dWUsDQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBNRU1PUF9DTURfTUFTSywNCj4gPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGEudS5zZXRfbWVtX2FjY2Vzc19tdWx0aS52aWUNCj4gPiB3KTsNCj4gPiAr wqDCoMKgwqDCoMKgwqDCoGlmICggcmMgPiAwICkNCj4gPiArwqDCoMKgwqDCoMKgwqDCoHsNCj4g PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYS51LnNldF9tZW1fYWNjZXNzX211bHRpLm9wYXF1 ZSA9IHJjOw0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoIF9fY29weV90b19ndWVz dChhcmcsICZhLCAxKSApDQo+IF9fY29weV9maWVsZF90b19ndWVzdCgpIHdvdWxkIHN1ZmZpY2Ug aGVyZSBhZmFpY3QuDQoNCldpbGwgYmUgY29ycmVjdGVkIGluIHRoZSBuZXcgcGF0Y2ggaXRlcmF0 aW9uLg0KPiANCj4gPiANCj4gPiBAQCAtNDU4Niw2ICs0NjEzLDUzIEBAIHN0YXRpYyBpbnQgZG9f YWx0cDJtX29wKA0KPiA+IMKgwqDCoMKgwqByZXR1cm4gcmM7DQo+ID4gwqB9DQo+ID4gwqANCj4g PiArc3RhdGljIGludCBjb21wYXRfYWx0cDJtX29wKA0KPiA+ICvCoMKgwqDCoFhFTl9HVUVTVF9I QU5ETEVfUEFSQU0odm9pZCkgYXJnKQ0KPiA+ICt7DQo+ID4gK8KgwqDCoMKgc3RydWN0IGNvbXBh dF9odm1fYWx0cDJtX29wIGE7DQo+ID4gK8KgwqDCoMKgdW5pb24NCj4gPiArwqDCoMKgwqB7DQo+ ID4gK8KgwqDCoMKgwqDCoMKgwqBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGhuZDsNCj4g PiArwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCB4ZW5faHZtX2FsdHAybV9vcCAqYWx0cDJtX29wOw0K PiA+ICvCoMKgwqDCoH0gbmF0Ow0KPiA+ICsNCj4gPiArwqDCoMKgwqBpZiAoICFodm1fYWx0cDJt X3N1cHBvcnRlZCgpICkNCj4gPiArwqDCoMKgwqDCoMKgwqDCoHJldHVybiAtRU9QTk9UU1VQUDsN Cj4gPiArDQo+ID4gK8KgwqDCoMKgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJmEsIGFyZywgMSkgKQ0K PiA+ICvCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1FRkFVTFQ7DQo+ID4gKw0KPiA+ICvCoMKgwqDC oGlmICggYS5wYWQxIHx8IGEucGFkMiB8fA0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAoYS52ZXJz aW9uICE9IEhWTU9QX0FMVFAyTV9JTlRFUkZBQ0VfVkVSU0lPTikgKQ0KPiA+ICvCoMKgwqDCoMKg wqDCoMKgcmV0dXJuIC1FSU5WQUw7DQo+IFdoeSBkb2Vzbid0IHN1ZmZpY2Ugd2hhdCBkb19hbHRw Mm1fb3AoKSBkb2VzPw0KVGhlIHNhbml0eSBjaGVja3MgYXJlIHRoZSBzYW1lIGFzIGZvciBkb19h bHRwMm1fb3AgYnV0IGl0IHdhbnRlZCB0bw0KY2hlY2sgYXMgZWFybHkgYXMgcG9zc2libGUgZm9y IGludmFsaWQgYXJndW1lbnRzLg0KPiANCj4gPiANCj4gPiArwqDCoMKgwqBzZXRfeGVuX2d1ZXN0 X2hhbmRsZShuYXQuaG5kLCBDT01QQVRfQVJHX1hMQVRfVklSVF9CQVNFKTsNCj4gPiArDQo+ID4g K8KgwqDCoMKgc3dpdGNoICggYS5jbWQgKQ0KPiA+ICvCoMKgwqDCoHsNCj4gPiArwqDCoMKgwqDC oMKgwqDCoGNhc2UgSFZNT1BfYWx0cDJtX3NldF9tZW1fYWNjZXNzX211bHRpOg0KPiA+ICsjZGVm aW5lIFhMQVRfaHZtX2FsdHAybV9zZXRfbWVtX2FjY2Vzc19tdWx0aV9ITkRMX3Bmbl9saXN0KF9k XywNCj4gPiBfc18pOyBcDQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGd1ZXN0X2Zyb21f Y29tcGF0X2hhbmRsZSgoX2RfKS0+cGZuX2xpc3QsIChfc18pLQ0KPiA+ID5wZm5fbGlzdCkNCj4g PiArI2RlZmluZSBYTEFUX2h2bV9hbHRwMm1fc2V0X21lbV9hY2Nlc3NfbXVsdGlfSE5ETF9hY2Nl c3NfbGlzdChfZF8sDQo+ID4gX3NfKTsgXA0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBn dWVzdF9mcm9tX2NvbXBhdF9oYW5kbGUoKF9kXyktPmFjY2Vzc19saXN0LCAoX3NfKS0NCj4gPiA+ YWNjZXNzX2xpc3QpDQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFhMQVRfaHZtX2FsdHAy bV9zZXRfbWVtX2FjY2Vzc19tdWx0aSgmbmF0LmFsdHAybV9vcC0NCj4gPiA+dS5zZXRfbWVtX2Fj Y2Vzc19tdWx0aSwNCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCZhLnUuc2V0X21lbV9hY2Nlc3NfbXVsdGkpOw0KPiA+ICsjdW5kZWYgWExBVF9odm1fYWx0cDJt X3NldF9tZW1fYWNjZXNzX211bHRpX0hORExfcGZuX2xpc3QNCj4gPiArI3VuZGVmIFhMQVRfaHZt X2FsdHAybV9zZXRfbWVtX2FjY2Vzc19tdWx0aV9ITkRMX2FjY2Vzc19saXN0DQo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGJyZWFrOw0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgZGVmYXVsdDoN Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGRvX2FsdHAybV9vcChhcmcpOw0K PiA+ICvCoMKgwqDCoH0NCj4gPiArDQo+ID4gK8KgwqDCoMKgbmF0LmFsdHAybV9vcC0+dmVyc2lv bsKgwqA9IGEudmVyc2lvbjsNCj4gPiArwqDCoMKgwqBuYXQuYWx0cDJtX29wLT5jbWTCoMKgwqDC oMKgwqA9IGEuY21kOw0KPiA+ICvCoMKgwqDCoG5hdC5hbHRwMm1fb3AtPmRvbWFpbsKgwqDCoD0g YS5kb21haW47DQo+ID4gK8KgwqDCoMKgbmF0LmFsdHAybV9vcC0+cGFkMcKgwqDCoMKgwqA9IGEu cGFkMTsNCj4gPiArwqDCoMKgwqBuYXQuYWx0cDJtX29wLT5wYWQywqDCoMKgwqDCoD0gYS5wYWQy Ow0KPiBXaHkgZG8geW91IGRvIHRoaXMgYnkgaGFuZCwgcmF0aGVyIHRoYW4gdXNpbmcgWExBVF8q KCkgbWFjcm9zDQo+IHdoaWNoIGF0IHRoZSBzYW1lIHRpbWUgY2hlY2sgdGhhdCB0aGUgZmllbGQg c2l6ZXMgbWF0Y2g/DQpBY3R1YWxseSwgdGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggdGhlIFhMQVRf aHZtX2FsdHAybV9vcCBtYWNybw0KZ2VuZXJhdGlvbi4NClRoZSBjdXJyZW50IGRlZmluaXRpb24g b2bCoHN0cnVjdCB4ZW5faHZtX2FsdHAybV9vcCB1c2VzICJzdHJ1Y3RzIiBhcw0KbWVtYmVyIG9m IHRoZSB1bmlvbi4gSW4gdGhpcyBjYXNlIHRoZSBlbnVtIHZhbHVlcyBmb3Igc3dpdGNoKHUpIGFy ZSBub3QNCmdlbmVyYXRlZC4NCg0KI2RlZmluZSBYTEFUX2h2bV9hbHRwMm1fb3AoX2RfLCBfc18p IGRvIHsgXA0KwqDCoMKgwqAoX2RfKS0+dmVyc2lvbiA9IChfc18pLT52ZXJzaW9uOyBcDQrCoMKg wqDCoChfZF8pLT5jbWQgPSAoX3NfKS0+Y21kOyBcDQrCoMKgwqDCoChfZF8pLT5kb21haW4gPSAo X3NfKS0+ZFdpbGwgYmUgY29ycmVjdGVkIGluIHRoZSBuZXcgcGF0Y2gNCml0ZXJhdGlvbi5vbWFp bjsgXA0KwqDCoMKgwqAoX2RfKS0+cGFkMSA9IChfc18pLT5wYWQxOyBcDQrCoMKgwqDCoChfZF8p LT5wYWQyID0gKF9zXyktPnBhZDI7IFwNCsKgwqDCoMKgc3dpdGNoICh1KSB7IFwNCsKgwqDCoMKg Y2FzZSBYTEFUX2h2bV9hbHRwMm1fb3BfdV9kb21haW5fc3RhdGU6IFwNCsKgwqDCoMKgwqDCoMKg wqBYTEFUX2h2bV9hbHRwMm1fZG9tYWluX3N0YXRlKCYoX2RfKS0+dS5kb21haW5fc3RhdGUsICYo X3NfKS0NCj51LmRvbWFpbl9zdGF0ZSk7IFwNCsKgwqDCoMKgwqDCoMKgwqBicmVhazsgXA0KwqDC oMKgwqBjYXNlDQpYTEFUX2h2bV9hbHhlbl9odm1fYWx0cDJtX3NldF9tZW1fYWNjZXNzX211bHRp X3R0cDJtX29wX3VfZW5hYmxlX25vdGlmeQ0KOiBcDQrCoMKgwqDCoMKgwqDCoMKgWExBVF9odm1f YWx0cDJtX3ZjcHVfZW5hYmxlX25vdGlmeSgmKF9kXyktPnUuZW5hYmxlX25vdGlmeSwNCiYoX3Nf KS0+dS5lbmFibGVfbm90aWZ5eGVuX2h2bV9hbHRwMm1fc2V0X21lbV9hY2Nlc3NfbXVsdGlfdCk7 IFwNCsKgwqDCoMKgwqDCoMKgwqBicmVhazsgXA0KwqDCoMKgwqBjYXNlIFhMQVRfaHZtX2FsdHAy bV9vcF91X3ZpZXc6IFwNCsKgwqDCoMKgwqDCoMKgwqBYTEFUX2h2bV9hbHRwMm1fdmlldygmKF9k XyktPnUudmlldywgJihfc18pLT51LnZpZXcpOyBcDQrCoMKgwqDCoMKgwqDCoMKgYnJlYWs7IFxX aWxsIGJlIGNvcnJlY3RlZCBpbiB0aGUgbmV3IHBhdGNoIGl0ZXJhdGlvbi4NCsKgwqDCoMKgY2Fz ZSBYTEFUX2h2bV9hbHRwMm1fb3BfdV9zZXRfbWVtX2FjY2VzczogXA0KwqDCoMKgwqDCoMKgwqDC oFhMQVRfaHZtX2FsdHAybV9zZXRfbWVtX2FjY2VzcygmKF9kXyktPnUuc2V0X21lbV9hY2Nlc3Ms DQomKF9zXyktPnUuc2V0X21lbV9hY2Nlc3MpOyBcDQrCoMKgwqDCoMKgwqDCoMKgYnJlYWs7IFwN CsKgwqDCoMKgY2FzZSBYTEFUX2h2bV9hbHRwMm1fb3BfdV9jaGFuZ2VfZ2ZuOiBcDQrCoMKgwqDC oMKgwqDCoMKgWExBVF9odm1fYWx0cDJtX2NoYW5nZV9nZm4oJihfZF8pLT51LmNoYW5nZV9nZm4s ICYoX3NfKS0NCj51LmNoYW5nZV9nZm4pOyBcDQrCoMKgwqDCoMKgwqDCoMKgYnJlYWs7IFwNCsKg wqDCoMKgY2FzZSBYTEFUX2h2bV9hbHRwMm1fb3BfdV9zZXRfbWVtX2FjY2Vzc19tdWx0aTogXA0K wqDCoMKgwqDCoMKgwqDCoFhMQVRfaHZtX2FsdHAybV9zZXRfbWVtX2FjY2Vzc19tdWx0aSgmKF9k XyktDQo+dS5zZXRfbWVtX2FjY2Vzc19tdWx0aSwgJihfc18pLT51LnNldF9tZW1fYWNjZXNzX211 bHRpKTsgXA0KwqDCoMKgwqDCoMKgwqDCoGJyZWFrOyBcDQrCoMKgwqDCoGNhc2UgWExBVF9odm1f YWx0cDJtX29wX3VfcGFkOiBcDQrCoMKgwqDCoMKgwqDCoMKgKF9kXyktPnUucGFkID0gKF9zXykt PnUucGFkOyBcDQrCoMKgwqDCoMKgwqDCoMKgYnJlYWs7IFwNCsKgwqDCoMKgfSBcDQp9IHdoaWxl ICgwKQ0KDQpJZiB0aGUgInN0cnVjdHMiIGFyZSByZXBsYWNlZCB3aXRoIHRoZSBjb3JyZXNwb25k aW5nIHR5cGVkZWZzIGluIHRoZQ0KZGVmaW5pdGlvbiBvZiB4ZW5faHZtX2FsdHAybV9vcA0KKGUu Zy7CoHhlbl9odm1fYWx0cDJtX3NldF9tZW1fYWNjZXNzX211bHRpX3QgaW5zdGVhZCBvZsKgc3Ry dWN0DQp4ZW5faHZtX2FsdHAybV9kb21haW5fc3RhdGUpLCB0aGUgZW51bSB2YWx1ZXMgYXJlIGdl bmVyYXRlZCBjb3JyZWN0bHkNCmJ1dCB0aGUgWExBVF9odm1fYWx0cDJtX3NldF9tZW1fYWNjZXNz X211bHRpIG1hY3JvIGlzIHJlcGxhY2VkIHdpdGggYQ0Kc2ltcGxlIGFzc2lnbm1lbnQsIHRodXMg YnJlYWtpbmcgdGhlIGJ1aWxkICgNCmNvbXBhdF9odm1fYWx0cDJtX3NldF9tZW1fYWNjZXNzX211 bHRpX3QNCnRvwqB4ZW5faHZtX2FsdHAybV9zZXRfbWVtX2FjY2Vzc19tdWx0aV90IGFzc2lnbm1l bnQpDQoNCmVudW0gWExBVF9odm1fYWx0cDJtX29wX3Ugew0KwqDCoMKgwqBYTEFUX2h2bV9hbHRw Mm1fb3BfdV9kb21haW5fc3RhdGUsDQrCoMKgwqDCoFhMQVRfaHZtX2FsdHAybV9vcF91X2VuYWJs ZV9ub3RpZnksDQrCoMKgwqDCoFhMQVRfaHZtX2FsdHAybV9vcF91X3ZpZXcsDQrCoMKgwqDCoFhM QVRfaHZtX2FsdHAybV9vcF91X3NldF9tZW1fYWNjZXNzLA0KwqDCoMKgwqBYTEFUX2h2bV9hbHRw Mm1fb3BfdV9jaGFuZ2VfZ2ZuLA0KwqDCoMKgwqBYTEFUX2h2bV9hbHRwMm1fb3BfdV9zZXRfbWVt X2FjY2Vzc19tdWx0aSwNCsKgwqDCoMKgWExBVF9odm1fYWx0cDJtX29wX3VfcGFkLA0KfTsNCg0K I2RlZmluZSBYTEFUX2h2bV9hbHRwMm1fb3AoX2RfLCBfc18pIGRvIHsgXA0KwqDCoMKgwqAoX2Rf KS0+dmVyc2lvbiA9IChfc18pLT52ZXJzaW9uOyBcDQrCoMKgwqDCoChfZF8pLT5jbWQgPSAoX3Nf KS0+Y21kOyBcDQrCoMKgwqDCoChfZF8pLT5kb21haW4gPSAoX3NfKS0+ZG9tYWluOyBcDQrCoMKg wqDCoChfZF8pLT5wYWQxID0gKF9zXyktPnBhZDE7IFwNCsKgwqDCoMKgKF9kXyktPnBhZDIgPSAo X3NfKS0+cGFkMjsgXA0KwqDCoMKgwqBzd2l0Y2ggKHUpIHsgXA0KwqDCoMKgwqBjYXNlIFhMQVRf aHZtX2FsdHAybV9vcF91X2RvbWFpbl9zdGF0ZTogXA0KwqDCoMKgwqDCoMKgwqDCoChfZF8pLT51 LmRvbWFpbl9zdGF0ZSA9IChfc18pLT51LmRvbWFpbl9zdGF0ZTsgXA0KwqDCoMKgwqDCoMKgwqDC oGJyZWFrOyBcDQrCoMKgwqDCoGNhc2UgWExBVF9odm1fYWx0cDJtX29wX3VfZW5hYmxlX25vdGlm eTogXA0KwqDCoMKgwqDCoMKgwqDCoChfZF8pLT51LmVuYWJsZV9ub3RpZnkgPSAoX3NfKS0+dS5l bmFibGVfbm90aWZ5OyBcDQrCoMKgwqDCoMKgwqDCoMKgYnJlYWs7IFwNCsKgwqDCoMKgY2FzZSBY TEFUX2h2bV9hbHRwMm1fb3BfdV92aWV3OiBcDQrCoMKgwqDCoMKgwqDCoMKgKF9kXyktPnUudmll dyA9IChfc18pLT51LnZpZXc7IFwNCsKgwqDCoMKgwqDCoMKgwqBicmVhazsgXA0KwqDCoMKgwqBj YXNlIFhMQVRfaHZtX2FsdHAybV9vcF91X3NldF9tZW1fYWNjZXNzOiBcDQrCoMKgwqDCoMKgwqDC oMKgKF9kXyktPnUuc2V0X21lbV9hY2Nlc3MgPSAoX3NfKS0+dS5zZXRfbWVtX2FjY2VzczsgXA0K wqDCoMKgwqDCoMKgwqDCoGJyZWFrOyBcDQrCoMKgwqDCoGNhc2UgWExBVF9odm1fYWx0cDJtX29w X3VfY2hhbmdlX2dmbjogXA0KwqDCoMKgwqDCoMKgwqDCoChfZF8pLT51LmNoYW5nZV9nZm4gPSAo X3NfKS0+dS5jaGFuZ2VfZ2ZuOyBcDQrCoMKgwqDCoMKgwqDCoMKgYnJlYWs7IFwNCsKgwqDCoMKg Y2FzZSBYTEFUX2h2bV9hbHRwMm1fb3BfdV9zZXRfbWVtX2FjY2Vzc19tdWx0aTogXA0KwqDCoMKg wqDCoMKgwqDCoChfZF8pLT51LnNldF9tZW1fYWNjZXNzX211bHRpID0gKF9zXyktPnUuc2V0X21l bV9hY2Nlc3NfbXVsdGk7DQpcDQrCoMKgwqDCoMKgwqDCoMKgYnJlYWs7IFwNCsKgwqDCoMKgY2Fz ZSBYTEFUX2h2bV9hbHRwMm1fb3BfdV9wYWQ6IFwNCsKgwqDCoMKgwqDCoMKgwqAoX2RfKS0+dS5w YWQgPSAoX3NfKS0+dS5wYWQ7IFwNCsKgwqDCoMKgwqDCoMKgwqBicmVhazsgXA0KwqDCoMKgwqB9 IFwNCn0gd2hpbGUgKDApDQoNCkF0IHRoaXMgc3RhZ2UgdGhlIGVhc2llc3QgYXBwcm9hY2ggd2Fz IHRvIHNldCB0aGUgdmFsdWVzIGJ5IGhhbmQuDQo+IA0KPiA+IA0KPiA+IEBAIC00NzMzLDcgKzQ4 MDcsNyBAQCBsb25nIGRvX2h2bV9vcCh1bnNpZ25lZCBsb25nIG9wLA0KPiA+IFhFTl9HVUVTVF9I QU5ETEVfUEFSQU0odm9pZCkgYXJnKQ0KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoGJyZWFrOw0KPiA+ IMKgDQo+ID4gwqDCoMKgwqDCoGNhc2UgSFZNT1BfYWx0cDJtOg0KPiA+IC3CoMKgwqDCoMKgwqDC oMKgcmMgPSBkb19hbHRwMm1fb3AoYXJnKTsNCj4gPiArwqDCoMKgwqDCoMKgwqDCoHJjID0gKCBj dXJyZW50LT5oY2FsbF9jb21wYXQgKSA/IGNvbXBhdF9hbHRwMm1fb3AoYXJnKSA6DQo+ID4gZG9f YWx0cDJtX29wKGFyZyk7DQo+IFBvaW50bGVzcyBwYXJlbnRoZXNlcyBhbmQgc3BhY2VzLiBQbHVz LCB0byBiZSBob25lc3QsIEknbSBub3QgcmVhbGx5DQo+IGhhcHB5IGFib3V0IHRoaXMgYWQgaG9j IGNvbXBhdCBoYW5kbGluZywgYnV0IGF0IHRoZSBzYW1lIHRpbWUgSQ0KPiBjYW4ndCBzdWdnZXN0 IGEgdHJ1bHkgYmV0dGVyIGFsdGVybmF0aXZlLg0KPiANClJlbW92ZWQgdGhlIHNwYWNlcy4gVGhl IGFsdGVybmF0aXZlIChlLmcuIGNoYW5naW5nIGh2bV9oeXBlcmNhbGxfdGFibGUNCnRvIHVzZcKg Q09NUEFUX0NBTEwoaHZtX29wKSBhbmQgZGVmaW5pbmcgYSBjb21wYXRfaHZtX29wIGZ1bmN0aW9u IGluIGNoDQpvbmx5IGFsdHAybSBpcyBoYW5kbGVkIGRpZmZlcmVudGx5KSBpcyB1Z2xpZXIgaW4g bXkgb3BpbmlvbiBiZWNhdXNlDQpvbmx5IEhWTU9QX2FsdHAybV9zZXRfbWVtX2FjY2Vzc19tdWx0 aSByZXF1aXJlcyBDT01QQVQgYXJndW1lbnQNCnRyYW5zbGF0aW9uLg0KwqANCj4gPiANCj4gPiAt LS0gYS94ZW4vaW5jbHVkZS94bGF0LmxzdA0KPiA+ICsrKyBiL3hlbi9pbmNsdWRlL3hsYXQubHN0 DQo+ID4gQEAgLTczLDYgKzczLDcgQEANCj4gPiDCoD8JdmNwdV9odm1fY29udGV4dAkJaHZtL2h2 bV92Y3B1LmgNCj4gPiDCoD8JdmNwdV9odm1feDg2XzMyCQkJaHZtL2h2bV92Y3B1LmgNCj4gPiDC oD8JdmNwdV9odm1feDg2XzY0CQkJaHZtL2h2bV92Y3B1LmgNCj4gPiArIQlodm1fYWx0cDJtX3Nl dF9tZW1fYWNjZXNzX211bHRpCWh2bS9odm1fb3AuaA0KPiBQbGVhc2UgaW5zZXJ0IGFscGhhYmV0 aWNhbGx5LCBzb3J0ZWQgYnkgZmlsZW5hbWUgKGFuZCB0aGVuIHN0cnVjdHVyZQ0KPiBuYW1lKS4N CldpbGwgYmUgY29ycmVjdGVkIGluIHRoZSBuZXcgcGF0Y2ggaXRlcmF0aW9uLg0KPiANCj4gPiAN Cj4gPiAtLS0gYS94ZW4vdG9vbHMvY29tcGF0LWJ1aWxkLWhlYWRlci5weQ0KPiA+ICsrKyBiL3hl bi90b29scy9jb21wYXQtYnVpbGQtaGVhZGVyLnB5DQo+ID4gQEAgLTE2LDYgKzE2LDcgQEAgcGF0 cyA9IFsNCj4gPiDCoCBbIHIiKDh8MTZ8MzJ8NjQpX2NvbXBhdF90KFteXHddfCQpIiwgciJcMV90 XDIiIF0sDQo+ID4gwqAgWyByIihefFteXHddKXhlbl8/KFx3KilfY29tcGF0X3QoW15cd118JCQp IiwgciJcMWNvbXBhdF9cMl90XDMiDQo+ID4gXSwNCj4gPiDCoCBbIHIiKF58W15cd10pWEVOXz8i LCByIlwxQ09NUEFUXyIgXSwNCj4gPiArIFsgciIoXnxbXlx3XSlIVk1NRU1fPyIsIHIiXDFDT01Q QVRfSFZNTUVNXyIgXSwNCj4gV2hhdCBpcyB0aGlzIG5lZWRlZCBmb3I/IEkgY2FuJ3QgZmluZCBh bnkgaW5zdGFuY2Ugb2YgSFZNTUVNXyoNCj4gZWxzZXdoZXJlIGluIHRoZSBwYXRjaC4gQXMgeW91 IGNhbiBzZWUsIHNvIGZhciB0aGVyZSBhcmUgb25seQ0KPiBwcmV0dHkgZ2VuZXJpYyB0b2tlbnMg YmVpbmcgcmVwbGFjZWQgaGVyZS4NCj4gDQpXaXRob3V0IHRoaXMsIGJvdGggaHZtbWVtX3R5cGVf dCBhbmQgaHZtbWVtX3R5cGVfY29tcGF0X3QgZW51bXMgd2lsbA0KZGVmaW5lIHRoZSBzYW1lIHZh bHVlcyAoZS5nLiDCoEhWTU1FTV9yYW1fcncsKSByZXN1bHRpbmcgaW4gYSBjb21waWxlDQplcnJv ci4gQnkgYWRkaW5nIHRoaXMgdHJhbnNsYXRpb24gd2Ugd2lsbCBoYXZlIGEgQ09NUEFUX0hWTU1F TSB2YWx1ZQ0KZm9yIGVhY2ggSFZNTUVNXyB2YWx1ZSBkZWZpbmVkIGluIHB1YmxpYy9odm0vaHZt X29wLmgpIChlLmcuDQpIVk1NRU1fcmFtX3J3IC0+IENPTVBBVF9IVk1NRU1fcmFtX3J3KQ0KDQpN YW55IHRoYW5rcyBmb3IgeW91ciBzdXBwb3J0LMKgDQpQZXRyZQ0KPiBKYW4NCj4gDQo+IF9fX19f X19fX19fX19fX19fX19fX19fXw0KPiBUaGlzIGVtYWlsIHdhcyBzY2FubmVkIGJ5IEJpdGRlZmVu ZGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=