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=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 472F2C352A3 for ; Fri, 14 Feb 2020 00:05:01 +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 2129324654 for ; Fri, 14 Feb 2020 00:05:01 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2129324654 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 AE7BA6F89C; Fri, 14 Feb 2020 00:05:00 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8201C6F89C for ; Fri, 14 Feb 2020 00:04:59 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Feb 2020 16:04:58 -0800 X-IronPort-AV: E=Sophos;i="5.70,438,1574150400"; d="scan'208";a="227421167" Received: from johnharr-mobl3.ger.corp.intel.com (HELO [10.254.179.240]) ([10.254.179.240]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 13 Feb 2020 16:04:58 -0800 To: Daniele Ceraolo Spurio , intel-gfx@lists.freedesktop.org References: <20200212003124.33844-1-daniele.ceraolospurio@intel.com> <20200212003124.33844-7-daniele.ceraolospurio@intel.com> <9a678e60-8063-2df9-9fe3-018b2191b083@intel.com> From: John Harrison Message-ID: <41a8a56d-4c06-27b6-de91-6211bcc5cbda@Intel.com> Date: Thu, 13 Feb 2020 16:04:56 -0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2 MIME-Version: 1.0 In-Reply-To: <9a678e60-8063-2df9-9fe3-018b2191b083@intel.com> Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH v3 06/10] drm/i915/uc: Improve tracking of uC init status 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gMi8xMy8yMDIwIDE1OjQ0LCBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIHdyb3RlOgo+IE9uIDIv MTMvMjAgMzozNiBQTSwgSm9obiBIYXJyaXNvbiB3cm90ZToKPj4gT24gMi8xMS8yMDIwIDE2OjMx LCBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIHdyb3RlOgo+Pj4gVG8gYmUgYWJsZSB0byBzZXR1cCBH dUMgc3VibWlzc2lvbiBmdW5jdGlvbnMgZHVyaW5nIGVuZ2luZSBpbml0IHdlIG5lZWQKPj4+IHRv IGNvbW1pdCB0byB1c2luZyBHdUMgYXMgc29vbiBhcyBwb3NzaWJsZS4KPj4+IEN1cnJlbnRseSwg dGhlIG9ubHkgdGhpbmcgdGhhdCBjYW4gc3RvcCB1cyBmcm9tIHVzaW5nIHRoZQo+Pj4gbWljcm9j b250cm9sbGVycyBvbmNlIHdlJ3ZlIGZldGNoZWQgdGhlIGJsb2JzIGlzIGEgZnVuZGFtZW50YWwK Pj4+IGVycm9yIChlLmcuIE9PTSk7IGdpdmVuIHRoYXQgaWYgd2UgaGl0IHN1Y2ggYW4gZXJyb3Ig d2UgY2FuJ3QgcmVhbGx5Cj4+PiBmYWxsLWJhY2sgdG8gYW55dGhpbmcsIHdlIGNhbiAib2ZmaWNp YWxpemUiIHRoZSBGVyBmZXRjaGluZyBjb21wbGV0aW9uCj4+PiBhcyB0aGUgbW9tZW50IGF0IHdo aWNoIHdlJ3JlIGNvbW1pdHRpbmcgdG8gdXNpbmcgR3VDLgo+Pj4KPj4+IFRvIGJldHRlciBkaWZm ZXJlbnRpYXRlIHRoaXMgY2FzZSwgdGhlIHVzZXNfZ3VjIGNoZWNrLCB3aGljaCBpbmRpY2F0ZXMK Pj4+IHRoYXQgR3VDIGlzIHN1cHBvcnRlZCBhbmQgd2FzIHNlbGVjdGVkIGluIG1vZHBhcmFtLCBp cyByZW5hbWVkIHRvCj4+PiB3YW50c19ndWMgYW5kIGEgbmV3IHVzZXNfZ3VjIGlzIGludHJvZHVj ZWQgdG8gcmVwcmVzZW50IHRoZSBjYXNlIHdlcmUKPj4+IHdlJ3JlIGNvbW1pdHRlZCB0byB1c2lu ZyB0aGUgR3VDLiBOb3RlIHRoYXQgdXNlc19ndWMgZG9lcyBzdGlsbCBub3QgCj4+PiBpbXBseQo+ Pj4gdGhhdCB0aGUgYmxvYiBpcyBhY3R1YWxseSBsb2FkZWQgb24gdGhlIEhXIChpc19ydW5uaW5n IGlzIHRoZSBjaGVjayBmb3IKPj4+IHRoYXQpLiBBbHNvLCBzaW5jZSB3ZSBuZWVkIHRvIGhhdmUg YXR0ZW1wdGVkIHRoZSBmZXRjaCBmb3IgdGhlIHJlc3VsdAo+Pj4gb2YgdXNlc19ndWMgdG8gYmUg bWVhbmluZ2Z1bCwgd2UgbmVlZCB0byBtYWtlIHN1cmUgd2UndmUgbW92ZWQgYXdheQo+Pj4gZnJv bSBJTlRFTF9VQ19GSVJNV0FSRV9TRUxFQ1RFRC4KPj4+Cj4+PiBBbGwgdGhlIEd1QyBjaGFuZ2Vz IGhhdmUgYmVlbiBtaXJyb3JlZCBvbiB0aGUgSHVDIGZvciBjb2hlcmVuY3kuCj4+Pgo+Pj4gdjI6 IHNwbGl0IGZldGNoIHJldHVybiBjaGFuZ2VzIGFuZCBuZXcgbWFjcm9zIHRvIHRoZWlyIG93biBw YXRjaGVzLAo+Pj4gwqDCoMKgwqAgc3VwcG9ydCBIdUMgb25seSBpZiBHdUMgaXMgd2FudGVkLCBp bXByb3ZlICJ1c2VkIiBzdGF0ZQo+Pj4gwqDCoMKgwqAgZGVzY3JpcHRpb24gKE1pY2hhbCkKPj4+ Cj4+PiB2Mzogcy93YW50c19odWMvdXNlc19odWMgaW4gdWNfaW5pdF93b3BjbQo+Pj4KPj4+IFNp Z25lZC1vZmYtYnk6IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3NwdXJp b0BpbnRlbC5jb20+Cj4+PiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+Cj4+PiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGxpbnV4LmludGVsLmNv bT4KPj4+IENjOiBNaWNoYWwgV2FqZGVjemtvIDxtaWNoYWwud2FqZGVjemtvQGludGVsLmNvbT4K Pj4+IENjOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Pj4gQ2M6 IE1hdHRoZXcgQnJvc3QgPG1hdHRoZXcuYnJvc3RAaW50ZWwuY29tPgo+Pj4gUmV2aWV3ZWQtYnk6 IEZlcm5hbmRvIFBhY2hlY28gPGZlcm5hbmRvLnBhY2hlY29AaW50ZWwuY29tPiAjdjEKPj4+IC0t LQo+Pj4gwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmjCoMKgwqAgfMKg IDggKysrKysrKy0KPj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2h1Yy5o wqDCoMKgIHzCoCA4ICsrKysrKystCj4+PiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9odWNfZncuYyB8wqAgMiArLQo+Pj4gwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv aW50ZWxfdWMuY8KgwqDCoMKgIHwgMjEgKysrKysrKysrKystLS0tLS0tLS0KPj4+IMKgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjLmjCoMKgwqDCoCB8IDI0IAo+Pj4gKysrKysr KysrKysrKysrKysrKysrKy0KPj4+IMKgIDUgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygr KSwgMTMgZGVsZXRpb25zKC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L3VjL2ludGVsX2d1Yy5oIAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9ndWMuaAo+Pj4gaW5kZXggNjY4YjA2N2I3MWUyLi5iNTFhZGFhYzg3NTIgMTAwNjQ0Cj4+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMuaAo+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmgKPj4+IEBAIC0xNDMsMTEgKzE0 MywxNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgCj4+PiBpbnRlbF9ndWNfaXNfc3VwcG9ydGVkKHN0 cnVjdCBpbnRlbF9ndWMgKmd1YykKPj4+IMKgwqDCoMKgwqAgcmV0dXJuIGludGVsX3VjX2Z3X2lz X3N1cHBvcnRlZCgmZ3VjLT5mdyk7Cj4+PiDCoCB9Cj4+PiAtc3RhdGljIGlubGluZSBib29sIGlu dGVsX2d1Y19pc19lbmFibGVkKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPj4+ICtzdGF0aWMgaW5s aW5lIGJvb2wgaW50ZWxfZ3VjX2lzX3dhbnRlZChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4+PiDC oCB7Cj4+PiDCoMKgwqDCoMKgIHJldHVybiBpbnRlbF91Y19md19pc19lbmFibGVkKCZndWMtPmZ3 KTsKPj4+IMKgIH0KPj4+ICtzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfZ3VjX2lzX3VzZWQoc3Ry dWN0IGludGVsX2d1YyAqZ3VjKQo+Pj4gK3sKPj4+ICvCoMKgwqAgR0VNX0JVR19PTihfX2ludGVs X3VjX2Z3X3N0YXR1cygmZ3VjLT5mdykgPT0gCj4+PiBJTlRFTF9VQ19GSVJNV0FSRV9TRUxFQ1RF RCk7Cj4+PiArwqDCoMKgIHJldHVybiBpbnRlbF91Y19md19pc19hdmFpbGFibGUoJmd1Yy0+Zncp Owo+Pj4gK30KPj4+ICsKPj4+IMKgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9ndWNfaXNfZndf cnVubmluZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4+PiDCoCB7Cj4+PiDCoMKgwqDCoMKgIHJl dHVybiBpbnRlbF91Y19md19pc19ydW5uaW5nKCZndWMtPmZ3KTsKPj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9odWMuaCAKPj4+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvdWMvaW50ZWxfaHVjLmgKPj4+IGluZGV4IDY0NGMwNTlmZTAxZC4uYTQwYjlj ZmM2YzIyIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxf aHVjLmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2h1Yy5oCj4+ PiBAQCAtNDEsMTEgKzQxLDE3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9odWNfaXNfc3Vw cG9ydGVkKHN0cnVjdCAKPj4+IGludGVsX2h1YyAqaHVjKQo+Pj4gwqDCoMKgwqDCoCByZXR1cm4g aW50ZWxfdWNfZndfaXNfc3VwcG9ydGVkKCZodWMtPmZ3KTsKPj4+IMKgIH0KPj4+IC1zdGF0aWMg aW5saW5lIGJvb2wgaW50ZWxfaHVjX2lzX2VuYWJsZWQoc3RydWN0IGludGVsX2h1YyAqaHVjKQo+ Pj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9odWNfaXNfd2FudGVkKHN0cnVjdCBpbnRlbF9o dWMgKmh1YykKPj4+IMKgIHsKPj4+IMKgwqDCoMKgwqAgcmV0dXJuIGludGVsX3VjX2Z3X2lzX2Vu YWJsZWQoJmh1Yy0+ZncpOwo+Pj4gwqAgfQo+Pj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9o dWNfaXNfdXNlZChzdHJ1Y3QgaW50ZWxfaHVjICpodWMpCj4+PiArewo+Pj4gK8KgwqDCoCBHRU1f QlVHX09OKF9faW50ZWxfdWNfZndfc3RhdHVzKCZodWMtPmZ3KSA9PSAKPj4+IElOVEVMX1VDX0ZJ Uk1XQVJFX1NFTEVDVEVEKTsKPj4+ICvCoMKgwqAgcmV0dXJuIGludGVsX3VjX2Z3X2lzX2F2YWls YWJsZSgmaHVjLT5mdyk7Cj4+PiArfQo+Pj4gKwo+Pj4gwqAgc3RhdGljIGlubGluZSBib29sIGlu dGVsX2h1Y19pc19hdXRoZW50aWNhdGVkKHN0cnVjdCBpbnRlbF9odWMgKmh1YykKPj4+IMKgIHsK Pj4+IMKgwqDCoMKgwqAgcmV0dXJuIGludGVsX3VjX2Z3X2lzX3J1bm5pbmcoJmh1Yy0+ZncpOwo+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2h1Y19mdy5j IAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9odWNfZncuYwo+Pj4gaW5k ZXggZWVlMTkzYmYyY2M0Li45Y2RmNGNiZTY5MWMgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9odWNfZncuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvdWMvaW50ZWxfaHVjX2Z3LmMKPj4+IEBAIC0yMCw3ICsyMCw3IEBAIHZvaWQgaW50 ZWxfaHVjX2Z3X2luaXRfZWFybHkoc3RydWN0IGludGVsX2h1YyAqaHVjKQo+Pj4gwqDCoMKgwqDC oCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGd0LT5pOTE1Owo+Pj4gwqDCoMKgwqDC oCBpbnRlbF91Y19md19pbml0X2Vhcmx5KCZodWMtPmZ3LCBJTlRFTF9VQ19GV19UWVBFX0hVQywK Pj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50ZWxfdWNfdXNlc19n dWModWMpLAo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnRlbF91 Y193YW50c19ndWModWMpLAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBJTlRFTF9JTkZPKGk5MTUpLT5wbGF0Zm9ybSwgSU5URUxfUkVWSUQoaTkxNSkpOwo+Pj4g wqAgfQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3Vj LmMgCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjLmMKPj4+IGluZGV4 IGFmZmM0ZDZmOWVhZC4uNTgyNWE2YzNlMGEwIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWMuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvdWMvaW50ZWxfdWMuYwo+Pj4gQEAgLTQ4LDE3ICs0OCwxNyBAQCBzdGF0aWMgdm9pZCBfX2Nv bmZpcm1fb3B0aW9ucyhzdHJ1Y3QgaW50ZWxfdWMgKnVjKQo+Pj4gwqDCoMKgwqDCoCBEUk1fREVW X0RFQlVHX0RSSVZFUihpOTE1LT5kcm0uZGV2LAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICJlbmFibGVfZ3VjPSVkIChndWM6JXMgc3VibWlzc2lvbjolcyBodWM6JXMp XG4iLAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGk5MTVfbW9kcGFy YW1zLmVuYWJsZV9ndWMsCj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgeWVz bm8oaW50ZWxfdWNfdXNlc19ndWModWMpKSwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB5ZXNubyhpbnRlbF91Y193YW50c19ndWModWMpKSwKPj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB5ZXNubyhpbnRlbF91Y191c2VzX2d1Y19zdWJtaXNzaW9u KHVjKSksCj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgeWVzbm8oaW50ZWxf dWNfdXNlc19odWModWMpKSk7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg eWVzbm8oaW50ZWxfdWNfd2FudHNfaHVjKHVjKSkpOwo+Pj4gwqDCoMKgwqDCoCBpZiAoaTkxNV9t b2RwYXJhbXMuZW5hYmxlX2d1YyA9PSAtMSkKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm47 Cj4+PiDCoMKgwqDCoMKgIGlmIChpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3VjID09IDApIHsKPj4+ IC3CoMKgwqDCoMKgwqDCoCBHRU1fQlVHX09OKGludGVsX3VjX3VzZXNfZ3VjKHVjKSk7Cj4+PiAr wqDCoMKgwqDCoMKgwqAgR0VNX0JVR19PTihpbnRlbF91Y193YW50c19ndWModWMpKTsKPj4+IMKg wqDCoMKgwqDCoMKgwqDCoCBHRU1fQlVHX09OKGludGVsX3VjX3VzZXNfZ3VjX3N1Ym1pc3Npb24o dWMpKTsKPj4+IC3CoMKgwqDCoMKgwqDCoCBHRU1fQlVHX09OKGludGVsX3VjX3VzZXNfaHVjKHVj KSk7Cj4+PiArwqDCoMKgwqDCoMKgwqAgR0VNX0JVR19PTihpbnRlbF91Y193YW50c19odWModWMp KTsKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm47Cj4+PiDCoMKgwqDCoMKgIH0KPj4+IEBA IC05Myw3ICs5Myw3IEBAIHZvaWQgaW50ZWxfdWNfaW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfdWMg KnVjKQo+Pj4gwqDCoMKgwqDCoCBfX2NvbmZpcm1fb3B0aW9ucyh1Yyk7Cj4+PiAtwqDCoMKgIGlm IChpbnRlbF91Y191c2VzX2d1Yyh1YykpCj4+PiArwqDCoMKgIGlmIChpbnRlbF91Y193YW50c19n dWModWMpKQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIHVjLT5vcHMgPSAmdWNfb3BzX29uOwo+Pj4g wqDCoMKgwqDCoCBlbHNlCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgdWMtPm9wcyA9ICZ1Y19vcHNf b2ZmOwo+Pj4gQEAgLTI1NywxMyArMjU3LDEzIEBAIHN0YXRpYyB2b2lkIF9fdWNfZmV0Y2hfZmly bXdhcmVzKHN0cnVjdCAKPj4+IGludGVsX3VjICp1YykKPj4+IMKgIHsKPj4+IMKgwqDCoMKgwqAg aW50IGVycjsKPj4+IC3CoMKgwqAgR0VNX0JVR19PTighaW50ZWxfdWNfdXNlc19ndWModWMpKTsK Pj4+ICvCoMKgwqAgR0VNX0JVR19PTighaW50ZWxfdWNfd2FudHNfZ3VjKHVjKSk7Cj4+PiDCoMKg wqDCoMKgIGVyciA9IGludGVsX3VjX2Z3X2ZldGNoKCZ1Yy0+Z3VjLmZ3KTsKPj4+IMKgwqDCoMKg wqAgaWYgKGVycikKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm47Cj4+PiAtwqDCoMKgIGlm IChpbnRlbF91Y191c2VzX2h1Yyh1YykpCj4+PiArwqDCoMKgIGlmIChpbnRlbF91Y193YW50c19o dWModWMpKQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGludGVsX3VjX2Z3X2ZldGNoKCZ1Yy0+aHVj LmZ3KTsKPj4+IMKgIH0KPj4+IEBAIC0yNzksNyArMjc5LDEwIEBAIHN0YXRpYyB2b2lkIF9fdWNf aW5pdChzdHJ1Y3QgaW50ZWxfdWMgKnVjKQo+Pj4gwqDCoMKgwqDCoCBzdHJ1Y3QgaW50ZWxfaHVj ICpodWMgPSAmdWMtPmh1YzsKPj4+IMKgwqDCoMKgwqAgaW50IHJldDsKPj4+IC3CoMKgwqAgR0VN X0JVR19PTighaW50ZWxfdWNfdXNlc19ndWModWMpKTsKPj4+ICvCoMKgwqAgR0VNX0JVR19PTigh aW50ZWxfdWNfd2FudHNfZ3VjKHVjKSk7Cj4+PiArCj4+PiArwqDCoMKgIGlmICghaW50ZWxfdWNf dXNlc19ndWModWMpKQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybjsKPj4+IMKgwqDCoMKgwqAg LyogWFhYOiBHdUMgc3VibWlzc2lvbiBpcyB1bmF2YWlsYWJsZSBmb3Igbm93ICovCj4+PiDCoMKg wqDCoMKgIEdFTV9CVUdfT04oaW50ZWxfdWNfc3VwcG9ydHNfZ3VjX3N1Ym1pc3Npb24odWMpKTsK Pj4+IEBAIC00MDIsNyArNDA1LDcgQEAgc3RhdGljIGludCBfX3VjX2luaXRfaHcoc3RydWN0IGlu dGVsX3VjICp1YykKPj4+IMKgwqDCoMKgwqAgaW50IHJldCwgYXR0ZW1wdHM7Cj4+PiDCoMKgwqDC oMKgIEdFTV9CVUdfT04oIWludGVsX3VjX3N1cHBvcnRzX2d1Yyh1YykpOwo+Pj4gLcKgwqDCoCBH RU1fQlVHX09OKCFpbnRlbF91Y191c2VzX2d1Yyh1YykpOwo+Pj4gK8KgwqDCoCBHRU1fQlVHX09O KCFpbnRlbF91Y193YW50c19ndWModWMpKTsKPj4+IMKgwqDCoMKgwqAgaWYgKCFpbnRlbF91Y19m d19pc19hdmFpbGFibGUoJmd1Yy0+ZncpKSB7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0g X191Y19jaGVja19odyh1YykgfHwKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC91Yy9pbnRlbF91Yy5oIAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRl bF91Yy5oCj4+PiBpbmRleCAyY2U5OTNjZWI2MGEuLmE0MWFhZjM1M2Y4OCAxMDA2NDQKPj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjLmgKPj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjLmgKPj4+IEBAIC00MCw2ICs0MCwyNyBAQCB2 b2lkIGludGVsX3VjX3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgaW50ZWxfdWMgKnVjKTsKPj4+IMKg IGludCBpbnRlbF91Y19yZXN1bWUoc3RydWN0IGludGVsX3VjICp1Yyk7Cj4+PiDCoCBpbnQgaW50 ZWxfdWNfcnVudGltZV9yZXN1bWUoc3RydWN0IGludGVsX3VjICp1Yyk7Cj4+PiArLyoKPj4+ICsg KiBXZSBuZWVkIHRvIGtub3cgYXMgZWFybHkgYXMgcG9zc2libGUgaWYgd2UncmUgZ29pbmcgdG8g dXNlIEd1QyAKPj4+IG9yIG5vdCB0bwo+Pj4gKyAqIHRha2UgdGhlIGNvcnJlY3Qgc2V0dXAgcGF0 aHMuIEFkZGl0aW9uYWxseSwgb25jZSB3ZSd2ZSBzdGFydGVkIAo+Pj4gbG9hZGluZyB0aGUKPj4+ ICsgKiBHdUMsIGl0IGlzIHVuc2FmZSB0byBrZWVwIGV4ZWN1dGluZyB3aXRob3V0IGl0IGJlY2F1 c2Ugc29tZSAKPj4+IHBhcnRzIG9mIHRoZSBIVywKPj4+ICsgKiBhIHN1YnNldCBvZiB3aGljaCBp cyBub3QgY2xlYW5lZCBvbiBHVCByZXNldCwgd2lsbCBzdGFydCAKPj4+IGV4cGVjdGluZyB0aGUg R3VDIEZXCj4+PiArICogdG8gYmUgcnVubmluZy4KPj4+ICsgKiBUbyBzb2x2ZSBib3RoIHRoZXNl IHJlcXVpcmVtZW50cywgd2UgY29tbWl0IHRvIHVzaW5nIHRoZSAKPj4+IG1pY3JvY29udHJvbGxl cnMgaWYKPj4+ICsgKiB0aGUgcmVsZXZhbnQgbW9kcGFyYW0gaXMgc2V0IGFuZCB0aGUgYmxvYnMg YXJlIGZvdW5kIG9uIHRoZSAKPj4+IHN5c3RlbS4gQXQgdGhpcwo+Pj4gKyAqIHN0YWdlLCB0aGUg b25seSB0aGluZyB0aGF0IGNhbiBzdG9wIHVzIGZyb20gYXR0ZW1wdGluZyB0byBsb2FkIAo+Pj4g dGhlIGJsb2JzIG9uCj4+PiArICogdGhlIEhXIGFuZCB1c2UgdGhlbSBpcyBhIGZ1bmRhbWVudGFs IGlzc3VlIChlLmcuIG5vIG1lbW9yeSBmb3Igb3VyCj4+PiArICogc3RydWN0dXJlcyk7IGlmIHdl IGhpdCBzdWNoIGEgcHJvYmxlbSBkdXJpbmcgZHJpdmVyIGxvYWQgd2UncmUgCj4+PiBicm9rZW4g ZXZlbgo+Pj4gKyAqIHdpdGhvdXQgR3VDLCBzbyB0aGVyZSBpcyBubyBwb2ludCBpbiB0cnlpbmcg dG8gZmFsbCBiYWNrLgo+Pj4gKyAqCj4+PiArICogR2l2ZW4gdGhlIGFib3ZlLCB3ZSBjYW4gYmUg aW4gb25lIG9mIDQgc3RhdGVzLCB3aXRoIHRoZSBsYXN0IG9uZSAKPj4+IGltcGx5aW5nCj4+PiAr ICogd2UncmUgY29tbWl0dGVkIHRvIHVzaW5nIHRoZSBtaWNyb2NvbnRyb2xsZXI6Cj4+PiArICog LSBOb3Qgc3VwcG9ydGVkOiBub3QgYXZhaWxhYmxlIGluIEhXIGFuZC9vciBmaXJtd2FyZSBub3Qg ZGVmaW5lZC4KPj4+ICsgKiAtIFN1cHBvcnRlZDogYXZhaWxhYmxlIGluIEhXIGFuZCBmaXJtd2Fy ZSBkZWZpbmVkLgo+Pj4gKyAqIC0gV2FudGVkOiBzdXBwb3J0ZWQgKyBlbmFibGVkIGluIG1vZHBh cmFtLgo+Pj4gKyAqIC0gSW4gdXNlOiB3YW50ZWQgKyBmaXJtd2FyZSBmb3VuZCBvbiB0aGUgc3lz dGVtIGFuZCBzdWNjZXNzZnVsbHkgCj4+PiBmZXRjaGVkLgo+PiBTaG91bGQgYmUgYW5vdGhlciBs aW5lIGZvciAnUnVubmluZyc/IEkgZ3Vlc3MgdGhlIGRlZmluaXRpb24gb2YgCj4+ICdpc19ydW5u aW5nJyBjb21lcyBmcm9tIGVsc2V3aGVyZSBidXQgaXQgd291bGQgbWFrZSBzZW5zZSB0byBpbmNs dWRlIAo+PiBpdCBpbiB0aGUgZGVzY3JpcHRpb24gaGVyZS4KPgo+ICJSdW5uaW5nIiBiZWxvbmdz IHRvIGEgZGlmZmVyZW50IHNldCBvZiBzdGF0ZXMsIGluZGljYXRpbmcgdGhlIGN1cnJlbnQgCj4g c3RhdGUgb2YgdGhlIHVDLiBUaGUgb25lcyBhZGRlZCBoZXJlIGFyZSBhYm91dCB3aGF0IHdlIHBs YW4gdG8gZG8gd2l0aCAKPiB0aGUgR3VDLCBub3Qgd2hhdCB0aGUgY3VycmVudCBzdGF0ZSBpcywg c28gSSBkaXNhZ3JlZSB0aGF0IGl0IG1ha2VzIAo+IHNlbnNlIHRvIGFkZCAicnVubmluZyIgaGVy ZS4KPgo+Pgo+PiBBbHNvLCBpdCB3b3VsZCBiZSBnb29kIHRvIGluY2x1ZGUgdGhlIGFjdHVhbCBm dW5jdGlvbiBuYW1lcyAKPj4gdGhlbXNlbHZlcy4gVGhhdCB3YXkgaWYgc29tZW9uZSBzZWFyY2hl cyBvbiAnaW50ZWxfdWNfdXNlc19ndWMnLCBmb3IgCj4+IGV4YW1wbGUsIHRoZXkgd2lsbCBmaW5k IHRoaXMgZGVzY3JpcHRpb24uIEVzcGVjaWFsbHkgYXMgc2VhcmNoaW5nIGZvciAKPj4gdGhlbSBi eSBlaXRoZXIgdGV4dCBvciBzeW1ib2wgd2lsbCBub3QgZmluZCB0aGUgZGVmaW5pdGlvbiEKPj4K Pgo+IEhvdyBkbyB5b3Ugd2FudCB0aGVtIGFkZGVkPyBXZSBkb24ndCB1c3VhbGx5IGRvIHRoYXQg Zm9yIGF1dG9nZW5lcmF0ZWQgCj4gZnVuY3Rpb25zICh0aGVyZSBpcyBhbiBleGFtcGxlIG9mIHRo YXQgZnVydGhlciBkb3duIGluIHRoaXMgZmlsZSkuCj4KPiBEYW5pZWxlCj4KQW4gZXhhbXBsZSBv ZiBkb2N1bWVudGF0aW9uPyBPciBhbiBleGFtcGxlIG9mIG1vcmUgYXV0b2dlbmVyYXRlZCAKZnVu Y3Rpb25zPyBUaGUgaW50ZWxfdWMuaCBjdXJyZW50bHkgaW4gdGhlIHRyZWUgaGFzIG5vIGRvY3Vt ZW50YXRpb24gaW4gCml0IGF0IGFsbCEgSSB3YXMganVzdCB0aGlua2luZyB0aGF0IEkgcGVyc29u YWxseSBnZXQgZnJ1c3RyYXRlZCB3aGVuIEkgCnRyeSB0byBzZWFyY2ggZm9yIGEgZnVuY3Rpb24g ZGVmaW5pdGlvbiBhbmQgY2FuJ3QgZmluZCBhbnl0aGluZyBiZWNhdXNlIAppdCBpcyBzb21lIGZh bmN5IGF1dG9nZW5lcmF0ZWQgdGhpbmcgd2l0aCBubyBkb2N1bWVudGF0aW9uIGF0IGFsbC4gSWYg CnlvdSBmZWVsIHRoYXQgaW5jbHVkaW5nIHRoZSBleHBhbmRlZCBuYW1lcyBpcyB0b28gdmVyYm9z ZSB0aGVuIGZpbmUsIAppdCdzIGhhcmRseSBhIHNob3cgc3RvcHBlciBpc3N1ZS4gQXQgbGVhc3Qg eW91IGhhdmUgYWRkZWQgc29tZSAKZG9jdW1lbnRhdGlvbiBhYm91dCB3aGF0IHRoZSB2YXJpb3Vz IHN0YXRlcyBtZWFuIQoKSm9obi4KCj4+IFdpdGggdGhhdCB0d2VhazoKPj4gUmV2aWV3ZWQtYnk6 IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4+Cj4+Cj4+PiArICov Cj4+PiArCj4+PiDCoCAjZGVmaW5lIF9fdWNfc3RhdGVfY2hlY2tlcih4LCBzdGF0ZSwgcmVxdWly ZWQpIFwKPj4+IMKgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF91Y18jI3N0YXRlIyNfIyN4KHN0 cnVjdCBpbnRlbF91YyAqdWMpIFwKPj4+IMKgIHsgXAo+Pj4gQEAgLTQ4LDcgKzY5LDggQEAgc3Rh dGljIGlubGluZSBib29sIGludGVsX3VjXyMjc3RhdGUjI18jI3goc3RydWN0IAo+Pj4gaW50ZWxf dWMgKnVjKSBcCj4+PiDCoCAjZGVmaW5lIHVjX3N0YXRlX2NoZWNrZXJzKHgpIFwKPj4+IMKgIF9f dWNfc3RhdGVfY2hlY2tlcih4LCBzdXBwb3J0cywgc3VwcG9ydGVkKSBcCj4+PiAtX191Y19zdGF0 ZV9jaGVja2VyKHgsIHVzZXMsIGVuYWJsZWQpCj4+PiArX191Y19zdGF0ZV9jaGVja2VyKHgsIHdh bnRzLCB3YW50ZWQpIFwKPj4+ICtfX3VjX3N0YXRlX2NoZWNrZXIoeCwgdXNlcywgdXNlZCkKPj4+ IMKgIHVjX3N0YXRlX2NoZWNrZXJzKGd1Yyk7Cj4+PiDCoCB1Y19zdGF0ZV9jaGVja2VycyhodWMp Owo+PgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==