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: Thu, 16 Aug 2018 02:05:14 +0300 Message-ID: <20180815230514.GA1023@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-qk0-x231.google.com (mail-qk0-x231.google.com [IPv6:2607:f8b0:400d:c09::231]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6F35D6E106 for ; Wed, 15 Aug 2018 23:05:19 +0000 (UTC) Received: by mail-qk0-x231.google.com with SMTP id n85-v6so2049078qke.8 for ; Wed, 15 Aug 2018 16:05:19 -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+PgoKSGkgRGFuaWVsLAoKSSBmaWd1cmVk IG91dCB3aHkgbm9uYmxvY2tpbmctY3JjLXBpcGUtQS1mcmFtZS1zZXF1ZW5jZSBmYWlscy4KcXVl dWVfd29yayBzb21ldGltZXMgcmV0dXJuIGZhbHNlIHNvIHZrbXNfY3JjX3dvcmtfaGFuZGxlIGRv ZXNuJ3QgZ2V0IHNjaGVkdWxlZApmb3IgYSBnaXZlbiBmcmFtZSBudW1iZXIuIEknbSBub3Qgc3Vy ZSB0aG91Z2ggaG93IHRoaXMgY2FuIGJlIGZpeGVkLgoKLSBIYW5lZW4KCj4gPgo+ID4gT2ggc29y cnkgSSBzaG91bGQndmUgZWxhYm9yYXRlZCBtb3JlIG9uIGhvdyBpdCBmYWlscy4gWWVhaCBJIHRo aW5rIGl0Cj4gPiBiZWNvbWVzIHRvbyBzbG93IGFuZCB0aGF0IGNhbiBjYXVzZSBtaXNtYXRjaCB0 byBmcmFtZSBjb3VudGVycz8KPiA+Cj4gPiAtLS0tLQo+ID4gKGttc19waXBlX2NyY19iYXNpYzox OTAyKSBDUklUSUNBTDogRmFpbGVkIGFzc2VydGlvbjogY3Jjc1tqXS5mcmFtZSArIDEgPT0gY3Jj c1tqICsgMV0uZnJhbWUKPiA+IChrbXNfcGlwZV9jcmNfYmFzaWM6MTkwMikgQ1JJVElDQUw6IExh c3QgZXJybm86IDksIEJhZCBmaWxlIGRlc2NyaXB0b3IKPiA+IChrbXNfcGlwZV9jcmNfYmFzaWM6 MTkwMikgQ1JJVElDQUw6IGVycm9yOiAxMDkwOTI4ICE9IDEwOTA5MjkKPiA+IC0tLS0tCj4gCj4g WWVhaCBtaXNzZXMgdGhlIGRlYWRsaW5lIGl0IHNlZW1zLgo+IAo+ID4gTWF5YmUgaXQncyBub3Qg dGhhdCBiYWQvc2xvdyBiZWNhdXNlIEkndmUgbm90aWNlZCB0aGF0IHRoaXMgaGFwcGVuCj4gPiBv Y2Nhc2lvbmFsbHkgd2hlbiBJIGVuYWJsZSBGdHJhY2UuCj4gCj4gWWVhaCBmdHJhY2UgY2FuIGhh dmUgc29tZSBkZWNlbnQgb3ZlcmhlYWQuIEFuZCB3ZSdyZSBhZGRpbmcgYSBwaWxlIG9mCj4gZnVu Y3Rpb24gY2FsbHMsIGJlY2F1c2UgY3JjMzJfbGUgaXNuJ3QgaW5saW5lZC4gRG9lcyBpdCBzdGls bCBoYXBwZW4KPiB3aXRob3V0IGZ0cmFjZT8KPiAKPiBPcHRpbWl6aW5nIHRoaXMgd2lsbCBiZSBz b21lIHJlYWwgd29yayAtIHdlJ2QgbmVlZCBhIGxvY2FsIGNhY2hlIHRvCj4gY29tcHV0ZSBhbiBl bnRpcmUgYmxvY2sgb2YgYmxlbmRlZCBwaXhlbHMgaW50bywgdGhlbiBhZGQgYW4gZW50aXJlCj4g YmxvY2suIEJsb2NrIHNpemUgbmVlZHMgdG8gYmUgbGFyZ2UgZW5vdWdoIHRvIGJlIGVmZmljaWVu dCwgYnV0IG5vdCBzbwo+IGJpZyB0aGF0IHdlIHN0YXJ0IHRyYXNoaW5nIHRoZSBjYWNoZSBvciBo YXZlIHRvIGFsbG9jYXRlIG1lbW9yeSAoc3RhY2sKPiBzcGFjZSBpbiB0aGUga2VybmVsIGlzIHZl cnkgbGltaXRlZCkuIFdvdWxkIGJlIGdvb2QgaWYgd2UgY2FuIGF2b2lkCj4gYWxsIHRoaXMgd29y ayBqdXN0IG5vdyAuLi4KPiAtRGFuaWUKPiAKPiA+Cj4gPj4gPgo+ID4+ID4gLS0tLS0tLS0tLS0t LS0tLS0gdmttc19jcmMuYyAtLS0tLS0tLS0tLS0tLS0tLQo+ID4+ID4gICAgIGZvciAoaSA9IHlf c3JjOyBpIDwgeV9zcmMgKyBoX3NyYzsgKytpKSB7Cj4gPj4gPiAgICAgICAgICAgICBmb3IgKGog PSB4X3NyYzsgaiA8IHhfc3JjICsgd19zcmM7ICsraikgewo+ID4+ID4gICAgICAgICAgICAgICAg ICAgICBzcmNfb2Zmc2V0ID0gY3JjX291dC0+b2Zmc2V0Cj4gPj4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArIChpICogY3JjX291dC0+cGl0Y2gpCj4gPj4gPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArIChqICogY3JjX291dC0+Y3BwKTsKPiA+PiA+ICAgICAg ICAgICAgICAgICAgICAgbWVtc2V0KHZhZGRyX291dCArIHNyY19vZmZzZXQgKyAyNCwgMCwgIDgp Owo+ID4+ID4gICAgICAgICAgICAgICAgICAgICBjcmMgPSBjcmMzMl9sZShjcmMsIHZhZGRyX291 dCArIHNyY19vZmZzZXQsIHNpemVvZih1MzIpKTsKPiA+PiA+ICAgICAgICAgICAgIH0KPiA+PiA+ ICAgICB9Cj4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLSB2a21zX2NyYy5jIC0tLS0tLS0tLS0tLS0t LS0tCj4gPj4gPgo+ID4+ID4gVGhhbmsgeW91LAo+ID4+ID4gSGFuZWVuCj4gPj4gPgo+ID4+ID4g PiA+ID4gPiArLyoqCj4gPj4gPiA+ID4gPiA+ICsgKiBibGVuZCAtIGJlbG5kIHZhbHVlIGF0IHZh ZGRyX3NyYyB3aXRoIHZhbHVlIGF0IHZhZGRyX2RzdAo+ID4+ID4gPiA+ID4gPiArICogQHZhZGRy X2RzdDogZGVzdGluYXRpb24gYWRkcmVzcwo+ID4+ID4gPiA+ID4gPiArICogQHZhZGRyX3NyYzog c291cmNlIGFkZHJlc3MKPiA+PiA+ID4gPiA+ID4gKyAqIEBjcmNfZHN0OiBkZXN0aW5hdGlvbiBm cmFtZWJ1ZmZlcidzIG1ldGFkYXRhCj4gPj4gPiA+ID4gPiA+ICsgKiBAY3JjX3NyYzogc291cmNl IGZyYW1lYnVmZmVyJ3MgbWV0YWRhdGEKPiA+PiA+ID4gPiA+ID4gKyAqCj4gPj4gPiA+ID4gPiA+ ICsgKiBCbGVuZCB2YWx1ZSBhdCB2YWRkcl9zcmMgd2l0aCB2YWx1ZSBhdCB2YWRkcl9kc3QuCj4g Pj4gPiA+ID4gPiA+ICsgKiBDdXJyZW50bHksIHRoaXMgZnVuY3Rpb24gd3JpdGUgdmFsdWUgYXQg dmFkZHJfc3JjIG9uIHZhbHVlCj4gPj4gPiA+ID4gPiA+ICsgKiBhdCB2YWRkcl9kc3QgdXNpbmcg YnVmZmVyJ3MgbWV0YWRhdGEgdG8gbG9jYXRlIHRoZSBuZXcgdmFsdWVzCj4gPj4gPiA+ID4gPiA+ ICsgKiBmcm9tIHZhZGRyX3NyYyBhbmQgdGhlaXIgZGlzdGVuYXRpb24gYXQgdmFkZHJfZHN0Lgo+ ID4+ID4gPiA+ID4gPiArICoKPiA+PiA+ID4gPiA+ID4gKyAqIFRvZG86IFVzZSB0aGUgYWxwaGEg dmFsdWUgdG8gYmxlbmQgdmFkZHJfc3JjIHdpdGggdmFkZHJfZHN0Cj4gPj4gPiA+ID4gPiA+ICsg KiAgaW5zdGVhZCBvZiBvdmVyd3JpdGluZyBpdC4KPiA+PiA+ID4gPiA+Cj4gPj4gPiA+ID4gPiBB bm90aGVyIHRvZG86IFdlIG11c3QgY2xlYXIgdGhlIGFscGhhIGNoYW5uZWwgaW4gdGhlIHJlc3Vs dCBhZnRlcgo+ID4+ID4gPiA+ID4gYmxlbmRpbmcuIFRoaXMgYWxzbyBhcHBsaWVzIHRvIHRoZSBw cmltYXJ5IHBsYW5lLCB3aGVyZSB0aGUgWFJHQiBmb3IgdGhlCj4gPj4gPiA+ID4gPiBwaXhlbCBm b3JtYXQgbWFuZGF0ZXMgdGhhdCB3ZSBlbnRpcmVseSBpZ25vcmUgdGhlIGFscGhhIGNoYW5uZWwu Cj4gPj4gPiA+ID4gPgo+ID4+ID4gPiA+ID4gVGhpcyBpcyBhbHNvIHNvbWV0aGluZyB3ZSBzaG91 bGQgcHJvYmFibHkgaGF2ZSBhbiBpZ3QgdGVzdGNhc2UgZm9yLgo+ID4+ID4gPiA+ID4KPiA+PiA+ ID4gPiA+IFNpbmNlIHRoZXJlJ3MgYSBmZXcgb3BlbiBlbmRzOiBIb3cgbWFueSB3ZWVrcyBhcmUg bGVmdCBpbiB5b3VyIG91dHJlYWNoeQo+ID4+ID4gPiA+ID4gaW50ZXJuc2hpcD8gV2UgbmVlZCB0 byBtYWtlIHN1cmUgdGhhdCBhdCBsZWFzdCBhbGwgdGhlIGlzc3VlcyBhcmUgY292ZXJlZAo+ID4+ ID4gPiA+ID4gaW4gYSB2a21zIHRvZG8gZmlsZS4gV291bGQgYmUgZ3JlYXQgdG8gYWRkIHRoYXQg aW4KPiA+PiA+ID4gPiA+IERvY3VtZW50YXRpb24vZ3B1L3ZrbXMucnN0LCBsaWtlIHdlIGhhdmUg Zm9yIG90aGVyIGRyaXZlcnMuCj4gPj4gPiA+ID4gPiAtRGFuaWVsCj4gPj4gPiA+ID4gPgo+ID4+ ID4gPiA+Cj4gPj4gPiA+ID4gSSd2ZSBvbmUgbW9yZSB3ZWVrISBJIGNhbiB1c2UgdGhpcyB3ZWVr IHRvIHByZXBhcmUgdGhlIHRvZG8gZmlsZSBhbmQKPiA+PiA+ID4gPiBmaW5hbGl6ZSB0aGlzIHBh dGNoPwo+ID4+ID4gPgo+ID4+ID4gPiBZZWFoIHNvdW5kcyBsaWtlIHRoZSBwZXJmZWN0IHdyYXAt dXAgd29yay4gU2luY2UgdGhpcyB3b250IGJlIGVub3VnaCB0bwo+ID4+ID4gPiBmaW5pc2ggdGhl IGN1cnNvciB3b3JrIGl0IHdvdWxkIGJlIGdvb2QgdG8gaGlkZSB0aGUgY3Vyc29yIHNldHVwIGJl aGluZCBhCj4gPj4gPiA+IG1vZHVsZSBvcHRpb24sIHBlcmhhcHMgImVuYWJsZV9jdXJzb3IiIG9y IHNvLiBUaGF0IHdheSB3ZSB3b250IGhhdmUKPiA+PiA+ID4gbm90LXRvdGFsbHktY29ycmVjdCBm ZWF0dXJlcyBlbmFibGVkLiBBbmQgZW5hYmxpbmcvZGlzYWJsaW5nIGN1cnNvcgo+ID4+ID4gPiBz dXBwb3J0IGNvdWxkIGJlIHVzZWZ1bCBmb3IgdGVzdGluZy4KPiA+PiA+ID4gLURhbmllbAo+ID4+ ID4gPgo+ID4+ID4gPiA+Cj4gPj4gPiA+ID4gVGhhbmsgeW91LAo+ID4+ID4gPiA+IEhhbmVlbgo+ ID4+ID4gPiA+Cj4gPj4gPiA+ID4gPiA+ICsgKi8KPiA+PiA+ID4gPiA+ID4gK3N0YXRpYyB2b2lk IGJsZW5kKHZvaWQgKnZhZGRyX2RzdCwgdm9pZCAqdmFkZHJfc3JjLAo+ID4+ID4gPiA+ID4gPiAr ICAgICAgICAgICAgIHN0cnVjdCB2a21zX2NyY19kYXRhICpjcmNfZHN0LAo+ID4+ID4gPiA+ID4g PiArICAgICAgICAgICAgIHN0cnVjdCB2a21zX2NyY19kYXRhICpjcmNfc3JjKQo+ID4+ID4gPiA+ ID4gPiArewo+ID4+ID4gPiA+ID4gPiArICAgaW50IGksIGosIGpfZHN0LCBpX2RzdDsKPiA+PiA+ ID4gPiA+ID4gKyAgIGludCBvZmZzZXRfc3JjLCBvZmZzZXRfZHN0Owo+ID4+ID4gPiA+ID4gPiAr Cj4gPj4gPiA+ID4gPiA+ICsgICBpbnQgeF9zcmMgPSBjcmNfc3JjLT5zcmMueDEgPj4gMTY7Cj4g Pj4gPiA+ID4gPiA+ICsgICBpbnQgeV9zcmMgPSBjcmNfc3JjLT5zcmMueTEgPj4gMTY7Cj4gPj4g PiA+ID4gPiA+ICsKPiA+PiA+ID4gPiA+ID4gKyAgIGludCB4X2RzdCA9IGNyY19zcmMtPmRzdC54 MTsKPiA+PiA+ID4gPiA+ID4gKyAgIGludCB5X2RzdCA9IGNyY19zcmMtPmRzdC55MTsKPiA+PiA+ ID4gPiA+ID4gKyAgIGludCBoX2RzdCA9IGRybV9yZWN0X2hlaWdodCgmY3JjX3NyYy0+ZHN0KTsK PiA+PiA+ID4gPiA+ID4gKyAgIGludCB3X2RzdCA9IGRybV9yZWN0X3dpZHRoKCZjcmNfc3JjLT5k c3QpOwo+ID4+ID4gPiA+ID4gPiArCj4gPj4gPiA+ID4gPiA+ICsgICBpbnQgeV9saW1pdCA9IHlf c3JjICsgaF9kc3Q7Cj4gPj4gPiA+ID4gPiA+ICsgICBpbnQgeF9saW1pdCA9IHhfc3JjICsgd19k c3Q7Cj4gPj4gPiA+ID4gPiA+ICsKPiA+PiA+ID4gPiA+ID4gKyAgIGZvciAoaSA9IHlfc3JjLCBp X2RzdCA9IHlfZHN0OyBpIDwgeV9saW1pdDsgKytpKSB7Cj4gPj4gPiA+ID4gPiA+ICsgICAgICAg ICAgIGZvciAoaiA9IHhfc3JjLCBqX2RzdCA9IHhfZHN0OyBqIDwgeF9saW1pdDsgKytqKSB7Cj4g Pj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgb2Zmc2V0X2RzdCA9IGNyY19kc3QtPm9m ZnNldAo+ID4+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChp X2RzdCAqIGNyY19kc3QtPnBpdGNoKQo+ID4+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArIChqX2RzdCsrICogY3JjX2RzdC0+Y3BwKTsKPiA+PiA+ID4gPiA+ID4g KyAgICAgICAgICAgICAgICAgICBvZmZzZXRfc3JjID0gY3JjX3NyYy0+b2Zmc2V0Cj4gPj4gPiA+ ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGkgKiBjcmNfc3JjLT5w aXRjaCkKPiA+PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAo aiAqIGNyY19zcmMtPmNwcCk7Cj4gPj4gPiA+ID4gPiA+ICsKPiA+PiA+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgICBtZW1jcHkodmFkZHJfZHN0ICsgb2Zmc2V0X2RzdCwKPiA+PiA+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgdmFkZHJfc3JjICsgb2Zmc2V0X3NyYywgc2l6 ZW9mKHUzMikpOwo+ID4+ID4gPiA+ID4gPiArICAgICAgICAgICB9Cj4gPj4gPiA+ID4gPiA+ICsg ICAgICAgICAgIGlfZHN0Kys7Cj4gPj4gPiA+ID4gPiA+ICsgICB9Cj4gPj4gPiA+ID4gPiA+ICt9 Cj4gPj4gPiA+ID4gPiA+ICsKPiA+PiA+ID4gPiA+ID4gK3N0YXRpYyB2b2lkIGNvbXBvc2VfY3Vy c29yKHN0cnVjdCB2a21zX2NyY19kYXRhICpjdXJzb3JfY3JjLAo+ID4+ID4gPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2a21zX2NyY19kYXRhICpwcmltYXJ5X2NyYywgdm9p ZCAqdmFkZHJfb3V0KQo+ID4+ID4gPiA+ID4gPiArewo+ID4+ID4gPiA+ID4gPiArICAgc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpjdXJzb3Jfb2JqOwo+ID4+ID4gPiA+ID4gPiArICAgc3RydWN0IHZr bXNfZ2VtX29iamVjdCAqY3Vyc29yX3ZrbXNfb2JqOwo+ID4+ID4gPiA+ID4gPiArCj4gPj4gPiA+ ID4gPiA+ICsgICBjdXJzb3Jfb2JqID0gZHJtX2dlbV9mYl9nZXRfb2JqKCZjdXJzb3JfY3JjLT5m YiwgMCk7Cj4gPj4gPiA+ID4gPiA+ICsgICBjdXJzb3Jfdmttc19vYmogPSBkcm1fZ2VtX3RvX3Zr bXNfZ2VtKGN1cnNvcl9vYmopOwo+ID4+ID4gPiA+ID4gPiArCj4gPj4gPiA+ID4gPiA+ICsgICBt dXRleF9sb2NrKCZjdXJzb3Jfdmttc19vYmotPnBhZ2VzX2xvY2spOwo+ID4+ID4gPiA+ID4gPiAr ICAgaWYgKFdBUk5fT04oIWN1cnNvcl92a21zX29iai0+dmFkZHIpKQo+ID4+ID4gPiA+ID4gPiAr ICAgICAgICAgICBnb3RvIG91dDsKPiA+PiA+ID4gPiA+ID4gKwo+ID4+ID4gPiA+ID4gPiArICAg YmxlbmQodmFkZHJfb3V0LCBjdXJzb3Jfdmttc19vYmotPnZhZGRyLCBwcmltYXJ5X2NyYywgY3Vy c29yX2NyYyk7Cj4gPj4gPiA+ID4gPiA+ICsKPiA+PiA+ID4gPiA+ID4gK291dDoKPiA+PiA+ID4g PiA+ID4gKyAgIG11dGV4X3VubG9jaygmY3Vyc29yX3ZrbXNfb2JqLT5wYWdlc19sb2NrKTsKPiA+ PiA+ID4gPiA+ID4gK30KPiA+PiA+ID4gPiA+ID4gKwo+ID4+ID4gPiA+ID4gPiArc3RhdGljIHVp bnQzMl90IF92a21zX2dldF9jcmMoc3RydWN0IHZrbXNfY3JjX2RhdGEgKnByaW1hcnlfY3JjLAo+ ID4+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2a21zX2NyY19k YXRhICpjdXJzb3JfY3JjKQo+ID4+ID4gPiA+ID4gPiArewo+ID4+ID4gPiA+ID4gPiArICAgc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSAmcHJpbWFyeV9jcmMtPmZiOwo+ID4+ID4gPiA+ID4g PiAgICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqID0gZHJtX2dlbV9mYl9nZXRfb2Jq KGZiLCAwKTsKPiA+PiA+ID4gPiA+ID4gICAgIHN0cnVjdCB2a21zX2dlbV9vYmplY3QgKnZrbXNf b2JqID0gZHJtX2dlbV90b192a21zX2dlbShnZW1fb2JqKTsKPiA+PiA+ID4gPiA+ID4gKyAgIHZv aWQgKnZhZGRyX291dCA9IGt6YWxsb2Modmttc19vYmotPmdlbS5zaXplLCBHRlBfS0VSTkVMKTsK PiA+PiA+ID4gPiA+ID4gICAgIHUzMiBjcmMgPSAwOwo+ID4+ID4gPiA+ID4gPiAtICAgaW50IGkg PSAwOwo+ID4+ID4gPiA+ID4gPiAtICAgdW5zaWduZWQgaW50IHggPSBjcmNfZGF0YS0+c3JjLngx ID4+IDE2Owo+ID4+ID4gPiA+ID4gPiAtICAgdW5zaWduZWQgaW50IHkgPSBjcmNfZGF0YS0+c3Jj LnkxID4+IDE2Owo+ID4+ID4gPiA+ID4gPiAtICAgdW5zaWduZWQgaW50IGhlaWdodCA9IGRybV9y ZWN0X2hlaWdodCgmY3JjX2RhdGEtPnNyYykgPj4gMTY7Cj4gPj4gPiA+ID4gPiA+IC0gICB1bnNp Z25lZCBpbnQgd2lkdGggPSBkcm1fcmVjdF93aWR0aCgmY3JjX2RhdGEtPnNyYykgPj4gMTY7Cj4g Pj4gPiA+ID4gPiA+IC0gICB1bnNpZ25lZCBpbnQgY3BwID0gZmItPmZvcm1hdC0+Y3BwWzBdOwo+ ID4+ID4gPiA+ID4gPiAtICAgdW5zaWduZWQgaW50IHNyY19vZmZzZXQ7Cj4gPj4gPiA+ID4gPiA+ IC0gICB1bnNpZ25lZCBpbnQgc2l6ZV9ieXRlID0gd2lkdGggKiBjcHA7Cj4gPj4gPiA+ID4gPiA+ IC0gICB2b2lkICp2YWRkcjsKPiA+PiA+ID4gPiA+ID4KPiA+PiA+ID4gPiA+ID4gLSAgIG11dGV4 X2xvY2soJnZrbXNfb2JqLT5wYWdlc19sb2NrKTsKPiA+PiA+ID4gPiA+ID4gLSAgIHZhZGRyID0g dmttc19vYmotPnZhZGRyOwo+ID4+ID4gPiA+ID4gPiAtICAgaWYgKFdBUk5fT04oIXZhZGRyKSkK PiA+PiA+ID4gPiA+ID4gLSAgICAgICAgICAgZ290byBvdXQ7Cj4gPj4gPiA+ID4gPiA+ICsgICBp ZiAoIXZhZGRyX291dCkgewo+ID4+ID4gPiA+ID4gPiArICAgICAgICAgICBEUk1fRVJST1IoIkZh aWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIG91dHB1dCBmcmFtZS4iKTsKPiA+PiA+ID4gPiA+ ID4gKyAgICAgICAgICAgcmV0dXJuIDA7Cj4gPj4gPiA+ID4gPiA+ICsgICB9Cj4gPj4gPiA+ID4g PiA+Cj4gPj4gPiA+ID4gPiA+IC0gICBmb3IgKGkgPSB5OyBpIDwgeSArIGhlaWdodDsgaSsrKSB7 Cj4gPj4gPiA+ID4gPiA+IC0gICAgICAgICAgIHNyY19vZmZzZXQgPSBmYi0+b2Zmc2V0c1swXSAr IChpICogZmItPnBpdGNoZXNbMF0pICsgKHggKiBjcHApOwo+ID4+ID4gPiA+ID4gPiAtICAgICAg ICAgICBjcmMgPSBjcmMzMl9sZShjcmMsIHZhZGRyICsgc3JjX29mZnNldCwgc2l6ZV9ieXRlKTsK PiA+PiA+ID4gPiA+ID4gKyAgIG11dGV4X2xvY2soJnZrbXNfb2JqLT5wYWdlc19sb2NrKTsKPiA+ PiA+ID4gPiA+ID4gKyAgIGlmIChXQVJOX09OKCF2a21zX29iai0+dmFkZHIpKSB7Cj4gPj4gPiA+ ID4gPiA+ICsgICAgICAgICAgIG11dGV4X2xvY2soJnZrbXNfb2JqLT5wYWdlc19sb2NrKTsKPiA+ PiA+ID4gPiA+ID4gKyAgICAgICAgICAgcmV0dXJuIGNyYzsKPiA+PiA+ID4gPiA+ID4gICAgIH0K PiA+PiA+ID4gPiA+ID4KPiA+PiA+ID4gPiA+ID4gLW91dDoKPiA+PiA+ID4gPiA+ID4gKyAgIG1l bWNweSh2YWRkcl9vdXQsIHZrbXNfb2JqLT52YWRkciwgdmttc19vYmotPmdlbS5zaXplKTsKPiA+ PiA+ID4gPiA+ID4gICAgIG11dGV4X3VubG9jaygmdmttc19vYmotPnBhZ2VzX2xvY2spOwo+ID4+ ID4gPiA+ID4gPiArCj4gPj4gPiA+ID4gPiA+ICsgICBpZiAoY3Vyc29yX2NyYykKPiA+PiA+ID4g PiA+ID4gKyAgICAgICAgICAgY29tcG9zZV9jdXJzb3IoY3Vyc29yX2NyYywgcHJpbWFyeV9jcmMs IHZhZGRyX291dCk7Cj4gPj4gPiA+ID4gPiA+ICsKPiA+PiA+ID4gPiA+ID4gKyAgIGNyYyA9IGNv bXB1dGVfY3JjKHZhZGRyX291dCwgcHJpbWFyeV9jcmMpOwo+ID4+ID4gPiA+ID4gPiArCj4gPj4g PiA+ID4gPiA+ICsgICBrZnJlZSh2YWRkcl9vdXQpOwo+ID4+ID4gPiA+ID4gPiArCj4gPj4gPiA+ ID4gPiA+ICAgICByZXR1cm4gY3JjOwo+ID4+ID4gPiA+ID4gPiAgfQo+ID4+ID4gPiA+ID4gPgo+ ID4+ID4gPiA+ID4gPiBAQCAtNDQsOCArMTQ1LDggQEAgdm9pZCB2a21zX2NyY193b3JrX2hhbmRs ZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gPj4gPiA+ID4gPiA+ICAgICBzdHJ1Y3Qgdmtt c19kZXZpY2UgKnZkZXYgPSBjb250YWluZXJfb2Yob3V0LCBzdHJ1Y3Qgdmttc19kZXZpY2UsCj4g Pj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b3V0cHV0KTsKPiA+PiA+ID4gPiA+ID4gICAgIHN0cnVjdCB2a21zX2NyY19kYXRhICpwcmltYXJ5 X2NyYyA9IE5VTEw7Cj4gPj4gPiA+ID4gPiA+ICsgICBzdHJ1Y3Qgdmttc19jcmNfZGF0YSAqY3Vy c29yX2NyYyA9IE5VTEw7Cj4gPj4gPiA+ID4gPiA+ICAgICBzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZTsKPiA+PiA+ID4gPiA+ID4gLQo+ID4+ID4gPiA+ID4gPiAgICAgdTMyIGNyYzMyID0gMDsKPiA+ PiA+ID4gPiA+ID4KPiA+PiA+ID4gPiA+ID4gICAgIGRybV9mb3JfZWFjaF9wbGFuZShwbGFuZSwg JnZkZXYtPmRybSkgewo+ID4+ID4gPiA+ID4gPiBAQCAtNTgsMTQgKzE1OSwxNCBAQCB2b2lkIHZr bXNfY3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiA+PiA+ID4gPiA+ ID4gICAgICAgICAgICAgaWYgKGRybV9mcmFtZWJ1ZmZlcl9yZWFkX3JlZmNvdW50KCZjcmNfZGF0 YS0+ZmIpID09IDApCj4gPj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7 Cj4gPj4gPiA+ID4gPiA+Cj4gPj4gPiA+ID4gPiA+IC0gICAgICAgICAgIGlmIChwbGFuZS0+dHlw ZSA9PSBEUk1fUExBTkVfVFlQRV9QUklNQVJZKSB7Cj4gPj4gPiA+ID4gPiA+ICsgICAgICAgICAg IGlmIChwbGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9QUklNQVJZKQo+ID4+ID4gPiA+ID4g PiAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfY3JjID0gY3JjX2RhdGE7Cj4gPj4gPiA+ID4g PiA+IC0gICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gPj4gPiA+ID4gPiA+IC0gICAgICAgICAg IH0KPiA+PiA+ID4gPiA+ID4gKyAgICAgICAgICAgZWxzZQo+ID4+ID4gPiA+ID4gPiArICAgICAg ICAgICAgICAgICAgIGN1cnNvcl9jcmMgPSBjcmNfZGF0YTsKPiA+PiA+ID4gPiA+ID4gICAgIH0K PiA+PiA+ID4gPiA+ID4KPiA+PiA+ID4gPiA+ID4gICAgIGlmIChwcmltYXJ5X2NyYykKPiA+PiA+ ID4gPiA+ID4gLSAgICAgICAgICAgY3JjMzIgPSBfdmttc19nZXRfY3JjKHByaW1hcnlfY3JjKTsK PiA+PiA+ID4gPiA+ID4gKyAgICAgICAgICAgY3JjMzIgPSBfdmttc19nZXRfY3JjKHByaW1hcnlf Y3JjLCBjdXJzb3JfY3JjKTsKPiA+PiA+ID4gPiA+ID4KPiA+PiA+ID4gPiA+ID4gICAgIGRybV9j cnRjX2FkZF9jcmNfZW50cnkoY3J0YywgdHJ1ZSwgY3J0Y19zdGF0ZS0+bl9mcmFtZSwgJmNyYzMy KTsKPiA+PiA+ID4gPiA+ID4gIH0KPiA+PiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92a21zL3ZrbXNfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5o Cj4gPj4gPiA+ID4gPiA+IGluZGV4IDM2ZTUyNGY3OTFmZS4uMTczODc1ZGMzNjFlIDEwMDY0NAo+ ID4+ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oCj4gPj4g PiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiA+PiA+ID4g PiA+ID4gQEAgLTI1LDggKzI1LDExIEBAIHN0YXRpYyBjb25zdCB1MzIgdmttc19jdXJzb3JfZm9y bWF0c1tdID0gewo+ID4+ID4gPiA+ID4gPiAgfTsKPiA+PiA+ID4gPiA+ID4KPiA+PiA+ID4gPiA+ ID4gIHN0cnVjdCB2a21zX2NyY19kYXRhIHsKPiA+PiA+ID4gPiA+ID4gLSAgIHN0cnVjdCBkcm1f cmVjdCBzcmM7Cj4gPj4gPiA+ID4gPiA+ICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyIGZiOwo+ ID4+ID4gPiA+ID4gPiArICAgc3RydWN0IGRybV9yZWN0IHNyYywgZHN0Owo+ID4+ID4gPiA+ID4g PiArICAgdW5zaWduZWQgaW50IG9mZnNldDsKPiA+PiA+ID4gPiA+ID4gKyAgIHVuc2lnbmVkIGlu dCBwaXRjaDsKPiA+PiA+ID4gPiA+ID4gKyAgIHVuc2lnbmVkIGludCBjcHA7Cj4gPj4gPiA+ID4g PiA+ICB9Owo+ID4+ID4gPiA+ID4gPgo+ID4+ID4gPiA+ID4gPiAgLyoqCj4gPj4gPiA+ID4gPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMgYi9kcml2ZXJz L2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMKPiA+PiA+ID4gPiA+ID4gaW5kZXggNDI4MjQ3ZDQw M2RjLi43MDQxMDA3Mzk2YWUgMTAwNjQ0Cj4gPj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS92a21zL3ZrbXNfcGxhbmUuYwo+ID4+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vdmttcy92a21zX3BsYW5lLmMKPiA+PiA+ID4gPiA+ID4gQEAgLTg1LDE2ICs4NSwyMiBAQCBz dGF0aWMgdm9pZCB2a21zX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCj4gPj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSkKPiA+PiA+ID4gPiA+ID4gIHsKPiA+PiA+ID4g PiA+ID4gICAgIHN0cnVjdCB2a21zX3BsYW5lX3N0YXRlICp2a21zX3BsYW5lX3N0YXRlOwo+ID4+ ID4gPiA+ID4gPiArICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZS0+c3RhdGUt PmZiOwo+ID4+ID4gPiA+ID4gPiAgICAgc3RydWN0IHZrbXNfY3JjX2RhdGEgKmNyY19kYXRhOwo+ ID4+ID4gPiA+ID4gPgo+ID4+ID4gPiA+ID4gPiAtICAgaWYgKCFwbGFuZS0+c3RhdGUtPmNydGMg fHwgIXBsYW5lLT5zdGF0ZS0+ZmIpCj4gPj4gPiA+ID4gPiA+ICsgICBpZiAoIXBsYW5lLT5zdGF0 ZS0+Y3J0YyB8fCAhZmIpCj4gPj4gPiA+ID4gPiA+ICAgICAgICAgICAgIHJldHVybjsKPiA+PiA+ ID4gPiA+ID4KPiA+PiA+ID4gPiA+ID4gICAgIHZrbXNfcGxhbmVfc3RhdGUgPSB0b192a21zX3Bs YW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSk7Cj4gPj4gPiA+ID4gPiA+ICsKPiA+PiA+ID4gPiA+ID4g ICAgIGNyY19kYXRhID0gdmttc19wbGFuZV9zdGF0ZS0+Y3JjX2RhdGE7Cj4gPj4gPiA+ID4gPiA+ ICAgICBtZW1jcHkoJmNyY19kYXRhLT5zcmMsICZwbGFuZS0+c3RhdGUtPnNyYywgc2l6ZW9mKHN0 cnVjdCBkcm1fcmVjdCkpOwo+ID4+ID4gPiA+ID4gPiAtICAgbWVtY3B5KCZjcmNfZGF0YS0+ZmIs IHBsYW5lLT5zdGF0ZS0+ZmIsIHNpemVvZihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyKSk7Cj4gPj4g PiA+ID4gPiA+ICsgICBtZW1jcHkoJmNyY19kYXRhLT5kc3QsICZwbGFuZS0+c3RhdGUtPmRzdCwg c2l6ZW9mKHN0cnVjdCBkcm1fcmVjdCkpOwo+ID4+ID4gPiA+ID4gPiArICAgbWVtY3B5KCZjcmNf ZGF0YS0+ZmIsIGZiLCBzaXplb2Yoc3RydWN0IGRybV9mcmFtZWJ1ZmZlcikpOwo+ID4+ID4gPiA+ ID4gPiAgICAgZHJtX2ZyYW1lYnVmZmVyX2dldCgmY3JjX2RhdGEtPmZiKTsKPiA+PiA+ID4gPiA+ ID4gKyAgIGNyY19kYXRhLT5vZmZzZXQgPSBmYi0+b2Zmc2V0c1swXTsKPiA+PiA+ID4gPiA+ID4g KyAgIGNyY19kYXRhLT5waXRjaCA9IGZiLT5waXRjaGVzWzBdOwo+ID4+ID4gPiA+ID4gPiArICAg Y3JjX2RhdGEtPmNwcCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKPiA+PiA+ID4gPiA+ID4gIH0KPiA+ PiA+ID4gPiA+ID4KPiA+PiA+ID4gPiA+ID4gIHN0YXRpYyBpbnQgdmttc19wbGFuZV9hdG9taWNf Y2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPj4gPiA+ID4gPiA+IC0tCj4gPj4gPiA+ ID4gPiA+IDIuMTcuMQo+ID4+ID4gPiA+ID4gPgo+ID4+ID4gPiA+ID4KPiA+PiA+ID4gPiA+IC0t Cj4gPj4gPiA+ID4gPiBEYW5pZWwgVmV0dGVyCj4gPj4gPiA+ID4gPiBTb2Z0d2FyZSBFbmdpbmVl ciwgSW50ZWwgQ29ycG9yYXRpb24KPiA+PiA+ID4gPiA+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCj4g Pj4gPiA+Cj4gPj4gPiA+IC0tCj4gPj4gPiA+IERhbmllbCBWZXR0ZXIKPiA+PiA+ID4gU29mdHdh cmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gPj4gPiA+IGh0dHA6Ly9ibG9nLmZmd2xs LmNoCj4gPj4KPiA+PiAtLQo+ID4+IERhbmllbCBWZXR0ZXIKPiA+PiBTb2Z0d2FyZSBFbmdpbmVl ciwgSW50ZWwgQ29ycG9yYXRpb24KPiA+PiBodHRwOi8vYmxvZy5mZndsbC5jaAo+IAo+IAo+IAo+ IC0tIAo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRp b24KPiArNDEgKDApIDc5IDM2NSA1NyA0OCAtIGh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=