From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH i-g-t] lib/igt_debugfs: Remove support for legacy CRC api. Date: Fri, 27 Oct 2017 10:39:09 +0300 Message-ID: <87o9otf3aa.fsf@intel.com> References: <20171026113851.3321-1-maarten.lankhorst@linux.intel.com> <20171026172330.GB15613@jausmus-gentoo-dev6.jf.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3798C6E892 for ; Fri, 27 Oct 2017 07:39:37 +0000 (UTC) In-Reply-To: <20171026172330.GB15613@jausmus-gentoo-dev6.jf.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: James Ausmus , Maarten Lankhorst Cc: Tomi Sarvela , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyNiBPY3QgMjAxNywgSmFtZXMgQXVzbXVzIDxqYW1lcy5hdXNtdXNAaW50ZWwuY29t PiB3cm90ZToKPiBPbiBUaHUsIE9jdCAyNiwgMjAxNyBhdCAwMTozODo1MVBNICswMjAwLCBNYWFy dGVuIExhbmtob3JzdCB3cm90ZToKPj4gSW4ga2VybmVsIHY0LjEwIHRoZSBsZWdhY3kgY3JjIGFw aSBoYXMgYmVlbiByZXBsYWNlZCBieSBhIGdlbmVyaWMKPj4gZHJtIGNyYyBBUEkuIFdoaWxlIGF0 IGl0LCBmaXggaWd0X3JlcXVpcmVfcGlwZV9jcmMsIHRoZSBmaWxlIGNhbm5vdCBiZQo+PiBvcGVu ZWQgYW55IG1vcmUgd2hlbiB0aGUgY3J0YyBpcyBub3QgYWN0aXZlIGFmdGVyIGtlcm5lbCBjb21t aXQgODAzOGUwOWJlNWEzCj4+ICgiZHJtL2NyYzogT25seSBvcGVuIENSQyBvbiBhdG9taWMgZHJp dmVycyB3aGVuIHRoZSBDUlRDIGlzIGFjdGl2ZS4iKS4KPj4gU3RhdHRpbmcgdGhlIGZpbGUgc2hv dWxkIGJlIGVub3VnaCBmb3IgdGVzdGluZyBpdCdzIHN1cHBvcnRlZC4KPgo+IFdoYXQncyB0aGUg aW1wYWN0IG9mIHRoaXMgY2hhbmdlIG9uIGRldmljZXMgcnVubmluZyBvbGRlciBrZXJuZWxzIC0g c3VjaAo+IGFzIEtCTCBDaHJvbWVPUyBvbiA0LjQ/CgpJZiB5b3UgYmFja3BvcnQga2VybmVsIGZl YXR1cmVzLCB5b3UgZWl0aGVyIGFsc28gYmFja3BvcnQgdGhlIG5ldyBrZXJuZWwKQ1JDIEFQSSwg b3IgZm9yd2FyZCBwb3J0IHRoZSBpZ3Qgc3VwcG9ydCBmb3IgdGhlIGxlZ2FjeSBkZWJ1Z2ZzIGlm IHlvdQp3YW50IHRvIHVzZSBsYXRlc3QgdXBzdHJlYW0gaWd0PwoKQlIsCkphbmkuCgo+Cj4+IAo+ PiBDYzogVG9taSBTYXJ2ZWxhIDx0b21pLnAuc2FydmVsYUBpbnRlbC5jb20+Cj4+IENjOiBQZXRy aSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4KPj4gQ2M6IEphbmkgTmlrdWxhIDxq YW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0 IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4+IC0tLQo+PiAgbGliL2lndF9k ZWJ1Z2ZzLmMgfCAyMzEgKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4+ICAxIGZpbGUgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMjAzIGRl bGV0aW9ucygtKQo+PiAKPj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZGVidWdmcy5jIGIvbGliL2ln dF9kZWJ1Z2ZzLmMKPj4gaW5kZXggOGIzM2I0NzhhOWE5Li42M2EwOTg5ZTVjZWIgMTAwNjQ0Cj4+ IC0tLSBhL2xpYi9pZ3RfZGVidWdmcy5jCj4+ICsrKyBiL2xpYi9pZ3RfZGVidWdmcy5jCj4+IEBA IC00MTYsMTYgKzQxNiwxMiBAQCBjaGFyICppZ3RfY3JjX3RvX3N0cmluZyhpZ3RfY3JjX3QgKmNy YykKPj4gICNkZWZpbmUgTUFYX0NSQ19FTlRSSUVTIDEwCj4+ICAjZGVmaW5lIE1BWF9MSU5FX0xF TiAoMTAgKyAxMSAqIE1BWF9DUkNfRU5UUklFUyArIDEpCj4+ICAKPj4gLS8qICg2IGZpZWxkcywg OCBjaGFycyBlYWNoLCBzcGFjZSBzZXBhcmF0ZWQgKDUpICsgJ1xuJykgKi8KPj4gLSNkZWZpbmUg TEVHQUNZX0xJTkVfTEVOICAgICAgICg2ICogOCArIDUgKyAxKQo+PiAtCj4+ICBzdHJ1Y3QgX2ln dF9waXBlX2NyYyB7Cj4+ICAJaW50IGZkOwo+PiAgCWludCBkaXI7Cj4+ICAJaW50IGN0bF9mZDsK Pj4gIAlpbnQgY3JjX2ZkOwo+PiAgCWludCBmbGFnczsKPj4gLQlib29sIGlzX2xlZ2FjeTsKPj4g IAo+PiAgCWVudW0gcGlwZSBwaXBlOwo+PiAgCWVudW0gaW50ZWxfcGlwZV9jcmNfc291cmNlIHNv dXJjZTsKPj4gQEAgLTQ0OSwxMzAgKzQ0NSw2IEBAIHN0YXRpYyBjb25zdCBjaGFyICpwaXBlX2Ny Y19zb3VyY2VfbmFtZShlbnVtIGludGVsX3BpcGVfY3JjX3NvdXJjZSBzb3VyY2UpCj4+ICAgICAg ICAgIHJldHVybiBwaXBlX2NyY19zb3VyY2VzW3NvdXJjZV07Cj4+ICB9Cj4+ICAKPj4gLXN0YXRp YyBib29sIGlndF9waXBlX2NyY19kb19zdGFydChpZ3RfcGlwZV9jcmNfdCAqcGlwZV9jcmMpCj4+ IC17Cj4+IC0JY2hhciBidWZbNjRdOwo+PiAtCj4+IC0JLyogU3RvcCBmaXJzdCBqdXN0IHRvIG1h a2Ugc3VyZSB3ZSBkb24ndCBoYXZlIGxpbmdlcmluZyBzdGF0ZSBsZWZ0LiAqLwo+PiAtCWlndF9w aXBlX2NyY19zdG9wKHBpcGVfY3JjKTsKPj4gLQo+PiAtCWlmIChwaXBlX2NyYy0+aXNfbGVnYWN5 KQo+PiAtCQlzcHJpbnRmKGJ1ZiwgInBpcGUgJXMgJXMiLCBrbXN0ZXN0X3BpcGVfbmFtZShwaXBl X2NyYy0+cGlwZSksCj4+IC0JCQlwaXBlX2NyY19zb3VyY2VfbmFtZShwaXBlX2NyYy0+c291cmNl KSk7Cj4+IC0JZWxzZQo+PiAtCQlzcHJpbnRmKGJ1ZiwgIiVzIiwgcGlwZV9jcmNfc291cmNlX25h bWUocGlwZV9jcmMtPnNvdXJjZSkpOwo+PiAtCj4+IC0JaWd0X2Fzc2VydF9lcSh3cml0ZShwaXBl X2NyYy0+Y3RsX2ZkLCBidWYsIHN0cmxlbihidWYpKSwgc3RybGVuKGJ1ZikpOwo+PiAtCj4+IC0J aWYgKCFwaXBlX2NyYy0+aXNfbGVnYWN5KSB7Cj4+IC0JCWludCBlcnI7Cj4+IC0KPj4gLQkJc3By aW50ZihidWYsICJjcnRjLSVkL2NyYy9kYXRhIiwgcGlwZV9jcmMtPnBpcGUpOwo+PiAtCQllcnIg PSAwOwo+PiAtCj4+IC0JCXBpcGVfY3JjLT5jcmNfZmQgPSBvcGVuYXQocGlwZV9jcmMtPmRpciwg YnVmLCBwaXBlX2NyYy0+ZmxhZ3MpOwo+PiAtCQlpZiAocGlwZV9jcmMtPmNyY19mZCA8IDApCj4+ IC0JCQllcnIgPSAtZXJybm87Cj4+IC0KPj4gLQkJaWYgKGVyciA9PSAtRUlOVkFMKQo+PiAtCQkJ cmV0dXJuIGZhbHNlOwo+PiAtCj4+IC0JCWlndF9hc3NlcnRfZXEoZXJyLCAwKTsKPj4gLQl9Cj4+ IC0KPj4gLQllcnJubyA9IDA7Cj4+IC0JcmV0dXJuIHRydWU7Cj4+IC19Cj4+IC0KPj4gLXN0YXRp YyB2b2lkIGlndF9waXBlX2NyY19waXBlX29mZihpbnQgZmQsIGVudW0gcGlwZSBwaXBlKQo+PiAt ewo+PiAtCWNoYXIgYnVmWzMyXTsKPj4gLQo+PiAtCXNwcmludGYoYnVmLCAicGlwZSAlcyBub25l Iiwga21zdGVzdF9waXBlX25hbWUocGlwZSkpOwo+PiAtCWlndF9hc3NlcnRfZXEod3JpdGUoZmQs IGJ1Ziwgc3RybGVuKGJ1ZikpLCBzdHJsZW4oYnVmKSk7Cj4+IC19Cj4+IC0KPj4gLXN0YXRpYyB2 b2lkIGlndF9waXBlX2NyY19yZXNldChpbnQgZHJtX2ZkKQo+PiAtewo+PiAtCXN0cnVjdCBkaXJl bnQgKmRpcmVudDsKPj4gLQljb25zdCBjaGFyICpjbWQgPSAibm9uZSI7Cj4+IC0JYm9vbCBkb25l ID0gZmFsc2U7Cj4+IC0JRElSICpkaXI7Cj4+IC0JaW50IGZkaXI7Cj4+IC0JaW50IGZkOwo+PiAt Cj4+IC0JZmRpciA9IGlndF9kZWJ1Z2ZzX2Rpcihkcm1fZmQpOwo+PiAtCWlmIChmZGlyIDwgMCkK Pj4gLQkJcmV0dXJuOwo+PiAtCj4+IC0JZGlyID0gZmRvcGVuZGlyKGZkaXIpOwo+PiAtCWlmICgh ZGlyKSB7Cj4+IC0JCWNsb3NlKGZkaXIpOwo+PiAtCQlyZXR1cm47Cj4+IC0JfQo+PiAtCj4+IC0J d2hpbGUgKChkaXJlbnQgPSByZWFkZGlyKGRpcikpKSB7Cj4+IC0JCWNoYXIgYnVmW1BBVEhfTUFY XTsKPj4gLQo+PiAtCQlpZiAoc3RyY21wKGRpcmVudC0+ZF9uYW1lLCAiY3J0Yy0iKSAhPSAwKQo+ PiAtCQkJY29udGludWU7Cj4+IC0KPj4gLQkJc3ByaW50ZihidWYsICIlcy9jcmMvY29udHJvbCIs IGRpcmVudC0+ZF9uYW1lKTsKPj4gLQkJZmQgPSBvcGVuYXQoZmRpciwgYnVmLCBPX1dST05MWSk7 Cj4+IC0JCWlmIChmZCA8IDApCj4+IC0JCQljb250aW51ZTsKPj4gLQo+PiAtCQlpZ3RfYXNzZXJ0 X2VxKHdyaXRlKGZkLCBjbWQsIHN0cmxlbihjbWQpKSwgc3RybGVuKGNtZCkpOwo+PiAtCQljbG9z ZShmZCk7Cj4+IC0KPj4gLQkJZG9uZSA9IHRydWU7Cj4+IC0JfQo+PiAtCWNsb3NlZGlyKGRpcik7 Cj4+IC0KPj4gLQlpZiAoIWRvbmUpIHsKPj4gLQkJZmQgPSBvcGVuYXQoZmRpciwgImk5MTVfZGlz cGxheV9jcnRjX2N0bCIsIE9fV1JPTkxZKTsKPj4gLQkJaWYgKGZkICE9IC0xKSB7Cj4+IC0JCQlp Z3RfcGlwZV9jcmNfcGlwZV9vZmYoZmQsIFBJUEVfQSk7Cj4+IC0JCQlpZ3RfcGlwZV9jcmNfcGlw ZV9vZmYoZmQsIFBJUEVfQik7Cj4+IC0JCQlpZ3RfcGlwZV9jcmNfcGlwZV9vZmYoZmQsIFBJUEVf Qyk7Cj4+IC0KPj4gLQkJCWNsb3NlKGZkKTsKPj4gLQkJfQo+PiAtCX0KPj4gLQo+PiAtCWNsb3Nl KGZkaXIpOwo+PiAtfQo+PiAtCj4+IC1zdGF0aWMgdm9pZCBwaXBlX2NyY19leGl0X2hhbmRsZXIo aW50IHNpZykKPj4gLXsKPj4gLQlzdHJ1Y3QgZGlyZW50ICpkaXJlbnQ7Cj4+IC0JY2hhciBidWZb UEFUSF9NQVhdOwo+PiAtCURJUiAqZGlyOwo+PiAtCWludCBmZDsKPj4gLQo+PiAtCWRpciA9IG9w ZW5kaXIoIi9kZXYvZHJpIik7Cj4+IC0JaWYgKCFkaXIpCj4+IC0JCXJldHVybjsKPj4gLQo+PiAt CS8qCj4+IC0JICogVHJ5IHRvIHJlc2V0IENSQyBjYXB0dXJlIGZvciBhbGwgRFJNIGRldmljZXMs IHRoaXMgaXMgb25seSBuZWVkZWQKPj4gLQkgKiBmb3IgdGhlIGxlZ2FjeSBDUkMgQUJJIGFuZCBj YW4gYmUgY29tcGxldGVseSByZW1vdmVkIG9uY2UgdGhlCj4+IC0JICogbGVnYWN5IGNvZGVwYXRo cyBhcmUgcmVtb3ZlZC4KPj4gLQkgKi8KPj4gLQl3aGlsZSAoKGRpcmVudCA9IHJlYWRkaXIoZGly KSkpIHsKPj4gLQkJaWYgKHN0cm5jbXAoZGlyZW50LT5kX25hbWUsICJjYXJkIiwgNCkgIT0gMCkK Pj4gLQkJCWNvbnRpbnVlOwo+PiAtCj4+IC0JCXNwcmludGYoYnVmLCAiL2Rldi9kcmkvJXMiLCBk aXJlbnQtPmRfbmFtZSk7Cj4+IC0JCWZkID0gb3BlbihidWYsIE9fV1JPTkxZKTsKPj4gLQo+PiAt CQlpZ3RfcGlwZV9jcmNfcmVzZXQoZmQpOwo+PiAtCj4+IC0JCWNsb3NlKGZkKTsKPj4gLQl9Cj4+ IC0JY2xvc2VkaXIoZGlyKTsKPj4gLX0KPj4gLQo+PiAgLyoqCj4+ICAgKiBpZ3RfcmVxdWlyZV9w aXBlX2NyYzoKPj4gICAqCj4+IEBAIC01ODIsMjAgKzQ1NCwxNSBAQCBzdGF0aWMgdm9pZCBwaXBl X2NyY19leGl0X2hhbmRsZXIoaW50IHNpZykKPj4gICAqLwo+PiAgdm9pZCBpZ3RfcmVxdWlyZV9w aXBlX2NyYyhpbnQgZmQpCj4+ICB7Cj4+IC0JY29uc3QgY2hhciAqY21kID0gInBpcGUgQSBub25l IjsKPj4gLQlpbnQgY3RsLCB3cml0dGVuOwo+PiAtCj4+IC0JY3RsID0gaWd0X2RlYnVnZnNfb3Bl bihmZCwgImNydGMtMC9jcmMvY29udHJvbCIsIE9fUkRPTkxZKTsKPj4gLQlpZiAoY3RsIDwgMCkg ewo+PiAtCQljdGwgPSBpZ3RfZGVidWdmc19vcGVuKGZkLCAiaTkxNV9kaXNwbGF5X2NyY19jdGwi LCBPX1dST05MWSk7Cj4+IC0JCWlndF9yZXF1aXJlX2YoY3RsLAo+PiAtCQkJICAgICAgIk5vIGRp c3BsYXlfY3JjX2N0bCBmb3VuZCwga2VybmVsIHRvbyBvbGRcbiIpOwo+PiAtCj4+IC0JCXdyaXR0 ZW4gPSB3cml0ZShjdGwsIGNtZCwgc3RybGVuKGNtZCkpOwo+PiAtCQlpZ3RfcmVxdWlyZV9mKHdy aXR0ZW4gPCAwLAo+PiAtCQkJICAgICAgIkNSQ3Mgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRm b3JtXG4iKTsKPj4gLQl9Cj4+IC0JY2xvc2UoY3RsKTsKPj4gKwlpbnQgZGlyOwo+PiArCXN0cnVj dCBzdGF0IHN0YXQ7Cj4+ICsKPj4gKwlkaXIgPSBpZ3RfZGVidWdmc19kaXIoZmQpOwo+PiArCWln dF9yZXF1aXJlX2YoZGlyID49IDAsICJDb3VsZCBub3Qgb3BlbiBkZWJ1Z2ZzIGRpcmVjdG9yeVxu Iik7Cj4+ICsJaWd0X3JlcXVpcmVfZihmc3RhdGF0KGRpciwgImNydGMtMC9jcmMvY29udHJvbCIs ICZzdGF0LCAwKSA9PSAwLAo+PiArCQkgICAgICAiQ1JDcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMg cGxhdGZvcm1cbiIpOwo+PiArCj4+ICsJY2xvc2UoZGlyKTsKPj4gIH0KPj4gIAo+PiAgc3RhdGlj IHZvaWQgaWd0X2hwZF9zdG9ybV9leGl0X2hhbmRsZXIoaW50IHNpZykKPj4gQEAgLTcyOSwyOSAr NTk2LDEzIEBAIHBpcGVfY3JjX25ldyhpbnQgZmQsIGVudW0gcGlwZSBwaXBlLCBlbnVtIGludGVs X3BpcGVfY3JjX3NvdXJjZSBzb3VyY2UsIGludCBmbGFnCj4+ICAJZGVidWdmcyA9IGlndF9kZWJ1 Z2ZzX2RpcihmZCk7Cj4+ICAJaWd0X2Fzc2VydChkZWJ1Z2ZzICE9IC0xKTsKPj4gIAo+PiAtCWln dF9pbnN0YWxsX2V4aXRfaGFuZGxlcihwaXBlX2NyY19leGl0X2hhbmRsZXIpOwo+PiAtCj4+ICAJ cGlwZV9jcmMgPSBjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBfaWd0X3BpcGVfY3JjKSk7Cj4+ICAK Pj4gIAlzcHJpbnRmKGJ1ZiwgImNydGMtJWQvY3JjL2NvbnRyb2wiLCBwaXBlKTsKPj4gIAlwaXBl X2NyYy0+Y3RsX2ZkID0gb3BlbmF0KGRlYnVnZnMsIGJ1ZiwgT19XUk9OTFkpOwo+PiAtCWlmIChw aXBlX2NyYy0+Y3RsX2ZkID09IC0xKSB7Cj4+IC0JCXBpcGVfY3JjLT5jdGxfZmQgPSBvcGVuYXQo ZGVidWdmcywKPj4gLQkJCQkJICAiaTkxNV9kaXNwbGF5X2NyY19jdGwiLCBPX1dST05MWSk7Cj4+ IC0JCWlndF9hc3NlcnQocGlwZV9jcmMtPmN0bF9mZCAhPSAtMSk7Cj4+IC0JCXBpcGVfY3JjLT5p c19sZWdhY3kgPSB0cnVlOwo+PiAtCX0KPj4gLQo+PiAtCWlmIChwaXBlX2NyYy0+aXNfbGVnYWN5 KSB7Cj4+IC0JCXNwcmludGYoYnVmLCAiaTkxNV9waXBlXyVzX2NyYyIsIGttc3Rlc3RfcGlwZV9u YW1lKHBpcGUpKTsKPj4gLQkJcGlwZV9jcmMtPmNyY19mZCA9IG9wZW5hdChkZWJ1Z2ZzLCBidWYs IGZsYWdzKTsKPj4gLQkJaWd0X2Fzc2VydChwaXBlX2NyYy0+Y3JjX2ZkICE9IC0xKTsKPj4gLQkJ aWd0X2RlYnVnKCJVc2luZyBsZWdhY3kgZnJhbWUgQ1JDIEFCSVxuIik7Cj4+IC0JfSBlbHNlIHsK Pj4gLQkJcGlwZV9jcmMtPmNyY19mZCA9IC0xOwo+PiAtCQlpZ3RfZGVidWcoIlVzaW5nIGdlbmVy aWMgZnJhbWUgQ1JDIEFCSVxuIik7Cj4+IC0JfQo+PiArCWlndF9hc3NlcnQocGlwZV9jcmMtPmN0 bF9mZCAhPSAtMSk7Cj4+ICAKPj4gKwlwaXBlX2NyYy0+Y3JjX2ZkID0gLTE7Cj4+ICAJcGlwZV9j cmMtPmZkID0gZmQ7Cj4+ICAJcGlwZV9jcmMtPmRpciA9IGRlYnVnZnM7Cj4+ICAJcGlwZV9jcmMt PnBpcGUgPSBwaXBlOwo+PiBAQCAtODE3LDE4ICs2NjgsOSBAQCB2b2lkIGlndF9waXBlX2NyY19m cmVlKGlndF9waXBlX2NyY190ICpwaXBlX2NyYykKPj4gIHN0YXRpYyBib29sIHBpcGVfY3JjX2lu aXRfZnJvbV9zdHJpbmcoaWd0X3BpcGVfY3JjX3QgKnBpcGVfY3JjLCBpZ3RfY3JjX3QgKmNyYywK Pj4gIAkJCQkgICAgICBjb25zdCBjaGFyICpsaW5lKQo+PiAgewo+PiAtCWludCBuLCBpOwo+PiAr CWludCBpOwo+PiAgCWNvbnN0IGNoYXIgKmJ1ZjsKPj4gIAo+PiAtCWlmIChwaXBlX2NyYy0+aXNf bGVnYWN5KSB7Cj4+IC0JCWNyYy0+aGFzX3ZhbGlkX2ZyYW1lID0gdHJ1ZTsKPj4gLQkJY3JjLT5u X3dvcmRzID0gNTsKPj4gLQkJbiA9IHNzY2FuZihsaW5lLCAiJTh1ICU4eCAlOHggJTh4ICU4eCAl OHgiLCAmY3JjLT5mcmFtZSwKPj4gLQkJCSAgICZjcmMtPmNyY1swXSwgJmNyYy0+Y3JjWzFdLCAm Y3JjLT5jcmNbMl0sCj4+IC0JCQkgICAmY3JjLT5jcmNbM10sICZjcmMtPmNyY1s0XSk7Cj4+IC0J CXJldHVybiBuID09IDY7Cj4+IC0JfQo+PiAtCj4+ICAJaWYgKHN0cm5jbXAobGluZSwgIlhYWFhY WFhYWFgiLCAxMCkgPT0gMCkKPj4gIAkJY3JjLT5oYXNfdmFsaWRfZnJhbWUgPSBmYWxzZTsKPj4g IAllbHNlIHsKPj4gQEAgLTg0OSwxNSArNjkxLDkgQEAgc3RhdGljIGludCByZWFkX2NyYyhpZ3Rf cGlwZV9jcmNfdCAqcGlwZV9jcmMsIGlndF9jcmNfdCAqb3V0KQo+PiAgewo+PiAgCXNzaXplX3Qg Ynl0ZXNfcmVhZDsKPj4gIAljaGFyIGJ1ZltNQVhfTElORV9MRU4gKyAxXTsKPj4gLQlzaXplX3Qg cmVhZF9sZW47Cj4+IC0KPj4gLQlpZiAocGlwZV9jcmMtPmlzX2xlZ2FjeSkKPj4gLQkJcmVhZF9s ZW4gPSBMRUdBQ1lfTElORV9MRU47Cj4+IC0JZWxzZQo+PiAtCQlyZWFkX2xlbiA9IE1BWF9MSU5F X0xFTjsKPj4gIAo+PiAgCWlndF9zZXRfdGltZW91dCg1LCAiQ1JDIHJlYWRpbmciKTsKPj4gLQli eXRlc19yZWFkID0gcmVhZChwaXBlX2NyYy0+Y3JjX2ZkLCAmYnVmLCByZWFkX2xlbik7Cj4+ICsJ Ynl0ZXNfcmVhZCA9IHJlYWQocGlwZV9jcmMtPmNyY19mZCwgJmJ1ZiwgTUFYX0xJTkVfTEVOKTsK Pj4gIAlpZ3RfcmVzZXRfdGltZW91dCgpOwo+PiAgCj4+ICAJaWYgKGJ5dGVzX3JlYWQgPCAwICYm IGVycm5vID09IEVBR0FJTikKPj4gQEAgLTg4OCwyMiArNzI0LDE5IEBAIHN0YXRpYyB2b2lkIHJl YWRfb25lX2NyYyhpZ3RfcGlwZV9jcmNfdCAqcGlwZV9jcmMsIGlndF9jcmNfdCAqb3V0KQo+PiAg ICovCj4+ICB2b2lkIGlndF9waXBlX2NyY19zdGFydChpZ3RfcGlwZV9jcmNfdCAqcGlwZV9jcmMp Cj4+ICB7Cj4+IC0JaWd0X2NyY190IGNyYzsKPj4gLQo+PiAtCWlndF9hc3NlcnQoaWd0X3BpcGVf Y3JjX2RvX3N0YXJ0KHBpcGVfY3JjKSk7Cj4+IC0KPj4gLQlpZiAocGlwZV9jcmMtPmlzX2xlZ2Fj eSkgewo+PiAtCQkvKgo+PiAtCQkgKiBGb3Igc29tZSBubyB5ZXQgaWRlbnRpZmllZCByZWFzb24s IHRoZSBmaXJzdCBDUkMgaXMKPj4gLQkJICogYm9ua2Vycy4gU28gbGV0J3MganVzdCB3YWl0IGZv ciB0aGUgbmV4dCB2YmxhbmsgYW5kIHJlYWQKPj4gLQkJICogb3V0IHRoZSBidWdneSByZXN1bHQu Cj4+IC0JCSAqCj4+IC0JCSAqIE9uIENIViBzb21ldGltZXMgdGhlIHNlY29uZCBDUkMgaXMgYm9u a2VycyBhcyB3ZWxsLCBzbwo+PiAtCQkgKiBkb24ndCB0cnVzdCB0aGF0IG9uZSBlaXRoZXIuCj4+ IC0JCSAqLwo+PiAtCQlyZWFkX29uZV9jcmMocGlwZV9jcmMsICZjcmMpOwo+PiAtCQlyZWFkX29u ZV9jcmMocGlwZV9jcmMsICZjcmMpOwo+PiAtCX0KPj4gKwljb25zdCBjaGFyICpzcmMgPSBwaXBl X2NyY19zb3VyY2VfbmFtZShwaXBlX2NyYy0+c291cmNlKTsKPj4gKwljaGFyIGJ1ZlszMl07Cj4+ ICsKPj4gKwkvKiBTdG9wIGZpcnN0IGp1c3QgdG8gbWFrZSBzdXJlIHdlIGRvbid0IGhhdmUgbGlu Z2VyaW5nIHN0YXRlIGxlZnQuICovCj4+ICsJaWd0X3BpcGVfY3JjX3N0b3AocGlwZV9jcmMpOwo+ PiArCj4+ICsJaWd0X2Fzc2VydF9lcSh3cml0ZShwaXBlX2NyYy0+Y3RsX2ZkLCBzcmMsIHN0cmxl bihzcmMpKSwgc3RybGVuKHNyYykpOwo+PiArCj4+ICsJc3ByaW50ZihidWYsICJjcnRjLSVkL2Ny Yy9kYXRhIiwgcGlwZV9jcmMtPnBpcGUpOwo+PiArCj4+ICsJcGlwZV9jcmMtPmNyY19mZCA9IG9w ZW5hdChwaXBlX2NyYy0+ZGlyLCBidWYsIHBpcGVfY3JjLT5mbGFncyk7Cj4+ICsJaWd0X2Fzc2Vy dChwaXBlX2NyYy0+Y3JjX2ZkICE9IC0xKTsKPj4gKwllcnJubyA9IDA7Cj4+ICB9Cj4+ICAKPj4g IC8qKgo+PiBAQCAtOTE0LDE2ICs3NDcsOCBAQCB2b2lkIGlndF9waXBlX2NyY19zdGFydChpZ3Rf cGlwZV9jcmNfdCAqcGlwZV9jcmMpCj4+ICAgKi8KPj4gIHZvaWQgaWd0X3BpcGVfY3JjX3N0b3Ao aWd0X3BpcGVfY3JjX3QgKnBpcGVfY3JjKQo+PiAgewo+PiAtCWNoYXIgYnVmWzMyXTsKPj4gLQo+ PiAtCWlmIChwaXBlX2NyYy0+aXNfbGVnYWN5KSB7Cj4+IC0JCXNwcmludGYoYnVmLCAicGlwZSAl cyBub25lIiwga21zdGVzdF9waXBlX25hbWUocGlwZV9jcmMtPnBpcGUpKTsKPj4gLQkJaWd0X2Fz c2VydF9lcSh3cml0ZShwaXBlX2NyYy0+Y3RsX2ZkLCBidWYsIHN0cmxlbihidWYpKSwKPj4gLQkJ CSAgICAgIHN0cmxlbihidWYpKTsKPj4gLQl9IGVsc2Ugewo+PiAtCQljbG9zZShwaXBlX2NyYy0+ Y3JjX2ZkKTsKPj4gLQkJcGlwZV9jcmMtPmNyY19mZCA9IC0xOwo+PiAtCX0KPj4gKwljbG9zZShw aXBlX2NyYy0+Y3JjX2ZkKTsKPj4gKwlwaXBlX2NyYy0+Y3JjX2ZkID0gLTE7Cj4+ICB9Cj4+ICAK Pj4gIC8qKgo+PiAtLSAKPj4gMi4xNC4xCj4+IAo+PiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwo+PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4+IEludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3Bl biBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==