From mboxrd@z Thu Jan 1 00:00:00 1970 From: Robert VanVossen Subject: Re: [PATCH 2/2] public/sysctl: drop unnecessary typedefs and handles Date: Wed, 20 Sep 2017 14:07:59 -0400 Message-ID: <59C2AE7F.3060209@dornerworks.com> References: <59B80A8B020000780017A347@prv-mh.provo.novell.com> <59B80A8B020000780017A347@prv-mh.provo.novell.com> <59B81501020000780017A468@prv-mh.provo.novell.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 1dujQ2-0004i1-14 for xen-devel@lists.xenproject.org; Wed, 20 Sep 2017 18:08:18 +0000 In-Reply-To: <59B81501020000780017A468@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Jan Beulich , xen-devel Cc: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Dario Faggioli , Ian Jackson , Tim Deegan , Ross Lagerwall , Julien Grall , josh.whitehead@dornerworks.com List-Id: xen-devel@lists.xenproject.org CgpPbiA5LzEyLzIwMTcgMTE6MTAgQU0sIEphbiBCZXVsaWNoIHdyb3RlOgo+IEJ5IHZpcnR1ZSBv ZiB0aGUgc3RydWN0IHhlbl9zeXNjdGwgY29udGFpbmVyIHN0cnVjdHVyZSwgbW9zdCBvZiB0aGVt Cj4gYXJlIHJlYWxseSBqdXN0IGNsdXR0ZXJpbmcgdGhlIG5hbWUgc3BhY2UuCj4gCj4gU2lnbmVk LW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgo+IAo+IC0tLSBhL3Rvb2xz L2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCj4gKysrIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5j dHJsLmgKPiBAQCAtMTIxMiwxMSArMTIxMiwxMSBAQCBpbnQgeGNfcmVhZGNvbnNvbGVyaW5nKHhj X2ludGVyZmFjZSAqeGNoCj4gIGludCB4Y19zZW5kX2RlYnVnX2tleXMoeGNfaW50ZXJmYWNlICp4 Y2gsIGNoYXIgKmtleXMpOwo+ICBpbnQgeGNfc2V0X3BhcmFtZXRlcnMoeGNfaW50ZXJmYWNlICp4 Y2gsIGNoYXIgKnBhcmFtcyk7Cj4gIAo+IC10eXBlZGVmIHhlbl9zeXNjdGxfcGh5c2luZm9fdCB4 Y19waHlzaW5mb190Owo+IC10eXBlZGVmIHhlbl9zeXNjdGxfY3B1dG9wb190IHhjX2NwdXRvcG9f dDsKPiAtdHlwZWRlZiB4ZW5fc3lzY3RsX251bWFpbmZvX3QgeGNfbnVtYWluZm9fdDsKPiAtdHlw ZWRlZiB4ZW5fc3lzY3RsX21lbWluZm9fdCB4Y19tZW1pbmZvX3Q7Cj4gLXR5cGVkZWYgeGVuX3N5 c2N0bF9wY2l0b3BvaW5mb190IHhjX3BjaXRvcG9pbmZvX3Q7Cj4gK3R5cGVkZWYgc3RydWN0IHhl bl9zeXNjdGxfcGh5c2luZm8geGNfcGh5c2luZm9fdDsKPiArdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5 c2N0bF9jcHV0b3BvIHhjX2NwdXRvcG9fdDsKPiArdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9u dW1haW5mbyB4Y19udW1haW5mb190Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX21lbWlu Zm8geGNfbWVtaW5mb190Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX3BjaXRvcG9pbmZv IHhjX3BjaXRvcG9pbmZvX3Q7Cj4gIAo+ICB0eXBlZGVmIHVpbnQzMl90IHhjX2NwdV90b19ub2Rl X3Q7Cj4gIHR5cGVkZWYgdWludDMyX3QgeGNfY3B1X3RvX3NvY2tldF90Owo+IEBAIC0xMjQwLDcg KzEyNDAsNyBAQCBpbnQgeGNfbWFjaHBoeXNfbWZuX2xpc3QoeGNfaW50ZXJmYWNlICp4Cj4gICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1heF9leHRlbnRzLAo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90ICpleHRlbnRfc3RhcnQpOwo+ICAKPiAtdHlw ZWRlZiB4ZW5fc3lzY3RsX2NwdWluZm9fdCB4Y19jcHVpbmZvX3Q7Cj4gK3R5cGVkZWYgc3RydWN0 IHhlbl9zeXNjdGxfY3B1aW5mbyB4Y19jcHVpbmZvX3Q7Cj4gIGludCB4Y19nZXRjcHVpbmZvKHhj X2ludGVyZmFjZSAqeGNoLCBpbnQgbWF4X2NwdXMsCj4gICAgICAgICAgICAgICAgICAgIHhjX2Nw dWluZm9fdCAqaW5mbywgaW50ICpucl9jcHVzKTsgCj4gIAo+IEBAIC0xODUzLDggKzE4NTMsOCBA QCBpbnQgeGNfY3B1X29mZmxpbmUoeGNfaW50ZXJmYWNlICp4Y2gsIGluCj4gICAqIGNwdWZyZXEg cGFyYSBuYW1lIG9mIHRoaXMgc3RydWN0dXJlIG5hbWVkIAo+ICAgKiBzYW1lIGFzIHN5c2ZzIGZp bGUgbmFtZSBvZiBuYXRpdmUgbGludXgKPiAgICovCj4gLXR5cGVkZWYgeGVuX3VzZXJzcGFjZV90 IHhjX3VzZXJzcGFjZV90Owo+IC10eXBlZGVmIHhlbl9vbmRlbWFuZF90IHhjX29uZGVtYW5kX3Q7 Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl91c2Vyc3BhY2UgeGNfdXNlcnNwYWNlX3Q7Cj4gK3R5cGVk ZWYgc3RydWN0IHhlbl9vbmRlbWFuZCB4Y19vbmRlbWFuZF90Owo+ICAKPiAgc3RydWN0IHhjX2dl dF9jcHVmcmVxX3BhcmEgewo+ICAgICAgLyogSU4vT1VUIHZhcmlhYmxlICovCj4gLS0tIGEvdG9v bHMvbGlieGMveGNfbWlzYy5jCj4gKysrIGIvdG9vbHMvbGlieGMveGNfbWlzYy5jCj4gQEAgLTU0 Nyw3ICs1NDcsNyBAQCBpbnQgeGNfbGl2ZXBhdGNoX3VwbG9hZCh4Y19pbnRlcmZhY2UgKnhjCj4g ICAgICBERUNMQVJFX1NZU0NUTDsKPiAgICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JVRkZFUihjaGFy LCBsb2NhbCk7Cj4gICAgICBERUNMQVJFX0hZUEVSQ0FMTF9CT1VOQ0UobmFtZSwgMCAvKiBsYXRl ciAqLywgWENfSFlQRVJDQUxMX0JVRkZFUl9CT1VOQ0VfSU4pOwo+IC0gICAgeGVuX2xpdmVwYXRj aF9uYW1lX3QgZGVmX25hbWUgPSB7IC5wYWQgPSB7IDAsIDAsIDAgfSB9Owo+ICsgICAgc3RydWN0 IHhlbl9saXZlcGF0Y2hfbmFtZSBkZWZfbmFtZSA9IHsgfTsKPiAgCj4gICAgICBpZiAoICFuYW1l IHx8ICFwYXlsb2FkICkKPiAgICAgIHsKPiBAQCAtNTk0LDEyICs1OTQsMTIgQEAgaW50IHhjX2xp dmVwYXRjaF91cGxvYWQoeGNfaW50ZXJmYWNlICp4Ywo+ICAKPiAgaW50IHhjX2xpdmVwYXRjaF9n ZXQoeGNfaW50ZXJmYWNlICp4Y2gsCj4gICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm5hbWUs Cj4gLSAgICAgICAgICAgICAgICAgICAgIHhlbl9saXZlcGF0Y2hfc3RhdHVzX3QgKnN0YXR1cykK PiArICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhlbl9saXZlcGF0Y2hfc3RhdHVzICpzdGF0 dXMpCj4gIHsKPiAgICAgIGludCByYzsKPiAgICAgIERFQ0xBUkVfU1lTQ1RMOwo+ICAgICAgREVD TEFSRV9IWVBFUkNBTExfQk9VTkNFKG5hbWUsIDAgLyphZGp1c3QgbGF0ZXIgKi8sIFhDX0hZUEVS Q0FMTF9CVUZGRVJfQk9VTkNFX0lOKTsKPiAtICAgIHhlbl9saXZlcGF0Y2hfbmFtZV90IGRlZl9u YW1lID0geyAucGFkID0geyAwLCAwLCAwIH0gfTsKPiArICAgIHN0cnVjdCB4ZW5fbGl2ZXBhdGNo X25hbWUgZGVmX25hbWUgPSB7IH07Cj4gIAo+ICAgICAgaWYgKCAhbmFtZSApCj4gICAgICB7Cj4g QEAgLTY3Nyw3ICs2NzcsNyBAQCBpbnQgeGNfbGl2ZXBhdGNoX2dldCh4Y19pbnRlcmZhY2UgKnhj aCwKPiAgICogcmV0cmlldmVkIChpZiBhbnkpLgo+ICAgKi8KPiAgaW50IHhjX2xpdmVwYXRjaF9s aXN0KHhjX2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3Rh cnQsCj4gLSAgICAgICAgICAgICAgICAgICAgICB4ZW5fbGl2ZXBhdGNoX3N0YXR1c190ICppbmZv LAo+ICsgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhlbl9saXZlcGF0Y2hfc3RhdHVzICpp bmZvLAo+ICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqbmFtZSwgdWludDMyX3QgKmxlbiwK PiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqZG9uZSwKPiAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqbGVmdCkKPiBAQCAtODM3LDcgKzgzNyw3IEBAIHN0 YXRpYyBpbnQgX3hjX2xpdmVwYXRjaF9hY3Rpb24oeGNfaW50ZXIKPiAgICAgIERFQ0xBUkVfU1lT Q1RMOwo+ICAgICAgLyogVGhlIHNpemUgaXMgZmlndXJlZCBvdXQgd2hlbiB3ZSBzdHJsZW4obmFt ZSkgKi8KPiAgICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JPVU5DRShuYW1lLCAwLCBYQ19IWVBFUkNB TExfQlVGRkVSX0JPVU5DRV9JTik7Cj4gLSAgICB4ZW5fbGl2ZXBhdGNoX25hbWVfdCBkZWZfbmFt ZSA9IHsgLnBhZCA9IHsgMCwgMCwgMCB9IH07Cj4gKyAgICBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9u YW1lIGRlZl9uYW1lID0geyB9Owo+ICAKPiAgICAgIGRlZl9uYW1lLnNpemUgPSBzdHJsZW4obmFt ZSkgKyAxOwo+ICAKPiAtLS0gYS94ZW4vYXJjaC9hcm0vc3lzY3RsLmMKPiArKysgYi94ZW4vYXJj aC9hcm0vc3lzY3RsLmMKPiBAQCAtMTIsNyArMTIsNyBAQAo+ICAjaW5jbHVkZSA8eGVuL2h5cGVy Y2FsbC5oPgo+ICAjaW5jbHVkZSA8cHVibGljL3N5c2N0bC5oPgo+ICAKPiAtdm9pZCBhcmNoX2Rv X3BoeXNpbmZvKHhlbl9zeXNjdGxfcGh5c2luZm9fdCAqcGkpIHsgfQo+ICt2b2lkIGFyY2hfZG9f cGh5c2luZm8oc3RydWN0IHhlbl9zeXNjdGxfcGh5c2luZm8gKnBpKSB7IH0KPiAgCj4gIGxvbmcg YXJjaF9kb19zeXNjdGwoc3RydWN0IHhlbl9zeXNjdGwgKnN5c2N0bCwKPiAgICAgICAgICAgICAg ICAgICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9zeXNjdGxfdCkgdV9zeXNjdGwpCj4g LS0tIGEveGVuL2FyY2gveDg2L3N5c2N0bC5jCj4gKysrIGIveGVuL2FyY2gveDg2L3N5c2N0bC5j Cj4gQEAgLTcyLDcgKzcyLDcgQEAgbG9uZyBjcHVfZG93bl9oZWxwZXIodm9pZCAqZGF0YSkKPiAg ICAgIHJldHVybiByZXQ7Cj4gIH0KPiAgCj4gLXZvaWQgYXJjaF9kb19waHlzaW5mbyh4ZW5fc3lz Y3RsX3BoeXNpbmZvX3QgKnBpKQo+ICt2b2lkIGFyY2hfZG9fcGh5c2luZm8oc3RydWN0IHhlbl9z eXNjdGxfcGh5c2luZm8gKnBpKQo+ICB7Cj4gICAgICBtZW1jcHkocGktPmh3X2NhcCwgYm9vdF9j cHVfZGF0YS54ODZfY2FwYWJpbGl0eSwKPiAgICAgICAgICAgICBtaW4oc2l6ZW9mKHBpLT5od19j YXApLCBzaXplb2YoYm9vdF9jcHVfZGF0YS54ODZfY2FwYWJpbGl0eSkpKTsKPiAtLS0gYS94ZW4v Y29tbW9uL2djb3YvZ2Nvdi5jCj4gKysrIGIveGVuL2NvbW1vbi9nY292L2djb3YuYwo+IEBAIC0y MDksNyArMjA5LDcgQEAgc3RhdGljIGludCBnY292X2R1bXBfYWxsKFhFTl9HVUVTVF9IQU5ETAo+ ICAgICAgcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAtaW50IHN5c2N0bF9nY292X29wKHhlbl9zeXNj dGxfZ2Nvdl9vcF90ICpvcCkKPiAraW50IHN5c2N0bF9nY292X29wKHN0cnVjdCB4ZW5fc3lzY3Rs X2djb3Zfb3AgKm9wKQo+ICB7Cj4gICAgICBpbnQgcmV0Owo+ICAKPiAtLS0gYS94ZW4vY29tbW9u L2xpdmVwYXRjaC5jCj4gKysrIGIveGVuL2NvbW1vbi9saXZlcGF0Y2guYwo+IEBAIC0xMDQsNyAr MTA0LDcgQEAgc3RhdGljIHN0cnVjdCBsaXZlcGF0Y2hfd29yayBsaXZlcGF0Y2hfdwo+ICAgKi8K PiAgc3RhdGljIERFRklORV9QRVJfQ1BVKGJvb2xfdCwgd29ya190b19kbyk7Cj4gIAo+IC1zdGF0 aWMgaW50IGdldF9uYW1lKGNvbnN0IHhlbl9saXZlcGF0Y2hfbmFtZV90ICpuYW1lLCBjaGFyICpu KQo+ICtzdGF0aWMgaW50IGdldF9uYW1lKGNvbnN0IHN0cnVjdCB4ZW5fbGl2ZXBhdGNoX25hbWUg Km5hbWUsIGNoYXIgKm4pCj4gIHsKPiAgICAgIGlmICggIW5hbWUtPnNpemUgfHwgbmFtZS0+c2l6 ZSA+IFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFICkKPiAgICAgICAgICByZXR1cm4gLUVJTlZBTDsK PiBAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyBpbnQgZ2V0X25hbWUoY29uc3QgeGVuX2xpdmVw YXRjaF8KPiAgICAgIHJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IHZlcmlmeV9wYXls b2FkKGNvbnN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX3VwbG9hZF90ICp1cGxvYWQsIGNoYXIgKm4p Cj4gK3N0YXRpYyBpbnQgdmVyaWZ5X3BheWxvYWQoY29uc3Qgc3RydWN0IHhlbl9zeXNjdGxfbGl2 ZXBhdGNoX3VwbG9hZCAqdXBsb2FkLCBjaGFyICpuKQo+ICB7Cj4gICAgICBpZiAoIGdldF9uYW1l KCZ1cGxvYWQtPm5hbWUsIG4pICkKPiAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiBAQCAtODk3 LDcgKzg5Nyw3IEBAIHN0YXRpYyBpbnQgbG9hZF9wYXlsb2FkX2RhdGEoc3RydWN0IHBheWwKPiAg ICAgIHJldHVybiByYzsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBsaXZlcGF0Y2hfdXBsb2FkKHhl bl9zeXNjdGxfbGl2ZXBhdGNoX3VwbG9hZF90ICp1cGxvYWQpCj4gK3N0YXRpYyBpbnQgbGl2ZXBh dGNoX3VwbG9hZChzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfdXBsb2FkICp1cGxvYWQpCj4g IHsKPiAgICAgIHN0cnVjdCBwYXlsb2FkICpkYXRhLCAqZm91bmQ7Cj4gICAgICBjaGFyIG5bWEVO X0xJVkVQQVRDSF9OQU1FX1NJWkVdOwo+IEBAIC05NTQsNyArOTU0LDcgQEAgc3RhdGljIGludCBs aXZlcGF0Y2hfdXBsb2FkKHhlbl9zeXNjdGxfbAo+ICAgICAgcmV0dXJuIHJjOwo+ICB9Cj4gIAo+ IC1zdGF0aWMgaW50IGxpdmVwYXRjaF9nZXQoeGVuX3N5c2N0bF9saXZlcGF0Y2hfZ2V0X3QgKmdl dCkKPiArc3RhdGljIGludCBsaXZlcGF0Y2hfZ2V0KHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRj aF9nZXQgKmdldCkKPiAgewo+ICAgICAgc3RydWN0IHBheWxvYWQgKmRhdGE7Cj4gICAgICBpbnQg cmM7Cj4gQEAgLTk4NSw5ICs5ODUsOSBAQCBzdGF0aWMgaW50IGxpdmVwYXRjaF9nZXQoeGVuX3N5 c2N0bF9saXZlCj4gICAgICByZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBsaXZlcGF0 Y2hfbGlzdCh4ZW5fc3lzY3RsX2xpdmVwYXRjaF9saXN0X3QgKmxpc3QpCj4gK3N0YXRpYyBpbnQg bGl2ZXBhdGNoX2xpc3Qoc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2xpc3QgKmxpc3QpCj4g IHsKPiAtICAgIHhlbl9saXZlcGF0Y2hfc3RhdHVzX3Qgc3RhdHVzOwo+ICsgICAgc3RydWN0IHhl bl9saXZlcGF0Y2hfc3RhdHVzIHN0YXR1czsKPiAgICAgIHN0cnVjdCBwYXlsb2FkICpkYXRhOwo+ ICAgICAgdW5zaWduZWQgaW50IGlkeCA9IDAsIGkgPSAwOwo+ICAgICAgaW50IHJjID0gMDsKPiBA QCAtMTQ1MSw3ICsxNDUxLDcgQEAgc3RhdGljIGludCBidWlsZF9pZF9kZXAoc3RydWN0IHBheWxv YWQgKgo+ICAgICAgcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgbGl2ZXBhdGNoX2Fj dGlvbih4ZW5fc3lzY3RsX2xpdmVwYXRjaF9hY3Rpb25fdCAqYWN0aW9uKQo+ICtzdGF0aWMgaW50 IGxpdmVwYXRjaF9hY3Rpb24oc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2FjdGlvbiAqYWN0 aW9uKQo+ICB7Cj4gICAgICBzdHJ1Y3QgcGF5bG9hZCAqZGF0YTsKPiAgICAgIGNoYXIgbltYRU5f TElWRVBBVENIX05BTUVfU0laRV07Cj4gQEAgLTE1NjAsNyArMTU2MCw3IEBAIHN0YXRpYyBpbnQg bGl2ZXBhdGNoX2FjdGlvbih4ZW5fc3lzY3RsX2wKPiAgICAgIHJldHVybiByYzsKPiAgfQo+ICAK PiAtaW50IGxpdmVwYXRjaF9vcCh4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcF90ICpsaXZlcGF0Y2gp Cj4gK2ludCBsaXZlcGF0Y2hfb3Aoc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX29wICpsaXZl cGF0Y2gpCj4gIHsKPiAgICAgIGludCByYzsKPiAgCj4gLS0tIGEveGVuL2NvbW1vbi9wZXJmYy5j Cj4gKysrIGIveGVuL2NvbW1vbi9wZXJmYy5jCj4gQEAgLTE1Miw4ICsxNTIsOCBAQCB2b2lkIHBl cmZjX3Jlc2V0KHVuc2lnbmVkIGNoYXIga2V5KQo+ICAgICAgYXJjaF9wZXJmY19yZXNldCgpOwo+ ICB9Cj4gIAo+IC1zdGF0aWMgeGVuX3N5c2N0bF9wZXJmY19kZXNjX3QgcGVyZmNfZFtOUl9QRVJG Q1RSU107Cj4gLXN0YXRpYyB4ZW5fc3lzY3RsX3BlcmZjX3ZhbF90ICpwZXJmY192YWxzOwo+ICtz dGF0aWMgc3RydWN0IHhlbl9zeXNjdGxfcGVyZmNfZGVzYyBwZXJmY19kW05SX1BFUkZDVFJTXTsK PiArc3RhdGljIHN0cnVjdCB4ZW5fc3lzY3RsX3BlcmZjX3ZhbCAqcGVyZmNfdmFsczsKPiAgc3Rh dGljIHVuc2lnbmVkIGludCAgICAgIHBlcmZjX25icl92YWxzOwo+ICBzdGF0aWMgY3B1bWFza190 ICAgICAgICAgcGVyZmNfY3B1bWFwOwo+ICAKPiBAQCAtMTkwLDcgKzE5MCw3IEBAIHN0YXRpYyBp bnQgcGVyZmNfY29weV9pbmZvKFhFTl9HVUVTVF9IQU4KPiAgICAgICAgICB9Cj4gIAo+ICAgICAg ICAgIHhmcmVlKHBlcmZjX3ZhbHMpOwo+IC0gICAgICAgIHBlcmZjX3ZhbHMgPSB4bWFsbG9jX2Fy cmF5KHhlbl9zeXNjdGxfcGVyZmNfdmFsX3QsIHBlcmZjX25icl92YWxzKTsKPiArICAgICAgICBw ZXJmY192YWxzID0geG1hbGxvY19hcnJheShzdHJ1Y3QgeGVuX3N5c2N0bF9wZXJmY192YWwsIHBl cmZjX25icl92YWxzKTsKPiAgICAgIH0KPiAgCj4gICAgICBpZiAoIGd1ZXN0X2hhbmRsZV9pc19u dWxsKGRlc2MpICkKPiBAQCAtMjQxLDcgKzI0MSw3IEBAIHN0YXRpYyBpbnQgcGVyZmNfY29weV9p bmZvKFhFTl9HVUVTVF9IQU4KPiAgfQo+ICAKPiAgLyogRG9tMCBjb250cm9sIG9mIHBlcmYgY291 bnRlcnMgKi8KPiAtaW50IHBlcmZjX2NvbnRyb2woeGVuX3N5c2N0bF9wZXJmY19vcF90ICpwYykK PiAraW50IHBlcmZjX2NvbnRyb2woc3RydWN0IHhlbl9zeXNjdGxfcGVyZmNfb3AgKnBjKQo+ICB7 Cj4gICAgICBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGxvY2spOwo+ICAgICAgaW50IHJjOwo+IC0t LSBhL3hlbi9jb21tb24vc2NoZWRfYXJpbmM2NTMuYwo+ICsrKyBiL3hlbi9jb21tb24vc2NoZWRf YXJpbmM2NTMuYwo+IEBAIC02OTQsNyArNjk0LDcgQEAgc3RhdGljIGludAo+ICBhNjUzc2NoZWRf YWRqdXN0X2dsb2JhbChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsCj4gICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX3NjaGVkdWxlcl9vcCAqc2MpCj4gIHsKPiAt ICAgIHhlbl9zeXNjdGxfYXJpbmM2NTNfc2NoZWR1bGVfdCBsb2NhbF9zY2hlZDsKPiArICAgIHN0 cnVjdCB4ZW5fc3lzY3RsX2FyaW5jNjUzX3NjaGVkdWxlIGxvY2FsX3NjaGVkOwo+ICAgICAgaW50 IHJjID0gLUVJTlZBTDsKPiAgCj4gICAgICBzd2l0Y2ggKCBzYy0+Y21kICkKCkFja2VkLUJ5OiBS b2JlcnQgVmFuVm9zc2VuIDxyb2JlcnQudmFudm9zc2VuQGRvcm5lcndvcmtzLmNvbT4KCj4gLS0t IGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYwo+ICsrKyBiL3hlbi9jb21tb24vc2NoZWRfY3Jl ZGl0LmMKPiBAQCAtMTI0MCw3ICsxMjQwLDcgQEAgY3NjaGVkX3N5c19jbnRsKGNvbnN0IHN0cnVj dCBzY2hlZHVsZXIgKgo+ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0 bF9zY2hlZHVsZXJfb3AgKnNjKQo+ICB7Cj4gICAgICBpbnQgcmMgPSAtRUlOVkFMOwo+IC0gICAg eGVuX3N5c2N0bF9jcmVkaXRfc2NoZWR1bGVfdCAqcGFyYW1zID0gJnNjLT51LnNjaGVkX2NyZWRp dDsKPiArICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2NyZWRpdF9zY2hlZHVsZSAqcGFyYW1zID0gJnNj LT51LnNjaGVkX2NyZWRpdDsKPiAgICAgIHN0cnVjdCBjc2NoZWRfcHJpdmF0ZSAqcHJ2ID0gQ1ND SEVEX1BSSVYob3BzKTsKPiAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gIAo+IC0tLSBhL3hl bi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCj4gKysrIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQy LmMKPiBAQCAtMjQ0Myw3ICsyNDQzLDcgQEAgY3NjaGVkMl9kb21fY250bCgKPiAgc3RhdGljIGlu dCBjc2NoZWQyX3N5c19jbnRsKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX3NjaGVkdWxlcl9vcCAqc2Mp Cj4gIHsKPiAtICAgIHhlbl9zeXNjdGxfY3JlZGl0Ml9zY2hlZHVsZV90ICpwYXJhbXMgPSAmc2Mt PnUuc2NoZWRfY3JlZGl0MjsKPiArICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2NyZWRpdDJfc2NoZWR1 bGUgKnBhcmFtcyA9ICZzYy0+dS5zY2hlZF9jcmVkaXQyOwo+ICAgICAgc3RydWN0IGNzY2hlZDJf cHJpdmF0ZSAqcHJ2ID0gY3NjaGVkMl9wcml2KG9wcyk7Cj4gICAgICB1bnNpZ25lZCBsb25nIGZs YWdzOwo+ICAKPiAtLS0gYS94ZW4vY29tbW9uL3NwaW5sb2NrLmMKPiArKysgYi94ZW4vY29tbW9u L3NwaW5sb2NrLmMKPiBAQCAtMzgwLDcgKzM4MCw3IEBAIHZvaWQgc3BpbmxvY2tfcHJvZmlsZV9y ZXNldCh1bnNpZ25lZCBjaGEKPiAgfQo+ICAKPiAgdHlwZWRlZiBzdHJ1Y3Qgewo+IC0gICAgeGVu X3N5c2N0bF9sb2NrcHJvZl9vcF90ICpwYzsKPiArICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2xvY2tw cm9mX29wICpwYzsKPiAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICByYzsKPiAgfSBzcGlu bG9ja19wcm9maWxlX3Vjb3B5X3Q7Cj4gIAo+IEBAIC0zODgsNyArMzg4LDcgQEAgc3RhdGljIHZv aWQgc3BpbmxvY2tfcHJvZmlsZV91Y29weV9lbGVtKAo+ICAgICAgaW50MzJfdCB0eXBlLCBpbnQz Ml90IGlkeCwgdm9pZCAqcGFyKQo+ICB7Cj4gICAgICBzcGlubG9ja19wcm9maWxlX3Vjb3B5X3Qg KnAgPSBwYXI7Cj4gLSAgICB4ZW5fc3lzY3RsX2xvY2twcm9mX2RhdGFfdCBlbGVtOwo+ICsgICAg c3RydWN0IHhlbl9zeXNjdGxfbG9ja3Byb2ZfZGF0YSBlbGVtOwo+ICAKPiAgICAgIGlmICggcC0+ cmMgKQo+ICAgICAgICAgIHJldHVybjsKPiBAQCAtNDExLDcgKzQxMSw3IEBAIHN0YXRpYyB2b2lk IHNwaW5sb2NrX3Byb2ZpbGVfdWNvcHlfZWxlbSgKPiAgfQo+ICAKPiAgLyogRG9tMCBjb250cm9s IG9mIGxvY2sgcHJvZmlsaW5nICovCj4gLWludCBzcGlubG9ja19wcm9maWxlX2NvbnRyb2woeGVu X3N5c2N0bF9sb2NrcHJvZl9vcF90ICpwYykKPiAraW50IHNwaW5sb2NrX3Byb2ZpbGVfY29udHJv bChzdHJ1Y3QgeGVuX3N5c2N0bF9sb2NrcHJvZl9vcCAqcGMpCj4gIHsKPiAgICAgIGludCByYyA9 IDA7Cj4gICAgICBzcGlubG9ja19wcm9maWxlX3Vjb3B5X3QgcGFyOwo+IC0tLSBhL3hlbi9jb21t b24vc3lzY3RsLmMKPiArKysgYi94ZW4vY29tbW9uL3N5c2N0bC5jCj4gQEAgLTI1MCw3ICsyNTAs NyBAQCBsb25nIGRvX3N5c2N0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCj4gIAo+ICAgICAg Y2FzZSBYRU5fU1lTQ1RMX3BoeXNpbmZvOgo+ICAgICAgewo+IC0gICAgICAgIHhlbl9zeXNjdGxf cGh5c2luZm9fdCAqcGkgPSAmb3AtPnUucGh5c2luZm87Cj4gKyAgICAgICAgc3RydWN0IHhlbl9z eXNjdGxfcGh5c2luZm8gKnBpID0gJm9wLT51LnBoeXNpbmZvOwo+ICAKPiAgICAgICAgICBtZW1z ZXQocGksIDAsIHNpemVvZigqcGkpKTsKPiAgICAgICAgICBwaS0+dGhyZWFkc19wZXJfY29yZSA9 Cj4gQEAgLTI3Niw3ICsyNzYsNyBAQCBsb25nIGRvX3N5c2N0bChYRU5fR1VFU1RfSEFORExFX1BB UkFNKHhlCj4gICAgICBjYXNlIFhFTl9TWVNDVExfbnVtYWluZm86Cj4gICAgICB7Cj4gICAgICAg ICAgdW5zaWduZWQgaW50IGksIGosIG51bV9ub2RlczsKPiAtICAgICAgICB4ZW5fc3lzY3RsX251 bWFpbmZvX3QgKm5pID0gJm9wLT51Lm51bWFpbmZvOwo+ICsgICAgICAgIHN0cnVjdCB4ZW5fc3lz Y3RsX251bWFpbmZvICpuaSA9ICZvcC0+dS5udW1haW5mbzsKPiAgICAgICAgICBib29sX3QgZG9f bWVtaW5mbyA9ICFndWVzdF9oYW5kbGVfaXNfbnVsbChuaS0+bWVtaW5mbyk7Cj4gICAgICAgICAg Ym9vbF90IGRvX2Rpc3RhbmNlID0gIWd1ZXN0X2hhbmRsZV9pc19udWxsKG5pLT5kaXN0YW5jZSk7 Cj4gIAo+IEBAIC0yODQsNyArMjg0LDcgQEAgbG9uZyBkb19zeXNjdGwoWEVOX0dVRVNUX0hBTkRM RV9QQVJBTSh4ZQo+ICAKPiAgICAgICAgICBpZiAoIGRvX21lbWluZm8gfHwgZG9fZGlzdGFuY2Ug KQo+ICAgICAgICAgIHsKPiAtICAgICAgICAgICAgeGVuX3N5c2N0bF9tZW1pbmZvX3QgbWVtaW5m byA9IHsgMCB9Owo+ICsgICAgICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9tZW1pbmZvIG1lbWlu Zm8gPSB7IH07Cj4gIAo+ICAgICAgICAgICAgICBpZiAoIG51bV9ub2RlcyA+IG5pLT5udW1fbm9k ZXMgKQo+ICAgICAgICAgICAgICAgICAgbnVtX25vZGVzID0gbmktPm51bV9ub2RlczsKPiBAQCAt MzQ2LDEyICszNDYsMTIgQEAgbG9uZyBkb19zeXNjdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4 ZQo+ICAgICAgY2FzZSBYRU5fU1lTQ1RMX2NwdXRvcG9pbmZvOgo+ICAgICAgewo+ICAgICAgICAg IHVuc2lnbmVkIGludCBpLCBudW1fY3B1czsKPiAtICAgICAgICB4ZW5fc3lzY3RsX2NwdXRvcG9p bmZvX3QgKnRpID0gJm9wLT51LmNwdXRvcG9pbmZvOwo+ICsgICAgICAgIHN0cnVjdCB4ZW5fc3lz Y3RsX2NwdXRvcG9pbmZvICp0aSA9ICZvcC0+dS5jcHV0b3BvaW5mbzsKPiAgCj4gICAgICAgICAg bnVtX2NwdXMgPSBjcHVtYXNrX2xhc3QoJmNwdV9vbmxpbmVfbWFwKSArIDE7Cj4gICAgICAgICAg aWYgKCAhZ3Vlc3RfaGFuZGxlX2lzX251bGwodGktPmNwdXRvcG8pICkKPiAgICAgICAgICB7Cj4g LSAgICAgICAgICAgIHhlbl9zeXNjdGxfY3B1dG9wb190IGNwdXRvcG8gPSB7IDAgfTsKPiArICAg ICAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfY3B1dG9wbyBjcHV0b3BvID0geyB9Owo+ICAKPiAg ICAgICAgICAgICAgaWYgKCBudW1fY3B1cyA+IHRpLT5udW1fY3B1cyApCj4gICAgICAgICAgICAg ICAgICBudW1fY3B1cyA9IHRpLT5udW1fY3B1czsKPiBAQCAtNDA1LDcgKzQwNSw3IEBAIGxvbmcg ZG9fc3lzY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUKPiAgI2lmZGVmIENPTkZJR19IQVNf UENJCj4gICAgICBjYXNlIFhFTl9TWVNDVExfcGNpdG9wb2luZm86Cj4gICAgICB7Cj4gLSAgICAg ICAgeGVuX3N5c2N0bF9wY2l0b3BvaW5mb190ICp0aSA9ICZvcC0+dS5wY2l0b3BvaW5mbzsKPiAr ICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9wY2l0b3BvaW5mbyAqdGkgPSAmb3AtPnUucGNpdG9w b2luZm87Cj4gICAgICAgICAgdW5zaWduZWQgaW50IGkgPSAwOwo+ICAKPiAgICAgICAgICBpZiAo IGd1ZXN0X2hhbmRsZV9pc19udWxsKHRpLT5kZXZzKSB8fAo+IC0tLSBhL3hlbi9jb21tb24vdHJh Y2UuYwo+ICsrKyBiL3hlbi9jb21tb24vdHJhY2UuYwo+IEBAIC0zNjcsOSArMzY3LDkgQEAgdm9p ZCBfX2luaXQgaW5pdF90cmFjZV9idWZzKHZvaWQpCj4gIAo+ICAvKioKPiAgICogdGJfY29udHJv bCAtIHN5c2N0bCBvcGVyYXRpb25zIG9uIHRyYWNlIGJ1ZmZlcnMuCj4gLSAqIEB0YmM6IGEgcG9p bnRlciB0byBhIHhlbl9zeXNjdGxfdGJ1Zl9vcF90IHRvIGJlIGZpbGxlZCBvdXQKPiArICogQHRi YzogYSBwb2ludGVyIHRvIGEgc3RydWN0IHhlbl9zeXNjdGxfdGJ1Zl9vcCB0byBiZSBmaWxsZWQg b3V0Cj4gICAqLwo+IC1pbnQgdGJfY29udHJvbCh4ZW5fc3lzY3RsX3RidWZfb3BfdCAqdGJjKQo+ ICtpbnQgdGJfY29udHJvbChzdHJ1Y3QgeGVuX3N5c2N0bF90YnVmX29wICp0YmMpCj4gIHsKPiAg ICAgIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0sobG9jayk7Cj4gICAgICBpbnQgcmMgPSAwOwo+IC0t LSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL3B1Ymxp Yy9zeXNjdGwuaAo+IEBAIC01OCw4ICs1OCw2IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX3JlYWRjb25z b2xlIHsKPiAgICAgIC8qIElOOiBTaXplIG9mIGJ1ZmZlcjsgT1VUOiBCeXRlcyB3cml0dGVuIHRv IGJ1ZmZlci4gKi8KPiAgICAgIHVpbnQzMl90IGNvdW50Owo+ICB9Owo+IC10eXBlZGVmIHN0cnVj dCB4ZW5fc3lzY3RsX3JlYWRjb25zb2xlIHhlbl9zeXNjdGxfcmVhZGNvbnNvbGVfdDsKPiAtREVG SU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9yZWFkY29uc29sZV90KTsKPiAgCj4gIC8q IEdldCB0cmFjZSBidWZmZXJzIG1hY2hpbmUgYmFzZSBhZGRyZXNzICovCj4gIC8qIFhFTl9TWVND VExfdGJ1Zl9vcCAqLwo+IEBAIC03OSw4ICs3Nyw2IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX3RidWZf b3Agewo+ICAgICAgdWludDY0X2FsaWduZWRfdCBidWZmZXJfbWZuOwo+ICAgICAgdWludDMyX3Qg c2l6ZTsgIC8qIEFsc28gYW4gSU4gdmFyaWFibGUhICovCj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0 IHhlbl9zeXNjdGxfdGJ1Zl9vcCB4ZW5fc3lzY3RsX3RidWZfb3BfdDsKPiAtREVGSU5FX1hFTl9H VUVTVF9IQU5ETEUoeGVuX3N5c2N0bF90YnVmX29wX3QpOwo+ICAKPiAgLyoKPiAgICogR2V0IHBo eXNpY2FsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBob3N0IG1hY2hpbmUKPiBAQCAtMTA5LDggKzEw NSw2IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX3BoeXNpbmZvIHsKPiAgICAgIC8qIFhFTl9TWVNDVExf UEhZU0NBUF8/Pz8gKi8KPiAgICAgIHVpbnQzMl90IGNhcGFiaWxpdGllczsKPiAgfTsKPiAtdHlw ZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9waHlzaW5mbyB4ZW5fc3lzY3RsX3BoeXNpbmZvX3Q7Cj4g LURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfcGh5c2luZm9fdCk7Cj4gIAo+ICAv Kgo+ICAgKiBHZXQgdGhlIElEIG9mIHRoZSBjdXJyZW50IHNjaGVkdWxlci4KPiBAQCAtMTIwLDgg KzExNCw2IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX3NjaGVkX2lkIHsKPiAgICAgIC8qIE9VVCB2YXJp YWJsZSAqLwo+ICAgICAgdWludDMyX3Qgc2NoZWRfaWQ7Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0 IHhlbl9zeXNjdGxfc2NoZWRfaWQgeGVuX3N5c2N0bF9zY2hlZF9pZF90Owo+IC1ERUZJTkVfWEVO X0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX3NjaGVkX2lkX3QpOwo+ICAKPiAgLyogSW50ZXJmYWNl IGZvciBjb250cm9sbGluZyBYZW4gc29mdHdhcmUgcGVyZm9ybWFuY2UgY291bnRlcnMuICovCj4g IC8qIFhFTl9TWVNDVExfcGVyZmNfb3AgKi8KPiBAQCAtMTQ4LDggKzE0MCw2IEBAIHN0cnVjdCB4 ZW5fc3lzY3RsX3BlcmZjX29wIHsKPiAgICAgIC8qIGNvdW50ZXIgdmFsdWVzIChvciBOVUxMKSAq Lwo+ICAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh4ZW5fc3lzY3RsX3BlcmZjX3ZhbF90KSB2YWw7 Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfcGVyZmNfb3AgeGVuX3N5c2N0bF9w ZXJmY19vcF90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX3BlcmZjX29w X3QpOwo+ICAKPiAgLyogWEVOX1NZU0NUTF9nZXRkb21haW5pbmZvbGlzdCAqLwo+ICBzdHJ1Y3Qg eGVuX3N5c2N0bF9nZXRkb21haW5pbmZvbGlzdCB7Cj4gQEAgLTE2MCw4ICsxNTAsNiBAQCBzdHJ1 Y3QgeGVuX3N5c2N0bF9nZXRkb21haW5pbmZvbGlzdCB7Cj4gICAgICAvKiBPVVQgdmFyaWFibGVz LiAqLwo+ICAgICAgdWludDMyX3QgICAgICAgICAgICAgIG51bV9kb21haW5zOwo+ICB9Owo+IC10 eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX2dldGRvbWFpbmluZm9saXN0IHhlbl9zeXNjdGxfZ2V0 ZG9tYWluaW5mb2xpc3RfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9n ZXRkb21haW5pbmZvbGlzdF90KTsKPiAgCj4gIC8qIEluamVjdCBkZWJ1ZyBrZXlzIGludG8gWGVu LiAqLwo+ICAvKiBYRU5fU1lTQ1RMX2RlYnVnX2tleXMgKi8KPiBAQCAtMTcwLDggKzE1OCw2IEBA IHN0cnVjdCB4ZW5fc3lzY3RsX2RlYnVnX2tleXMgewo+ICAgICAgWEVOX0dVRVNUX0hBTkRMRV82 NChjaGFyKSBrZXlzOwo+ICAgICAgdWludDMyX3QgbnJfa2V5czsKPiAgfTsKPiAtdHlwZWRlZiBz dHJ1Y3QgeGVuX3N5c2N0bF9kZWJ1Z19rZXlzIHhlbl9zeXNjdGxfZGVidWdfa2V5c190Owo+IC1E RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX2RlYnVnX2tleXNfdCk7Cj4gIAo+ICAv KiBHZXQgcGh5c2ljYWwgQ1BVIGluZm9ybWF0aW9uLiAqLwo+ICAvKiBYRU5fU1lTQ1RMX2dldGNw dWluZm8gKi8KPiBAQCAtMTg3LDggKzE3Myw2IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX2dldGNwdWlu Zm8gewo+ICAgICAgLyogT1VUIHZhcmlhYmxlcy4gKi8KPiAgICAgIHVpbnQzMl90IG5yX2NwdXM7 Cj4gIH07IAo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX2dldGNwdWluZm8geGVuX3N5c2N0 bF9nZXRjcHVpbmZvX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfZ2V0 Y3B1aW5mb190KTsgCj4gIAo+ICAvKiBYRU5fU1lTQ1RMX2F2YWlsaGVhcCAqLwo+ICBzdHJ1Y3Qg eGVuX3N5c2N0bF9hdmFpbGhlYXAgewo+IEBAIC0xOTksOCArMTgzLDYgQEAgc3RydWN0IHhlbl9z eXNjdGxfYXZhaWxoZWFwIHsKPiAgICAgIC8qIE9VVCB2YXJpYWJsZXMuICovCj4gICAgICB1aW50 NjRfYWxpZ25lZF90IGF2YWlsX2J5dGVzOy8qIEJ5dGVzIGF2YWlsYWJsZSBpbiB0aGUgc3BlY2lm aWVkIHJlZ2lvbi4gKi8KPiAgfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9hdmFpbGhl YXAgeGVuX3N5c2N0bF9hdmFpbGhlYXBfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVu X3N5c2N0bF9hdmFpbGhlYXBfdCk7Cj4gIAo+ICAvKiBYRU5fU1lTQ1RMX2dldF9wbXN0YXQgKi8K PiAgc3RydWN0IHBtX3B4X3ZhbCB7Cj4gQEAgLTIxOSw4ICsyMDEsNiBAQCBzdHJ1Y3QgcG1fcHhf c3RhdCB7Cj4gICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ2NCkgdHJhbnNfcHQ7ICAgLyog UHggdHJhbnNpdGlvbiB0YWJsZSAqLwo+ICAgICAgWEVOX0dVRVNUX0hBTkRMRV82NChwbV9weF92 YWxfdCkgcHQ7Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHBtX3B4X3N0YXQgcG1fcHhfc3RhdF90 Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShwbV9weF9zdGF0X3QpOwo+ICAKPiAgc3RydWN0 IHBtX2N4X3N0YXQgewo+ICAgICAgdWludDMyX3QgbnI7ICAgIC8qIGVudHJ5IG5yIGluIHRyaWdn ZXJzICYgcmVzaWRlbmNpZXMsIGluY2x1ZGluZyBDMCAqLwo+IEBAIC0yNTksOCArMjM5LDYgQEAg c3RydWN0IHhlbl9zeXNjdGxfZ2V0X3Btc3RhdCB7Cj4gICAgICAgICAgLyogb3RoZXIgc3RydWN0 IGZvciB0eCwgZXRjICovCj4gICAgICB9IHU7Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9z eXNjdGxfZ2V0X3Btc3RhdCB4ZW5fc3lzY3RsX2dldF9wbXN0YXRfdDsKPiAtREVGSU5FX1hFTl9H VUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9nZXRfcG1zdGF0X3QpOwo+ICAKPiAgLyogWEVOX1NZU0NU TF9jcHVfaG90cGx1ZyAqLwo+ICBzdHJ1Y3QgeGVuX3N5c2N0bF9jcHVfaG90cGx1ZyB7Cj4gQEAg LTI3MCw4ICsyNDgsNiBAQCBzdHJ1Y3QgeGVuX3N5c2N0bF9jcHVfaG90cGx1ZyB7Cj4gICNkZWZp bmUgWEVOX1NZU0NUTF9DUFVfSE9UUExVR19PRkZMSU5FIDEKPiAgICAgIHVpbnQzMl90IG9wOyAg ICAvKiBob3RwbHVnIG9wY29kZSAqLwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3Rs X2NwdV9ob3RwbHVnIHhlbl9zeXNjdGxfY3B1X2hvdHBsdWdfdDsKPiAtREVGSU5FX1hFTl9HVUVT VF9IQU5ETEUoeGVuX3N5c2N0bF9jcHVfaG90cGx1Z190KTsKPiAgCj4gIC8qCj4gICAqIEdldC9z ZXQgeGVuIHBvd2VyIG1hbmFnZW1lbnQsIGluY2x1ZGUgCj4gQEAgLTI4MSw3ICsyNTcsNiBAQCBE RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX2NwdV9oCj4gIHN0cnVjdCB4ZW5fdXNl cnNwYWNlIHsKPiAgICAgIHVpbnQzMl90IHNjYWxpbmdfc2V0c3BlZWQ7Cj4gIH07Cj4gLXR5cGVk ZWYgc3RydWN0IHhlbl91c2Vyc3BhY2UgeGVuX3VzZXJzcGFjZV90Owo+ICAKPiAgc3RydWN0IHhl bl9vbmRlbWFuZCB7Cj4gICAgICB1aW50MzJfdCBzYW1wbGluZ19yYXRlX21heDsKPiBAQCAtMjkw LDcgKzI2NSw2IEBAIHN0cnVjdCB4ZW5fb25kZW1hbmQgewo+ICAgICAgdWludDMyX3Qgc2FtcGxp bmdfcmF0ZTsKPiAgICAgIHVpbnQzMl90IHVwX3RocmVzaG9sZDsKPiAgfTsKPiAtdHlwZWRlZiBz dHJ1Y3QgeGVuX29uZGVtYW5kIHhlbl9vbmRlbWFuZF90Owo+ICAKPiAgLyogCj4gICAqIGNwdWZy ZXEgcGFyYSBuYW1lIG9mIHRoaXMgc3RydWN0dXJlIG5hbWVkIAo+IEBAIC00NjEsOCArNDM1LDYg QEAgc3RydWN0IHhlbl9zeXNjdGxfbG9ja3Byb2Zfb3Agewo+ICAgICAgLyogcHJvZmlsZSBpbmZv cm1hdGlvbiAob3IgTlVMTCkgKi8KPiAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoeGVuX3N5c2N0 bF9sb2NrcHJvZl9kYXRhX3QpIGRhdGE7Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9zeXNj dGxfbG9ja3Byb2Zfb3AgeGVuX3N5c2N0bF9sb2NrcHJvZl9vcF90Owo+IC1ERUZJTkVfWEVOX0dV RVNUX0hBTkRMRSh4ZW5fc3lzY3RsX2xvY2twcm9mX29wX3QpOwo+ICAKPiAgLyogWEVOX1NZU0NU TF9jcHV0b3BvaW5mbyAqLwo+ICAjZGVmaW5lIFhFTl9JTlZBTElEX0NPUkVfSUQgICAgICh+MFUp Cj4gQEAgLTQ5Myw4ICs0NjUsNiBAQCBzdHJ1Y3QgeGVuX3N5c2N0bF9jcHV0b3BvaW5mbyB7Cj4g ICAgICB1aW50MzJfdCBudW1fY3B1czsKPiAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoeGVuX3N5 c2N0bF9jcHV0b3BvX3QpIGNwdXRvcG87Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9zeXNj dGxfY3B1dG9wb2luZm8geGVuX3N5c2N0bF9jcHV0b3BvaW5mb190Owo+IC1ERUZJTkVfWEVOX0dV RVNUX0hBTkRMRSh4ZW5fc3lzY3RsX2NwdXRvcG9pbmZvX3QpOwo+ICAKPiAgLyogWEVOX1NZU0NU TF9udW1haW5mbyAqLwo+ICAjZGVmaW5lIFhFTl9JTlZBTElEX01FTV9TWiAgICAgKH4wVSkKPiBA QCAtNTM1LDggKzUwNSw2IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX251bWFpbmZvIHsKPiAgICAgICAq Lwo+ICAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50MzIpIGRpc3RhbmNlOwo+ICB9Owo+IC10 eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX251bWFpbmZvIHhlbl9zeXNjdGxfbnVtYWluZm9fdDsK PiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9udW1haW5mb190KTsKPiAgCj4g IC8qIFhFTl9TWVNDVExfY3B1cG9vbF9vcCAqLwo+ICAjZGVmaW5lIFhFTl9TWVNDVExfQ1BVUE9P TF9PUF9DUkVBVEUgICAgICAgICAgICAgICAgMSAgLyogQyAqLwo+IEBAIC01NTYsOCArNTI0LDYg QEAgc3RydWN0IHhlbl9zeXNjdGxfY3B1cG9vbF9vcCB7Cj4gICAgICB1aW50MzJfdCBuX2RvbTsg ICAgICAgLyogICAgICAgICAgICBPVVQ6IEkgICovCj4gICAgICBzdHJ1Y3QgeGVuY3RsX2JpdG1h cCBjcHVtYXA7IC8qICAgICBPVVQ6IElGICovCj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9z eXNjdGxfY3B1cG9vbF9vcCB4ZW5fc3lzY3RsX2NwdXBvb2xfb3BfdDsKPiAtREVGSU5FX1hFTl9H VUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9jcHVwb29sX29wX3QpOwo+ICAKPiAgLyoKPiAgICogRXJy b3IgcmV0dXJuIHZhbHVlcyBvZiBjcHVwb29sIG9wZXJhdGlvbnM6Cj4gQEAgLTYzNywxNCArNjAz LDEwIEBAIHN0cnVjdCB4ZW5fc3lzY3RsX2NyZWRpdF9zY2hlZHVsZSB7Cj4gICAgICB1bnNpZ25l ZCB0c2xpY2VfbXM7Cj4gICAgICB1bnNpZ25lZCByYXRlbGltaXRfdXM7Cj4gIH07Cj4gLXR5cGVk ZWYgc3RydWN0IHhlbl9zeXNjdGxfY3JlZGl0X3NjaGVkdWxlIHhlbl9zeXNjdGxfY3JlZGl0X3Nj aGVkdWxlX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfY3JlZGl0X3Nj aGVkdWxlX3QpOwo+ICAKPiAgc3RydWN0IHhlbl9zeXNjdGxfY3JlZGl0Ml9zY2hlZHVsZSB7Cj4g ICAgICB1bnNpZ25lZCByYXRlbGltaXRfdXM7Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9z eXNjdGxfY3JlZGl0Ml9zY2hlZHVsZSB4ZW5fc3lzY3RsX2NyZWRpdDJfc2NoZWR1bGVfdDsKPiAt REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9jcmVkaXQyX3NjaGVkdWxlX3QpOwo+ ICAKPiAgLyogWEVOX1NZU0NUTF9zY2hlZHVsZXJfb3AgKi8KPiAgLyogU2V0IG9yIGdldCBpbmZv PyAqLwo+IEBAIC02NjIsOCArNjI0LDYgQEAgc3RydWN0IHhlbl9zeXNjdGxfc2NoZWR1bGVyX29w IHsKPiAgICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9jcmVkaXQyX3NjaGVkdWxlIHNjaGVkX2Ny ZWRpdDI7Cj4gICAgICB9IHU7Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfc2No ZWR1bGVyX29wIHhlbl9zeXNjdGxfc2NoZWR1bGVyX29wX3Q7Cj4gLURFRklORV9YRU5fR1VFU1Rf SEFORExFKHhlbl9zeXNjdGxfc2NoZWR1bGVyX29wX3QpOwo+ICAKPiAgLyoKPiAgICogT3V0cHV0 IGZvcm1hdCBvZiBnY292IGRhdGE6Cj4gQEAgLTY5Niw4ICs2NTYsNiBAQCBzdHJ1Y3QgeGVuX3N5 c2N0bF9nY292X29wIHsKPiAgICAgIHVpbnQzMl90IHNpemU7IC8qIElOL09VVDogc2l6ZSBvZiB0 aGUgYnVmZmVyICAqLwo+ICAgICAgWEVOX0dVRVNUX0hBTkRMRV82NChjaGFyKSBidWZmZXI7IC8q IE9VVCAqLwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX2djb3Zfb3AgeGVuX3N5 c2N0bF9nY292X29wX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfZ2Nv dl9vcF90KTsKPiAgCj4gICNkZWZpbmUgWEVOX1NZU0NUTF9QU1JfQ01UX2dldF90b3RhbF9ybWlk ICAgICAgICAgICAgMAo+ICAjZGVmaW5lIFhFTl9TWVNDVExfUFNSX0NNVF9nZXRfbDNfdXBzY2Fs aW5nX2ZhY3RvciAgIDEKPiBAQCAtNzE2LDggKzY3NCw2IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX3Bz cl9jbXRfb3Agewo+ICAgICAgICAgIH0gbDNfY2FjaGU7Cj4gICAgICB9IHU7Cj4gIH07Cj4gLXR5 cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfcHNyX2NtdF9vcCB4ZW5fc3lzY3RsX3Bzcl9jbXRfb3Bf dDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9wc3JfY210X29wX3QpOwo+ ICAKPiAgLyogWEVOX1NZU0NUTF9wY2l0b3BvaW5mbyAqLwo+ICAjZGVmaW5lIFhFTl9JTlZBTElE X0RFViAoWEVOX0lOVkFMSURfTk9ERV9JRCAtIDEpCj4gQEAgLTc0MCw4ICs2OTYsNiBAQCBzdHJ1 Y3QgeGVuX3N5c2N0bF9wY2l0b3BvaW5mbyB7Cj4gICAgICAgKi8KPiAgICAgIFhFTl9HVUVTVF9I QU5ETEVfNjQodWludDMyKSBub2RlczsKPiAgfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0 bF9wY2l0b3BvaW5mbyB4ZW5fc3lzY3RsX3BjaXRvcG9pbmZvX3Q7Cj4gLURFRklORV9YRU5fR1VF U1RfSEFORExFKHhlbl9zeXNjdGxfcGNpdG9wb2luZm9fdCk7Cj4gIAo+ICAjZGVmaW5lIFhFTl9T WVNDVExfUFNSX0NBVF9nZXRfbDNfaW5mbyAgICAgICAgICAgICAgIDAKPiAgI2RlZmluZSBYRU5f U1lTQ1RMX1BTUl9DQVRfZ2V0X2wyX2luZm8gICAgICAgICAgICAgICAxCj4gQEAgLTc1Nyw4ICs3 MTEsNiBAQCBzdHJ1Y3QgeGVuX3N5c2N0bF9wc3JfY2F0X29wIHsKPiAgICAgICAgICB9IGNhdF9p bmZvOwo+ICAgICAgfSB1Owo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX3Bzcl9j YXRfb3AgeGVuX3N5c2N0bF9wc3JfY2F0X29wX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExF KHhlbl9zeXNjdGxfcHNyX2NhdF9vcF90KTsKPiAgCj4gICNkZWZpbmUgWEVOX1NZU0NUTF9UTUVN X09QX0FMTF9DTElFTlRTIDB4RkZGRlUKPiAgCj4gQEAgLTg2Myw4ICs4MTUsNiBAQCBzdHJ1Y3Qg eGVuX3N5c2N0bF90bWVtX29wIHsKPiAgICAgICAgICAgICAgICAgICAgICAgICAgLyogb2YgdGhl bS4gKi8KPiAgICAgIH0gdTsKPiAgfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF90bWVt X29wIHhlbl9zeXNjdGxfdG1lbV9vcF90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5f c3lzY3RsX3RtZW1fb3BfdCk7Cj4gIAo+ICAvKgo+ICAgKiBYRU5fU1lTQ1RMX2dldF9jcHVfbGV2 ZWxsaW5nX2NhcHMgKHg4NiBzcGVjaWZpYykKPiBAQCAtODg0LDggKzgzNCw2IEBAIHN0cnVjdCB4 ZW5fc3lzY3RsX2NwdV9sZXZlbGxpbmdfY2FwcyB7Cj4gICNkZWZpbmUgWEVOX1NZU0NUTF9DUFVf TEVWRUxDQVBfbDdzMF9lYnggICAgKDF1bCA8PCAgOCkgLyogMHgwMDAwMDAwNzowLmVieCAgKi8K PiAgICAgIHVpbnQzMl90IGNhcHM7Cj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxf Y3B1X2xldmVsbGluZ19jYXBzIHhlbl9zeXNjdGxfY3B1X2xldmVsbGluZ19jYXBzX3Q7Cj4gLURF RklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfY3B1X2xldmVsbGluZ19jYXBzX3QpOwo+ ICAKPiAgLyoKPiAgICogWEVOX1NZU0NUTF9nZXRfY3B1X2ZlYXR1cmVzZXQgKHg4NiBzcGVjaWZp YykKPiBAQCAtOTA5LDggKzg1Nyw2IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX2NwdV9mZWF0dXJlc2V0 IHsKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBtYXhpbXVtIGxlbmd0aC4gKi8KPiAg ICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDMyKSBmZWF0dXJlczsgLyogT1VUOiAqLwo+ICB9 Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX2ZlYXR1cmVzZXQgeGVuX3N5c2N0bF9mZWF0 dXJlc2V0X3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfZmVhdHVyZXNl dF90KTsKPiAgCj4gIC8qCj4gICAqIFhFTl9TWVNDVExfTElWRVBBVENIX29wCj4gQEAgLTk2Niw4 ICs5MTIsNiBAQCBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9uYW1lIHsKPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fTElWRVBBVENIX05BTUVfU0laRS4g Ki8KPiAgICAgIHVpbnQxNl90IHBhZFszXTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjog TVVTVCBiZSB6ZXJvLiAqLwo+ICB9Owo+IC10eXBlZGVmIHN0cnVjdCB4ZW5fbGl2ZXBhdGNoX25h bWUgeGVuX2xpdmVwYXRjaF9uYW1lX3Q7Cj4gLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9s aXZlcGF0Y2hfbmFtZV90KTsKPiAgCj4gIC8qCj4gICAqIFVwbG9hZCBhIHBheWxvYWQgdG8gdGhl IGh5cGVydmlzb3IuIFRoZSBwYXlsb2FkIGlzIHZlcmlmaWVkCj4gQEAgLTk4NiwxMiArOTMwLDEw IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9saXZlcGF0Y2hfbmEKPiAgICovCj4gICNk ZWZpbmUgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfVVBMT0FEIDAKPiAgc3RydWN0IHhlbl9zeXNjdGxf bGl2ZXBhdGNoX3VwbG9hZCB7Cj4gLSAgICB4ZW5fbGl2ZXBhdGNoX25hbWVfdCBuYW1lOyAgICAg ICAgICAgICAgLyogSU4sIG5hbWUgb2YgdGhlIHBhdGNoLiAqLwo+ICsgICAgc3RydWN0IHhlbl9s aXZlcGF0Y2hfbmFtZSBuYW1lOyAgICAgICAgIC8qIElOLCBuYW1lIG9mIHRoZSBwYXRjaC4gKi8K PiAgICAgIHVpbnQ2NF90IHNpemU7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTiwgc2l6 ZSBvZiB0aGUgRUxGIGZpbGUuICovCj4gICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ4KSBw YXlsb2FkOyAgICAgLyogSU4sIHRoZSBFTEYgZmlsZS4gKi8KPiAgfTsKPiAtdHlwZWRlZiBzdHJ1 Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfdXBsb2FkIHhlbl9zeXNjdGxfbGl2ZXBhdGNoX3VwbG9h ZF90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX2xpdmVwYXRjaF91cGxv YWRfdCk7Cj4gIAo+ICAvKgo+ICAgKiBSZXRyaWV2ZSBhbiBzdGF0dXMgb2YgYW4gc3BlY2lmaWMg cGF5bG9hZC4KPiBAQCAtMTAxMywxMSArOTU1LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgeGVuX2xpdmVw YXRjaF9zdGF0dXMgeGVuXwo+ICBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbGl2ZXBhdGNo X3N0YXR1c190KTsKPiAgCj4gIHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9nZXQgewo+IC0g ICAgeGVuX2xpdmVwYXRjaF9uYW1lX3QgbmFtZTsgICAgICAgICAgICAgIC8qIElOLCBuYW1lIG9m IHRoZSBwYXlsb2FkLiAqLwo+IC0gICAgeGVuX2xpdmVwYXRjaF9zdGF0dXNfdCBzdGF0dXM7ICAg ICAgICAgIC8qIElOL09VVCwgc3RhdGUgb2YgaXQuICovCj4gKyAgICBzdHJ1Y3QgeGVuX2xpdmVw YXRjaF9uYW1lIG5hbWU7ICAgICAgICAgLyogSU4sIG5hbWUgb2YgdGhlIHBheWxvYWQuICovCj4g KyAgICBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9zdGF0dXMgc3RhdHVzOyAgICAgLyogSU4vT1VULCBz dGF0ZSBvZiBpdC4gKi8KPiAgfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0 Y2hfZ2V0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2dldF90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hB TkRMRSh4ZW5fc3lzY3RsX2xpdmVwYXRjaF9nZXRfdCk7Cj4gIAo+ICAvKgo+ICAgKiBSZXRyaWV2 ZSBhbiBhcnJheSBvZiBhYmJyZXZpYXRlZCBzdGF0dXMgYW5kIG5hbWVzIG9mIHBheWxvYWRzIHRo YXQgYXJlCj4gQEAgLTEwNTksOCArOTk5LDYgQEAgc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNo X2xpc3Qgewo+ICAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50MzIpIGxlbjsgICAgICAgIC8q IE9VVDogQXJyYXkgb2YgbGVuZ3RocyBvZiBuYW1lJ3MuCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVzdCBoYXZlIG5yIG9mIHRoZW0uICovCj4gIH07 Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2xpc3QgeGVuX3N5c2N0bF9s aXZlcGF0Y2hfbGlzdF90Owo+IC1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX2xp dmVwYXRjaF9saXN0X3QpOwo+ICAKPiAgLyoKPiAgICogUGVyZm9ybSBhbiBvcGVyYXRpb24gb24g dGhlIHBheWxvYWQgc3RydWN0dXJlIHJlZmVyZW5jZWQgYnkgdGhlIGBuYW1lYCBmaWVsZC4KPiBA QCAtMTA2OSw3ICsxMDA3LDcgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9s aXZlcAo+ICAgKi8KPiAgI2RlZmluZSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9BQ1RJT04gMwo+ICBz dHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfYWN0aW9uIHsKPiAtICAgIHhlbl9saXZlcGF0Y2hf bmFtZV90IG5hbWU7ICAgICAgICAgICAgICAvKiBJTiwgbmFtZSBvZiB0aGUgcGF0Y2guICovCj4g KyAgICBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9uYW1lIG5hbWU7ICAgICAgICAgLyogSU4sIG5hbWUg b2YgdGhlIHBhdGNoLiAqLwo+ICAjZGVmaW5lIExJVkVQQVRDSF9BQ1RJT05fVU5MT0FEICAgICAg IDEKPiAgI2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9OX1JFVkVSVCAgICAgICAyCj4gICNkZWZpbmUg TElWRVBBVENIX0FDVElPTl9BUFBMWSAgICAgICAgMwo+IEBAIC0xMDgwLDIxICsxMDE4LDE3IEBA IHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9hY3Rpb24gewo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9yIHVwcGVyIGJvdW5kIG9mIHRpbWUgKG5z KSAqLwo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZv ciBvcGVyYXRpb24gdG8gdGFrZS4gKi8KPiAgfTsKPiAtdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0 bF9saXZlcGF0Y2hfYWN0aW9uIHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2FjdGlvbl90Owo+IC1ERUZJ TkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX2xpdmVwYXRjaF9hY3Rpb25fdCk7Cj4gIAo+ ICBzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfb3Agewo+ICAgICAgdWludDMyX3QgY21kOyAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBYRU5fU1lTQ1RMX0xJVkVQQVRDSF8qLiAq Lwo+ICAgICAgdWludDMyX3QgcGFkOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBB bHdheXMgemVyby4gKi8KPiAgICAgIHVuaW9uIHsKPiAtICAgICAgICB4ZW5fc3lzY3RsX2xpdmVw YXRjaF91cGxvYWRfdCB1cGxvYWQ7Cj4gLSAgICAgICAgeGVuX3N5c2N0bF9saXZlcGF0Y2hfbGlz dF90IGxpc3Q7Cj4gLSAgICAgICAgeGVuX3N5c2N0bF9saXZlcGF0Y2hfZ2V0X3QgZ2V0Owo+IC0g ICAgICAgIHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2FjdGlvbl90IGFjdGlvbjsKPiArICAgICAgICBz dHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfdXBsb2FkIHVwbG9hZDsKPiArICAgICAgICBzdHJ1 Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfbGlzdCBsaXN0Owo+ICsgICAgICAgIHN0cnVjdCB4ZW5f c3lzY3RsX2xpdmVwYXRjaF9nZXQgZ2V0Owo+ICsgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2xp dmVwYXRjaF9hY3Rpb24gYWN0aW9uOwo+ICAgICAgfSB1Owo+ICB9Owo+IC10eXBlZGVmIHN0cnVj dCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcF90Owo+IC1E RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcF90KTsKPiAgCj4g IC8qCj4gICAqIFhFTl9TWVNDVExfc2V0X3BhcmFtZXRlcgo+IEBAIC0xMTExLDggKzEwNDUsNiBA QCBzdHJ1Y3QgeGVuX3N5c2N0bF9zZXRfcGFyYW1ldGVyIHsKPiAgICAgIHVpbnQxNl90IHNpemU7 ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogc2l6ZSBvZiBwYXJhbWV0ZXJzLiAqLwo+ ICAgICAgdWludDE2X3QgcGFkWzNdOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBNVVNU IGJlIHplcm8uICovCj4gIH07Cj4gLXR5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfc2V0X3BhcmFt ZXRlciB4ZW5fc3lzY3RsX3NldF9wYXJhbWV0ZXJfdDsKPiAtREVGSU5FX1hFTl9HVUVTVF9IQU5E TEUoeGVuX3N5c2N0bF9zZXRfcGFyYW1ldGVyX3QpOwo+ICAKPiAgc3RydWN0IHhlbl9zeXNjdGwg ewo+ICAgICAgdWludDMyX3QgY21kOwo+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9nY292LmgKPiAr KysgYi94ZW4vaW5jbHVkZS94ZW4vZ2Nvdi5oCj4gQEAgLTMsNyArMyw3IEBACj4gIAo+ICAjaWZk ZWYgQ09ORklHX0dDT1YKPiAgI2luY2x1ZGUgPHB1YmxpYy9zeXNjdGwuaD4KPiAtaW50IHN5c2N0 bF9nY292X29wKHhlbl9zeXNjdGxfZ2Nvdl9vcF90ICpvcCk7Cj4gK2ludCBzeXNjdGxfZ2Nvdl9v cChzdHJ1Y3QgeGVuX3N5c2N0bF9nY292X29wICpvcCk7Cj4gICNlbmRpZgo+ICAKPiAgI2VuZGlm CS8qIF9YRU5fR0NPVl9IICovCj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKPiArKysg Yi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAo+IEBAIC05MTQsNyArOTE0LDcgQEAgaW50IGNwdXBv b2xfZG9fc3lzY3RsKHN0cnVjdCB4ZW5fc3lzY3RsXwo+ICB2b2lkIHNjaGVkdWxlX2R1bXAoc3Ry dWN0IGNwdXBvb2wgKmMpOwo+ICBleHRlcm4gdm9pZCBkdW1wX3J1bnEodW5zaWduZWQgY2hhciBr ZXkpOwo+ICAKPiAtdm9pZCBhcmNoX2RvX3BoeXNpbmZvKHhlbl9zeXNjdGxfcGh5c2luZm9fdCAq cGkpOwo+ICt2b2lkIGFyY2hfZG9fcGh5c2luZm8oc3RydWN0IHhlbl9zeXNjdGxfcGh5c2luZm8g KnBpKTsKPiAgCj4gICNlbmRpZiAvKiBfX1NDSEVEX0hfXyAqLwo+ICAKPiAtLS0gYS94ZW4vaW5j bHVkZS94ZW4vc3BpbmxvY2suaAo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9zcGlubG9jay5oCj4g QEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIF9sb2NrX3Byb2ZpbGVfZGVyZWdpc3Rlcl9zdHJ1Y3Qo aW50Cj4gICNkZWZpbmUgbG9ja19wcm9maWxlX2RlcmVnaXN0ZXJfc3RydWN0KHR5cGUsIHB0cikg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAgICAgIF9sb2NrX3Byb2ZpbGVfZGVyZWdp c3Rlcl9zdHJ1Y3QodHlwZSwgJigocHRyKS0+cHJvZmlsZV9oZWFkKSkKPiAgCj4gLWV4dGVybiBp bnQgc3BpbmxvY2tfcHJvZmlsZV9jb250cm9sKHhlbl9zeXNjdGxfbG9ja3Byb2Zfb3BfdCAqcGMp Owo+ICtleHRlcm4gaW50IHNwaW5sb2NrX3Byb2ZpbGVfY29udHJvbChzdHJ1Y3QgeGVuX3N5c2N0 bF9sb2NrcHJvZl9vcCAqcGMpOwo+ICBleHRlcm4gdm9pZCBzcGlubG9ja19wcm9maWxlX3ByaW50 YWxsKHVuc2lnbmVkIGNoYXIga2V5KTsKPiAgZXh0ZXJuIHZvaWQgc3BpbmxvY2tfcHJvZmlsZV9y ZXNldCh1bnNpZ25lZCBjaGFyIGtleSk7Cj4gIAo+IAo+IAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==