From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harry Wentland Subject: Re: [PATCH] drm: disable deep color when EDID violates spec Date: Tue, 10 Jan 2017 16:01:04 -0500 Message-ID: <6d21d10b-01a4-55ca-3e6d-e93839e07bda@amd.com> References: <20170105234523.5899-1-nicholas.sielicki@gmail.com> <20170110105213.GW31595@intel.com> <20170110174608.GH31595@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0045.outbound.protection.outlook.com [104.47.34.45]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2C95A6E776 for ; Tue, 10 Jan 2017 21:35:23 +0000 (UTC) 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: dri-devel@lists.freedesktop.org, =?UTF-8?Q?Ernst_Sj=c3=b6strand?= , Nicholas Sielicki , "Deucher, Alexander" , =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= List-Id: dri-devel@lists.freedesktop.org T24gMjAxNy0wMS0xMCAwMzo0MSBQTSwgSGFycnkgV2VudGxhbmQgd3JvdGU6Cj4gT24gMjAxNy0w MS0xMCAwMzoxMCBQTSwgQWxleCBEZXVjaGVyIHdyb3RlOgo+PiBPbiBUdWUsIEphbiAxMCwgMjAx NyBhdCAzOjAyIFBNLCBFcm5zdCBTasO2c3RyYW5kIDxlcm5zdHBAZ21haWwuY29tPgo+PiB3cm90 ZToKPj4+IEkga2luZG9mIGFzc3VtZSBEUCBpcyB0aGUgZGVmYXVsdCBjb25uZWN0aW9uIHRoZXNl IGRheXMgYW5kIHdpdGgKPj4+IEZyZWVzeW5jCj4+PiB5b3UgdXNlCj4+PiBEUCBvciBjb3Vyc2Us IGJ1dCB0aGlzIHF1ZXN0aW9uIHdhcyBzcGVjaWZpY2FsbHkgZm9yIEhETUkuCj4+PiBJIGd1ZXNz IHRoaXMgcGF0Y2ggZG9lc24ndCBhZmZlY3QgZGVlcCBjb2xvciBvdmVyIERQPwo+Pj4KPj4+IEFu eXdheSwgb25seSAxNyBvZiB0aG9zZSBtb25pdG9ycyBoYXZlIEZyZWVTeW5jIGJ1dCBhbG1vc3Qg YWxsIGhhdmUKPj4+IERQLCBzbwo+Pj4gcGVyaGFwcyB0aGV5IG9ubHkgc3VwcG9ydAo+Pj4gMTAg YnBjIHdoZW4gY29ubmVjdGVkIHdpdGggRFA/Cj4+Cj4+IFdlIHNlZSAxMCBicGMgb25seSBvdmVy IEhETUkgYSBsb3QgYXBwYXJlbnRseS4gIEkgZ3Vlc3MgYSBsb3Qgb2YKPj4gbW9uaXRvciB2ZW5k b3JzIGRvIHRoZSBtaW5pbXVtIG5lY2Vzc2FyeSBmb3IgZGVlcCBjb2xvci4KPj4KPgo+IFllcywg YXBwYXJlbnRseSB0aGVyZSBhcmUgYSBidW5jaCBvZiBIRE1JIGRpc3BsYXlzIHRoYXQgd2UgZHJp dmUgaW4KPiAxMGJwYyB0aGF0IG1pZ2h0IG9yIG1pZ2h0IG5vdCByZXBvcnQgMTJicGMgc3VwcG9y dC4gRnJvbSB0YWxraW5nIHRvIG91cgo+IEhETUkgZ3V5cyBpdCBzb3VuZHMgbGlrZSB0aGlzIGlz IGEgc2xpZ2h0bHkgYW1iaWd1b3VzIGFyZWEgaW4gdGhlIHNwZWMsCj4gZGVzcGl0ZSB3aGF0IHRo ZSBIRE1JIHNwZWMgcXVvdGUgbWVudGlvbmVkIGJ5IE5pY2hvbGFzIHNhaWQuIEknbGwgc2VlIGlm Cj4gSSBjYW4gZ2V0IG1vcmUgaW5mby4KPgoKQWRkaW5nIEVybnN0LCBOaWNob2xhcywgVmlsbGUs IEFsZXggYWdhaW4uCgpTbyBhcHBhcmVudGx5IHRoZSBzcGVjIGlzIHByZXR0eSBjbGVhciBhbmQg dGhlcmUncyBhIHNpbmsgY29tcGxpYW5jZSAKdGVzdCB0aGF0IHNob3VsZCBjb3ZlciB0aGlzLiBJ IGRvbid0IHJlYWxseSB0aGluayBpdCBtYWtlcyBzZW5zZSBmb3IgdGhlIApzb3VyY2UgZGV2aWNl IHRvIGJhYnlzaXQgdGhlIHNpbmsncyBiZWhhdmlvciwgdGhvdWdoLgoKSW4gZ2VuZXJhbCB3ZSBt aWdodCB3YW50IHRvIHRyeSBmb3IgYSBzb2x1dGlvbiB0aGF0IGdpdmVzIHRoZSBiZXN0IHVzZXIg CmV4cGVyaWVuY2UgYW5kIGhpZ2hlc3QgaW50ZXJvcGVyYWJpbGl0eSwgc28gY2hlY2sgd2hhdCBz aW5rIHN1cHBvcnRzLCAKY2hlY2sgd2hhdCBzb3VyY2Ugc3VwcG9ydHMsIGNoZWNrIHdoYXQgY2Fi bGUgY2FuIGRvLCBhbmQgZG8gYW4gCmludGVyc2VjdGlvbiBvZiBhbGwgdG8gZ2l2ZSB0aGUgYmVz dCB1c2VyIGV4cGVyaWVuY2UuCgpJIHN1Z2dlc3QgdG8gYmxvY2sgMTAtYml0IG9uIGRyaXZlcidz IHRoYXQgY2FuJ3QgaGFuZGxlIHRoaXMuCgpIYXJyeQoKCj4gSSdtIG5vdCBzdXJlIGl0IG1ha2Vz IHNlbnNlIHRvIGJsb2NrIGFsbCBkZWVwIGNvbG9yIG1vZGVzIGluIHRoaXMgY2FzZQo+IGZvciBh bGwgZHJpdmVycy4gT3RoZXIgSFcgKGUuZy4gQU1EJ3MpIGlzIHBlcmZlY3RseSBjYXBhYmxlIG9m IGRyaXZpbmcKPiAxMC1iaXQuIFdvdWxkIGl0IG1ha2Ugc2Vuc2UgdG8ganVzdCBibG9jayB0aGlz IG9uIHRoZSBpOTE1IHNpZGUgYXMgVmlsbGUKPiBhbGx1ZGVkIHRvIG9uIGFub3RoZXIgdGhyZWFk Pwo+Cj4gSGFycnkKPgo+PiBBbGV4Cj4+Cj4+Pgo+Pj4gUmVnYXJkcwo+Pj4gLy9Fcm5zdAo+Pj4K Pj4+IDIwMTctMDEtMTAgMjA6NTQgR01UKzAxOjAwIEFsZXggRGV1Y2hlciA8YWxleGRldWNoZXJA Z21haWwuY29tPjoKPj4+Pgo+Pj4+IE9uIFR1ZSwgSmFuIDEwLCAyMDE3IGF0IDEyOjQ2IFBNLCBW aWxsZSBTeXJqw6Rsw6QKPj4+PiA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+IHdyb3Rl Ogo+Pj4+PiBPbiBUdWUsIEphbiAxMCwgMjAxNyBhdCAxMjoyNzo0NVBNIC0wNTAwLCBBbGV4IERl dWNoZXIgd3JvdGU6Cj4+Pj4+PiBPbiBUdWUsIEphbiAxMCwgMjAxNyBhdCA2OjMzIEFNLCBFcm5z dCBTasO2c3RyYW5kIDxlcm5zdHBAZ21haWwuY29tPgo+Pj4+Pj4gd3JvdGU6Cj4+Pj4+Pj4gSXNu J3QgMTBicGMgdmVyeSBjb21tb24gYW1vbmcgbW9uaXRvcnMsIGFuZCAxMmJwYyB2ZXJ5IHJhcmU/ IE9yCj4+Pj4+Pj4gbWF5YmUKPj4+Pj4+PiBJJ20KPj4+Pj4+PiBjb25mdXNpbmcgdGhlIHRyYW5z cG9ydCBsYXllciB3aXRoIHRoZSBwcmVzZW50YXRpb24gY2FwYWJpbGl0aWVzLi4uPwo+Pj4+Pj4+ IEhlcmUgYXJlIDIwMSBtb25pdG9ycyB0aGF0IGNsYWltIDEwYnBjOgo+Pj4+Pj4+IGh0dHA6Ly9w cmljZXNweS5jby51ay9jYXRlZ29yeS5waHA/bD1zMzAwODU5NDM0Jm89ZWdfNDAxI3Byb2RsaXN0 YQo+Pj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gRldJVywgSSd2ZSBhbG1vc3QgbmV2ZXIgc2VlbiBhIG1v bml0b3IgdGhhdCBzdXBwb3J0cyAxMiBicGMsIGJ1dCBJJ3ZlCj4+Pj4+PiBzZWUgcXVpdGUgYSBm ZXcgMTAgYnBjIG1vbml0b3JzLgo+Pj4+Pgo+Pj4+PiBJJ3ZlIHNlZW4gcGxlbnR5IG9mIG1vbml0 b3JzIHRoYXQgZG8gMTBicGMgb3ZlciBEUCwgYnV0IEkndmUgbmV2ZXIKPj4+Pj4gc2Vlbgo+Pj4+ PiBhbnl0aGluZyB0aGF0IGRvZXMgMTBicGMgb3ZlciBIRE1JLiAxMmJwYyBvdmVyIEhETUkgaXMg cHJldHR5IGNvbW1vbgo+Pj4+PiBpbiAicHJvcGVyIiBUVnMgaW4gbXkgZXhwZXJpZW5jZS4KPj4+ Pj4KPj4+Pj4+IEkgY2FuIHRhbGsgdG8gb3VyIGRpc3BsYXkgdGVhbSB0bwo+Pj4+Pj4gc2VlIHdo YXQgb3RoZXIgT1NlcyBkby4KPj4+Pj4KPj4+Pj4gVGhhbmtzLiBUaGF0IHNob3VsZCBnaXZlIHVz IHNvbWUgaWRlYSBpZiBhbnlvbmUgZXZlciB0cmllZCAxMGJwYwo+Pj4+PiBvdmVyIEhETUkgb24g dGhlc2UgdGhpbmdzLgo+Pj4+Cj4+Pj4gV2UgYXBwYXJlbnRseSBzZWUgdGhpcyBwcmV0dHkgY29t bW9ubHksIGVzcGVjaWFsbHkgd2l0aCBmcmVlc3luYwo+Pj4+IG1vbml0b3JzLCBhbmQgd2Ugc3Vw cG9ydCBpdC4gIEl0IHNlZW1zIHRvIGJlIHByZXR0eSBwcmV2YWxlbnQgYmVjYXVzZQo+Pj4+IHlv dSBjYW4gc3VwcG9ydCBhIGhpZ2hlciByZWZyZXNoIHJhdGUgd2l0aCBhIGxvd2VyIGJwYy4KPj4+ Pgo+Pj4+IEFsZXgKPj4+Pgo+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IEFsZXgKPj4+Pj4+Cj4+Pj4+Pj4g UmVnYXJkcwo+Pj4+Pj4+IC8vRXJuc3QKPj4+Pj4+Pgo+Pj4+Pj4+IDIwMTctMDEtMTAgMTE6NTIg R01UKzAxOjAwIFZpbGxlIFN5cmrDpGzDpAo+Pj4+Pj4+IDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT46Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IE9uIFRodSwgSmFuIDA1LCAyMDE3IGF0IDA1OjQ1 OjIzUE0gLTA2MDAsIE5pY2hvbGFzIFNpZWxpY2tpIHdyb3RlOgo+Pj4+Pj4+Pj4gQXMgcGVyIHRo ZSBIRE1JIDEuMyBhbmQgMS40IHNwZWMsICJkZWVwIGNvbG9yIG1vZGVzIiBhcmUgY29sb3IKPj4+ Pj4+Pj4+IGRlcHRocwo+Pj4+Pj4+Pj4gZ3JlYXRlciB0aGFuIDI0IGJpdHMgcGVyIHBpeGVsLiBU aGUgc3BlYyBleHBsaWNpdGx5IHN0YXRlcywgIkFsbAo+Pj4+Pj4+Pj4gRGVlcAo+Pj4+Pj4+Pj4g Q29sb3IgbW9kZXMgYXJlIG9wdGlvbmFsIHRob3VnaCBpZiBhbiBIRE1JIFNvdXJjZSBvciBTaW5r IHN1cHBvcnRzCj4+Pj4+Pj4+PiBhbnkKPj4+Pj4+Pj4+IERlZXAgQ29sb3IgbW9kZSwgaXQgc2hh bGwgc3VwcG9ydCAzNi1iaXQgbW9kZS4iICg2LjIuNCBDb2xvciBEZXB0aAo+Pj4+Pj4+Pj4gUmVx dWlyZW1lbnRzKS4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBJIGNhbWUgYWNyb3NzIGEgbW9uaXRvciAo QWNlciBYMjMzSCkgdGhhdCBzdXBwbGllcyBhbiBpbGxlZ2FsIEVESUQKPj4+Pj4+Pj4+IHdoZXJl Cj4+Pj4+Pj4+PiBEQ18zMGJpdCBpcyBzZXQgYW5kIERDXzM2Yml0IGlzIG5vdCBzZXQuIFRoZSBl bmQgcmVzdWx0IGlzIGJhZGx5Cj4+Pj4+Pj4+PiBnYXJibGVkCj4+Pj4+Pj4+PiBvdXRwdXQgYmVj YXVzZSB0aGUgZHJpdmVyIGlzIHNlbmRpbmcgMzZCUFAgd2hlbiB0aGUgbW9uaXRvciBjYW4ndAo+ Pj4+Pj4+Pj4gaGFuZGxlCj4+Pj4+Pj4+PiBpdC4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBNdWNoIG9m IHRoZSBpbnRlbCBoYXJkd2FyZSBpcyBpbmNhcGFibGUgb2Ygb3BlcmF0aW5nIGF0IGFueQo+Pj4+ Pj4+Pj4gYml0LXBlci1jb21wb25lbnQgc2V0dGluZyBvdXRzaWRlIG9mIDggb3IgMTIsIGFuZCB0 aGUgc3BlYyBzZWVtcwo+Pj4+Pj4+Pj4gdG8KPj4+Pj4+Pj4+IGltcGx5IHRoYXQgaWYgYW55IGRl ZXAgY29sb3Igc3VwcG9ydCBpcyBmb3VuZCwgdGhlbiBpdCBpcyBhIHNhZmUKPj4+Pj4+Pj4+IGFz c3VtcHRpb24gdG8gb3BlcmF0ZSBhdCAxMi4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBUaGlzIHBhdGNo IGVuc3VyZXMgdGhhdCB0aGUgRURJRCBpcyB3aXRoaW4gdGhlIHNwZWMgKHNwZWNpZmljYWxseSwK Pj4+Pj4+Pj4+IHRoYXQKPj4+Pj4+Pj4+IERDXzM2Yml0IGlzIHNldCkgYmVmb3JlIGNvbW1pdHRp bmcgdG8gZ29pbmcgZm9yd2FyZCB3aXRoIGFueSBkZWVwCj4+Pj4+Pj4+PiBjb2xvcnMuICBUaGVy ZSB3YXMgYWxyZWFkeSBhIGNoZWNrIGZvciB0aGlzIEVESUQgaW5jb25zaXN0ZW5jeSwKPj4+Pj4+ Pj4+IGJ1dCBpdAo+Pj4+Pj4+Pj4gcmVzdWx0ZWQgb25seSBpbiBhIHdhcm5pbmcgYW5kIGRpZCBu b3QgZmFsbC1iYWNrIHRvIHNhZmVyCj4+Pj4+Pj4+PiBzZXR0aW5ncy4KPj4+Pj4+Pj4+Cj4+Pj4+ Pj4+PiBDQzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K Pj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IE5pY2hvbGFzIFNpZWxpY2tpIDxuaWNob2xhcy5zaWVs aWNraUBnbWFpbC5jb20+Cj4+Pj4+Pj4+PiAtLS0KPj4+Pj4+Pj4+ICBkcml2ZXJzL2dwdS9kcm0v ZHJtX2VkaWQuYyB8IDM1Cj4+Pj4+Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLQo+Pj4+Pj4+Pj4gIDEgZmlsZSBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCAxMiBkZWxl dGlvbnMoLSkKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9lZGlkLmMKPj4+Pj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMKPj4+Pj4+ Pj4+IGluZGV4IDMzNmJlMzFmZjNkZS4uNDJjZTNmNTRkMmRjIDEwMDY0NAo+Pj4+Pj4+Pj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMKPj4+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZWRpZC5jCj4+Pj4+Pj4+PiBAQCAtMzc3MiwzMCArMzc3MiwzNCBAQCBzdGF0aWMg dm9pZAo+Pj4+Pj4+Pj4gZHJtX3BhcnNlX2hkbWlfZGVlcF9jb2xvcl9pbmZvKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCj4+Pj4+Pj4+PiAgewo+Pj4+Pj4+Pj4gICAgICAgc3RydWN0 IGRybV9kaXNwbGF5X2luZm8gKmluZm8gPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm87Cj4+Pj4+ Pj4+PiAgICAgICB1bnNpZ25lZCBpbnQgZGNfYnBjID0gMDsKPj4+Pj4+Pj4+ICsgICAgIHU4IG1v ZGVzID0gMDsKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiAgICAgICAvKiBIRE1JIHN1cHBvcnRzIGF0IGxl YXN0IDggYnBjICovCj4+Pj4+Pj4+PiAgICAgICBpbmZvLT5icGMgPSA4Owo+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+ICsgICAgIC8qIEVuc3VyZSBhbGwgREMgbW9kZXMgYXJlIHVuc2V0IGlmIHdlIHJldHVy biBlYXJseSAqLwo+Pj4+Pj4+Pj4gKyAgICAgaW5mby0+ZWRpZF9oZG1pX2RjX21vZGVzID0gMDsK Pj4+Pj4+Pj4KPj4+Pj4+Pj4gQ2xlYXJpbmcgdGhpcyBpbiBkcm1fYWRkX2Rpc3BsYXlfaW5mbygp IHNob3VsZCBiZSBzdWZmaWNpZW50IHNpbmNlCj4+Pj4+Pj4+IHRoaXMgZ3V5IGRvZXNuJ3QgZ2V0 IGNhbGxlZCBmcm9tIGFueXdoZXJlIGVsc2UuIFNvIHRoaXMgcGFydCBjb3VsZAo+Pj4+Pj4+PiBi ZSBkcm9wcHBlZC4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gT3RoZXJ3aXNlIHRoaXMgZmVlbHMgbGlrZSBh IGRlY2VudCB3YXkgdG8gaGFuZGxlIHRoZSBwcm9ibGVtLiBXZQo+Pj4+Pj4+PiBjb3VsZCBvZiBj b3Vyc2UgdHJ5IHRvIHVzZSB0aGUgMTBicGMgKG9yIHdoYXRldmVyKSBkZWVwIGNvbG9yIG1vZGVz Cj4+Pj4+Pj4+IHRoZSBzaW5rIGNsYWltcyB0byBzdXBwb3J0LCBidXQgZ2l2ZW4gdGhhdCB0aGUg cGVvcGxlIGRlc2lnbmluZyB0aGUKPj4+Pj4+Pj4gdGhpbmcgZGlkbid0IGJvdGhlciByZWFkaW5n IHRoZSBzcGVjLCBpdCBzZWVtcyBzYWZlciB0byBqdXN0Cj4+Pj4+Pj4+IGRpc2FibGUKPj4+Pj4+ Pj4gZGVlcCBjb2xvciBzdXBwb3J0IGVudGlyZWx5Lgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBSZXZpZXdl ZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPj4+ Pj4+Pj4KPj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+ICAgICAgIGlmIChjZWFfZGJfcGF5bG9hZF9sZW4o aGRtaSkgPCA2KQo+Pj4+Pj4+Pj4gICAgICAgICAgICAgICByZXR1cm47Cj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4gICAgICAgaWYgKGhkbWlbNl0gJiBEUk1fRURJRF9IRE1JX0RDXzMwKSB7Cj4+Pj4+Pj4+ PiAgICAgICAgICAgICAgIGRjX2JwYyA9IDEwOwo+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICBpbmZv LT5lZGlkX2hkbWlfZGNfbW9kZXMgfD0gRFJNX0VESURfSERNSV9EQ18zMDsKPj4+Pj4+Pj4+ICsg ICAgICAgICAgICAgbW9kZXMgfD0gRFJNX0VESURfSERNSV9EQ18zMDsKPj4+Pj4+Pj4+ICAgICAg ICAgICAgICAgRFJNX0RFQlVHKCIlczogSERNSSBzaW5rIGRvZXMgZGVlcCBjb2xvciAzMC5cbiIs Cj4+Pj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0b3ItPm5hbWUpOwo+Pj4+ Pj4+Pj4gICAgICAgfQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ICAgICAgIGlmIChoZG1pWzZdICYgRFJN X0VESURfSERNSV9EQ18zNikgewo+Pj4+Pj4+Pj4gICAgICAgICAgICAgICBkY19icGMgPSAxMjsK Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAgaW5mby0+ZWRpZF9oZG1pX2RjX21vZGVzIHw9IERSTV9F RElEX0hETUlfRENfMzY7Cj4+Pj4+Pj4+PiArICAgICAgICAgICAgIG1vZGVzIHw9IERSTV9FRElE X0hETUlfRENfMzY7Cj4+Pj4+Pj4+PiAgICAgICAgICAgICAgIERSTV9ERUJVRygiJXM6IEhETUkg c2luayBkb2VzIGRlZXAgY29sb3IgMzYuXG4iLAo+Pj4+PiAgPj4gPiAgICAgICAgICAgICAgICAg ICAgICAgICBjb25uZWN0b3ItPm5hbWUpOwo+Pj4+Pj4+Pj4gICAgICAgfQo+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+ICAgICAgIGlmIChoZG1pWzZdICYgRFJNX0VESURfSERNSV9EQ180OCkgewo+Pj4+Pj4+ Pj4gICAgICAgICAgICAgICBkY19icGMgPSAxNjsKPj4+Pj4+Pj4+IC0gICAgICAgICAgICAgaW5m by0+ZWRpZF9oZG1pX2RjX21vZGVzIHw9IERSTV9FRElEX0hETUlfRENfNDg7Cj4+Pj4+Pj4+PiAr ICAgICAgICAgICAgIG1vZGVzIHw9IERSTV9FRElEX0hETUlfRENfNDg7Cj4+Pj4+Pj4+PiAgICAg ICAgICAgICAgIERSTV9ERUJVRygiJXM6IEhETUkgc2luayBkb2VzIGRlZXAgY29sb3IgNDguXG4i LAo+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdG9yLT5uYW1lKTsKPj4+ Pj4+Pj4+ICAgICAgIH0KPj4+Pj4+Pj4+IEBAIC0zODA2LDkgKzM4MTAsMjQgQEAgc3RhdGljIHZv aWQKPj4+Pj4+Pj4+IGRybV9wYXJzZV9oZG1pX2RlZXBfY29sb3JfaW5mbyhzdHJ1Y3QKPj4+Pj4+ Pj4+IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPj4+Pj4+Pj4+ICAgICAgICAgICAgICAgcmV0 dXJuOwo+Pj4+Pj4+Pj4gICAgICAgfQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ICsgICAgIC8qCj4+Pj4+ Pj4+PiArICAgICAgKiBBbGwgZGVlcCBjb2xvciBtb2RlcyBhcmUgb3B0aW9uYWwsIGJ1dCBpZiBh IHNpbmsgc3VwcG9ydHMKPj4+Pj4+Pj4+IGFueQo+Pj4+Pj4+Pj4gZGVlcAo+Pj4+Pj4+Pj4gKyAg ICAgICogY29sb3IgbW9kZSwgaXQgbXVzdCBzdXBwb3J0IDM2LWJpdCBtb2RlLiBJZiB0aGlzIGlz IGZvdW5kCj4+Pj4+Pj4+PiBub3QKPj4+Pj4+Pj4+ICsgICAgICAqIHRvIGJlIHRoZSBjYXNlLCBz aW5rIGlzIGluIHZpb2xhdGlvbiBvZiBIRE1JIDEuMyAvIDEuNAo+Pj4+Pj4+Pj4gc3BlYyBhbmQK Pj4+Pj4+Pj4+IGl0Cj4+Pj4+Pj4+PiArICAgICAgKiBpcyBwcnVkZW50IHRvIGRpc2FibGUgYWxs IGRlZXAgY29sb3IgbW9kZXMuIFJldHVybiBoZXJlCj4+Pj4+Pj4+PiBiZWZvcmUKPj4+Pj4+Pj4+ ICsgICAgICAqIGNvbW1pdHRpbmcgYnBjIGFuZCBlZGlkX2hkbWlfZGNfbW9kZXMuCj4+Pj4+Pj4+ PiArICAgICAgKi8KPj4+Pj4+Pj4+ICsgICAgIGlmICghKG1vZGVzICYgRFJNX0VESURfSERNSV9E Q18zNikpIHsKPj4+Pj4+Pj4+ICsgICAgICAgICAgICAgRFJNX0RFQlVHKCIlczogSERNSSBzaW5r IHNob3VsZCBkbyBEQ18zNiwgYnV0IGRvZXMKPj4+Pj4+Pj4+IG5vdCFcbiIsCj4+Pj4+Pj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0b3ItPm5hbWUpOwo+Pj4+Pj4+Pj4gKyAgICAg ICAgICAgICByZXR1cm47Cj4+Pj4+Pj4+PiArICAgICB9Cj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+PiAr Cj4+Pj4+Pj4+PiAgICAgICBEUk1fREVCVUcoIiVzOiBBc3NpZ25pbmcgSERNSSBzaW5rIGNvbG9y IGRlcHRoIGFzICVkCj4+Pj4+Pj4+PiBicGMuXG4iLAo+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAg IGNvbm5lY3Rvci0+bmFtZSwgZGNfYnBjKTsKPj4+Pj4+Pj4+ICAgICAgIGluZm8tPmJwYyA9IGRj X2JwYzsKPj4+Pj4+Pj4+ICsgICAgIGluZm8tPmVkaWRfaGRtaV9kY19tb2RlcyA9IG1vZGVzOwo+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ICAgICAgIC8qCj4+Pj4+Pj4+PiAgICAgICAgKiBEZWVwIGNvbG9y IHN1cHBvcnQgbWFuZGF0ZXMgUkdCNDQ0IHN1cHBvcnQgZm9yIGFsbCB2aWRlbwo+Pj4+Pj4+Pj4g QEAgLTM4MjMsMTUgKzM4NDIsNiBAQCBzdGF0aWMgdm9pZAo+Pj4+Pj4+Pj4gZHJtX3BhcnNlX2hk bWlfZGVlcF9jb2xvcl9pbmZvKHN0cnVjdAo+Pj4+Pj4+Pj4gZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAo+Pj4+Pj4+Pj4gICAgICAgICAgICAgICBEUk1fREVCVUcoIiVzOiBIRE1JIHNpbmsgZG9l cyBZQ1JDQjQ0NCBpbiBkZWVwCj4+Pj4+Pj4+PiBjb2xvci5cbiIsCj4+Pj4+Pj4+PiAgICAgICAg ICAgICAgICAgICAgICAgICBjb25uZWN0b3ItPm5hbWUpOwo+Pj4+Pj4+Pj4gICAgICAgfQo+Pj4+ Pj4+Pj4gLQo+Pj4+Pj4+Pj4gLSAgICAgLyoKPj4+Pj4+Pj4+IC0gICAgICAqIFNwZWMgc2F5cyB0 aGF0IGlmIGFueSBkZWVwIGNvbG9yIG1vZGUgaXMgc3VwcG9ydGVkIGF0Cj4+Pj4+Pj4+PiBhbGws Cj4+Pj4+Pj4+PiAtICAgICAgKiB0aGVuIGRlZXAgY29sb3IgMzYgYml0IG11c3QgYmUgc3VwcG9y dGVkLgo+Pj4+Pj4+Pj4gLSAgICAgICovCj4+Pj4+Pj4+PiAtICAgICBpZiAoIShoZG1pWzZdICYg RFJNX0VESURfSERNSV9EQ18zNikpIHsKPj4+Pj4+Pj4+IC0gICAgICAgICAgICAgRFJNX0RFQlVH KCIlczogSERNSSBzaW5rIHNob3VsZCBkbyBEQ18zNiwgYnV0IGRvZXMKPj4+Pj4+Pj4+IG5vdCFc biIsCj4+Pj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0b3ItPm5hbWUpOwo+ Pj4+Pj4+Pj4gLSAgICAgfQo+Pj4+Pj4+Pj4gIH0KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiAgc3RhdGlj IHZvaWQKPj4+Pj4+Pj4+IEBAIC0zODk1LDYgKzM5MDUsNyBAQCBzdGF0aWMgdm9pZCBkcm1fYWRk X2Rpc3BsYXlfaW5mbyhzdHJ1Y3QKPj4+Pj4+Pj4+IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK Pj4+Pj4+Pj4+ICAgICAgIC8qIGRyaXZlciBmaWd1cmVzIGl0IG91dCBpbiB0aGlzIGNhc2UgKi8K Pj4+Pj4+Pj4+ICAgICAgIGluZm8tPmJwYyA9IDA7Cj4+Pj4+Pj4+PiAgICAgICBpbmZvLT5jb2xv cl9mb3JtYXRzID0gMDsKPj4+Pj4+Pj4+ICsgICAgIGluZm8tPmVkaWRfaGRtaV9kY19tb2RlcyA9 IDA7Cj4+Pj4+Pj4+PiAgICAgICBpbmZvLT5jZWFfcmV2ID0gMDsKPj4+Pj4+Pj4+ICAgICAgIGlu Zm8tPm1heF90bWRzX2Nsb2NrID0gMDsKPj4+Pj4+Pj4+ICAgICAgIGluZm8tPmR2aV9kdWFsID0g ZmFsc2U7Cj4+Pj4+Pj4+PiAtLQo+Pj4+Pj4+Pj4gMi4xMS4wCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IC0t Cj4+Pj4+Pj4+IFZpbGxlIFN5cmrDpGzDpAo+Pj4+Pj4+PiBJbnRlbCBPVEMKPj4+Pj4+Pj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+Pj4+Pj4gZHJp LWRldmVsIG1haWxpbmcgbGlzdAo+Pj4+Pj4+PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4+Pj4+Pj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+Pj4+PiBkcmktZGV2ZWwgbWFp bGluZyBsaXN0Cj4+Pj4+Pj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4+Pj4+ IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cj4+Pj4+Pj4KPj4+Pj4KPj4+Pj4gLS0KPj4+Pj4gVmlsbGUgU3lyasOkbMOkCj4+Pj4+IEludGVs IE9UQwo+Pj4KPj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo+PgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK