From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8A56D6E18B for ; Wed, 22 Aug 2018 10:34:53 +0000 (UTC) From: Jani Nikula In-Reply-To: <20180821145820.GA2159@intel.com> References: <20180821001204.3385-1-rodrigo.vivi@intel.com> <877ekkb1xw.fsf@intel.com> <20180821145820.GA2159@intel.com> Date: Wed, 22 Aug 2018 13:35:09 +0300 Message-ID: <87wosiaduq.fsf@intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [RFC] tools/dpcd_dump: Introduce DPCD dump on IGT. 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: Rodrigo Vivi Cc: igt-dev@lists.freedesktop.org, Rafael Antognolli , Dhinakaran Pandiyan List-ID: T24gVHVlLCAyMSBBdWcgMjAxOCwgUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29t PiB3cm90ZToKPiBPbiBUdWUsIEF1ZyAyMSwgMjAxOCBhdCAxMDo0MjozNUFNICswMzAwLCBKYW5p IE5pa3VsYSB3cm90ZToKPj4gT24gTW9uLCAyMCBBdWcgMjAxOCwgUm9kcmlnbyBWaXZpIDxyb2Ry aWdvLnZpdmlAaW50ZWwuY29tPiB3cm90ZToKPj4gPiBUaGUgaWRlYSBpcyB0byByZW1vdmUgdGhl IGR1bXAgZnJvbSBpOTE1J3MgZGVidWdmcywgYnV0Cj4+ID4gYmVmb3JlIHdlIG5lZWQgdG8gYmUg YWJsZSB0byBrZWVwIHRoZSBjdXJyZW50IGRlYnVnIGRwY2QgbGlzdAo+PiA+IGFuZCBJR1Qgc2Vl bXMgYSBnb29kIHBsYWNlIHRvIGhhdmUgc29tZSBmbGV4aWJpbGl0eS4KPj4gCj4+IFNlZSBhbHNv IFsxXS4gSSdtIG5vdCBzdXJlIHdoYXQgdGhlIHN0YXR1cyBpcyBub3cuIFRhcnVuPwo+Cj4gb2gs IEkgaGFkIG1pc3NlZCB0aGF0LCBzb3JyeS4KPiBJIG5vdyByZW1lbWJlciBUYXJ1biBhbmQgREsg dGFsa2luZyBhYm91dCB0aGF0IGJ1dCBJIGhhZCBmb3Jnb3R0ZW4uLi4KPgo+PiAKPj4gSSBkb24n dCB0aGluayB3ZSBzaG91bGQgaGF2ZSBib3RoIGFzIHNlcGFyYXRlIGJpbmFyaWVzLgo+Cj4gSSBh Z3JlZSEgVGFydW4sIGZlZWwgZnJlZSB0byBnZXQgbXkgZHVtcCBmdW5jdGlvbnMgYW5kIG1lcmdl IHRvIHlvdXIKPiB3b3JrLgo+Cj4gbWF5YmUgbXkgb25lIGNvdWxkIGJlIGRlZmF1bHQgYmVoYXZp b3VyIG9mIHlvdXJzIHdoZW4gbm8gY29uZGl0aW9uCj4gaXMgZ2l2aW5nLgo+Cj4gTXkgaWRlYSBp cyB0byBzdGFydCB3aXRoIHRoZSBjdXJyZW50IGR1bXAgdGhhdCB3ZSBoYXZlIGluIGRlYnVnZnMK PiBhbmQgbGF0ZXIgdG8gZXhwYW5kIHRoYXQgdG8gYmUgbW9yZSBnZW5lcmljIGxpa2UgaW4gYSB0 eHQgbGlzdCBsaWtlCj4gd2UgaGF2ZSBmb3IgaW50ZWxfcmVnLgoKQW5kIG5vdyB3ZSdyZSBnb2lu ZyBmdWxsIGNpcmNsZSB3cnQgdGhlIGRpc2N1c3Npb24gaW4gWzFdLiBJZiB3ZSBib2x0ZWQKZHBj ZCBhY2Nlc3MgdG8gaW50ZWxfcmVnIGRpcmVjdGx5LCB3ZSdkIGdldCBhbGwgb2YgdGhhdCBmb3Ig ZnJlZS4uLgoKQlIsCkphbmkuCgoKCgo+Cj4gVGhhbmtzLAo+IFJvZHJpZ28uCj4KPj4gCj4+IEJS LAo+PiBKYW5pLgo+PiAKPj4gCj4+IFsxXSBodHRwOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9y Zy9wYXRjaC9tc2dpZC8yMDE4MDYxNDA3MTE0MS4xNDQyNzUtMS10YXJ1bi52eWFzQGludGVsLmNv bQo+PiAKPj4gCj4+ID4KPj4gPiBGSVhNRTogZmZmZmYgdHJhc2guLi4KPj4gPgo+PiA+IEN1cnJl bnQgZGVidWdmczoKPj4gPgo+PiA+ICQgc3VkbyBjYXQgL3N5cy9rZXJuZWwvZGVidWcvZHJpLzAv RFAtMS9pOTE1X2RwY2QKPj4gPiAwMDAwOiAxMiAxNCBjNCAwMSAwMSAwMCAwMSAwMCAwMiAwMiAw NiAwMCAwMCAwMCAwMgo+PiA+IDAwNzA6IDAwIDAwCj4+ID4gMDA4MDogMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAKPj4gPiAwMTAwOiAxNCA4NCAwMCAwNiAw NiAwNiAwNiAwMCAwMSAwNCAwMAo+PiA+IDAyMDA6IDQxIDAwIDc3IDc3IDAxIDAzIDIyIDIyCj4+ ID4gMDYwMDogMDEKPj4gPiAwNzAwOiAwMQo+PiA+IDA3MDE6IDAwIDAwIDAwIDAwCj4+ID4gMDcy MDogMDAgMDEgMDAgMDAgMDAgMDEgMDEgMDAgMDAgMDAgMDAgMDAgMDEgMDAgMDAgMDEKPj4gPiAw NzMyOiAwMCAwMAo+PiA+Cj4+ID4gJCBzdWRvIGNhdCAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvMC9l RFAtMS9pOTE1X2RwY2QKPj4gPiAwMDAwOiAxMiAxNCA4NCA0MCAwMCAwMCAwMSAwMSAwMiAwMCAw MCAwMCAwMCAwYiAwMAo+PiA+IDAwNzA6IDAxIDAwCj4+ID4gMDA4MDogMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAKPj4gPiAwMTAwOiAxNCAwNCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMAo+PiA+IDAyMDA6IDQxIDAwIDAwIDAwIDgwIDAwIDY2IDY2Cj4+ ID4gMDYwMDogMDEKPj4gPiAwNzAwOiAwMgo+PiA+IDA3MDE6IDlmIDQwIDAwIDAwCj4+ID4gMDcy MDogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDEgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAKPj4gPiAw NzMyOiAwMCAwMAo+PiA+Cj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4KPj4gPiBDdXJyZW50IGRwY2RfZHVtcCBwcm9wb3Nl ZCBoZXJlOgo+PiA+ICQgc3VkbyAuL2J1aWxkL3Rvb2xzL2RwY2RfZHVtcAo+PiA+Cj4+ID4gRHVt cGluZyBEUEREQy1CCj4+ID4gOgo+PiA+IDAwMDA6ICAxMiAxNCBmZmZmZmZjNCAwMSAwMSAwMCAw MSAwMCAwMiAwMiAwNiAwMCAwMCAwMCAwMgo+PiA+IDAwNzA6ICAwMCAwMAo+PiA+IDAwODA6ICAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMAo+PiA+IDAxMDA6 ICAxNCBmZmZmZmY4NCAwMCAwNiAwNiAwNiAwNiAwMCAwMSAwNCAwMAo+PiA+IDAyMDA6ICA0MSAw MCA3NyA3NyAwMSAwMyAyMiAyMgo+PiA+IDA2MDA6ICAwMQo+PiA+IDA3MDA6ICAwMQo+PiA+IDA3 MDE6ICAwMCAwMCAwMCAwMAo+PiA+IDA3MjA6ICAwMCAwMSAwMCAwMCAwMCAwMSAwMSAwMCAwMCAw MCAwMCAwMCAwMSAwMCAwMCAwMQo+PiA+IDA3MzI6ICAwMCAwMAo+PiA+Cj4+ID4gRFBDRCBEUERE Qy1DCj4+ID4gIHNlZW1zIG5vdCBhdmFpbGFibGUuIHNraXBwaW5nLi4uCj4+ID4gRHVtcGluZyBE UEREQy1BCj4+ID4gOgo+PiA+IDAwMDA6ICAxMiAxNCBmZmZmZmY4NCA0MCAwMCAwMCAwMSAwMSAw MiAwMCAwMCAwMCAwMCAwYiAwMAo+PiA+IDAwNzA6ICAwMSAwMAo+PiA+IDAwODA6ICAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMAo+PiA+IDAxMDA6ICAxNCAw NCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMAo+PiA+IDAyMDA6ICA0MSAwMCAwMCAwMCBmZmZm ZmY4MCAwMCA2NiA2Ngo+PiA+IDA2MDA6ICAwMQo+PiA+IDA3MDA6ICAwMgo+PiA+IDA3MDE6ICBm ZmZmZmY5ZiA0MCAwMCAwMAo+PiA+IDA3MjA6ICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMSAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMAo+PiA+IDA3MzI6ICAwMCAwMAo+PiA+Cj4+ID4gQ2M6IFJhZmFl bCBBbnRvZ25vbGxpIDxyYWZhZWwuYW50b2dub2xsaUBpbnRlbC5jb20+Cj4+ID4gQ2M6IEphbmkg TmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4+ID4gQ2M6IERoaW5ha2FyYW4gUGFuZGl5 YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPgo+PiA+IFNpZ25lZC1vZmYtYnk6IFJv ZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPj4gPiAtLS0KPj4gPiAgdG9vbHMv TWFrZWZpbGUuc291cmNlcyB8ICAgMSArCj4+ID4gIHRvb2xzL2RwY2RfZHVtcC5jICAgICAgfCAx NTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gPiAgdG9vbHMv bWVzb24uYnVpbGQgICAgICB8ICAgMSArCj4+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMTU0IGluc2Vy dGlvbnMoKykKPj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2RwY2RfZHVtcC5jCj4+ID4K Pj4gPiBkaWZmIC0tZ2l0IGEvdG9vbHMvTWFrZWZpbGUuc291cmNlcyBiL3Rvb2xzL01ha2VmaWxl LnNvdXJjZXMKPj4gPiBpbmRleCBhYmQyM2EwZi4uZjQ5MjFmODMgMTAwNjQ0Cj4+ID4gLS0tIGEv dG9vbHMvTWFrZWZpbGUuc291cmNlcwo+PiA+ICsrKyBiL3Rvb2xzL01ha2VmaWxlLnNvdXJjZXMK Pj4gPiBAQCAtNiw2ICs2LDcgQEAgbm9pbnN0X1BST0dSQU1TID0JCVwKPj4gPiAgCSQoTlVMTCkK Pj4gPiAgCj4+ID4gIHRvb2xzX3Byb2dfbGlzdHMgPQkJXAo+PiA+ICsJZHBjZF9kdW1wCQlcCj4+ ID4gIAlpZ3Rfc3RhdHMJCVwKPj4gPiAgCWludGVsX2F1ZGlvX2R1bXAJXAo+PiA+ICAJaW50ZWxf cmVnCQlcCj4+ID4gZGlmZiAtLWdpdCBhL3Rvb2xzL2RwY2RfZHVtcC5jIGIvdG9vbHMvZHBjZF9k dW1wLmMKPj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiA+IGluZGV4IDAwMDAwMDAwLi4xYjk4 OWU1Mwo+PiA+IC0tLSAvZGV2L251bGwKPj4gPiArKysgYi90b29scy9kcGNkX2R1bXAuYwo+PiA+ IEBAIC0wLDAgKzEsMTUyIEBACj4+ID4gKy8qCj4+ID4gKyAqIENvcHlyaWdodCDCqSAyMDE4IElu dGVsIENvcnBvcmF0aW9uCj4+ID4gKyAqCj4+ID4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4+ID4gKyAq IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz ICh0aGUgIlNvZnR3YXJlIiksCj4+ID4gKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhv dXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KPj4gPiArICogdGhl IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs IHN1YmxpY2Vuc2UsCj4+ID4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUs IGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+PiA+ICsgKiBTb2Z0d2FyZSBpcyBm dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ PiA+ICsgKgo+PiA+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt aXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4+ID4gKyAqIHBhcmFncmFwaCkgc2hh bGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0 aGUKPj4gPiArICogU29mdHdhcmUuCj4+ID4gKyAqCj4+ID4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQ Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9S Cj4+ID4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+PiA+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPj4gPiAr ICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xB SU0sIERBTUFHRVMgT1IgT1RIRVIKPj4gPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPj4gPiArICogRlJP TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP UiBPVEhFUiBERUFMSU5HUwo+PiA+ICsgKiBJTiBUSEUgU09GVFdBUkUuCj4+ID4gKyAqCj4+ID4g KyAqLwo+PiA+ICsKPj4gPiArI2luY2x1ZGUgPHN0ZGlvLmg+Cj4+ID4gKyNpbmNsdWRlIDxzdGRs aWIuaD4KPj4gPiArI2luY2x1ZGUgPHVuaXN0ZC5oPgo+PiA+ICsjaW5jbHVkZSA8c3lzL3R5cGVz Lmg+Cj4+ID4gKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgo+PiA+ICsjaW5jbHVkZSA8ZmNudGwuaD4K Pj4gPiArI2luY2x1ZGUgPGRpcmVudC5oPgo+PiA+ICsjaW5jbHVkZSA8c3RyaW5nLmg+Cj4+ID4g Kwo+PiA+ICtzdHJ1Y3QgZHBjZF9ibG9jayB7Cj4+ID4gKwkvKiBEUENEIGR1bXAgc3RhcnQgYWRk cmVzcy4gKi8KPj4gPiArCXVuc2lnbmVkIGludCBvZmZzZXQ7Cj4+ID4gKwkvKiBEUENEIGR1bXAg c2l6ZS4gSWYgdW5zZXQsIGRlZmF1bHRzIHRvIDEuICovCj4+ID4gKwlzaXplX3Qgc2l6ZTsKPj4g PiArfTsKPj4gPiArCj4+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHBjZF9ibG9jayBkcGNkX2R1 bXBbXSA9IHsKPj4gPiArCS8qIERQX0RQQ0RfUkVWICovCj4+ID4gKwl7IC5vZmZzZXQgPSAwLCAu c2l6ZSA9IDE1IH0sCj4+ID4gKwkvKiBEUF9QU1JfU1VQUE9SVCB0byBEUF9QU1JfQ0FQUyovCj4+ ID4gKwl7IC5vZmZzZXQgPSAgMHg3MCwgLnNpemUgPSAyIH0sCj4+ID4gKwkvKiBEUF9ET1dOU1RS RUFNX1BPUlRfMCAqLwo+PiA+ICsJeyAub2Zmc2V0ID0gIDB4ODAsIC5zaXplID0gMTYgfSwKPj4g PiArCS8qIERQX0xJTktfQldfU0VUIHRvIERQX0VEUF9DT05GSUdVUkFUSU9OX1NFVCAqLwo+PiA+ ICsJeyAub2Zmc2V0ID0gMHgxMDAsIC5zaXplID0gMTEgfSwKPj4gPiArCS8qIERQX1NJTktfQ09V TlQgdG8gRFBfQURKVVNUX1JFUVVFU1RfTEFORTJfMyAqLwo+PiA+ICsJeyAub2Zmc2V0ID0gMHgy MDAsIC5zaXplID0gOCB9LAo+PiA+ICsJLyogRFBfU0VUX1BPV0VSICovCj4+ID4gKwl7IC5vZmZz ZXQgPSAweDYwMCB9LAo+PiA+ICsJLyogRFBfRURQX0RQQ0RfUkVWICovCj4+ID4gKwl7IC5vZmZz ZXQgPSAgMHg3MDAgfSwKPj4gPiArCS8qIERQX0VEUF9HRU5FUkFMX0NBUF8xIHRvIERQX0VEUF9H RU5FUkFMX0NBUF8zICovCj4+ID4gKwl7IC5vZmZzZXQgPSAweDcwMSwgLnNpemUgPSA0IH0sCj4+ ID4gKwkvKiBEUF9FRFBfRElTUExBWV9DT05UUk9MX1JFR0lTVEVSIHRvIERQX0VEUF9CQUNLTElH SFRfRlJFUV9DQVBfTUFYX0xTQiAqLwo+PiA+ICsJeyAub2Zmc2V0ID0gMHg3MjAsIC5zaXplID0g MTZ9LAo+PiA+ICsJLyogRFBfRURQX0RCQ19NSU5JTVVNX0JSSUdIVE5FU1NfU0VUIHRvIERQX0VE UF9EQkNfTUFYSU1VTV9CUklHSFRORVNTX1NFVCAqLwo+PiA+ICsJeyAub2Zmc2V0ID0gIDB4NzMy LCAuc2l6ZSA9IDIgfSwKPj4gPiArfTsKPj4gPiArCj4+ID4gK3ZvaWQgZHVtcF9hbGwoaW50IGZk KQo+PiA+ICt7Cj4+ID4gKwlpbnQgcmV0LCBpLCBqLCBzaXplOwo+PiA+ICsgICAgICAgIGNoYXIg YnVmWzMyXTsKPj4gPiArCj4+ID4gKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGRwY2RfZHVtcCkg LyBzaXplb2YoZHBjZF9kdW1wWzBdKTsgaSsrKSB7Cj4+ID4gKwkJcmV0ID0gbHNlZWsoZmQsIGRw Y2RfZHVtcFtpXS5vZmZzZXQsIFNFRUtfU0VUKTsKPj4gPiArCQlpZiAocmV0IDwgMCkgewo+PiA+ ICsJCQlmcHJpbnRmKHN0ZGVyciwgImxzZWVrIHRvICUwNHggZmFpbGVkIVxuIiwgZHBjZF9kdW1w W2ldLm9mZnNldCk7Cj4+ID4gKwkJCXJldHVybjsKPj4gPiArCQl9Cj4+ID4gKwo+PiA+ICsJCXNp emUgPSBkcGNkX2R1bXBbaV0uc2l6ZSA/IGRwY2RfZHVtcFtpXS5zaXplOiAxOwo+PiA+ICsJCXBy aW50ZigiJTA0eDogIiwgZHBjZF9kdW1wW2ldLm9mZnNldCk7Cj4+ID4gKwkJcmV0ID0gcmVhZChm ZCwgJmJ1Ziwgc2l6ZSk7Cj4+ID4gKwkJaWYgKHJldCA8IDApIHsKPj4gPiArCQkJZnByaW50Zihz dGRlcnIsICJyZWFkIG9mICVkIGJ5dGVzIHRvICUwNHggZmFpbGVkIVxuIiwgc2l6ZSwgZHBjZF9k dW1wW2ldLm9mZnNldCk7Cj4+ID4gKwkJCXJldHVybjsKPj4gPiArCQl9Cj4+ID4gKwo+PiA+ICsJ CWZvciAoaiA9IDA7IGogPCBzaXplOyBqKyspCj4+ID4gKwkJCXByaW50ZigiICUwMngiLCBidWZb al0pOwo+PiA+ICsJCXByaW50ZigiXG4iKTsKPj4gPiArCX0KPj4gPiArfQo+PiA+ICsKPj4gPiAr aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+PiA+ICt7Cj4+ID4gKwlzdHJ1Y3QgZGly ZW50ICpkaXJlbnQ7Cj4+ID4gKwlESVIgKmRpcjsKPj4gPiArCWNoYXIgZGV2X3BhdGhbUEFUSF9N QVhdOwo+PiA+ICsJY2hhciBzeXNmc19wYXRoW1BBVEhfTUFYXTsKPj4gPiArCWludCBkZXZfZmQs IHN5c2ZzX2ZkLCByZXQgPSAwOwo+PiA+ICsJY2hhciBkcGNkX25hbWVbOF07Cj4+ID4gKwljaGFy IGRpc2NhcmQ7Cj4+ID4gKwo+PiA+ICsJZGlyID0gb3BlbmRpcigiL3N5cy9jbGFzcy9kcm1fZHBf YXV4X2Rldi8iKTsKPj4gPiArCWlmICghZGlyKSB7Cj4+ID4gKwkJZnByaW50ZihzdGRlcnIsICJm YWlsIHRvIHJlYWQgL2RldlxuIik7Cj4+ID4gKwkJcmV0dXJuIC0xOwo+PiA+ICsJfQo+PiA+ICsK Pj4gPiArCXdoaWxlICgoZGlyZW50ID0gcmVhZGRpcihkaXIpKSkgewo+PiA+ICsJCWlmIChzdHJu Y21wKGRpcmVudC0+ZF9uYW1lLCAiZHJtX2RwX2F1eCIsIDEwKSA9PSAwKSB7Cj4+ID4gKwkJCXNw cmludGYoZGV2X3BhdGgsICIvZGV2LyVzIiwgZGlyZW50LT5kX25hbWUpOwo+PiA+ICsJCQlzcHJp bnRmKHN5c2ZzX3BhdGgsICIvc3lzL2NsYXNzL2RybV9kcF9hdXhfZGV2LyVzL25hbWUiLAo+PiA+ ICsJCQkJZGlyZW50LT5kX25hbWUpOwo+PiA+ICsKPj4gPiArCQkJc3lzZnNfZmQgPSBvcGVuKHN5 c2ZzX3BhdGgsIE9fUkRPTkxZKTsKPj4gPiArCQkJaWYgKHN5c2ZzX2ZkIDwgMCkgewo+PiA+ICsJ CQkJZnByaW50ZihzdGRlcnIsImZhaWwgdG8gb3BlbiAlc1xuIiwgc3lzZnNfcGF0aCk7Cj4+ID4g KwkJCQljb250aW51ZTsKPj4gPiArCQkJfQo+PiA+ICsKPj4gPiArCQkJZGV2X2ZkID0gb3Blbihk ZXZfcGF0aCwgT19SRE9OTFkpOwo+PiA+ICsJCQlpZiAoZGV2X2ZkIDwgMCkgewo+PiA+ICsJCQkJ ZnByaW50ZihzdGRlcnIsImZhaWwgdG8gb3BlbiAlc1xuIiwgZGV2X3BhdGgpOwo+PiA+ICsJCQkJ Y29udGludWU7Cj4+ID4gKwkJCX0KPj4gPiArCj4+ID4gKwkJCXJldCA9IHJlYWQoc3lzZnNfZmQs ICZkcGNkX25hbWUsIHNpemVvZihkcGNkX25hbWUpKTsKPj4gPiArCQkJaWYgKHJldCA8IDApIHsK Pj4gPiArCQkJCWZwcmludGYoc3RkZXJyLCAiZmFpbCB0byByZWFkIGRwY2QgbmFtZSBmcm9tICVz XG5cbiIsIHN5c2ZzX3BhdGgpOwo+PiA+ICsJCQkJY29udGludWU7Cj4+ID4gKwkJCX0KPj4gPiAr CQkJZHBjZF9uYW1lW3JldF0gPSAnXDAnOwo+PiA+ICsKPj4gPiArCQkJLyogRHVtbXkgcmVhZCB0 byBjaGVjayBpZiBkcGNkIGlzIGF2YWlsYWJsZSAqLwo+PiA+ICsJCQlyZXQgPSByZWFkKGRldl9m ZCwgJmRpc2NhcmQsIDEpOwo+PiA+ICsJCQlpZiAocmV0ICE9IDEpIHsKPj4gPiArCQkJCWZwcmlu dGYoc3RkZXJyLCAiRFBDRCAlcyBzZWVtcyBub3QgYXZhaWxhYmxlLiBza2lwcGluZy4uLlxuIiwg ZHBjZF9uYW1lKTsKPj4gPiArCQkJCWNvbnRpbnVlOwo+PiA+ICsJCQl9Cj4+ID4gKwo+PiA+ICsJ CQlwcmludGYoIkR1bXBpbmcgJXM6XG4iLCBkcGNkX25hbWUpOwo+PiA+ICsJCQlkdW1wX2FsbChk ZXZfZmQpOwo+PiA+ICsJCQlwcmludGYoIlxuIik7Cj4+ID4gKwo+PiA+ICsKPj4gPiArCj4+ID4g KwkJCWNsb3NlKHN5c2ZzX2ZkKTsKPj4gPiArCQkJY2xvc2UoZGV2X2ZkKTsKPj4gPiArCQl9Cj4+ ID4gKwl9Cj4+ID4gKwo+PiA+ICsJY2xvc2VkaXIoZGlyKTsKPj4gPiArCj4+ID4gKwlyZXR1cm4g MDsKPj4gPiArfQo+PiA+IGRpZmYgLS1naXQgYS90b29scy9tZXNvbi5idWlsZCBiL3Rvb2xzL21l c29uLmJ1aWxkCj4+ID4gaW5kZXggZTQ1MTdkNjYuLjMzMjZhNWE3IDEwMDY0NAo+PiA+IC0tLSBh L3Rvb2xzL21lc29uLmJ1aWxkCj4+ID4gKysrIGIvdG9vbHMvbWVzb24uYnVpbGQKPj4gPiBAQCAt MTQsNiArMTQsNyBAQCBlbmRmb3JlYWNoCj4+ID4gIHRvb2xzX3Byb2dzID0gWwo+PiA+ICAJIyBG SVhNRSB3ZSBhbHJlYWR5IGhhdmUgYSBsaWJ0ZXN0Y2FzZSB3aXRoIHRoaXMgbmFtZSBhcyB0YXJn ZXQKPj4gPiAgCSMnaWd0X3N0YXRzJywKPj4gPiArCSdkcGNkX2R1bXAnLAo+PiA+ICAJJ2ludGVs X2F1ZGlvX2R1bXAnLAo+PiA+ICAJJ2ludGVsX2JhY2tsaWdodCcsCj4+ID4gIAknaW50ZWxfYmlv c19kdW1wZXInLAo+PiAKPj4gLS0gCj4+IEphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBH cmFwaGljcyBDZW50ZXIKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhp Y3MgQ2VudGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=