From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tamas K Lengyel Subject: Re: [PATCH 2/2] x86/vm_event: Allow returning i-cache for emulation Date: Thu, 15 Sep 2016 10:36:58 -0600 Message-ID: References: <20160913181223.1459-1-tamas.lengyel@zentific.com> <20160913181223.1459-2-tamas.lengyel@zentific.com> <7f0354d8-9cb2-82f7-5292-e67ce19d2780@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bkZeo-0005es-DC for xen-devel@lists.xenproject.org; Thu, 15 Sep 2016 16:37:02 +0000 Received: by mail-yb0-f195.google.com with SMTP id 79so1763848ybe.1 for ; Thu, 15 Sep 2016 09:37:00 -0700 (PDT) In-Reply-To: <7f0354d8-9cb2-82f7-5292-e67ce19d2780@bitdefender.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Razvan Cojocaru Cc: Kevin Tian , Stefano Stabellini , Jan Beulich , George Dunlap , Andrew Cooper , Julien Grall , Paul Durrant , Jun Nakajima , "xen-devel@lists.xenproject.org" List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBTZXAgMTQsIDIwMTYgYXQgMTo1OCBBTSwgUmF6dmFuIENvam9jYXJ1CjxyY29qb2Nh cnVAYml0ZGVmZW5kZXIuY29tPiB3cm90ZToKPiBPbiAwOS8xMy8yMDE2IDA5OjEyIFBNLCBUYW1h cyBLIExlbmd5ZWwgd3JvdGU6Cj4+IFdoZW4gZW11bGF0aW5nIGluc3RydWN0aW9ucyB0aGUgZW11 bGF0b3IgbWFpbnRhaW5zIGEgc21hbGwgaS1jYWNoZSBmZXRjaGVkCj4+IGZyb20gdGhlIGd1ZXN0 IG1lbW9yeS4gVGhpcyBwYXRjaCBleHRlbmRzIHRoZSB2bV9ldmVudCBpbnRlcmZhY2UgdG8gYWxs b3cKPj4gcmV0dXJuaW5nIHRoaXMgaS1jYWNoZSB2aWEgdGhlIHZtX2V2ZW50IHJlc3BvbnNlIGlu c3RlYWQuCj4+Cj4+IFdoZW4gcmVzcG9uZGluZyB0byBhIFNPRlRXQVJFX0JSRUFLUE9JTlQgZXZl bnQgKElOVDMpIHRoZSBtb25pdG9yIHN1YnNjcmliZXIKPj4gbm9ybWFsbHkgaGFzIHRvIHJlbW92 ZSB0aGUgSU5UMyBmcm9tIG1lbW9yeSAtIHNpbmdsZXN0ZXAgLSBwbGFjZSBiYWNrIElOVDMKPj4g dG8gYWxsb3cgdGhlIGd1ZXN0IHRvIGNvbnRpbnVlIGV4ZWN1dGlvbi4gVGhpcyByb3V0aW5lIGhv d2V2ZXIgaXMgc3VzY2VwdGlibGUKPj4gdG8gYSByYWNlLWNvbmRpdGlvbiBvbiBtdWx0aS12Q1BV IGd1ZXN0cy4gQnkgYWxsb3dpbmcgdGhlIHN1YnNjcmliZXIgdG8gcmV0dXJuCj4+IHRoZSBpLWNh Y2hlIHRvIGJlIHVzZWQgZm9yIGVtdWxhdGlvbiBpdCBjYW4gc2lkZS1zdGVwIHRoZSBwcm9ibGVt IGJ5IHJldHVybmluZwo+PiBhIGNsZWFuIGJ1ZmZlciB3aXRob3V0IHRoZSBJTlQzIHByZXNlbnQu Cj4+Cj4+IEFzIHBhcnQgb2YgdGhpcyBwYXRjaCB3ZSByZW5hbWUgaHZtX21lbV9hY2Nlc3NfZW11 bGF0ZV9vbmUgdG8KPj4gaHZtX2VtdWxhdGVfb25lX3ZtX2V2ZW50IHRvIGJldHRlciByZWZsZWN0 IHRoYXQgaXQgaXMgdXNlZCBpbiB2YXJpb3VzIHZtX2V2ZW50Cj4+IHNjZW5hcmlvcyBub3csIG5v dCBqdXN0IGluIHJlc3BvbnNlIHRvIG1lbV9hY2Nlc3MgZXZlbnRzLgo+Pgo+PiBTaWduZWQtb2Zm LWJ5OiBUYW1hcyBLIExlbmd5ZWwgPHRhbWFzLmxlbmd5ZWxAemVudGlmaWMuY29tPgo+PiAtLS0K Pj4gQ2M6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Cj4+IENjOiBKYW4g QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Cj4+IENjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcu Y29vcGVyM0BjaXRyaXguY29tPgo+PiBDYzogSnVuIE5ha2FqaW1hIDxqdW4ubmFrYWppbWFAaW50 ZWwuY29tPgo+PiBDYzogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+Cj4+IENjOiBH ZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+Cj4+IENjOiBSYXp2YW4g Q29qb2NhcnUgPHJjb2pvY2FydUBiaXRkZWZlbmRlci5jb20+Cj4+IENjOiBTdGVmYW5vIFN0YWJl bGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+Cj4+IENjOiBKdWxpZW4gR3JhbGwgPGp1bGll bi5ncmFsbEBhcm0uY29tPgo+Pgo+PiBOb3RlOiBUaGlzIHBhdGNoIG9ubHkgaGFzIGJlZW4gY29t cGlsZS10ZXN0ZWQuCj4+IC0tLQo+PiAgeGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMgICAgICAg IHwgNDQgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCj4+ICB4ZW4vYXJj aC94ODYvaHZtL2h2bS5jICAgICAgICAgICAgfCAgOSArKysrKy0tLQo+PiAgeGVuL2FyY2gveDg2 L2h2bS92bXgvdm14LmMgICAgICAgIHwgIDEgKwo+PiAgeGVuL2FyY2gveDg2L3ZtX2V2ZW50LmMg ICAgICAgICAgIHwgIDkgKysrKysrKy0KPj4gIHhlbi9jb21tb24vdm1fZXZlbnQuYyAgICAgICAg ICAgICB8ICAxIC0KPj4gIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2VtdWxhdGUuaCB8ICA4ICsr KystLS0KPj4gIHhlbi9pbmNsdWRlL2FzbS14ODYvdm1fZXZlbnQuaCAgICB8ICAzICsrLQo+PiAg eGVuL2luY2x1ZGUvcHVibGljL3ZtX2V2ZW50LmggICAgIHwgMTYgKysrKysrKysrKysrKy0KPj4g IDggZmlsZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCj4+Cj4+ IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYyBiL3hlbi9hcmNoL3g4Ni9o dm0vZW11bGF0ZS5jCj4+IGluZGV4IGNjMjU2NzYuLjUwNGVkMzUgMTAwNjQ0Cj4+IC0tLSBhL3hl bi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0 ZS5jCj4+IEBAIC03Niw5ICs3Niw5IEBAIHN0YXRpYyBpbnQgc2V0X2NvbnRleHRfZGF0YSh2b2lk ICpidWZmZXIsIHVuc2lnbmVkIGludCBzaXplKQo+PiAgICAgIGlmICggY3Vyci0+YXJjaC52bV9l dmVudCApCj4+ICAgICAgewo+PiAgICAgICAgICB1bnNpZ25lZCBpbnQgc2FmZV9zaXplID0KPj4g LSAgICAgICAgICAgIG1pbihzaXplLCBjdXJyLT5hcmNoLnZtX2V2ZW50LT5lbXVsX3JlYWRfZGF0 YS5zaXplKTsKPj4gKyAgICAgICAgICAgIG1pbihzaXplLCBjdXJyLT5hcmNoLnZtX2V2ZW50LT5l bXVsX3JlYWQuc2l6ZSk7Cj4+Cj4+IC0gICAgICAgIG1lbWNweShidWZmZXIsIGN1cnItPmFyY2gu dm1fZXZlbnQtPmVtdWxfcmVhZF9kYXRhLmRhdGEsIHNhZmVfc2l6ZSk7Cj4+ICsgICAgICAgIG1l bWNweShidWZmZXIsIGN1cnItPmFyY2gudm1fZXZlbnQtPmVtdWxfcmVhZC5kYXRhLCBzYWZlX3Np emUpOwo+PiAgICAgICAgICBtZW1zZXQoYnVmZmVyICsgc2FmZV9zaXplLCAwLCBzaXplIC0gc2Fm ZV9zaXplKTsKPj4gICAgICAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKPj4gICAgICB9Cj4+IEBA IC04MjcsNyArODI3LDcgQEAgc3RhdGljIGludCBodm1lbXVsX3JlYWQoCj4+ICAgICAgc3RydWN0 IGh2bV9lbXVsYXRlX2N0eHQgKmh2bWVtdWxfY3R4dCA9Cj4+ICAgICAgICAgIGNvbnRhaW5lcl9v ZihjdHh0LCBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCwgY3R4dCk7Cj4+Cj4+IC0gICAgaWYgKCB1 bmxpa2VseShodm1lbXVsX2N0eHQtPnNldF9jb250ZXh0KSApCj4+ICsgICAgaWYgKCB1bmxpa2Vs eShodm1lbXVsX2N0eHQtPnNldF9jb250ZXh0X2RhdGEpICkKPj4gICAgICAgICAgcmV0dXJuIHNl dF9jb250ZXh0X2RhdGEocF9kYXRhLCBieXRlcyk7Cj4+Cj4+ICAgICAgcmV0dXJuIF9faHZtZW11 bF9yZWFkKAo+PiBAQCAtMTAyOSw3ICsxMDI5LDcgQEAgc3RhdGljIGludCBodm1lbXVsX2NtcHhj aGcoCj4+ICAgICAgc3RydWN0IGh2bV9lbXVsYXRlX2N0eHQgKmh2bWVtdWxfY3R4dCA9Cj4+ICAg ICAgICAgIGNvbnRhaW5lcl9vZihjdHh0LCBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCwgY3R4dCk7 Cj4+Cj4+IC0gICAgaWYgKCB1bmxpa2VseShodm1lbXVsX2N0eHQtPnNldF9jb250ZXh0KSApCj4+ ICsgICAgaWYgKCB1bmxpa2VseShodm1lbXVsX2N0eHQtPnNldF9jb250ZXh0X2RhdGEpICkKPj4g ICAgICB7Cj4+ICAgICAgICAgIGludCByYyA9IHNldF9jb250ZXh0X2RhdGEocF9uZXcsIGJ5dGVz KTsKPj4KPj4gQEAgLTExMjIsNyArMTEyMiw3IEBAIHN0YXRpYyBpbnQgaHZtZW11bF9yZXBfb3V0 cygKPj4gICAgICBwMm1fdHlwZV90IHAybXQ7Cj4+ICAgICAgaW50IHJjOwo+Pgo+PiAtICAgIGlm ICggdW5saWtlbHkoaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dCkgKQo+PiArICAgIGlmICggdW5s aWtlbHkoaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dF9kYXRhKSApCj4+ICAgICAgICAgIHJldHVy biBodm1lbXVsX3JlcF9vdXRzX3NldF9jb250ZXh0KHNyY19zZWcsIHNyY19vZmZzZXQsIGRzdF9w b3J0LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRl c19wZXJfcmVwLCByZXBzLCBjdHh0KTsKPj4KPj4gQEAgLTEyNjQsNyArMTI2NCw3IEBAIHN0YXRp YyBpbnQgaHZtZW11bF9yZXBfbW92cygKPj4gICAgICBpZiAoIGJ1ZiA9PSBOVUxMICkKPj4gICAg ICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwo+Pgo+PiAtICAgIGlmICggdW5saWtl bHkoaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dCkgKQo+PiArICAgIGlmICggdW5saWtlbHkoaHZt ZW11bF9jdHh0LT5zZXRfY29udGV4dF9kYXRhKSApCj4+ICAgICAgewo+PiAgICAgICAgICByYyA9 IHNldF9jb250ZXh0X2RhdGEoYnVmLCBieXRlcyk7Cj4+Cj4+IEBAIC0xNDcwLDcgKzE0NzAsNyBA QCBzdGF0aWMgaW50IGh2bWVtdWxfcmVhZF9pbygKPj4KPj4gICAgICAqdmFsID0gMDsKPj4KPj4g LSAgICBpZiAoIHVubGlrZWx5KGh2bWVtdWxfY3R4dC0+c2V0X2NvbnRleHQpICkKPj4gKyAgICBp ZiAoIHVubGlrZWx5KGh2bWVtdWxfY3R4dC0+c2V0X2NvbnRleHRfZGF0YSkgKQo+PiAgICAgICAg ICByZXR1cm4gc2V0X2NvbnRleHRfZGF0YSh2YWwsIGJ5dGVzKTsKPj4KPj4gICAgICByZXR1cm4g aHZtZW11bF9kb19waW9fYnVmZmVyKHBvcnQsIGJ5dGVzLCBJT1JFUV9SRUFELCB2YWwpOwo+PiBA QCAtMTc5Myw3ICsxNzkzLDE0IEBAIHN0YXRpYyBpbnQgX2h2bV9lbXVsYXRlX29uZShzdHJ1Y3Qg aHZtX2VtdWxhdGVfY3R4dCAqaHZtZW11bF9jdHh0LAo+PiAgICAgICAgICBwZmVjIHw9IFBGRUNf dXNlcl9tb2RlOwo+Pgo+PiAgICAgIGh2bWVtdWxfY3R4dC0+aW5zbl9idWZfZWlwID0gcmVncy0+ ZWlwOwo+PiAtICAgIGlmICggIXZpby0+bW1pb19pbnNuX2J5dGVzICkKPj4gKwo+PiArICAgIGlm ICggdW5saWtlbHkoaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dF9pbnNuKSAmJiBjdXJyLT5hcmNo LnZtX2V2ZW50ICkKPj4gKyAgICB7Cj4+ICsgICAgICAgIGh2bWVtdWxfY3R4dC0+aW5zbl9idWZf Ynl0ZXMgPSBzaXplb2YoY3Vyci0+YXJjaC52bV9ldmVudC0+ZW11bF9pbnNuKTsKPj4gKyAgICAg ICAgbWVtY3B5KGh2bWVtdWxfY3R4dC0+aW5zbl9idWYsICZjdXJyLT5hcmNoLnZtX2V2ZW50LT5l bXVsX2luc24sCj4+ICsgICAgICAgICAgICAgICBodm1lbXVsX2N0eHQtPmluc25fYnVmX2J5dGVz KTsKPj4gKyAgICB9Cj4+ICsgICAgZWxzZSBpZiAoICF2aW8tPm1taW9faW5zbl9ieXRlcyApCj4+ ICAgICAgewo+PiAgICAgICAgICBodm1lbXVsX2N0eHQtPmluc25fYnVmX2J5dGVzID0KPj4gICAg ICAgICAgICAgIGh2bV9nZXRfaW5zbl9ieXRlcyhjdXJyLCBodm1lbXVsX2N0eHQtPmluc25fYnVm KSA/Ogo+PiBAQCAtMTkzMSw3ICsxOTM4LDcgQEAgaW50IGh2bV9lbXVsYXRlX29uZV9tbWlvKHVu c2lnbmVkIGxvbmcgbWZuLCB1bnNpZ25lZCBsb25nIGdsYSkKPj4gICAgICByZXR1cm4gcmM7Cj4+ ICB9Cj4+Cj4+IC12b2lkIGh2bV9tZW1fYWNjZXNzX2VtdWxhdGVfb25lKGVudW0gZW11bF9raW5k IGtpbmQsIHVuc2lnbmVkIGludCB0cmFwbnIsCj4+ICt2b2lkIGh2bV9lbXVsYXRlX29uZV92bV9l dmVudChlbnVtIGVtdWxfa2luZCBraW5kLCB1bnNpZ25lZCBpbnQgdHJhcG5yLAo+PiAgICAgIHVu c2lnbmVkIGludCBlcnJjb2RlKQo+PiAgewo+PiAgICAgIHN0cnVjdCBodm1fZW11bGF0ZV9jdHh0 IGN0eCA9IHt7IDAgfX07Cj4+IEBAIC0xOTQ0LDExICsxOTUxLDE5IEBAIHZvaWQgaHZtX21lbV9h Y2Nlc3NfZW11bGF0ZV9vbmUoZW51bSBlbXVsX2tpbmQga2luZCwgdW5zaWduZWQgaW50IHRyYXBu ciwKPj4gICAgICBjYXNlIEVNVUxfS0lORF9OT1dSSVRFOgo+PiAgICAgICAgICByYyA9IGh2bV9l bXVsYXRlX29uZV9ub193cml0ZSgmY3R4KTsKPj4gICAgICAgICAgYnJlYWs7Cj4+IC0gICAgY2Fz ZSBFTVVMX0tJTkRfU0VUX0NPTlRFWFQ6Cj4+IC0gICAgICAgIGN0eC5zZXRfY29udGV4dCA9IDE7 Cj4+IC0gICAgICAgIC8qIEludGVudGlvbmFsIGZhbGwtdGhyb3VnaC4gKi8KPj4gLSAgICBkZWZh dWx0Ogo+PiArICAgIGNhc2UgRU1VTF9LSU5EX1NFVF9DT05URVhUX0RBVEE6Cj4+ICsgICAgICAg IGN0eC5zZXRfY29udGV4dF9kYXRhID0gMTsKPj4gKyAgICAgICAgcmMgPSBodm1fZW11bGF0ZV9v bmUoJmN0eCk7Cj4+ICsgICAgICAgIGJyZWFrOwo+PiArICAgIGNhc2UgRU1VTF9LSU5EX1NFVF9D T05URVhUX0lOU046Cj4+ICsgICAgICAgIGN0eC5zZXRfY29udGV4dF9pbnNuID0gMTsKPj4gICAg ICAgICAgcmMgPSBodm1fZW11bGF0ZV9vbmUoJmN0eCk7Cj4+ICsgICAgICAgIGJyZWFrOwo+PiAr ICAgIGNhc2UgRU1VTF9LSU5EX05PUk1BTDoKPj4gKyAgICAgICAgcmMgPSBodm1fZW11bGF0ZV9v bmUoJmN0eCk7Cj4+ICsgICAgICAgIGJyZWFrOwo+PiArICAgIGRlZmF1bHQ6Cj4+ICsgICAgICAg IHJldHVybjsKPj4gICAgICB9Cj4+Cj4+ICAgICAgc3dpdGNoICggcmMgKQo+PiBAQCAtMTk4Myw3 ICsxOTk4LDggQEAgdm9pZCBodm1fZW11bGF0ZV9wcmVwYXJlKAo+PiAgICAgIGh2bWVtdWxfY3R4 dC0+Y3R4dC5mb3JjZV93cml0ZWJhY2sgPSAxOwo+PiAgICAgIGh2bWVtdWxfY3R4dC0+c2VnX3Jl Z19hY2Nlc3NlZCA9IDA7Cj4+ICAgICAgaHZtZW11bF9jdHh0LT5zZWdfcmVnX2RpcnR5ID0gMDsK Pj4gLSAgICBodm1lbXVsX2N0eHQtPnNldF9jb250ZXh0ID0gMDsKPj4gKyAgICBodm1lbXVsX2N0 eHQtPnNldF9jb250ZXh0X2RhdGEgPSAwOwo+PiArICAgIGh2bWVtdWxfY3R4dC0+c2V0X2NvbnRl eHRfaW5zbiA9IDA7Cj4+ICAgICAgaHZtZW11bF9nZXRfc2VnX3JlZyh4ODZfc2VnX2NzLCBodm1l bXVsX2N0eHQpOwo+PiAgICAgIGh2bWVtdWxfZ2V0X3NlZ19yZWcoeDg2X3NlZ19zcywgaHZtZW11 bF9jdHh0KTsKPj4gIH0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94 ZW4vYXJjaC94ODYvaHZtL2h2bS5jCj4+IGluZGV4IGNhOTY2NDMuLjc0NjI3OTQgMTAwNjQ0Cj4+ IC0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKPj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9o dm0uYwo+PiBAQCAtNDg5LDEzICs0ODksMTYgQEAgdm9pZCBodm1fZG9fcmVzdW1lKHN0cnVjdCB2 Y3B1ICp2KQo+Pgo+PiAgICAgICAgICAgICAgaWYgKCB2LT5hcmNoLnZtX2V2ZW50LT5lbXVsYXRl X2ZsYWdzICYKPj4gICAgICAgICAgICAgICAgICAgVk1fRVZFTlRfRkxBR19TRVRfRU1VTF9SRUFE X0RBVEEgKQo+PiAtICAgICAgICAgICAgICAgIGtpbmQgPSBFTVVMX0tJTkRfU0VUX0NPTlRFWFQ7 Cj4+ICsgICAgICAgICAgICAgICAga2luZCA9IEVNVUxfS0lORF9TRVRfQ09OVEVYVF9EQVRBOwo+ PiAgICAgICAgICAgICAgZWxzZSBpZiAoIHYtPmFyY2gudm1fZXZlbnQtPmVtdWxhdGVfZmxhZ3Mg Jgo+PiAgICAgICAgICAgICAgICAgICAgICAgIFZNX0VWRU5UX0ZMQUdfRU1VTEFURV9OT1dSSVRF ICkKPj4gICAgICAgICAgICAgICAgICBraW5kID0gRU1VTF9LSU5EX05PV1JJVEU7Cj4+ICsgICAg ICAgICAgICBlbHNlIGlmICggdi0+YXJjaC52bV9ldmVudC0+ZW11bGF0ZV9mbGFncyAmCj4+ICsg ICAgICAgICAgICAgICAgIFZNX0VWRU5UX0ZMQUdfU0VUX0VNVUxfSU5TTl9EQVRBICkKPj4gKyAg ICAgICAgICAgICAgICBraW5kID0gRU1VTF9LSU5EX1NFVF9DT05URVhUX0lOU047Cj4+Cj4+IC0g ICAgICAgICAgICBodm1fbWVtX2FjY2Vzc19lbXVsYXRlX29uZShraW5kLCBUUkFQX2ludmFsaWRf b3AsCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVk1fREVMSVZF Ul9OT19FUlJPUl9DT0RFKTsKPj4gKyAgICAgICAgICAgIGh2bV9lbXVsYXRlX29uZV92bV9ldmVu dChraW5kLCBUUkFQX2ludmFsaWRfb3AsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSFZNX0RFTElWRVJfTk9fRVJST1JfQ09ERSk7Cj4+Cj4+ICAgICAgICAgICAgICB2 LT5hcmNoLnZtX2V2ZW50LT5lbXVsYXRlX2ZsYWdzID0gMDsKPj4gICAgICAgICAgfQo+PiBkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgYi94ZW4vYXJjaC94ODYvaHZtL3Zt eC92bXguYwo+PiBpbmRleCAyNzU5ZTZmLi5kMjE0NzE2IDEwMDY0NAo+PiAtLS0gYS94ZW4vYXJj aC94ODYvaHZtL3ZteC92bXguYwo+PiArKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwo+ PiBAQCAtNTcsNiArNTcsNyBAQAo+PiAgI2luY2x1ZGUgPGFzbS9hbHRwMm0uaD4KPj4gICNpbmNs dWRlIDxhc20vZXZlbnQuaD4KPj4gICNpbmNsdWRlIDxhc20vbW9uaXRvci5oPgo+PiArI2luY2x1 ZGUgPGFzbS92bV9ldmVudC5oPgo+PiAgI2luY2x1ZGUgPHB1YmxpYy9hcmNoLXg4Ni9jcHVpZC5o Pgo+Pgo+PiAgc3RhdGljIGJvb2xfdCBfX2luaXRkYXRhIG9wdF9mb3JjZV9lcHQ7Cj4+IGRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvdm1fZXZlbnQuYyBiL3hlbi9hcmNoL3g4Ni92bV9ldmVudC5j Cj4+IGluZGV4IDM0M2I5YzguLjAzYmVlZDMgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni92 bV9ldmVudC5jCj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni92bV9ldmVudC5jCj4+IEBAIC0yMDksMTEg KzIwOSwxOCBAQCB2b2lkIHZtX2V2ZW50X2VtdWxhdGVfY2hlY2soc3RydWN0IHZjcHUgKnYsIHZt X2V2ZW50X3Jlc3BvbnNlX3QgKnJzcCkKPj4gICAgICAgICAgaWYgKCBwMm1fbWVtX2FjY2Vzc19l bXVsYXRlX2NoZWNrKHYsIHJzcCkgKQo+PiAgICAgICAgICB7Cj4+ICAgICAgICAgICAgICBpZiAo IHJzcC0+ZmxhZ3MgJiBWTV9FVkVOVF9GTEFHX1NFVF9FTVVMX1JFQURfREFUQSApCj4+IC0gICAg ICAgICAgICAgICAgdi0+YXJjaC52bV9ldmVudC0+ZW11bF9yZWFkX2RhdGEgPSByc3AtPmRhdGEu ZW11bF9yZWFkX2RhdGE7Cj4+ICsgICAgICAgICAgICAgICAgdi0+YXJjaC52bV9ldmVudC0+ZW11 bF9yZWFkID0gcnNwLT5kYXRhLmVtdWwucmVhZDsKPj4KPj4gICAgICAgICAgICAgIHYtPmFyY2gu dm1fZXZlbnQtPmVtdWxhdGVfZmxhZ3MgPSByc3AtPmZsYWdzOwo+PiAgICAgICAgICB9Cj4+ICAg ICAgICAgIGJyZWFrOwo+PiArICAgIGNhc2UgVk1fRVZFTlRfUkVBU09OX1NPRlRXQVJFX0JSRUFL UE9JTlQ6Cj4+ICsgICAgICAgIGlmICggcnNwLT5mbGFncyAmIFZNX0VWRU5UX0ZMQUdfU0VUX0VN VUxfSU5TTl9EQVRBICkKPj4gKyAgICAgICAgewo+PiArICAgICAgICAgICAgdi0+YXJjaC52bV9l dmVudC0+ZW11bF9pbnNuID0gcnNwLT5kYXRhLmVtdWwuaW5zbjsKPj4gKyAgICAgICAgICAgIHYt PmFyY2gudm1fZXZlbnQtPmVtdWxhdGVfZmxhZ3MgPSByc3AtPmZsYWdzOwo+PiArICAgICAgICB9 Cj4+ICsgICAgICAgIGJyZWFrOwo+PiAgICAgIGRlZmF1bHQ6Cj4+ICAgICAgICAgIGJyZWFrOwo+ PiAgICAgIH07Cj4+IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3ZtX2V2ZW50LmMgYi94ZW4vY29t bW9uL3ZtX2V2ZW50LmMKPj4gaW5kZXggOTA3YWI0MC4uZDhlZTdmMyAxMDA2NDQKPj4gLS0tIGEv eGVuL2NvbW1vbi92bV9ldmVudC5jCj4+ICsrKyBiL3hlbi9jb21tb24vdm1fZXZlbnQuYwo+PiBA QCAtMzk4LDcgKzM5OCw2IEBAIHZvaWQgdm1fZXZlbnRfcmVzdW1lKHN0cnVjdCBkb21haW4gKmQs IHN0cnVjdCB2bV9ldmVudF9kb21haW4gKnZlZCkKPj4gICAgICAgICAgICogSW4gc29tZSBjYXNl cyB0aGUgcmVzcG9uc2UgdHlwZSBuZWVkcyBleHRyYSBoYW5kbGluZywgc28gaGVyZQo+PiAgICAg ICAgICAgKiB3ZSBjYWxsIHRoZSBhcHByb3ByaWF0ZSBoYW5kbGVycy4KPj4gICAgICAgICAgICov Cj4+IC0KPj4gICAgICAgICAgLyogQ2hlY2sgZmxhZ3Mgd2hpY2ggYXBwbHkgb25seSB3aGVuIHRo ZSB2Q1BVIGlzIHBhdXNlZCAqLwo+PiAgICAgICAgICBpZiAoIGF0b21pY19yZWFkKCZ2LT52bV9l dmVudF9wYXVzZV9jb3VudCkgKQo+PiAgICAgICAgICB7Cj4+IGRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20teDg2L2h2bS9lbXVsYXRlLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9lbXVs YXRlLmgKPj4gaW5kZXggM2FhYmNiZS4uYjUyZjk5ZSAxMDA2NDQKPj4gLS0tIGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9odm0vZW11bGF0ZS5oCj4+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZt L2VtdWxhdGUuaAo+PiBAQCAtMzQsMjAgKzM0LDIyIEBAIHN0cnVjdCBodm1fZW11bGF0ZV9jdHh0 IHsKPj4KPj4gICAgICB1aW50MzJfdCBpbnRyX3NoYWRvdzsKPj4KPj4gLSAgICBib29sX3Qgc2V0 X2NvbnRleHQ7Cj4+ICsgICAgYm9vbF90IHNldF9jb250ZXh0X2RhdGE7Cj4+ICsgICAgYm9vbF90 IHNldF9jb250ZXh0X2luc247Cj4+ICB9Owo+Pgo+PiAgZW51bSBlbXVsX2tpbmQgewo+PiAgICAg IEVNVUxfS0lORF9OT1JNQUwsCj4+ICAgICAgRU1VTF9LSU5EX05PV1JJVEUsCj4+IC0gICAgRU1V TF9LSU5EX1NFVF9DT05URVhUCj4+ICsgICAgRU1VTF9LSU5EX1NFVF9DT05URVhUX0RBVEEsCj4+ ICsgICAgRU1VTF9LSU5EX1NFVF9DT05URVhUX0lOU04KPgo+IFNpbmNlIHRoaXMgYnJlYWtzIGNv bXBpbGF0aW9uIG9mIGV4aXN0aW5nIGNsaWVudHMsIEkgdGhpbmsgd2Ugc2hvdWxkCj4gaW5jcmVt ZW50IHNvbWUgbWFjcm8gdG8gYWxvdyBmb3IgY29tcGlsZS10aW1lIHN3aXRjaGluZyAobWF5YmUK PiBWTV9FVkVOVF9JTlRFUkZBQ0VfVkVSU0lPTj8pLgoKSSdtIG5vdCBzdXJlIEkgZm9sbG93IC0g dGhpcyBpcyBhIFhlbiBpbnRlcm5hbC1vbmx5IGVudW1lcmF0aW9uLiBXaGF0CmtpbmQtb2YgY2xp ZW50cyBhcmUgeW91IHJlZmVycmluZyB0bz8KClRhbWFzCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK