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 BF9F5899F3 for ; Tue, 21 Aug 2018 07:42:18 +0000 (UTC) From: Jani Nikula In-Reply-To: <20180821001204.3385-1-rodrigo.vivi@intel.com> References: <20180821001204.3385-1-rodrigo.vivi@intel.com> Date: Tue, 21 Aug 2018 10:42:35 +0300 Message-ID: <877ekkb1xw.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 , igt-dev@lists.freedesktop.org Cc: Rafael Antognolli , Dhinakaran Pandiyan , Rodrigo Vivi List-ID: T24gTW9uLCAyMCBBdWcgMjAxOCwgUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29t PiB3cm90ZToKPiBUaGUgaWRlYSBpcyB0byByZW1vdmUgdGhlIGR1bXAgZnJvbSBpOTE1J3MgZGVi dWdmcywgYnV0Cj4gYmVmb3JlIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBrZWVwIHRoZSBjdXJyZW50 IGRlYnVnIGRwY2QgbGlzdAo+IGFuZCBJR1Qgc2VlbXMgYSBnb29kIHBsYWNlIHRvIGhhdmUgc29t ZSBmbGV4aWJpbGl0eS4KClNlZSBhbHNvIFsxXS4gSSdtIG5vdCBzdXJlIHdoYXQgdGhlIHN0YXR1 cyBpcyBub3cuIFRhcnVuPwoKSSBkb24ndCB0aGluayB3ZSBzaG91bGQgaGF2ZSBib3RoIGFzIHNl cGFyYXRlIGJpbmFyaWVzLgoKQlIsCkphbmkuCgoKWzFdIGh0dHA6Ly9wYXRjaHdvcmsuZnJlZWRl c2t0b3Aub3JnL3BhdGNoL21zZ2lkLzIwMTgwNjE0MDcxMTQxLjE0NDI3NS0xLXRhcnVuLnZ5YXNA aW50ZWwuY29tCgoKPgo+IEZJWE1FOiBmZmZmZiB0cmFzaC4uLgo+Cj4gQ3VycmVudCBkZWJ1Z2Zz Ogo+Cj4gJCBzdWRvIGNhdCAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvMC9EUC0xL2k5MTVfZHBjZAo+ IDAwMDA6IDEyIDE0IGM0IDAxIDAxIDAwIDAxIDAwIDAyIDAyIDA2IDAwIDAwIDAwIDAyCj4gMDA3 MDogMDAgMDAKPiAwMDgwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMAo+IDAxMDA6IDE0IDg0IDAwIDA2IDA2IDA2IDA2IDAwIDAxIDA0IDAwCj4gMDIwMDog NDEgMDAgNzcgNzcgMDEgMDMgMjIgMjIKPiAwNjAwOiAwMQo+IDA3MDA6IDAxCj4gMDcwMTogMDAg MDAgMDAgMDAKPiAwNzIwOiAwMCAwMSAwMCAwMCAwMCAwMSAwMSAwMCAwMCAwMCAwMCAwMCAwMSAw MCAwMCAwMQo+IDA3MzI6IDAwIDAwCj4KPiAkIHN1ZG8gY2F0IC9zeXMva2VybmVsL2RlYnVnL2Ry aS8wL2VEUC0xL2k5MTVfZHBjZAo+IDAwMDA6IDEyIDE0IDg0IDQwIDAwIDAwIDAxIDAxIDAyIDAw IDAwIDAwIDAwIDBiIDAwCj4gMDA3MDogMDEgMDAKPiAwMDgwOiAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMAo+IDAxMDA6IDE0IDA0IDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwCj4gMDIwMDogNDEgMDAgMDAgMDAgODAgMDAgNjYgNjYKPiAwNjAwOiAwMQo+ IDA3MDA6IDAyCj4gMDcwMTogOWYgNDAgMDAgMDAKPiAwNzIwOiAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMAo+IDA3MzI6IDAwIDAwCj4KPiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPgo+IEN1cnJl bnQgZHBjZF9kdW1wIHByb3Bvc2VkIGhlcmU6Cj4gJCBzdWRvIC4vYnVpbGQvdG9vbHMvZHBjZF9k dW1wCj4KPiBEdW1waW5nIERQRERDLUIKPiA6Cj4gMDAwMDogIDEyIDE0IGZmZmZmZmM0IDAxIDAx IDAwIDAxIDAwIDAyIDAyIDA2IDAwIDAwIDAwIDAyCj4gMDA3MDogIDAwIDAwCj4gMDA4MDogIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwCj4gMDEwMDogIDE0 IGZmZmZmZjg0IDAwIDA2IDA2IDA2IDA2IDAwIDAxIDA0IDAwCj4gMDIwMDogIDQxIDAwIDc3IDc3 IDAxIDAzIDIyIDIyCj4gMDYwMDogIDAxCj4gMDcwMDogIDAxCj4gMDcwMTogIDAwIDAwIDAwIDAw Cj4gMDcyMDogIDAwIDAxIDAwIDAwIDAwIDAxIDAxIDAwIDAwIDAwIDAwIDAwIDAxIDAwIDAwIDAx Cj4gMDczMjogIDAwIDAwCj4KPiBEUENEIERQRERDLUMKPiAgc2VlbXMgbm90IGF2YWlsYWJsZS4g c2tpcHBpbmcuLi4KPiBEdW1waW5nIERQRERDLUEKPiA6Cj4gMDAwMDogIDEyIDE0IGZmZmZmZjg0 IDQwIDAwIDAwIDAxIDAxIDAyIDAwIDAwIDAwIDAwIDBiIDAwCj4gMDA3MDogIDAxIDAwCj4gMDA4 MDogIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwCj4gMDEw MDogIDE0IDA0IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwCj4gMDIwMDogIDQxIDAwIDAwIDAw IGZmZmZmZjgwIDAwIDY2IDY2Cj4gMDYwMDogIDAxCj4gMDcwMDogIDAyCj4gMDcwMTogIGZmZmZm ZjlmIDQwIDAwIDAwCj4gMDcyMDogIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAxIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwCj4gMDczMjogIDAwIDAwCj4KPiBDYzogUmFmYWVsIEFudG9nbm9sbGkgPHJh ZmFlbC5hbnRvZ25vbGxpQGludGVsLmNvbT4KPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxh QGludGVsLmNvbT4KPiBDYzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlh bkBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlA aW50ZWwuY29tPgo+IC0tLQo+ICB0b29scy9NYWtlZmlsZS5zb3VyY2VzIHwgICAxICsKPiAgdG9v bHMvZHBjZF9kdW1wLmMgICAgICB8IDE1MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwo+ICB0b29scy9tZXNvbi5idWlsZCAgICAgIHwgICAxICsKPiAgMyBmaWxlcyBj aGFuZ2VkLCAxNTQgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvZHBj ZF9kdW1wLmMKPgo+IGRpZmYgLS1naXQgYS90b29scy9NYWtlZmlsZS5zb3VyY2VzIGIvdG9vbHMv TWFrZWZpbGUuc291cmNlcwo+IGluZGV4IGFiZDIzYTBmLi5mNDkyMWY4MyAxMDA2NDQKPiAtLS0g YS90b29scy9NYWtlZmlsZS5zb3VyY2VzCj4gKysrIGIvdG9vbHMvTWFrZWZpbGUuc291cmNlcwo+ IEBAIC02LDYgKzYsNyBAQCBub2luc3RfUFJPR1JBTVMgPQkJXAo+ICAJJChOVUxMKQo+ICAKPiAg dG9vbHNfcHJvZ19saXN0cyA9CQlcCj4gKwlkcGNkX2R1bXAJCVwKPiAgCWlndF9zdGF0cwkJXAo+ ICAJaW50ZWxfYXVkaW9fZHVtcAlcCj4gIAlpbnRlbF9yZWcJCVwKPiBkaWZmIC0tZ2l0IGEvdG9v bHMvZHBjZF9kdW1wLmMgYi90b29scy9kcGNkX2R1bXAuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 Cj4gaW5kZXggMDAwMDAwMDAuLjFiOTg5ZTUzCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3Rvb2xz L2RwY2RfZHVtcC5jCj4gQEAgLTAsMCArMSwxNTIgQEAKPiArLyoKPiArICogQ29weXJpZ2h0IMKp IDIwMTggSW50ZWwgQ29ycG9yYXRpb24KPiArICoKPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkg Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPiArICog Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMg KHRoZSAiU29mdHdhcmUiKSwKPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCBy ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ICsgKiB0aGUgcmlnaHRz IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGlj ZW5zZSwKPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBl cm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBk byBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRo ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNs dWRpbmcgdGhlIG5leHQKPiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQo+ICsgKiBTb2Z0d2FyZS4KPiAr ICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO VFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBO TyBFVkVOVCBTSEFMTAo+ICsgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBM SUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+ICsgKiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO Rwo+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBP UiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCj4gKyAqIElOIFRIRSBTT0ZUV0FSRS4KPiArICoK PiArICovCj4gKwo+ICsjaW5jbHVkZSA8c3RkaW8uaD4KPiArI2luY2x1ZGUgPHN0ZGxpYi5oPgo+ ICsjaW5jbHVkZSA8dW5pc3RkLmg+Cj4gKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KPiArI2luY2x1 ZGUgPHN5cy9zdGF0Lmg+Cj4gKyNpbmNsdWRlIDxmY250bC5oPgo+ICsjaW5jbHVkZSA8ZGlyZW50 Lmg+Cj4gKyNpbmNsdWRlIDxzdHJpbmcuaD4KPiArCj4gK3N0cnVjdCBkcGNkX2Jsb2NrIHsKPiAr CS8qIERQQ0QgZHVtcCBzdGFydCBhZGRyZXNzLiAqLwo+ICsJdW5zaWduZWQgaW50IG9mZnNldDsK PiArCS8qIERQQ0QgZHVtcCBzaXplLiBJZiB1bnNldCwgZGVmYXVsdHMgdG8gMS4gKi8KPiArCXNp emVfdCBzaXplOwo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcGNkX2Jsb2NrIGRw Y2RfZHVtcFtdID0gewo+ICsJLyogRFBfRFBDRF9SRVYgKi8KPiArCXsgLm9mZnNldCA9IDAsIC5z aXplID0gMTUgfSwKPiArCS8qIERQX1BTUl9TVVBQT1JUIHRvIERQX1BTUl9DQVBTKi8KPiArCXsg Lm9mZnNldCA9ICAweDcwLCAuc2l6ZSA9IDIgfSwKPiArCS8qIERQX0RPV05TVFJFQU1fUE9SVF8w ICovCj4gKwl7IC5vZmZzZXQgPSAgMHg4MCwgLnNpemUgPSAxNiB9LAo+ICsJLyogRFBfTElOS19C V19TRVQgdG8gRFBfRURQX0NPTkZJR1VSQVRJT05fU0VUICovCj4gKwl7IC5vZmZzZXQgPSAweDEw MCwgLnNpemUgPSAxMSB9LAo+ICsJLyogRFBfU0lOS19DT1VOVCB0byBEUF9BREpVU1RfUkVRVUVT VF9MQU5FMl8zICovCj4gKwl7IC5vZmZzZXQgPSAweDIwMCwgLnNpemUgPSA4IH0sCj4gKwkvKiBE UF9TRVRfUE9XRVIgKi8KPiArCXsgLm9mZnNldCA9IDB4NjAwIH0sCj4gKwkvKiBEUF9FRFBfRFBD RF9SRVYgKi8KPiArCXsgLm9mZnNldCA9ICAweDcwMCB9LAo+ICsJLyogRFBfRURQX0dFTkVSQUxf Q0FQXzEgdG8gRFBfRURQX0dFTkVSQUxfQ0FQXzMgKi8KPiArCXsgLm9mZnNldCA9IDB4NzAxLCAu c2l6ZSA9IDQgfSwKPiArCS8qIERQX0VEUF9ESVNQTEFZX0NPTlRST0xfUkVHSVNURVIgdG8gRFBf RURQX0JBQ0tMSUdIVF9GUkVRX0NBUF9NQVhfTFNCICovCj4gKwl7IC5vZmZzZXQgPSAweDcyMCwg LnNpemUgPSAxNn0sCj4gKwkvKiBEUF9FRFBfREJDX01JTklNVU1fQlJJR0hUTkVTU19TRVQgdG8g RFBfRURQX0RCQ19NQVhJTVVNX0JSSUdIVE5FU1NfU0VUICovCj4gKwl7IC5vZmZzZXQgPSAgMHg3 MzIsIC5zaXplID0gMiB9LAo+ICt9Owo+ICsKPiArdm9pZCBkdW1wX2FsbChpbnQgZmQpCj4gK3sK PiArCWludCByZXQsIGksIGosIHNpemU7Cj4gKyAgICAgICAgY2hhciBidWZbMzJdOwo+ICsKPiAr CWZvciAoaSA9IDA7IGkgPCBzaXplb2YoZHBjZF9kdW1wKSAvIHNpemVvZihkcGNkX2R1bXBbMF0p OyBpKyspIHsKPiArCQlyZXQgPSBsc2VlayhmZCwgZHBjZF9kdW1wW2ldLm9mZnNldCwgU0VFS19T RVQpOwo+ICsJCWlmIChyZXQgPCAwKSB7Cj4gKwkJCWZwcmludGYoc3RkZXJyLCAibHNlZWsgdG8g JTA0eCBmYWlsZWQhXG4iLCBkcGNkX2R1bXBbaV0ub2Zmc2V0KTsKPiArCQkJcmV0dXJuOwo+ICsJ CX0KPiArCj4gKwkJc2l6ZSA9IGRwY2RfZHVtcFtpXS5zaXplID8gZHBjZF9kdW1wW2ldLnNpemU6 IDE7Cj4gKwkJcHJpbnRmKCIlMDR4OiAiLCBkcGNkX2R1bXBbaV0ub2Zmc2V0KTsKPiArCQlyZXQg PSByZWFkKGZkLCAmYnVmLCBzaXplKTsKPiArCQlpZiAocmV0IDwgMCkgewo+ICsJCQlmcHJpbnRm KHN0ZGVyciwgInJlYWQgb2YgJWQgYnl0ZXMgdG8gJTA0eCBmYWlsZWQhXG4iLCBzaXplLCBkcGNk X2R1bXBbaV0ub2Zmc2V0KTsKPiArCQkJcmV0dXJuOwo+ICsJCX0KPiArCj4gKwkJZm9yIChqID0g MDsgaiA8IHNpemU7IGorKykKPiArCQkJcHJpbnRmKCIgJTAyeCIsIGJ1ZltqXSk7Cj4gKwkJcHJp bnRmKCJcbiIpOwo+ICsJfQo+ICt9Cj4gKwo+ICtpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFy Z3YpCj4gK3sKPiArCXN0cnVjdCBkaXJlbnQgKmRpcmVudDsKPiArCURJUiAqZGlyOwo+ICsJY2hh ciBkZXZfcGF0aFtQQVRIX01BWF07Cj4gKwljaGFyIHN5c2ZzX3BhdGhbUEFUSF9NQVhdOwo+ICsJ aW50IGRldl9mZCwgc3lzZnNfZmQsIHJldCA9IDA7Cj4gKwljaGFyIGRwY2RfbmFtZVs4XTsKPiAr CWNoYXIgZGlzY2FyZDsKPiArCj4gKwlkaXIgPSBvcGVuZGlyKCIvc3lzL2NsYXNzL2RybV9kcF9h dXhfZGV2LyIpOwo+ICsJaWYgKCFkaXIpIHsKPiArCQlmcHJpbnRmKHN0ZGVyciwgImZhaWwgdG8g cmVhZCAvZGV2XG4iKTsKPiArCQlyZXR1cm4gLTE7Cj4gKwl9Cj4gKwo+ICsJd2hpbGUgKChkaXJl bnQgPSByZWFkZGlyKGRpcikpKSB7Cj4gKwkJaWYgKHN0cm5jbXAoZGlyZW50LT5kX25hbWUsICJk cm1fZHBfYXV4IiwgMTApID09IDApIHsKPiArCQkJc3ByaW50ZihkZXZfcGF0aCwgIi9kZXYvJXMi LCBkaXJlbnQtPmRfbmFtZSk7Cj4gKwkJCXNwcmludGYoc3lzZnNfcGF0aCwgIi9zeXMvY2xhc3Mv ZHJtX2RwX2F1eF9kZXYvJXMvbmFtZSIsCj4gKwkJCQlkaXJlbnQtPmRfbmFtZSk7Cj4gKwo+ICsJ CQlzeXNmc19mZCA9IG9wZW4oc3lzZnNfcGF0aCwgT19SRE9OTFkpOwo+ICsJCQlpZiAoc3lzZnNf ZmQgPCAwKSB7Cj4gKwkJCQlmcHJpbnRmKHN0ZGVyciwiZmFpbCB0byBvcGVuICVzXG4iLCBzeXNm c19wYXRoKTsKPiArCQkJCWNvbnRpbnVlOwo+ICsJCQl9Cj4gKwo+ICsJCQlkZXZfZmQgPSBvcGVu KGRldl9wYXRoLCBPX1JET05MWSk7Cj4gKwkJCWlmIChkZXZfZmQgPCAwKSB7Cj4gKwkJCQlmcHJp bnRmKHN0ZGVyciwiZmFpbCB0byBvcGVuICVzXG4iLCBkZXZfcGF0aCk7Cj4gKwkJCQljb250aW51 ZTsKPiArCQkJfQo+ICsKPiArCQkJcmV0ID0gcmVhZChzeXNmc19mZCwgJmRwY2RfbmFtZSwgc2l6 ZW9mKGRwY2RfbmFtZSkpOwo+ICsJCQlpZiAocmV0IDwgMCkgewo+ICsJCQkJZnByaW50ZihzdGRl cnIsICJmYWlsIHRvIHJlYWQgZHBjZCBuYW1lIGZyb20gJXNcblxuIiwgc3lzZnNfcGF0aCk7Cj4g KwkJCQljb250aW51ZTsKPiArCQkJfQo+ICsJCQlkcGNkX25hbWVbcmV0XSA9ICdcMCc7Cj4gKwo+ ICsJCQkvKiBEdW1teSByZWFkIHRvIGNoZWNrIGlmIGRwY2QgaXMgYXZhaWxhYmxlICovCj4gKwkJ CXJldCA9IHJlYWQoZGV2X2ZkLCAmZGlzY2FyZCwgMSk7Cj4gKwkJCWlmIChyZXQgIT0gMSkgewo+ ICsJCQkJZnByaW50ZihzdGRlcnIsICJEUENEICVzIHNlZW1zIG5vdCBhdmFpbGFibGUuIHNraXBw aW5nLi4uXG4iLCBkcGNkX25hbWUpOwo+ICsJCQkJY29udGludWU7Cj4gKwkJCX0KPiArCj4gKwkJ CXByaW50ZigiRHVtcGluZyAlczpcbiIsIGRwY2RfbmFtZSk7Cj4gKwkJCWR1bXBfYWxsKGRldl9m ZCk7Cj4gKwkJCXByaW50ZigiXG4iKTsKPiArCj4gKwo+ICsKPiArCQkJY2xvc2Uoc3lzZnNfZmQp Owo+ICsJCQljbG9zZShkZXZfZmQpOwo+ICsJCX0KPiArCX0KPiArCj4gKwljbG9zZWRpcihkaXIp Owo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL21lc29uLmJ1aWxk IGIvdG9vbHMvbWVzb24uYnVpbGQKPiBpbmRleCBlNDUxN2Q2Ni4uMzMyNmE1YTcgMTAwNjQ0Cj4g LS0tIGEvdG9vbHMvbWVzb24uYnVpbGQKPiArKysgYi90b29scy9tZXNvbi5idWlsZAo+IEBAIC0x NCw2ICsxNCw3IEBAIGVuZGZvcmVhY2gKPiAgdG9vbHNfcHJvZ3MgPSBbCj4gIAkjIEZJWE1FIHdl IGFscmVhZHkgaGF2ZSBhIGxpYnRlc3RjYXNlIHdpdGggdGhpcyBuYW1lIGFzIHRhcmdldAo+ICAJ IydpZ3Rfc3RhdHMnLAo+ICsJJ2RwY2RfZHVtcCcsCj4gIAknaW50ZWxfYXVkaW9fZHVtcCcsCj4g IAknaW50ZWxfYmFja2xpZ2h0JywKPiAgCSdpbnRlbF9iaW9zX2R1bXBlcicsCgotLSAKSmFuaSBO aWt1bGEsIEludGVsIE9wZW4gU291cmNlIEdyYXBoaWNzIENlbnRlcgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3Qt ZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK