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=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS 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 20F5DC433DF for ; Wed, 24 Jun 2020 00:13:36 +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 ECFAE2078E for ; Wed, 24 Jun 2020 00:13:35 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ECFAE2078E 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 7DBC86EA8D; Wed, 24 Jun 2020 00:13:35 +0000 (UTC) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7CEE06EA8D for ; Wed, 24 Jun 2020 00:13:33 +0000 (UTC) IronPort-SDR: /mhYy0vydQUCtDAXojH9QiGXUB1ZmT8AJd5whjO8NUHBkCMb5j93PheZQ/PBvqCRRg34fBXDkt 5qciN8xs3jNw== X-IronPort-AV: E=McAfee;i="6000,8403,9661"; a="141773773" X-IronPort-AV: E=Sophos;i="5.75,273,1589266800"; d="scan'208";a="141773773" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jun 2020 17:13:33 -0700 IronPort-SDR: xxHRrrRb/5FxdXbqiRNwJqQwSy5sydFGggzHAXDpIxu13Oa8j/cSZvrPvsONLjP+v6YZZlW6zy 3+aw+KlBFy0g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,273,1589266800"; d="scan'208";a="423195907" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga004.jf.intel.com with ESMTP; 23 Jun 2020 17:13:32 -0700 Received: from FMSMSX109.amr.corp.intel.com (10.18.116.9) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 23 Jun 2020 17:13:20 -0700 Received: from fmsmsx117.amr.corp.intel.com ([169.254.3.171]) by FMSMSX109.amr.corp.intel.com ([169.254.15.60]) with mapi id 14.03.0439.000; Tue, 23 Jun 2020 17:13:19 -0700 From: "Souza, Jose" To: "intel-gfx@lists.freedesktop.org" , "De Marchi, Lucas" Thread-Topic: [PATCH v2 04/32] drm/i915/rkl: Add initial workarounds Thread-Index: AQHWRQllDiRb9ihyoUOah8TL/9vOIqjnZDcA Date: Wed, 24 Jun 2020 00:13:18 +0000 Message-ID: References: <20200618004240.16263-1-lucas.demarchi@intel.com> <20200618004240.16263-5-lucas.demarchi@intel.com> In-Reply-To: <20200618004240.16263-5-lucas.demarchi@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.254.9.172] Content-ID: <6E6CD4AC2368E241AB4AAF26AC3ECBDE@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH v2 04/32] drm/i915/rkl: Add initial workarounds X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gV2VkLCAyMDIwLTA2LTE3IGF0IDE3OjQyIC0wNzAwLCBMdWNhcyBEZSBNYXJjaGkgd3JvdGU6 DQo+IEZyb206IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+DQo+IA0KPiBS S0wgYW5kIFRHTCBzaGFyZSBzb21lIGdlbmVyYWwgZ2VuMTIgd29ya2Fyb3VuZHMsIGJ1dCBlYWNo IHBsYXRmb3JtIGFsc28NCj4gaGFzIGl0cyBvd24gcGxhdGZvcm0tc3BlY2lmaWMgd29ya2Fyb3Vu ZHMuDQo+IA0KPiB2MjoNCj4gIC0gQWRkIFdhXzE2MDQ1NTU2MDcgZm9yIFJLTC4gIFRoaXMgbWFr ZXMgUktMJ3MgY3R4IFdBIGxpc3QgaWRlbnRpY2FsIHRvDQo+ICAgIFRHTCdzLCBzbyB3ZSdsbCBo YXZlIGJvdGggZnVuY3Rpb25zIGNhbGwgdGhlIHRnbF8gZnVuY3Rpb24gZm9yIG5vdzsNCj4gICAg dGhpcyB3b3JrYXJvdW5kIGlzbid0IGxpc3RlZCBmb3IgREcxIHNvIHdlIGRvbid0IHdhbnQgdG8g YWRkIGl0IHRvDQo+ICAgIHRoZSBnZW5lcmFsIGdlbjEyXyBmdW5jdGlvbi4NCj4gDQo+IENjOiBN YXR0IEF0d29vZCA8bWF0dGhldy5zLmF0d29vZEBpbnRlbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6 IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYyB8ICA1ICstDQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF93b3JrYXJvdW5kcy5jIHwgODggKysrKysrKysrKysrKy0t LS0tLS0tDQo+ICAyIGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9u cygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5j DQo+IGluZGV4IDNjZDQ2MWJmOTEzMTEuLjYzYWM3OWY4OGZhMjEgMTAwNjQ0DQo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMNCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYw0KPiBAQCAtMjg0Miw4ICsyODQy LDkgQEAgc3RhdGljIGJvb2wgc2tsX3BsYW5lX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkKHN0cnVjdCBk cm1fcGxhbmUgKl9wbGFuZSwNCj4gIHN0YXRpYyBib29sIGdlbjEyX3BsYW5lX3N1cHBvcnRzX21j X2NjcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICAJCQkJCWVudW0gcGxh bmVfaWQgcGxhbmVfaWQpDQo+ICB7DQo+IC0JLyogV2FfMTQwMTA0NzcwMDg6dGdsW2EwLi5jMF0g Ki8NCj4gLQlpZiAoSVNfVEdMX1JFVklEKGRldl9wcml2LCBUR0xfUkVWSURfQTAsIFRHTF9SRVZJ RF9DMCkpDQo+ICsJLyogV2FfMTQwMTA0NzcwMDg6dGdsW2EwLi5jMF0scmtsW2FsbF0gKi8NCj4g KwlpZiAoSVNfUk9DS0VUTEFLRShkZXZfcHJpdikgfHwNCj4gKwkgICAgSVNfVEdMX1JFVklEKGRl dl9wcml2LCBUR0xfUkVWSURfQTAsIFRHTF9SRVZJRF9DMCkpDQo+ICAJCXJldHVybiBmYWxzZTsN Cj4gIA0KPiAgCXJldHVybiBwbGFuZV9pZCA8IFBMQU5FX1NQUklURTQ7DQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF93b3JrYXJvdW5kcy5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfd29ya2Fyb3VuZHMuYw0KPiBpbmRleCAyZGEzNjY4MjFkZGFm Li43NDE3MTBjYTJiOWE1IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF93b3JrYXJvdW5kcy5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X3dvcmthcm91bmRzLmMNCj4gQEAgLTU5Niw4ICs1OTYsOCBAQCBzdGF0aWMgdm9pZCBpY2xfY3R4 X3dvcmthcm91bmRzX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLA0KPiAgCXdh X21hc2tlZF9lbih3YWwsIEdFTjlfUk9XX0NISUNLRU40LCBHRU4xMV9ESVNfUElDS18yTkRfRVUp Ow0KPiAgfQ0KPiAgDQo+IC1zdGF0aWMgdm9pZCB0Z2xfY3R4X3dvcmthcm91bmRzX2luaXQoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLA0KPiAtCQkJCSAgICAgc3RydWN0IGk5MTVfd2Ff bGlzdCAqd2FsKQ0KPiArc3RhdGljIHZvaWQgZ2VuMTJfY3R4X3dvcmthcm91bmRzX2luaXQoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLA0KPiArCQkJCSAgICAgICBzdHJ1Y3QgaTkxNV93 YV9saXN0ICp3YWwpDQo+ICB7DQo+ICAJLyoNCj4gIAkgKiBXYV8xNDA5MTQyMjU5OnRnbA0KPiBA QCAtNjA3LDEyICs2MDcsMjggQEAgc3RhdGljIHZvaWQgdGdsX2N0eF93b3JrYXJvdW5kc19pbml0 KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwNCj4gIAkgKiBXYV8xNDA5MjA3NzkzOnRn bA0KPiAgCSAqIFdhXzE0MDkxNzgwNzY6dGdsDQo+ICAJICogV2FfMTQwODk3OTcyNDp0Z2wNCj4g KwkgKiBXYV8xNDAxMDQ0MzE5OTpya2wNCj4gKwkgKiBXYV8xNDAxMDY5ODc3MDpya2wNCj4gIAkg Ki8NCj4gIAlXQV9TRVRfQklUX01BU0tFRChHRU4xMV9DT01NT05fU0xJQ0VfQ0hJQ0tFTjMsDQo+ ICAJCQkgIEdFTjEyX0RJU0FCTEVfQ1BTX0FXQVJFX0NPTE9SX1BJUEUpOw0KPiAgDQo+ICsJLyog V2FEaXNhYmxlR1BHUFVNaWRUaHJlYWRQcmVlbXB0aW9uOmdlbjEyICovDQo+ICsJV0FfU0VUX0ZJ RUxEX01BU0tFRChHRU44X0NTX0NISUNLRU4xLA0KPiArCQkJICAgIEdFTjlfUFJFRU1QVF9HUEdQ VV9MRVZFTF9NQVNLLA0KPiArCQkJICAgIEdFTjlfUFJFRU1QVF9HUEdQVV9USFJFQURfR1JPVVBf TEVWRUwpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCB0Z2xfY3R4X3dvcmthcm91bmRzX2lu aXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLA0KPiArCQkJCSAgICAgc3RydWN0IGk5 MTVfd2FfbGlzdCAqd2FsKQ0KPiArew0KPiArCWdlbjEyX2N0eF93b3JrYXJvdW5kc19pbml0KGVu Z2luZSwgd2FsKTsNCj4gKw0KPiAgCS8qDQo+IC0JICogV2FfMTYwNDU1NTYwNzpnZW4xMiBhbmQg V2FfMTYwODAwODA4NDpnZW4xMg0KPiArCSAqIFdhXzE2MDQ1NTU2MDc6dGdsLHJrbA0KPiArCSAq DQo+ICsJICogTm90ZSB0aGF0IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIHdvcmthcm91bmQg aXMgZnVydGhlciBtb2RpZmllZA0KPiArCSAqIGFjY29yZGluZyB0byB0aGUgRkZfTU9ERTIgZ3Vp ZGFuY2UgZ2l2ZW4gYnkgV2FfMTYwODAwODA4NDpnZW4xMi4NCj4gIAkgKiBGRl9NT0RFMiByZWdp c3RlciB3aWxsIHJldHVybiB0aGUgd3JvbmcgdmFsdWUgd2hlbiByZWFkLiBUaGUgZGVmYXVsdA0K PiAgCSAqIHZhbHVlIGZvciB0aGlzIHJlZ2lzdGVyIGlzIHplcm8gZm9yIGFsbCBmaWVsZHMgYW5k IHRoZXJlIGFyZSBubyBiaXQNCj4gIAkgKiBtYXNrcy4gU28gaW5zdGVhZCBvZiBkb2luZyBhIFJN VyB3ZSBzaG91bGQganVzdCB3cml0ZSB0aGUgR1MgVGltZXINCj4gQEAgLTYyMywxMSArNjM5LDYg QEAgc3RhdGljIHZvaWQgdGdsX2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSwNCj4gIAkgICAgICAgRkZfTU9ERTJfR1NfVElNRVJfTUFTSyB8IEZGX01P REUyX1REU19USU1FUl9NQVNLLA0KPiAgCSAgICAgICBGRl9NT0RFMl9HU19USU1FUl8yMjQgIHwg RkZfTU9ERTJfVERTX1RJTUVSXzEyOCwNCj4gIAkgICAgICAgMCk7DQo+IC0NCj4gLQkvKiBXYURp c2FibGVHUEdQVU1pZFRocmVhZFByZWVtcHRpb246dGdsICovDQo+IC0JV0FfU0VUX0ZJRUxEX01B U0tFRChHRU44X0NTX0NISUNLRU4xLA0KPiAtCQkJICAgIEdFTjlfUFJFRU1QVF9HUEdQVV9MRVZF TF9NQVNLLA0KPiAtCQkJICAgIEdFTjlfUFJFRU1QVF9HUEdQVV9USFJFQURfR1JPVVBfTEVWRUwp Ow0KPiAgfQ0KPiAgDQo+ICBzdGF0aWMgdm9pZA0KPiBAQCAtNjQyLDggKzY1MywxMCBAQCBfX2lu dGVsX2VuZ2luZV9pbml0X2N0eF93YShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsDQo+ ICANCj4gIAl3YV9pbml0X3N0YXJ0KHdhbCwgbmFtZSwgZW5naW5lLT5uYW1lKTsNCj4gIA0KPiAt CWlmIChJU19HRU4oaTkxNSwgMTIpKQ0KPiArCWlmIChJU19ST0NLRVRMQUtFKGk5MTUpIHx8IElT X1RJR0VSTEFLRShpOTE1KSkNCj4gIAkJdGdsX2N0eF93b3JrYXJvdW5kc19pbml0KGVuZ2luZSwg d2FsKTsNCj4gKwllbHNlIGlmIChJU19HRU4oaTkxNSwgMTIpKQ0KPiArCQlnZW4xMl9jdHhfd29y a2Fyb3VuZHNfaW5pdChlbmdpbmUsIHdhbCk7DQo+ICAJZWxzZSBpZiAoSVNfR0VOKGk5MTUsIDEx KSkNCj4gIAkJaWNsX2N0eF93b3JrYXJvdW5kc19pbml0KGVuZ2luZSwgd2FsKTsNCj4gIAllbHNl IGlmIChJU19DQU5OT05MQUtFKGk5MTUpKQ0KPiBAQCAtMTE3Niw5ICsxMTg5LDE2IEBAIGljbF9n dF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBzdHJ1Y3Qg aTkxNV93YV9saXN0ICp3YWwpDQo+ICB9DQo+ICANCj4gIHN0YXRpYyB2b2lkDQo+IC10Z2xfZ3Rf d29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgc3RydWN0IGk5 MTVfd2FfbGlzdCAqd2FsKQ0KPiArZ2VuMTJfZ3Rfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSwNCj4gKwkJCSAgc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsKQ0K PiAgew0KPiAgCXdhX2luaXRfbWNyKGk5MTUsIHdhbCk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2 b2lkDQo+ICt0Z2xfZ3Rfd29ya2Fyb3VuZHNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwgc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsKQ0KPiArew0KPiArCWdlbjEyX2d0X3dvcmth cm91bmRzX2luaXQoaTkxNSwgd2FsKTsNCj4gIA0KPiAgCS8qIFdhXzE0MDk0MjA2MDQ6dGdsICov DQo+ICAJaWYgKElTX1RHTF9SRVZJRChpOTE1LCBUR0xfUkVWSURfQTAsIFRHTF9SRVZJRF9BMCkp DQo+IEBAIC0xMTk2LDggKzEyMTYsMTAgQEAgdGdsX2d0X3dvcmthcm91bmRzX2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCkNCj4gIHN0 YXRpYyB2b2lkDQo+ICBndF9pbml0X3dvcmthcm91bmRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LCBzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwpDQo+ICB7DQo+IC0JaWYgKElTX0dFTihp OTE1LCAxMikpDQo+ICsJaWYgKElTX1RJR0VSTEFLRShpOTE1KSkNCj4gIAkJdGdsX2d0X3dvcmth cm91bmRzX2luaXQoaTkxNSwgd2FsKTsNCj4gKwllbHNlIGlmIChJU19HRU4oaTkxNSwgMTIpKQ0K PiArCQlnZW4xMl9ndF93b3JrYXJvdW5kc19pbml0KGk5MTUsIHdhbCk7DQo+ICAJZWxzZSBpZiAo SVNfR0VOKGk5MTUsIDExKSkNCj4gIAkJaWNsX2d0X3dvcmthcm91bmRzX2luaXQoaTkxNSwgd2Fs KTsNCj4gIAllbHNlIGlmIChJU19DQU5OT05MQUtFKGk5MTUpKQ0KPiBAQCAtMTYyOSwxOCArMTY1 MSw2IEBAIHJjc19lbmdpbmVfd2FfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs IHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCkNCj4gIAkJCSAgICBHRU45X0NUWF9QUkVFTVBUX1JF RywNCj4gIAkJCSAgICBHRU4xMl9ESVNBQkxFX1BPU0hfQlVTWV9GRl9ET1BfQ0cpOw0KPiAgDQo+ IC0JCS8qDQo+IC0JCSAqIFdhXzE2MDcwMzAzMTc6dGdsDQo+IC0JCSAqIFdhXzE2MDcxODY1MDA6 dGdsDQo+IC0JCSAqIFdhXzE2MDcyOTc2Mjc6dGdsIHRoZXJlIGlzIDMgZW50cmllcyBmb3IgdGhp cyBXQSBvbiBCU3BlYywgMg0KPiAtCQkgKiBvZiB0aGVuIHNheXMgaXQgaXMgZml4ZWQgb24gQjAg dGhlIG90aGVyIG9uZSBzYXlzIGl0IGlzDQo+IC0JCSAqIHBlcm1hbmVudA0KPiAtCQkgKi8NCj4g LQkJd2FfbWFza2VkX2VuKHdhbCwNCj4gLQkJCSAgICAgR0VONl9SQ19TTEVFUF9QU01JX0NPTlRS T0wsDQo+IC0JCQkgICAgIEdFTjEyX1dBSVRfRk9SX0VWRU5UX1BPV0VSX0RPV05fRElTQUJMRSB8 DQo+IC0JCQkgICAgIEdFTjhfUkNfU0VNQV9JRExFX01TR19ESVNBQkxFKTsNCj4gLQ0KPiAgCQkv Kg0KPiAgCQkgKiBXYV8xNjA2Njc5MTAzOnRnbA0KPiAgCQkgKiAoc2VlIGFsc28gV2FfMTYwNjY4 MjE2NjppY2wpDQo+IEBAIC0xNjU5LDI0ICsxNjY5LDM4IEBAIHJjc19lbmdpbmVfd2FfaW5pdChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHN0cnVjdCBpOTE1X3dhX2xpc3QgKndhbCkN Cj4gIAkJCSAgICBWU1VOSVRfQ0xLR0FURV9ESVNfVEdMKTsNCj4gIAl9DQo+ICANCj4gLQlpZiAo SVNfVElHRVJMQUtFKGk5MTUpKSB7DQo+IC0JCS8qIFdhXzE2MDY5MzE2MDE6dGdsICovDQo+ICsJ aWYgKElTX1JPQ0tFVExBS0UoaTkxNSkgfHwgSVNfVElHRVJMQUtFKGk5MTUpKSB7DQo+ICsJCS8q IFdhXzE2MDY5MzE2MDE6dGdsLHJrbCAqLw0KPiAgCQl3YV9tYXNrZWRfZW4od2FsLCBHRU43X1JP V19DSElDS0VOMiwgR0VOMTJfRElTQUJMRV9FQVJMWV9SRUFEKTsNCj4gIA0KPiAtCQkvKiBXYV8x NDA5ODA0ODA4OnRnbCAqLw0KPiArCQkvKiBXYV8xNDA5ODA0ODA4OnRnbCxya2wgKi8NCj4gIAkJ d2FfbWFza2VkX2VuKHdhbCwgR0VON19ST1dfQ0hJQ0tFTjIsDQo+ICAJCQkgICAgIEdFTjEyX1BV U0hfQ09OU1RfREVSRUZfSE9MRF9ESVMpOw0KPiAgDQo+IC0JCS8qIFdhXzE2MDY3MDA2MTc6dGds ICovDQo+IC0JCXdhX21hc2tlZF9lbih3YWwsDQo+IC0JCQkgICAgIEdFTjlfQ1NfREVCVUdfTU9E RTEsDQo+IC0JCQkgICAgIEZGX0RPUF9DTE9DS19HQVRFX0RJU0FCTEUpOw0KPiAtDQo+ICAJCS8q DQo+ICAJCSAqIFdhXzE0MDkwODUyMjU6dGdsDQo+IC0JCSAqIFdhXzE0MDEwMjI5MjA2OnRnbA0K PiArCQkgKiBXYV8xNDAxMDIyOTIwNjp0Z2wscmtsDQo+ICAJCSAqLw0KPiAgCQl3YV9tYXNrZWRf ZW4od2FsLCBHRU45X1JPV19DSElDS0VONCwgR0VOMTJfRElTQUJMRV9URExfUFVTSCk7DQo+ICsN Cj4gKwkJLyoNCj4gKwkJICogV2FfMTYwNzAzMDMxNzp0Z2wNCj4gKwkJICogV2FfMTYwNzE4NjUw MDp0Z2wNCj4gKwkJICogV2FfMTYwNzI5NzYyNzp0Z2wscmtsIHRoZXJlIGFyZSBtdWx0aXBsZSBl bnRyaWVzIGZvciB0aGlzDQo+ICsJCSAqIFdBIGluIHRoZSBCU3BlYzsgc29tZSBpbmRpY2F0ZSB0 aGlzIGlzIGFuIEEwLW9ubHkgV0EsDQo+ICsJCSAqIG90aGVycyBpbmRpY2F0ZSBpdCBhcHBsaWVz IHRvIGFsbCBzdGVwcGluZ3MuDQo+ICsJCSAqLw0KPiArCQl3YV9tYXNrZWRfZW4od2FsLA0KPiAr CQkJICAgICBHRU42X1JDX1NMRUVQX1BTTUlfQ09OVFJPTCwNCj4gKwkJCSAgICAgR0VOMTJfV0FJ VF9GT1JfRVZFTlRfUE9XRVJfRE9XTl9ESVNBQkxFIHwNCj4gKwkJCSAgICAgR0VOOF9SQ19TRU1B X0lETEVfTVNHX0RJU0FCTEUpOw0KPiArCX0NCj4gKw0KPiArCWlmIChJU19USUdFUkxBS0UoaTkx NSkpIHsNCj4gKwkJLyogV2FfMTYwNjcwMDYxNzp0Z2wgKi8NCj4gKwkJd2FfbWFza2VkX2VuKHdh bCwNCj4gKwkJCSAgICAgR0VOOV9DU19ERUJVR19NT0RFMSwNCj4gKwkJCSAgICAgRkZfRE9QX0NM T0NLX0dBVEVfRElTQUJMRSk7DQoNClJLTCBtaWdodCBuZWVkIHRoaXMgb25lIHRvbyB1bmRlciB0 aGUgbnVtYmVyIDE0MDEwMjMwODAxIGJ1dCBpcyBzdGlsbCBwZW5kaW5nLg0KDQpSZXZpZXdlZC1i eTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+DQoNCj4gIAl9 DQo+ICANCj4gIAlpZiAoSVNfR0VOKGk5MTUsIDExKSkgew0KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==