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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 67A09E7717F for ; Thu, 12 Dec 2024 19:16:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=59VBwLTdN6nXOjFxV+1rHWvAsL1xeOdfn9bT5rdgDpY=; b=FaSvslLw2ipPn4 p7I0FaTnboLfUJdrGyuOTWJb3yv5bPDzbvQsOQajqzyk3OmChBeedquJcMGDxlox95y2J8DOHwtOP V6fJr1SFkB51+1cpqNwAywHrdwr2/QR5wxepCSRZ/Jf1U88Zl4O4nshElTRmOwl/D6vWn6D/EyD/t ujuI59oOEU+Dc98NpFVOi5hpZWKZp0mAt4vCEksH17SBMQBxLzQiju2358ID8Fu88jlqu1yHYBYS7 /8sVn66N1jY71dr0aX5kXHTcP2jNtn87PRhe9NzL3QW7hZwUNVl56EK0QNeQRCLFW5ceAjywRmOU6 H6G38UEIO/FXdfe7vGqQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tLofW-00000001aOs-2NrS; Thu, 12 Dec 2024 19:16:14 +0000 Received: from pegase2.c-s.fr ([93.17.235.10]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tLo1b-00000001RVV-0T00; Thu, 12 Dec 2024 18:35:01 +0000 Received: from localhost (mailhub3.si.c-s.fr [172.26.127.67]) by localhost (Postfix) with ESMTP id 4Y8Ljm050Sz9sSc; Thu, 12 Dec 2024 19:34:52 +0100 (CET) X-Virus-Scanned: amavisd-new at c-s.fr Received: from pegase2.c-s.fr ([172.26.127.65]) by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JyAcT0_AqjA1; Thu, 12 Dec 2024 19:34:51 +0100 (CET) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase2.c-s.fr (Postfix) with ESMTP id 4Y8Ljl56gvz9sSW; Thu, 12 Dec 2024 19:34:51 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 84BD78B773; Thu, 12 Dec 2024 19:34:51 +0100 (CET) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id dOarpQtZ8idy; Thu, 12 Dec 2024 19:34:51 +0100 (CET) Received: from [192.168.232.97] (unknown [192.168.232.97]) by messagerie.si.c-s.fr (Postfix) with ESMTP id AF4708B763; Thu, 12 Dec 2024 19:34:46 +0100 (CET) Message-ID: <2809dcce-3405-430e-b43d-d75f35bdb7d5@csgroup.eu> Date: Thu, 12 Dec 2024 19:34:45 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC 3/5] powerpc: kvm: drop 32-bit book3s To: Arnd Bergmann , kvm@vger.kernel.org Cc: Arnd Bergmann , Thomas Bogendoerfer , Huacai Chen , Jiaxun Yang , Michael Ellerman , Nicholas Piggin , Naveen N Rao , Madhavan Srinivasan , Alexander Graf , Crystal Wood , Anup Patel , Atish Patra , Paul Walmsley , Palmer Dabbelt , Albert Ou , Sean Christopherson , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Vitaly Kuznetsov , David Woodhouse , Paul Durrant , Marc Zyngier , linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org References: <20241212125516.467123-1-arnd@kernel.org> <20241212125516.467123-4-arnd@kernel.org> Content-Language: fr-FR From: Christophe Leroy In-Reply-To: <20241212125516.467123-4-arnd@kernel.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241212_103459_661906_890DCE05 X-CRM114-Status: GOOD ( 26.33 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org CgpMZSAxMi8xMi8yMDI0IMOgIDEzOjU1LCBBcm5kIEJlcmdtYW5uIGEgw6ljcml0wqA6Cj4gRnJv bTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KPiAKPiBTdXBwb3J0IGZvciBLVk0gb24g MzItYml0IEJvb2sgSUlJLXMgaW1wbGVtZW50YXRpb25zIHdhcyBhZGRlZCBpbiAyMDEwCj4gYW5k IHN1cHBvcnRzIFBvd2VyTWFjLCBDSFJQLCBhbmQgZW1iZWRkZWQgcGxhdGZvcm1zIHVzaW5nIHRo ZSBGcmVlc2NhbGUgRzQKPiAobXBjNzR4eCksIGUzMDAgKG1wYzgzeHgpIGFuZCBlNjAwIChtcGM4 Nnh4KSBDUFVzIGZyb20gMjAwMyB0byAyMDA5Lgo+IAo+IEVhcmxpZXIgNjAzLzYwNC83NTAgbWFj aGluZXMgbWlnaHQgd29yayBidXQgd291bGQgYmUgZXZlbiBtb3JlIGxpbWl0ZWQKPiBieSB0aGVp ciBhdmFpbGFibGUgbWVtb3J5Lgo+IAo+IFRoZSBvbmx5IGxpa2VseSB1c2VycyBvZiBLVk0gb24g YW55IG9mIHRoZXNlIHdlcmUgdGhlIGZpbmFsIEFwcGxlCj4gUG93ZXJNYWMvUG93ZXJCb29rL2lC b29rIEc0IG1vZGVscyB3aXRoIDJHQiBvZiBSQU0gdGhhdCB3ZXJlIGF0IHRoZSBoaWdoCj4gZW5k IDIwIHllYXJzIGFnbyBidXQgYXJlIGp1c3QgYXMgb2Jzb2xldGUgYXMgdGhlaXIgeDg2LTMyIGNv dW50ZXJwYXJ0cy4KPiBUaGUgY29kZSBoYXMgYmVlbiBvcnBoYW5lZCBzaW5jZSAyMDIzLgoKVGhh bmtzIGZvciBkb2luZyB0aGlzLCBpdCB3aWxsIGhlbHAgbWFraW5nIG1haW50ZW5hbmNlIGFuZCBl dm9sdXRpb24gb2YgCjMyIGJpdHMgZWFzaWVyLgoKU2hvdWxkIGZpeCBodHRwczovL2dpdGh1Yi5j b20vbGludXhwcGMvaXNzdWVzL2lzc3Vlcy8zMzQKCgoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBBcm5k IEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPgo+IC0tLQo+ICAgTUFJTlRBSU5FUlMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KPiAgIGFyY2gvcG93ZXJwYy9pbmNsdWRlL2Fz bS9rdm1fYm9vazNzLmggICAgIHwgIDE5IC0tLS0KPiAgIGFyY2gvcG93ZXJwYy9pbmNsdWRlL2Fz bS9rdm1fYm9vazNzX2FzbS5oIHwgIDEwIC0tCj4gICBhcmNoL3Bvd2VycGMva3ZtL0tjb25maWcg ICAgICAgICAgICAgICAgICB8ICAyMiAtLS0tCj4gICBhcmNoL3Bvd2VycGMva3ZtL01ha2VmaWxl ICAgICAgICAgICAgICAgICB8ICAxNSAtLS0KPiAgIGFyY2gvcG93ZXJwYy9rdm0vYm9vazNzLmMg ICAgICAgICAgICAgICAgIHwgIDE4IC0tLS0KPiAgIGFyY2gvcG93ZXJwYy9rdm0vYm9vazNzX2Vt dWxhdGUuYyAgICAgICAgIHwgIDM3IC0tLS0tLS0KPiAgIGFyY2gvcG93ZXJwYy9rdm0vYm9vazNz X2ludGVycnVwdHMuUyAgICAgIHwgIDExIC0tCj4gICBhcmNoL3Bvd2VycGMva3ZtL2Jvb2szc19t bXVfaHB0ZS5jICAgICAgICB8ICAxMiAtLS0KPiAgIGFyY2gvcG93ZXJwYy9rdm0vYm9vazNzX3By LmMgICAgICAgICAgICAgIHwgMTIyICstLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIGFyY2gvcG93 ZXJwYy9rdm0vYm9vazNzX3JtaGFuZGxlcnMuUyAgICAgIHwgMTEwIC0tLS0tLS0tLS0tLS0tLS0t LS0KPiAgIGFyY2gvcG93ZXJwYy9rdm0vYm9vazNzX3NlZ21lbnQuUyAgICAgICAgIHwgIDMwICst LS0tLQo+ICAgYXJjaC9wb3dlcnBjL2t2bS9lbXVsYXRlLmMgICAgICAgICAgICAgICAgfCAgIDIg LQo+ICAgYXJjaC9wb3dlcnBjL2t2bS9wb3dlcnBjLmMgICAgICAgICAgICAgICAgfCAgIDIgLQo+ ICAgMTQgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA0MDkgZGVsZXRpb25zKC0pCgpT b21lIGxlZnQtb3ZlciA/CgokIGdpdCBncmVwIEtWTV9CT09LM1NfMzJfSEFORExFUgphcmNoL3Bv d2VycGMvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmg6I2lmZGVmIENPTkZJR19LVk1fQk9PSzNTXzMy X0hBTkRMRVIKYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oOiNlbmRpZiAvKiAK Q09ORklHX0tWTV9CT09LM1NfMzJfSEFORExFUiAqLwphcmNoL3Bvd2VycGMva2VybmVsL2FzbS1v ZmZzZXRzLmM6I2lmZGVmIENPTkZJR19LVk1fQk9PSzNTXzMyX0hBTkRMRVIKCldoYXQgYWJvdXQg dGhlIGZvbGxvd2luZyBpbiBhc20tb2Zmc2V0cy5jLCBzaG91bGQgaXQgc3RpbGwgdGVzdCAKQ09O RklHX1BQQ19CT09LM1NfNjQgPyBJcyBDT05GSUdfS1ZNX0JPT0szU19QUl9QT1NTSUJMRSBzdGls bCBwb3NzaWJsZSAKb24gc29tZXRoaW5nIGVsc2UgPwoKI2lmIGRlZmluZWQoQ09ORklHX1BQQ19C T09LM1NfNjQpICYmIGRlZmluZWQoQ09ORklHX0tWTV9CT09LM1NfUFJfUE9TU0lCTEUpCglPRkZT RVQoVkNQVV9TSEFSRURCRSwga3ZtX3ZjcHUsIGFyY2guc2hhcmVkX2JpZ19lbmRpYW4pOwojZW5k aWYKClNob3VsZG4ndCBDT05GSUdfS1ZNIGFuZC9vciBDT05GSUdfVklSVFVBTElTQVRJT04gYmUg cmVzdHJpY3RlZCB0byAKQ09ORklHX1BQQzY0IG5vdyA/CgpXaGF0IGFib3V0OgoKYXJjaC9wb3dl cnBjL2tlcm5lbC9oZWFkX2Jvb2szc18zMi5TOiNpbmNsdWRlIDxhc20va3ZtX2Jvb2szc19hc20u aD4KYXJjaC9wb3dlcnBjL2tlcm5lbC9oZWFkX2Jvb2szc18zMi5TOiNpbmNsdWRlICIuLi9rdm0v Ym9vazNzX3JtaGFuZGxlcnMuUyIKClRoZXJlIGlzIHN0aWxsIGFyY2gvcG93ZXJwYy9rdm0vYm9v azNzXzMyX21tdS5jCgpDaHJpc3RvcGhlCgoKPiAKPiBkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMg Yi9NQUlOVEFJTkVSUwo+IGluZGV4IDUzMTU2MWM3YTliNy4uOGQ1MzgzMzY0NWZhIDEwMDY0NAo+ IC0tLSBhL01BSU5UQUlORVJTCj4gKysrIGIvTUFJTlRBSU5FUlMKPiBAQCAtMTI2NDIsNyArMTI2 NDIsNyBAQCBMOglsaW51eHBwYy1kZXZAbGlzdHMub3psYWJzLm9yZwo+ICAgTDoJa3ZtQHZnZXIu a2VybmVsLm9yZwo+ICAgUzoJTWFpbnRhaW5lZCAoQm9vazNTIDY0LWJpdCBIVikKPiAgIFM6CU9k ZCBmaXhlcyAoQm9vazNTIDY0LWJpdCBQUikKPiAtUzoJT3JwaGFuIChCb29rM0UgYW5kIDMyLWJp dCkKPiArUzoJT3JwaGFuIChCb29rM0UpCj4gICBUOglnaXQgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcv cHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3Bvd2VycGMvbGludXguZ2l0IHRvcGljL3BwYy1rdm0K PiAgIEY6CWFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9rdm0qCj4gICBGOglhcmNoL3Bvd2VycGMv aW5jbHVkZS91YXBpL2FzbS9rdm0qCj4gZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRl L2FzbS9rdm1fYm9vazNzLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20va3ZtX2Jvb2szcy5o Cj4gaW5kZXggZTFmZjI5MWJhODkxLi43MTUzMmUwZTY1YTYgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9w b3dlcnBjL2luY2x1ZGUvYXNtL2t2bV9ib29rM3MuaAo+ICsrKyBiL2FyY2gvcG93ZXJwYy9pbmNs dWRlL2FzbS9rdm1fYm9vazNzLmgKPiBAQCAtMzYsMjEgKzM2LDE0IEBAIHN0cnVjdCBrdm1wcGNf c2lkX21hcCB7Cj4gICAjZGVmaW5lIFNJRF9NQVBfTlVNICAgICAoMSA8PCBTSURfTUFQX0JJVFMp Cj4gICAjZGVmaW5lIFNJRF9NQVBfTUFTSyAgICAoU0lEX01BUF9OVU0gLSAxKQo+ICAgCj4gLSNp ZmRlZiBDT05GSUdfUFBDX0JPT0szU182NAo+ICAgI2RlZmluZSBTSURfQ09OVEVYVFMJMQo+IC0j ZWxzZQo+IC0jZGVmaW5lIFNJRF9DT05URVhUUwkxMjgKPiAtI2RlZmluZSBWU0lEX1BPT0xfU0la RQkoU0lEX0NPTlRFWFRTICogMTYpCj4gLSNlbmRpZgo+ICAgCj4gICBzdHJ1Y3QgaHB0ZV9jYWNo ZSB7Cj4gICAJc3RydWN0IGhsaXN0X25vZGUgbGlzdF9wdGU7Cj4gICAJc3RydWN0IGhsaXN0X25v ZGUgbGlzdF9wdGVfbG9uZzsKPiAgIAlzdHJ1Y3QgaGxpc3Rfbm9kZSBsaXN0X3ZwdGU7Cj4gICAJ c3RydWN0IGhsaXN0X25vZGUgbGlzdF92cHRlX2xvbmc7Cj4gLSNpZmRlZiBDT05GSUdfUFBDX0JP T0szU182NAo+ICAgCXN0cnVjdCBobGlzdF9ub2RlIGxpc3RfdnB0ZV82NGs7Cj4gLSNlbmRpZgo+ ICAgCXN0cnVjdCByY3VfaGVhZCByY3VfaGVhZDsKPiAgIAl1NjQgaG9zdF92cG47Cj4gICAJdTY0 IHBmbjsKPiBAQCAtMTEyLDE0ICsxMDUsOSBAQCBzdHJ1Y3Qga3ZtcHBjX3ZjcHVfYm9vazNzIHsK PiAgIAl1NjQgaGlvcjsKPiAgIAl1NjQgbXNyX21hc2s7Cj4gICAJdTY0IHZ0YjsKPiAtI2lmZGVm IENPTkZJR19QUENfQk9PSzNTXzMyCj4gLQl1MzIgdnNpZF9wb29sW1ZTSURfUE9PTF9TSVpFXTsK PiAtCXUzMiB2c2lkX25leHQ7Cj4gLSNlbHNlCj4gICAJdTY0IHByb3RvX3ZzaWRfZmlyc3Q7Cj4g ICAJdTY0IHByb3RvX3ZzaWRfbWF4Owo+ICAgCXU2NCBwcm90b192c2lkX25leHQ7Cj4gLSNlbmRp Zgo+ICAgCWludCBjb250ZXh0X2lkW1NJRF9DT05URVhUU107Cj4gICAKPiAgIAlib29sIGhpb3Jf ZXhwbGljaXQ7CQkvKiBISU9SIGlzIHNldCBieSBpb2N0bCwgbm90IFBWUiAqLwo+IEBAIC0xMjgs OSArMTE2LDcgQEAgc3RydWN0IGt2bXBwY192Y3B1X2Jvb2szcyB7Cj4gICAJc3RydWN0IGhsaXN0 X2hlYWQgaHB0ZV9oYXNoX3B0ZV9sb25nW0hQVEVHX0hBU0hfTlVNX1BURV9MT05HXTsKPiAgIAlz dHJ1Y3QgaGxpc3RfaGVhZCBocHRlX2hhc2hfdnB0ZVtIUFRFR19IQVNIX05VTV9WUFRFXTsKPiAg IAlzdHJ1Y3QgaGxpc3RfaGVhZCBocHRlX2hhc2hfdnB0ZV9sb25nW0hQVEVHX0hBU0hfTlVNX1ZQ VEVfTE9OR107Cj4gLSNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182NAo+ICAgCXN0cnVjdCBobGlz dF9oZWFkIGhwdGVfaGFzaF92cHRlXzY0a1tIUFRFR19IQVNIX05VTV9WUFRFXzY0S107Cj4gLSNl bmRpZgo+ICAgCWludCBocHRlX2NhY2hlX2NvdW50Owo+ICAgCXNwaW5sb2NrX3QgbW11X2xvY2s7 Cj4gICB9Owo+IEBAIC0zOTEsMTIgKzM3Nyw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGt2bXBw Y192Y3B1X2Jvb2szcyAqdG9fYm9vazNzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiAgIAo+ICAg LyogQWxzbyBhZGQgc3ViYXJjaCBzcGVjaWZpYyBkZWZpbmVzICovCj4gICAKPiAtI2lmZGVmIENP TkZJR19LVk1fQk9PSzNTXzMyX0hBTkRMRVIKPiAtI2luY2x1ZGUgPGFzbS9rdm1fYm9vazNzXzMy Lmg+Cj4gLSNlbmRpZgo+IC0jaWZkZWYgQ09ORklHX0tWTV9CT09LM1NfNjRfSEFORExFUgo+ICAg I2luY2x1ZGUgPGFzbS9rdm1fYm9vazNzXzY0Lmg+Cj4gLSNlbmRpZgo+ICAgCj4gICBzdGF0aWMg aW5saW5lIHZvaWQga3ZtcHBjX3NldF9ncHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgbnVt LCB1bG9uZyB2YWwpCj4gICB7Cj4gZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2Fz bS9rdm1fYm9vazNzX2FzbS5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2t2bV9ib29rM3Nf YXNtLmgKPiBpbmRleCBhMzY3OTc5Mzg2MjAuLjk4MTc0MzYzOTQ2ZSAxMDA2NDQKPiAtLS0gYS9h cmNoL3Bvd2VycGMvaW5jbHVkZS9hc20va3ZtX2Jvb2szc19hc20uaAo+ICsrKyBiL2FyY2gvcG93 ZXJwYy9pbmNsdWRlL2FzbS9rdm1fYm9vazNzX2FzbS5oCj4gQEAgLTExMywxMSArMTEzLDkgQEAg c3RydWN0IGt2bXBwY19ob3N0X3N0YXRlIHsKPiAgIAl1NjQgZGVjX2V4cGlyZXM7Cj4gICAJc3Ry dWN0IGt2bV9zcGxpdF9tb2RlICprdm1fc3BsaXRfbW9kZTsKPiAgICNlbmRpZgo+IC0jaWZkZWYg Q09ORklHX1BQQ19CT09LM1NfNjQKPiAgIAl1NjQgY2ZhcjsKPiAgIAl1NjQgcHByOwo+ICAgCXU2 NCBob3N0X2ZzY3I7Cj4gLSNlbmRpZgo+ICAgfTsKPiAgIAo+ICAgc3RydWN0IGt2bXBwY19ib29r M3Nfc2hhZG93X3ZjcHUgewo+IEBAIC0xMzQsMjAgKzEzMiwxMiBAQCBzdHJ1Y3Qga3ZtcHBjX2Jv b2szc19zaGFkb3dfdmNwdSB7Cj4gICAJdTMyIGZhdWx0X2RzaXNyOwo+ICAgCXUzMiBsYXN0X2lu c3Q7Cj4gICAKPiAtI2lmZGVmIENPTkZJR19QUENfQk9PSzNTXzMyCj4gLQl1MzIgICAgIHNyWzE2 XTsJCQkvKiBHdWVzdCBTUnMgKi8KPiAtCj4gLQlzdHJ1Y3Qga3ZtcHBjX2hvc3Rfc3RhdGUgaHN0 YXRlOwo+IC0jZW5kaWYKPiAtCj4gLSNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182NAo+ICAgCXU4 IHNsYl9tYXg7CQkJLyogaGlnaGVzdCB1c2VkIGd1ZXN0IHNsYiBlbnRyeSAqLwo+ICAgCXN0cnVj dCAgewo+ICAgCQl1NjQgICAgIGVzaWQ7Cj4gICAJCXU2NCAgICAgdnNpZDsKPiAgIAl9IHNsYls2 NF07CQkJLyogZ3Vlc3QgU0xCICovCj4gICAJdTY0IHNoYWRvd19mc2NyOwo+IC0jZW5kaWYKPiAg IH07Cj4gICAKPiAgICNlbmRpZiAvKl9fQVNTRU1CTFlfXyAqLwo+IGRpZmYgLS1naXQgYS9hcmNo L3Bvd2VycGMva3ZtL0tjb25maWcgYi9hcmNoL3Bvd2VycGMva3ZtL0tjb25maWcKPiBpbmRleCBl MjIzMGVhNTEyY2YuLmQwYTZlMmY2ZGY4MSAxMDA2NDQKPiAtLS0gYS9hcmNoL3Bvd2VycGMva3Zt L0tjb25maWcKPiArKysgYi9hcmNoL3Bvd2VycGMva3ZtL0tjb25maWcKPiBAQCAtMjcsMTEgKzI3 LDYgQEAgY29uZmlnIEtWTQo+ICAgY29uZmlnIEtWTV9CT09LM1NfSEFORExFUgo+ICAgCWJvb2wK PiAgIAo+IC1jb25maWcgS1ZNX0JPT0szU18zMl9IQU5ETEVSCj4gLQlib29sCj4gLQlzZWxlY3Qg S1ZNX0JPT0szU19IQU5ETEVSCj4gLQlzZWxlY3QgS1ZNX01NSU8KPiAtCj4gICBjb25maWcgS1ZN X0JPT0szU182NF9IQU5ETEVSCj4gICAJYm9vbAo+ICAgCXNlbGVjdCBLVk1fQk9PSzNTX0hBTkRM RVIKPiBAQCAtNDQsMjMgKzM5LDYgQEAgY29uZmlnIEtWTV9CT09LM1NfUFJfUE9TU0lCTEUKPiAg IGNvbmZpZyBLVk1fQk9PSzNTX0hWX1BPU1NJQkxFCj4gICAJYm9vbAo+ICAgCj4gLWNvbmZpZyBL Vk1fQk9PSzNTXzMyCj4gLQl0cmlzdGF0ZSAiS1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgYm9vazNz XzMyIHByb2Nlc3NvcnMiCj4gLQlkZXBlbmRzIG9uIFBQQ19CT09LM1NfMzIgJiYgIVNNUCAmJiAh UFRFXzY0QklUCj4gLQlkZXBlbmRzIG9uICFDT05URVhUX1RSQUNLSU5HX1VTRVIKPiAtCXNlbGVj dCBLVk0KPiAtCXNlbGVjdCBLVk1fQk9PSzNTXzMyX0hBTkRMRVIKPiAtCXNlbGVjdCBLVk1fQk9P SzNTX1BSX1BPU1NJQkxFCj4gLQlzZWxlY3QgUFBDX0ZQVQo+IC0JaGVscAo+IC0JICBTdXBwb3J0 IHJ1bm5pbmcgdW5tb2RpZmllZCBib29rM3NfMzIgZ3Vlc3Qga2VybmVscwo+IC0JICBpbiB2aXJ0 dWFsIG1hY2hpbmVzIG9uIGJvb2szc18zMiBob3N0IHByb2Nlc3NvcnMuCj4gLQo+IC0JICBUaGlz IG1vZHVsZSBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGhhcmR3YXJlIGNhcGFiaWxpdGllcyB0aHJv dWdoCj4gLQkgIGEgY2hhcmFjdGVyIGRldmljZSBub2RlIG5hbWVkIC9kZXYva3ZtLgo+IC0KPiAt CSAgSWYgdW5zdXJlLCBzYXkgTi4KPiAtCj4gICBjb25maWcgS1ZNX0JPT0szU182NAo+ICAgCXRy aXN0YXRlICJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfNjQgcHJvY2Vzc29ycyIKPiAg IAlkZXBlbmRzIG9uIFBQQ19CT09LM1NfNjQKPiBkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2t2 bS9NYWtlZmlsZSBiL2FyY2gvcG93ZXJwYy9rdm0vTWFrZWZpbGUKPiBpbmRleCAyOTRmMjc0Mzlm N2YuLjA1OWI0YzE1M2Q5NyAxMDA2NDQKPiAtLS0gYS9hcmNoL3Bvd2VycGMva3ZtL01ha2VmaWxl Cj4gKysrIGIvYXJjaC9wb3dlcnBjL2t2bS9NYWtlZmlsZQo+IEBAIC05NSwyNyArOTUsMTIgQEAg a3ZtLWJvb2szc182NC1tb2R1bGUtb2JqcyA6PSBcCj4gICAKPiAgIGt2bS1vYmpzLSQoQ09ORklH X0tWTV9CT09LM1NfNjQpIDo9ICQoa3ZtLWJvb2szc182NC1tb2R1bGUtb2JqcykKPiAgIAo+IC1r dm0tYm9vazNzXzMyLW9ianMgOj0gXAo+IC0JJChjb21tb24tb2Jqcy15KSBcCj4gLQllbXVsYXRl Lm8gXAo+IC0JZnB1Lm8gXAo+IC0JYm9vazNzX3BhaXJlZF9zaW5nbGVzLm8gXAo+IC0JYm9vazNz Lm8gXAo+IC0JYm9vazNzX3ByLm8gXAo+IC0JYm9vazNzX2VtdWxhdGUubyBcCj4gLQlib29rM3Nf aW50ZXJydXB0cy5vIFwKPiAtCWJvb2szc19tbXVfaHB0ZS5vIFwKPiAtCWJvb2szc18zMl9tbXVf aG9zdC5vIFwKPiAtCWJvb2szc18zMl9tbXUubwo+IC1rdm0tb2Jqcy0kKENPTkZJR19LVk1fQk9P SzNTXzMyKSA6PSAkKGt2bS1ib29rM3NfMzItb2JqcykKPiAtCj4gICBrdm0tb2Jqcy0kKENPTkZJ R19LVk1fTVBJQykgKz0gbXBpYy5vCj4gICAKPiAgIGt2bS15ICs9ICQoa3ZtLW9ianMtbSkgJChr dm0tb2Jqcy15KQo+ICAgCj4gICBvYmotJChDT05GSUdfS1ZNX0U1MDBNQykgKz0ga3ZtLm8KPiAg IG9iai0kKENPTkZJR19LVk1fQk9PSzNTXzY0KSArPSBrdm0ubwo+IC1vYmotJChDT05GSUdfS1ZN X0JPT0szU18zMikgKz0ga3ZtLm8KPiAgIAo+ICAgb2JqLSQoQ09ORklHX0tWTV9CT09LM1NfNjRf UFIpICs9IGt2bS1wci5vCj4gICBvYmotJChDT05GSUdfS1ZNX0JPT0szU182NF9IVikgKz0ga3Zt LWh2Lm8KPiBkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2t2bS9ib29rM3MuYyBiL2FyY2gvcG93 ZXJwYy9rdm0vYm9vazNzLmMKPiBpbmRleCBkNzljNWQxMDk4YzAuLjc1ZjRkMzk3MTE0ZiAxMDA2 NDQKPiAtLS0gYS9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szcy5jCj4gKysrIGIvYXJjaC9wb3dlcnBj L2t2bS9ib29rM3MuYwo+IEBAIC04OTgsMTIgKzg5OCw5IEBAIGJvb2wga3ZtX3Rlc3RfYWdlX2dm bihzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBrdm1fZ2ZuX3JhbmdlICpyYW5nZSkKPiAgIAo+ICAg aW50IGt2bXBwY19jb3JlX2luaXRfdm0oc3RydWN0IGt2bSAqa3ZtKQo+ICAgewo+IC0KPiAtI2lm ZGVmIENPTkZJR19QUEM2NAo+ICAgCUlOSVRfTElTVF9IRUFEX1JDVSgma3ZtLT5hcmNoLnNwYXBy X3RjZV90YWJsZXMpOwo+ICAgCUlOSVRfTElTVF9IRUFEKCZrdm0tPmFyY2gucnRhc190b2tlbnMp Owo+ICAgCW11dGV4X2luaXQoJmt2bS0+YXJjaC5ydGFzX3Rva2VuX2xvY2spOwo+IC0jZW5kaWYK PiAgIAo+ICAgCXJldHVybiBrdm0tPmFyY2gua3ZtX29wcy0+aW5pdF92bShrdm0pOwo+ICAgfQo+ IEBAIC05MTIsMTAgKzkwOSw4IEBAIHZvaWQga3ZtcHBjX2NvcmVfZGVzdHJveV92bShzdHJ1Y3Qg a3ZtICprdm0pCj4gICB7Cj4gICAJa3ZtLT5hcmNoLmt2bV9vcHMtPmRlc3Ryb3lfdm0oa3ZtKTsK PiAgIAo+IC0jaWZkZWYgQ09ORklHX1BQQzY0Cj4gICAJa3ZtcHBjX3J0YXNfdG9rZW5zX2ZyZWUo a3ZtKTsKPiAgIAlXQVJOX09OKCFsaXN0X2VtcHR5KCZrdm0tPmFyY2guc3BhcHJfdGNlX3RhYmxl cykpOwo+IC0jZW5kaWYKPiAgIAo+ICAgI2lmZGVmIENPTkZJR19LVk1fWElDUwo+ICAgCS8qCj4g QEAgLTEwNjksMTAgKzEwNjQsNiBAQCBzdGF0aWMgaW50IGt2bXBwY19ib29rM3NfaW5pdCh2b2lk KQo+ICAgCXIgPSBrdm1faW5pdChzaXplb2Yoc3RydWN0IGt2bV92Y3B1KSwgMCwgVEhJU19NT0RV TEUpOwo+ICAgCWlmIChyKQo+ICAgCQlyZXR1cm4gcjsKPiAtI2lmZGVmIENPTkZJR19LVk1fQk9P SzNTXzMyX0hBTkRMRVIKPiAtCXIgPSBrdm1wcGNfYm9vazNzX2luaXRfcHIoKTsKPiAtI2VuZGlm Cj4gLQo+ICAgI2lmZGVmIENPTkZJR19LVk1fWElDUwo+ICAgI2lmZGVmIENPTkZJR19LVk1fWElW RQo+ICAgCWlmICh4aWNzX29uX3hpdmUoKSkgewo+IEBAIC0xMDg5LDE3ICsxMDgwLDggQEAgc3Rh dGljIGludCBrdm1wcGNfYm9vazNzX2luaXQodm9pZCkKPiAgIAo+ICAgc3RhdGljIHZvaWQga3Zt cHBjX2Jvb2szc19leGl0KHZvaWQpCj4gICB7Cj4gLSNpZmRlZiBDT05GSUdfS1ZNX0JPT0szU18z Ml9IQU5ETEVSCj4gLQlrdm1wcGNfYm9vazNzX2V4aXRfcHIoKTsKPiAtI2VuZGlmCj4gICAJa3Zt X2V4aXQoKTsKPiAgIH0KPiAgIAo+ICAgbW9kdWxlX2luaXQoa3ZtcHBjX2Jvb2szc19pbml0KTsK PiAgIG1vZHVsZV9leGl0KGt2bXBwY19ib29rM3NfZXhpdCk7Cj4gLQo+IC0vKiBPbiAzMmJpdCB0 aGlzIGlzIG91ciBvbmUgYW5kIG9ubHkga2VybmVsIG1vZHVsZSAqLwo+IC0jaWZkZWYgQ09ORklH X0tWTV9CT09LM1NfMzJfSEFORExFUgo+IC1NT0RVTEVfQUxJQVNfTUlTQ0RFVihLVk1fTUlOT1Ip Owo+IC1NT0RVTEVfQUxJQVMoImRldm5hbWU6a3ZtIik7Cj4gLSNlbmRpZgo+IGRpZmYgLS1naXQg YS9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szc19lbXVsYXRlLmMgYi9hcmNoL3Bvd2VycGMva3ZtL2Jv b2szc19lbXVsYXRlLmMKPiBpbmRleCBkZTEyNmQxNTMzMjguLjMwYTExN2Q2ZTcwYyAxMDA2NDQK PiAtLS0gYS9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szc19lbXVsYXRlLmMKPiArKysgYi9hcmNoL3Bv d2VycGMva3ZtL2Jvb2szc19lbXVsYXRlLmMKPiBAQCAtMzUxLDcgKzM1MSw2IEBAIGludCBrdm1w cGNfY29yZV9lbXVsYXRlX29wX3ByKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKPiAgIAkJCXZjcHUt PmFyY2gubW11LnRsYmllKHZjcHUsIGFkZHIsIGxhcmdlKTsKPiAgIAkJCWJyZWFrOwo+ICAgCQl9 Cj4gLSNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182NAo+ICAgCQljYXNlIE9QXzMxX1hPUF9GQUtF X1NDMToKPiAgIAkJewo+ICAgCQkJLyogU0MgMSBwYXByIGh5cGVyY2FsbHMgKi8KPiBAQCAtMzc4 LDcgKzM3Nyw2IEBAIGludCBrdm1wcGNfY29yZV9lbXVsYXRlX29wX3ByKHN0cnVjdCBrdm1fdmNw dSAqdmNwdSwKPiAgIAkJCWVtdWxhdGVkID0gRU1VTEFURV9FWElUX1VTRVI7Cj4gICAJCQlicmVh azsKPiAgIAkJfQo+IC0jZW5kaWYKPiAgIAkJY2FzZSBPUF8zMV9YT1BfRUlPSU86Cj4gICAJCQli cmVhazsKPiAgIAkJY2FzZSBPUF8zMV9YT1BfU0xCTVRFOgo+IEBAIC03NjIsNyArNzYwLDYgQEAg aW50IGt2bXBwY19jb3JlX2VtdWxhdGVfbXRzcHJfcHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBp bnQgc3BybiwgdWxvbmcgc3ByX3ZhbCkKPiAgIAljYXNlIFNQUk5fR1FSNzoKPiAgIAkJdG9fYm9v azNzKHZjcHUpLT5ncXJbc3BybiAtIFNQUk5fR1FSMF0gPSBzcHJfdmFsOwo+ICAgCQlicmVhazsK PiAtI2lmZGVmIENPTkZJR19QUENfQk9PSzNTXzY0Cj4gICAJY2FzZSBTUFJOX0ZTQ1I6Cj4gICAJ CWt2bXBwY19zZXRfZnNjcih2Y3B1LCBzcHJfdmFsKTsKPiAgIAkJYnJlYWs7Cj4gQEAgLTgxMCw3 ICs4MDcsNiBAQCBpbnQga3ZtcHBjX2NvcmVfZW11bGF0ZV9tdHNwcl9wcihzdHJ1Y3Qga3ZtX3Zj cHUgKnZjcHUsIGludCBzcHJuLCB1bG9uZyBzcHJfdmFsKQo+ICAgCQl0bV9kaXNhYmxlKCk7Cj4g ICAKPiAgIAkJYnJlYWs7Cj4gLSNlbmRpZgo+ICAgI2VuZGlmCj4gICAJY2FzZSBTUFJOX0lDVEM6 Cj4gICAJY2FzZSBTUFJOX1RIUk0xOgo+IEBAIC04MjksNyArODI1LDYgQEAgaW50IGt2bXBwY19j b3JlX2VtdWxhdGVfbXRzcHJfcHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgc3BybiwgdWxv bmcgc3ByX3ZhbCkKPiAgIAljYXNlIFNQUk5fV1BBUl9HRUtLTzoKPiAgIAljYXNlIFNQUk5fTVNT U1IwOgo+ICAgCWNhc2UgU1BSTl9EQUJSOgo+IC0jaWZkZWYgQ09ORklHX1BQQ19CT09LM1NfNjQK PiAgIAljYXNlIFNQUk5fTU1DUlM6Cj4gICAJY2FzZSBTUFJOX01NQ1JBOgo+ICAgCWNhc2UgU1BS Tl9NTUNSMDoKPiBAQCAtODM5LDcgKzgzNCw2IEBAIGludCBrdm1wcGNfY29yZV9lbXVsYXRlX210 c3ByX3ByKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IHNwcm4sIHVsb25nIHNwcl92YWwpCj4g ICAJY2FzZSBTUFJOX1VBTU9SOgo+ICAgCWNhc2UgU1BSTl9JQU1SOgo+ICAgCWNhc2UgU1BSTl9B TVI6Cj4gLSNlbmRpZgo+ICAgCQlicmVhazsKPiAgIHVucHJpdmlsZWdlZDoKPiAgIAlkZWZhdWx0 Ogo+IEBAIC05NDMsNyArOTM3LDYgQEAgaW50IGt2bXBwY19jb3JlX2VtdWxhdGVfbWZzcHJfcHIo c3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgc3BybiwgdWxvbmcgKnNwcl92YWwKPiAgIAljYXNl IFNQUk5fR1FSNzoKPiAgIAkJKnNwcl92YWwgPSB0b19ib29rM3ModmNwdSktPmdxcltzcHJuIC0g U1BSTl9HUVIwXTsKPiAgIAkJYnJlYWs7Cj4gLSNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182NAo+ ICAgCWNhc2UgU1BSTl9GU0NSOgo+ICAgCQkqc3ByX3ZhbCA9IHZjcHUtPmFyY2guZnNjcjsKPiAg IAkJYnJlYWs7Cj4gQEAgLTk3OCw3ICs5NzEsNiBAQCBpbnQga3ZtcHBjX2NvcmVfZW11bGF0ZV9t ZnNwcl9wcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCBzcHJuLCB1bG9uZyAqc3ByX3ZhbAo+ ICAgCQkJKnNwcl92YWwgPSBtZnNwcihTUFJOX1RGSUFSKTsKPiAgIAkJdG1fZGlzYWJsZSgpOwo+ ICAgCQlicmVhazsKPiAtI2VuZGlmCj4gICAjZW5kaWYKPiAgIAljYXNlIFNQUk5fVEhSTTE6Cj4g ICAJY2FzZSBTUFJOX1RIUk0yOgo+IEBAIC05OTUsNyArOTg3LDYgQEAgaW50IGt2bXBwY19jb3Jl X2VtdWxhdGVfbWZzcHJfcHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgc3BybiwgdWxvbmcg KnNwcl92YWwKPiAgIAljYXNlIFNQUk5fV1BBUl9HRUtLTzoKPiAgIAljYXNlIFNQUk5fTVNTU1Iw Ogo+ICAgCWNhc2UgU1BSTl9EQUJSOgo+IC0jaWZkZWYgQ09ORklHX1BQQ19CT09LM1NfNjQKPiAg IAljYXNlIFNQUk5fTU1DUlM6Cj4gICAJY2FzZSBTUFJOX01NQ1JBOgo+ICAgCWNhc2UgU1BSTl9N TUNSMDoKPiBAQCAtMTAwNiw3ICs5OTcsNiBAQCBpbnQga3ZtcHBjX2NvcmVfZW11bGF0ZV9tZnNw cl9wcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCBzcHJuLCB1bG9uZyAqc3ByX3ZhbAo+ICAg CWNhc2UgU1BSTl9VQU1PUjoKPiAgIAljYXNlIFNQUk5fSUFNUjoKPiAgIAljYXNlIFNQUk5fQU1S Ogo+IC0jZW5kaWYKPiAgIAkJKnNwcl92YWwgPSAwOwo+ICAgCQlicmVhazsKPiAgIAlkZWZhdWx0 Ogo+IEBAIC0xMDM4LDM1ICsxMDI4LDggQEAgdTMyIGt2bXBwY19hbGlnbm1lbnRfZHNpc3Ioc3Ry dWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBpbnQgaW5zdCkKPiAgIAo+ICAgdWxvbmcga3Zt cHBjX2FsaWdubWVudF9kYXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBpbnQgaW5z dCkKPiAgIHsKPiAtI2lmZGVmIENPTkZJR19QUENfQk9PSzNTXzY0Cj4gICAJLyoKPiAgIAkgKiBM aW51eCdzIGZpeF9hbGlnbm1lbnQoKSBhc3N1bWVzIHRoYXQgREFSIGlzIHZhbGlkLCBzbyBjYW4g d2UKPiAgIAkgKi8KPiAgIAlyZXR1cm4gdmNwdS0+YXJjaC5mYXVsdF9kYXI7Cj4gLSNlbHNlCj4g LQl1bG9uZyBkYXIgPSAwOwo+IC0JdWxvbmcgcmEgPSBnZXRfcmEoaW5zdCk7Cj4gLQl1bG9uZyBy YiA9IGdldF9yYihpbnN0KTsKPiAtCj4gLQlzd2l0Y2ggKGdldF9vcChpbnN0KSkgewo+IC0JY2Fz ZSBPUF9MRlM6Cj4gLQljYXNlIE9QX0xGRDoKPiAtCWNhc2UgT1BfU1RGRDoKPiAtCWNhc2UgT1Bf U1RGUzoKPiAtCQlpZiAocmEpCj4gLQkJCWRhciA9IGt2bXBwY19nZXRfZ3ByKHZjcHUsIHJhKTsK PiAtCQlkYXIgKz0gKHMzMikoKHMxNilpbnN0KTsKPiAtCQlicmVhazsKPiAtCWNhc2UgMzE6Cj4g LQkJaWYgKHJhKQo+IC0JCQlkYXIgPSBrdm1wcGNfZ2V0X2dwcih2Y3B1LCByYSk7Cj4gLQkJZGFy ICs9IGt2bXBwY19nZXRfZ3ByKHZjcHUsIHJiKTsKPiAtCQlicmVhazsKPiAtCWRlZmF1bHQ6Cj4g LQkJcHJpbnRrKEtFUk5fSU5GTyAiS1ZNOiBVbmFsaWduZWQgaW5zdHJ1Y3Rpb24gMHgleFxuIiwg aW5zdCk7Cj4gLQkJYnJlYWs7Cj4gLQl9Cj4gLQo+IC0JcmV0dXJuIGRhcjsKPiAtI2VuZGlmCj4g ICB9Cj4gZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzX2ludGVycnVwdHMuUyBi L2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzX2ludGVycnVwdHMuUwo+IGluZGV4IGY0YmVjMmZjNTFh YS4uYzViODhkNTQ1MWI3IDEwMDY0NAo+IC0tLSBhL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzX2lu dGVycnVwdHMuUwo+ICsrKyBiL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzX2ludGVycnVwdHMuUwo+ IEBAIC0xNCw3ICsxNCw2IEBACj4gICAjaW5jbHVkZSA8YXNtL2V4Y2VwdGlvbi02NHMuaD4KPiAg ICNpbmNsdWRlIDxhc20vYXNtLWNvbXBhdC5oPgo+ICAgCj4gLSNpZiBkZWZpbmVkKENPTkZJR19Q UENfQk9PSzNTXzY0KQo+ICAgI2lmZGVmIENPTkZJR19QUEM2NF9FTEZfQUJJX1YyCj4gICAjZGVm aW5lIEZVTkMobmFtZSkgCQluYW1lCj4gICAjZWxzZQo+IEBAIC0yMiwxMiArMjEsNiBAQAo+ICAg I2VuZGlmCj4gICAjZGVmaW5lIEdFVF9TSEFET1dfVkNQVShyZWcpICAgIGFkZGkJcmVnLCByMTMs IFBBQ0FfU1ZDUFUKPiAgIAo+IC0jZWxpZiBkZWZpbmVkKENPTkZJR19QUENfQk9PSzNTXzMyKQo+ IC0jZGVmaW5lIEZVTkMobmFtZSkJCW5hbWUKPiAtI2RlZmluZSBHRVRfU0hBRE9XX1ZDUFUocmVn KQlsd3ogICAgIHJlZywgKFRIUkVBRCArIFRIUkVBRF9LVk1fU1ZDUFUpKHIyKQo+IC0KPiAtI2Vu ZGlmIC8qIENPTkZJR19QUENfQk9PSzNTXzY0ICovCj4gLQo+ICAgI2RlZmluZSBWQ1BVX0xPQURf TlZHUFJTKHZjcHUpIFwKPiAgIAlQUENfTEwJcjE0LCBWQ1BVX0dQUihSMTQpKHZjcHUpOyBcCj4g ICAJUFBDX0xMCXIxNSwgVkNQVV9HUFIoUjE1KSh2Y3B1KTsgXAo+IEBAIC04OSw3ICs4Miw2IEBA IGt2bV9zdGFydF9saWdodHdlaWdodDoKPiAgIAlub3AKPiAgIAlSRVNUX0dQUigzLCByMSkKPiAg IAo+IC0jaWZkZWYgQ09ORklHX1BQQ19CT09LM1NfNjQKPiAgIAkvKiBHZXQgdGhlIGRjYnozMiBm bGFnICovCj4gICAJUFBDX0xMCXIwLCBWQ1BVX0hGTEFHUyhyMykKPiAgIAlybGRpY2wJcjAsIHIw LCAwLCA2MwkJLyogcjMgJj0gMSAqLwo+IEBAIC0xMTgsNyArMTEwLDYgQEAgc3ByZzNfbGl0dGxl X2VuZGlhbjoKPiAgIAo+ICAgYWZ0ZXJfc3ByZzNfbG9hZDoKPiAgIAltdHNwcglTUFJOX1NQUkcz LCByNAo+IC0jZW5kaWYgLyogQ09ORklHX1BQQ19CT09LM1NfNjQgKi8KPiAgIAo+ICAgCVBQQ19M TAlyNCwgVkNQVV9TSEFET1dfTVNSKHIzKQkvKiBnZXQgc2hhZG93X21zciAqLwo+ICAgCj4gQEAg LTE1NywxNCArMTQ4LDEyIEBAIGFmdGVyX3NwcmczX2xvYWQ6Cj4gICAJYmwJRlVOQyhrdm1wcGNf Y29weV9mcm9tX3N2Y3B1KQo+ICAgCW5vcAo+ICAgCj4gLSNpZmRlZiBDT05GSUdfUFBDX0JPT0sz U182NAo+ICAgCS8qCj4gICAJICogUmVsb2FkIGtlcm5lbCBTUFJHMyB2YWx1ZS4KPiAgIAkgKiBO byBuZWVkIHRvIHNhdmUgZ3Vlc3QgdmFsdWUgYXMgdXNlcm1vZGUgY2FuJ3QgbW9kaWZ5IFNQUkcz Lgo+ICAgCSAqLwo+ICAgCWxkCXIzLCBQQUNBX1NQUkdfVkRTTyhyMTMpCj4gICAJbXRzcHIJU1BS Tl9TUFJHX1ZEU09fV1JJVEUsIHIzCj4gLSNlbmRpZiAvKiBDT05GSUdfUFBDX0JPT0szU182NCAq Lwo+ICAgCj4gICAJLyogUjcgPSB2Y3B1ICovCj4gICAJUFBDX0xMCXI3LCBHUFIzKHIxKQo+IGRp ZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szc19tbXVfaHB0ZS5jIGIvYXJjaC9wb3dl cnBjL2t2bS9ib29rM3NfbW11X2hwdGUuYwo+IGluZGV4IGQ5MDRlMTNlMDY5Yi4uOTE2MTRjYTlm OTY5IDEwMDY0NAo+IC0tLSBhL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzX21tdV9ocHRlLmMKPiAr KysgYi9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szc19tbXVfaHB0ZS5jCj4gQEAgLTQ1LDEzICs0NSwx MSBAQCBzdGF0aWMgaW5saW5lIHU2NCBrdm1wcGNfbW11X2hhc2hfdnB0ZV9sb25nKHU2NCB2cGFn ZSkKPiAgIAkJICAgICAgIEhQVEVHX0hBU0hfQklUU19WUFRFX0xPTkcpOwo+ICAgfQo+ICAgCj4g LSNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182NAo+ICAgc3RhdGljIGlubGluZSB1NjQga3ZtcHBj X21tdV9oYXNoX3ZwdGVfNjRrKHU2NCB2cGFnZSkKPiAgIHsKPiAgIAlyZXR1cm4gaGFzaF82NCgo dnBhZ2UgJiAweGZmZmZmZmZmMFVMTCkgPj4gNCwKPiAgIAkJICAgICAgIEhQVEVHX0hBU0hfQklU U19WUFRFXzY0Syk7Cj4gICB9Cj4gLSNlbmRpZgo+ICAgCj4gICB2b2lkIGt2bXBwY19tbXVfaHB0 ZV9jYWNoZV9tYXAoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3QgaHB0ZV9jYWNoZSAqcHRl KQo+ICAgewo+IEBAIC04MCwxMiArNzgsMTAgQEAgdm9pZCBrdm1wcGNfbW11X2hwdGVfY2FjaGVf bWFwKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGhwdGVfY2FjaGUgKnB0ZSkKPiAgIAlo bGlzdF9hZGRfaGVhZF9yY3UoJnB0ZS0+bGlzdF92cHRlX2xvbmcsCj4gICAJCQkgICAmdmNwdTNz LT5ocHRlX2hhc2hfdnB0ZV9sb25nW2luZGV4XSk7Cj4gICAKPiAtI2lmZGVmIENPTkZJR19QUENf Qk9PSzNTXzY0Cj4gICAJLyogQWRkIHRvIHZQVEVfNjRrIGxpc3QgKi8KPiAgIAlpbmRleCA9IGt2 bXBwY19tbXVfaGFzaF92cHRlXzY0ayhwdGUtPnB0ZS52cGFnZSk7Cj4gICAJaGxpc3RfYWRkX2hl YWRfcmN1KCZwdGUtPmxpc3RfdnB0ZV82NGssCj4gICAJCQkgICAmdmNwdTNzLT5ocHRlX2hhc2hf dnB0ZV82NGtbaW5kZXhdKTsKPiAtI2VuZGlmCj4gICAKPiAgIAl2Y3B1M3MtPmhwdGVfY2FjaGVf Y291bnQrKzsKPiAgIAo+IEBAIC0xMTMsOSArMTA5LDcgQEAgc3RhdGljIHZvaWQgaW52YWxpZGF0 ZV9wdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3QgaHB0ZV9jYWNoZSAqcHRlKQo+ICAg CWhsaXN0X2RlbF9pbml0X3JjdSgmcHRlLT5saXN0X3B0ZV9sb25nKTsKPiAgIAlobGlzdF9kZWxf aW5pdF9yY3UoJnB0ZS0+bGlzdF92cHRlKTsKPiAgIAlobGlzdF9kZWxfaW5pdF9yY3UoJnB0ZS0+ bGlzdF92cHRlX2xvbmcpOwo+IC0jaWZkZWYgQ09ORklHX1BQQ19CT09LM1NfNjQKPiAgIAlobGlz dF9kZWxfaW5pdF9yY3UoJnB0ZS0+bGlzdF92cHRlXzY0ayk7Cj4gLSNlbmRpZgo+ICAgCXZjcHUz cy0+aHB0ZV9jYWNoZV9jb3VudC0tOwo+ICAgCj4gICAJc3Bpbl91bmxvY2soJnZjcHUzcy0+bW11 X2xvY2spOwo+IEBAIC0yMjIsNyArMjE2LDYgQEAgc3RhdGljIHZvaWQga3ZtcHBjX21tdV9wdGVf dmZsdXNoX3Nob3J0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X3ZwKQo+ICAgCXJj dV9yZWFkX3VubG9jaygpOwo+ICAgfQo+ICAgCj4gLSNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182 NAo+ICAgLyogRmx1c2ggd2l0aCBtYXNrIDB4ZmZmZmZmZmYwICovCj4gICBzdGF0aWMgdm9pZCBr dm1wcGNfbW11X3B0ZV92Zmx1c2hfNjRrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0 X3ZwKQo+ICAgewo+IEBAIC0yNDMsNyArMjM2LDYgQEAgc3RhdGljIHZvaWQga3ZtcHBjX21tdV9w dGVfdmZsdXNoXzY0ayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBndWVzdF92cCkKPiAgIAo+ ICAgCXJjdV9yZWFkX3VubG9jaygpOwo+ICAgfQo+IC0jZW5kaWYKPiAgIAo+ICAgLyogRmx1c2gg d2l0aCBtYXNrIDB4ZmZmZmZmMDAwICovCj4gICBzdGF0aWMgdm9pZCBrdm1wcGNfbW11X3B0ZV92 Zmx1c2hfbG9uZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBndWVzdF92cCkKPiBAQCAtMjc1 LDExICsyNjcsOSBAQCB2b2lkIGt2bXBwY19tbXVfcHRlX3ZmbHVzaChzdHJ1Y3Qga3ZtX3ZjcHUg KnZjcHUsIHU2NCBndWVzdF92cCwgdTY0IHZwX21hc2spCj4gICAJY2FzZSAweGZmZmZmZmZmZlVM TDoKPiAgIAkJa3ZtcHBjX21tdV9wdGVfdmZsdXNoX3Nob3J0KHZjcHUsIGd1ZXN0X3ZwKTsKPiAg IAkJYnJlYWs7Cj4gLSNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182NAo+ICAgCWNhc2UgMHhmZmZm ZmZmZjBVTEw6Cj4gICAJCWt2bXBwY19tbXVfcHRlX3ZmbHVzaF82NGsodmNwdSwgZ3Vlc3RfdnAp Owo+ICAgCQlicmVhazsKPiAtI2VuZGlmCj4gICAJY2FzZSAweGZmZmZmZjAwMFVMTDoKPiAgIAkJ a3ZtcHBjX21tdV9wdGVfdmZsdXNoX2xvbmcodmNwdSwgZ3Vlc3RfdnApOwo+ICAgCQlicmVhazsK PiBAQCAtMzU1LDEwICszNDUsOCBAQCBpbnQga3ZtcHBjX21tdV9ocHRlX2luaXQoc3RydWN0IGt2 bV92Y3B1ICp2Y3B1KQo+ICAgCQkJCSAgQVJSQVlfU0laRSh2Y3B1M3MtPmhwdGVfaGFzaF92cHRl KSk7Cj4gICAJa3ZtcHBjX21tdV9ocHRlX2luaXRfaGFzaCh2Y3B1M3MtPmhwdGVfaGFzaF92cHRl X2xvbmcsCj4gICAJCQkJICBBUlJBWV9TSVpFKHZjcHUzcy0+aHB0ZV9oYXNoX3ZwdGVfbG9uZykp Owo+IC0jaWZkZWYgQ09ORklHX1BQQ19CT09LM1NfNjQKPiAgIAlrdm1wcGNfbW11X2hwdGVfaW5p dF9oYXNoKHZjcHUzcy0+aHB0ZV9oYXNoX3ZwdGVfNjRrLAo+ICAgCQkJCSAgQVJSQVlfU0laRSh2 Y3B1M3MtPmhwdGVfaGFzaF92cHRlXzY0aykpOwo+IC0jZW5kaWYKPiAgIAo+ICAgCXNwaW5fbG9j a19pbml0KCZ2Y3B1M3MtPm1tdV9sb2NrKTsKPiAgIAo+IGRpZmYgLS1naXQgYS9hcmNoL3Bvd2Vy cGMva3ZtL2Jvb2szc19wci5jIGIvYXJjaC9wb3dlcnBjL2t2bS9ib29rM3NfcHIuYwo+IGluZGV4 IDgzYmNkYzgwY2U1MS4uMzY3ODVhMDJiOWRhIDEwMDY0NAo+IC0tLSBhL2FyY2gvcG93ZXJwYy9r dm0vYm9vazNzX3ByLmMKPiArKysgYi9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szc19wci5jCj4gQEAg LTUyLDE3ICs1Miw3IEBACj4gICAKPiAgIHN0YXRpYyBpbnQga3ZtcHBjX2hhbmRsZV9leHQoc3Ry dWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBpbnQgZXhpdF9uciwKPiAgIAkJCSAgICAgdWxv bmcgbXNyKTsKPiAtI2lmZGVmIENPTkZJR19QUENfQk9PSzNTXzY0Cj4gICBzdGF0aWMgaW50IGt2 bXBwY19oYW5kbGVfZmFjKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdWxvbmcgZmFjKTsKPiAtI2Vu ZGlmCj4gLQo+IC0vKiBTb21lIGNvbXBhdGliaWxpdHkgZGVmaW5lcyAqLwo+IC0jaWZkZWYgQ09O RklHX1BQQ19CT09LM1NfMzIKPiAtI2RlZmluZSBNU1JfVVNFUjMyIE1TUl9VU0VSCj4gLSNkZWZp bmUgTVNSX1VTRVI2NCBNU1JfVVNFUgo+IC0jZGVmaW5lIEhXX1BBR0VfU0laRSBQQUdFX1NJWkUK PiAtI2RlZmluZSBIUFRFX1JfTSAgIF9QQUdFX0NPSEVSRU5UCj4gLSNlbmRpZgo+ICAgCj4gICBz dGF0aWMgYm9vbCBrdm1wcGNfaXNfc3BsaXRfcmVhbChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCj4g ICB7Cj4gQEAgLTExNSwxMyArMTA1LDExIEBAIHN0YXRpYyB2b2lkIGt2bXBwY19pbmplY3RfaW50 ZXJydXB0X3ByKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IHZlYywgdTY0IHNycjFfCj4gICAJ bmV3X21zciA9IHZjcHUtPmFyY2guaW50cl9tc3I7Cj4gICAJbmV3X3BjID0gdG9fYm9vazNzKHZj cHUpLT5oaW9yICsgdmVjOwo+ICAgCj4gLSNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182NAo+ICAg CS8qIElmIHRyYW5zYWN0aW9uYWwsIGNoYW5nZSB0byBzdXNwZW5kIG1vZGUgb24gSVJRIGRlbGl2 ZXJ5ICovCj4gICAJaWYgKE1TUl9UTV9UUkFOU0FDVElPTkFMKG1zcikpCj4gICAJCW5ld19tc3Ig fD0gTVNSX1RTX1M7Cj4gICAJZWxzZQo+ICAgCQluZXdfbXNyIHw9IG1zciAmIE1TUl9UU19NQVNL Owo+IC0jZW5kaWYKPiAgIAo+ICAgCWt2bXBwY19zZXRfc3JyMCh2Y3B1LCBwYyk7Cj4gICAJa3Zt cHBjX3NldF9zcnIxKHZjcHUsIChtc3IgJiBTUlIxX01TUl9CSVRTKSB8IHNycjFfZmxhZ3MpOwo+ IEBAIC0xMzEsNyArMTE5LDYgQEAgc3RhdGljIHZvaWQga3ZtcHBjX2luamVjdF9pbnRlcnJ1cHRf cHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdmVjLCB1NjQgc3JyMV8KPiAgIAo+ICAgc3Rh dGljIHZvaWQga3ZtcHBjX2NvcmVfdmNwdV9sb2FkX3ByKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwg aW50IGNwdSkKPiAgIHsKPiAtI2lmZGVmIENPTkZJR19QUENfQk9PSzNTXzY0Cj4gICAJc3RydWN0 IGt2bXBwY19ib29rM3Nfc2hhZG93X3ZjcHUgKnN2Y3B1ID0gc3ZjcHVfZ2V0KHZjcHUpOwo+ICAg CW1lbWNweShzdmNwdS0+c2xiLCB0b19ib29rM3ModmNwdSktPnNsYl9zaGFkb3csIHNpemVvZihz dmNwdS0+c2xiKSk7Cj4gICAJc3ZjcHUtPnNsYl9tYXggPSB0b19ib29rM3ModmNwdSktPnNsYl9z aGFkb3dfbWF4Owo+IEBAIC0xNDUsMTIgKzEzMiw4IEBAIHN0YXRpYyB2b2lkIGt2bXBwY19jb3Jl X3ZjcHVfbG9hZF9wcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCBjcHUpCj4gICAJCWlmIChj cHVfaGFzX2ZlYXR1cmUoQ1BVX0ZUUl9BUkNIXzMwMCkgJiYgKGN1cnJlbnQtPnRocmVhZC5mc2Ny ICYgRlNDUl9TQ1YpKQo+ICAgCQkJbXRzcHIoU1BSTl9GU0NSLCBtZnNwcihTUFJOX0ZTQ1IpICYg fkZTQ1JfU0NWKTsKPiAgIAl9Cj4gLSNlbmRpZgo+ICAgCj4gICAJdmNwdS0+Y3B1ID0gc21wX3By b2Nlc3Nvcl9pZCgpOwo+IC0jaWZkZWYgQ09ORklHX1BQQ19CT09LM1NfMzIKPiAtCWN1cnJlbnQt PnRocmVhZC5rdm1fc2hhZG93X3ZjcHUgPSB2Y3B1LT5hcmNoLnNoYWRvd192Y3B1Owo+IC0jZW5k aWYKPiAgIAo+ICAgCWlmIChrdm1wcGNfaXNfc3BsaXRfcmVhbCh2Y3B1KSkKPiAgIAkJa3ZtcHBj X2ZpeHVwX3NwbGl0X3JlYWwodmNwdSk7Cj4gQEAgLTE2MCw3ICsxNDMsNiBAQCBzdGF0aWMgdm9p ZCBrdm1wcGNfY29yZV92Y3B1X2xvYWRfcHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgY3B1 KQo+ICAgCj4gICBzdGF0aWMgdm9pZCBrdm1wcGNfY29yZV92Y3B1X3B1dF9wcihzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUpCj4gICB7Cj4gLSNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182NAo+ICAgCXN0 cnVjdCBrdm1wcGNfYm9vazNzX3NoYWRvd192Y3B1ICpzdmNwdSA9IHN2Y3B1X2dldCh2Y3B1KTsK PiAgIAlpZiAoc3ZjcHUtPmluX3VzZSkgewo+ICAgCQlrdm1wcGNfY29weV9mcm9tX3N2Y3B1KHZj cHUpOwo+IEBAIC0xNzYsNyArMTU4LDYgQEAgc3RhdGljIHZvaWQga3ZtcHBjX2NvcmVfdmNwdV9w dXRfcHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQo+ICAgCQlpZiAoY3B1X2hhc19mZWF0dXJlKENQ VV9GVFJfQVJDSF8zMDApICYmIChjdXJyZW50LT50aHJlYWQuZnNjciAmIEZTQ1JfU0NWKSkKPiAg IAkJCW10c3ByKFNQUk5fRlNDUiwgbWZzcHIoU1BSTl9GU0NSKSB8IEZTQ1JfU0NWKTsKPiAgIAl9 Cj4gLSNlbmRpZgo+ICAgCj4gICAJaWYgKGt2bXBwY19pc19zcGxpdF9yZWFsKHZjcHUpKQo+ICAg CQlrdm1wcGNfdW5maXh1cF9zcGxpdF9yZWFsKHZjcHUpOwo+IEBAIC0yMTIsOSArMTkzLDcgQEAg dm9pZCBrdm1wcGNfY29weV90b19zdmNwdShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCj4gICAJc3Zj cHUtPmN0ciA9IHZjcHUtPmFyY2gucmVncy5jdHI7Cj4gICAJc3ZjcHUtPmxyICA9IHZjcHUtPmFy Y2gucmVncy5saW5rOwo+ICAgCXN2Y3B1LT5wYyAgPSB2Y3B1LT5hcmNoLnJlZ3MubmlwOwo+IC0j aWZkZWYgQ09ORklHX1BQQ19CT09LM1NfNjQKPiAgIAlzdmNwdS0+c2hhZG93X2ZzY3IgPSB2Y3B1 LT5hcmNoLnNoYWRvd19mc2NyOwo+IC0jZW5kaWYKPiAgIAkvKgo+ICAgCSAqIE5vdyBhbHNvIHNh dmUgdGhlIGN1cnJlbnQgdGltZSBiYXNlIHZhbHVlLiBXZSB1c2UgdGhpcwo+ICAgCSAqIHRvIGZp bmQgdGhlIGd1ZXN0IHB1cnIgYW5kIHNwdXJyIHZhbHVlLgo+IEBAIC0yNDUsOSArMjI0LDcgQEAg c3RhdGljIHZvaWQga3ZtcHBjX3JlY2FsY19zaGFkb3dfbXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNw dSkKPiAgIAkvKiBFeHRlcm5hbCBwcm92aWRlcnMgdGhlIGd1ZXN0IHJlc2VydmVkICovCj4gICAJ c21zciB8PSAoZ3Vlc3RfbXNyICYgdmNwdS0+YXJjaC5ndWVzdF9vd25lZF9leHQpOwo+ICAgCS8q IDY0LWJpdCBQcm9jZXNzIE1TUiB2YWx1ZXMgKi8KPiAtI2lmZGVmIENPTkZJR19QUENfQk9PSzNT XzY0Cj4gICAJc21zciB8PSBNU1JfSFY7Cj4gLSNlbmRpZgo+ICAgI2lmZGVmIENPTkZJR19QUENf VFJBTlNBQ1RJT05BTF9NRU0KPiAgIAkvKgo+ICAgCSAqIGluIGd1ZXN0IHByaXZpbGVnZWQgc3Rh dGUsIHdlIHdhbnQgdG8gZmFpbCBhbGwgVE0gdHJhbnNhY3Rpb25zLgo+IEBAIC0yOTgsOSArMjc1 LDcgQEAgdm9pZCBrdm1wcGNfY29weV9mcm9tX3N2Y3B1KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkK PiAgIAl2Y3B1LT5hcmNoLmZhdWx0X2RhciAgID0gc3ZjcHUtPmZhdWx0X2RhcjsKPiAgIAl2Y3B1 LT5hcmNoLmZhdWx0X2RzaXNyID0gc3ZjcHUtPmZhdWx0X2RzaXNyOwo+ICAgCXZjcHUtPmFyY2gu bGFzdF9pbnN0ICAgPSBzdmNwdS0+bGFzdF9pbnN0Owo+IC0jaWZkZWYgQ09ORklHX1BQQ19CT09L M1NfNjQKPiAgIAl2Y3B1LT5hcmNoLnNoYWRvd19mc2NyID0gc3ZjcHUtPnNoYWRvd19mc2NyOwo+ IC0jZW5kaWYKPiAgIAkvKgo+ICAgCSAqIFVwZGF0ZSBwdXJyIGFuZCBzcHVyciB1c2luZyB0aW1l IGJhc2Ugb24gZXhpdC4KPiAgIAkgKi8KPiBAQCAtNTUzLDcgKzUyOCw2IEBAIHN0YXRpYyB2b2lk IGt2bXBwY19zZXRfcHZyX3ByKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTMyIHB2cikKPiAgIAo+ ICAgCXZjcHUtPmFyY2guaGZsYWdzICY9IH5CT09LM1NfSEZMQUdfU0xCOwo+ICAgCXZjcHUtPmFy Y2gucHZyID0gcHZyOwo+IC0jaWZkZWYgQ09ORklHX1BQQ19CT09LM1NfNjQKPiAgIAlpZiAoKHB2 ciA+PSAweDMzMDAwMCkgJiYgKHB2ciA8IDB4NzAzMzAwMDApKSB7Cj4gICAJCWt2bXBwY19tbXVf Ym9vazNzXzY0X2luaXQodmNwdSk7Cj4gICAJCWlmICghdG9fYm9vazNzKHZjcHUpLT5oaW9yX2V4 cGxpY2l0KQo+IEBAIC01NjEsNyArNTM1LDYgQEAgc3RhdGljIHZvaWQga3ZtcHBjX3NldF9wdnJf cHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1MzIgcHZyKQo+ICAgCQl0b19ib29rM3ModmNwdSkt Pm1zcl9tYXNrID0gMHhmZmZmZmZmZmZmZmZmZmZmVUxMOwo+ICAgCQl2Y3B1LT5hcmNoLmNwdV90 eXBlID0gS1ZNX0NQVV8zU182NDsKPiAgIAl9IGVsc2UKPiAtI2VuZGlmCj4gICAJewo+ICAgCQlr dm1wcGNfbW11X2Jvb2szc18zMl9pbml0KHZjcHUpOwo+ICAgCQlpZiAoIXRvX2Jvb2szcyh2Y3B1 KS0+aGlvcl9leHBsaWNpdCkKPiBAQCAtNjA1LDExICs1NzgsNiBAQCBzdGF0aWMgdm9pZCBrdm1w cGNfc2V0X3B2cl9wcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHUzMiBwdnIpCj4gICAJCWJyZWFr Owo+ICAgCX0KPiAgIAo+IC0jaWZkZWYgQ09ORklHX1BQQ19CT09LM1NfMzIKPiAtCS8qIDMyIGJp dCBCb29rM1MgYWx3YXlzIGhhcyAzMiBieXRlIGRjYnogKi8KPiAtCXZjcHUtPmFyY2guaGZsYWdz IHw9IEJPT0szU19IRkxBR19EQ0JaMzI7Cj4gLSNlbmRpZgo+IC0KPiAgIAkvKiBPbiBzb21lIENQ VXMgd2UgY2FuIGV4ZWN1dGUgcGFpcmVkIHNpbmdsZSBvcGVyYXRpb25zIG5hdGl2ZWx5ICovCj4g ICAJYXNtICggIm1mcHZyICUwIiA6ICI9ciIoaG9zdF9wdnIpKTsKPiAgIAlzd2l0Y2ggKGhvc3Rf cHZyKSB7Cj4gQEAgLTgzOSw3ICs4MDcsNiBAQCB2b2lkIGt2bXBwY19naXZldXBfZXh0KHN0cnVj dCBrdm1fdmNwdSAqdmNwdSwgdWxvbmcgbXNyKQo+ICAgLyogR2l2ZSB1cCBmYWNpbGl0eSAoVEFS IC8gRUJCIC8gRFNDUikgKi8KPiAgIHZvaWQga3ZtcHBjX2dpdmV1cF9mYWMoc3RydWN0IGt2bV92 Y3B1ICp2Y3B1LCB1bG9uZyBmYWMpCj4gICB7Cj4gLSNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182 NAo+ICAgCWlmICghKHZjcHUtPmFyY2guc2hhZG93X2ZzY3IgJiAoMVVMTCA8PCBmYWMpKSkgewo+ ICAgCQkvKiBGYWNpbGl0eSBub3QgYXZhaWxhYmxlIHRvIHRoZSBndWVzdCwgaWdub3JlIGdpdmV1 cCByZXF1ZXN0Ki8KPiAgIAkJcmV0dXJuOwo+IEBAIC04NTIsNyArODE5LDYgQEAgdm9pZCBrdm1w cGNfZ2l2ZXVwX2ZhYyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVsb25nIGZhYykKPiAgIAkJdmNw dS0+YXJjaC5zaGFkb3dfZnNjciAmPSB+RlNDUl9UQVI7Cj4gICAJCWJyZWFrOwo+ICAgCX0KPiAt I2VuZGlmCj4gICB9Cj4gICAKPiAgIC8qIEhhbmRsZSBleHRlcm5hbCBwcm92aWRlcnMgKEZQVSwg QWx0aXZlYywgVlNYKSAqLwo+IEBAIC05NTQsOCArOTIwLDYgQEAgc3RhdGljIHZvaWQga3ZtcHBj X2hhbmRsZV9sb3N0X2V4dChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCj4gICAJY3VycmVudC0+dGhy ZWFkLnJlZ3MtPm1zciB8PSBsb3N0X2V4dDsKPiAgIH0KPiAgIAo+IC0jaWZkZWYgQ09ORklHX1BQ Q19CT09LM1NfNjQKPiAtCj4gICB2b2lkIGt2bXBwY190cmlnZ2VyX2ZhY19pbnRlcnJ1cHQoc3Ry dWN0IGt2bV92Y3B1ICp2Y3B1LCB1bG9uZyBmYWMpCj4gICB7Cj4gICAJLyogSW5qZWN0IHRoZSBJ bnRlcnJ1cHQgQ2F1c2UgZmllbGQgYW5kIHRyaWdnZXIgYSBndWVzdCBpbnRlcnJ1cHQgKi8KPiBA QCAtMTA1MCw3ICsxMDE0LDYgQEAgdm9pZCBrdm1wcGNfc2V0X2ZzY3Ioc3RydWN0IGt2bV92Y3B1 ICp2Y3B1LCB1NjQgZnNjcikKPiAgIAo+ICAgCXZjcHUtPmFyY2guZnNjciA9IGZzY3I7Cj4gICB9 Cj4gLSNlbmRpZgo+ICAgCj4gICBzdGF0aWMgdm9pZCBrdm1wcGNfc2V0dXBfZGVidWcoc3RydWN0 IGt2bV92Y3B1ICp2Y3B1KQo+ICAgewo+IEBAIC0xMTU3LDI0ICsxMTIwLDYgQEAgaW50IGt2bXBw Y19oYW5kbGVfZXhpdF9wcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGludCBleGl0 X25yKQo+ICAgCQlpZiAoa3ZtcHBjX2lzX3NwbGl0X3JlYWwodmNwdSkpCj4gICAJCQlrdm1wcGNf Zml4dXBfc3BsaXRfcmVhbCh2Y3B1KTsKPiAgIAo+IC0jaWZkZWYgQ09ORklHX1BQQ19CT09LM1Nf MzIKPiAtCQkvKiBXZSBzZXQgc2VnbWVudHMgYXMgdW51c2VkIHNlZ21lbnRzIHdoZW4gaW52YWxp ZGF0aW5nIHRoZW0uIFNvCj4gLQkJICogdHJlYXQgdGhlIHJlc3BlY3RpdmUgZmF1bHQgYXMgc2Vn bWVudCBmYXVsdC4gKi8KPiAtCQl7Cj4gLQkJCXN0cnVjdCBrdm1wcGNfYm9vazNzX3NoYWRvd192 Y3B1ICpzdmNwdTsKPiAtCQkJdTMyIHNyOwo+IC0KPiAtCQkJc3ZjcHUgPSBzdmNwdV9nZXQodmNw dSk7Cj4gLQkJCXNyID0gc3ZjcHUtPnNyW2t2bXBwY19nZXRfcGModmNwdSkgPj4gU0lEX1NISUZU XTsKPiAtCQkJc3ZjcHVfcHV0KHN2Y3B1KTsKPiAtCQkJaWYgKHNyID09IFNSX0lOVkFMSUQpIHsK PiAtCQkJCWt2bXBwY19tbXVfbWFwX3NlZ21lbnQodmNwdSwga3ZtcHBjX2dldF9wYyh2Y3B1KSk7 Cj4gLQkJCQlyID0gUkVTVU1FX0dVRVNUOwo+IC0JCQkJYnJlYWs7Cj4gLQkJCX0KPiAtCQl9Cj4g LSNlbmRpZgo+IC0KPiAgIAkJLyogb25seSBjYXJlIGFib3V0IFBURUcgbm90IGZvdW5kIGVycm9y cywgYnV0IGxlYXZlIE5YIGFsb25lICovCj4gICAJCWlmIChzaGFkb3dfc3JyMSAmIDB4NDAwMDAw MDApIHsKPiAgIAkJCWludCBpZHggPSBzcmN1X3JlYWRfbG9jaygmdmNwdS0+a3ZtLT5zcmN1KTsK PiBAQCAtMTIwMywyNCArMTE0OCw2IEBAIGludCBrdm1wcGNfaGFuZGxlX2V4aXRfcHIoc3RydWN0 IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBpbnQgZXhpdF9ucikKPiAgIAkJdTMyIGZhdWx0X2Rz aXNyID0gdmNwdS0+YXJjaC5mYXVsdF9kc2lzcjsKPiAgIAkJdmNwdS0+c3RhdC5wZl9zdG9yYWdl Kys7Cj4gICAKPiAtI2lmZGVmIENPTkZJR19QUENfQk9PSzNTXzMyCj4gLQkJLyogV2Ugc2V0IHNl Z21lbnRzIGFzIHVudXNlZCBzZWdtZW50cyB3aGVuIGludmFsaWRhdGluZyB0aGVtLiBTbwo+IC0J CSAqIHRyZWF0IHRoZSByZXNwZWN0aXZlIGZhdWx0IGFzIHNlZ21lbnQgZmF1bHQuICovCj4gLQkJ ewo+IC0JCQlzdHJ1Y3Qga3ZtcHBjX2Jvb2szc19zaGFkb3dfdmNwdSAqc3ZjcHU7Cj4gLQkJCXUz MiBzcjsKPiAtCj4gLQkJCXN2Y3B1ID0gc3ZjcHVfZ2V0KHZjcHUpOwo+IC0JCQlzciA9IHN2Y3B1 LT5zcltkYXIgPj4gU0lEX1NISUZUXTsKPiAtCQkJc3ZjcHVfcHV0KHN2Y3B1KTsKPiAtCQkJaWYg KHNyID09IFNSX0lOVkFMSUQpIHsKPiAtCQkJCWt2bXBwY19tbXVfbWFwX3NlZ21lbnQodmNwdSwg ZGFyKTsKPiAtCQkJCXIgPSBSRVNVTUVfR1VFU1Q7Cj4gLQkJCQlicmVhazsKPiAtCQkJfQo+IC0J CX0KPiAtI2VuZGlmCj4gLQo+ICAgCQkvKgo+ICAgCQkgKiBXZSBuZWVkIHRvIGhhbmRsZSBtaXNz aW5nIHNoYWRvdyBQVEVzLCBhbmQKPiAgIAkJICogcHJvdGVjdGlvbiBmYXVsdHMgZHVlIHRvIHVz IG1hcHBpbmcgYSBwYWdlIHJlYWQtb25seQo+IEBAIC0xMjk3LDEyICsxMjI0LDEwIEBAIGludCBr dm1wcGNfaGFuZGxlX2V4aXRfcHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBpbnQg ZXhpdF9ucikKPiAgIAkJCXVsb25nIGNtZCA9IGt2bXBwY19nZXRfZ3ByKHZjcHUsIDMpOwo+ICAg CQkJaW50IGk7Cj4gICAKPiAtI2lmZGVmIENPTkZJR19QUENfQk9PSzNTXzY0Cj4gICAJCQlpZiAo a3ZtcHBjX2hfcHIodmNwdSwgY21kKSA9PSBFTVVMQVRFX0RPTkUpIHsKPiAgIAkJCQlyID0gUkVT VU1FX0dVRVNUOwo+ICAgCQkJCWJyZWFrOwo+ICAgCQkJfQo+IC0jZW5kaWYKPiAgIAo+ICAgCQkJ cnVuLT5wYXByX2hjYWxsLm5yID0gY21kOwo+ICAgCQkJZm9yIChpID0gMDsgaSA8IDk7ICsraSkg ewo+IEBAIC0xMzk1LDExICsxMzIwLDkgQEAgaW50IGt2bXBwY19oYW5kbGVfZXhpdF9wcihzdHJ1 Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGludCBleGl0X25yKQo+ICAgCQlyID0gUkVTVU1F X0dVRVNUOwo+ICAgCQlicmVhazsKPiAgIAl9Cj4gLSNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182 NAo+ICAgCWNhc2UgQk9PSzNTX0lOVEVSUlVQVF9GQUNfVU5BVkFJTDoKPiAgIAkJciA9IGt2bXBw Y19oYW5kbGVfZmFjKHZjcHUsIHZjcHUtPmFyY2guc2hhZG93X2ZzY3IgPj4gNTYpOwo+ICAgCQli cmVhazsKPiAtI2VuZGlmCj4gICAJY2FzZSBCT09LM1NfSU5URVJSVVBUX01BQ0hJTkVfQ0hFQ0s6 Cj4gICAJCWt2bXBwY19ib29rM3NfcXVldWVfaXJxcHJpbyh2Y3B1LCBleGl0X25yKTsKPiAgIAkJ ciA9IFJFU1VNRV9HVUVTVDsKPiBAQCAtMTQ4OCw3ICsxNDExLDYgQEAgc3RhdGljIGludCBrdm1f YXJjaF92Y3B1X2lvY3RsX3NldF9zcmVnc19wcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCj4gICAJ a3ZtcHBjX3NldF9wdnJfcHIodmNwdSwgc3JlZ3MtPnB2cik7Cj4gICAKPiAgIAl2Y3B1M3MtPnNk cjEgPSBzcmVncy0+dS5zLnNkcjE7Cj4gLSNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182NAo+ICAg CWlmICh2Y3B1LT5hcmNoLmhmbGFncyAmIEJPT0szU19IRkxBR19TTEIpIHsKPiAgIAkJLyogRmx1 c2ggYWxsIFNMQiBlbnRyaWVzICovCj4gICAJCXZjcHUtPmFyY2gubW11LnNsYm10ZSh2Y3B1LCAw LCAwKTsKPiBAQCAtMTUwMSw5ICsxNDIzLDcgQEAgc3RhdGljIGludCBrdm1fYXJjaF92Y3B1X2lv Y3RsX3NldF9zcmVnc19wcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCj4gICAJCQlpZiAocmIgJiBT TEJfRVNJRF9WKQo+ICAgCQkJCXZjcHUtPmFyY2gubW11LnNsYm10ZSh2Y3B1LCBycywgcmIpOwo+ ICAgCQl9Cj4gLQl9IGVsc2UKPiAtI2VuZGlmCj4gLQl7Cj4gKwl9IGVsc2Ugewo+ICAgCQlmb3Ig KGkgPSAwOyBpIDwgMTY7IGkrKykgewo+ICAgCQkJdmNwdS0+YXJjaC5tbXUubXRzcmluKHZjcHUs IGksIHNyZWdzLT51LnMucHBjMzIuc3JbaV0pOwo+ICAgCQl9Cj4gQEAgLTE3MzcsMTggKzE2NTcs MTAgQEAgc3RhdGljIGludCBrdm1wcGNfY29yZV92Y3B1X2NyZWF0ZV9wcihzdHJ1Y3Qga3ZtX3Zj cHUgKnZjcHUpCj4gICAJCWdvdG8gb3V0Owo+ICAgCXZjcHUtPmFyY2guYm9vazNzID0gdmNwdV9i b29rM3M7Cj4gICAKPiAtI2lmZGVmIENPTkZJR19LVk1fQk9PSzNTXzMyX0hBTkRMRVIKPiAtCXZj cHUtPmFyY2guc2hhZG93X3ZjcHUgPQo+IC0JCWt6YWxsb2Moc2l6ZW9mKCp2Y3B1LT5hcmNoLnNo YWRvd192Y3B1KSwgR0ZQX0tFUk5FTCk7Cj4gLQlpZiAoIXZjcHUtPmFyY2guc2hhZG93X3ZjcHUp Cj4gLQkJZ290byBmcmVlX3ZjcHUzczsKPiAtI2VuZGlmCj4gLQo+ICAgCXAgPSBfX2dldF9mcmVl X3BhZ2UoR0ZQX0tFUk5FTHxfX0dGUF9aRVJPKTsKPiAgIAlpZiAoIXApCj4gICAJCWdvdG8gZnJl ZV9zaGFkb3dfdmNwdTsKPiAgIAl2Y3B1LT5hcmNoLnNoYXJlZCA9ICh2b2lkICopcDsKPiAtI2lm ZGVmIENPTkZJR19QUENfQk9PSzNTXzY0Cj4gICAJLyogQWx3YXlzIHN0YXJ0IHRoZSBzaGFyZWQg c3RydWN0IGluIG5hdGl2ZSBlbmRpYW4gbW9kZSAqLwo+ICAgI2lmZGVmIF9fQklHX0VORElBTl9f Cj4gICAgICAgICAgIHZjcHUtPmFyY2guc2hhcmVkX2JpZ19lbmRpYW4gPSB0cnVlOwo+IEBAIC0x NzY1LDExICsxNjc3LDYgQEAgc3RhdGljIGludCBrdm1wcGNfY29yZV92Y3B1X2NyZWF0ZV9wcihz dHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCj4gICAJaWYgKG1tdV9oYXNfZmVhdHVyZShNTVVfRlRSXzFU X1NFR01FTlQpKQo+ICAgCQl2Y3B1LT5hcmNoLnB2ciA9IG1mc3ByKFNQUk5fUFZSKTsKPiAgIAl2 Y3B1LT5hcmNoLmludHJfbXNyID0gTVNSX1NGOwo+IC0jZWxzZQo+IC0JLyogZGVmYXVsdCB0byBi b29rM3NfMzIgKDc1MCkgKi8KPiAtCXZjcHUtPmFyY2gucHZyID0gMHg4NDIwMjsKPiAtCXZjcHUt PmFyY2guaW50cl9tc3IgPSAwOwo+IC0jZW5kaWYKPiAgIAlrdm1wcGNfc2V0X3B2cl9wcih2Y3B1 LCB2Y3B1LT5hcmNoLnB2cik7Cj4gICAJdmNwdS0+YXJjaC5zbGJfbnIgPSA2NDsKPiAgIAo+IEBA IC0xNzg0LDEwICsxNjkxLDYgQEAgc3RhdGljIGludCBrdm1wcGNfY29yZV92Y3B1X2NyZWF0ZV9w cihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCj4gICBmcmVlX3NoYXJlZF9wYWdlOgo+ICAgCWZyZWVf cGFnZSgodW5zaWduZWQgbG9uZyl2Y3B1LT5hcmNoLnNoYXJlZCk7Cj4gICBmcmVlX3NoYWRvd192 Y3B1Ogo+IC0jaWZkZWYgQ09ORklHX0tWTV9CT09LM1NfMzJfSEFORExFUgo+IC0Ja2ZyZWUodmNw dS0+YXJjaC5zaGFkb3dfdmNwdSk7Cj4gLWZyZWVfdmNwdTNzOgo+IC0jZW5kaWYKPiAgIAl2ZnJl ZSh2Y3B1X2Jvb2szcyk7Cj4gICBvdXQ6Cj4gICAJcmV0dXJuIGVycjsKPiBAQCAtMTc5OSw5ICsx NzAyLDYgQEAgc3RhdGljIHZvaWQga3ZtcHBjX2NvcmVfdmNwdV9mcmVlX3ByKHN0cnVjdCBrdm1f dmNwdSAqdmNwdSkKPiAgIAo+ICAgCWt2bXBwY19tbXVfZGVzdHJveV9wcih2Y3B1KTsKPiAgIAlm cmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpdmNwdS0+YXJjaC5zaGFyZWQgJiBQQUdFX01BU0spOwo+ IC0jaWZkZWYgQ09ORklHX0tWTV9CT09LM1NfMzJfSEFORExFUgo+IC0Ja2ZyZWUodmNwdS0+YXJj aC5zaGFkb3dfdmNwdSk7Cj4gLSNlbmRpZgo+ICAgCXZmcmVlKHZjcHVfYm9vazNzKTsKPiAgIH0K PiAgIAo+IEBAIC0xOTIxLDcgKzE4MjEsNiBAQCBzdGF0aWMgdm9pZCBrdm1wcGNfY29yZV9mcmVl X21lbXNsb3RfcHIoc3RydWN0IGt2bV9tZW1vcnlfc2xvdCAqc2xvdCkKPiAgIAlyZXR1cm47Cj4g ICB9Cj4gICAKPiAtI2lmZGVmIENPTkZJR19QUEM2NAo+ICAgc3RhdGljIGludCBrdm1fdm1faW9j dGxfZ2V0X3NtbXVfaW5mb19wcihzdHJ1Y3Qga3ZtICprdm0sCj4gICAJCQkJCSBzdHJ1Y3Qga3Zt X3BwY19zbW11X2luZm8gKmluZm8pCj4gICB7Cj4gQEAgLTE5NzgsMTYgKzE4NzcsNiBAQCBzdGF0 aWMgaW50IGt2bV9jb25maWd1cmVfbW11X3ByKHN0cnVjdCBrdm0gKmt2bSwgc3RydWN0IGt2bV9w cGNfbW11djNfY2ZnICpjZmcpCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiAtI2Vsc2UKPiAt c3RhdGljIGludCBrdm1fdm1faW9jdGxfZ2V0X3NtbXVfaW5mb19wcihzdHJ1Y3Qga3ZtICprdm0s Cj4gLQkJCQkJIHN0cnVjdCBrdm1fcHBjX3NtbXVfaW5mbyAqaW5mbykKPiAtewo+IC0JLyogV2Ug c2hvdWxkIG5vdCBnZXQgY2FsbGVkICovCj4gLQlCVUcoKTsKPiAtCXJldHVybiAwOwo+IC19Cj4g LSNlbmRpZiAvKiBDT05GSUdfUFBDNjQgKi8KPiAtCj4gICBzdGF0aWMgdW5zaWduZWQgaW50IGt2 bV9nbG9iYWxfdXNlcl9jb3VudCA9IDA7Cj4gICBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGt2bV9n bG9iYWxfdXNlcl9jb3VudF9sb2NrKTsKPiAgIAo+IEBAIC0xOTk1LDEwICsxODg0LDggQEAgc3Rh dGljIGludCBrdm1wcGNfY29yZV9pbml0X3ZtX3ByKHN0cnVjdCBrdm0gKmt2bSkKPiAgIHsKPiAg IAltdXRleF9pbml0KCZrdm0tPmFyY2guaHB0X211dGV4KTsKPiAgIAo+IC0jaWZkZWYgQ09ORklH X1BQQ19CT09LM1NfNjQKPiAgIAkvKiBTdGFydCBvdXQgd2l0aCB0aGUgZGVmYXVsdCBzZXQgb2Yg aGNhbGxzIGVuYWJsZWQgKi8KPiAgIAlrdm1wcGNfcHJfaW5pdF9kZWZhdWx0X2hjYWxscyhrdm0p Owo+IC0jZW5kaWYKPiAgIAo+ICAgCWlmIChmaXJtd2FyZV9oYXNfZmVhdHVyZShGV19GRUFUVVJF X1NFVF9NT0RFKSkgewo+ICAgCQlzcGluX2xvY2soJmt2bV9nbG9iYWxfdXNlcl9jb3VudF9sb2Nr KTsKPiBAQCAtMjAxMSw5ICsxODk4LDcgQEAgc3RhdGljIGludCBrdm1wcGNfY29yZV9pbml0X3Zt X3ByKHN0cnVjdCBrdm0gKmt2bSkKPiAgIAo+ICAgc3RhdGljIHZvaWQga3ZtcHBjX2NvcmVfZGVz dHJveV92bV9wcihzdHJ1Y3Qga3ZtICprdm0pCj4gICB7Cj4gLSNpZmRlZiBDT05GSUdfUFBDNjQK PiAgIAlXQVJOX09OKCFsaXN0X2VtcHR5KCZrdm0tPmFyY2guc3BhcHJfdGNlX3RhYmxlcykpOwo+ IC0jZW5kaWYKPiAgIAo+ICAgCWlmIChmaXJtd2FyZV9oYXNfZmVhdHVyZShGV19GRUFUVVJFX1NF VF9NT0RFKSkgewo+ICAgCQlzcGluX2xvY2soJmt2bV9nbG9iYWxfdXNlcl9jb3VudF9sb2NrKTsK PiBAQCAtMjA3MiwxMCArMTk1Nyw4IEBAIHN0YXRpYyBzdHJ1Y3Qga3ZtcHBjX29wcyBrdm1fb3Bz X3ByID0gewo+ICAgCS5lbXVsYXRlX21mc3ByID0ga3ZtcHBjX2NvcmVfZW11bGF0ZV9tZnNwcl9w ciwKPiAgIAkuZmFzdF92Y3B1X2tpY2sgPSBrdm1fdmNwdV9raWNrLAo+ICAgCS5hcmNoX3ZtX2lv Y3RsICA9IGt2bV9hcmNoX3ZtX2lvY3RsX3ByLAo+IC0jaWZkZWYgQ09ORklHX1BQQ19CT09LM1Nf NjQKPiAgIAkuaGNhbGxfaW1wbGVtZW50ZWQgPSBrdm1wcGNfaGNhbGxfaW1wbF9wciwKPiAgIAku Y29uZmlndXJlX21tdSA9IGt2bV9jb25maWd1cmVfbW11X3ByLAo+IC0jZW5kaWYKPiAgIAkuZ2l2 ZXVwX2V4dCA9IGt2bXBwY19naXZldXBfZXh0LAo+ICAgfTsKPiAgIAo+IEBAIC0yMTA0LDggKzE5 ODcsNiBAQCB2b2lkIGt2bXBwY19ib29rM3NfZXhpdF9wcih2b2lkKQo+ICAgLyoKPiAgICAqIFdl IG9ubHkgc3VwcG9ydCBzZXBhcmF0ZSBtb2R1bGVzIGZvciBib29rM3MgNjQKPiAgICAqLwo+IC0j aWZkZWYgQ09ORklHX1BQQ19CT09LM1NfNjQKPiAtCj4gICBtb2R1bGVfaW5pdChrdm1wcGNfYm9v azNzX2luaXRfcHIpOwo+ICAgbW9kdWxlX2V4aXQoa3ZtcHBjX2Jvb2szc19leGl0X3ByKTsKPiAg IAo+IEBAIC0yMTEzLDQgKzE5OTQsMyBAQCBNT0RVTEVfREVTQ1JJUFRJT04oIktWTSBvbiBCb29r M1Mgd2l0aG91dCB1c2luZyBoeXBlcnZpc29yIG1vZGUiKTsKPiAgIE1PRFVMRV9MSUNFTlNFKCJH UEwiKTsKPiAgIE1PRFVMRV9BTElBU19NSVNDREVWKEtWTV9NSU5PUik7Cj4gICBNT0RVTEVfQUxJ QVMoImRldm5hbWU6a3ZtIik7Cj4gLSNlbmRpZgo+IGRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMv a3ZtL2Jvb2szc19ybWhhbmRsZXJzLlMgYi9hcmNoL3Bvd2VycGMva3ZtL2Jvb2szc19ybWhhbmRs ZXJzLlMKPiBpbmRleCAwYTU1N2ZmY2E5ZmUuLmVmMDFlOGVkMmE5NyAxMDA2NDQKPiAtLS0gYS9h cmNoL3Bvd2VycGMva3ZtL2Jvb2szc19ybWhhbmRsZXJzLlMKPiArKysgYi9hcmNoL3Bvd2VycGMv a3ZtL2Jvb2szc19ybWhhbmRsZXJzLlMKPiBAQCAtMTQsOSArMTQsNyBAQAo+ICAgI2luY2x1ZGUg PGFzbS9hc20tb2Zmc2V0cy5oPgo+ICAgI2luY2x1ZGUgPGFzbS9hc20tY29tcGF0Lmg+Cj4gICAK PiAtI2lmZGVmIENPTkZJR19QUENfQk9PSzNTXzY0Cj4gICAjaW5jbHVkZSA8YXNtL2V4Y2VwdGlv bi02NHMuaD4KPiAtI2VuZGlmCj4gICAKPiAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICAgICog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqCj4gQEAgLTI0LDEyMCArMjIsMTIgQEAKPiAgICAqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKgo+ICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCj4gICAKPiAtI2lmIGRlZmluZWQo Q09ORklHX1BQQ19CT09LM1NfNjQpCj4gLQo+ICAgI2lmZGVmIENPTkZJR19QUEM2NF9FTEZfQUJJ X1YyCj4gICAjZGVmaW5lIEZVTkMobmFtZSkgCQluYW1lCj4gICAjZWxzZQo+ICAgI2RlZmluZSBG VU5DKG5hbWUpIAkJR0xVRSguLG5hbWUpCj4gICAjZW5kaWYKPiAgIAo+IC0jZWxpZiBkZWZpbmVk KENPTkZJR19QUENfQk9PSzNTXzMyKQo+IC0KPiAtI2RlZmluZSBGVU5DKG5hbWUpCQluYW1lCj4g LQo+IC0jZGVmaW5lIFJGSV9UT19LRVJORUwJcmZpCj4gLSNkZWZpbmUgUkZJX1RPX0dVRVNUCXJm aQo+IC0KPiAtLm1hY3JvIElOVEVSUlVQVF9UUkFNUE9MSU5FIGludG5vCj4gLQo+IC0uZ2xvYmFs IGt2bXBwY190cmFtcG9saW5lX1xpbnRubwo+IC1rdm1wcGNfdHJhbXBvbGluZV9caW50bm86Cj4g LQo+IC0JbXRzcHIJU1BSTl9TUFJHX1NDUkFUQ0gwLCByMTMJCS8qIFNhdmUgcjEzICovCj4gLQo+ IC0JLyoKPiAtCSAqIEZpcnN0IHRoaW5nIHRvIGRvIGlzIHRvIGZpbmQgb3V0IGlmIHdlJ3JlIGNv bWluZwo+IC0JICogZnJvbSBhIEtWTSBndWVzdCBvciBhIExpbnV4IHByb2Nlc3MuCj4gLQkgKgo+ IC0JICogVG8gZGlzdGluZ3Vpc2gsIHdlIGNoZWNrIGEgbWFnaWMgYnl0ZSBpbiB0aGUgUEFDQS9j dXJyZW50Cj4gLQkgKi8KPiAtCW1mc3ByCXIxMywgU1BSTl9TUFJHX1RIUkVBRAo+IC0JbHd6CXIx MywgVEhSRUFEX0tWTV9TVkNQVShyMTMpCj4gLQkvKiBQUEMzMiBjYW4gaGF2ZSBhIE5VTEwgcG9p bnRlciAtIGxldCdzIGNoZWNrIGZvciB0aGF0ICovCj4gLQltdHNwciAgIFNQUk5fU1BSR19TQ1JB VENIMSwgcjEyCQkvKiBTYXZlIHIxMiAqLwo+IC0JbWZjcglyMTIKPiAtCWNtcHdpCXIxMywgMAo+ IC0JYm5lCTFmCj4gLTI6CW10Y3IJcjEyCj4gLQltZnNwcglyMTIsIFNQUk5fU1BSR19TQ1JBVENI MQo+IC0JbWZzcHIJcjEzLCBTUFJOX1NQUkdfU0NSQVRDSDAJCS8qIHIxMyA9IG9yaWdpbmFsIHIx MyAqLwo+IC0JYglrdm1wcGNfcmVzdW1lX1xpbnRubwkJLyogR2V0IGJhY2sgb3JpZ2luYWwgaGFu ZGxlciAqLwo+IC0KPiAtMToJdG9waHlzKHIxMywgcjEzKQo+IC0Jc3R3CXIxMiwgSFNUQVRFX1ND UkFUQ0gxKHIxMykKPiAtCW1mc3ByCXIxMiwgU1BSTl9TUFJHX1NDUkFUQ0gxCj4gLQlzdHcJcjEy LCBIU1RBVEVfU0NSQVRDSDAocjEzKQo+IC0JbGJ6CXIxMiwgSFNUQVRFX0lOX0dVRVNUKHIxMykK PiAtCWNtcHdpCXIxMiwgS1ZNX0dVRVNUX01PREVfTk9ORQo+IC0JYm5lCS4ua3ZtcHBjX2hhbmRs ZXJfaGFzbWFnaWNfXGludG5vCj4gLQkvKiBObyBLVk0gZ3Vlc3Q/IFRoZW4ganVtcCBiYWNrIHRv IHRoZSBMaW51eCBoYW5kbGVyISAqLwo+IC0JbHd6CXIxMiwgSFNUQVRFX1NDUkFUQ0gxKHIxMykK PiAtCWIJMmIKPiAtCj4gLQkvKiBOb3cgd2Uga25vdyB3ZSdyZSBoYW5kbGluZyBhIEtWTSBndWVz dCAqLwo+IC0uLmt2bXBwY19oYW5kbGVyX2hhc21hZ2ljX1xpbnRubzoKPiAtCj4gLQkvKiBTaG91 bGQgd2UganVzdCBza2lwIHRoZSBmYXVsdGluZyBpbnN0cnVjdGlvbj8gKi8KPiAtCWNtcHdpCXIx MiwgS1ZNX0dVRVNUX01PREVfU0tJUAo+IC0JYmVxCWt2bXBwY19oYW5kbGVyX3NraXBfaW5zCj4g LQo+IC0JLyogTGV0J3Mgc3RvcmUgd2hpY2ggaW50ZXJydXB0IHdlJ3JlIGhhbmRsaW5nICovCj4g LQlsaQlyMTIsIFxpbnRubwo+IC0KPiAtCS8qIEp1bXAgaW50byB0aGUgU0xCIGV4aXQgY29kZSB0 aGF0IGdvZXMgdG8gdGhlIGhpZ2htZW0gaGFuZGxlciAqLwo+IC0JYglrdm1wcGNfaGFuZGxlcl90 cmFtcG9saW5lX2V4aXQKPiAtCj4gLS5lbmRtCj4gLQo+IC1JTlRFUlJVUFRfVFJBTVBPTElORQlC T09LM1NfSU5URVJSVVBUX1NZU1RFTV9SRVNFVAo+IC1JTlRFUlJVUFRfVFJBTVBPTElORQlCT09L M1NfSU5URVJSVVBUX01BQ0hJTkVfQ0hFQ0sKPiAtSU5URVJSVVBUX1RSQU1QT0xJTkUJQk9PSzNT X0lOVEVSUlVQVF9EQVRBX1NUT1JBR0UKPiAtSU5URVJSVVBUX1RSQU1QT0xJTkUJQk9PSzNTX0lO VEVSUlVQVF9JTlNUX1NUT1JBR0UKPiAtSU5URVJSVVBUX1RSQU1QT0xJTkUJQk9PSzNTX0lOVEVS UlVQVF9FWFRFUk5BTAo+IC1JTlRFUlJVUFRfVFJBTVBPTElORQlCT09LM1NfSU5URVJSVVBUX0FM SUdOTUVOVAo+IC1JTlRFUlJVUFRfVFJBTVBPTElORQlCT09LM1NfSU5URVJSVVBUX1BST0dSQU0K PiAtSU5URVJSVVBUX1RSQU1QT0xJTkUJQk9PSzNTX0lOVEVSUlVQVF9GUF9VTkFWQUlMCj4gLUlO VEVSUlVQVF9UUkFNUE9MSU5FCUJPT0szU19JTlRFUlJVUFRfREVDUkVNRU5URVIKPiAtSU5URVJS VVBUX1RSQU1QT0xJTkUJQk9PSzNTX0lOVEVSUlVQVF9TWVNDQUxMCj4gLUlOVEVSUlVQVF9UUkFN UE9MSU5FCUJPT0szU19JTlRFUlJVUFRfVFJBQ0UKPiAtSU5URVJSVVBUX1RSQU1QT0xJTkUJQk9P SzNTX0lOVEVSUlVQVF9QRVJGTU9OCj4gLUlOVEVSUlVQVF9UUkFNUE9MSU5FCUJPT0szU19JTlRF UlJVUFRfQUxUSVZFQwo+IC0KPiAtLyoKPiAtICogQnJpbmcgdXMgYmFjayB0byB0aGUgZmF1bHRp bmcgY29kZSwgYnV0IHNraXAgdGhlCj4gLSAqIGZhdWx0aW5nIGluc3RydWN0aW9uLgo+IC0gKgo+ IC0gKiBUaGlzIGlzIGEgZ2VuZXJpYyBleGl0IHBhdGggZnJvbSB0aGUgaW50ZXJydXB0Cj4gLSAq IHRyYW1wb2xpbmVzIGFib3ZlLgo+IC0gKgo+IC0gKiBJbnB1dCBSZWdpc3RlcnM6Cj4gLSAqCj4g LSAqIFIxMiAgICAgICAgICAgID0gZnJlZQo+IC0gKiBSMTMgICAgICAgICAgICA9IFNoYWRvdyBW Q1BVIChQQUNBKQo+IC0gKiBIU1RBVEUuU0NSQVRDSDAgPSBndWVzdCBSMTIKPiAtICogSFNUQVRF LlNDUkFUQ0gxID0gZ3Vlc3QgQ1IKPiAtICogU1BSR19TQ1JBVENIMCAgPSBndWVzdCBSMTMKPiAt ICoKPiAtICovCj4gLWt2bXBwY19oYW5kbGVyX3NraXBfaW5zOgo+IC0KPiAtCS8qIFBhdGNoIHRo ZSBJUCB0byB0aGUgbmV4dCBpbnN0cnVjdGlvbiAqLwo+IC0JLyogTm90ZSB0aGF0IHByZWZpeGVk IGluc3RydWN0aW9ucyBhcmUgZGlzYWJsZWQgaW4gUFIgS1ZNIGZvciBub3cgKi8KPiAtCW1mc3Jy MAlyMTIKPiAtCWFkZGkJcjEyLCByMTIsIDQKPiAtCW10c3JyMAlyMTIKPiAtCj4gLQkvKiBDbGVh biB1cCBhbGwgc3RhdGUgKi8KPiAtCWx3eglyMTIsIEhTVEFURV9TQ1JBVENIMShyMTMpCj4gLQlt dGNyCXIxMgo+IC0JUFBDX0xMCXIxMiwgSFNUQVRFX1NDUkFUQ0gwKHIxMykKPiAtCUdFVF9TQ1JB VENIMChyMTMpCj4gLQo+IC0JLyogQW5kIGdldCBiYWNrIGludG8gdGhlIGNvZGUgKi8KPiAtCVJG SV9UT19LRVJORUwKPiAtI2VuZGlmCj4gLQo+ICAgLyoKPiAgICAqIENhbGwga3ZtcHBjX2hhbmRs ZXJfdHJhbXBvbGluZV9lbnRlciBpbiByZWFsIG1vZGUKPiAgICAqCj4gZGlmZiAtLWdpdCBhL2Fy Y2gvcG93ZXJwYy9rdm0vYm9vazNzX3NlZ21lbnQuUyBiL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNz X3NlZ21lbnQuUwo+IGluZGV4IDIwMjA0NmE4M2ZjMS4uZWVjNDEwMDhkODE1IDEwMDY0NAo+IC0t LSBhL2FyY2gvcG93ZXJwYy9rdm0vYm9vazNzX3NlZ21lbnQuUwo+ICsrKyBiL2FyY2gvcG93ZXJw Yy9rdm0vYm9vazNzX3NlZ21lbnQuUwo+IEBAIC0xMSwzMSArMTEsMTYgQEAKPiAgICNpbmNsdWRl IDxhc20vYXNtLWNvbXBhdC5oPgo+ICAgI2luY2x1ZGUgPGFzbS9mZWF0dXJlLWZpeHVwcy5oPgo+ ICAgCj4gLSNpZiBkZWZpbmVkKENPTkZJR19QUENfQk9PSzNTXzY0KQo+IC0KPiAgICNkZWZpbmUg R0VUX1NIQURPV19WQ1BVKHJlZykgICAgXAo+ICAgCW1yCXJlZywgcjEzCj4gICAKPiAtI2VsaWYg ZGVmaW5lZChDT05GSUdfUFBDX0JPT0szU18zMikKPiAtCj4gLSNkZWZpbmUgR0VUX1NIQURPV19W Q1BVKHJlZykgICAgCQkJXAo+IC0JdG9waHlzKHJlZywgcjIpOyAgICAgICAJCQlcCj4gLQlsd3og ICAgIHJlZywgKFRIUkVBRCArIFRIUkVBRF9LVk1fU1ZDUFUpKHJlZyk7CVwKPiAtCXRvcGh5cyhy ZWcsIHJlZykKPiAtCj4gLSNlbmRpZgo+IC0KPiAgIC8qIERpc2FibGUgZm9yIG5lc3RlZCBLVk0g Ki8KPiAgICNkZWZpbmUgVVNFX1FVSUNLX0xBU1RfSU5TVAo+ICAgCj4gICAKPiAgIC8qIEdldCBo ZWxwZXIgZnVuY3Rpb25zIGZvciBzdWJhcmNoIHNwZWNpZmljIGZ1bmN0aW9uYWxpdHkgKi8KPiAg IAo+IC0jaWYgZGVmaW5lZChDT05GSUdfUFBDX0JPT0szU182NCkKPiAgICNpbmNsdWRlICJib29r M3NfNjRfc2xiLlMiCj4gLSNlbGlmIGRlZmluZWQoQ09ORklHX1BQQ19CT09LM1NfMzIpCj4gLSNp bmNsdWRlICJib29rM3NfMzJfc3IuUyIKPiAtI2VuZGlmCj4gICAKPiAgIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKPiAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKPiBAQCAtODEsNyArNjYsNiBAQCBr dm1wcGNfaGFuZGxlcl90cmFtcG9saW5lX2VudGVyOgo+ICAgCS8qIFN3aXRjaCB0byBndWVzdCBz ZWdtZW50LiBUaGlzIGlzIHN1YmFyY2ggc3BlY2lmaWMuICovCj4gICAJTE9BRF9HVUVTVF9TRUdN RU5UUwo+ICAgCj4gLSNpZmRlZiBDT05GSUdfUFBDX0JPT0szU182NAo+ICAgQkVHSU5fRlRSX1NF Q1RJT04KPiAgIAkvKiBTYXZlIGhvc3QgRlNDUiAqLwo+ICAgCW1mc3ByCXI4LCBTUFJOX0ZTQ1IK PiBAQCAtMTA4LDggKzkyLDYgQEAgRU5EX0ZUUl9TRUNUSU9OX0lGU0VUKENQVV9GVFJfQVJDSF8y MDdTKQo+ICAgCW10c3ByICAgU1BSTl9ISUQ1LHIwCj4gICBub19kY2J6MzJfb246Cj4gICAKPiAt I2VuZGlmIC8qIENPTkZJR19QUENfQk9PSzNTXzY0ICovCj4gLQo+ICAgCS8qIEVudGVyIGd1ZXN0 ICovCj4gICAKPiAgIAlQUENfTEwJcjgsIFNWQ1BVX0NUUihyMykKPiBAQCAtMTcwLDEzICsxNTIs MTEgQEAga3ZtcHBjX2ludGVycnVwdF9wcjoKPiAgIAkgKiBIU1RBVEUuU0NSQVRDSDAgPSBndWVz dCBSMTIKPiAgIAkgKiBIU1RBVEUuU0NSQVRDSDIgPSBndWVzdCBSOQo+ICAgCSAqLwo+IC0jaWZk ZWYgQ09ORklHX1BQQzY0Cj4gICAJLyogTWF0Y2ggMzItYml0IGVudHJ5ICovCj4gICAJbGQJcjks SFNUQVRFX1NDUkFUQ0gyKHIxMykKPiAgIAlyb3RsZGkJcjEyLCByMTIsIDMyCQkgIC8qIEZsaXAg UjEyIGhhbHZlcyBmb3Igc3R3ICovCj4gICAJc3R3CXIxMiwgSFNUQVRFX1NDUkFUQ0gxKHIxMykg LyogQ1IgaXMgbm93IGluIHRoZSBsb3cgaGFsZiAqLwo+ICAgCXNyZGkJcjEyLCByMTIsIDMyCQkg IC8qIHNoaWZ0IHRyYXAgaW50byBsb3cgaGFsZiAqLwo+IC0jZW5kaWYKPiAgIAo+ICAgLmdsb2Jh bCBrdm1wcGNfaGFuZGxlcl90cmFtcG9saW5lX2V4aXQKPiAgIGt2bXBwY19oYW5kbGVyX3RyYW1w b2xpbmVfZXhpdDoKPiBAQCAtMjA5LDcgKzE4OSw2IEBAIGt2bXBwY19oYW5kbGVyX3RyYW1wb2xp bmVfZXhpdDoKPiAgIAlQUENfTEwJcjIsIEhTVEFURV9IT1NUX1IyKHIxMykKPiAgIAo+ICAgCS8q IFNhdmUgZ3Vlc3QgUEMgYW5kIE1TUiAqLwo+IC0jaWZkZWYgQ09ORklHX1BQQzY0Cj4gICBCRUdJ Tl9GVFJfU0VDVElPTgo+ICAgCWFuZGkuCXIwLCByMTIsIDB4Mgo+ICAgCWNtcHdpCWNyMSwgcjAs IDAKPiBAQCAtMjE5LDcgKzE5OCw3IEBAIEJFR0lOX0ZUUl9TRUNUSU9OCj4gICAJYW5kaS4JcjEy LHIxMiwweDNmZmQKPiAgIAliCTJmCj4gICBFTkRfRlRSX1NFQ1RJT05fSUZTRVQoQ1BVX0ZUUl9I Vk1PREUpCj4gLSNlbmRpZgo+ICsKPiAgIDE6CW1mc3JyMAlyMwo+ICAgCW1mc3JyMQlyNAo+ICAg MjoKPiBAQCAtMjY1LDcgKzI0NCw2IEBAIEVORF9GVFJfU0VDVElPTl9JRlNFVChDUFVfRlRSX0hW TU9ERSkKPiAgIAliZXEJbGRfbGFzdF9wcmV2X2luc3QKPiAgIAljbXB3aQlyMTIsIEJPT0szU19J TlRFUlJVUFRfQUxJR05NRU5UCj4gICAJYmVxLQlsZF9sYXN0X2luc3QKPiAtI2lmZGVmIENPTkZJ R19QUEM2NAo+ICAgQkVHSU5fRlRSX1NFQ1RJT04KPiAgIAljbXB3aQlyMTIsIEJPT0szU19JTlRF UlJVUFRfSF9FTVVMX0FTU0lTVAo+ICAgCWJlcS0JbGRfbGFzdF9pbnN0Cj4gQEAgLTI3NCw3ICsy NTIsNiBAQCBCRUdJTl9GVFJfU0VDVElPTgo+ICAgCWNtcHdpCXIxMiwgQk9PSzNTX0lOVEVSUlVQ VF9GQUNfVU5BVkFJTAo+ICAgCWJlcS0JbGRfbGFzdF9pbnN0Cj4gICBFTkRfRlRSX1NFQ1RJT05f SUZTRVQoQ1BVX0ZUUl9BUkNIXzIwN1MpCj4gLSNlbmRpZgo+ICAgCj4gICAJYglub19sZF9sYXN0 X2luc3QKPiAgIAo+IEBAIC0zMTcsNyArMjk0LDYgQEAgbm9fbGRfbGFzdF9pbnN0Ogo+ICAgCS8q IFN3aXRjaCBiYWNrIHRvIGhvc3QgTU1VICovCj4gICAJTE9BRF9IT1NUX1NFR01FTlRTCj4gICAK PiAtI2lmZGVmIENPTkZJR19QUENfQk9PSzNTXzY0Cj4gICAKPiAgIAlsYnoJcjUsIEhTVEFURV9S RVNUT1JFX0hJRDUocjEzKQo+ICAgCWNtcHdpCXI1LCAwCj4gQEAgLTM0Miw4ICszMTgsNiBAQCBu b19mc2NyX3NhdmU6Cj4gICAJbXRzcHIJU1BSTl9GU0NSLCByOAo+ICAgRU5EX0ZUUl9TRUNUSU9O X0lGU0VUKENQVV9GVFJfQVJDSF8yMDdTKQo+ICAgCj4gLSNlbmRpZiAvKiBDT05GSUdfUFBDX0JP T0szU182NCAqLwo+IC0KPiAgIAkvKgo+ICAgCSAqIEZvciBzb21lIGludGVycnVwdHMsIHdlIG5l ZWQgdG8gY2FsbCB0aGUgcmVhbCBMaW51eAo+ICAgCSAqIGhhbmRsZXIsIHNvIGl0IGNhbiBkbyB3 b3JrIGZvciB1cy4gVGhpcyBoYXMgdG8gaGFwcGVuCj4gQEAgLTM4NiwxMyArMzYwLDExIEBAIEVO RF9GVFJfU0VDVElPTl9JRlNFVChDUFVfRlRSX0FSQ0hfMjA3UykKPiAgICNlbmRpZgo+ICAgCVBQ Q19MTAlyOCwgSFNUQVRFX1ZNSEFORExFUihyMTMpCj4gICAKPiAtI2lmZGVmIENPTkZJR19QUEM2 NAo+ICAgQkVHSU5fRlRSX1NFQ1RJT04KPiAgIAliZXEJY3IxLCAxZgo+ICAgCW10c3ByCVNQUk5f SFNSUjEsIHI2Cj4gICAJbXRzcHIJU1BSTl9IU1JSMCwgcjgKPiAgIEVORF9GVFJfU0VDVElPTl9J RlNFVChDUFVfRlRSX0hWTU9ERSkKPiAtI2VuZGlmCj4gICAxOgkvKiBSZXN0b3JlIGhvc3QgbXNy IC0+IFNSUjEgKi8KPiAgIAltdHNycjEJcjYKPiAgIAkvKiBMb2FkIGhpZ2htZW0gaGFuZGxlciBh ZGRyZXNzICovCj4gZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rdm0vZW11bGF0ZS5jIGIvYXJj aC9wb3dlcnBjL2t2bS9lbXVsYXRlLmMKPiBpbmRleCAzNTVkNTIwNmU4YWEuLjc0NTA4NTE2ZGY1 MSAxMDA2NDQKPiAtLS0gYS9hcmNoL3Bvd2VycGMva3ZtL2VtdWxhdGUuYwo+ICsrKyBiL2FyY2gv cG93ZXJwYy9rdm0vZW11bGF0ZS5jCj4gQEAgLTIyOSw5ICsyMjksNyBAQCBpbnQga3ZtcHBjX2Vt dWxhdGVfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQo+ICAgCQlzd2l0Y2ggKGdl dF94b3AoaW5zdCkpIHsKPiAgIAo+ICAgCQljYXNlIE9QXzMxX1hPUF9UUkFQOgo+IC0jaWZkZWYg Q09ORklHXzY0QklUCj4gICAJCWNhc2UgT1BfMzFfWE9QX1RSQVBfNjQ6Cj4gLSNlbmRpZgo+ICAg I2lmZGVmIENPTkZJR19QUENfQk9PSzNTCj4gICAJCQlrdm1wcGNfY29yZV9xdWV1ZV9wcm9ncmFt KHZjcHUsIFNSUjFfUFJPR1RSQVApOwo+ICAgI2Vsc2UKPiBkaWZmIC0tZ2l0IGEvYXJjaC9wb3dl cnBjL2t2bS9wb3dlcnBjLmMgYi9hcmNoL3Bvd2VycGMva3ZtL3Bvd2VycGMuYwo+IGluZGV4IGNl MWQ5MWVlZDIzMS4uODA1OTg3NmFiZjIzIDEwMDY0NAo+IC0tLSBhL2FyY2gvcG93ZXJwYy9rdm0v cG93ZXJwYy5jCj4gKysrIGIvYXJjaC9wb3dlcnBjL2t2bS9wb3dlcnBjLmMKPiBAQCAtMTE2Mywx MSArMTE2Myw5IEBAIHN0YXRpYyB2b2lkIGt2bXBwY19jb21wbGV0ZV9tbWlvX2xvYWQoc3RydWN0 IGt2bV92Y3B1ICp2Y3B1KQo+ICAgCj4gICAJaWYgKHZjcHUtPmFyY2gubW1pb19zaWduX2V4dGVu ZCkgewo+ICAgCQlzd2l0Y2ggKHJ1bi0+bW1pby5sZW4pIHsKPiAtI2lmZGVmIENPTkZJR19QUEM2 NAo+ICAgCQljYXNlIDQ6Cj4gICAJCQlncHIgPSAoczY0KShzMzIpZ3ByOwo+ICAgCQkJYnJlYWs7 Cj4gLSNlbmRpZgo+ICAgCQljYXNlIDI6Cj4gICAJCQlncHIgPSAoczY0KShzMTYpZ3ByOwo+ICAg CQkJYnJlYWs7CgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJp c2N2Cg==