From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 240DCC43603 for ; Mon, 9 Dec 2019 18:45:48 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F2BAB2080D for ; Mon, 9 Dec 2019 18:45:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F2BAB2080D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 53B576E44C; Mon, 9 Dec 2019 18:45:47 +0000 (UTC) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1BC656E44C for ; Mon, 9 Dec 2019 18:45:46 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Dec 2019 10:45:44 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,296,1571727600"; d="scan'208";a="237847479" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga004.fm.intel.com with ESMTP; 09 Dec 2019 10:45:42 -0800 Received: from fmsmsx119.amr.corp.intel.com (10.18.124.207) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 9 Dec 2019 10:45:44 -0800 Received: from fmsmsx117.amr.corp.intel.com ([169.254.3.27]) by FMSMSX119.amr.corp.intel.com ([169.254.14.16]) with mapi id 14.03.0439.000; Mon, 9 Dec 2019 10:45:43 -0800 From: "Souza, Jose" To: "ville.syrjala@linux.intel.com" Thread-Topic: [PATCH 1/4] drm/i915/tgl: Select master transcoder for MST stream Thread-Index: AQHVrJxCQQ9NAH2JRkKPCLn930/wfqeyi7AAgAAi6wA= Date: Mon, 9 Dec 2019 18:45:43 +0000 Message-ID: <0871ad3238ca3e73c3bf0150725ba7ba75ed3e5f.camel@intel.com> References: <20191207011832.422566-1-jose.souza@intel.com> <20191209164044.GU1208@intel.com> In-Reply-To: <20191209164044.GU1208@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.98.40.69] Content-ID: <1A9847B65905F64F8B3D724EEC1F9EA1@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH 1/4] drm/i915/tgl: Select master transcoder for MST stream X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "intel-gfx@lists.freedesktop.org" , "De Marchi, Lucas" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gTW9uLCAyMDE5LTEyLTA5IGF0IDE4OjQwICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 DQo+IE9uIEZyaSwgRGVjIDA2LCAyMDE5IGF0IDA1OjE4OjI5UE0gLTA4MDAsIEpvc8OpIFJvYmVy dG8gZGUgU291emENCj4gd3JvdGU6DQo+ID4gT24gVEdMIHRoZSBibGVuZGluZyBvZiBhbGwgdGhl IHN0cmVhbXMgaGF2ZSBtb3ZlZCBmcm9tIERESSB0bw0KPiA+IHRyYW5zY29kZXIsIHNvIG5vdyBl dmVyeSB0cmFuc2NvZGVyIHdvcmtpbmcgb3ZlciB0aGUgc2FtZSBNU1QgcG9ydA0KPiA+IG11c3QN Cj4gPiBzZW5kIGl0cyBzdHJlYW0gdG8gYSBtYXN0ZXIgdHJhbnNjb2RlciBhbmQgbWFzdGVyIHdp bGwgc2VuZCB0byBEREkNCj4gPiByZXNwZWN0aW5nIHRoZSB0aW1lIHNsb3RzLg0KPiA+IA0KPiA+ IFNvIGhlcmUgYWRkaW5nIGFsbCB0aGUgQ1JUQ3MgdGhhdCBzaGFyZXMgdGhlIHNhbWUgTVNUIHN0 cmVhbSBpZg0KPiA+IG5lZWRlZCBhbmQgY29tcHV0aW5nIHRoZWlyIHN0YXRlIGFnYWluLCBpdCB3 aWxsIHBpY2sgdGhlIGZpcnN0DQo+ID4gdHJhbnNjb2RlciBhbW9uZyB0aGUgb25lcyBpbiB0aGUg c2FtZSBzdHJlYW0gdG8gYmUgbWFzdGVyLg0KPiA+IA0KPiA+IE1vc3Qgb2YgdGhlIHRpbWUgc2ts X2NvbW1pdF9tb2Rlc2V0X2VuYWJsZXMoKSBlbmFibGVzIHBpcGVzIGluIGENCj4gPiBjcmVzY2Vu dCBvcmRlciBidXQgZHVlIEREQiBvdmVybGFwcGluZyBpdCBtaWdodCBub3QgaGFwcGVuLCB0aGlz DQo+ID4gc2NlbmFyaW8gd2lsbCBiZSBoYW5kbGVkIGluIHRoZSBuZXh0IHBhdGNoLg0KPiA+IA0K PiA+IEJTcGVjOiA1MDQ5Mw0KPiA+IEJTcGVjOiA0OTE5MA0KPiA+IENjOiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPg0KPiA+IENjOiBMdWNhcyBEZSBNYXJj aGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBKb3PDqSBS b2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyAgICAgIHwgIDE0ICstDQo+ID4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jICB8ICAxNSArLQ0K PiA+ICAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggICAgfCAgIDMg Kw0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jICAgfCAx NjMNCj4gPiArKysrKysrKysrKysrKysrKysNCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kcF9tc3QuaCAgIHwgICA1ICsNCj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCAxOTYg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYw0KPiA+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYw0KPiA+IGluZGV4IDNjYWNiMWUyNzljMS4uYmU1 YmM1MDZkNGQzIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGRpLmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2RkaS5jDQo+ID4gQEAgLTE5MDMsOCArMTkwMywxMyBAQCBpbnRlbF9kZGlfdHJhbnNjb2Rlcl9m dW5jX3JlZ192YWxfZ2V0KGNvbnN0DQo+ID4gc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpDQo+ID4gIAkJdGVtcCB8PSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFBfTVNUOw0KPiA+ ICAJCXRlbXAgfD0gRERJX1BPUlRfV0lEVEgoY3J0Y19zdGF0ZS0+bGFuZV9jb3VudCk7DQo+ID4g IA0KPiA+IC0JCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKQ0KPiA+IC0JCQl0ZW1wIHw9 DQo+ID4gVFJBTlNfRERJX01TVF9UUkFOU1BPUlRfU0VMRUNUKGNydGNfc3RhdGUtPmNwdV90cmFu c2NvZGVyKTsNCj4gPiArCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgew0KPiA+ICsJ CQllbnVtIHRyYW5zY29kZXIgbWFzdGVyOw0KPiA+ICsNCj4gPiArCQkJbWFzdGVyID0gY3J0Y19z dGF0ZS0+bXN0X21hc3Rlcl90cmFuc2NvZGVyOw0KPiA+ICsJCQlXQVJOX09OKG1hc3RlciA9PSBJ TlZBTElEX1RSQU5TQ09ERVIpOw0KPiANCj4gSSdkIGRyb3AgdGhlIFdBUk5fT04oKS4gSWYgd2Ug a2VlcCBhZGRpbmcgdGhlc2UgZm9yIGV2ZXJ5IGxpdHRsZQ0KPiB0aGluZw0KPiB3ZSdsbCBkcm93 biBpbiB0aGVtLg0KPiANCj4gPiArCQkJdGVtcCB8PSBUUkFOU19ERElfTVNUX1RSQU5TUE9SVF9T RUxFQ1QobWFzdGVyKTsNCj4gPiArCQl9DQo+ID4gIAl9IGVsc2Ugew0KPiA+ICAJCXRlbXAgfD0g VFJBTlNfRERJX01PREVfU0VMRUNUX0RQX1NTVDsNCj4gPiAgCQl0ZW1wIHw9IERESV9QT1JUX1dJ RFRIKGNydGNfc3RhdGUtPmxhbmVfY291bnQpOw0KPiA+IEBAIC00MzcyLDYgKzQzNzcsMTEgQEAg dm9pZCBpbnRlbF9kZGlfZ2V0X2NvbmZpZyhzdHJ1Y3QNCj4gPiBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLA0KPiA+ICAJCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0gQklUKElOVEVMX09VVFBV VF9EUF9NU1QpOw0KPiA+ICAJCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0NCj4gPiAgCQkJKCh0 ZW1wICYgRERJX1BPUlRfV0lEVEhfTUFTSykgPj4NCj4gPiBERElfUE9SVF9XSURUSF9TSElGVCkg KyAxOw0KPiA+ICsNCj4gPiArCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikNCj4gPiAr CQkJcGlwZV9jb25maWctPm1zdF9tYXN0ZXJfdHJhbnNjb2RlciA9DQo+ID4gKwkJCQkJUkVHX0ZJ RUxEX0dFVChUUkFOU19ERElfTVNUX1RSQQ0KPiA+IE5TUE9SVF9TRUxFQ1RfTUFTSywgdGVtcCk7 DQo+ID4gKw0KPiA+ICAJCWludGVsX2RwX2dldF9tX24oaW50ZWxfY3J0YywgcGlwZV9jb25maWcp Ow0KPiA+ICAJCWJyZWFrOw0KPiA+ICAJZGVmYXVsdDoNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMNCj4gPiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jDQo+ID4gaW5kZXggODIxYmE4MDUzZjlk Li5mODk0OTRjODQ5Y2UgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5LmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXkuYw0KPiA+IEBAIC00Niw2ICs0Niw3IEBADQo+ID4gICNpbmNsdWRl ICJkaXNwbGF5L2ludGVsX2NydC5oIg0KPiA+ICAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kZGku aCINCj4gPiAgI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZHAuaCINCj4gPiArI2luY2x1ZGUgImRp c3BsYXkvaW50ZWxfZHBfbXN0LmgiDQo+ID4gICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2RzaS5o Ig0KPiA+ICAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kdm8uaCINCj4gPiAgI2luY2x1ZGUgImRp c3BsYXkvaW50ZWxfZ21idXMuaCINCj4gPiBAQCAtMTI1NDIsNiArMTI1NDMsMTEgQEAgc3RhdGlj IHZvaWQgaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhjb25zdA0KPiA+IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpwaXBlX2NvbmZpZywNCj4gPiAgCQkJICAgICAgcGlwZV9jb25maWctPmNzY19tb2Rl LCBwaXBlX2NvbmZpZy0NCj4gPiA+Z2FtbWFfbW9kZSwNCj4gPiAgCQkJICAgICAgcGlwZV9jb25m aWctPmdhbW1hX2VuYWJsZSwgcGlwZV9jb25maWctDQo+ID4gPmNzY19lbmFibGUpOw0KPiA+ICAN Cj4gPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyICYmDQo+ID4gKwkgICAgaW50ZWxf Y3J0Y19oYXNfdHlwZShwaXBlX2NvbmZpZywgSU5URUxfT1VUUFVUX0RQX01TVCkpDQo+IA0KPiBD b3VsZCBwcm9iYWJseSBwcmludCB0aGlzIHVuY29uZGl0aW9uYWxseSB0byBrZWVwIHRoZSBjb2Rl IGxlc3MNCj4gbWVzc3kuDQoNCkknbSBub3Qgc2V0dGluZyBtc3RfbWFzdGVyX3RyYW5zY29kZXIg PSBJTlZBTElEX1RSQU5TQ09ERVIgaW4gdGhlIG90aGVyDQpjb2RlIHBhdGhzLCBzbyBpdCB3b3Vs ZCBwcmludCB0cmFuc2NvZGVyIEEgZm9yIEhETUksIERQIFNTVCBhbmQgdG8gRFANCk1TVCBpbiBn ZW4gPCAxMi4NClRoYXQgaXMgZmluZT8gU2hvdWxkIEkgYWRkIG1zdF9tYXN0ZXJfdHJhbnNjb2Rl ciA9IElOVkFMSURfVFJBTlNDT0RFUg0KdG8gYWxsIHRob3NlIGNvZGUgcGF0aHM/IEZvciBtZSB0 aGUgYmVzdCBvcHRpb24gaXMga2VlcCB0aGlzIGNoZWNrcy4NCg0KDQo+IA0KPiA+ICsJCURSTV9E RUJVR19LTVMoIk1TVCBtYXN0ZXIgdHJhbnNjb2RlcjogJXNcbiIsDQo+ID4gKwkJCSAgICAgIHRy YW5zY29kZXJfbmFtZShwaXBlX2NvbmZpZy0NCj4gPiA+bXN0X21hc3Rlcl90cmFuc2NvZGVyKSk7 DQo+ID4gKw0KPiA+ICBkdW1wX3BsYW5lczoNCj4gPiAgCWlmICghc3RhdGUpDQo+ID4gIAkJcmV0 dXJuOw0KPiA+IEBAIC0xMzMxOCw2ICsxMzMyNCwxMCBAQCBpbnRlbF9waXBlX2NvbmZpZ19jb21w YXJlKGNvbnN0IHN0cnVjdA0KPiA+IGludGVsX2NydGNfc3RhdGUgKmN1cnJlbnRfY29uZmlnLA0K PiA+ICAJUElQRV9DT05GX0NIRUNLX0koc3luY19tb2RlX3NsYXZlc19tYXNrKTsNCj4gPiAgCVBJ UEVfQ09ORl9DSEVDS19JKG1hc3Rlcl90cmFuc2NvZGVyKTsNCj4gPiAgDQo+ID4gKwlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSAxMiAmJg0KPiA+ICsJICAgIGludGVsX2NydGNfaGFzX3R5cGUo cGlwZV9jb25maWcsIElOVEVMX09VVFBVVF9EUF9NU1QpKQ0KPiANCj4gVGhlc2UgY2hlY2tzIGFy ZSBkZWZpbml0ZWx5IHBvaW50bGVzcy4NCg0KU2ltaWxhciB3aXRoIHRoZSBhYm92ZSwgaXQgd291 bGQgbm90IGNhdXNlIG1pc21hdGNoIGJlY2F1c2UgZm9yIG5vbiBnZW4NCjEyIERQIE1TVCBpdCB3 b3VsZCBjb21wYXJlIHRyYW5zIEEgd2l0aCB0cmFucyBBLCB3aWxsIGNoYW5nZSB0aGF0DQpkZXBl bmRpbmcgb24geW91ciBhbnN3ZXIgdG8gdGhlIGFib3ZlLg0KDQoNCj4gDQo+ID4gKwkJUElQRV9D T05GX0NIRUNLX0kobXN0X21hc3Rlcl90cmFuc2NvZGVyKTsNCj4gPiArDQo+ID4gICN1bmRlZiBQ SVBFX0NPTkZfQ0hFQ0tfWA0KPiA+ICAjdW5kZWYgUElQRV9DT05GX0NIRUNLX0kNCj4gPiAgI3Vu ZGVmIFBJUEVfQ09ORl9DSEVDS19CT09MDQo+ID4gQEAgLTE0NDA2LDcgKzE0NDE2LDcgQEAgc3Rh dGljIHZvaWQNCj4gPiBpbnRlbF9jb21taXRfbW9kZXNldF9kaXNhYmxlcyhzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpzdGF0ZSkNCj4gPiAgCXUzMiBoYW5kbGVkID0gMDsNCj4gPiAgCWludCBp Ow0KPiA+ICANCj4gPiAtCS8qIE9ubHkgZGlzYWJsZSBwb3J0IHN5bmMgc2xhdmVzICovDQo+ID4g KwkvKiBPbmx5IGRpc2FibGUgcG9ydCBzeW5jIGFuZCBNU1Qgc2xhdmVzICovDQo+ID4gIAlmb3Jf ZWFjaF9vbGRuZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywNCj4gPiBvbGRfY3J0 Y19zdGF0ZSwNCj4gPiAgCQkJCQkgICAgbmV3X2NydGNfc3RhdGUsIGkpIHsNCj4gPiAgCQlpZiAo IW5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpKQ0KPiA+IEBAIC0xNDQyMCw3ICsxNDQzMCw4 IEBAIHN0YXRpYyB2b2lkDQo+ID4gaW50ZWxfY29tbWl0X21vZGVzZXRfZGlzYWJsZXMoc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpDQo+ID4gIAkJICogc2xhdmUgQ1JUQ3MgYXJlIGRp c2FibGVkIGZpcnN0IGFuZCB0aGVuIG1hc3RlciBDUlRDDQo+ID4gc2luY2UNCj4gPiAgCQkgKiBT bGF2ZSB2YmxhbmtzIGFyZSBtYXNrZWQgdGlsbCBNYXN0ZXIgVmJsYW5rcy4NCj4gPiAgCQkgKi8N Cj4gPiAtCQlpZiAoIWlzX3RyYW5zX3BvcnRfc3luY19zbGF2ZShvbGRfY3J0Y19zdGF0ZSkpDQo+ ID4gKwkJaWYgKCFpc190cmFuc19wb3J0X3N5bmNfc2xhdmUob2xkX2NydGNfc3RhdGUpICYmDQo+ ID4gKwkJICAgICFpbnRlbF9kcF9tc3RfaXNfc2xhdmVfdHJhbnMob2xkX2NydGNfc3RhdGUpKQ0K PiA+ICAJCQljb250aW51ZTsNCj4gPiAgDQo+ID4gIAkJaW50ZWxfcHJlX3BsYW5lX3VwZGF0ZShz dGF0ZSwgY3J0Yyk7DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGlzcGxheV90eXBlcy5oDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaA0KPiA+IGluZGV4IDgzZWEwNDE0OWI3Ny4uNjMwYTk0 ODkyYjdiIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGlzcGxheV90eXBlcy5oDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgNCj4gPiBAQCAtMTA1NCw2ICsxMDU0LDkgQEAgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgew0KPiA+ICANCj4gPiAgCS8qIEJpdG1hc2sgdG8gaW5kaWNhdGUg c2xhdmVzIGF0dGFjaGVkICovDQo+ID4gIAl1OCBzeW5jX21vZGVfc2xhdmVzX21hc2s7DQo+ID4g Kw0KPiA+ICsJLyogT25seSB2YWxpZCBvbiBUR0wrICovDQo+ID4gKwllbnVtIHRyYW5zY29kZXIg bXN0X21hc3Rlcl90cmFuc2NvZGVyOw0KPiA+ICB9Ow0KPiA+ICANCj4gPiAgc3RydWN0IGludGVs X2NydGMgew0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RwX21zdC5jDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rw X21zdC5jDQo+ID4gaW5kZXggOTI2ZTQ5ZjQ0OWE2Li40OWYxNTE4ZTNhYjkgMTAwNjQ0DQo+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYw0KPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMNCj4gPiBAQCAt ODcsNiArODcsNDkgQEAgc3RhdGljIGludA0KPiA+IGludGVsX2RwX21zdF9jb21wdXRlX2xpbmtf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLA0KPiA+ICAJcmV0dXJuIDA7DQo+ ID4gIH0NCj4gPiAgDQo+ID4gKy8qDQo+ID4gKyAqIEl0ZXJhdGUgb3ZlciBhbGwgdGhlIENSVENz IGFuZCBzZXQgbXN0X21hc3Rlcl90cmFuc2NvZGVyIHRvIHRoZQ0KPiA+IGZpcnN0IGFjdGl2ZQ0K PiA+ICsgKiB0cmFuc2NvZGVyIHRoYXQgc2hhcmVzIHRoZSBzYW1lIE1TVCBjb25uZWN0b3IuDQo+ ID4gKyAqDQo+ID4gKyAqIFRPRE86IG1heWJlIHRoaXMgY291bGQgYmUgb3B0aW1pemVkIHRvIGtl ZXAgdGhlIG9sZCBtYXN0ZXINCj4gPiB0cmFuc2NvZGVyDQo+ID4gKyAqLw0KPiA+ICtzdGF0aWMg aW50DQo+ID4gK2ludGVsX2RwX21zdF9tYXN0ZXJfdHJhbnNfY29tcHV0ZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwNCj4gPiArCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfY29uZmlnLA0KPiANCj4gcy9waXBlX2NvbmZpZy9jcnRjX3N0YXRlLw0KDQpPa2F5DQoNCj4g DQo+ID4gKwkJCQkgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlDQo+ID4gKmNvbm5fc3RhdGUp DQo+ID4gK3sNCj4gPiArCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0NCj4gPiB0 b19pbnRlbF9hdG9taWNfc3RhdGUocGlwZV9jb25maWctPnVhcGkuc3RhdGUpOw0KPiA+ICsJc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubiA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRl LQ0KPiA+ID5jb25uZWN0b3IpOw0KPiANCj4gb2NkOiBzL2Nvbm4vY29ubmVjdG9yLyBhbGwgb3Zl ci4NCg0KT2theQ0KDQo+IA0KPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7DQo+ID4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9jb25uZWN0b3Jfc3RhdGUgKml0ZXJfY29ubl9zdGF0ZTsNCj4gPiArCXN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKml0ZXJfY29ubjsNCj4gPiArCWludCBpOw0KPiA+ICsNCj4gPiArCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpIDwgMTIpDQo+ID4gKwkJcmV0dXJuIDA7DQo+ID4gKw0KPiA+ICsJZm9y X2VhY2hfbmV3X2ludGVsX2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgaXRlcl9jb25uLA0KPiA+ ICsJCQkJCSAgICAgIGl0ZXJfY29ubl9zdGF0ZSwgaSkgew0KPiA+ICsJCXN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICppdGVyX2NydGNfc3RhdGU7DQo+ID4gKwkJc3RydWN0IGludGVsX2NydGMgKml0 ZXJfY3J0YzsNCj4gPiArDQo+ID4gKwkJaWYgKGNvbm4tPm1zdF9wb3J0ICE9IGl0ZXJfY29ubi0+ bXN0X3BvcnQgfHwNCj4gPiArCQkgICAgIWl0ZXJfY29ubl9zdGF0ZS0+YmFzZS5jcnRjKQ0KPiA+ ICsJCQljb250aW51ZTsNCj4gPiArDQo+ID4gKwkJaXRlcl9jcnRjID0gdG9faW50ZWxfY3J0Yyhp dGVyX2Nvbm5fc3RhdGUtPmJhc2UuY3J0Yyk7DQo+ID4gKwkJaXRlcl9jcnRjX3N0YXRlID0NCj4g PiBpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLA0KPiA+ICsJCQkJCQkJCSAg aXRlcl8NCj4gPiBjcnRjKTsNCj4gPiArCQlpZiAoIWl0ZXJfY3J0Y19zdGF0ZS0+dWFwaS5hY3Rp dmUpDQo+ID4gKwkJCWNvbnRpbnVlOw0KPiA+ICsNCj4gPiArCQlwaXBlX2NvbmZpZy0+bXN0X21h c3Rlcl90cmFuc2NvZGVyID0gaXRlcl9jcnRjX3N0YXRlLQ0KPiA+ID5jcHVfdHJhbnNjb2RlcjsN Cj4gPiArCQlicmVhazsNCj4gDQo+IFNvIHdlJ3JlIGdvaW5nIHRvIHBpY2sgdGhpcyBiYXNlZCBv biB0aGUgY29ubmVjdG9yIG9yZGVyLiBIb3cgZG9lcw0KPiB0aGF0DQo+IGZpdCBpbiB3aXRoIHRo ZSBwb3J0IHN5bmMsIG9yIGRpZCB3ZSBub3QgaGF2ZSBwb3J0IHN5bmMgZm9yIE1TVCB5ZXQ/DQo+ IA0KPiBUbyBrZWVwIGV2ZXJ5dGhpbmcgY29uc2lzdGVudCBhbmQgZWFzeSBteSBpZGVhIHdhcyB0 byBwaWNrIHRoZSBmaXJzdA0KPiBwaXBlIGFzIHRoZSBtYXN0ZXIgZm9yIGJvdGggTVNUIGFuZCBw b3J0IHN5bmMuIA0KPiANCj4gQWx0aG91Z2ggSSBjYW4gZWFzaWx5IGltYWdpbmUgdG9wb2xvZ2ll cyB3aGVyZSBldmVuIHRoYXQgd291bGQNCj4gbGFuZCB1cyBpbiBzb21lIGludGVyZXN0aW5nIG1l c3MuIEZvciBleGFtcGxlOg0KPiBwaXBlIEEgLT4gTVNUIHBvcnQgQiAtPiAuLi4gLT4gd2hhdGV2 ZXIgOiBNU1QgbWFzdGVyDQo+IHBpcGUgQiAtPiBNU1QgcG9ydCBCIC0+IC4uLiAtPiB0aWxlIDAg OiBwb3J0IHN5bmMgbWFzdGVyIC8gTVNUIHNsYXZlDQo+IHBpcGUgQyAtPiBNU1QgcG9ydCBDIC0+ IC4uLiAtPiB0aWxlIDEgOiBwb3J0IHN5bmMgc2xhdmUgLyBNU1QgbWFzdGVyDQo+IHBpcGUgRCAt PiBNU1QgcG9ydCBDIC0+IC4uLiAtPiB3aGF0ZXZlciA6IE1TVCBzbGF2ZQ0KPiANCj4gcGlwZSBB IC0+IE1TVCBwb3J0IEIgLT4gLi4uIC0+IHdoYXRldmVyIDogTVNUIG1hc3Rlcg0KPiBwaXBlIEIg LT4gTVNUIHBvcnQgQiAtPiAuLi4gLT4gdGlsZSAwIDogcG9ydCBzeW5jIG1hc3RlciAvIE1TVCBz bGF2ZQ0KPiBwaXBlIEMgLT4gTVNUIHBvcnQgQyAtPiAuLi4gLT4gd2hhdGV2ZXIgOiBNU1QgbWFz dGVyDQo+IHBpcGUgRCAtPiBNU1QgcG9ydCBDIC0+IC4uLiAtPiB0aWxlIDEgOiBwb3J0IHN5bmMg c2xhdmUgLyBNU1Qgc2xhdmUNCj4gDQo+IE5vIGlkZWEgaWYgdGhlIGh3IGNhbiBldmVuIGRvIHNv bWV0aGluZyBsaWtlIHRoYXQuIE5lZWRzIG1vcmUgdGhvdWdodA0KPiBpZi93aGVuIHdlIGVuYWJs ZSBwb3J0IHN5bmMgd2l0aCBNU1QgKGFzc3VtaW5nIHdlJ3JlIG5vdCBhbHJlYWR5DQo+IGRvaW5n DQo+IHRoYXQpLg0KDQpBY2NvcmRpbmcgdG8gQlNwZWMgaXMgcG9zc2libGUgdG8gaGF2ZSBwb3J0 IHN5bmMgd2l0aCBNU1QgYnV0IGl0IGlzIG5vdA0KaW1wbGVtZW50ZWQuIEJ1dCBzdXJlIGl0IGNh biBiZSBlYXNpbHkgZml4ZWQsIHdpbGwgbG9vcCB0aHJvZ2ggYWxsIHRoZQ0KY29ubmVjdG9ycyB1 cGRhdGluZyBtc3RfbWFzdGVyX3RyYW5zY29kZXIgd2l0aCB0aGUgc21hbGxlc3QgcGlwZS4NCg0K PiANCj4gPiArCX0NCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiAg c3RhdGljIGludCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29k ZXINCj4gPiAqZW5jb2RlciwNCj4gPiAgCQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZQ0KPiA+ICpwaXBlX2NvbmZpZywNCj4gPiAgCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZQ0KPiA+ICpjb25uX3N0YXRlKQ0KPiA+IEBAIC0xNTQsNiArMTk3LDk4IEBAIHN0YXRp YyBpbnQgaW50ZWxfZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdA0KPiA+IGludGVsX2VuY29k ZXIgKmVuY29kZXIsDQo+ID4gIA0KPiA+ICAJaW50ZWxfZGRpX2NvbXB1dGVfbWluX3ZvbHRhZ2Vf bGV2ZWwoZGV2X3ByaXYsIHBpcGVfY29uZmlnKTsNCj4gPiAgDQo+ID4gKwlyZXQgPSBpbnRlbF9k cF9tc3RfbWFzdGVyX3RyYW5zX2NvbXB1dGUoZW5jb2RlciwgcGlwZV9jb25maWcsDQo+ID4gKwkJ CQkJCWNvbm5fc3RhdGUpOw0KPiA+ICsJaWYgKHJldCkNCj4gPiArCQlyZXR1cm4gcmV0Ow0KPiA+ ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50DQo+ID4g K2ludGVsX2RwX21zdF9hdG9taWNfbWFzdGVyX3RyYW5zX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVj dG9yDQo+ID4gKmNvbm5lY3RvciwNCj4gPiArCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpDQo+IA0KPiBKdXN0IHBhc3MgaW4gaW50ZWxfIHR5cGVzIHBscy4NCg0KT2th eQ0KDQo+IA0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNvbm5lY3Rvci0+ZGV2KTsNCj4gPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpuZXdfY29ubl9zdGF0ZSwgKm9sZF9jb25uX3N0YXRlOw0KPiA+ICsJc3RydWN0IGRybV9j b25uZWN0b3JfbGlzdF9pdGVyIGNvbm5fbGlzdF9pdGVyOw0KPiANCj4gb2NkOiBzL2Nvbm5fbGlz dF9pdGVyL2Nvbm5faXRlci8gDQoNCk9rYXkNCg0KPiANCj4gPiArCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICppbnRlbF9jcnRjX3N0YXRlOw0KPiANCj4gSnVzdCAnY3J0Y19zdGF0ZScNCg0KT2th eQ0KDQo+IA0KPiA+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubjsNCj4gPiAr CXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsNCj4gPiArCXN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uX2l0ZXI7DQo+IA0KPiBpdGVyX2ZvbyB2cy4gZm9vX2l0ZXIgaW4gdGhpcyB2 cy4gdGhlIHByZXZpb3VzIGZ1bmN0aW9uLiBOb3QgdGhhdCBJDQo+IHJlYWxseSBsaWtlIHRoYXQg bmFtaW5nIGNvbnZlbnRpb24gc2luY2UgaXQgY2FuIGdldCBjb25mdXNpbmcgd2l0aA0KPiB0aGUg J3N0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBjb25uX2l0ZXInLg0KPiANCj4gPiArDQo+ ID4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDEyKQ0KPiA+ICsJCXJldHVybiAgMDsNCj4g PiArDQo+ID4gKwlpbnRlbF9jb25uID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7DQo+ ID4gKwluZXdfY29ubl9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jb25uZWN0b3Jfc3RhdGUo c3RhdGUsDQo+ID4gY29ubmVjdG9yKTsNCj4gPiArCW9sZF9jb25uX3N0YXRlID0gZHJtX2F0b21p Y19nZXRfb2xkX2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwNCj4gPiBjb25uZWN0b3IpOw0KPiANCj4g VGhlc2UgY291bGQgYmUgZG9uZSB3aGVuIGRlY2xhcmluZyB0aGUgdmFyaWFibGVzLg0KPiANCj4g PiArDQo+ID4gKwlpZiAoIW9sZF9jb25uX3N0YXRlLT5jcnRjICYmICFuZXdfY29ubl9zdGF0ZS0+ Y3J0YykNCj4gPiArCQlyZXR1cm4gMDsNCj4gPiArDQo+ID4gKwkvKg0KPiA+ICsJICogMyBjYXNl cyB0aGF0IG5lZWRzIGJlIGhhbmRsZWQgaGVyZToNCj4gPiArCSAqIC0gY29ubmVjdG9yIGdvaW5n IGZyb20gZGlzYWJsZWQgdG8gZW5hYmxlZDoNCj4gPiArCSAqIG5vdGhpbmcgZWxzZSBuZWVkIHRv IGJlIGRvbmUsIGRybSBoZWxwZXJzIGFscmVhZHkgc2V0DQo+ID4gbW9kZV9jaGFuZ2VkIGluDQo+ ID4gKwkgKiB0aGUgQ1JUQ3MgbmVlZGVkDQo+ID4gKwkgKiAtIGNvbm5lY3RvciBnb2luZyBmcm9t IGVuYWJsZWQgdG8gZGlzYWJsZWQ6DQo+ID4gKwkgKiBpZiB0aGlzIHRyYW5zY29kZXIgd2FzIHRo ZSBtYXN0ZXIsIGFsbCBzbGF2ZXMgbmVlZHMgYQ0KPiA+IG1vZGVzZXQNCj4gPiArCSAqIC0gY29u bmVjdG9yIGdvaW5nIGZyb20gZW5hYmxlZCB0byBlbmFibGVkIGJ1dCBpdCBuZWVkcyBhDQo+ID4g bW9kZXNldDoNCj4gPiArCSAqIGlmIHRoaXMgdHJhbnNjb2RlciB3YXMgdGhlIG1hc3RlciwgYWxs IHNsYXZlcyBhbHNvIG5lZWRzIGENCj4gPiBtb2Rlc2V0DQo+ID4gKwkgKi8NCj4gDQo+IFRvbyBt YXkgc3BlY2lhbCBjYXNlcyBJTU8uIEkgc3VnZ2VzdCBqdXN0IGJsaW5kbHkgbWFya2luZw0KPiBl dmVyeXRoaW5nIG9uIHRoZSBzYW1lIG1zdF9wb3J0IGZvciBtb2Rlc2V0IGlmIHRoaXMgY29ubmVj dG9yDQo+IG5lZWRzIGEgbW9kZXNldC4gSUlSQyB3ZSBoYXZlIGEgaGVscGVyIGZvciB0aGF0IGNo ZWNrIGV2ZW4uLi4NCj4gQWggeWVzLCBpbnRlbF9jb25uZWN0b3JfbmVlZHNfbW9kZXNldCgpLg0K DQpPb29oIGNvb2wsIHdpbGwgdXNlIGl0Lg0KDQo+IA0KPiA+ICsNCj4gPiArCS8qIGRpc2FibGVk IC0+IGVuYWJsZWQgKi8NCj4gPiArCWlmICghb2xkX2Nvbm5fc3RhdGUtPmNydGMgJiYgbmV3X2Nv bm5fc3RhdGUtPmNydGMpDQo+ID4gKwkJcmV0dXJuIDA7DQo+ID4gKw0KPiA+ICsJLyogZW5hYmxl ZCAtPiBlbmFibGVkKG1vZGVzZXQpPyAqLw0KPiA+ICsJaWYgKG5ld19jb25uX3N0YXRlLT5jcnRj KSB7DQo+ID4gKwkJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0 YXRlLA0KPiA+ICsJCQkJCQkJICAgbmV3X2Nvbm5fc3RhDQo+ID4gdGUtPmNydGMpOw0KPiA+ICsJ CWlmICghZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpDQo+ID4gKwkJ CXJldHVybiAwOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCS8qIGhhbmRsaW5nIGVuYWJsZWQgLT4g ZW5hYmxlZChtb2Rlc2V0KSBhbmQgZW5hYmxlZCAtPiBkaXNhYmxlZA0KPiA+ICovDQo+ID4gKwlj cnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfb2xkX2NydGNfc3RhdGUoc3RhdGUsDQo+ID4gb2xk X2Nvbm5fc3RhdGUtPmNydGMpOw0KPiA+ICsJaW50ZWxfY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2Ny dGNfc3RhdGUoY3J0Y19zdGF0ZSk7DQo+ID4gKw0KPiA+ICsJLyogSWYgbm90IG1hc3Rlciwgbm90 aGluZyBlbHNlIG5lZWRzIHRvIGJlIGhhbmRsZWQgKi8NCj4gPiArCWlmICghaW50ZWxfZHBfbXN0 X2lzX21hc3Rlcl90cmFucyhpbnRlbF9jcnRjX3N0YXRlKSkNCj4gPiArCQlyZXR1cm4gMDsNCj4g PiArDQo+ID4gKwkvKiBJdCBpcyBtYXN0ZXIsIGFkZCBhbmQgbWFyayBhbGwgb3RoZXIgQ1JUQ3Mg aW4gdGhlIHN0cmVhbSBhcw0KPiA+IGNoYW5nZWQgKi8NCj4gPiArCWRybV9jb25uZWN0b3JfbGlz dF9pdGVyX2JlZ2luKHN0YXRlLT5kZXYsICZjb25uX2xpc3RfaXRlcik7DQo+ID4gKwlkcm1fZm9y X2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubl9pdGVyLCAmY29ubl9saXN0X2l0ZXIpIHsNCj4gPiAr CQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9pdGVyX3N0YXRlOw0KPiA+ICsJCXN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5faXRlcjsNCj4gPiArDQo+ID4gKwkJaW50 ZWxfY29ubl9pdGVyID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5faXRlcik7DQo+ID4gKwkJaWYg KGludGVsX2Nvbm5faXRlci0+bXN0X3BvcnQgIT0gaW50ZWxfY29ubi0+bXN0X3BvcnQpDQo+ID4g KwkJCWNvbnRpbnVlOw0KPiA+ICsNCj4gPiArCQljb25uX2l0ZXJfc3RhdGUgPSBkcm1fYXRvbWlj X2dldF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsDQo+ID4gKwkJCQkJCQkJIGNvbm5faQ0KPiA+IHRl cik7DQo+ID4gKwkJaWYgKElTX0VSUihjb25uX2l0ZXJfc3RhdGUpKSB7DQo+ID4gKwkJCWRybV9j b25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9saXN0X2l0ZXIpOw0KPiA+ICsJCQlyZXR1cm4g UFRSX0VSUihjb25uX2l0ZXJfc3RhdGUpOw0KPiA+ICsJCX0NCj4gPiArDQo+ID4gKwkJaWYgKCFj b25uX2l0ZXJfc3RhdGUtPmNydGMpDQo+ID4gKwkJCWNvbnRpbnVlOw0KPiA+ICsNCj4gPiArCQlj cnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwNCj4gPiArCQkJCQkJ ICAgICAgIGNvbm5faXRlcl9zdGF0ZS0NCj4gPiA+Y3J0Yyk7DQo+ID4gKwkJaWYgKElTX0VSUihj cnRjX3N0YXRlKSkgew0KPiA+ICsJCQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5f bGlzdF9pdGVyKTsNCj4gPiArCQkJcmV0dXJuIFBUUl9FUlIoY29ubl9pdGVyX3N0YXRlKTsNCj4g PiArCQl9DQo+ID4gKw0KPiA+ICsJCWNydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRydWU7DQo+ ID4gKwl9DQo+ID4gKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5fbGlzdF9pdGVy KTsNCj4gPiArDQo+ID4gIAlyZXR1cm4gMDsNCj4gPiAgfQ0KPiA+ICANCj4gPiBAQCAtMTc1LDYg KzMxMCwxMCBAQCBpbnRlbF9kcF9tc3RfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVjdG9y DQo+ID4gKmNvbm5lY3RvciwNCj4gPiAgCWlmIChyZXQpDQo+ID4gIAkJcmV0dXJuIHJldDsNCj4g PiAgDQo+ID4gKwlyZXQgPSBpbnRlbF9kcF9tc3RfYXRvbWljX21hc3Rlcl90cmFuc19jaGVjayhj b25uZWN0b3IsIHN0YXRlKTsNCj4gPiArCWlmIChyZXQpDQo+ID4gKwkJcmV0dXJuIHJldDsNCj4g PiArDQo+ID4gIAlpZiAoIW9sZF9jb25uX3N0YXRlLT5jcnRjKQ0KPiA+ICAJCXJldHVybiAwOw0K PiA+ICANCj4gPiBAQCAtMjQxLDYgKzM4MCw5IEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9wb3N0 X2Rpc2FibGVfZHAoc3RydWN0DQo+ID4gaW50ZWxfZW5jb2RlciAqZW5jb2RlciwNCj4gPiAgCWlu dGVsX2RwLT5hY3RpdmVfbXN0X2xpbmtzLS07DQo+ID4gIAlsYXN0X21zdF9zdHJlYW0gPSBpbnRl bF9kcC0+YWN0aXZlX21zdF9saW5rcyA9PSAwOw0KPiA+ICANCj4gPiArCVdBUk5fT04oSU5URUxf R0VOKGRldl9wcml2KSA+PSAxMiAmJiBsYXN0X21zdF9zdHJlYW0gJiYNCj4gPiArCQkhaW50ZWxf ZHBfbXN0X2lzX21hc3Rlcl90cmFucyhvbGRfY3J0Y19zdGF0ZSkpOw0KPiA+ICsNCj4gPiAgCS8q DQo+ID4gIAkgKiBGcm9tIFRHTCBzcGVjOiAiSWYgbXVsdGktc3RyZWFtIHNsYXZlIHRyYW5zY29k ZXI6IENvbmZpZ3VyZQ0KPiA+ICAJICogVHJhbnNjb2RlciBDbG9jayBTZWxlY3QgdG8gZGlyZWN0 IG5vIGNsb2NrIHRvIHRoZQ0KPiA+IHRyYW5zY29kZXIiDQo+ID4gQEAgLTMyMSw2ICs0NjMsOSBA QCBzdGF0aWMgdm9pZCBpbnRlbF9tc3RfcHJlX2VuYWJsZV9kcChzdHJ1Y3QNCj4gPiBpbnRlbF9l bmNvZGVyICplbmNvZGVyLA0KPiA+ICAJaW50ZWxfbXN0LT5jb25uZWN0b3IgPSBjb25uZWN0b3I7 DQo+ID4gIAlmaXJzdF9tc3Rfc3RyZWFtID0gaW50ZWxfZHAtPmFjdGl2ZV9tc3RfbGlua3MgPT0g MDsNCj4gPiAgDQo+ID4gKwlXQVJOX09OKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIgJiYgZmly c3RfbXN0X3N0cmVhbSAmJg0KPiA+ICsJCSFpbnRlbF9kcF9tc3RfaXNfbWFzdGVyX3RyYW5zKHBp cGVfY29uZmlnKSk7DQo+ID4gKw0KPiA+ICAJRFJNX0RFQlVHX0tNUygiYWN0aXZlIGxpbmtzICVk XG4iLCBpbnRlbF9kcC0+YWN0aXZlX21zdF9saW5rcyk7DQo+ID4gIA0KPiA+ICAJaWYgKGZpcnN0 X21zdF9zdHJlYW0pDQo+ID4gQEAgLTcyNiwzICs4NzEsMjEgQEAgaW50ZWxfZHBfbXN0X2VuY29k ZXJfY2xlYW51cChzdHJ1Y3QNCj4gPiBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0 KQ0KPiA+ICAJZHJtX2RwX21zdF90b3BvbG9neV9tZ3JfZGVzdHJveSgmaW50ZWxfZHAtPm1zdF9t Z3IpOw0KPiA+ICAJLyogZW5jb2RlcnMgd2lsbCBnZXQga2lsbGVkIGJ5IG5vcm1hbCBjbGVhbnVw ICovDQo+ID4gIH0NCj4gPiArDQo+ID4gK2Jvb2wgaW50ZWxfZHBfbXN0X2lzX21hc3Rlcl90cmFu cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZQ0KPiA+ICpjcnRjX3N0YXRlKQ0KPiA+ICt7 DQo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNf c3RhdGUtDQo+ID4gPnVhcGkuY3J0Yy0+ZGV2KTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gSU5URUxf R0VOKGRldl9wcml2KSA+PSAxMiAmJg0KPiA+ICsJICAgICAgIGludGVsX2NydGNfaGFzX3R5cGUo Y3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0RQX01TVCkgJiYNCj4gPiArCSAgICAgICBjcnRjX3N0 YXRlLT5tc3RfbWFzdGVyX3RyYW5zY29kZXIgPT0gY3J0Y19zdGF0ZS0NCj4gPiA+Y3B1X3RyYW5z Y29kZXI7DQo+IA0KPiBBbGwgYnV0IHRoZSBsYXN0IGxpbmUgc2VlbSByZWR1bmRhbnQuDQoNClNp bWlsYXIgdG8gbXkgZmlyc3QgYW5zd2VyIGFuZCBldmVuIGlmIElOVkFMSURfVFJBTlNDT0RFUiBp cyBzZXQgaW4NCm90aGVyIGNvZGUgcGF0aHMsIHJlbW92aW5nIHRoZSBvdGhlciBjaGVja3Mgd291 bGQgY2F1c2UgdXMgdG8gbmVlZCB0bw0KY2hlY2sgZm9yIGdlbiAxMiBhbmQgTVNUIHdoZW4gZW5h Ymxpbmcgb3IgZGlzYWJsaW5nIHBpcGVzLCB0aGF0IGlzIHdoeQ0KSSBrZXB0IGV2ZXJ5dGhpbmcg aGVyZS4NCg0KPiANCj4gPiArfQ0KPiA+ICsNCj4gPiArYm9vbCBpbnRlbF9kcF9tc3RfaXNfc2xh dmVfdHJhbnMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUNCj4gPiAqY3J0Y19zdGF0ZSkN Cj4gPiArew0KPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShjcnRjX3N0YXRlLQ0KPiA+ID51YXBpLmNydGMtPmRldik7DQo+ID4gKw0KPiA+ICsJcmV0dXJu IElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIgJiYNCj4gPiArCSAgICAgICBpbnRlbF9jcnRjX2hh c190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9EUF9NU1QpICYmDQo+ID4gKwkgICAgICAg Y3J0Y19zdGF0ZS0+bXN0X21hc3Rlcl90cmFuc2NvZGVyICE9IGNydGNfc3RhdGUtDQo+ID4gPmNw dV90cmFuc2NvZGVyOw0KPiA+ICt9DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmgNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHBfbXN0LmgNCj4gPiBpbmRleCBmNjYwYWQ4MGRiMDQuLmU0MDc2N2Y3ODM0 MyAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rw X21zdC5oDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9t c3QuaA0KPiA+IEBAIC02LDEwICs2LDE1IEBADQo+ID4gICNpZm5kZWYgX19JTlRFTF9EUF9NU1Rf SF9fDQo+ID4gICNkZWZpbmUgX19JTlRFTF9EUF9NU1RfSF9fDQo+ID4gIA0KPiA+ICsjaW5jbHVk ZSA8c3RkYm9vbC5oPg0KPiA+ICsNCj4gPiAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydDsNCj4g PiArc3RydWN0IGludGVsX2NydGNfc3RhdGU7DQo+ID4gIA0KPiA+ICBpbnQgaW50ZWxfZHBfbXN0 X2VuY29kZXJfaW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0DQo+ID4gKmludGVsX2RpZ19w b3J0LCBpbnQgY29ubl9pZCk7DQo+ID4gIHZvaWQgaW50ZWxfZHBfbXN0X2VuY29kZXJfY2xlYW51 cChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0DQo+ID4gKmludGVsX2RpZ19wb3J0KTsNCj4gPiAg aW50IGludGVsX2RwX21zdF9lbmNvZGVyX2FjdGl2ZV9saW5rcyhzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0DQo+ID4gKmludGVsX2RpZ19wb3J0KTsNCj4gPiArYm9vbCBpbnRlbF9kcF9tc3RfaXNf bWFzdGVyX3RyYW5zKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlDQo+ID4gKmNydGNfc3Rh dGUpOw0KPiA+ICtib29sIGludGVsX2RwX21zdF9pc19zbGF2ZV90cmFucyhjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZQ0KPiA+ICpjcnRjX3N0YXRlKTsNCj4gPiAgDQo+ID4gICNlbmRpZiAv KiBfX0lOVEVMX0RQX01TVF9IX18gKi8NCj4gPiAtLSANCj4gPiAyLjI0LjANCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==