From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 503AE6E178 for ; Wed, 3 Jul 2019 17:00:29 +0000 (UTC) From: "Ser, Simon" Date: Wed, 3 Jul 2019 17:00:25 +0000 Message-ID: <7d2e8abd6c1abb798170504ee6dea8527f194c5e.camel@intel.com> References: <20190702125038.21621-1-simon.ser@intel.com> <20190702125038.21621-5-simon.ser@intel.com> <20190702155103.GU5942@intel.com> <20190703125804.GY5942@intel.com> In-Reply-To: <20190703125804.GY5942@intel.com> Content-Language: en-US Content-ID: MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t 5/5] lib/igt_kms: use igt_edid to generate a 4K EDID List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: "ville.syrjala@linux.intel.com" Cc: "igt-dev@lists.freedesktop.org" , "Peres, Martin" List-ID: T24gV2VkLCAyMDE5LTA3LTAzIGF0IDE1OjU4ICswMzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 DQo+IE9uIFdlZCwgSnVsIDAzLCAyMDE5IGF0IDA4OjI0OjAyQU0gKzAwMDAsIFNlciwgU2ltb24g d3JvdGU6DQo+ID4gVGhhbmtzIGZvciB5b3VyIHJldmlld3MsIHRoZXNlIGFyZSBnb29kIHBvaW50 cyENCj4gPiANCj4gPiBSZXBsaWVzIGlubGluZS4NCj4gPiANCj4gPiBPbiBUdWUsIDIwMTktMDct MDIgYXQgMTg6NTEgKzAzMDAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToNCj4gPiA+IE9uIFR1ZSwg SnVsIDAyLCAyMDE5IGF0IDAzOjUwOjM4UE0gKzAzMDAsIFNpbW9uIFNlciB3cm90ZToNCj4gPiA+ ID4gVGhlIG5ldyBFRElEIGhhcyBiZWVuIGJ5dGUtYnktYnl0ZSBjaGVja2VkIHRvIGJlIGV4YWN0 bHkgdGhlIHNhbWUgYXMgYmVmb3JlLg0KPiA+ID4gPiANCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTog U2ltb24gU2VyIDxzaW1vbi5zZXJAaW50ZWwuY29tPg0KPiA+ID4gPiAtLS0NCj4gPiA+ID4gIGxp Yi9pZ3Rfa21zLmMgICAgICAgICAgICAgICB8IDEwNyArKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0NCj4gPiA+ID4gIGxpYi9pZ3Rfa21zLmggICAgICAgICAgICAgICB8ICAgMiAr LQ0KPiA+ID4gPiAgbGliL3Rlc3RzL2lndF9lZGlkLmMgICAgICAgIHwgICAxICsNCj4gPiA+ID4g IGxpYi90ZXN0cy9pZ3RfaGRtaV9pbmplY3QuYyB8ICAgMSAtDQo+ID4gPiA+ICB0ZXN0cy9rbXNf aGRtaV9pbmplY3QuYyAgICAgfCAgIDkgKy0tDQo+ID4gPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDY0 IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQ0KPiA+ID4gPiANCj4gPiA+ID4gZGlmZiAt LWdpdCBhL2xpYi9pZ3Rfa21zLmMgYi9saWIvaWd0X2ttcy5jDQo+ID4gPiA+IGluZGV4IDQ1Yzc5 YTM4MGRhZi4uNDQ0NjA1ZTRiMTEwIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9saWIvaWd0X2ttcy5j DQo+ID4gPiA+ICsrKyBiL2xpYi9pZ3Rfa21zLmMNCj4gPiA+ID4gQEAgLTI4NCw2ICsyODQsNjYg QEAgY29uc3QgdW5zaWduZWQgY2hhciAqaWd0X2ttc19nZXRfZHBfYXVkaW9fZWRpZCh2b2lkKQ0K PiA+ID4gPiAgCXJldHVybiByYXdfZWRpZDsNCj4gPiA+ID4gIH0NCj4gPiA+ID4gIA0KPiA+ID4g PiArc3RhdGljIGNvbnN0IHVpbnQ4X3QgZWRpZF80a19zdmRzW10gPSB7DQo+ID4gPiA+ICsJMzIg fCBDRUFfU1ZEX05BVElWRSwgLyogMTA4MHAgQCAyNEh6IChuYXRpdmUpICovDQo+ID4gPiA+ICsJ NSwgICAgICAgICAgICAgICAgICAgLyogMTA4MGkgQCA2MEh6ICovDQo+ID4gPiA+ICsJMjAsICAg ICAgICAgICAgICAgICAgLyogMTA4MGkgQCA1MEh6ICovDQo+ID4gPiA+ICsJNCwgICAgICAgICAg ICAgICAgICAgLyogNzIwcCBAIDYwSHogKi8NCj4gPiA+ID4gKwkxOSwgICAgICAgICAgICAgICAg ICAvKiA3MjBwIEAgNTBIeiAqLw0KPiA+ID4gPiArfTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArY29u c3QgdW5zaWduZWQgY2hhciAqaWd0X2ttc19nZXRfNGtfZWRpZCh2b2lkKQ0KPiA+ID4gPiArew0K PiA+ID4gPiArCXN0YXRpYyB1bnNpZ25lZCBjaGFyIHJhd19lZGlkWzI1Nl07DQo+ID4gPiA+ICsJ c3RydWN0IGVkaWQgKmVkaWQ7DQo+ID4gPiA+ICsJc3RydWN0IGVkaWRfZXh0ICplZGlkX2V4dDsN Cj4gPiA+ID4gKwlzdHJ1Y3QgZWRpZF9jZWEgKmVkaWRfY2VhOw0KPiA+ID4gPiArCWNoYXIgKmNl YV9kYXRhOw0KPiA+ID4gPiArCXN0cnVjdCBlZGlkX2NlYV9kYXRhX2Jsb2NrICpibG9jazsNCj4g PiA+ID4gKwljaGFyIHJhd19oZG1pW0hETUlfVlNEX01JTl9TSVpFICsgNl0gPSB7MH07DQo+ID4g PiA+ICsJc3RydWN0IGhkbWlfdnNkICpoZG1pOw0KPiA+ID4gPiArCXNpemVfdCBjZWFfZGF0YV9z aXplID0gMDsNCj4gPiA+ID4gKwlzaXplX3Qgc3Zkc19sZW47DQo+ID4gPiA+ICsNCj4gPiA+ID4g KwkvKiBDcmVhdGUgYSBuZXcgRURJRCBmcm9tIHRoZSBiYXNlIElHVCBFRElELCBhbmQgYWRkIGFu DQo+ID4gPiA+ICsJICogZXh0ZW5zaW9uIHRoYXQgYWR2ZXJ0aXNlcyA0SyBzdXBwb3J0LiAqLw0K PiA+ID4gPiArCWVkaWQgPSAoc3RydWN0IGVkaWQgKikgcmF3X2VkaWQ7DQo+ID4gPiA+ICsJbWVt Y3B5KGVkaWQsIGlndF9rbXNfZ2V0X2Jhc2VfZWRpZCgpLCBzaXplb2Yoc3RydWN0IGVkaWQpKTsN Cj4gPiA+IA0KPiA+ID4gVGhhdCBvbmx5IGNvbnRhaW5zIHRoZSBiYXNlIGJsb2NrLiBBcmUgd2Ug bGVhdmluZyBzdGFjayBnYXJiYWdlIGluIHRoZQ0KPiA+ID4gZXh0ZW5zaW9uIGJsb2NrPw0KPiA+ IA0KPiA+IHJhd19lZGlkIGlzIHplcm8taW5pdGlhbGl6ZWQuIGVkaWQgaXMganVzdCBhIHBvaW50 ZXIgdG8gcmF3X2VkaWQuDQo+IA0KPiBBaCwgSSBmYWlsZWQgdG8gbm90aWNlIHRoZSBzdGF0aWMu DQoNCkhtbSwgSSBndWVzcyBJIHNob3VsZCBhZGQgezB9IGp1c3QgZm9yIGdvb2QgbWVhc3VyZS4N Cg0KPiA+ID4gPiArCWVkaWQtPmV4dGVuc2lvbnNfbGVuID0gMTsNCj4gPiA+ID4gKwllZGlkX2V4 dCA9ICZlZGlkLT5leHRlbnNpb25zWzBdOw0KPiA+ID4gPiArCWVkaWRfY2VhID0gJmVkaWRfZXh0 LT5kYXRhLmNlYTsNCj4gPiA+ID4gKwljZWFfZGF0YSA9IGVkaWRfY2VhLT5kYXRhOw0KPiA+ID4g PiArDQo+ID4gPiA+ICsJLyogU2hvcnQgVmlkZW8gRGVzY3JpcHRvciAqLw0KPiA+ID4gPiArCWJs b2NrID0gKHN0cnVjdCBlZGlkX2NlYV9kYXRhX2Jsb2NrICopICZjZWFfZGF0YVtjZWFfZGF0YV9z aXplXTsNCj4gPiA+ID4gKwlzdmRzX2xlbiA9IHNpemVvZihlZGlkXzRrX3N2ZHMpIC8gc2l6ZW9m KGVkaWRfNGtfc3Zkc1swXSk7DQo+ID4gPiANCj4gPiA+IEkgdGhpbmsgd2UgaGF2ZSBhbiBBUlJB WV9TSVpFKCkuIEFsdGhvdWdoIHNpbmNlIHdlIGtub3cgdGhlc2UgYXJlIGJ5dGVzDQo+ID4gPiBt YXliZSBqdXN0IGEgc2l6ZW9mKCkgd291bGQgYmUgZ29vZCBlbm91Z2guDQo+ID4gDQo+ID4gRmFp cg0KPiA+IA0KPiA+ID4gPiArCWNlYV9kYXRhX3NpemUgKz0gZWRpZF9jZWFfZGF0YV9ibG9ja19z ZXRfc3ZkKGJsb2NrLCBlZGlkXzRrX3N2ZHMsDQo+ID4gPiA+ICsJCQkJCQkgICAgIHN2ZHNfbGVu KTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArCS8qIFZlbmRvciBTcGVjaWZpYyBEYXRhIGJsb2NrICov DQo+ID4gPiA+ICsJaGRtaSA9IChzdHJ1Y3QgaGRtaV92c2QgKikgcmF3X2hkbWk7DQo+ID4gPiA+ ICsJaGRtaS0+c3JjX3BoeV9hZGRyWzBdID0gMHgxMDsNCj4gPiA+ID4gKwloZG1pLT5zcmNfcGh5 X2FkZHJbMV0gPSAweDAwOw0KPiA+ID4gPiArCWhkbWktPmZsYWdzMSA9IDA7DQo+ID4gPiA+ICsJ aGRtaS0+bWF4X3RkbXNfY2xvY2sgPSAwOw0KPiA+ID4gPiArCWhkbWktPmZsYWdzMiA9IEhETUlf VlNEX1ZJREVPX1BSRVNFTlQ7DQo+ID4gPiA+ICsJaGRtaS0+ZGF0YVswXSA9IDB4MDA7IC8qIEhE TUkgdmlkZW8gZmxhZ3MgKi8NCj4gPiA+ID4gKwloZG1pLT5kYXRhWzFdID0gMSA8PCA1OyAvKiAx IFZJQyBlbnRyeSwgMCAzRCBlbnRyaWVzICovDQo+ID4gPiA+ICsJaGRtaS0+ZGF0YVsyXSA9IDB4 MDE7IC8qIDIxNjBwLCBzcGVjaWZpZWQgYXMgc2hvcnQgZGVzY3JpcHRvciAqLw0KPiA+ID4gPiAr DQo+ID4gPiA+ICsJYmxvY2sgPSAoc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxvY2sgKikgJmNlYV9k YXRhW2NlYV9kYXRhX3NpemVdOw0KPiA+ID4gPiArCWNlYV9kYXRhX3NpemUgKz0gZWRpZF9jZWFf ZGF0YV9ibG9ja19zZXRfaGRtaV92c2QoYmxvY2ssIGhkbWksDQo+ID4gPiA+ICsJCQkJCQkJICBz aXplb2YocmF3X2hkbWkpKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArCWFzc2VydChjZWFfZGF0YV9z aXplIDw9IHNpemVvZihlZGlkX2NlYS0+ZGF0YSkpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsJZWRp ZF9leHRfc2V0X2NlYShlZGlkX2V4dCwgY2VhX2RhdGFfc2l6ZSwgMCwgMCk7DQo+ID4gPiA+ICsN Cj4gPiA+ID4gKwllZGlkX3VwZGF0ZV9jaGVja3N1bShlZGlkKTsNCj4gPiA+ID4gKwllZGlkX2V4 dF91cGRhdGVfY2VhX2NoZWNrc3VtKGVkaWRfZXh0KTsNCj4gPiA+ID4gKwlyZXR1cm4gcmF3X2Vk aWQ7DQo+ID4gPiA+ICt9DQo+ID4gPiA+ICsNCj4gPiA+ID4gIGNvbnN0IGNoYXIgKiBjb25zdCBp Z3RfcGxhbmVfcHJvcF9uYW1lc1tJR1RfTlVNX1BMQU5FX1BST1BTXSA9IHsNCj4gPiA+ID4gIAlb SUdUX1BMQU5FX1NSQ19YXSA9ICJTUkNfWCIsDQo+ID4gPiA+ICAJW0lHVF9QTEFORV9TUkNfWV0g PSAiU1JDX1kiLA0KPiA+ID4gPiBAQCAtMTM0OCw4ICsxNDA4LDYgQEAgc3RydWN0IGVkaWRfYmxv Y2sgew0KPiA+ID4gPiAgICAgIHVuc2lnbmVkIGNoYXIgKmRhdGE7DQo+ID4gPiA+ICB9Ow0KPiA+ ID4gPiAgDQo+ID4gPiA+IC0jZGVmaW5lIERURF9TVVBQT1JUU19BVURJTyAxPDw2DQo+ID4gPiA+ IC0NCj4gPiA+ID4gIHN0YXRpYyBzdHJ1Y3QgZWRpZF9ibG9jaw0KPiA+ID4gPiAgaW5pdF9jZWFf YmxvY2soY29uc3QgdW5zaWduZWQgY2hhciAqZWRpZCwgc2l6ZV90IGxlbmd0aCwNCj4gPiA+ID4g IAkgICAgICAgdW5zaWduZWQgY2hhciAqbmV3X2VkaWRfcHRyW10sIHNpemVfdCAqbmV3X2xlbmd0 aCwNCj4gPiA+ID4gQEAgLTE0MzcsNTEgKzE0OTUsNiBAQCB2b2lkIGttc3Rlc3RfZWRpZF9hZGRf M2QoY29uc3QgdW5zaWduZWQgY2hhciAqZWRpZCwgc2l6ZV90IGxlbmd0aCwNCj4gPiA+ID4gIAl1 cGRhdGVfZWRpZF9jc3VtKG5ld19lZGlkLmRhdGEsIGxlbmd0aCk7DQo+ID4gPiA+ICB9DQo+ID4g PiA+ICANCj4gPiA+ID4gLS8qKg0KPiA+ID4gPiAtICoga21zdGVzdF9lZGlkX2FkZF80azoNCj4g PiA+ID4gLSAqIEBlZGlkOiBhbiBleGlzdGluZyB2YWxpZCBlZGlkIGJsb2NrDQo+ID4gPiA+IC0g KiBAbGVuZ3RoOiBsZW5ndGggb2YgQGVkaWQNCj4gPiA+ID4gLSAqIEBuZXdfZWRpZF9wdHI6IHBv aW50ZXIgdG8gd2hlcmUgdGhlIG5ldyBlZGlkIHdpbGwgYmUgcGxhY2VkDQo+ID4gPiA+IC0gKiBA bmV3X2xlbmd0aDogcG9pbnRlciB0byB0aGUgc2l6ZSBvZiB0aGUgbmV3IGVkaWQNCj4gPiA+ID4g LSAqDQo+ID4gPiA+IC0gKiBNYWtlcyBhIGNvcHkgb2YgYW4gZXhpc3RpbmcgZWRpZCBibG9jayBh bmQgYWRkcyBhbiBleHRlbnNpb24gaW5kaWNhdGluZw0KPiA+ID4gPiAtICogYSBIRE1JIDRLIG1v ZGUgaW4gdnNkYi4NCj4gPiA+ID4gLSAqLw0KPiA+ID4gPiAtdm9pZCBrbXN0ZXN0X2VkaWRfYWRk XzRrKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVkaWQsIHNpemVfdCBsZW5ndGgsDQo+ID4gPiA+IC0J CQkgdW5zaWduZWQgY2hhciAqbmV3X2VkaWRfcHRyW10sIHNpemVfdCAqbmV3X2xlbmd0aCkNCj4g PiA+ID4gLXsNCj4gPiA+ID4gLQljaGFyIHZzZGJfYmxvY2tfbGVuID0gMTI7DQo+ID4gPiA+IC0J c3RydWN0IGVkaWRfYmxvY2sgbmV3X2VkaWQgPSBpbml0X2NlYV9ibG9jayhlZGlkLCBsZW5ndGgs IG5ld19lZGlkX3B0ciwNCj4gPiA+ID4gLQkJCQkJCSAgICBuZXdfbGVuZ3RoLCB2c2RiX2Jsb2Nr X2xlbiwNCj4gPiA+ID4gLQkJCQkJCSAgICAwKTsNCj4gPiA+ID4gLQlpbnQgcG9zID0gbmV3X2Vk aWQucG9zOw0KPiA+ID4gPiAtDQo+ID4gPiA+IC0JLyogdnNkYiBibG9jayAoIGlkIHwgbGVuZ3Ro ICkgKi8NCj4gPiA+ID4gLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDMgPDwgNSB8ICh2c2RiX2Js b2NrX2xlbiAtIDEpOw0KPiA+ID4gPiAtCS8qIHJlZ2lzdHJhdGlvbiBpZCAqLw0KPiA+ID4gPiAt CW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgzOw0KPiA+ID4gPiAtCW5ld19lZGlkLmRhdGFbcG9z KytdID0gMHhjOw0KPiA+ID4gPiAtCW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgwOw0KPiA+ID4g PiAtCS8qIHNvdXJjZSBwaHlzaWNhbCBhZGRyZXNzICovDQo+ID4gPiA+IC0JbmV3X2VkaWQuZGF0 YVtwb3MrK10gPSAweDEwOw0KPiA+ID4gPiAtCW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgwMDsN Cj4gPiA+ID4gLQkvKiBTdXBwb3J0c19BSSAuLi4gZXRjICovDQo+ID4gPiA+IC0JbmV3X2VkaWQu ZGF0YVtwb3MrK10gPSAweDAwOw0KPiA+ID4gPiAtCS8qIE1heCBUTURTIENsb2NrICovDQo+ID4g PiA+IC0JbmV3X2VkaWQuZGF0YVtwb3MrK10gPSAweDAwOw0KPiA+ID4gPiAtCS8qIExhdGVuY3kg cHJlc2VudCwgSERNSSBWaWRlbyBQcmVzZW50ICovDQo+ID4gPiA+IC0JbmV3X2VkaWQuZGF0YVtw b3MrK10gPSAweDIwOw0KPiA+ID4gPiAtCS8qIEhETUkgVmlkZW8gKi8NCj4gPiA+ID4gLQluZXdf ZWRpZC5kYXRhW3BvcysrXSA9IDB4MDA7IC8qIDNEIHByZXNlbnQgKi8NCj4gPiA+ID4gLQ0KPiA+ ID4gPiAtCS8qIEhETUkgTU9ERSBMRU4gLS0gaG93IG1hbnkgZW50cmllcyAqLw0KPiA+ID4gPiAt CW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgyMDsNCj4gPiA+ID4gLQkvKiAyMTYwcCwgc3BlY2lm aWVkIGFzIHNob3J0IGRlc2NyaXB0b3IgKi8NCj4gPiA+ID4gLQluZXdfZWRpZC5kYXRhW3Bvcysr XSA9IDB4MDE7DQo+ID4gPiA+IC0NCj4gPiA+ID4gLQl1cGRhdGVfZWRpZF9jc3VtKG5ld19lZGlk LmRhdGEsIGxlbmd0aCk7DQo+ID4gPiA+IC19DQo+ID4gPiA+IC0NCj4gPiA+ID4gIC8qKg0KPiA+ ID4gPiAgICoga21zdGVzdF91bnNldF9hbGxfY3J0Y3M6DQo+ID4gPiA+ICAgKiBAZHJtX2ZkOiB0 aGUgRFJNIGZkDQo+ID4gPiA+IGRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5oIGIvbGliL2lndF9r bXMuaA0KPiA+ID4gPiBpbmRleCBmNzI1MDg2NDA3MTIuLjIwMzcxOTg3OGQ4NiAxMDA2NDQNCj4g PiA+ID4gLS0tIGEvbGliL2lndF9rbXMuaA0KPiA+ID4gPiArKysgYi9saWIvaWd0X2ttcy5oDQo+ ID4gPiA+IEBAIC0xOTUsNyArMTk1LDYgQEAgZW51bSBpbnRlbF9icm9hZGNhc3RfcmdiX21vZGUg ew0KPiA+ID4gPiAgYm9vbCBrbXN0ZXN0X2ZvcmNlX2Nvbm5lY3RvcihpbnQgZmQsIGRybU1vZGVD b25uZWN0b3IgKmNvbm5lY3RvciwNCj4gPiA+ID4gIAkJCSAgICAgZW51bSBrbXN0ZXN0X2ZvcmNl X2Nvbm5lY3Rvcl9zdGF0ZSBzdGF0ZSk7DQo+ID4gPiA+ICB2b2lkIGttc3Rlc3RfZWRpZF9hZGRf M2QoY29uc3QgdW5zaWduZWQgY2hhciAqZWRpZCwgc2l6ZV90IGxlbmd0aCwgdW5zaWduZWQgY2hh ciAqbmV3X2VkaWRfcHRyW10sIHNpemVfdCAqbmV3X2xlbmd0aCk7DQo+ID4gPiA+IC12b2lkIGtt c3Rlc3RfZWRpZF9hZGRfNGsoY29uc3QgdW5zaWduZWQgY2hhciAqZWRpZCwgc2l6ZV90IGxlbmd0 aCwgdW5zaWduZWQgY2hhciAqbmV3X2VkaWRfcHRyW10sIHNpemVfdCAqbmV3X2xlbmd0aCk7DQo+ ID4gPiA+ICB2b2lkIGttc3Rlc3RfZm9yY2VfZWRpZChpbnQgZHJtX2ZkLCBkcm1Nb2RlQ29ubmVj dG9yICpjb25uZWN0b3IsDQo+ID4gPiA+ICAJCQljb25zdCB1bnNpZ25lZCBjaGFyICplZGlkKTsN Cj4gPiA+ID4gIA0KPiA+ID4gPiBAQCAtNzYzLDYgKzc2Miw3IEBAIGNvbnN0IHVuc2lnbmVkIGNo YXIgKmlndF9rbXNfZ2V0X2Jhc2VfZWRpZCh2b2lkKTsNCj4gPiA+ID4gIGNvbnN0IHVuc2lnbmVk IGNoYXIgKmlndF9rbXNfZ2V0X2FsdF9lZGlkKHZvaWQpOw0KPiA+ID4gPiAgY29uc3QgdW5zaWdu ZWQgY2hhciAqaWd0X2ttc19nZXRfaGRtaV9hdWRpb19lZGlkKHZvaWQpOw0KPiA+ID4gPiAgY29u c3QgdW5zaWduZWQgY2hhciAqaWd0X2ttc19nZXRfZHBfYXVkaW9fZWRpZCh2b2lkKTsNCj4gPiA+ ID4gK2NvbnN0IHVuc2lnbmVkIGNoYXIgKmlndF9rbXNfZ2V0XzRrX2VkaWQodm9pZCk7DQo+ID4g PiA+ICANCj4gPiA+ID4gIHN0cnVjdCB1ZGV2X21vbml0b3IgKmlndF93YXRjaF9ob3RwbHVnKHZv aWQpOw0KPiA+ID4gPiAgYm9vbCBpZ3RfaG90cGx1Z19kZXRlY3RlZChzdHJ1Y3QgdWRldl9tb25p dG9yICptb24sDQo+ID4gPiA+IGRpZmYgLS1naXQgYS9saWIvdGVzdHMvaWd0X2VkaWQuYyBiL2xp Yi90ZXN0cy9pZ3RfZWRpZC5jDQo+ID4gPiA+IGluZGV4IGE4NDdkZjI3MjUyNS4uMWE3OGIzOGE5 NDViIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9saWIvdGVzdHMvaWd0X2VkaWQuYw0KPiA+ID4gPiAr KysgYi9saWIvdGVzdHMvaWd0X2VkaWQuYw0KPiA+ID4gPiBAQCAtNzYsNiArNzYsNyBAQCBpZ3Rf c2ltcGxlX21haW4NCj4gPiA+ID4gIAkJeyAiYmFzZSIsIGlndF9rbXNfZ2V0X2Jhc2VfZWRpZCwg MCB9LA0KPiA+ID4gPiAgCQl7ICJhbHQiLCBpZ3Rfa21zX2dldF9hbHRfZWRpZCwgMCB9LA0KPiA+ ID4gPiAgCQl7ICJoZG1pX2F1ZGlvIiwgaWd0X2ttc19nZXRfaGRtaV9hdWRpb19lZGlkLCAxIH0s DQo+ID4gPiA+ICsJCXsgIjRrIiwgaWd0X2ttc19nZXRfNGtfZWRpZCwgMSB9LA0KPiA+ID4gPiAg CQl7MH0sDQo+ID4gPiA+ICAJfSwgKmY7DQo+ID4gPiA+ICAJY29uc3QgdW5zaWduZWQgY2hhciAq ZWRpZDsNCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi90ZXN0cy9pZ3RfaGRtaV9pbmplY3QuYyBi L2xpYi90ZXN0cy9pZ3RfaGRtaV9pbmplY3QuYw0KPiA+ID4gPiBpbmRleCAyNTM0YjFhMjNhY2Iu LmM3MGMzMTk1Y2IxZCAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvbGliL3Rlc3RzL2lndF9oZG1pX2lu amVjdC5jDQo+ID4gPiA+ICsrKyBiL2xpYi90ZXN0cy9pZ3RfaGRtaV9pbmplY3QuYw0KPiA+ID4g PiBAQCAtNzIsNyArNzIsNiBAQCBpZ3Rfc2ltcGxlX21haW4NCj4gPiA+ID4gIAkJaGRtaV9pbmpl Y3RfZnVuYyBpbmplY3Q7DQo+ID4gPiA+ICAJfSBmdW5jc1tdID0gew0KPiA+ID4gPiAgCQl7ICIz RCIsIGttc3Rlc3RfZWRpZF9hZGRfM2QgfSwNCj4gPiA+ID4gLQkJeyAiNGsiLCBrbXN0ZXN0X2Vk aWRfYWRkXzRrIH0sDQo+ID4gPiA+ICAJCXsgTlVMTCwgTlVMTCB9LA0KPiA+ID4gPiAgCX0sICpm Ow0KPiA+ID4gPiAgDQo+ID4gPiA+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfaGRtaV9pbmplY3Qu YyBiL3Rlc3RzL2ttc19oZG1pX2luamVjdC5jDQo+ID4gPiA+IGluZGV4IDlhOTY4ZmE5ZTUwZS4u NjAxOThmNTI5ODE3IDEwMDY0NA0KPiA+ID4gPiAtLS0gYS90ZXN0cy9rbXNfaGRtaV9pbmplY3Qu Yw0KPiA+ID4gPiArKysgYi90ZXN0cy9rbXNfaGRtaV9pbmplY3QuYw0KPiA+ID4gPiBAQCAtNzYs OCArNzYsNyBAQCBnZXRfY29ubmVjdG9yKGludCBkcm1fZmQsIGRybU1vZGVSZXMgKnJlcykNCj4g PiA+ID4gIHN0YXRpYyB2b2lkDQo+ID4gPiA+ICBoZG1pX2luamVjdF80ayhpbnQgZHJtX2ZkLCBk cm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3IpDQo+ID4gPiA+ICB7DQo+ID4gPiA+IC0JdW5zaWdu ZWQgY2hhciAqZWRpZDsNCj4gPiA+ID4gLQlzaXplX3QgbGVuZ3RoOw0KPiA+ID4gPiArCWNvbnN0 IHVuc2lnbmVkIGNoYXIgKmVkaWQ7DQo+ID4gPiA+ICAJc3RydWN0IGttc3Rlc3RfY29ubmVjdG9y X2NvbmZpZyBjb25maWc7DQo+ID4gPiA+ICAJaW50IHJldCwgY2lkLCBpLCBjcnRjX21hc2sgPSAt MTsNCj4gPiA+ID4gIAlpbnQgZmJfaWQ7DQo+ID4gPiA+IEBAIC05MCw5ICs4OSw3IEBAIGhkbWlf aW5qZWN0XzRrKGludCBkcm1fZmQsIGRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcikNCj4gPiA+ ID4gIAkvKiA0SyByZXF1aXJlcyBhdCBsZWFzdCBIU1cgKi8NCj4gPiA+ID4gIAlpZ3RfcmVxdWly ZShJU19IQVNXRUxMKGRldmlkKSB8fCBpbnRlbF9nZW4oZGV2aWQpID49IDgpOw0KPiA+ID4gPiAg DQo+ID4gPiA+IC0Ja21zdGVzdF9lZGlkX2FkZF80ayhpZ3Rfa21zX2dldF9iYXNlX2VkaWQoKSwg RURJRF9MRU5HVEgsICZlZGlkLA0KPiA+ID4gPiAtCQkJICAgICZsZW5ndGgpOw0KPiA+ID4gPiAt DQo+ID4gPiA+ICsJZWRpZCA9IGlndF9rbXNfZ2V0XzRrX2VkaWQoKTsNCj4gPiA+ID4gIAlrbXN0 ZXN0X2ZvcmNlX2VkaWQoZHJtX2ZkLCBjb25uZWN0b3IsIGVkaWQpOw0KPiA+ID4gPiAgDQo+ID4g PiA+ICAJaWYgKCFrbXN0ZXN0X2ZvcmNlX2Nvbm5lY3Rvcihkcm1fZmQsIGNvbm5lY3RvciwgRk9S Q0VfQ09OTkVDVE9SX09OKSkNCj4gPiA+ID4gQEAgLTEzNSw4ICsxMzIsNiBAQCBoZG1pX2luamVj dF80ayhpbnQgZHJtX2ZkLCBkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3IpDQo+ID4gPiA+ICAN Cj4gPiA+ID4gIAlrbXN0ZXN0X2ZvcmNlX2Nvbm5lY3Rvcihkcm1fZmQsIGNvbm5lY3RvciwgRk9S Q0VfQ09OTkVDVE9SX1VOU1BFQ0lGSUVEKTsNCj4gPiA+ID4gIAlrbXN0ZXN0X2ZvcmNlX2VkaWQo ZHJtX2ZkLCBjb25uZWN0b3IsIE5VTEwpOw0KPiA+ID4gPiAtDQo+ID4gPiA+IC0JZnJlZShlZGlk KTsNCj4gPiA+ID4gIH0NCj4gPiA+ID4gIA0KPiA+ID4gPiAgc3RhdGljIHZvaWQNCj4gPiA+ID4g LS0gDQo+ID4gPiA+IDIuMjIuMA0KPiA+ID4gPiANCj4gPiA+ID4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gPiA+ID4gaWd0LWRldiBtYWlsaW5nIGxp c3QNCj4gPiA+ID4gaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gPiA+ID4gaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2DQpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcg bGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=