From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: Re: [PATCH 3/4] drm/i915: Remove the broken DP CRC support for g4x Date: Wed, 20 Feb 2019 11:32:59 -0800 Message-ID: <4e3fac873409d6b57e20b79e937b8a2b77c6a904.camel@intel.com> References: <20190214192219.3858-1-ville.syrjala@linux.intel.com> <20190214192219.3858-3-ville.syrjala@linux.intel.com> <20190215124729.GQ20097@intel.com> <20190215213458.GS20097@intel.com> <20190218175719.GV20097@intel.com> Reply-To: dhinakaran.pandiyan@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id B9BC68926C for ; Wed, 20 Feb 2019 19:33:12 +0000 (UTC) In-Reply-To: <20190218175719.GV20097@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyMDE5LTAyLTE4IGF0IDE5OjU3ICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 Cj4gT24gRnJpLCBGZWIgMTUsIDIwMTkgYXQgMDk6NDM6MzdQTSArMDAwMCwgUGFuZGl5YW4sIERo aW5ha2FyYW4gd3JvdGU6Cj4gPiBPbiBGcmksIDIwMTktMDItMTUgYXQgMjM6MzQgKzAyMDAsIFZp bGxlIFN5cmrDpGzDpCB3cm90ZToKPiA+ID4gT24gRnJpLCBGZWIgMTUsIDIwMTkgYXQgMDE6MDY6 MzJQTSAtMDgwMCwgRGhpbmFrYXJhbiBQYW5kaXlhbgo+ID4gPiB3cm90ZToKPiA+ID4gPiBPbiBG cmksIDIwMTktMDItMTUgYXQgMTQ6NDcgKzAyMDAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiA+ ID4gPiA+IE9uIFRodSwgRmViIDE0LCAyMDE5IGF0IDA2OjI2OjI5UE0gLTA4MDAsIERoaW5ha2Fy YW4gUGFuZGl5YW4KPiA+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPiBPbiBUaHUsIDIwMTktMDIt MTQgYXQgMjE6MjIgKzAyMDAsIFZpbGxlIFN5cmphbGEgd3JvdGU6Cj4gPiA+ID4gPiA+ID4gRnJv bTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4g PiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBEUCBDUkNzIGRvbid0IHJlYWxseSB3b3JrIG9uIGc0eC4g SWYgeW91IHdhbnQgYW55IENSQ3Mgb24KPiA+ID4gPiA+ID4gPiBEUAo+ID4gPiA+ID4gPiA+IHlv dQo+ID4gPiA+ID4gPiA+IG11c3QKPiA+ID4gPiA+ID4gPiBzZWxlY3QgdGhlIENSQyBzb3VyY2Ug YmVmb3JlIHRoZSBwb3J0IGlzIGVuYWJsZWQsCj4gPiA+ID4gPiA+ID4gb3RoZXJ3aXNlCj4gPiA+ ID4gPiA+ID4gdGhlCj4gPiA+ID4gPiA+ID4gQ1JDCj4gPiA+ID4gPiA+ID4gc291cmNlIHNlbGVj dCBiaXRzIHNpbXBseSBpZ25vcmUgYW55IHdyaXRlcyB0byB0aGVtLiBBbmQKPiA+ID4gPiA+ID4g PiBvbmNlCj4gPiA+ID4gPiA+ID4gdGhlCj4gPiA+ID4gPiA+ID4gcG9ydAo+ID4gPiA+ID4gPiA+ IGlzIGVuYWJsZWQgd2UgbXVzdG4ndCBjaGFuZ2UgdGhlIENSQyBzb3VyY2Ugc2VsZWN0IHVudGls Cj4gPiA+ID4gPiA+ID4gdGhlCj4gPiA+ID4gPiA+ID4gcG9ydAo+ID4gPiA+ID4gPiA+IGlzCj4g PiA+ID4gPiA+ID4gZGlzYWJsZWQuIFRoYXQgYWxtb3N0IHdvcmtzLCBidXQgbm90IHF1aXRlIDoo IEV2ZW50dWFsbHkKPiA+ID4gPiA+ID4gPiB0aGUKPiA+ID4gPiA+ID4gPiBDUkMKPiA+ID4gPiA+ ID4gPiBzb3VyY2UKPiA+ID4gPiA+ID4gPiBzZWxlY3QgYml0cyBnZXQgcGVybWFuZW50bHkgc3R1 Y2sgb25lIHdheSBvciB0aGUgb3RoZXIsCj4gPiA+ID4gPiA+ID4gYW5kCj4gPiA+ID4gPiA+ID4g YWZ0ZXIKPiA+ID4gPiA+ID4gPiB0aGF0Cj4gPiA+ID4gPiA+ID4gYSByZWJvb3QgKG9yIHBvc3Np Ymx5IGEgZGlzcGxheSByZXNldCkgaXMgbmVlZGVkIHRvIGdldAo+ID4gPiA+ID4gPiA+IHdvcmtp bmcKPiA+ID4gPiA+ID4gPiBDUkNzCj4gPiA+ID4gPiA+ID4gb24gdGhhdCBwaXBlIChub3QgbWF0 dGVyIHdoaWNoIENSQyBzb3VyY2Ugd2UgdHJ5IHRvIHVzZSkuCj4gPiA+ID4gPiA+ID4gCj4gPiA+ ID4gPiA+ID4gQWRkaXRpb25hbGx5IHRoZSBERlQgc2NyYW1ibGVyIHJlc2V0IGJpdHMgd2UncmUg dHJ5aW5nIHRvCj4gPiA+ID4gPiA+ID4gdXNlCj4gPiA+ID4gPiA+ID4gZG9uJ3QKPiA+ID4gPiA+ ID4gPiBzZWVtIHRvIGV4aXN0IG9uIGc0eC4gVGhlcmUgYXJlIHNvbWUgcG90ZW50aWFsbHkgcmVs ZXZhbnQKPiA+ID4gPiA+ID4gPiBsb29raW5nCj4gPiA+ID4gPiA+ID4gYml0cwo+ID4gPiA+ID4g PiA+IGluIHRoZSBwaXBlIHJlZ2lzdGVycywgYnV0IHdoZW4gSSB0cmllZCBpdCBJIGdvdCBzdGFi bGUKPiA+ID4gPiA+ID4gPiBsb29raW5nCj4gPiA+ID4gPiA+ID4gQ1JDcwo+ID4gPiA+ID4gPiA+ IHdpdGhvdXQgc2V0dGluZyBhbnkgYml0cyBmb3IgdGhpcy4KPiA+ID4gPiA+ID4gPiAKPiA+ID4g PiA+ID4gPiBJZiB0aGVyZSBpcyBhIHdheSB0byBtYWtlIERQIENSQ3Mgd29yayByZWxpYWJseSBv biBnNHgsIEkKPiA+ID4gPiA+ID4gPiB3YXNuJ3QKPiA+ID4gPiA+ID4gPiBhYmxlIHRvIGZpbmQg aXQuIFNvIGxldCdzIGp1c3QgcmVtb3ZlIHRoZSBicm9rZW4gY29kZSB3ZQo+ID4gPiA+ID4gPiA+ IGhhdmUuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gSSB0aGluayB3ZSBj YW4gbW9kaWZ5IGk5eHhfcGlwZV9jcmNfYXV0b19zb3VyY2UoKSB0byBwaWNrCj4gPiA+ID4gPiA+ ICJwaXBlIgo+ID4gPiA+ID4gPiBDUkMKPiA+ID4gPiA+ID4gd2hlbiB1c2Vyc3BhY2Ugc2VsZWN0 cyAiYXV0byIgYW5kIHRoZSBvdXRwdXQgaXMgRFAvZURQLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBO b3BlLiBTcGVjIHNheXM6Cj4gPiA+ID4gPiAiUGlwZSBDUkMgc2hvdWxkIG5vdCBiZSBydW4gd2hl biBEaXNwbGF5IFBvcnQgb3IgVFYgaXMKPiA+ID4gPiA+IGVuYWJsZWQgb24KPiA+ID4gPiA+IHRo aXMKPiA+ID4gPiA+ICBwaXBlLiIKPiA+ID4gPiA+IAo+ID4gPiA+ID4gYW5kCj4gPiA+ID4gPiAK PiA+ID4gPiA+ICJDUkMgU291cmNlIFNlbGVjdDogVGhlc2UgYml0cyBzZWxlY3QgdGhlIHNvdXJj ZSBvZiB0aGUgZGF0YQo+ID4gPiA+ID4gdG8KPiA+ID4gPiA+IHB1dAo+ID4gPiA+ID4gaW50bwo+ ID4gPiA+ID4gIHRoZSBDUkMgbG9naWMuCj4gPiA+ID4gPiAgMDAwOiBQaXBlIEEgKE5vdCBhdmFp bGFibGUgd2hlbiBEaXNwbGF5UG9ydCBvciBUViBpcyBlbmFibGVkCj4gPiA+ID4gPiBvbgo+ID4g PiA+ID4gdGhpcwo+ID4gPiA+ID4gIHBpcGUpIgo+ID4gPiA+ID4gCj4gPiA+ID4gCj4gPiA+ID4g QWZ0ZXIgZGlnZ2luZyB0aHJvdWdoIHNvbWUgb2xkIHNwZWNzLCBJIGRvIHNlZSB0aGlzIHJlc3Ry aWN0aW9uCj4gPiA+ID4gZm9yCj4gPiA+ID4gZ2VuLTQgYW5kIFZMViwgYnV0IGZvciBzb21lIHJl YXNvbiBub3QgZm9yIGdlbi0zIG9yIENIVi4gCj4gPiA+IAo+ID4gPiBnZW4zIHByZWRhdGVzIERQ IChnNHggYmVpbmcgdGhlIGZpcnN0IHBsYXRmb3JtIHRoYXQgaGFzIGl0KS4gSQo+ID4gPiBkb24n dAo+ID4gPiB0aGluayBTRFZPLT5EUCB3YXMgZXZlciBhIHRoaW5nLiBTRFZPLT5IRE1JIGRpZCBo YXBwZW4gYnV0IGV2ZW4KPiA+ID4gdGhhdAo+ID4gPiBvbmUgaXMgcXVpdGUgcmFyZS4KPiA+IAo+ ID4gVFY/IEkgc2VlIFRWIGluaXRpYWxpemF0aW9uIGZvciBhIGNvdXBsZSBvZiBnZW4tMyBwbGF0 Zm9ybXMgYnV0IHRoZQo+ID4gc3BlYyBkb2VzIG5vdCBzYXkgdGhhdCBwaXBlIENSQ3MgYXJlIG5v dCBhdmFpbGFibGUuCj4gCj4gQ291bGQganVzdCBiZSBhbiBvbWlzc2lvbiBpbiB0aGUgc3BlYy4g SSBkb24ndCB0aGluayBJIGFjdHVhbGx5Cj4gdGVzdGVkIHRvIHNlZSB3aGF0IGhhcHBlbnMgd2hl biB5b3UgdHJ5IHRvIHVzZSB0aGUgcGlwZSBDUkMgd2l0aCB0aGUKPiBUViBlbmNvZGVyLiBQcmVz dW1hYmx5IGl0IG1pZ2h0IGdpdmUgeW91IHNvbWV0aGluZyB1c2VmdWwsIGJ1dCBpdAo+IGNlcnRh aW5seSB3b3VsZG4ndCBhY2NvdW50IGZvciBhbnl0aGluZyBkb25lIGJ5IHRoZSBUViBlbmNvZGVy Lgo+IE5vdCB0aGF0IHdlIG5vcm1hbGx5IGNhcmUgYWJvdXQgdGhhdCBzdHVmZiBhbnl3YXkuCgpQ U1IyIG1pZ2h0IGJlIG9uZSBvZiB0aG9zZSBjYXNlcyB0aGF0IG1ha2VzIGVuY29kZXIgQ1JDcyBp bnRlcmVzdGluZyAtCmZvciBlLmcuLCBjb21wYXJlIERESSBDUkMgb2YgYSBQU1IyIFNVIHVwZGF0 ZSByZWdpb24gYWdhaW5zdCBhCnJlZmVyZW5jZS4gSSBkb24ndCBrbm93IGhvdyB3ZSBjYW4gZ2Vu ZXJhdGUgYSByZWZlcmVuY2UgQ1JDIGZvciBhIFNVCnVwZGF0ZSByZWdpb24gdGhvdWdoLgoKPiAK PiA+ID4gCj4gPiA+IFRoZSBkaXNwbGF5IGVuZ2luZSBzaWRlIG9mIENIViBpcyA5OS45JSBWTFYs IHdpdGggYSBmZXcgZXh0cmEKPiA+ID4gYml0cyBhbmQgcGllY2VzIGdsdWVkIG9uIHRvcC4KPiA+ IAo+ID4gVGhhbmtzIGZvciB0aGUgY2xhcmlmaWNhdGlvbiwgdGhlIENIViBzcGVjIGZvciBzb21l IHJlYXNvbiBtYWtlIGl0Cj4gPiBhCj4gPiBwb2ludCB0byBzcGVjaWZ5IFZMViBpbiBwYXJhbnRo ZXNpcwo+IAo+IFRoZXkgYmFzaWNhbGx5IGp1c3QgZGlkICdjcCBWTFZzcGVjIENIVnNwZWMnLCBh bmQgdGhlbiBlZGl0ZWQKPiBpdCBtaW5pbWFsbHkuIFNvIHlvdSBzaG91bGQgZ2VuZXJhbGx5IGlu dGVycHJldCB0aGUgIkRldlZMVioiCj4gdG8gbWVhbiAiVkxWL0NIViIuCgpHb3QgaXQsIHRoYW5r cyBmb3IgZXhwbGFpbmluZyA6KQoKLURLCgo+IAo+ID4gCj4gPiAwMDAwOiBQaXBlIEMgKE5vdCBh dmFpbGFibGUgd2hlbiBEaXNwbGF5UG9ydCBvciBUViBpcyBlbmFibGVkIG9uCj4gPiB0aGlzCj4g PiBwaXBlKSBbVkxWXQo+ID4gCj4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+IFRoZXJlIGlzIG5vIGdv b2QgY2hvaWNlIGZvciAiYXV0byIgb3RoZXIgdGhhbiBEUCBhbmQgc2luY2UgRFAKPiA+ID4gPiBk b2VzCj4gPiA+ID4gbm90Cj4gPiA+ID4gd29yaywgcmV0dXJuaW5nIC1FSU5WQUwgbWFrZXMgc2Vu c2UuCj4gPiA+ID4gUmV2aWV3ZWQtYnk6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4u cGFuZGl5YW5AaW50ZWwuY29tCj4gPiA+ID4gPgo+ID4gPiA+IAo+ID4gPiA+ID4gVGhvdWdoIEkg bXVzdCBhZG1pdCBJJ3ZlIG5ldmVyIGFjdHVhbGx5IHRyaWVkIGl0IHRvIHNlZSB3aGF0Cj4gPiA+ ID4gPiBhY3R1YWxseQo+ID4gPiA+ID4gaGFwcGVucy4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTog VmlsbGUgU3lyasOkbMOkIDwKPiA+ID4gPiA+ID4gPiB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KPiA+ID4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcGlwZV9jcmMuYyB8IDgwICsrKystLS0tLS0tLS0KPiA+ID4gPiA+ID4gPiAtLS0t Cj4gPiA+ID4gPiA+ID4gLS0tLQo+ID4gPiA+ID4gPiA+IC0tLS0KPiA+ID4gPiA+ID4gPiAtLQo+ ID4gPiA+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgNjkgZGVsZXRp b25zKC0pCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BpcGVfY3JjLmMKPiA+ID4gPiA+ID4gPiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BpcGVfY3JjLmMKPiA+ID4gPiA+ID4gPiBpbmRleCBmZTBmZjg5Yjk4 MGIuLjY2YmI3YjAzMTUzNyAxMDA2NDQKPiA+ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9waXBlX2NyYy5jCj4gPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcGlwZV9jcmMuYwo+ID4gPiA+ID4gPiA+IEBAIC0xOTEsOCArMTkxLDYg QEAgc3RhdGljIGludAo+ID4gPiA+ID4gPiA+IGk5eHhfcGlwZV9jcmNfY3RsX3JlZyhzdHJ1Y3QK PiA+ID4gPiA+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiA+ID4gPiAg CQkJCSBlbnVtIGludGVsX3BpcGVfY3JjX3NvdXJjZQo+ID4gPiA+ID4gPiA+ICpzb3VyY2UsCj4g PiA+ID4gPiA+ID4gIAkJCQkgdTMyICp2YWwpCj4gPiA+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ID4g PiAtCWJvb2wgbmVlZF9zdGFibGVfc3ltYm9scyA9IGZhbHNlOwo+ID4gPiA+ID4gPiA+IC0KPiA+ ID4gPiA+ID4gPiAgCWlmICgqc291cmNlID09IElOVEVMX1BJUEVfQ1JDX1NPVVJDRV9BVVRPKSB7 Cj4gPiA+ID4gPiA+ID4gIAkJaW50IHJldCA9IGk5eHhfcGlwZV9jcmNfYXV0b19zb3VyY2UoZGV2 X3ByaXYsCj4gPiA+ID4gPiA+ID4gcGlwZSwKPiA+ID4gPiA+ID4gPiBzb3VyY2UpOwo+ID4gPiA+ ID4gPiA+ICAJCWlmIChyZXQpCj4gPiA+ID4gPiA+ID4gQEAgLTIwOCw1NiArMjA2LDIzIEBAIHN0 YXRpYyBpbnQKPiA+ID4gPiA+ID4gPiBpOXh4X3BpcGVfY3JjX2N0bF9yZWcoc3RydWN0Cj4gPiA+ ID4gPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4gPiA+ID4gIAkJCXJl dHVybiAtRUlOVkFMOwo+ID4gPiA+ID4gPiA+ICAJCSp2YWwgPSBQSVBFX0NSQ19FTkFCTEUgfAo+ ID4gPiA+ID4gPiA+IFBJUEVfQ1JDX1NPVVJDRV9UVl9QUkU7Cj4gPiA+ID4gPiA+ID4gIAkJYnJl YWs7Cj4gPiA+ID4gPiA+ID4gLQljYXNlIElOVEVMX1BJUEVfQ1JDX1NPVVJDRV9EUF9COgo+ID4g PiA+ID4gPiA+IC0JCWlmICghSVNfRzRYKGRldl9wcml2KSkKPiA+ID4gPiA+ID4gPiAtCQkJcmV0 dXJuIC1FSU5WQUw7Cj4gPiA+ID4gPiA+ID4gLQkJKnZhbCA9IFBJUEVfQ1JDX0VOQUJMRSB8Cj4g PiA+ID4gPiA+ID4gUElQRV9DUkNfU09VUkNFX0RQX0JfRzRYOwo+ID4gPiA+ID4gPiA+IC0JCW5l ZWRfc3RhYmxlX3N5bWJvbHMgPSB0cnVlOwo+ID4gPiA+ID4gPiA+IC0JCWJyZWFrOwo+ID4gPiA+ ID4gPiA+IC0JY2FzZSBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfRFBfQzoKPiA+ID4gPiA+ID4gPiAt CQlpZiAoIUlTX0c0WChkZXZfcHJpdikpCj4gPiA+ID4gPiA+ID4gLQkJCXJldHVybiAtRUlOVkFM Owo+ID4gPiA+ID4gPiA+IC0JCSp2YWwgPSBQSVBFX0NSQ19FTkFCTEUgfAo+ID4gPiA+ID4gPiA+ IFBJUEVfQ1JDX1NPVVJDRV9EUF9DX0c0WDsKPiA+ID4gPiA+ID4gPiAtCQluZWVkX3N0YWJsZV9z eW1ib2xzID0gdHJ1ZTsKPiA+ID4gPiA+ID4gPiAtCQlicmVhazsKPiA+ID4gPiA+ID4gPiAtCWNh c2UgSU5URUxfUElQRV9DUkNfU09VUkNFX0RQX0Q6Cj4gPiA+ID4gPiA+ID4gLQkJaWYgKCFJU19H NFgoZGV2X3ByaXYpKQo+ID4gPiA+ID4gPiA+IC0JCQlyZXR1cm4gLUVJTlZBTDsKPiA+ID4gPiA+ ID4gPiAtCQkqdmFsID0gUElQRV9DUkNfRU5BQkxFIHwKPiA+ID4gPiA+ID4gPiBQSVBFX0NSQ19T T1VSQ0VfRFBfRF9HNFg7Cj4gPiA+ID4gPiA+ID4gLQkJbmVlZF9zdGFibGVfc3ltYm9scyA9IHRy dWU7Cj4gPiA+ID4gPiA+ID4gLQkJYnJlYWs7Cj4gPiA+ID4gPiA+ID4gIAljYXNlIElOVEVMX1BJ UEVfQ1JDX1NPVVJDRV9OT05FOgo+ID4gPiA+ID4gPiA+ICAJCSp2YWwgPSAwOwo+ID4gPiA+ID4g PiA+ICAJCWJyZWFrOwo+ID4gPiA+ID4gPiA+ICAJZGVmYXVsdDoKPiA+ID4gPiA+ID4gPiArCQkv Kgo+ID4gPiA+ID4gPiA+ICsJCSAqIFRoZSBEUCBDUkMgc291cmNlIGRvZXNuJ3Qgd29yayBvbiBn NHguCj4gPiA+ID4gPiA+ID4gKwkJICogSXQgY2FuIGJlIG1hZGUgdG8gd29yayB0byBzb21lIGRl Z3JlZSBieQo+ID4gPiA+ID4gPiA+IHNlbGVjdGluZwo+ID4gPiA+ID4gPiA+ICsJCSAqIHRoZSBj b3JyZWN0IENSQyBzb3VyY2UgYmVmb3JlIHRoZSBwb3J0IGlzCj4gPiA+ID4gPiA+ID4gZW5hYmxl ZCwKPiA+ID4gPiA+ID4gPiArCQkgKiBhbmQgbm90IHRvdWNoaW5nIHRoZSBDUkMgc291cmNlIGJp dHMgYWdhaW4KPiA+ID4gPiA+ID4gPiB1bnRpbAo+ID4gPiA+ID4gPiA+ICsJCSAqIHRoZSBwb3J0 IGlzIGRpc2FibGVkLiBCdXQgZXZlbiB0aGVuIHRoZSBiaXRzCj4gPiA+ID4gPiA+ID4gKwkJICog ZXZlbnR1YWxseSBnZXQgc3R1Y2sgYW5kIGEgcmVib290IGlzIG5lZWRlZAo+ID4gPiA+ID4gPiA+ IHRvIGdldAo+ID4gPiA+ID4gPiA+ICsJCSAqIHdvcmtpbmcgQ1JDcyBvbiB0aGUgcGlwZSBhZ2Fp bi4gTGV0J3Mgc2ltcGx5Cj4gPiA+ID4gPiA+ID4gKwkJICogcmVmdXNlIHRvIHVzZSBEUCBDUkNz IG9uIGc0eC4KPiA+ID4gPiA+ID4gPiArCQkgKi96Cj4gPiA+ID4gPiA+ID4gIAkJcmV0dXJuIC1F SU5WQUw7Cj4gPiA+ID4gPiA+ID4gIAl9Cj4gPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiA+IC0J LyoKPiA+ID4gPiA+ID4gPiAtCSAqIFdoZW4gdGhlIHBpcGUgQ1JDIHRhcCBwb2ludCBpcyBhZnRl ciB0aGUgdHJhbnNjb2RlcnMKPiA+ID4gPiA+ID4gPiB3ZSBuZWVkCj4gPiA+ID4gPiA+ID4gLQkg KiB0byB0d2VhayBzeW1ib2wtbGV2ZWwgZmVhdHVyZXMgdG8gcHJvZHVjZSBhCj4gPiA+ID4gPiA+ ID4gZGV0ZXJtaW5pc3RpYwo+ID4gPiA+ID4gPiA+IHNlcmllcyBvZgo+ID4gPiA+ID4gPiA+IC0J ICogc3ltYm9scyBmb3IgYSBnaXZlbiBmcmFtZS4gV2UgbmVlZCB0byByZXNldCB0aG9zZQo+ID4g PiA+ID4gPiA+IGZlYXR1cmVzCj4gPiA+ID4gPiA+ID4gb25seSBvbmNlCj4gPiA+ID4gPiA+ID4g LQkgKiBhIGZyYW1lIChpbnN0ZWFkIG9mIGV2ZXJ5IG50aCBzeW1ib2wpOgo+ID4gPiA+ID4gPiA+ IC0JICogICAtIERDLWJhbGFuY2U6IHVzZWQgdG8gZW5zdXJlIGEgYmV0dGVyIGNsb2NrCj4gPiA+ ID4gPiA+ID4gcmVjb3ZlcnkgZnJvbQo+ID4gPiA+ID4gPiA+IHRoZSBkYXRhCj4gPiA+ID4gPiA+ ID4gLQkgKiAgICAgbGluayAoU0RWTykKPiA+ID4gPiA+ID4gPiAtCSAqICAgLSBEaXNwbGF5UG9y dCBzY3JhbWJsaW5nOiB1c2VkIGZvciBFTUkgcmVkdWN0aW9uCj4gPiA+ID4gPiA+ID4gLQkgKi8K PiA+ID4gPiA+ID4gPiAtCWlmIChuZWVkX3N0YWJsZV9zeW1ib2xzKSB7Cj4gPiA+ID4gPiA+ID4g LQkJdTMyIHRtcCA9IEk5MTVfUkVBRChQT1JUX0RGVDJfRzRYKTsKPiA+ID4gPiA+ID4gPiAtCj4g PiA+ID4gPiA+ID4gLQkJV0FSTl9PTighSVNfRzRYKGRldl9wcml2KSk7Cj4gPiA+ID4gPiA+ID4g LQo+ID4gPiA+ID4gPiA+IC0JCUk5MTVfV1JJVEUoUE9SVF9ERlRfSTlYWCwKPiA+ID4gPiA+ID4g PiAtCQkJICAgSTkxNV9SRUFEKFBPUlRfREZUX0k5WFgpIHwKPiA+ID4gPiA+ID4gPiBEQ19CQUxB TkNFX1JFU0VUKTsKPiA+ID4gPiA+ID4gPiAtCj4gPiA+ID4gPiA+ID4gLQkJaWYgKHBpcGUgPT0g UElQRV9BKQo+ID4gPiA+ID4gPiA+IC0JCQl0bXAgfD0gUElQRV9BX1NDUkFNQkxFX1JFU0VUOwo+ ID4gPiA+ID4gPiA+IC0JCWVsc2UKPiA+ID4gPiA+ID4gPiAtCQkJdG1wIHw9IFBJUEVfQl9TQ1JB TUJMRV9SRVNFVDsKPiA+ID4gPiA+ID4gPiAtCj4gPiA+ID4gPiA+ID4gLQkJSTkxNV9XUklURShQ T1JUX0RGVDJfRzRYLCB0bXApOwo+ID4gPiA+ID4gPiA+IC0JfQo+ID4gPiA+ID4gPiA+IC0KPiA+ ID4gPiA+ID4gPiAgCXJldHVybiAwOwo+ID4gPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiA+ID4gIAo+ ID4gPiA+ID4gPiA+IEBAIC0yODIsMjQgKzI0Nyw2IEBAIHN0YXRpYyB2b2lkCj4gPiA+ID4gPiA+ ID4gdmx2X3VuZG9fcGlwZV9zY3JhbWJsZV9yZXNldChzdHJ1Y3QKPiA+ID4gPiA+ID4gPiBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiA+ID4gPiAgCWlmICghKHRtcCAmIFBJUEVf U0NSQU1CTEVfUkVTRVRfTUFTSykpCj4gPiA+ID4gPiA+ID4gIAkJdG1wICY9IH5EQ19CQUxBTkNF X1JFU0VUX1ZMVjsKPiA+ID4gPiA+ID4gPiAgCUk5MTVfV1JJVEUoUE9SVF9ERlQyX0c0WCwgdG1w KTsKPiA+ID4gPiA+ID4gPiAtCj4gPiA+ID4gPiA+ID4gLX0KPiA+ID4gPiA+ID4gPiAtCj4gPiA+ ID4gPiA+ID4gLXN0YXRpYyB2b2lkIGc0eF91bmRvX3BpcGVfc2NyYW1ibGVfcmVzZXQoc3RydWN0 Cj4gPiA+ID4gPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZQo+ID4gPiA+ID4gPiA+ICpkZXZfcHJpdiwK PiA+ID4gPiA+ID4gPiAtCQkJCQkgZW51bSBwaXBlIHBpcGUpCj4gPiA+ID4gPiA+ID4gLXsKPiA+ ID4gPiA+ID4gPiAtCXUzMiB0bXAgPSBJOTE1X1JFQUQoUE9SVF9ERlQyX0c0WCk7Cj4gPiA+ID4g PiA+ID4gLQo+ID4gPiA+ID4gPiA+IC0JaWYgKHBpcGUgPT0gUElQRV9BKQo+ID4gPiA+ID4gPiA+ IC0JCXRtcCAmPSB+UElQRV9BX1NDUkFNQkxFX1JFU0VUOwo+ID4gPiA+ID4gPiA+IC0JZWxzZQo+ ID4gPiA+ID4gPiA+IC0JCXRtcCAmPSB+UElQRV9CX1NDUkFNQkxFX1JFU0VUOwo+ID4gPiA+ID4g PiA+IC0JSTkxNV9XUklURShQT1JUX0RGVDJfRzRYLCB0bXApOwo+ID4gPiA+ID4gPiA+IC0KPiA+ ID4gPiA+ID4gPiAtCWlmICghKHRtcCAmIFBJUEVfU0NSQU1CTEVfUkVTRVRfTUFTSykpIHsKPiA+ ID4gPiA+ID4gPiAtCQlJOTE1X1dSSVRFKFBPUlRfREZUX0k5WFgsCj4gPiA+ID4gPiA+ID4gLQkJ CSAgIEk5MTVfUkVBRChQT1JUX0RGVF9JOVhYKSAmCj4gPiA+ID4gPiA+ID4gfkRDX0JBTEFOQ0Vf UkVTRVQpOwo+ID4gPiA+ID4gPiA+IC0JfQo+ID4gPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiA+ID4g IAo+ID4gPiA+ID4gPiA+ICBzdGF0aWMgaW50IGlsa19waXBlX2NyY19jdGxfcmVnKGVudW0KPiA+ ID4gPiA+ID4gPiBpbnRlbF9waXBlX2NyY19zb3VyY2UKPiA+ID4gPiA+ID4gPiAqc291cmNlLAo+ ID4gPiA+ID4gPiA+IEBAIC00ODUsOSArNDMyLDYgQEAgc3RhdGljIGludAo+ID4gPiA+ID4gPiA+ IGk5eHhfY3JjX3NvdXJjZV92YWxpZChzdHJ1Y3QKPiA+ID4gPiA+ID4gPiBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiA+ID4gPiA+ID4gPiAgCXN3aXRjaCAoc291cmNlKSB7Cj4gPiA+ID4g PiA+ID4gIAljYXNlIElOVEVMX1BJUEVfQ1JDX1NPVVJDRV9QSVBFOgo+ID4gPiA+ID4gPiA+ICAJ Y2FzZSBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfVFY6Cj4gPiA+ID4gPiA+ID4gLQljYXNlIElOVEVM X1BJUEVfQ1JDX1NPVVJDRV9EUF9COgo+ID4gPiA+ID4gPiA+IC0JY2FzZSBJTlRFTF9QSVBFX0NS Q19TT1VSQ0VfRFBfQzoKPiA+ID4gPiA+ID4gPiAtCWNhc2UgSU5URUxfUElQRV9DUkNfU09VUkNF X0RQX0Q6Cj4gPiA+ID4gPiA+ID4gIAljYXNlIElOVEVMX1BJUEVfQ1JDX1NPVVJDRV9OT05FOgo+ ID4gPiA+ID4gPiA+ICAJCXJldHVybiAwOwo+ID4gPiA+ID4gPiA+ICAJZGVmYXVsdDoKPiA+ID4g PiA+ID4gPiBAQCAtNjEyLDkgKzU1Niw3IEBAIGludCBpbnRlbF9jcnRjX3NldF9jcmNfc291cmNl KHN0cnVjdAo+ID4gPiA+ID4gPiA+IGRybV9jcnRjCj4gPiA+ID4gPiA+ID4gKmNydGMsIGNvbnN0 IGNoYXIgKnNvdXJjZV9uYW1lKQo+ID4gPiA+ID4gPiA+ICAJUE9TVElOR19SRUFEKFBJUEVfQ1JD X0NUTChjcnRjLT5pbmRleCkpOwo+ID4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gPiAgCWlmICgh c291cmNlKSB7Cj4gPiA+ID4gPiA+ID4gLQkJaWYgKElTX0c0WChkZXZfcHJpdikpCj4gPiA+ID4g PiA+ID4gLQkJCWc0eF91bmRvX3BpcGVfc2NyYW1ibGVfcmVzZXQoZGV2X3ByaXYsCj4gPiA+ID4g PiA+ID4gY3J0Yy0KPiA+ID4gPiA+ID4gPiA+IGluZGV4KTsKPiA+ID4gPiA+ID4gPiAKPiA+ID4g PiA+ID4gPiAtCQllbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fAo+ID4gPiA+ID4g PiA+IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ID4gPiA+ID4gPiA+ICsJCWlmIChJU19WQUxM RVlWSUVXKGRldl9wcml2KSB8fAo+ID4gPiA+ID4gPiA+IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYp KQo+ID4gPiA+ID4gPiA+ICAJCQl2bHZfdW5kb19waXBlX3NjcmFtYmxlX3Jlc2V0KGRldl9wcml2 LAo+ID4gPiA+ID4gPiA+IGNydGMtCj4gPiA+ID4gPiA+ID4gPiBpbmRleCk7Cj4gPiA+ID4gPiA+ ID4gCj4gPiA+ID4gPiA+ID4gIAkJZWxzZSBpZiAoKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8Cj4g PiA+ID4gPiA+ID4gIAkJCSAgSVNfQlJPQURXRUxMKGRldl9wcml2KSkgJiYgY3J0Yy0KPiA+ID4g PiA+ID4gPiA+IGluZGV4ID09Cj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gUElQRV9BKQo+ ID4gPiA+ID4gCj4gPiA+ID4gPiAKPiA+ID4gCj4gPiA+IAo+IAo+IAoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4