From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 20B748926A for ; Mon, 3 Jun 2019 12:27:57 +0000 (UTC) Received: from [10.237.72.73] (mperes-desk.fi.intel.com [10.237.72.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by linux.intel.com (Postfix) with ESMTPS id A308F5801E6 for ; Mon, 3 Jun 2019 05:27:56 -0700 (PDT) References: <20190531112200.22403-1-simon.ser@intel.com> <20190531112200.22403-2-simon.ser@intel.com> From: Martin Peres Message-ID: <6973e998-bf22-84b0-ad90-92a811e349ef@linux.intel.com> Date: Mon, 3 Jun 2019 15:27:52 +0300 MIME-Version: 1.0 In-Reply-To: <20190531112200.22403-2-simon.ser@intel.com> Content-Language: en-PH Subject: Re: [igt-dev] [PATCH i-g-t 1/5] lib/igt_eld: introduce an ELD library 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: igt-dev@lists.freedesktop.org List-ID: T24gMzEvMDUvMjAxOSAxNDoyMSwgU2ltb24gU2VyIHdyb3RlOgo+IFRoZXJlIGFyZSB0d28gcmVh c29ucyB3aHkgSSB3YW50IHRvIGludHJvZHVjZSB0aGlzIGxpYnJhcnk6Cj4gCj4gLSBJIHdhbnQg dG8gdXNlIGl0IGZyb20gdGhlIENoYW1lbGl1bSB0ZXN0cyBmb3IgRGlzcGxheVBvcnQKPiAtIEkg d2FudCB0byBleHBhbmQgaXQgdG8gYWxzbyBjaGVjayB0aGF0IGF1ZGlvIHBhcmFtZXRlcnMgcGFy c2VkIGJ5IEFMU0EgYXJlCj4gICBjb3JyZWN0IChmb3JtYXRzLCBzYW1wbGluZyByYXRlcywgc2Ft cGxlIHNpemVzIGFuZCBzbyBvbikKPiAKPiBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBTZXIgPHNpbW9u LnNlckBpbnRlbC5jb20+Cj4gLS0tCj4gIGxpYi9pZ3RfZWxkLmMgICAgICAgICAgIHwgMTExICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgbGliL2lndF9lbGQuaCAg ICAgICAgICAgfCAgMzUgKysrKysrKysrKysrKwo+ICBsaWIvbWVzb24uYnVpbGQgICAgICAgICB8 ICAgMSArCj4gIHRlc3RzL2ttc19oZG1pX2luamVjdC5jIHwgIDgwICsrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4gIDQgZmlsZXMgY2hhbmdlZCwgMTUyIGluc2VydGlvbnMoKyksIDc1IGRl bGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2lndF9lbGQuYwo+ICBjcmVhdGUg bW9kZSAxMDA2NDQgbGliL2lndF9lbGQuaAo+IAo+IGRpZmYgLS1naXQgYS9saWIvaWd0X2VsZC5j IGIvbGliL2lndF9lbGQuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAw MDAwLi44ZTBkY2MzMDZlODUKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvbGliL2lndF9lbGQuYwo+ IEBAIC0wLDAgKzEsMTExIEBACj4gKy8qCj4gKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENv cnBvcmF0aW9uCj4gKyAqCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gKyAqIGNvcHkgb2YgdGhpcyBz b2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJl IiksCj4gKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu Y2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gKyAqIGFu ZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0 byB3aG9tIHRoZQo+ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg dG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJp Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0 Cj4gKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJz dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKPiArICogU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBT T0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E LCBFWFBSRVNTIE9SCj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g VEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwK PiArICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkg Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwg T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBP VEhFUiBERUFMSU5HUwo+ICsgKiBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIEF1dGhvcnM6 IFNpbW9uIFNlciA8c2ltb24uc2VyQGludGVsLmNvbT4KPiArICovCj4gKwo+ICsjaW5jbHVkZSAi Y29uZmlnLmgiCj4gKwo+ICsjaW5jbHVkZSA8ZGlyZW50Lmg+Cj4gKyNpbmNsdWRlIDxzdGRpbnQu aD4KPiArI2luY2x1ZGUgPHN0ZGlvLmg+Cj4gKyNpbmNsdWRlIDxzdHJpbmcuaD4KPiArCj4gKyNp bmNsdWRlICJpZ3RfZWxkLmgiCj4gKwo+ICsvKioKPiArICogRURJRC1MaWtlIERhdGEgKEVMRCkg aXMgbWV0YWRhdGEgcGFyc2VkIGFuZCBleHBvc2VkIGJ5IEFMU0EgZm9yIEhETUkgYW5kCj4gKyAq IERpc3BsYXlQb3J0IGNvbm5lY3RvcnMgc3VwcG9ydGluZyBhdWRpby4gVGhpcyBpbmNsdWRlcyB0 aGUgbW9uaXRvciBuYW1lIGFuZAo+ICsgKiB0aGUgc3VwcG9ydGVkIGF1ZGlvIHBhcmFtZXRlcnMg KGZvcm1hdHMsIHNhbXBsaW5nIHJhdGVzLCBzYW1wbGUgc2l6ZXMgYW5kIHNvCj4gKyAqIG9uKS4K PiArICovCj4gKwo+ICsvKiogZWxkX2VudHJ5X2lzX2lndDogY2hlY2tzIHdoZXRoZXIgYW4gRUxE IGVudHJ5IGlzIG1hcHBlZCB0byB0aGUgSUdUIEVESUQgKi8KPiArc3RhdGljIGJvb2wgZWxkX2Vu dHJ5X2lzX2lndChjb25zdCBjaGFyICpwYXRoKQo+ICt7Cj4gKwlGSUxFICppbjsKPiArCWNoYXIg YnVmWzEwMjRdOwo+ICsJdWludDhfdCBlbGRfdmFsaWQgPSAwOwo+ICsJdWludDhfdCBtb25fdmFs aWQgPSAwOwo+ICsKPiArCWluID0gZm9wZW4ocGF0aCwgInIiKTsKPiArCWlmICghaW4pCj4gKwkJ cmV0dXJuIGZhbHNlOwo+ICsKPiArCW1lbXNldChidWYsIDAsIDEwMjQpOwo+ICsKPiArCXdoaWxl ICgoZmdldHMoYnVmLCAxMDI0LCBpbikpICE9IE5VTEwpIHsKPiArCQljaGFyICpsaW5lID0gYnVm Owo+ICsKPiArCQlpZiAoIXN0cm5jYXNlY21wKGxpbmUsICJlbGRfdmFsaWQiLCA5KSAmJgo+ICsJ CQkJc3Ryc3RyKGxpbmUsICIxIikpIHsKPiArCQkJZWxkX3ZhbGlkKys7CgpJIHVuZGVyc3RhbmQg dGhhdCB5b3UgYXJlIGp1c3QgY29weS1wYXN0aW5nIHRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlv biwKYnV0IHRoaXMgaXMgbm90IGV4YWN0bHkgdGhlIG5pY2VzdCB3YXkgb2YgbWFraW5nIGEgYm9v bGVhbi4gSG93IGFib3V0Cmp1c3Qgc2V0dGluZyBpdCB0byAxLCB0byBtYWtlIGl0IGNsZWFyIHRo YXQgd2UgYXJlIG5vdCBjb3VudGluZyBhbnl0aGluZz8KClRoaXMgY291bGQgYmUgZG9uZSBpbiBh bm90aGVyIHBhdGNoIG9yIG1lcmdlZCBpbiB0aGlzIG9uZS4KClJldmlld2VkLWJ5OiBNYXJ0aW4g UGVyZXMgPG1hcnRpbi5wZXJlc0BsaW51eC5pbnRlbC5jb20+Cgo+ICsJCX0KPiArCj4gKwkJaWYg KCFzdHJuY2FzZWNtcChsaW5lLCAibW9uaXRvcl9uYW1lIiwgMTIpICYmCj4gKwkJCQlzdHJzdHIo bGluZSwgIklHVCIpKSB7Cj4gKwkJCW1vbl92YWxpZCsrOwo+ICsJCX0KPiArCX0KPiArCj4gKwlm Y2xvc2UoaW4pOwo+ICsJaWYgKG1vbl92YWxpZCAmJiBlbGRfdmFsaWQpCj4gKwkJcmV0dXJuIHRy dWU7Cj4gKwo+ICsJcmV0dXJuIGZhbHNlOwo+ICt9Cj4gKwo+ICsvKiogZWxkX2hhc19pZ3Q6IGNo ZWNrIHdoZXRoZXIgQUxTQSBoYXMgZGV0ZWN0ZWQgdGhlIGF1ZGlvLWNhcGFibGUgSUdUIEVESUQg YnkKPiArICogcGFyc2luZyBFTEQgZW50cmllcyAqLwo+ICtib29sIGVsZF9oYXNfaWd0KHZvaWQp Cj4gK3sKPiArCURJUiAqZGlyOwo+ICsJc3RydWN0IGRpcmVudCAqc25kX2hkYTsKPiArCWludCBp Owo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKPiArCQljaGFyIGNhcmRzWzEyOF07 Cj4gKwo+ICsJCXNucHJpbnRmKGNhcmRzLCBzaXplb2YoY2FyZHMpLCAiL3Byb2MvYXNvdW5kL2Nh cmQlZCIsIGkpOwo+ICsJCWRpciA9IG9wZW5kaXIoY2FyZHMpOwo+ICsJCWlmICghZGlyKQo+ICsJ CQljb250aW51ZTsKPiArCj4gKwkJd2hpbGUgKChzbmRfaGRhID0gcmVhZGRpcihkaXIpKSkgewo+ ICsJCQljaGFyIGZwYXRoW1BBVEhfTUFYXTsKPiArCj4gKwkJCWlmICgqc25kX2hkYS0+ZF9uYW1l ID09ICcuJyB8fAo+ICsJCQkgICAgc3Ryc3RyKHNuZF9oZGEtPmRfbmFtZSwgImVsZCIpID09IDAp Cj4gKwkJCQljb250aW51ZTsKPiArCj4gKwkJCXNucHJpbnRmKGZwYXRoLCBzaXplb2YoZnBhdGgp LCAiJXMvJXMiLCBjYXJkcywKPiArCQkJCSBzbmRfaGRhLT5kX25hbWUpOwo+ICsJCQlpZiAoZWxk X2VudHJ5X2lzX2lndChmcGF0aCkpIHsKPiArCQkJCWNsb3NlZGlyKGRpcik7Cj4gKwkJCQlyZXR1 cm4gdHJ1ZTsKPiArCQkJfQo+ICsJCX0KPiArCQljbG9zZWRpcihkaXIpOwo+ICsJfQo+ICsKPiAr CXJldHVybiBmYWxzZTsKPiArfQo+IGRpZmYgLS1naXQgYS9saWIvaWd0X2VsZC5oIGIvbGliL2ln dF9lbGQuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi4yN2Y4 NzZkOWY2MzEKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvbGliL2lndF9lbGQuaAo+IEBAIC0wLDAg KzEsMzUgQEAKPiArLyoKPiArICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24K PiArICoKPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiArICog dG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp dGhvdXQgbGltaXRhdGlvbgo+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPiArICogYW5kL29yIHNlbGwg Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl Cj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPiArICogcGFy YWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv cnRpb25zIG9mIHRoZQo+ICsgKiBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElT IFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Mg T1IKPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO VElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+ICsgKiBUSEUg QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFN QUdFUyBPUiBPVEhFUgo+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP TlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1Ig SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJ TkdTCj4gKyAqIElOIFRIRSBTT0ZUV0FSRS4KPiArICoKPiArICogQXV0aG9yczogU2ltb24gU2Vy IDxzaW1vbi5zZXJAaW50ZWwuY29tPgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgSUdUX0VMRF9ICj4g KyNkZWZpbmUgSUdUX0VMRF9ICj4gKwo+ICsjaW5jbHVkZSAiY29uZmlnLmgiCj4gKwo+ICsjaW5j bHVkZSA8c3RkYm9vbC5oPgo+ICsKPiArYm9vbCBlbGRfaGFzX2lndCh2b2lkKTsKPiArCj4gKyNl bmRpZgo+IGRpZmYgLS1naXQgYS9saWIvbWVzb24uYnVpbGQgYi9saWIvbWVzb24uYnVpbGQKPiBp bmRleCBjZGI0NTBlMWU3NjIuLjg0NGUwYWJjZDkxOSAxMDA2NDQKPiAtLS0gYS9saWIvbWVzb24u YnVpbGQKPiArKysgYi9saWIvbWVzb24uYnVpbGQKPiBAQCAtNTksNiArNTksNyBAQCBsaWJfc291 cmNlcyA9IFsKPiAgCSdpZ3RfcHNyLmMnLAo+ICAJJ2lndF9hbWQuYycsCj4gIAknaWd0X2VkaWQu YycsCj4gKwknaWd0X2VsZC5jJywKPiAgXQo+ICAKPiAgbGliX2RlcHMgPSBbCj4gZGlmZiAtLWdp dCBhL3Rlc3RzL2ttc19oZG1pX2luamVjdC5jIGIvdGVzdHMva21zX2hkbWlfaW5qZWN0LmMKPiBp bmRleCBhMjQwNjEwNDJjMjAuLmViYTI1MDQ2Y2VhZCAxMDA2NDQKPiAtLS0gYS90ZXN0cy9rbXNf aGRtaV9pbmplY3QuYwo+ICsrKyBiL3Rlc3RzL2ttc19oZG1pX2luamVjdC5jCj4gQEAgLTIyLDgg KzIyLDEyIEBACj4gICAqCj4gICAqLwo+ICAKPiArI2luY2x1ZGUgImNvbmZpZy5oIgo+ICsKPiAg I2luY2x1ZGUgPGRpcmVudC5oPgo+ICsKPiAgI2luY2x1ZGUgImlndC5oIgo+ICsjaW5jbHVkZSAi aWd0X2VsZC5oIgo+ICAKPiAgI2RlZmluZSBIRElTUExBWV80SwkzODQwCj4gICNkZWZpbmUgVkRJ U1BMQVlfNEsJMjE2MAo+IEBAIC0xMzQsODAgKzEzOCw2IEBAIGhkbWlfaW5qZWN0XzRrKGludCBk cm1fZmQsIGRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCWZyZWUoZWRpZCk7Cj4gIH0K PiAgCj4gLS8qKiBlbGRfZW50cnlfaXNfaWd0OiBjaGVja3Mgd2hldGhlciBhbiBFTEQgZW50cnkg aXMgbWFwcGVkIHRvIHRoZSBJR1QgRURJRCAqLwo+IC1zdGF0aWMgYm9vbAo+IC1lbGRfZW50cnlf aXNfaWd0KGNvbnN0IGNoYXIqIHBhdGgpCj4gLXsKPiAtCUZJTEUgKmluOwo+IC0JY2hhciBidWZb MTAyNF07Cj4gLQl1aW50OF90IGVsZF92YWxpZCA9IDA7Cj4gLQl1aW50OF90IG1vbl92YWxpZCA9 IDA7Cj4gLQo+IC0JaW4gPSBmb3BlbihwYXRoLCAiciIpOwo+IC0JaWYgKCFpbikKPiAtCQlyZXR1 cm4gZmFsc2U7Cj4gLQo+IC0JbWVtc2V0KGJ1ZiwgMCwgMTAyNCk7Cj4gLQo+IC0Jd2hpbGUgKChm Z2V0cyhidWYsIDEwMjQsIGluKSkgIT0gTlVMTCkgewo+IC0KPiAtCQljaGFyICpsaW5lID0gYnVm Owo+IC0KPiAtCQlpZiAoIXN0cm5jYXNlY21wKGxpbmUsICJlbGRfdmFsaWQiLCA5KSAmJgo+IC0J CQkJc3Ryc3RyKGxpbmUsICIxIikpIHsKPiAtCQkJZWxkX3ZhbGlkKys7Cj4gLQkJfQo+IC0KPiAt CQlpZiAoIXN0cm5jYXNlY21wKGxpbmUsICJtb25pdG9yX25hbWUiLCAxMikgJiYKPiAtCQkJCXN0 cnN0cihsaW5lLCAiSUdUIikpIHsKPiAtCQkJbW9uX3ZhbGlkKys7Cj4gLQkJfQo+IC0JfQo+IC0K PiAtCWZjbG9zZShpbik7Cj4gLQlpZiAobW9uX3ZhbGlkICYmIGVsZF92YWxpZCkKPiAtCQlyZXR1 cm4gdHJ1ZTsKPiAtCj4gLQlyZXR1cm4gZmFsc2U7Cj4gLX0KPiAtCj4gLS8qKiBlbGRfaXNfdmFs aWQ6IGNoZWNrIHdoZXRoZXIgQUxTQSBoYXMgZGV0ZWN0ZWQgdGhlIGF1ZGlvLWNhcGFibGUgSUdU IEVESUQgYnkKPiAtICogcGFyc2luZyBFTEQgZW50cmllcyAqLwo+IC1zdGF0aWMgYm9vbAo+IC1l bGRfaXNfdmFsaWQodm9pZCkKPiAtewo+IC0JRElSICpkaXI7Cj4gLQlzdHJ1Y3QgZGlyZW50ICpz bmRfaGRhOwo+IC0JaW50IGk7Cj4gLQo+IC0JZm9yIChpID0gMDsgaSA8IDg7IGkrKykgewo+IC0J CWNoYXIgY2FyZHNbMTI4XTsKPiAtCj4gLQkJc25wcmludGYoY2FyZHMsIHNpemVvZihjYXJkcyks ICIvcHJvYy9hc291bmQvY2FyZCVkIiwgaSk7Cj4gLQkJZGlyID0gb3BlbmRpcihjYXJkcyk7Cj4g LQkJaWYgKCFkaXIpCj4gLQkJCWNvbnRpbnVlOwo+IC0KPiAtCQl3aGlsZSAoKHNuZF9oZGEgPSBy ZWFkZGlyKGRpcikpKSB7Cj4gLQkJCWNoYXIgZnBhdGhbUEFUSF9NQVhdOwo+IC0KPiAtCQkJaWYg KCpzbmRfaGRhLT5kX25hbWUgPT0gJy4nIHx8Cj4gLQkJCSAgICBzdHJzdHIoc25kX2hkYS0+ZF9u YW1lLCAiZWxkIikgPT0gMCkKPiAtCQkJCWNvbnRpbnVlOwo+IC0KPiAtCQkJc25wcmludGYoZnBh dGgsIHNpemVvZihmcGF0aCksICIlcy8lcyIsIGNhcmRzLAo+IC0JCQkJIHNuZF9oZGEtPmRfbmFt ZSk7Cj4gLQkJCWlmIChlbGRfZW50cnlfaXNfaWd0KGZwYXRoKSkgewo+IC0JCQkJY2xvc2VkaXIo ZGlyKTsKPiAtCQkJCXJldHVybiB0cnVlOwo+IC0JCQl9Cj4gLQkJfQo+IC0JCWNsb3NlZGlyKGRp cik7Cj4gLQl9Cj4gLQo+IC0JcmV0dXJuIGZhbHNlOwo+IC19Cj4gLQo+ICBzdGF0aWMgdm9pZAo+ ICBoZG1pX2luamVjdF9hdWRpbyhpbnQgZHJtX2ZkLCBkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0 b3IpCj4gIHsKPiBAQCAtMjUyLDcgKzE4Miw3IEBAIGhkbWlfaW5qZWN0X2F1ZGlvKGludCBkcm1f ZmQsIGRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCSAqIFRlc3QgaWYgd2UgaGF2ZSAv cHJvYy9hc291bmQvSERNSS9lbGQjMC4wIGFuZCBpcyBpdHMgY29udGVudHMgYXJlCj4gIAkgKiB2 YWxpZC4KPiAgCSAqLwo+IC0JaWd0X2Fzc2VydChlbGRfaXNfdmFsaWQoKSk7Cj4gKwlpZ3RfYXNz ZXJ0KGVsZF9oYXNfaWd0KCkpOwo+ICAKPiAgCWlndF9yZW1vdmVfZmIoZHJtX2ZkLCAmZmIpOwo+ ICAKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0 LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2