From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: Re: [RFC PATCH 28/49] ARM: new VGIC: Add GICv2 MMIO handling framework Date: Mon, 19 Feb 2018 12:23:12 +0000 Message-ID: <11d4c9c8-89db-d56f-98f1-81d1af7d23dc@linaro.org> References: <20180209143937.28866-1-andre.przywara@linaro.org> <20180209143937.28866-29-andre.przywara@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1enkTV-0007HH-Ds for xen-devel@lists.xenproject.org; Mon, 19 Feb 2018 12:23:17 +0000 Received: by mail-wr0-x244.google.com with SMTP id f14so4986260wre.8 for ; Mon, 19 Feb 2018 04:23:15 -0800 (PST) In-Reply-To: Content-Language: en-GB List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Julien Grall , Stefano Stabellini , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org SGksCgpPbiAxNi8wMi8xOCAxNTozOSwgSnVsaWVuIEdyYWxsIHdyb3RlOgo+IEhpIEFuZHJlLAo+ IAo+IE9uIDA5LzAyLzE4IDE0OjM5LCBBbmRyZSBQcnp5d2FyYSB3cm90ZToKPj4gQ3JlYXRlIHZn aWMtbW1pby12Mi5jIHRvIGRlc2NyaWJlIEdJQ3YyIGVtdWxhdGlvbiBzcGVjaWZpYyBoYW5kbGVy cwo+PiB1c2luZyB0aGUgaW5pdGlhbGl6ZXIgbWFjcm9zIHByb3ZpZGVkIGJ5IHRoZSBWR0lDIE1N SU8gZnJhbWV3b3JrLgo+PiBQcm92aWRlIGEgZnVuY3Rpb24gdG8gcmVnaXN0ZXIgdGhlIEdJQ3Yy IGRpc3RyaWJ1dG9yIHJlZ2lzdGVycyB0bwo+PiB0aGUgWGVuIE1NSU8gZnJhbWV3b3JrLgo+PiBU aGUgYWN0dWFsIGhhbmRsZXIgZnVuY3Rpb25zIGFyZSBzdGlsbCBzdHVicyBpbiB0aGlzIHBhdGNo Lgo+Pgo+PiBUaGlzIGlzIGJhc2VkIG9uIExpbnV4IGNvbW1pdCBmYjg0OGRiMzk2NjEsIHdyaXR0 ZW4gYnkgQW5kcmUgUHJ6eXdhcmEuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IEFuZHJlIFByenl3YXJh IDxhbmRyZS5wcnp5d2FyYUBsaW5hcm8ub3JnPgo+PiAtLS0KPj4gwqAgeGVuL2FyY2gvYXJtL3Zn aWMvdmdpYy1tbWlvLXYyLmMgfCA4Mwo+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCj4+IMKgIHhlbi9hcmNoL2FybS92Z2ljL3ZnaWMtbW1pby5jwqDCoMKgIHwgMjYg KysrKysrKysrKysrKwo+PiDCoCB4ZW4vYXJjaC9hcm0vdmdpYy92Z2ljLW1taW8uaMKgwqDCoCB8 wqAgMiArCj4+IMKgIHhlbi9hcmNoL2FybS92Z2ljL3ZnaWMuaMKgwqDCoMKgwqDCoMKgwqAgfMKg IDIgKwo+PiDCoCA0IGZpbGVzIGNoYW5nZWQsIDExMyBpbnNlcnRpb25zKCspCj4+IMKgIGNyZWF0 ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vdmdpYy92Z2ljLW1taW8tdjIuYwo+Pgo+PiBkaWZm IC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlvLXYyLmMKPj4gYi94ZW4vYXJjaC9h cm0vdmdpYy92Z2ljLW1taW8tdjIuYwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAw MDAwMDAwMDAwLi5lZTY4NWE1YTA3Cj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIveGVuL2FyY2gv YXJtL3ZnaWMvdmdpYy1tbWlvLXYyLmMKPj4gQEAgLTAsMCArMSw4MyBAQAo+PiArLyoKPj4gKyAq IFZHSUN2MiBNTUlPIGhhbmRsaW5nIGZ1bmN0aW9ucwo+PiArICogSW1wb3J0ZWQgZnJvbSBMaW51 eCAoIm5ldyIgS1ZNIFZHSUMpIGFuZCBoZWF2aWx5IGFkYXB0ZWQgdG8gWGVuLgo+PiArICoKPj4g KyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5Cj4+ICsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwo+PiArICogcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCj4+ICsgKgo+PiArICogVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4+ICsgKiBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv Zgo+PiArICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLsKgIFNlZSB0aGUKPj4gKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCj4+ICsgKi8KPj4gKwo+PiArI2luY2x1ZGUgPHhlbi9iaXRvcHMuaD4KPj4gKyNp bmNsdWRlIDx4ZW4vc2NoZWQuaD4KPj4gKyNpbmNsdWRlIDx4ZW4vc2l6ZXMuaD4KPj4gKyNpbmNs dWRlIDxhc20vYXJtX3ZnaWMuaD4KPj4gKwo+PiArI2luY2x1ZGUgInZnaWMuaCIKPj4gKyNpbmNs dWRlICJ2Z2ljLW1taW8uaCIKPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCB2Z2ljX3JlZ2lz dGVyX3JlZ2lvbiB2Z2ljX3YyX2Rpc3RfcmVnaXN0ZXJzW10gPSB7Cj4+ICvCoMKgwqAgUkVHSVNU RVJfREVTQ19XSVRIX0xFTkdUSChHSUNEX0NUTFIsCj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX21t aW9fcmVhZF9yYXosIHZnaWNfbW1pb193cml0ZV93aSwgMTIsCj4+ICvCoMKgwqDCoMKgwqDCoCBW R0lDX0FDQ0VTU18zMmJpdCksCj4+ICvCoMKgwqAgUkVHSVNURVJfREVTQ19XSVRIX0JJVFNfUEVS X0lSUShHSUNEX0lHUk9VUFIsCj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX21taW9fcmVhZF9yYW8s IHZnaWNfbW1pb193cml0ZV93aSwgTlVMTCwgTlVMTCwgMSwKPj4gK8KgwqDCoMKgwqDCoMKgIFZH SUNfQUNDRVNTXzMyYml0KSwKPj4gK8KgwqDCoCBSRUdJU1RFUl9ERVNDX1dJVEhfQklUU19QRVJf SVJRKEdJQ0RfSVNFTkFCTEVSLAo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19tbWlvX3JlYWRfcmF6 LCB2Z2ljX21taW9fd3JpdGVfd2ksIE5VTEwsIE5VTEwsIDEsCj4+ICvCoMKgwqDCoMKgwqDCoCBW R0lDX0FDQ0VTU18zMmJpdCksCj4+ICvCoMKgwqAgUkVHSVNURVJfREVTQ19XSVRIX0JJVFNfUEVS X0lSUShHSUNEX0lDRU5BQkxFUiwKPj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfbW1pb19yZWFkX3Jh eiwgdmdpY19tbWlvX3dyaXRlX3dpLCBOVUxMLCBOVUxMLCAxLAo+PiArwqDCoMKgwqDCoMKgwqAg VkdJQ19BQ0NFU1NfMzJiaXQpLAo+PiArwqDCoMKgIFJFR0lTVEVSX0RFU0NfV0lUSF9CSVRTX1BF Ul9JUlEoR0lDRF9JU1BFTkRSLAo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19tbWlvX3JlYWRfcmF6 LCB2Z2ljX21taW9fd3JpdGVfd2ksIE5VTEwsIE5VTEwsIDEsCj4+ICvCoMKgwqDCoMKgwqDCoCBW R0lDX0FDQ0VTU18zMmJpdCksCj4+ICvCoMKgwqAgUkVHSVNURVJfREVTQ19XSVRIX0JJVFNfUEVS X0lSUShHSUNEX0lDUEVORFIsCj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX21taW9fcmVhZF9yYXos IHZnaWNfbW1pb193cml0ZV93aSwgTlVMTCwgTlVMTCwgMSwKPj4gK8KgwqDCoMKgwqDCoMKgIFZH SUNfQUNDRVNTXzMyYml0KSwKPj4gK8KgwqDCoCBSRUdJU1RFUl9ERVNDX1dJVEhfQklUU19QRVJf SVJRKEdJQ0RfSVNBQ1RJVkVSLAo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19tbWlvX3JlYWRfcmF6 LCB2Z2ljX21taW9fd3JpdGVfd2ksIE5VTEwsIE5VTEwsIDEsCj4+ICvCoMKgwqDCoMKgwqDCoCBW R0lDX0FDQ0VTU18zMmJpdCksCj4+ICvCoMKgwqAgUkVHSVNURVJfREVTQ19XSVRIX0JJVFNfUEVS X0lSUShHSUNEX0lDQUNUSVZFUiwKPj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfbW1pb19yZWFkX3Jh eiwgdmdpY19tbWlvX3dyaXRlX3dpLCBOVUxMLCBOVUxMLCAxLAo+PiArwqDCoMKgwqDCoMKgwqAg VkdJQ19BQ0NFU1NfMzJiaXQpLAo+PiArwqDCoMKgIFJFR0lTVEVSX0RFU0NfV0lUSF9CSVRTX1BF Ul9JUlEoR0lDRF9JUFJJT1JJVFlSLAo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19tbWlvX3JlYWRf cmF6LCB2Z2ljX21taW9fd3JpdGVfd2ksIE5VTEwsIE5VTEwsIDgsCj4+ICvCoMKgwqDCoMKgwqDC oCBWR0lDX0FDQ0VTU18zMmJpdCB8IFZHSUNfQUNDRVNTXzhiaXQpLAo+PiArwqDCoMKgIFJFR0lT VEVSX0RFU0NfV0lUSF9CSVRTX1BFUl9JUlEoR0lDRF9JVEFSR0VUU1IsCj4+ICvCoMKgwqDCoMKg wqDCoCB2Z2ljX21taW9fcmVhZF9yYXosIHZnaWNfbW1pb193cml0ZV93aSwgTlVMTCwgTlVMTCwg OCwKPj4gK8KgwqDCoMKgwqDCoMKgIFZHSUNfQUNDRVNTXzMyYml0IHwgVkdJQ19BQ0NFU1NfOGJp dCksCj4+ICvCoMKgwqAgUkVHSVNURVJfREVTQ19XSVRIX0JJVFNfUEVSX0lSUShHSUNEX0lDRkdS LAo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19tbWlvX3JlYWRfcmF6LCB2Z2ljX21taW9fd3JpdGVf d2ksIE5VTEwsIE5VTEwsIDIsCj4+ICvCoMKgwqDCoMKgwqDCoCBWR0lDX0FDQ0VTU18zMmJpdCks Cj4+ICvCoMKgwqAgUkVHSVNURVJfREVTQ19XSVRIX0xFTkdUSChHSUNEX1NHSVIsCj4+ICvCoMKg wqDCoMKgwqDCoCB2Z2ljX21taW9fcmVhZF9yYXosIHZnaWNfbW1pb193cml0ZV93aSwgNCwKPj4g K8KgwqDCoMKgwqDCoMKgIFZHSUNfQUNDRVNTXzMyYml0KSwKPj4gK8KgwqDCoCBSRUdJU1RFUl9E RVNDX1dJVEhfTEVOR1RIKEdJQ0RfQ1BFTkRTR0lSLAo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19t bWlvX3JlYWRfcmF6LCB2Z2ljX21taW9fd3JpdGVfd2ksIDE2LAo+PiArwqDCoMKgwqDCoMKgwqAg VkdJQ19BQ0NFU1NfMzJiaXQgfCBWR0lDX0FDQ0VTU184Yml0KSwKPj4gK8KgwqDCoCBSRUdJU1RF Ul9ERVNDX1dJVEhfTEVOR1RIKEdJQ0RfU1BFTkRTR0lSLAo+PiArwqDCoMKgwqDCoMKgwqAgdmdp Y19tbWlvX3JlYWRfcmF6LCB2Z2ljX21taW9fd3JpdGVfd2ksIDE2LAo+PiArwqDCoMKgwqDCoMKg wqAgVkdJQ19BQ0NFU1NfMzJiaXQgfCBWR0lDX0FDQ0VTU184Yml0KSwKPj4gK307Cj4+ICsKPj4g K3Vuc2lnbmVkIGludCB2Z2ljX3YyX2luaXRfZGlzdF9pb2RldihzdHJ1Y3QgdmdpY19pb19kZXZp Y2UgKmRldikKPj4gK3sKPj4gK8KgwqDCoCBkZXYtPnJlZ2lvbnMgPSB2Z2ljX3YyX2Rpc3RfcmVn aXN0ZXJzOwo+PiArwqDCoMKgIGRldi0+bnJfcmVnaW9ucyA9IEFSUkFZX1NJWkUodmdpY192Ml9k aXN0X3JlZ2lzdGVycyk7Cj4+ICsKPj4gK8KgwqDCoCByZXR1cm4gU1pfNEs7Cj4+ICt9Cj4+ICsK Pj4gKy8qCj4+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4+ICsgKiBtb2RlOiBDCj4+ICsgKiBjLWZp bGUtc3R5bGU6ICJCU0QiCj4+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+PiArICogaW5kZW50LXRh YnMtbW9kZTogbmlsCj4+ICsgKiBFbmQ6Cj4+ICsgKi8KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNo L2FybS92Z2ljL3ZnaWMtbW1pby5jCj4+IGIveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlvLmMK Pj4gaW5kZXggM2M3MDk0NTQ2Ni4uNTk3MDNhNjkwOSAxMDA2NDQKPj4gLS0tIGEveGVuL2FyY2gv YXJtL3ZnaWMvdmdpYy1tbWlvLmMKPj4gKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlv LmMKPj4gQEAgLTE4Miw2ICsxODIsMzIgQEAgc3RydWN0IG1taW9faGFuZGxlcl9vcHMgeGVuX2lv X2dpY19vcHMgPSB7Cj4+IMKgwqDCoMKgwqAgLndyaXRlID0gZGlzcGF0Y2hfbW1pb193cml0ZSwK Pj4gwqAgfTsKPj4gwqAgK2ludCB2Z2ljX3JlZ2lzdGVyX2Rpc3RfaW9kZXYoc3RydWN0IGRvbWFp biAqZCwgcGFkZHJfdAo+PiBkaXN0X2Jhc2VfYWRkcmVzcywKPiAKPiBJIHdvdWxkIHJhdGhlciBw cmVmZXIgdG8gdXNlIGdmbl90IG92ZXIgcGFkZHJfdC4gVGhlIGZvcm1lciBkZWFsIHdpdGgKPiBm cmFtZSBvbmx5IGlzIHNhZmVyIHRvIHVzZS4KCk9LLgoKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGVudW0gdmdpY190eXBlIHR5cGUpCj4+ICt7Cj4+ICvCoMKgwqAgc3RydWN0 IHZnaWNfaW9fZGV2aWNlICppb19kZXZpY2UgPSAmZC0+YXJjaC52Z2ljLmRpc3RfaW9kZXY7Cj4+ ICvCoMKgwqAgaW50IHJldCA9IDA7Cj4gCj4gVGhpcyB2YXJpYWJsZSBpcyBwb2ludGxlc3MuIFlv dSBuZXZlciBzZXQgaXQgYWZ0ZXIgc28gYWx3YXlzIHJldHVybiAwLgoKVHJ1ZS4gVGhlIEtWTSB2 ZXJzaW9uIG9mIHJlZ2lzdGVyX21taW9faGFuZGxlcigpIHJldHVybnMgYW4gZXJyb3IgdmFsdWUs CndoaWNoIGlzIGhlbGQgaW4gdGhpcyB2YXJpYWJsZSAoc2luY2UgaXQgaXMgY2FsbGVkIHdpdGhp biBhIGxvY2spLiBXaWxsCnJlbW92ZSBpdC4KCj4+ICvCoMKgwqAgdW5zaWduZWQgaW50IGxlbjsK Pj4gKwo+PiArwqDCoMKgIHN3aXRjaCAodHlwZSkKPiAKPiBzd2l0Y2ggKCAuLi4gKQo+IAo+PiAr wqDCoMKgIHsKPj4gK8KgwqDCoCBjYXNlIFZHSUNfVjI6Cj4+ICvCoMKgwqDCoMKgwqDCoCBsZW4g PSB2Z2ljX3YyX2luaXRfZGlzdF9pb2Rldihpb19kZXZpY2UpOwo+PiArwqDCoMKgwqDCoMKgwqAg YnJlYWs7Cj4+ICvCoMKgwqAgZGVmYXVsdDoKPj4gK8KgwqDCoMKgwqDCoMKgIEJVR19PTigxKTsK PiAKPiBQbGVhc2UgdXNlIEJVRygpIGhlcmUuIEJ1dCBoYXZlIHlvdSBjaGVja2VkIHdlIHdpbGwg bmV2ZXIgcmVhY2ggaGVyZQo+IHdpdGggdGhlIHdyb25nIHZnaWNfdHlwZT8KClRoaXMgaXMganVz dCBhIHBsYWNlaG9sZGVyIGZvciBub3csIHRoZSBwcm9wZXIgdkdJQ3YzIGZ1bmN0aW9uIHdpbGwg cGx1ZwppbiBsYXRlci4gQWN0dWFsbHkgSSBkb24ndCBleHBlY3QgdGhpcyBsaW5lIHRvIGJlIGV2 ZXIgcGFydCBvZiBydW5uaW5nIGNvZGUuCkV2ZW4gaWYsIGF0IHRoZSBtb21lbnQgbm8gb25lIHNl dHMgdGhlIHR5cGUgdG8gYW55dGhpbmcgb3RoZXIgdGhhbgpWR0lDX1YyLCBzbyB0aGlzIHNob3Vs ZCBiZSBzYWZlLgoKQ2hlZXJzLApBbmRyZS4KCj4+ICvCoMKgwqAgfQo+PiArCj4+ICvCoMKgwqAg aW9fZGV2aWNlLT5iYXNlX2FkZHIgPSBkaXN0X2Jhc2VfYWRkcmVzczsKPiAKPiBBbHNvIGJhc2Vf YWRkciAmIGNvIHdvdWxkIG9ubHkgY29udGFpbiBmcmFtZS4KPiAKPj4gK8KgwqDCoCBpb19kZXZp Y2UtPmlvZGV2X3R5cGUgPSBJT0RFVl9ESVNUOwo+PiArwqDCoMKgIGlvX2RldmljZS0+cmVkaXN0 X3ZjcHUgPSBOVUxMOwo+PiArCj4+ICvCoMKgwqAgcmVnaXN0ZXJfbW1pb19oYW5kbGVyKGQsICZ4 ZW5faW9fZ2ljX29wcywgZGlzdF9iYXNlX2FkZHJlc3MsIGxlbiwKPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaW9fZGV2aWNlKTsKPj4gKwo+PiArwqDCoMKgIHJldHVybiBy ZXQ7Cj4+ICt9Cj4+ICsKPj4gwqAgLyoKPj4gwqDCoCAqIExvY2FsIHZhcmlhYmxlczoKPj4gwqDC oCAqIG1vZGU6IEMKPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljL3ZnaWMtbW1pby5o Cj4+IGIveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlvLmgKPj4gaW5kZXggMzc1YjcwNTYxZC4u MTBhYzY4MjI5NiAxMDA2NDQKPj4gLS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlvLmgK Pj4gKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlvLmgKPj4gQEAgLTEzNyw2ICsxMzcs OCBAQCB1bnNpZ25lZCBsb25nIHZnaWNfbW1pb19yZWFkX3JhbyhzdHJ1Y3QgdmNwdSAqdmNwdSwK Pj4gwqAgdm9pZCB2Z2ljX21taW9fd3JpdGVfd2koc3RydWN0IHZjcHUgKnZjcHUsIHBhZGRyX3Qg YWRkciwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgdW5zaWduZWQgaW50IGxlbiwgdW5zaWduZWQgbG9uZyB2YWwpOwo+PiDCoCArdW5zaWduZWQg aW50IHZnaWNfdjJfaW5pdF9kaXN0X2lvZGV2KHN0cnVjdCB2Z2ljX2lvX2RldmljZSAqZGV2KTsK Pj4gKwo+PiDCoCAvKiBGaW5kIHRoZSBwcm9wZXIgcmVnaXN0ZXIgaGFuZGxlciBlbnRyeSBnaXZl biBhIGNlcnRhaW4gYWRkcmVzcwo+PiBvZmZzZXQgKi8KPj4gwqAgY29uc3Qgc3RydWN0IHZnaWNf cmVnaXN0ZXJfcmVnaW9uICoKPj4gwqAgdmdpY19maW5kX21taW9fcmVnaW9uKGNvbnN0IHN0cnVj dCB2Z2ljX3JlZ2lzdGVyX3JlZ2lvbiAqcmVnaW9ucywKPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNo L2FybS92Z2ljL3ZnaWMuaCBiL3hlbi9hcmNoL2FybS92Z2ljL3ZnaWMuaAo+PiBpbmRleCA0MjZi MzRkMGNlLi43NzQ3ZDNmM2UwIDEwMDY0NAo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdmdpYy92Z2lj LmgKPj4gKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy5oCj4+IEBAIC00OSw2ICs0OSw4IEBA IHZvaWQgdmdpY192Ml9mb2xkX2xyX3N0YXRlKHN0cnVjdCB2Y3B1ICp2Y3B1KTsKPj4gwqAgdm9p ZCB2Z2ljX3YyX3BvcHVsYXRlX2xyKHN0cnVjdCB2Y3B1ICp2Y3B1LCBzdHJ1Y3QgdmdpY19pcnEg KmlycSwKPj4gaW50IGxyKTsKPj4gwqAgdm9pZCB2Z2ljX3YyX2NsZWFyX2xyKHN0cnVjdCB2Y3B1 ICp2Y3B1LCBpbnQgbHIpOwo+PiDCoCB2b2lkIHZnaWNfdjJfc2V0X3VuZGVyZmxvdyhzdHJ1Y3Qg dmNwdSAqdmNwdSk7Cj4+ICtpbnQgdmdpY19yZWdpc3Rlcl9kaXN0X2lvZGV2KHN0cnVjdCBkb21h aW4gKmQsIHBhZGRyX3QKPj4gZGlzdF9iYXNlX2FkZHJlc3MsCj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBlbnVtIHZnaWNfdHlwZSk7Cj4+IMKgIMKgIHZvaWQgdmdpY192Ml9z YXZlX3N0YXRlKHN0cnVjdCB2Y3B1ICp2Y3B1KTsKPj4gwqAgdm9pZCB2Z2ljX3YyX3Jlc3RvcmVf c3RhdGUoc3RydWN0IHZjcHUgKnZjcHUpOwo+Pgo+IAo+IENoZWVycywKPiAKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj dC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=