From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= Subject: Re: [PATCH 1/2] drm/ttm: move fpfn and lpfn into each placement Date: Tue, 26 Aug 2014 13:28:28 +0200 Message-ID: <53FC6F5C.9050501@vodafone.de> References: <1408695238-1992-1-git-send-email-deathsimple@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from pegasos-out.vodafone.de (pegasos-out.vodafone.de [80.84.1.38]) by gabe.freedesktop.org (Postfix) with ESMTP id 20E8B6E4AD for ; Tue, 26 Aug 2014 04:29:11 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by pegasos-out.vodafone.de (Rohrpostix2 Daemon) with ESMTP id B7932767F00 for ; Tue, 26 Aug 2014 13:29:09 +0200 (CEST) Received: from pegasos-out.vodafone.de ([127.0.0.1]) by localhost (rohrpostix2.prod.vfnet.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dbRtLXsnqmSY for ; Tue, 26 Aug 2014 13:28:45 +0200 (CEST) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Alex Deucher Cc: Maling list - DRI developers List-Id: dri-devel@lists.freedesktop.org SGkgRGF2ZSwKCmFueSBwcmVmZXJlbmNlcyBob3cgSSBjYW4gcHVzaCB0aGlzIGNoYW5nZSB1cHN0 cmVhbT8KClNpbmNlIGl0IGFmZmVjdHMgYSB3aG9sZSBidW5jaCBvZiBkcml2ZXJzIGl0IHdvdWxk IGJlIG5pY2UgaWYgSSBjb3VsZCAKZ2V0IG1vcmUgcmV2aWV3cyBhbmQvb3IgYWNrcyBvbiBpdC4g QW5kIGlmIHdlIGp1c3QgcHVzaCBpdCB0byB5b3UgCnRocm91Z2ggdGhlIFJhZGVvbiB0cmVlIGl0 IHdpbGwgcHJvYmFibHkgY2F1c2UgYSBidW5jaCBvZiBtZXJnZSBjb25mbGljdHMuCgpUaGFua3Mg Zm9yIGFueSBhZHZpY2UsCkNocmlzdGlhbi4KCkFtIDI1LjA4LjIwMTQgdW0gMTc6NTEgc2Nocmll YiBBbGV4IERldWNoZXI6Cj4gT24gRnJpLCBBdWcgMjIsIDIwMTQgYXQgNDoxMyBBTSwgQ2hyaXN0 aWFuIEvDtm5pZwo+IDxkZWF0aHNpbXBsZUB2b2RhZm9uZS5kZT4gd3JvdGU6Cj4+IEZyb206IENo cmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPj4KPj4gVGhpcyBhbGxv d3MgdXMgdG8gbW9yZSBmaW5lIGdyYWluZWQgc3BlY2lmeSB3aGVyZSB0byBwbGFjZSB0aGUgYnVm ZmVyIG9iamVjdC4KPj4KPj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0 aWFuLmtvZW5pZ0BhbWQuY29tPgo+IFNlcmllcyBpczoKPgo+IFJldmlld2VkLWJ5OiBBbGV4IERl dWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+Cj4KPj4gLS0tCj4+ICAgZHJpdmVycy9n cHUvZHJtL2FzdC9hc3RfZHJ2LmggICAgICAgICAgICAgICAgIHwgICAyICstCj4+ICAgZHJpdmVy cy9ncHUvZHJtL2FzdC9hc3RfdHRtLmMgICAgICAgICAgICAgICAgIHwgIDIwICsrLS0KPj4gICBk cml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19kcnYuaCAgICAgICAgICAgfCAgIDIgKy0KPj4g ICBkcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c190dG0uYyAgICAgICAgICAgfCAgMTcgKyst LQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfZHJ2LmggICAgICAgICB8ICAg MiArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfdHRtLmMgICAgICAgICB8 ICAyMCArKy0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jICAgICAg ICAgIHwgIDUyICsrKysrKystLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1 X2JvLmggICAgICAgICAgfCAgIDQgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2 ZWF1X3R0bS5jICAgICAgICAgfCAgIDkgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9k cnYuaCAgICAgICAgICAgICAgICAgfCAgIDIgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4 bF9vYmplY3QuYyAgICAgICAgICAgICAgfCAgMTcgKystLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9x eGwvcXhsX3R0bS5jICAgICAgICAgICAgICAgICB8ICAgOCArLQo+PiAgIGRyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uLmggICAgICAgICAgICAgICB8ICAgMiArLQo+PiAgIGRyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jICAgICAgICB8ICA3MSArKysrKysrKystLS0tLQo+ PiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jICAgICAgICAgICB8ICAyNSAr Ky0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3V2ZC5jICAgICAgICAgICB8 ICAgOCArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgICAgICAgICAgICAgICAg ICB8ICA5MyArKysrKysrKy0tLS0tLS0tLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9i b19tYW5hZ2VyLmMgICAgICAgICAgfCAgIDkgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9idWZmZXIuYyAgICAgICAgfCAxMzYgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0K Pj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kbWFidWYuYyAgICAgICAgfCAgMjIg KysrLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mYi5jICAgICAgICAgICAg fCAgMTAgKy0KPj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9nbXJpZF9tYW5hZ2Vy LmMgfCAgIDMgKy0KPj4gICBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oICAgICAgICAgICAg ICAgICAgfCAgNDAgKysrKy0tLS0KPj4gICBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5o ICAgICAgICAgICAgICAgfCAgIDMgKy0KPj4gICAyNCBmaWxlcyBjaGFuZ2VkLCAzMzIgaW5zZXJ0 aW9ucygrKSwgMjQ1IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FzdC9hc3RfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9kcnYuaAo+PiBpbmRl eCA5NTdkNGZhLi5jYjkxYzJhIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2Fz dF9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9kcnYuaAo+PiBAQCAtMzE2 LDcgKzMxNiw3IEBAIHN0cnVjdCBhc3RfYm8gewo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX3BsYWNl bWVudCBwbGFjZW1lbnQ7Cj4+ICAgICAgICAgIHN0cnVjdCB0dG1fYm9fa21hcF9vYmoga21hcDsK Pj4gICAgICAgICAgc3RydWN0IGRybV9nZW1fb2JqZWN0IGdlbTsKPj4gLSAgICAgICB1MzIgcGxh Y2VtZW50c1szXTsKPj4gKyAgICAgICBzdHJ1Y3QgdHRtX3BsYWNlIHBsYWNlbWVudHNbM107Cj4+ ICAgICAgICAgIGludCBwaW5fY291bnQ7Cj4+ICAgfTsKPj4gICAjZGVmaW5lIGdlbV90b19hc3Rf Ym8oZ29iaikgY29udGFpbmVyX29mKChnb2JqKSwgc3RydWN0IGFzdF9ibywgZ2VtKQo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0v YXN0L2FzdF90dG0uYwo+PiBpbmRleCBiODI0NjIyLi44MDA4ZWEwIDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYXN0L2FzdF90dG0uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXN0 L2FzdF90dG0uYwo+PiBAQCAtMjkzLDE4ICsyOTMsMjIgQEAgdm9pZCBhc3RfbW1fZmluaShzdHJ1 Y3QgYXN0X3ByaXZhdGUgKmFzdCkKPj4gICB2b2lkIGFzdF90dG1fcGxhY2VtZW50KHN0cnVjdCBh c3RfYm8gKmJvLCBpbnQgZG9tYWluKQo+PiAgIHsKPj4gICAgICAgICAgdTMyIGMgPSAwOwo+PiAt ICAgICAgIGJvLT5wbGFjZW1lbnQuZnBmbiA9IDA7Cj4+IC0gICAgICAgYm8tPnBsYWNlbWVudC5s cGZuID0gMDsKPj4gKyAgICAgICB1bnNpZ25lZCBpOwo+PiArCj4+ICAgICAgICAgIGJvLT5wbGFj ZW1lbnQucGxhY2VtZW50ID0gYm8tPnBsYWNlbWVudHM7Cj4+ICAgICAgICAgIGJvLT5wbGFjZW1l bnQuYnVzeV9wbGFjZW1lbnQgPSBiby0+cGxhY2VtZW50czsKPj4gICAgICAgICAgaWYgKGRvbWFp biAmIFRUTV9QTF9GTEFHX1ZSQU0pCj4+IC0gICAgICAgICAgICAgICBiby0+cGxhY2VtZW50c1tj KytdID0gVFRNX1BMX0ZMQUdfV0MgfCBUVE1fUExfRkxBR19VTkNBQ0hFRCB8IFRUTV9QTF9GTEFH X1ZSQU07Cj4+ICsgICAgICAgICAgICAgICBiby0+cGxhY2VtZW50c1tjKytdLmZsYWdzID0gVFRN X1BMX0ZMQUdfV0MgfCBUVE1fUExfRkxBR19VTkNBQ0hFRCB8IFRUTV9QTF9GTEFHX1ZSQU07Cj4+ ICAgICAgICAgIGlmIChkb21haW4gJiBUVE1fUExfRkxBR19TWVNURU0pCj4+IC0gICAgICAgICAg ICAgICBiby0+cGxhY2VtZW50c1tjKytdID0gVFRNX1BMX01BU0tfQ0FDSElORyB8IFRUTV9QTF9G TEFHX1NZU1RFTTsKPj4gKyAgICAgICAgICAgICAgIGJvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3Mg PSBUVE1fUExfTUFTS19DQUNISU5HIHwgVFRNX1BMX0ZMQUdfU1lTVEVNOwo+PiAgICAgICAgICBp ZiAoIWMpCj4+IC0gICAgICAgICAgICAgICBiby0+cGxhY2VtZW50c1tjKytdID0gVFRNX1BMX01B U0tfQ0FDSElORyB8IFRUTV9QTF9GTEFHX1NZU1RFTTsKPj4gKyAgICAgICAgICAgICAgIGJvLT5w bGFjZW1lbnRzW2MrK10uZmxhZ3MgPSBUVE1fUExfTUFTS19DQUNISU5HIHwgVFRNX1BMX0ZMQUdf U1lTVEVNOwo+PiAgICAgICAgICBiby0+cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQgPSBjOwo+PiAg ICAgICAgICBiby0+cGxhY2VtZW50Lm51bV9idXN5X3BsYWNlbWVudCA9IGM7Cj4+ICsgICAgICAg Zm9yIChpID0gMDsgaSA8IGM7ICsraSkgewo+PiArICAgICAgICAgICAgICAgYm8tPnBsYWNlbWVu dHNbaV0uZnBmbiA9IDA7Cj4+ICsgICAgICAgICAgICAgICBiby0+cGxhY2VtZW50c1tpXS5scGZu ID0gMDsKPj4gKyAgICAgICB9Cj4+ICAgfQo+Pgo+PiAgIGludCBhc3RfYm9fY3JlYXRlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIGludCBzaXplLCBpbnQgYWxpZ24sCj4+IEBAIC0zNjAsNyArMzY0 LDcgQEAgaW50IGFzdF9ib19waW4oc3RydWN0IGFzdF9ibyAqYm8sIHUzMiBwbF9mbGFnLCB1NjQg KmdwdV9hZGRyKQo+Pgo+PiAgICAgICAgICBhc3RfdHRtX3BsYWNlbWVudChibywgcGxfZmxhZyk7 Cj4+ICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBiby0+cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQ7 IGkrKykKPj4gLSAgICAgICAgICAgICAgIGJvLT5wbGFjZW1lbnRzW2ldIHw9IFRUTV9QTF9GTEFH X05PX0VWSUNUOwo+PiArICAgICAgICAgICAgICAgYm8tPnBsYWNlbWVudHNbaV0uZmxhZ3MgfD0g VFRNX1BMX0ZMQUdfTk9fRVZJQ1Q7Cj4+ICAgICAgICAgIHJldCA9IHR0bV9ib192YWxpZGF0ZSgm Ym8tPmJvLCAmYm8tPnBsYWNlbWVudCwgZmFsc2UsIGZhbHNlKTsKPj4gICAgICAgICAgaWYgKHJl dCkKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+PiBAQCAtMzgzLDcgKzM4Nyw3IEBA IGludCBhc3RfYm9fdW5waW4oc3RydWN0IGFzdF9ibyAqYm8pCj4+ICAgICAgICAgICAgICAgICAg cmV0dXJuIDA7Cj4+Cj4+ICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBiby0+cGxhY2VtZW50Lm51 bV9wbGFjZW1lbnQgOyBpKyspCj4+IC0gICAgICAgICAgICAgICBiby0+cGxhY2VtZW50c1tpXSAm PSB+VFRNX1BMX0ZMQUdfTk9fRVZJQ1Q7Cj4+ICsgICAgICAgICAgICAgICBiby0+cGxhY2VtZW50 c1tpXS5mbGFncyAmPSB+VFRNX1BMX0ZMQUdfTk9fRVZJQ1Q7Cj4+ICAgICAgICAgIHJldCA9IHR0 bV9ib192YWxpZGF0ZSgmYm8tPmJvLCAmYm8tPnBsYWNlbWVudCwgZmFsc2UsIGZhbHNlKTsKPj4g ICAgICAgICAgaWYgKHJldCkKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+PiBAQCAt NDA3LDcgKzQxMSw3IEBAIGludCBhc3RfYm9fcHVzaF9zeXNyYW0oc3RydWN0IGFzdF9ibyAqYm8p Cj4+Cj4+ICAgICAgICAgIGFzdF90dG1fcGxhY2VtZW50KGJvLCBUVE1fUExfRkxBR19TWVNURU0p Owo+PiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYm8tPnBsYWNlbWVudC5udW1fcGxhY2VtZW50 IDsgaSsrKQo+PiAtICAgICAgICAgICAgICAgYm8tPnBsYWNlbWVudHNbaV0gfD0gVFRNX1BMX0ZM QUdfTk9fRVZJQ1Q7Cj4+ICsgICAgICAgICAgICAgICBiby0+cGxhY2VtZW50c1tpXS5mbGFncyB8 PSBUVE1fUExfRkxBR19OT19FVklDVDsKPj4KPj4gICAgICAgICAgcmV0ID0gdHRtX2JvX3ZhbGlk YXRlKCZiby0+Ym8sICZiby0+cGxhY2VtZW50LCBmYWxzZSwgZmFsc2UpOwo+PiAgICAgICAgICBp ZiAocmV0KSB7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2Rydi5oCj4+IGluZGV4IDQwMWM4 OTAuLmRkMmNmYzkgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVz X2Rydi5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2Rydi5oCj4+IEBA IC0xNjMsNyArMTYzLDcgQEAgc3RydWN0IGNpcnJ1c19ibyB7Cj4+ICAgICAgICAgIHN0cnVjdCB0 dG1fcGxhY2VtZW50IHBsYWNlbWVudDsKPj4gICAgICAgICAgc3RydWN0IHR0bV9ib19rbWFwX29i aiBrbWFwOwo+PiAgICAgICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgZ2VtOwo+PiAtICAgICAg IHUzMiBwbGFjZW1lbnRzWzNdOwo+PiArICAgICAgIHN0cnVjdCB0dG1fcGxhY2UgcGxhY2VtZW50 c1szXTsKPj4gICAgICAgICAgaW50IHBpbl9jb3VudDsKPj4gICB9Owo+PiAgICNkZWZpbmUgZ2Vt X3RvX2NpcnJ1c19ibyhnb2JqKSBjb250YWluZXJfb2YoKGdvYmopLCBzdHJ1Y3QgY2lycnVzX2Jv LCBnZW0pCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c190dG0u YyBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX3R0bS5jCj4+IGluZGV4IDkyZTZiNzcu LjNlN2Q3NTggMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX3R0 bS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX3R0bS5jCj4+IEBAIC0y OTgsMTggKzI5OCwyMSBAQCB2b2lkIGNpcnJ1c19tbV9maW5pKHN0cnVjdCBjaXJydXNfZGV2aWNl ICpjaXJydXMpCj4+ICAgdm9pZCBjaXJydXNfdHRtX3BsYWNlbWVudChzdHJ1Y3QgY2lycnVzX2Jv ICpibywgaW50IGRvbWFpbikKPj4gICB7Cj4+ICAgICAgICAgIHUzMiBjID0gMDsKPj4gLSAgICAg ICBiby0+cGxhY2VtZW50LmZwZm4gPSAwOwo+PiAtICAgICAgIGJvLT5wbGFjZW1lbnQubHBmbiA9 IDA7Cj4+ICsgICAgICAgdW5zaWduZWQgaTsKPj4gICAgICAgICAgYm8tPnBsYWNlbWVudC5wbGFj ZW1lbnQgPSBiby0+cGxhY2VtZW50czsKPj4gICAgICAgICAgYm8tPnBsYWNlbWVudC5idXN5X3Bs YWNlbWVudCA9IGJvLT5wbGFjZW1lbnRzOwo+PiAgICAgICAgICBpZiAoZG9tYWluICYgVFRNX1BM X0ZMQUdfVlJBTSkKPj4gLSAgICAgICAgICAgICAgIGJvLT5wbGFjZW1lbnRzW2MrK10gPSBUVE1f UExfRkxBR19XQyB8IFRUTV9QTF9GTEFHX1VOQ0FDSEVEIHwgVFRNX1BMX0ZMQUdfVlJBTTsKPj4g KyAgICAgICAgICAgICAgIGJvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPSBUVE1fUExfRkxBR19X QyB8IFRUTV9QTF9GTEFHX1VOQ0FDSEVEIHwgVFRNX1BMX0ZMQUdfVlJBTTsKPj4gICAgICAgICAg aWYgKGRvbWFpbiAmIFRUTV9QTF9GTEFHX1NZU1RFTSkKPj4gLSAgICAgICAgICAgICAgIGJvLT5w bGFjZW1lbnRzW2MrK10gPSBUVE1fUExfTUFTS19DQUNISU5HIHwgVFRNX1BMX0ZMQUdfU1lTVEVN Owo+PiArICAgICAgICAgICAgICAgYm8tPnBsYWNlbWVudHNbYysrXS5mbGFncyA9IFRUTV9QTF9N QVNLX0NBQ0hJTkcgfCBUVE1fUExfRkxBR19TWVNURU07Cj4+ICAgICAgICAgIGlmICghYykKPj4g LSAgICAgICAgICAgICAgIGJvLT5wbGFjZW1lbnRzW2MrK10gPSBUVE1fUExfTUFTS19DQUNISU5H IHwgVFRNX1BMX0ZMQUdfU1lTVEVNOwo+PiArICAgICAgICAgICAgICAgYm8tPnBsYWNlbWVudHNb YysrXS5mbGFncyA9IFRUTV9QTF9NQVNLX0NBQ0hJTkcgfCBUVE1fUExfRkxBR19TWVNURU07Cj4+ ICAgICAgICAgIGJvLT5wbGFjZW1lbnQubnVtX3BsYWNlbWVudCA9IGM7Cj4+ICAgICAgICAgIGJv LT5wbGFjZW1lbnQubnVtX2J1c3lfcGxhY2VtZW50ID0gYzsKPj4gKyAgICAgICBmb3IgKGkgPSAw OyBpIDwgYzsgKytpKSB7Cj4+ICsgICAgICAgICAgICAgICBiby0+cGxhY2VtZW50c1tpXS5mcGZu ID0gMDsKPj4gKyAgICAgICAgICAgICAgIGJvLT5wbGFjZW1lbnRzW2ldLmxwZm4gPSAwOwo+PiAr ICAgICAgIH0KPj4gICB9Cj4+Cj4+ICAgaW50IGNpcnJ1c19ib19jcmVhdGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgaW50IHNpemUsIGludCBhbGlnbiwKPj4gQEAgLTM2NSw3ICszNjgsNyBAQCBp bnQgY2lycnVzX2JvX3BpbihzdHJ1Y3QgY2lycnVzX2JvICpibywgdTMyIHBsX2ZsYWcsIHU2NCAq Z3B1X2FkZHIpCj4+Cj4+ICAgICAgICAgIGNpcnJ1c190dG1fcGxhY2VtZW50KGJvLCBwbF9mbGFn KTsKPj4gICAgICAgICAgZm9yIChpID0gMDsgaSA8IGJvLT5wbGFjZW1lbnQubnVtX3BsYWNlbWVu dDsgaSsrKQo+PiAtICAgICAgICAgICAgICAgYm8tPnBsYWNlbWVudHNbaV0gfD0gVFRNX1BMX0ZM QUdfTk9fRVZJQ1Q7Cj4+ICsgICAgICAgICAgICAgICBiby0+cGxhY2VtZW50c1tpXS5mbGFncyB8 PSBUVE1fUExfRkxBR19OT19FVklDVDsKPj4gICAgICAgICAgcmV0ID0gdHRtX2JvX3ZhbGlkYXRl KCZiby0+Ym8sICZiby0+cGxhY2VtZW50LCBmYWxzZSwgZmFsc2UpOwo+PiAgICAgICAgICBpZiAo cmV0KQo+PiAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+IEBAIC0zOTIsNyArMzk1LDcg QEAgaW50IGNpcnJ1c19ib19wdXNoX3N5c3JhbShzdHJ1Y3QgY2lycnVzX2JvICpibykKPj4KPj4g ICAgICAgICAgY2lycnVzX3R0bV9wbGFjZW1lbnQoYm8sIFRUTV9QTF9GTEFHX1NZU1RFTSk7Cj4+ ICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBiby0+cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQgOyBp KyspCj4+IC0gICAgICAgICAgICAgICBiby0+cGxhY2VtZW50c1tpXSB8PSBUVE1fUExfRkxBR19O T19FVklDVDsKPj4gKyAgICAgICAgICAgICAgIGJvLT5wbGFjZW1lbnRzW2ldLmZsYWdzIHw9IFRU TV9QTF9GTEFHX05PX0VWSUNUOwo+Pgo+PiAgICAgICAgICByZXQgPSB0dG1fYm9fdmFsaWRhdGUo JmJvLT5ibywgJmJvLT5wbGFjZW1lbnQsIGZhbHNlLCBmYWxzZSk7Cj4+ICAgICAgICAgIGlmIChy ZXQpIHsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2Rydi5oCj4+IGluZGV4IDgwZGUy M2QuLjJlMmI3NmEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcy MDBfZHJ2LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9kcnYuaAo+ PiBAQCAtMjI0LDcgKzIyNCw3IEBAIHN0cnVjdCBtZ2FnMjAwX2JvIHsKPj4gICAgICAgICAgc3Ry dWN0IHR0bV9wbGFjZW1lbnQgcGxhY2VtZW50Owo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX2JvX2tt YXBfb2JqIGttYXA7Cj4+ICAgICAgICAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCBnZW07Cj4+IC0g ICAgICAgdTMyIHBsYWNlbWVudHNbM107Cj4+ICsgICAgICAgc3RydWN0IHR0bV9wbGFjZSBwbGFj ZW1lbnRzWzNdOwo+PiAgICAgICAgICBpbnQgcGluX2NvdW50Owo+PiAgIH07Cj4+ICAgI2RlZmlu ZSBnZW1fdG9fbWdhX2JvKGdvYmopIGNvbnRhaW5lcl9vZigoZ29iaiksIHN0cnVjdCBtZ2FnMjAw X2JvLCBnZW0pCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAw X3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF90dG0uYwo+PiBpbmRleCA1 YTAwZTkwLi5iZTg4M2VmIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9t Z2FnMjAwX3R0bS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfdHRt LmMKPj4gQEAgLTI5MywxOCArMjkzLDIyIEBAIHZvaWQgbWdhZzIwMF9tbV9maW5pKHN0cnVjdCBt Z2FfZGV2aWNlICptZGV2KQo+PiAgIHZvaWQgbWdhZzIwMF90dG1fcGxhY2VtZW50KHN0cnVjdCBt Z2FnMjAwX2JvICpibywgaW50IGRvbWFpbikKPj4gICB7Cj4+ICAgICAgICAgIHUzMiBjID0gMDsK Pj4gLSAgICAgICBiby0+cGxhY2VtZW50LmZwZm4gPSAwOwo+PiAtICAgICAgIGJvLT5wbGFjZW1l bnQubHBmbiA9IDA7Cj4+ICsgICAgICAgdW5zaWduZWQgaTsKPj4gKwo+PiAgICAgICAgICBiby0+ cGxhY2VtZW50LnBsYWNlbWVudCA9IGJvLT5wbGFjZW1lbnRzOwo+PiAgICAgICAgICBiby0+cGxh Y2VtZW50LmJ1c3lfcGxhY2VtZW50ID0gYm8tPnBsYWNlbWVudHM7Cj4+ICAgICAgICAgIGlmIChk b21haW4gJiBUVE1fUExfRkxBR19WUkFNKQo+PiAtICAgICAgICAgICAgICAgYm8tPnBsYWNlbWVu dHNbYysrXSA9IFRUTV9QTF9GTEFHX1dDIHwgVFRNX1BMX0ZMQUdfVU5DQUNIRUQgfCBUVE1fUExf RkxBR19WUkFNOwo+PiArICAgICAgICAgICAgICAgYm8tPnBsYWNlbWVudHNbYysrXS5mbGFncyA9 IFRUTV9QTF9GTEFHX1dDIHwgVFRNX1BMX0ZMQUdfVU5DQUNIRUQgfCBUVE1fUExfRkxBR19WUkFN Owo+PiAgICAgICAgICBpZiAoZG9tYWluICYgVFRNX1BMX0ZMQUdfU1lTVEVNKQo+PiAtICAgICAg ICAgICAgICAgYm8tPnBsYWNlbWVudHNbYysrXSA9IFRUTV9QTF9NQVNLX0NBQ0hJTkcgfCBUVE1f UExfRkxBR19TWVNURU07Cj4+ICsgICAgICAgICAgICAgICBiby0+cGxhY2VtZW50c1tjKytdLmZs YWdzID0gVFRNX1BMX01BU0tfQ0FDSElORyB8IFRUTV9QTF9GTEFHX1NZU1RFTTsKPj4gICAgICAg ICAgaWYgKCFjKQo+PiAtICAgICAgICAgICAgICAgYm8tPnBsYWNlbWVudHNbYysrXSA9IFRUTV9Q TF9NQVNLX0NBQ0hJTkcgfCBUVE1fUExfRkxBR19TWVNURU07Cj4+ICsgICAgICAgICAgICAgICBi by0+cGxhY2VtZW50c1tjKytdLmZsYWdzID0gVFRNX1BMX01BU0tfQ0FDSElORyB8IFRUTV9QTF9G TEFHX1NZU1RFTTsKPj4gICAgICAgICAgYm8tPnBsYWNlbWVudC5udW1fcGxhY2VtZW50ID0gYzsK Pj4gICAgICAgICAgYm8tPnBsYWNlbWVudC5udW1fYnVzeV9wbGFjZW1lbnQgPSBjOwo+PiArICAg ICAgIGZvciAoaSA9IDA7IGkgPCBjOyArK2kpIHsKPj4gKyAgICAgICAgICAgICAgIGJvLT5wbGFj ZW1lbnRzW2ldLmZwZm4gPSAwOwo+PiArICAgICAgICAgICAgICAgYm8tPnBsYWNlbWVudHNbaV0u bHBmbiA9IDA7Cj4+ICsgICAgICAgfQo+PiAgIH0KPj4KPj4gICBpbnQgbWdhZzIwMF9ib19jcmVh dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHNpemUsIGludCBhbGlnbiwKPj4gQEAgLTM2 MSw3ICszNjUsNyBAQCBpbnQgbWdhZzIwMF9ib19waW4oc3RydWN0IG1nYWcyMDBfYm8gKmJvLCB1 MzIgcGxfZmxhZywgdTY0ICpncHVfYWRkcikKPj4KPj4gICAgICAgICAgbWdhZzIwMF90dG1fcGxh Y2VtZW50KGJvLCBwbF9mbGFnKTsKPj4gICAgICAgICAgZm9yIChpID0gMDsgaSA8IGJvLT5wbGFj ZW1lbnQubnVtX3BsYWNlbWVudDsgaSsrKQo+PiAtICAgICAgICAgICAgICAgYm8tPnBsYWNlbWVu dHNbaV0gfD0gVFRNX1BMX0ZMQUdfTk9fRVZJQ1Q7Cj4+ICsgICAgICAgICAgICAgICBiby0+cGxh Y2VtZW50c1tpXS5mbGFncyB8PSBUVE1fUExfRkxBR19OT19FVklDVDsKPj4gICAgICAgICAgcmV0 ID0gdHRtX2JvX3ZhbGlkYXRlKCZiby0+Ym8sICZiby0+cGxhY2VtZW50LCBmYWxzZSwgZmFsc2Up Owo+PiAgICAgICAgICBpZiAocmV0KQo+PiAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+ IEBAIC0zODQsNyArMzg4LDcgQEAgaW50IG1nYWcyMDBfYm9fdW5waW4oc3RydWN0IG1nYWcyMDBf Ym8gKmJvKQo+PiAgICAgICAgICAgICAgICAgIHJldHVybiAwOwo+Pgo+PiAgICAgICAgICBmb3Ig KGkgPSAwOyBpIDwgYm8tPnBsYWNlbWVudC5udW1fcGxhY2VtZW50IDsgaSsrKQo+PiAtICAgICAg ICAgICAgICAgYm8tPnBsYWNlbWVudHNbaV0gJj0gflRUTV9QTF9GTEFHX05PX0VWSUNUOwo+PiAr ICAgICAgICAgICAgICAgYm8tPnBsYWNlbWVudHNbaV0uZmxhZ3MgJj0gflRUTV9QTF9GTEFHX05P X0VWSUNUOwo+PiAgICAgICAgICByZXQgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT5ibywgJmJvLT5w bGFjZW1lbnQsIGZhbHNlLCBmYWxzZSk7Cj4+ICAgICAgICAgIGlmIChyZXQpCj4+ICAgICAgICAg ICAgICAgICAgcmV0dXJuIHJldDsKPj4gQEAgLTQwOCw3ICs0MTIsNyBAQCBpbnQgbWdhZzIwMF9i b19wdXNoX3N5c3JhbShzdHJ1Y3QgbWdhZzIwMF9ibyAqYm8pCj4+Cj4+ICAgICAgICAgIG1nYWcy MDBfdHRtX3BsYWNlbWVudChibywgVFRNX1BMX0ZMQUdfU1lTVEVNKTsKPj4gICAgICAgICAgZm9y IChpID0gMDsgaSA8IGJvLT5wbGFjZW1lbnQubnVtX3BsYWNlbWVudCA7IGkrKykKPj4gLSAgICAg ICAgICAgICAgIGJvLT5wbGFjZW1lbnRzW2ldIHw9IFRUTV9QTF9GTEFHX05PX0VWSUNUOwo+PiAr ICAgICAgICAgICAgICAgYm8tPnBsYWNlbWVudHNbaV0uZmxhZ3MgfD0gVFRNX1BMX0ZMQUdfTk9f RVZJQ1Q7Cj4+Cj4+ICAgICAgICAgIHJldCA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPmJvLCAmYm8t PnBsYWNlbWVudCwgZmFsc2UsIGZhbHNlKTsKPj4gICAgICAgICAgaWYgKHJldCkgewo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jIGIvZHJpdmVycy9n cHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCj4+IGluZGV4IGJhMjlhNzAuLjdkY2Q2ODkgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uYwo+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMKPj4gQEAgLTI0NSwxNiArMjQ1 LDE2IEBAIG5vdXZlYXVfYm9fbmV3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBzaXplLCBp bnQgYWxpZ24sCj4+ICAgfQo+Pgo+PiAgIHN0YXRpYyB2b2lkCj4+IC1zZXRfcGxhY2VtZW50X2xp c3QodWludDMyX3QgKnBsLCB1bnNpZ25lZCAqbiwgdWludDMyX3QgdHlwZSwgdWludDMyX3QgZmxh Z3MpCj4+ICtzZXRfcGxhY2VtZW50X2xpc3Qoc3RydWN0IHR0bV9wbGFjZSAqcGwsIHVuc2lnbmVk ICpuLCB1aW50MzJfdCB0eXBlLCB1aW50MzJfdCBmbGFncykKPj4gICB7Cj4+ICAgICAgICAgICpu ID0gMDsKPj4KPj4gICAgICAgICAgaWYgKHR5cGUgJiBUVE1fUExfRkxBR19WUkFNKQo+PiAtICAg ICAgICAgICAgICAgcGxbKCpuKSsrXSA9IFRUTV9QTF9GTEFHX1ZSQU0gfCBmbGFnczsKPj4gKyAg ICAgICAgICAgICAgIHBsWygqbikrK10uZmxhZ3MgPSBUVE1fUExfRkxBR19WUkFNIHwgZmxhZ3M7 Cj4+ICAgICAgICAgIGlmICh0eXBlICYgVFRNX1BMX0ZMQUdfVFQpCj4+IC0gICAgICAgICAgICAg ICBwbFsoKm4pKytdID0gVFRNX1BMX0ZMQUdfVFQgfCBmbGFnczsKPj4gKyAgICAgICAgICAgICAg IHBsWygqbikrK10uZmxhZ3MgPSBUVE1fUExfRkxBR19UVCB8IGZsYWdzOwo+PiAgICAgICAgICBp ZiAodHlwZSAmIFRUTV9QTF9GTEFHX1NZU1RFTSkKPj4gLSAgICAgICAgICAgICAgIHBsWygqbikr K10gPSBUVE1fUExfRkxBR19TWVNURU0gfCBmbGFnczsKPj4gKyAgICAgICAgICAgICAgIHBsWygq bikrK10uZmxhZ3MgPSBUVE1fUExfRkxBR19TWVNURU0gfCBmbGFnczsKPj4gICB9Cj4+Cj4+ICAg c3RhdGljIHZvaWQKPj4gQEAgLTI2Myw2ICsyNjMsNyBAQCBzZXRfcGxhY2VtZW50X3JhbmdlKHN0 cnVjdCBub3V2ZWF1X2JvICpudmJvLCB1aW50MzJfdCB0eXBlKQo+PiAgICAgICAgICBzdHJ1Y3Qg bm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfYmRldihudmJvLT5iby5iZGV2KTsKPj4gICAgICAg ICAgc3RydWN0IG5vdXZlYXVfZmIgKnBmYiA9IG5vdXZlYXVfZmIoZHJtLT5kZXZpY2UpOwo+PiAg ICAgICAgICB1MzIgdnJhbV9wYWdlcyA9IHBmYi0+cmFtLT5zaXplID4+IFBBR0VfU0hJRlQ7Cj4+ ICsgICAgICAgdW5zaWduZWQgaSwgZnBmbiwgbHBmbjsKPj4KPj4gICAgICAgICAgaWYgKChudl9k ZXZpY2UoZHJtLT5kZXZpY2UpLT5jYXJkX3R5cGUgPT0gTlZfMTAgfHwKPj4gICAgICAgICAgICAg ICBudl9kZXZpY2UoZHJtLT5kZXZpY2UpLT5jYXJkX3R5cGUgPT0gTlZfMTEpICYmCj4+IEBAIC0y NzUsMTEgKzI3NiwxOSBAQCBzZXRfcGxhY2VtZW50X3JhbmdlKHN0cnVjdCBub3V2ZWF1X2JvICpu dmJvLCB1aW50MzJfdCB0eXBlKQo+PiAgICAgICAgICAgICAgICAgICAqIGF0IHRoZSBzYW1lIHRp bWUuCj4+ICAgICAgICAgICAgICAgICAgICovCj4+ICAgICAgICAgICAgICAgICAgaWYgKG52Ym8t PnRpbGVfZmxhZ3MgJiBOT1VWRUFVX0dFTV9USUxFX1pFVEEpIHsKPj4gLSAgICAgICAgICAgICAg ICAgICAgICAgbnZiby0+cGxhY2VtZW50LmZwZm4gPSB2cmFtX3BhZ2VzIC8gMjsKPj4gLSAgICAg ICAgICAgICAgICAgICAgICAgbnZiby0+cGxhY2VtZW50LmxwZm4gPSB+MDsKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgZnBmbiA9IHZyYW1fcGFnZXMgLyAyOwo+PiArICAgICAgICAgICAgICAg ICAgICAgICBscGZuID0gfjA7Cj4+ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKPj4gLSAgICAg ICAgICAgICAgICAgICAgICAgbnZiby0+cGxhY2VtZW50LmZwZm4gPSAwOwo+PiAtICAgICAgICAg ICAgICAgICAgICAgICBudmJvLT5wbGFjZW1lbnQubHBmbiA9IHZyYW1fcGFnZXMgLyAyOwo+PiAr ICAgICAgICAgICAgICAgICAgICAgICBmcGZuID0gMDsKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgbHBmbiA9IHZyYW1fcGFnZXMgLyAyOwo+PiArICAgICAgICAgICAgICAgfQo+PiArICAgICAg ICAgICAgICAgZm9yIChpID0gMDsgaSA8IG52Ym8tPnBsYWNlbWVudC5udW1fcGxhY2VtZW50OyAr K2kpIHsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgbnZiby0+cGxhY2VtZW50c1tpXS5mcGZu ID0gZnBmbjsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgbnZiby0+cGxhY2VtZW50c1tpXS5s cGZuID0gbHBmbjsKPj4gKyAgICAgICAgICAgICAgIH0KPj4gKyAgICAgICAgICAgICAgIGZvciAo aSA9IDA7IGkgPCBudmJvLT5wbGFjZW1lbnQubnVtX2J1c3lfcGxhY2VtZW50OyArK2kpIHsKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgbnZiby0+YnVzeV9wbGFjZW1lbnRzW2ldLmZwZm4gPSBm cGZuOwo+PiArICAgICAgICAgICAgICAgICAgICAgICBudmJvLT5idXN5X3BsYWNlbWVudHNbaV0u bHBmbiA9IGxwZm47Cj4+ICAgICAgICAgICAgICAgICAgfQo+PiAgICAgICAgICB9Cj4+ICAgfQo+ PiBAQCAtMTA0MCwxMiArMTA0OSwxNSBAQCBzdGF0aWMgaW50Cj4+ICAgbm91dmVhdV9ib19tb3Zl X2ZsaXBkKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wgZXZpY3QsIGJvb2wgaW50 ciwKPj4gICAgICAgICAgICAgICAgICAgICAgICBib29sIG5vX3dhaXRfZ3B1LCBzdHJ1Y3QgdHRt X21lbV9yZWcgKm5ld19tZW0pCj4+ICAgewo+PiAtICAgICAgIHUzMiBwbGFjZW1lbnRfbWVtdHlw ZSA9IFRUTV9QTF9GTEFHX1RUIHwgVFRNX1BMX01BU0tfQ0FDSElORzsKPj4gKyAgICAgICBzdHJ1 Y3QgdHRtX3BsYWNlIHBsYWNlbWVudF9tZW10eXBlID0gewo+PiArICAgICAgICAgICAgICAgLmZw Zm4gPSAwLAo+PiArICAgICAgICAgICAgICAgLmxwZm4gPSAwLAo+PiArICAgICAgICAgICAgICAg LmZsYWdzID0gVFRNX1BMX0ZMQUdfVFQgfCBUVE1fUExfTUFTS19DQUNISU5HCj4+ICsgICAgICAg fTsKPj4gICAgICAgICAgc3RydWN0IHR0bV9wbGFjZW1lbnQgcGxhY2VtZW50Owo+PiAgICAgICAg ICBzdHJ1Y3QgdHRtX21lbV9yZWcgdG1wX21lbTsKPj4gICAgICAgICAgaW50IHJldDsKPj4KPj4g LSAgICAgICBwbGFjZW1lbnQuZnBmbiA9IHBsYWNlbWVudC5scGZuID0gMDsKPj4gICAgICAgICAg cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQgPSBwbGFjZW1lbnQubnVtX2J1c3lfcGxhY2VtZW50ID0g MTsKPj4gICAgICAgICAgcGxhY2VtZW50LnBsYWNlbWVudCA9IHBsYWNlbWVudC5idXN5X3BsYWNl bWVudCA9ICZwbGFjZW1lbnRfbWVtdHlwZTsKPj4KPj4gQEAgLTEwNzMsMTIgKzEwODUsMTUgQEAg c3RhdGljIGludAo+PiAgIG5vdXZlYXVfYm9fbW92ZV9mbGlwcyhzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvLCBib29sIGV2aWN0LCBib29sIGludHIsCj4+ICAgICAgICAgICAgICAgICAgICAg ICAgYm9vbCBub193YWl0X2dwdSwgc3RydWN0IHR0bV9tZW1fcmVnICpuZXdfbWVtKQo+PiAgIHsK Pj4gLSAgICAgICB1MzIgcGxhY2VtZW50X21lbXR5cGUgPSBUVE1fUExfRkxBR19UVCB8IFRUTV9Q TF9NQVNLX0NBQ0hJTkc7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9wbGFjZSBwbGFjZW1lbnRfbWVt dHlwZSA9IHsKPj4gKyAgICAgICAgICAgICAgIC5mcGZuID0gMCwKPj4gKyAgICAgICAgICAgICAg IC5scGZuID0gMCwKPj4gKyAgICAgICAgICAgICAgIC5mbGFncyA9IFRUTV9QTF9GTEFHX1RUIHwg VFRNX1BMX01BU0tfQ0FDSElORwo+PiArICAgICAgIH07Cj4+ICAgICAgICAgIHN0cnVjdCB0dG1f cGxhY2VtZW50IHBsYWNlbWVudDsKPj4gICAgICAgICAgc3RydWN0IHR0bV9tZW1fcmVnIHRtcF9t ZW07Cj4+ICAgICAgICAgIGludCByZXQ7Cj4+Cj4+IC0gICAgICAgcGxhY2VtZW50LmZwZm4gPSBw bGFjZW1lbnQubHBmbiA9IDA7Cj4+ICAgICAgICAgIHBsYWNlbWVudC5udW1fcGxhY2VtZW50ID0g cGxhY2VtZW50Lm51bV9idXN5X3BsYWNlbWVudCA9IDE7Cj4+ICAgICAgICAgIHBsYWNlbWVudC5w bGFjZW1lbnQgPSBwbGFjZW1lbnQuYnVzeV9wbGFjZW1lbnQgPSAmcGxhY2VtZW50X21lbXR5cGU7 Cj4+Cj4+IEBAIC0xMjk0LDcgKzEzMDksNyBAQCBub3V2ZWF1X3R0bV9mYXVsdF9yZXNlcnZlX25v dGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQo+PiAgICAgICAgICBzdHJ1Y3Qgbm91 dmVhdV9ibyAqbnZibyA9IG5vdXZlYXVfYm8oYm8pOwo+PiAgICAgICAgICBzdHJ1Y3Qgbm91dmVh dV9kZXZpY2UgKmRldmljZSA9IG52X2RldmljZShkcm0tPmRldmljZSk7Cj4+ICAgICAgICAgIHUz MiBtYXBwYWJsZSA9IG52X2RldmljZV9yZXNvdXJjZV9sZW4oZGV2aWNlLCAxKSA+PiBQQUdFX1NI SUZUOwo+PiAtICAgICAgIGludCByZXQ7Cj4+ICsgICAgICAgaW50IGksIHJldDsKPj4KPj4gICAg ICAgICAgLyogYXMgbG9uZyBhcyB0aGUgYm8gaXNuJ3QgaW4gdnJhbSwgYW5kIGlzbid0IHRpbGVk LCB3ZSd2ZSBnb3QKPj4gICAgICAgICAgICogbm90aGluZyB0byBkbyBoZXJlLgo+PiBAQCAtMTMx OSw5ICsxMzM0LDE2IEBAIG5vdXZlYXVfdHRtX2ZhdWx0X3Jlc2VydmVfbm90aWZ5KHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8pCj4+ICAgICAgICAgICAgICBiby0+bWVtLnN0YXJ0ICsgYm8t Pm1lbS5udW1fcGFnZXMgPCBtYXBwYWJsZSkKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gMDsK Pj4KPj4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnZiby0+cGxhY2VtZW50Lm51bV9wbGFjZW1l bnQ7ICsraSkgewo+PiArICAgICAgICAgICAgICAgbnZiby0+cGxhY2VtZW50c1tpXS5mcGZuID0g MDsKPj4gKyAgICAgICAgICAgICAgIG52Ym8tPnBsYWNlbWVudHNbaV0ubHBmbiA9IG1hcHBhYmxl Owo+PiArICAgICAgIH0KPj4gKwo+PiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBudmJvLT5wbGFj ZW1lbnQubnVtX2J1c3lfcGxhY2VtZW50OyArK2kpIHsKPj4gKyAgICAgICAgICAgICAgIG52Ym8t PmJ1c3lfcGxhY2VtZW50c1tpXS5mcGZuID0gMDsKPj4gKyAgICAgICAgICAgICAgIG52Ym8tPmJ1 c3lfcGxhY2VtZW50c1tpXS5scGZuID0gbWFwcGFibGU7Cj4+ICsgICAgICAgfQo+Pgo+PiAtICAg ICAgIG52Ym8tPnBsYWNlbWVudC5mcGZuID0gMDsKPj4gLSAgICAgICBudmJvLT5wbGFjZW1lbnQu bHBmbiA9IG1hcHBhYmxlOwo+PiAgICAgICAgICBub3V2ZWF1X2JvX3BsYWNlbWVudF9zZXQobnZi bywgVFRNX1BMX0ZMQUdfVlJBTSwgMCk7Cj4+ICAgICAgICAgIHJldHVybiBub3V2ZWF1X2JvX3Zh bGlkYXRlKG52Ym8sIGZhbHNlLCBmYWxzZSk7Cj4+ICAgfQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5oIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bm91dmVhdV9iby5oCj4+IGluZGV4IGZmMTdjMWYuLjRlZjg4ZTggMTAwNjQ0Cj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uaAo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9ub3V2ZWF1X2JvLmgKPj4gQEAgLTksOCArOSw4IEBAIHN0cnVjdCBub3V2ZWF1 X2JvIHsKPj4gICAgICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0IGJvOwo+PiAgICAgICAg ICBzdHJ1Y3QgdHRtX3BsYWNlbWVudCBwbGFjZW1lbnQ7Cj4+ICAgICAgICAgIHUzMiB2YWxpZF9k b21haW5zOwo+PiAtICAgICAgIHUzMiBwbGFjZW1lbnRzWzNdOwo+PiAtICAgICAgIHUzMiBidXN5 X3BsYWNlbWVudHNbM107Cj4+ICsgICAgICAgc3RydWN0IHR0bV9wbGFjZSBwbGFjZW1lbnRzWzNd Owo+PiArICAgICAgIHN0cnVjdCB0dG1fcGxhY2UgYnVzeV9wbGFjZW1lbnRzWzNdOwo+PiAgICAg ICAgICBzdHJ1Y3QgdHRtX2JvX2ttYXBfb2JqIGttYXA7Cj4+ICAgICAgICAgIHN0cnVjdCBsaXN0 X2hlYWQgaGVhZDsKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25v dXZlYXVfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0bS5jCj4+IGlu ZGV4IDdlMTg1YzEuLmU3MTRmN2IgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L25vdXZlYXVfdHRtLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVh dV90dG0uYwo+PiBAQCAtNzUsOCArNzUsNyBAQCBub3V2ZWF1X3ZyYW1fbWFuYWdlcl9kZWwoc3Ry dWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4+ICAgc3RhdGljIGludAo+PiAgIG5vdXZl YXVfdnJhbV9tYW5hZ2VyX25ldyhzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ PiAtICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBsYWNlbWVu dCwKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGZsYWdzLAo+PiArICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UsCj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCj4+ICAgewo+PiAg ICAgICAgICBzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfYmRldihtYW4tPmJkZXYp Owo+PiBAQCAtMTYyLDggKzE2MSw3IEBAIG5vdXZlYXVfZ2FydF9tYW5hZ2VyX2RlbChzdHJ1Y3Qg dHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPj4gICBzdGF0aWMgaW50Cj4+ICAgbm91dmVhdV9n YXJ0X21hbmFnZXJfbmV3KHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+IC0g ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50LAo+ PiAtICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZmxhZ3MsCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKPj4gICB7Cj4+ICAgICAg ICAgIHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtID0gbm91dmVhdV9iZGV2KGJvLT5iZGV2KTsKPj4g QEAgLTI0Myw4ICsyNDEsNyBAQCBudjA0X2dhcnRfbWFuYWdlcl9kZWwoc3RydWN0IHR0bV9tZW1f dHlwZV9tYW5hZ2VyICptYW4sIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+PiAgIHN0YXRpYyBp bnQKPj4gICBudjA0X2dhcnRfbWFuYWdlcl9uZXcoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2Vy ICptYW4sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKPj4gLSAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFj ZW1lbnQsCj4+IC0gICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmbGFncywKPj4gKyAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNlLAo+PiAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+PiAgIHsKPj4gICAgICAg ICAgc3RydWN0IG5vdXZlYXVfbWVtICpub2RlOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3F4bC9xeGxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYuaAo+PiBpbmRl eCAzNmVkNDBiLi5mNjAyMmI3IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4 bF9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYuaAo+PiBAQCAtMTA2 LDcgKzEwNiw3IEBAIHN0cnVjdCBxeGxfYm8gewo+PiAgICAgICAgICAvKiBQcm90ZWN0ZWQgYnkg Z2VtLm11dGV4ICovCj4+ICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgICAgICAgICAgICAgICAg bGlzdDsKPj4gICAgICAgICAgLyogUHJvdGVjdGVkIGJ5IHRiby5yZXNlcnZlZCAqLwo+PiAtICAg ICAgIHUzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50c1szXTsKPj4gKyAg ICAgICBzdHJ1Y3QgdHRtX3BsYWNlICAgICAgICAgICAgICAgIHBsYWNlbWVudHNbM107Cj4+ICAg ICAgICAgIHN0cnVjdCB0dG1fcGxhY2VtZW50ICAgICAgICAgICAgcGxhY2VtZW50Owo+PiAgICAg ICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgICAgICAgIHRibzsKPj4gICAgICAgICAgc3Ry dWN0IHR0bV9ib19rbWFwX29iaiAgICAgICAgICBrbWFwOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9vYmpl Y3QuYwo+PiBpbmRleCBiOTVmMTQ0Li5hZGFkMTJkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vcXhsL3F4bF9vYmplY3QuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9v YmplY3QuYwo+PiBAQCAtNTUsMjEgKzU1LDI0IEBAIHZvaWQgcXhsX3R0bV9wbGFjZW1lbnRfZnJv bV9kb21haW4oc3RydWN0IHF4bF9ibyAqcWJvLCB1MzIgZG9tYWluLCBib29sIHBpbm5lZCkKPj4g ICB7Cj4+ICAgICAgICAgIHUzMiBjID0gMDsKPj4gICAgICAgICAgdTMyIHBmbGFnID0gcGlubmVk ID8gVFRNX1BMX0ZMQUdfTk9fRVZJQ1QgOiAwOwo+PiArICAgICAgIHVuc2lnbmVkIGk7Cj4+Cj4+ IC0gICAgICAgcWJvLT5wbGFjZW1lbnQuZnBmbiA9IDA7Cj4+IC0gICAgICAgcWJvLT5wbGFjZW1l bnQubHBmbiA9IDA7Cj4+ICAgICAgICAgIHFiby0+cGxhY2VtZW50LnBsYWNlbWVudCA9IHFiby0+ cGxhY2VtZW50czsKPj4gICAgICAgICAgcWJvLT5wbGFjZW1lbnQuYnVzeV9wbGFjZW1lbnQgPSBx Ym8tPnBsYWNlbWVudHM7Cj4+ICAgICAgICAgIGlmIChkb21haW4gPT0gUVhMX0dFTV9ET01BSU5f VlJBTSkKPj4gLSAgICAgICAgICAgICAgIHFiby0+cGxhY2VtZW50c1tjKytdID0gVFRNX1BMX0ZM QUdfQ0FDSEVEIHwgVFRNX1BMX0ZMQUdfVlJBTSB8IHBmbGFnOwo+PiArICAgICAgICAgICAgICAg cWJvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPSBUVE1fUExfRkxBR19DQUNIRUQgfCBUVE1fUExf RkxBR19WUkFNIHwgcGZsYWc7Cj4+ICAgICAgICAgIGlmIChkb21haW4gPT0gUVhMX0dFTV9ET01B SU5fU1VSRkFDRSkKPj4gLSAgICAgICAgICAgICAgIHFiby0+cGxhY2VtZW50c1tjKytdID0gVFRN X1BMX0ZMQUdfQ0FDSEVEIHwgVFRNX1BMX0ZMQUdfUFJJVjAgfCBwZmxhZzsKPj4gKyAgICAgICAg ICAgICAgIHFiby0+cGxhY2VtZW50c1tjKytdLmZsYWdzID0gVFRNX1BMX0ZMQUdfQ0FDSEVEIHwg VFRNX1BMX0ZMQUdfUFJJVjAgfCBwZmxhZzsKPj4gICAgICAgICAgaWYgKGRvbWFpbiA9PSBRWExf R0VNX0RPTUFJTl9DUFUpCj4+IC0gICAgICAgICAgICAgICBxYm8tPnBsYWNlbWVudHNbYysrXSA9 IFRUTV9QTF9NQVNLX0NBQ0hJTkcgfCBUVE1fUExfRkxBR19TWVNURU0gfCBwZmxhZzsKPj4gKyAg ICAgICAgICAgICAgIHFiby0+cGxhY2VtZW50c1tjKytdLmZsYWdzID0gVFRNX1BMX01BU0tfQ0FD SElORyB8IFRUTV9QTF9GTEFHX1NZU1RFTSB8IHBmbGFnOwo+PiAgICAgICAgICBpZiAoIWMpCj4+ IC0gICAgICAgICAgICAgICBxYm8tPnBsYWNlbWVudHNbYysrXSA9IFRUTV9QTF9NQVNLX0NBQ0hJ TkcgfCBUVE1fUExfRkxBR19TWVNURU07Cj4+ICsgICAgICAgICAgICAgICBxYm8tPnBsYWNlbWVu dHNbYysrXS5mbGFncyA9IFRUTV9QTF9NQVNLX0NBQ0hJTkcgfCBUVE1fUExfRkxBR19TWVNURU07 Cj4+ICAgICAgICAgIHFiby0+cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQgPSBjOwo+PiAgICAgICAg ICBxYm8tPnBsYWNlbWVudC5udW1fYnVzeV9wbGFjZW1lbnQgPSBjOwo+PiArICAgICAgIGZvciAo aSA9IDA7IGkgPCBjOyArK2kpIHsKPj4gKyAgICAgICAgICAgICAgIHFiby0+cGxhY2VtZW50c1tp XS5mcGZuID0gMDsKPj4gKyAgICAgICAgICAgICAgIHFiby0+cGxhY2VtZW50c1tpXS5scGZuID0g MDsKPj4gKyAgICAgICB9Cj4+ICAgfQo+Pgo+Pgo+PiBAQCAtMjU5LDcgKzI2Miw3IEBAIGludCBx eGxfYm9fdW5waW4oc3RydWN0IHF4bF9ibyAqYm8pCj4+ICAgICAgICAgIGlmIChiby0+cGluX2Nv dW50KQo+PiAgICAgICAgICAgICAgICAgIHJldHVybiAwOwo+PiAgICAgICAgICBmb3IgKGkgPSAw OyBpIDwgYm8tPnBsYWNlbWVudC5udW1fcGxhY2VtZW50OyBpKyspCj4+IC0gICAgICAgICAgICAg ICBiby0+cGxhY2VtZW50c1tpXSAmPSB+VFRNX1BMX0ZMQUdfTk9fRVZJQ1Q7Cj4+ICsgICAgICAg ICAgICAgICBiby0+cGxhY2VtZW50c1tpXS5mbGFncyAmPSB+VFRNX1BMX0ZMQUdfTk9fRVZJQ1Q7 Cj4+ICAgICAgICAgIHIgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT50Ym8sICZiby0+cGxhY2VtZW50 LCBmYWxzZSwgZmFsc2UpOwo+PiAgICAgICAgICBpZiAodW5saWtlbHkociAhPSAwKSkKPj4gICAg ICAgICAgICAgICAgICBkZXZfZXJyKHFkZXYtPmRldiwgIiVwIHZhbGlkYXRlIGZhaWxlZCBmb3Ig dW5waW5cbiIsIGJvKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3R0 bS5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKPj4gaW5kZXggNzFhMWJhZS4uZjY2 YzU5YiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKPj4gQEAgLTE4OCwxMSArMTg4LDEzIEBA IHN0YXRpYyB2b2lkIHF4bF9ldmljdF9mbGFncyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3BsYWNlbWVu dCAqcGxhY2VtZW50KQo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IHF4bF9ibyAqcWJvOwo+PiAt ICAgICAgIHN0YXRpYyB1MzIgcGxhY2VtZW50cyA9IFRUTV9QTF9NQVNLX0NBQ0hJTkcgfCBUVE1f UExfRkxBR19TWVNURU07Cj4+ICsgICAgICAgc3RhdGljIHN0cnVjdCB0dG1fcGxhY2UgcGxhY2Vt ZW50cyA9IHsKPj4gKyAgICAgICAgICAgICAgIC5mcGZuID0gMCwKPj4gKyAgICAgICAgICAgICAg IC5scGZuID0gMCwKPj4gKyAgICAgICAgICAgICAgIC5mbGFncyA9IFRUTV9QTF9NQVNLX0NBQ0hJ TkcgfCBUVE1fUExfRkxBR19TWVNURU0KPj4gKyAgICAgICB9Owo+Pgo+PiAgICAgICAgICBpZiAo IXF4bF90dG1fYm9faXNfcXhsX2JvKGJvKSkgewo+PiAtICAgICAgICAgICAgICAgcGxhY2VtZW50 LT5mcGZuID0gMDsKPj4gLSAgICAgICAgICAgICAgIHBsYWNlbWVudC0+bHBmbiA9IDA7Cj4+ICAg ICAgICAgICAgICAgICAgcGxhY2VtZW50LT5wbGFjZW1lbnQgPSAmcGxhY2VtZW50czsKPj4gICAg ICAgICAgICAgICAgICBwbGFjZW1lbnQtPmJ1c3lfcGxhY2VtZW50ID0gJnBsYWNlbWVudHM7Cj4+ ICAgICAgICAgICAgICAgICAgcGxhY2VtZW50LT5udW1fcGxhY2VtZW50ID0gMTsKPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmggYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbi5oCj4+IGluZGV4IDU0MmRhODIuLmNhZTNhZGMgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb24uaAo+PiBAQCAtNDY4LDcgKzQ2OCw3IEBAIHN0cnVjdCByYWRlb25fYm8g ewo+PiAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICAgICAgICAgICAgICAgIGxpc3Q7Cj4+ICAg ICAgICAgIC8qIFByb3RlY3RlZCBieSB0Ym8ucmVzZXJ2ZWQgKi8KPj4gICAgICAgICAgdTMyICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsX2RvbWFpbjsKPj4gLSAgICAgICB1MzIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudHNbM107Cj4+ICsgICAgICAgc3Ry dWN0IHR0bV9wbGFjZSAgICAgICAgICAgICAgICBwbGFjZW1lbnRzWzNdOwo+PiAgICAgICAgICBz dHJ1Y3QgdHRtX3BsYWNlbWVudCAgICAgICAgICAgIHBsYWNlbWVudDsKPj4gICAgICAgICAgc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICAgICAgICB0Ym87Cj4+ICAgICAgICAgIHN0cnVjdCB0dG1f Ym9fa21hcF9vYmogICAgICAgICAga21hcDsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f b2JqZWN0LmMKPj4gaW5kZXggMjg3NTIzOC4uMDEyOWM3ZSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fb2JqZWN0LmMKPj4gQEAgLTk3LDQwICs5Nyw1NiBAQCB2b2lkIHJhZGVv bl90dG1fcGxhY2VtZW50X2Zyb21fZG9tYWluKHN0cnVjdCByYWRlb25fYm8gKnJibywgdTMyIGRv bWFpbikKPj4gICB7Cj4+ICAgICAgICAgIHUzMiBjID0gMCwgaTsKPj4KPj4gLSAgICAgICByYm8t PnBsYWNlbWVudC5mcGZuID0gMDsKPj4gLSAgICAgICByYm8tPnBsYWNlbWVudC5scGZuID0gMDsK Pj4gICAgICAgICAgcmJvLT5wbGFjZW1lbnQucGxhY2VtZW50ID0gcmJvLT5wbGFjZW1lbnRzOwo+ PiAgICAgICAgICByYm8tPnBsYWNlbWVudC5idXN5X3BsYWNlbWVudCA9IHJiby0+cGxhY2VtZW50 czsKPj4gICAgICAgICAgaWYgKGRvbWFpbiAmIFJBREVPTl9HRU1fRE9NQUlOX1ZSQU0pCj4+IC0g ICAgICAgICAgICAgICByYm8tPnBsYWNlbWVudHNbYysrXSA9IFRUTV9QTF9GTEFHX1dDIHwgVFRN X1BMX0ZMQUdfVU5DQUNIRUQgfAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVFRNX1BMX0ZMQUdfVlJBTTsKPj4gKyAgICAgICAgICAgICAgIHJiby0+cGxhY2VtZW50 c1tjKytdLmZsYWdzID0gVFRNX1BMX0ZMQUdfV0MgfAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUVE1fUExfRkxBR19VTkNBQ0hFRCB8Cj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRUTV9QTF9GTEFHX1ZSQU07Cj4+ ICsKPj4gICAgICAgICAgaWYgKGRvbWFpbiAmIFJBREVPTl9HRU1fRE9NQUlOX0dUVCkgewo+PiAg ICAgICAgICAgICAgICAgIGlmIChyYm8tPmZsYWdzICYgUkFERU9OX0dFTV9HVFRfVUMpIHsKPj4g LSAgICAgICAgICAgICAgICAgICAgICAgcmJvLT5wbGFjZW1lbnRzW2MrK10gPSBUVE1fUExfRkxB R19VTkNBQ0hFRCB8IFRUTV9QTF9GTEFHX1RUOwo+PiArICAgICAgICAgICAgICAgICAgICAgICBy Ym8tPnBsYWNlbWVudHNbYysrXS5mbGFncyA9IFRUTV9QTF9GTEFHX1VOQ0FDSEVEIHwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUVE1fUExfRkxBR19UVDsKPj4gKwo+PiAgICAg ICAgICAgICAgICAgIH0gZWxzZSBpZiAoKHJiby0+ZmxhZ3MgJiBSQURFT05fR0VNX0dUVF9XQykg fHwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyYm8tPnJkZXYtPmZsYWdzICYgUkFE RU9OX0lTX0FHUCkpIHsKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgcmJvLT5wbGFjZW1lbnRz W2MrK10gPSBUVE1fUExfRkxBR19XQyB8IFRUTV9QTF9GTEFHX1VOQ0FDSEVEIHwKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgcmJvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPSBUVE1fUExfRkxB R19XQyB8Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFRNX1BMX0ZMQUdfVU5D QUNIRUQgfAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUVE1fUExfRkxBR19U VDsKPj4gICAgICAgICAgICAgICAgICB9IGVsc2Ugewo+PiAtICAgICAgICAgICAgICAgICAgICAg ICByYm8tPnBsYWNlbWVudHNbYysrXSA9IFRUTV9QTF9GTEFHX0NBQ0hFRCB8IFRUTV9QTF9GTEFH X1RUOwo+PiArICAgICAgICAgICAgICAgICAgICAgICByYm8tPnBsYWNlbWVudHNbYysrXS5mbGFn cyA9IFRUTV9QTF9GTEFHX0NBQ0hFRCB8Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVFRNX1BMX0ZMQUdfVFQ7Cj4+ICAgICAgICAgICAgICAg ICAgfQo+PiAgICAgICAgICB9Cj4+ICsKPj4gICAgICAgICAgaWYgKGRvbWFpbiAmIFJBREVPTl9H RU1fRE9NQUlOX0NQVSkgewo+PiAgICAgICAgICAgICAgICAgIGlmIChyYm8tPmZsYWdzICYgUkFE RU9OX0dFTV9HVFRfVUMpIHsKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgcmJvLT5wbGFjZW1l bnRzW2MrK10gPSBUVE1fUExfRkxBR19VTkNBQ0hFRCB8IFRUTV9QTF9GTEFHX1NZU1RFTTsKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgcmJvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPSBUVE1f UExfRkxBR19VTkNBQ0hFRCB8Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFRN X1BMX0ZMQUdfU1lTVEVNOwo+PiArCj4+ICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgocmJv LT5mbGFncyAmIFJBREVPTl9HRU1fR1RUX1dDKSB8fAo+PiAgICAgICAgICAgICAgICAgICAgICBy Ym8tPnJkZXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgewo+PiAtICAgICAgICAgICAgICAgICAg ICAgICByYm8tPnBsYWNlbWVudHNbYysrXSA9IFRUTV9QTF9GTEFHX1dDIHwgVFRNX1BMX0ZMQUdf VU5DQUNIRUQgfAo+PiArICAgICAgICAgICAgICAgICAgICAgICByYm8tPnBsYWNlbWVudHNbYysr XS5mbGFncyA9IFRUTV9QTF9GTEFHX1dDIHwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUVE1fUExfRkxBR19VTkNBQ0hFRCB8Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRUTV9QTF9GTEFHX1NZU1RFTTsKPj4gICAgICAgICAgICAgICAgICB9IGVsc2Ugewo+ PiAtICAgICAgICAgICAgICAgICAgICAgICByYm8tPnBsYWNlbWVudHNbYysrXSA9IFRUTV9QTF9G TEFHX0NBQ0hFRCB8IFRUTV9QTF9GTEFHX1NZU1RFTTsKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgcmJvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPSBUVE1fUExfRkxBR19DQUNIRUQgfAo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRUTV9Q TF9GTEFHX1NZU1RFTTsKPj4gICAgICAgICAgICAgICAgICB9Cj4+ICAgICAgICAgIH0KPj4gICAg ICAgICAgaWYgKCFjKQo+PiAtICAgICAgICAgICAgICAgcmJvLT5wbGFjZW1lbnRzW2MrK10gPSBU VE1fUExfTUFTS19DQUNISU5HIHwgVFRNX1BMX0ZMQUdfU1lTVEVNOwo+PiArICAgICAgICAgICAg ICAgcmJvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPSBUVE1fUExfTUFTS19DQUNISU5HIHwKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFRNX1BMX0ZMQUdf U1lTVEVNOwo+PiArCj4+ICAgICAgICAgIHJiby0+cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQgPSBj Owo+PiAgICAgICAgICByYm8tPnBsYWNlbWVudC5udW1fYnVzeV9wbGFjZW1lbnQgPSBjOwo+Pgo+ PiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBjOyArK2kpIHsKPj4gKyAgICAgICAgICAgICAgIHJi by0+cGxhY2VtZW50c1tpXS5mcGZuID0gMDsKPj4gKyAgICAgICAgICAgICAgIHJiby0+cGxhY2Vt ZW50c1tpXS5scGZuID0gMDsKPj4gKyAgICAgICB9Cj4+ICsKPj4gICAgICAgICAgLyoKPj4gICAg ICAgICAgICogVXNlIHR3by1lbmRlZCBhbGxvY2F0aW9uIGRlcGVuZGluZyBvbiB0aGUgYnVmZmVy IHNpemUgdG8KPj4gICAgICAgICAgICogaW1wcm92ZSBmcmFnbWVudGF0aW9uIHF1YWxpdHkuCj4+ IEBAIC0xMzgsNyArMTU0LDcgQEAgdm9pZCByYWRlb25fdHRtX3BsYWNlbWVudF9mcm9tX2RvbWFp bihzdHJ1Y3QgcmFkZW9uX2JvICpyYm8sIHUzMiBkb21haW4pCj4+ICAgICAgICAgICAqLwo+PiAg ICAgICAgICBpZiAocmJvLT50Ym8ubWVtLnNpemUgPiA1MTIgKiAxMDI0KSB7Cj4+ICAgICAgICAg ICAgICAgICAgZm9yIChpID0gMDsgaSA8IGM7IGkrKykgewo+PiAtICAgICAgICAgICAgICAgICAg ICAgICByYm8tPnBsYWNlbWVudHNbaV0gfD0gVFRNX1BMX0ZMQUdfVE9QRE9XTjsKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgcmJvLT5wbGFjZW1lbnRzW2ldLmZsYWdzIHw9IFRUTV9QTF9GTEFH X1RPUERPV047Cj4+ICAgICAgICAgICAgICAgICAgfQo+PiAgICAgICAgICB9Cj4+ICAgfQo+PiBA QCAtMjg3LDIxICszMDMsMjIgQEAgaW50IHJhZGVvbl9ib19waW5fcmVzdHJpY3RlZChzdHJ1Y3Qg cmFkZW9uX2JvICpibywgdTMyIGRvbWFpbiwgdTY0IG1heF9vZmZzZXQsCj4+ICAgICAgICAgICAg ICAgICAgcmV0dXJuIDA7Cj4+ICAgICAgICAgIH0KPj4gICAgICAgICAgcmFkZW9uX3R0bV9wbGFj ZW1lbnRfZnJvbV9kb21haW4oYm8sIGRvbWFpbik7Cj4+IC0gICAgICAgaWYgKGRvbWFpbiA9PSBS QURFT05fR0VNX0RPTUFJTl9WUkFNKSB7Cj4+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IGJvLT5w bGFjZW1lbnQubnVtX3BsYWNlbWVudDsgaSsrKSB7Cj4+ICsgICAgICAgICAgICAgICB1bnNpZ25l ZCBscGZuID0gMDsKPj4gKwo+PiAgICAgICAgICAgICAgICAgIC8qIGZvcmNlIHRvIHBpbiBpbnRv IHZpc2libGUgdmlkZW8gcmFtICovCj4+IC0gICAgICAgICAgICAgICBiby0+cGxhY2VtZW50Lmxw Zm4gPSBiby0+cmRldi0+bWMudmlzaWJsZV92cmFtX3NpemUgPj4gUEFHRV9TSElGVDsKPj4gLSAg ICAgICB9Cj4+IC0gICAgICAgaWYgKG1heF9vZmZzZXQpIHsKPj4gLSAgICAgICAgICAgICAgIHU2 NCBscGZuID0gbWF4X29mZnNldCA+PiBQQUdFX1NISUZUOwo+PiArICAgICAgICAgICAgICAgaWYg KGJvLT5wbGFjZW1lbnRzW2ldLmZsYWdzICYgVFRNX1BMX0ZMQUdfVlJBTSkKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgbHBmbiA9IGJvLT5yZGV2LT5tYy52aXNpYmxlX3ZyYW1fc2l6ZSA+PiBQ QUdFX1NISUZUOwo+PiArICAgICAgICAgICAgICAgZWxzZQo+PiArICAgICAgICAgICAgICAgICAg ICAgICBscGZuID0gYm8tPnJkZXYtPm1jLmd0dF9zaXplID4+IFBBR0VfU0hJRlQ7IC8qID8/PyAq Lwo+Pgo+PiAtICAgICAgICAgICAgICAgaWYgKCFiby0+cGxhY2VtZW50LmxwZm4pCj4+IC0gICAg ICAgICAgICAgICAgICAgICAgIGJvLT5wbGFjZW1lbnQubHBmbiA9IGJvLT5yZGV2LT5tYy5ndHRf c2l6ZSA+PiBQQUdFX1NISUZUOwo+PiArICAgICAgICAgICAgICAgaWYgKG1heF9vZmZzZXQpCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgIGxwZm4gPSBtaW4gKGxwZm4sICh1bnNpZ25lZCkobWF4 X29mZnNldCA+PiBQQUdFX1NISUZUKSk7Cj4+Cj4+IC0gICAgICAgICAgICAgICBpZiAobHBmbiA8 IGJvLT5wbGFjZW1lbnQubHBmbikKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgYm8tPnBsYWNl bWVudC5scGZuID0gbHBmbjsKPj4gKyAgICAgICAgICAgICAgIGJvLT5wbGFjZW1lbnRzW2ldLmxw Zm4gPSBscGZuOwo+PiArICAgICAgICAgICAgICAgYm8tPnBsYWNlbWVudHNbaV0uZmxhZ3MgfD0g VFRNX1BMX0ZMQUdfTk9fRVZJQ1Q7Cj4+ICAgICAgICAgIH0KPj4gLSAgICAgICBmb3IgKGkgPSAw OyBpIDwgYm8tPnBsYWNlbWVudC5udW1fcGxhY2VtZW50OyBpKyspCj4+IC0gICAgICAgICAgICAg ICBiby0+cGxhY2VtZW50c1tpXSB8PSBUVE1fUExfRkxBR19OT19FVklDVDsKPj4gKwo+PiAgICAg ICAgICByID0gdHRtX2JvX3ZhbGlkYXRlKCZiby0+dGJvLCAmYm8tPnBsYWNlbWVudCwgZmFsc2Us IGZhbHNlKTsKPj4gICAgICAgICAgaWYgKGxpa2VseShyID09IDApKSB7Cj4+ICAgICAgICAgICAg ICAgICAgYm8tPnBpbl9jb3VudCA9IDE7Cj4+IEBAIC0zMzMsOCArMzUwLDEwIEBAIGludCByYWRl b25fYm9fdW5waW4oc3RydWN0IHJhZGVvbl9ibyAqYm8pCj4+ICAgICAgICAgIGJvLT5waW5fY291 bnQtLTsKPj4gICAgICAgICAgaWYgKGJvLT5waW5fY291bnQpCj4+ICAgICAgICAgICAgICAgICAg cmV0dXJuIDA7Cj4+IC0gICAgICAgZm9yIChpID0gMDsgaSA8IGJvLT5wbGFjZW1lbnQubnVtX3Bs YWNlbWVudDsgaSsrKQo+PiAtICAgICAgICAgICAgICAgYm8tPnBsYWNlbWVudHNbaV0gJj0gflRU TV9QTF9GTEFHX05PX0VWSUNUOwo+PiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBiby0+cGxhY2Vt ZW50Lm51bV9wbGFjZW1lbnQ7IGkrKykgewo+PiArICAgICAgICAgICAgICAgYm8tPnBsYWNlbWVu dHNbaV0ubHBmbiA9IDA7Cj4+ICsgICAgICAgICAgICAgICBiby0+cGxhY2VtZW50c1tpXS5mbGFn cyAmPSB+VFRNX1BMX0ZMQUdfTk9fRVZJQ1Q7Cj4+ICsgICAgICAgfQo+PiAgICAgICAgICByID0g dHRtX2JvX3ZhbGlkYXRlKCZiby0+dGJvLCAmYm8tPnBsYWNlbWVudCwgZmFsc2UsIGZhbHNlKTsK Pj4gICAgICAgICAgaWYgKGxpa2VseShyID09IDApKSB7Cj4+ICAgICAgICAgICAgICAgICAgaWYg KGJvLT50Ym8ubWVtLm1lbV90eXBlID09IFRUTV9QTF9WUkFNKQo+PiBAQCAtNzM1LDcgKzc1NCw3 IEBAIGludCByYWRlb25fYm9fZmF1bHRfcmVzZXJ2ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibykKPj4KPj4gICAgICAgICAgLyogaHVycmFoIHRoZSBtZW1vcnkgaXMgbm90IHZp c2libGUgISAqLwo+PiAgICAgICAgICByYWRlb25fdHRtX3BsYWNlbWVudF9mcm9tX2RvbWFpbihy Ym8sIFJBREVPTl9HRU1fRE9NQUlOX1ZSQU0pOwo+PiAtICAgICAgIHJiby0+cGxhY2VtZW50Lmxw Zm4gPSByZGV2LT5tYy52aXNpYmxlX3ZyYW1fc2l6ZSA+PiBQQUdFX1NISUZUOwo+PiArICAgICAg IHJiby0+cGxhY2VtZW50c1swXS5scGZuID0gcmRldi0+bWMudmlzaWJsZV92cmFtX3NpemUgPj4g UEFHRV9TSElGVDsKPj4gICAgICAgICAgciA9IHR0bV9ib192YWxpZGF0ZShibywgJnJiby0+cGxh Y2VtZW50LCBmYWxzZSwgZmFsc2UpOwo+PiAgICAgICAgICBpZiAodW5saWtlbHkociA9PSAtRU5P TUVNKSkgewo+PiAgICAgICAgICAgICAgICAgIHJhZGVvbl90dG1fcGxhY2VtZW50X2Zyb21fZG9t YWluKHJibywgUkFERU9OX0dFTV9ET01BSU5fR1RUKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fdHRtLmMKPj4gaW5kZXggMTJlMzdiMS4uODIyZWIzNiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fdHRtLmMKPj4gQEAgLTE3OCwxMiArMTc4LDE1IEBAIHN0YXRpYyBpbnQgcmFk ZW9uX2luaXRfbWVtX3R5cGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHVpbnQzMl90IHR5 cGUsCj4+ICAgc3RhdGljIHZvaWQgcmFkZW9uX2V2aWN0X2ZsYWdzKHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0 dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQpCj4+ICAgewo+PiArICAgICAgIHN0YXRpYyBzdHJ1Y3Qg dHRtX3BsYWNlIHBsYWNlbWVudHMgPSB7Cj4+ICsgICAgICAgICAgICAgICAuZnBmbiA9IDAsCj4+ ICsgICAgICAgICAgICAgICAubHBmbiA9IDAsCj4+ICsgICAgICAgICAgICAgICAuZmxhZ3MgPSBU VE1fUExfTUFTS19DQUNISU5HIHwgVFRNX1BMX0ZMQUdfU1lTVEVNCj4+ICsgICAgICAgfTsKPj4g Kwo+PiAgICAgICAgICBzdHJ1Y3QgcmFkZW9uX2JvICpyYm87Cj4+IC0gICAgICAgc3RhdGljIHUz MiBwbGFjZW1lbnRzID0gVFRNX1BMX01BU0tfQ0FDSElORyB8IFRUTV9QTF9GTEFHX1NZU1RFTTsK Pj4KPj4gICAgICAgICAgaWYgKCFyYWRlb25fdHRtX2JvX2lzX3JhZGVvbl9ibyhibykpIHsKPj4g LSAgICAgICAgICAgICAgIHBsYWNlbWVudC0+ZnBmbiA9IDA7Cj4+IC0gICAgICAgICAgICAgICBw bGFjZW1lbnQtPmxwZm4gPSAwOwo+PiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudC0+cGxhY2Vt ZW50ID0gJnBsYWNlbWVudHM7Cj4+ICAgICAgICAgICAgICAgICAgcGxhY2VtZW50LT5idXN5X3Bs YWNlbWVudCA9ICZwbGFjZW1lbnRzOwo+PiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudC0+bnVt X3BsYWNlbWVudCA9IDE7Cj4+IEBAIC0yODYsMjAgKzI4OSwyMCBAQCBzdGF0aWMgaW50IHJhZGVv bl9tb3ZlX3ZyYW1fcmFtKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAgICAgICAg IHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2Owo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX21lbV9y ZWcgKm9sZF9tZW0gPSAmYm8tPm1lbTsKPj4gICAgICAgICAgc3RydWN0IHR0bV9tZW1fcmVnIHRt cF9tZW07Cj4+IC0gICAgICAgdTMyIHBsYWNlbWVudHM7Cj4+ICsgICAgICAgc3RydWN0IHR0bV9w bGFjZSBwbGFjZW1lbnRzOwo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX3BsYWNlbWVudCBwbGFjZW1l bnQ7Cj4+ICAgICAgICAgIGludCByOwo+Pgo+PiAgICAgICAgICByZGV2ID0gcmFkZW9uX2dldF9y ZGV2KGJvLT5iZGV2KTsKPj4gICAgICAgICAgdG1wX21lbSA9ICpuZXdfbWVtOwo+PiAgICAgICAg ICB0bXBfbWVtLm1tX25vZGUgPSBOVUxMOwo+PiAtICAgICAgIHBsYWNlbWVudC5mcGZuID0gMDsK Pj4gLSAgICAgICBwbGFjZW1lbnQubHBmbiA9IDA7Cj4+ICAgICAgICAgIHBsYWNlbWVudC5udW1f cGxhY2VtZW50ID0gMTsKPj4gICAgICAgICAgcGxhY2VtZW50LnBsYWNlbWVudCA9ICZwbGFjZW1l bnRzOwo+PiAgICAgICAgICBwbGFjZW1lbnQubnVtX2J1c3lfcGxhY2VtZW50ID0gMTsKPj4gICAg ICAgICAgcGxhY2VtZW50LmJ1c3lfcGxhY2VtZW50ID0gJnBsYWNlbWVudHM7Cj4+IC0gICAgICAg cGxhY2VtZW50cyA9IFRUTV9QTF9NQVNLX0NBQ0hJTkcgfCBUVE1fUExfRkxBR19UVDsKPj4gKyAg ICAgICBwbGFjZW1lbnRzLmZwZm4gPSAwOwo+PiArICAgICAgIHBsYWNlbWVudHMubHBmbiA9IDA7 Cj4+ICsgICAgICAgcGxhY2VtZW50cy5mbGFncyA9IFRUTV9QTF9NQVNLX0NBQ0hJTkcgfCBUVE1f UExfRkxBR19UVDsKPj4gICAgICAgICAgciA9IHR0bV9ib19tZW1fc3BhY2UoYm8sICZwbGFjZW1l bnQsICZ0bXBfbWVtLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcnJ1cHRp YmxlLCBub193YWl0X2dwdSk7Cj4+ICAgICAgICAgIGlmICh1bmxpa2VseShyKSkgewo+PiBAQCAt MzM0LDE5ICszMzcsMTkgQEAgc3RhdGljIGludCByYWRlb25fbW92ZV9yYW1fdnJhbShzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm9s ZF9tZW0gPSAmYm8tPm1lbTsKPj4gICAgICAgICAgc3RydWN0IHR0bV9tZW1fcmVnIHRtcF9tZW07 Cj4+ICAgICAgICAgIHN0cnVjdCB0dG1fcGxhY2VtZW50IHBsYWNlbWVudDsKPj4gLSAgICAgICB1 MzIgcGxhY2VtZW50czsKPj4gKyAgICAgICBzdHJ1Y3QgdHRtX3BsYWNlIHBsYWNlbWVudHM7Cj4+ ICAgICAgICAgIGludCByOwo+Pgo+PiAgICAgICAgICByZGV2ID0gcmFkZW9uX2dldF9yZGV2KGJv LT5iZGV2KTsKPj4gICAgICAgICAgdG1wX21lbSA9ICpuZXdfbWVtOwo+PiAgICAgICAgICB0bXBf bWVtLm1tX25vZGUgPSBOVUxMOwo+PiAtICAgICAgIHBsYWNlbWVudC5mcGZuID0gMDsKPj4gLSAg ICAgICBwbGFjZW1lbnQubHBmbiA9IDA7Cj4+ICAgICAgICAgIHBsYWNlbWVudC5udW1fcGxhY2Vt ZW50ID0gMTsKPj4gICAgICAgICAgcGxhY2VtZW50LnBsYWNlbWVudCA9ICZwbGFjZW1lbnRzOwo+ PiAgICAgICAgICBwbGFjZW1lbnQubnVtX2J1c3lfcGxhY2VtZW50ID0gMTsKPj4gICAgICAgICAg cGxhY2VtZW50LmJ1c3lfcGxhY2VtZW50ID0gJnBsYWNlbWVudHM7Cj4+IC0gICAgICAgcGxhY2Vt ZW50cyA9IFRUTV9QTF9NQVNLX0NBQ0hJTkcgfCBUVE1fUExfRkxBR19UVDsKPj4gKyAgICAgICBw bGFjZW1lbnRzLmZwZm4gPSAwOwo+PiArICAgICAgIHBsYWNlbWVudHMubHBmbiA9IDA7Cj4+ICsg ICAgICAgcGxhY2VtZW50cy5mbGFncyA9IFRUTV9QTF9NQVNLX0NBQ0hJTkcgfCBUVE1fUExfRkxB R19UVDsKPj4gICAgICAgICAgciA9IHR0bV9ib19tZW1fc3BhY2UoYm8sICZwbGFjZW1lbnQsICZ0 bXBfbWVtLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcnJ1cHRpYmxlLCBu b193YWl0X2dwdSk7Cj4+ICAgICAgICAgIGlmICh1bmxpa2VseShyKSkgewo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdXZkLmMgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl91dmQuYwo+PiBpbmRleCA2YmY1NWVjLi4xMTY4ZGU3IDEwMDY0NAo+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl91dmQuYwo+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl91dmQuYwo+PiBAQCAtMjMzLDggKzIzMywxMiBAQCBpbnQg cmFkZW9uX3V2ZF9yZXN1bWUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCj4+Cj4+ICAgdm9p ZCByYWRlb25fdXZkX2ZvcmNlX2ludG9fdXZkX3NlZ21lbnQoc3RydWN0IHJhZGVvbl9ibyAqcmJv KQo+PiAgIHsKPj4gLSAgICAgICByYm8tPnBsYWNlbWVudC5mcGZuID0gMCA+PiBQQUdFX1NISUZU Owo+PiAtICAgICAgIHJiby0+cGxhY2VtZW50LmxwZm4gPSAoMjU2ICogMTAyNCAqIDEwMjQpID4+ IFBBR0VfU0hJRlQ7Cj4+ICsgICAgICAgaW50IGk7Cj4+ICsKPj4gKyAgICAgICBmb3IgKGkgPSAw OyBpIDwgcmJvLT5wbGFjZW1lbnQubnVtX3BsYWNlbWVudDsgKytpKSB7Cj4+ICsgICAgICAgICAg ICAgICByYm8tPnBsYWNlbWVudHNbaV0uZnBmbiA9IDAgPj4gUEFHRV9TSElGVDsKPj4gKyAgICAg ICAgICAgICAgIHJiby0+cGxhY2VtZW50c1tpXS5scGZuID0gKDI1NiAqIDEwMjQgKiAxMDI0KSA+ PiBQQUdFX1NISUZUOwo+PiArICAgICAgIH0KPj4gICB9Cj4+Cj4+ICAgdm9pZCByYWRlb25fdXZk X2ZyZWVfaGFuZGxlcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IGRybV9maWxl ICpmaWxwKQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyBiL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKPj4gaW5kZXggM2RhODlkNS4uYjk5MmVjMyAxMDA2 NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9iby5jCj4+IEBAIC01MywxMiArNTMsMTMgQEAgc3RhdGljIHN0cnVj dCBhdHRyaWJ1dGUgdHRtX2JvX2NvdW50ID0gewo+PiAgICAgICAgICAubW9kZSA9IFNfSVJVR08K Pj4gICB9Owo+Pgo+PiAtc3RhdGljIGlubGluZSBpbnQgdHRtX21lbV90eXBlX2Zyb21fZmxhZ3Mo dWludDMyX3QgZmxhZ3MsIHVpbnQzMl90ICptZW1fdHlwZSkKPj4gK3N0YXRpYyBpbmxpbmUgaW50 IHR0bV9tZW1fdHlwZV9mcm9tX3BsYWNlKGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNlLAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqbWVt X3R5cGUpCj4+ICAgewo+PiAgICAgICAgICBpbnQgaTsKPj4KPj4gICAgICAgICAgZm9yIChpID0g MDsgaSA8PSBUVE1fUExfUFJJVjU7IGkrKykKPj4gLSAgICAgICAgICAgICAgIGlmIChmbGFncyAm ICgxIDw8IGkpKSB7Cj4+ICsgICAgICAgICAgICAgICBpZiAocGxhY2UtPmZsYWdzICYgKDEgPDwg aSkpIHsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICptZW1fdHlwZSA9IGk7Cj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4gICAgICAgICAgICAgICAgICB9Cj4+IEBA IC04OSwxMiArOTAsMTIgQEAgc3RhdGljIHZvaWQgdHRtX2JvX21lbV9zcGFjZV9kZWJ1ZyhzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAgICAgICAgICAgICAgYm8sIGJvLT5tZW0u bnVtX3BhZ2VzLCBiby0+bWVtLnNpemUgPj4gMTAsCj4+ICAgICAgICAgICAgICAgICBiby0+bWVt LnNpemUgPj4gMjApOwo+PiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcGxhY2VtZW50LT5udW1f cGxhY2VtZW50OyBpKyspIHsKPj4gLSAgICAgICAgICAgICAgIHJldCA9IHR0bV9tZW1fdHlwZV9m cm9tX2ZsYWdzKHBsYWNlbWVudC0+cGxhY2VtZW50W2ldLAo+PiArICAgICAgICAgICAgICAgcmV0 ID0gdHRtX21lbV90eXBlX2Zyb21fcGxhY2UoJnBsYWNlbWVudC0+cGxhY2VtZW50W2ldLAo+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1lbV90eXBl KTsKPj4gICAgICAgICAgICAgICAgICBpZiAocmV0KQo+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuOwo+PiAgICAgICAgICAgICAgICAgIHByX2VycigiICBwbGFjZW1lbnRbJWRdPTB4 JTA4WCAoJWQpXG4iLAo+PiAtICAgICAgICAgICAgICAgICAgICAgIGksIHBsYWNlbWVudC0+cGxh Y2VtZW50W2ldLCBtZW1fdHlwZSk7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgaSwgcGxhY2Vt ZW50LT5wbGFjZW1lbnRbaV0uZmxhZ3MsIG1lbV90eXBlKTsKPj4gICAgICAgICAgICAgICAgICB0 dG1fbWVtX3R5cGVfZGVidWcoYm8tPmJkZXYsIG1lbV90eXBlKTsKPj4gICAgICAgICAgfQo+PiAg IH0KPj4gQEAgLTY4NSw4ICs2ODYsNiBAQCBzdGF0aWMgaW50IHR0bV9ib19ldmljdChzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBib29sIGludGVycnVwdGlibGUsCj4+ICAgICAgICAgIGV2 aWN0X21lbS5idXMuaW9fcmVzZXJ2ZWRfdm0gPSBmYWxzZTsKPj4gICAgICAgICAgZXZpY3RfbWVt LmJ1cy5pb19yZXNlcnZlZF9jb3VudCA9IDA7Cj4+Cj4+IC0gICAgICAgcGxhY2VtZW50LmZwZm4g PSAwOwo+PiAtICAgICAgIHBsYWNlbWVudC5scGZuID0gMDsKPj4gICAgICAgICAgcGxhY2VtZW50 Lm51bV9wbGFjZW1lbnQgPSAwOwo+PiAgICAgICAgICBwbGFjZW1lbnQubnVtX2J1c3lfcGxhY2Vt ZW50ID0gMDsKPj4gICAgICAgICAgYmRldi0+ZHJpdmVyLT5ldmljdF9mbGFncyhibywgJnBsYWNl bWVudCk7Cj4+IEBAIC03NzQsNyArNzczLDcgQEAgRVhQT1JUX1NZTUJPTCh0dG1fYm9fbWVtX3B1 dCk7Cj4+ICAgICovCj4+ICAgc3RhdGljIGludCB0dG1fYm9fbWVtX2ZvcmNlX3NwYWNlKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdWludDMyX3QgbWVtX3R5cGUsCj4+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50LAo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFj ZSAqcGxhY2UsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHR0bV9tZW1fcmVnICptZW0sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYm9vbCBpbnRlcnJ1cHRpYmxlLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgbm9fd2FpdF9ncHUpCj4+IEBAIC03ODQsNyArNzgzLDcgQEAg c3RhdGljIGludCB0dG1fYm9fbWVtX2ZvcmNlX3NwYWNlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8sCj4+ICAgICAgICAgIGludCByZXQ7Cj4+Cj4+ICAgICAgICAgIGRvIHsKPj4gLSAgICAg ICAgICAgICAgIHJldCA9ICgqbWFuLT5mdW5jLT5nZXRfbm9kZSkobWFuLCBibywgcGxhY2VtZW50 LCAwLCBtZW0pOwo+PiArICAgICAgICAgICAgICAgcmV0ID0gKCptYW4tPmZ1bmMtPmdldF9ub2Rl KShtYW4sIGJvLCBwbGFjZSwgbWVtKTsKPj4gICAgICAgICAgICAgICAgICBpZiAodW5saWtlbHko cmV0ICE9IDApKQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4gICAg ICAgICAgICAgICAgICBpZiAobWVtLT5tbV9ub2RlKQo+PiBAQCAtODI3LDE4ICs4MjYsMTggQEAg c3RhdGljIHVpbnQzMl90IHR0bV9ib19zZWxlY3RfY2FjaGluZyhzdHJ1Y3QgdHRtX21lbV90eXBl X21hbmFnZXIgKm1hbiwKPj4KPj4gICBzdGF0aWMgYm9vbCB0dG1fYm9fbXRfY29tcGF0aWJsZShz dHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90IG1lbV90eXBlLAo+PiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1aW50MzJfdCBwcm9wb3NlZF9wbGFjZW1lbnQsCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNlLAo+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKm1hc2tlZF9wbGFjZW1lbnQp Cj4+ICAgewo+PiAgICAgICAgICB1aW50MzJfdCBjdXJfZmxhZ3MgPSB0dG1fYm9fdHlwZV9mbGFn cyhtZW1fdHlwZSk7Cj4+Cj4+IC0gICAgICAgaWYgKChjdXJfZmxhZ3MgJiBwcm9wb3NlZF9wbGFj ZW1lbnQgJiBUVE1fUExfTUFTS19NRU0pID09IDApCj4+ICsgICAgICAgaWYgKChjdXJfZmxhZ3Mg JiBwbGFjZS0+ZmxhZ3MgJiBUVE1fUExfTUFTS19NRU0pID09IDApCj4+ICAgICAgICAgICAgICAg ICAgcmV0dXJuIGZhbHNlOwo+Pgo+PiAtICAgICAgIGlmICgocHJvcG9zZWRfcGxhY2VtZW50ICYg bWFuLT5hdmFpbGFibGVfY2FjaGluZykgPT0gMCkKPj4gKyAgICAgICBpZiAoKHBsYWNlLT5mbGFn cyAmIG1hbi0+YXZhaWxhYmxlX2NhY2hpbmcpID09IDApCj4+ICAgICAgICAgICAgICAgICAgcmV0 dXJuIGZhbHNlOwo+Pgo+PiAtICAgICAgIGN1cl9mbGFncyB8PSAocHJvcG9zZWRfcGxhY2VtZW50 ICYgbWFuLT5hdmFpbGFibGVfY2FjaGluZyk7Cj4+ICsgICAgICAgY3VyX2ZsYWdzIHw9IChwbGFj ZS0+ZmxhZ3MgJiBtYW4tPmF2YWlsYWJsZV9jYWNoaW5nKTsKPj4KPj4gICAgICAgICAgKm1hc2tl ZF9wbGFjZW1lbnQgPSBjdXJfZmxhZ3M7Cj4+ICAgICAgICAgIHJldHVybiB0cnVlOwo+PiBAQCAt ODY5LDE1ICs4NjgsMTQgQEAgaW50IHR0bV9ib19tZW1fc3BhY2Uoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywKPj4KPj4gICAgICAgICAgbWVtLT5tbV9ub2RlID0gTlVMTDsKPj4gICAgICAg ICAgZm9yIChpID0gMDsgaSA8IHBsYWNlbWVudC0+bnVtX3BsYWNlbWVudDsgKytpKSB7Cj4+IC0g ICAgICAgICAgICAgICByZXQgPSB0dG1fbWVtX3R5cGVfZnJvbV9mbGFncyhwbGFjZW1lbnQtPnBs YWNlbWVudFtpXSwKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJm1lbV90eXBlKTsKPj4gKyAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0dG1fcGxh Y2UgKnBsYWNlID0gJnBsYWNlbWVudC0+cGxhY2VtZW50W2ldOwo+PiArCj4+ICsgICAgICAgICAg ICAgICByZXQgPSB0dG1fbWVtX3R5cGVfZnJvbV9wbGFjZShwbGFjZSwgJm1lbV90eXBlKTsKPj4g ICAgICAgICAgICAgICAgICBpZiAocmV0KQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIHJldDsKPj4gICAgICAgICAgICAgICAgICBtYW4gPSAmYmRldi0+bWFuW21lbV90eXBlXTsK Pj4KPj4gLSAgICAgICAgICAgICAgIHR5cGVfb2sgPSB0dG1fYm9fbXRfY29tcGF0aWJsZShtYW4s Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbV90 eXBlLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw bGFjZW1lbnQtPnBsYWNlbWVudFtpXSwKPj4gKyAgICAgICAgICAgICAgIHR5cGVfb2sgPSB0dG1f Ym9fbXRfY29tcGF0aWJsZShtYW4sIG1lbV90eXBlLCBwbGFjZSwKPj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdXJfZmxhZ3MpOwo+Pgo+PiAgICAg ICAgICAgICAgICAgIGlmICghdHlwZV9vaykKPj4gQEAgLTg4OSw3ICs4ODcsNyBAQCBpbnQgdHRt X2JvX21lbV9zcGFjZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAgICAgICAg ICAgICAgICAqIFVzZSB0aGUgYWNjZXNzIGFuZCBvdGhlciBub24tbWFwcGluZy1yZWxhdGVkIGZs YWcgYml0cyBmcm9tCj4+ICAgICAgICAgICAgICAgICAgICogdGhlIG1lbW9yeSBwbGFjZW1lbnQg ZmxhZ3MgdG8gdGhlIGN1cnJlbnQgZmxhZ3MKPj4gICAgICAgICAgICAgICAgICAgKi8KPj4gLSAg ICAgICAgICAgICAgIHR0bV9mbGFnX21hc2tlZCgmY3VyX2ZsYWdzLCBwbGFjZW1lbnQtPnBsYWNl bWVudFtpXSwKPj4gKyAgICAgICAgICAgICAgIHR0bV9mbGFnX21hc2tlZCgmY3VyX2ZsYWdzLCBw bGFjZS0+ZmxhZ3MsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5UVE1fUExf TUFTS19NRU1UWVBFKTsKPj4KPj4gICAgICAgICAgICAgICAgICBpZiAobWVtX3R5cGUgPT0gVFRN X1BMX1NZU1RFTSkKPj4gQEAgLTg5Nyw4ICs4OTUsNyBAQCBpbnQgdHRtX2JvX21lbV9zcGFjZShz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pgo+PiAgICAgICAgICAgICAgICAgIGlmICht YW4tPmhhc190eXBlICYmIG1hbi0+dXNlX3R5cGUpIHsKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgIHR5cGVfZm91bmQgPSB0cnVlOwo+PiAtICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAo Km1hbi0+ZnVuYy0+Z2V0X25vZGUpKG1hbiwgYm8sIHBsYWNlbWVudCwKPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJfZmxhZ3MsIG1lbSk7 Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldCA9ICgqbWFuLT5mdW5jLT5nZXRfbm9kZSko bWFuLCBibywgcGxhY2UsIG1lbSk7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodW5s aWtlbHkocmV0KSkKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJl dDsKPj4gICAgICAgICAgICAgICAgICB9Cj4+IEBAIC05MTYsMTcgKzkxMywxNSBAQCBpbnQgdHRt X2JvX21lbV9zcGFjZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAgICAgICAgICAg ICAgICAgIHJldHVybiAtRUlOVkFMOwo+Pgo+PiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcGxh Y2VtZW50LT5udW1fYnVzeV9wbGFjZW1lbnQ7ICsraSkgewo+PiAtICAgICAgICAgICAgICAgcmV0 ID0gdHRtX21lbV90eXBlX2Zyb21fZmxhZ3MocGxhY2VtZW50LT5idXN5X3BsYWNlbWVudFtpXSwK Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1lbV90 eXBlKTsKPj4gKyAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNlID0g JnBsYWNlbWVudC0+YnVzeV9wbGFjZW1lbnRbaV07Cj4+ICsKPj4gKyAgICAgICAgICAgICAgIHJl dCA9IHR0bV9tZW1fdHlwZV9mcm9tX3BsYWNlKHBsYWNlLCAmbWVtX3R5cGUpOwo+PiAgICAgICAg ICAgICAgICAgIGlmIChyZXQpCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0 Owo+PiAgICAgICAgICAgICAgICAgIG1hbiA9ICZiZGV2LT5tYW5bbWVtX3R5cGVdOwo+PiAgICAg ICAgICAgICAgICAgIGlmICghbWFuLT5oYXNfdHlwZSkKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnRpbnVlOwo+PiAtICAgICAgICAgICAgICAgaWYgKCF0dG1fYm9fbXRfY29tcGF0aWJs ZShtYW4sCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1lbV90eXBlLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwbGFjZW1lbnQtPmJ1c3lfcGxhY2VtZW50W2ldLAo+PiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3VyX2ZsYWdzKSkKPj4gKyAgICAgICAgICAg ICAgIGlmICghdHRtX2JvX210X2NvbXBhdGlibGUobWFuLCBtZW1fdHlwZSwgcGxhY2UsICZjdXJf ZmxhZ3MpKQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4+Cj4+ICAgICAg ICAgICAgICAgICAgY3VyX2ZsYWdzID0gdHRtX2JvX3NlbGVjdF9jYWNoaW5nKG1hbiwgYm8tPm1l bS5wbGFjZW1lbnQsCj4+IEBAIC05MzUsNyArOTMwLDcgQEAgaW50IHR0bV9ib19tZW1fc3BhY2Uo c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gICAgICAgICAgICAgICAgICAgKiBVc2Ug dGhlIGFjY2VzcyBhbmQgb3RoZXIgbm9uLW1hcHBpbmctcmVsYXRlZCBmbGFnIGJpdHMgZnJvbQo+ PiAgICAgICAgICAgICAgICAgICAqIHRoZSBtZW1vcnkgcGxhY2VtZW50IGZsYWdzIHRvIHRoZSBj dXJyZW50IGZsYWdzCj4+ICAgICAgICAgICAgICAgICAgICovCj4+IC0gICAgICAgICAgICAgICB0 dG1fZmxhZ19tYXNrZWQoJmN1cl9mbGFncywgcGxhY2VtZW50LT5idXN5X3BsYWNlbWVudFtpXSwK Pj4gKyAgICAgICAgICAgICAgIHR0bV9mbGFnX21hc2tlZCgmY3VyX2ZsYWdzLCBwbGFjZS0+Zmxh Z3MsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5UVE1fUExfTUFTS19NRU1U WVBFKTsKPj4KPj4gICAgICAgICAgICAgICAgICBpZiAobWVtX3R5cGUgPT0gVFRNX1BMX1NZU1RF TSkgewo+PiBAQCAtOTQ1LDcgKzk0MCw3IEBAIGludCB0dG1fYm9fbWVtX3NwYWNlKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g MDsKPj4gICAgICAgICAgICAgICAgICB9Cj4+Cj4+IC0gICAgICAgICAgICAgICByZXQgPSB0dG1f Ym9fbWVtX2ZvcmNlX3NwYWNlKGJvLCBtZW1fdHlwZSwgcGxhY2VtZW50LCBtZW0sCj4+ICsgICAg ICAgICAgICAgICByZXQgPSB0dG1fYm9fbWVtX2ZvcmNlX3NwYWNlKGJvLCBtZW1fdHlwZSwgcGxh Y2UsIG1lbSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludGVycnVwdGlibGUsIG5vX3dhaXRfZ3B1KTsKPj4gICAgICAgICAgICAgICAgICBpZiAo cmV0ID09IDAgJiYgbWVtLT5tbV9ub2RlKSB7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBt ZW0tPnBsYWNlbWVudCA9IGN1cl9mbGFnczsKPj4gQEAgLTEwMDYsMjAgKzEwMDEsMjcgQEAgc3Rh dGljIGJvb2wgdHRtX2JvX21lbV9jb21wYXQoc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBsYWNlbWVu dCwKPj4gICB7Cj4+ICAgICAgICAgIGludCBpOwo+Pgo+PiAtICAgICAgIGlmIChtZW0tPm1tX25v ZGUgJiYgcGxhY2VtZW50LT5scGZuICE9IDAgJiYKPj4gLSAgICAgICAgICAgKG1lbS0+c3RhcnQg PCBwbGFjZW1lbnQtPmZwZm4gfHwKPj4gLSAgICAgICAgICAgIG1lbS0+c3RhcnQgKyBtZW0tPm51 bV9wYWdlcyA+IHBsYWNlbWVudC0+bHBmbikpCj4+IC0gICAgICAgICAgICAgICByZXR1cm4gZmFs c2U7Cj4+IC0KPj4gICAgICAgICAgZm9yIChpID0gMDsgaSA8IHBsYWNlbWVudC0+bnVtX3BsYWNl bWVudDsgaSsrKSB7Cj4+IC0gICAgICAgICAgICAgICAqbmV3X2ZsYWdzID0gcGxhY2VtZW50LT5w bGFjZW1lbnRbaV07Cj4+ICsgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpo ZWFwID0gJnBsYWNlbWVudC0+cGxhY2VtZW50W2ldOwo+PiArICAgICAgICAgICAgICAgaWYgKG1l bS0+bW1fbm9kZSAmJiBoZWFwLT5scGZuICE9IDAgJiYKPj4gKyAgICAgICAgICAgICAgICAgICAo bWVtLT5zdGFydCA8IGhlYXAtPmZwZm4gfHwKPj4gKyAgICAgICAgICAgICAgICAgICAgbWVtLT5z dGFydCArIG1lbS0+bnVtX3BhZ2VzID4gaGVhcC0+bHBmbikpCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlOwo+PiArCj4+ICsgICAgICAgICAgICAgICAqbmV3X2ZsYWdzID0gaGVh cC0+ZmxhZ3M7Cj4+ICAgICAgICAgICAgICAgICAgaWYgKCgqbmV3X2ZsYWdzICYgbWVtLT5wbGFj ZW1lbnQgJiBUVE1fUExfTUFTS19DQUNISU5HKSAmJgo+PiAgICAgICAgICAgICAgICAgICAgICAo Km5ld19mbGFncyAmIG1lbS0+cGxhY2VtZW50ICYgVFRNX1BMX01BU0tfTUVNKSkKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwo+PiAgICAgICAgICB9Cj4+Cj4+ICAgICAg ICAgIGZvciAoaSA9IDA7IGkgPCBwbGFjZW1lbnQtPm51bV9idXN5X3BsYWNlbWVudDsgaSsrKSB7 Cj4+IC0gICAgICAgICAgICAgICAqbmV3X2ZsYWdzID0gcGxhY2VtZW50LT5idXN5X3BsYWNlbWVu dFtpXTsKPj4gKyAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKmhlYXAgPSAm cGxhY2VtZW50LT5idXN5X3BsYWNlbWVudFtpXTsKPj4gKyAgICAgICAgICAgICAgIGlmIChtZW0t Pm1tX25vZGUgJiYgaGVhcC0+bHBmbiAhPSAwICYmCj4+ICsgICAgICAgICAgICAgICAgICAgKG1l bS0+c3RhcnQgPCBoZWFwLT5mcGZuIHx8Cj4+ICsgICAgICAgICAgICAgICAgICAgIG1lbS0+c3Rh cnQgKyBtZW0tPm51bV9wYWdlcyA+IGhlYXAtPmxwZm4pKQo+PiArICAgICAgICAgICAgICAgICAg ICAgICBjb250aW51ZTsKPj4gKwo+PiArICAgICAgICAgICAgICAgKm5ld19mbGFncyA9IGhlYXAt PmZsYWdzOwo+PiAgICAgICAgICAgICAgICAgIGlmICgoKm5ld19mbGFncyAmIG1lbS0+cGxhY2Vt ZW50ICYgVFRNX1BMX01BU0tfQ0FDSElORykgJiYKPj4gICAgICAgICAgICAgICAgICAgICAgKCpu ZXdfZmxhZ3MgJiBtZW0tPnBsYWNlbWVudCAmIFRUTV9QTF9NQVNLX01FTSkpCj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKPj4gQEAgLTEwMzcsMTEgKzEwMzksNiBAQCBp bnQgdHRtX2JvX3ZhbGlkYXRlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAgICAg ICAgIHVpbnQzMl90IG5ld19mbGFnczsKPj4KPj4gICAgICAgICAgbG9ja2RlcF9hc3NlcnRfaGVs ZCgmYm8tPnJlc3YtPmxvY2suYmFzZSk7Cj4+IC0gICAgICAgLyogQ2hlY2sgdGhhdCByYW5nZSBp cyB2YWxpZCAqLwo+PiAtICAgICAgIGlmIChwbGFjZW1lbnQtPmxwZm4gfHwgcGxhY2VtZW50LT5m cGZuKQo+PiAtICAgICAgICAgICAgICAgaWYgKHBsYWNlbWVudC0+ZnBmbiA+IHBsYWNlbWVudC0+ bHBmbiB8fAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAocGxhY2VtZW50LT5scGZuIC0gcGxh Y2VtZW50LT5mcGZuKSA8IGJvLT5udW1fcGFnZXMpCj4+IC0gICAgICAgICAgICAgICAgICAgICAg IHJldHVybiAtRUlOVkFMOwo+PiAgICAgICAgICAvKgo+PiAgICAgICAgICAgKiBDaGVjayB3aGV0 aGVyIHdlIG5lZWQgdG8gbW92ZSBidWZmZXIuCj4+ICAgICAgICAgICAqLwo+PiBAQCAtMTA3MCwx NSArMTA2Nyw2IEBAIGludCB0dG1fYm9fdmFsaWRhdGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKPj4gICB9Cj4+ICAgRVhQT1JUX1NZTUJPTCh0dG1fYm9fdmFsaWRhdGUpOwo+Pgo+PiAt aW50IHR0bV9ib19jaGVja19wbGFjZW1lbnQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywK Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3BsYWNlbWVudCAq cGxhY2VtZW50KQo+PiAtewo+PiAtICAgICAgIEJVR19PTigocGxhY2VtZW50LT5mcGZuIHx8IHBs YWNlbWVudC0+bHBmbikgJiYKPj4gLSAgICAgICAgICAgICAgKGJvLT5tZW0ubnVtX3BhZ2VzID4g KHBsYWNlbWVudC0+bHBmbiAtIHBsYWNlbWVudC0+ZnBmbikpKTsKPj4gLQo+PiAtICAgICAgIHJl dHVybiAwOwo+PiAtfQo+PiAtCj4+ICAgaW50IHR0bV9ib19pbml0KHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sCj4+ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzaXplLAo+PiBAQCAtMTE0Nywx NSArMTEzNSwxMiBAQCBpbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs Cj4+ICAgICAgICAgIGF0b21pY19pbmMoJmJvLT5nbG9iLT5ib19jb3VudCk7Cj4+ICAgICAgICAg IGRybV92bWFfbm9kZV9yZXNldCgmYm8tPnZtYV9ub2RlKTsKPj4KPj4gLSAgICAgICByZXQgPSB0 dG1fYm9fY2hlY2tfcGxhY2VtZW50KGJvLCBwbGFjZW1lbnQpOwo+PiAtCj4+ICAgICAgICAgIC8q Cj4+ICAgICAgICAgICAqIEZvciB0dG1fYm9fdHlwZV9kZXZpY2UgYnVmZmVycywgYWxsb2NhdGUK Pj4gICAgICAgICAgICogYWRkcmVzcyBzcGFjZSBmcm9tIHRoZSBkZXZpY2UuCj4+ICAgICAgICAg ICAqLwo+PiAtICAgICAgIGlmIChsaWtlbHkoIXJldCkgJiYKPj4gLSAgICAgICAgICAgKGJvLT50 eXBlID09IHR0bV9ib190eXBlX2RldmljZSB8fAo+PiAtICAgICAgICAgICAgYm8tPnR5cGUgPT0g dHRtX2JvX3R5cGVfc2cpKQo+PiArICAgICAgIGlmIChiby0+dHlwZSA9PSB0dG1fYm9fdHlwZV9k ZXZpY2UgfHwKPj4gKyAgICAgICAgICAgYm8tPnR5cGUgPT0gdHRtX2JvX3R5cGVfc2cpCj4+ICAg ICAgICAgICAgICAgICAgcmV0ID0gZHJtX3ZtYV9vZmZzZXRfYWRkKCZiZGV2LT52bWFfbWFuYWdl ciwgJmJvLT52bWFfbm9kZSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYm8tPm1lbS5udW1fcGFnZXMpOwo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3R0bS90dG1fYm9fbWFuYWdlci5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fbWFu YWdlci5jCj4+IGluZGV4IDllMTAzYTQ4Li45NjQzODdmIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9ib19tYW5hZ2VyLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0 bS90dG1fYm9fbWFuYWdlci5jCj4+IEBAIC00OSw4ICs0OSw3IEBAIHN0cnVjdCB0dG1fcmFuZ2Vf bWFuYWdlciB7Cj4+Cj4+ICAgc3RhdGljIGludCB0dG1fYm9fbWFuX2dldF9ub2RlKHN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50LAo+PiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZmxhZ3MsCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKPj4gICB7Cj4+ ICAgICAgICAgIHN0cnVjdCB0dG1fcmFuZ2VfbWFuYWdlciAqcm1hbiA9IChzdHJ1Y3QgdHRtX3Jh bmdlX21hbmFnZXIgKikgbWFuLT5wcml2Owo+PiBAQCAtNjAsNyArNTksNyBAQCBzdGF0aWMgaW50 IHR0bV9ib19tYW5fZ2V0X25vZGUoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4+ ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbHBmbjsKPj4gICAgICAgICAgaW50IHJldDsKPj4KPj4g LSAgICAgICBscGZuID0gcGxhY2VtZW50LT5scGZuOwo+PiArICAgICAgIGxwZm4gPSBwbGFjZS0+ bHBmbjsKPj4gICAgICAgICAgaWYgKCFscGZuKQo+PiAgICAgICAgICAgICAgICAgIGxwZm4gPSBt YW4tPnNpemU7Cj4+Cj4+IEBAIC02OCwxMyArNjcsMTMgQEAgc3RhdGljIGludCB0dG1fYm9fbWFu X2dldF9ub2RlKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+PiAgICAgICAgICBp ZiAoIW5vZGUpCj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4+Cj4+IC0gICAg ICAgaWYgKGZsYWdzICYgVFRNX1BMX0ZMQUdfVE9QRE9XTikKPj4gKyAgICAgICBpZiAocGxhY2Ut PmZsYWdzICYgVFRNX1BMX0ZMQUdfVE9QRE9XTikKPj4gICAgICAgICAgICAgICAgICBhZmxhZ3Mg PSBEUk1fTU1fQ1JFQVRFX1RPUDsKPj4KPj4gICAgICAgICAgc3Bpbl9sb2NrKCZybWFuLT5sb2Nr KTsKPj4gICAgICAgICAgcmV0ID0gZHJtX21tX2luc2VydF9ub2RlX2luX3JhbmdlX2dlbmVyaWMo bW0sIG5vZGUsIG1lbS0+bnVtX3BhZ2VzLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbWVtLT5wYWdlX2FsaWdubWVudCwgMCwKPj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50LT5mcGZuLCBscGZuLAo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZS0+ZnBmbiwgbHBmbiwK Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERSTV9NTV9TRUFS Q0hfQkVTVCwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFm bGFncyk7Cj4+ICAgICAgICAgIHNwaW5fdW5sb2NrKCZybWFuLT5sb2NrKTsKPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2J1ZmZlci5jIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfYnVmZmVyLmMKPj4gaW5kZXggNjMyN2NmYy4uMzdjMDkzYyAxMDA2 NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYnVmZmVyLmMKPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYnVmZmVyLmMKPj4gQEAgLTMwLDY2ICsz MCwxMDEgQEAKPj4gICAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+Cj4+ICAgI2lu Y2x1ZGUgPGRybS90dG0vdHRtX3BhZ2VfYWxsb2MuaD4KPj4KPj4gLXN0YXRpYyB1aW50MzJfdCB2 cmFtX3BsYWNlbWVudF9mbGFncyA9IFRUTV9QTF9GTEFHX1ZSQU0gfAo+PiAtICAgICAgIFRUTV9Q TF9GTEFHX0NBQ0hFRDsKPj4gLQo+PiAtc3RhdGljIHVpbnQzMl90IHZyYW1fbmVfcGxhY2VtZW50 X2ZsYWdzID0gVFRNX1BMX0ZMQUdfVlJBTSB8Cj4+IC0gICAgICAgVFRNX1BMX0ZMQUdfQ0FDSEVE IHwKPj4gLSAgICAgICBUVE1fUExfRkxBR19OT19FVklDVDsKPj4gK3N0YXRpYyBzdHJ1Y3QgdHRt X3BsYWNlIHZyYW1fcGxhY2VtZW50X2ZsYWdzID0gewo+PiArICAgICAgIC5mcGZuID0gMCwKPj4g KyAgICAgICAubHBmbiA9IDAsCj4+ICsgICAgICAgLmZsYWdzID0gVFRNX1BMX0ZMQUdfVlJBTSB8 IFRUTV9QTF9GTEFHX0NBQ0hFRAo+PiArfTsKPj4KPj4gLXN0YXRpYyB1aW50MzJfdCBzeXNfcGxh Y2VtZW50X2ZsYWdzID0gVFRNX1BMX0ZMQUdfU1lTVEVNIHwKPj4gLSAgICAgICBUVE1fUExfRkxB R19DQUNIRUQ7Cj4+ICtzdGF0aWMgc3RydWN0IHR0bV9wbGFjZSB2cmFtX25lX3BsYWNlbWVudF9m bGFncyA9IHsKPj4gKyAgICAgICAuZnBmbiA9IDAsCj4+ICsgICAgICAgLmxwZm4gPSAwLAo+PiAr ICAgICAgIC5mbGFncyA9IFRUTV9QTF9GTEFHX1ZSQU0gfCBUVE1fUExfRkxBR19DQUNIRUQgfCBU VE1fUExfRkxBR19OT19FVklDVAo+PiArfTsKPj4KPj4gLXN0YXRpYyB1aW50MzJfdCBzeXNfbmVf cGxhY2VtZW50X2ZsYWdzID0gVFRNX1BMX0ZMQUdfU1lTVEVNIHwKPj4gLSAgICAgICBUVE1fUExf RkxBR19DQUNIRUQgfAo+PiAtICAgICAgIFRUTV9QTF9GTEFHX05PX0VWSUNUOwo+PiArc3RhdGlj IHN0cnVjdCB0dG1fcGxhY2Ugc3lzX3BsYWNlbWVudF9mbGFncyA9IHsKPj4gKyAgICAgICAuZnBm biA9IDAsCj4+ICsgICAgICAgLmxwZm4gPSAwLAo+PiArICAgICAgIC5mbGFncyA9IFRUTV9QTF9G TEFHX1NZU1RFTSB8IFRUTV9QTF9GTEFHX0NBQ0hFRAo+PiArfTsKPj4KPj4gLXN0YXRpYyB1aW50 MzJfdCBnbXJfcGxhY2VtZW50X2ZsYWdzID0gVk1XX1BMX0ZMQUdfR01SIHwKPj4gLSAgICAgICBU VE1fUExfRkxBR19DQUNIRUQ7Cj4+ICtzdGF0aWMgc3RydWN0IHR0bV9wbGFjZSBzeXNfbmVfcGxh Y2VtZW50X2ZsYWdzID0gewo+PiArICAgICAgIC5mcGZuID0gMCwKPj4gKyAgICAgICAubHBmbiA9 IDAsCj4+ICsgICAgICAgLmZsYWdzID0gVFRNX1BMX0ZMQUdfU1lTVEVNIHwgVFRNX1BMX0ZMQUdf Q0FDSEVEIHwgVFRNX1BMX0ZMQUdfTk9fRVZJQ1QKPj4gK307Cj4+Cj4+IC1zdGF0aWMgdWludDMy X3QgZ21yX25lX3BsYWNlbWVudF9mbGFncyA9IFZNV19QTF9GTEFHX0dNUiB8Cj4+IC0gICAgICAg VFRNX1BMX0ZMQUdfQ0FDSEVEIHwKPj4gLSAgICAgICBUVE1fUExfRkxBR19OT19FVklDVDsKPj4g K3N0YXRpYyBzdHJ1Y3QgdHRtX3BsYWNlIGdtcl9wbGFjZW1lbnRfZmxhZ3MgPSB7Cj4+ICsgICAg ICAgLmZwZm4gPSAwLAo+PiArICAgICAgIC5scGZuID0gMCwKPj4gKyAgICAgICAuZmxhZ3MgPSBW TVdfUExfRkxBR19HTVIgfCBUVE1fUExfRkxBR19DQUNIRUQKPj4gK307Cj4+Cj4+IC1zdGF0aWMg dWludDMyX3QgbW9iX3BsYWNlbWVudF9mbGFncyA9IFZNV19QTF9GTEFHX01PQiB8Cj4+IC0gICAg ICAgVFRNX1BMX0ZMQUdfQ0FDSEVEOwo+PiArc3RhdGljIHN0cnVjdCB0dG1fcGxhY2UgZ21yX25l X3BsYWNlbWVudF9mbGFncyA9IHsKPj4gKyAgICAgICAuZnBmbiA9IDAsCj4+ICsgICAgICAgLmxw Zm4gPSAwLAo+PiArICAgICAgIC5mbGFncyA9IFZNV19QTF9GTEFHX0dNUiB8IFRUTV9QTF9GTEFH X0NBQ0hFRCB8IFRUTV9QTF9GTEFHX05PX0VWSUNUCj4+ICt9Owo+Pgo+PiAtc3RydWN0IHR0bV9w bGFjZW1lbnQgdm13X3ZyYW1fcGxhY2VtZW50ID0gewo+PiArc3RhdGljIHN0cnVjdCB0dG1fcGxh Y2UgbW9iX3BsYWNlbWVudF9mbGFncyA9IHsKPj4gICAgICAgICAgLmZwZm4gPSAwLAo+PiAgICAg ICAgICAubHBmbiA9IDAsCj4+ICsgICAgICAgLmZsYWdzID0gVk1XX1BMX0ZMQUdfTU9CIHwgVFRN X1BMX0ZMQUdfQ0FDSEVECj4+ICt9Owo+PiArCj4+ICtzdHJ1Y3QgdHRtX3BsYWNlbWVudCB2bXdf dnJhbV9wbGFjZW1lbnQgPSB7Cj4+ICAgICAgICAgIC5udW1fcGxhY2VtZW50ID0gMSwKPj4gICAg ICAgICAgLnBsYWNlbWVudCA9ICZ2cmFtX3BsYWNlbWVudF9mbGFncywKPj4gICAgICAgICAgLm51 bV9idXN5X3BsYWNlbWVudCA9IDEsCj4+ICAgICAgICAgIC5idXN5X3BsYWNlbWVudCA9ICZ2cmFt X3BsYWNlbWVudF9mbGFncwo+PiAgIH07Cj4+Cj4+IC1zdGF0aWMgdWludDMyX3QgdnJhbV9nbXJf cGxhY2VtZW50X2ZsYWdzW10gPSB7Cj4+IC0gICAgICAgVFRNX1BMX0ZMQUdfVlJBTSB8IFRUTV9Q TF9GTEFHX0NBQ0hFRCwKPj4gLSAgICAgICBWTVdfUExfRkxBR19HTVIgfCBUVE1fUExfRkxBR19D QUNIRUQKPj4gK3N0YXRpYyBzdHJ1Y3QgdHRtX3BsYWNlIHZyYW1fZ21yX3BsYWNlbWVudF9mbGFn c1tdID0gewo+PiArICAgICAgIHsKPj4gKyAgICAgICAgICAgICAgIC5mcGZuID0gMCwKPj4gKyAg ICAgICAgICAgICAgIC5scGZuID0gMCwKPj4gKyAgICAgICAgICAgICAgIC5mbGFncyA9IFRUTV9Q TF9GTEFHX1ZSQU0gfCBUVE1fUExfRkxBR19DQUNIRUQKPj4gKyAgICAgICB9LCB7Cj4+ICsgICAg ICAgICAgICAgICAuZnBmbiA9IDAsCj4+ICsgICAgICAgICAgICAgICAubHBmbiA9IDAsCj4+ICsg ICAgICAgICAgICAgICAuZmxhZ3MgPSBWTVdfUExfRkxBR19HTVIgfCBUVE1fUExfRkxBR19DQUNI RUQKPj4gKyAgICAgICB9Cj4+ICAgfTsKPj4KPj4gLXN0YXRpYyB1aW50MzJfdCBnbXJfdnJhbV9w bGFjZW1lbnRfZmxhZ3NbXSA9IHsKPj4gLSAgICAgICBWTVdfUExfRkxBR19HTVIgfCBUVE1fUExf RkxBR19DQUNIRUQsCj4+IC0gICAgICAgVFRNX1BMX0ZMQUdfVlJBTSB8IFRUTV9QTF9GTEFHX0NB Q0hFRAo+PiArc3RhdGljIHN0cnVjdCB0dG1fcGxhY2UgZ21yX3ZyYW1fcGxhY2VtZW50X2ZsYWdz W10gPSB7Cj4+ICsgICAgICAgewo+PiArICAgICAgICAgICAgICAgLmZwZm4gPSAwLAo+PiArICAg ICAgICAgICAgICAgLmxwZm4gPSAwLAo+PiArICAgICAgICAgICAgICAgLmZsYWdzID0gVk1XX1BM X0ZMQUdfR01SIHwgVFRNX1BMX0ZMQUdfQ0FDSEVECj4+ICsgICAgICAgfSwgewo+PiArICAgICAg ICAgICAgICAgLmZwZm4gPSAwLAo+PiArICAgICAgICAgICAgICAgLmxwZm4gPSAwLAo+PiArICAg ICAgICAgICAgICAgLmZsYWdzID0gVFRNX1BMX0ZMQUdfVlJBTSB8IFRUTV9QTF9GTEFHX0NBQ0hF RAo+PiArICAgICAgIH0KPj4gICB9Owo+Pgo+PiAgIHN0cnVjdCB0dG1fcGxhY2VtZW50IHZtd192 cmFtX2dtcl9wbGFjZW1lbnQgPSB7Cj4+IC0gICAgICAgLmZwZm4gPSAwLAo+PiAtICAgICAgIC5s cGZuID0gMCwKPj4gICAgICAgICAgLm51bV9wbGFjZW1lbnQgPSAyLAo+PiAgICAgICAgICAucGxh Y2VtZW50ID0gdnJhbV9nbXJfcGxhY2VtZW50X2ZsYWdzLAo+PiAgICAgICAgICAubnVtX2J1c3lf cGxhY2VtZW50ID0gMSwKPj4gICAgICAgICAgLmJ1c3lfcGxhY2VtZW50ID0gJmdtcl9wbGFjZW1l bnRfZmxhZ3MKPj4gICB9Owo+Pgo+PiAtc3RhdGljIHVpbnQzMl90IHZyYW1fZ21yX25lX3BsYWNl bWVudF9mbGFnc1tdID0gewo+PiAtICAgICAgIFRUTV9QTF9GTEFHX1ZSQU0gfCBUVE1fUExfRkxB R19DQUNIRUQgfCBUVE1fUExfRkxBR19OT19FVklDVCwKPj4gLSAgICAgICBWTVdfUExfRkxBR19H TVIgfCBUVE1fUExfRkxBR19DQUNIRUQgfCBUVE1fUExfRkxBR19OT19FVklDVAo+PiArc3RhdGlj IHN0cnVjdCB0dG1fcGxhY2UgdnJhbV9nbXJfbmVfcGxhY2VtZW50X2ZsYWdzW10gPSB7Cj4+ICsg ICAgICAgewo+PiArICAgICAgICAgICAgICAgLmZwZm4gPSAwLAo+PiArICAgICAgICAgICAgICAg LmxwZm4gPSAwLAo+PiArICAgICAgICAgICAgICAgLmZsYWdzID0gVFRNX1BMX0ZMQUdfVlJBTSB8 IFRUTV9QTF9GTEFHX0NBQ0hFRCB8Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBUVE1fUExf RkxBR19OT19FVklDVAo+PiArICAgICAgIH0sIHsKPj4gKyAgICAgICAgICAgICAgIC5mcGZuID0g MCwKPj4gKyAgICAgICAgICAgICAgIC5scGZuID0gMCwKPj4gKyAgICAgICAgICAgICAgIC5mbGFn cyA9IFZNV19QTF9GTEFHX0dNUiB8IFRUTV9QTF9GTEFHX0NBQ0hFRCB8Cj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICBUVE1fUExfRkxBR19OT19FVklDVAo+PiArICAgICAgIH0KPj4gICB9Owo+ Pgo+PiAgIHN0cnVjdCB0dG1fcGxhY2VtZW50IHZtd192cmFtX2dtcl9uZV9wbGFjZW1lbnQgPSB7 Cj4+IC0gICAgICAgLmZwZm4gPSAwLAo+PiAtICAgICAgIC5scGZuID0gMCwKPj4gICAgICAgICAg Lm51bV9wbGFjZW1lbnQgPSAyLAo+PiAgICAgICAgICAucGxhY2VtZW50ID0gdnJhbV9nbXJfbmVf cGxhY2VtZW50X2ZsYWdzLAo+PiAgICAgICAgICAubnVtX2J1c3lfcGxhY2VtZW50ID0gMSwKPj4g QEAgLTk3LDggKzEzMiw2IEBAIHN0cnVjdCB0dG1fcGxhY2VtZW50IHZtd192cmFtX2dtcl9uZV9w bGFjZW1lbnQgPSB7Cj4+ICAgfTsKPj4KPj4gICBzdHJ1Y3QgdHRtX3BsYWNlbWVudCB2bXdfdnJh bV9zeXNfcGxhY2VtZW50ID0gewo+PiAtICAgICAgIC5mcGZuID0gMCwKPj4gLSAgICAgICAubHBm biA9IDAsCj4+ICAgICAgICAgIC5udW1fcGxhY2VtZW50ID0gMSwKPj4gICAgICAgICAgLnBsYWNl bWVudCA9ICZ2cmFtX3BsYWNlbWVudF9mbGFncywKPj4gICAgICAgICAgLm51bV9idXN5X3BsYWNl bWVudCA9IDEsCj4+IEBAIC0xMDYsOCArMTM5LDYgQEAgc3RydWN0IHR0bV9wbGFjZW1lbnQgdm13 X3ZyYW1fc3lzX3BsYWNlbWVudCA9IHsKPj4gICB9Owo+Pgo+PiAgIHN0cnVjdCB0dG1fcGxhY2Vt ZW50IHZtd192cmFtX25lX3BsYWNlbWVudCA9IHsKPj4gLSAgICAgICAuZnBmbiA9IDAsCj4+IC0g ICAgICAgLmxwZm4gPSAwLAo+PiAgICAgICAgICAubnVtX3BsYWNlbWVudCA9IDEsCj4+ICAgICAg ICAgIC5wbGFjZW1lbnQgPSAmdnJhbV9uZV9wbGFjZW1lbnRfZmxhZ3MsCj4+ICAgICAgICAgIC5u dW1fYnVzeV9wbGFjZW1lbnQgPSAxLAo+PiBAQCAtMTE1LDggKzE0Niw2IEBAIHN0cnVjdCB0dG1f cGxhY2VtZW50IHZtd192cmFtX25lX3BsYWNlbWVudCA9IHsKPj4gICB9Owo+Pgo+PiAgIHN0cnVj dCB0dG1fcGxhY2VtZW50IHZtd19zeXNfcGxhY2VtZW50ID0gewo+PiAtICAgICAgIC5mcGZuID0g MCwKPj4gLSAgICAgICAubHBmbiA9IDAsCj4+ICAgICAgICAgIC5udW1fcGxhY2VtZW50ID0gMSwK Pj4gICAgICAgICAgLnBsYWNlbWVudCA9ICZzeXNfcGxhY2VtZW50X2ZsYWdzLAo+PiAgICAgICAg ICAubnVtX2J1c3lfcGxhY2VtZW50ID0gMSwKPj4gQEAgLTEyNCwyNCArMTUzLDMzIEBAIHN0cnVj dCB0dG1fcGxhY2VtZW50IHZtd19zeXNfcGxhY2VtZW50ID0gewo+PiAgIH07Cj4+Cj4+ICAgc3Ry dWN0IHR0bV9wbGFjZW1lbnQgdm13X3N5c19uZV9wbGFjZW1lbnQgPSB7Cj4+IC0gICAgICAgLmZw Zm4gPSAwLAo+PiAtICAgICAgIC5scGZuID0gMCwKPj4gICAgICAgICAgLm51bV9wbGFjZW1lbnQg PSAxLAo+PiAgICAgICAgICAucGxhY2VtZW50ID0gJnN5c19uZV9wbGFjZW1lbnRfZmxhZ3MsCj4+ ICAgICAgICAgIC5udW1fYnVzeV9wbGFjZW1lbnQgPSAxLAo+PiAgICAgICAgICAuYnVzeV9wbGFj ZW1lbnQgPSAmc3lzX25lX3BsYWNlbWVudF9mbGFncwo+PiAgIH07Cj4+Cj4+IC1zdGF0aWMgdWlu dDMyX3QgZXZpY3RhYmxlX3BsYWNlbWVudF9mbGFnc1tdID0gewo+PiAtICAgICAgIFRUTV9QTF9G TEFHX1NZU1RFTSB8IFRUTV9QTF9GTEFHX0NBQ0hFRCwKPj4gLSAgICAgICBUVE1fUExfRkxBR19W UkFNIHwgVFRNX1BMX0ZMQUdfQ0FDSEVELAo+PiAtICAgICAgIFZNV19QTF9GTEFHX0dNUiB8IFRU TV9QTF9GTEFHX0NBQ0hFRCwKPj4gLSAgICAgICBWTVdfUExfRkxBR19NT0IgfCBUVE1fUExfRkxB R19DQUNIRUQKPj4gK3N0YXRpYyBzdHJ1Y3QgdHRtX3BsYWNlIGV2aWN0YWJsZV9wbGFjZW1lbnRf ZmxhZ3NbXSA9IHsKPj4gKyAgICAgICB7Cj4+ICsgICAgICAgICAgICAgICAuZnBmbiA9IDAsCj4+ ICsgICAgICAgICAgICAgICAubHBmbiA9IDAsCj4+ICsgICAgICAgICAgICAgICAuZmxhZ3MgPSBU VE1fUExfRkxBR19TWVNURU0gfCBUVE1fUExfRkxBR19DQUNIRUQKPj4gKyAgICAgICB9LCB7Cj4+ ICsgICAgICAgICAgICAgICAuZnBmbiA9IDAsCj4+ICsgICAgICAgICAgICAgICAubHBmbiA9IDAs Cj4+ICsgICAgICAgICAgICAgICAuZmxhZ3MgPSBUVE1fUExfRkxBR19WUkFNIHwgVFRNX1BMX0ZM QUdfQ0FDSEVECj4+ICsgICAgICAgfSwgewo+PiArICAgICAgICAgICAgICAgLmZwZm4gPSAwLAo+ PiArICAgICAgICAgICAgICAgLmxwZm4gPSAwLAo+PiArICAgICAgICAgICAgICAgLmZsYWdzID0g Vk1XX1BMX0ZMQUdfR01SIHwgVFRNX1BMX0ZMQUdfQ0FDSEVECj4+ICsgICAgICAgfSwgewo+PiAr ICAgICAgICAgICAgICAgLmZwZm4gPSAwLAo+PiArICAgICAgICAgICAgICAgLmxwZm4gPSAwLAo+ PiArICAgICAgICAgICAgICAgLmZsYWdzID0gVk1XX1BMX0ZMQUdfTU9CIHwgVFRNX1BMX0ZMQUdf Q0FDSEVECj4+ICsgICAgICAgfQo+PiAgIH07Cj4+Cj4+ICAgc3RydWN0IHR0bV9wbGFjZW1lbnQg dm13X2V2aWN0YWJsZV9wbGFjZW1lbnQgPSB7Cj4+IC0gICAgICAgLmZwZm4gPSAwLAo+PiAtICAg ICAgIC5scGZuID0gMCwKPj4gICAgICAgICAgLm51bV9wbGFjZW1lbnQgPSA0LAo+PiAgICAgICAg ICAucGxhY2VtZW50ID0gZXZpY3RhYmxlX3BsYWNlbWVudF9mbGFncywKPj4gICAgICAgICAgLm51 bV9idXN5X3BsYWNlbWVudCA9IDEsCj4+IEBAIC0xNDksOCArMTg3LDYgQEAgc3RydWN0IHR0bV9w bGFjZW1lbnQgdm13X2V2aWN0YWJsZV9wbGFjZW1lbnQgPSB7Cj4+ICAgfTsKPj4KPj4gICBzdHJ1 Y3QgdHRtX3BsYWNlbWVudCB2bXdfc3JmX3BsYWNlbWVudCA9IHsKPj4gLSAgICAgICAuZnBmbiA9 IDAsCj4+IC0gICAgICAgLmxwZm4gPSAwLAo+PiAgICAgICAgICAubnVtX3BsYWNlbWVudCA9IDEs Cj4+ICAgICAgICAgIC5udW1fYnVzeV9wbGFjZW1lbnQgPSAyLAo+PiAgICAgICAgICAucGxhY2Vt ZW50ID0gJmdtcl9wbGFjZW1lbnRfZmxhZ3MsCj4+IEBAIC0xNTgsOCArMTk0LDYgQEAgc3RydWN0 IHR0bV9wbGFjZW1lbnQgdm13X3NyZl9wbGFjZW1lbnQgPSB7Cj4+ICAgfTsKPj4KPj4gICBzdHJ1 Y3QgdHRtX3BsYWNlbWVudCB2bXdfbW9iX3BsYWNlbWVudCA9IHsKPj4gLSAgICAgICAuZnBmbiA9 IDAsCj4+IC0gICAgICAgLmxwZm4gPSAwLAo+PiAgICAgICAgICAubnVtX3BsYWNlbWVudCA9IDEs Cj4+ICAgICAgICAgIC5udW1fYnVzeV9wbGFjZW1lbnQgPSAxLAo+PiAgICAgICAgICAucGxhY2Vt ZW50ID0gJm1vYl9wbGFjZW1lbnRfZmxhZ3MsCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9kbWFidWYuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2RtYWJ1Zi5jCj4+IGluZGV4IGVkMWQ1MTAuLjkxNGIzNzUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2RtYWJ1Zi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2RtYWJ1Zi5jCj4+IEBAIC0xOTgsMTMgKzE5OCwxOSBAQCBpbnQgdm13 X2RtYWJ1Zl90b19zdGFydF9vZl92cmFtKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ ICAgewo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gJmJ1Zi0+YmFz ZTsKPj4gICAgICAgICAgc3RydWN0IHR0bV9wbGFjZW1lbnQgcGxhY2VtZW50Owo+PiArICAgICAg IHN0cnVjdCB0dG1fcGxhY2UgcGxhY2U7Cj4+ICAgICAgICAgIGludCByZXQgPSAwOwo+Pgo+PiAg ICAgICAgICBpZiAocGluKQo+PiAtICAgICAgICAgICAgICAgcGxhY2VtZW50ID0gdm13X3ZyYW1f bmVfcGxhY2VtZW50Owo+PiArICAgICAgICAgICAgICAgcGxhY2UgPSB2bXdfdnJhbV9uZV9wbGFj ZW1lbnQucGxhY2VtZW50WzBdOwo+PiAgICAgICAgICBlbHNlCj4+IC0gICAgICAgICAgICAgICBw bGFjZW1lbnQgPSB2bXdfdnJhbV9wbGFjZW1lbnQ7Cj4+IC0gICAgICAgcGxhY2VtZW50LmxwZm4g PSBiby0+bnVtX3BhZ2VzOwo+PiArICAgICAgICAgICAgICAgcGxhY2UgPSB2bXdfdnJhbV9wbGFj ZW1lbnQucGxhY2VtZW50WzBdOwo+PiArICAgICAgIHBsYWNlLmxwZm4gPSBiby0+bnVtX3BhZ2Vz Owo+PiArCj4+ICsgICAgICAgcGxhY2VtZW50Lm51bV9wbGFjZW1lbnQgPSAxOwo+PiArICAgICAg IHBsYWNlbWVudC5wbGFjZW1lbnQgPSAmcGxhY2U7Cj4+ICsgICAgICAgcGxhY2VtZW50Lm51bV9i dXN5X3BsYWNlbWVudCA9IDE7Cj4+ICsgICAgICAgcGxhY2VtZW50LmJ1c3lfcGxhY2VtZW50ID0g JnBsYWNlOwo+Pgo+PiAgICAgICAgICByZXQgPSB0dG1fd3JpdGVfbG9jaygmZGV2X3ByaXYtPnJl c2VydmF0aW9uX3NlbSwgaW50ZXJydXB0aWJsZSk7Cj4+ICAgICAgICAgIGlmICh1bmxpa2VseShy ZXQgIT0gMCkpCj4+IEBAIC0yOTMsMjEgKzI5OSwyMyBAQCB2b2lkIHZtd19ib19nZXRfZ3Vlc3Rf cHRyKGNvbnN0IHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ICAgICovCj4+ICAgdm9p ZCB2bXdfYm9fcGluKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wgcGluKQo+PiAg IHsKPj4gLSAgICAgICB1aW50MzJfdCBwbF9mbGFnczsKPj4gKyAgICAgICBzdHJ1Y3QgdHRtX3Bs YWNlIHBsOwo+PiAgICAgICAgICBzdHJ1Y3QgdHRtX3BsYWNlbWVudCBwbGFjZW1lbnQ7Cj4+ICAg ICAgICAgIHVpbnQzMl90IG9sZF9tZW1fdHlwZSA9IGJvLT5tZW0ubWVtX3R5cGU7Cj4+ICAgICAg ICAgIGludCByZXQ7Cj4+Cj4+ICAgICAgICAgIGxvY2tkZXBfYXNzZXJ0X2hlbGQoJmJvLT5yZXN2 LT5sb2NrLmJhc2UpOwo+Pgo+PiAtICAgICAgIHBsX2ZsYWdzID0gVFRNX1BMX0ZMQUdfVlJBTSB8 IFZNV19QTF9GTEFHX0dNUiB8IFZNV19QTF9GTEFHX01PQgo+PiArICAgICAgIHBsLmZwZm4gPSAw Owo+PiArICAgICAgIHBsLmxwZm4gPSAwOwo+PiArICAgICAgIHBsLmZsYWdzID0gVFRNX1BMX0ZM QUdfVlJBTSB8IFZNV19QTF9GTEFHX0dNUiB8IFZNV19QTF9GTEFHX01PQgo+PiAgICAgICAgICAg ICAgICAgIHwgVFRNX1BMX0ZMQUdfU1lTVEVNIHwgVFRNX1BMX0ZMQUdfQ0FDSEVEOwo+PiAgICAg ICAgICBpZiAocGluKQo+PiAtICAgICAgICAgICAgICAgcGxfZmxhZ3MgfD0gVFRNX1BMX0ZMQUdf Tk9fRVZJQ1Q7Cj4+ICsgICAgICAgICAgICAgICBwbC5mbGFncyB8PSBUVE1fUExfRkxBR19OT19F VklDVDsKPj4KPj4gICAgICAgICAgbWVtc2V0KCZwbGFjZW1lbnQsIDAsIHNpemVvZihwbGFjZW1l bnQpKTsKPj4gICAgICAgICAgcGxhY2VtZW50Lm51bV9wbGFjZW1lbnQgPSAxOwo+PiAtICAgICAg IHBsYWNlbWVudC5wbGFjZW1lbnQgPSAmcGxfZmxhZ3M7Cj4+ICsgICAgICAgcGxhY2VtZW50LnBs YWNlbWVudCA9ICZwbDsKPj4KPj4gICAgICAgICAgcmV0ID0gdHRtX2JvX3ZhbGlkYXRlKGJvLCAm cGxhY2VtZW50LCBmYWxzZSwgdHJ1ZSk7Cj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmIu Ywo+PiBpbmRleCBiMDMxYjQ4Li4wYTQ3NGYzIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9mYi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2ZiLmMKPj4gQEAgLTM3NCwxMCArMzc0LDE2IEBAIHN0YXRpYyBpbnQgdm13X2ZiX2NyZWF0 ZV9ibyhzdHJ1Y3Qgdm13X3ByaXZhdGUgKnZtd19wcml2LAo+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpemVfdCBzaXplLCBzdHJ1Y3Qgdm13X2RtYV9idWZmZXIgKipvdXQpCj4+ICAg ewo+PiAgICAgICAgICBzdHJ1Y3Qgdm13X2RtYV9idWZmZXIgKnZtd19ibzsKPj4gLSAgICAgICBz dHJ1Y3QgdHRtX3BsYWNlbWVudCBuZV9wbGFjZW1lbnQgPSB2bXdfdnJhbV9uZV9wbGFjZW1lbnQ7 Cj4+ICsgICAgICAgc3RydWN0IHR0bV9wbGFjZSBuZV9wbGFjZSA9IHZtd192cmFtX25lX3BsYWNl bWVudC5wbGFjZW1lbnRbMF07Cj4+ICsgICAgICAgc3RydWN0IHR0bV9wbGFjZW1lbnQgbmVfcGxh Y2VtZW50Owo+PiAgICAgICAgICBpbnQgcmV0Owo+Pgo+PiAtICAgICAgIG5lX3BsYWNlbWVudC5s cGZuID0gKHNpemUgKyBQQUdFX1NJWkUgLSAxKSA+PiBQQUdFX1NISUZUOwo+PiArICAgICAgIG5l X3BsYWNlbWVudC5udW1fcGxhY2VtZW50ID0gMTsKPj4gKyAgICAgICBuZV9wbGFjZW1lbnQucGxh Y2VtZW50ID0gJm5lX3BsYWNlOwo+PiArICAgICAgIG5lX3BsYWNlbWVudC5udW1fYnVzeV9wbGFj ZW1lbnQgPSAxOwo+PiArICAgICAgIG5lX3BsYWNlbWVudC5idXN5X3BsYWNlbWVudCA9ICZuZV9w bGFjZTsKPj4gKwo+PiArICAgICAgIG5lX3BsYWNlLmxwZm4gPSAoc2l6ZSArIFBBR0VfU0laRSAt IDEpID4+IFBBR0VfU0hJRlQ7Cj4+Cj4+ICAgICAgICAgICh2b2lkKSB0dG1fd3JpdGVfbG9jaygm dm13X3ByaXYtPnJlc2VydmF0aW9uX3NlbSwgZmFsc2UpOwo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ21yaWRfbWFuYWdlci5jIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfZ21yaWRfbWFuYWdlci5jCj4+IGluZGV4IDI2ZjhiZGQuLjE3MGI2 MWIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2dtcmlkX21h bmFnZXIuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9nbXJpZF9tYW5h Z2VyLmMKPj4gQEAgLTQ2LDggKzQ2LDcgQEAgc3RydWN0IHZtd2dmeF9nbXJpZF9tYW4gewo+Pgo+ PiAgIHN0YXRpYyBpbnQgdm13X2dtcmlkX21hbl9nZXRfbm9kZShzdHJ1Y3QgdHRtX21lbV90eXBl X21hbmFnZXIgKm1hbiwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBsYWNlbWVudCwKPj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGZsYWdzLAo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UsCj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCj4+ICAg ewo+PiAgICAgICAgICBzdHJ1Y3Qgdm13Z2Z4X2dtcmlkX21hbiAqZ21hbiA9Cj4+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9i b19hcGkuaAo+PiBpbmRleCA3NTI2YzViLi5lM2QzOWM4IDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRl L2RybS90dG0vdHRtX2JvX2FwaS5oCj4+ICsrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBp LmgKPj4gQEAgLTQ1LDEyICs0NSwyNCBAQCBzdHJ1Y3QgdHRtX2JvX2RldmljZTsKPj4KPj4gICBz dHJ1Y3QgZHJtX21tX25vZGU7Cj4+Cj4+ICsvKioKPj4gKyAqIHN0cnVjdCB0dG1fcGxhY2UKPj4g KyAqCj4+ICsgKiBAZnBmbjogICAgICBmaXJzdCB2YWxpZCBwYWdlIGZyYW1lIG51bWJlciB0byBw dXQgdGhlIG9iamVjdAo+PiArICogQGxwZm46ICAgICAgbGFzdCB2YWxpZCBwYWdlIGZyYW1lIG51 bWJlciB0byBwdXQgdGhlIG9iamVjdAo+PiArICogQGZsYWdzOiAgICAgbWVtb3J5IGRvbWFpbiBh bmQgY2FjaGluZyBmbGFncyBmb3IgdGhlIG9iamVjdAo+PiArICoKPj4gKyAqIFN0cnVjdHVyZSBp bmRpY2F0aW5nIGEgcG9zc2libGUgcGxhY2UgdG8gcHV0IGFuIG9iamVjdC4KPj4gKyAqLwo+PiAr c3RydWN0IHR0bV9wbGFjZSB7Cj4+ICsgICAgICAgdW5zaWduZWQgICAgICAgIGZwZm47Cj4+ICsg ICAgICAgdW5zaWduZWQgICAgICAgIGxwZm47Cj4+ICsgICAgICAgdWludDMyX3QgICAgICAgIGZs YWdzOwo+PiArfTsKPj4KPj4gICAvKioKPj4gICAgKiBzdHJ1Y3QgdHRtX3BsYWNlbWVudAo+PiAg ICAqCj4+IC0gKiBAZnBmbjogICAgICAgICAgICAgIGZpcnN0IHZhbGlkIHBhZ2UgZnJhbWUgbnVt YmVyIHRvIHB1dCB0aGUgb2JqZWN0Cj4+IC0gKiBAbHBmbjogICAgICAgICAgICAgIGxhc3QgdmFs aWQgcGFnZSBmcmFtZSBudW1iZXIgdG8gcHV0IHRoZSBvYmplY3QKPj4gICAgKiBAbnVtX3BsYWNl bWVudDogICAgIG51bWJlciBvZiBwcmVmZXJyZWQgcGxhY2VtZW50cwo+PiAgICAqIEBwbGFjZW1l bnQ6ICAgICAgICAgcHJlZmVycmVkIHBsYWNlbWVudHMKPj4gICAgKiBAbnVtX2J1c3lfcGxhY2Vt ZW50OiAgICAgICAgbnVtYmVyIG9mIHByZWZlcnJlZCBwbGFjZW1lbnRzIHdoZW4gbmVlZCB0byBl dmljdCBidWZmZXIKPj4gQEAgLTU5LDEyICs3MSwxMCBAQCBzdHJ1Y3QgZHJtX21tX25vZGU7Cj4+ ICAgICogU3RydWN0dXJlIGluZGljYXRpbmcgdGhlIHBsYWNlbWVudCB5b3UgcmVxdWVzdCBmb3Ig YW4gb2JqZWN0Lgo+PiAgICAqLwo+PiAgIHN0cnVjdCB0dG1fcGxhY2VtZW50IHsKPj4gLSAgICAg ICB1bnNpZ25lZCAgICAgICAgZnBmbjsKPj4gLSAgICAgICB1bnNpZ25lZCAgICAgICAgbHBmbjsK Pj4gLSAgICAgICB1bnNpZ25lZCAgICAgICAgbnVtX3BsYWNlbWVudDsKPj4gLSAgICAgICBjb25z dCB1aW50MzJfdCAgKnBsYWNlbWVudDsKPj4gLSAgICAgICB1bnNpZ25lZCAgICAgICAgbnVtX2J1 c3lfcGxhY2VtZW50Owo+PiAtICAgICAgIGNvbnN0IHVpbnQzMl90ICAqYnVzeV9wbGFjZW1lbnQ7 Cj4+ICsgICAgICAgdW5zaWduZWQgICAgICAgICAgICAgICAgbnVtX3BsYWNlbWVudDsKPj4gKyAg ICAgICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICAqcGxhY2VtZW50Owo+PiArICAgICAgIHVuc2ln bmVkICAgICAgICAgICAgICAgIG51bV9idXN5X3BsYWNlbWVudDsKPj4gKyAgICAgICBjb25zdCBz dHJ1Y3QgdHRtX3BsYWNlICAqYnVzeV9wbGFjZW1lbnQ7Cj4+ICAgfTsKPj4KPj4gICAvKioKPj4g QEAgLTUxOSwyMCArNTI5LDYgQEAgZXh0ZXJuIGludCB0dG1fYm9fY3JlYXRlKHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKipwX2JvKTsKPj4KPj4gICAvKioKPj4gLSAqIHR0bV9ib19j aGVja19wbGFjZW1lbnQKPj4gLSAqCj4+IC0gKiBAYm86ICAgICAgICAgICAgICAgIHRoZSBidWZm ZXIgb2JqZWN0Lgo+PiAtICogQHBsYWNlbWVudDogcGxhY2VtZW50cwo+PiAtICoKPj4gLSAqIFBl cmZvcm1zIG1pbmltYWwgdmFsaWRpdHkgY2hlY2tpbmcgb24gYW4gaW50ZW5kZWQgY2hhbmdlIG9m Cj4+IC0gKiBwbGFjZW1lbnQgZmxhZ3MuCj4+IC0gKiBSZXR1cm5zCj4+IC0gKiAtRUlOVkFMOiBJ bnRlbmRlZCBjaGFuZ2UgaXMgaW52YWxpZCBvciBub3QgYWxsb3dlZC4KPj4gLSAqLwo+PiAtZXh0 ZXJuIGludCB0dG1fYm9fY2hlY2tfcGxhY2VtZW50KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRt X3BsYWNlbWVudCAqcGxhY2VtZW50KTsKPj4gLQo+PiAtLyoqCj4+ICAgICogdHRtX2JvX2luaXRf bW0KPj4gICAgKgo+PiAgICAqIEBiZGV2OiBQb2ludGVyIHRvIGEgdHRtX2JvX2RldmljZSBzdHJ1 Y3QuCj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oIGIvaW5j bHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAo+PiBpbmRleCAyMDJmMGE3Li40MjZiZjg0IDEw MDY0NAo+PiAtLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCj4+ICsrKyBiL2lu Y2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKPj4gQEAgLTIwNiw4ICsyMDYsNyBAQCBzdHJ1 Y3QgdHRtX21lbV90eXBlX21hbmFnZXJfZnVuYyB7Cj4+ICAgICAgICAgICAqLwo+PiAgICAgICAg ICBpbnQgICgqZ2V0X25vZGUpKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+ IC0gICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50 LAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZmxhZ3MsCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSk7Cj4+Cj4+ICAgICAg ICAgIC8qKgo+PiAtLQo+PiAxLjkuMQo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwo+PiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IGRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK