From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haneen Mohammed Subject: Re: [PATCH 2/2] drm/vkms: Compute CRC with Cursor Plane Date: Tue, 14 Aug 2018 22:19:10 +0300 Message-ID: <20180814191910.GA19698@haneenDRM> References: <44b546fedbcf65fd20f7a65d5443fbb50493cf32.1533526327.git.hamohammed.sa@gmail.com> <20180807163336.GA3008@phenom.ffwll.local> <20180808035317.GA1708@haneenDRM> <20180808082327.GH3008@phenom.ffwll.local> <20180813200411.GA17331@haneenDRM> <20180814082129.GA21634@phenom.ffwll.local> <20180814190347.GA16547@haneenDRM> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qt0-x243.google.com (mail-qt0-x243.google.com [IPv6:2607:f8b0:400d:c0d::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 109B189AFF for ; Tue, 14 Aug 2018 20:03:29 +0000 (UTC) Received: by mail-qt0-x243.google.com with SMTP id e19-v6so22500363qtp.8 for ; Tue, 14 Aug 2018 13:03:28 -0700 (PDT) Content-Disposition: inline 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: Daniel Vetter Cc: Sean Paul , Rodrigo Siqueira , dri-devel List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBBdWcgMTQsIDIwMTggYXQgMDk6NTI6MzNQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUdWUsIEF1ZyAxNCwgMjAxOCBhdCA5OjAzIFBNLCBIYW5lZW4gTW9oYW1tZWQK PiA8aGFtb2hhbW1lZC5zYUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gT24gVHVlLCBBdWcgMTQsIDIw MTggYXQgMTA6MjE6MjlBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+PiBPbiBNb24s IEF1ZyAxMywgMjAxOCBhdCAxMTowNDoxMVBNICswMzAwLCBIYW5lZW4gTW9oYW1tZWQgd3JvdGU6 Cj4gPj4gPiBPbiBXZWQsIEF1ZyAwOCwgMjAxOCBhdCAxMDoyMzoyN0FNICswMjAwLCBEYW5pZWwg VmV0dGVyIHdyb3RlOgo+ID4+ID4gPiBPbiBXZWQsIEF1ZyAwOCwgMjAxOCBhdCAwNjo1MzoxN0FN ICswMzAwLCBIYW5lZW4gTW9oYW1tZWQgd3JvdGU6Cj4gPj4gPiA+ID4gT24gVHVlLCBBdWcgMDcs IDIwMTggYXQgMDY6MzM6MzZQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+PiA+ID4g PiA+IE9uIE1vbiwgQXVnIDA2LCAyMDE4IGF0IDA2OjU4OjI5QU0gKzAzMDAsIEhhbmVlbiBNb2hh bW1lZCB3cm90ZToKPiA+PiA+ID4gPiA+ID4gVGhpcyBwYXRjaCBjb21wdXRlIENSQyBmb3Igb3V0 cHV0IGZyYW1lIHdpdGggY3Vyc29yIGFuZCBwcmltYXJ5IHBsYW5lLgo+ID4+ID4gPiA+ID4gPiBC bGVuZCBjdXJzb3Igd2l0aCBwcmltYXJ5IHBsYW5lIGFuZCBjb21wdXRlIENSQyBvbiB0aGUgcmVz dWx0ZWQgZnJhbWUuCj4gPj4gPiA+ID4gPiA+Cj4gPj4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6 IEhhbmVlbiBNb2hhbW1lZCA8aGFtb2hhbW1lZC5zYUBnbWFpbC5jb20+Cj4gPj4gPiA+ID4gPgo+ ID4+ID4gPiA+ID4gTmljZSEKPiA+PiA+ID4gPiA+Cj4gPj4gPiA+ID4gPiBJIGFzc3VtZSB3aXRo IHRoaXMgeW91J3JlIHBhc3NpbmcgYWxsIHRoZSBjcmMgYmFzZWQgY3Vyc29yIHRlc3RzIGluIGln dD8KPiA+PiA+ID4gPiA+IElmIHNvLCBwbGVhc2UgbWVudGlvbiB0aGlzIGluIHRoZSBjb21taXQg bWVzc2FnZSwgc28gdGhhdCB0aGVyZSdzIGEgcmVjb3JkCj4gPj4gPiA+ID4gPiBvZiB0aGUgdGVz dGluZyBkb25lIG9uIHRoaXMuCj4gPj4gPiA+ID4gPgo+ID4+ID4gPiA+Cj4gPj4gPiA+ID4gU3Vy ZSwgSSdsbCB1cGRhdGUgdGhlIGNvbW1pdCBtZXNzYWdlLgo+ID4+ID4gPiA+IElzIHRoZXJlIGFu eSBvdGhlciBjaGFuZ2UgSSBzaG91bGQgYWRkL2ZpeCB0byB0aGlzIHBhdGNoc2V0Pwo+ID4+ID4g PiA+Cj4gPj4gPiA+ID4gPiBPbmUgZmFpcmx5IGh1Z2UgZ2FwIHdlIGlpcmMgaGF2ZSBpbiBvdXIg Y3Vyc29yIHRlc3RpbmcgaXMgdGhhdCB0aGVyZSdzIG5vdAo+ID4+ID4gPiA+ID4gbXVjaCAoaWYg YW55PykgYWxwaGEgYmxlbmRpbmcgY292ZXJhZ2UuIFdlIGtpbmRhIG5lZWQgdGhhdCB0byBtYWtl IHN1cmUKPiA+PiA+ID4gPiA+IHRoaXMgYWxsIHdvcmtzIGNvcnJlY3RseS4gVGhlIHVzdWFsIHRy aWNrIGlzIHRvIG9ubHkgY2hlY2sgdGhlIGV4dHJlbWUKPiA+PiA+ID4gPiA+IGFscGhhIHZhbHVl cywgaS5lLiBmdWxseSBvcGFxdWUgYW5kIGZ1bGx5IHRyYW5zcGFyZW50LCBzaW5jZSBpbnRlcm1l ZGlhdGUKPiA+PiA+ID4gPiA+IHZhbHVlcyBhcmUgYWZmZWN0ZWQgYnkgaHctc3BlY2lmaWMgcm91 bmRpbmcgbW9kZXMuCj4gPj4gPiA+ID4gPiA+IC0tLQo+ID4+ID4gPiA+ID4gPiAgZHJpdmVycy9n cHUvZHJtL3ZrbXMvdmttc19jcmMuYyAgIHwgMTQ5ICsrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLQo+ID4+ID4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaCAgIHwg ICA1ICstCj4gPj4gPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMg fCAgMTAgKy0KPiA+PiA+ID4gPiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMTM3IGluc2VydGlvbnMo KyksIDI3IGRlbGV0aW9ucygtKQo+ID4+ID4gPiA+ID4gPgo+ID4+ID4gPiA+ID4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcmMuYyBiL2RyaXZlcnMvZ3B1L2RybS92 a21zL3ZrbXNfY3JjLmMKPiA+PiA+ID4gPiA+ID4gaW5kZXggMzdkNzE3ZjM4ZTNjLi40ODUzYTcz OWFlNWEgMTAwNjQ0Cj4gPj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3Zr bXNfY3JjLmMKPiA+PiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19j cmMuYwo+ID4+ID4gPiA+ID4gPiBAQCAtMSwzNiArMSwxMzcgQEAKPiA+PiA+ID4gPiA+ID4gIC8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4gPj4gPiA+ID4gPiA+ICAjaW5jbHVk ZSAidmttc19kcnYuaCIKPiA+PiA+ID4gPiA+ID4gICNpbmNsdWRlIDxsaW51eC9jcmMzMi5oPgo+ ID4+ID4gPiA+ID4gPiArI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+Cj4gPj4gPiA+ID4gPiA+ ICsjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Cj4gPj4gPiA+ID4gPiA+ICAjaW5j bHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+Cj4gPj4gPiA+ID4gPiA+Cj4g Pj4gPiA+ID4gPiA+IC1zdGF0aWMgdWludDMyX3QgX3ZrbXNfZ2V0X2NyYyhzdHJ1Y3Qgdmttc19j cmNfZGF0YSAqY3JjX2RhdGEpCj4gPj4gPiA+ID4gPiA+ICsvKioKPiA+PiA+ID4gPiA+ID4gKyAq IGNvbXB1dGVfY3JjIC0gQ29tcHV0ZSBDUkMgdmFsdWUgb24gb3V0cHV0IGZyYW1lCj4gPj4gPiA+ ID4gPiA+ICsgKgo+ID4+ID4gPiA+ID4gPiArICogQHZhZGRyX291dDogYWRkcmVzcyB0byBmaW5h bCBmcmFtZWJ1ZmZlcgo+ID4+ID4gPiA+ID4gPiArICogQGNyY19vdXQ6IGZyYW1lYnVmZmVyJ3Mg bWV0YWRhdGEKPiA+PiA+ID4gPiA+ID4gKyAqCj4gPj4gPiA+ID4gPiA+ICsgKiByZXR1cm5zIENS QyB2YWx1ZSBjb21wdXRlZCB1c2luZyBjcmMzMiBvbiB0aGUgdmlzaWJsZSBwb3J0aW9uIG9mCj4g Pj4gPiA+ID4gPiA+ICsgKiB0aGUgZmluYWwgZnJhbWVidWZmZXIgYXQgdmFkZHJfb3V0Cj4gPj4g PiA+ID4gPiA+ICsgKi8KPiA+PiA+ID4gPiA+ID4gK3N0YXRpYyB1aW50MzJfdCBjb21wdXRlX2Ny Yyh2b2lkICp2YWRkcl9vdXQsIHN0cnVjdCB2a21zX2NyY19kYXRhICpjcmNfb3V0KQo+ID4+ID4g PiA+ID4gPiAgewo+ID4+ID4gPiA+ID4gPiAtICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIg PSAmY3JjX2RhdGEtPmZiOwo+ID4+ID4gPiA+ID4gPiArICAgaW50IGksIHNyY19vZmZzZXQ7Cj4g Pj4gPiA+ID4gPiA+ICsgICBpbnQgeF9zcmMgPSBjcmNfb3V0LT5zcmMueDEgPj4gMTY7Cj4gPj4g PiA+ID4gPiA+ICsgICBpbnQgeV9zcmMgPSBjcmNfb3V0LT5zcmMueTEgPj4gMTY7Cj4gPj4gPiA+ ID4gPiA+ICsgICBpbnQgaF9zcmMgPSBkcm1fcmVjdF9oZWlnaHQoJmNyY19vdXQtPnNyYykgPj4g MTY7Cj4gPj4gPiA+ID4gPiA+ICsgICBpbnQgd19zcmMgPSBkcm1fcmVjdF93aWR0aCgmY3JjX291 dC0+c3JjKSA+PiAxNjsKPiA+PiA+ID4gPiA+ID4gKyAgIGludCBzaXplX2J5dGUgPSB3X3NyYyAq IGNyY19vdXQtPmNwcDsKPiA+PiA+ID4gPiA+ID4gKyAgIHUzMiBjcmMgPSAwOwo+ID4+ID4gPiA+ ID4gPiArCj4gPj4gPiA+ID4gPiA+ICsgICBmb3IgKGkgPSB5X3NyYzsgaSA8IHlfc3JjICsgaF9z cmM7IGkrKykgewo+ID4+ID4gPiA+ID4gPiArICAgICAgICAgICBzcmNfb2Zmc2V0ID0gY3JjX291 dC0+b2Zmc2V0Cj4gPj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICArIChpICog Y3JjX291dC0+cGl0Y2gpCj4gPj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAr ICh4X3NyYyAqIGNyY19vdXQtPmNwcCk7Cj4gPj4gPiA+ID4gPiA+ICsgICAgICAgICAgIGNyYyA9 IGNyYzMyX2xlKGNyYywgdmFkZHJfb3V0ICsgc3JjX29mZnNldCwgc2l6ZV9ieXRlKTsKPiA+PiA+ ID4gPiA+ID4gKyAgIH0KPiA+PiA+ID4gPiA+ID4gKwo+ID4+ID4gPiA+ID4gPiArICAgcmV0dXJu IGNyYzsKPiA+PiA+ID4gPiA+ID4gK30KPiA+PiA+ID4gPiA+ID4gKwo+ID4+ID4KPiA+PiA+IEhl eSBEYW5pZWwsCj4gPj4gPgo+ID4+ID4gV2hlbiBJIGNoYW5nZSB0aGUgYWJvdmUgZnVuY3Rpb24g ImNvbXB1dGVfY3JjIiB0byBjb21wdXRlIHRoZSBDUkMgZm9yCj4gPj4gPiBlYWNoIHBpeGVsIHNv IHdlIGNhbiBjbGVhciB0aGUgQWxwaGEgdmFsdWUgYmVmb3JlIGNvbXB1dGluZyB0aGUgQ1JDIGFz IGJlbGxvdywKPiA+PiA+IHRoZSB0ZXN0ICJub25ibG9ja2luZy1jcmMtcGlwZS1BLWZyYW1lLXNl cXVlbmNlIiBzb21ldGltZXMgZmFpbGVzIGFuZAo+ID4+ID4gc29tZXRpbWVzIHBhc3Nlcy4gU2hv dWxkIEkgc3RpbGwgY29udGludWUgd2l0aCB0aGUgY2hhbmdlLCBvciBsZWF2ZSBpdAo+ID4+ID4g YXMgaXQgaXM/Cj4gPj4KPiA+PiBIbSwgaG93IGRvZXMgaXQgZmFpbD8gQ291bGQgYmUgdGhhdCB0 aGUgY29kZSBiZWNvbWVzIHRvbyBzbG93LCBhbmQgdGhlbgo+ID4+IHRoZSBmcmFtZSBjb3VudGVy cyBkb24ndCBpbmNyZW1lbnQgbmljZWx5IGFueW1vcmUuIE9yIHRoZXJlJ3MgYSByYWNlCj4gPj4g c29tZXdoZXJlIGluIHRoZSBDUkMgY29kZSB0aGF0IGdldHMgZXhwb3NlZC4gQnV0IHRoYXQncyBq dXN0IG1lIGd1ZXNzaW5nLgo+ID4+IC1EYW5pZWwKPiA+Pgo+ID4KPiA+IE9oIHNvcnJ5IEkgc2hv dWxkJ3ZlIGVsYWJvcmF0ZWQgbW9yZSBvbiBob3cgaXQgZmFpbHMuIFllYWggSSB0aGluayBpdAo+ ID4gYmVjb21lcyB0b28gc2xvdyBhbmQgdGhhdCBjYW4gY2F1c2UgbWlzbWF0Y2ggdG8gZnJhbWUg Y291bnRlcnM/Cj4gPgo+ID4gLS0tLS0KPiA+IChrbXNfcGlwZV9jcmNfYmFzaWM6MTkwMikgQ1JJ VElDQUw6IEZhaWxlZCBhc3NlcnRpb246IGNyY3Nbal0uZnJhbWUgKyAxID09IGNyY3NbaiArIDFd LmZyYW1lCj4gPiAoa21zX3BpcGVfY3JjX2Jhc2ljOjE5MDIpIENSSVRJQ0FMOiBMYXN0IGVycm5v OiA5LCBCYWQgZmlsZSBkZXNjcmlwdG9yCj4gPiAoa21zX3BpcGVfY3JjX2Jhc2ljOjE5MDIpIENS SVRJQ0FMOiBlcnJvcjogMTA5MDkyOCAhPSAxMDkwOTI5Cj4gPiAtLS0tLQo+IAo+IFllYWggbWlz c2VzIHRoZSBkZWFkbGluZSBpdCBzZWVtcy4KPiAKPiA+IE1heWJlIGl0J3Mgbm90IHRoYXQgYmFk L3Nsb3cgYmVjYXVzZSBJJ3ZlIG5vdGljZWQgdGhhdCB0aGlzIGhhcHBlbgo+ID4gb2NjYXNpb25h bGx5IHdoZW4gSSBlbmFibGUgRnRyYWNlLgo+IAo+IFllYWggZnRyYWNlIGNhbiBoYXZlIHNvbWUg ZGVjZW50IG92ZXJoZWFkLiBBbmQgd2UncmUgYWRkaW5nIGEgcGlsZSBvZgo+IGZ1bmN0aW9uIGNh bGxzLCBiZWNhdXNlIGNyYzMyX2xlIGlzbid0IGlubGluZWQuIERvZXMgaXQgc3RpbGwgaGFwcGVu Cj4gd2l0aG91dCBmdHJhY2U/Cj4gCgpObywgYW5kIGl0IG9ubHkgaGFwcGVuIG9jY2FzaW9uYWxs eSB3aXRoIGZ0cmFjZS4KCj4gT3B0aW1pemluZyB0aGlzIHdpbGwgYmUgc29tZSByZWFsIHdvcmsg LSB3ZSdkIG5lZWQgYSBsb2NhbCBjYWNoZSB0bwo+IGNvbXB1dGUgYW4gZW50aXJlIGJsb2NrIG9m IGJsZW5kZWQgcGl4ZWxzIGludG8sIHRoZW4gYWRkIGFuIGVudGlyZQo+IGJsb2NrLiBCbG9jayBz aXplIG5lZWRzIHRvIGJlIGxhcmdlIGVub3VnaCB0byBiZSBlZmZpY2llbnQsIGJ1dCBub3Qgc28K PiBiaWcgdGhhdCB3ZSBzdGFydCB0cmFzaGluZyB0aGUgY2FjaGUgb3IgaGF2ZSB0byBhbGxvY2F0 ZSBtZW1vcnkgKHN0YWNrCj4gc3BhY2UgaW4gdGhlIGtlcm5lbCBpcyB2ZXJ5IGxpbWl0ZWQpLiBX b3VsZCBiZSBnb29kIGlmIHdlIGNhbiBhdm9pZAo+IGFsbCB0aGlzIHdvcmsganVzdCBub3cgLi4u Cj4gLURhbmllCj4gCj4gPgo+ID4+ID4KPiA+PiA+IC0tLS0tLS0tLS0tLS0tLS0tIHZrbXNfY3Jj LmMgLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiA+ICAgICBmb3IgKGkgPSB5X3NyYzsgaSA8IHlfc3Jj ICsgaF9zcmM7ICsraSkgewo+ID4+ID4gICAgICAgICAgICAgZm9yIChqID0geF9zcmM7IGogPCB4 X3NyYyArIHdfc3JjOyArK2opIHsKPiA+PiA+ICAgICAgICAgICAgICAgICAgICAgc3JjX29mZnNl dCA9IGNyY19vdXQtPm9mZnNldAo+ID4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKyAoaSAqIGNyY19vdXQtPnBpdGNoKQo+ID4+ID4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKyAoaiAqIGNyY19vdXQtPmNwcCk7Cj4gPj4gPiAgICAgICAgICAgICAgICAgICAg IG1lbXNldCh2YWRkcl9vdXQgKyBzcmNfb2Zmc2V0ICsgMjQsIDAsICA4KTsKPiA+PiA+ICAgICAg ICAgICAgICAgICAgICAgY3JjID0gY3JjMzJfbGUoY3JjLCB2YWRkcl9vdXQgKyBzcmNfb2Zmc2V0 LCBzaXplb2YodTMyKSk7Cj4gPj4gPiAgICAgICAgICAgICB9Cj4gPj4gPiAgICAgfQo+ID4+ID4g LS0tLS0tLS0tLS0tLS0tLS0gdmttc19jcmMuYyAtLS0tLS0tLS0tLS0tLS0tLQo+ID4+ID4KPiA+ PiA+IFRoYW5rIHlvdSwKPiA+PiA+IEhhbmVlbgo+ID4+ID4KPiA+PiA+ID4gPiA+ID4gKy8qKgo+ ID4+ID4gPiA+ID4gPiArICogYmxlbmQgLSBiZWxuZCB2YWx1ZSBhdCB2YWRkcl9zcmMgd2l0aCB2 YWx1ZSBhdCB2YWRkcl9kc3QKPiA+PiA+ID4gPiA+ID4gKyAqIEB2YWRkcl9kc3Q6IGRlc3RpbmF0 aW9uIGFkZHJlc3MKPiA+PiA+ID4gPiA+ID4gKyAqIEB2YWRkcl9zcmM6IHNvdXJjZSBhZGRyZXNz Cj4gPj4gPiA+ID4gPiA+ICsgKiBAY3JjX2RzdDogZGVzdGluYXRpb24gZnJhbWVidWZmZXIncyBt ZXRhZGF0YQo+ID4+ID4gPiA+ID4gPiArICogQGNyY19zcmM6IHNvdXJjZSBmcmFtZWJ1ZmZlcidz IG1ldGFkYXRhCj4gPj4gPiA+ID4gPiA+ICsgKgo+ID4+ID4gPiA+ID4gPiArICogQmxlbmQgdmFs dWUgYXQgdmFkZHJfc3JjIHdpdGggdmFsdWUgYXQgdmFkZHJfZHN0Lgo+ID4+ID4gPiA+ID4gPiAr ICogQ3VycmVudGx5LCB0aGlzIGZ1bmN0aW9uIHdyaXRlIHZhbHVlIGF0IHZhZGRyX3NyYyBvbiB2 YWx1ZQo+ID4+ID4gPiA+ID4gPiArICogYXQgdmFkZHJfZHN0IHVzaW5nIGJ1ZmZlcidzIG1ldGFk YXRhIHRvIGxvY2F0ZSB0aGUgbmV3IHZhbHVlcwo+ID4+ID4gPiA+ID4gPiArICogZnJvbSB2YWRk cl9zcmMgYW5kIHRoZWlyIGRpc3RlbmF0aW9uIGF0IHZhZGRyX2RzdC4KPiA+PiA+ID4gPiA+ID4g KyAqCj4gPj4gPiA+ID4gPiA+ICsgKiBUb2RvOiBVc2UgdGhlIGFscGhhIHZhbHVlIHRvIGJsZW5k IHZhZGRyX3NyYyB3aXRoIHZhZGRyX2RzdAo+ID4+ID4gPiA+ID4gPiArICogIGluc3RlYWQgb2Yg b3ZlcndyaXRpbmcgaXQuCj4gPj4gPiA+ID4gPgo+ID4+ID4gPiA+ID4gQW5vdGhlciB0b2RvOiBX ZSBtdXN0IGNsZWFyIHRoZSBhbHBoYSBjaGFubmVsIGluIHRoZSByZXN1bHQgYWZ0ZXIKPiA+PiA+ ID4gPiA+IGJsZW5kaW5nLiBUaGlzIGFsc28gYXBwbGllcyB0byB0aGUgcHJpbWFyeSBwbGFuZSwg d2hlcmUgdGhlIFhSR0IgZm9yIHRoZQo+ID4+ID4gPiA+ID4gcGl4ZWwgZm9ybWF0IG1hbmRhdGVz IHRoYXQgd2UgZW50aXJlbHkgaWdub3JlIHRoZSBhbHBoYSBjaGFubmVsLgo+ID4+ID4gPiA+ID4K PiA+PiA+ID4gPiA+IFRoaXMgaXMgYWxzbyBzb21ldGhpbmcgd2Ugc2hvdWxkIHByb2JhYmx5IGhh dmUgYW4gaWd0IHRlc3RjYXNlIGZvci4KPiA+PiA+ID4gPiA+Cj4gPj4gPiA+ID4gPiBTaW5jZSB0 aGVyZSdzIGEgZmV3IG9wZW4gZW5kczogSG93IG1hbnkgd2Vla3MgYXJlIGxlZnQgaW4geW91ciBv dXRyZWFjaHkKPiA+PiA+ID4gPiA+IGludGVybnNoaXA/IFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRo YXQgYXQgbGVhc3QgYWxsIHRoZSBpc3N1ZXMgYXJlIGNvdmVyZWQKPiA+PiA+ID4gPiA+IGluIGEg dmttcyB0b2RvIGZpbGUuIFdvdWxkIGJlIGdyZWF0IHRvIGFkZCB0aGF0IGluCj4gPj4gPiA+ID4g PiBEb2N1bWVudGF0aW9uL2dwdS92a21zLnJzdCwgbGlrZSB3ZSBoYXZlIGZvciBvdGhlciBkcml2 ZXJzLgo+ID4+ID4gPiA+ID4gLURhbmllbAo+ID4+ID4gPiA+ID4KPiA+PiA+ID4gPgo+ID4+ID4g PiA+IEkndmUgb25lIG1vcmUgd2VlayEgSSBjYW4gdXNlIHRoaXMgd2VlayB0byBwcmVwYXJlIHRo ZSB0b2RvIGZpbGUgYW5kCj4gPj4gPiA+ID4gZmluYWxpemUgdGhpcyBwYXRjaD8KPiA+PiA+ID4K PiA+PiA+ID4gWWVhaCBzb3VuZHMgbGlrZSB0aGUgcGVyZmVjdCB3cmFwLXVwIHdvcmsuIFNpbmNl IHRoaXMgd29udCBiZSBlbm91Z2ggdG8KPiA+PiA+ID4gZmluaXNoIHRoZSBjdXJzb3Igd29yayBp dCB3b3VsZCBiZSBnb29kIHRvIGhpZGUgdGhlIGN1cnNvciBzZXR1cCBiZWhpbmQgYQo+ID4+ID4g PiBtb2R1bGUgb3B0aW9uLCBwZXJoYXBzICJlbmFibGVfY3Vyc29yIiBvciBzby4gVGhhdCB3YXkg d2Ugd29udCBoYXZlCj4gPj4gPiA+IG5vdC10b3RhbGx5LWNvcnJlY3QgZmVhdHVyZXMgZW5hYmxl ZC4gQW5kIGVuYWJsaW5nL2Rpc2FibGluZyBjdXJzb3IKPiA+PiA+ID4gc3VwcG9ydCBjb3VsZCBi ZSB1c2VmdWwgZm9yIHRlc3RpbmcuCj4gPj4gPiA+IC1EYW5pZWwKPiA+PiA+ID4KPiA+PiA+ID4g Pgo+ID4+ID4gPiA+IFRoYW5rIHlvdSwKPiA+PiA+ID4gPiBIYW5lZW4KPiA+PiA+ID4gPgo+ID4+ ID4gPiA+ID4gPiArICovCj4gPj4gPiA+ID4gPiA+ICtzdGF0aWMgdm9pZCBibGVuZCh2b2lkICp2 YWRkcl9kc3QsIHZvaWQgKnZhZGRyX3NyYywKPiA+PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICBz dHJ1Y3Qgdmttc19jcmNfZGF0YSAqY3JjX2RzdCwKPiA+PiA+ID4gPiA+ID4gKyAgICAgICAgICAg ICBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqY3JjX3NyYykKPiA+PiA+ID4gPiA+ID4gK3sKPiA+PiA+ ID4gPiA+ID4gKyAgIGludCBpLCBqLCBqX2RzdCwgaV9kc3Q7Cj4gPj4gPiA+ID4gPiA+ICsgICBp bnQgb2Zmc2V0X3NyYywgb2Zmc2V0X2RzdDsKPiA+PiA+ID4gPiA+ID4gKwo+ID4+ID4gPiA+ID4g PiArICAgaW50IHhfc3JjID0gY3JjX3NyYy0+c3JjLngxID4+IDE2Owo+ID4+ID4gPiA+ID4gPiAr ICAgaW50IHlfc3JjID0gY3JjX3NyYy0+c3JjLnkxID4+IDE2Owo+ID4+ID4gPiA+ID4gPiArCj4g Pj4gPiA+ID4gPiA+ICsgICBpbnQgeF9kc3QgPSBjcmNfc3JjLT5kc3QueDE7Cj4gPj4gPiA+ID4g PiA+ICsgICBpbnQgeV9kc3QgPSBjcmNfc3JjLT5kc3QueTE7Cj4gPj4gPiA+ID4gPiA+ICsgICBp bnQgaF9kc3QgPSBkcm1fcmVjdF9oZWlnaHQoJmNyY19zcmMtPmRzdCk7Cj4gPj4gPiA+ID4gPiA+ ICsgICBpbnQgd19kc3QgPSBkcm1fcmVjdF93aWR0aCgmY3JjX3NyYy0+ZHN0KTsKPiA+PiA+ID4g PiA+ID4gKwo+ID4+ID4gPiA+ID4gPiArICAgaW50IHlfbGltaXQgPSB5X3NyYyArIGhfZHN0Owo+ ID4+ID4gPiA+ID4gPiArICAgaW50IHhfbGltaXQgPSB4X3NyYyArIHdfZHN0Owo+ID4+ID4gPiA+ ID4gPiArCj4gPj4gPiA+ID4gPiA+ICsgICBmb3IgKGkgPSB5X3NyYywgaV9kc3QgPSB5X2RzdDsg aSA8IHlfbGltaXQ7ICsraSkgewo+ID4+ID4gPiA+ID4gPiArICAgICAgICAgICBmb3IgKGogPSB4 X3NyYywgal9kc3QgPSB4X2RzdDsgaiA8IHhfbGltaXQ7ICsraikgewo+ID4+ID4gPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgIG9mZnNldF9kc3QgPSBjcmNfZHN0LT5vZmZzZXQKPiA+PiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoaV9kc3QgKiBjcmNfZHN0 LT5waXRjaCkKPiA+PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KyAoal9kc3QrKyAqIGNyY19kc3QtPmNwcCk7Cj4gPj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAg ICAgICAgb2Zmc2V0X3NyYyA9IGNyY19zcmMtPm9mZnNldAo+ID4+ID4gPiA+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArIChpICogY3JjX3NyYy0+cGl0Y2gpCj4gPj4gPiA+ ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGogKiBjcmNfc3JjLT5j cHApOwo+ID4+ID4gPiA+ID4gPiArCj4gPj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAg bWVtY3B5KHZhZGRyX2RzdCArIG9mZnNldF9kc3QsCj4gPj4gPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgIHZhZGRyX3NyYyArIG9mZnNldF9zcmMsIHNpemVvZih1MzIpKTsKPiA+ PiA+ID4gPiA+ID4gKyAgICAgICAgICAgfQo+ID4+ID4gPiA+ID4gPiArICAgICAgICAgICBpX2Rz dCsrOwo+ID4+ID4gPiA+ID4gPiArICAgfQo+ID4+ID4gPiA+ID4gPiArfQo+ID4+ID4gPiA+ID4g PiArCj4gPj4gPiA+ID4gPiA+ICtzdGF0aWMgdm9pZCBjb21wb3NlX2N1cnNvcihzdHJ1Y3Qgdmtt c19jcmNfZGF0YSAqY3Vyc29yX2NyYywKPiA+PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqcHJpbWFyeV9jcmMsIHZvaWQgKnZhZGRyX291dCkK PiA+PiA+ID4gPiA+ID4gK3sKPiA+PiA+ID4gPiA+ID4gKyAgIHN0cnVjdCBkcm1fZ2VtX29iamVj dCAqY3Vyc29yX29iajsKPiA+PiA+ID4gPiA+ID4gKyAgIHN0cnVjdCB2a21zX2dlbV9vYmplY3Qg KmN1cnNvcl92a21zX29iajsKPiA+PiA+ID4gPiA+ID4gKwo+ID4+ID4gPiA+ID4gPiArICAgY3Vy c29yX29iaiA9IGRybV9nZW1fZmJfZ2V0X29iaigmY3Vyc29yX2NyYy0+ZmIsIDApOwo+ID4+ID4g PiA+ID4gPiArICAgY3Vyc29yX3ZrbXNfb2JqID0gZHJtX2dlbV90b192a21zX2dlbShjdXJzb3Jf b2JqKTsKPiA+PiA+ID4gPiA+ID4gKwo+ID4+ID4gPiA+ID4gPiArICAgbXV0ZXhfbG9jaygmY3Vy c29yX3ZrbXNfb2JqLT5wYWdlc19sb2NrKTsKPiA+PiA+ID4gPiA+ID4gKyAgIGlmIChXQVJOX09O KCFjdXJzb3Jfdmttc19vYmotPnZhZGRyKSkKPiA+PiA+ID4gPiA+ID4gKyAgICAgICAgICAgZ290 byBvdXQ7Cj4gPj4gPiA+ID4gPiA+ICsKPiA+PiA+ID4gPiA+ID4gKyAgIGJsZW5kKHZhZGRyX291 dCwgY3Vyc29yX3ZrbXNfb2JqLT52YWRkciwgcHJpbWFyeV9jcmMsIGN1cnNvcl9jcmMpOwo+ID4+ ID4gPiA+ID4gPiArCj4gPj4gPiA+ID4gPiA+ICtvdXQ6Cj4gPj4gPiA+ID4gPiA+ICsgICBtdXRl eF91bmxvY2soJmN1cnNvcl92a21zX29iai0+cGFnZXNfbG9jayk7Cj4gPj4gPiA+ID4gPiA+ICt9 Cj4gPj4gPiA+ID4gPiA+ICsKPiA+PiA+ID4gPiA+ID4gK3N0YXRpYyB1aW50MzJfdCBfdmttc19n ZXRfY3JjKHN0cnVjdCB2a21zX2NyY19kYXRhICpwcmltYXJ5X2NyYywKPiA+PiA+ID4gPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqY3Vyc29yX2Ny YykKPiA+PiA+ID4gPiA+ID4gK3sKPiA+PiA+ID4gPiA+ID4gKyAgIHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gJnByaW1hcnlfY3JjLT5mYjsKPiA+PiA+ID4gPiA+ID4gICAgIHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqZ2VtX29iaiA9IGRybV9nZW1fZmJfZ2V0X29iaihmYiwgMCk7Cj4gPj4g PiA+ID4gPiA+ICAgICBzdHJ1Y3Qgdmttc19nZW1fb2JqZWN0ICp2a21zX29iaiA9IGRybV9nZW1f dG9fdmttc19nZW0oZ2VtX29iaik7Cj4gPj4gPiA+ID4gPiA+ICsgICB2b2lkICp2YWRkcl9vdXQg PSBremFsbG9jKHZrbXNfb2JqLT5nZW0uc2l6ZSwgR0ZQX0tFUk5FTCk7Cj4gPj4gPiA+ID4gPiA+ ICAgICB1MzIgY3JjID0gMDsKPiA+PiA+ID4gPiA+ID4gLSAgIGludCBpID0gMDsKPiA+PiA+ID4g PiA+ID4gLSAgIHVuc2lnbmVkIGludCB4ID0gY3JjX2RhdGEtPnNyYy54MSA+PiAxNjsKPiA+PiA+ ID4gPiA+ID4gLSAgIHVuc2lnbmVkIGludCB5ID0gY3JjX2RhdGEtPnNyYy55MSA+PiAxNjsKPiA+ PiA+ID4gPiA+ID4gLSAgIHVuc2lnbmVkIGludCBoZWlnaHQgPSBkcm1fcmVjdF9oZWlnaHQoJmNy Y19kYXRhLT5zcmMpID4+IDE2Owo+ID4+ID4gPiA+ID4gPiAtICAgdW5zaWduZWQgaW50IHdpZHRo ID0gZHJtX3JlY3Rfd2lkdGgoJmNyY19kYXRhLT5zcmMpID4+IDE2Owo+ID4+ID4gPiA+ID4gPiAt ICAgdW5zaWduZWQgaW50IGNwcCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKPiA+PiA+ID4gPiA+ID4g LSAgIHVuc2lnbmVkIGludCBzcmNfb2Zmc2V0Owo+ID4+ID4gPiA+ID4gPiAtICAgdW5zaWduZWQg aW50IHNpemVfYnl0ZSA9IHdpZHRoICogY3BwOwo+ID4+ID4gPiA+ID4gPiAtICAgdm9pZCAqdmFk ZHI7Cj4gPj4gPiA+ID4gPiA+Cj4gPj4gPiA+ID4gPiA+IC0gICBtdXRleF9sb2NrKCZ2a21zX29i ai0+cGFnZXNfbG9jayk7Cj4gPj4gPiA+ID4gPiA+IC0gICB2YWRkciA9IHZrbXNfb2JqLT52YWRk cjsKPiA+PiA+ID4gPiA+ID4gLSAgIGlmIChXQVJOX09OKCF2YWRkcikpCj4gPj4gPiA+ID4gPiA+ IC0gICAgICAgICAgIGdvdG8gb3V0Owo+ID4+ID4gPiA+ID4gPiArICAgaWYgKCF2YWRkcl9vdXQp IHsKPiA+PiA+ID4gPiA+ID4gKyAgICAgICAgICAgRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2Nh dGUgbWVtb3J5IGZvciBvdXRwdXQgZnJhbWUuIik7Cj4gPj4gPiA+ID4gPiA+ICsgICAgICAgICAg IHJldHVybiAwOwo+ID4+ID4gPiA+ID4gPiArICAgfQo+ID4+ID4gPiA+ID4gPgo+ID4+ID4gPiA+ ID4gPiAtICAgZm9yIChpID0geTsgaSA8IHkgKyBoZWlnaHQ7IGkrKykgewo+ID4+ID4gPiA+ID4g PiAtICAgICAgICAgICBzcmNfb2Zmc2V0ID0gZmItPm9mZnNldHNbMF0gKyAoaSAqIGZiLT5waXRj aGVzWzBdKSArICh4ICogY3BwKTsKPiA+PiA+ID4gPiA+ID4gLSAgICAgICAgICAgY3JjID0gY3Jj MzJfbGUoY3JjLCB2YWRkciArIHNyY19vZmZzZXQsIHNpemVfYnl0ZSk7Cj4gPj4gPiA+ID4gPiA+ ICsgICBtdXRleF9sb2NrKCZ2a21zX29iai0+cGFnZXNfbG9jayk7Cj4gPj4gPiA+ID4gPiA+ICsg ICBpZiAoV0FSTl9PTighdmttc19vYmotPnZhZGRyKSkgewo+ID4+ID4gPiA+ID4gPiArICAgICAg ICAgICBtdXRleF9sb2NrKCZ2a21zX29iai0+cGFnZXNfbG9jayk7Cj4gPj4gPiA+ID4gPiA+ICsg ICAgICAgICAgIHJldHVybiBjcmM7Cj4gPj4gPiA+ID4gPiA+ICAgICB9Cj4gPj4gPiA+ID4gPiA+ Cj4gPj4gPiA+ID4gPiA+IC1vdXQ6Cj4gPj4gPiA+ID4gPiA+ICsgICBtZW1jcHkodmFkZHJfb3V0 LCB2a21zX29iai0+dmFkZHIsIHZrbXNfb2JqLT5nZW0uc2l6ZSk7Cj4gPj4gPiA+ID4gPiA+ICAg ICBtdXRleF91bmxvY2soJnZrbXNfb2JqLT5wYWdlc19sb2NrKTsKPiA+PiA+ID4gPiA+ID4gKwo+ ID4+ID4gPiA+ID4gPiArICAgaWYgKGN1cnNvcl9jcmMpCj4gPj4gPiA+ID4gPiA+ICsgICAgICAg ICAgIGNvbXBvc2VfY3Vyc29yKGN1cnNvcl9jcmMsIHByaW1hcnlfY3JjLCB2YWRkcl9vdXQpOwo+ ID4+ID4gPiA+ID4gPiArCj4gPj4gPiA+ID4gPiA+ICsgICBjcmMgPSBjb21wdXRlX2NyYyh2YWRk cl9vdXQsIHByaW1hcnlfY3JjKTsKPiA+PiA+ID4gPiA+ID4gKwo+ID4+ID4gPiA+ID4gPiArICAg a2ZyZWUodmFkZHJfb3V0KTsKPiA+PiA+ID4gPiA+ID4gKwo+ID4+ID4gPiA+ID4gPiAgICAgcmV0 dXJuIGNyYzsKPiA+PiA+ID4gPiA+ID4gIH0KPiA+PiA+ID4gPiA+ID4KPiA+PiA+ID4gPiA+ID4g QEAgLTQ0LDggKzE0NSw4IEBAIHZvaWQgdmttc19jcmNfd29ya19oYW5kbGUoc3RydWN0IHdvcmtf c3RydWN0ICp3b3JrKQo+ID4+ID4gPiA+ID4gPiAgICAgc3RydWN0IHZrbXNfZGV2aWNlICp2ZGV2 ID0gY29udGFpbmVyX29mKG91dCwgc3RydWN0IHZrbXNfZGV2aWNlLAo+ID4+ID4gPiA+ID4gPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCk7Cj4gPj4g PiA+ID4gPiA+ICAgICBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqcHJpbWFyeV9jcmMgPSBOVUxMOwo+ ID4+ID4gPiA+ID4gPiArICAgc3RydWN0IHZrbXNfY3JjX2RhdGEgKmN1cnNvcl9jcmMgPSBOVUxM Owo+ID4+ID4gPiA+ID4gPiAgICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gPj4gPiA+ID4g PiA+IC0KPiA+PiA+ID4gPiA+ID4gICAgIHUzMiBjcmMzMiA9IDA7Cj4gPj4gPiA+ID4gPiA+Cj4g Pj4gPiA+ID4gPiA+ICAgICBkcm1fZm9yX2VhY2hfcGxhbmUocGxhbmUsICZ2ZGV2LT5kcm0pIHsK PiA+PiA+ID4gPiA+ID4gQEAgLTU4LDE0ICsxNTksMTQgQEAgdm9pZCB2a21zX2NyY193b3JrX2hh bmRsZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gPj4gPiA+ID4gPiA+ICAgICAgICAgICAg IGlmIChkcm1fZnJhbWVidWZmZXJfcmVhZF9yZWZjb3VudCgmY3JjX2RhdGEtPmZiKSA9PSAwKQo+ ID4+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4+ID4gPiA+ID4g Pgo+ID4+ID4gPiA+ID4gPiAtICAgICAgICAgICBpZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5F X1RZUEVfUFJJTUFSWSkgewo+ID4+ID4gPiA+ID4gPiArICAgICAgICAgICBpZiAocGxhbmUtPnR5 cGUgPT0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkKPiA+PiA+ID4gPiA+ID4gICAgICAgICAgICAg ICAgICAgICBwcmltYXJ5X2NyYyA9IGNyY19kYXRhOwo+ID4+ID4gPiA+ID4gPiAtICAgICAgICAg ICAgICAgICAgIGJyZWFrOwo+ID4+ID4gPiA+ID4gPiAtICAgICAgICAgICB9Cj4gPj4gPiA+ID4g PiA+ICsgICAgICAgICAgIGVsc2UKPiA+PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBj dXJzb3JfY3JjID0gY3JjX2RhdGE7Cj4gPj4gPiA+ID4gPiA+ICAgICB9Cj4gPj4gPiA+ID4gPiA+ Cj4gPj4gPiA+ID4gPiA+ICAgICBpZiAocHJpbWFyeV9jcmMpCj4gPj4gPiA+ID4gPiA+IC0gICAg ICAgICAgIGNyYzMyID0gX3ZrbXNfZ2V0X2NyYyhwcmltYXJ5X2NyYyk7Cj4gPj4gPiA+ID4gPiA+ ICsgICAgICAgICAgIGNyYzMyID0gX3ZrbXNfZ2V0X2NyYyhwcmltYXJ5X2NyYywgY3Vyc29yX2Ny Yyk7Cj4gPj4gPiA+ID4gPiA+Cj4gPj4gPiA+ID4gPiA+ICAgICBkcm1fY3J0Y19hZGRfY3JjX2Vu dHJ5KGNydGMsIHRydWUsIGNydGNfc3RhdGUtPm5fZnJhbWUsICZjcmMzMik7Cj4gPj4gPiA+ID4g PiA+ICB9Cj4gPj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92 a21zX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaAo+ID4+ID4gPiA+ID4g PiBpbmRleCAzNmU1MjRmNzkxZmUuLjE3Mzg3NWRjMzYxZSAxMDA2NDQKPiA+PiA+ID4gPiA+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaAo+ID4+ID4gPiA+ID4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oCj4gPj4gPiA+ID4gPiA+IEBAIC0yNSw4 ICsyNSwxMSBAQCBzdGF0aWMgY29uc3QgdTMyIHZrbXNfY3Vyc29yX2Zvcm1hdHNbXSA9IHsKPiA+ PiA+ID4gPiA+ID4gIH07Cj4gPj4gPiA+ID4gPiA+Cj4gPj4gPiA+ID4gPiA+ICBzdHJ1Y3Qgdmtt c19jcmNfZGF0YSB7Cj4gPj4gPiA+ID4gPiA+IC0gICBzdHJ1Y3QgZHJtX3JlY3Qgc3JjOwo+ID4+ ID4gPiA+ID4gPiAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciBmYjsKPiA+PiA+ID4gPiA+ID4g KyAgIHN0cnVjdCBkcm1fcmVjdCBzcmMsIGRzdDsKPiA+PiA+ID4gPiA+ID4gKyAgIHVuc2lnbmVk IGludCBvZmZzZXQ7Cj4gPj4gPiA+ID4gPiA+ICsgICB1bnNpZ25lZCBpbnQgcGl0Y2g7Cj4gPj4g PiA+ID4gPiA+ICsgICB1bnNpZ25lZCBpbnQgY3BwOwo+ID4+ID4gPiA+ID4gPiAgfTsKPiA+PiA+ ID4gPiA+ID4KPiA+PiA+ID4gPiA+ID4gIC8qKgo+ID4+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMv dmttc19wbGFuZS5jCj4gPj4gPiA+ID4gPiA+IGluZGV4IDQyODI0N2Q0MDNkYy4uNzA0MTAwNzM5 NmFlIDEwMDY0NAo+ID4+ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21z X3BsYW5lLmMKPiA+PiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19w bGFuZS5jCj4gPj4gPiA+ID4gPiA+IEBAIC04NSwxNiArODUsMjIgQEAgc3RhdGljIHZvaWQgdmtt c19wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4+ID4gPiA+ ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0 YXRlICpvbGRfc3RhdGUpCj4gPj4gPiA+ID4gPiA+ICB7Cj4gPj4gPiA+ID4gPiA+ICAgICBzdHJ1 Y3Qgdmttc19wbGFuZV9zdGF0ZSAqdmttc19wbGFuZV9zdGF0ZTsKPiA+PiA+ID4gPiA+ID4gKyAg IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmUtPnN0YXRlLT5mYjsKPiA+PiA+ID4g PiA+ID4gICAgIHN0cnVjdCB2a21zX2NyY19kYXRhICpjcmNfZGF0YTsKPiA+PiA+ID4gPiA+ID4K PiA+PiA+ID4gPiA+ID4gLSAgIGlmICghcGxhbmUtPnN0YXRlLT5jcnRjIHx8ICFwbGFuZS0+c3Rh dGUtPmZiKQo+ID4+ID4gPiA+ID4gPiArICAgaWYgKCFwbGFuZS0+c3RhdGUtPmNydGMgfHwgIWZi KQo+ID4+ID4gPiA+ID4gPiAgICAgICAgICAgICByZXR1cm47Cj4gPj4gPiA+ID4gPiA+Cj4gPj4g PiA+ID4gPiA+ICAgICB2a21zX3BsYW5lX3N0YXRlID0gdG9fdmttc19wbGFuZV9zdGF0ZShwbGFu ZS0+c3RhdGUpOwo+ID4+ID4gPiA+ID4gPiArCj4gPj4gPiA+ID4gPiA+ICAgICBjcmNfZGF0YSA9 IHZrbXNfcGxhbmVfc3RhdGUtPmNyY19kYXRhOwo+ID4+ID4gPiA+ID4gPiAgICAgbWVtY3B5KCZj cmNfZGF0YS0+c3JjLCAmcGxhbmUtPnN0YXRlLT5zcmMsIHNpemVvZihzdHJ1Y3QgZHJtX3JlY3Qp KTsKPiA+PiA+ID4gPiA+ID4gLSAgIG1lbWNweSgmY3JjX2RhdGEtPmZiLCBwbGFuZS0+c3RhdGUt PmZiLCBzaXplb2Yoc3RydWN0IGRybV9mcmFtZWJ1ZmZlcikpOwo+ID4+ID4gPiA+ID4gPiArICAg bWVtY3B5KCZjcmNfZGF0YS0+ZHN0LCAmcGxhbmUtPnN0YXRlLT5kc3QsIHNpemVvZihzdHJ1Y3Qg ZHJtX3JlY3QpKTsKPiA+PiA+ID4gPiA+ID4gKyAgIG1lbWNweSgmY3JjX2RhdGEtPmZiLCBmYiwg c2l6ZW9mKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIpKTsKPiA+PiA+ID4gPiA+ID4gICAgIGRybV9m cmFtZWJ1ZmZlcl9nZXQoJmNyY19kYXRhLT5mYik7Cj4gPj4gPiA+ID4gPiA+ICsgICBjcmNfZGF0 YS0+b2Zmc2V0ID0gZmItPm9mZnNldHNbMF07Cj4gPj4gPiA+ID4gPiA+ICsgICBjcmNfZGF0YS0+ cGl0Y2ggPSBmYi0+cGl0Y2hlc1swXTsKPiA+PiA+ID4gPiA+ID4gKyAgIGNyY19kYXRhLT5jcHAg PSBmYi0+Zm9ybWF0LT5jcHBbMF07Cj4gPj4gPiA+ID4gPiA+ICB9Cj4gPj4gPiA+ID4gPiA+Cj4g Pj4gPiA+ID4gPiA+ICBzdGF0aWMgaW50IHZrbXNfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAo+ID4+ID4gPiA+ID4gPiAtLQo+ID4+ID4gPiA+ID4gPiAyLjE3LjEK PiA+PiA+ID4gPiA+ID4KPiA+PiA+ID4gPiA+Cj4gPj4gPiA+ID4gPiAtLQo+ID4+ID4gPiA+ID4g RGFuaWVsIFZldHRlcgo+ID4+ID4gPiA+ID4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBv cmF0aW9uCj4gPj4gPiA+ID4gPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+ID4+ID4gPgo+ID4+ID4g PiAtLQo+ID4+ID4gPiBEYW5pZWwgVmV0dGVyCj4gPj4gPiA+IFNvZnR3YXJlIEVuZ2luZWVyLCBJ bnRlbCBDb3Jwb3JhdGlvbgo+ID4+ID4gPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+ID4+Cj4gPj4g LS0KPiA+PiBEYW5pZWwgVmV0dGVyCj4gPj4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBv cmF0aW9uCj4gPj4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKPiAKPiAKPiAKPiAtLSAKPiBEYW5pZWwg VmV0dGVyCj4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gKzQxICgwKSA3 OSAzNjUgNTcgNDggLSBodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK