From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v8 09/35] drm/i915: Implement HDCP2.2 link integrity check Date: Thu, 6 Dec 2018 14:41:19 +0100 Message-ID: <20181206134119.GS21184@phenom.ffwll.local> References: <1543315413-24302-1-git-send-email-ramalingam.c@intel.com> <1543315413-24302-10-git-send-email-ramalingam.c@intel.com> <20181206132721.GR21184@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id 314B16E5B5 for ; Thu, 6 Dec 2018 13:41:24 +0000 (UTC) Received: by mail-ed1-x542.google.com with SMTP id z28so779887edi.8 for ; Thu, 06 Dec 2018 05:41:24 -0800 (PST) Content-Disposition: inline In-Reply-To: <20181206132721.GR21184@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ramalingam C Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, uma.shankar@intel.com, tomas.winkler@intel.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBEZWMgMDYsIDIwMTggYXQgMDI6Mjc6MjFQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUdWUsIE5vdiAyNywgMjAxOCBhdCAwNDoxMzowN1BNICswNTMwLCBSYW1hbGlu Z2FtIEMgd3JvdGU6Cj4gPiBJbXBsZW1lbnRzIHRoZSBsaW5rIGludGVncml0eSBjaGVjayBvbmNl IGluIDUwMG1TZWMuCj4gPiAKPiA+IE9uY2UgZW5jcnlwdGlvbiBpcyBlbmFibGVkLCBhbiBvbmdv aW5nIExpbmsgSW50ZWdyaXR5IENoZWNrIGlzCj4gPiBwZXJmb3JtZWQgYnkgdGhlIEhEQ1AgUmVj ZWl2ZXIgdG8gY2hlY2sgdGhhdCBjaXBoZXIgc3luY2hyb25pemF0aW9uCj4gPiBpcyBtYWludGFp bmVkIGJldHdlZW4gdGhlIEhEQ1AgVHJhbnNtaXR0ZXIgYW5kIHRoZSBIRENQIFJlY2VpdmVyLgo+ ID4gCj4gPiBPbiB0aGUgZGV0ZWN0aW9uIG9mIHN5bmNocm9uaXphdGlvbiBsb3N0LCB0aGUgSERD UCBSZWNlaXZlciBtdXN0IGFzc2VydAo+ID4gdGhlIGNvcnJlc3BvbmRpbmcgYml0cyBvZiB0aGUg UnhTdGF0dXMgcmVnaXN0ZXIuIFRoZSBUcmFuc21pdHRlciBwb2xscwo+ID4gdGhlIFJ4U3RhdHVz IHJlZ2lzdGVyIGFuZCBpdCBtYXkgaW5pdGlhdGUgcmUtYXV0aGVudGljYXRpb24uCj4gPiAKPiA+ IHYyOgo+ID4gICBSZWJhc2VkLgo+ID4gdjM6Cj4gPiAgIE5vIENoYW5nZXMuCj4gPiB2NDoKPiA+ ICAgZW51bSBjaGVja19saW5rX3Jlc3BvbnNlIGlzIHVzZWQgY2hlY2sgdGhlIGxpbmsgc3RhdHVz IFtVbWFdCj4gPiB2NToKPiA+ICAgUmViYXNlZCBhcyBwYXJ0IG9mIHBhdGNoIHJlb3JkZXJpbmcu Cj4gPiB2NjoKPiA+ICAgUmVxdWlyZWQgbWVtYmVycyBvZiBpbnRlbF9oZGNwIGlzIGRlZmluZWQg W1NlYW4gUGF1bF0KPiA+IHY3Ogo+ID4gICBoZGNwMl9jaGVja19saW5rIGlzIGNhbmNlbGxlZCBh dCByZXF1aXJlZCBwbGFjZXMuCj4gPiB2ODoKPiA+ICAgUmViYXNlZCBmb3IgdGhlIGNvbXBvbmVu dCBpL2YgY2hhbmdlcy4KPiA+ICAgRXJyb3JzIGR1ZSB0byB0aGUgc2lua3MgYXJlIHJlcG9ydGVk IGFzIERFQlVHIGxvZ3MuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFt YWxpbmdhbS5jQGludGVsLmNvbT4KPiA+IFJldmlld2VkLWJ5OiBVbWEgU2hhbmthciA8dW1hLnNo YW5rYXJAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIHwgMTEgKysrLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCAgICAgfCAgNSArKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMgICAg fCA4MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiA+ICBpbmNsdWRlL2Ry bS9kcm1faGRjcC5oICAgICAgICAgICAgICAgfCAgOCArKysrCj4gPiAgNCBmaWxlcyBjaGFuZ2Vk LCAxMDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gaW5kZXggZTlmNGUyMmIyYTRlLi5mYzYzYmFiY2UxNjUg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTE1ODMz LDE1ICsxNTgzMywyMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9ocGRfcG9sbF9maW5pKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3I7Cj4gPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBjb25uX2l0ZXI7Cj4g PiArCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwOwo+ID4gIAo+ID4gIAkvKiBLaWxsIGFsbCB0aGUg d29yayB0aGF0IG1heSBoYXZlIGJlZW4gcXVldWVkIGJ5IGhwZC4gKi8KPiA+ICAJZHJtX2Nvbm5l Y3Rvcl9saXN0X2l0ZXJfYmVnaW4oZGV2LCAmY29ubl9pdGVyKTsKPiA+ICAJZm9yX2VhY2hfaW50 ZWxfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCAmY29ubl9pdGVyKSB7Cj4gPiArCQloZGNwID0g JmNvbm5lY3Rvci0+aGRjcDsKPiA+ICsKPiA+ICAJCWlmIChjb25uZWN0b3ItPm1vZGVzZXRfcmV0 cnlfd29yay5mdW5jKQo+ID4gIAkJCWNhbmNlbF93b3JrX3N5bmMoJmNvbm5lY3Rvci0+bW9kZXNl dF9yZXRyeV93b3JrKTsKPiA+IC0JCWlmIChjb25uZWN0b3ItPmhkY3Auc2hpbSkgewo+ID4gLQkJ CWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmY29ubmVjdG9yLT5oZGNwLmNoZWNrX3dvcmspOwo+ ID4gLQkJCWNhbmNlbF93b3JrX3N5bmMoJmNvbm5lY3Rvci0+aGRjcC5wcm9wX3dvcmspOwo+ID4g KwkJaWYgKGhkY3AtPnNoaW0pIHsKPiA+ICsJCQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmhk Y3AtPmNoZWNrX3dvcmspOwo+ID4gKwkJCWNhbmNlbF93b3JrX3N5bmMoJmhkY3AtPnByb3Bfd29y ayk7Cj4gPiArCQkJaWYgKGhkY3AtPmhkY3AyX3N1cHBvcnRlZCkKPiA+ICsJCQkJY2FuY2VsX2Rl bGF5ZWRfd29ya19zeW5jKCZoZGNwLT5oZGNwMl9jaGVja193b3JrKTsKPiAKPiBMb2NraW5nIG9m IHRoZXNlIHdvcmtlcnMgaXMgYWx3YXlzIHRyaWNreSAuLi4gd2h5IGNhbid0IHdlIHVzZSB0aGUg c2FtZQo+IHdvcmtlciBmb3IgYm90aCBjaGVja2luZyBoZGNwMiBhbmQgaGRjcDEgbGluayBzdGF0 dXM/Cj4gCj4gT2YgY291cnNlIG5lZWQgdG8gdXNlIHRoZSByaWdodCB0aW1lb3V0IGFuZCBjYWxs IHRoZSByaWdodCBmdW5jdGlvbnMsIGJ1dAo+IEkgdGhpbmsgZ2l2ZXMgdXMgbGVzcyBkdXBsaWNh dGlvbiBpbiB0aGUgY29tcGxpY2F0ZWQgY29kZS4KCkxvY2tpbmcgYW5kIGFsc28gdGhlIGxvZ2lj IHRvIHVwZGF0ZSB0aGUgY29udGVudCBwcm90ZWN0aW9uIHByb3BlcnR5LiBJCnRoaW5rIHNoYXJp bmcgdGhlIGVudGlyZSBtYWluIGZ1bmN0aW9uLCBhbmQgc3BsaXR0aW5nIHRvIGhkY3AxIHZzLiBo ZGNwMgppbiB0aGUgY2hlY2svZW5hYmxlL2Rpc2FibGUgZnVuY3Rpb25zIHdvdWxkIGJlIG5lYXQu Ci1EYW5pZWwKCj4gCj4gCj4gPiAgCQl9Cj4gPiAgCX0KPiA+ICAJZHJtX2Nvbm5lY3Rvcl9saXN0 X2l0ZXJfZW5kKCZjb25uX2l0ZXIpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGlu ZGV4IDI0ZDI1ODQ4OGVmZS4uZTZlMzJiZjUyNTY4IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gPiBAQCAtNDAzLDYgKzQwMyw5IEBAIHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0g ewo+ID4gIAkgKi8KPiA+ICAJaW50ICgqY29uZmlnX3N0cmVhbV90eXBlKShzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiA+ICAJCQkJICB2b2lkICpidWYsIHNpemVf dCBzaXplKTsKPiA+ICsKPiA+ICsJLyogSERDUDIuMiBMaW5rIEludGVncml0eSBDaGVjayAqLwo+ ID4gKwlpbnQgKCpjaGVja18yXzJfbGluaykoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50 ZWxfZGlnX3BvcnQpOwo+ID4gIH07Cj4gPiAgCj4gPiAgc3RydWN0IGludGVsX2hkY3Agewo+ID4g QEAgLTQ0NSw2ICs0NDgsOCBAQCBzdHJ1Y3QgaW50ZWxfaGRjcCB7Cj4gPiAgCSAqIG92ZXIgcmUt QXV0aCBoYXMgdG8gYmUgdHJpZ2dlcmVkLgo+ID4gIAkgKi8KPiA+ICAJdTMyIHNlcV9udW1fbTsK PiA+ICsKPiA+ICsJc3RydWN0IGRlbGF5ZWRfd29yayBoZGNwMl9jaGVja193b3JrOwo+ID4gIH07 Cj4gPiAgCj4gPiAgc3RydWN0IGludGVsX2Nvbm5lY3RvciB7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaGRjcC5jCj4gPiBpbmRleCA2NzlmM2MxNjQ1ODIuLjk4YjExMjM5NWE1YSAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYwo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCj4gPiBAQCAtMTYyNiw2ICsxNjI2LDgxIEBAIHN0 YXRpYyBpbnQgX2ludGVsX2hkY3AyX2Rpc2FibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yKQo+ID4gIAlyZXR1cm4gcmV0Owo+ID4gIH0KPiA+ICAKPiA+ICsvKiBJbXBsZW1lbnRz IHRoZSBMaW5rIEludGVncml0eSBDaGVjayBmb3IgSERDUDIuMiAqLwo+ID4gK3N0YXRpYyBpbnQg aW50ZWxfaGRjcDJfY2hlY2tfbGluayhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ip Cj4gPiArewo+ID4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9 IGNvbm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiA+ICsJc3RydWN0 IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwo+ID4gKwllbnVtIHBvcnQgcG9y dCA9IGNvbm5lY3Rvci0+ZW5jb2Rlci0+cG9ydDsKPiA+ICsKPiA+ICsJaW50IHJldCA9IDA7Cj4g PiArCj4gPiArCWlmICghaGRjcC0+c2hpbSkKPiA+ICsJCXJldHVybiAtRU5PRU5UOwo+IAo+IFdo eSBpcyB0aGlzIHBvc3NpYmxlPyBTaG91bGQgd2Ugd3JhcCBpdCBpbnRvIGF0IGxlYXN0IGEgV0FS Tl9PTj8KPiAKPiA+ICsKPiA+ICsJbXV0ZXhfbG9jaygmaGRjcC0+bXV0ZXgpOwo+ID4gKwo+ID4g KwlpZiAoaGRjcC0+dmFsdWUgPT0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX1VOREVTSVJF RCkKPiA+ICsJCWdvdG8gb3V0Owo+ID4gKwo+ID4gKwlpZiAoIShJOTE1X1JFQUQoSERDUDJfU1RB VFVTX0RESShwb3J0KSkgJiBMSU5LX0VOQ1JZUFRJT05fU1RBVFVTKSkgewo+ID4gKwkJRFJNX0VS Uk9SKCJIRENQMi4yIGNoZWNrIGZhaWxlZDogbGluayBpcyBub3QgZW5jcnlwdGVkLCAleFxuIiwK PiA+ICsJCQkgIEk5MTVfUkVBRChIRENQMl9TVEFUVVNfRERJKHBvcnQpKSk7Cj4gPiArCQlyZXQg PSAtRU5YSU87Cj4gPiArCQloZGNwLT52YWx1ZSA9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElP Tl9ERVNJUkVEOwo+ID4gKwkJc2NoZWR1bGVfd29yaygmaGRjcC0+cHJvcF93b3JrKTsKPiA+ICsJ CWdvdG8gb3V0Owo+ID4gKwl9Cj4gPiArCj4gPiArCXJldCA9IGhkY3AtPnNoaW0tPmNoZWNrXzJf Ml9saW5rKGludGVsX2RpZ19wb3J0KTsKPiA+ICsJaWYgKHJldCA9PSBEUk1fSERDUF9MSU5LX1BS T1RFQ1RFRCkgewo+ID4gKwkJaWYgKGhkY3AtPnZhbHVlICE9IERSTV9NT0RFX0NPTlRFTlRfUFJP VEVDVElPTl9VTkRFU0lSRUQpIHsKPiA+ICsJCQloZGNwLT52YWx1ZSA9IERSTV9NT0RFX0NPTlRF TlRfUFJPVEVDVElPTl9FTkFCTEVEOwo+ID4gKwkJCXNjaGVkdWxlX3dvcmsoJmhkY3AtPnByb3Bf d29yayk7Cj4gPiArCQl9Cj4gPiArCQlnb3RvIG91dDsKPiA+ICsJfQo+ID4gKwo+ID4gKwlEUk1f REVCVUdfS01TKCJbJXM6JWRdIEhEQ1AyLjIgbGluayBmYWlsZWQsIHJldHJ5aW5nIGF1dGhcbiIs Cj4gPiArCQkgICAgICBjb25uZWN0b3ItPmJhc2UubmFtZSwgY29ubmVjdG9yLT5iYXNlLmJhc2Uu aWQpOwo+ID4gKwo+ID4gKwlyZXQgPSBfaW50ZWxfaGRjcDJfZGlzYWJsZShjb25uZWN0b3IpOwo+ ID4gKwlpZiAocmV0KSB7Cj4gPiArCQlEUk1fRVJST1IoIlslczolZF0gRmFpbGVkIHRvIGRpc2Fi bGUgaGRjcDIuMiAoJWQpXG4iLAo+ID4gKwkJCSAgY29ubmVjdG9yLT5iYXNlLm5hbWUsIGNvbm5l Y3Rvci0+YmFzZS5iYXNlLmlkLCByZXQpOwo+ID4gKwkJaGRjcC0+dmFsdWUgPSBEUk1fTU9ERV9D T05URU5UX1BST1RFQ1RJT05fREVTSVJFRDsKPiA+ICsJCXNjaGVkdWxlX3dvcmsoJmhkY3AtPnBy b3Bfd29yayk7Cj4gPiArCQlnb3RvIG91dDsKPiA+ICsJfQo+ID4gKwo+ID4gKwlyZXQgPSBfaW50 ZWxfaGRjcDJfZW5hYmxlKGNvbm5lY3Rvcik7Cj4gPiArCWlmIChyZXQpIHsKPiA+ICsJCURSTV9E RUJVR19LTVMoIlslczolZF0gRmFpbGVkIHRvIGVuYWJsZSBoZGNwMi4yICglZClcbiIsCj4gPiAr CQkJICAgICAgY29ubmVjdG9yLT5iYXNlLm5hbWUsIGNvbm5lY3Rvci0+YmFzZS5iYXNlLmlkLAo+ ID4gKwkJCSAgICAgIHJldCk7Cj4gPiArCQloZGNwLT52YWx1ZSA9IERSTV9NT0RFX0NPTlRFTlRf UFJPVEVDVElPTl9ERVNJUkVEOwo+ID4gKwkJc2NoZWR1bGVfd29yaygmaGRjcC0+cHJvcF93b3Jr KTsKPiA+ICsJCWdvdG8gb3V0Owo+ID4gKwl9Cj4gPiArCj4gPiArb3V0Ogo+ID4gKwltdXRleF91 bmxvY2soJmhkY3AtPm11dGV4KTsKPiA+ICsJcmV0dXJuIHJldDsKPiA+ICt9Cj4gPiArCj4gPiAr c3RhdGljIHZvaWQgaW50ZWxfaGRjcDJfY2hlY2tfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndv cmspCj4gPiArewo+ID4gKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9IGNvbnRhaW5lcl9vZih0 b19kZWxheWVkX3dvcmsod29yayksCj4gPiArCQkJCQkgICAgICAgc3RydWN0IGludGVsX2hkY3As Cj4gPiArCQkJCQkgICAgICAgaGRjcDJfY2hlY2tfd29yayk7Cj4gPiArCXN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvciA9IGludGVsX2hkY3BfdG9fY29ubmVjdG9yKGhkY3ApOwo+ID4g Kwo+ID4gKwlpZiAoIWludGVsX2hkY3AyX2NoZWNrX2xpbmsoY29ubmVjdG9yKSkKPiA+ICsJCXNj aGVkdWxlX2RlbGF5ZWRfd29yaygmaGRjcC0+aGRjcDJfY2hlY2tfd29yaywKPiA+ICsJCQkJICAg ICAgRFJNX0hEQ1AyX0NIRUNLX1BFUklPRF9NUyk7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyBp bnQgaTkxNV9oZGNwX2NvbXBvbmVudF9tYXN0ZXJfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4g PiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2X3RvX2k5 MTUoZGV2KTsKPiA+IEBAIC0xNzYyLDYgKzE4MzcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZGNw Ml9pbml0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ICAJCXJldHVybjsK PiA+ICAJfQo+ID4gIAo+ID4gKwlJTklUX0RFTEFZRURfV09SSygmaGRjcC0+aGRjcDJfY2hlY2tf d29yaywgaW50ZWxfaGRjcDJfY2hlY2tfd29yayk7Cj4gPiAgCWhkY3AtPmhkY3AyX3N1cHBvcnRl ZCA9IDE7Cj4gPiAgfQo+ID4gIAo+ID4gQEAgLTE4MzYsOCArMTkxMiwxMiBAQCBpbnQgaW50ZWxf aGRjcF9lbmFibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gIAkgKiBD b25zaWRlcmluZyB0aGF0IEhEQ1AyLjIgaXMgbW9yZSBzZWN1cmUgdGhhbiBIRENQMS40LCBJZiB0 aGUgc2V0dXAKPiA+ICAJICogaXMgY2FwYWJsZSBvZiBIRENQMi4yLCBpdCBpcyBwcmVmZXJyZWQg dG8gdXNlIEhEQ1AyLjIuCj4gPiAgCSAqLwo+ID4gLQlpZiAoaW50ZWxfaGRjcDJfY2FwYWJsZShj b25uZWN0b3IpKQo+ID4gKwlpZiAoaW50ZWxfaGRjcDJfY2FwYWJsZShjb25uZWN0b3IpKSB7Cj4g PiAgCQlyZXQgPSBfaW50ZWxfaGRjcDJfZW5hYmxlKGNvbm5lY3Rvcik7Cj4gPiArCQlpZiAoIXJl dCkKPiA+ICsJCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmhkY3AtPmhkY3AyX2NoZWNrX3dvcmss Cj4gPiArCQkJCQkgICAgICBEUk1fSERDUDJfQ0hFQ0tfUEVSSU9EX01TKTsKPiA+ICsJfQo+ID4g IAo+ID4gIAkvKiBXaGVuIEhEQ1AyLjIgZmFpbHMsIEhEQ1AxLjQgd2lsbCBiZSBhdHRlbXB0ZWQg Ki8KPiA+ICAJaWYgKHJldCAmJiBpbnRlbF9oZGNwX2NhcGFibGUoY29ubmVjdG9yKSkgewo+ID4g QEAgLTE4NzYsNiArMTk1Niw3IEBAIGludCBpbnRlbF9oZGNwX2Rpc2FibGUoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gIAo+ID4gIAltdXRleF91bmxvY2soJmhkY3AtPm11 dGV4KTsKPiA+ICAJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZoZGNwLT5jaGVja193b3JrKTsK PiA+ICsJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZoZGNwLT5oZGNwMl9jaGVja193b3JrKTsK PiA+ICAJcmV0dXJuIHJldDsKPiA+ICB9Cj4gPiAgCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vZHJtX2hkY3AuaCBiL2luY2x1ZGUvZHJtL2RybV9oZGNwLmgKPiA+IGluZGV4IDNlNDVhNzYx OGFiMy4uYmUwN2EyYjU2ZDIzIDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2hkY3Au aAo+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2hkY3AuaAo+ID4gQEAgLTExLDYgKzExLDE0IEBA Cj4gPiAgCj4gPiAgLyogUGVyaW9kIG9mIGhkY3AgY2hlY2tzICh0byBlbnN1cmUgd2UncmUgc3Rp bGwgYXV0aGVudGljYXRlZCkgKi8KPiA+ICAjZGVmaW5lIERSTV9IRENQX0NIRUNLX1BFUklPRF9N UwkJKDEyOCAqIDE2KQo+ID4gKyNkZWZpbmUgRFJNX0hEQ1AyX0NIRUNLX1BFUklPRF9NUwkJNTAw Cj4gPiArCj4gPiArZW51bSBjaGVja19saW5rX3Jlc3BvbnNlIHsKPiA+ICsJRFJNX0hEQ1BfTElO S19QUk9URUNURUQJPSAwLAo+ID4gKwlEUk1fSERDUF9UT1BPTE9HWV9DSEFOR0UsCj4gPiArCURS TV9IRENQX0xJTktfSU5URUdSSVRZX0ZBSUxVUkUsCj4gPiArCURSTV9IRENQX1JFQVVUSF9SRVFV RVNUCj4gPiArfTsKPiAKPiBUaGUgZHJtX2hkY3AuaCBjaGFuZ2VzIG5lZWQgdG8gYmUgYWxsIHNw bGl0IG91dCBpbnRvIHNlcGVhcmF0ZSBwYXRjaGVzIEkKPiB0aGluay4gSnVzdCBmb3IgaGlnaGxp Z2h0aW5nIG9mIHRoZSBuZXcgc2hhcmVkIGJpdHMuIEFsc28gYXBwbGllcyB0byB0aGUKPiBwcmV2 aW91cyBvbmUuCj4gCj4gT3RoZXJ3aXNlIGxvb2tzIGFsbCByZWFzb25hYmxlLgo+IC1EYW5pZWwK PiAKPiAKPiA+ICAKPiA+ICAvKiBTaGFyZWQgbGVuZ3Rocy9tYXNrcyBiZXR3ZWVuIEhETUkvRFZJ L0Rpc3BsYXlQb3J0ICovCj4gPiAgI2RlZmluZSBEUk1fSERDUF9BTl9MRU4JCQkJOAo+ID4gLS0g Cj4gPiAyLjcuNAo+ID4gCj4gCj4gLS0gCj4gRGFuaWVsIFZldHRlcgo+IFNvZnR3YXJlIEVuZ2lu ZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCgotLSAKRGFuaWVs IFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cu ZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==